miko-code 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (379) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +179 -0
  3. package/bin/miko +10 -0
  4. package/dist/client/antigravity.webp +0 -0
  5. package/dist/client/assets/abap-BdImnpbu.js +1 -0
  6. package/dist/client/assets/actionscript-3-CoDkCxhg.js +1 -0
  7. package/dist/client/assets/ada-bCR0ucgS.js +1 -0
  8. package/dist/client/assets/andromeeda-C4gqWexZ.js +1 -0
  9. package/dist/client/assets/angular-html-CU67Zn6k.js +1 -0
  10. package/dist/client/assets/angular-ts-BwZT4LLn.js +1 -0
  11. package/dist/client/assets/apache-Pmp26Uib.js +1 -0
  12. package/dist/client/assets/apex-D8_7TLub.js +1 -0
  13. package/dist/client/assets/apl-dKokRX4l.js +1 -0
  14. package/dist/client/assets/applescript-Co6uUVPk.js +1 -0
  15. package/dist/client/assets/ara-BRHolxvo.js +1 -0
  16. package/dist/client/assets/asciidoc-Ve4PFQV2.js +1 -0
  17. package/dist/client/assets/asm-D_Q5rh1f.js +1 -0
  18. package/dist/client/assets/astro-CbQHKStN.js +1 -0
  19. package/dist/client/assets/aurora-x-D-2ljcwZ.js +1 -0
  20. package/dist/client/assets/awk-DMzUqQB5.js +1 -0
  21. package/dist/client/assets/ayu-dark-DYE7WIF3.js +1 -0
  22. package/dist/client/assets/ayu-light-BA47KaF1.js +1 -0
  23. package/dist/client/assets/ayu-mirage-32ctXXKs.js +1 -0
  24. package/dist/client/assets/ballerina-BFfxhgS-.js +1 -0
  25. package/dist/client/assets/bat-BkioyH1T.js +1 -0
  26. package/dist/client/assets/beancount-k_qm7-4y.js +1 -0
  27. package/dist/client/assets/berry-uYugtg8r.js +1 -0
  28. package/dist/client/assets/bibtex-CHM0blh-.js +1 -0
  29. package/dist/client/assets/bicep-Bmn6On1c.js +1 -0
  30. package/dist/client/assets/bird2-DPOp833l.js +1 -0
  31. package/dist/client/assets/blade-D4QpJJKB.js +1 -0
  32. package/dist/client/assets/bsl-BO_Y6i37.js +1 -0
  33. package/dist/client/assets/c-BIGW1oBm.js +1 -0
  34. package/dist/client/assets/c3-eo99z4R2.js +1 -0
  35. package/dist/client/assets/cadence-Bv_4Rxtq.js +1 -0
  36. package/dist/client/assets/cairo-KRGpt6FW.js +1 -0
  37. package/dist/client/assets/catppuccin-frappe-DFWUc33u.js +1 -0
  38. package/dist/client/assets/catppuccin-latte-C9dUb6Cb.js +1 -0
  39. package/dist/client/assets/catppuccin-macchiato-DQyhUUbL.js +1 -0
  40. package/dist/client/assets/catppuccin-mocha-D87Tk5Gz.js +1 -0
  41. package/dist/client/assets/clarity-D53aC0YG.js +1 -0
  42. package/dist/client/assets/clojure-P80f7IUj.js +1 -0
  43. package/dist/client/assets/cmake-D1j8_8rp.js +1 -0
  44. package/dist/client/assets/cobol-nwyudZeR.js +1 -0
  45. package/dist/client/assets/codeowners-Bp6g37R7.js +1 -0
  46. package/dist/client/assets/codeql-DsOJ9woJ.js +1 -0
  47. package/dist/client/assets/coffee-Ch7k5sss.js +1 -0
  48. package/dist/client/assets/common-lisp-Cg-RD9OK.js +1 -0
  49. package/dist/client/assets/coq-DkFqJrB1.js +1 -0
  50. package/dist/client/assets/cpp-CofmeUqb.js +1 -0
  51. package/dist/client/assets/crystal-tKQVLTB8.js +1 -0
  52. package/dist/client/assets/csharp-COcwbKMJ.js +1 -0
  53. package/dist/client/assets/css-DPfMkruS.js +1 -0
  54. package/dist/client/assets/csv-fuZLfV_i.js +1 -0
  55. package/dist/client/assets/cue-D82EKSYY.js +1 -0
  56. package/dist/client/assets/cypher-COkxafJQ.js +1 -0
  57. package/dist/client/assets/d-85-TOEBH.js +1 -0
  58. package/dist/client/assets/dark-plus-C3mMm8J8.js +1 -0
  59. package/dist/client/assets/dart-CF10PKvl.js +1 -0
  60. package/dist/client/assets/dax-CEL-wOlO.js +1 -0
  61. package/dist/client/assets/desktop-BmXAJ9_W.js +1 -0
  62. package/dist/client/assets/diff-D97Zzqfu.js +1 -0
  63. package/dist/client/assets/docker-BcOcwvcX.js +1 -0
  64. package/dist/client/assets/dotenv-Da5cRb03.js +1 -0
  65. package/dist/client/assets/dracula-BzJJZx-M.js +1 -0
  66. package/dist/client/assets/dracula-soft-BXkSAIEj.js +1 -0
  67. package/dist/client/assets/dream-maker-BtqSS_iP.js +1 -0
  68. package/dist/client/assets/edge-BkV0erSs.js +1 -0
  69. package/dist/client/assets/elixir-CDX3lj18.js +1 -0
  70. package/dist/client/assets/elm-DbKCFpqz.js +1 -0
  71. package/dist/client/assets/emacs-lisp-C9XAeP06.js +1 -0
  72. package/dist/client/assets/erb-B12qg9BL.js +1 -0
  73. package/dist/client/assets/erlang-DsQrWhSR.js +1 -0
  74. package/dist/client/assets/everforest-dark-BgDCqdQA.js +1 -0
  75. package/dist/client/assets/everforest-light-C8M2exoo.js +1 -0
  76. package/dist/client/assets/fennel-BYunw83y.js +1 -0
  77. package/dist/client/assets/fish-BvzEVeQv.js +1 -0
  78. package/dist/client/assets/fluent-C4IJs8-o.js +1 -0
  79. package/dist/client/assets/fortran-fixed-form-CkoXwp7k.js +1 -0
  80. package/dist/client/assets/fortran-free-form-BxgE0vQu.js +1 -0
  81. package/dist/client/assets/fsharp-CXgrBDvD.js +1 -0
  82. package/dist/client/assets/gdresource-BOOCDP_w.js +1 -0
  83. package/dist/client/assets/gdscript-C5YyOfLZ.js +1 -0
  84. package/dist/client/assets/gdshader-DkwncUOv.js +1 -0
  85. package/dist/client/assets/genie-D0YGMca9.js +1 -0
  86. package/dist/client/assets/gherkin-DyxjwDmM.js +1 -0
  87. package/dist/client/assets/git-commit-F4YmCXRG.js +1 -0
  88. package/dist/client/assets/git-rebase-r7XF79zn.js +1 -0
  89. package/dist/client/assets/github-dark-DHJKELXO.js +1 -0
  90. package/dist/client/assets/github-dark-default-Cuk6v7N8.js +1 -0
  91. package/dist/client/assets/github-dark-dimmed-DH5Ifo-i.js +1 -0
  92. package/dist/client/assets/github-dark-high-contrast-E3gJ1_iC.js +1 -0
  93. package/dist/client/assets/github-light-DAi9KRSo.js +1 -0
  94. package/dist/client/assets/github-light-default-D7oLnXFd.js +1 -0
  95. package/dist/client/assets/github-light-high-contrast-BfjtVDDH.js +1 -0
  96. package/dist/client/assets/gleam-BspZqrRM.js +1 -0
  97. package/dist/client/assets/glimmer-js-Rg0-pVw9.js +1 -0
  98. package/dist/client/assets/glimmer-ts-U6CK756n.js +1 -0
  99. package/dist/client/assets/glsl-DplSGwfg.js +1 -0
  100. package/dist/client/assets/gn-n2N0HUVH.js +1 -0
  101. package/dist/client/assets/gnuplot-DdkO51Og.js +1 -0
  102. package/dist/client/assets/go-CxLEBnE3.js +1 -0
  103. package/dist/client/assets/graphql-ChdNCCLP.js +1 -0
  104. package/dist/client/assets/groovy-gcz8RCvz.js +1 -0
  105. package/dist/client/assets/gruvbox-dark-hard-CFHQjOhq.js +1 -0
  106. package/dist/client/assets/gruvbox-dark-medium-GsRaNv29.js +1 -0
  107. package/dist/client/assets/gruvbox-dark-soft-CVdnzihN.js +1 -0
  108. package/dist/client/assets/gruvbox-light-hard-CH1njM8p.js +1 -0
  109. package/dist/client/assets/gruvbox-light-medium-DRw_LuNl.js +1 -0
  110. package/dist/client/assets/gruvbox-light-soft-hJgmCMqR.js +1 -0
  111. package/dist/client/assets/hack-CaT9iCJl.js +1 -0
  112. package/dist/client/assets/haml-B8DHNrY2.js +1 -0
  113. package/dist/client/assets/handlebars-BL8al0AC.js +1 -0
  114. package/dist/client/assets/haskell-Df6bDoY_.js +1 -0
  115. package/dist/client/assets/haxe-CzTSHFRz.js +1 -0
  116. package/dist/client/assets/hcl-BWvSN4gD.js +1 -0
  117. package/dist/client/assets/hjson-D5-asLiD.js +1 -0
  118. package/dist/client/assets/hlsl-D3lLCCz7.js +1 -0
  119. package/dist/client/assets/horizon-BUw7H-hv.js +1 -0
  120. package/dist/client/assets/horizon-bright-Cn-bp-IR.js +1 -0
  121. package/dist/client/assets/houston-DnULxvSX.js +1 -0
  122. package/dist/client/assets/html-GMplVEZG.js +1 -0
  123. package/dist/client/assets/html-derivative-BFtXZ54Q.js +1 -0
  124. package/dist/client/assets/http-jrhK8wxY.js +1 -0
  125. package/dist/client/assets/hurl-irOxFIW8.js +1 -0
  126. package/dist/client/assets/hxml-Bvhsp5Yf.js +1 -0
  127. package/dist/client/assets/hy-DFXneXwc.js +1 -0
  128. package/dist/client/assets/imba-DGztddWO.js +1 -0
  129. package/dist/client/assets/index-C07zYq_-.css +32 -0
  130. package/dist/client/assets/index-Ce3hNHfL.js +2351 -0
  131. package/dist/client/assets/ini-BEwlwnbL.js +1 -0
  132. package/dist/client/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  133. package/dist/client/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  134. package/dist/client/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  135. package/dist/client/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  136. package/dist/client/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  137. package/dist/client/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  138. package/dist/client/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  139. package/dist/client/assets/java-CylS5w8V.js +1 -0
  140. package/dist/client/assets/javascript-wDzz0qaB.js +1 -0
  141. package/dist/client/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2 +0 -0
  142. package/dist/client/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2 +0 -0
  143. package/dist/client/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
  144. package/dist/client/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
  145. package/dist/client/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2 +0 -0
  146. package/dist/client/assets/jinja-4LBKfQ-Z.js +1 -0
  147. package/dist/client/assets/jison-wvAkD_A8.js +1 -0
  148. package/dist/client/assets/json-Cp-IABpG.js +1 -0
  149. package/dist/client/assets/json5-C9tS-k6U.js +1 -0
  150. package/dist/client/assets/jsonc-Des-eS-w.js +1 -0
  151. package/dist/client/assets/jsonl-DcaNXYhu.js +1 -0
  152. package/dist/client/assets/jsonnet-DFQXde-d.js +1 -0
  153. package/dist/client/assets/jssm-C2t-YnRu.js +1 -0
  154. package/dist/client/assets/jsx-g9-lgVsj.js +1 -0
  155. package/dist/client/assets/julia-CxzCAyBv.js +1 -0
  156. package/dist/client/assets/just-Cw27pwNe.js +1 -0
  157. package/dist/client/assets/kanagawa-dragon-CkXjmgJE.js +1 -0
  158. package/dist/client/assets/kanagawa-lotus-CfQXZHmo.js +1 -0
  159. package/dist/client/assets/kanagawa-wave-DWedfzmr.js +1 -0
  160. package/dist/client/assets/kdl-DV7GczEv.js +1 -0
  161. package/dist/client/assets/kotlin-BdnUsdx6.js +1 -0
  162. package/dist/client/assets/kusto-DZf3V79B.js +1 -0
  163. package/dist/client/assets/laserwave-DUszq2jm.js +1 -0
  164. package/dist/client/assets/latex-CWtU0Tv5.js +1 -0
  165. package/dist/client/assets/lean-BZvkOJ9d.js +1 -0
  166. package/dist/client/assets/less-B1dDrJ26.js +1 -0
  167. package/dist/client/assets/light-plus-B7mTdjB0.js +1 -0
  168. package/dist/client/assets/liquid-DYVedYrR.js +1 -0
  169. package/dist/client/assets/llvm-DjAJT7YJ.js +1 -0
  170. package/dist/client/assets/log-2UxHyX5q.js +1 -0
  171. package/dist/client/assets/logo-BtOb2qkB.js +1 -0
  172. package/dist/client/assets/lua-BaeVxFsk.js +1 -0
  173. package/dist/client/assets/luau-C-HG3fhB.js +1 -0
  174. package/dist/client/assets/make-CHLpvVh8.js +1 -0
  175. package/dist/client/assets/markdown-Cvjx9yec.js +1 -0
  176. package/dist/client/assets/marko-CnJfTvn9.js +1 -0
  177. package/dist/client/assets/material-theme-D5KoaKCx.js +1 -0
  178. package/dist/client/assets/material-theme-darker-BfHTSMKl.js +1 -0
  179. package/dist/client/assets/material-theme-lighter-B0m2ddpp.js +1 -0
  180. package/dist/client/assets/material-theme-ocean-CyktbL80.js +1 -0
  181. package/dist/client/assets/material-theme-palenight-Csfq5Kiy.js +1 -0
  182. package/dist/client/assets/matlab-D7o27uSR.js +1 -0
  183. package/dist/client/assets/mdc-BMNejdWA.js +1 -0
  184. package/dist/client/assets/mdx-Cmh6b_Ma.js +1 -0
  185. package/dist/client/assets/mermaid-mWjccvbQ.js +1 -0
  186. package/dist/client/assets/min-dark-CafNBF8u.js +1 -0
  187. package/dist/client/assets/min-light-CTRr51gU.js +1 -0
  188. package/dist/client/assets/mipsasm-CKIfxQSi.js +1 -0
  189. package/dist/client/assets/mojo-rZm6bMo-.js +1 -0
  190. package/dist/client/assets/monokai-D4h5O-jR.js +1 -0
  191. package/dist/client/assets/moonbit-_H4v1dQx.js +1 -0
  192. package/dist/client/assets/move-IF9eRakj.js +1 -0
  193. package/dist/client/assets/narrat-DRg8JJMk.js +1 -0
  194. package/dist/client/assets/nextflow-Zz6hmt5N.js +1 -0
  195. package/dist/client/assets/nextflow-groovy-BeH2EWoN.js +1 -0
  196. package/dist/client/assets/nginx-BpAMiNFr.js +1 -0
  197. package/dist/client/assets/night-owl-C39BiMTA.js +1 -0
  198. package/dist/client/assets/night-owl-light-CMTm3GFP.js +1 -0
  199. package/dist/client/assets/nim-CVrawwO9.js +1 -0
  200. package/dist/client/assets/nix-CwoSXNpI.js +1 -0
  201. package/dist/client/assets/nord-Ddv68eIx.js +1 -0
  202. package/dist/client/assets/nushell-Cz2AlsmD.js +1 -0
  203. package/dist/client/assets/objective-c-DXmwc3jG.js +1 -0
  204. package/dist/client/assets/objective-cpp-CLxacb5B.js +1 -0
  205. package/dist/client/assets/ocaml-C0hk2d4L.js +1 -0
  206. package/dist/client/assets/odin-BBf5iR-q.js +1 -0
  207. package/dist/client/assets/one-dark-pro-DVMEJ2y_.js +1 -0
  208. package/dist/client/assets/one-light-C3Wv6jpd.js +1 -0
  209. package/dist/client/assets/openscad-C4EeE6gA.js +1 -0
  210. package/dist/client/assets/pascal-D93ZcfNL.js +1 -0
  211. package/dist/client/assets/perl-C0TMdlhV.js +1 -0
  212. package/dist/client/assets/php-Dhbhpdrm.js +1 -0
  213. package/dist/client/assets/pierre-dark-DF2SEV7i.js +1 -0
  214. package/dist/client/assets/pierre-light-DOlZxES8.js +1 -0
  215. package/dist/client/assets/pkl-u5AG7uiY.js +1 -0
  216. package/dist/client/assets/plastic-3e1v2bzS.js +1 -0
  217. package/dist/client/assets/plsql-ChMvpjG-.js +1 -0
  218. package/dist/client/assets/po-BTJTHyun.js +1 -0
  219. package/dist/client/assets/poimandres-CS3Unz2-.js +1 -0
  220. package/dist/client/assets/polar-C0HS_06l.js +1 -0
  221. package/dist/client/assets/postcss-CXtECtnM.js +1 -0
  222. package/dist/client/assets/powerquery-CEu0bR-o.js +1 -0
  223. package/dist/client/assets/powershell-Dpen1YoG.js +1 -0
  224. package/dist/client/assets/prisma-Dd19v3D-.js +1 -0
  225. package/dist/client/assets/prolog-CbFg5uaA.js +1 -0
  226. package/dist/client/assets/proto-C7zT0LnQ.js +1 -0
  227. package/dist/client/assets/pug-CGlum2m_.js +1 -0
  228. package/dist/client/assets/puppet-BMWR74SV.js +1 -0
  229. package/dist/client/assets/purescript-CklMAg4u.js +1 -0
  230. package/dist/client/assets/python-B6aJPvgy.js +1 -0
  231. package/dist/client/assets/qml-3beO22l8.js +1 -0
  232. package/dist/client/assets/qmldir-C8lEn-DE.js +1 -0
  233. package/dist/client/assets/qss-IeuSbFQv.js +1 -0
  234. package/dist/client/assets/r-Dspwwk_N.js +1 -0
  235. package/dist/client/assets/racket-BqYA7rlc.js +1 -0
  236. package/dist/client/assets/raku-DXvB9xmW.js +1 -0
  237. package/dist/client/assets/razor-Uh8Bk_45.js +1 -0
  238. package/dist/client/assets/red-bN70gL4F.js +1 -0
  239. package/dist/client/assets/reg-C-SQnVFl.js +1 -0
  240. package/dist/client/assets/regexp-CDVJQ6XC.js +1 -0
  241. package/dist/client/assets/rel-C3B-1QV4.js +1 -0
  242. package/dist/client/assets/riscv-BM1_JUlF.js +1 -0
  243. package/dist/client/assets/ron-D8l8udqQ.js +1 -0
  244. package/dist/client/assets/rose-pine-dawn-DHQR4-dF.js +1 -0
  245. package/dist/client/assets/rose-pine-moon-D4_iv3hh.js +1 -0
  246. package/dist/client/assets/rose-pine-qdsjHGoJ.js +1 -0
  247. package/dist/client/assets/rosmsg-BJDFO7_C.js +1 -0
  248. package/dist/client/assets/rst-BrH8l1NY.js +1 -0
  249. package/dist/client/assets/ruby-Dw2BHqvy.js +1 -0
  250. package/dist/client/assets/rust-B1yitclQ.js +1 -0
  251. package/dist/client/assets/sas-cz2c8ADy.js +1 -0
  252. package/dist/client/assets/sass-Cj5Yp3dK.js +1 -0
  253. package/dist/client/assets/scala-C151Ov-r.js +1 -0
  254. package/dist/client/assets/scheme-C98Dy4si.js +1 -0
  255. package/dist/client/assets/scratchpad-page-DcMny6uZ.js +1 -0
  256. package/dist/client/assets/scss-OYdSNvt2.js +1 -0
  257. package/dist/client/assets/sdbl-DVxCFoDh.js +1 -0
  258. package/dist/client/assets/shaderlab-Dg9Lc6iA.js +1 -0
  259. package/dist/client/assets/shellscript-Yzrsuije.js +1 -0
  260. package/dist/client/assets/shellsession-BADoaaVG.js +1 -0
  261. package/dist/client/assets/slack-dark-BthQWCQV.js +1 -0
  262. package/dist/client/assets/slack-ochin-DqwNpetd.js +1 -0
  263. package/dist/client/assets/smalltalk-BERRCDM3.js +1 -0
  264. package/dist/client/assets/snazzy-light-Bw305WKR.js +1 -0
  265. package/dist/client/assets/solarized-dark-DXbdFlpD.js +1 -0
  266. package/dist/client/assets/solarized-light-L9t79GZl.js +1 -0
  267. package/dist/client/assets/solidity-rGO070M0.js +1 -0
  268. package/dist/client/assets/soy-Brmx7dQM.js +1 -0
  269. package/dist/client/assets/sparql-rVzFXLq3.js +1 -0
  270. package/dist/client/assets/splunk-BtCnVYZw.js +1 -0
  271. package/dist/client/assets/sql-BLtJtn59.js +1 -0
  272. package/dist/client/assets/ssh-config-_ykCGR6B.js +1 -0
  273. package/dist/client/assets/stata-BH5u7GGu.js +1 -0
  274. package/dist/client/assets/stylus-BEDo0Tqx.js +1 -0
  275. package/dist/client/assets/surrealql-Bq5Q-fJD.js +1 -0
  276. package/dist/client/assets/svelte-C_ipcX3V.js +1 -0
  277. package/dist/client/assets/swift-D82vCrfD.js +1 -0
  278. package/dist/client/assets/synthwave-84-CbfX1IO0.js +1 -0
  279. package/dist/client/assets/system-verilog-CnnmHF94.js +1 -0
  280. package/dist/client/assets/systemd-4A_iFExJ.js +1 -0
  281. package/dist/client/assets/talonscript-CkByrt1z.js +1 -0
  282. package/dist/client/assets/tasl-QIJgUcNo.js +1 -0
  283. package/dist/client/assets/tcl-dwOrl1Do.js +1 -0
  284. package/dist/client/assets/templ-P3uqSqPl.js +1 -0
  285. package/dist/client/assets/terraform-BETggiCN.js +1 -0
  286. package/dist/client/assets/tex-idrVyKtj.js +1 -0
  287. package/dist/client/assets/tokyo-night-hegEt444.js +1 -0
  288. package/dist/client/assets/toml-vGWfd6FD.js +1 -0
  289. package/dist/client/assets/ts-tags-zn1MmPIZ.js +1 -0
  290. package/dist/client/assets/tsv-B_m7g4N7.js +1 -0
  291. package/dist/client/assets/tsx-COt5Ahok.js +1 -0
  292. package/dist/client/assets/turtle-BsS91CYL.js +1 -0
  293. package/dist/client/assets/twig-DNn4PbVi.js +1 -0
  294. package/dist/client/assets/typescript-BPQ3VLAy.js +1 -0
  295. package/dist/client/assets/typespec-BGHnOYBU.js +1 -0
  296. package/dist/client/assets/typst-DHCkPAjA.js +1 -0
  297. package/dist/client/assets/v-BcVCzyr7.js +1 -0
  298. package/dist/client/assets/vala-CsfeWuGM.js +1 -0
  299. package/dist/client/assets/vb-D17OF-Vu.js +1 -0
  300. package/dist/client/assets/verilog-BQ8w6xss.js +1 -0
  301. package/dist/client/assets/vesper-DU1UobuO.js +1 -0
  302. package/dist/client/assets/vhdl-CeAyd5Ju.js +1 -0
  303. package/dist/client/assets/viml-CJc9bBzg.js +1 -0
  304. package/dist/client/assets/vitesse-black-Bkuqu6BP.js +1 -0
  305. package/dist/client/assets/vitesse-dark-D0r3Knsf.js +1 -0
  306. package/dist/client/assets/vitesse-light-CVO1_9PV.js +1 -0
  307. package/dist/client/assets/vue-DN_0RTcg.js +1 -0
  308. package/dist/client/assets/vue-html-AaS7Mt5G.js +1 -0
  309. package/dist/client/assets/vue-vine-CQOfvN7w.js +1 -0
  310. package/dist/client/assets/vyper-CDx5xZoG.js +1 -0
  311. package/dist/client/assets/wasm-CG6Dc4jp.js +1 -0
  312. package/dist/client/assets/wasm-MzD3tlZU.js +1 -0
  313. package/dist/client/assets/wenyan-BV7otONQ.js +1 -0
  314. package/dist/client/assets/wgsl-Dx-B1_4e.js +1 -0
  315. package/dist/client/assets/wikitext-BhOHFoWU.js +1 -0
  316. package/dist/client/assets/wit-5i3qLPDT.js +1 -0
  317. package/dist/client/assets/wolfram-lXgVvXCa.js +1 -0
  318. package/dist/client/assets/xml-sdJ4AIDG.js +1 -0
  319. package/dist/client/assets/xsl-CtQFsRM5.js +1 -0
  320. package/dist/client/assets/yaml-Buea-lGh.js +1 -0
  321. package/dist/client/assets/zenscript-DVFEvuxE.js +1 -0
  322. package/dist/client/assets/zig-VOosw3JB.js +1 -0
  323. package/dist/client/cursor.png +0 -0
  324. package/dist/client/favicon.svg +17 -0
  325. package/dist/client/finder.png +0 -0
  326. package/dist/client/icons/claude.svg +1 -0
  327. package/dist/client/icons/openai.svg +1 -0
  328. package/dist/client/images/github.png +0 -0
  329. package/dist/client/index.html +15 -0
  330. package/dist/client/logo.svg +17 -0
  331. package/dist/client/terminal.png +0 -0
  332. package/dist/client/vscode.png +0 -0
  333. package/dist/client/warp.png +0 -0
  334. package/package.json +107 -0
  335. package/src/server/agent-instruction-attachments.ts +458 -0
  336. package/src/server/agent.ts +1879 -0
  337. package/src/server/cli-runtime.ts +418 -0
  338. package/src/server/cli-supervisor.ts +90 -0
  339. package/src/server/cli.ts +102 -0
  340. package/src/server/codex-app-server-protocol.ts +478 -0
  341. package/src/server/codex-app-server.ts +1645 -0
  342. package/src/server/data-dir-lock.ts +128 -0
  343. package/src/server/diff-store.ts +1587 -0
  344. package/src/server/durable-file.ts +74 -0
  345. package/src/server/event-store.ts +1448 -0
  346. package/src/server/event.ts +249 -0
  347. package/src/server/external-file-access.ts +48 -0
  348. package/src/server/external-open.ts +259 -0
  349. package/src/server/generate-title.ts +75 -0
  350. package/src/server/git-refresh-poller.ts +92 -0
  351. package/src/server/github-rest-client.ts +176 -0
  352. package/src/server/harness-types.ts +24 -0
  353. package/src/server/keybindings.ts +203 -0
  354. package/src/server/machine-name.ts +22 -0
  355. package/src/server/paths.ts +51 -0
  356. package/src/server/pr-manager.ts +1204 -0
  357. package/src/server/pr-refresh-poller.ts +126 -0
  358. package/src/server/process-utils.ts +18 -0
  359. package/src/server/provider-catalog.ts +90 -0
  360. package/src/server/quick-response.ts +274 -0
  361. package/src/server/read-models.ts +311 -0
  362. package/src/server/restart.ts +33 -0
  363. package/src/server/scratchpad-manager.ts +87 -0
  364. package/src/server/server.ts +759 -0
  365. package/src/server/share.ts +126 -0
  366. package/src/server/terminal-manager.ts +371 -0
  367. package/src/server/update-manager.ts +250 -0
  368. package/src/server/uploads.ts +191 -0
  369. package/src/server/workspace-file-search.ts +191 -0
  370. package/src/server/workspace-manager.ts +627 -0
  371. package/src/server/workspace-polling.ts +10 -0
  372. package/src/server/ws-router.ts +1039 -0
  373. package/src/shared/branding.ts +69 -0
  374. package/src/shared/dev-ports.ts +100 -0
  375. package/src/shared/ports.ts +2 -0
  376. package/src/shared/protocol.ts +217 -0
  377. package/src/shared/tools.ts +324 -0
  378. package/src/shared/types.ts +1220 -0
  379. package/tsconfig.json +35 -0
@@ -0,0 +1,126 @@
1
+ import type { WorkspaceGitHubSnapshot } from 'src/shared/types';
2
+ import type { WorkspaceRecord } from './event';
3
+ import { GitHubRateLimitError } from './github-rest-client';
4
+ import { shouldPollActiveWorkspace } from './workspace-polling';
5
+
6
+ const DEFAULT_INTERVAL_MS = 2_000;
7
+ const DEFAULT_BACKOFF_MS = 60_000;
8
+
9
+ export interface PrRefreshPollerDeps {
10
+ listWorkspaces: () => WorkspaceRecord[];
11
+ getWorkspaceGitHubSnapshot: (workspaceId: string) => WorkspaceGitHubSnapshot | null;
12
+ refreshWorkspacePrStage: (
13
+ workspaceId: string,
14
+ options?: { force?: boolean },
15
+ ) => Promise<{ snapshot?: WorkspaceGitHubSnapshot | null }>;
16
+ broadcastSnapshots: () => Promise<void>;
17
+ setInterval?: typeof setInterval;
18
+ clearInterval?: typeof clearInterval;
19
+ now?: () => number;
20
+ logger?: Pick<Console, 'warn'>;
21
+ intervalMs?: number;
22
+ defaultBackoffMs?: number;
23
+ }
24
+
25
+ function snapshotFingerprint(snapshot: WorkspaceGitHubSnapshot | null) {
26
+ if (!snapshot) return 'null';
27
+ const { lastRefreshedAt: _lastRefreshedAt, ...stable } = snapshot;
28
+ return JSON.stringify(stable);
29
+ }
30
+
31
+ function retryAfterMs(error: unknown, defaultBackoffMs: number) {
32
+ if (error instanceof GitHubRateLimitError) return error.retryAfterMs ?? defaultBackoffMs;
33
+ return null;
34
+ }
35
+
36
+ export class PrRefreshPoller {
37
+ private readonly intervalMs: number;
38
+ private readonly defaultBackoffMs: number;
39
+ private readonly setIntervalImpl: typeof setInterval;
40
+ private readonly clearIntervalImpl: typeof clearInterval;
41
+ private readonly now: () => number;
42
+ private readonly logger: Pick<Console, 'warn'>;
43
+ private timer: ReturnType<typeof setInterval> | null = null;
44
+ private running = false;
45
+ private backoffUntil = 0;
46
+ private stopped = false;
47
+ private inFlight: Promise<void> | null = null;
48
+
49
+ constructor(private readonly deps: PrRefreshPollerDeps) {
50
+ this.intervalMs = deps.intervalMs ?? DEFAULT_INTERVAL_MS;
51
+ this.defaultBackoffMs = deps.defaultBackoffMs ?? DEFAULT_BACKOFF_MS;
52
+ this.setIntervalImpl = deps.setInterval ?? setInterval;
53
+ this.clearIntervalImpl = deps.clearInterval ?? clearInterval;
54
+ this.now = deps.now ?? Date.now;
55
+ this.logger = deps.logger ?? console;
56
+ }
57
+
58
+ start() {
59
+ if (this.timer) return;
60
+ this.stopped = false;
61
+ this.timer = this.setIntervalImpl(() => {
62
+ void this.tick();
63
+ }, this.intervalMs);
64
+ void this.tick();
65
+ }
66
+
67
+ async stop() {
68
+ this.stopped = true;
69
+ this.backoffUntil = 0;
70
+ if (this.timer) this.clearIntervalImpl(this.timer);
71
+ this.timer = null;
72
+ await this.inFlight;
73
+ }
74
+
75
+ async tick() {
76
+ if (this.stopped) return;
77
+ if (this.running) return this.inFlight ?? undefined;
78
+ if (this.now() < this.backoffUntil) return;
79
+
80
+ this.running = true;
81
+ const run = this.runTick();
82
+ this.inFlight = run;
83
+ try {
84
+ await run;
85
+ } finally {
86
+ this.running = false;
87
+ this.inFlight = null;
88
+ }
89
+ }
90
+
91
+ private async runTick() {
92
+ try {
93
+ let changed = false;
94
+ let backoffMs: number | null = null;
95
+ const errors: unknown[] = [];
96
+ const workspaces = this.deps.listWorkspaces().filter(shouldPollActiveWorkspace);
97
+
98
+ await Promise.all(
99
+ workspaces.map(async (workspace) => {
100
+ try {
101
+ const before = snapshotFingerprint(this.deps.getWorkspaceGitHubSnapshot(workspace.id));
102
+ await this.deps.refreshWorkspacePrStage(workspace.id, { force: true });
103
+ const after = snapshotFingerprint(this.deps.getWorkspaceGitHubSnapshot(workspace.id));
104
+ if (before !== after) changed = true;
105
+ } catch (error) {
106
+ errors.push(error);
107
+ const nextBackoffMs = retryAfterMs(error, this.defaultBackoffMs);
108
+ if (nextBackoffMs !== null) backoffMs = Math.max(backoffMs ?? 0, nextBackoffMs);
109
+ }
110
+ }),
111
+ );
112
+
113
+ if (this.stopped) return;
114
+ if (backoffMs !== null) this.backoffUntil = this.now() + backoffMs;
115
+ if (changed) await this.deps.broadcastSnapshots();
116
+ if (errors.length > 0) {
117
+ this.logger.warn('[miko] failed to poll workspace PR state', errors[0]);
118
+ }
119
+ } catch (error) {
120
+ if (this.stopped) return;
121
+ const backoffMs = retryAfterMs(error, this.defaultBackoffMs);
122
+ if (backoffMs !== null) this.backoffUntil = this.now() + backoffMs;
123
+ this.logger.warn('[miko] failed to poll workspace PR state', error);
124
+ }
125
+ }
126
+ }
@@ -0,0 +1,18 @@
1
+ import { spawn, spawnSync } from 'node:child_process';
2
+
3
+ export function spawnDetached(command: string, args: string[]) {
4
+ const child = spawn(command, args, { stdio: 'ignore', detached: true });
5
+ // Swallow ENOENT/EACCES so a missing binary cannot crash the server.
6
+ child.on('error', () => {});
7
+ child.unref();
8
+ }
9
+
10
+ export function hasCommand(command: string) {
11
+ const result = spawnSync('sh', ['-lc', 'command -v "$1"', 'sh', command], { stdio: 'ignore' });
12
+ return result.status === 0;
13
+ }
14
+
15
+ export function canOpenMacApp(appName: string) {
16
+ const result = spawnSync('open', ['-Ra', appName], { stdio: 'ignore' });
17
+ return result.status === 0;
18
+ }
@@ -0,0 +1,90 @@
1
+ import {
2
+ type AgentProvider,
3
+ type ClaudeContextWindow,
4
+ type ClaudeModelOptions,
5
+ type CodexModelOptions,
6
+ DEFAULT_CLAUDE_MODEL_OPTIONS,
7
+ DEFAULT_CODEX_MODEL_OPTIONS,
8
+ isClaudeReasoningEffort,
9
+ isCodexReasoningEffort,
10
+ type ModelOptions,
11
+ normalizeClaudeContextWindow,
12
+ PROVIDERS,
13
+ type ProviderCatalogEntry,
14
+ type ProviderModelOption,
15
+ type ServiceTier,
16
+ } from 'src/shared/types';
17
+
18
+ const HARD_CODED_CODEX_MODELS: ProviderModelOption[] = [
19
+ { id: 'gpt-5.5', label: 'GPT-5.5', supportsEffort: false },
20
+ { id: 'gpt-5.4', label: 'GPT-5.4', supportsEffort: false },
21
+ ];
22
+
23
+ export const SERVER_PROVIDERS: ProviderCatalogEntry[] = PROVIDERS.map((provider) =>
24
+ provider.id === 'codex'
25
+ ? {
26
+ ...provider,
27
+ defaultModel: 'gpt-5.5',
28
+ models: HARD_CODED_CODEX_MODELS,
29
+ }
30
+ : provider,
31
+ );
32
+
33
+ export function getServerProviderCatalog(provider: AgentProvider): ProviderCatalogEntry {
34
+ const entry = SERVER_PROVIDERS.find((candidate) => candidate.id === provider);
35
+ if (!entry) {
36
+ throw new Error(`Unknown provider: ${provider}`);
37
+ }
38
+ return entry;
39
+ }
40
+
41
+ export function normalizeServerModel(provider: AgentProvider, model?: string): string {
42
+ const catalog = getServerProviderCatalog(provider);
43
+ if (model && catalog.models.some((candidate) => candidate.id === model)) {
44
+ return model;
45
+ }
46
+ return catalog.defaultModel;
47
+ }
48
+
49
+ export function normalizeClaudeModelOptions(
50
+ model: string,
51
+ modelOptions?: ModelOptions,
52
+ legacyEffort?: string,
53
+ ): ClaudeModelOptions {
54
+ const reasoningEffort = modelOptions?.claude?.reasoningEffort;
55
+ return {
56
+ reasoningEffort: isClaudeReasoningEffort(reasoningEffort)
57
+ ? reasoningEffort
58
+ : isClaudeReasoningEffort(legacyEffort)
59
+ ? legacyEffort
60
+ : DEFAULT_CLAUDE_MODEL_OPTIONS.reasoningEffort,
61
+ contextWindow: normalizeClaudeContextWindow(
62
+ model,
63
+ modelOptions?.claude?.contextWindow as ClaudeContextWindow | undefined,
64
+ ),
65
+ };
66
+ }
67
+
68
+ export function normalizeCodexModelOptions(
69
+ modelOptions?: ModelOptions,
70
+ legacyEffort?: string,
71
+ ): CodexModelOptions {
72
+ const reasoningEffort = modelOptions?.codex?.reasoningEffort;
73
+ return {
74
+ reasoningEffort: isCodexReasoningEffort(reasoningEffort)
75
+ ? reasoningEffort
76
+ : isCodexReasoningEffort(legacyEffort)
77
+ ? legacyEffort
78
+ : DEFAULT_CODEX_MODEL_OPTIONS.reasoningEffort,
79
+ fastMode:
80
+ typeof modelOptions?.codex?.fastMode === 'boolean'
81
+ ? modelOptions.codex.fastMode
82
+ : DEFAULT_CODEX_MODEL_OPTIONS.fastMode,
83
+ };
84
+ }
85
+
86
+ export function codexServiceTierFromModelOptions(
87
+ modelOptions: CodexModelOptions,
88
+ ): ServiceTier | undefined {
89
+ return modelOptions.fastMode ? 'fast' : undefined;
90
+ }
@@ -0,0 +1,274 @@
1
+ import { homedir } from 'node:os';
2
+ import { query } from '@anthropic-ai/claude-agent-sdk';
3
+ import { getDataRootDir } from '../shared/branding';
4
+ import { CodexAppServerManager } from './codex-app-server';
5
+
6
+ const CLAUDE_STRUCTURED_TIMEOUT_MS = 5_000;
7
+
8
+ type JsonSchema = {
9
+ type: 'object';
10
+ properties: Record<string, unknown>;
11
+ required?: readonly string[];
12
+ additionalProperties?: boolean;
13
+ };
14
+
15
+ export interface StructuredQuickResponseArgs<T> {
16
+ task: string;
17
+ prompt: string;
18
+ schema: JsonSchema;
19
+ parse: (value: unknown) => T | null;
20
+ }
21
+
22
+ export interface ProviderRequest {
23
+ cwd: string;
24
+ task: string;
25
+ prompt: string;
26
+ schema: JsonSchema;
27
+ }
28
+
29
+ interface QuickResponseAdapterArgs {
30
+ codexManager?: CodexAppServerManager;
31
+ runClaudeStructured?: (args: ProviderRequest) => Promise<unknown | null>;
32
+ runCodexStructured?: (args: ProviderRequest) => Promise<unknown | null>;
33
+ }
34
+
35
+ export interface StructuredQuickResponseFailure {
36
+ provider: 'claude' | 'codex';
37
+ reason: string;
38
+ }
39
+
40
+ export interface StructuredQuickResponseResult<T> {
41
+ value: T | null;
42
+ failures: StructuredQuickResponseFailure[];
43
+ }
44
+
45
+ export function getQuickResponseWorkspace(env: Record<string, string | undefined> = process.env) {
46
+ return getDataRootDir(homedir(), env);
47
+ }
48
+
49
+ export function parseJsonText(value: string): unknown | null {
50
+ const trimmed = value.trim();
51
+ if (!trimmed) return null;
52
+
53
+ const candidates = [trimmed];
54
+ const fencedMatch = trimmed.match(/```(?:json)?\s*([\s\S]*?)\s*```/i);
55
+
56
+ if (fencedMatch?.[1]) {
57
+ candidates.unshift(fencedMatch[1].trim());
58
+ }
59
+
60
+ for (const candidate of candidates) {
61
+ try {
62
+ return JSON.parse(candidate);
63
+ } catch {}
64
+ }
65
+
66
+ return null;
67
+ }
68
+
69
+ export function structuredOutputFromSdkMessage(message: unknown): unknown | null {
70
+ if (!message || typeof message !== 'object') return null;
71
+
72
+ const record = message as Record<string, unknown>;
73
+ if (record.type === 'result') {
74
+ return record.structured_output ?? null;
75
+ }
76
+
77
+ const assistantMessage = record.message;
78
+ if (!assistantMessage || typeof assistantMessage !== 'object') return null;
79
+
80
+ const content = (assistantMessage as { content?: unknown }).content;
81
+ if (!Array.isArray(content)) return null;
82
+
83
+ for (const item of content) {
84
+ if (!item || typeof item !== 'object') continue;
85
+ const toolUse = item as Record<string, unknown>;
86
+
87
+ if (toolUse.type === 'tool_use' && toolUse.name === 'StructuredOutput') {
88
+ return toolUse.input ?? null;
89
+ }
90
+ }
91
+
92
+ return null;
93
+ }
94
+
95
+ export async function runClaudeStructured(args: ProviderRequest): Promise<unknown | null> {
96
+ const q = query({
97
+ prompt: args.prompt,
98
+ options: {
99
+ cwd: args.cwd,
100
+ model: 'haiku',
101
+ tools: [],
102
+ systemPrompt: '',
103
+ effort: 'low',
104
+ permissionMode: 'bypassPermissions',
105
+ outputFormat: {
106
+ type: 'json_schema',
107
+ schema: args.schema,
108
+ },
109
+ env: { ...process.env },
110
+ },
111
+ });
112
+
113
+ let timeoutHandle: ReturnType<typeof setTimeout> | undefined;
114
+ try {
115
+ const result = await Promise.race<unknown | null>([
116
+ (async () => {
117
+ for await (const message of q) {
118
+ const structuredOutput = structuredOutputFromSdkMessage(message);
119
+ if (structuredOutput !== null) {
120
+ return structuredOutput;
121
+ }
122
+ }
123
+ return null;
124
+ })(),
125
+ new Promise<null>((_, reject) => {
126
+ timeoutHandle = setTimeout(() => {
127
+ reject(
128
+ new Error(
129
+ `Claude structured response timed out after ${CLAUDE_STRUCTURED_TIMEOUT_MS}ms`,
130
+ ),
131
+ );
132
+ }, CLAUDE_STRUCTURED_TIMEOUT_MS);
133
+ }),
134
+ ]);
135
+
136
+ return result;
137
+ } catch {
138
+ return null;
139
+ } finally {
140
+ if (timeoutHandle !== undefined) clearTimeout(timeoutHandle);
141
+ try {
142
+ q.close();
143
+ } catch {
144
+ // Ignore close failures on timed-out or failed quick responses.
145
+ }
146
+ }
147
+ }
148
+
149
+ export async function runCodexStructured(
150
+ codexManager: CodexAppServerManager,
151
+ args: ProviderRequest,
152
+ ): Promise<unknown | null> {
153
+ const response = await codexManager.generateStructured({
154
+ cwd: args.cwd,
155
+ model: 'gpt-5.4-mini',
156
+ prompt: `${args.prompt}\n\nReturn JSON only that matches this schema:\n${JSON.stringify(args.schema, null, 2)}`,
157
+ });
158
+
159
+ if (typeof response !== 'string') return null;
160
+ return parseJsonText(response);
161
+ }
162
+
163
+ export class QuickResponseAdapter {
164
+ private readonly codexManager: CodexAppServerManager;
165
+ private readonly runClaudeStructured: (args: ProviderRequest) => Promise<unknown | null>;
166
+ private readonly runCodexStructured: (args: ProviderRequest) => Promise<unknown | null>;
167
+
168
+ constructor(args: QuickResponseAdapterArgs = {}) {
169
+ this.codexManager = args.codexManager ?? new CodexAppServerManager();
170
+ this.runClaudeStructured = args.runClaudeStructured ?? runClaudeStructured;
171
+
172
+ this.runCodexStructured =
173
+ args.runCodexStructured ??
174
+ ((structuredArgs) => runCodexStructured(this.codexManager, structuredArgs));
175
+ }
176
+
177
+ async generateStructured<T>(args: StructuredQuickResponseArgs<T>): Promise<T | null> {
178
+ const result = await this.generateStructuredWithDiagnostics(args);
179
+ return result.value;
180
+ }
181
+
182
+ async generateStructuredWithDiagnostics<T>(
183
+ args: StructuredQuickResponseArgs<T>,
184
+ ): Promise<StructuredQuickResponseResult<T>> {
185
+ const request = {
186
+ cwd: getQuickResponseWorkspace(),
187
+ task: args.task,
188
+ prompt: args.prompt,
189
+ schema: args.schema,
190
+ };
191
+
192
+ const failures: StructuredQuickResponseFailure[] = [];
193
+
194
+ const claudeResult = await this.tryProvider('claude', args.task, args.parse, () =>
195
+ this.runClaudeStructured(request),
196
+ );
197
+
198
+ if (claudeResult.value !== null) {
199
+ return {
200
+ value: claudeResult.value,
201
+ failures,
202
+ };
203
+ }
204
+
205
+ if (claudeResult.failure) {
206
+ failures.push(claudeResult.failure);
207
+ }
208
+
209
+ const codexResult = await this.tryProvider('codex', args.task, args.parse, () =>
210
+ this.runCodexStructured(request),
211
+ );
212
+
213
+ if (codexResult.value !== null) {
214
+ return {
215
+ value: codexResult.value,
216
+ failures,
217
+ };
218
+ }
219
+
220
+ if (codexResult.failure) {
221
+ failures.push(codexResult.failure);
222
+ }
223
+
224
+ return {
225
+ value: null,
226
+ failures,
227
+ };
228
+ }
229
+
230
+ private async tryProvider<T>(
231
+ provider: 'claude' | 'codex',
232
+ task: string,
233
+ parse: (value: unknown) => T | null,
234
+ run: () => Promise<unknown | null>,
235
+ ): Promise<{ value: T | null; failure: StructuredQuickResponseFailure | null }> {
236
+ try {
237
+ const result = await run();
238
+ if (result === null) {
239
+ return {
240
+ value: null,
241
+ failure: {
242
+ provider,
243
+ reason: `${provider} returned no result for ${task}`,
244
+ },
245
+ };
246
+ }
247
+
248
+ const parsed = parse(result);
249
+ if (parsed === null) {
250
+ return {
251
+ value: null,
252
+ failure: {
253
+ provider,
254
+ reason: `${provider} returned invalid structured output for ${task}`,
255
+ },
256
+ };
257
+ }
258
+
259
+ return {
260
+ value: parsed,
261
+ failure: null,
262
+ };
263
+ } catch (error) {
264
+ const message = error instanceof Error ? error.message : String(error);
265
+ return {
266
+ value: null,
267
+ failure: {
268
+ provider,
269
+ reason: `${provider} failed ${task}: ${message}`,
270
+ },
271
+ };
272
+ }
273
+ }
274
+ }