@wular/coder 0.3.17 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (473) hide show
  1. package/README.md +18 -16
  2. package/bin/coder.mjs +3 -1
  3. package/dist/actions-Mk3FSlpJ.js +20 -0
  4. package/dist/adapter-B0oYCI0S.js +1 -0
  5. package/dist/adapter-BKVzTDnn.js +1 -0
  6. package/dist/adapter-DPInwbJG.js +1 -0
  7. package/dist/adapter-DaiJMOYo.js +1 -0
  8. package/dist/adapter-PeKziOUg.js +1 -0
  9. package/dist/add-BxpLHnvD.js +1 -0
  10. package/dist/add-CE-70LFs.js +1 -0
  11. package/dist/add-U-pty9qJ.js +6 -0
  12. package/dist/add-ej0X9e3a.js +1 -0
  13. package/dist/add-json-CEa-6luW.js +1 -0
  14. package/dist/agent-BsYx3Odz.js +3 -0
  15. package/dist/agent-JdtZozvP.js +1 -0
  16. package/dist/alias-DX-Bm86x.js +2 -0
  17. package/dist/app-BT5f7zL5.js +1 -0
  18. package/dist/approvals-C-AvFt6s.js +2 -0
  19. package/dist/approve-DOmpQRNd.js +2 -0
  20. package/dist/apps-CjfrZyM5.js +1 -0
  21. package/dist/archive-BUB8gFKD.js +4 -0
  22. package/dist/archive-BziJ1rQ-.js +3 -0
  23. package/dist/archive-sweep-CtBcARgN.js +1 -0
  24. package/dist/args-BOEEdpWk.js +1 -0
  25. package/dist/ask-dE3U3ss2.js +4 -0
  26. package/dist/auth-BFny--17.js +1 -0
  27. package/dist/auth-DWHIzqbA.js +1 -0
  28. package/dist/builtin/coder/agent.json +24 -0
  29. package/dist/builtin/coder/system.md +17 -0
  30. package/dist/chat-3Znsevah.js +1 -0
  31. package/dist/chat-B_yhNTo0.js +13 -0
  32. package/dist/chat-bridge-BS9WtP3X.js +2 -0
  33. package/dist/cli-BilSDkvE.js +9 -0
  34. package/dist/cli.d.ts +71 -1
  35. package/dist/cli.js +1 -91
  36. package/dist/client-D9IoAuDD.js +1 -0
  37. package/dist/config-Da_cwoxI.js +3 -0
  38. package/dist/create-C_iMJV4Y.js +1 -0
  39. package/dist/credentials-B1jv6dkg.js +1 -0
  40. package/dist/dash/manifest.json +3427 -0
  41. package/dist/dash/public/assets/apple-touch-icon.png +0 -0
  42. package/dist/dash/public/assets/chunks/agent-pills-69c965aae1737cef.js +1 -0
  43. package/dist/dash/public/assets/chunks/agent-settings-form-a1ce70812eea3f20.js +1 -0
  44. package/dist/dash/public/assets/chunks/agents-grid-f62180478e43c192.js +1 -0
  45. package/dist/dash/public/assets/chunks/badge-d07f35e9abc80e14.js +1 -0
  46. package/dist/dash/public/assets/chunks/card-be04148b64223a52.js +1 -0
  47. package/dist/dash/public/assets/chunks/combo-32c321a7a84fa902.js +1 -0
  48. package/dist/dash/public/assets/chunks/composer-aec9c3c691f1f79a.js +1 -0
  49. package/dist/dash/public/assets/chunks/composer-data-6f7608fed13f3dd7.js +1 -0
  50. package/dist/dash/public/assets/chunks/composer-e56860d72742379e.js +1 -0
  51. package/dist/dash/public/assets/chunks/confirm-b4e2c16aef4b3431.js +1 -0
  52. package/dist/dash/public/assets/chunks/connect-apps-a5a63941e287c33f.js +1 -0
  53. package/dist/dash/public/assets/chunks/connect-repositories-e4c049b5b4384623.js +1 -0
  54. package/dist/dash/public/assets/chunks/credentials-list-2b7d0c771b89f9c5.js +2 -0
  55. package/dist/dash/public/assets/chunks/custom-range-53b70e0d9eeae84e.js +1 -0
  56. package/dist/dash/public/assets/chunks/editor-691d2bcecb1ecb87.js +7 -0
  57. package/dist/dash/public/assets/chunks/engines-list-a5fe1671601ce3b0.js +1 -0
  58. package/dist/dash/public/assets/chunks/field-9e12e5fc8774b6e5.js +1 -0
  59. package/dist/dash/public/assets/chunks/format-eb03fc9d9744d960.js +1 -0
  60. package/dist/dash/public/assets/chunks/heads-4041a925d63ab116.js +1 -0
  61. package/dist/dash/public/assets/chunks/instructions-4e0d18b9b40edbd7.js +2 -0
  62. package/dist/dash/public/assets/chunks/instructions-b00959bd4bb70502.js +1 -0
  63. package/dist/dash/public/assets/chunks/list-d7eb9e02cf261fbe.js +1 -0
  64. package/dist/dash/public/assets/chunks/mcp-list-a450533109045ef5.js +1 -0
  65. package/dist/dash/public/assets/chunks/model-options-15c53331a2f28a4f.js +1 -0
  66. package/dist/dash/public/assets/chunks/models-list-1e273c6843858148.js +1 -0
  67. package/dist/dash/public/assets/chunks/paged-bc6fa0c2b9d52ed7.js +1 -0
  68. package/dist/dash/public/assets/chunks/platform-actions-87f3f76ec1b840cb.js +1 -0
  69. package/dist/dash/public/assets/chunks/runners-list-fc7cdae4fa93e78b.js +1 -0
  70. package/dist/dash/public/assets/chunks/runtime-246221e985d863e5-1.js +2 -0
  71. package/dist/dash/public/assets/chunks/segmented-6091dfb2f954799f.js +1 -0
  72. package/dist/dash/public/assets/chunks/select-dd09a6b9544cfde2.js +1 -0
  73. package/dist/dash/public/assets/chunks/sentinel-ff7143a47fd22835.js +1 -0
  74. package/dist/dash/public/assets/chunks/shared-init-246221e985d863e5-2.js +1 -0
  75. package/dist/dash/public/assets/chunks/shared-init-8f2ac936c95a7f7b.js +1 -0
  76. package/dist/dash/public/assets/chunks/shared-init-986901c810947c12.js +5 -0
  77. package/dist/dash/public/assets/chunks/shared-init-baceed9fd2d43661.js +2 -0
  78. package/dist/dash/public/assets/chunks/tail-5a5bfcd308535d70.js +1 -0
  79. package/dist/dash/public/assets/chunks/task-actions-7919ca0e901131f4.js +1 -0
  80. package/dist/dash/public/assets/chunks/task-fa8b82e95e771c4a.js +1 -0
  81. package/dist/dash/public/assets/chunks/task-view-e8a0f99c992fa11e.js +3 -0
  82. package/dist/dash/public/assets/chunks/tasks-list-7b72f5b295349532.js +1 -0
  83. package/dist/dash/public/assets/chunks/toolbar-9b18a5d26dee37c3.js +1 -0
  84. package/dist/dash/public/assets/chunks/versions-list-8cdf3a41c56b2152.js +1 -0
  85. package/dist/dash/public/assets/chunks/wular-pnext-246221e985d863e5-0.js +1 -0
  86. package/dist/dash/public/assets/connect-382b1729a7ae7808.css +1 -0
  87. package/dist/dash/public/assets/dash-9e02d5d1a6d42ee3.css +1 -0
  88. package/dist/dash/public/assets/dash-account-04859899c1838ada.css +1 -0
  89. package/dist/dash/public/assets/dash-agents-9e678137267dec07.css +1 -0
  90. package/dist/dash/public/assets/dash-agents-new-26fa27b17ef9b8d8.css +1 -0
  91. package/dist/dash/public/assets/dash-agents-param-slug-b975c48f8abf3444.css +1 -0
  92. package/dist/dash/public/assets/dash-agents-param-slug-edit-e13fda599bb04843.css +1 -0
  93. package/dist/dash/public/assets/dash-agents-param-slug-platforms-70292932cb27bc96.css +1 -0
  94. package/dist/dash/public/assets/dash-agents-param-slug-settings-71f9a86251723fcc.css +1 -0
  95. package/dist/dash/public/assets/dash-agents-param-slug-tasks-fb8eb2ed71006601.css +1 -0
  96. package/dist/dash/public/assets/dash-agents-param-slug-usage-7c8740f1cdd52c71.css +1 -0
  97. package/dist/dash/public/assets/dash-settings-8eb818da462227e8.css +1 -0
  98. package/dist/dash/public/assets/dash-settings-param-tab-849a1a9542e273f5.css +1 -0
  99. package/dist/dash/public/assets/dash-tasks-81e510e0b6931b42.css +1 -0
  100. package/dist/dash/public/assets/dash-tasks-param-id-bbd2a83342f2ec10.css +1 -0
  101. package/dist/dash/public/assets/dash-usage-8e0259e03eaed1bd.css +1 -0
  102. package/dist/dash/public/assets/favicon.ico +0 -0
  103. package/dist/dash/public/assets/favicon.svg +1 -0
  104. package/dist/dash/public/assets/fonts/LICENSE-fira-code +93 -0
  105. package/dist/dash/public/assets/fonts/fira-code-latin-400-normal-717ee080.woff2 +0 -0
  106. package/dist/dash/public/assets/fonts/fira-code-latin-500-normal-530b6706.woff2 +0 -0
  107. package/dist/dash/public/assets/fonts/fira-code-latin-700-normal-98730669.woff2 +0 -0
  108. package/dist/dash/public/assets/global-d2adbf01910d9df5.css +1 -0
  109. package/dist/dash/public/assets/login-c129b1ce237be260.css +1 -0
  110. package/dist/dash/public/assets/pnext-client-073464b8f422ef57.js +1 -0
  111. package/dist/dash/public/assets/pnext-client-0b6720fdec66eeb0.js +1 -0
  112. package/dist/dash/public/assets/pnext-client-1e9cb2f4f6387a87.js +1 -0
  113. package/dist/dash/public/assets/pnext-client-2f0e78dd006fed0f.js +1 -0
  114. package/dist/dash/public/assets/pnext-client-3c62e2aa2cbe9fe1.js +1 -0
  115. package/dist/dash/public/assets/pnext-client-43a88896ed42dd39.js +1 -0
  116. package/dist/dash/public/assets/pnext-client-4cf2e27d0b9c0365.js +1 -0
  117. package/dist/dash/public/assets/pnext-client-587008fa987d3073.js +1 -0
  118. package/dist/dash/public/assets/pnext-client-676360cc86f31573.js +1 -0
  119. package/dist/dash/public/assets/pnext-client-813427605f424145.js +1 -0
  120. package/dist/dash/public/assets/pnext-client-82de7cf6dfc35b98.js +1 -0
  121. package/dist/dash/public/assets/pnext-client-831e8004c09f0b5b.js +1 -0
  122. package/dist/dash/public/assets/pnext-client-9b557fe468a45ca3.js +1 -0
  123. package/dist/dash/public/assets/pnext-client-ab7c900c802fe827.js +1 -0
  124. package/dist/dash/public/assets/pnext-client-d87d00e402811f0c.js +1 -0
  125. package/dist/dash/public/assets/pnext-client-fbdb7c1da7eda7e5.js +1 -0
  126. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/boot-B2MFTRO2.js +28 -0
  127. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/build-tier-XJJSL5FR.js +2702 -0
  128. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-2HFY3DQT.js +206 -0
  129. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-2ICEVELW.js +832 -0
  130. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-3UPROT2C.js +33 -0
  131. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-4P5CMIYT.js +1580 -0
  132. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-4TKZKZ3Q.js +129 -0
  133. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-5RDEILQB.js +435 -0
  134. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-62KEQM43.js +23 -0
  135. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-6KQSWT6D.js +829 -0
  136. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-7DCNCW6O.js +722 -0
  137. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-B4THCTQP.js +20 -0
  138. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-C2LIV2MM.js +170 -0
  139. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-CCATPVTW.js +376 -0
  140. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-COXJAPTU.js +87 -0
  141. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-E6IXL2NJ.js +6268 -0
  142. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-FLGRBFAH.js +1196 -0
  143. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-FTJVHFWD.js +59 -0
  144. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-H523KSIH.js +5149 -0
  145. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-HT6KKX6A.js +18 -0
  146. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-JESFYECC.js +436 -0
  147. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-JRPJM2XY.js +15 -0
  148. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-L2IWDUXG.js +105 -0
  149. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-L5P4Y4UC.js +181 -0
  150. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-NQE46AZN.js +645 -0
  151. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-PA4QEARJ.js +127 -0
  152. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-PZ5AXOLW.js +7144 -0
  153. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-SNVPTULL.js +2395 -0
  154. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-T3QZT3PG.js +218 -0
  155. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-VC5O2SDP.js +70 -0
  156. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-WZX4V6CM.js +229 -0
  157. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-XUUIDXY5.js +625 -0
  158. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-ZHFDO3PR.js +263 -0
  159. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/compile-CE2DN7ZA.js +16 -0
  160. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/config-UREY7XJT.js +14 -0
  161. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/config-loader-UI2XE3PZ.js +15 -0
  162. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/entry.js +217 -0
  163. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/generate-I2PPTDFD.js +14 -0
  164. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/modules-UVOCE4C2.js +46 -0
  165. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/pipeline-UW47K537.js +961 -0
  166. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/proxy-ITGOVJBW.js +24 -0
  167. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/register-4SA55SWT.js +12577 -0
  168. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/router-JNKHLBCZ.js +503 -0
  169. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/routes-PD6J2NXW.js +52 -0
  170. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/tsconfig-defaults-ZXEH7RQK.js +13 -0
  171. package/dist/default-Bobztoxf.js +1 -0
  172. package/dist/default-vYPT26DR.js +1 -0
  173. package/dist/delete-D8gEwoOj.js +4 -0
  174. package/dist/delete-z1_86nf6.js +2 -0
  175. package/dist/disable-DVKd-0Xb.js +1 -0
  176. package/dist/discover-Df-a8K4R.js +3 -0
  177. package/dist/discover-Dvr_3_Xr.js +1 -0
  178. package/dist/dispatch-BKeAch9E.js +14 -0
  179. package/dist/docs-BX65z2Iu.js +2 -0
  180. package/dist/docs-DKJnqZqt.js +2 -0
  181. package/dist/enable-C8Zf_wpN.js +1 -0
  182. package/dist/env-CRf6wkM2.js +1 -0
  183. package/dist/exec-RZFLclKX.js +11 -0
  184. package/dist/executor-BvAA7Cgw.js +10 -0
  185. package/dist/flow/builtin/review.d.ts +157 -0
  186. package/dist/flow/builtin/review.js +19 -0
  187. package/dist/flow/index.d.ts +1 -1
  188. package/dist/flow/index.js +1 -1
  189. package/dist/flow-17k25MHt.js +1 -0
  190. package/dist/github-actions-DwUzm4hC.js +24 -0
  191. package/dist/http-Bkg_OQ6r.js +1 -0
  192. package/dist/{index-BQ-b77or.d.ts → index-DT7EST00.d.ts} +116 -238
  193. package/dist/init-CoMfFxbG.js +1 -0
  194. package/dist/integrations-5xCaXSd-.js +1 -0
  195. package/dist/integrations-BAgdVDhj.js +5 -0
  196. package/dist/lib/broker.js +3 -3
  197. package/dist/list-BAKvxSbh.js +4 -0
  198. package/dist/list-BYiG8Zav.js +2 -0
  199. package/dist/list-BxEywhHU.js +1 -0
  200. package/dist/list-C5w01-8q.js +1 -0
  201. package/dist/list-CIW2joV1.js +1 -0
  202. package/dist/list-DX-z3SBp.js +3 -0
  203. package/dist/list-DpCf4G-H.js +4 -0
  204. package/dist/list-VToARh3C.js +1 -0
  205. package/dist/load-BpEsAn51.js +2 -0
  206. package/dist/local-H3uvqEbq.js +1 -0
  207. package/dist/log-view-dg0TlKLA.js +1 -0
  208. package/dist/login-BFxX4jJy.js +1 -0
  209. package/dist/login-DkkslfBx.js +1 -0
  210. package/dist/logout-BHAtw4Z8.js +1 -0
  211. package/dist/maintenance-C5FklUw3.js +1 -0
  212. package/dist/match-CXAjDhg7.js +1 -0
  213. package/dist/mcp-BgKb2Cdk.js +1 -0
  214. package/dist/mcp-CCZOAo06.js +1 -0
  215. package/dist/mcp-server-DGzme0YX.js +1 -0
  216. package/dist/migrate-C4vM7DQN.js +2 -0
  217. package/dist/migrate-N-85_N7J.js +1 -0
  218. package/dist/model-Bs1StDo3.js +1 -0
  219. package/dist/models-_5LVGC3m.js +1 -0
  220. package/dist/output-BKeyLbvt.js +5 -0
  221. package/dist/prompt-CEuBMNhk.js +7 -0
  222. package/dist/push-CUC55Bqd.js +1 -0
  223. package/dist/queue-6io_NOP3.js +116 -0
  224. package/dist/refresh-BIrmrWYq.js +1 -0
  225. package/dist/remote-miQNTVRa.js +1 -0
  226. package/dist/remove-B93LNkZI.js +1 -0
  227. package/dist/remove-C5_xggx7.js +1 -0
  228. package/dist/remove-CuH8a3L9.js +1 -0
  229. package/dist/remove-eQ8y5C5p.js +1 -0
  230. package/dist/rename-CYfy03FE.js +1 -0
  231. package/dist/result-BEtQZHaY.js +5 -0
  232. package/dist/result-BzaM3inj.js +15 -0
  233. package/dist/resume-DYzKvyEw.js +3 -0
  234. package/dist/review-oIBeECZE.js +7 -0
  235. package/dist/rolldown-runtime-DT7IzrpZ.js +1 -0
  236. package/dist/rotate-key-IdMYH7gg.js +1 -0
  237. package/dist/run-BDYl0CKl.js +2 -0
  238. package/dist/run-CTtd0Znc.js +5 -0
  239. package/dist/run-CawRGnOg.js +2 -0
  240. package/dist/runner-D7ScbIHJ.js +1 -0
  241. package/dist/runner-sUpWJ_k0.js +1 -0
  242. package/dist/schema-CU2iFkp8.js +1 -0
  243. package/dist/sdk.d.ts +1166 -191
  244. package/dist/sdk.js +1 -1
  245. package/dist/serve-BTeomYxW.js +1 -0
  246. package/dist/serve-CE8YV2e9.js +1 -0
  247. package/dist/serve-CPnmrKyf.js +2 -0
  248. package/dist/serve-CQKZxzFE.js +4 -0
  249. package/dist/serve-GmRO89s5.js +12 -0
  250. package/dist/server-Kb22cWfF.js +1 -0
  251. package/dist/setup-host-GFTUzzZJ.js +6 -0
  252. package/dist/shared-DVtzWhUT.js +1 -0
  253. package/dist/show-CMUg8SJu.js +1 -0
  254. package/dist/show-COTZEYgc.js +1 -0
  255. package/dist/status-D26U--p8.js +1 -0
  256. package/dist/steer-C6uARLp5.js +4 -0
  257. package/dist/stop-BrGI3hSS.js +1 -0
  258. package/dist/stop-ByCAlbmN.js +3 -0
  259. package/dist/store-B94tSate.js +42 -0
  260. package/dist/store-DzqXS2wT.js +8 -0
  261. package/dist/task-C6VAg5WU.js +1 -0
  262. package/dist/task-CgOKgkEG.js +1 -0
  263. package/dist/task-DeglY79z.js +5 -0
  264. package/dist/test-NEbhlxvo.js +1 -0
  265. package/dist/tools-D0Zfs8Hx.js +1 -0
  266. package/dist/types-D0q15RJa.js +1 -0
  267. package/dist/types-Dve7Z0ZP.d.ts +389 -0
  268. package/dist/unalias-C9NqmSDq.js +1 -0
  269. package/dist/update-BTxYQj7Z.js +2 -0
  270. package/dist/upgrade-hA0yWBvx.js +2 -0
  271. package/dist/usage-BhqoCjvE.js +1 -0
  272. package/dist/usage-C4d9X2Uq.js +1 -0
  273. package/dist/watch-CSdj24ct.js +5 -0
  274. package/dist/watch-DtRuC0Wc.js +8 -0
  275. package/dist/wire-BeT1Axeo.js +1 -0
  276. package/dist/worker-CXndxmGF.js +9 -0
  277. package/dist/worker-DX7P9kWl.js +1 -0
  278. package/dist/workflow-Dcmdooi8.js +1 -0
  279. package/docs/agents/coder.md +26 -0
  280. package/docs/agents/index.md +120 -0
  281. package/docs/config.md +51 -30
  282. package/docs/dash.md +64 -0
  283. package/docs/flows.md +20 -15
  284. package/docs/mcp.md +62 -0
  285. package/docs/models.md +41 -23
  286. package/docs/review.md +41 -0
  287. package/docs/sdk.md +57 -38
  288. package/docs/self-host.md +188 -0
  289. package/migrations/0000_initial.sql +252 -0
  290. package/migrations/meta/0000_snapshot.json +1787 -0
  291. package/migrations/meta/_journal.json +13 -0
  292. package/package.json +37 -7
  293. package/plugins/agents/skills/coder/SKILL.md +14 -60
  294. package/plugins/claude/.claude-plugin/plugin.json +1 -1
  295. package/plugins/claude/commands/setup.md +2 -2
  296. package/plugins/claude/skills/dispatch/SKILL.md +14 -58
  297. package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
  298. package/plugins/cursor/README.md +5 -5
  299. package/plugins/cursor/assets/logo.png +0 -0
  300. package/plugins/cursor/skills/coder/SKILL.md +14 -59
  301. package/src/client/index.ts +573 -0
  302. package/src/client/types.ts +506 -0
  303. package/src/core/errors.ts +72 -0
  304. package/src/core/task/log-view.ts +173 -0
  305. package/src/server/auth/sign-in.ts +14 -0
  306. package/src/server/dash/api/load.ts +62 -0
  307. package/src/server/dash/api/types.ts +11 -0
  308. package/src/server/dash/app/connect/page.tsx +42 -0
  309. package/src/server/dash/app/dash/account/loading.tsx +11 -0
  310. package/src/server/dash/app/dash/account/notify.tsx +42 -0
  311. package/src/server/dash/app/dash/account/page.css +81 -0
  312. package/src/server/dash/app/dash/account/page.tsx +126 -0
  313. package/src/server/dash/app/dash/account/sign-out.tsx +24 -0
  314. package/src/server/dash/app/dash/agents/(list)/agent-menu.tsx +10 -0
  315. package/src/server/dash/app/dash/agents/(list)/agents-grid.tsx +143 -0
  316. package/src/server/dash/app/dash/agents/(list)/connect-apps.tsx +46 -0
  317. package/src/server/dash/app/dash/agents/(list)/loading.tsx +14 -0
  318. package/src/server/dash/app/dash/agents/(list)/page.css +72 -0
  319. package/src/server/dash/app/dash/agents/(list)/page.tsx +89 -0
  320. package/src/server/dash/app/dash/agents/[slug]/(tabs)/layout.tsx +135 -0
  321. package/src/server/dash/app/dash/agents/[slug]/(tabs)/loading.tsx +5 -0
  322. package/src/server/dash/app/dash/agents/[slug]/(tabs)/page.css +21 -0
  323. package/src/server/dash/app/dash/agents/[slug]/(tabs)/page.tsx +173 -0
  324. package/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/loading.tsx +18 -0
  325. package/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/page.css +87 -0
  326. package/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/page.tsx +258 -0
  327. package/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/platform-actions.tsx +111 -0
  328. package/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/agent-settings-form.css +114 -0
  329. package/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/agent-settings-form.tsx +294 -0
  330. package/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/loading.tsx +5 -0
  331. package/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/page.tsx +54 -0
  332. package/src/server/dash/app/dash/agents/[slug]/(tabs)/tasks/loading.tsx +5 -0
  333. package/src/server/dash/app/dash/agents/[slug]/(tabs)/tasks/page.tsx +14 -0
  334. package/src/server/dash/app/dash/agents/[slug]/(tabs)/usage/loading.tsx +31 -0
  335. package/src/server/dash/app/dash/agents/[slug]/(tabs)/usage/page.css +12 -0
  336. package/src/server/dash/app/dash/agents/[slug]/(tabs)/usage/page.tsx +163 -0
  337. package/src/server/dash/app/dash/agents/[slug]/(tabs)/versions-list.tsx +53 -0
  338. package/src/server/dash/app/dash/agents/[slug]/edit/loading.tsx +31 -0
  339. package/src/server/dash/app/dash/agents/[slug]/edit/page.tsx +91 -0
  340. package/src/server/dash/app/dash/agents/agent/agent-pills.css +27 -0
  341. package/src/server/dash/app/dash/agents/agent/agent-pills.tsx +133 -0
  342. package/src/server/dash/app/dash/agents/agent/hero.css +40 -0
  343. package/src/server/dash/app/dash/agents/agent/hero.tsx +60 -0
  344. package/src/server/dash/app/dash/agents/agent/instructions.css +29 -0
  345. package/src/server/dash/app/dash/agents/agent/instructions.tsx +82 -0
  346. package/src/server/dash/app/dash/agents/editor/connect-repositories.ts +16 -0
  347. package/src/server/dash/app/dash/agents/editor/editor.css +263 -0
  348. package/src/server/dash/app/dash/agents/editor/editor.tsx +774 -0
  349. package/src/server/dash/app/dash/agents/editor/import-picker.css +48 -0
  350. package/src/server/dash/app/dash/agents/editor/import-picker.tsx +253 -0
  351. package/src/server/dash/app/dash/agents/editor/names.ts +35 -0
  352. package/src/server/dash/app/dash/agents/new/loading.tsx +25 -0
  353. package/src/server/dash/app/dash/agents/new/page.tsx +72 -0
  354. package/src/server/dash/app/dash/layout.css +265 -0
  355. package/src/server/dash/app/dash/layout.tsx +332 -0
  356. package/src/server/dash/app/dash/page.tsx +14 -0
  357. package/src/server/dash/app/dash/settings/[tab]/credentials-list.css +94 -0
  358. package/src/server/dash/app/dash/settings/[tab]/credentials-list.tsx +619 -0
  359. package/src/server/dash/app/dash/settings/[tab]/credentials.tsx +36 -0
  360. package/src/server/dash/app/dash/settings/[tab]/engines-list.css +16 -0
  361. package/src/server/dash/app/dash/settings/[tab]/engines-list.tsx +135 -0
  362. package/src/server/dash/app/dash/settings/[tab]/list.css +98 -0
  363. package/src/server/dash/app/dash/settings/[tab]/list.tsx +215 -0
  364. package/src/server/dash/app/dash/settings/[tab]/loading.tsx +6 -0
  365. package/src/server/dash/app/dash/settings/[tab]/mcp-list.css +43 -0
  366. package/src/server/dash/app/dash/settings/[tab]/mcp-list.tsx +290 -0
  367. package/src/server/dash/app/dash/settings/[tab]/models-list.tsx +513 -0
  368. package/src/server/dash/app/dash/settings/[tab]/page.tsx +89 -0
  369. package/src/server/dash/app/dash/settings/[tab]/runners-list.css +153 -0
  370. package/src/server/dash/app/dash/settings/[tab]/runners-list.tsx +457 -0
  371. package/src/server/dash/app/dash/settings/layout.tsx +50 -0
  372. package/src/server/dash/app/dash/settings/model-options.ts +117 -0
  373. package/src/server/dash/app/dash/settings/page.tsx +7 -0
  374. package/src/server/dash/app/dash/settings/settings-head.tsx +24 -0
  375. package/src/server/dash/app/dash/settings/tunnel-guide.tsx +28 -0
  376. package/src/server/dash/app/dash/tasks/[id]/activity.tsx +202 -0
  377. package/src/server/dash/app/dash/tasks/[id]/loading.tsx +31 -0
  378. package/src/server/dash/app/dash/tasks/[id]/page.tsx +30 -0
  379. package/src/server/dash/app/dash/tasks/[id]/task-actions.tsx +164 -0
  380. package/src/server/dash/app/dash/tasks/[id]/task-view.css +407 -0
  381. package/src/server/dash/app/dash/tasks/[id]/task-view.tsx +513 -0
  382. package/src/server/dash/app/dash/tasks/composer-data.ts +96 -0
  383. package/src/server/dash/app/dash/tasks/composer.css +316 -0
  384. package/src/server/dash/app/dash/tasks/composer.tsx +890 -0
  385. package/src/server/dash/app/dash/tasks/list/status.css +50 -0
  386. package/src/server/dash/app/dash/tasks/list/status.tsx +20 -0
  387. package/src/server/dash/app/dash/tasks/list/task.ts +45 -0
  388. package/src/server/dash/app/dash/tasks/list/tasks-list.css +85 -0
  389. package/src/server/dash/app/dash/tasks/list/tasks-list.tsx +402 -0
  390. package/src/server/dash/app/dash/tasks/list/tasks-section.tsx +96 -0
  391. package/src/server/dash/app/dash/tasks/page.tsx +53 -0
  392. package/src/server/dash/app/dash/token-from-hash.tsx +17 -0
  393. package/src/server/dash/app/dash/usage/custom-range.tsx +63 -0
  394. package/src/server/dash/app/dash/usage/day-chart.css +109 -0
  395. package/src/server/dash/app/dash/usage/day-chart.tsx +110 -0
  396. package/src/server/dash/app/dash/usage/loading.tsx +17 -0
  397. package/src/server/dash/app/dash/usage/metric.ts +13 -0
  398. package/src/server/dash/app/dash/usage/page.tsx +117 -0
  399. package/src/server/dash/app/dash/usage/range-bar.css +13 -0
  400. package/src/server/dash/app/dash/usage/range-bar.tsx +69 -0
  401. package/src/server/dash/app/dash/usage/stats.css +52 -0
  402. package/src/server/dash/app/dash/usage/stats.tsx +19 -0
  403. package/src/server/dash/app/dash/usage/top-agents.css +40 -0
  404. package/src/server/dash/app/dash/usage/top-agents.tsx +138 -0
  405. package/src/server/dash/app/dash/usage/usage.css +0 -0
  406. package/src/server/dash/app/globals.css +692 -0
  407. package/src/server/dash/app/layout.tsx +52 -0
  408. package/src/server/dash/app/login/page.css +26 -0
  409. package/src/server/dash/app/login/page.tsx +57 -0
  410. package/src/server/dash/app/page.tsx +5 -0
  411. package/src/server/dash/app/responsive.css +49 -0
  412. package/src/server/dash/app/zone.tsx +13 -0
  413. package/src/server/dash/comps/frame/auth-panel.css +60 -0
  414. package/src/server/dash/comps/frame/auth-panel.tsx +44 -0
  415. package/src/server/dash/comps/frame/drawer.css +28 -0
  416. package/src/server/dash/comps/frame/drawer.tsx +39 -0
  417. package/src/server/dash/comps/frame/heads.ts +41 -0
  418. package/src/server/dash/comps/frame/loading-card.tsx +65 -0
  419. package/src/server/dash/comps/frame/page-head.css +83 -0
  420. package/src/server/dash/comps/frame/page-head.tsx +71 -0
  421. package/src/server/dash/comps/frame/stream.tsx +50 -0
  422. package/src/server/dash/comps/frame/task-toasts.tsx +214 -0
  423. package/src/server/dash/comps/frame/theme-choices.tsx +46 -0
  424. package/src/server/dash/comps/nav/current-link.tsx +53 -0
  425. package/src/server/dash/comps/nav/side-toggle.tsx +30 -0
  426. package/src/server/dash/comps/nav/to.ts +22 -0
  427. package/src/server/dash/comps/ui/badge.css +64 -0
  428. package/src/server/dash/comps/ui/badge.tsx +41 -0
  429. package/src/server/dash/comps/ui/card.css +93 -0
  430. package/src/server/dash/comps/ui/card.tsx +77 -0
  431. package/src/server/dash/comps/ui/collapse.css +32 -0
  432. package/src/server/dash/comps/ui/collapse.tsx +49 -0
  433. package/src/server/dash/comps/ui/combo.tsx +154 -0
  434. package/src/server/dash/comps/ui/confirm.css +36 -0
  435. package/src/server/dash/comps/ui/confirm.tsx +67 -0
  436. package/src/server/dash/comps/ui/field.css +25 -0
  437. package/src/server/dash/comps/ui/field.tsx +34 -0
  438. package/src/server/dash/comps/ui/icon.css +22 -0
  439. package/src/server/dash/comps/ui/icon.tsx +17 -0
  440. package/src/server/dash/comps/ui/icons.ts +44 -0
  441. package/src/server/dash/comps/ui/menu.css +178 -0
  442. package/src/server/dash/comps/ui/menu.tsx +152 -0
  443. package/src/server/dash/comps/ui/segmented.css +44 -0
  444. package/src/server/dash/comps/ui/segmented.tsx +58 -0
  445. package/src/server/dash/comps/ui/select.css +103 -0
  446. package/src/server/dash/comps/ui/select.tsx +250 -0
  447. package/src/server/dash/comps/ui/sentinel.css +58 -0
  448. package/src/server/dash/comps/ui/sentinel.tsx +67 -0
  449. package/src/server/dash/comps/ui/tabs.css +81 -0
  450. package/src/server/dash/comps/ui/tabs.tsx +32 -0
  451. package/src/server/dash/comps/ui/tail.css +12 -0
  452. package/src/server/dash/comps/ui/tail.tsx +37 -0
  453. package/src/server/dash/comps/ui/toast.css +72 -0
  454. package/src/server/dash/comps/ui/toolbar.css +143 -0
  455. package/src/server/dash/comps/ui/toolbar.tsx +93 -0
  456. package/src/server/dash/package.json +5 -0
  457. package/src/server/dash/pnext-env.d.ts +4 -0
  458. package/src/server/dash/pnext.config.ts +5 -0
  459. package/src/server/dash/public/assets/apple-touch-icon.png +0 -0
  460. package/src/server/dash/public/assets/favicon.ico +0 -0
  461. package/src/server/dash/public/assets/favicon.svg +1 -0
  462. package/src/server/dash/public/assets/fonts/LICENSE-fira-code +93 -0
  463. package/src/server/dash/public/assets/fonts/fira-code-latin-400-normal-717ee080.woff2 +0 -0
  464. package/src/server/dash/public/assets/fonts/fira-code-latin-500-normal-530b6706.woff2 +0 -0
  465. package/src/server/dash/public/assets/fonts/fira-code-latin-700-normal-98730669.woff2 +0 -0
  466. package/src/server/dash/tsconfig.json +10 -0
  467. package/src/server/dash/utils/client.ts +19 -0
  468. package/src/server/dash/utils/format.ts +75 -0
  469. package/src/server/dash/utils/paged.ts +184 -0
  470. package/src/server/dash/utils/range.ts +117 -0
  471. package/dist/app-server-bHl6RBZ2.js +0 -3
  472. package/dist/runtime-X5Bgf1qH.js +0 -26
  473. package/dist/upgrade-piLxMgEv.js +0 -37
@@ -0,0 +1,503 @@
1
+ import { createRequire as __pnextCreateRequire } from "node:module";
2
+ const require = __pnextCreateRequire("file:///Users/muzam/Code/workshop/coder-workspace/node_modules/.bun/@wular+pnext@0.1.5+62547eec5a2188e3/node_modules/@wular/pnext/package.json");
3
+ import {
4
+ getNextConfig
5
+ } from "./chunk-2ICEVELW.js";
6
+ import {
7
+ hasUseClientDirective
8
+ } from "./chunk-L2IWDUXG.js";
9
+ import "./chunk-JESFYECC.js";
10
+ import "./chunk-5RDEILQB.js";
11
+ import "./chunk-NQE46AZN.js";
12
+ import {
13
+ listFiles,
14
+ listFilesSync,
15
+ toPosixPath
16
+ } from "./chunk-2HFY3DQT.js";
17
+ import "./chunk-4P5CMIYT.js";
18
+ import "./chunk-FTJVHFWD.js";
19
+ import "./chunk-3UPROT2C.js";
20
+
21
+ // ../node_modules/.bun/@wular+pnext@0.1.5+62547eec5a2188e3/node_modules/@wular/pnext/src/compat/pages/router.ts
22
+ import { createHash } from "node:crypto";
23
+ import { existsSync, statSync } from "node:fs";
24
+ import {
25
+ copyFile,
26
+ mkdir,
27
+ readdir,
28
+ readFile,
29
+ rename,
30
+ rm,
31
+ symlink,
32
+ writeFile
33
+ } from "node:fs/promises";
34
+ import path from "node:path";
35
+ import { tmpdir } from "node:os";
36
+ import { fileURLToPath } from "node:url";
37
+ var basePageExtensions = ["tsx", "ts", "jsx", "js", "mjs"];
38
+ function materializeExtensions() {
39
+ const configured = getNextConfig().pageExtensions;
40
+ const extras = Array.isArray(configured) ? configured.filter((ext) => typeof ext === "string" && ext.length > 0) : [];
41
+ return [.../* @__PURE__ */ new Set([...basePageExtensions, ...extras])];
42
+ }
43
+ var appConventions = /* @__PURE__ */ new Set([
44
+ "default",
45
+ "error",
46
+ "forbidden",
47
+ "global-error",
48
+ "layout",
49
+ "loading",
50
+ "not-found",
51
+ "page",
52
+ "route",
53
+ "template",
54
+ "unauthorized"
55
+ ]);
56
+ var metadataConventionPattern = /^(robots|sitemap|manifest|icon\d*|apple-icon\d*|opengraph-image\d*|twitter-image\d*)$/;
57
+ function isAppConvention(name) {
58
+ return appConventions.has(name) || metadataConventionPattern.test(name);
59
+ }
60
+ async function materializePagesApp(root) {
61
+ const pagesPath = path.join(root, "pages");
62
+ if (!existsSync(pagesPath)) return void 0;
63
+ const nativeApp = path.join(root, "app");
64
+ const pages = await discoverPages(pagesPath);
65
+ const apiRoutes = await discoverPagesApi(pagesPath);
66
+ if (pages.length === 0 && apiRoutes.length === 0) return void 0;
67
+ const generatedRoot = path.join(
68
+ tmpdir(),
69
+ "pnext-pages-compat",
70
+ materializationKey(root, nativeApp, pages, apiRoutes)
71
+ );
72
+ const appPath = path.join(generatedRoot, "app");
73
+ if (existsSync(appPath)) return appPath;
74
+ const staging = `${generatedRoot}.${process.pid.toString(36)}.staging`;
75
+ await buildMaterializedApp(staging, root, pagesPath, nativeApp, pages, apiRoutes);
76
+ try {
77
+ await rename(staging, generatedRoot);
78
+ } catch {
79
+ await rm(staging, { recursive: true, force: true });
80
+ if (!existsSync(appPath)) throw new Error(`pnext: could not materialize ${root}/pages`);
81
+ }
82
+ void sweepStaleMaterializations(path.dirname(generatedRoot));
83
+ return appPath;
84
+ }
85
+ function materializationKey(root, nativeApp, pages, apiRoutes) {
86
+ const stamp = (file) => {
87
+ const info = statSync(file, { throwIfNoEntry: false });
88
+ return info ? `${info.size}:${info.mtimeMs}` : "";
89
+ };
90
+ const nativeFiles = existsSync(nativeApp) ? listFilesSync(nativeApp).map((file) => `${toPosixPath(path.relative(nativeApp, file))}\0${stamp(file)}`).sort() : [];
91
+ const byRelative = (routes) => [...routes].sort((a, b) => a.relative.localeCompare(b.relative));
92
+ return createHash("sha256").update(
93
+ JSON.stringify([
94
+ root,
95
+ materializeExtensions(),
96
+ byRelative(pages),
97
+ byRelative(apiRoutes),
98
+ nativeFiles,
99
+ stamp(fileURLToPath("file:///Users/muzam/Code/workshop/coder-workspace/node_modules/.bun/@wular+pnext@0.1.5+62547eec5a2188e3/node_modules/@wular/pnext/src/compat/pages/router.ts"))
100
+ ])
101
+ ).digest("hex").slice(0, 16);
102
+ }
103
+ var STALE_MATERIALIZATION_MS = 7 * 24 * 60 * 6e4;
104
+ async function sweepStaleMaterializations(base) {
105
+ try {
106
+ const cutoff = Date.now() - STALE_MATERIALIZATION_MS;
107
+ for (const entry of await readdir(base)) {
108
+ const dir = path.join(base, entry);
109
+ const info = statSync(dir, { throwIfNoEntry: false });
110
+ if (info && info.mtimeMs < cutoff) await rm(dir, { recursive: true, force: true });
111
+ }
112
+ } catch {
113
+ }
114
+ }
115
+ async function buildMaterializedApp(generatedRoot, root, pagesPath, nativeApp, pages, apiRoutes) {
116
+ const appPath = path.join(generatedRoot, "app");
117
+ const sourcePages = path.join(generatedRoot, "source-pages");
118
+ const sourceApp = path.join(generatedRoot, "source-app");
119
+ await rm(generatedRoot, { recursive: true, force: true });
120
+ await mkdir(appPath, { recursive: true });
121
+ await symlink(pagesPath, sourcePages, "dir");
122
+ const nodeModules = path.join(root, "node_modules");
123
+ if (existsSync(nodeModules))
124
+ await symlink(nodeModules, path.join(generatedRoot, "node_modules"), "dir");
125
+ const publicDir = path.join(root, "public");
126
+ if (existsSync(publicDir)) await symlink(publicDir, path.join(generatedRoot, "public"), "dir");
127
+ if (existsSync(nativeApp)) {
128
+ await symlink(nativeApp, sourceApp, "dir");
129
+ await materializeNativeApp(sourceApp, appPath);
130
+ }
131
+ if (!existsSync(path.join(appPath, "layout.js"))) {
132
+ await writeFile(
133
+ path.join(appPath, "layout.js"),
134
+ "export default function PagesLayout({ children }) {\n return <html><body>{children}</body></html>\n}\n"
135
+ );
136
+ }
137
+ for (const page of pages) {
138
+ const destination = path.join(appPath, ...encodePrivateSegments(page.segments), "page.js");
139
+ if (existsSync(destination)) continue;
140
+ await mkdir(path.dirname(destination), { recursive: true });
141
+ const pagesPattern = `/${page.segments.join("/")}`.replace(/\/+$/, "") || "/";
142
+ const sourceSpecifier = relativeImport(destination, path.join(sourcePages, page.relative));
143
+ let clientSpecifier;
144
+ if (page.hasStaticProps || page.hasServerSideProps) {
145
+ const clientDestination = path.join(path.dirname(destination), "pnext-page-client.js");
146
+ await writeFile(
147
+ clientDestination,
148
+ `'use client';
149
+ export { default } from ${JSON.stringify(sourceSpecifier)};
150
+ `
151
+ );
152
+ clientSpecifier = "./pnext-page-client.js";
153
+ }
154
+ await writeFile(
155
+ destination,
156
+ wrapperSource(
157
+ sourceSpecifier,
158
+ // A pages-router component is implicitly a client module: it SSRs AND
159
+ // hydrates (hooks, event handlers, next/router). Without the client
160
+ // wrapper it renders as a server component and never becomes
161
+ // interactive. Data functions keep a server wrapper and pass their
162
+ // props into the page's client facade.
163
+ !page.hasServerSideProps && !page.hasStaticProps,
164
+ page.hasServerSideProps,
165
+ page.hasStaticProps,
166
+ clientSpecifier,
167
+ page.runtime,
168
+ page.maxDuration,
169
+ pagesPattern
170
+ )
171
+ );
172
+ }
173
+ for (const apiRoute of apiRoutes) {
174
+ const destination = path.join(appPath, "api", ...apiRoute.segments, "route.js");
175
+ if (existsSync(destination)) continue;
176
+ await mkdir(path.dirname(destination), { recursive: true });
177
+ await writeFile(
178
+ destination,
179
+ pagesApiWrapperSource(
180
+ relativeImport(destination, path.join(sourcePages, apiRoute.relative)),
181
+ apiRoute.runtime
182
+ )
183
+ );
184
+ }
185
+ }
186
+ async function materializeNativeApp(sourceApp, appPath) {
187
+ for (const file of await listFiles(sourceApp)) {
188
+ const relative = toPosixPath(path.relative(sourceApp, file));
189
+ const parsed = path.parse(relative);
190
+ if (!materializeExtensions().includes(parsed.ext.slice(1))) {
191
+ const destination2 = path.join(appPath, relative);
192
+ await mkdir(path.dirname(destination2), { recursive: true });
193
+ await copyFile(file, destination2);
194
+ continue;
195
+ }
196
+ if (!isAppConvention(parsed.name)) continue;
197
+ const destination = path.join(appPath, parsed.dir, `${parsed.name}.js`);
198
+ await mkdir(path.dirname(destination), { recursive: true });
199
+ const source = await readFile(file, "utf8");
200
+ const client = hasUseClientDirective(source) || await defaultExportImportsClientModule(file, source);
201
+ await writeFile(
202
+ destination,
203
+ wrapperSource(
204
+ relativeImport(destination, file),
205
+ client,
206
+ false,
207
+ false,
208
+ void 0,
209
+ runtimeFromSource(source)
210
+ )
211
+ );
212
+ }
213
+ }
214
+ async function defaultExportImportsClientModule(file, source) {
215
+ const defaultExport = /export\s+default\s+([A-Za-z_$][\w$]*)\s*;?/.exec(source);
216
+ if (!defaultExport?.[1]) return false;
217
+ const binding = defaultExport[1];
218
+ const imports = /import\s*\{([^}]*)\}\s*from\s*['"]([^'"]+)['"]/g;
219
+ let match;
220
+ while (match = imports.exec(source)) {
221
+ const importsBinding = (match[1] ?? "").split(",").some((value) => {
222
+ const names = /^\s*([A-Za-z_$][\w$]*)(?:\s+as\s+([A-Za-z_$][\w$]*))?\s*$/.exec(value);
223
+ return (names?.[2] ?? names?.[1]) === binding;
224
+ });
225
+ if (!importsBinding || !match[2]?.startsWith(".")) continue;
226
+ const imported = resolveSourceImport(file, match[2]);
227
+ if (imported && hasUseClientDirective(await readFile(imported, "utf8"))) return true;
228
+ }
229
+ return false;
230
+ }
231
+ function resolveSourceImport(file, specifier) {
232
+ const base = path.resolve(path.dirname(file), specifier);
233
+ for (const candidate of [
234
+ base,
235
+ ...materializeExtensions().flatMap((extension) => [
236
+ `${base}.${extension}`,
237
+ path.join(base, `index.${extension}`)
238
+ ])
239
+ ]) {
240
+ if (existsSync(candidate) && statSync(candidate).isFile()) return candidate;
241
+ }
242
+ return void 0;
243
+ }
244
+ function encodePrivateSegments(segments) {
245
+ return segments.map((segment) => segment.startsWith("_") ? `%5F${segment.slice(1)}` : segment);
246
+ }
247
+ async function discoverPages(pagesPath) {
248
+ const routes = /* @__PURE__ */ new Map();
249
+ const files = await listFiles(pagesPath);
250
+ for (const extension of materializeExtensions()) {
251
+ for (const file of files) {
252
+ if (!file.endsWith(`.${extension}`)) continue;
253
+ const relative = toPosixPath(path.relative(pagesPath, file));
254
+ const withoutExtension = relative.slice(0, -extension.length - 1);
255
+ const sourceSegments = withoutExtension.split("/");
256
+ if (sourceSegments[0] === "api") continue;
257
+ if (sourceSegments.length === 1 && (sourceSegments[0] === "_app" || sourceSegments[0] === "_document" || sourceSegments[0] === "_error")) {
258
+ continue;
259
+ }
260
+ const segments = sourceSegments.at(-1) === "index" ? sourceSegments.slice(0, -1) : sourceSegments;
261
+ const key = segments.join("/");
262
+ if (!routes.has(key)) {
263
+ const source = await readFile(file, "utf8");
264
+ routes.set(key, {
265
+ relative,
266
+ segments,
267
+ hasServerSideProps: /\bgetServerSideProps\b/.test(source),
268
+ hasStaticProps: /\bgetStaticProps\b/.test(source),
269
+ runtime: runtimeFromSource(source),
270
+ maxDuration: maxDurationFromSource(source)
271
+ });
272
+ }
273
+ }
274
+ }
275
+ return [...routes.values()];
276
+ }
277
+ async function discoverPagesApi(pagesPath) {
278
+ const routes = /* @__PURE__ */ new Map();
279
+ const files = await listFiles(path.join(pagesPath, "api"));
280
+ for (const extension of materializeExtensions()) {
281
+ for (const file of files) {
282
+ if (!file.endsWith(`.${extension}`)) continue;
283
+ const relative = toPosixPath(path.relative(pagesPath, file));
284
+ const segments = relative.slice(0, -extension.length - 1).split("/").slice(1);
285
+ if (segments.some((segment) => segment.startsWith("_"))) continue;
286
+ const key = segments.join("/");
287
+ if (routes.has(key)) continue;
288
+ routes.set(key, {
289
+ relative,
290
+ segments,
291
+ runtime: runtimeFromSource(await readFile(file, "utf8"))
292
+ });
293
+ }
294
+ }
295
+ return [...routes.values()];
296
+ }
297
+ function routerStateModulePath() {
298
+ return path.join("/Users/muzam/Code/workshop/coder-workspace/node_modules/.bun/@wular+pnext@0.1.5+62547eec5a2188e3/node_modules/@wular/pnext/src/compat/pages", "router-state.ts");
299
+ }
300
+ function routerStateSnippet(pagesPattern) {
301
+ if (!pagesPattern) {
302
+ return { imports: "", render: "return createElement(Page, result?.props ?? {});" };
303
+ }
304
+ return {
305
+ imports: `import { pagesRouterSsrState, serializePagesRouterState } from ${JSON.stringify(
306
+ routerStateModulePath()
307
+ )};
308
+ `,
309
+ render: `const routerState = pagesRouterSsrState(${JSON.stringify(pagesPattern)}, resolvedParams);
310
+ return createElement(
311
+ Fragment,
312
+ null,
313
+ createElement('script', {
314
+ type: 'application/json',
315
+ id: '__PNEXT_PAGES_DATA__',
316
+ dangerouslySetInnerHTML: { __html: serializePagesRouterState(routerState) },
317
+ }),
318
+ createElement(Page, result?.props ?? {}),
319
+ );`
320
+ };
321
+ }
322
+ function wrapperSource(specifier, client = false, hasServerSideProps = false, hasStaticProps = false, clientSpecifier, runtime, maxDuration, pagesPattern) {
323
+ const runtimeExport = runtime ? `export const runtime = ${JSON.stringify(runtime)};
324
+ ` : "";
325
+ const maxDurationExport = maxDuration === void 0 ? "" : `export const maxDuration = ${maxDuration};
326
+ `;
327
+ const routerState = routerStateSnippet(pagesPattern);
328
+ if (hasStaticProps && clientSpecifier) {
329
+ return `import { createElement, Fragment } from 'react';
330
+ import { notFound, redirect } from 'next/navigation';
331
+ import Page from ${JSON.stringify(clientSpecifier)};
332
+ import * as pageModule from ${JSON.stringify(specifier)};
333
+ ${routerState.imports}export * from ${JSON.stringify(specifier)};
334
+ ${runtimeExport}${maxDurationExport}export default async function PagesCompatStaticPage({ params }) {
335
+ // The otel compat exposes a span wrapper (Render.getStaticProps) at runtime.
336
+ const withSpan = globalThis.__PNEXT_PAGES_DATA_SPAN__ ?? ((kind, fn) => fn());
337
+ const resolvedParams = await params;
338
+ const invoke = async () => pageModule.getStaticProps?.({ params: resolvedParams });
339
+ const result = await withSpan('getStaticProps', invoke);
340
+ if (result?.notFound) notFound();
341
+ if (result?.redirect) redirect(result.redirect.destination);
342
+ ${routerState.render}
343
+ }
344
+ `;
345
+ }
346
+ if (!hasServerSideProps) {
347
+ if (client) {
348
+ return `'use client';
349
+ export { default } from ${JSON.stringify(specifier)};
350
+ ${runtimeExport}${maxDurationExport}`;
351
+ }
352
+ return `import * as __pnext_page_ns from ${JSON.stringify(specifier)};
353
+ export default __pnext_page_ns.default;
354
+ export * from ${JSON.stringify(specifier)};
355
+ ${runtimeExport}${maxDurationExport}`;
356
+ }
357
+ return `import { createElement, Fragment } from 'react';
358
+ import { notFound, redirect } from 'next/navigation';
359
+ import { cookies, headers } from 'next/headers';
360
+ import Page from ${JSON.stringify(clientSpecifier)};
361
+ import * as pageModule from ${JSON.stringify(specifier)};
362
+ ${routerState.imports}export * from ${JSON.stringify(specifier)};
363
+ export const dynamic = 'force-dynamic';
364
+ ${runtimeExport}${maxDurationExport}export default async function PagesCompatPage({ params, searchParams }) {
365
+ // The otel compat exposes a span wrapper (Render.getServerSideProps) at runtime.
366
+ const withSpan = globalThis.__PNEXT_PAGES_DATA_SPAN__ ?? ((kind, fn) => fn());
367
+ const resolvedParams = await params;
368
+ // getServerSideProps reads a node-shaped \`req\`/\`res\`. This page is
369
+ // force-dynamic, so headers()/cookies() are available; \`method\` is always
370
+ // 'GET' and \`res\` is inert (writes are dropped) \u2014 a workable baseline until
371
+ // the pages layer threads the real request through.
372
+ const requestHeaders = Object.fromEntries((await headers()).entries());
373
+ const requestCookies = Object.fromEntries(
374
+ (await cookies()).getAll().map(cookie => [cookie.name, cookie.value]),
375
+ );
376
+ const invoke = async () => pageModule.getServerSideProps?.({
377
+ params: resolvedParams,
378
+ query: (await searchParams) ?? {},
379
+ req: {
380
+ headers: requestHeaders,
381
+ cookies: requestCookies,
382
+ method: 'GET',
383
+ url: ${JSON.stringify(pagesPattern ?? "/")},
384
+ },
385
+ res: {
386
+ statusCode: 200,
387
+ setHeader() {},
388
+ getHeader() {},
389
+ getHeaders() { return {}; },
390
+ removeHeader() {},
391
+ end() {},
392
+ write() { return true; },
393
+ },
394
+ resolvedUrl: ${JSON.stringify(pagesPattern ?? "/")},
395
+ preview: false,
396
+ previewData: undefined,
397
+ draftMode: false,
398
+ });
399
+ const result = await withSpan('getServerSideProps', invoke);
400
+ if (result?.notFound) notFound();
401
+ if (result?.redirect) redirect(result.redirect.destination);
402
+ ${routerState.render}
403
+ }
404
+ `;
405
+ }
406
+ function runtimeFromSource(source) {
407
+ const runtime = /\bruntime\b\s*[:=]\s*(['"`])(edge|nodejs|experimental-edge)\1/.exec(source)?.[2];
408
+ return runtime === "experimental-edge" ? "edge" : runtime;
409
+ }
410
+ function maxDurationFromSource(source) {
411
+ const value = /\bmaxDuration\s*:\s*(\d+)\b/.exec(source)?.[1];
412
+ return value === void 0 ? void 0 : Number(value);
413
+ }
414
+ function pagesApiWrapperSource(specifier, runtime) {
415
+ const runtimeExport = runtime ? `export const runtime = ${JSON.stringify(runtime)};
416
+ ` : "";
417
+ return `import handler from ${JSON.stringify(specifier)};
418
+ import { NextRequest } from 'next/server';
419
+ import { Writable } from 'node:stream';
420
+ ${runtimeExport}export async function GET(request) {
421
+ return run(handler, request);
422
+ }
423
+ export async function POST(request) {
424
+ return run(handler, request);
425
+ }
426
+ export async function PUT(request) {
427
+ return run(handler, request);
428
+ }
429
+ export async function PATCH(request) {
430
+ return run(handler, request);
431
+ }
432
+ export async function DELETE(request) {
433
+ return run(handler, request);
434
+ }
435
+ // Bridge a pages-API handler onto the app-route Response contract. Edge-style
436
+ // handlers (request-only, return a Response) pass through; node-style handlers
437
+ // get a real Writable \`res\` whose bytes stream into the Response body, with
438
+ // client disconnects surfaced as res 'close'/destroy (stream cancellation).
439
+ async function run(handler, request) {
440
+ const nextRequest = request instanceof NextRequest ? request : new NextRequest(request);
441
+ const state = { status: 200, headers: new Headers() };
442
+ let controller;
443
+ let started = false;
444
+ let notifyStarted = () => {};
445
+ const startedPromise = new Promise(resolve => { notifyStarted = resolve; });
446
+ const start = () => {
447
+ if (!started) {
448
+ started = true;
449
+ notifyStarted();
450
+ }
451
+ };
452
+ const body = new ReadableStream({
453
+ start(c) { controller = c; },
454
+ cancel() { res.destroy(); },
455
+ });
456
+ const enqueue = chunk => {
457
+ try {
458
+ controller.enqueue(typeof chunk === 'string' ? new TextEncoder().encode(chunk) : new Uint8Array(chunk));
459
+ } catch {}
460
+ };
461
+ const res = new Writable({
462
+ write(chunk, _encoding, callback) { start(); enqueue(chunk); callback(); },
463
+ final(callback) { start(); try { controller.close(); } catch {} callback(); },
464
+ destroy(error, callback) { try { controller.close(); } catch {} callback(error); },
465
+ });
466
+ Object.defineProperty(res, 'statusCode', {
467
+ get: () => state.status,
468
+ set: value => { state.status = value; },
469
+ });
470
+ res.setHeader = (name, value) => { state.headers.set(name, String(value)); return res; };
471
+ res.getHeader = name => state.headers.get(name) ?? undefined;
472
+ res.removeHeader = name => { state.headers.delete(name); };
473
+ res.status = code => { state.status = code; return res; };
474
+ res.json = value => { state.headers.set('content-type', 'application/json'); res.end(JSON.stringify(value)); };
475
+ res.send = value => { res.end(value); };
476
+ // A client disconnect aborts the request signal; pages handlers observe it
477
+ // as the response closing (res.on('close') per Node semantics).
478
+ request.signal?.addEventListener?.('abort', () => res.destroy(), { once: true });
479
+ const finished = Promise.resolve()
480
+ .then(() => handler(nextRequest, res))
481
+ .catch(error => {
482
+ if (!started) throw error;
483
+ try { controller.error(error); } catch {}
484
+ });
485
+ const outcome = await Promise.race([
486
+ startedPromise.then(() => 'started'),
487
+ finished.then(() => 'done'),
488
+ ]);
489
+ if (outcome === 'done' && !started) {
490
+ const result = await finished;
491
+ return result instanceof Response ? result : new Response(null, { status: state.status, headers: state.headers });
492
+ }
493
+ return new Response(body, { status: state.status, headers: state.headers });
494
+ }
495
+ `;
496
+ }
497
+ function relativeImport(fromFile, targetFile) {
498
+ const relative = toPosixPath(path.relative(path.dirname(fromFile), targetFile));
499
+ return relative.startsWith(".") ? relative : `./${relative}`;
500
+ }
501
+ export {
502
+ materializePagesApp
503
+ };
@@ -0,0 +1,52 @@
1
+ import { createRequire as __pnextCreateRequire } from "node:module";
2
+ const require = __pnextCreateRequire("file:///Users/muzam/Code/workshop/coder-workspace/node_modules/.bun/@wular+pnext@0.1.5+62547eec5a2188e3/node_modules/@wular/pnext/package.json");
3
+ import {
4
+ addClientEntryReason,
5
+ assertNoServerActionsWithoutCompat,
6
+ collectFileCss,
7
+ collectNotFoundCss,
8
+ findConventionFiles,
9
+ findGlobalError,
10
+ findLayouts,
11
+ matchInterception,
12
+ matchRoute,
13
+ materializeRouteFacts,
14
+ materializeRouteFactsPaced,
15
+ normalizePathname,
16
+ parseNavState,
17
+ routeFactsResolved,
18
+ routeFactsVersion,
19
+ scanRoutes,
20
+ selectRouteForRequest,
21
+ serverActionsUnsupportedMessage,
22
+ setRouteFactsStore
23
+ } from "./chunk-SNVPTULL.js";
24
+ import "./chunk-JRPJM2XY.js";
25
+ import "./chunk-CCATPVTW.js";
26
+ import "./chunk-HT6KKX6A.js";
27
+ import "./chunk-NQE46AZN.js";
28
+ import "./chunk-2HFY3DQT.js";
29
+ import "./chunk-4P5CMIYT.js";
30
+ import "./chunk-FTJVHFWD.js";
31
+ import "./chunk-3UPROT2C.js";
32
+ export {
33
+ addClientEntryReason,
34
+ assertNoServerActionsWithoutCompat,
35
+ collectFileCss,
36
+ collectNotFoundCss,
37
+ findConventionFiles,
38
+ findGlobalError,
39
+ findLayouts,
40
+ matchInterception,
41
+ matchRoute,
42
+ materializeRouteFacts,
43
+ materializeRouteFactsPaced,
44
+ normalizePathname,
45
+ parseNavState,
46
+ routeFactsResolved,
47
+ routeFactsVersion,
48
+ scanRoutes,
49
+ selectRouteForRequest,
50
+ serverActionsUnsupportedMessage,
51
+ setRouteFactsStore
52
+ };
@@ -0,0 +1,13 @@
1
+ import { createRequire as __pnextCreateRequire } from "node:module";
2
+ const require = __pnextCreateRequire("file:///Users/muzam/Code/workshop/coder-workspace/node_modules/.bun/@wular+pnext@0.1.5+62547eec5a2188e3/node_modules/@wular/pnext/package.json");
3
+ import {
4
+ writeTsconfigDefaults
5
+ } from "./chunk-T3QZT3PG.js";
6
+ import "./chunk-2ICEVELW.js";
7
+ import "./chunk-5RDEILQB.js";
8
+ import "./chunk-2HFY3DQT.js";
9
+ import "./chunk-FTJVHFWD.js";
10
+ import "./chunk-3UPROT2C.js";
11
+ export {
12
+ writeTsconfigDefaults
13
+ };
@@ -0,0 +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 default`,globalFlags:{cwd:!1},args:1,help:{usage:`coder runner default <id> [--server [url]] [--json]`,summary:`Use this runner by default within its scope.`,flags:[n]},options:r,async run({options:t,args:[n]}){if(!n)throw new e(`invalid-option`,`Missing runner id.`);let{updateRunner:r}=await import(`./runner-sUpWJ_k0.js`).then(e=>e.a);return r(n,{default:!0},t)},print:e=>i.stdout.write(`Default runner ${e.name}.\n`)});export{a as commandRunnerDefault};
@@ -0,0 +1 @@
1
+ import{i as e,t}from"./cli-BilSDkvE.js";import{p as n}from"./output-BKeyLbvt.js";import{credentialOptions as r,missingLabel as i}from"./remove-eQ8y5C5p.js";import a from"node:process";const o=e({name:`credentials default`,globalFlags:{cwd:!1},help:{usage:`coder credentials default <label> [--workspace] [--server [url]] [--json]`,flags:[[`--workspace`,`the workspace credential of that label`],t]},options:r,args:1,async run({options:e,args:[t]}){let{connect:n}=await import(`./remote-miQNTVRa.js`).then(e=>e.a);if(!t)throw i();return n(e).credentials.setDefault(t,e)},print:(e,{args:[t]})=>a.stdout.write(`Made default ${n.bold(t)}.\n`)});export{o as commandCredentialsDefault};
@@ -0,0 +1,4 @@
1
+ import{i as e}from"./cli-BilSDkvE.js";import{p as t}from"./output-BKeyLbvt.js";import{n,t as r}from"./args-BOEEdpWk.js";import{plural as i}from"./archive-BziJ1rQ-.js";import a from"node:process";const o=e({name:`flow delete`,help:{usage:`coder flow delete <run-id> | coder flow delete --all-archived`,summary:`Delete a flow run's record from disk (its journal, events, and logs). This is
2
+ permanent; the run's tasks are ordinary tasks and are not touched. Pass
3
+ --all-archived to delete every archived run at once. A running run must be
4
+ stopped first.`,flags:[[`--all-archived`,`delete every archived run`]]},options:{...r,"all-archived":n},args:1,run:async({options:e,args:[t]})=>{let{deleteRuns:n}=await import(`./executor-BvAA7Cgw.js`).then(e=>e.y);return n(t,{allArchived:e[`all-archived`]})},print(e){if(!(`count`in e))return void a.stdout.write(`Deleted run ${t.cyan(e.runId)}.\n`);a.stdout.write(e.count?`Deleted ${e.count} archived run${i(e.count)}.\n`:`${t.dim(`No archived runs to delete.`)}\n`)}});export{o as commandDelete};
@@ -0,0 +1,2 @@
1
+ import{i as e,r as t}from"./cli-BilSDkvE.js";import{p as n}from"./output-BKeyLbvt.js";import{i as r,n as i,s as a,t as o}from"./args-BOEEdpWk.js";import{plural as s}from"./archive-BUB8gFKD.js";import c from"node:process";const l={server:r,workspace:a,yes:i},u=e({name:`task delete`,help:{usage:`coder task delete <task-id> | coder task delete --all-archived [--server [url]]`,summary:`Delete a task's session from disk. This is permanent. Pass --all-archived to
2
+ delete every archived task at once. A running task must be stopped first.`,flags:[[`--all-archived`,`delete every archived task`],t]},options:{...o,"all-archived":i,...l},args:1,run:async({options:e,args:[t]})=>{let{tasks:n}=await import(`./task-C6VAg5WU.js`).then(e=>e.t);return n.delete(t,{...e,organization:e.workspace,allArchived:e[`all-archived`]})},print(e,{options:t}){if(e.count===void 0)return void c.stdout.write(`Deleted task ${n.cyan(e.taskId)}.\n`);c.stdout.write(t.server===void 0?e.count?`Deleted ${e.count} archived task${s(e.count)}.\n`:`${n.dim(`No archived tasks to delete.`)}\n`:`Deleted ${e.count} server task${s(e.count)}.\n`)}});export{u as commandDelete};
@@ -0,0 +1 @@
1
+ import{i as e}from"./cli-BilSDkvE.js";import{a as t}from"./models-_5LVGC3m.js";import{n}from"./add-U-pty9qJ.js";import{t as r}from"./remove-C5_xggx7.js";const i=(i,a)=>e({name:`model ${i?`disable`:`enable`}`,help:a,options:n,args:1,run:({options:e,args:[n],cwd:r})=>t(r,n,i,e),json:({name:e,file:t})=>({[i?`disabled`:`enabled`]:e,file:t}),print:({name:e,file:t})=>r(i?`disabled`:`enabled`,e,t)}),a=i(!0,{usage:`coder model disable <name> [--workspace]`,summary:`Disable a model - built-in, custom, or alias. Requests for it fail until re-enabled.`,flags:[[`--workspace`,`target <repo>/.coder/config.json instead of the user file`]]});export{a as commandModelDisable,i as toggle};
@@ -0,0 +1,3 @@
1
+ import{i as e}from"./cli-BilSDkvE.js";import{g as t,p as n,s as r}from"./output-BKeyLbvt.js";import{t as i}from"./args-BOEEdpWk.js";import a from"node:path";import o from"node:process";import s from"node:os";const c=e({name:`flow discover`,help:{usage:`coder flow discover [--json]`,summary:`List every flow discoverable from the current directory: workspace flows in
2
+ .coder/flows/ (walking up to the repo root) and global flows in ~/.coder/flows/.`},options:i,run:async({cwd:e})=>{let{discoverFlows:t}=await import(`./discover-Dvr_3_Xr.js`).then(e=>e.r);return t(e)},print:(e,{cwd:t})=>l(e,t)});function l(e,i){if(!e.length){o.stdout.write(`No flows found in .coder/flows/ (workspace) or ~/.coder/flows/ (global).
3
+ `),o.stdout.write(`\n${r([`Authoring guide: coder docs flows`],n)}\n`);return}let c=n;o.stdout.write(t([{header:`name`,value:e=>e.name,paint:e=>c.cyan(e)},{header:`scope`,value:e=>e.scope,paint:e=>c.light(e)},{header:`path`,value:e=>e.scope===`workspace`?a.relative(i,e.path)||e.path:e.path.replace(s.homedir(),`~`),paint:e=>c.light(e)}],e,c)),o.stdout.write(`\n${r([`Run one: coder flow run <name>`,`Recent runs: coder flow list`],c)}\n`)}export{c as commandDiscover};
@@ -0,0 +1 @@
1
+ import{t as e}from"./rolldown-runtime-DT7IzrpZ.js";import{At as t,tn as n}from"./dispatch-BKeAch9E.js";import r from"node:path";import{fileURLToPath as i}from"node:url";import a from"node:fs";var o=e({builtinFlowsDir:()=>c,discoverFlows:()=>d,flowsIn:()=>l,resolveFlow:()=>p});const s=[`.ts`,`.mjs`,`.js`];function c(){let e=r.dirname(i(import.meta.url)),t=e;for(;r.basename(t)!==`dist`&&r.dirname(t)!==t;)t=r.dirname(t);return r.basename(t)===`dist`?r.join(t,`flow`,`builtin`):r.join(e,`builtin`)}function l(e,t){let n=[];try{n=a.readdirSync(e)}catch{return[]}let i=[];for(let o of n.sort()){let n=r.extname(o);if(s.includes(n)&&!o.endsWith(`.d.ts`)){i.push({name:r.basename(o,n),path:r.join(e,o),scope:t});continue}let c=s.map(t=>r.join(e,o,`index${t}`)).find(e=>a.existsSync(e));c&&i.push({name:o,path:c,scope:t})}return i}function u(e){let i=n(e),a=[],o=r.resolve(e);for(;a.push({dir:r.join(o,`.coder`,`flows`),scope:`workspace`}),o!==i&&r.dirname(o)!==o;)o=r.dirname(o);return a.push({dir:t(`flows`),scope:`global`}),a}function d(e){let t=new Set,n=[];for(let{dir:r,scope:i}of u(e))for(let e of l(r,i))t.has(e.name)||(t.add(e.name),n.push(e));for(let e of l(c(),`builtin`))t.has(e.name)||n.push(e);return n}function f(e){return e.includes(`/`)||s.includes(r.extname(e))}function p(e,t){if(f(e)){let n=r.resolve(t,e);if(a.existsSync(n))return{name:r.basename(n,r.extname(n)),path:n};throw Error(`Flow file not found: ${e}`)}let n=d(t).find(t=>t.name===e);if(!n)throw Error(`No flow named "${e}". Run \`coder flow discover\` to see available flows.`);return{name:n.name,path:n.path,scope:n.scope}}export{p as a,l as i,d as n,o as r,c as t};