@mquan/mochi 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 (414) hide show
  1. package/README.md +154 -0
  2. package/dist/bin/mochi.d.ts +3 -0
  3. package/dist/bin/mochi.d.ts.map +1 -0
  4. package/dist/bin/mochi.js +74 -0
  5. package/dist/bin/mochi.js.map +1 -0
  6. package/dist/bin/tsconfig.tsbuildinfo +1 -0
  7. package/dist/server/analysis/git-context.d.ts +12 -0
  8. package/dist/server/analysis/git-context.d.ts.map +1 -0
  9. package/dist/server/analysis/git-context.js +151 -0
  10. package/dist/server/analysis/git-context.js.map +1 -0
  11. package/dist/server/analysis/grammars.d.ts +3 -0
  12. package/dist/server/analysis/grammars.d.ts.map +1 -0
  13. package/dist/server/analysis/grammars.js +32 -0
  14. package/dist/server/analysis/grammars.js.map +1 -0
  15. package/dist/server/analysis/index.d.ts +8 -0
  16. package/dist/server/analysis/index.d.ts.map +1 -0
  17. package/dist/server/analysis/index.js +86 -0
  18. package/dist/server/analysis/index.js.map +1 -0
  19. package/dist/server/analysis/tree-sitter.d.ts +20 -0
  20. package/dist/server/analysis/tree-sitter.d.ts.map +1 -0
  21. package/dist/server/analysis/tree-sitter.js +126 -0
  22. package/dist/server/analysis/tree-sitter.js.map +1 -0
  23. package/dist/server/analysis/ts-morph.d.ts +17 -0
  24. package/dist/server/analysis/ts-morph.d.ts.map +1 -0
  25. package/dist/server/analysis/ts-morph.js +143 -0
  26. package/dist/server/analysis/ts-morph.js.map +1 -0
  27. package/dist/server/analysis/types.d.ts +7 -0
  28. package/dist/server/analysis/types.d.ts.map +1 -0
  29. package/dist/server/analysis/types.js +9 -0
  30. package/dist/server/analysis/types.js.map +1 -0
  31. package/dist/server/api.d.ts +14 -0
  32. package/dist/server/api.d.ts.map +1 -0
  33. package/dist/server/api.js +121 -0
  34. package/dist/server/api.js.map +1 -0
  35. package/dist/server/diagram/cache.d.ts +23 -0
  36. package/dist/server/diagram/cache.d.ts.map +1 -0
  37. package/dist/server/diagram/cache.js +158 -0
  38. package/dist/server/diagram/cache.js.map +1 -0
  39. package/dist/server/diagram/endpoint.d.ts +21 -0
  40. package/dist/server/diagram/endpoint.d.ts.map +1 -0
  41. package/dist/server/diagram/endpoint.js +426 -0
  42. package/dist/server/diagram/endpoint.js.map +1 -0
  43. package/dist/server/diagram/generate.d.ts +220 -0
  44. package/dist/server/diagram/generate.d.ts.map +1 -0
  45. package/dist/server/diagram/generate.js +605 -0
  46. package/dist/server/diagram/generate.js.map +1 -0
  47. package/dist/server/diagram/prompt-version.d.ts +2 -0
  48. package/dist/server/diagram/prompt-version.d.ts.map +1 -0
  49. package/dist/server/diagram/prompt-version.js +47 -0
  50. package/dist/server/diagram/prompt-version.js.map +1 -0
  51. package/dist/server/diagram/prompts/diagram-spec.md +315 -0
  52. package/dist/server/diagram/scope-resolver.d.ts +44 -0
  53. package/dist/server/diagram/scope-resolver.d.ts.map +1 -0
  54. package/dist/server/diagram/scope-resolver.js +198 -0
  55. package/dist/server/diagram/scope-resolver.js.map +1 -0
  56. package/dist/server/diagram/spawn.d.ts +18 -0
  57. package/dist/server/diagram/spawn.d.ts.map +1 -0
  58. package/dist/server/diagram/spawn.js +103 -0
  59. package/dist/server/diagram/spawn.js.map +1 -0
  60. package/dist/server/index.d.ts +2 -0
  61. package/dist/server/index.d.ts.map +1 -0
  62. package/dist/server/index.js +2 -0
  63. package/dist/server/index.js.map +1 -0
  64. package/dist/server/input/path-selector.d.ts +8 -0
  65. package/dist/server/input/path-selector.d.ts.map +1 -0
  66. package/dist/server/input/path-selector.js +45 -0
  67. package/dist/server/input/path-selector.js.map +1 -0
  68. package/dist/server/server.d.ts +14 -0
  69. package/dist/server/server.d.ts.map +1 -0
  70. package/dist/server/server.js +79 -0
  71. package/dist/server/server.js.map +1 -0
  72. package/dist/server/tsconfig.tsbuildinfo +1 -0
  73. package/dist/shared/analysis-schema.d.ts +120 -0
  74. package/dist/shared/analysis-schema.d.ts.map +1 -0
  75. package/dist/shared/analysis-schema.js +43 -0
  76. package/dist/shared/analysis-schema.js.map +1 -0
  77. package/dist/shared/design/index.d.ts +6 -0
  78. package/dist/shared/design/index.d.ts.map +1 -0
  79. package/dist/shared/design/index.js +7 -0
  80. package/dist/shared/design/index.js.map +1 -0
  81. package/dist/shared/design/kinds.d.ts +26 -0
  82. package/dist/shared/design/kinds.d.ts.map +1 -0
  83. package/dist/shared/design/kinds.js +141 -0
  84. package/dist/shared/design/kinds.js.map +1 -0
  85. package/dist/shared/design/lenses.d.ts +11 -0
  86. package/dist/shared/design/lenses.d.ts.map +1 -0
  87. package/dist/shared/design/lenses.js +36 -0
  88. package/dist/shared/design/lenses.js.map +1 -0
  89. package/dist/shared/design/node-styles.d.ts +24 -0
  90. package/dist/shared/design/node-styles.d.ts.map +1 -0
  91. package/dist/shared/design/node-styles.js +150 -0
  92. package/dist/shared/design/node-styles.js.map +1 -0
  93. package/dist/shared/design/prompt-fragments.d.ts +4 -0
  94. package/dist/shared/design/prompt-fragments.d.ts.map +1 -0
  95. package/dist/shared/design/prompt-fragments.js +45 -0
  96. package/dist/shared/design/prompt-fragments.js.map +1 -0
  97. package/dist/shared/design/tokens.d.ts +102 -0
  98. package/dist/shared/design/tokens.d.ts.map +1 -0
  99. package/dist/shared/design/tokens.js +110 -0
  100. package/dist/shared/design/tokens.js.map +1 -0
  101. package/dist/shared/diagram-spec.d.ts +914 -0
  102. package/dist/shared/diagram-spec.d.ts.map +1 -0
  103. package/dist/shared/diagram-spec.js +173 -0
  104. package/dist/shared/diagram-spec.js.map +1 -0
  105. package/dist/shared/index.d.ts +2 -0
  106. package/dist/shared/index.d.ts.map +1 -0
  107. package/dist/shared/index.js +2 -0
  108. package/dist/shared/index.js.map +1 -0
  109. package/dist/shared/tsconfig.tsbuildinfo +1 -0
  110. package/dist/web/assets/abap-BdImnpbu.js +1 -0
  111. package/dist/web/assets/actionscript-3-CoDkCxhg.js +1 -0
  112. package/dist/web/assets/ada-bCR0ucgS.js +1 -0
  113. package/dist/web/assets/andromeeda-C4gqWexZ.js +1 -0
  114. package/dist/web/assets/angular-html-DMxchsRu.js +1 -0
  115. package/dist/web/assets/angular-ts-DzOHUlBM.js +1 -0
  116. package/dist/web/assets/apache-Pmp26Uib.js +1 -0
  117. package/dist/web/assets/apex-D8_7TLub.js +1 -0
  118. package/dist/web/assets/apl-dKokRX4l.js +1 -0
  119. package/dist/web/assets/applescript-Co6uUVPk.js +1 -0
  120. package/dist/web/assets/ara-BRHolxvo.js +1 -0
  121. package/dist/web/assets/asciidoc-Ve4PFQV2.js +1 -0
  122. package/dist/web/assets/asm-D_Q5rh1f.js +1 -0
  123. package/dist/web/assets/astro-CbQHKStN.js +1 -0
  124. package/dist/web/assets/aurora-x-D-2ljcwZ.js +1 -0
  125. package/dist/web/assets/awk-DMzUqQB5.js +1 -0
  126. package/dist/web/assets/ayu-dark-DYE7WIF3.js +1 -0
  127. package/dist/web/assets/ayu-light-BA47KaF1.js +1 -0
  128. package/dist/web/assets/ayu-mirage-32ctXXKs.js +1 -0
  129. package/dist/web/assets/ballerina-BFfxhgS-.js +1 -0
  130. package/dist/web/assets/bat-BkioyH1T.js +1 -0
  131. package/dist/web/assets/beancount-k_qm7-4y.js +1 -0
  132. package/dist/web/assets/berry-uYugtg8r.js +1 -0
  133. package/dist/web/assets/bibtex-CHM0blh-.js +1 -0
  134. package/dist/web/assets/bicep-Bmn6On1c.js +1 -0
  135. package/dist/web/assets/bird2-DPOp833l.js +1 -0
  136. package/dist/web/assets/blade-D4QpJJKB.js +1 -0
  137. package/dist/web/assets/bsl-BO_Y6i37.js +1 -0
  138. package/dist/web/assets/c-BIGW1oBm.js +1 -0
  139. package/dist/web/assets/c3-eo99z4R2.js +1 -0
  140. package/dist/web/assets/cadence-Bv_4Rxtq.js +1 -0
  141. package/dist/web/assets/cairo-KRGpt6FW.js +1 -0
  142. package/dist/web/assets/catppuccin-frappe-DFWUc33u.js +1 -0
  143. package/dist/web/assets/catppuccin-latte-C9dUb6Cb.js +1 -0
  144. package/dist/web/assets/catppuccin-macchiato-DQyhUUbL.js +1 -0
  145. package/dist/web/assets/catppuccin-mocha-D87Tk5Gz.js +1 -0
  146. package/dist/web/assets/clarity-D53aC0YG.js +1 -0
  147. package/dist/web/assets/clojure-P80f7IUj.js +1 -0
  148. package/dist/web/assets/cmake-D1j8_8rp.js +1 -0
  149. package/dist/web/assets/cobol-nwyudZeR.js +1 -0
  150. package/dist/web/assets/codeowners-Bp6g37R7.js +1 -0
  151. package/dist/web/assets/codeql-DsOJ9woJ.js +1 -0
  152. package/dist/web/assets/coffee-Ch7k5sss.js +1 -0
  153. package/dist/web/assets/common-lisp-Cg-RD9OK.js +1 -0
  154. package/dist/web/assets/coq-DkFqJrB1.js +1 -0
  155. package/dist/web/assets/cpp-CofmeUqb.js +1 -0
  156. package/dist/web/assets/crystal-tKQVLTB8.js +1 -0
  157. package/dist/web/assets/csharp-COcwbKMJ.js +1 -0
  158. package/dist/web/assets/css-DPfMkruS.js +1 -0
  159. package/dist/web/assets/csv-fuZLfV_i.js +1 -0
  160. package/dist/web/assets/cue-D82EKSYY.js +1 -0
  161. package/dist/web/assets/cypher-COkxafJQ.js +1 -0
  162. package/dist/web/assets/d-85-TOEBH.js +1 -0
  163. package/dist/web/assets/dark-plus-C3mMm8J8.js +1 -0
  164. package/dist/web/assets/dart-CF10PKvl.js +1 -0
  165. package/dist/web/assets/dax-CEL-wOlO.js +1 -0
  166. package/dist/web/assets/desktop-BmXAJ9_W.js +1 -0
  167. package/dist/web/assets/diff-D97Zzqfu.js +1 -0
  168. package/dist/web/assets/docker-BcOcwvcX.js +1 -0
  169. package/dist/web/assets/dotenv-Da5cRb03.js +1 -0
  170. package/dist/web/assets/dracula-BzJJZx-M.js +1 -0
  171. package/dist/web/assets/dracula-soft-BXkSAIEj.js +1 -0
  172. package/dist/web/assets/dream-maker-BtqSS_iP.js +1 -0
  173. package/dist/web/assets/edge-BkV0erSs.js +1 -0
  174. package/dist/web/assets/elixir-CDX3lj18.js +1 -0
  175. package/dist/web/assets/elm-DbKCFpqz.js +1 -0
  176. package/dist/web/assets/emacs-lisp-C9XAeP06.js +1 -0
  177. package/dist/web/assets/erb-B12qg9BL.js +1 -0
  178. package/dist/web/assets/erlang-DsQrWhSR.js +1 -0
  179. package/dist/web/assets/everforest-dark-BgDCqdQA.js +1 -0
  180. package/dist/web/assets/everforest-light-C8M2exoo.js +1 -0
  181. package/dist/web/assets/fennel-BYunw83y.js +1 -0
  182. package/dist/web/assets/fish-BvzEVeQv.js +1 -0
  183. package/dist/web/assets/fluent-C4IJs8-o.js +1 -0
  184. package/dist/web/assets/fortran-fixed-form-CkoXwp7k.js +1 -0
  185. package/dist/web/assets/fortran-free-form-BxgE0vQu.js +1 -0
  186. package/dist/web/assets/fsharp-CXgrBDvD.js +1 -0
  187. package/dist/web/assets/gdresource-BOOCDP_w.js +1 -0
  188. package/dist/web/assets/gdscript-C5YyOfLZ.js +1 -0
  189. package/dist/web/assets/gdshader-DkwncUOv.js +1 -0
  190. package/dist/web/assets/genie-D0YGMca9.js +1 -0
  191. package/dist/web/assets/gherkin-DyxjwDmM.js +1 -0
  192. package/dist/web/assets/git-commit-F4YmCXRG.js +1 -0
  193. package/dist/web/assets/git-rebase-r7XF79zn.js +1 -0
  194. package/dist/web/assets/github-dark-DHJKELXO.js +1 -0
  195. package/dist/web/assets/github-dark-default-Cuk6v7N8.js +1 -0
  196. package/dist/web/assets/github-dark-dimmed-DH5Ifo-i.js +1 -0
  197. package/dist/web/assets/github-dark-high-contrast-E3gJ1_iC.js +1 -0
  198. package/dist/web/assets/github-light-DAi9KRSo.js +1 -0
  199. package/dist/web/assets/github-light-default-D7oLnXFd.js +1 -0
  200. package/dist/web/assets/github-light-high-contrast-BfjtVDDH.js +1 -0
  201. package/dist/web/assets/gleam-BspZqrRM.js +1 -0
  202. package/dist/web/assets/glimmer-js-Rg0-pVw9.js +1 -0
  203. package/dist/web/assets/glimmer-ts-U6CK756n.js +1 -0
  204. package/dist/web/assets/glsl-DplSGwfg.js +1 -0
  205. package/dist/web/assets/gn-n2N0HUVH.js +1 -0
  206. package/dist/web/assets/gnuplot-DdkO51Og.js +1 -0
  207. package/dist/web/assets/go-CxLEBnE3.js +1 -0
  208. package/dist/web/assets/graphql-ChdNCCLP.js +1 -0
  209. package/dist/web/assets/groovy-gcz8RCvz.js +1 -0
  210. package/dist/web/assets/gruvbox-dark-hard-CFHQjOhq.js +1 -0
  211. package/dist/web/assets/gruvbox-dark-medium-GsRaNv29.js +1 -0
  212. package/dist/web/assets/gruvbox-dark-soft-CVdnzihN.js +1 -0
  213. package/dist/web/assets/gruvbox-light-hard-CH1njM8p.js +1 -0
  214. package/dist/web/assets/gruvbox-light-medium-DRw_LuNl.js +1 -0
  215. package/dist/web/assets/gruvbox-light-soft-hJgmCMqR.js +1 -0
  216. package/dist/web/assets/hack-CaT9iCJl.js +1 -0
  217. package/dist/web/assets/haml-B8DHNrY2.js +1 -0
  218. package/dist/web/assets/handlebars-BL8al0AC.js +1 -0
  219. package/dist/web/assets/haskell-Df6bDoY_.js +1 -0
  220. package/dist/web/assets/haxe-CzTSHFRz.js +1 -0
  221. package/dist/web/assets/hcl-BWvSN4gD.js +1 -0
  222. package/dist/web/assets/hjson-D5-asLiD.js +1 -0
  223. package/dist/web/assets/hlsl-D3lLCCz7.js +1 -0
  224. package/dist/web/assets/horizon-BUw7H-hv.js +1 -0
  225. package/dist/web/assets/horizon-bright-Cn-bp-IR.js +1 -0
  226. package/dist/web/assets/houston-DnULxvSX.js +1 -0
  227. package/dist/web/assets/html-GMplVEZG.js +1 -0
  228. package/dist/web/assets/html-derivative-BFtXZ54Q.js +1 -0
  229. package/dist/web/assets/http-jrhK8wxY.js +1 -0
  230. package/dist/web/assets/hurl-irOxFIW8.js +1 -0
  231. package/dist/web/assets/hxml-Bvhsp5Yf.js +1 -0
  232. package/dist/web/assets/hy-DFXneXwc.js +1 -0
  233. package/dist/web/assets/imba-DGztddWO.js +1 -0
  234. package/dist/web/assets/index-B4-Q-CcM.js +88 -0
  235. package/dist/web/assets/index-DtQV41FL.css +1 -0
  236. package/dist/web/assets/ini-BEwlwnbL.js +1 -0
  237. package/dist/web/assets/java-CylS5w8V.js +1 -0
  238. package/dist/web/assets/javascript-wDzz0qaB.js +1 -0
  239. package/dist/web/assets/jinja-4LBKfQ-Z.js +1 -0
  240. package/dist/web/assets/jison-wvAkD_A8.js +1 -0
  241. package/dist/web/assets/json-Cp-IABpG.js +1 -0
  242. package/dist/web/assets/json5-C9tS-k6U.js +1 -0
  243. package/dist/web/assets/jsonc-Des-eS-w.js +1 -0
  244. package/dist/web/assets/jsonl-DcaNXYhu.js +1 -0
  245. package/dist/web/assets/jsonnet-DFQXde-d.js +1 -0
  246. package/dist/web/assets/jssm-C2t-YnRu.js +1 -0
  247. package/dist/web/assets/jsx-g9-lgVsj.js +1 -0
  248. package/dist/web/assets/julia-CxzCAyBv.js +1 -0
  249. package/dist/web/assets/just-Cw27pwNe.js +1 -0
  250. package/dist/web/assets/kanagawa-dragon-CkXjmgJE.js +1 -0
  251. package/dist/web/assets/kanagawa-lotus-CfQXZHmo.js +1 -0
  252. package/dist/web/assets/kanagawa-wave-DWedfzmr.js +1 -0
  253. package/dist/web/assets/kdl-DV7GczEv.js +1 -0
  254. package/dist/web/assets/kotlin-BdnUsdx6.js +1 -0
  255. package/dist/web/assets/kusto-DZf3V79B.js +1 -0
  256. package/dist/web/assets/laserwave-DUszq2jm.js +1 -0
  257. package/dist/web/assets/latex-CWtU0Tv5.js +1 -0
  258. package/dist/web/assets/lean-BZvkOJ9d.js +1 -0
  259. package/dist/web/assets/less-B1dDrJ26.js +1 -0
  260. package/dist/web/assets/light-plus-B7mTdjB0.js +1 -0
  261. package/dist/web/assets/liquid-DYVedYrR.js +1 -0
  262. package/dist/web/assets/llvm-DjAJT7YJ.js +1 -0
  263. package/dist/web/assets/log-2UxHyX5q.js +1 -0
  264. package/dist/web/assets/logo-BtOb2qkB.js +1 -0
  265. package/dist/web/assets/lua-BaeVxFsk.js +1 -0
  266. package/dist/web/assets/luau-C-HG3fhB.js +1 -0
  267. package/dist/web/assets/make-CHLpvVh8.js +1 -0
  268. package/dist/web/assets/markdown-Cvjx9yec.js +1 -0
  269. package/dist/web/assets/marko-CnJfTvn9.js +1 -0
  270. package/dist/web/assets/material-theme-D5KoaKCx.js +1 -0
  271. package/dist/web/assets/material-theme-darker-BfHTSMKl.js +1 -0
  272. package/dist/web/assets/material-theme-lighter-B0m2ddpp.js +1 -0
  273. package/dist/web/assets/material-theme-ocean-CyktbL80.js +1 -0
  274. package/dist/web/assets/material-theme-palenight-Csfq5Kiy.js +1 -0
  275. package/dist/web/assets/matlab-D7o27uSR.js +1 -0
  276. package/dist/web/assets/mdc-BMNejdWA.js +1 -0
  277. package/dist/web/assets/mdx-Cmh6b_Ma.js +1 -0
  278. package/dist/web/assets/mermaid-mWjccvbQ.js +1 -0
  279. package/dist/web/assets/min-dark-CafNBF8u.js +1 -0
  280. package/dist/web/assets/min-light-CTRr51gU.js +1 -0
  281. package/dist/web/assets/mipsasm-CKIfxQSi.js +1 -0
  282. package/dist/web/assets/mojo-rZm6bMo-.js +1 -0
  283. package/dist/web/assets/monokai-D4h5O-jR.js +1 -0
  284. package/dist/web/assets/moonbit-_H4v1dQx.js +1 -0
  285. package/dist/web/assets/move-IF9eRakj.js +1 -0
  286. package/dist/web/assets/narrat-DRg8JJMk.js +1 -0
  287. package/dist/web/assets/nextflow-Zz6hmt5N.js +1 -0
  288. package/dist/web/assets/nextflow-groovy-BeH2EWoN.js +1 -0
  289. package/dist/web/assets/nginx-BpAMiNFr.js +1 -0
  290. package/dist/web/assets/night-owl-C39BiMTA.js +1 -0
  291. package/dist/web/assets/night-owl-light-CMTm3GFP.js +1 -0
  292. package/dist/web/assets/nim-CVrawwO9.js +1 -0
  293. package/dist/web/assets/nix-CwoSXNpI.js +1 -0
  294. package/dist/web/assets/nord-Ddv68eIx.js +1 -0
  295. package/dist/web/assets/nushell-Cz2AlsmD.js +1 -0
  296. package/dist/web/assets/objective-c-DXmwc3jG.js +1 -0
  297. package/dist/web/assets/objective-cpp-CLxacb5B.js +1 -0
  298. package/dist/web/assets/ocaml-C0hk2d4L.js +1 -0
  299. package/dist/web/assets/odin-BBf5iR-q.js +1 -0
  300. package/dist/web/assets/one-dark-pro-DVMEJ2y_.js +1 -0
  301. package/dist/web/assets/one-light-C3Wv6jpd.js +1 -0
  302. package/dist/web/assets/openscad-C4EeE6gA.js +1 -0
  303. package/dist/web/assets/pascal-D93ZcfNL.js +1 -0
  304. package/dist/web/assets/perl-C0TMdlhV.js +1 -0
  305. package/dist/web/assets/php-Dhbhpdrm.js +1 -0
  306. package/dist/web/assets/pkl-u5AG7uiY.js +1 -0
  307. package/dist/web/assets/plastic-3e1v2bzS.js +1 -0
  308. package/dist/web/assets/plsql-ChMvpjG-.js +1 -0
  309. package/dist/web/assets/po-BTJTHyun.js +1 -0
  310. package/dist/web/assets/poimandres-CS3Unz2-.js +1 -0
  311. package/dist/web/assets/polar-C0HS_06l.js +1 -0
  312. package/dist/web/assets/postcss-CXtECtnM.js +1 -0
  313. package/dist/web/assets/powerquery-CEu0bR-o.js +1 -0
  314. package/dist/web/assets/powershell-Dpen1YoG.js +1 -0
  315. package/dist/web/assets/prisma-Dd19v3D-.js +1 -0
  316. package/dist/web/assets/prolog-CbFg5uaA.js +1 -0
  317. package/dist/web/assets/proto-C7zT0LnQ.js +1 -0
  318. package/dist/web/assets/pug-CGlum2m_.js +1 -0
  319. package/dist/web/assets/puppet-BMWR74SV.js +1 -0
  320. package/dist/web/assets/purescript-CklMAg4u.js +1 -0
  321. package/dist/web/assets/python-B6aJPvgy.js +1 -0
  322. package/dist/web/assets/qml-3beO22l8.js +1 -0
  323. package/dist/web/assets/qmldir-C8lEn-DE.js +1 -0
  324. package/dist/web/assets/qss-IeuSbFQv.js +1 -0
  325. package/dist/web/assets/r-Dspwwk_N.js +1 -0
  326. package/dist/web/assets/racket-BqYA7rlc.js +1 -0
  327. package/dist/web/assets/raku-DXvB9xmW.js +1 -0
  328. package/dist/web/assets/razor-Uh8Bk_45.js +1 -0
  329. package/dist/web/assets/red-bN70gL4F.js +1 -0
  330. package/dist/web/assets/reg-C-SQnVFl.js +1 -0
  331. package/dist/web/assets/regexp-CDVJQ6XC.js +1 -0
  332. package/dist/web/assets/rel-C3B-1QV4.js +1 -0
  333. package/dist/web/assets/riscv-BM1_JUlF.js +1 -0
  334. package/dist/web/assets/ron-D8l8udqQ.js +1 -0
  335. package/dist/web/assets/rose-pine-dawn-DHQR4-dF.js +1 -0
  336. package/dist/web/assets/rose-pine-moon-D4_iv3hh.js +1 -0
  337. package/dist/web/assets/rose-pine-qdsjHGoJ.js +1 -0
  338. package/dist/web/assets/rosmsg-BJDFO7_C.js +1 -0
  339. package/dist/web/assets/rst-BrH8l1NY.js +1 -0
  340. package/dist/web/assets/ruby-Dw2BHqvy.js +1 -0
  341. package/dist/web/assets/rust-B1yitclQ.js +1 -0
  342. package/dist/web/assets/sas-cz2c8ADy.js +1 -0
  343. package/dist/web/assets/sass-Cj5Yp3dK.js +1 -0
  344. package/dist/web/assets/scala-C151Ov-r.js +1 -0
  345. package/dist/web/assets/scheme-C98Dy4si.js +1 -0
  346. package/dist/web/assets/scss-OYdSNvt2.js +1 -0
  347. package/dist/web/assets/sdbl-DVxCFoDh.js +1 -0
  348. package/dist/web/assets/shaderlab-Dg9Lc6iA.js +1 -0
  349. package/dist/web/assets/shellscript-Yzrsuije.js +1 -0
  350. package/dist/web/assets/shellsession-BADoaaVG.js +1 -0
  351. package/dist/web/assets/slack-dark-BthQWCQV.js +1 -0
  352. package/dist/web/assets/slack-ochin-DqwNpetd.js +1 -0
  353. package/dist/web/assets/smalltalk-BERRCDM3.js +1 -0
  354. package/dist/web/assets/snazzy-light-Bw305WKR.js +1 -0
  355. package/dist/web/assets/solarized-dark-DXbdFlpD.js +1 -0
  356. package/dist/web/assets/solarized-light-L9t79GZl.js +1 -0
  357. package/dist/web/assets/solidity-rGO070M0.js +1 -0
  358. package/dist/web/assets/soy-Brmx7dQM.js +1 -0
  359. package/dist/web/assets/sparql-rVzFXLq3.js +1 -0
  360. package/dist/web/assets/splunk-BtCnVYZw.js +1 -0
  361. package/dist/web/assets/sql-BLtJtn59.js +1 -0
  362. package/dist/web/assets/ssh-config-_ykCGR6B.js +1 -0
  363. package/dist/web/assets/stata-BH5u7GGu.js +1 -0
  364. package/dist/web/assets/stylus-BEDo0Tqx.js +1 -0
  365. package/dist/web/assets/surrealql-Bq5Q-fJD.js +1 -0
  366. package/dist/web/assets/svelte-C_ipcX3V.js +1 -0
  367. package/dist/web/assets/swift-D82vCrfD.js +1 -0
  368. package/dist/web/assets/synthwave-84-CbfX1IO0.js +1 -0
  369. package/dist/web/assets/system-verilog-CnnmHF94.js +1 -0
  370. package/dist/web/assets/systemd-4A_iFExJ.js +1 -0
  371. package/dist/web/assets/talonscript-CkByrt1z.js +1 -0
  372. package/dist/web/assets/tasl-QIJgUcNo.js +1 -0
  373. package/dist/web/assets/tcl-dwOrl1Do.js +1 -0
  374. package/dist/web/assets/templ-P3uqSqPl.js +1 -0
  375. package/dist/web/assets/terraform-BETggiCN.js +1 -0
  376. package/dist/web/assets/tex-idrVyKtj.js +1 -0
  377. package/dist/web/assets/tokyo-night-hegEt444.js +1 -0
  378. package/dist/web/assets/toml-vGWfd6FD.js +1 -0
  379. package/dist/web/assets/ts-tags-zn1MmPIZ.js +1 -0
  380. package/dist/web/assets/tsv-B_m7g4N7.js +1 -0
  381. package/dist/web/assets/tsx-COt5Ahok.js +1 -0
  382. package/dist/web/assets/turtle-BsS91CYL.js +1 -0
  383. package/dist/web/assets/twig-DNn4PbVi.js +1 -0
  384. package/dist/web/assets/typescript-BPQ3VLAy.js +1 -0
  385. package/dist/web/assets/typespec-BGHnOYBU.js +1 -0
  386. package/dist/web/assets/typst-DHCkPAjA.js +1 -0
  387. package/dist/web/assets/v-BcVCzyr7.js +1 -0
  388. package/dist/web/assets/vala-CsfeWuGM.js +1 -0
  389. package/dist/web/assets/vb-D17OF-Vu.js +1 -0
  390. package/dist/web/assets/verilog-BQ8w6xss.js +1 -0
  391. package/dist/web/assets/vesper-DU1UobuO.js +1 -0
  392. package/dist/web/assets/vhdl-CeAyd5Ju.js +1 -0
  393. package/dist/web/assets/viml-CJc9bBzg.js +1 -0
  394. package/dist/web/assets/vitesse-black-Bkuqu6BP.js +1 -0
  395. package/dist/web/assets/vitesse-dark-D0r3Knsf.js +1 -0
  396. package/dist/web/assets/vitesse-light-CVO1_9PV.js +1 -0
  397. package/dist/web/assets/vue-DN_0RTcg.js +1 -0
  398. package/dist/web/assets/vue-html-AaS7Mt5G.js +1 -0
  399. package/dist/web/assets/vue-vine-CQOfvN7w.js +1 -0
  400. package/dist/web/assets/vyper-CDx5xZoG.js +1 -0
  401. package/dist/web/assets/wasm-CG6Dc4jp.js +1 -0
  402. package/dist/web/assets/wasm-MzD3tlZU.js +1 -0
  403. package/dist/web/assets/wenyan-BV7otONQ.js +1 -0
  404. package/dist/web/assets/wgsl-Dx-B1_4e.js +1 -0
  405. package/dist/web/assets/wikitext-BhOHFoWU.js +1 -0
  406. package/dist/web/assets/wit-5i3qLPDT.js +1 -0
  407. package/dist/web/assets/wolfram-lXgVvXCa.js +1 -0
  408. package/dist/web/assets/xml-sdJ4AIDG.js +1 -0
  409. package/dist/web/assets/xsl-CtQFsRM5.js +1 -0
  410. package/dist/web/assets/yaml-Buea-lGh.js +1 -0
  411. package/dist/web/assets/zenscript-DVFEvuxE.js +1 -0
  412. package/dist/web/assets/zig-VOosw3JB.js +1 -0
  413. package/dist/web/index.html +13 -0
  414. package/package.json +56 -0
package/README.md ADDED
@@ -0,0 +1,154 @@
1
+ # mochi
2
+
3
+ **Diagram-first behavioral views of local code.**
4
+
5
+ Drop in a path. Mochi opens a browser viewer, lets you pick a file (or
6
+ directory, or a few coordinating files), and asks Claude to produce a
7
+ steppable diagram of how that code *behaves*. Four lenses — flow,
8
+ state, architecture, protocol — picked per scope automatically, with
9
+ one-click switching between alternatives. Each diagram has 6–15 curated
10
+ steps with causal "WHY" narration and code-anchored highlights.
11
+
12
+ ## Install
13
+
14
+ Once published to npm, the typical entry is npx — installs on first run,
15
+ points at the current directory by default:
16
+
17
+ ```bash
18
+ cd ~/some-codebase
19
+ npx @mquan/mochi # equivalent to: npx @mquan/mochi .
20
+ npx @mquan/mochi src/ # pin to a subdirectory
21
+ npx @mquan/mochi -p 6000 # pick a port
22
+ ```
23
+
24
+ > The plain `mochi` slot on npm is taken by an old test runner — publish
25
+ > under a scope (e.g. `@mquan/mochi`) and adjust `package.json#name` to
26
+ > match before `npm publish --access public`.
27
+
28
+ For a local clone (until then):
29
+
30
+ ```bash
31
+ git clone git@github.com:mquan/mochi.git
32
+ cd mochi
33
+ nvm use # picks Node 24.15.0 from .nvmrc
34
+ npm install
35
+ npm run build
36
+ ./dist/bin/mochi.js # current directory
37
+ ./dist/bin/mochi.js src/ # or any path
38
+ ```
39
+
40
+ ## Setup
41
+
42
+ Mochi reuses your Claude Code session via the `claude` CLI as a subprocess
43
+ — there is **no separate `ANTHROPIC_API_KEY`** to manage and no separate
44
+ billing surface.
45
+
46
+ Requirements:
47
+
48
+ - Node.js ≥ 24.15.0 (a `.nvmrc` is pinned to `24.15.0`; `nvm use` picks it up)
49
+ - [Claude Code](https://claude.com/claude-code) installed and on your `PATH`
50
+ - Run `claude /login` once
51
+
52
+ Mochi probes for `claude --version` at startup and exits with a clear
53
+ message if the CLI is missing or unauthenticated.
54
+
55
+ ## First diagram
56
+
57
+ ```bash
58
+ npx @mquan/mochi # or ./dist/bin/mochi.js from a local clone
59
+ ```
60
+
61
+ The browser opens (server binds to `127.0.0.1` on the first free port at
62
+ or above 5173). Then:
63
+
64
+ 1. Click any file in the tree on the left — code appears in the **Code** tab.
65
+ 2. Optionally type an intent in the bar at the top — e.g. *"how does auth
66
+ work"*, *"trace a request"*.
67
+ 3. Hit **Generate**.
68
+
69
+ A new **Diagram** tab opens, streams progress (resolving scope → indexed →
70
+ asking Claude → validating), and renders the spec. You can:
71
+
72
+ - **Click a block** in the diagram → switches back to the Code tab and
73
+ scrolls to the anchored lines.
74
+ - **Click a Protocol / State / Architecture pill** in the lens switcher →
75
+ re-asks Claude using that lens for the same scope.
76
+ - **Click ▶ Play** below the diagram → walks through the steps with
77
+ narration.
78
+ - **Click ✕** on any Diagram tab → closes it (and cancels its in-flight
79
+ stream if still running).
80
+
81
+ Each Generate opens a *new* Diagram tab — old diagrams aren't overwritten.
82
+
83
+ ## Lenses
84
+
85
+ - **Flow** — step-by-step execution path through a single function or file.
86
+ Branches, loops, early returns.
87
+ - **State** — states and transitions of a stateful entity. Sessions,
88
+ workflows, finite-state machines.
89
+ - **Architecture** — deployable units (services, modules, components) and
90
+ how they communicate. Pick a directory or a handful of files.
91
+ - **Protocol** — message exchanges between participants over time.
92
+ Swim-lane sequence view. Pick two or more coordinating files.
93
+
94
+ Mochi includes `alternative_lenses` in every spec, so you can pivot from
95
+ "this is a flow" to "show me it as a state machine" in one click.
96
+
97
+ ## Troubleshooting
98
+
99
+ - **"Claude can't authenticate"** — run `claude /login` and retry.
100
+ - **"Scope is too large"** — narrow the selection. Multi-file scopes work
101
+ best with 2–5 closely-related files.
102
+ - **"Nothing useful to diagram here"** — Claude returned an empty spec.
103
+ Try a different file, or add an intent to focus the question.
104
+ - **`claude` not found at startup** — install Claude Code and ensure
105
+ it's on your `PATH`.
106
+ - **Stale cache** — caching is keyed by the SHA-256 of the resolved scope
107
+ + prompt version. Edit the file (or bump `PROMPT_VERSION` in
108
+ `server/diagram/prompt-version.ts`) to invalidate.
109
+
110
+ ## Development
111
+
112
+ ```bash
113
+ nvm use # picks Node 24.15.0 from .nvmrc
114
+ npm install
115
+ ```
116
+
117
+ **Build + run** — the standard loop after every change to server, prompts,
118
+ or generated assets (tokens, prompt template):
119
+
120
+ ```bash
121
+ npm run build # tsc + vite + gen-prompt + gen-tokens-css
122
+ node ./dist/bin/mochi.js . # boot the server pointing at the cwd
123
+ ```
124
+
125
+ Open the URL the server logs (defaults to `http://127.0.0.1:5173`).
126
+ Ctrl-C to stop.
127
+
128
+ **Fast iteration** — for web-only changes, use the dev server (Vite HMR +
129
+ tsx-watched server, no rebuild step):
130
+
131
+ ```bash
132
+ npm run dev
133
+ ```
134
+
135
+ **Tests:**
136
+
137
+ ```bash
138
+ npm run test # vitest — unit + integration
139
+ npm run smoke # spec-contract smoke (validates every lens fixture)
140
+ ```
141
+
142
+ ## Ship checks
143
+
144
+ ```bash
145
+ npm run build # production build
146
+ npm run smoke # spec-contract smoke
147
+ npm pack --dry-run # confirm tarball contents + size
148
+ ```
149
+
150
+ ## Status
151
+
152
+ v0.1.0 — first usable release. All four lenses render, multi-file +
153
+ directory scopes generate, code-anchored playback works, warnings + empty
154
+ states are handled.
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=mochi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mochi.d.ts","sourceRoot":"","sources":["../../bin/mochi.ts"],"names":[],"mappings":""}
@@ -0,0 +1,74 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from "commander";
3
+ import { spawnSync } from "node:child_process";
4
+ import { existsSync } from "node:fs";
5
+ import path from "node:path";
6
+ import open from "open";
7
+ import { selectFromPath } from "../server/input/path-selector.js";
8
+ import { findFreePort, startServer } from "../server/server.js";
9
+ const DEFAULT_PORT = 5173;
10
+ // Fail fast at startup if the claude CLI isn't usable, rather than at first
11
+ // /api/diagram request. ~50ms cost, no network, no LLM call.
12
+ function ensureClaudeCli() {
13
+ const probe = spawnSync("claude", ["--version"], { encoding: "utf8" });
14
+ if (probe.error && probe.error.code === "ENOENT") {
15
+ console.error("mochi: `claude` CLI not found on PATH.\n" +
16
+ " Install Claude Code (https://claude.com/claude-code), then\n" +
17
+ " run `claude /login` once. Mochi reuses your CC session — no\n" +
18
+ " separate API key required.");
19
+ process.exit(1);
20
+ }
21
+ if (probe.status !== 0) {
22
+ const stderr = (probe.stderr ?? "").trim();
23
+ console.error("mochi: `claude --version` exited " + String(probe.status) +
24
+ (stderr ? ": " + stderr : "") +
25
+ "\n Reinstall Claude Code or check your installation.");
26
+ process.exit(1);
27
+ }
28
+ }
29
+ async function main() {
30
+ ensureClaudeCli();
31
+ const program = new Command();
32
+ program
33
+ .name("mochi")
34
+ .description("Diagram-first behavioral views of local code")
35
+ .argument("[path]", "file or directory to view (default: current directory)", ".")
36
+ .option("-p, --port <n>", "preferred port (default 5173, increments if taken)", (v) => Number.parseInt(v, 10));
37
+ program.parse();
38
+ // commander always populates `args[0]` because the [path] default is ".".
39
+ const inputPath = program.args[0] ?? ".";
40
+ const opts = program.opts();
41
+ if (opts.port !== undefined) {
42
+ if (!Number.isInteger(opts.port) || opts.port < 1 || opts.port > 65535) {
43
+ console.error("mochi: --port must be an integer between 1 and 65535");
44
+ process.exit(1);
45
+ }
46
+ }
47
+ const absPath = path.resolve(inputPath);
48
+ if (!existsSync(absPath)) {
49
+ console.error("mochi: path not found: " + inputPath);
50
+ process.exit(1);
51
+ }
52
+ const { root, files } = await selectFromPath(absPath);
53
+ const port = await findFreePort(opts.port ?? DEFAULT_PORT);
54
+ const { server, url } = await startServer({ root, files, port });
55
+ console.log("mochi listening on " + url + " (" + files.length + " files indexed)");
56
+ console.log("Open in browser: " + url);
57
+ open(url).catch(() => {
58
+ // best-effort browser launch; failure is non-fatal
59
+ });
60
+ const shutdown = () => {
61
+ console.log("mochi: shutting down");
62
+ const forceExit = setTimeout(() => process.exit(0), 2000);
63
+ forceExit.unref();
64
+ server.close(() => process.exit(0));
65
+ };
66
+ process.once("SIGINT", shutdown);
67
+ process.once("SIGTERM", shutdown);
68
+ }
69
+ main().catch((err) => {
70
+ const msg = err instanceof Error ? err.message : String(err);
71
+ console.error(msg);
72
+ process.exit(1);
73
+ });
74
+ //# sourceMappingURL=mochi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mochi.js","sourceRoot":"","sources":["../../bin/mochi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../node_modules/typescript/lib/lib.scripthost.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/typescript/lib/lib.es2022.full.d.ts","../../node_modules/commander/typings/index.d.ts","../../node_modules/commander/typings/esm.d.mts","../../node_modules/open/index.d.ts","../server/input/path-selector.d.ts","../server/server.d.ts","../../bin/mochi.ts","../../node_modules/@types/node/compatibility/disposable.d.ts","../../node_modules/@types/node/compatibility/indexable.d.ts","../../node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/@types/node/compatibility/index.d.ts","../../node_modules/@types/node/globals.typedarray.d.ts","../../node_modules/@types/node/buffer.buffer.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../node_modules/@types/node/web-globals/domexception.d.ts","../../node_modules/@types/node/web-globals/events.d.ts","../../node_modules/undici-types/header.d.ts","../../node_modules/undici-types/readable.d.ts","../../node_modules/undici-types/file.d.ts","../../node_modules/undici-types/fetch.d.ts","../../node_modules/undici-types/formdata.d.ts","../../node_modules/undici-types/connector.d.ts","../../node_modules/undici-types/client.d.ts","../../node_modules/undici-types/errors.d.ts","../../node_modules/undici-types/dispatcher.d.ts","../../node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/undici-types/global-origin.d.ts","../../node_modules/undici-types/pool-stats.d.ts","../../node_modules/undici-types/pool.d.ts","../../node_modules/undici-types/handlers.d.ts","../../node_modules/undici-types/balanced-pool.d.ts","../../node_modules/undici-types/agent.d.ts","../../node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/undici-types/mock-agent.d.ts","../../node_modules/undici-types/mock-client.d.ts","../../node_modules/undici-types/mock-pool.d.ts","../../node_modules/undici-types/mock-errors.d.ts","../../node_modules/undici-types/proxy-agent.d.ts","../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/undici-types/retry-handler.d.ts","../../node_modules/undici-types/retry-agent.d.ts","../../node_modules/undici-types/api.d.ts","../../node_modules/undici-types/interceptors.d.ts","../../node_modules/undici-types/util.d.ts","../../node_modules/undici-types/cookies.d.ts","../../node_modules/undici-types/patch.d.ts","../../node_modules/undici-types/websocket.d.ts","../../node_modules/undici-types/eventsource.d.ts","../../node_modules/undici-types/filereader.d.ts","../../node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/undici-types/content-type.d.ts","../../node_modules/undici-types/cache.d.ts","../../node_modules/undici-types/index.d.ts","../../node_modules/@types/node/web-globals/fetch.d.ts","../../node_modules/@types/node/web-globals/navigator.d.ts","../../node_modules/@types/node/web-globals/storage.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/inspector.generated.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/readline/promises.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/sea.d.ts","../../node_modules/@types/node/sqlite.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/test.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/index.d.ts"],"fileIdsList":[[65,66,67,68,75,123,124,135,140,141,145],[75,123,140,141],[75,123,137,140,141],[75,120,121,123,140,141],[75,122,123,140,141],[123,140,141],[75,123,128,140,141,158],[75,123,124,129,134,140,141,143,155,166],[75,123,124,125,134,140,141,143],[70,71,72,75,123,140,141],[75,123,126,140,141,167],[75,123,127,128,135,140,141,144],[75,123,128,140,141,155,163],[75,123,129,131,134,140,141,143],[75,122,123,130,140,141],[75,123,131,132,140,141],[75,123,133,134,140,141],[75,122,123,134,140,141],[75,123,134,135,136,140,141,155,166],[75,123,134,135,136,140,141,150,155,158],[75,116,123,131,134,137,140,141,143,155,166],[75,123,134,135,137,138,140,141,143,155,163,166],[75,123,137,139,140,141,155,163,166],[73,74,75,76,77,78,79,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172],[75,123,134,140,141],[75,123,140,141,142,166],[75,123,131,134,140,141,143,155],[75,123,140,141,144],[75,123,140,141,145],[75,122,123,140,141,146],[75,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172],[75,123,140,141,148],[75,123,140,141,149],[75,123,134,140,141,150,151],[75,123,140,141,150,152,167,169],[75,123,135,140,141],[75,123,134,140,141,155,156,158],[75,123,140,141,157,158],[75,123,140,141,155,156],[75,123,140,141,158],[75,123,140,141,159],[75,120,123,140,141,155,160,166],[75,123,134,140,141,161,162],[75,123,140,141,161,162],[75,123,128,140,141,143,155,163],[75,123,140,141,164],[75,123,140,141,143,165],[75,123,137,140,141,149,166],[75,123,128,140,141,167],[75,123,140,141,155,168],[75,123,140,141,142,169],[75,123,140,141,170],[75,116,123,140,141],[75,116,123,134,136,140,141,146,155,158,166,168,169,171],[75,123,140,141,155,172],[64,75,123,140,141],[75,123,124,140,141],[75,88,92,123,140,141,166],[75,88,123,140,141,155,166],[75,83,123,140,141],[75,85,88,123,140,141,163,166],[75,123,140,141,143,163],[75,123,140,141,173],[75,83,123,140,141,173],[75,85,88,123,140,141,143,166],[75,80,81,84,87,123,134,140,141,155,166],[75,88,95,123,140,141],[75,80,86,123,140,141],[75,88,109,110,123,140,141],[75,84,88,123,140,141,158,166,173],[75,109,123,140,141,173],[75,82,83,123,140,141,173],[75,88,123,140,141],[75,82,83,84,85,86,87,88,89,90,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,110,111,112,113,114,115,123,140,141],[75,88,103,123,140,141],[75,88,95,96,123,140,141],[75,86,88,96,97,123,140,141],[75,87,123,140,141],[75,80,83,88,123,140,141],[75,88,92,96,97,123,140,141],[75,92,123,140,141],[75,86,88,91,123,140,141,166],[75,80,85,88,95,123,140,141],[75,123,140,141,155],[75,83,88,109,123,140,141,171,173]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"3cbad9a1ba4453443026ed38e4b8be018abb26565fa7c944376463ad9df07c41","impliedFormat":1},{"version":"a722a71d8f3cb0028857b12579c7eca55acc76bf34e5db7eaf6fe817b985f9c3","impliedFormat":1},{"version":"b124c0624b15412ace7d54644ade38d7a69db7e25488a1a4d2a8df6e11696538","impliedFormat":99},{"version":"0132e7a32bd600a3b6e0a5e59171a3706df2d1375ffbf6b2239f326a9b0dbaaf","impliedFormat":99},{"version":"5f15165276cfe0ea15049ae7e8a10c5254046a44702cc416af6f1e7539a189a2","impliedFormat":99},{"version":"7f4e75978366a10863a12ac36d74c75571898f59231cc06ab836d43d8e00afe7","impliedFormat":99},{"version":"116fbf110cfc6e665a2c54bc134686103e6cbd74af0753a3bf35c95d30fbefee","signature":"43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012","impliedFormat":99},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c906fb15bd2aabc9ed1e3f44eb6a8661199d6c320b3aa196b826121552cb3695","impliedFormat":1},{"version":"22295e8103f1d6d8ea4b5d6211e43421fe4564e34d0dd8e09e520e452d89e659","impliedFormat":1},{"version":"58647d85d0f722a1ce9de50955df60a7489f0593bf1a7015521efe901c06d770","impliedFormat":1},{"version":"73b5fa37db36eeac90c4d752e39586f1b57187400c4f5280fd05f16437287a45","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6f137d651076822d4fe884287e68fd61785a0d3d1fdb250a5059b691fa897db","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"bceb58df66ab8fb00170df20cd813978c5ab84be1d285710c4eb005d8e9d8efb","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"a3fc63c0d7b031693f665f5494412ba4b551fe644ededccc0ab5922401079c95","impliedFormat":1},{"version":"80523c00b8544a2000ae0143e4a90a00b47f99823eb7926c1e03c494216fc363","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"746911b62b329587939560deb5c036aca48aece03147b021fa680223255d5183","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"c8d3e5a18ba35629954e48c4cc8f11dc88224650067a172685c736b27a34a4dc","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"2b55d426ff2b9087485e52ac4bc7cfafe1dc420fc76dad926cd46526567c501a","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"47613031a5a31510831304405af561b0ffaedb734437c595256bb61a90f9311b","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"8a1a0d0a4a06a8d278947fcb66bf684f117bf147f89b06e50662d79a53be3e9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"358765d5ea8afd285d4fd1532e78b88273f18cb3f87403a9b16fef61ac9fdcfe","impliedFormat":1},{"version":"9f55299850d4f0921e79b6bf344b47c420ce0f507b9dcf593e532b09ea7eeea1","impliedFormat":1}],"root":[69],"options":{"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":199,"outDir":"./","rootDir":"../../bin","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9},"referencedMap":[[69,1],[67,2],[68,3],[120,4],[121,4],[122,5],[75,6],[123,7],[124,8],[125,9],[70,2],[73,10],[71,2],[72,2],[126,11],[127,12],[128,13],[129,14],[130,15],[131,16],[132,16],[133,17],[134,18],[135,19],[136,20],[76,2],[74,2],[137,21],[138,22],[139,23],[173,24],[140,25],[141,2],[142,26],[143,27],[144,28],[145,29],[146,30],[147,31],[148,32],[149,33],[150,34],[151,34],[152,35],[153,2],[154,36],[155,37],[157,38],[156,39],[158,40],[159,41],[160,42],[161,43],[162,44],[163,45],[164,46],[165,47],[166,48],[167,49],[168,50],[169,51],[170,52],[77,2],[78,2],[79,2],[117,53],[118,2],[119,2],[171,54],[172,55],[65,56],[64,2],[66,57],[61,2],[62,2],[12,2],[10,2],[11,2],[16,2],[15,2],[2,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[23,2],[24,2],[3,2],[25,2],[26,2],[4,2],[27,2],[31,2],[28,2],[29,2],[30,2],[32,2],[33,2],[34,2],[5,2],[35,2],[36,2],[37,2],[38,2],[6,2],[42,2],[39,2],[40,2],[41,2],[43,2],[7,2],[44,2],[49,2],[50,2],[45,2],[46,2],[47,2],[48,2],[8,2],[54,2],[51,2],[52,2],[53,2],[55,2],[9,2],[56,2],[63,2],[57,2],[58,2],[60,2],[59,2],[1,2],[14,2],[13,2],[95,58],[105,59],[94,58],[115,60],[86,61],[85,62],[114,63],[108,64],[113,65],[88,66],[102,67],[87,68],[111,69],[83,70],[82,63],[112,71],[84,72],[89,73],[90,2],[93,73],[80,2],[116,74],[106,75],[97,76],[98,77],[100,78],[96,79],[99,80],[109,63],[91,81],[92,82],[101,83],[81,84],[104,75],[103,73],[107,2],[110,85]],"latestChangedDtsFile":"./mochi.d.ts","version":"5.9.3"}
@@ -0,0 +1,12 @@
1
+ export interface Commit {
2
+ sha: string;
3
+ message: string;
4
+ date: string;
5
+ }
6
+ export interface GitContext {
7
+ recentCommits: Commit[];
8
+ blame?: Record<string, string>;
9
+ prContext?: string;
10
+ }
11
+ export declare function getGitContext(repoRoot: string, files: string[]): Promise<GitContext>;
12
+ //# sourceMappingURL=git-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-context.d.ts","sourceRoot":"","sources":["../../../server/analysis/git-context.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6GD,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EAAE,GACd,OAAO,CAAC,UAAU,CAAC,CAwBrB"}
@@ -0,0 +1,151 @@
1
+ // Git context wrapper.
2
+ //
3
+ // Three slices of repo provenance:
4
+ // - recentCommits: last 20 commits touching the in-scope files (one
5
+ // `git log` invocation, no per-file fanout).
6
+ // - blame: per-file blame summary, capped at 50 files and 100
7
+ // lines per file (200 chars per line as a defensive
8
+ // truncation against pathological source widths).
9
+ // - prContext: formatted "PR: <title>\n\n<body>" via `gh pr view`
10
+ // when the CLI is installed and the branch has an
11
+ // open PR. Soft-fails on every error path.
12
+ //
13
+ // This function never throws. Non-repo / missing tools / no PR all return
14
+ // graceful empty values. simple-git is used for git operations (no shell
15
+ // interpolation); `gh` is invoked via spawn with array args (also no shell).
16
+ import { spawn } from "node:child_process";
17
+ import { simpleGit } from "simple-git";
18
+ const MAX_FILES_FOR_LOG = 200;
19
+ const MAX_FILES_FOR_BLAME = 50;
20
+ const BLAME_LINES_PER_FILE = 100;
21
+ const BLAME_MAX_LINE_CHARS = 200;
22
+ const PR_CONTEXT_MAX_BYTES = 8 * 1024;
23
+ function truncateBlame(raw) {
24
+ const lines = raw.split("\n").slice(0, BLAME_LINES_PER_FILE);
25
+ for (let i = 0; i < lines.length; i++) {
26
+ if (lines[i].length > BLAME_MAX_LINE_CHARS) {
27
+ lines[i] = lines[i].slice(0, BLAME_MAX_LINE_CHARS) + "…";
28
+ }
29
+ }
30
+ return lines.join("\n");
31
+ }
32
+ async function getRecentCommits(git, files) {
33
+ const limited = files.slice(0, MAX_FILES_FOR_LOG);
34
+ if (limited.length < files.length) {
35
+ console.info(`mochi: git-context truncated file list for log from ${files.length} to ${limited.length}`);
36
+ }
37
+ try {
38
+ const out = await git.raw([
39
+ "log",
40
+ "--max-count=20",
41
+ "--pretty=format:%H%x09%s%x09%aI",
42
+ "--",
43
+ ...limited,
44
+ ]);
45
+ if (!out.trim())
46
+ return [];
47
+ return out
48
+ .split("\n")
49
+ .filter(Boolean)
50
+ .map((line) => {
51
+ const [sha, message, date] = line.split("\t");
52
+ return { sha: sha ?? "", message: message ?? "", date: date ?? "" };
53
+ });
54
+ }
55
+ catch (err) {
56
+ const msg = err instanceof Error ? err.message : String(err);
57
+ console.warn(`mochi: git-context recentCommits failed: ${msg}`);
58
+ return [];
59
+ }
60
+ }
61
+ async function getBlame(git, files) {
62
+ if (files.length === 0)
63
+ return undefined;
64
+ if (files.length > MAX_FILES_FOR_BLAME) {
65
+ console.info(`mochi: git-context skipping blame (file count ${files.length} exceeds cap ${MAX_FILES_FOR_BLAME})`);
66
+ return undefined;
67
+ }
68
+ const blame = {};
69
+ for (const file of files) {
70
+ try {
71
+ const raw = await git.raw(["blame", "-c", "--root", "--", file]);
72
+ blame[file] = truncateBlame(raw);
73
+ }
74
+ catch (err) {
75
+ // Most common cause: file isn't tracked. Soft-fail per-file.
76
+ const msg = err instanceof Error ? err.message : String(err);
77
+ console.info(`mochi: git-context blame skipped for ${file} (${msg})`);
78
+ }
79
+ }
80
+ return blame;
81
+ }
82
+ function getPrContext() {
83
+ return new Promise((resolve) => {
84
+ let stdout = "";
85
+ let stderr = "";
86
+ let child;
87
+ try {
88
+ child = spawn("gh", ["pr", "view", "--json", "title,body"], {
89
+ stdio: ["ignore", "pipe", "pipe"],
90
+ });
91
+ }
92
+ catch {
93
+ resolve(undefined);
94
+ return;
95
+ }
96
+ child.on("error", () => resolve(undefined));
97
+ child.stdout?.on("data", (d) => {
98
+ stdout += String(d);
99
+ });
100
+ child.stderr?.on("data", (d) => {
101
+ stderr += String(d);
102
+ });
103
+ child.on("close", (code) => {
104
+ if (code !== 0 || !stdout.trim()) {
105
+ if (stderr)
106
+ console.info(`mochi: gh pr view returned ${code} (no PR or unauth'd)`);
107
+ resolve(undefined);
108
+ return;
109
+ }
110
+ try {
111
+ const parsed = JSON.parse(stdout);
112
+ const title = parsed.title ?? "";
113
+ const body = parsed.body ?? "";
114
+ let formatted = `PR: ${title}\n\n${body}`;
115
+ if (formatted.length > PR_CONTEXT_MAX_BYTES) {
116
+ formatted = formatted.slice(0, PR_CONTEXT_MAX_BYTES);
117
+ }
118
+ resolve(formatted);
119
+ }
120
+ catch {
121
+ resolve(undefined);
122
+ }
123
+ });
124
+ });
125
+ }
126
+ export async function getGitContext(repoRoot, files) {
127
+ const git = simpleGit(repoRoot);
128
+ let isRepo = false;
129
+ try {
130
+ isRepo = await git.checkIsRepo();
131
+ }
132
+ catch {
133
+ isRepo = false;
134
+ }
135
+ if (!isRepo) {
136
+ console.info(`mochi: git-context — ${repoRoot} is not a git repo, skipping`);
137
+ return { recentCommits: [] };
138
+ }
139
+ const [recentCommits, blame, prContext] = await Promise.all([
140
+ getRecentCommits(git, files),
141
+ getBlame(git, files),
142
+ getPrContext(),
143
+ ]);
144
+ const result = { recentCommits };
145
+ if (blame !== undefined)
146
+ result.blame = blame;
147
+ if (prContext !== undefined)
148
+ result.prContext = prContext;
149
+ return result;
150
+ }
151
+ //# sourceMappingURL=git-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-context.js","sourceRoot":"","sources":["../../../server/analysis/git-context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const LANGUAGE_GRAMMARS: Record<string, () => string>;
2
+ export declare function isSupportedLanguage(language: string): boolean;
3
+ //# sourceMappingURL=grammars.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grammars.d.ts","sourceRoot":"","sources":["../../../server/analysis/grammars.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,MAAM,CAO1D,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE7D"}
@@ -0,0 +1,32 @@
1
+ // Resolves on-disk paths to the bundled tree-sitter grammar WASMs.
2
+ //
3
+ // Keys MUST match the language strings produced by `EXT_TO_LANG` in
4
+ // `server/api.ts` — that is the contract the rest of the analysis pipeline
5
+ // relies on. `jsx` aliases to the JavaScript grammar (tree-sitter has no
6
+ // dedicated JSX grammar; the JS one accepts JSX).
7
+ //
8
+ // Source of the .wasm binaries: the `tree-sitter-wasms` runtime dep, which
9
+ // ships pre-built grammars under `node_modules/tree-sitter-wasms/out/`.
10
+ // Resolved via `createRequire` so the bundler/runtime can locate them from
11
+ // any working directory the CLI is invoked in.
12
+ import { createRequire } from "node:module";
13
+ // `createRequire` is portable across plain Node ESM and Vitest's SSR loader,
14
+ // where `import.meta.resolve` is not available. The resolved path is the
15
+ // real file path (no `file://` URL scheme) so it can be passed straight to
16
+ // `Language.load`.
17
+ const requireFromHere = createRequire(import.meta.url);
18
+ function wasmPath(file) {
19
+ return requireFromHere.resolve(`tree-sitter-wasms/out/${file}`);
20
+ }
21
+ export const LANGUAGE_GRAMMARS = {
22
+ typescript: () => wasmPath("tree-sitter-typescript.wasm"),
23
+ tsx: () => wasmPath("tree-sitter-tsx.wasm"),
24
+ javascript: () => wasmPath("tree-sitter-javascript.wasm"),
25
+ jsx: () => wasmPath("tree-sitter-javascript.wasm"),
26
+ python: () => wasmPath("tree-sitter-python.wasm"),
27
+ rust: () => wasmPath("tree-sitter-rust.wasm"),
28
+ };
29
+ export function isSupportedLanguage(language) {
30
+ return Object.hasOwn(LANGUAGE_GRAMMARS, language);
31
+ }
32
+ //# sourceMappingURL=grammars.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grammars.js","sourceRoot":"","sources":["../../../server/analysis/grammars.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,EAAE;AACF,oEAAoE;AACpE,2EAA2E;AAC3E,yEAAyE;AACzE,kDAAkD;AAClD,EAAE;AACF,2EAA2E;AAC3E,wEAAwE;AACxE,2EAA2E;AAC3E,+CAA+C;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,6EAA6E;AAC7E,yEAAyE;AACzE,2EAA2E;AAC3E,mBAAmB;AACnB,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEvD,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,eAAe,CAAC,OAAO,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAiC;IAC7D,UAAU,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IACzD,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC3C,UAAU,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IACzD,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAClD,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACjD,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;CAC9C,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,OAAO,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { AnalysisContext as AnalysisContextT } from "../../shared/analysis-schema.js";
2
+ import type { FileEntry } from "./types.js";
3
+ export type { FileEntry } from "./types.js";
4
+ export type { AstSummary } from "./tree-sitter.js";
5
+ export type { CallEdge, ImportEntry, TsMorphResult } from "./ts-morph.js";
6
+ export type { Commit, GitContext } from "./git-context.js";
7
+ export declare function runAnalysis(files: FileEntry[], rootDir: string): Promise<AnalysisContextT>;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/analysis/index.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAK3F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC1E,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AA0B3D,wBAAsB,WAAW,CAC/B,KAAK,EAAE,SAAS,EAAE,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC,CAqD3B"}