@wular/coder 0.4.11 → 0.4.12

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 (329) hide show
  1. package/README.md +3 -1
  2. package/dist/actions-BT7_eKXm.js +10 -0
  3. package/dist/{adapter-Bi768A94.js → adapter-BT8ECcRG.js} +1 -1
  4. package/dist/{adapter-CkL4PqXE.js → adapter-CU9H4g6c.js} +1 -1
  5. package/dist/{adapter-DYxjaefw.js → adapter-CVd5klMH.js} +1 -1
  6. package/dist/{agent-6GooVMsq.js → agent-BA6xr8QY.js} +2 -2
  7. package/dist/apps-D-v5sQJk.js +367 -0
  8. package/dist/args-CbO_Ck9Z.js +11 -0
  9. package/dist/async-XNO3nqum.js +3 -0
  10. package/dist/auth-DuXnSNf9.js +1 -0
  11. package/dist/base64url-CsVsW4Id.js +1 -0
  12. package/dist/chat-CgQdDRhs.js +13 -0
  13. package/dist/cli.js +19 -1
  14. package/dist/{client-sqXb-y09.js → client-C4QCT6cG.js} +2 -2
  15. package/dist/cmd-DX5ByXo3.js +119 -0
  16. package/dist/connection-DNxi2btM.js +1 -0
  17. package/dist/context-65bOofts.js +7 -0
  18. package/dist/dash/standalone/node_modules/contextjsx/dist/index.mjs +1 -0
  19. package/dist/dash/standalone/node_modules/contextjsx/dist/jsx-runtime.mjs +1 -0
  20. package/dist/dash/standalone/node_modules/contextjsx/dist/src-BJ0QFeB8.mjs +2 -0
  21. package/dist/dash/standalone/node_modules/contextjsx/package.json +70 -0
  22. package/dist/dash/standalone/server/build-index.json +1 -1
  23. package/dist/dash/standalone/server/manifest.json +1310 -1310
  24. package/dist/dash/standalone/server/modules-server-server-react-server/src/agent/context/turn.dac8eb211c500271.js +141 -0
  25. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/create/[id]/page.70913bd4075da914.js +1 -1
  26. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{page.5f88059c03cf82b4.js → page.c6efd5432c1a4a75.js} +3 -3
  27. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{layout.b7392d534ce0410e.js → layout.a795379254982121.js} +3 -3
  28. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{page.5aae24bbfd90c434.js → page.a2cb6d1f1714259a.js} +4 -4
  29. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{page.91c992fdd3b4a493.js → page.996172c951739b35.js} +5 -5
  30. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{agent-settings-form.eb707a9e32718374.js → agent-settings-form.aa9e157d141481d7.js} +1 -1
  31. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{page.9ec1ec08ba05da59.js → page.44d886e60ae04303.js} +3 -3
  32. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{loading.dd9088a4581b1d65.js → loading.521c9e7b8d77f557.js} +1 -1
  33. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{page.71dc042821133e82.js → page.828cfb8112404792.js} +1 -1
  34. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{page.e3179ddf20a7e55d.js → page.dd11f2618e08becd.js} +2 -2
  35. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{editor.62cb8207218e6437.js → editor.776856fe1ed1a642.js} +1 -1
  36. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{page.dffb05f2d256d81a.js → page.7d84ef2b178b34d2.js} +2 -2
  37. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/credentials.b43dd3d97c536c2a.js +3 -3
  38. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/page.dfed4ae6ffc74434.js +5 -5
  39. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/page.f06fda0df59beeb5.js +1 -1
  40. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{loading.56520888d5270b88.js → loading.47cbb34ea8d2e33f.js} +1 -1
  41. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{page.25b29e72df84806b.js → page.abed2a8424ef3da0.js} +2 -2
  42. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-view.f2e902c8208b2e78.js → task-view.dc294bb94b7437e1.js} +1 -1
  43. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer.b0bb1faaac8e0b6c.js → composer.5072aacdce127689.js} +1 -1
  44. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{task.a0c68180db5fb4c1.js → task.0a1b5878dccd3b37.js} +1 -1
  45. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-list.b52a49fb5faeefd0.js → tasks-list.1162926f7498c732.js} +6 -6
  46. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-section.80f9c9a42ecae854.js → tasks-section.1d687c986db53a73.js} +3 -3
  47. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{page.20b5c22658eae312.js → page.d5d8cb5033823c9c.js} +1 -1
  48. package/dist/dash/standalone/static/assets/chunks/action-71685b2d5ad9f359.js +1 -0
  49. package/dist/dash/standalone/static/assets/chunks/{agent-pills-bd32cb89331aff7e.js → agent-pills-15da36c2cb81991b.js} +1 -1
  50. package/dist/dash/standalone/static/assets/chunks/agent-settings-form-6e6a87d6e673daa8.js +1 -0
  51. package/dist/dash/standalone/static/assets/chunks/{agent-toggle-a45b95908d62f926.js → agent-toggle-ca98586e3b4ce9ae.js} +1 -1
  52. package/dist/dash/standalone/static/assets/chunks/{agents-grid-9f79b5074899c8be.js → agents-grid-29c399e46b4e9e2b.js} +1 -1
  53. package/dist/dash/standalone/static/assets/chunks/{back-b0cd2b85c9d8403e.js → back-fa9d6e37f9828093.js} +1 -1
  54. package/dist/dash/standalone/static/assets/chunks/{combo-1050768988cd0347.js → combo-86f3e11d1f6f6cee.js} +1 -1
  55. package/dist/dash/standalone/static/assets/chunks/{composer-87f138e21d68370d.js → composer-85e0ec7163ae18b7.js} +1 -1
  56. package/dist/dash/standalone/static/assets/chunks/composer-910bb87127972f62.js +1 -0
  57. package/dist/dash/standalone/static/assets/chunks/{confirm-01d5814b1c5f7721.js → confirm-c29a1db0130638d2.js} +1 -1
  58. package/dist/dash/standalone/static/assets/chunks/connect-apps-b73490e04ae6398d.js +1 -0
  59. package/dist/dash/standalone/static/assets/chunks/{connect-repositories-49098298b3a82647.js → connect-repositories-0de82daaf654b1d3.js} +1 -1
  60. package/dist/dash/standalone/static/assets/chunks/{connections-list-46d48443d8fc8a0d.js → connections-list-c50f58b4b28d10bb.js} +1 -1
  61. package/dist/dash/standalone/static/assets/chunks/{copy-5db9d328f8f65d82.js → copy-445c11202f136275.js} +1 -1
  62. package/dist/dash/standalone/static/assets/chunks/create-link-6d64a2d5f9ce6de0.js +1 -0
  63. package/dist/dash/standalone/static/assets/chunks/{credentials-list-3cccc85ef335cb22.js → credentials-list-bee95799b2319b3b.js} +1 -1
  64. package/dist/dash/standalone/static/assets/chunks/{custom-range-fdf1946aac09cfc3.js → custom-range-a0630599f907b30e.js} +1 -1
  65. package/dist/dash/standalone/static/assets/chunks/{editor-d2460c315bb1fd32.js → editor-b9951819f21b2e43.js} +2 -2
  66. package/dist/dash/standalone/static/assets/chunks/{engines-list-0159c8baa0b3e711.js → engines-list-2720c3e8fa12b2f7.js} +1 -1
  67. package/dist/dash/standalone/static/assets/chunks/{field-c530e261587d94df.js → field-b82a0f895266791c.js} +1 -1
  68. package/dist/dash/standalone/static/assets/chunks/{instructions-3ea5afeea1992bf2.js → instructions-affaaeff366b1725.js} +1 -1
  69. package/dist/dash/standalone/static/assets/chunks/instructions-fd7402ac5aa8b50e.js +1 -0
  70. package/dist/dash/standalone/static/assets/chunks/{list-b67ce61483dd6acb.js → list-d918f79562d497eb.js} +1 -1
  71. package/dist/dash/standalone/static/assets/chunks/{models-list-98c956ba00913a73.js → models-list-12bc7aceaa52f5b0.js} +1 -1
  72. package/dist/dash/standalone/static/assets/chunks/{notice-8939183c8a889bae.js → notice-57db7a1f05b7308c.js} +1 -1
  73. package/dist/dash/standalone/static/assets/chunks/{outcome-dialog-6323cb5300b6d3c9.js → outcome-dialog-5cf575a5e6921a5d.js} +1 -1
  74. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-b219595be320108a.js +1 -0
  75. package/dist/dash/standalone/static/assets/chunks/platform-actions-1d27d2ba7eee9ff1.js +1 -0
  76. package/dist/dash/standalone/static/assets/chunks/{platform-actions-aafbf038008de64f.js → platform-actions-dba96dcb0f6513db.js} +1 -1
  77. package/dist/dash/standalone/static/assets/chunks/{runners-list-a13d0f8f6583c6d2.js → runners-list-36f8c5ecfcf8e9ae.js} +1 -1
  78. package/dist/dash/standalone/static/assets/chunks/{runtime-71b727f8f5906f08-1.js → runtime-6e12333f12903a62-1.js} +1 -1
  79. package/dist/dash/standalone/static/assets/chunks/{secrets-list-53a0c079492199c9.js → secrets-list-d7dbafd24dd18481.js} +1 -1
  80. package/dist/dash/standalone/static/assets/chunks/{segmented-a3642b8169857fb1.js → segmented-8f809ebe712e92a7.js} +1 -1
  81. package/dist/dash/standalone/static/assets/chunks/shared-init-6e12333f12903a62-2.js +1 -0
  82. package/dist/dash/standalone/static/assets/chunks/{shared-init-6cad28f8cc696d91.js → shared-init-cc13a835f3508618.js} +2 -2
  83. package/dist/dash/standalone/static/assets/chunks/{shared-init-94883db7bc70a5a8.js → shared-init-f475017dd5811e33.js} +2 -2
  84. package/dist/dash/standalone/static/assets/chunks/side-toggle-0aa237eba3dfe9c1.js +1 -0
  85. package/dist/dash/standalone/static/assets/chunks/{tail-81b69d49bfebfd4c.js → tail-b1c46587301ef397.js} +1 -1
  86. package/dist/dash/standalone/static/assets/chunks/task-681061023bdf0a49.js +5 -0
  87. package/dist/dash/standalone/static/assets/chunks/{task-actions-25c70b47b5a53cd2.js → task-actions-c9e46e81604e85c5.js} +1 -1
  88. package/dist/dash/standalone/static/assets/chunks/{task-view-e5ee0ada38552918.js → task-view-134186a544917ceb.js} +1 -1
  89. package/dist/dash/standalone/static/assets/chunks/{tasks-list-d58f3063ae31d9d2.js → tasks-list-352a3222d878de0f.js} +1 -1
  90. package/dist/dash/standalone/static/assets/chunks/{versions-list-fbeed95c0b4e5f0f.js → versions-list-21cb854e6a7108a7.js} +1 -1
  91. package/dist/dash/standalone/static/assets/chunks/{wular-pnext-71b727f8f5906f08-0.js → wular-pnext-6e12333f12903a62-0.js} +1 -1
  92. package/dist/dash/standalone/static/assets/pnext-client-05df74b071ddb0b3.js +1 -0
  93. package/dist/dash/standalone/static/assets/pnext-client-2c19cca257f78ae6.js +1 -0
  94. package/dist/dash/standalone/static/assets/pnext-client-2db05dfa62642a65.js +1 -0
  95. package/dist/dash/standalone/static/assets/pnext-client-36b0d6085a073880.js +1 -0
  96. package/dist/dash/standalone/static/assets/pnext-client-576c06599e241231.js +1 -0
  97. package/dist/dash/standalone/static/assets/pnext-client-6aa0f19a30d58d63.js +1 -0
  98. package/dist/dash/standalone/static/assets/pnext-client-6b30b71f452f2f07.js +1 -0
  99. package/dist/dash/standalone/static/assets/pnext-client-6ccb4d4fff812db3.js +1 -0
  100. package/dist/dash/standalone/static/assets/pnext-client-74eb465defba421e.js +1 -0
  101. package/dist/dash/standalone/static/assets/pnext-client-8c692d12b2fd90d6.js +1 -0
  102. package/dist/dash/standalone/static/assets/pnext-client-92e17d39063a9ced.js +1 -0
  103. package/dist/dash/standalone/static/assets/pnext-client-93246aea268c2682.js +1 -0
  104. package/dist/dash/standalone/static/assets/pnext-client-9954dcbc0c579e0d.js +1 -0
  105. package/dist/dash/standalone/static/assets/pnext-client-c0dfa1cdde9a9855.js +1 -0
  106. package/dist/dash/standalone/static/assets/pnext-client-c28d38d4aafd4af6.js +1 -0
  107. package/dist/dash/standalone/static/assets/{pnext-client-e4c659a371f4cd79.js → pnext-client-c2c30dcb6dc31d60.js} +1 -1
  108. package/dist/dash/standalone/static/assets/pnext-client-dbf741073e11eac0.js +1 -0
  109. package/dist/dash/standalone/static/assets/pnext-client-e29194a27280333f.js +1 -0
  110. package/dist/dash/standalone/static/assets/pnext-client-f8a7e692b27caad9.js +1 -0
  111. package/dist/dash/standalone/static/assets/pnext-client-fc5b8cfcba2a9f63.js +1 -0
  112. package/dist/discover-CPZdprlQ.js +1 -0
  113. package/dist/docs-x-l7gjFE.js +2 -0
  114. package/dist/drive-Y-ZlgiUW.js +1 -0
  115. package/dist/env-B9JG6gwo.js +1 -0
  116. package/dist/errors-XBA-Ls4n.js +10 -0
  117. package/dist/exec-iFssTO5V.js +3 -0
  118. package/dist/executor-Dt2FFT-y.js +11 -0
  119. package/dist/flow/builtin/review/index.d.ts +2 -0
  120. package/dist/flow/builtin/review/index.js +16 -0
  121. package/dist/flow/index.d.ts +1 -1
  122. package/dist/flow/index.js +1 -1
  123. package/dist/http-BZfjbiov.js +1 -0
  124. package/dist/{types-C6NAqGqn.d.ts → index-BdkdNI1v.d.ts} +705 -121
  125. package/dist/{integrations-IGnXBrPw.js → integrations-DyInAa5g.js} +2 -2
  126. package/dist/lib/broker.js +2 -2
  127. package/dist/load-zhcrwSRF.js +2 -0
  128. package/dist/local-D55UkW93.js +5 -0
  129. package/dist/maintenance-BfxcatXH.js +1 -0
  130. package/dist/{match-BwcxeAZF.js → match-Bq4sDuCy.js} +1 -1
  131. package/dist/mcp-Bta09QCU.js +13 -0
  132. package/dist/mcp-CUITALl1.js +1 -0
  133. package/dist/models-C1O2DrXx.js +1 -0
  134. package/dist/output-D95NoAA9.js +16 -0
  135. package/dist/prompt-onpyIyXK.js +8 -0
  136. package/dist/prompts-B8pKhMcu.js +4 -0
  137. package/dist/refresh-D-0K9fo3.js +1 -0
  138. package/dist/{remote-D3JZ4MMQ.js → remote-CDm0YUU3.js} +1 -1
  139. package/dist/runner-CTFTuaz_.js +1 -0
  140. package/dist/runner.json +1 -1
  141. package/dist/runner.tgz +0 -0
  142. package/dist/{runners-DyLnqHKy.js → runners-CYTicTb7.js} +3 -3
  143. package/dist/schema.d.ts +1 -1
  144. package/dist/schema.js +8 -1
  145. package/dist/sdk.d.ts +12552 -4
  146. package/dist/sdk.js +1 -1
  147. package/dist/serve-Bzs_lEg-.js +1 -0
  148. package/dist/serve-CWtLyyTz.js +12 -0
  149. package/dist/serve-DE6A-rBk.js +4 -0
  150. package/dist/{slack-DhPhLuWb.js → slack-Bo5l13Rs.js} +3 -3
  151. package/dist/task-BU1JEK9X.js +7 -0
  152. package/dist/task-CPzBITsp.js +1 -0
  153. package/dist/tools-BMaKWTa6.js +1 -0
  154. package/dist/tools-CM4UCsId.js +1 -0
  155. package/dist/turn-DMvPfhb5.js +3 -0
  156. package/dist/{views-CE2d9x6T.js → views-DEdKqLm_.js} +1 -1
  157. package/dist/{wire-nJ7sEi-M.js → wire-JMNPv8f6.js} +1 -1
  158. package/dist/worker-BuP_Lem1.js +9 -0
  159. package/dist/worker-C1tuzq5n.js +1 -0
  160. package/docs/agents/index.md +18 -20
  161. package/docs/cli/agent.md +137 -0
  162. package/docs/cli/auth.md +48 -0
  163. package/docs/cli/connection.md +89 -0
  164. package/docs/cli/credentials.md +58 -0
  165. package/docs/cli/flow.md +158 -0
  166. package/docs/cli/index.md +139 -0
  167. package/docs/cli/model.md +116 -0
  168. package/docs/cli/runner.md +92 -0
  169. package/docs/cli/server.md +89 -0
  170. package/docs/cli/task.md +271 -0
  171. package/docs/flows.md +0 -6
  172. package/docs/mcp.md +8 -8
  173. package/docs/review.md +4 -0
  174. package/package.json +3 -1
  175. package/plugins/agents/skills/coder/SKILL.md +16 -1
  176. package/plugins/claude/.claude-plugin/plugin.json +1 -1
  177. package/plugins/claude/.mcp.json +5 -0
  178. package/plugins/claude/skills/dispatch/SKILL.md +16 -1
  179. package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
  180. package/plugins/cursor/skills/coder/SKILL.md +16 -1
  181. package/dist/actions-Cwe3IDVs.js +0 -2
  182. package/dist/add-B6vPKZEr.js +0 -1
  183. package/dist/add-n6c9OINP.js +0 -2
  184. package/dist/add-v1Pv00HX.js +0 -1
  185. package/dist/add-wC8ByRgM.js +0 -6
  186. package/dist/agent-BkxXgha0.js +0 -1
  187. package/dist/alias-A8ObWElH.js +0 -2
  188. package/dist/app-CaxTL1H3.js +0 -1
  189. package/dist/approvals-h5lytkey.js +0 -2
  190. package/dist/approve-BNhg0MLi.js +0 -2
  191. package/dist/approve-BiHM8kSo.js +0 -1
  192. package/dist/apps-BNe86LfS.js +0 -367
  193. package/dist/archive-CMHRsVYf.js +0 -4
  194. package/dist/archive-H2B7Me8E.js +0 -3
  195. package/dist/args-CURX44CA.js +0 -1
  196. package/dist/ask-D8TIVhPl.js +0 -4
  197. package/dist/auth-BSMPjhnz.js +0 -1
  198. package/dist/auth-D3quZAKT.js +0 -1
  199. package/dist/chat-3AvUDOwf.js +0 -13
  200. package/dist/chat-bridge-BmqYsASZ.js +0 -2
  201. package/dist/cli-BBlH53hA.js +0 -9
  202. package/dist/config-K6Rrjsee.js +0 -3
  203. package/dist/connection-B-IB8tlP.js +0 -1
  204. package/dist/connection-BXBDeoax.js +0 -1
  205. package/dist/create-CP_JmJnh.js +0 -1
  206. package/dist/credentials-BRFajC0d.js +0 -1
  207. package/dist/dash/standalone/server/modules-server-server-react-server/src/core/event-prompt.87f064ca0141e796.js +0 -30
  208. package/dist/dash/standalone/static/assets/chunks/action-fc8716cda7527d8c.js +0 -1
  209. package/dist/dash/standalone/static/assets/chunks/agent-settings-form-f5576a2c50fce094.js +0 -1
  210. package/dist/dash/standalone/static/assets/chunks/composer-8f0e8b1d07e74aad.js +0 -1
  211. package/dist/dash/standalone/static/assets/chunks/connect-apps-857dc9fa3f6f5bbc.js +0 -1
  212. package/dist/dash/standalone/static/assets/chunks/create-link-6b6e9eeac436c4af.js +0 -1
  213. package/dist/dash/standalone/static/assets/chunks/instructions-d8884576a18e6cdb.js +0 -1
  214. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-be3fbe8c4b43d180.js +0 -1
  215. package/dist/dash/standalone/static/assets/chunks/platform-actions-ed27388f722b4a4c.js +0 -1
  216. package/dist/dash/standalone/static/assets/chunks/shared-init-71b727f8f5906f08-2.js +0 -1
  217. package/dist/dash/standalone/static/assets/chunks/side-toggle-a2f67a8671a0309b.js +0 -1
  218. package/dist/dash/standalone/static/assets/chunks/task-95daa40d39de664f.js +0 -1
  219. package/dist/dash/standalone/static/assets/pnext-client-037852a9f274c8c8.js +0 -1
  220. package/dist/dash/standalone/static/assets/pnext-client-10eac8df53f62104.js +0 -1
  221. package/dist/dash/standalone/static/assets/pnext-client-12635905e9754177.js +0 -1
  222. package/dist/dash/standalone/static/assets/pnext-client-12955733c71cc641.js +0 -1
  223. package/dist/dash/standalone/static/assets/pnext-client-26999113ea61d5b9.js +0 -1
  224. package/dist/dash/standalone/static/assets/pnext-client-27b6e4b7d1697094.js +0 -1
  225. package/dist/dash/standalone/static/assets/pnext-client-34fec171024dd082.js +0 -1
  226. package/dist/dash/standalone/static/assets/pnext-client-44eb6d4096f7e875.js +0 -1
  227. package/dist/dash/standalone/static/assets/pnext-client-4c558a168b95d9b1.js +0 -1
  228. package/dist/dash/standalone/static/assets/pnext-client-5d21f3dd3f4407af.js +0 -1
  229. package/dist/dash/standalone/static/assets/pnext-client-5fe04a4e1dff28a3.js +0 -1
  230. package/dist/dash/standalone/static/assets/pnext-client-88bbc009041aa776.js +0 -1
  231. package/dist/dash/standalone/static/assets/pnext-client-b36106c6b8a6cd35.js +0 -1
  232. package/dist/dash/standalone/static/assets/pnext-client-b47dda1cd4cfac04.js +0 -1
  233. package/dist/dash/standalone/static/assets/pnext-client-b556f5611fdcf545.js +0 -1
  234. package/dist/dash/standalone/static/assets/pnext-client-b8485144ca29d436.js +0 -1
  235. package/dist/dash/standalone/static/assets/pnext-client-c5c3c90b3518c5a8.js +0 -1
  236. package/dist/dash/standalone/static/assets/pnext-client-f139547dc55d7d76.js +0 -1
  237. package/dist/dash/standalone/static/assets/pnext-client-fd280710b31af681.js +0 -1
  238. package/dist/default-Ojx5oFuw.js +0 -1
  239. package/dist/delete-D1hEPpsk.js +0 -2
  240. package/dist/delete-UyzcQPoG.js +0 -4
  241. package/dist/disable-Dml_Slph.js +0 -1
  242. package/dist/discover-CyIfIBGD.js +0 -3
  243. package/dist/dispatch-CFZ9Crvg.js +0 -8
  244. package/dist/docs-BUHKbQjM.js +0 -2
  245. package/dist/docs-CvjWiada.js +0 -2
  246. package/dist/drive-BqunNi9n.js +0 -1
  247. package/dist/enable-xye-Nanc.js +0 -1
  248. package/dist/env-BgE9ipvN.js +0 -1
  249. package/dist/exec-Cprez703.js +0 -3
  250. package/dist/executor-3QMa-XRY.js +0 -11
  251. package/dist/flow/builtin/review.d.ts +0 -2
  252. package/dist/flow/builtin/review.js +0 -12
  253. package/dist/flow-CtillCQY.js +0 -1
  254. package/dist/history-C53URBjs.js +0 -8
  255. package/dist/http-CDZKt5ln.js +0 -1
  256. package/dist/hub-B0WCXtsP.js +0 -2
  257. package/dist/init-HdSVUozH.js +0 -1
  258. package/dist/integrations-BdLs4W6o.js +0 -1
  259. package/dist/list-1IMeVNg3.js +0 -1
  260. package/dist/list-BTjIMvNs.js +0 -1
  261. package/dist/list-BlOB32n6.js +0 -4
  262. package/dist/list-CZGTVKcS.js +0 -4
  263. package/dist/list-CquHtsmW.js +0 -3
  264. package/dist/list-CxjPT0Il.js +0 -1
  265. package/dist/list-DvFVuGT_.js +0 -1
  266. package/dist/list-gFnOS9Hk.js +0 -2
  267. package/dist/load-Q9fL4VC6.js +0 -2
  268. package/dist/local-Bzdmzc1o.js +0 -5
  269. package/dist/login-C723kHh6.js +0 -1
  270. package/dist/login-Dq3r6gh6.js +0 -1
  271. package/dist/logout-DEg0aTmq.js +0 -1
  272. package/dist/maintenance-DYOstY6V.js +0 -1
  273. package/dist/mcp-CKqinFkk.js +0 -1
  274. package/dist/mcp-Dsl3Xdd3.js +0 -13
  275. package/dist/mcp-server-BlP9lACI.js +0 -1
  276. package/dist/model-Bs27g5EX.js +0 -1
  277. package/dist/models-Cb0ZTKZ7.js +0 -1
  278. package/dist/output-BKeyLbvt.js +0 -5
  279. package/dist/prompt-PEgcMJO7.js +0 -8
  280. package/dist/prompts-Bj4Fbd_n.js +0 -78
  281. package/dist/push-DpEW4XbQ.js +0 -1
  282. package/dist/reconnect-BmP_XXDv.js +0 -1
  283. package/dist/refresh-SHNJq9Cx.js +0 -1
  284. package/dist/remove-BZZgJq8Z.js +0 -1
  285. package/dist/remove-CId1EwPg.js +0 -1
  286. package/dist/remove-Ci87WQq0.js +0 -1
  287. package/dist/remove-DxCv9BB4.js +0 -1
  288. package/dist/rename-DJaf5SwH.js +0 -1
  289. package/dist/result-BesDQ-b1.js +0 -5
  290. package/dist/result-D0dpv2O_.js +0 -18
  291. package/dist/resume-2Y0uC5MM.js +0 -3
  292. package/dist/review-DIm9oK_W.js +0 -7
  293. package/dist/review-Dxs-idTn.d.ts +0 -566
  294. package/dist/rotate-key-CS1G6ReH.js +0 -1
  295. package/dist/run-BKUd6B8S.js +0 -2
  296. package/dist/run-DjTTb8oA.js +0 -5
  297. package/dist/run-UPW-7pKo.js +0 -2
  298. package/dist/runner-BLS_ReEw.js +0 -1
  299. package/dist/runner-BM_98EQl.js +0 -1
  300. package/dist/schema-CjHmulYJ.js +0 -8
  301. package/dist/sdk-B4Cl0Hbw.d.ts +0 -12551
  302. package/dist/serve-BApfeXk8.js +0 -12
  303. package/dist/serve-DE1cKoGa.js +0 -1
  304. package/dist/serve-lF97RlpX.js +0 -2
  305. package/dist/serve-mXTjboT1.js +0 -1
  306. package/dist/server-CUsxAflx.js +0 -1
  307. package/dist/setup-host-tlsilI6C.js +0 -6
  308. package/dist/show-Dn7zTz-9.js +0 -1
  309. package/dist/show-uyUpeqa9.js +0 -1
  310. package/dist/status-D_1VGn9F.js +0 -1
  311. package/dist/steer-CMp-a7v2.js +0 -4
  312. package/dist/stop-C7YjN2sB.js +0 -1
  313. package/dist/stop-D8G7AtdY.js +0 -3
  314. package/dist/task-DJ6nruuA.js +0 -1
  315. package/dist/task-DeFLNmQH.js +0 -1
  316. package/dist/task-bkoi8_NN.js +0 -7
  317. package/dist/test-BD9rvefN.js +0 -1
  318. package/dist/tools-CdWkwI1g.js +0 -1
  319. package/dist/unalias-bL5t8Isc.js +0 -1
  320. package/dist/update-DIYW08ME.js +0 -2
  321. package/dist/upgrade-3fH6dGJw.js +0 -2
  322. package/dist/usage-Dr8F0xt0.js +0 -1
  323. package/dist/watch-BiyN4NxE.js +0 -5
  324. package/dist/watch-DJXu13jK.js +0 -9
  325. package/dist/worker-CHD_OiQS.js +0 -1
  326. package/dist/worker-KfrTK_Dk.js +0 -2
  327. package/dist/workflow-C21qQ4rT.js +0 -1
  328. package/docs/agents/prompt.md +0 -231
  329. package/docs/cli.md +0 -155
@@ -0,0 +1,271 @@
1
+ <!-- Generated by contextjsx from definitions. Edit the source, not this file. -->
2
+
3
+ # task
4
+
5
+ run, follow and steer coding tasks
6
+
7
+ ## `task run [prompt] [--output-schema <output-schema>] [--name <name>] [--agent <agent>] [--system <system>] [--wait] [--engine <engine>] [--model <model>] [--effort <effort>] [--permissions <permissions>] [--mcp <mcp>] [--connections <connections>] [--add-dir <add-dir>] [--server <server>] [--workspace <workspace>] [--yes] [--background] [--repo <repo>] [--runner <runner>] [--simulate-approval] [--json] [--cwd <cwd>]`
8
+
9
+ run a task (background; --wait blocks)
10
+
11
+ Dispatch a coding task to the configured engine. Backgrounds by default and
12
+ prints a task id; --wait runs in the foreground and prints the answer.
13
+ Shortcut: `coder run "<text>"`.
14
+
15
+ Writing a task: one task per focused goal, independent goals as parallel runs.
16
+ The worker starts with nothing but the text, so include the goal, file paths,
17
+ constraints and any context only you have. Delegate rather than doing the work
18
+ yourself first, however small it looks.
19
+
20
+ Waiting: run `coder task result <task-id> --wait` in its own background shell, one
21
+ per task. Never wait on several tasks in one call, or their approvals and answers
22
+ never reach you one by one.
23
+
24
+ Use luna or sonnet for mechanical work; sol or opus is the default.
25
+ Use astra or fable for the hardest work; they cost the most.
26
+
27
+ - `<prompt>` the task text
28
+ - `--output-schema <output-schema>` JSON Schema for the task answer
29
+ - `--name <name>` label the task (shown in list/result)
30
+ - `--agent <agent>` run as that agent: its system.md, engine settings, MCP servers and flows; flags override them
31
+ - `--system <system>` standing instructions prepended to the task (kept out of prompt previews)
32
+ - `--wait` run in the foreground and block until the answer is ready
33
+ - `--engine <engine>` engine to use; custom runs your configured custom models (default: first in the chain)
34
+ - `--model <model>` luna/sol/astra (codex) · sonnet/opus/fable (claude) · a custom model (coder model list)
35
+ - `--effort <effort>` reasoning effort
36
+ - `--permissions <permissions>` read-only · workspace-write · auto (default: auto)
37
+ - `--mcp <mcp>` attach MCP servers from `mcp` in .coder/config.json by name (or all), or an inline JSON array [{"name","command","args","env","tools"}]; none by default, all adds your engine's own MCP servers
38
+ - `--connections <connections>` use only these connections (coder connection list), within the agent's
39
+ - `--add-dir <add-dir>` give the task another directory beyond --cwd (repeatable); read-only can only read it, other modes can also write
40
+ - `--server <server>` run the task on your Coder server and follow it here (--background prints its id)
41
+ - `--workspace <workspace>` with --server: the workspace to run in (default: the saved one)
42
+ - `--yes` with --server: connect to a server used for the first time without asking
43
+ - `--background` with --server: print the task id instead of following it
44
+ - `--repo <repo>` with --server: check out a repo from the workspace's installs
45
+ - `--runner <runner>` with --server: where it runs (a runner kind or a registered runner)
46
+ - `--simulate-approval` test only: raise a fake approval request
47
+ - `--json` JSON output
48
+ - `--cwd <cwd>` workspace directory (default: current)
49
+
50
+ Exit codes:
51
+
52
+ - `0` The task started, or --wait printed a successful answer.
53
+ - `1` Dispatch or the task failed.
54
+ - `3` No engine could start; follow fallback.instructions in the JSON payload.
55
+ - `4` An approval is pending; answer it, then run result --wait again.
56
+ - `130` The foreground wait was detached and the task is still running.
57
+
58
+ ```sh
59
+ coder run "add a /health endpoint" # dispatch in the background, print a task id
60
+ coder result <task-id> --wait # then block until it finishes and print the answer
61
+ coder run --wait "fix the failing test" # or block on the run itself
62
+ coder task run --model luna --system "tests live in test/, don't touch anything outside of it" "rename foo to bar" # pick an engine via its model alias; --system adds standing instructions
63
+ coder task run --agent reviewer "review the last commit" # run a repo agent from .coder/agents/reviewer
64
+ coder run --add-dir ../api --add-dir ../shared "update the client for the new endpoint" # let the task reach sibling repos too
65
+ ```
66
+
67
+ ## `task list [--running] [--stopped] [--archived] [--limit <limit>] [--cursor <cursor>] [--dir <dir>] [--server <server>] [--workspace <workspace>] [--yes] [--json] [--cwd <cwd>]`
68
+
69
+ list recent tasks (by default running + just stopped)
70
+
71
+ List recent tasks across all workspaces, most recent first: running tasks plus
72
+ ones stopped within the last 30 minutes. Older stopped tasks auto-archive and
73
+ move to --archived. Shortcut: `coder list`.
74
+
75
+ - `--running` show only running tasks
76
+ - `--stopped` show only recently stopped tasks (not yet archived)
77
+ - `--archived` show only archived tasks (auto-archived or via task archive)
78
+ - `--limit <limit>` tasks per page (default: 50; all for every task)
79
+ - `--cursor <cursor>` continue from the previous page cursor
80
+ - `--dir <dir>` only tasks launched in that workspace
81
+ - `--server <server>` act on your Coder server
82
+ - `--workspace <workspace>` with --server: the workspace to act in (default: the saved one)
83
+ - `--yes` with --server: connect to a server used for the first time without asking
84
+ - `--json` JSON output
85
+ - `--cwd <cwd>` workspace directory (default: current)
86
+
87
+ ## `task result [task-id] [--wait] [--turns] [--tail <tail>] [--server <server>] [--workspace <workspace>] [--yes] [--json] [--cwd <cwd>]`
88
+
89
+ status + final answer (--wait blocks)
90
+
91
+ Show a task's status and its final answer (result pending while it runs), plus
92
+ any pending approvals. --wait blocks until it finishes, then prints. --tail <n>
93
+ includes the last n progress-log steps (--tail all for the whole transcript).
94
+ Defaults to the most recent task. Shortcut: `coder result`.
95
+
96
+ JSON and MCP return a summary and the complete answer, without engine diagnostics
97
+ or raw diffs. Use --tail for progress; answers are never truncated.
98
+
99
+ Run each --wait in its own background shell, one per task. Never wait on several
100
+ tasks in one call, or their approvals and answers never reach you one by one.
101
+
102
+ - `<task-id>` the task (default: the most recent)
103
+ - `--wait` block until the task finishes or needs an approval, then print
104
+ - `--turns` every turn's answer (a steered task accretes turns)
105
+ - `--tail <tail>` include the last n progress-log steps (default: 0, final result only)
106
+ - `--server <server>` act on your Coder server
107
+ - `--workspace <workspace>` with --server: the workspace to act in (default: the saved one)
108
+ - `--yes` with --server: connect to a server used for the first time without asking
109
+ - `--json` JSON output
110
+ - `--cwd <cwd>` workspace directory (default: current)
111
+
112
+ Exit codes:
113
+
114
+ - `0` The task completed successfully.
115
+ - `1` The task failed or was cancelled.
116
+ - `4` An approval is pending; answer it, then run --wait again.
117
+
118
+ ```sh
119
+ coder result <task-id> --wait # block until the task finishes, print the answer
120
+ coder result <task-id> --turns # every turn's answer for a steered task
121
+ ```
122
+
123
+ ## `task watch [task-id] [--tail <tail>] [--trim <trim>] [--from <from>] [--server <server>] [--workspace <workspace>] [--yes] [--json] [--cwd <cwd>]`
124
+
125
+ stream a task's live transcript
126
+
127
+ Stream a running task's transcript live (for you/debugging), then print its
128
+ final answer. Replays the last line first so the current step is visible;
129
+ --tail <n> replays the last n lines (--tail all for the whole transcript).
130
+ Blocks until it finishes; exits 0 on success, 1 otherwise. For the answer
131
+ alone, prefer `coder result`. Alias: stream.
132
+
133
+ With --from <n>, or as a tool, it returns the log from event n on without
134
+ following, and `next`: the command that continues it while the task runs.
135
+
136
+ - `<task-id>` the task (default: the most recent)
137
+ - `--tail <tail>` replay the last n log lines first (default: 1)
138
+ - `--trim <trim>` budget for tool output and thinking (default: 1200 chars, 12 lines)
139
+ - `--from <from>` return the log from event n on instead of following it
140
+ - `--server <server>` act on your Coder server
141
+ - `--workspace <workspace>` with --server: the workspace to act in (default: the saved one)
142
+ - `--yes` with --server: connect to a server used for the first time without asking
143
+ - `--json` JSON output
144
+ - `--cwd <cwd>` workspace directory (default: current)
145
+
146
+ ```sh
147
+ coder task watch # follow the most recent task to completion
148
+ coder task watch <task-id> --from 0 --json # the log so far, and the command that continues it
149
+ ```
150
+
151
+ ## `task steer [task-id] [text] [--wait] [--model <model>] [--effort <effort>] [--permissions <permissions>] [--server <server>] [--workspace <workspace>] [--yes] [--json] [--cwd <cwd>]`
152
+
153
+ continue a task's thread
154
+
155
+ Continue a task's thread with new instructions. They are injected into a live Codex or
156
+ Claude turn at its next tool boundary and queued across a startup or completion race.
157
+ A stopped, finished, or archived task resumes on the same task id. It reuses the
158
+ task's engine, model, and permissions unless overridden.
159
+
160
+ - `<task-id>` the task to continue
161
+ - `<text>` the follow-up instructions
162
+ - `--wait` run in the foreground and block until the answer is ready
163
+ - `--model <model>` override the task's model for this follow-up
164
+ - `--effort <effort>` override the task's reasoning effort
165
+ - `--permissions <permissions>` read-only · workspace-write · auto
166
+ - `--server <server>` act on your Coder server
167
+ - `--workspace <workspace>` with --server: the workspace to act in (default: the saved one)
168
+ - `--yes` with --server: connect to a server used for the first time without asking
169
+ - `--json` JSON output
170
+ - `--cwd <cwd>` workspace directory (default: current)
171
+
172
+ ```sh
173
+ coder task steer task-abc "now add tests" # continue that task with a follow-up
174
+ ```
175
+
176
+ ## `task ask [task-id] [question] [--model <model>] [--effort <effort>] [--server <server>] [--workspace <workspace>] [--yes] [--json] [--cwd <cwd>]`
177
+
178
+ ask about a task without interrupting it
179
+
180
+ Answer a question ABOUT a task without touching it: a read-only sidecar reads
181
+ the task's progress log, result, and workspace and answers; the task never
182
+ sees the question and its thread is not steered. Works whether the task is
183
+ running or stopped. To change what the task does, use `coder task steer`.
184
+
185
+ - `<task-id>` the task to ask about
186
+ - `<question>` the question
187
+ - `--model <model>` sidecar model (default: the task's own)
188
+ - `--effort <effort>` sidecar reasoning effort
189
+ - `--server <server>` act on your Coder server
190
+ - `--workspace <workspace>` with --server: the workspace to act in (default: the saved one)
191
+ - `--yes` with --server: connect to a server used for the first time without asking
192
+ - `--json` JSON output
193
+ - `--cwd <cwd>` workspace directory (default: current)
194
+
195
+ ```sh
196
+ coder task ask task-abc "what approach did you take and why?" # probe a decision without derailing the task
197
+ ```
198
+
199
+ ## `task stop [task-id] [--server <server>] [--workspace <workspace>] [--yes] [--json] [--cwd <cwd>]`
200
+
201
+ interrupt a running task
202
+
203
+ Interrupt a running task and mark it cancelled.
204
+
205
+ - `<task-id>` the task to stop
206
+ - `--server <server>` act on your Coder server
207
+ - `--workspace <workspace>` with --server: the workspace to act in (default: the saved one)
208
+ - `--yes` with --server: connect to a server used for the first time without asking
209
+ - `--json` JSON output
210
+ - `--cwd <cwd>` workspace directory (default: current)
211
+
212
+ ## `task archive [task-id] [--all-stopped] [--server <server>] [--workspace <workspace>] [--yes] [--json] [--cwd <cwd>]`
213
+
214
+ archive a session (or --all-stopped)
215
+
216
+ Archive a task session so it drops out of the default list (see it again with
217
+ `coder task list --archived [--limit N]`). Pass --all-stopped to archive every
218
+ finished task. A running task keeps running; steering an archived task
219
+ brings it back.
220
+
221
+ - `<task-id>` the task to archive
222
+ - `--all-stopped` archive every stopped (finished) task
223
+ - `--server <server>` act on your Coder server
224
+ - `--workspace <workspace>` with --server: the workspace to act in (default: the saved one)
225
+ - `--yes` with --server: connect to a server used for the first time without asking
226
+ - `--json` JSON output
227
+ - `--cwd <cwd>` workspace directory (default: current)
228
+
229
+ ## `task delete [task-id] [--all-archived] [--server <server>] [--workspace <workspace>] [--yes] [--json] [--cwd <cwd>]`
230
+
231
+ delete a session (or --all-archived)
232
+
233
+ Delete a task's session from disk. This is permanent. Pass --all-archived to
234
+ delete every archived task at once. A running task must be stopped first.
235
+
236
+ - `<task-id>` the task to delete
237
+ - `--all-archived` delete every archived task
238
+ - `--server <server>` act on your Coder server
239
+ - `--workspace <workspace>` with --server: the workspace to act in (default: the saved one)
240
+ - `--yes` with --server: connect to a server used for the first time without asking
241
+ - `--json` JSON output
242
+ - `--cwd <cwd>` workspace directory (default: current)
243
+
244
+ ## `task approvals [task-id] [--server <server>] [--workspace <workspace>] [--yes] [--json] [--cwd <cwd>]`
245
+
246
+ pending approvals (all tasks, or one)
247
+
248
+ List only pending approvals across all tasks, or for one task. Answered approvals stay in the task log.
249
+
250
+ - `<task-id>` one task (default: pending approvals of every task)
251
+ - `--server <server>` act on your Coder server
252
+ - `--workspace <workspace>` with --server: the workspace to act in (default: the saved one)
253
+ - `--yes` with --server: connect to a server used for the first time without asking
254
+ - `--json` JSON output
255
+ - `--cwd <cwd>` workspace directory (default: current)
256
+
257
+ ## `task approve [task-id] [approval-id] [--deny] [--server <server>] [--workspace <workspace>] [--yes] [--json] [--cwd <cwd>]`
258
+
259
+ answer an escalated permission
260
+
261
+ Answer an escalated permission request. Accepts by default; --deny rejects it.
262
+ Approval ids are unique, so the task id is optional.
263
+
264
+ - `<task-id>` the task, or the approval id alone
265
+ - `<approval-id>` the approval to answer
266
+ - `--deny` reject the request instead of accepting
267
+ - `--server <server>` act on your Coder server
268
+ - `--workspace <workspace>` with --server: the workspace to act in (default: the saved one)
269
+ - `--yes` with --server: connect to a server used for the first time without asking
270
+ - `--json` JSON output
271
+ - `--cwd <cwd>` workspace directory (default: current)
package/docs/flows.md CHANGED
@@ -212,12 +212,6 @@ Coder ships a few flows of its own; they resolve after the directories above, so
212
212
 
213
213
  - `review`: the `coder review` code review. Args: `pr` (number or GitHub URL), `post` (comment on the PR), `base`/`head`/`since` (as the CLI flags), `engine`/`model`/`effort`. Returns `{ findings, summary }`. `coder flow run review --args '{"pr":42,"post":true}'`
214
214
 
215
- ### Flows run by an agent
216
-
217
- An [agent](agents/index.md) runs a flow like any script: `coder flow run <name>` from its shell, inside its sandbox. It can run any flow, including one it writes during the task.
218
-
219
- The tasks a flow starts can't exceed the agent's `permissions` (`read-only` < `workspace-write` < `auto`). A task without permissions inherits the agent's, and one asking for more fails before it starts. Platform actions, like the `review` flow's comments, run outside the sandbox, so no token enters it.
220
-
221
215
  ## CLI
222
216
 
223
217
  ```bash
package/docs/mcp.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # MCP
2
2
 
3
- Give tasks tools of your own: an MCP server is a [connection](agents/index.md#connections), or an entry under `mcp` in a config file you edit, attached to a task by name. Nothing from a config file attaches unless asked, so the default run stays lean. `--mcp all` also loads your engine's own MCP servers and connectors.
3
+ Give tasks tools of your own: an MCP server is a [connection](agents/index.md#connections), or an entry under `mcp` in a config file you edit, attached to a task by name. Nothing from a config file attaches unless asked, so the default run stays lean. `--mcp all` also loads your engine's own MCP servers and connectors. To use Coder itself as an MCP server in your host, see [In your local harness](../README.md#in-your-local-harness).
4
4
 
5
5
  ```sh
6
6
  coder connection add docs --access write -- npx -y docs-mcp # stdio server: the command after --
@@ -32,12 +32,12 @@ Entries in `.coder/config.json`, `~/.coder/config.json` and an agent's `agent.js
32
32
  }
33
33
  ```
34
34
 
35
- | Key | Purpose |
36
- | ------------------------ | ------------------------------------------------------------------- |
37
- | `command`, `args`, `env` | Stdio server to spawn |
38
- | `url`, `headers`, `type` | Remote server; `type` is `http` (streamable HTTP, default) or `sse` |
39
- | `tools` | Allowlist of tool names; omit for every tool the server offers |
40
- | `description` | What the server is for |
35
+ | Key | Purpose |
36
+ | ------------------------ | -------------------------------------------------------------- |
37
+ | `command`, `args`, `env` | Stdio server to spawn |
38
+ | `url`, `headers` | Remote server, streamable HTTP |
39
+ | `tools` | Allowlist of tool names; omit for every tool the server offers |
40
+ | `description` | What the server is for |
41
41
 
42
42
  Repository servers need local approval with `coder connection approve <name>`; `coder connection list` shows which are approved. `${VAR}` and `${VAR:-default}` expand from the environment, except in a repository remote entry's URL and headers, where they stay literal; use a connection for credentials.
43
43
 
@@ -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>`, 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.
54
+ A server's `tools` list limits what a task can call; read-only tasks get only the tools a server marks read-only. Agents attach their integration tools the same way, so an agent never needs an entry here.
package/docs/review.md CHANGED
@@ -39,3 +39,7 @@ Changed submodules are reviewed file by file under their path. Uninitialized one
39
39
  ## Exit codes
40
40
 
41
41
  The command exits `0` when the review completes, even with findings, `1` when the diff, review, or posting fails, `3` when no engine starts, and `4` while a task awaits approval.
42
+
43
+ ## From a task
44
+
45
+ Every task has a `review` tool. It reviews the task's uncommitted changes in the background, or those since `base`, and sends the findings to the task as a message. One review runs at a time, at most 5 per task.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wular/coder",
3
- "version": "0.4.11",
3
+ "version": "0.4.12",
4
4
  "description": "Delegating coding-agent runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/sdk.js",
@@ -24,6 +24,7 @@
24
24
  },
25
25
  "scripts": {
26
26
  "build": "bun scripts/build.ts",
27
+ "emit": "bun scripts/emit.ts",
27
28
  "build:dash": "bun scripts/build.ts dash",
28
29
  "deploy:vercel": "bun scripts/deploy-vercel.ts",
29
30
  "dev:dash": "pnext dev src/server/dash",
@@ -69,6 +70,7 @@
69
70
  "@types/node": "^26.1.2",
70
71
  "@wular/pnext": "0.1.9",
71
72
  "chat": "4.41.1",
73
+ "contextjsx": "0.2.2",
72
74
  "drizzle-kit": "0.31.11",
73
75
  "drizzle-orm": "0.45.2",
74
76
  "jose": "6.2.12",
@@ -1,8 +1,10 @@
1
1
  ---
2
2
  name: coder
3
- description: Use Coder for coding, implementation, or investigation tasks - features, fixes, refactors, debugging, tests, code questions - one coder per focused goal, fanned out in parallel, waiting on each task. Use it when asked, when a task needs another engine (Claude, Codex, custom), or when a subagent is sufficient or required for the task.
3
+ description: "Use Coder for coding, implementation, or investigation tasks - features, fixes, refactors, debugging, tests, code questions - one coder per focused goal, fanned out in parallel, waiting on each task. Use it when asked, when a task needs another engine (Claude, Codex, custom), or when a subagent is sufficient or required for the task."
4
4
  ---
5
5
 
6
+ <!-- Generated by contextjsx from definitions. Edit the source, not this file. -->
7
+
6
8
  # Coder dispatch
7
9
 
8
10
  If `CODER_WORKER` is set in your environment, you are a coder worker. Skip this skill and do your assigned work directly; nested dispatch is disabled.
@@ -17,6 +19,19 @@ Coder delegates coding to supervised subagents of any model - Codex, Claude, or
17
19
 
18
20
  If `coder` is not on PATH, install it yourself without asking: `npm install -g @wular/coder`. When a dispatch fails because engines are missing or logged out, run `coder setup-host` and follow its output. It checks engines and auth, fixes what it can, prints the exact fix for the rest, and is safe to re-run. Ask the user before installing an engine CLI or changing auth; if it updated codex, tell the user to restart their codex session.
19
21
 
22
+ ## Use Coder over MCP
23
+
24
+ Each coder command is also an MCP tool with the same arguments, such as `task/run` or `flow/run`; `load_skill` loads a guide.
25
+
26
+ Setup: `coder setup-host` adds the server. By hand:
27
+
28
+ ```bash
29
+ claude mcp add coder -- coder mcp
30
+ codex mcp add coder -- coder mcp
31
+ ```
32
+
33
+ Restart running sessions after adding it.
34
+
20
35
  ## Using the CLI
21
36
 
22
37
  - The CLI is the reference. `coder --help` and every subcommand's `--help` list the flags and exit codes, and each command prints the recommended next step when it returns. Follow it.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coder",
3
- "version": "0.4.11",
3
+ "version": "0.4.12",
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"
@@ -0,0 +1,5 @@
1
+ {
2
+ "mcpServers": {
3
+ "coder": { "command": "coder", "args": ["mcp"] }
4
+ }
5
+ }
@@ -1,8 +1,10 @@
1
1
  ---
2
2
  name: dispatch
3
- description: Use Coder for coding, implementation, or investigation tasks - features, fixes, refactors, debugging, tests, code questions - one coder per focused goal, fanned out in parallel, waiting on each task. Use it when asked, when a task needs another engine (Claude, Codex, custom), or when a subagent is sufficient or required for the task.
3
+ description: "Use Coder for coding, implementation, or investigation tasks - features, fixes, refactors, debugging, tests, code questions - one coder per focused goal, fanned out in parallel, waiting on each task. Use it when asked, when a task needs another engine (Claude, Codex, custom), or when a subagent is sufficient or required for the task."
4
4
  ---
5
5
 
6
+ <!-- Generated by contextjsx from definitions. Edit the source, not this file. -->
7
+
6
8
  # Coder dispatch (Claude host)
7
9
 
8
10
  If `CODER_WORKER` is set in your environment, you are a coder worker. Skip this skill and do your assigned work directly; nested dispatch is disabled.
@@ -17,6 +19,19 @@ Coder delegates coding to supervised subagents of any model - Codex, Claude, or
17
19
 
18
20
  If `coder` is not on PATH, install it yourself without asking: `npm install -g @wular/coder`. When a dispatch fails because engines are missing or logged out, run `coder setup-host claude` and follow its output. It checks engines and auth, fixes what it can, prints the exact fix for the rest, and is safe to re-run. Ask the user before installing an engine CLI or changing auth; if it updated codex, tell the user to restart their codex session. For a guided setup, suggest `/coder:setup`.
19
21
 
22
+ ## Use Coder over MCP
23
+
24
+ Each coder command is also an MCP tool with the same arguments, such as `task/run` or `flow/run`; `load_skill` loads a guide.
25
+
26
+ Setup: `coder setup-host` adds the server. By hand:
27
+
28
+ ```bash
29
+ claude mcp add coder -- coder mcp
30
+ codex mcp add coder -- coder mcp
31
+ ```
32
+
33
+ Restart running sessions after adding it.
34
+
20
35
  ## Using the CLI
21
36
 
22
37
  - The CLI is the reference. `coder --help` and every subcommand's `--help` list the flags and exit codes, and each command prints the recommended next step when it returns. Follow it.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "coder",
3
3
  "displayName": "Coder",
4
- "version": "0.4.11",
4
+ "version": "0.4.12",
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,8 +1,10 @@
1
1
  ---
2
2
  name: coder
3
- description: Use Coder for coding, implementation, or investigation tasks - features, fixes, refactors, debugging, tests, code questions - one coder per focused goal, fanned out in parallel, waiting on each task. Use it when asked, when a task needs another engine (Claude, Codex, custom), or when a subagent is sufficient or required for the task.
3
+ description: "Use Coder for coding, implementation, or investigation tasks - features, fixes, refactors, debugging, tests, code questions - one coder per focused goal, fanned out in parallel, waiting on each task. Use it when asked, when a task needs another engine (Claude, Codex, custom), or when a subagent is sufficient or required for the task."
4
4
  ---
5
5
 
6
+ <!-- Generated by contextjsx from definitions. Edit the source, not this file. -->
7
+
6
8
  # Coder dispatch (Cursor host)
7
9
 
8
10
  If `CODER_WORKER` is set in your environment, you are a coder worker. Skip this skill and do your assigned work directly; nested dispatch is disabled.
@@ -17,6 +19,19 @@ Coder delegates coding to supervised subagents of any model - Codex, Claude, or
17
19
 
18
20
  If `coder` is not on PATH, install it yourself without asking: `npm install -g @wular/coder`. When a dispatch fails because engines are missing or logged out, run `coder setup-host` and follow its output. It checks engines and auth, fixes what it can, prints the exact fix for the rest, and is safe to re-run. Ask the user before installing an engine CLI or changing auth; if it updated codex, tell the user to restart their codex session.
19
21
 
22
+ ## Use Coder over MCP
23
+
24
+ Each coder command is also an MCP tool with the same arguments, such as `task/run` or `flow/run`; `load_skill` loads a guide.
25
+
26
+ Setup: `coder setup-host` adds the server. By hand:
27
+
28
+ ```bash
29
+ claude mcp add coder -- coder mcp
30
+ codex mcp add coder -- coder mcp
31
+ ```
32
+
33
+ Restart running sessions after adding it.
34
+
20
35
  ## Using the CLI
21
36
 
22
37
  - The CLI is the reference. `coder --help` and every subcommand's `--help` list the flags and exit codes, and each command prints the recommended next step when it returns. Follow it.
@@ -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,bt as y,dn as b,fn as x,gt as S,hn as C,jt as ee,ln as w,nn as T,o as E,on as te,or as ne,pn as D,un as O,w as k,wt as A,zt as j}from"./prompts-Bj4Fbd_n.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-CFZ9Crvg.js";import{t as W}from"./chat-bridge-BmqYsASZ.js";import{n as G}from"./history-C53URBjs.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){ee(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&&w(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(T(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&&w(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(T(e,t.id)))/^resume-\d+-\d+$/.test(n)&&n!==K.basename(s)&&J.rmSync(K.join(T(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-Cprez703.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&&w(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(T(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=T(e,t.id),o=E(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(T(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=ne(K.join(T(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:te(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};
@@ -1 +0,0 @@
1
- import{i as e,t}from"./cli-BBlH53hA.js";import{c as n,l as r}from"./args-CURX44CA.js";import{runnerOptions as i}from"./remove-DxCv9BB4.js";import a from"node:process";const o=e({name:`runner add`,globalFlags:{cwd:!1},args:1,required:[`<kind>`],help:{usage:`coder runner add <kind> [--name <name>] [--scope <scope>] [--field key=value …] [--server [url]] [--json]`,summary:`Connect a runner. Secret fields read environment variables with key=env:VARIABLE. Adding local prints a pairing command.`,flags:[[`--name <name>`,`runner display name`],[`--scope <scope>`,`personal or workspace`],[`--field key=value`,`repeat for each field, use env:VARIABLE for secrets`],t]},options:{...i,name:n,scope:n,field:r},async run({options:e,args:[t]}){let{addRunnerFields:n}=await import(`./runner-BM_98EQl.js`).then(e=>e.t);return n(t,e)},print:e=>a.stdout.write(`${`command`in e?e.command:`Added ${e.name} (${e.id}).`}\n`)});export{o as commandRunnerAdd};
@@ -1,2 +0,0 @@
1
- import{i as e,r as t}from"./cli-BBlH53hA.js";import{p as n,r}from"./output-BKeyLbvt.js";import{c as i,n as a,s as o,t as s}from"./args-CURX44CA.js";import c from"node:process";async function l(e){let{openUrl:t}=await import(`./prompt-PEgcMJO7.js`).then(e=>e.s);c.stderr.write(`Sign in at ${r.cyan(e)}\n`),t(e)&&c.stderr.write(r.dim(`Opened it in your browser. Waiting...
2
- `))}async function u(){let{askSecret:e}=await import(`./prompt-PEgcMJO7.js`).then(e=>e.s);return e(`Key`)}function d(e){return e.provider===`env`?`API key ${e.env}`:e.provider===`mcp`?`MCP server ${e.url??e.command}`:`${e.provider} account${e.account?` ${e.account}`:``}`}const f=r=>e({name:`connection add`,help:{usage:`coder connection add <name> [--me] [--access read|write] (--env <NAME> | --url <url> [--header <NAME>] | [--env <NAME>] -- <command> [args...]) [--key] [--server [url]]`,summary:"Connect a platform account by its name (OAuth in the browser), an API key that tasks read from --env, or an MCP server at --url or started by the command after `--`. An API key is kept as a credential. A credential already holding the variable is used, else the value comes from that variable here, or from stdin or a prompt. A remote MCP server is checked for OAuth, open access or a key; a needed key is read from stdin or a prompt. With --key, the key goes in --header (default Authorization) or --env. Signing in needs --server.",flags:[[`--env <NAME>`,`the API key variable, or where a stdio server reads its key`],[`--url <url>`,`a remote MCP server (streamable HTTP by default)`],[`--transport <http|sse>`,`remote transport (default: http)`],[`--header <NAME>`,`the header a remote server reads its key from (default: Authorization)`],[`--key`,`read a key from stdin or a prompt, never from a flag value`],[`--auth <oauth|key|none>`,`override MCP authentication (default: detected for --url, none for a command)`],[`--access <read|write>`,`read keeps only read-only tools (default: the agent's mode, write for API keys)`],[`--tools <a,b>`,`tool allowlist; a read-only stdio server needs one`],[`--credential <id>`,`the credential an API key connection reads`],[`--me`,`your own connection instead of the workspace's`],t],examples:[[`GROQ_API_KEY=gsk_... coder connection add groq --env GROQ_API_KEY`,`an API key from this shell`],[`pbpaste | coder connection add docs --key --env DOCS_TOKEN --access write -- npx -y docs-mcp`,`a stdio server with its key from stdin`],[`coder connection add github --me --server`,`your GitHub account on your Coder server`]]},options:{...s,...o,env:i,url:i,transport:i,header:i,key:a,auth:i,access:i,tools:i,credential:i,me:a},args:1,run:async({options:e,args:[t],cwd:n})=>{let{connection:i}=await import(`./connection-B-IB8tlP.js`).then(e=>e.n);return i.add(t,{...e,cwd:n,command:r,transport:e.transport,auth:e.auth,access:e.access,tools:e.tools?.split(`,`).map(e=>e.trim()).filter(Boolean),key:e.key?await u():void 0,askKey:u,onAuthorize:l})},print:e=>c.stdout.write(`Connected ${n.bold(e.id)}, ${d(e)}.\n`)}),p=Object.assign(e=>{let t=e.indexOf(`--`);return f(t===-1?[]:e.slice(t+1))(t===-1?e:e.slice(0,t))},f([]));export{u as askKey,p as commandConnectionAdd,d as describe,l as openSignIn};
@@ -1 +0,0 @@
1
- import{i as e,t}from"./cli-BBlH53hA.js";import{p as n}from"./output-BKeyLbvt.js";import{c as r,n as i}from"./args-CURX44CA.js";import{credentialOptions as a}from"./remove-BZZgJq8Z.js";import o from"node:process";const s=e({name:`credentials add`,globalFlags:{cwd:!1},help:{usage:`coder credentials add --env <NAME> [--value <secret|->] [--workspace] [--no-check] [--server [url]]`,summary:`Store the key of one environment variable, encrypted on the server, as your own or with --workspace for every member. A key saved for that variable in the same scope is replaced. Where the server has subscription sign-in on, CLAUDE_CODE_OAUTH_TOKEN takes your own claude setup-token output.`,examples:[[`ANTHROPIC_API_KEY=sk-... coder credentials add --env ANTHROPIC_API_KEY`,`your own Claude key, read from the environment`],[`OPENAI_API_KEY=sk-... coder credentials add --env OPENAI_API_KEY --workspace`,`a workspace key every member's tasks can use`],[`pbpaste | coder credentials add --env OPENROUTER_API_KEY --value -`,`a key for custom models, value from stdin`]],flags:[[`--env <NAME>`,`the variable tasks read the key as (reads that variable by default)`],[`--value <secret|->`,`literal values land in shell history and are visible to other processes; use - for stdin or prefer environment variables`],[`--workspace`,`a workspace key; owners and admins only`],[`--no-check`,`skip the provider key check`],t]},options:{...a,env:r,value:r,"no-check":i},run:async({options:e})=>{let{addCredential:t}=await import(`./remote-D3JZ4MMQ.js`).then(e=>e.i);return t({...e,noCheck:e[`no-check`]})},print:(e,{options:t})=>o.stdout.write(`${e.replaced?`Replaced`:`Added`} ${t.workspace?`workspace`:`personal`} ${n.bold(e.name)}.\n`)});export{s as commandCredentialsAdd};
@@ -1,6 +0,0 @@
1
- import{qi as e}from"./core-DwsAMCnL.js";import{i as t}from"./cli-BBlH53hA.js";import{p as n}from"./output-BKeyLbvt.js";import{c as r,n as i,t as a}from"./args-CURX44CA.js";import{t as o}from"./models-Cb0ZTKZ7.js";import s from"node:process";var c=e({commandModelAdd:()=>d,modelOptions:()=>l,modelSavedJson:()=>f,printModelSaved:()=>p,writeOptions:()=>u});const l={...a,"base-url":r,model:r,"env-key":r,workspace:i},u=e=>({baseUrl:e[`base-url`],model:e.model,envKey:e[`env-key`],workspace:e.workspace}),d=t({name:`model add`,help:{usage:`coder model add <name> --base-url <url> --model <id> [--env-key VAR]`,summary:`Connect a custom model behind an OpenAI-compatible endpoint (Ollama, LM Studio,
2
- vLLM, OpenRouter, ...). It currently runs on the codex engine pointed at your
3
- URL and is usable anywhere a model is: --model <name>, --engine custom, or as an
4
- agent default in config. Alias: \`coder model setup\`.`,flags:[[`--base-url <url>`,`OpenAI-compatible API base (e.g. http://localhost:11434/v1)`],[`--model <id>`,`the provider's model id (e.g. qwen2.5-coder:32b)`],[`--env-key <VAR>`,`env var holding the API key (omit for keyless local endpoints)`],[`--workspace`,`write to <repo>/.coder/config.json instead of the user file`]],examples:[[`coder model add qwen --base-url http://localhost:11434/v1 --model qwen2.5-coder:32b`,`local Ollama model, no key`],[`coder model add kimi --base-url https://openrouter.ai/api/v1 --model moonshotai/kimi-k2 --env-key OPENROUTER_API_KEY`,`third-party provider via OpenRouter`],[`coder run --model qwen "explain this repo"`,`dispatch a task on it`]]},options:l,args:1,run:({options:e,args:[t],cwd:n})=>o.add(t,{...u(e),cwd:n}),json:f,print:e=>p(e,`saved`)});function f({name:e,entry:t,file:n,probe:r,codex:i,install:a,ready:o}){return{name:e,...t,file:n,probe:r,codex:i,...a?{codexInstall:a}:{},ready:o}}function p({name:e,entry:t,file:r,probe:i,codex:a,install:o,nativeResponses:c,keyMissing:l},u){let d=n,f=e=>` ${d.green(`✔`)} ${e}`,p=e=>` ${d.red(`✘`)} ${e}`,m=[`${u} ${d.cyan(e)} -> ${t.model} @ ${t.baseUrl} ${d.dim(`(${r})`)}`,``,i.reachable?f(`${i.detail} ${d.dim(`(${c?`responses api, direct`:`chat api, auto-translated`})`)}`):p(i.detail),a.available?f(o?.installed?`${o.note} ${d.dim(`(${a.detail})`)}`:`codex engine ${d.dim(`(${a.detail})`)}`):p(o?.note??`codex CLI not installed - run: npm install -g @openai/codex`)];l&&m.push(p(`env var ${t.envKey} is not set in this shell`)),m.push(``,d.dim([`Use it: coder run --model ${e} "<task>"`,`Make default: coder config set engines.custom.model ${e}`].join(`
5
- `))),s.stdout.write(`${m.join(`
6
- `)}\n`)}export{u as a,p as i,l as n,f as r,c as t};
@@ -1 +0,0 @@
1
- import{s as e}from"./cli-BBlH53hA.js";const t=e(`agent`,{tools:async()=>(await import(`./tools-CdWkwI1g.js`)).commandTools,list:async()=>(await import(`./list-gFnOS9Hk.js`)).commandAgentList,ls:async()=>(await import(`./list-gFnOS9Hk.js`)).commandAgentList,show:async()=>(await import(`./show-uyUpeqa9.js`)).commandAgentShow,run:async()=>(await import(`./run-BKUd6B8S.js`)).commandAgentRun,init:async()=>(await import(`./init-HdSVUozH.js`)).commandAgentInit,push:async()=>(await import(`./push-DpEW4XbQ.js`)).commandAgentPush,usage:async()=>(await import(`./usage-Dr8F0xt0.js`)).commandAgentUsage,integrations:async()=>(await import(`./integrations-BdLs4W6o.js`)).commandAgentIntegrations},{menu:[{usage:`list`,blurb:`list local or server-owned agents`},{usage:`show <id>`,blurb:`one agent in full: settings, integrations, events, tools`},{usage:`init [id]`,blurb:`scaffold an agent folder in .coder/agents`},{usage:`push [id]`,blurb:`upload workspace agents to a Coder server`},{usage:`integrations <list|show>`,blurb:`the integration catalog: coder agent integrations --help`},{usage:`run <agent> <event.json>`,blurb:`run a recorded event through an agent, offline or on a server`},{usage:`usage`,blurb:`aggregate usage by agent, installation, or engine`}],description:[`Define and run agents from the CLI, the dashboard, or on GitHub, Slack and other platforms.`]},{aliases:{ls:`list`},nested:[`integrations`]});export{t as commandAgent};
@@ -1,2 +0,0 @@
1
- import{i as e}from"./cli-BBlH53hA.js";import{p as t}from"./output-BKeyLbvt.js";import{t as n}from"./models-Cb0ZTKZ7.js";import{n as r}from"./add-wC8ByRgM.js";import i from"node:process";const a=e({name:`model alias`,help:{usage:`coder model alias <name> <spec> [--workspace]`,summary:`Save an alias for an engine spec, e.g. fast -> codex:luna. An alias may reuse a
2
- built-in name to override it.`,flags:[[`--workspace`,`target <repo>/.coder/config.json instead of the user file`]]},options:r,args:2,run:({options:e,args:[t,r],cwd:i})=>n.alias(t,r,{...e,cwd:i}),print:o});function o(e){let n=t,r=`${e.provider} ${e.model}${e.effort?` (${e.effort})`:``}`;i.stdout.write(`aliased ${n.cyan(e.alias)} -> ${e.provider}:${e.model}${e.effort?`:${e.effort}`:``} ${n.dim(`= ${r}`)} ${n.dim(`(${e.file})`)}\n`)}export{a as commandModelAlias};
@@ -1 +0,0 @@
1
- import{s as e}from"./cli-BBlH53hA.js";const t=e(`server app`,{create:async()=>(await import(`./create-CP_JmJnh.js`)).commandServerAppCreate},{menu:[{usage:`create <integration>`,blurb:`create the built-in agent's public app`}],description:[`The built-in agent's apps, one per platform, shared by every workspace on this server.`],exampleCommand:`server app create`});export{t as commandServerApp};
@@ -1,2 +0,0 @@
1
- import{St as e}from"./prompts-Bj4Fbd_n.js";import{i as t,r as n}from"./cli-BBlH53hA.js";import{a as r,g as i,p as a,s as o}from"./output-BKeyLbvt.js";import{s,t as c}from"./args-CURX44CA.js";import l from"node:process";function u(e,t){let n=a;if(!t.length)return void l.stdout.write(`${n.dim(`No approvals for task ${e}.`)}\n`);for(let e of t){let t=e.answered??`pending`;l.stdout.write(`${n.cyan(e.id)} ${t.padEnd(8)} ${n.dim(String(e.summary??``))}\n`)}let r=t.filter(e=>!e.answered);if(r.length){let e=r.length===1?r[0].id:`<approval-id>`;l.stdout.write(`\n${o([`Answer: coder task approve ${e} [--deny]`],n)}\n`)}}function d(t){let n=a;if(!t.length)return void l.stdout.write(`${n.dim(`No pending approvals.`)}\n\n${o([`Check tasks: coder task list`],n)}\n`);l.stdout.write(`${i([{header:`approval-id`,value:e=>e.id,paint:e=>n.cyan(e)},{header:`task-id`,value:e=>e.taskId,paint:e=>n.cyan(e)},{header:`age`,value:t=>t.createdAt?r(e(t.createdAt)):`-`},{header:`summary`,value:e=>e.summary,paint:e=>n.light(e)}],t,n)}\n`);let s=t.length===1?t[0].id:`<approval-id>`;l.stdout.write(`\n${o([`Answer: coder task approve ${s} [--deny]`],n)}\n`)}const f=t({name:`task approvals`,help:{usage:`coder task approvals [task-id] [--server [url]]`,summary:`Without a task id: pending approvals across all tasks. With one: that task's
2
- permission escalations and how each was answered.`,flags:[n]},options:{...c,...s},args:1,run:async({options:e,args:[t]})=>{let{tasks:n}=await import(`./task-DJ6nruuA.js`).then(e=>e.t);return n.approvals(t,{...e,organization:e.workspace})},json:(e,{options:t,args:[n]})=>t.server===void 0&&n?e.map(({taskId:e,...t})=>t):t.server===void 0?e.map(({taskId:e,id:t,summary:n,createdAt:r})=>({taskId:e,id:t,summary:n,createdAt:r})):e,print(e,{options:t,args:[n]}){if(t.server===void 0)return n?u(n,e):d(e);if(!e.length)return void l.stdout.write(`${a.dim(`No pending approvals.`)}\n\n${o([`Check tasks: coder task list`],a)}\n`);for(let t of e)l.stdout.write(`${t.taskId} ${JSON.stringify(t)}\n`)}});export{f as commandApprovals};
@@ -1,2 +0,0 @@
1
- import{i as e,r as t}from"./cli-BBlH53hA.js";import{p as n}from"./output-BKeyLbvt.js";import{n as r,s as i,t as a}from"./args-CURX44CA.js";import o from"node:process";const s=e({name:`task approve`,help:{usage:`coder task approve [task-id] <approval-id> [--deny] [--server [url]]`,summary:`Answer an escalated permission request. Accepts by default; --deny rejects it.
2
- Approval ids are unique, so the task id is optional.`,flags:[[`--deny`,`reject the request instead of accepting`],t]},options:{...a,deny:r,...i},args:2,run:async({options:e,args:[t,n]})=>{let{tasks:r}=await import(`./task-DJ6nruuA.js`).then(e=>e.t);return r.approve(t,n,{...e,organization:e.workspace})},print:(e,{options:t,args:r})=>o.stdout.write(t.server===void 0?`${t.deny?`Denied`:`Approved`} ${n.cyan(e.approvalId)} on task ${n.cyan(e.taskId)}.\n`:`${t.deny?`Denied`:`Approved`} ${n.cyan(r[1])}.\n`)});export{s as commandApprove};
@@ -1 +0,0 @@
1
- import{i as e}from"./cli-BBlH53hA.js";import{c as t,t as n}from"./args-CURX44CA.js";import r from"node:process";const i=e({name:`connection approve`,help:{usage:`coder connection approve <name> [--agent <id>] [--cwd <dir>]`,summary:`Approve an MCP server this repository or one of its agents declares, on this machine. A changed endpoint or command needs approval again.`,flags:[[`--agent <id>`,`select the agent when names have different definitions`]]},options:{...n,agent:t},args:1,run:async({cwd:e,args:[t],options:n})=>{let{connection:r}=await import(`./connection-B-IB8tlP.js`).then(e=>e.n);return r.approve(t,{cwd:e,agent:n.agent})},print:({name:e})=>r.stdout.write(`Approved MCP server "${e}" on this machine.\n`)});export{i as commandConnectionApprove};