remote-codex 0.11.8 → 0.11.9

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 (316) hide show
  1. package/apps/relay-server/dist/index.js +27 -5
  2. package/apps/supervisor-api/dist/chunk-2ELO2EVR.js +27897 -0
  3. package/apps/supervisor-api/dist/{chunk-ELPP22TZ.js → chunk-NWZLUCQV.js} +8 -2
  4. package/apps/supervisor-api/dist/{chunk-ZWZQVPDT.js → chunk-XKQPZVOC.js} +57 -60
  5. package/apps/supervisor-api/dist/index.js +1 -1
  6. package/apps/supervisor-api/dist/worker-index.js +1 -1
  7. package/apps/supervisor-web/dist/assets/abap-BdImnpbu.js +1 -0
  8. package/apps/supervisor-web/dist/assets/actionscript-3-CoDkCxhg.js +1 -0
  9. package/apps/supervisor-web/dist/assets/ada-bCR0ucgS.js +1 -0
  10. package/apps/supervisor-web/dist/assets/andromeeda-C4gqWexZ.js +1 -0
  11. package/apps/supervisor-web/dist/assets/angular-html-CU67Zn6k.js +1 -0
  12. package/apps/supervisor-web/dist/assets/angular-ts-BwZT4LLn.js +1 -0
  13. package/apps/supervisor-web/dist/assets/apache-Pmp26Uib.js +1 -0
  14. package/apps/supervisor-web/dist/assets/apex-D8_7TLub.js +1 -0
  15. package/apps/supervisor-web/dist/assets/apl-dKokRX4l.js +1 -0
  16. package/apps/supervisor-web/dist/assets/applescript-Co6uUVPk.js +1 -0
  17. package/apps/supervisor-web/dist/assets/ara-BRHolxvo.js +1 -0
  18. package/apps/supervisor-web/dist/assets/asciidoc-Ve4PFQV2.js +1 -0
  19. package/apps/supervisor-web/dist/assets/asm-D_Q5rh1f.js +1 -0
  20. package/apps/supervisor-web/dist/assets/astro-CbQHKStN.js +1 -0
  21. package/apps/supervisor-web/dist/assets/aurora-x-D-2ljcwZ.js +1 -0
  22. package/apps/supervisor-web/dist/assets/awk-DMzUqQB5.js +1 -0
  23. package/apps/supervisor-web/dist/assets/ayu-mirage-32ctXXKs.js +1 -0
  24. package/apps/supervisor-web/dist/assets/ballerina-BFfxhgS-.js +1 -0
  25. package/apps/supervisor-web/dist/assets/bat-BkioyH1T.js +1 -0
  26. package/apps/supervisor-web/dist/assets/beancount-k_qm7-4y.js +1 -0
  27. package/apps/supervisor-web/dist/assets/berry-uYugtg8r.js +1 -0
  28. package/apps/supervisor-web/dist/assets/bibtex-CHM0blh-.js +1 -0
  29. package/apps/supervisor-web/dist/assets/bicep-Bmn6On1c.js +1 -0
  30. package/apps/supervisor-web/dist/assets/bird2-DPOp833l.js +1 -0
  31. package/apps/supervisor-web/dist/assets/blade-D4QpJJKB.js +1 -0
  32. package/apps/supervisor-web/dist/assets/bsl-BO_Y6i37.js +1 -0
  33. package/apps/supervisor-web/dist/assets/c-BIGW1oBm.js +1 -0
  34. package/apps/supervisor-web/dist/assets/c3-eo99z4R2.js +1 -0
  35. package/apps/supervisor-web/dist/assets/cadence-Bv_4Rxtq.js +1 -0
  36. package/apps/supervisor-web/dist/assets/cairo-KRGpt6FW.js +1 -0
  37. package/apps/supervisor-web/dist/assets/catppuccin-frappe-DFWUc33u.js +1 -0
  38. package/apps/supervisor-web/dist/assets/catppuccin-latte-C9dUb6Cb.js +1 -0
  39. package/apps/supervisor-web/dist/assets/catppuccin-macchiato-DQyhUUbL.js +1 -0
  40. package/apps/supervisor-web/dist/assets/catppuccin-mocha-D87Tk5Gz.js +1 -0
  41. package/apps/supervisor-web/dist/assets/clarity-D53aC0YG.js +1 -0
  42. package/apps/supervisor-web/dist/assets/clojure-P80f7IUj.js +1 -0
  43. package/apps/supervisor-web/dist/assets/cmake-D1j8_8rp.js +1 -0
  44. package/apps/supervisor-web/dist/assets/cobol-nwyudZeR.js +1 -0
  45. package/apps/supervisor-web/dist/assets/codeowners-Bp6g37R7.js +1 -0
  46. package/apps/supervisor-web/dist/assets/codeql-DsOJ9woJ.js +1 -0
  47. package/apps/supervisor-web/dist/assets/coffee-Ch7k5sss.js +1 -0
  48. package/apps/supervisor-web/dist/assets/common-lisp-Cg-RD9OK.js +1 -0
  49. package/apps/supervisor-web/dist/assets/coq-DkFqJrB1.js +1 -0
  50. package/apps/supervisor-web/dist/assets/cpp-CofmeUqb.js +1 -0
  51. package/apps/supervisor-web/dist/assets/crystal-tKQVLTB8.js +1 -0
  52. package/apps/supervisor-web/dist/assets/csharp-COcwbKMJ.js +1 -0
  53. package/apps/supervisor-web/dist/assets/{css-CLj8gQPS.js → css-DPfMkruS.js} +1 -1
  54. package/apps/supervisor-web/dist/assets/cue-D82EKSYY.js +1 -0
  55. package/apps/supervisor-web/dist/assets/cypher-COkxafJQ.js +1 -0
  56. package/apps/supervisor-web/dist/assets/d-85-TOEBH.js +1 -0
  57. package/apps/supervisor-web/dist/assets/dark-plus-C3mMm8J8.js +1 -0
  58. package/apps/supervisor-web/dist/assets/dart-CF10PKvl.js +1 -0
  59. package/apps/supervisor-web/dist/assets/dax-CEL-wOlO.js +1 -0
  60. package/apps/supervisor-web/dist/assets/desktop-BmXAJ9_W.js +1 -0
  61. package/apps/supervisor-web/dist/assets/diff-D97Zzqfu.js +1 -0
  62. package/apps/supervisor-web/dist/assets/docker-BcOcwvcX.js +1 -0
  63. package/apps/supervisor-web/dist/assets/dotenv-Da5cRb03.js +1 -0
  64. package/apps/supervisor-web/dist/assets/dracula-BzJJZx-M.js +1 -0
  65. package/apps/supervisor-web/dist/assets/dracula-soft-BXkSAIEj.js +1 -0
  66. package/apps/supervisor-web/dist/assets/dream-maker-BtqSS_iP.js +1 -0
  67. package/apps/supervisor-web/dist/assets/edge-BkV0erSs.js +1 -0
  68. package/apps/supervisor-web/dist/assets/elixir-CDX3lj18.js +1 -0
  69. package/apps/supervisor-web/dist/assets/elm-DbKCFpqz.js +1 -0
  70. package/apps/supervisor-web/dist/assets/emacs-lisp-C9XAeP06.js +1 -0
  71. package/apps/supervisor-web/dist/assets/erb-B12qg9BL.js +1 -0
  72. package/apps/supervisor-web/dist/assets/erlang-DsQrWhSR.js +1 -0
  73. package/apps/supervisor-web/dist/assets/everforest-dark-BgDCqdQA.js +1 -0
  74. package/apps/supervisor-web/dist/assets/everforest-light-C8M2exoo.js +1 -0
  75. package/apps/supervisor-web/dist/assets/fennel-BYunw83y.js +1 -0
  76. package/apps/supervisor-web/dist/assets/fish-BvzEVeQv.js +1 -0
  77. package/apps/supervisor-web/dist/assets/fluent-C4IJs8-o.js +1 -0
  78. package/apps/supervisor-web/dist/assets/fortran-fixed-form-CkoXwp7k.js +1 -0
  79. package/apps/supervisor-web/dist/assets/fortran-free-form-BxgE0vQu.js +1 -0
  80. package/apps/supervisor-web/dist/assets/fsharp-CXgrBDvD.js +1 -0
  81. package/apps/supervisor-web/dist/assets/gdresource-BOOCDP_w.js +1 -0
  82. package/apps/supervisor-web/dist/assets/gdscript-C5YyOfLZ.js +1 -0
  83. package/apps/supervisor-web/dist/assets/gdshader-DkwncUOv.js +1 -0
  84. package/apps/supervisor-web/dist/assets/genie-D0YGMca9.js +1 -0
  85. package/apps/supervisor-web/dist/assets/gherkin-DyxjwDmM.js +1 -0
  86. package/apps/supervisor-web/dist/assets/git-commit-F4YmCXRG.js +1 -0
  87. package/apps/supervisor-web/dist/assets/git-rebase-r7XF79zn.js +1 -0
  88. package/apps/supervisor-web/dist/assets/github-dark-DHJKELXO.js +1 -0
  89. package/apps/supervisor-web/dist/assets/github-dark-default-Cuk6v7N8.js +1 -0
  90. package/apps/supervisor-web/dist/assets/github-dark-dimmed-DH5Ifo-i.js +1 -0
  91. package/apps/supervisor-web/dist/assets/github-dark-high-contrast-E3gJ1_iC.js +1 -0
  92. package/apps/supervisor-web/dist/assets/github-light-DAi9KRSo.js +1 -0
  93. package/apps/supervisor-web/dist/assets/github-light-default-D7oLnXFd.js +1 -0
  94. package/apps/supervisor-web/dist/assets/github-light-high-contrast-BfjtVDDH.js +1 -0
  95. package/apps/supervisor-web/dist/assets/gleam-BspZqrRM.js +1 -0
  96. package/apps/supervisor-web/dist/assets/glimmer-js-Rg0-pVw9.js +1 -0
  97. package/apps/supervisor-web/dist/assets/glimmer-ts-U6CK756n.js +1 -0
  98. package/apps/supervisor-web/dist/assets/glsl-DplSGwfg.js +1 -0
  99. package/apps/supervisor-web/dist/assets/gn-n2N0HUVH.js +1 -0
  100. package/apps/supervisor-web/dist/assets/gnuplot-DdkO51Og.js +1 -0
  101. package/apps/supervisor-web/dist/assets/go-CxLEBnE3.js +1 -0
  102. package/apps/supervisor-web/dist/assets/graphql-ChdNCCLP.js +1 -0
  103. package/apps/supervisor-web/dist/assets/groovy-gcz8RCvz.js +1 -0
  104. package/apps/supervisor-web/dist/assets/gruvbox-dark-hard-CFHQjOhq.js +1 -0
  105. package/apps/supervisor-web/dist/assets/gruvbox-dark-medium-GsRaNv29.js +1 -0
  106. package/apps/supervisor-web/dist/assets/gruvbox-dark-soft-CVdnzihN.js +1 -0
  107. package/apps/supervisor-web/dist/assets/gruvbox-light-hard-CH1njM8p.js +1 -0
  108. package/apps/supervisor-web/dist/assets/gruvbox-light-medium-DRw_LuNl.js +1 -0
  109. package/apps/supervisor-web/dist/assets/gruvbox-light-soft-hJgmCMqR.js +1 -0
  110. package/apps/supervisor-web/dist/assets/hack-CaT9iCJl.js +1 -0
  111. package/apps/supervisor-web/dist/assets/haml-B8DHNrY2.js +1 -0
  112. package/apps/supervisor-web/dist/assets/handlebars-BL8al0AC.js +1 -0
  113. package/apps/supervisor-web/dist/assets/haskell-Df6bDoY_.js +1 -0
  114. package/apps/supervisor-web/dist/assets/haxe-CzTSHFRz.js +1 -0
  115. package/apps/supervisor-web/dist/assets/hcl-BWvSN4gD.js +1 -0
  116. package/apps/supervisor-web/dist/assets/highlighted-body-OFNGDK62-BRQR8o0F.js +1 -0
  117. package/apps/supervisor-web/dist/assets/hjson-D5-asLiD.js +1 -0
  118. package/apps/supervisor-web/dist/assets/hlsl-D3lLCCz7.js +1 -0
  119. package/apps/supervisor-web/dist/assets/horizon-BUw7H-hv.js +1 -0
  120. package/apps/supervisor-web/dist/assets/horizon-bright-Cn-bp-IR.js +1 -0
  121. package/apps/supervisor-web/dist/assets/houston-DnULxvSX.js +1 -0
  122. package/apps/supervisor-web/dist/assets/{html-pp8916En.js → html-GMplVEZG.js} +1 -1
  123. package/apps/supervisor-web/dist/assets/html-derivative-BFtXZ54Q.js +1 -0
  124. package/apps/supervisor-web/dist/assets/http-jrhK8wxY.js +1 -0
  125. package/apps/supervisor-web/dist/assets/hurl-irOxFIW8.js +1 -0
  126. package/apps/supervisor-web/dist/assets/hxml-Bvhsp5Yf.js +1 -0
  127. package/apps/supervisor-web/dist/assets/hy-DFXneXwc.js +1 -0
  128. package/apps/supervisor-web/dist/assets/imba-DGztddWO.js +1 -0
  129. package/apps/supervisor-web/dist/assets/{index-CXq73NcP.js → index-APXuQABa.js} +5 -5
  130. package/apps/supervisor-web/dist/assets/index-Dh2-KXLR.css +1 -0
  131. package/apps/supervisor-web/dist/assets/ini-BEwlwnbL.js +1 -0
  132. package/apps/supervisor-web/dist/assets/java-CylS5w8V.js +1 -0
  133. package/apps/supervisor-web/dist/assets/jinja-4LBKfQ-Z.js +1 -0
  134. package/apps/supervisor-web/dist/assets/jison-wvAkD_A8.js +1 -0
  135. package/apps/supervisor-web/dist/assets/json5-C9tS-k6U.js +1 -0
  136. package/apps/supervisor-web/dist/assets/jsonc-Des-eS-w.js +1 -0
  137. package/apps/supervisor-web/dist/assets/jsonl-DcaNXYhu.js +1 -0
  138. package/apps/supervisor-web/dist/assets/jsonnet-DFQXde-d.js +1 -0
  139. package/apps/supervisor-web/dist/assets/jssm-C2t-YnRu.js +1 -0
  140. package/apps/supervisor-web/dist/assets/julia-CxzCAyBv.js +1 -0
  141. package/apps/supervisor-web/dist/assets/just-Cw27pwNe.js +1 -0
  142. package/apps/supervisor-web/dist/assets/kanagawa-dragon-CkXjmgJE.js +1 -0
  143. package/apps/supervisor-web/dist/assets/kanagawa-lotus-CfQXZHmo.js +1 -0
  144. package/apps/supervisor-web/dist/assets/kanagawa-wave-DWedfzmr.js +1 -0
  145. package/apps/supervisor-web/dist/assets/kdl-DV7GczEv.js +1 -0
  146. package/apps/supervisor-web/dist/assets/kotlin-BdnUsdx6.js +1 -0
  147. package/apps/supervisor-web/dist/assets/kusto-DZf3V79B.js +1 -0
  148. package/apps/supervisor-web/dist/assets/laserwave-DUszq2jm.js +1 -0
  149. package/apps/supervisor-web/dist/assets/latex-CWtU0Tv5.js +1 -0
  150. package/apps/supervisor-web/dist/assets/lean-BZvkOJ9d.js +1 -0
  151. package/apps/supervisor-web/dist/assets/less-B1dDrJ26.js +1 -0
  152. package/apps/supervisor-web/dist/assets/light-plus-B7mTdjB0.js +1 -0
  153. package/apps/supervisor-web/dist/assets/liquid-DYVedYrR.js +1 -0
  154. package/apps/supervisor-web/dist/assets/llvm-DjAJT7YJ.js +1 -0
  155. package/apps/supervisor-web/dist/assets/log-2UxHyX5q.js +1 -0
  156. package/apps/supervisor-web/dist/assets/logo-BtOb2qkB.js +1 -0
  157. package/apps/supervisor-web/dist/assets/lua-BaeVxFsk.js +1 -0
  158. package/apps/supervisor-web/dist/assets/luau-C-HG3fhB.js +1 -0
  159. package/apps/supervisor-web/dist/assets/make-CHLpvVh8.js +1 -0
  160. package/apps/supervisor-web/dist/assets/markdown-vendor-C22AWDSP.js +29 -0
  161. package/apps/supervisor-web/dist/assets/marko-CnJfTvn9.js +1 -0
  162. package/apps/supervisor-web/dist/assets/material-theme-D5KoaKCx.js +1 -0
  163. package/apps/supervisor-web/dist/assets/material-theme-darker-BfHTSMKl.js +1 -0
  164. package/apps/supervisor-web/dist/assets/material-theme-lighter-B0m2ddpp.js +1 -0
  165. package/apps/supervisor-web/dist/assets/material-theme-ocean-CyktbL80.js +1 -0
  166. package/apps/supervisor-web/dist/assets/material-theme-palenight-Csfq5Kiy.js +1 -0
  167. package/apps/supervisor-web/dist/assets/matlab-D7o27uSR.js +1 -0
  168. package/apps/supervisor-web/dist/assets/mdc-BMNejdWA.js +1 -0
  169. package/apps/supervisor-web/dist/assets/mdx-Cmh6b_Ma.js +1 -0
  170. package/apps/supervisor-web/dist/assets/mermaid-mWjccvbQ.js +1 -0
  171. package/apps/supervisor-web/dist/assets/min-dark-CafNBF8u.js +1 -0
  172. package/apps/supervisor-web/dist/assets/min-light-CTRr51gU.js +1 -0
  173. package/apps/supervisor-web/dist/assets/mipsasm-CKIfxQSi.js +1 -0
  174. package/apps/supervisor-web/dist/assets/mojo-rZm6bMo-.js +1 -0
  175. package/apps/supervisor-web/dist/assets/monokai-D4h5O-jR.js +1 -0
  176. package/apps/supervisor-web/dist/assets/moonbit-_H4v1dQx.js +1 -0
  177. package/apps/supervisor-web/dist/assets/move-IF9eRakj.js +1 -0
  178. package/apps/supervisor-web/dist/assets/narrat-DRg8JJMk.js +1 -0
  179. package/apps/supervisor-web/dist/assets/nextflow-Zz6hmt5N.js +1 -0
  180. package/apps/supervisor-web/dist/assets/nextflow-groovy-BeH2EWoN.js +1 -0
  181. package/apps/supervisor-web/dist/assets/nginx-BpAMiNFr.js +1 -0
  182. package/apps/supervisor-web/dist/assets/night-owl-C39BiMTA.js +1 -0
  183. package/apps/supervisor-web/dist/assets/night-owl-light-CMTm3GFP.js +1 -0
  184. package/apps/supervisor-web/dist/assets/nim-CVrawwO9.js +1 -0
  185. package/apps/supervisor-web/dist/assets/nix-CwoSXNpI.js +1 -0
  186. package/apps/supervisor-web/dist/assets/nord-Ddv68eIx.js +1 -0
  187. package/apps/supervisor-web/dist/assets/nushell-Cz2AlsmD.js +1 -0
  188. package/apps/supervisor-web/dist/assets/objective-c-DXmwc3jG.js +1 -0
  189. package/apps/supervisor-web/dist/assets/objective-cpp-CLxacb5B.js +1 -0
  190. package/apps/supervisor-web/dist/assets/ocaml-C0hk2d4L.js +1 -0
  191. package/apps/supervisor-web/dist/assets/odin-BBf5iR-q.js +1 -0
  192. package/apps/supervisor-web/dist/assets/one-dark-pro-DVMEJ2y_.js +1 -0
  193. package/apps/supervisor-web/dist/assets/one-light-C3Wv6jpd.js +1 -0
  194. package/apps/supervisor-web/dist/assets/openscad-C4EeE6gA.js +1 -0
  195. package/apps/supervisor-web/dist/assets/pascal-D93ZcfNL.js +1 -0
  196. package/apps/supervisor-web/dist/assets/perl-C0TMdlhV.js +1 -0
  197. package/apps/supervisor-web/dist/assets/php-Dhbhpdrm.js +1 -0
  198. package/apps/supervisor-web/dist/assets/pkl-u5AG7uiY.js +1 -0
  199. package/apps/supervisor-web/dist/assets/plastic-3e1v2bzS.js +1 -0
  200. package/apps/supervisor-web/dist/assets/plsql-ChMvpjG-.js +1 -0
  201. package/apps/supervisor-web/dist/assets/po-BTJTHyun.js +1 -0
  202. package/apps/supervisor-web/dist/assets/poimandres-CS3Unz2-.js +1 -0
  203. package/apps/supervisor-web/dist/assets/polar-C0HS_06l.js +1 -0
  204. package/apps/supervisor-web/dist/assets/postcss-CXtECtnM.js +1 -0
  205. package/apps/supervisor-web/dist/assets/powerquery-CEu0bR-o.js +1 -0
  206. package/apps/supervisor-web/dist/assets/powershell-Dpen1YoG.js +1 -0
  207. package/apps/supervisor-web/dist/assets/prisma-Dd19v3D-.js +1 -0
  208. package/apps/supervisor-web/dist/assets/prolog-CbFg5uaA.js +1 -0
  209. package/apps/supervisor-web/dist/assets/proto-C7zT0LnQ.js +1 -0
  210. package/apps/supervisor-web/dist/assets/pug-CGlum2m_.js +1 -0
  211. package/apps/supervisor-web/dist/assets/puppet-BMWR74SV.js +1 -0
  212. package/apps/supervisor-web/dist/assets/purescript-CklMAg4u.js +1 -0
  213. package/apps/supervisor-web/dist/assets/qml-3beO22l8.js +1 -0
  214. package/apps/supervisor-web/dist/assets/qmldir-C8lEn-DE.js +1 -0
  215. package/apps/supervisor-web/dist/assets/qss-IeuSbFQv.js +1 -0
  216. package/apps/supervisor-web/dist/assets/r-Dspwwk_N.js +1 -0
  217. package/apps/supervisor-web/dist/assets/racket-BqYA7rlc.js +1 -0
  218. package/apps/supervisor-web/dist/assets/raku-DXvB9xmW.js +1 -0
  219. package/apps/supervisor-web/dist/assets/razor-Uh8Bk_45.js +1 -0
  220. package/apps/supervisor-web/dist/assets/react-vendor-5VdTO_Bg.js +60 -0
  221. package/apps/supervisor-web/dist/assets/red-bN70gL4F.js +1 -0
  222. package/apps/supervisor-web/dist/assets/reg-C-SQnVFl.js +1 -0
  223. package/apps/supervisor-web/dist/assets/regexp-CDVJQ6XC.js +1 -0
  224. package/apps/supervisor-web/dist/assets/rel-C3B-1QV4.js +1 -0
  225. package/apps/supervisor-web/dist/assets/riscv-BM1_JUlF.js +1 -0
  226. package/apps/supervisor-web/dist/assets/ron-D8l8udqQ.js +1 -0
  227. package/apps/supervisor-web/dist/assets/rose-pine-dawn-DHQR4-dF.js +1 -0
  228. package/apps/supervisor-web/dist/assets/rose-pine-moon-D4_iv3hh.js +1 -0
  229. package/apps/supervisor-web/dist/assets/rose-pine-qdsjHGoJ.js +1 -0
  230. package/apps/supervisor-web/dist/assets/rosmsg-BJDFO7_C.js +1 -0
  231. package/apps/supervisor-web/dist/assets/rst-BrH8l1NY.js +1 -0
  232. package/apps/supervisor-web/dist/assets/ruby-Dw2BHqvy.js +1 -0
  233. package/apps/supervisor-web/dist/assets/rust-B1yitclQ.js +1 -0
  234. package/apps/supervisor-web/dist/assets/sas-cz2c8ADy.js +1 -0
  235. package/apps/supervisor-web/dist/assets/sass-Cj5Yp3dK.js +1 -0
  236. package/apps/supervisor-web/dist/assets/scala-C151Ov-r.js +1 -0
  237. package/apps/supervisor-web/dist/assets/scheme-C98Dy4si.js +1 -0
  238. package/apps/supervisor-web/dist/assets/scss-OYdSNvt2.js +1 -0
  239. package/apps/supervisor-web/dist/assets/sdbl-DVxCFoDh.js +1 -0
  240. package/apps/supervisor-web/dist/assets/shaderlab-Dg9Lc6iA.js +1 -0
  241. package/apps/supervisor-web/dist/assets/{shellscript-CEILq0vU.js → shellscript-Yzrsuije.js} +1 -1
  242. package/apps/supervisor-web/dist/assets/shellsession-BADoaaVG.js +1 -0
  243. package/apps/supervisor-web/dist/assets/slack-dark-BthQWCQV.js +1 -0
  244. package/apps/supervisor-web/dist/assets/slack-ochin-DqwNpetd.js +1 -0
  245. package/apps/supervisor-web/dist/assets/smalltalk-BERRCDM3.js +1 -0
  246. package/apps/supervisor-web/dist/assets/snazzy-light-Bw305WKR.js +1 -0
  247. package/apps/supervisor-web/dist/assets/solarized-dark-DXbdFlpD.js +1 -0
  248. package/apps/supervisor-web/dist/assets/solarized-light-L9t79GZl.js +1 -0
  249. package/apps/supervisor-web/dist/assets/solidity-rGO070M0.js +1 -0
  250. package/apps/supervisor-web/dist/assets/soy-Brmx7dQM.js +1 -0
  251. package/apps/supervisor-web/dist/assets/sparql-rVzFXLq3.js +1 -0
  252. package/apps/supervisor-web/dist/assets/splunk-BtCnVYZw.js +1 -0
  253. package/apps/supervisor-web/dist/assets/{sql-CRqJ_cUM.js → sql-BLtJtn59.js} +1 -1
  254. package/apps/supervisor-web/dist/assets/ssh-config-_ykCGR6B.js +1 -0
  255. package/apps/supervisor-web/dist/assets/stata-BH5u7GGu.js +1 -0
  256. package/apps/supervisor-web/dist/assets/stylus-BEDo0Tqx.js +1 -0
  257. package/apps/supervisor-web/dist/assets/surrealql-Bq5Q-fJD.js +1 -0
  258. package/apps/supervisor-web/dist/assets/svelte-C_ipcX3V.js +1 -0
  259. package/apps/supervisor-web/dist/assets/swift-D82vCrfD.js +1 -0
  260. package/apps/supervisor-web/dist/assets/synthwave-84-CbfX1IO0.js +1 -0
  261. package/apps/supervisor-web/dist/assets/system-verilog-CnnmHF94.js +1 -0
  262. package/apps/supervisor-web/dist/assets/systemd-4A_iFExJ.js +1 -0
  263. package/apps/supervisor-web/dist/assets/talonscript-CkByrt1z.js +1 -0
  264. package/apps/supervisor-web/dist/assets/tasl-QIJgUcNo.js +1 -0
  265. package/apps/supervisor-web/dist/assets/tcl-dwOrl1Do.js +1 -0
  266. package/apps/supervisor-web/dist/assets/templ-P3uqSqPl.js +1 -0
  267. package/apps/supervisor-web/dist/assets/{terminal-vendor-CLGgN91S.js → terminal-vendor-BHwWZ4Dd.js} +1 -1
  268. package/apps/supervisor-web/dist/assets/terraform-BETggiCN.js +1 -0
  269. package/apps/supervisor-web/dist/assets/tex-idrVyKtj.js +1 -0
  270. package/apps/supervisor-web/dist/assets/thread-ui-BEieA99i.css +1 -0
  271. package/apps/supervisor-web/dist/assets/thread-ui-LDojdlO_.js +1997 -0
  272. package/apps/supervisor-web/dist/assets/tokyo-night-hegEt444.js +1 -0
  273. package/apps/supervisor-web/dist/assets/ts-tags-zn1MmPIZ.js +1 -0
  274. package/apps/supervisor-web/dist/assets/tsv-B_m7g4N7.js +1 -0
  275. package/apps/supervisor-web/dist/assets/turtle-BsS91CYL.js +1 -0
  276. package/apps/supervisor-web/dist/assets/twig-DNn4PbVi.js +1 -0
  277. package/apps/supervisor-web/dist/assets/typespec-BGHnOYBU.js +1 -0
  278. package/apps/supervisor-web/dist/assets/typst-DHCkPAjA.js +1 -0
  279. package/apps/supervisor-web/dist/assets/ui-vendor-xVD8_rhm.js +6 -0
  280. package/apps/supervisor-web/dist/assets/v-BcVCzyr7.js +1 -0
  281. package/apps/supervisor-web/dist/assets/vala-CsfeWuGM.js +1 -0
  282. package/apps/supervisor-web/dist/assets/vb-D17OF-Vu.js +1 -0
  283. package/apps/supervisor-web/dist/assets/verilog-BQ8w6xss.js +1 -0
  284. package/apps/supervisor-web/dist/assets/vesper-DU1UobuO.js +1 -0
  285. package/apps/supervisor-web/dist/assets/vhdl-CeAyd5Ju.js +1 -0
  286. package/apps/supervisor-web/dist/assets/viml-CJc9bBzg.js +1 -0
  287. package/apps/supervisor-web/dist/assets/vitesse-black-Bkuqu6BP.js +1 -0
  288. package/apps/supervisor-web/dist/assets/vitesse-dark-D0r3Knsf.js +1 -0
  289. package/apps/supervisor-web/dist/assets/vitesse-light-CVO1_9PV.js +1 -0
  290. package/apps/supervisor-web/dist/assets/vue-DN_0RTcg.js +1 -0
  291. package/apps/supervisor-web/dist/assets/vue-html-AaS7Mt5G.js +1 -0
  292. package/apps/supervisor-web/dist/assets/vue-vine-CQOfvN7w.js +1 -0
  293. package/apps/supervisor-web/dist/assets/vyper-CDx5xZoG.js +1 -0
  294. package/apps/supervisor-web/dist/assets/wasm-CG6Dc4jp.js +1 -0
  295. package/apps/supervisor-web/dist/assets/wasm-MzD3tlZU.js +1 -0
  296. package/apps/supervisor-web/dist/assets/wenyan-BV7otONQ.js +1 -0
  297. package/apps/supervisor-web/dist/assets/wgsl-Dx-B1_4e.js +1 -0
  298. package/apps/supervisor-web/dist/assets/wikitext-BhOHFoWU.js +1 -0
  299. package/apps/supervisor-web/dist/assets/wit-5i3qLPDT.js +1 -0
  300. package/apps/supervisor-web/dist/assets/wolfram-lXgVvXCa.js +1 -0
  301. package/apps/supervisor-web/dist/assets/xml-sdJ4AIDG.js +1 -0
  302. package/apps/supervisor-web/dist/assets/xsl-CtQFsRM5.js +1 -0
  303. package/apps/supervisor-web/dist/assets/zenscript-DVFEvuxE.js +1 -0
  304. package/apps/supervisor-web/dist/assets/zig-VOosw3JB.js +1 -0
  305. package/apps/supervisor-web/dist/index.html +8 -9
  306. package/bin/remote-codex.mjs +255 -40
  307. package/package.json +1 -1
  308. package/apps/supervisor-web/dist/assets/core-DIQen2lE.js +0 -12
  309. package/apps/supervisor-web/dist/assets/engine-javascript-DBd1bXLz.js +0 -141
  310. package/apps/supervisor-web/dist/assets/graph-vendor-C5ap-Sga.css +0 -1
  311. package/apps/supervisor-web/dist/assets/graph-vendor-CGzY-MFv.js +0 -23
  312. package/apps/supervisor-web/dist/assets/index-Di1JBevU.css +0 -1
  313. package/apps/supervisor-web/dist/assets/markdown-vendor-hBDTCSB-.js +0 -291
  314. package/apps/supervisor-web/dist/assets/react-vendor-o1Xrx7m4.js +0 -60
  315. package/apps/supervisor-web/dist/assets/thread-ui-ICfwCbte.js +0 -3604
  316. package/apps/supervisor-web/dist/assets/ui-vendor-D1uxdi-d.js +0 -430
@@ -0,0 +1 @@
1
+ import e from"./java-CylS5w8V.js";const n=Object.freeze(JSON.parse(`{"displayName":"XML","name":"xml","patterns":[{"begin":"(<\\\\?)\\\\s*([-0-9A-Z_a-z]+)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.xml"}},"end":"(\\\\?>)","name":"meta.tag.preprocessor.xml","patterns":[{"match":" ([-A-Za-z]+)","name":"entity.other.attribute-name.xml"},{"include":"#doublequotedString"},{"include":"#singlequotedString"}]},{"begin":"(<!)(DOCTYPE)\\\\s+([:A-Z_a-z][-.0-:A-Z_a-z]*)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"keyword.other.doctype.xml"},"3":{"name":"variable.language.documentroot.xml"}},"end":"\\\\s*(>)","name":"meta.tag.sgml.doctype.xml","patterns":[{"include":"#internalSubset"}]},{"include":"#comments"},{"begin":"(<)((?:([-0-9A-Z_a-z]+)(:))?([-0-:A-Z_a-z]+))(?=(\\\\s[^>]*)?></\\\\2>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.xml"},"3":{"name":"entity.name.tag.namespace.xml"},"4":{"name":"punctuation.separator.namespace.xml"},"5":{"name":"entity.name.tag.localname.xml"}},"end":"(>)(</)((?:([-0-9A-Z_a-z]+)(:))?([-0-:A-Z_a-z]+))(>)","endCaptures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"punctuation.definition.tag.xml"},"3":{"name":"entity.name.tag.xml"},"4":{"name":"entity.name.tag.namespace.xml"},"5":{"name":"punctuation.separator.namespace.xml"},"6":{"name":"entity.name.tag.localname.xml"},"7":{"name":"punctuation.definition.tag.xml"}},"name":"meta.tag.no-content.xml","patterns":[{"include":"#tagStuff"}]},{"begin":"(</?)(?:([-.\\\\w]+)((:)))?([-.:\\\\w]+)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.namespace.xml"},"3":{"name":"entity.name.tag.xml"},"4":{"name":"punctuation.separator.namespace.xml"},"5":{"name":"entity.name.tag.localname.xml"}},"end":"(/?>)","name":"meta.tag.xml","patterns":[{"include":"#tagStuff"}]},{"include":"#entity"},{"include":"#bare-ampersand"},{"begin":"<%@","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.xml"}},"end":"%>","endCaptures":{"0":{"name":"punctuation.section.embedded.end.xml"}},"name":"source.java-props.embedded.xml","patterns":[{"match":"page|include|taglib","name":"keyword.other.page-props.xml"}]},{"begin":"<%[!=]?(?!--)","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.xml"}},"end":"(?!--)%>","endCaptures":{"0":{"name":"punctuation.section.embedded.end.xml"}},"name":"source.java.embedded.xml","patterns":[{"include":"source.java"}]},{"begin":"<!\\\\[CDATA\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"]]>","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.unquoted.cdata.xml"}],"repository":{"EntityDecl":{"begin":"(<!)(ENTITY)\\\\s+(%\\\\s+)?([:A-Z_a-z][-.0-:A-Z_a-z]*)(\\\\s+(?:SYSTEM|PUBLIC)\\\\s+)?","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"keyword.other.entity.xml"},"3":{"name":"punctuation.definition.entity.xml"},"4":{"name":"variable.language.entity.xml"},"5":{"name":"keyword.other.entitytype.xml"}},"end":"(>)","patterns":[{"include":"#doublequotedString"},{"include":"#singlequotedString"}]},"bare-ampersand":{"match":"&","name":"invalid.illegal.bad-ampersand.xml"},"comments":{"patterns":[{"begin":"<%--","captures":{"0":{"name":"punctuation.definition.comment.xml"},"end":"--%>","name":"comment.block.xml"}},{"begin":"<!--","captures":{"0":{"name":"punctuation.definition.comment.xml"}},"end":"-->","name":"comment.block.xml","patterns":[{"begin":"--(?!>)","captures":{"0":{"name":"invalid.illegal.bad-comments-or-CDATA.xml"}}}]}]},"doublequotedString":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.double.xml","patterns":[{"include":"#entity"},{"include":"#bare-ampersand"}]},"entity":{"captures":{"1":{"name":"punctuation.definition.constant.xml"},"3":{"name":"punctuation.definition.constant.xml"}},"match":"(&)([:A-Z_a-z][-.0-:A-Z_a-z]*|#[0-9]+|#x\\\\h+)(;)","name":"constant.character.entity.xml"},"internalSubset":{"begin":"(\\\\[)","captures":{"1":{"name":"punctuation.definition.constant.xml"}},"end":"(])","name":"meta.internalsubset.xml","patterns":[{"include":"#EntityDecl"},{"include":"#parameterEntity"},{"include":"#comments"}]},"parameterEntity":{"captures":{"1":{"name":"punctuation.definition.constant.xml"},"3":{"name":"punctuation.definition.constant.xml"}},"match":"(%)([:A-Z_a-z][-.0-:A-Z_a-z]*)(;)","name":"constant.character.parameter-entity.xml"},"singlequotedString":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.single.xml","patterns":[{"include":"#entity"},{"include":"#bare-ampersand"}]},"tagStuff":{"patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.namespace.xml"},"2":{"name":"entity.other.attribute-name.xml"},"3":{"name":"punctuation.separator.namespace.xml"},"4":{"name":"entity.other.attribute-name.localname.xml"}},"match":"(?:^|\\\\s+)(?:([-.\\\\w]+)((:)))?([-.:\\\\w]+)\\\\s*="},{"include":"#doublequotedString"},{"include":"#singlequotedString"}]}},"scopeName":"text.xml","embeddedLangs":["java"]}`)),a=[...e,n];export{a as default};
@@ -0,0 +1 @@
1
+ import e from"./xml-sdJ4AIDG.js";import"./java-CylS5w8V.js";const n=Object.freeze(JSON.parse(`{"displayName":"XSL","name":"xsl","patterns":[{"begin":"(<)(xsl)((:))(template)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.namespace.xml"},"3":{"name":"entity.name.tag.xml"},"4":{"name":"punctuation.separator.namespace.xml"},"5":{"name":"entity.name.tag.localname.xml"}},"end":"(>)","name":"meta.tag.xml.template","patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.namespace.xml"},"2":{"name":"entity.other.attribute-name.xml"},"3":{"name":"punctuation.separator.namespace.xml"},"4":{"name":"entity.other.attribute-name.localname.xml"}},"match":" (?:([-0-9A-Z_a-z]+)((:)))?([-A-Za-z]+)"},{"include":"#doublequotedString"},{"include":"#singlequotedString"}]},{"include":"text.xml"}],"repository":{"doublequotedString":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.double.xml"},"singlequotedString":{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.single.xml"}},"scopeName":"text.xml.xsl","embeddedLangs":["xml"]}`)),m=[...e,n];export{m as default};
@@ -0,0 +1 @@
1
+ const e=Object.freeze(JSON.parse(`{"displayName":"ZenScript","fileTypes":["zs"],"name":"zenscript","patterns":[{"match":"\\\\b((0([Xx])\\\\h*)|(([0-9]+\\\\.?[0-9]*)|(\\\\.[0-9]+))(([Ee])([-+])?[0-9]+)?)([DFLUdflu]|UL|ul)?\\\\b","name":"constant.numeric.zenscript"},{"match":"\\\\b-?(0[BOXbox])(0|[1-9A-Fa-f][_\\\\h]*)[A-Z_a-z]*\\\\b","name":"constant.numeric.zenscript"},{"include":"#code"},{"match":"\\\\b((?:[a-z]\\\\w*\\\\.)*[A-Z]+\\\\w*)(?=\\\\[)","name":"storage.type.object.array.zenscript"}],"repository":{"brackets":{"patterns":[{"captures":{"1":{"name":"keyword.control.zenscript"},"2":{"name":"keyword.other.zenscript"},"3":{"name":"keyword.control.zenscript"},"4":{"name":"variable.other.zenscript"},"5":{"name":"keyword.control.zenscript"},"6":{"name":"constant.numeric.zenscript"},"7":{"name":"keyword.control.zenscript"}},"match":"(<)\\\\b(.*?)(:(.*?(:(\\\\*|\\\\d+)?)?)?)(>)","name":"keyword.other.zenscript"}]},"class":{"captures":{"1":{"name":"storage.type.zenscript"},"2":{"name":"entity.name.type.class.zenscript"}},"match":"(zenClass)\\\\s+(\\\\w+)","name":"meta.class.zenscript"},"code":{"patterns":[{"include":"#class"},{"include":"#functions"},{"include":"#dots"},{"include":"#quotes"},{"include":"#brackets"},{"include":"#comments"},{"include":"#var"},{"include":"#keywords"},{"include":"#constants"},{"include":"#operators"}]},"comments":{"patterns":[{"match":"//[^\\\\n]*","name":"comment.line.double=slash"},{"begin":"/\\\\*","beginCaptures":{"0":{"name":"comment.block"}},"end":"\\\\*/","endCaptures":{"0":{"name":"comment.block"}},"name":"comment.block"}]},"dots":{"captures":{"1":{"name":"storage.type.zenscript"},"2":{"name":"keyword.control.zenscript"},"5":{"name":"keyword.control.zenscript"}},"match":"\\\\b(\\\\w+)(\\\\.)(\\\\w+)((\\\\.)(\\\\w+))*","name":"plain.text.zenscript"},"functions":{"captures":{"0":{"name":"storage.type.function.zenscript"},"1":{"name":"entity.name.function.zenscript"}},"match":"function\\\\s+([$A-Z_a-z][$\\\\w]*)\\\\s*(?=\\\\()","name":"meta.function.zenscript"},"keywords":{"patterns":[{"match":"\\\\b(instanceof|get|implements|set|import|function|override|const|if|else|do|while|for|throw|panic|lock|try|catch|finally|return|break|continue|switch|case|default|in|is|as|match|throws|super|new)\\\\b","name":"keyword.control.zenscript"},{"match":"\\\\b(zenClass|zenConstructor|alias|class|interface|enum|struct|expand|variant|set|void|bool|byte|sbyte|short|ushort|int|uint|long|ulong|usize|float|double|char|string)\\\\b","name":"storage.type.zenscript"},{"match":"\\\\b(variant|abstract|final|private|public|export|internal|static|protected|implicit|virtual|extern|immutable)\\\\b","name":"storage.modifier.zenscript"},{"match":"\\\\b(Native|Precondition)\\\\b","name":"entity.other.attribute-name"},{"match":"\\\\b(null|true|false)\\\\b","name":"constant.language"}]},"operators":{"patterns":[{"match":"\\\\b(\\\\.\\\\.??|\\\\.\\\\.\\\\.|[+,]|\\\\+=|\\\\+\\\\+|-=??|--|~=??|\\\\*=??|/=??|%=??|\\\\|=??|\\\\|\\\\||&=??|&&|\\\\^=??|\\\\?\\\\.??|\\\\?\\\\?|<=??|<<=??|>=??|>>=??|>>>=??|=>?|===??|!=??|!==|[$\`])\\\\b","name":"keyword.control"},{"match":"\\\\b([:;])\\\\b","name":"keyword.control"}]},"quotes":{"patterns":[{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.zenscript"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.zenscript"}},"name":"string.quoted.double.zenscript","patterns":[{"match":"\\\\\\\\.","name":"constant.character.escape.zenscript"}]},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.zenscript"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.zenscript"}},"name":"string.quoted.single.zenscript","patterns":[{"match":"\\\\\\\\.","name":"constant.character.escape.zenscript"}]}]},"var":{"match":"\\\\b(va[lr])\\\\b","name":"storage.type"}},"scopeName":"source.zenscript"}`)),t=[e];export{t as default};
@@ -0,0 +1 @@
1
+ const e=Object.freeze(JSON.parse(`{"displayName":"Zig","fileTypes":["zig","zon"],"name":"zig","patterns":[{"include":"#comments"},{"include":"#strings"},{"include":"#keywords"},{"include":"#operators"},{"include":"#punctuation"},{"include":"#numbers"},{"include":"#support"},{"include":"#variables"}],"repository":{"commentContents":{"patterns":[{"match":"\\\\b(TODO|FIXME|XXX|NOTE)\\\\b:?","name":"keyword.todo.zig"}]},"comments":{"patterns":[{"begin":"//[!/](?=[^/])","end":"$","name":"comment.line.documentation.zig","patterns":[{"include":"#commentContents"}]},{"begin":"//","end":"$","name":"comment.line.double-slash.zig","patterns":[{"include":"#commentContents"}]}]},"keywords":{"patterns":[{"match":"\\\\binline\\\\b(?!\\\\s*\\\\bfn\\\\b)","name":"keyword.control.repeat.zig"},{"match":"\\\\b(while|for)\\\\b","name":"keyword.control.repeat.zig"},{"match":"\\\\b(extern|packed|export|pub|noalias|inline|comptime|volatile|align|linksection|threadlocal|allowzero|noinline|callconv)\\\\b","name":"keyword.storage.zig"},{"match":"\\\\b(struct|enum|union|opaque)\\\\b","name":"keyword.structure.zig"},{"match":"\\\\b(asm|unreachable)\\\\b","name":"keyword.statement.zig"},{"match":"\\\\b(break|return|continue|defer|errdefer)\\\\b","name":"keyword.control.flow.zig"},{"match":"\\\\b(resume|suspend|nosuspend)\\\\b","name":"keyword.control.async.zig"},{"match":"\\\\b(try|catch)\\\\b","name":"keyword.control.trycatch.zig"},{"match":"\\\\b(if|else|switch|orelse)\\\\b","name":"keyword.control.conditional.zig"},{"match":"\\\\b(null|undefined)\\\\b","name":"keyword.constant.default.zig"},{"match":"\\\\b(true|false)\\\\b","name":"keyword.constant.bool.zig"},{"match":"\\\\b(test|and|or)\\\\b","name":"keyword.default.zig"},{"match":"\\\\b(bool|void|noreturn|type|error|anyerror|anyframe|anytype|anyopaque)\\\\b","name":"keyword.type.zig"},{"match":"\\\\b(f16|f32|f64|f80|f128|u\\\\d+|i\\\\d+|isize|usize|comptime_int|comptime_float)\\\\b","name":"keyword.type.integer.zig"},{"match":"\\\\b(c_(?:char|short|ushort|int|uint|long|ulong|longlong|ulonglong|longdouble))\\\\b","name":"keyword.type.c.zig"}]},"numbers":{"patterns":[{"match":"\\\\b0x\\\\h[_\\\\h]*(\\\\.\\\\h[_\\\\h]*)?([Pp][-+]?[_\\\\h]+)?\\\\b","name":"constant.numeric.hexfloat.zig"},{"match":"\\\\b[0-9][0-9_]*(\\\\.[0-9][0-9_]*)?([Ee][-+]?[0-9_]+)?\\\\b","name":"constant.numeric.float.zig"},{"match":"\\\\b[0-9][0-9_]*\\\\b","name":"constant.numeric.decimal.zig"},{"match":"\\\\b0x[_\\\\h]+\\\\b","name":"constant.numeric.hexadecimal.zig"},{"match":"\\\\b0o[0-7_]+\\\\b","name":"constant.numeric.octal.zig"},{"match":"\\\\b0b[01_]+\\\\b","name":"constant.numeric.binary.zig"},{"match":"\\\\b[0-9](([EPep][-+])|[0-9A-Z_a-z])*(\\\\.(([EPep][-+])|[0-9A-Z_a-z])*)?([EPep][-+])?[0-9A-Z_a-z]*\\\\b","name":"constant.numeric.invalid.zig"}]},"operators":{"patterns":[{"match":"(?<=\\\\[)\\\\*c(?=])","name":"keyword.operator.c-pointer.zig"},{"match":"\\\\b((and|or))\\\\b|(==|!=|<=|>=|[<>])","name":"keyword.operator.comparison.zig"},{"match":"(-%?|\\\\+%?|\\\\*%?|[%/])=?","name":"keyword.operator.arithmetic.zig"},{"match":"(<<%?|>>|[!\\\\&^|~])=?","name":"keyword.operator.bitwise.zig"},{"match":"(==|\\\\+\\\\+|\\\\*\\\\*|->)","name":"keyword.operator.special.zig"},{"match":"=","name":"keyword.operator.assignment.zig"},{"match":"\\\\?","name":"keyword.operator.question.zig"}]},"punctuation":{"patterns":[{"match":"\\\\.","name":"punctuation.accessor.zig"},{"match":",","name":"punctuation.comma.zig"},{"match":":","name":"punctuation.separator.key-value.zig"},{"match":";","name":"punctuation.terminator.statement.zig"}]},"stringcontent":{"patterns":[{"match":"\\\\\\\\([\\"'\\\\\\\\nrt]|(x\\\\h{2})|(u\\\\{\\\\h+}))","name":"constant.character.escape.zig"},{"match":"\\\\\\\\.","name":"invalid.illegal.unrecognized-string-escape.zig"}]},"strings":{"patterns":[{"begin":"\\"","end":"\\"","name":"string.quoted.double.zig","patterns":[{"include":"#stringcontent"}]},{"begin":"\\\\\\\\\\\\\\\\","end":"$","name":"string.multiline.zig"},{"match":"'([^'\\\\\\\\]|\\\\\\\\(x\\\\h{2}|[012][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.))'","name":"string.quoted.single.zig"}]},"support":{"patterns":[{"match":"@[A-Z_a-z][0-9A-Z_a-z]*","name":"support.function.builtin.zig"}]},"variables":{"patterns":[{"name":"meta.function.declaration.zig","patterns":[{"captures":{"1":{"name":"storage.type.function.zig"},"2":{"name":"entity.name.type.zig"}},"match":"\\\\b(fn)\\\\s+([A-Z][0-9A-Za-z]*)\\\\b"},{"captures":{"1":{"name":"storage.type.function.zig"},"2":{"name":"entity.name.function.zig"}},"match":"\\\\b(fn)\\\\s+([A-Z_a-z][0-9A-Z_a-z]*)\\\\b"},{"begin":"\\\\b(fn)\\\\s+@\\"","beginCaptures":{"1":{"name":"storage.type.function.zig"}},"end":"\\"","name":"entity.name.function.string.zig","patterns":[{"include":"#stringcontent"}]},{"match":"\\\\b(const|var|fn)\\\\b","name":"keyword.default.zig"}]},{"name":"meta.function.call.zig","patterns":[{"match":"([A-Z][0-9A-Za-z]*)(?=\\\\s*\\\\()","name":"entity.name.type.zig"},{"match":"([A-Z_a-z][0-9A-Z_a-z]*)(?=\\\\s*\\\\()","name":"entity.name.function.zig"}]},{"name":"meta.variable.zig","patterns":[{"match":"\\\\b[A-Z_a-z][0-9A-Z_a-z]*\\\\b","name":"variable.zig"},{"begin":"@\\"","end":"\\"","name":"variable.string.zig","patterns":[{"include":"#stringcontent"}]}]}]}},"scopeName":"source.zig"}`)),n=[e];export{n as default};
@@ -4,16 +4,15 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>Remote Codex Supervisor</title>
7
- <script type="module" crossorigin src="/assets/index-CXq73NcP.js"></script>
8
- <link rel="modulepreload" crossorigin href="/assets/react-vendor-o1Xrx7m4.js">
9
- <link rel="modulepreload" crossorigin href="/assets/ui-vendor-D1uxdi-d.js">
10
- <link rel="modulepreload" crossorigin href="/assets/graph-vendor-CGzY-MFv.js">
11
- <link rel="modulepreload" crossorigin href="/assets/terminal-vendor-CLGgN91S.js">
12
- <link rel="modulepreload" crossorigin href="/assets/markdown-vendor-hBDTCSB-.js">
13
- <link rel="modulepreload" crossorigin href="/assets/thread-ui-ICfwCbte.js">
14
- <link rel="stylesheet" crossorigin href="/assets/graph-vendor-C5ap-Sga.css">
7
+ <script type="module" crossorigin src="/assets/index-APXuQABa.js"></script>
8
+ <link rel="modulepreload" crossorigin href="/assets/react-vendor-5VdTO_Bg.js">
9
+ <link rel="modulepreload" crossorigin href="/assets/ui-vendor-xVD8_rhm.js">
10
+ <link rel="modulepreload" crossorigin href="/assets/markdown-vendor-C22AWDSP.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/terminal-vendor-BHwWZ4Dd.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/thread-ui-LDojdlO_.js">
15
13
  <link rel="stylesheet" crossorigin href="/assets/terminal-vendor-Beg8tuEN.css">
16
- <link rel="stylesheet" crossorigin href="/assets/index-Di1JBevU.css">
14
+ <link rel="stylesheet" crossorigin href="/assets/thread-ui-BEieA99i.css">
15
+ <link rel="stylesheet" crossorigin href="/assets/index-Dh2-KXLR.css">
17
16
  </head>
18
17
  <body class="bg-stone-950">
19
18
  <div id="root"></div>
@@ -2,6 +2,9 @@
2
2
 
3
3
  import fs from 'node:fs';
4
4
  import path from 'node:path';
5
+ import os from 'node:os';
6
+ import crypto from 'node:crypto';
7
+ import readline from 'node:readline/promises';
5
8
  import { spawn } from 'node:child_process';
6
9
  import { fileURLToPath } from 'node:url';
7
10
 
@@ -13,6 +16,9 @@ const relayDistEntry = path.join(packageRoot, 'apps', 'relay-server', 'dist', 'i
13
16
  const relaySourceEntry = path.join(packageRoot, 'apps', 'relay-server', 'src', 'index.ts');
14
17
  const supervisorDistEntry = path.join(packageRoot, 'apps', 'supervisor-api', 'dist', 'index.js');
15
18
  const supervisorSourceEntry = path.join(packageRoot, 'apps', 'supervisor-api', 'src', 'index.ts');
19
+ const relaySupervisorConfigPath = process.env.REMOTE_CODEX_RELAY_SUPERVISOR_CONFIG
20
+ ? path.resolve(process.env.REMOTE_CODEX_RELAY_SUPERVISOR_CONFIG)
21
+ : path.join(os.homedir(), '.remote-codex', 'relay-supervisor.json');
16
22
  const sourceCheckout =
17
23
  fs.existsSync(path.join(packageRoot, 'pnpm-workspace.yaml')) &&
18
24
  fs.existsSync(path.join(packageRoot, 'scripts', 'service-restart.mjs'));
@@ -50,7 +56,7 @@ if (command === 'version') {
50
56
  if (command === 'relay') {
51
57
  runRelayServer();
52
58
  } else if (command === 'relay-supervisor') {
53
- runRelaySupervisor();
59
+ await runRelaySupervisor();
54
60
  } else if (!['start', 'stop', 'status'].includes(command)) {
55
61
  printHelp();
56
62
  process.exit(command ? 1 : 0);
@@ -88,8 +94,8 @@ function runRelayServer() {
88
94
  ['REMOTE_CODEX_RELAY_SESSION_SECRET', 'Relay session signing secret, at least 16 characters. Defaults to the admin password if omitted.'],
89
95
  ['REMOTE_CODEX_RELAY_DATA_DIR', 'Persistent relay user/device/share store. Defaults to .local/relay-server.'],
90
96
  ['REMOTE_CODEX_RELAY_REGISTRATION_ENABLED', 'true/false. Use false when only admins should create users.'],
91
- ['HOST', 'Relay listen host. Use 0.0.0.0 on a public server. Default 0.0.0.0.'],
92
- ['PORT', 'Relay listen port. Default 8788.'],
97
+ ['REMOTE_CODEX_RELAY_HOST', 'Relay listen host. Use 0.0.0.0 on a public server. Default 0.0.0.0. Falls back to HOST.'],
98
+ ['REMOTE_CODEX_RELAY_PORT', 'Relay listen port. Default 8788. Falls back to PORT.'],
93
99
  ],
94
100
  example: [
95
101
  'REMOTE_CODEX_ADMIN_USERNAME=admin \\',
@@ -97,9 +103,15 @@ function runRelayServer() {
97
103
  'REMOTE_CODEX_RELAY_SESSION_SECRET=at-least-16-characters \\',
98
104
  'REMOTE_CODEX_RELAY_DATA_DIR=/var/lib/remote-codex-relay \\',
99
105
  'REMOTE_CODEX_RELAY_REGISTRATION_ENABLED=false \\',
100
- 'HOST=0.0.0.0 PORT=8788 \\',
106
+ 'REMOTE_CODEX_RELAY_HOST=0.0.0.0 REMOTE_CODEX_RELAY_PORT=8788 \\',
101
107
  'remote-codex relay',
102
108
  ],
109
+ effective: () => [
110
+ [
111
+ 'Relay listen address',
112
+ `${envValue(['REMOTE_CODEX_RELAY_HOST', 'HOST'], '0.0.0.0')}:${envValue(['REMOTE_CODEX_RELAY_PORT', 'PORT'], '8788')}`,
113
+ ],
114
+ ],
103
115
  validate: () => {
104
116
  const issues = [];
105
117
  if (process.env.REMOTE_CODEX_ADMIN_PASSWORD && process.env.REMOTE_CODEX_ADMIN_PASSWORD.length < 8) {
@@ -150,7 +162,7 @@ function runRelayServer() {
150
162
  }
151
163
 
152
164
  if (code && code !== 0) {
153
- console.error(`remote-codex relay exited with code ${code}. Check the relay port, HOST/PORT, and environment values above.`);
165
+ console.error(`remote-codex relay exited with code ${code}. Check REMOTE_CODEX_RELAY_HOST/REMOTE_CODEX_RELAY_PORT and environment values above.`);
154
166
  }
155
167
  process.exit(code ?? 1);
156
168
  });
@@ -161,32 +173,40 @@ function runRelayServer() {
161
173
  });
162
174
  }
163
175
 
164
- function runRelaySupervisor() {
176
+ async function runRelaySupervisor() {
177
+ if (process.argv[3] === 'reset') {
178
+ resetRelaySupervisorConfig();
179
+ return;
180
+ }
181
+ await ensureRelaySupervisorConfig();
165
182
  const guidance = {
166
183
  commandName: 'remote-codex relay-supervisor',
167
184
  description: 'Run the private-machine supervisor backend that connects outward to a public relay.',
168
185
  required: [
169
- ['REMOTE_CODEX_ADMIN_USERNAME', 'Private supervisor admin username. Required because relay mode enables local API auth.'],
170
- ['REMOTE_CODEX_ADMIN_PASSWORD', 'Private supervisor admin password. Required because relay mode enables local API auth.'],
171
- ['REMOTE_CODEX_SESSION_SECRET', 'Private supervisor session signing secret, at least 16 characters.'],
186
+ ['REMOTE_CODEX_ADMIN_USERNAME', 'Private supervisor admin username. Defaults to a saved local value.'],
187
+ ['REMOTE_CODEX_ADMIN_PASSWORD', 'Private supervisor admin password. Defaults to a saved generated value.'],
188
+ ['REMOTE_CODEX_SESSION_SECRET', 'Private supervisor session signing secret. Defaults to a saved generated value.'],
172
189
  ['REMOTE_CODEX_RELAY_SERVER_URL', 'Public relay websocket base URL, for example ws://host:8788 or wss://relay.example.com.'],
173
190
  ['REMOTE_CODEX_RELAY_AGENT_TOKEN', 'Device token created in the relay portal. This is not the relay admin password.'],
174
191
  ],
175
192
  recommended: [
176
- ['HOST', 'Private supervisor listen host. Default 127.0.0.1.'],
177
- ['PORT', 'Private supervisor listen port. Default 8787.'],
193
+ ['REMOTE_CODEX_RELAY_SUPERVISOR_HOST', 'Private supervisor listen host. Default 127.0.0.1. Falls back to HOST.'],
194
+ ['REMOTE_CODEX_RELAY_SUPERVISOR_PORT', 'Private supervisor listen port. Default 8787. Falls back to PORT.'],
178
195
  ['DATABASE_URL', 'SQLite database path. Set this when running a separate backend beside another Remote Codex.'],
179
196
  ['WORKSPACE_ROOT', 'Root directory that workspace paths must live under. Default is your home directory.'],
180
197
  ['CODEX_HOME', 'Codex config directory. Default ~/.codex.'],
181
198
  ],
182
199
  example: [
183
- 'REMOTE_CODEX_ADMIN_USERNAME=admin \\',
184
- 'REMOTE_CODEX_ADMIN_PASSWORD=change-me-locally \\',
185
- 'REMOTE_CODEX_SESSION_SECRET=at-least-16-characters \\',
186
- 'REMOTE_CODEX_RELAY_SERVER_URL=wss://relay.example.com \\',
187
- 'REMOTE_CODEX_RELAY_AGENT_TOKEN=rcd_device_token_from_relay_portal \\',
188
- 'HOST=127.0.0.1 PORT=8787 \\',
189
200
  'remote-codex relay-supervisor',
201
+ '# or reset saved interactive configuration:',
202
+ 'remote-codex relay-supervisor reset',
203
+ ],
204
+ effective: () => [
205
+ [
206
+ 'Private supervisor listen address',
207
+ `${envValue(['REMOTE_CODEX_RELAY_SUPERVISOR_HOST', 'HOST'], '127.0.0.1')}:${envValue(['REMOTE_CODEX_RELAY_SUPERVISOR_PORT', 'PORT'], '8787')}`,
208
+ ],
209
+ ['Relay server URL', envValue(['REMOTE_CODEX_RELAY_SERVER_URL'], 'missing')],
190
210
  ],
191
211
  validate: () => {
192
212
  const issues = [];
@@ -247,7 +267,7 @@ function runRelaySupervisor() {
247
267
  }
248
268
 
249
269
  if (code && code !== 0) {
250
- console.error(`remote-codex relay-supervisor exited with code ${code}. Check the relay server URL, device token, local PORT, and environment values above.`);
270
+ console.error(`remote-codex relay-supervisor exited with code ${code}. Check the relay server URL, device token, local REMOTE_CODEX_RELAY_SUPERVISOR_PORT, and environment values above.`);
251
271
  }
252
272
  process.exit(code ?? 1);
253
273
  });
@@ -258,6 +278,114 @@ function runRelaySupervisor() {
258
278
  });
259
279
  }
260
280
 
281
+ async function ensureRelaySupervisorConfig() {
282
+ const existing = readRelaySupervisorConfig();
283
+ const generated = {
284
+ REMOTE_CODEX_ADMIN_USERNAME: 'admin',
285
+ REMOTE_CODEX_ADMIN_PASSWORD: randomSecret(24),
286
+ REMOTE_CODEX_SESSION_SECRET: randomSecret(32),
287
+ DATABASE_URL: path.join(os.homedir(), '.remote-codex', 'relay-supervisor.sqlite'),
288
+ };
289
+ const config = { ...generated, ...existing };
290
+ for (const [name, value] of Object.entries(config)) {
291
+ if (!nonEmptyEnv(name) && typeof value === 'string' && value.trim().length > 0) {
292
+ process.env[name] = value;
293
+ }
294
+ }
295
+
296
+ const needsRelayUrl = !nonEmptyEnv('REMOTE_CODEX_RELAY_SERVER_URL');
297
+ const needsAgentToken = !nonEmptyEnv('REMOTE_CODEX_RELAY_AGENT_TOKEN');
298
+ if (!needsRelayUrl && !needsAgentToken) {
299
+ return;
300
+ }
301
+ if (!process.stdin.isTTY || !process.stderr.isTTY) {
302
+ return;
303
+ }
304
+
305
+ console.error('remote-codex relay-supervisor needs relay connection details.');
306
+ console.error(`Answers will be saved to ${relaySupervisorConfigPath}.`);
307
+ const rl = readline.createInterface({ input: process.stdin, output: process.stderr });
308
+ try {
309
+ if (needsRelayUrl) {
310
+ process.env.REMOTE_CODEX_RELAY_SERVER_URL = await promptRelaySupervisorValue(
311
+ rl,
312
+ 'Relay websocket URL (ws:// or wss://): ',
313
+ (value) => value.startsWith('ws://') || value.startsWith('wss://'),
314
+ 'Relay websocket URL must start with ws:// or wss://.',
315
+ );
316
+ }
317
+ if (needsAgentToken) {
318
+ process.env.REMOTE_CODEX_RELAY_AGENT_TOKEN = await promptRelaySupervisorValue(
319
+ rl,
320
+ 'Relay device token: ',
321
+ (value) => value.length > 0,
322
+ 'Relay device token must not be empty.',
323
+ );
324
+ }
325
+ } finally {
326
+ rl.close();
327
+ }
328
+
329
+ writeRelaySupervisorConfig({
330
+ ...config,
331
+ REMOTE_CODEX_RELAY_SERVER_URL: process.env.REMOTE_CODEX_RELAY_SERVER_URL,
332
+ REMOTE_CODEX_RELAY_AGENT_TOKEN: process.env.REMOTE_CODEX_RELAY_AGENT_TOKEN,
333
+ REMOTE_CODEX_ADMIN_USERNAME: process.env.REMOTE_CODEX_ADMIN_USERNAME,
334
+ REMOTE_CODEX_ADMIN_PASSWORD: process.env.REMOTE_CODEX_ADMIN_PASSWORD,
335
+ REMOTE_CODEX_SESSION_SECRET: process.env.REMOTE_CODEX_SESSION_SECRET,
336
+ DATABASE_URL: process.env.DATABASE_URL,
337
+ });
338
+ }
339
+
340
+ async function promptRelaySupervisorValue(rl, prompt, validate, invalidMessage) {
341
+ while (true) {
342
+ const value = (await rl.question(prompt)).trim();
343
+ if (validate(value)) {
344
+ return value;
345
+ }
346
+ console.error(invalidMessage);
347
+ }
348
+ }
349
+
350
+ function readRelaySupervisorConfig() {
351
+ try {
352
+ return JSON.parse(fs.readFileSync(relaySupervisorConfigPath, 'utf8'));
353
+ } catch (error) {
354
+ if (error?.code !== 'ENOENT') {
355
+ console.error(`Ignoring invalid relay-supervisor config at ${relaySupervisorConfigPath}: ${error.message}`);
356
+ }
357
+ return {};
358
+ }
359
+ }
360
+
361
+ function writeRelaySupervisorConfig(config) {
362
+ fs.mkdirSync(path.dirname(relaySupervisorConfigPath), { recursive: true });
363
+ fs.writeFileSync(relaySupervisorConfigPath, `${JSON.stringify(config, null, 2)}\n`, { mode: 0o600 });
364
+ try {
365
+ fs.chmodSync(relaySupervisorConfigPath, 0o600);
366
+ } catch {
367
+ // Best-effort on filesystems that do not support chmod.
368
+ }
369
+ }
370
+
371
+ function resetRelaySupervisorConfig() {
372
+ try {
373
+ fs.unlinkSync(relaySupervisorConfigPath);
374
+ console.log(`Deleted relay-supervisor config: ${relaySupervisorConfigPath}`);
375
+ } catch (error) {
376
+ if (error?.code === 'ENOENT') {
377
+ console.log(`No relay-supervisor config found at ${relaySupervisorConfigPath}`);
378
+ return;
379
+ }
380
+ console.error(`Failed to delete relay-supervisor config: ${error.message}`);
381
+ process.exit(1);
382
+ }
383
+ }
384
+
385
+ function randomSecret(bytes) {
386
+ return crypto.randomBytes(bytes).toString('base64url');
387
+ }
388
+
261
389
  function validateRequiredEnv(input) {
262
390
  const missing = input.required
263
391
  .map(([name]) => name)
@@ -306,31 +434,106 @@ function printEnvSummary(input) {
306
434
  console.error(`${input.commandName} configuration:`);
307
435
  console.error(input.description);
308
436
  console.error('');
437
+ const effective = input.effective?.() ?? [];
438
+ if (effective.length > 0) {
439
+ console.error('Effective values:');
440
+ for (const [label, value] of effective) {
441
+ console.error(` ${label}: ${value}`);
442
+ }
443
+ console.error('');
444
+ }
309
445
  console.error('Required:');
310
446
  for (const [name, description] of input.required) {
311
- console.error(` ${name}: ${nonEmptyEnv(name) ? 'set' : 'missing'}`);
447
+ console.error(` ${name}: ${envStatusLabel(name, 'missing')}`);
312
448
  console.error(` ${description}`);
313
449
  }
314
450
  if (input.recommended.length > 0) {
315
451
  console.error('');
316
452
  console.error('Recommended / optional:');
317
453
  for (const [name, description] of input.recommended) {
318
- console.error(` ${name}: ${nonEmptyEnv(name) ? 'set' : 'default/unset'}`);
454
+ console.error(` ${name}: ${envStatusLabel(name, 'unset')}`);
319
455
  console.error(` ${description}`);
320
456
  }
321
457
  }
322
458
  console.error('');
323
459
  }
324
460
 
461
+ function envStatusLabel(name, missingLabel) {
462
+ const directValue = cleanEnvValue(name);
463
+ if (directValue) {
464
+ return isSensitiveEnvName(name) ? 'set' : `set: ${directValue}`;
465
+ }
466
+
467
+ const fallback = envFallbackFor(name);
468
+ if (fallback) {
469
+ for (const fallbackName of fallback.names) {
470
+ const fallbackValue = cleanEnvValue(fallbackName);
471
+ if (fallbackValue) {
472
+ return isSensitiveEnvName(name) ? `fallback from ${fallbackName}` : `fallback from ${fallbackName}: ${fallbackValue}`;
473
+ }
474
+ }
475
+
476
+ if (fallback.defaultValue) {
477
+ return `default: ${fallback.defaultValue}`;
478
+ }
479
+ }
480
+
481
+ return missingLabel;
482
+ }
483
+
484
+ function envFallbackFor(name) {
485
+ switch (name) {
486
+ case 'REMOTE_CODEX_RELAY_DATA_DIR':
487
+ return { names: [], defaultValue: '.local/relay-server' };
488
+ case 'REMOTE_CODEX_RELAY_HOST':
489
+ return { names: ['HOST'], defaultValue: '0.0.0.0' };
490
+ case 'REMOTE_CODEX_RELAY_PORT':
491
+ return { names: ['PORT'], defaultValue: '8788' };
492
+ case 'REMOTE_CODEX_RELAY_SUPERVISOR_HOST':
493
+ return { names: ['HOST'], defaultValue: '127.0.0.1' };
494
+ case 'REMOTE_CODEX_RELAY_SUPERVISOR_PORT':
495
+ return { names: ['PORT'], defaultValue: '8787' };
496
+ case 'DATABASE_URL':
497
+ return { names: [], defaultValue: `sqlite://${path.join('.local', 'remote-codex-relay-supervisor.sqlite')}` };
498
+ case 'WORKSPACE_ROOT':
499
+ return { names: [], defaultValue: os.homedir() };
500
+ case 'CODEX_HOME':
501
+ return { names: [], defaultValue: path.join(os.homedir(), '.codex') };
502
+ default:
503
+ return null;
504
+ }
505
+ }
506
+
507
+ function cleanEnvValue(name) {
508
+ const value = process.env[name];
509
+ return typeof value === 'string' && value.trim().length > 0 ? value.trim() : null;
510
+ }
511
+
512
+ function isSensitiveEnvName(name) {
513
+ return /PASSWORD|SECRET|TOKEN/i.test(name);
514
+ }
515
+
325
516
  function nonEmptyEnv(name) {
326
517
  return typeof process.env[name] === 'string' && process.env[name].trim().length > 0;
327
518
  }
328
519
 
520
+ function envValue(names, defaultValue) {
521
+ for (const name of names) {
522
+ const value = process.env[name];
523
+ if (typeof value === 'string' && value.trim().length > 0) {
524
+ return value.trim();
525
+ }
526
+ }
527
+ return defaultValue;
528
+ }
529
+
329
530
  function relayServerEnv() {
330
531
  const env = { ...process.env };
331
532
  for (const name of [
332
533
  'HOST',
333
534
  'PORT',
535
+ 'REMOTE_CODEX_RELAY_HOST',
536
+ 'REMOTE_CODEX_RELAY_PORT',
334
537
  'REMOTE_CODEX_RELAY_SUPERVISOR_TOKEN',
335
538
  'REMOTE_CODEX_RELAY_CLIENT_TOKEN',
336
539
  'REMOTE_CODEX_ADMIN_EMAIL',
@@ -555,10 +758,11 @@ Recommended environment:
555
758
  Persistent user/device/share store. Default .local/relay-server.
556
759
  REMOTE_CODEX_RELAY_REGISTRATION_ENABLED
557
760
  true/false. Default true. Use false when only admins should create users.
558
- HOST
761
+ REMOTE_CODEX_RELAY_HOST
559
762
  Relay listen host. Default 0.0.0.0. Use 0.0.0.0 on a public server.
560
- PORT
561
- Relay listen port. Default 8788.
763
+ Falls back to HOST for legacy scripts.
764
+ REMOTE_CODEX_RELAY_PORT
765
+ Relay listen port. Default 8788. Falls back to PORT for legacy scripts.
562
766
  REMOTE_CODEX_ADMIN_EMAIL
563
767
  Optional seeded admin email. Defaults to <username>@relay.local.
564
768
  REMOTE_CODEX_RELAY_WEB_DIST_DIR
@@ -574,7 +778,7 @@ Example:
574
778
  REMOTE_CODEX_RELAY_SESSION_SECRET=at-least-16-characters \\
575
779
  REMOTE_CODEX_RELAY_DATA_DIR=/var/lib/remote-codex-relay \\
576
780
  REMOTE_CODEX_RELAY_REGISTRATION_ENABLED=false \\
577
- HOST=0.0.0.0 PORT=8788 \\
781
+ REMOTE_CODEX_RELAY_HOST=0.0.0.0 REMOTE_CODEX_RELAY_PORT=8788 \\
578
782
  remote-codex relay
579
783
 
580
784
  After start:
@@ -602,28 +806,41 @@ public internet; it connects outward to a public relay server.
602
806
 
603
807
  Usage:
604
808
  remote-codex relay-supervisor
809
+ remote-codex relay-supervisor reset
605
810
 
606
811
  This command automatically sets for the child supervisor:
607
812
  REMOTE_CODEX_MODE=relay
608
813
 
609
- Required environment:
610
- REMOTE_CODEX_ADMIN_USERNAME
611
- Private supervisor admin username. Required because relay mode enables API auth.
612
- REMOTE_CODEX_ADMIN_PASSWORD
613
- Private supervisor admin password.
614
- REMOTE_CODEX_SESSION_SECRET
615
- Private supervisor session signing secret. Must be at least 16 characters.
814
+ Interactive setup:
815
+ When REMOTE_CODEX_RELAY_SERVER_URL or REMOTE_CODEX_RELAY_AGENT_TOKEN is
816
+ missing and stdin is interactive, the command asks for those values and saves
817
+ them to:
818
+ ${relaySupervisorConfigPath}
819
+
820
+ The saved config also includes generated local supervisor auth/session values
821
+ so the normal first-run path only asks for relay URL and device token.
822
+
823
+ Use "remote-codex relay-supervisor reset" to delete the saved config.
824
+
825
+ Environment overrides:
616
826
  REMOTE_CODEX_RELAY_SERVER_URL
617
827
  Public relay websocket base URL. Use ws://host:port for plain relay ports or
618
828
  wss://relay.example.com behind TLS.
619
829
  REMOTE_CODEX_RELAY_AGENT_TOKEN
620
830
  Device token created in the relay portal. This is not the relay admin password.
831
+ REMOTE_CODEX_ADMIN_USERNAME
832
+ Private supervisor admin username. Defaults to saved "admin".
833
+ REMOTE_CODEX_ADMIN_PASSWORD
834
+ Private supervisor admin password. Defaults to a saved generated value.
835
+ REMOTE_CODEX_SESSION_SECRET
836
+ Private supervisor session signing secret. Defaults to a saved generated value.
621
837
 
622
838
  Recommended environment:
623
- HOST
839
+ REMOTE_CODEX_RELAY_SUPERVISOR_HOST
624
840
  Private supervisor listen host. Default 127.0.0.1.
625
- PORT
626
- Private supervisor listen port. Default 8787.
841
+ Falls back to HOST for legacy scripts.
842
+ REMOTE_CODEX_RELAY_SUPERVISOR_PORT
843
+ Private supervisor listen port. Default 8787. Falls back to PORT for legacy scripts.
627
844
  DATABASE_URL
628
845
  SQLite database path. Set this when running beside another Remote Codex.
629
846
  WORKSPACE_ROOT
@@ -636,18 +853,16 @@ Recommended environment:
636
853
  Comma-separated provider ids, for example codex,claude.
637
854
 
638
855
  Example:
639
- REMOTE_CODEX_ADMIN_USERNAME=admin \\
640
- REMOTE_CODEX_ADMIN_PASSWORD=change-me-locally \\
641
- REMOTE_CODEX_SESSION_SECRET=at-least-16-characters \\
856
+ remote-codex relay-supervisor
857
+
858
+ Non-interactive example:
642
859
  REMOTE_CODEX_RELAY_SERVER_URL=wss://relay.example.com \\
643
860
  REMOTE_CODEX_RELAY_AGENT_TOKEN=rcd_device_token_from_relay_portal \\
644
- HOST=127.0.0.1 PORT=8787 \\
645
- DATABASE_URL=$HOME/.remote-codex/relay-supervisor.sqlite \\
646
861
  remote-codex relay-supervisor
647
862
 
648
863
  When running a separate test backend beside an existing Remote Codex service,
649
864
  set separate values for:
650
- PORT
865
+ REMOTE_CODEX_RELAY_SUPERVISOR_PORT
651
866
  DATABASE_URL
652
867
  WORKSPACE_ROOT
653
868
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "remote-codex",
3
- "version": "0.11.8",
3
+ "version": "0.11.9",
4
4
  "description": "Local web supervisor for Codex workspaces and threads.",
5
5
  "license": "MIT",
6
6
  "type": "module",