@wular/coder 0.4.1 → 0.4.2

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 (244) hide show
  1. package/README.md +69 -70
  2. package/dist/{add-ej0X9e3a.js → add-C2y-mVzl.js} +1 -1
  3. package/dist/{add-U-pty9qJ.js → add-CLYTF_up.js} +1 -1
  4. package/dist/{add-CE-70LFs.js → add-DRsPpQFl.js} +1 -1
  5. package/dist/{add-BxpLHnvD.js → add-DkpUwhtO.js} +1 -1
  6. package/dist/{add-json-CEa-6luW.js → add-json-5uPnWPoD.js} +1 -1
  7. package/dist/{agent-BsYx3Odz.js → agent-hw3zKw8y.js} +1 -1
  8. package/dist/{agent-JdtZozvP.js → agent-r5mMcehf.js} +1 -1
  9. package/dist/{alias-DX-Bm86x.js → alias-_0Rwf2cA.js} +1 -1
  10. package/dist/{app-BT5f7zL5.js → app-oE8G1-bi.js} +1 -1
  11. package/dist/{approvals-C-AvFt6s.js → approvals-DbVrsxec.js} +1 -1
  12. package/dist/{approve-DOmpQRNd.js → approve-DeAhFL-m.js} +1 -1
  13. package/dist/{apps-CjfrZyM5.js → apps-eujHiNca.js} +1 -1
  14. package/dist/{archive-BziJ1rQ-.js → archive-BCUfymIB.js} +1 -1
  15. package/dist/{archive-BUB8gFKD.js → archive-DZ6vpMHb.js} +1 -1
  16. package/dist/{archive-sweep-CtBcARgN.js → archive-sweep-Cxbh8yAI.js} +1 -1
  17. package/dist/{ask-dE3U3ss2.js → ask-BU2WVxVM.js} +1 -1
  18. package/dist/auth-CBWTmAPA.js +1 -0
  19. package/dist/{auth-BFny--17.js → auth-Dmn2U7rr.js} +1 -1
  20. package/dist/{cli-BilSDkvE.js → cli-DWCR7iqa.js} +1 -1
  21. package/dist/cli.js +1 -1
  22. package/dist/{config-Da_cwoxI.js → config-12pK4qW7.js} +1 -1
  23. package/dist/{create-C_iMJV4Y.js → create-D3f6q0Yq.js} +1 -1
  24. package/dist/credentials-l6dsrZLL.js +1 -0
  25. package/dist/dash/manifest.json +744 -858
  26. package/dist/dash/public/assets/chunks/{agent-pills-c9c4ac4d4a10df83.js → agent-pills-dd0b7643e125bbf1.js} +1 -1
  27. package/dist/dash/public/assets/chunks/{agent-settings-form-8be2ddab074aba6d.js → agent-settings-form-45ae6aeaaed2b568.js} +1 -1
  28. package/dist/dash/public/assets/chunks/{agents-grid-951584b6f4c4314e.js → agents-grid-b906da80c31fc035.js} +1 -1
  29. package/dist/dash/public/assets/chunks/{combo-41234c24668b1db1.js → combo-952a457d52360d88.js} +1 -1
  30. package/dist/dash/public/assets/chunks/{composer-d10d4b1d54c4f751.js → composer-49f9e7c5c4dfda3b.js} +1 -1
  31. package/dist/dash/public/assets/chunks/{composer-5534be50bc12385e.js → composer-f331d00837143aee.js} +1 -1
  32. package/dist/dash/public/assets/chunks/{connect-apps-aa2a3d82e48ed8c3.js → connect-apps-661f3b3a85f1776a.js} +1 -1
  33. package/dist/dash/public/assets/chunks/{credentials-list-bc5bfcab058176c5.js → credentials-list-e6177d0943517929.js} +2 -2
  34. package/dist/dash/public/assets/chunks/{custom-range-4761ab14f05149df.js → custom-range-03ba6fb2ade7d282.js} +1 -1
  35. package/dist/dash/public/assets/chunks/{editor-bfe8cd854f8001be.js → editor-34cb529d6d8a4b09.js} +1 -1
  36. package/dist/dash/public/assets/chunks/{engines-list-f1191390f5715b39.js → engines-list-2f1acee3ecc8461a.js} +1 -1
  37. package/dist/dash/public/assets/chunks/{heads-f3bcd289663d48fa.js → heads-1570a3a6db331979.js} +1 -1
  38. package/dist/dash/public/assets/chunks/{list-1d259660d7612c5f.js → list-87b359bebd26986a.js} +1 -1
  39. package/dist/dash/public/assets/chunks/{mcp-list-e3bebbbe831393b8.js → mcp-list-b42f0d2ee463b37d.js} +1 -1
  40. package/dist/dash/public/assets/chunks/{models-list-44f857a469ca04d5.js → models-list-0669d26fd662aec3.js} +1 -1
  41. package/dist/dash/public/assets/chunks/{platform-actions-d1426602049926d2.js → platform-actions-c92ca3c6198a9387.js} +1 -1
  42. package/dist/dash/public/assets/chunks/{runners-list-1901af8a5dea1f09.js → runners-list-9fffa50432c470c9.js} +1 -1
  43. package/dist/dash/public/assets/chunks/{select-7ae25fd8a7d6c338.js → select-1013702bdfb1ade4.js} +1 -1
  44. package/dist/dash/public/assets/chunks/shared-init-20e199043ff5d00f.js +2 -0
  45. package/dist/dash/public/assets/chunks/{task-actions-8e1d93c788d001df.js → task-actions-a9603d520434baab.js} +1 -1
  46. package/dist/dash/public/assets/chunks/{task-view-6d7618d2820a5cb4.js → task-view-f7039cb330bcb0b5.js} +3 -3
  47. package/dist/dash/public/assets/chunks/{tasks-list-f4784e5cbd0ed785.js → tasks-list-2a905b4a0c3a9042.js} +1 -1
  48. package/dist/dash/public/assets/chunks/{toolbar-a75d2570f07cbb70.js → toolbar-f964fa864699f095.js} +1 -1
  49. package/dist/dash/public/assets/dash-49ca85b59ac65c20.css +1 -0
  50. package/dist/dash/public/assets/dash-account-96fc41be318839fa.css +1 -0
  51. package/dist/dash/public/assets/dash-agents-290a7b21c7dc0c92.css +1 -0
  52. package/dist/dash/public/assets/dash-agents-new-a7a07bf4ebda24c2.css +1 -0
  53. package/dist/dash/public/assets/dash-agents-param-slug-69a72fb0bbd14cc2.css +1 -0
  54. package/dist/dash/public/assets/dash-agents-param-slug-edit-397bdfb2f0ca328c.css +1 -0
  55. package/dist/dash/public/assets/dash-agents-param-slug-platforms-a7b3b7247c27f1d2.css +1 -0
  56. package/dist/dash/public/assets/dash-agents-param-slug-settings-8389b7d0555e8ccf.css +1 -0
  57. package/dist/dash/public/assets/dash-agents-param-slug-tasks-5987b8aea5e8f30d.css +1 -0
  58. package/dist/dash/public/assets/dash-agents-param-slug-usage-19abc69e1d4e6b0a.css +1 -0
  59. package/dist/dash/public/assets/dash-settings-53b8e6a8f656fa1a.css +1 -0
  60. package/dist/dash/public/assets/dash-settings-param-tab-ac61fdfdd6fd533f.css +1 -0
  61. package/dist/dash/public/assets/dash-tasks-cc0b1d32874b731c.css +1 -0
  62. package/dist/dash/public/assets/dash-tasks-param-id-02b8c7bd99cc1090.css +1 -0
  63. package/dist/dash/public/assets/dash-usage-884943221f76ad93.css +1 -0
  64. package/dist/dash/public/assets/pnext-client-17ba55bb57a1f4da.js +1 -0
  65. package/dist/dash/public/assets/{pnext-client-1b9ab0963a8ff77b.js → pnext-client-1afa4148bea69ad2.js} +1 -1
  66. package/dist/dash/public/assets/pnext-client-2693db10b197ade1.js +1 -0
  67. package/dist/dash/public/assets/pnext-client-43f52a07f8067b1b.js +1 -0
  68. package/dist/dash/public/assets/pnext-client-4594b693fe612835.js +1 -0
  69. package/dist/dash/public/assets/pnext-client-73f73e24f8141fb6.js +1 -0
  70. package/dist/dash/public/assets/pnext-client-7574da4651b40eae.js +1 -0
  71. package/dist/dash/public/assets/pnext-client-7b3a2c1092cbbb02.js +1 -0
  72. package/dist/dash/public/assets/pnext-client-816fe5fc96d3f768.js +1 -0
  73. package/dist/dash/public/assets/pnext-client-86cb956b448b0887.js +1 -0
  74. package/dist/dash/public/assets/pnext-client-8b64e3c030164288.js +1 -0
  75. package/dist/dash/public/assets/pnext-client-8f6161084c595a22.js +1 -0
  76. package/dist/dash/public/assets/pnext-client-9203ec11926e5d04.js +1 -0
  77. package/dist/dash/public/assets/pnext-client-a38b446f941d44df.js +1 -0
  78. package/dist/dash/public/assets/pnext-client-bd8d51aaa095e8a4.js +1 -0
  79. package/dist/dash/public/assets/pnext-client-e9821d1f1bdb281d.js +1 -0
  80. package/dist/dash/server/bundle-0.1.6-b29ec45cb963d47f/entry.js +2 -0
  81. package/dist/{default-vYPT26DR.js → default-CwQXCtoB.js} +1 -1
  82. package/dist/{default-Bobztoxf.js → default-De8FXiWz.js} +1 -1
  83. package/dist/{delete-z1_86nf6.js → delete-BD6AnCLg.js} +1 -1
  84. package/dist/{delete-D8gEwoOj.js → delete-cS01oOIb.js} +1 -1
  85. package/dist/{disable-DVKd-0Xb.js → disable-BMWWeYFQ.js} +1 -1
  86. package/dist/{discover-Df-a8K4R.js → discover-Cfx5RPU7.js} +1 -1
  87. package/dist/{docs-DKJnqZqt.js → docs-DWegDRiu.js} +1 -1
  88. package/dist/{enable-C8Zf_wpN.js → enable-Cfzeau2x.js} +1 -1
  89. package/dist/{flow-17k25MHt.js → flow-kAxxVOiR.js} +1 -1
  90. package/dist/{init-CoMfFxbG.js → init-C4tDFH4G.js} +1 -1
  91. package/dist/integrations-D-L3uQRj.js +1 -0
  92. package/dist/{list-BYiG8Zav.js → list-5Ljf9TxF.js} +2 -2
  93. package/dist/{list-BAKvxSbh.js → list-COAo7eZd.js} +1 -1
  94. package/dist/{list-DX-z3SBp.js → list-DuPqU3fk.js} +1 -1
  95. package/dist/{list-C5w01-8q.js → list-DzGuMkQy.js} +1 -1
  96. package/dist/{list-VToARh3C.js → list-J8d_zh-o.js} +1 -1
  97. package/dist/{list-BxEywhHU.js → list-vOvIpbOH.js} +1 -1
  98. package/dist/{list-CIW2joV1.js → list-vpyS-hv8.js} +1 -1
  99. package/dist/{list-DpCf4G-H.js → list-way5oLO0.js} +1 -1
  100. package/dist/{login-DkkslfBx.js → login-BBw95-S3.js} +1 -1
  101. package/dist/{login-BFxX4jJy.js → login-CNmeRAL7.js} +1 -1
  102. package/dist/{logout-BHAtw4Z8.js → logout-j0dTo_Ib.js} +1 -1
  103. package/dist/{maintenance-C5FklUw3.js → maintenance-DkLVtqM7.js} +1 -1
  104. package/dist/{mcp-CCZOAo06.js → mcp-CsmBtlW9.js} +1 -1
  105. package/dist/{migrate-C4vM7DQN.js → migrate-D4nzYhk8.js} +1 -1
  106. package/dist/{model-Bs1StDo3.js → model-B79MFtRV.js} +1 -1
  107. package/dist/{push-CUC55Bqd.js → push-DbdnbZYt.js} +1 -1
  108. package/dist/{queue-6io_NOP3.js → queue-C9fSdE_X.js} +27 -27
  109. package/dist/refresh-BDmap1RA.js +1 -0
  110. package/dist/{remove-B93LNkZI.js → remove-BNzbUhaK.js} +1 -1
  111. package/dist/{remove-eQ8y5C5p.js → remove-CLpL12Ya.js} +1 -1
  112. package/dist/{remove-CuH8a3L9.js → remove-CaYH9Cna.js} +1 -1
  113. package/dist/{remove-C5_xggx7.js → remove-D-QeeZQL.js} +1 -1
  114. package/dist/{rename-CYfy03FE.js → rename-Bhcb4t9F.js} +1 -1
  115. package/dist/{result-BEtQZHaY.js → result-BfTfJayl.js} +1 -1
  116. package/dist/{result-BzaM3inj.js → result-D8DsvJDu.js} +1 -1
  117. package/dist/{resume-DYzKvyEw.js → resume-aZ8yWDBh.js} +1 -1
  118. package/dist/{review-oIBeECZE.js → review-BEhDcX4b.js} +1 -1
  119. package/dist/{rotate-key-IdMYH7gg.js → rotate-key-BqnKhTK8.js} +1 -1
  120. package/dist/{run-CTtd0Znc.js → run-BWbabvub.js} +1 -1
  121. package/dist/{run-CawRGnOg.js → run-BdPjxaZU.js} +1 -1
  122. package/dist/{run-BDYl0CKl.js → run-Dqe38jX8.js} +1 -1
  123. package/dist/runner-BPpiJvHx.js +1 -0
  124. package/dist/sdk.js +1 -1
  125. package/dist/{serve-CPnmrKyf.js → serve-C0WC-QrV.js} +2 -2
  126. package/dist/{serve-GmRO89s5.js → serve-CcObDKKQ.js} +1 -1
  127. package/dist/{serve-CE8YV2e9.js → serve-Ck95047c.js} +1 -1
  128. package/dist/{serve-CQKZxzFE.js → serve-DA5I2qXj.js} +2 -2
  129. package/dist/{server-Kb22cWfF.js → server-BxLFZL80.js} +1 -1
  130. package/dist/{setup-host-GFTUzzZJ.js → setup-host-DLd_j2Uw.js} +1 -1
  131. package/dist/{shared-DVtzWhUT.js → shared-BLkGRKty.js} +1 -1
  132. package/dist/{show-COTZEYgc.js → show-DzoQIs75.js} +1 -1
  133. package/dist/{show-CMUg8SJu.js → show-FC3dJcD-.js} +1 -1
  134. package/dist/{status-D26U--p8.js → status-BU3DR1XU.js} +1 -1
  135. package/dist/{steer-C6uARLp5.js → steer-P_38hRRD.js} +1 -1
  136. package/dist/{stop-BrGI3hSS.js → stop-BJGDRPsp.js} +1 -1
  137. package/dist/{stop-ByCAlbmN.js → stop-BWY6k6v5.js} +1 -1
  138. package/dist/{store-DzqXS2wT.js → store-B3ZHoBJY.js} +4 -4
  139. package/dist/{store-B94tSate.js → store-BLi19UDE.js} +1 -1
  140. package/dist/{task-CgOKgkEG.js → task-b2BK481M.js} +1 -1
  141. package/dist/{test-NEbhlxvo.js → test-BrSrhop9.js} +1 -1
  142. package/dist/{tools-D0Zfs8Hx.js → tools-CgswhJzh.js} +1 -1
  143. package/dist/{unalias-C9NqmSDq.js → unalias-mMHXqok7.js} +1 -1
  144. package/dist/{update-BTxYQj7Z.js → update-DbOWToPy.js} +1 -1
  145. package/dist/{upgrade-hA0yWBvx.js → upgrade-D6oC9HQI.js} +2 -2
  146. package/dist/{usage-BhqoCjvE.js → usage-Cb8Dtv9V.js} +1 -1
  147. package/dist/{usage-C4d9X2Uq.js → usage-DMs-IIJC.js} +1 -1
  148. package/dist/{watch-DtRuC0Wc.js → watch-BcMQXGYO.js} +1 -1
  149. package/dist/{watch-CSdj24ct.js → watch-eE2XiwsC.js} +1 -1
  150. package/dist/{worker-DX7P9kWl.js → worker-DrucI22w.js} +1 -1
  151. package/dist/{workflow-Dcmdooi8.js → workflow-Cshghoas.js} +1 -1
  152. package/docs/cli.md +145 -0
  153. package/package.json +3 -2
  154. package/plugins/claude/.claude-plugin/plugin.json +1 -1
  155. package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
  156. package/src/core/defaults.ts +25 -0
  157. package/src/server/dash/app/dash/layout.css +58 -1
  158. package/src/server/dash/app/dash/layout.tsx +16 -4
  159. package/src/server/dash/app/dash/settings/[tab]/page.tsx +1 -1
  160. package/src/server/dash/comps/nav/side-toggle.tsx +1 -1
  161. package/src/server/dash/comps/ui/menu.tsx +5 -1
  162. package/src/server/dash/comps/ui/toast.css +3 -2
  163. package/dist/auth-DWHIzqbA.js +0 -1
  164. package/dist/credentials-B1jv6dkg.js +0 -1
  165. package/dist/dash/public/assets/chunks/shared-init-ffb3397e494137c9.js +0 -2
  166. package/dist/dash/public/assets/dash-9e02d5d1a6d42ee3.css +0 -1
  167. package/dist/dash/public/assets/dash-account-04859899c1838ada.css +0 -1
  168. package/dist/dash/public/assets/dash-agents-9e678137267dec07.css +0 -1
  169. package/dist/dash/public/assets/dash-agents-new-26fa27b17ef9b8d8.css +0 -1
  170. package/dist/dash/public/assets/dash-agents-param-slug-b975c48f8abf3444.css +0 -1
  171. package/dist/dash/public/assets/dash-agents-param-slug-edit-e13fda599bb04843.css +0 -1
  172. package/dist/dash/public/assets/dash-agents-param-slug-platforms-70292932cb27bc96.css +0 -1
  173. package/dist/dash/public/assets/dash-agents-param-slug-settings-71f9a86251723fcc.css +0 -1
  174. package/dist/dash/public/assets/dash-agents-param-slug-tasks-fb8eb2ed71006601.css +0 -1
  175. package/dist/dash/public/assets/dash-agents-param-slug-usage-7c8740f1cdd52c71.css +0 -1
  176. package/dist/dash/public/assets/dash-settings-8eb818da462227e8.css +0 -1
  177. package/dist/dash/public/assets/dash-settings-param-tab-849a1a9542e273f5.css +0 -1
  178. package/dist/dash/public/assets/dash-tasks-81e510e0b6931b42.css +0 -1
  179. package/dist/dash/public/assets/dash-tasks-param-id-bbd2a83342f2ec10.css +0 -1
  180. package/dist/dash/public/assets/dash-usage-8e0259e03eaed1bd.css +0 -1
  181. package/dist/dash/public/assets/pnext-client-03b03b254e525e82.js +0 -1
  182. package/dist/dash/public/assets/pnext-client-1c7859bb888f4ef0.js +0 -1
  183. package/dist/dash/public/assets/pnext-client-3c748afe963fb05d.js +0 -1
  184. package/dist/dash/public/assets/pnext-client-4f47c2cae220f107.js +0 -1
  185. package/dist/dash/public/assets/pnext-client-6ab9fd9b53b794d2.js +0 -1
  186. package/dist/dash/public/assets/pnext-client-6c241786342498e4.js +0 -1
  187. package/dist/dash/public/assets/pnext-client-80b56d420f02b808.js +0 -1
  188. package/dist/dash/public/assets/pnext-client-83135c17bae850a3.js +0 -1
  189. package/dist/dash/public/assets/pnext-client-8e6fa4302ae0396f.js +0 -1
  190. package/dist/dash/public/assets/pnext-client-932c9d8cc0717fc8.js +0 -1
  191. package/dist/dash/public/assets/pnext-client-a42ae63d4de113f9.js +0 -1
  192. package/dist/dash/public/assets/pnext-client-d2ee6f8c1e337032.js +0 -1
  193. package/dist/dash/public/assets/pnext-client-d513f65ec23b7f20.js +0 -1
  194. package/dist/dash/public/assets/pnext-client-ecb88e2a8a109954.js +0 -1
  195. package/dist/dash/public/assets/pnext-client-f1545ee6270bbf9a.js +0 -1
  196. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/boot-B2MFTRO2.js +0 -30
  197. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/build-tier-XJJSL5FR.js +0 -2704
  198. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-2HFY3DQT.js +0 -208
  199. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-2ICEVELW.js +0 -834
  200. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-3UPROT2C.js +0 -35
  201. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-4P5CMIYT.js +0 -1582
  202. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-4TKZKZ3Q.js +0 -131
  203. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-5RDEILQB.js +0 -437
  204. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-62KEQM43.js +0 -25
  205. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-6KQSWT6D.js +0 -831
  206. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-7DCNCW6O.js +0 -724
  207. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-B4THCTQP.js +0 -22
  208. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-C2LIV2MM.js +0 -172
  209. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-CCATPVTW.js +0 -378
  210. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-COXJAPTU.js +0 -89
  211. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-E6IXL2NJ.js +0 -6270
  212. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-FLGRBFAH.js +0 -1198
  213. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-FTJVHFWD.js +0 -61
  214. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-H523KSIH.js +0 -5151
  215. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-HT6KKX6A.js +0 -20
  216. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-JESFYECC.js +0 -438
  217. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-JRPJM2XY.js +0 -17
  218. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-L2IWDUXG.js +0 -107
  219. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-L5P4Y4UC.js +0 -183
  220. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-NQE46AZN.js +0 -647
  221. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-PA4QEARJ.js +0 -129
  222. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-PZ5AXOLW.js +0 -7146
  223. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-SNVPTULL.js +0 -2397
  224. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-T3QZT3PG.js +0 -220
  225. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-VC5O2SDP.js +0 -72
  226. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-WZX4V6CM.js +0 -231
  227. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-XUUIDXY5.js +0 -627
  228. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-ZHFDO3PR.js +0 -265
  229. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/compile-CE2DN7ZA.js +0 -18
  230. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/config-UREY7XJT.js +0 -16
  231. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/config-loader-UI2XE3PZ.js +0 -17
  232. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/entry.js +0 -219
  233. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/generate-I2PPTDFD.js +0 -16
  234. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/modules-UVOCE4C2.js +0 -48
  235. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/pipeline-UW47K537.js +0 -963
  236. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/proxy-ITGOVJBW.js +0 -26
  237. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/register-4SA55SWT.js +0 -12579
  238. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/router-JNKHLBCZ.js +0 -505
  239. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/routes-PD6J2NXW.js +0 -54
  240. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/tsconfig-defaults-ZXEH7RQK.js +0 -15
  241. package/dist/integrations-5xCaXSd-.js +0 -1
  242. package/dist/refresh-BIrmrWYq.js +0 -1
  243. package/dist/runner-D7ScbIHJ.js +0 -1
  244. package/src/server/dash/app/dash/token-from-hash.tsx +0 -17
@@ -1,4 +1,4 @@
1
- import{at as e,lt as t,nt as n,tt as r}from"./store-DzqXS2wT.js";import{a as i,d as a,g as o,h as s,i as c,l,m as u,n as d,p as f,r as p,t as m}from"./schema-CU2iFkp8.js";import{i as h}from"./client-D9IoAuDD.js";import{C as g,S as _,_ as v,a as y,b as ee,c as b,d as x,f as S,h as C,i as w,l as T,n as E,o as D,p as O,r as k,s as A,u as j,v as M,w as N,x as P,y as te}from"./shared-DVtzWhUT.js";import{i as ne,t as re}from"./usage-BhqoCjvE.js";import{isDeepStrictEqual as F}from"node:util";import{and as I,asc as L,desc as ie,eq as R,gt as z,gte as B,ilike as V,inArray as H,isNull as U,lt as W,lte as G,or as K,sql as q}from"drizzle-orm";import{alias as J}from"drizzle-orm/pg-core";function ae(e,t,n){return e.db.transaction(async r=>{let[i]=await r.insert(m).values({organizationId:e.organizationId,slug:t.id,name:t.name,description:t.description??null,source:t.source,repo:t.repo??null,path:t.path??null,currentVersion:0,createdAt:A(t.createdAt),updatedAt:A(t.updatedAt)}).onConflictDoUpdate({target:[m.organizationId,m.slug],set:{slug:t.id}}).returning(),a=w(i),[o]=a.currentVersion?await r.select().from(d).where(I(R(d.agentId,i.id),R(d.version,a.currentVersion))):[],s=o&&N(o,t.id),c=!!(s&&F(s.definition,n.definition)&&s.systemPrompt===n.systemPrompt&&F(s.files,n.files)),l=c?s:{...n,version:a.currentVersion+1},u={...t,currentVersion:l.version,createdAt:a.createdAt,...a.settings?{settings:a.settings}:{},updatedAt:a.updatedAt};if(c&&F(u,a))return{record:a,version:l,unchanged:c};u={...u,updatedAt:t.updatedAt};let f=c?q``:q`with published as (
1
+ import{at as e,lt as t,nt as n,tt as r}from"./store-B3ZHoBJY.js";import{a as i,d as a,g as o,h as s,i as c,l,m as u,n as d,p as f,r as p,t as m}from"./schema-CU2iFkp8.js";import{i as h}from"./client-D9IoAuDD.js";import{C as g,S as _,_ as v,a as y,b as ee,c as b,d as x,f as S,h as C,i as w,l as T,n as E,o as D,p as O,r as k,s as A,u as j,v as M,w as N,x as P,y as te}from"./shared-BLkGRKty.js";import{i as ne,t as re}from"./usage-Cb8Dtv9V.js";import{isDeepStrictEqual as F}from"node:util";import{and as I,asc as L,desc as ie,eq as R,gt as z,gte as B,ilike as V,inArray as H,isNull as U,lt as W,lte as G,or as K,sql as q}from"drizzle-orm";import{alias as J}from"drizzle-orm/pg-core";function ae(e,t,n){return e.db.transaction(async r=>{let[i]=await r.insert(m).values({organizationId:e.organizationId,slug:t.id,name:t.name,description:t.description??null,source:t.source,repo:t.repo??null,path:t.path??null,currentVersion:0,createdAt:A(t.createdAt),updatedAt:A(t.updatedAt)}).onConflictDoUpdate({target:[m.organizationId,m.slug],set:{slug:t.id}}).returning(),a=w(i),[o]=a.currentVersion?await r.select().from(d).where(I(R(d.agentId,i.id),R(d.version,a.currentVersion))):[],s=o&&N(o,t.id),c=!!(s&&F(s.definition,n.definition)&&s.systemPrompt===n.systemPrompt&&F(s.files,n.files)),l=c?s:{...n,version:a.currentVersion+1},u={...t,currentVersion:l.version,createdAt:a.createdAt,...a.settings?{settings:a.settings}:{},updatedAt:a.updatedAt};if(c&&F(u,a))return{record:a,version:l,unchanged:c};u={...u,updatedAt:t.updatedAt};let f=c?q``:q`with published as (
2
2
  insert into ${d} (agent_id, version, definition, system_prompt, files, commit, imported_from, created_at)
3
3
  values (${i.id}, ${l.version}, ${JSON.stringify(l.definition)}::jsonb, ${l.systemPrompt},
4
4
  ${l.files?JSON.stringify(l.files):null}::jsonb, ${l.commit??null}, ${l.importedFrom}, ${A(l.createdAt).toISOString()}::timestamptz)
@@ -1 +1 @@
1
- import{s as e}from"./cli-BilSDkvE.js";const t=[[`--wait`,`run in the foreground and block until the answer is ready`],[`--engine <codex|claude|custom>`,`engine to use; custom runs your configured custom models (default: first in the chain)`],[`--model <alias|slug>`,`luna/sol/astra (codex) · sonnet/opus/fable (claude) · a custom model (coder model list)`],[`--effort <low|medium|high>`,`reasoning effort`],[`--permissions <mode>`,`read-only · workspace-write · auto (default: auto)`],[`--resume <task-id>`,`continue that task's thread instead of a fresh run`],[`--mcp <names|all|json>`,'attach MCP servers from `mcp` in .coder/config.json by name (or all), or an inline JSON array [{"name","command","args","env","tools"}]'],[`--add-dir <dir>`,`give the task another directory beyond --cwd (repeatable); read-only can only read it, other modes can also write`]],n=e(`task`,{"archive-sweep":async()=>(await import(`./archive-sweep-CtBcARgN.js`)).commandArchiveSweep,worker:async()=>(await import(`./worker-DX7P9kWl.js`)).commandWorker,run:async()=>(await import(`./run-BDYl0CKl.js`)).commandTask,list:async()=>(await import(`./list-BAKvxSbh.js`)).commandTasks,ls:async()=>(await import(`./list-BAKvxSbh.js`)).commandTasks,watch:async()=>(await import(`./watch-DtRuC0Wc.js`)).commandWatch,stream:async()=>(await import(`./watch-DtRuC0Wc.js`)).commandWatch,result:async()=>(await import(`./result-BzaM3inj.js`)).commandResult,steer:async()=>(await import(`./steer-C6uARLp5.js`)).commandSteer,ask:async()=>(await import(`./ask-dE3U3ss2.js`)).commandAsk,stop:async()=>(await import(`./stop-BrGI3hSS.js`)).commandStop,archive:async()=>(await import(`./archive-BUB8gFKD.js`)).commandArchive,delete:async()=>(await import(`./delete-z1_86nf6.js`)).commandDelete,approvals:async()=>(await import(`./approvals-C-AvFt6s.js`)).commandApprovals,approve:async()=>(await import(`./approve-DOmpQRNd.js`)).commandApprove},{menu:[{sub:`run`,usage:`run "<text>"`,blurb:`run a task (background; --wait blocks)`,alias:`run`},{sub:`list`,usage:`list`,blurb:`list recent tasks (by default running + just stopped)`,alias:`list`},{sub:`result`,usage:`result [task-id]`,blurb:`status + final answer (--wait blocks)`,alias:`result`},{sub:`watch`,usage:`watch [task-id]`,blurb:`stream a task's live transcript`},{sub:`steer`,usage:`steer <task-id> "<follow-up>"`,blurb:`continue a task's thread`},{sub:`ask`,usage:`ask <task-id> "<question>"`,blurb:`ask about a task without interrupting it`},{sub:`stop`,usage:`stop <task-id>`,blurb:`interrupt a running task`},{sub:`archive`,usage:`archive <task-id>`,blurb:`archive a session (or --all-stopped)`},{sub:`delete`,usage:`delete <task-id>`,blurb:`delete a session (or --all-archived)`},{sub:`approvals`,usage:`approvals [task-id]`,blurb:`pending approvals (all tasks, or one)`},{sub:`approve`,usage:`approve <id>`,blurb:`answer an escalated permission`}].map(e=>({usage:e.usage,blurb:e.blurb,...e.alias?{note:`(coder ${e.alias})`}:{}}))},{aliases:{stream:`watch`,ls:`list`},hint:`Run a task: coder run "<text>"`});export{t as TASK_FLAGS,n as commandTaskGroup};
1
+ import{s as e}from"./cli-DWCR7iqa.js";const t=[[`--wait`,`run in the foreground and block until the answer is ready`],[`--engine <codex|claude|custom>`,`engine to use; custom runs your configured custom models (default: first in the chain)`],[`--model <alias|slug>`,`luna/sol/astra (codex) · sonnet/opus/fable (claude) · a custom model (coder model list)`],[`--effort <low|medium|high>`,`reasoning effort`],[`--permissions <mode>`,`read-only · workspace-write · auto (default: auto)`],[`--resume <task-id>`,`continue that task's thread instead of a fresh run`],[`--mcp <names|all|json>`,'attach MCP servers from `mcp` in .coder/config.json by name (or all), or an inline JSON array [{"name","command","args","env","tools"}]'],[`--add-dir <dir>`,`give the task another directory beyond --cwd (repeatable); read-only can only read it, other modes can also write`]],n=e(`task`,{"archive-sweep":async()=>(await import(`./archive-sweep-Cxbh8yAI.js`)).commandArchiveSweep,worker:async()=>(await import(`./worker-DrucI22w.js`)).commandWorker,run:async()=>(await import(`./run-Dqe38jX8.js`)).commandTask,list:async()=>(await import(`./list-COAo7eZd.js`)).commandTasks,ls:async()=>(await import(`./list-COAo7eZd.js`)).commandTasks,watch:async()=>(await import(`./watch-BcMQXGYO.js`)).commandWatch,stream:async()=>(await import(`./watch-BcMQXGYO.js`)).commandWatch,result:async()=>(await import(`./result-D8DsvJDu.js`)).commandResult,steer:async()=>(await import(`./steer-P_38hRRD.js`)).commandSteer,ask:async()=>(await import(`./ask-BU2WVxVM.js`)).commandAsk,stop:async()=>(await import(`./stop-BJGDRPsp.js`)).commandStop,archive:async()=>(await import(`./archive-DZ6vpMHb.js`)).commandArchive,delete:async()=>(await import(`./delete-BD6AnCLg.js`)).commandDelete,approvals:async()=>(await import(`./approvals-DbVrsxec.js`)).commandApprovals,approve:async()=>(await import(`./approve-DeAhFL-m.js`)).commandApprove},{menu:[{sub:`run`,usage:`run "<text>"`,blurb:`run a task (background; --wait blocks)`,alias:`run`},{sub:`list`,usage:`list`,blurb:`list recent tasks (by default running + just stopped)`,alias:`list`},{sub:`result`,usage:`result [task-id]`,blurb:`status + final answer (--wait blocks)`,alias:`result`},{sub:`watch`,usage:`watch [task-id]`,blurb:`stream a task's live transcript`},{sub:`steer`,usage:`steer <task-id> "<follow-up>"`,blurb:`continue a task's thread`},{sub:`ask`,usage:`ask <task-id> "<question>"`,blurb:`ask about a task without interrupting it`},{sub:`stop`,usage:`stop <task-id>`,blurb:`interrupt a running task`},{sub:`archive`,usage:`archive <task-id>`,blurb:`archive a session (or --all-stopped)`},{sub:`delete`,usage:`delete <task-id>`,blurb:`delete a session (or --all-archived)`},{sub:`approvals`,usage:`approvals [task-id]`,blurb:`pending approvals (all tasks, or one)`},{sub:`approve`,usage:`approve <id>`,blurb:`answer an escalated permission`}].map(e=>({usage:e.usage,blurb:e.blurb,...e.alias?{note:`(coder ${e.alias})`}:{}}))},{aliases:{stream:`watch`,ls:`list`},hint:`Run a task: coder run "<text>"`});export{t as TASK_FLAGS,n as commandTaskGroup};
@@ -1 +1 @@
1
- import{xt as e}from"./dispatch-BKeAch9E.js";import{i as t,t as n}from"./cli-BilSDkvE.js";import{runnerOptions as r}from"./remove-B93LNkZI.js";import i from"node:process";const a=t({name:`runner test`,globalFlags:{cwd:!1},args:1,help:{usage:`coder runner test <id> [--server [url]] [--json]`,summary:`Check the runner connection.`,flags:[n]},options:r,async run({options:t,args:[n]}){if(!n)throw new e(`invalid-option`,`Missing runner id.`);let{testRunner:r}=await import(`./runner-sUpWJ_k0.js`).then(e=>e.a);return r(n,t)},print:e=>i.stdout.write(`${e.ok?`OK`:`Failed`} ${e.detail} (${e.ms} ms).\n`)});export{a as commandRunnerTest};
1
+ import{xt as e}from"./dispatch-BKeAch9E.js";import{i as t,t as n}from"./cli-DWCR7iqa.js";import{runnerOptions as r}from"./remove-BNzbUhaK.js";import i from"node:process";const a=t({name:`runner test`,globalFlags:{cwd:!1},args:1,help:{usage:`coder runner test <id> [--server [url]] [--json]`,summary:`Check the runner connection.`,flags:[n]},options:r,async run({options:t,args:[n]}){if(!n)throw new e(`invalid-option`,`Missing runner id.`);let{testRunner:r}=await import(`./runner-sUpWJ_k0.js`).then(e=>e.a);return r(n,t)},print:e=>i.stdout.write(`${e.ok?`OK`:`Failed`} ${e.detail} (${e.ms} ms).\n`)});export{a as commandRunnerTest};
@@ -1 +1 @@
1
- import{i as e}from"./cli-BilSDkvE.js";import{n as t}from"./mcp-server-DGzme0YX.js";import n from"node:process";const r=e({name:`agent tools`,options:{},args:1,async run({args:e}){let{INTEGRATIONS:r}=await import(`./integrations-BAgdVDhj.js`).then(e=>e.r),{agentTools:i}=await import(`./mcp-BgKb2Cdk.js`).then(e=>e.t),a=e[0]??``,o=i(a);if(!o)throw Error(`Unknown tool set "${a}"; known: ${[...Object.keys(r).filter(e=>r[e].tools.serve),`note`].join(`, `)}`);let s=n.env.APP_TOKEN??``;if(!s&&a!==`note`)throw Error(`APP_TOKEN is not set`);let c=n.env.CODER_AGENT_SCOPE?JSON.parse(n.env.CODER_AGENT_SCOPE):void 0;await t(`coder-${a}`,o,{token:s,fetch,tools:(n.env.CODER_AGENT_TOOLS??``).split(`,`).filter(Boolean),...c?{scope:c}:{}})}});export{r as commandTools};
1
+ import{i as e}from"./cli-DWCR7iqa.js";import{n as t}from"./mcp-server-DGzme0YX.js";import n from"node:process";const r=e({name:`agent tools`,options:{},args:1,async run({args:e}){let{INTEGRATIONS:r}=await import(`./integrations-BAgdVDhj.js`).then(e=>e.r),{agentTools:i}=await import(`./mcp-BgKb2Cdk.js`).then(e=>e.t),a=e[0]??``,o=i(a);if(!o)throw Error(`Unknown tool set "${a}"; known: ${[...Object.keys(r).filter(e=>r[e].tools.serve),`note`].join(`, `)}`);let s=n.env.APP_TOKEN??``;if(!s&&a!==`note`)throw Error(`APP_TOKEN is not set`);let c=n.env.CODER_AGENT_SCOPE?JSON.parse(n.env.CODER_AGENT_SCOPE):void 0;await t(`coder-${a}`,o,{token:s,fetch,tools:(n.env.CODER_AGENT_TOOLS??``).split(`,`).filter(Boolean),...c?{scope:c}:{}})}});export{r as commandTools};
@@ -1 +1 @@
1
- import{i as e}from"./cli-BilSDkvE.js";import{o as t}from"./models-_5LVGC3m.js";import{n}from"./add-U-pty9qJ.js";import{t as r}from"./remove-C5_xggx7.js";const i=e({name:`model unalias`,help:{usage:`coder model unalias <name> [--workspace]`,summary:`Remove a user-defined alias.`,flags:[[`--workspace`,`target <repo>/.coder/config.json instead of the user file`]]},options:n,args:1,run:({options:e,args:[n],cwd:r})=>t(r,n,e),print:e=>r(`unaliased`,e.unaliased,e.file)});export{i as commandModelUnalias};
1
+ import{i as e}from"./cli-DWCR7iqa.js";import{o as t}from"./models-_5LVGC3m.js";import{n}from"./add-CLYTF_up.js";import{t as r}from"./remove-D-QeeZQL.js";const i=e({name:`model unalias`,help:{usage:`coder model unalias <name> [--workspace]`,summary:`Remove a user-defined alias.`,flags:[[`--workspace`,`target <repo>/.coder/config.json instead of the user file`]]},options:n,args:1,run:({options:e,args:[n],cwd:r})=>t(r,n,e),print:e=>r(`unaliased`,e.unaliased,e.file)});export{i as commandModelUnalias};
@@ -1,2 +1,2 @@
1
- import{i as e}from"./cli-BilSDkvE.js";import{s as t}from"./models-_5LVGC3m.js";import{a as n,i as r,n as i,r as a}from"./add-U-pty9qJ.js";const o=e({name:`model update`,help:{usage:`coder model update <name> [--base-url <url>] [--model <id>] [--env-key VAR]`,summary:`Update a configured custom model. Only the flags you pass change; the endpoint
1
+ import{i as e}from"./cli-DWCR7iqa.js";import{s as t}from"./models-_5LVGC3m.js";import{a as n,i as r,n as i,r as a}from"./add-CLYTF_up.js";const o=e({name:`model update`,help:{usage:`coder model update <name> [--base-url <url>] [--model <id>] [--env-key VAR]`,summary:`Update a configured custom model. Only the flags you pass change; the endpoint
2
2
  is re-probed and the wire protocol re-detected.`,flags:[[`--base-url <url>`,`new API base`],[`--model <id>`,`new provider model id`],[`--env-key <VAR>`,`new API-key env var`],[`--workspace`,`write to <repo>/.coder/config.json instead of the user file`]]},options:i,args:1,run:({options:e,args:[r],cwd:i})=>t(i,r,n(e)),json:a,print:e=>r(e,`updated`)});export{o as commandModelUpdate};
@@ -1,2 +1,2 @@
1
- import{T as e}from"./dispatch-BKeAch9E.js";import{i as t}from"./cli-BilSDkvE.js";import{f as n,p as r,t as i}from"./output-BKeyLbvt.js";import{n as a,s as o}from"./args-BOEEdpWk.js";import s from"node:process";const c=t({name:`upgrade`,globalFlags:{json:!1,cwd:!1},help:{usage:`coder upgrade [--cli-only] [--plugins-only] [--codex] [--claude] [--pm <mgr>]`,summary:`Update the coder CLI through whichever package manager installed it, then refresh
2
- the host plugins to match. Alias: update.`,flags:[[`--cli-only`,`update just the CLI`],[`--plugins-only`,`refresh just the host plugins`],[`--codex`,`limit the refresh to the Agent Skills copy (Codex, Pi, ...)`],[`--claude`,`limit the refresh to the Claude Code plugin`],[`--pm <npm|pnpm|yarn|bun>`,`force a package manager instead of auto-detecting`]]},options:{pm:o,"cli-only":a,"plugins-only":a,codex:a,claude:a},run:({options:t})=>e({...t,cliOnly:t[`cli-only`],pluginsOnly:t[`plugins-only`]},l),print:u});function l(e){s.stdout.write(`${r.bold(`Updating coder CLI`)} ${r.dim(`${e}...`)}\n`)}function u(e){let t=r.bold,a=r.dim,o=(e,n)=>n&&e&&n!==e?`${e} ${a(`->`)} ${t(n)}`:`${n??e??`?`} ${a(`(unchanged)`)}`,c=(e,t)=>`${t.installed?n(`${e} ${o(t.from,t.to)} ${a(`- ${t.note}`)}`):i(`${e} ${t.note}`)}\n`;e.cli&&s.stdout.write(e.cli.changed?`${n(`coder CLI ${o(e.cli.from,e.cli.to)}`)}\n`:`${n(`coder CLI ${e.cli.from} ${a(`(already latest)`)}`)}\n`),e.claudePlugin&&s.stdout.write(c(`claude plugin`,e.claudePlugin)),e.agentsSkill&&s.stdout.write(c(`agents skill `,e.agentsSkill))}const d=async()=>(await import(`./refresh-BIrmrWYq.js`)).commandRefreshUpdate,f=Object.assign(async e=>e[0]===`refresh`?(await d())(e.slice(1)):c(e),c,{subcommands:{refresh:d}});export{f as commandUpgrade};
1
+ import{T as e}from"./dispatch-BKeAch9E.js";import{i as t}from"./cli-DWCR7iqa.js";import{f as n,p as r,t as i}from"./output-BKeyLbvt.js";import{n as a,s as o}from"./args-BOEEdpWk.js";import s from"node:process";const c=t({name:`upgrade`,globalFlags:{json:!1,cwd:!1},help:{usage:`coder upgrade [--cli-only] [--plugins-only] [--codex] [--claude] [--pm <mgr>]`,summary:`Update the coder CLI through whichever package manager installed it, then refresh
2
+ the host plugins to match. Alias: update.`,flags:[[`--cli-only`,`update just the CLI`],[`--plugins-only`,`refresh just the host plugins`],[`--codex`,`limit the refresh to the Agent Skills copy (Codex, Pi, ...)`],[`--claude`,`limit the refresh to the Claude Code plugin`],[`--pm <npm|pnpm|yarn|bun>`,`force a package manager instead of auto-detecting`]]},options:{pm:o,"cli-only":a,"plugins-only":a,codex:a,claude:a},run:({options:t})=>e({...t,cliOnly:t[`cli-only`],pluginsOnly:t[`plugins-only`]},l),print:u});function l(e){s.stdout.write(`${r.bold(`Updating coder CLI`)} ${r.dim(`${e}...`)}\n`)}function u(e){let t=r.bold,a=r.dim,o=(e,n)=>n&&e&&n!==e?`${e} ${a(`->`)} ${t(n)}`:`${n??e??`?`} ${a(`(unchanged)`)}`,c=(e,t)=>`${t.installed?n(`${e} ${o(t.from,t.to)} ${a(`- ${t.note}`)}`):i(`${e} ${t.note}`)}\n`;e.cli&&s.stdout.write(e.cli.changed?`${n(`coder CLI ${o(e.cli.from,e.cli.to)}`)}\n`:`${n(`coder CLI ${e.cli.from} ${a(`(already latest)`)}`)}\n`),e.claudePlugin&&s.stdout.write(c(`claude plugin`,e.claudePlugin)),e.agentsSkill&&s.stdout.write(c(`agents skill `,e.agentsSkill))}const d=async()=>(await import(`./refresh-BDmap1RA.js`)).commandRefreshUpdate,f=Object.assign(async e=>e[0]===`refresh`?(await d())(e.slice(1)):c(e),c,{subcommands:{refresh:d}});export{f as commandUpgrade};
@@ -1 +1 @@
1
- import{t as e}from"./rolldown-runtime-DT7IzrpZ.js";import{a as t,i as n}from"./load-BpEsAn51.js";import{a as r,d as i,f as a,n as o,u as s}from"./http-Bkg_OQ6r.js";import{g as c}from"./store-DzqXS2wT.js";var l=e({addUsage:()=>f,leaders:()=>m,readUsage:()=>x,readUsageTotals:()=>S,timeZone:()=>d,usageReport:()=>b,usageSummary:()=>_,usageTotals:()=>p});function u(e){return typeof e==`number`?e:!e||typeof e!=`object`||Array.isArray(e)?0:`total`in e&&typeof e.total==`number`?e.total:Object.values(e).reduce((e,t)=>e+u(t),0)}function d(e){if(!e)return`UTC`;try{return new Intl.DateTimeFormat(`en`,{timeZone:e}),e}catch{return`UTC`}}const f=(e,t)=>{e.tasks+=t.tasks,e.runnerMs+=t.runnerMs,e.tokenCount+=t.tokenCount};async function p(e,t){if(e.usageTotals)return e.usageTotals(t);if(t.top){let{top:n,...r}=t,i=(await p(e,{...r,by:`agent`,parts:void 0})).sort((e,t)=>t[n.by]-e[n.by]||e.key.localeCompare(t.key)).slice(0,n.count).map(e=>e.key);return p(e,{...r,parts:i})}let n=d(t.tz),r=new Intl.DateTimeFormat(`en-CA`,{timeZone:n,year:`numeric`,month:`2-digit`,day:`2-digit`}),i=new Set(t.parts),a=new Map;for(let{value:n}of await e.list(`usage`)){if(n.at<t.since||t.until!==void 0&&n.at>=t.until||t.agent&&n.agent!==t.agent)continue;let e=t.by===`agent`?n.agent:t.by===`installation`?n.installationId??`none`:t.by===`engine`?n.engine??`unknown`:r.format(n.at),o={tasks:1,runnerMs:n.runnerElapsedMs,tokenCount:u(n.tokens)},s=a.get(e)??{key:e,tasks:0,runnerMs:0,tokenCount:0};f(s,o),i.has(n.agent)&&(s.parts??={},f(s.parts[n.agent]??={tasks:0,runnerMs:0,tokenCount:0},o)),a.set(e,s)}return[...a.values()].sort((e,t)=>e.key.localeCompare(t.key))}function m(e,t){let n=new Map;for(let r of e)for(let[e,i]of Object.entries(r.parts??{}))n.set(e,(n.get(e)??0)+i[t]);return[...n].sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0])).map(([e])=>e)}function h(e,t){if(typeof t==`number`)return(typeof e==`number`?e:0)+t;if(!t||typeof t!=`object`||Array.isArray(t))return e;let n=e&&typeof e==`object`&&!Array.isArray(e)?{...e}:{};for(let[e,r]of Object.entries(t))n[e]=h(n[e],r);return n}function g(e,t){let n=new Map;for(let r of e){let e=t===`agent`?r.agent:t===`installation`?r.installationId??`none`:r.engine??`unknown`,i=n.get(e)??{key:e,tasks:0,runnerMs:0};i.tasks++,i.runnerMs+=r.runnerElapsedMs,r.tokens!==void 0&&(i.tokens=h(i.tokens,r.tokens)),n.set(e,i)}return[...n.values()].sort((e,t)=>e.key.localeCompare(t.key))}function _(e,t,n){let r=e.filter(e=>e.at>=t);return{since:t,totals:n?g(r,n):{agent:g(r,`agent`),installation:g(r,`installation`),engine:g(r,`engine`)}}}const v={tasks:`tasks`,runner:`runnerMs`,tokens:`tokenCount`},y={tokens:e=>e.tokenCount,tasks:e=>e.tasks,runner:e=>e.runnerMs,name:e=>e.key};async function b(e,c){let l=e=>c.searchParams.get(e),u=Number(l(`since`)??0),f=l(`until`)===null?void 0:Number(l(`until`)),h=l(`by`)??`agent`;if(!Number.isFinite(u)||f!==void 0&&!Number.isFinite(f)||![`agent`,`installation`,`engine`,`day`].includes(h))return r({error:`Invalid usage query`},400);let g=l(`parts`)?.split(`,`).filter(Boolean),_=Math.min(Number(l(`top`)??0),8),b=v[l(`sort`)??`tokens`]??`tokenCount`,x=await p(e.store,{by:h,since:u,...f===void 0?{}:{until:f},...l(`agent`)?{agent:l(`agent`)}:{},...h===`day`?{tz:d(l(`tz`))}:{},...g?.length?{parts:g.slice(0,20)}:{},..._>0?{top:{count:_,by:b}}:{}}),S={since:u,...f===void 0?{}:{until:f}};if(h===`agent`){let r=new Set(e.local?(await t(e.local.cwd,e.integrations)).map(e=>e.id):(await e.store.list(`agent`)).map(e=>e.id));for(let e of Object.keys(n()))r.add(e);for(let e of x)r.has(e.key)||(e.deleted=!0)}if(_>0)return r({...S,totals:x,top:m(x,b)});if(!a(c)||h!==`agent`)return r({...S,totals:x});let C=y[l(`sort`)??`tokens`]??y.tokens,w=l(`sort`)===`name`,T=l(`q`)?.trim().toLowerCase(),E=([e,t],[n,r])=>(e<n?-1:+(e>n))*(w?1:-1)||t.localeCompare(r),D=e=>[C(e),e.key],O=o(c),k=x.filter(e=>!T||e.key.toLowerCase().includes(T)).filter(e=>!O||E(D(e),O)>0).sort((e,t)=>E(D(e),D(t))),A=i(c),j=e=>x.reduce((t,n)=>t+e(n),0);return r({...S,...s(k.slice(0,A+1),A,D),summary:{agents:x.length,tasks:j(e=>e.tasks),runnerMs:j(e=>e.runnerMs),tokenCount:j(e=>e.tokenCount)}})}async function x(e,t,n,i){t.local&&await c(t);let a=i.searchParams.get(`installation`),o=await t.store.list(`usage`);return r(a?o.filter(e=>e.value.installationId===a):o)}async function S(e,t,n,i){t.local&&await c(t);let a=Number(i.searchParams.get(`since`)??0),o=i.searchParams.get(`by`);if([`until`,`agent`,`tz`,`parts`,`top`,`cursor`].some(e=>i.searchParams.has(e))||o===`day`)return b(t,i);if(!Number.isFinite(a)||o&&![`agent`,`installation`,`engine`].includes(o))return r({error:`Invalid usage query`},400);let s=(await t.store.list(`usage`)).map(e=>e.value);return r(_(s,a,o))}export{l as a,d as i,x as n,S as r,f as t};
1
+ import{t as e}from"./rolldown-runtime-DT7IzrpZ.js";import{a as t,i as n}from"./load-BpEsAn51.js";import{a as r,d as i,f as a,n as o,u as s}from"./http-Bkg_OQ6r.js";import{g as c}from"./store-B3ZHoBJY.js";var l=e({addUsage:()=>f,leaders:()=>m,readUsage:()=>x,readUsageTotals:()=>S,timeZone:()=>d,usageReport:()=>b,usageSummary:()=>_,usageTotals:()=>p});function u(e){return typeof e==`number`?e:!e||typeof e!=`object`||Array.isArray(e)?0:`total`in e&&typeof e.total==`number`?e.total:Object.values(e).reduce((e,t)=>e+u(t),0)}function d(e){if(!e)return`UTC`;try{return new Intl.DateTimeFormat(`en`,{timeZone:e}),e}catch{return`UTC`}}const f=(e,t)=>{e.tasks+=t.tasks,e.runnerMs+=t.runnerMs,e.tokenCount+=t.tokenCount};async function p(e,t){if(e.usageTotals)return e.usageTotals(t);if(t.top){let{top:n,...r}=t,i=(await p(e,{...r,by:`agent`,parts:void 0})).sort((e,t)=>t[n.by]-e[n.by]||e.key.localeCompare(t.key)).slice(0,n.count).map(e=>e.key);return p(e,{...r,parts:i})}let n=d(t.tz),r=new Intl.DateTimeFormat(`en-CA`,{timeZone:n,year:`numeric`,month:`2-digit`,day:`2-digit`}),i=new Set(t.parts),a=new Map;for(let{value:n}of await e.list(`usage`)){if(n.at<t.since||t.until!==void 0&&n.at>=t.until||t.agent&&n.agent!==t.agent)continue;let e=t.by===`agent`?n.agent:t.by===`installation`?n.installationId??`none`:t.by===`engine`?n.engine??`unknown`:r.format(n.at),o={tasks:1,runnerMs:n.runnerElapsedMs,tokenCount:u(n.tokens)},s=a.get(e)??{key:e,tasks:0,runnerMs:0,tokenCount:0};f(s,o),i.has(n.agent)&&(s.parts??={},f(s.parts[n.agent]??={tasks:0,runnerMs:0,tokenCount:0},o)),a.set(e,s)}return[...a.values()].sort((e,t)=>e.key.localeCompare(t.key))}function m(e,t){let n=new Map;for(let r of e)for(let[e,i]of Object.entries(r.parts??{}))n.set(e,(n.get(e)??0)+i[t]);return[...n].sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0])).map(([e])=>e)}function h(e,t){if(typeof t==`number`)return(typeof e==`number`?e:0)+t;if(!t||typeof t!=`object`||Array.isArray(t))return e;let n=e&&typeof e==`object`&&!Array.isArray(e)?{...e}:{};for(let[e,r]of Object.entries(t))n[e]=h(n[e],r);return n}function g(e,t){let n=new Map;for(let r of e){let e=t===`agent`?r.agent:t===`installation`?r.installationId??`none`:r.engine??`unknown`,i=n.get(e)??{key:e,tasks:0,runnerMs:0};i.tasks++,i.runnerMs+=r.runnerElapsedMs,r.tokens!==void 0&&(i.tokens=h(i.tokens,r.tokens)),n.set(e,i)}return[...n.values()].sort((e,t)=>e.key.localeCompare(t.key))}function _(e,t,n){let r=e.filter(e=>e.at>=t);return{since:t,totals:n?g(r,n):{agent:g(r,`agent`),installation:g(r,`installation`),engine:g(r,`engine`)}}}const v={tasks:`tasks`,runner:`runnerMs`,tokens:`tokenCount`},y={tokens:e=>e.tokenCount,tasks:e=>e.tasks,runner:e=>e.runnerMs,name:e=>e.key};async function b(e,c){let l=e=>c.searchParams.get(e),u=Number(l(`since`)??0),f=l(`until`)===null?void 0:Number(l(`until`)),h=l(`by`)??`agent`;if(!Number.isFinite(u)||f!==void 0&&!Number.isFinite(f)||![`agent`,`installation`,`engine`,`day`].includes(h))return r({error:`Invalid usage query`},400);let g=l(`parts`)?.split(`,`).filter(Boolean),_=Math.min(Number(l(`top`)??0),8),b=v[l(`sort`)??`tokens`]??`tokenCount`,x=await p(e.store,{by:h,since:u,...f===void 0?{}:{until:f},...l(`agent`)?{agent:l(`agent`)}:{},...h===`day`?{tz:d(l(`tz`))}:{},...g?.length?{parts:g.slice(0,20)}:{},..._>0?{top:{count:_,by:b}}:{}}),S={since:u,...f===void 0?{}:{until:f}};if(h===`agent`){let r=new Set(e.local?(await t(e.local.cwd,e.integrations)).map(e=>e.id):(await e.store.list(`agent`)).map(e=>e.id));for(let e of Object.keys(n()))r.add(e);for(let e of x)r.has(e.key)||(e.deleted=!0)}if(_>0)return r({...S,totals:x,top:m(x,b)});if(!a(c)||h!==`agent`)return r({...S,totals:x});let C=y[l(`sort`)??`tokens`]??y.tokens,w=l(`sort`)===`name`,T=l(`q`)?.trim().toLowerCase(),E=([e,t],[n,r])=>(e<n?-1:+(e>n))*(w?1:-1)||t.localeCompare(r),D=e=>[C(e),e.key],O=o(c),k=x.filter(e=>!T||e.key.toLowerCase().includes(T)).filter(e=>!O||E(D(e),O)>0).sort((e,t)=>E(D(e),D(t))),A=i(c),j=e=>x.reduce((t,n)=>t+e(n),0);return r({...S,...s(k.slice(0,A+1),A,D),summary:{agents:x.length,tasks:j(e=>e.tasks),runnerMs:j(e=>e.runnerMs),tokenCount:j(e=>e.tokenCount)}})}async function x(e,t,n,i){t.local&&await c(t);let a=i.searchParams.get(`installation`),o=await t.store.list(`usage`);return r(a?o.filter(e=>e.value.installationId===a):o)}async function S(e,t,n,i){t.local&&await c(t);let a=Number(i.searchParams.get(`since`)??0),o=i.searchParams.get(`by`);if([`until`,`agent`,`tz`,`parts`,`top`,`cursor`].some(e=>i.searchParams.has(e))||o===`day`)return b(t,i);if(!Number.isFinite(a)||o&&![`agent`,`installation`,`engine`].includes(o))return r({error:`Invalid usage query`},400);let s=(await t.store.list(`usage`)).map(e=>e.value);return r(_(s,a,o))}export{l as a,d as i,x as n,S as r,f as t};
@@ -1 +1 @@
1
- import{i as e,r as t}from"./cli-BilSDkvE.js";import{g as n,p as r}from"./output-BKeyLbvt.js";import{i,n as a,s as o,t as s}from"./args-BOEEdpWk.js";import c from"node:process";const l={server:i,workspace:o,yes:a};function u(e,t){let i=Array.isArray(e.totals)?e.totals.map(e=>({group:t??``,...e})):Object.entries(e.totals).flatMap(([e,t])=>t.map(t=>({group:e,...t})));if(!i.length)return void c.stdout.write(`${r.dim(`No usage in this period.`)}\n`);c.stdout.write(`${n([{header:`by`,value:e=>e.group},{header:`key`,value:e=>e.key,paint:e=>r.cyan(e)},{header:`tasks`,value:e=>String(e.tasks)},{header:`runner ms`,value:e=>String(e.runnerMs)},{header:`tokens`,value:e=>e.tokens===void 0?``:JSON.stringify(e.tokens)}],i,r)}\n`)}const d=e({name:`agent usage`,help:{usage:`coder agent usage [--since 7d|24h|<ms>] [--by agent|installation|engine] [--server [url]] [--json] [--cwd <dir>]`,flags:[[`--since <period|ms>`,`period such as 7d or 24h, or milliseconds since epoch`],[`--by <group>`,`agent, installation, or engine`],t]},options:{...s,...l,since:o,by:o},run:async({options:e,cwd:t})=>{let{agents:n}=await import(`./agent-BsYx3Odz.js`).then(e=>e.t);return n.usage({...e,cwd:t,organization:e.workspace,since:e.since??`7d`})},print:(e,{options:t})=>u(e,t.by)});export{d as commandAgentUsage};
1
+ import{i as e,r as t}from"./cli-DWCR7iqa.js";import{g as n,p as r}from"./output-BKeyLbvt.js";import{i,n as a,s as o,t as s}from"./args-BOEEdpWk.js";import c from"node:process";const l={server:i,workspace:o,yes:a};function u(e,t){let i=Array.isArray(e.totals)?e.totals.map(e=>({group:t??``,...e})):Object.entries(e.totals).flatMap(([e,t])=>t.map(t=>({group:e,...t})));if(!i.length)return void c.stdout.write(`${r.dim(`No usage in this period.`)}\n`);c.stdout.write(`${n([{header:`by`,value:e=>e.group},{header:`key`,value:e=>e.key,paint:e=>r.cyan(e)},{header:`tasks`,value:e=>String(e.tasks)},{header:`runner ms`,value:e=>String(e.runnerMs)},{header:`tokens`,value:e=>e.tokens===void 0?``:JSON.stringify(e.tokens)}],i,r)}\n`)}const d=e({name:`agent usage`,help:{usage:`coder agent usage [--since 7d|24h|<ms>] [--by agent|installation|engine] [--server [url]] [--json] [--cwd <dir>]`,flags:[[`--since <period|ms>`,`period such as 7d or 24h, or milliseconds since epoch`],[`--by <group>`,`agent, installation, or engine`],t]},options:{...s,...l,since:o,by:o},run:async({options:e,cwd:t})=>{let{agents:n}=await import(`./agent-hw3zKw8y.js`).then(e=>e.t);return n.usage({...e,cwd:t,organization:e.workspace,since:e.since??`7d`})},print:(e,{options:t})=>u(e,t.by)});export{d as commandAgentUsage};
@@ -1,4 +1,4 @@
1
- import{Dn as e,cn as t}from"./dispatch-BKeAch9E.js";import{i as n,r}from"./cli-BilSDkvE.js";import{p as i,y as a}from"./output-BKeyLbvt.js";import{i as o,l as s,n as c,s as l,t as u}from"./args-BOEEdpWk.js";import{LogRenderer as d,finalMessageLine as f,printOutcome as p,promptBlock as m,taskHeaderLines as h,taskSummaryLines as g,trimStep as _}from"./result-BzaM3inj.js";import v from"node:process";import*as y from"zod/mini";const b={server:o,workspace:l,yes:c};function x(e,t){let n=e.level===`sys`?t.dim(`· ${e.line}`):e.level===`err`?t.light(e.line):e.line;v.stdout.write(`${n}\n`)}async function S(n,r,o){if(`attempts`in n.task){for await(let e of n.events)o.json?v.stdout.write(`${JSON.stringify(e,null,2)}\n`):x(e,i);let e=await n.final();o.json||p(e,i),v.exit(0)}let s=n.task,c=o.trim===void 0?500:o.trim===`none`?1/0:o.trim,l=await d.create({cwd:s.cwd??r,startedAt:Date.parse(s.createdAt??``)||void 0,trim:c,explicitTrim:o.trim!==void 0,width:a()});if(!o.json){let e=[...h(s,{status:s.status}),...t.includes(s.status)?[i.dim(`Watching. Press Ctrl-C to stop.`)]:[],...s.prompt?m(s.prompt,i,{truncate:!1}):[],``];v.stdout.write(`${e.join(`
1
+ import{Dn as e,cn as t}from"./dispatch-BKeAch9E.js";import{i as n,r}from"./cli-DWCR7iqa.js";import{p as i,y as a}from"./output-BKeyLbvt.js";import{i as o,l as s,n as c,s as l,t as u}from"./args-BOEEdpWk.js";import{LogRenderer as d,finalMessageLine as f,printOutcome as p,promptBlock as m,taskHeaderLines as h,taskSummaryLines as g,trimStep as _}from"./result-D8DsvJDu.js";import v from"node:process";import*as y from"zod/mini";const b={server:o,workspace:l,yes:c};function x(e,t){let n=e.level===`sys`?t.dim(`· ${e.line}`):e.level===`err`?t.light(e.line):e.line;v.stdout.write(`${n}\n`)}async function S(n,r,o){if(`attempts`in n.task){for await(let e of n.events)o.json?v.stdout.write(`${JSON.stringify(e,null,2)}\n`):x(e,i);let e=await n.final();o.json||p(e,i),v.exit(0)}let s=n.task,c=o.trim===void 0?500:o.trim===`none`?1/0:o.trim,l=await d.create({cwd:s.cwd??r,startedAt:Date.parse(s.createdAt??``)||void 0,trim:c,explicitTrim:o.trim!==void 0,width:a()});if(!o.json){let e=[...h(s,{status:s.status}),...t.includes(s.status)?[i.dim(`Watching. Press Ctrl-C to stop.`)]:[],...s.prompt?m(s.prompt,i,{truncate:!1}):[],``];v.stdout.write(`${e.join(`
2
2
  `)}\n`)}let u=null,y=null,b=e=>{let t=l.render(e);t.length&&v.stdout.write(`${t.join(`
3
3
  `)}\n`)};for await(let e of n.events){let t=e;if(t.kind===`usage`&&t.tokens&&(u=t.tokens),o.json){let e=t.kind===`steer`?1/0:c,n=t.message?{...t,message:_(t.message,e,{plain:!0})}:t;v.stdout.write(`${JSON.stringify(n)}\n`);continue}t.kind!==`usage`&&(y&&=(b(y),null),t.kind===`assistant`?y=t:b(t))}let{status:S,result:C,task:w}=await n.final();if(o.json)v.stdout.write(`${JSON.stringify({taskId:s.id,status:S,result:C},null,2)}\n`);else{let t=S===`completed`?`(no final message)`:`(task ${S})`,n=g(w,{tokens:C?.tokens??u,tokenModel:C?.model,files:C?.touchedFiles?.map(t=>e(s.cwd??r,t)),statusChanged:S!==s.status});n.length&&v.stderr.write(`\n${n.join(`
4
4
  `)}\n`);let i=f(C,w.error,t),a=y?String(y.message??``):``;v.stdout.write(`\n${i.trim()?i:a}\n`)}v.exit(S===`completed`?0:1)}const C=n({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
@@ -1,4 +1,4 @@
1
- import{Ht as e}from"./dispatch-BKeAch9E.js";import{i as t}from"./cli-BilSDkvE.js";import{_ as n,a as r,b as i,c as a,h as o,l as s,n as c,p as l,s as u,u as d,v as f,y as p}from"./output-BKeyLbvt.js";import{l as m,t as h}from"./args-BOEEdpWk.js";import g from"node:process";const _=t({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{Ht as e}from"./dispatch-BKeAch9E.js";import{i as t}from"./cli-DWCR7iqa.js";import{_ as n,a as r,b as i,c as a,h as o,l as s,n as c,p as l,s as u,u as d,v as f,y as p}from"./output-BKeyLbvt.js";import{l as m,t as h}from"./args-BOEEdpWk.js";import g from"node:process";const _=t({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
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:{...h,tail:m},args:1,run:async({options:e,args:[t]})=>{let{watchRun:n}=await import(`./executor-BvAA7Cgw.js`).then(e=>e.y);return N(n(t,{tail:e.tail}),{json:e.json,stream:!0})}}),v=[`⣾`,`⣽`,`⣻`,`⢿`,`⡿`,`⣟`,`⣯`,`⣷`];function y(e,t=!1){let n=l;return t?c(`[${x(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 b(){return c(`[start]`,10)}function x(e){return e===`completed`?`done`:e===`cancelled`?`failed`:e}function S(e,t){return e??t.replace(/\s+/g,` `).trim().slice(0,60)}function C(e,t,n,r,i,a){let o=l,u=c(t??n,32);return[`${e} ${a?o.bold(u):u}`,o.dim(c(n,24)),o.light(c(i??``,20)),r?o.light(`${s(r.total)} tok`):``].join(` `).trimEnd()}function w(e,t=!1){let n=l;return`${y(e.ok?`completed`:`failed`,t)} ${n.dim(`gate`)} ${n.light(e.cmd)}${e.ok?``:n.dim(` · exit ${e.code}`)}`}function T(e,t,n){let i=l,a=n!==void 0&&n>=1e3?i.dim(` · ${r(n)}`):``;return`${t} ${i.dim(`gate`)} ${i.light(e)}${a}`}function E(e,t=!1){return l.dim(`${`│ `.repeat(e)}${t?`└─`:`├─`}`)}function D(e){return l.dim(`${`│ `.repeat(e)}│ `)}function O(e){return`${` `.repeat(e.depth)}${e.log?`${c(`[log]`,10)} `:``}${e.body}`}function k(e,t,n=!1){return n?O(e):`${e.log?D(e.depth):E(e.depth,t)} ${e.body}`}function A(e){return l.dim(`${`│ `.repeat(Math.max(0,e))}│`)}var j=class{stream;names=new Map;active=new Map;activeGates=new Map;pending;previews=new Map;frame=0;hasCommitted=!1;timer;tty;region;constructor(e=g.stdout){this.stream=e,this.tty=!!e.isTTY,this.region=new n(e)}emit(e){let t=l;switch(e.kind){case`task-start`:{let t={name:S(e.name,e.prompt),engine:e.engine,depth:e.depth??0};if(this.names.set(e.taskId,t),!this.tty){this.final(t.depth,C(b(),t.name,e.taskId,null,t.engine));return}this.active.set(e.taskId,t),this.spin(!0),this.repaint();return}case`task-end`:{this.active.delete(e.taskId),this.previews.delete(e.taskId),this.idle();let t=this.names.get(e.taskId);this.final(t?.depth??0,C(y(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,T(t.cmd,b()));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,w(e,!this.tty));return;case`log`:for(let n of e.message.split(`
@@ -1 +1 @@
1
- import{zt as e}from"./dispatch-BKeAch9E.js";import{i as t}from"./cli-BilSDkvE.js";import{i as n}from"./output-BKeyLbvt.js";import{s as r}from"./args-BOEEdpWk.js";import i from"node:process";const a=t({name:`task worker`,options:{cwd:r},args:1,async run({args:[t],cwd:r}){let{startAgentMailbox:a}=await import(`./exec-RZFLclKX.js`).then(e=>e.i),{runWorker:o}=await import(`./worker-CXndxmGF.js`),s=e(r,t);s||n(`Worker: task ${t} not found.`),await o(r,s,a).catch(()=>i.exit(1))}});export{a as commandWorker};
1
+ import{zt as e}from"./dispatch-BKeAch9E.js";import{i as t}from"./cli-DWCR7iqa.js";import{i as n}from"./output-BKeyLbvt.js";import{s as r}from"./args-BOEEdpWk.js";import i from"node:process";const a=t({name:`task worker`,options:{cwd:r},args:1,async run({args:[t],cwd:r}){let{startAgentMailbox:a}=await import(`./exec-RZFLclKX.js`).then(e=>e.i),{runWorker:o}=await import(`./worker-CXndxmGF.js`),s=e(r,t);s||n(`Worker: task ${t} not found.`),await o(r,s,a).catch(()=>i.exit(1))}});export{a as commandWorker};
@@ -1 +1 @@
1
- import{i as e}from"./cli-BilSDkvE.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{ACTIONS_WORKFLOW_YAML:e}=await import(`./github-actions-DwUzm4hC.js`).then(e=>e.r);return e},print:e=>t.stdout.write(e)});export{n as commandServerWorkflow};
1
+ import{i as e}from"./cli-DWCR7iqa.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{ACTIONS_WORKFLOW_YAML:e}=await import(`./github-actions-DwUzm4hC.js`).then(e=>e.r);return e},print:e=>t.stdout.write(e)});export{n as commandServerWorkflow};
package/docs/cli.md ADDED
@@ -0,0 +1,145 @@
1
+ # CLI reference
2
+
3
+ Every command, grouped by what it acts on. Run `coder <command> --help` for the full flags, examples and exit codes of any one of them. Commands that take a `[task-id]` or `[run-id]` default to your most recent one.
4
+
5
+ ## Tasks
6
+
7
+ | Command | What it does |
8
+ | -------------------------------------------- | ---------------------------------------------------------------------------------------------- |
9
+ | `coder run "<text>"` | Dispatch a task in the background and print its id. Short for `coder task run`. |
10
+ | `coder list` | Recent tasks, running and just stopped. `--running`, `--stopped`, `--archived`, `--limit <n>`. |
11
+ | `coder result [task-id]` | Status and final answer. `--wait` blocks until it's ready. |
12
+ | `coder task watch [task-id]` | Stream the live transcript. |
13
+ | `coder task steer <task-id> "<text>"` | Continue the task's thread with new instructions, mid-run. |
14
+ | `coder task ask <task-id> "<question>"` | Ask about a task without interrupting it. |
15
+ | `coder task stop <task-id>` | Interrupt a running task. |
16
+ | `coder task approvals [task-id]` | Approvals waiting on you, across tasks or for one. |
17
+ | `coder task approve [task-id] <approval-id>` | Accept an escalated permission. `--deny` rejects it. |
18
+ | `coder task archive <task-id>` | Hide a stopped task from the list. `--all-stopped` for all of them. |
19
+ | `coder task delete <task-id>` | Delete a task's record. `--all-archived` for all archived ones. |
20
+
21
+ ### `coder run` flags
22
+
23
+ | Flag | What it does |
24
+ | ---------------------------------- | -------------------------------------------------------------------------------- |
25
+ | `--wait` | Run in the foreground and print the answer. |
26
+ | `--engine <codex\|claude\|custom>` | Engine to use. Defaults to the first in the chain. |
27
+ | `--model <alias\|slug>` | Model to use, built-in or one of yours (`coder model list`). |
28
+ | `--effort <low\|medium\|high>` | Reasoning effort. |
29
+ | `--permissions <mode>` | `read-only`, `workspace-write` or `auto` (the default). |
30
+ | `--agent <id>` | Run as a repo agent: its instructions, engine settings, MCP servers and flows. |
31
+ | `--system <text>` | Standing instructions prepended to the task. |
32
+ | `--mcp <names\|all\|json>` | Attach MCP servers by name, or inline. |
33
+ | `--add-dir <dir>` | Give the task another directory beyond `--cwd`. Repeatable. |
34
+ | `--output-schema <json>` | JSON Schema the answer must match. |
35
+ | `--name <name>` | Label the task in `list` and `result`. |
36
+ | `--resume <task-id>` | Continue that task's thread instead of starting fresh. |
37
+ | `--server [url]` | Run on your Coder server and follow it here. `--repo` and `--runner` pick where. |
38
+
39
+ ## Flows
40
+
41
+ | Command | What it does |
42
+ | ----------------------------- | ------------------------------------------------------------------------------------------------------- |
43
+ | `coder flow run <name\|path>` | Run a flow in the background. `--wait` follows it live, `--dry-run` prints every prompt and gate first. |
44
+ | `coder flow discover` | Flows you can run here, from the workspace and globally. |
45
+ | `coder flow list` | Recent runs. |
46
+ | `coder flow watch [run-id]` | Watch a run live. |
47
+ | `coder flow result [run-id]` | Progress and result across the run. |
48
+ | `coder flow stop [run-id]` | Stop a run and its still-running tasks. |
49
+ | `coder flow resume [run-id]` | Continue a stopped or edited run. |
50
+ | `coder flow archive <run-id>` | Hide a run. `--all-stopped` for all of them. |
51
+ | `coder flow delete <run-id>` | Delete a run's record. `--all-archived` for all archived ones. |
52
+
53
+ Pass a flow's input as `key=value` pairs or `--args '<json>'`. `--concurrency` and `--max-tasks` cap how wide it goes.
54
+
55
+ ## Review
56
+
57
+ | Command | What it does |
58
+ | ---------------------------- | -------------------------------------------------------------------- |
59
+ | `coder review` | Review this branch against the merge-base with the default branch. |
60
+ | `coder review --pr <n\|url>` | Review a pull request. `--post` posts inline comments and a summary. |
61
+
62
+ Narrow it with `--base`, `--head`, `--since <sha>`, `--path` and `--exclude`. `--engine`, `--model` and `--effort` pick what runs the review.
63
+
64
+ ## Models
65
+
66
+ | Command | What it does |
67
+ | ------------------------------------------------------ | -------------------------------------------------------------------------- |
68
+ | `coder model list` | Built-in models, your own, and aliases. |
69
+ | `coder model add <name> --base-url <url> --model <id>` | Connect any OpenAI-compatible endpoint. `--env-key <VAR>` for its API key. |
70
+ | `coder model update <name>` | Change a model in place. |
71
+ | `coder model remove <name>` | Delete one of your models. |
72
+ | `coder model alias <name> <spec>` | Name a shortcut, like `fast codex:luna`. `unalias` removes it. |
73
+ | `coder model disable <name>` | Take a model out of rotation. `enable` brings it back. |
74
+
75
+ ## Configuration and MCP
76
+
77
+ | Command | What it does |
78
+ | ------------------------------------ | ------------------------------------------------------------------------ |
79
+ | `coder config list` | The effective configuration. |
80
+ | `coder config get <key>` | Read one value, like `engines.codex.model`. |
81
+ | `coder config set <key> <value>` | Write a value. `--workspace` writes to this repo's `.coder/config.json`. |
82
+ | `coder config unset <key>` | Remove a value. |
83
+ | `coder mcp add <name> -- <command>` | Add a stdio MCP server. `--url <url>` adds a remote one. |
84
+ | `coder mcp add-json <name> '<json>'` | Add an entry in `.mcp.json` shape. |
85
+ | `coder mcp list` | Configured MCP servers. |
86
+ | `coder mcp rm <name>` | Remove one. |
87
+
88
+ ## Agents
89
+
90
+ | Command | What it does |
91
+ | -------------------------------------- | -------------------------------------------------------------- |
92
+ | `coder agent list` | Agents in this workspace, or on your server. |
93
+ | `coder agent show <id>` | One agent in full: settings, integrations, triggers, tools. |
94
+ | `coder agent init [id]` | Scaffold an agent in `.coder/agents/`. |
95
+ | `coder agent run <agent> <event.json>` | Run a recorded event through an agent, offline or on a server. |
96
+ | `coder agent push [id]` | Upload workspace agents to your server. |
97
+ | `coder agent integrations list` | The apps an agent can connect to. `show <id>` for one. |
98
+ | `coder agent usage` | Usage by agent, installation or engine. |
99
+
100
+ ## Servers
101
+
102
+ | Command | What it does |
103
+ | --------------------------------------- | ---------------------------------------------------------------------------------------------- |
104
+ | `coder auth login` | Sign in to Coder Cloud. `--server <url>` for a self-hosted one. |
105
+ | `coder auth status` | Where you're signed in. `logout` forgets the session. |
106
+ | `coder credentials list` | Engine credentials on your server. `add`, `login`, `default` and `remove` manage them. |
107
+ | `coder runner serve --url <public url>` | Run your server's tasks on this machine. |
108
+ | `coder runner list` | Your runners and the workspace's. `add`, `test`, `default`, `rename` and `remove` manage them. |
109
+ | `coder server serve` | Run a Coder server. See [Self-hosting](self-host.md). |
110
+ | `coder server migrate` | Apply pending database migrations. |
111
+ | `coder server rotate-key` | Re-seal stored secrets with a new `SERVER_ENCRYPTION_KEY`. |
112
+ | `coder server app create <integration>` | Create the built-in agent's public app on a platform. |
113
+ | `coder server workflow` | Print the GitHub Actions workflow the `github-actions` runner uses. |
114
+
115
+ ## Setup and upkeep
116
+
117
+ | Command | What it does |
118
+ | ----------------------------------- | ----------------------------------------------------------------------------------------------- |
119
+ | `coder setup-host [claude\|agents]` | Install or repair the host plugin, and check engines and auth. |
120
+ | `coder dash` | Your tasks, agents and settings in the browser. Short for `coder server serve` on this machine. |
121
+ | `coder upgrade` | Update the CLI and host plugins. `--cli-only` or `--plugins-only` to narrow it. |
122
+ | `coder docs [topic]` | Print a bundled guide. |
123
+
124
+ Set `CODER_NO_UPDATE_CHECK=1` to silence the update notice.
125
+
126
+ ## Global flags
127
+
128
+ | Flag | What it does |
129
+ | ----------------- | ------------------------- |
130
+ | `--json` | Machine-readable output. |
131
+ | `--cwd <dir>` | Act on another workspace. |
132
+ | `-h`, `--help` | Help for any command. |
133
+ | `-v`, `--version` | Print the version. |
134
+
135
+ ## Exit codes
136
+
137
+ `coder run --wait` and `coder result --wait` exit with:
138
+
139
+ | Code | Meaning |
140
+ | ---- | --------------------------------------------------- |
141
+ | 0 | The task completed. |
142
+ | 1 | The task failed or was cancelled. |
143
+ | 3 | No engine could start. |
144
+ | 4 | An approval is pending. Answer it, then wait again. |
145
+ | 130 | You detached from the wait. The task keeps running. |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wular/coder",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "description": "Delegating coding-agent runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/sdk.js",
@@ -39,6 +39,7 @@
39
39
  "src/client/index.ts",
40
40
  "src/client/types.ts",
41
41
  "src/core/errors.ts",
42
+ "src/core/defaults.ts",
42
43
  "src/core/task/log-view.ts",
43
44
  "plugins",
44
45
  ".claude-plugin",
@@ -60,7 +61,7 @@
60
61
  "@chat-adapter/teams": "4.41.1",
61
62
  "@octokit/auth-app": "8.3.1",
62
63
  "@tanstack/virtual-core": "3.17.1",
63
- "@wular/pnext": "0.1.5",
64
+ "@wular/pnext": "0.1.6",
64
65
  "chat": "4.41.1",
65
66
  "drizzle-orm": "0.45.2",
66
67
  "jose": "6.2.12",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coder",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
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.1",
4
+ "version": "0.4.2",
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"
@@ -0,0 +1,25 @@
1
+ import type { CoderConfig } from './config';
2
+
3
+ /** Built-in config every file and flag merges over; import-free so the shipped dashboard can read it. */
4
+ export const DEFAULT_CONFIG: CoderConfig = {
5
+ // Agents are tried in order; the next one is the fallback when the previous
6
+ // fails to start (missing binary, auth, quota, rate limit).
7
+ chain: ['codex', 'claude'],
8
+ engines: {
9
+ codex: {
10
+ model: 'gpt-6.1-sol',
11
+ effort: 'high',
12
+ permissions: 'auto',
13
+ },
14
+ claude: {
15
+ model: 'opus',
16
+ effort: 'medium',
17
+ permissions: 'auto',
18
+ },
19
+ },
20
+ models: {},
21
+ approvals: {
22
+ escalationTimeoutMs: 120_000,
23
+ allowedNetworkHosts: [],
24
+ },
25
+ };
@@ -40,7 +40,7 @@
40
40
  .side {
41
41
  position: sticky;
42
42
  top: 56px;
43
- z-index: 5;
43
+ z-index: 12;
44
44
  height: calc(100vh - 56px);
45
45
  display: flex;
46
46
  flex-direction: column;
@@ -248,6 +248,63 @@
248
248
  .side-min .side nav .n {
249
249
  display: none;
250
250
  }
251
+ /* collapsed icons and the sidebar toggle name themselves on hover and keyboard focus */
252
+ .side-min .side [data-tip],
253
+ .side-toggle {
254
+ position: relative;
255
+ }
256
+ .side-min .side [data-tip]::after,
257
+ .side-toggle::after {
258
+ content: attr(data-tip) / '';
259
+ position: absolute;
260
+ top: 50%;
261
+ left: calc(100% + 12px);
262
+ z-index: 30;
263
+ padding: 6px 10px;
264
+ border: 1px solid var(--line2);
265
+ background: var(--tile);
266
+ box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
267
+ color: var(--fg);
268
+ font-size: 12px;
269
+ letter-spacing: normal;
270
+ white-space: nowrap;
271
+ transform: translateY(-50%);
272
+ pointer-events: none;
273
+ opacity: 0;
274
+ transition: opacity 0.1s;
275
+ }
276
+ /* a small arrow on the tooltip's edge, pointing back at the icon */
277
+ .side-min .side [data-tip]::before,
278
+ .side-toggle::before {
279
+ content: '';
280
+ position: absolute;
281
+ top: 50%;
282
+ left: calc(100% + 8px);
283
+ z-index: 31;
284
+ width: 8px;
285
+ height: 8px;
286
+ border-bottom: 1px solid var(--line2);
287
+ border-left: 1px solid var(--line2);
288
+ background: var(--tile);
289
+ transform: translateY(-50%) rotate(45deg);
290
+ pointer-events: none;
291
+ opacity: 0;
292
+ transition: opacity 0.1s;
293
+ }
294
+ .side-min .side [data-tip]:is(:hover, :focus-visible)::before,
295
+ .side-min .side [data-tip]:is(:hover, :focus-visible)::after,
296
+ .side-toggle:is(:hover, :focus-visible)::before,
297
+ .side-toggle:is(:hover, :focus-visible)::after {
298
+ opacity: 1;
299
+ }
300
+ .side-toggle:is(:hover, :focus-visible)::before,
301
+ .side-toggle:is(:hover, :focus-visible)::after {
302
+ transition-delay: 0.7s;
303
+ }
304
+ .side-min .menu:has(:popover-open) > [data-tip]::before,
305
+ .side-min .menu:has(:popover-open) > [data-tip]::after {
306
+ opacity: 0;
307
+ }
251
308
  .side-min .server > button {
252
309
  justify-content: center;
253
310
  padding: 10px 0;
@@ -31,7 +31,6 @@ import { Drawer } from '@/comps/frame/drawer';
31
31
  import { SignOut } from '@/app/dash/account/sign-out';
32
32
  import { CurrentLink } from '@/comps/nav/current-link';
33
33
  import { SideToggle } from '@/comps/nav/side-toggle';
34
- import { TokenFromHash } from './token-from-hash';
35
34
  import type { To } from '@/comps/nav/to';
36
35
  import { Menu } from '@/comps/ui/menu';
37
36
  import { TaskToasts } from '@/comps/frame/task-toasts';
@@ -170,17 +169,19 @@ function ServerMenu({ me, host }: { me?: Me; host: string }) {
170
169
  const memory = !me?.user;
171
170
  const local = me?.mode === 'local';
172
171
  const url = me?.server?.url ?? `https://${host}`;
172
+ const name = local ? 'Local server' : memory ? 'Memory server' : 'Cloud server';
173
173
 
174
174
  return (
175
175
  <Menu
176
176
  class="server"
177
177
  align="up"
178
178
  label="Server"
179
+ tip={name}
179
180
  summary={
180
181
  <>
181
182
  <i class={memory && !local ? 'dot' : 'dot ok'} />
182
183
  <span class="grow" title={`${me?.server?.name ?? 'Coder'} · ${new URL(url).host}`}>
183
- {local ? 'Local server' : memory ? 'Memory server' : 'Cloud server'}
184
+ {name}
184
185
  </span>
185
186
  <Icon d={iUpdown} />
186
187
  </>
@@ -212,6 +213,17 @@ async function ActiveCount({ count }: { count: Promise<TasksPage> }) {
212
213
  ) : null;
213
214
  }
214
215
 
216
+ // `serve` opens /dash#token=…: the fragment never reaches the server, so the form posts it while the page loads, busy from first paint.
217
+ const TOKEN_FROM_HASH = `(() => {
218
+ const token = /(?:^|&)token=([^&]+)/.exec(location.hash.slice(1))?.[1];
219
+ if (!token) return;
220
+ history.replaceState(null, '', location.pathname + location.search);
221
+ const form = document.getElementById('token-form');
222
+ form.elements.token.value = decodeURIComponent(token);
223
+ form.querySelector('button').setAttribute('aria-busy', 'true');
224
+ form.submit();
225
+ })();`;
226
+
215
227
  function TokenPage({ request }: { request: Request }) {
216
228
  const url = new URL(request.url);
217
229
  const rejected = url.searchParams.get('token') === 'rejected';
@@ -238,7 +250,7 @@ function TokenPage({ request }: { request: Request }) {
238
250
  </p>
239
251
  ) : null}
240
252
  </form>
241
- <TokenFromHash />
253
+ <script dangerouslySetInnerHTML={{ __html: TOKEN_FROM_HASH }} />
242
254
  </AuthPanel>
243
255
  );
244
256
  }
@@ -307,7 +319,7 @@ export default function DashLayout({
307
319
  <nav aria-label="Dashboard">
308
320
  {navFor(request.headers.get('x-coder-mode') === 'local').map(
309
321
  ({ within, label, icon, ...to }) => (
310
- <CurrentLink key={within} {...to} within={within} title={label}>
322
+ <CurrentLink key={within} {...to} within={within} data-tip={label}>
311
323
  <Icon d={icon} />
312
324
  {label}
313
325
  {label === 'Tasks' ? (
@@ -5,7 +5,7 @@ import './credentials-list.css';
5
5
  import './list.css';
6
6
  import { dynamic } from '@wular/pnext/dynamic';
7
7
  import { notFound } from '@wular/pnext/navigation';
8
- import { DEFAULT_CONFIG } from '@coder/core/config';
8
+ import { DEFAULT_CONFIG } from '@coder/core/defaults';
9
9
 
10
10
  import { load } from '@/api/load';
11
11
  import { Settle, Stream } from '@/comps/frame/stream';
@@ -21,7 +21,7 @@ export function SideToggle({ collapsed: initial }: { collapsed: boolean }) {
21
21
  type="button"
22
22
  class="icon-btn side-toggle"
23
23
  aria-label={collapsed ? 'Expand sidebar' : 'Collapse sidebar'}
24
- title={collapsed ? 'Expand sidebar' : 'Collapse sidebar'}
24
+ data-tip={collapsed ? 'Expand sidebar' : 'Collapse sidebar'}
25
25
  onClick={toggle}
26
26
  >
27
27
  <Icon d={collapsed ? iRight : iLeft} />
@@ -13,6 +13,7 @@ export function Menu({
13
13
  summary,
14
14
  summaryClass,
15
15
  label,
16
+ tip,
16
17
  align = 'right',
17
18
  wide,
18
19
  class: cls,
@@ -21,6 +22,8 @@ export function Menu({
21
22
  summary: ComponentChildren;
22
23
  summaryClass?: string;
23
24
  label?: string;
25
+ /** A styled tooltip in place of the native title, where the layout shows one. */
26
+ tip?: string;
24
27
  align?: 'right' | 'up' | 'left';
25
28
  wide?: boolean;
26
29
  class?: string;
@@ -34,7 +37,8 @@ export function Menu({
34
37
  type="button"
35
38
  class={summaryClass}
36
39
  aria-label={label}
37
- title={label}
40
+ title={tip ? undefined : label}
41
+ data-tip={tip}
38
42
  >
39
43
  {summary}
40
44
  </button>
@@ -15,8 +15,9 @@
15
15
  .toast {
16
16
  position: relative;
17
17
  display: grid;
18
- gap: 4px;
19
- padding: 10px 12px;
18
+ grid-template-columns: minmax(0, 1fr);
19
+ gap: 6px;
20
+ padding: 14px 16px;
20
21
  border: 1px solid var(--line2);
21
22
  background: var(--tile);
22
23
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
@@ -1 +0,0 @@
1
- import{s as e}from"./cli-BilSDkvE.js";const t=e(`auth`,{login:async()=>(await import(`./login-BFxX4jJy.js`)).commandLogin,logout:async()=>(await import(`./logout-BHAtw4Z8.js`)).commandLogout,status:async()=>(await import(`./status-D26U--p8.js`)).commandStatus},{menu:[{usage:`login`,blurb:`sign in through the browser`},{usage:`logout`,blurb:`sign out and forget the saved session`},{usage:`status`,blurb:`show where you are signed in`}],description:[`Sign in to Coder and manage saved server sessions.`],exampleCommand:`auth login`});export{t as commandAuth};
@@ -1 +0,0 @@
1
- import{s as e}from"./cli-BilSDkvE.js";const t=e(`credentials`,{list:async()=>(await import(`./list-BxEywhHU.js`)).commandCredentialsList,add:async()=>(await import(`./add-ej0X9e3a.js`)).commandCredentialsAdd,login:async()=>(await import(`./login-DkkslfBx.js`)).commandCredentialsLogin,remove:async()=>(await import(`./remove-eQ8y5C5p.js`)).commandCredentialsRemove,default:async()=>(await import(`./default-vYPT26DR.js`)).commandCredentialsDefault},void 0,{help:{usage:`coder credentials [list|add|login|remove|default] ...`,summary:`Manage engine credentials. Your personal ones are yours alone; workspace ones serve every member, and only owners and admins change them. A task runs on its requester's default for the engine, else the workspace's.`}});export{t as commandCredentials};