@das-org/dascode 0.0.31

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 (514) hide show
  1. package/dist/BunHttpServer-YBQwrNiq.mjs +407 -0
  2. package/dist/BunPtyAdapter--Swo7U5P.mjs +120 -0
  3. package/dist/BunServices-RIDbItx-.mjs +115 -0
  4. package/dist/Cache-DyGeujxI.mjs +605 -0
  5. package/dist/Config-DcF-IZjO.mjs +1274 -0
  6. package/dist/FetchHttpClient-BmjpVs1I.mjs +5976 -0
  7. package/dist/NodePtyAdapter-H8kyf9St.mjs +115 -0
  8. package/dist/NodeServices-D8d9bE2V.mjs +152 -0
  9. package/dist/NodeSqliteClient-CmuXRT3w.mjs +178 -0
  10. package/dist/NodeTerminal-C6yhrF1E.mjs +1813 -0
  11. package/dist/Path-BB53LP8h.mjs +9050 -0
  12. package/dist/PtyAdapter-mAqTlv3d.mjs +60 -0
  13. package/dist/Schema-DuQUv9rO.mjs +33744 -0
  14. package/dist/SqlClient-Dp5XVCmr.mjs +922 -0
  15. package/dist/SqlError-D49f1UD-.mjs +409 -0
  16. package/dist/SqliteClient-DEcJdONi.mjs +147 -0
  17. package/dist/bin.mjs +201961 -0
  18. package/dist/client/assets/ChatView-HZc6-lKr.js +60 -0
  19. package/dist/client/assets/ClientOnly-FoswohdZ.js +2 -0
  20. package/dist/client/assets/CompositeRoot-Yff66Zmm.js +2 -0
  21. package/dist/client/assets/ConnectCliAuthSurface-BLD0XNSi.js +2 -0
  22. package/dist/client/assets/DiffDisplayControls-DsQS9IDw.js +1403 -0
  23. package/dist/client/assets/DiffPanel-DnIRg_Qy.js +98 -0
  24. package/dist/client/assets/DiffWorkerPoolProvider-DZJfC5kN.js +2 -0
  25. package/dist/client/assets/FieldControl-CuSMRkbi.js +2 -0
  26. package/dist/client/assets/FieldItemContext-Ba7ZZoDN.js +2 -0
  27. package/dist/client/assets/FilePreviewPanel-D3bq1Own.js +2220 -0
  28. package/dist/client/assets/KeybindingsSettings.logic-BQBQ8pFk.js +2 -0
  29. package/dist/client/assets/LocalAnnotatableCodeView-BS3qlDRM.js +2 -0
  30. package/dist/client/assets/PreviewPanel-C41OCDV3.js +2 -0
  31. package/dist/client/assets/ProviderModelPicker-BcQ3CMKb.js +2 -0
  32. package/dist/client/assets/PullRequestMarkdown-D5bDuXWN.js +2 -0
  33. package/dist/client/assets/RedactedSensitiveText-C3lDjv-5.js +2 -0
  34. package/dist/client/assets/ReviewActionsPanel-7rqPggzL.js +2 -0
  35. package/dist/client/assets/ReviewDiffWorkerPoolBoundary-CpqNaHWe.js +2 -0
  36. package/dist/client/assets/ReviewDiffWorkerSurface-fGPW1-P9.js +2 -0
  37. package/dist/client/assets/ReviewPatchView-Dt3GW4pP.js +4 -0
  38. package/dist/client/assets/Schema-DzLI5hMK.js +16 -0
  39. package/dist/client/assets/ServerUpdateAction-N9rNsTaN.js +2 -0
  40. package/dist/client/assets/SettingsPanels-DgK9Gy4R.js +3 -0
  41. package/dist/client/assets/SymbolsNerdFontMono-Regular-aK5vsLov.woff2 +0 -0
  42. package/dist/client/assets/WorkerPoolContext-BG9CEDyi.js +15 -0
  43. package/dist/client/assets/_chat-CDYErsvF.js +2 -0
  44. package/dist/client/assets/_chat._environmentId._threadId-Dn7yzuy5.js +2 -0
  45. package/dist/client/assets/_chat.draft._draftId-CKnp5OeX.js +2 -0
  46. package/dist/client/assets/_chat.index-CSOaDOiG.js +2 -0
  47. package/dist/client/assets/abap-CLvhMVsD.js +2 -0
  48. package/dist/client/assets/actionscript-3--17pq3dv.js +2 -0
  49. package/dist/client/assets/ada-C5qYipkI.js +2 -0
  50. package/dist/client/assets/alert-dialog-0GbcUK1u.js +2 -0
  51. package/dist/client/assets/andromeeda-WkhI09AS.js +2 -0
  52. package/dist/client/assets/andromeeda-vGVdxbeo.js +2 -0
  53. package/dist/client/assets/angular-html-BmcYSFCP.js +2 -0
  54. package/dist/client/assets/angular-ts-Ab3z1XOh.js +2 -0
  55. package/dist/client/assets/apache-U0d_L8uA.js +2 -0
  56. package/dist/client/assets/apex-VAyPSnFM.js +2 -0
  57. package/dist/client/assets/apl-DdAjc1Is.js +2 -0
  58. package/dist/client/assets/applescript-CCn79oCD.js +2 -0
  59. package/dist/client/assets/ara-4CJ0cIlV.js +2 -0
  60. package/dist/client/assets/asciidoc-DE70LPWp.js +2 -0
  61. package/dist/client/assets/asm-Cmm7eHzH.js +2 -0
  62. package/dist/client/assets/astro-jyGOnYUN.js +2 -0
  63. package/dist/client/assets/aurora-x-C7CFqhAd.js +2 -0
  64. package/dist/client/assets/aurora-x-CDeNXAV0.js +2 -0
  65. package/dist/client/assets/awk-BWXHIvNe.js +2 -0
  66. package/dist/client/assets/ayu-dark-CRu61w6_.js +2 -0
  67. package/dist/client/assets/ayu-dark-DluEY0Gj.js +2 -0
  68. package/dist/client/assets/ayu-light-C3h-C4tm.js +2 -0
  69. package/dist/client/assets/ayu-light-Dn6O_aYR.js +2 -0
  70. package/dist/client/assets/ayu-mirage-Bqwy1Gya.js +2 -0
  71. package/dist/client/assets/ayu-mirage-CTjYAbs-.js +2 -0
  72. package/dist/client/assets/ballerina-B7ZEbQpA.js +2 -0
  73. package/dist/client/assets/bat-Bo4NYOV-.js +2 -0
  74. package/dist/client/assets/beancount-D-usSTwE.js +2 -0
  75. package/dist/client/assets/berry-DKpUyyne.js +2 -0
  76. package/dist/client/assets/bibtex-Ci_nEsc7.js +2 -0
  77. package/dist/client/assets/bicep-CUHmPFLl.js +2 -0
  78. package/dist/client/assets/bird2-C6vDhewU.js +2 -0
  79. package/dist/client/assets/blade-C4dPlbVG.js +2 -0
  80. package/dist/client/assets/branding-DWKqECp7.js +2 -0
  81. package/dist/client/assets/bsl-BkkzgIyY.js +2 -0
  82. package/dist/client/assets/c-DtlEA5ZX.js +2 -0
  83. package/dist/client/assets/c3-BFHwR3_K.js +2 -0
  84. package/dist/client/assets/cadence-CQ2zXKGN.js +2 -0
  85. package/dist/client/assets/cairo-DLTphjLi.js +2 -0
  86. package/dist/client/assets/catppuccin-frappe-3VR1Za6u.js +2 -0
  87. package/dist/client/assets/catppuccin-frappe-DFlFW5gh.js +2 -0
  88. package/dist/client/assets/catppuccin-latte-CpxdcXpJ.js +2 -0
  89. package/dist/client/assets/catppuccin-latte-DwIHMF0Q.js +2 -0
  90. package/dist/client/assets/catppuccin-macchiato-DIdIQ04K.js +2 -0
  91. package/dist/client/assets/catppuccin-macchiato-DYnBP6_5.js +2 -0
  92. package/dist/client/assets/catppuccin-mocha-Co3Xjl64.js +2 -0
  93. package/dist/client/assets/catppuccin-mocha-DYhrFGRu.js +2 -0
  94. package/dist/client/assets/checkbox-Cuif7tF0.js +2 -0
  95. package/dist/client/assets/circle-x-F0441fqg.js +2 -0
  96. package/dist/client/assets/clarity-SemFz856.js +2 -0
  97. package/dist/client/assets/clojure-DqKBuwfJ.js +2 -0
  98. package/dist/client/assets/cmake-Bj61d0ZC.js +2 -0
  99. package/dist/client/assets/cobol-X9aU3UsG.js +2 -0
  100. package/dist/client/assets/codeowners-C8r90Shi.js +2 -0
  101. package/dist/client/assets/codeql-oeQT6MSM.js +2 -0
  102. package/dist/client/assets/coffee-BluyIHgc.js +2 -0
  103. package/dist/client/assets/combobox-D0sqVdtm.js +2 -0
  104. package/dist/client/assets/common-lisp-Cv5bFMCO.js +2 -0
  105. package/dist/client/assets/compiler-runtime-CUwoe8mk.js +2 -0
  106. package/dist/client/assets/connect-CshPrK5J.js +2 -0
  107. package/dist/client/assets/connect_.callback-1fxfJdnn.js +2 -0
  108. package/dist/client/assets/coq-BrsZFFmf.js +2 -0
  109. package/dist/client/assets/cpp-BAWTDsD2.js +2 -0
  110. package/dist/client/assets/crystal-DEAezpUc.js +2 -0
  111. package/dist/client/assets/csharp-oqKa8noW.js +2 -0
  112. package/dist/client/assets/css-ZG5tpaE7.js +2 -0
  113. package/dist/client/assets/csv-Dx-8-gkx.js +2 -0
  114. package/dist/client/assets/cue-CE9AQfxI.js +2 -0
  115. package/dist/client/assets/cypher-ClKdZ_lG.js +2 -0
  116. package/dist/client/assets/d-qD-0Kul2.js +2 -0
  117. package/dist/client/assets/dark-plus-Cs2F2srj.js +2 -0
  118. package/dist/client/assets/dark-plus-GAt2ZgX8.js +2 -0
  119. package/dist/client/assets/dart-CnvKMtbv.js +2 -0
  120. package/dist/client/assets/dax-BkyTk9wS.js +2 -0
  121. package/dist/client/assets/desktop-Dlh5hvp9.js +2 -0
  122. package/dist/client/assets/diff-woXpYk--.js +2 -0
  123. package/dist/client/assets/dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2 +0 -0
  124. package/dist/client/assets/dm-sans-latin-wght-normal-Xz1IZZA0.woff2 +0 -0
  125. package/dist/client/assets/docker-IyjqRm3v.js +2 -0
  126. package/dist/client/assets/dotenv-_5a1GRtc.js +2 -0
  127. package/dist/client/assets/dracula-BHWKrbxM.js +2 -0
  128. package/dist/client/assets/dracula-C2uKkzgK.js +2 -0
  129. package/dist/client/assets/dracula-soft-5eyTD99u.js +2 -0
  130. package/dist/client/assets/dracula-soft-D1bVjxWZ.js +2 -0
  131. package/dist/client/assets/dream-maker-DW3nJb8Q.js +2 -0
  132. package/dist/client/assets/edge-BUUilOUR.js +2 -0
  133. package/dist/client/assets/elixir-amUSnRCT.js +2 -0
  134. package/dist/client/assets/elm-BjxEHjzr.js +2 -0
  135. package/dist/client/assets/emacs-lisp-B4R74twV.js +2 -0
  136. package/dist/client/assets/entities-EGZcO-rg.js +2 -0
  137. package/dist/client/assets/environments-DPUVdQJp.js +2 -0
  138. package/dist/client/assets/erb-t1kck8M-.js +2 -0
  139. package/dist/client/assets/erlang-Cphh6RMH.js +2 -0
  140. package/dist/client/assets/everforest-dark-D-DlICQR.js +2 -0
  141. package/dist/client/assets/everforest-dark-sB-x3p7T.js +2 -0
  142. package/dist/client/assets/everforest-light-CeVdGHYG.js +2 -0
  143. package/dist/client/assets/everforest-light-Df2xbC6M.js +2 -0
  144. package/dist/client/assets/eye-TogxKhHZ.js +2 -0
  145. package/dist/client/assets/fennel-DQxkIbk2.js +2 -0
  146. package/dist/client/assets/fileCommentAnnotations-uFcaPOph.js +2 -0
  147. package/dist/client/assets/fish-BJitypiv.js +2 -0
  148. package/dist/client/assets/fluent-C03EYrpw.js +2 -0
  149. package/dist/client/assets/fortran-fixed-form-DEKoE2YW.js +2 -0
  150. package/dist/client/assets/fortran-free-form-CYNrtFtB.js +2 -0
  151. package/dist/client/assets/fsharp-D13ZGOAj.js +2 -0
  152. package/dist/client/assets/gauge-DXknpyA8.js +2 -0
  153. package/dist/client/assets/gdresource-C0sCabJj.js +2 -0
  154. package/dist/client/assets/gdscript-Cp2uCuqX.js +2 -0
  155. package/dist/client/assets/gdshader-CBce3t8t.js +2 -0
  156. package/dist/client/assets/genie-CV2tkWYe.js +2 -0
  157. package/dist/client/assets/gherkin-DExj1W_8.js +2 -0
  158. package/dist/client/assets/ghostty-vt-DdA0Zryv.wasm +0 -0
  159. package/dist/client/assets/ghostty-write-pty-hgyAvVbe.wasm +0 -0
  160. package/dist/client/assets/git-commit-BSykSTBG.js +2 -0
  161. package/dist/client/assets/git-rebase-Cq4_6JTl.js +2 -0
  162. package/dist/client/assets/github-dark-C-LZuMrd.js +2 -0
  163. package/dist/client/assets/github-dark-DwbbXv51.js +2 -0
  164. package/dist/client/assets/github-dark-default-CxjRwzl6.js +2 -0
  165. package/dist/client/assets/github-dark-default-DXG-b-1a.js +2 -0
  166. package/dist/client/assets/github-dark-dimmed-Bx1FflLF.js +2 -0
  167. package/dist/client/assets/github-dark-dimmed-Cr1oaoul.js +2 -0
  168. package/dist/client/assets/github-dark-high-contrast-B4qJZLZa.js +2 -0
  169. package/dist/client/assets/github-dark-high-contrast-B_tTalzw.js +2 -0
  170. package/dist/client/assets/github-light-CsVXhIlR.js +2 -0
  171. package/dist/client/assets/github-light-EUqPIrTm.js +2 -0
  172. package/dist/client/assets/github-light-default-BXViO-2h.js +2 -0
  173. package/dist/client/assets/github-light-default-DB_IwZa6.js +2 -0
  174. package/dist/client/assets/github-light-high-contrast-B68TUdTA.js +2 -0
  175. package/dist/client/assets/github-light-high-contrast-DLgVeSB-.js +2 -0
  176. package/dist/client/assets/gleam-CSRkHgEL.js +2 -0
  177. package/dist/client/assets/glimmer-js-u4EGJ0zO.js +2 -0
  178. package/dist/client/assets/glimmer-ts-Gurbt52H.js +2 -0
  179. package/dist/client/assets/glsl-30pqDoZO.js +2 -0
  180. package/dist/client/assets/gn-ilITqXS6.js +2 -0
  181. package/dist/client/assets/gnuplot-7GGW24-e.js +2 -0
  182. package/dist/client/assets/go-rLFTqkRN.js +2 -0
  183. package/dist/client/assets/graphql-Bs5G1kBK.js +2 -0
  184. package/dist/client/assets/groovy-CacY0gHj.js +2 -0
  185. package/dist/client/assets/group-BUXx2pDS.js +2 -0
  186. package/dist/client/assets/gruvbox-dark-hard-C820rvS2.js +2 -0
  187. package/dist/client/assets/gruvbox-dark-hard-DXm60lX3.js +2 -0
  188. package/dist/client/assets/gruvbox-dark-medium-BPjhmG05.js +2 -0
  189. package/dist/client/assets/gruvbox-dark-medium-GE2thSmD.js +2 -0
  190. package/dist/client/assets/gruvbox-dark-soft-04Cj-4VZ.js +2 -0
  191. package/dist/client/assets/gruvbox-dark-soft-MrdJrrXF.js +2 -0
  192. package/dist/client/assets/gruvbox-light-hard-BC_s9l72.js +2 -0
  193. package/dist/client/assets/gruvbox-light-hard-K6wSn29D.js +2 -0
  194. package/dist/client/assets/gruvbox-light-medium-BAWPOn9u.js +2 -0
  195. package/dist/client/assets/gruvbox-light-medium-CVy3aSlc.js +2 -0
  196. package/dist/client/assets/gruvbox-light-soft-BSMLrYjP.js +2 -0
  197. package/dist/client/assets/gruvbox-light-soft-DNgJjaY0.js +2 -0
  198. package/dist/client/assets/hack-Cko6MX06.js +2 -0
  199. package/dist/client/assets/haml-Doizmjk4.js +2 -0
  200. package/dist/client/assets/handlebars-b-YSlzII.js +2 -0
  201. package/dist/client/assets/haskell-D8IpX4py.js +2 -0
  202. package/dist/client/assets/haxe-OTjmBuCE.js +2 -0
  203. package/dist/client/assets/hcl-Dh228itO.js +2 -0
  204. package/dist/client/assets/hex-color-picker-DfLvGsRa.js +2 -0
  205. package/dist/client/assets/history-D05vcMtj.js +2 -0
  206. package/dist/client/assets/hjson-CxZEssPk.js +2 -0
  207. package/dist/client/assets/hlsl-Cvrh5tZx.js +2 -0
  208. package/dist/client/assets/horizon-0-RkHfro.js +2 -0
  209. package/dist/client/assets/horizon-CE9ld1lL.js +2 -0
  210. package/dist/client/assets/horizon-bright-BgL2X9oq.js +2 -0
  211. package/dist/client/assets/horizon-bright-DSNQnXHK.js +2 -0
  212. package/dist/client/assets/hostedPairing-nVVe5x4p.js +2 -0
  213. package/dist/client/assets/houston-CsvMBhTu.js +2 -0
  214. package/dist/client/assets/houston-KyjWKfuY.js +2 -0
  215. package/dist/client/assets/html-FzejeGn1.js +2 -0
  216. package/dist/client/assets/html-derivative-CnAooqTz.js +2 -0
  217. package/dist/client/assets/http-BxFImlHF.js +2 -0
  218. package/dist/client/assets/hurl-qINZb_eJ.js +2 -0
  219. package/dist/client/assets/hxml-B0Qn7Nwc.js +2 -0
  220. package/dist/client/assets/hy-CZbG8q4J.js +2 -0
  221. package/dist/client/assets/imba-DsUTQ-LC.js +2 -0
  222. package/dist/client/assets/index-DCOpJfCm.js +475 -0
  223. package/dist/client/assets/index-zJhfLl9C.css +1 -0
  224. package/dist/client/assets/ini-B5eOa1yu.js +2 -0
  225. package/dist/client/assets/input-group-DTqnJGXS.js +2 -0
  226. package/dist/client/assets/java-dMRc_cVD.js +2 -0
  227. package/dist/client/assets/javascript-BWMpBhVQ.js +2 -0
  228. package/dist/client/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 +0 -0
  229. package/dist/client/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff +0 -0
  230. package/dist/client/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff +0 -0
  231. package/dist/client/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2 +0 -0
  232. package/dist/client/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff +0 -0
  233. package/dist/client/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 +0 -0
  234. package/dist/client/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff +0 -0
  235. package/dist/client/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2 +0 -0
  236. package/dist/client/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
  237. package/dist/client/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
  238. package/dist/client/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 +0 -0
  239. package/dist/client/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff +0 -0
  240. package/dist/client/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 +0 -0
  241. package/dist/client/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff +0 -0
  242. package/dist/client/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2 +0 -0
  243. package/dist/client/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff +0 -0
  244. package/dist/client/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff +0 -0
  245. package/dist/client/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff +0 -0
  246. package/dist/client/assets/jinja-VDH3C9Ij.js +2 -0
  247. package/dist/client/assets/jison-BB0XuJyA.js +2 -0
  248. package/dist/client/assets/json-BjGzD-SE.js +2 -0
  249. package/dist/client/assets/json5-BR5RXkoi.js +2 -0
  250. package/dist/client/assets/jsonc-CYpm1nAK.js +2 -0
  251. package/dist/client/assets/jsonl-CmCQp5Yx.js +2 -0
  252. package/dist/client/assets/jsonnet-CJTPZ8u_.js +2 -0
  253. package/dist/client/assets/jssm-DXw9l8Rf.js +2 -0
  254. package/dist/client/assets/jsx-DzJWGKks.js +2 -0
  255. package/dist/client/assets/julia-BgCkjxqD.js +2 -0
  256. package/dist/client/assets/just-CVxSIAWS.js +2 -0
  257. package/dist/client/assets/kanagawa-dragon-7TqgsUPC.js +2 -0
  258. package/dist/client/assets/kanagawa-dragon-CXtmUGW6.js +2 -0
  259. package/dist/client/assets/kanagawa-lotus-BN08jTvb.js +2 -0
  260. package/dist/client/assets/kanagawa-lotus-CqxMQulh.js +2 -0
  261. package/dist/client/assets/kanagawa-wave-CTweb8Dz.js +2 -0
  262. package/dist/client/assets/kanagawa-wave-D8CNn6T_.js +2 -0
  263. package/dist/client/assets/kdl-CsD5j6eV.js +2 -0
  264. package/dist/client/assets/kotlin-DhhofPvG.js +2 -0
  265. package/dist/client/assets/kusto-C7mF5XQf.js +2 -0
  266. package/dist/client/assets/laserwave-CQkdhozh.js +2 -0
  267. package/dist/client/assets/laserwave-C_8bwKvT.js +2 -0
  268. package/dist/client/assets/latex-D7_rfK40.js +2 -0
  269. package/dist/client/assets/lean-CewbzKMR.js +2 -0
  270. package/dist/client/assets/less-DVTAwKKz.js +2 -0
  271. package/dist/client/assets/lib-b9zyleUn.js +30 -0
  272. package/dist/client/assets/light-plus-CNQ8_7Y0.js +2 -0
  273. package/dist/client/assets/light-plus-DVQuIRkW.js +2 -0
  274. package/dist/client/assets/link-BL3GZ_rH.js +2 -0
  275. package/dist/client/assets/liquid-C5PsA06M.js +2 -0
  276. package/dist/client/assets/llvm-Cm23YOpf.js +2 -0
  277. package/dist/client/assets/localApi-5K0gg1WP.js +3 -0
  278. package/dist/client/assets/log-BNLmms1o.js +2 -0
  279. package/dist/client/assets/logo-Cluzi2Zq.js +2 -0
  280. package/dist/client/assets/lua-Bq1DnbZG.js +2 -0
  281. package/dist/client/assets/luau-FMPmPwt6.js +2 -0
  282. package/dist/client/assets/make-Dixweg8N.js +2 -0
  283. package/dist/client/assets/markdown-BYOwaDjH.js +2 -0
  284. package/dist/client/assets/marko-C7zk2YT1.js +2 -0
  285. package/dist/client/assets/matchContext-C4X6O3hW.js +2 -0
  286. package/dist/client/assets/material-theme-Bm3Qr25_.js +2 -0
  287. package/dist/client/assets/material-theme-CAtLaHa3.js +2 -0
  288. package/dist/client/assets/material-theme-darker-2IIEA8gg.js +2 -0
  289. package/dist/client/assets/material-theme-darker-k-s5Bc6K.js +2 -0
  290. package/dist/client/assets/material-theme-lighter-CD6a-c4d.js +2 -0
  291. package/dist/client/assets/material-theme-lighter-uhdI0v04.js +2 -0
  292. package/dist/client/assets/material-theme-ocean-B3mraInd.js +2 -0
  293. package/dist/client/assets/material-theme-ocean-CHQ94UKr.js +2 -0
  294. package/dist/client/assets/material-theme-palenight-B5W6OYN7.js +2 -0
  295. package/dist/client/assets/material-theme-palenight-DEhAARHw.js +2 -0
  296. package/dist/client/assets/matlab-D7qyCx1q.js +2 -0
  297. package/dist/client/assets/mdc-JKnKthIF.js +2 -0
  298. package/dist/client/assets/mdx-DQZ5AkYe.js +2 -0
  299. package/dist/client/assets/mermaid-Bk4SNUv9.js +2 -0
  300. package/dist/client/assets/min-dark-BFqTAwCr.js +2 -0
  301. package/dist/client/assets/min-dark-BSWPekZh.js +2 -0
  302. package/dist/client/assets/min-light-DDpmG2fV.js +2 -0
  303. package/dist/client/assets/min-light-O7UdaaxX.js +2 -0
  304. package/dist/client/assets/mipsasm-BMqwQI7S.js +2 -0
  305. package/dist/client/assets/mojo-BgCJLMeH.js +2 -0
  306. package/dist/client/assets/monokai-C0p7Qecz.js +2 -0
  307. package/dist/client/assets/monokai-CdkpiU2Y.js +2 -0
  308. package/dist/client/assets/moonbit-CaWjb8XO.js +2 -0
  309. package/dist/client/assets/move-B1IS1UjX.js +2 -0
  310. package/dist/client/assets/narrat-_X_XdTYD.js +2 -0
  311. package/dist/client/assets/nextflow-BJtWHP5T.js +2 -0
  312. package/dist/client/assets/nextflow-groovy-DJMQeKeT.js +2 -0
  313. package/dist/client/assets/nginx-DXZZx9Fe.js +2 -0
  314. package/dist/client/assets/night-owl-BsnCLAKc.js +2 -0
  315. package/dist/client/assets/night-owl-DhmEMT88.js +2 -0
  316. package/dist/client/assets/night-owl-light-BODRhcTU.js +2 -0
  317. package/dist/client/assets/night-owl-light-eJ-hLW7d.js +2 -0
  318. package/dist/client/assets/nim-CkvLrvYM.js +2 -0
  319. package/dist/client/assets/nix-IvuFDN5E.js +2 -0
  320. package/dist/client/assets/nord-Cb4Vim4T.js +2 -0
  321. package/dist/client/assets/nord-Cd-F4txO.js +2 -0
  322. package/dist/client/assets/nushell-DcLAeLz5.js +2 -0
  323. package/dist/client/assets/objective-c-D1A_Heim.js +2 -0
  324. package/dist/client/assets/objective-cpp-BsSzOQcm.js +2 -0
  325. package/dist/client/assets/ocaml-O90oeIOV.js +2 -0
  326. package/dist/client/assets/odin-B1RWQWA5.js +2 -0
  327. package/dist/client/assets/one-dark-pro-CLwyXe_n.js +2 -0
  328. package/dist/client/assets/one-dark-pro-DUS_IGRK.js +2 -0
  329. package/dist/client/assets/one-light-CVUd7yD5.js +2 -0
  330. package/dist/client/assets/one-light-D7Lr4KcI.js +2 -0
  331. package/dist/client/assets/openscad-BUDT5pXO.js +2 -0
  332. package/dist/client/assets/pair-D_sKBvJj.js +2 -0
  333. package/dist/client/assets/pascal-4ZHwLPI5.js +2 -0
  334. package/dist/client/assets/perl-DKUKw9CE.js +2 -0
  335. package/dist/client/assets/php-GHQk7Jua.js +2 -0
  336. package/dist/client/assets/pierre-dark-CpLgRqie.js +2 -0
  337. package/dist/client/assets/pierre-dark-protanopia-deuteranopia-B35FxJx-.js +2 -0
  338. package/dist/client/assets/pierre-dark-soft-kZQmAZld.js +2 -0
  339. package/dist/client/assets/pierre-dark-tritanopia-CpjhbsIL.js +2 -0
  340. package/dist/client/assets/pierre-dark-vibrant-CpQYzh95.js +2 -0
  341. package/dist/client/assets/pierre-light-CoaEpmwp.js +2 -0
  342. package/dist/client/assets/pierre-light-protanopia-deuteranopia-0fSaH845.js +2 -0
  343. package/dist/client/assets/pierre-light-soft-lWLdNTOI.js +2 -0
  344. package/dist/client/assets/pierre-light-tritanopia-CEbqgOJL.js +2 -0
  345. package/dist/client/assets/pierre-light-vibrant-D80Fkn33.js +2 -0
  346. package/dist/client/assets/pkl-ot-7Btpt.js +2 -0
  347. package/dist/client/assets/plastic-CF8VZTnn.js +2 -0
  348. package/dist/client/assets/plastic-DQwYfKfQ.js +2 -0
  349. package/dist/client/assets/plsql-DGHpHOYJ.js +2 -0
  350. package/dist/client/assets/po-BiJDBrnU.js +2 -0
  351. package/dist/client/assets/poimandres-BX2TyY6j.js +2 -0
  352. package/dist/client/assets/poimandres-DRFjx7u4.js +2 -0
  353. package/dist/client/assets/polar-C7UOKdEL.js +2 -0
  354. package/dist/client/assets/postcss-BXeXVLqQ.js +2 -0
  355. package/dist/client/assets/powerquery-DNMTfnFr.js +2 -0
  356. package/dist/client/assets/powershell-DshXNtvi.js +2 -0
  357. package/dist/client/assets/preload-helper-D2XUqLHy.js +1 -0
  358. package/dist/client/assets/previewActionBus-B2LYye0P.js +2 -0
  359. package/dist/client/assets/prisma-BsRQq5mF.js +2 -0
  360. package/dist/client/assets/projects-D9v9VLJo.js +2 -0
  361. package/dist/client/assets/prolog-iXnhIJG7.js +2 -0
  362. package/dist/client/assets/proto-DB4EqR-F.js +2 -0
  363. package/dist/client/assets/pug-DxCMAzbD.js +2 -0
  364. package/dist/client/assets/puppet-CDv2pdJW.js +2 -0
  365. package/dist/client/assets/purescript-9MfHhQsQ.js +2 -0
  366. package/dist/client/assets/python-gzcpVVnB.js +2 -0
  367. package/dist/client/assets/qml-D3IL06-0.js +2 -0
  368. package/dist/client/assets/qmldir-DCQb3MpD.js +2 -0
  369. package/dist/client/assets/qss-Fe1Jh2GI.js +2 -0
  370. package/dist/client/assets/query-BTlH8ppa.js +2 -0
  371. package/dist/client/assets/r-D2Zb3-aq.js +2 -0
  372. package/dist/client/assets/racket-DcIDlBhZ.js +2 -0
  373. package/dist/client/assets/radio-group-VXzWvOzu.js +2 -0
  374. package/dist/client/assets/raku-B3gFvitq.js +2 -0
  375. package/dist/client/assets/razor-BfPqrQiz.js +2 -0
  376. package/dist/client/assets/red-7ga_dcKu.js +2 -0
  377. package/dist/client/assets/red-CJ3rzSJv.js +2 -0
  378. package/dist/client/assets/redirect-CTDpd8-N.js +2 -0
  379. package/dist/client/assets/reg-CRGYupPL.js +2 -0
  380. package/dist/client/assets/regexp-BtCnpNi-.js +2 -0
  381. package/dist/client/assets/rel-BtDbiS_P.js +2 -0
  382. package/dist/client/assets/reviewPatchParser.worker-Bx0aLcXI.js +13 -0
  383. package/dist/client/assets/reviews-DqcOSrtz.js +2 -0
  384. package/dist/client/assets/reviews._environmentId._host._owner._repository._pullRequestNumber-QICycRVU.js +11 -0
  385. package/dist/client/assets/reviews.index-Dw9KYVnt.js +2 -0
  386. package/dist/client/assets/riscv-Ckw8ddFX.js +2 -0
  387. package/dist/client/assets/ron-VUp2lXgN.js +2 -0
  388. package/dist/client/assets/rose-pine-BthvhNj6.js +2 -0
  389. package/dist/client/assets/rose-pine-dawn-DSuRaP6u.js +2 -0
  390. package/dist/client/assets/rose-pine-dawn-Dg85fqjY.js +2 -0
  391. package/dist/client/assets/rose-pine-moon-DdHjCvFQ.js +2 -0
  392. package/dist/client/assets/rose-pine-moon-hon4tzzS.js +2 -0
  393. package/dist/client/assets/rose-pine-rh6ipraJ.js +2 -0
  394. package/dist/client/assets/rosmsg-CAekHB0j.js +2 -0
  395. package/dist/client/assets/rotate-ccw-BuHf9qmb.js +2 -0
  396. package/dist/client/assets/rst-DgVsEgbv.js +2 -0
  397. package/dist/client/assets/ruby-DM9zEDxk.js +2 -0
  398. package/dist/client/assets/rust-Cfkwpbl8.js +2 -0
  399. package/dist/client/assets/safeLog-NeXgoMPF.js +3 -0
  400. package/dist/client/assets/sas-DlL3ue79.js +2 -0
  401. package/dist/client/assets/sass-DXrisJhu.js +2 -0
  402. package/dist/client/assets/scala-DKOlJaKm.js +2 -0
  403. package/dist/client/assets/scheduler-8SgDf5Nb.js +2 -0
  404. package/dist/client/assets/scheme-DQCgrYNe.js +2 -0
  405. package/dist/client/assets/scss-LGD8fUVB.js +2 -0
  406. package/dist/client/assets/sdbl-bTVj8UrX.js +2 -0
  407. package/dist/client/assets/settings-D4XOj85b.js +2 -0
  408. package/dist/client/assets/settings.appearance-CZvAeZCN.js +42 -0
  409. package/dist/client/assets/settings.archived-Y06GoG0S.js +2 -0
  410. package/dist/client/assets/settings.beta-Bd5UrFtG.js +2 -0
  411. package/dist/client/assets/settings.connections-YjuBg0cD.js +2 -0
  412. package/dist/client/assets/settings.diagnostics-DujS7DMW.js +3 -0
  413. package/dist/client/assets/settings.general-sQSJC3Rq.js +2 -0
  414. package/dist/client/assets/settings.keybindings-C6b2im1-.js +2 -0
  415. package/dist/client/assets/settings.providers-CzhQRSvU.js +2 -0
  416. package/dist/client/assets/settings.source-control-Ocoxm1T5.js +2 -0
  417. package/dist/client/assets/shaderlab-TOUzSsQk.js +2 -0
  418. package/dist/client/assets/shell-BfrxrAzH.js +2 -0
  419. package/dist/client/assets/shellscript-CYVg9JP5.js +2 -0
  420. package/dist/client/assets/shellsession-Cn2QQjIy.js +2 -0
  421. package/dist/client/assets/slack-dark-DYvUXyrP.js +2 -0
  422. package/dist/client/assets/slack-dark-DnToyrRv.js +2 -0
  423. package/dist/client/assets/slack-ochin-B2OO5cIa.js +2 -0
  424. package/dist/client/assets/slack-ochin-bqtMVDfH.js +2 -0
  425. package/dist/client/assets/smalltalk-B16xEiuN.js +2 -0
  426. package/dist/client/assets/snazzy-light-4G7pJPwS.js +2 -0
  427. package/dist/client/assets/snazzy-light-D8dzFmq5.js +2 -0
  428. package/dist/client/assets/solarized-dark-BQwPDzxK.js +2 -0
  429. package/dist/client/assets/solarized-dark-DV17i1UV.js +2 -0
  430. package/dist/client/assets/solarized-light-BLaijb3X.js +2 -0
  431. package/dist/client/assets/solarized-light-DSh2HLQt.js +2 -0
  432. package/dist/client/assets/solidity-CKzVLygQ.js +2 -0
  433. package/dist/client/assets/soy-BNUH7AWp.js +2 -0
  434. package/dist/client/assets/sparql-D_iOobhT.js +2 -0
  435. package/dist/client/assets/splunk-BC2Px7Mm.js +2 -0
  436. package/dist/client/assets/sql-BLrhh1Yv.js +2 -0
  437. package/dist/client/assets/ssh-config-BgfXC-Er.js +2 -0
  438. package/dist/client/assets/stata-CbTJOr_m.js +2 -0
  439. package/dist/client/assets/stylus-B6D30XZt.js +2 -0
  440. package/dist/client/assets/surrealql-Bp6i6018.js +2 -0
  441. package/dist/client/assets/svelte-CuQ8bF4c.js +2 -0
  442. package/dist/client/assets/swift-DonLKvLd.js +2 -0
  443. package/dist/client/assets/switch-rJ-jJPhK.js +2 -0
  444. package/dist/client/assets/synthwave-84-CIknw8y7.js +2 -0
  445. package/dist/client/assets/synthwave-84-nFMaYfgc.js +2 -0
  446. package/dist/client/assets/system-verilog-DJ5XKQeo.js +2 -0
  447. package/dist/client/assets/systemd-BxMlprV5.js +2 -0
  448. package/dist/client/assets/talonscript-CohzipZa.js +2 -0
  449. package/dist/client/assets/tasl-DMoTqEGO.js +2 -0
  450. package/dist/client/assets/tcl-CZd0xW_V.js +2 -0
  451. package/dist/client/assets/templ-Bo-nf_t1.js +2 -0
  452. package/dist/client/assets/terminalAppearance-BqQ_2bv1.js +2 -0
  453. package/dist/client/assets/terraform-DswuEJGm.js +2 -0
  454. package/dist/client/assets/tex-BgvSMBks.js +2 -0
  455. package/dist/client/assets/textarea-XNVgJSPU.js +2 -0
  456. package/dist/client/assets/toggle-QDWstdFN.js +2 -0
  457. package/dist/client/assets/tokyo-night-iIspnLcq.js +2 -0
  458. package/dist/client/assets/tokyo-night-oM2G3aXe.js +2 -0
  459. package/dist/client/assets/toml-CcmNWLt0.js +2 -0
  460. package/dist/client/assets/ts-tags-Bm95_vpn.js +2 -0
  461. package/dist/client/assets/tsv-sltzmVWM.js +2 -0
  462. package/dist/client/assets/tsx-ToB8-PkG.js +2 -0
  463. package/dist/client/assets/turtle-ByJddavk.js +2 -0
  464. package/dist/client/assets/twig-D5eIhwLo.js +2 -0
  465. package/dist/client/assets/typescript-55S1t3b3.js +2 -0
  466. package/dist/client/assets/typespec-BRdr0IET.js +2 -0
  467. package/dist/client/assets/typst-DI99ib-x.js +2 -0
  468. package/dist/client/assets/uiStateStore-DKTfup26.js +2 -0
  469. package/dist/client/assets/use-atom-command-CbJ8L7ju.js +4 -0
  470. package/dist/client/assets/useAriaLabelledBy-DcnsWgtX.js +2 -0
  471. package/dist/client/assets/useParams-Iww6IHUG.js +2 -0
  472. package/dist/client/assets/useReviewMergeAction-BgjVNuJP.js +2 -0
  473. package/dist/client/assets/useSettings-CGh4Xw67.js +2 -0
  474. package/dist/client/assets/useStore-Bv9Rrp6F.js +2 -0
  475. package/dist/client/assets/utils-SYwD9hoF.js +2 -0
  476. package/dist/client/assets/utils-Yidpy5tB.js +30 -0
  477. package/dist/client/assets/v-DETTlOr0.js +2 -0
  478. package/dist/client/assets/vala-zf12oZj6.js +2 -0
  479. package/dist/client/assets/vb-Djn5o6TS.js +2 -0
  480. package/dist/client/assets/vcsRefInvalidation-CMdkUDtM.js +2 -0
  481. package/dist/client/assets/verilog-CiiDBU1e.js +2 -0
  482. package/dist/client/assets/vesper-BIFK_oDq.js +2 -0
  483. package/dist/client/assets/vesper-DdrHHSXu.js +2 -0
  484. package/dist/client/assets/vhdl-BroJfC0k.js +2 -0
  485. package/dist/client/assets/viml-DvXPmvsu.js +2 -0
  486. package/dist/client/assets/vitesse-black-D082JcaE.js +2 -0
  487. package/dist/client/assets/vitesse-black-fwtXNY1n.js +2 -0
  488. package/dist/client/assets/vitesse-dark-BZCL-v6S.js +2 -0
  489. package/dist/client/assets/vitesse-dark-z-nr_5O8.js +2 -0
  490. package/dist/client/assets/vitesse-light-VbXTXTou.js +2 -0
  491. package/dist/client/assets/vitesse-light-ojz42ZLy.js +2 -0
  492. package/dist/client/assets/vue-BWR1mbne.js +2 -0
  493. package/dist/client/assets/vue-html-DGrJOwF8.js +2 -0
  494. package/dist/client/assets/vue-vine-SedHajQj.js +2 -0
  495. package/dist/client/assets/vyper-CgoNMtux.js +2 -0
  496. package/dist/client/assets/wasm-BnjxR4X6.js +2 -0
  497. package/dist/client/assets/wasm-ByWQv1Qj.js +2 -0
  498. package/dist/client/assets/wenyan-C8pVoKbM.js +2 -0
  499. package/dist/client/assets/wgsl-BsKzXJz4.js +2 -0
  500. package/dist/client/assets/wikitext-ClFFjSW2.js +2 -0
  501. package/dist/client/assets/wit-DdvCle-K.js +2 -0
  502. package/dist/client/assets/with-selector-C3poe37J.js +2 -0
  503. package/dist/client/assets/wolfram-DLL8P-h_.js +2 -0
  504. package/dist/client/assets/worker-CIcqvLjo.js +159 -0
  505. package/dist/client/assets/workspaceTitlebar-CrNTdVrF.js +2 -0
  506. package/dist/client/assets/xml-BB6ezbMQ.js +2 -0
  507. package/dist/client/assets/xsl-DygAj9pT.js +2 -0
  508. package/dist/client/assets/yaml-CIJj2T9S.js +2 -0
  509. package/dist/client/assets/zenscript-BnlCZFoB.js +2 -0
  510. package/dist/client/assets/zig-CMLA9XwU.js +2 -0
  511. package/dist/client/index.html +327 -0
  512. package/dist/client/mockServiceWorker.js +349 -0
  513. package/dist/service-launcher.mjs +461 -0
  514. package/package.json +54 -0
@@ -0,0 +1,461 @@
1
+ #!/usr/bin/env node
2
+
3
+ import * as NodeChildProcess from "node:child_process";
4
+ import * as NodeCrypto from "node:crypto";
5
+ import * as NodeFSP from "node:fs/promises";
6
+ import * as NodePath from "node:path";
7
+ const SERVICE_LAUNCHER_CONTEXT_ENV = "DASCODE_SERVICE_LAUNCHER_CONTEXT";
8
+ const SERVICE_STATE_FILE = "service-state.json";
9
+ const SEMVER_NUMBER = "(?:0|[1-9]\\d*)";
10
+ const SEMVER_PRERELEASE = `(?:${SEMVER_NUMBER}|[0-9]*[A-Za-z-][0-9A-Za-z-]*)`;
11
+ const EXACT_SERVICE_VERSION = new RegExp(`^${SEMVER_NUMBER}\\.${SEMVER_NUMBER}\\.${SEMVER_NUMBER}(?:-${SEMVER_PRERELEASE}(?:\\.${SEMVER_PRERELEASE})*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$`);
12
+ /** Accepts exact SemVer only: never dist-tags or ranges passed to npm or filesystem paths. */
13
+ const isExactServiceVersion = (version) => EXACT_SERVICE_VERSION.test(version);
14
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
15
+ function decodeServiceUpdate(value) {
16
+ if (!isRecord(value)) return void 0;
17
+ const { id, fromVersion, targetVersion, status } = value;
18
+ if (typeof id !== "string" || id.trim() === "" || typeof fromVersion !== "string" || !isExactServiceVersion(fromVersion) || typeof targetVersion !== "string" || !isExactServiceVersion(targetVersion)) return;
19
+ if (status === "pending") return {
20
+ id,
21
+ fromVersion,
22
+ targetVersion,
23
+ status
24
+ };
25
+ if ((status === "committed" || status === "rolled-back" || status === "failed") && (value.reason === void 0 || typeof value.reason === "string" && value.reason.trim() !== "")) return {
26
+ id,
27
+ fromVersion,
28
+ targetVersion,
29
+ status,
30
+ ...typeof value.reason === "string" ? { reason: value.reason } : {}
31
+ };
32
+ }
33
+ /** SemVer precedence for exact versions. Build metadata is ignored. */
34
+ function compareExactServiceVersions(left, right) {
35
+ const parse = (version) => {
36
+ const withoutBuild = version.split("+", 1)[0] ?? version;
37
+ const separator = withoutBuild.indexOf("-");
38
+ const core = separator === -1 ? withoutBuild : withoutBuild.slice(0, separator);
39
+ const prerelease = separator === -1 ? void 0 : withoutBuild.slice(separator + 1);
40
+ const [major = "0", minor = "0", patch = "0"] = core.split(".");
41
+ return {
42
+ core: [
43
+ BigInt(major),
44
+ BigInt(minor),
45
+ BigInt(patch)
46
+ ],
47
+ prerelease: prerelease?.split(".") ?? []
48
+ };
49
+ };
50
+ const a = parse(left);
51
+ const b = parse(right);
52
+ for (let index = 0; index < 3; index += 1) {
53
+ const x = a.core[index] ?? 0n;
54
+ const y = b.core[index] ?? 0n;
55
+ if (x !== y) return x < y ? -1 : 1;
56
+ }
57
+ if (a.prerelease.length === 0 || b.prerelease.length === 0) return a.prerelease.length === b.prerelease.length ? 0 : a.prerelease.length === 0 ? 1 : -1;
58
+ const count = Math.max(a.prerelease.length, b.prerelease.length);
59
+ for (let index = 0; index < count; index += 1) {
60
+ const x = a.prerelease[index];
61
+ const y = b.prerelease[index];
62
+ if (x === void 0 || y === void 0) return x === void 0 ? -1 : 1;
63
+ if (x === y) continue;
64
+ const xNumeric = /^\d+$/.test(x);
65
+ const yNumeric = /^\d+$/.test(y);
66
+ if (xNumeric && yNumeric) return BigInt(x) < BigInt(y) ? -1 : 1;
67
+ if (xNumeric !== yNumeric) return xNumeric ? -1 : 1;
68
+ return x < y ? -1 : 1;
69
+ }
70
+ return 0;
71
+ }
72
+ function decodeServiceState(value) {
73
+ if (!isRecord(value)) return void 0;
74
+ const update = value.update === void 0 ? void 0 : decodeServiceUpdate(value.update);
75
+ if (value.protocol !== 1 || typeof value.activeVersion !== "string" || !isExactServiceVersion(value.activeVersion) || value.update !== void 0 && update === void 0 || update !== void 0 && compareExactServiceVersions(update.targetVersion, update.fromVersion) <= 0 || update?.status === "pending" && update.fromVersion !== value.activeVersion || update?.status === "committed" && update.targetVersion !== value.activeVersion || (update?.status === "rolled-back" || update?.status === "failed") && update.fromVersion !== value.activeVersion) return;
76
+ return {
77
+ protocol: 1,
78
+ activeVersion: value.activeVersion,
79
+ ...update === void 0 ? {} : { update }
80
+ };
81
+ }
82
+ function parseServiceState(value) {
83
+ try {
84
+ return decodeServiceState(JSON.parse(value));
85
+ } catch {
86
+ return;
87
+ }
88
+ }
89
+ function decodeServiceLauncherChildMessage(value) {
90
+ if (!isRecord(value)) return void 0;
91
+ if (value.type === "request-update" && typeof value.targetVersion === "string") return {
92
+ type: value.type,
93
+ targetVersion: value.targetVersion
94
+ };
95
+ return value.type === "prepared" && typeof value.updateId === "string" ? {
96
+ type: value.type,
97
+ updateId: value.updateId
98
+ } : void 0;
99
+ }
100
+ //#endregion
101
+ //#region src/serviceLauncher.ts
102
+ const HANDOFF_DELAY_MS = 2e3;
103
+ const PREPARED_TIMEOUT_MS = 12e4;
104
+ const TERMINATE_GRACE_MS = 5e3;
105
+ const runtimePaths = (baseDir, version) => {
106
+ const versionDir = NodePath.join(baseDir, "runtime", "versions", version);
107
+ return {
108
+ versionDir,
109
+ entryPath: NodePath.join(versionDir, "node_modules", "@das-org", "dascode", "dist", "bin.mjs"),
110
+ sentinelPath: NodePath.join(versionDir, ".install-complete")
111
+ };
112
+ };
113
+ async function readServiceState(filePath) {
114
+ const state = parseServiceState(await NodeFSP.readFile(filePath, "utf8"));
115
+ if (state === void 0) throw new Error("Service state is invalid or unsupported.");
116
+ return state;
117
+ }
118
+ /** Durable same-directory replacement used for every runtime state transition. */
119
+ async function writeServiceState(filePath, state) {
120
+ const directory = NodePath.dirname(filePath);
121
+ await NodeFSP.mkdir(directory, {
122
+ recursive: true,
123
+ mode: 448
124
+ });
125
+ const tempPath = NodePath.join(directory, `.${NodePath.basename(filePath)}.${process.pid}.${NodeCrypto.randomUUID()}`);
126
+ let handle;
127
+ try {
128
+ handle = await NodeFSP.open(tempPath, "wx", 384);
129
+ await handle.writeFile(`${JSON.stringify(state, null, 2)}\n`, "utf8");
130
+ await handle.sync();
131
+ await handle.close();
132
+ handle = void 0;
133
+ await NodeFSP.rename(tempPath, filePath);
134
+ const directoryHandle = await NodeFSP.open(directory, "r");
135
+ try {
136
+ await directoryHandle.sync();
137
+ } finally {
138
+ await directoryHandle.close();
139
+ }
140
+ } finally {
141
+ await handle?.close().catch(() => void 0);
142
+ await NodeFSP.rm(tempPath, { force: true }).catch(() => void 0);
143
+ }
144
+ }
145
+ async function runtimeExists(baseDir, version) {
146
+ const paths = runtimePaths(baseDir, version);
147
+ try {
148
+ const [entry, sentinel] = await Promise.all([NodeFSP.stat(paths.entryPath), NodeFSP.readFile(paths.sentinelPath, "utf8")]);
149
+ return entry.isFile() && sentinel.trim() === version;
150
+ } catch {
151
+ return false;
152
+ }
153
+ }
154
+ function terminalUpdate(input) {
155
+ return {
156
+ id: input.pending.id,
157
+ fromVersion: input.pending.fromVersion,
158
+ targetVersion: input.pending.targetVersion,
159
+ status: input.status,
160
+ ...input.reason === void 0 ? {} : { reason: input.reason }
161
+ };
162
+ }
163
+ function sendMessage(child, message) {
164
+ return new Promise((resolve, reject) => {
165
+ if (!child.connected || child.send === void 0) {
166
+ reject(/* @__PURE__ */ new Error("service child IPC is disconnected."));
167
+ return;
168
+ }
169
+ child.send(message, (error) => error === null ? resolve() : reject(error));
170
+ });
171
+ }
172
+ function waitForExit(child) {
173
+ if (child.exitCode !== null || child.signalCode !== null) return Promise.resolve();
174
+ return new Promise((resolve) => child.once("exit", () => resolve()));
175
+ }
176
+ async function terminateChild(child, signal = "SIGTERM") {
177
+ if (child.exitCode !== null || child.signalCode !== null) return;
178
+ child.kill(signal);
179
+ const force = setTimeout(() => child.kill("SIGKILL"), TERMINATE_GRACE_MS);
180
+ try {
181
+ await waitForExit(child);
182
+ } finally {
183
+ clearTimeout(force);
184
+ }
185
+ }
186
+ var Launcher = class {
187
+ #baseDir;
188
+ #statePath;
189
+ #state;
190
+ #child = null;
191
+ #timer;
192
+ #transitions = Promise.resolve();
193
+ #stopping = false;
194
+ #done = false;
195
+ #completion = Promise.withResolvers();
196
+ constructor(baseDir, state) {
197
+ this.#baseDir = baseDir;
198
+ this.#statePath = NodePath.join(baseDir, "runtime", SERVICE_STATE_FILE);
199
+ this.#state = state;
200
+ }
201
+ async run() {
202
+ const onSigterm = () => void this.stop("SIGTERM");
203
+ const onSigint = () => void this.stop("SIGINT");
204
+ process.once("SIGTERM", onSigterm);
205
+ process.once("SIGINT", onSigint);
206
+ try {
207
+ this.#enqueue(() => this.#recover());
208
+ await this.#completion.promise;
209
+ } finally {
210
+ process.off("SIGTERM", onSigterm);
211
+ process.off("SIGINT", onSigint);
212
+ }
213
+ }
214
+ #enqueue(transition) {
215
+ this.#transitions = this.#transitions.then(transition, transition).catch((cause) => this.#fatal(cause instanceof Error ? cause : new Error(String(cause))));
216
+ }
217
+ async #fatal(error) {
218
+ if (this.#done) return;
219
+ this.#done = true;
220
+ this.#stopping = true;
221
+ this.#clearTimer();
222
+ const child = this.#child?.process;
223
+ this.#child = null;
224
+ if (child !== void 0) await terminateChild(child);
225
+ this.#completion.reject(error);
226
+ }
227
+ async stop(signal) {
228
+ if (this.#stopping) {
229
+ await this.#completion.promise.catch(() => void 0);
230
+ return;
231
+ }
232
+ this.#stopping = true;
233
+ this.#clearTimer();
234
+ this.#enqueue(async () => {
235
+ const child = this.#child?.process;
236
+ this.#child = null;
237
+ if (child !== void 0) await terminateChild(child, signal);
238
+ this.#done = true;
239
+ this.#completion.resolve();
240
+ });
241
+ await this.#completion.promise.catch(() => void 0);
242
+ }
243
+ #clearTimer() {
244
+ clearTimeout(this.#timer);
245
+ this.#timer = void 0;
246
+ }
247
+ async #recover() {
248
+ const update = this.#state.update;
249
+ if (update?.status !== "pending") {
250
+ await this.#startChild(this.#state.activeVersion, "active", update);
251
+ return;
252
+ }
253
+ if (!await runtimeExists(this.#baseDir, update.targetVersion)) {
254
+ await this.#returnToPrevious(update, "failed", "target-runtime-missing");
255
+ return;
256
+ }
257
+ await this.#startTrial(update);
258
+ }
259
+ async #startTrial(pending) {
260
+ try {
261
+ await this.#startChild(pending.targetVersion, "trial", pending);
262
+ } catch {
263
+ await this.#returnToPrevious(pending, "failed", "candidate-start-failed");
264
+ }
265
+ }
266
+ async #startChild(version, role, update) {
267
+ if (this.#stopping) return;
268
+ if (!await runtimeExists(this.#baseDir, version)) throw new Error(`Selected @das-org/dascode@${version} runtime is missing or incomplete.`);
269
+ if (this.#stopping) return;
270
+ const paths = runtimePaths(this.#baseDir, version);
271
+ const context = {
272
+ protocol: 1,
273
+ childVersion: version,
274
+ ...update === void 0 ? {} : { update }
275
+ };
276
+ const child = NodeChildProcess.spawn(process.execPath, [paths.entryPath, "serve"], {
277
+ env: {
278
+ ...process.env,
279
+ [SERVICE_LAUNCHER_CONTEXT_ENV]: JSON.stringify(context)
280
+ },
281
+ stdio: [
282
+ "inherit",
283
+ "inherit",
284
+ "inherit",
285
+ "ipc"
286
+ ]
287
+ });
288
+ await new Promise((resolve, reject) => {
289
+ const onError = (error) => reject(error);
290
+ child.once("error", onError);
291
+ child.once("spawn", () => {
292
+ child.removeListener("error", onError);
293
+ child.on("error", (error) => this.#enqueue(() => Promise.reject(error)));
294
+ resolve();
295
+ });
296
+ });
297
+ if (this.#stopping) {
298
+ await terminateChild(child);
299
+ return;
300
+ }
301
+ const managed = {
302
+ version,
303
+ role,
304
+ process: child
305
+ };
306
+ this.#child = managed;
307
+ child.on("message", (value) => {
308
+ const message = decodeServiceLauncherChildMessage(value);
309
+ if (message !== void 0) this.#enqueue(() => this.#handleMessage(managed, message));
310
+ });
311
+ child.once("exit", (code, signal) => this.#enqueue(() => this.#handleExit(managed, code, signal)));
312
+ if (role === "trial") this.#timer = setTimeout(() => this.#enqueue(() => this.#handlePreparedTimeout(managed)), PREPARED_TIMEOUT_MS);
313
+ }
314
+ async #handleMessage(child, message) {
315
+ if (this.#child !== child || this.#stopping) return;
316
+ if (message.type === "request-update") {
317
+ await this.#handleUpdateRequest(child, message);
318
+ return;
319
+ }
320
+ await this.#handlePrepared(child, message.updateId);
321
+ }
322
+ async #handleUpdateRequest(child, message) {
323
+ const reject = (reason) => sendMessage(child.process, {
324
+ type: "update-rejected",
325
+ reason
326
+ });
327
+ if (child.role !== "active") {
328
+ await reject("Only the active server can request an update.");
329
+ return;
330
+ }
331
+ if (child.version !== this.#state.activeVersion) {
332
+ await reject("The requesting server is not the selected active version.");
333
+ return;
334
+ }
335
+ if (this.#state.update?.status === "pending") {
336
+ await reject("Another server update is already pending.");
337
+ return;
338
+ }
339
+ if (!isExactServiceVersion(message.targetVersion)) {
340
+ await reject("The requested target is not an exact version.");
341
+ return;
342
+ }
343
+ if (compareExactServiceVersions(message.targetVersion, child.version) <= 0) {
344
+ await reject("Remote updates must select a newer server version.");
345
+ return;
346
+ }
347
+ if (!await runtimeExists(this.#baseDir, message.targetVersion)) {
348
+ await reject("The requested target runtime is missing or incomplete.");
349
+ return;
350
+ }
351
+ const pending = {
352
+ id: NodeCrypto.randomUUID(),
353
+ fromVersion: child.version,
354
+ targetVersion: message.targetVersion,
355
+ status: "pending"
356
+ };
357
+ const next = {
358
+ ...this.#state,
359
+ update: pending
360
+ };
361
+ await writeServiceState(this.#statePath, next);
362
+ this.#state = next;
363
+ await sendMessage(child.process, {
364
+ type: "update-accepted",
365
+ updateId: pending.id
366
+ });
367
+ this.#timer = setTimeout(() => this.#enqueue(() => this.#beginTrial(child)), HANDOFF_DELAY_MS);
368
+ }
369
+ async #beginTrial(child) {
370
+ const pending = this.#state.update;
371
+ if (this.#child !== child || child.role !== "active" || pending?.status !== "pending") return;
372
+ this.#timer = void 0;
373
+ this.#child = null;
374
+ await terminateChild(child.process);
375
+ await this.#startTrial(pending);
376
+ }
377
+ async #handlePrepared(child, updateId) {
378
+ const pending = this.#state.update;
379
+ if (child.role !== "trial" || pending?.status !== "pending" || pending.id !== updateId || pending.targetVersion !== child.version) {
380
+ if (child.role === "trial" && pending?.status === "pending") {
381
+ await this.#returnToPrevious(pending, "rolled-back", "invalid-prepared", child);
382
+ return;
383
+ }
384
+ throw new Error("Trial child reported prepared for an unexpected update.");
385
+ }
386
+ this.#clearTimer();
387
+ const committed = terminalUpdate({
388
+ pending,
389
+ status: "committed"
390
+ });
391
+ const next = {
392
+ ...this.#state,
393
+ activeVersion: pending.targetVersion,
394
+ update: committed
395
+ };
396
+ await writeServiceState(this.#statePath, next);
397
+ this.#state = next;
398
+ child.role = "active";
399
+ await sendMessage(child.process, {
400
+ type: "committed",
401
+ updateId: committed.id
402
+ });
403
+ }
404
+ async #handlePreparedTimeout(child) {
405
+ const pending = this.#state.update;
406
+ if (this.#child !== child || child.role !== "trial" || pending?.status !== "pending") return;
407
+ this.#timer = void 0;
408
+ await this.#returnToPrevious(pending, "rolled-back", "prepared-timeout", child);
409
+ }
410
+ async #handleExit(child, code, signal) {
411
+ if (this.#child !== child || this.#stopping) return;
412
+ this.#child = null;
413
+ if (child.role === "trial") {
414
+ this.#clearTimer();
415
+ const pending = this.#state.update;
416
+ if (pending?.status !== "pending") throw new Error("Trial child exited without matching pending state.");
417
+ await this.#returnToPrevious(pending, "rolled-back", `candidate-exited:${String(code ?? signal ?? "unknown")}`);
418
+ return;
419
+ }
420
+ this.#clearTimer();
421
+ const pending = this.#state.update;
422
+ if (pending?.status === "pending") {
423
+ await this.#startTrial(pending);
424
+ return;
425
+ }
426
+ throw new Error(`Active child exited unexpectedly (${String(code ?? signal ?? "unknown")}).`);
427
+ }
428
+ async #returnToPrevious(pending, status, reason, child) {
429
+ const outcome = terminalUpdate({
430
+ pending,
431
+ status,
432
+ reason
433
+ });
434
+ const next = {
435
+ ...this.#state,
436
+ activeVersion: pending.fromVersion,
437
+ update: outcome
438
+ };
439
+ await writeServiceState(this.#statePath, next);
440
+ this.#state = next;
441
+ if (child !== void 0) {
442
+ this.#child = null;
443
+ await terminateChild(child.process);
444
+ }
445
+ await this.#startChild(next.activeVersion, "active", outcome);
446
+ }
447
+ };
448
+ async function main() {
449
+ const baseDir = process.env.T3CODE_HOME?.trim();
450
+ if (baseDir === void 0 || baseDir === "") throw new Error("T3CODE_HOME is required by the DasCode service launcher.");
451
+ await new Launcher(baseDir, await readServiceState(NodePath.join(baseDir, "runtime", SERVICE_STATE_FILE))).run();
452
+ }
453
+ if (import.meta.main) main().catch((cause) => {
454
+ const error = cause instanceof Error ? cause : new Error(String(cause));
455
+ process.stderr.write(`[service-launcher] ${error.message}\n`);
456
+ process.exitCode = 1;
457
+ });
458
+ //#endregion
459
+ export {};
460
+
461
+ //# sourceMappingURL=service-launcher.mjs.map
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "@das-org/dascode",
3
+ "license": "MIT",
4
+ "repository": {
5
+ "type": "git",
6
+ "url": "https://github.com/B-DasApp/DasCode",
7
+ "directory": "apps/server"
8
+ },
9
+ "bin": {
10
+ "dascode": "./dist/bin.mjs"
11
+ },
12
+ "type": "module",
13
+ "version": "0.0.31",
14
+ "engines": {
15
+ "node": "^22.22.2 || ^24.15.0 || >=26.0.0"
16
+ },
17
+ "files": [
18
+ "dist"
19
+ ],
20
+ "publishConfig": {
21
+ "access": "public"
22
+ },
23
+ "dependencies": {
24
+ "@effect/platform-bun": "4.0.0-beta.102",
25
+ "@effect/platform-node": "4.0.0-beta.102",
26
+ "@effect/platform-node-shared": "4.0.0-beta.102",
27
+ "@effect/sql-sqlite-bun": "4.0.0-beta.102",
28
+ "@ff-labs/fff-node": "0.9.4",
29
+ "@opencode-ai/sdk": "^1.3.15",
30
+ "@pierre/diffs": "1.3.0-beta.10",
31
+ "effect": "4.0.0-beta.102",
32
+ "node-pty": "^1.1.0",
33
+ "yaml": "^2.9.0"
34
+ },
35
+ "overrides": {
36
+ "@clerk/backend": "3.14.0",
37
+ "@clerk/clerk-js": "6.25.12",
38
+ "@clerk/electron": "0.0.24",
39
+ "@clerk/electron-passkeys": "0.0.3",
40
+ "@clerk/react": "6.12.9",
41
+ "@clerk/shared": "4.25.9",
42
+ "@effect/atom-react": "4.0.0-beta.102",
43
+ "@effect/platform-bun": "4.0.0-beta.102",
44
+ "@effect/platform-node": "4.0.0-beta.102",
45
+ "@effect/platform-node-shared": "4.0.0-beta.102",
46
+ "@effect/sql-pg": "4.0.0-beta.102",
47
+ "@effect/sql-sqlite-bun": "4.0.0-beta.102",
48
+ "@effect/vitest": "4.0.0-beta.102",
49
+ "@types/node": "24.12.4",
50
+ "effect": "4.0.0-beta.102",
51
+ "vite": "npm:@voidzero-dev/vite-plus-core@0.2.2",
52
+ "yaml": "^2.9.0"
53
+ }
54
+ }