@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,722 @@
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
+ canonicalTrailingSlashPath,
5
+ devServerModuleHref,
6
+ getBasePathPrefix,
7
+ isBuildAssetPathname,
8
+ registerServerRuntime
9
+ } from "./chunk-E6IXL2NJ.js";
10
+ import {
11
+ pathToFileHref,
12
+ runWithRequest
13
+ } from "./chunk-JESFYECC.js";
14
+ import {
15
+ safeDecode
16
+ } from "./chunk-JRPJM2XY.js";
17
+ import {
18
+ getProxyExtensions,
19
+ getProxyResponseProtocol,
20
+ withRouteRuntime
21
+ } from "./chunk-4P5CMIYT.js";
22
+ import {
23
+ __require,
24
+ loadNative
25
+ } from "./chunk-3UPROT2C.js";
26
+
27
+ // ../node_modules/.bun/@wular+pnext@0.1.5+62547eec5a2188e3/node_modules/@wular/pnext/src/routing/proxy.ts
28
+ import { existsSync, readFileSync, statSync } from "node:fs";
29
+ import path from "node:path";
30
+
31
+ // ../node_modules/.bun/@wular+pnext@0.1.5+62547eec5a2188e3/node_modules/@wular/pnext/src/api/server.ts
32
+ var nextResponseMetaSymbol = Symbol.for("pnext.nextResponse");
33
+ var _a;
34
+ var NextResponse = class _NextResponse extends (_a = Response, nextResponseMetaSymbol, _a) {
35
+ constructor(body, init) {
36
+ super(body, init);
37
+ this.cookies = responseCookies(this.headers);
38
+ }
39
+ static json(body, init) {
40
+ const headers = new Headers(init?.headers);
41
+ if (!headers.has("content-type")) headers.set("content-type", "application/json");
42
+ return new _NextResponse(JSON.stringify(body), {
43
+ ...init,
44
+ headers
45
+ });
46
+ }
47
+ static next(init) {
48
+ const response = new _NextResponse(null, init);
49
+ response.headers.set(getProxyResponseProtocol().nextHeader, "1");
50
+ defineMeta(response, { kind: "next", ...requestMeta(init) });
51
+ return response;
52
+ }
53
+ static rewrite(url, init) {
54
+ const response = new _NextResponse(null, init);
55
+ response.headers.set(getProxyResponseProtocol().rewriteHeader, String(url));
56
+ defineMeta(response, { kind: "rewrite", url: String(url), ...requestMeta(init) });
57
+ return response;
58
+ }
59
+ static redirect(url, init = 307) {
60
+ const responseInit = typeof init === "number" ? { status: init } : init;
61
+ const headers = new Headers(responseInit.headers);
62
+ headers.set("location", String(url));
63
+ return new _NextResponse(null, {
64
+ ...responseInit,
65
+ status: responseInit.status ?? 307,
66
+ headers
67
+ });
68
+ }
69
+ };
70
+ function toNextRequest(request) {
71
+ const nextRequest = request;
72
+ if (nextRequest.cookies && nextRequest.nextUrl) return request;
73
+ Object.defineProperties(request, {
74
+ cookies: {
75
+ configurable: true,
76
+ enumerable: true,
77
+ value: requestCookies(request.headers)
78
+ },
79
+ nextUrl: {
80
+ configurable: true,
81
+ enumerable: true,
82
+ value: createNextUrl(request.url)
83
+ }
84
+ });
85
+ return request;
86
+ }
87
+ function nextResponseMeta(response) {
88
+ const meta = response[nextResponseMetaSymbol];
89
+ if (meta) return meta;
90
+ const protocol = getProxyResponseProtocol();
91
+ const rewrite = response.headers.get(protocol.rewriteHeader);
92
+ if (rewrite) return { kind: "rewrite", url: rewrite };
93
+ if (response.headers.get(protocol.nextHeader)) return { kind: "next" };
94
+ return void 0;
95
+ }
96
+ function copyMiddlewareHeaders(from, to) {
97
+ const internalHeaders = proxyInternalHeaders();
98
+ from.headers.forEach((value, key) => {
99
+ if (internalHeaders.has(key) || key === "content-length" || key === "set-cookie") return;
100
+ if (key === "vary") mergeVaryInto(to.headers, value);
101
+ else to.headers.set(key, value);
102
+ });
103
+ const middlewareCookies = getSetCookie(from.headers);
104
+ if (middlewareCookies.length === 0) return;
105
+ const responseCookies2 = getSetCookie(to.headers);
106
+ to.headers.delete("set-cookie");
107
+ for (const cookie of middlewareCookies) to.headers.append("set-cookie", cookie);
108
+ for (const cookie of responseCookies2) to.headers.append("set-cookie", cookie);
109
+ }
110
+ function forwardMiddlewareRequestHeaders(from, request) {
111
+ const additions = [];
112
+ const internalHeaders = proxyInternalHeaders();
113
+ from.headers.forEach((value, key) => {
114
+ if (internalHeaders.has(key) || key === "content-length" || key === "set-cookie") return;
115
+ additions.push([key, value]);
116
+ });
117
+ if (additions.length === 0) return request;
118
+ const headers = new Headers(request.headers);
119
+ for (const [key, value] of additions) headers.set(key, value);
120
+ return new Request(request, { headers });
121
+ }
122
+ function proxyInternalHeaders() {
123
+ const protocol = getProxyResponseProtocol();
124
+ return /* @__PURE__ */ new Set([protocol.nextHeader, protocol.rewriteHeader]);
125
+ }
126
+ function mergeVaryInto(headers, value) {
127
+ const existing = headers.get("vary");
128
+ const seen = new Set(
129
+ (existing ?? "").split(",").map((token) => token.trim().toLowerCase()).filter(Boolean)
130
+ );
131
+ const merged = existing ? existing.split(",").map((token) => token.trim()).filter(Boolean) : [];
132
+ for (const token of value.split(",").map((part) => part.trim()).filter(Boolean)) {
133
+ if (seen.has(token.toLowerCase())) continue;
134
+ seen.add(token.toLowerCase());
135
+ merged.push(token);
136
+ }
137
+ if (merged.length > 0) headers.set("vary", merged.join(", "));
138
+ }
139
+ function defineMeta(response, meta) {
140
+ Object.defineProperty(response, nextResponseMetaSymbol, {
141
+ configurable: false,
142
+ enumerable: false,
143
+ value: meta
144
+ });
145
+ }
146
+ function requestMeta(init) {
147
+ return init?.request?.headers ? { requestHeaders: new Headers(init.request.headers) } : {};
148
+ }
149
+ function createNextUrl(url) {
150
+ const nextUrl = new URL(url);
151
+ Object.defineProperty(nextUrl, "clone", {
152
+ configurable: true,
153
+ enumerable: false,
154
+ value: () => createNextUrl(nextUrl.href)
155
+ });
156
+ nextUrl.basePath = getBasePathPrefix();
157
+ nextUrl.locale = getProxyExtensions().locale(nextUrl);
158
+ return nextUrl;
159
+ }
160
+ function requestCookies(headers) {
161
+ let cookies = parseCookies(headers.get("cookie") ?? "");
162
+ const sync = () => {
163
+ const header = requestCookieHeader(cookies);
164
+ if (header) headers.set("cookie", header);
165
+ else headers.delete("cookie");
166
+ };
167
+ return {
168
+ get(name) {
169
+ return cookies.find((cookie) => cookie.name === name);
170
+ },
171
+ getAll(name) {
172
+ return name ? cookies.filter((cookie) => cookie.name === name) : [...cookies];
173
+ },
174
+ has(name) {
175
+ return cookies.some((cookie) => cookie.name === name);
176
+ },
177
+ set(name, value) {
178
+ cookies = [...cookies.filter((cookie) => cookie.name !== name), { name, value }];
179
+ sync();
180
+ return this;
181
+ },
182
+ delete(name) {
183
+ const existed = cookies.some((cookie) => cookie.name === name);
184
+ cookies = cookies.filter((cookie) => cookie.name !== name);
185
+ sync();
186
+ return existed;
187
+ },
188
+ clear() {
189
+ cookies = [];
190
+ sync();
191
+ }
192
+ };
193
+ }
194
+ function responseCookies(headers) {
195
+ return {
196
+ set(nameOrOptions, value, options = {}) {
197
+ const cookie = typeof nameOrOptions === "string" ? { ...options, name: nameOrOptions, value: value ?? "" } : nameOrOptions;
198
+ headers.append("set-cookie", serializeCookie(cookie.name, cookie.value, cookie));
199
+ return this;
200
+ },
201
+ delete(name) {
202
+ headers.append("set-cookie", serializeCookie(name, "", { maxAge: 0, path: "/" }));
203
+ return this;
204
+ }
205
+ };
206
+ }
207
+ function serializeCookie(name, value, options) {
208
+ const parts = [`${encodeURIComponent(name)}=${encodeURIComponent(value)}`];
209
+ parts.push(`Path=${options.path ?? "/"}`);
210
+ if (options.maxAge !== void 0) parts.push(`Max-Age=${options.maxAge}`);
211
+ if (options.httpOnly) parts.push("HttpOnly");
212
+ if (options.secure) parts.push("Secure");
213
+ if (options.sameSite) parts.push(`SameSite=${options.sameSite}`);
214
+ return parts.join("; ");
215
+ }
216
+ function parseCookies(header) {
217
+ return header.split(";").map((part) => part.trim()).filter(Boolean).map((part) => {
218
+ const [key = "", ...rest] = part.split("=");
219
+ return { name: safeDecode(key), value: safeDecode(rest.join("=")) };
220
+ });
221
+ }
222
+ function requestCookieHeader(cookies) {
223
+ return cookies.map((cookie) => `${encodeURIComponent(cookie.name)}=${encodeURIComponent(cookie.value)}`).join("; ");
224
+ }
225
+ function getSetCookie(headers) {
226
+ const withSetCookie = headers;
227
+ return withSetCookie.getSetCookie?.() ?? [];
228
+ }
229
+
230
+ // ../node_modules/.bun/@wular+pnext@0.1.5+62547eec5a2188e3/node_modules/@wular/pnext/src/routing/proxy.ts
231
+ var parseSync = (...args) => (
232
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
233
+ loadNative(() => __require("/Users/muzam/Code/workshop/coder-workspace/node_modules/.bun/oxc-parser@0.142.0/node_modules/oxc-parser/src-js/index.js")).parseSync(...args)
234
+ );
235
+ var proxyRewriteObserver;
236
+ function setProxyRewriteObserver(observer) {
237
+ proxyRewriteObserver = observer;
238
+ }
239
+ var proxyRunObserver;
240
+ function setProxyRunObserver(observer) {
241
+ proxyRunObserver = observer;
242
+ }
243
+ function wrapMiddleware(request, fn) {
244
+ return proxyRunObserver ? proxyRunObserver(request, fn) : fn();
245
+ }
246
+ var proxyExtensions = [".ts", ".tsx", ".js", ".jsx", ".mts"];
247
+ function findProxyFile(config) {
248
+ return findProxyFiles(config)[0];
249
+ }
250
+ function proxyExternalLoadTarget(file) {
251
+ return path.basename(file).startsWith("proxy.") ? "client-ssr" : "edge";
252
+ }
253
+ function findProxyFiles(config, names = getProxyExtensions().names) {
254
+ const files = [];
255
+ for (const base of proxyBases(config)) {
256
+ for (const name of names) {
257
+ for (const extension of proxyExtensions) {
258
+ const file = path.join(base, `${name}${extension}`);
259
+ if (existsSync(file)) files.push(file);
260
+ }
261
+ }
262
+ }
263
+ return files;
264
+ }
265
+ function createProxyRunner(config, runnerOptions = {}) {
266
+ const file = findProxyFile(config);
267
+ registerServerRuntime(config, file ? [file] : []);
268
+ let moduleKey;
269
+ let modulePromise;
270
+ let matchers;
271
+ function proxyModule(options) {
272
+ const key = proxyModuleKey(options);
273
+ if (key !== moduleKey) {
274
+ moduleKey = key;
275
+ modulePromise = importProxyModule(config, file, options, runnerOptions);
276
+ matchers = void 0;
277
+ }
278
+ return modulePromise ??= importProxyModule(config, file, options, runnerOptions);
279
+ }
280
+ const runner = async (request, options = {}) => {
281
+ const url = new URL(request.url);
282
+ if (url.pathname.startsWith("/__pnext/") || !config.compat?.next && isBuildAssetPathname(url.pathname)) {
283
+ return void 0;
284
+ }
285
+ if (!file) return void 0;
286
+ if (!matchers && proxyMatcherGateEnabled()) {
287
+ const staticMatchers = staticProxyMatchers(file);
288
+ if (staticMatchers && !matchesProxy(staticMatchers, url, request)) return void 0;
289
+ }
290
+ const module = await proxyModule(options);
291
+ matchers ??= proxyMatchers(module.config);
292
+ if (!matchesProxy(matchers, url, request)) return void 0;
293
+ request = await bufferProxyRequestBody(request, url.pathname);
294
+ const handlerExport = getProxyExtensions().handlerExport(module);
295
+ if (typeof handlerExport !== "function") throw new Error(`${file} must export proxy or default`);
296
+ const handler = handlerExport;
297
+ const handlerRequest = getProxyExtensions().skipUrlNormalize() ? request : stripFlightHeaders(stripRscUnionQuery(request));
298
+ const nextRequest = toNextRequest(handlerRequest);
299
+ const proxyResponseHeaders = new Headers();
300
+ let response = await runWithRequest(
301
+ nextRequest,
302
+ () => withRouteRuntime(
303
+ "edge",
304
+ () => wrapMiddleware(
305
+ nextRequest,
306
+ () => handler(nextRequest, {
307
+ waitUntil(promise) {
308
+ void promise;
309
+ }
310
+ })
311
+ )
312
+ ),
313
+ {},
314
+ { responseHeaders: proxyResponseHeaders }
315
+ );
316
+ const scopedCookies = getSetCookie(proxyResponseHeaders);
317
+ if (scopedCookies.length > 0) {
318
+ if (!response) response = NextResponse.next();
319
+ for (const cookie of scopedCookies) response.headers.append("set-cookie", cookie);
320
+ }
321
+ if (!response) return { request };
322
+ response = await normalizeRedirectResponse(response, url, request.method, config);
323
+ const meta = nextResponseMeta(response);
324
+ if (!meta) return response;
325
+ const forwardedRequest = forwardMiddlewareRequestHeaders(
326
+ response,
327
+ applyProxyCookies(applyRequestOverride(request, meta.requestHeaders), response)
328
+ );
329
+ if (meta.kind === "rewrite" && meta.url) {
330
+ let rewritten = rewriteRequest(forwardedRequest, meta.url);
331
+ const rewrittenUrl = new URL(rewritten.url);
332
+ if (rewrittenUrl.origin !== url.origin) {
333
+ const rscHash = url.searchParams.get("_rsc");
334
+ if (rscHash !== null && !rewrittenUrl.searchParams.has("_rsc")) {
335
+ rewrittenUrl.searchParams.set("_rsc", rscHash);
336
+ rewritten = new Request(rewrittenUrl, rewritten);
337
+ }
338
+ getProxyExtensions().onExternalRewrite(rewritten);
339
+ const externalHeaders = new Headers(rewritten.headers);
340
+ externalHeaders.delete("host");
341
+ const external = await fetch(new Request(rewritten, { headers: externalHeaders }));
342
+ const headers = new Headers(external.headers);
343
+ headers.delete("content-encoding");
344
+ headers.delete("content-length");
345
+ headers.delete("transfer-encoding");
346
+ const proxied = new Response(external.body, {
347
+ status: external.status,
348
+ statusText: external.statusText,
349
+ headers
350
+ });
351
+ copyMiddlewareHeaders(response, proxied);
352
+ return proxied;
353
+ }
354
+ if (rewrittenUrl.origin === url.origin) {
355
+ proxyRewriteObserver?.(url, rewrittenUrl);
356
+ if (request.headers.get("x-nextjs-data") === "1") {
357
+ response.headers.set("x-nextjs-rewrite", rewrittenUrl.href);
358
+ }
359
+ }
360
+ return { request: rewritten, response };
361
+ }
362
+ return { request: forwardedRequest, response };
363
+ };
364
+ runner.warm = (options = {}) => {
365
+ if (!file) return;
366
+ void proxyModule(options).catch(() => void 0);
367
+ };
368
+ return runner;
369
+ }
370
+ async function normalizeRedirectResponse(response, requestUrl, method, config) {
371
+ if (response.status < 300 || response.status >= 400) return response;
372
+ const location = response.headers.get("location");
373
+ if (!location) return response;
374
+ let target;
375
+ try {
376
+ target = new URL(location, requestUrl);
377
+ } catch {
378
+ return response;
379
+ }
380
+ if (target.origin === requestUrl.origin) {
381
+ if (!config.skipTrailingSlashRedirect && config.trailingSlash) {
382
+ target.pathname = canonicalTrailingSlashPath(target.pathname, true);
383
+ }
384
+ }
385
+ const destination = target.origin === requestUrl.origin ? `${target.pathname}${target.search}${target.hash}` : target.href;
386
+ const headers = new Headers(response.headers);
387
+ headers.set("location", destination);
388
+ const body = method.toUpperCase() === "HEAD" || response.body === null ? null : await response.arrayBuffer();
389
+ const synthesizeDestination = method.toUpperCase() !== "HEAD" && (!body || body.byteLength === 0);
390
+ if (synthesizeDestination) headers.delete("content-length");
391
+ return new Response(synthesizeDestination ? destination : body, {
392
+ status: response.status,
393
+ statusText: response.statusText,
394
+ headers
395
+ });
396
+ }
397
+ function formatBodyLimit(bytes) {
398
+ if (bytes >= 1024 * 1024 && bytes % (1024 * 1024) === 0) return `${bytes / (1024 * 1024)}MB`;
399
+ if (bytes >= 1024 && bytes % 1024 === 0) return `${bytes / 1024}KB`;
400
+ return `${bytes}B`;
401
+ }
402
+ async function bufferProxyRequestBody(request, pathname) {
403
+ if (request.method === "GET" || request.method === "HEAD" || !request.body) return request;
404
+ const limit = getProxyExtensions().clientMaxBodySize();
405
+ const chunks = [];
406
+ let total = 0;
407
+ let truncated = false;
408
+ const reader = request.body.getReader();
409
+ for (; ; ) {
410
+ const { done, value } = await reader.read();
411
+ if (done) break;
412
+ if (!truncated && total + value.byteLength > limit) {
413
+ const keep = limit - total;
414
+ if (keep > 0) chunks.push(value.subarray(0, keep));
415
+ total = limit;
416
+ truncated = true;
417
+ continue;
418
+ }
419
+ if (!truncated) {
420
+ chunks.push(value);
421
+ total += value.byteLength;
422
+ }
423
+ }
424
+ if (truncated) {
425
+ console.warn(`Request body exceeded ${formatBodyLimit(limit)} for ${pathname}`);
426
+ }
427
+ const body = new Uint8Array(total);
428
+ let offset = 0;
429
+ for (const chunk of chunks) {
430
+ body.set(chunk, offset);
431
+ offset += chunk.byteLength;
432
+ }
433
+ const headers = new Headers(request.headers);
434
+ headers.set("content-length", String(total));
435
+ return new Request(request.url, {
436
+ method: request.method,
437
+ headers,
438
+ body,
439
+ // @ts-expect-error Bun/Node fetch option for streaming request bodies.
440
+ duplex: "half"
441
+ });
442
+ }
443
+ function applyProxyResponse(response, proxyResponse) {
444
+ if (proxyResponse) copyMiddlewareHeaders(proxyResponse, response);
445
+ return response;
446
+ }
447
+ async function importProxyModule(config, file, options, runnerOptions) {
448
+ const href = options.dev ? await devServerModuleHref(config, file, options.devImportVersion ?? "dev", {
449
+ conditionTarget: "edge",
450
+ externalLoadTarget: proxyExternalLoadTarget(file),
451
+ reactServerLayer: true
452
+ }) : runnerOptions.compiledModuleHref ?? pathToFileHref(file);
453
+ return import(href);
454
+ }
455
+ function proxyBases(config) {
456
+ return config.appPath === path.join(config.root, "src", "app") ? [path.join(config.root, "src"), config.root] : [config.root];
457
+ }
458
+ function proxyMatcherGateEnabled() {
459
+ return process.env.PNEXT_PROXY_MATCHER_GATE !== "0";
460
+ }
461
+ var staticMatcherCache = /* @__PURE__ */ new Map();
462
+ function staticProxyMatchers(file) {
463
+ let key;
464
+ try {
465
+ const stats = statSync(file);
466
+ key = `${stats.size}:${stats.mtimeMs}`;
467
+ } catch {
468
+ return void 0;
469
+ }
470
+ const cached = staticMatcherCache.get(file);
471
+ if (cached?.key === key) return cached.matchers;
472
+ let matchers;
473
+ try {
474
+ const config = staticProxyConfig(file, readFileSync(file, "utf8"));
475
+ if (config) matchers = proxyMatchers(config);
476
+ } catch {
477
+ matchers = void 0;
478
+ }
479
+ staticMatcherCache.set(file, { key, matchers });
480
+ return matchers;
481
+ }
482
+ function staticProxyConfig(file, source) {
483
+ const result = parseSync(file, source, { lang: parserLang(file) });
484
+ if (result.errors.length > 0) return void 0;
485
+ for (const statement of result.program.body) {
486
+ if (statement.type !== "ExportNamedDeclaration") continue;
487
+ const declaration = statement.declaration;
488
+ if (declaration?.type !== "VariableDeclaration") continue;
489
+ for (const declarator of declaration.declarations ?? []) {
490
+ if (declarator.id?.type !== "Identifier" || declarator.id.name !== "config") continue;
491
+ const value = staticValue(declarator.init);
492
+ return isProxyConfigShape(value) ? value : void 0;
493
+ }
494
+ }
495
+ return void 0;
496
+ }
497
+ function parserLang(file) {
498
+ const ext = path.extname(file);
499
+ if (ext === ".tsx") return "tsx";
500
+ if (ext === ".jsx") return "jsx";
501
+ return ext === ".js" || ext === ".mjs" ? "js" : "ts";
502
+ }
503
+ function staticValue(node) {
504
+ if (!node) return void 0;
505
+ switch (node.type) {
506
+ // `… as const` / `… satisfies ProxyConfig` wrap the literal, they never change it.
507
+ case "TSAsExpression":
508
+ case "TSSatisfiesExpression":
509
+ case "TSNonNullExpression":
510
+ return staticValue(node.expression);
511
+ case "Literal":
512
+ case "StringLiteral":
513
+ case "NumericLiteral":
514
+ case "BooleanLiteral":
515
+ return node.value === null ? void 0 : node.value;
516
+ case "TemplateLiteral":
517
+ return node.expressions?.length === 0 ? node.quasis?.[0]?.value?.cooked ?? void 0 : void 0;
518
+ case "ArrayExpression": {
519
+ const items = [];
520
+ for (const element of node.elements ?? []) {
521
+ const value = staticValue(element);
522
+ if (value === void 0) return void 0;
523
+ items.push(value);
524
+ }
525
+ return items;
526
+ }
527
+ case "ObjectExpression": {
528
+ const object = {};
529
+ for (const property of node.properties ?? []) {
530
+ if (property.type !== "Property" && property.type !== "ObjectProperty") return void 0;
531
+ if (property.computed) return void 0;
532
+ const key = property.key?.type === "Identifier" ? property.key.name : property.key?.value;
533
+ if (typeof key !== "string") return void 0;
534
+ const value = staticValue(property.value);
535
+ if (value === void 0) return void 0;
536
+ object[key] = value;
537
+ }
538
+ return object;
539
+ }
540
+ default:
541
+ return void 0;
542
+ }
543
+ }
544
+ function isProxyConfigShape(value) {
545
+ if (typeof value !== "object" || value === null) return false;
546
+ const matcher = value.matcher;
547
+ if (matcher === void 0) return true;
548
+ const items = Array.isArray(matcher) ? matcher : [matcher];
549
+ return items.every((item) => {
550
+ if (typeof item === "string") return true;
551
+ if (typeof item !== "object" || item === null) return false;
552
+ const { source, has, missing } = item;
553
+ if (typeof source !== "string") return false;
554
+ return [has, missing].every(
555
+ (list) => list === void 0 || Array.isArray(list) && list.every(isConditionShape)
556
+ );
557
+ });
558
+ }
559
+ function isConditionShape(value) {
560
+ if (typeof value !== "object" || value === null) return false;
561
+ const { type, key, value: expected } = value;
562
+ if (type !== "header" && type !== "query" && type !== "cookie" && type !== "host") return false;
563
+ if (key !== void 0 && typeof key !== "string") return false;
564
+ return expected === void 0 || typeof expected === "string";
565
+ }
566
+ function proxyMatchers(config) {
567
+ const matcher = config?.matcher;
568
+ if (!matcher) return [{ regex: /.*/ }];
569
+ const matchers = Array.isArray(matcher) ? matcher : [matcher];
570
+ return matchers.map((item) => ({
571
+ regex: matcherRegex(matcherSource(item)),
572
+ ...typeof item === "object" && item.has ? { has: item.has } : {},
573
+ ...typeof item === "object" && item.missing ? { missing: item.missing } : {}
574
+ }));
575
+ }
576
+ function matchesProxy(matchers, url, request) {
577
+ const decoded = decodePathSeparators(url.pathname);
578
+ return matchers.some(
579
+ (matcher) => (matcher.regex.test(url.pathname) || matcher.regex.test(decoded)) && matchesConditions(matcher, url, request)
580
+ );
581
+ }
582
+ function matchesConditions(matcher, url, request) {
583
+ if (matcher.has && !matcher.has.every((condition) => hasCondition(condition, url, request))) {
584
+ return false;
585
+ }
586
+ if (matcher.missing?.some((condition) => hasCondition(condition, url, request))) {
587
+ return false;
588
+ }
589
+ return true;
590
+ }
591
+ function hasCondition(condition, url, request) {
592
+ const actual = conditionValue(condition, url, request);
593
+ if (actual === null) return false;
594
+ if (condition.value === void 0) return true;
595
+ try {
596
+ return new RegExp(`^${condition.value}$`).test(actual);
597
+ } catch {
598
+ return condition.value === actual;
599
+ }
600
+ }
601
+ function conditionValue(condition, url, request) {
602
+ switch (condition.type) {
603
+ case "header":
604
+ return condition.key ? request.headers.get(condition.key) : null;
605
+ case "query":
606
+ return condition.key ? url.searchParams.get(condition.key) : null;
607
+ case "cookie": {
608
+ if (!condition.key) return null;
609
+ const cookie = parseCookies(request.headers.get("cookie") ?? "").find(
610
+ (item) => item.name === condition.key
611
+ );
612
+ return cookie ? cookie.value : null;
613
+ }
614
+ case "host":
615
+ return url.host;
616
+ default:
617
+ return null;
618
+ }
619
+ }
620
+ function decodePathSeparators(pathname) {
621
+ return pathname.replace(/%2f/gi, "/");
622
+ }
623
+ function matcherSource(matcher) {
624
+ return typeof matcher === "string" ? matcher : matcher.source;
625
+ }
626
+ function matcherRegex(matcher) {
627
+ return new RegExp(`^${matcherPattern(matcher)}$`);
628
+ }
629
+ function matcherPattern(matcher) {
630
+ if (matcher.includes("(")) return matcher;
631
+ if (matcher === "/") return "/";
632
+ let source = "";
633
+ for (const segment of matcher.split("/").filter(Boolean)) {
634
+ if (/^:[^/]+\*$/.test(segment)) {
635
+ source += "(?:/.*)?";
636
+ } else if (/^:[^/]+$/.test(segment)) {
637
+ source += "/[^/]+";
638
+ } else {
639
+ source += `/${escapeRegex(segment)}`;
640
+ }
641
+ }
642
+ return source || "/";
643
+ }
644
+ function rewriteRequest(request, url) {
645
+ return new Request(new URL(url, request.url), request);
646
+ }
647
+ function stripRscUnionQuery(request) {
648
+ const url = new URL(request.url);
649
+ if (!url.searchParams.has("_rsc")) return request;
650
+ url.searchParams.delete("_rsc");
651
+ return new Request(url, request);
652
+ }
653
+ var FLIGHT_HEADERS = [
654
+ "rsc",
655
+ "next-router-state-tree",
656
+ "next-router-prefetch",
657
+ "next-hmr-refresh",
658
+ "next-router-segment-prefetch"
659
+ ];
660
+ function stripFlightHeaders(request) {
661
+ if (!FLIGHT_HEADERS.some((header) => request.headers.has(header))) return request;
662
+ const headers = new Headers(request.headers);
663
+ for (const header of FLIGHT_HEADERS) headers.delete(header);
664
+ return new Request(request, { headers });
665
+ }
666
+ function applyRequestOverride(request, headers) {
667
+ if (!headers) return request;
668
+ return new Request(request, { headers });
669
+ }
670
+ function applyProxyCookies(request, response) {
671
+ const setCookies = getSetCookie(response.headers);
672
+ if (setCookies.length === 0) return request;
673
+ const cookies = parseCookies(request.headers.get("cookie") ?? "");
674
+ for (const header of setCookies) {
675
+ const cookie = parseSetCookie(header);
676
+ if (!cookie) continue;
677
+ const index = cookies.findIndex((item) => item.name === cookie.name);
678
+ if (cookie.deleted) {
679
+ if (index !== -1) cookies.splice(index, 1);
680
+ continue;
681
+ }
682
+ if (index === -1) cookies.push({ name: cookie.name, value: cookie.value });
683
+ else cookies[index] = { name: cookie.name, value: cookie.value };
684
+ }
685
+ const headers = new Headers(request.headers);
686
+ const cookieHeader = requestCookieHeader(cookies);
687
+ if (cookieHeader) headers.set("cookie", cookieHeader);
688
+ else headers.delete("cookie");
689
+ return new Request(request, { headers });
690
+ }
691
+ function parseSetCookie(header) {
692
+ const [pair = "", ...attributes] = header.split(";").map((part) => part.trim());
693
+ const [name = "", ...valueParts] = pair.split("=");
694
+ if (!name) return void 0;
695
+ const deleted = attributes.some((attribute) => /^max-age=0$/i.test(attribute));
696
+ return { name: decodeCookiePart(name), value: decodeCookiePart(valueParts.join("=")), deleted };
697
+ }
698
+ function decodeCookiePart(value) {
699
+ try {
700
+ return decodeURIComponent(value);
701
+ } catch {
702
+ return value;
703
+ }
704
+ }
705
+ function escapeRegex(value) {
706
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
707
+ }
708
+ function proxyModuleKey(options) {
709
+ return options.dev ? `dev:${options.devImportVersion ?? "dev"}` : "prod";
710
+ }
711
+
712
+ export {
713
+ toNextRequest,
714
+ nextResponseMeta,
715
+ setProxyRewriteObserver,
716
+ setProxyRunObserver,
717
+ findProxyFile,
718
+ proxyExternalLoadTarget,
719
+ findProxyFiles,
720
+ createProxyRunner,
721
+ applyProxyResponse
722
+ };