@axhub/genie 0.1.7 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (411) hide show
  1. package/README.md +1 -1
  2. package/dist/api-docs.html +2 -2
  3. package/dist/assets/App-IUhj6pRQ.js +546 -0
  4. package/dist/assets/App-qxJ8_QYu.css +32 -0
  5. package/dist/assets/ReviewApp-B8aNlXpI.js +1 -0
  6. package/dist/assets/_basePickBy-DF_C8v-X.js +1 -0
  7. package/dist/assets/_baseUniq-Dl8X6bvw.js +1 -0
  8. package/dist/assets/abap-BdImnpbu.js +1 -0
  9. package/dist/assets/actionscript-3-CoDkCxhg.js +1 -0
  10. package/dist/assets/ada-bCR0ucgS.js +1 -0
  11. package/dist/assets/andromeeda-C4gqWexZ.js +1 -0
  12. package/dist/assets/angular-html-CU67Zn6k.js +1 -0
  13. package/dist/assets/angular-ts-BwZT4LLn.js +1 -0
  14. package/dist/assets/apache-Pmp26Uib.js +1 -0
  15. package/dist/assets/apex-D8_7TLub.js +1 -0
  16. package/dist/assets/apl-dKokRX4l.js +1 -0
  17. package/dist/assets/applescript-Co6uUVPk.js +1 -0
  18. package/dist/assets/ara-BRHolxvo.js +1 -0
  19. package/dist/assets/arc-TwO_Ni8v.js +1 -0
  20. package/dist/assets/architectureDiagram-2XIMDMQ5-Dgm9kjQy.js +36 -0
  21. package/dist/assets/asciidoc-Ve4PFQV2.js +1 -0
  22. package/dist/assets/asm-D_Q5rh1f.js +1 -0
  23. package/dist/assets/astro-CbQHKStN.js +1 -0
  24. package/dist/assets/aurora-x-D-2ljcwZ.js +1 -0
  25. package/dist/assets/awk-DMzUqQB5.js +1 -0
  26. package/dist/assets/ayu-dark-DYE7WIF3.js +1 -0
  27. package/dist/assets/ayu-light-BA47KaF1.js +1 -0
  28. package/dist/assets/ayu-mirage-32ctXXKs.js +1 -0
  29. package/dist/assets/ballerina-BFfxhgS-.js +1 -0
  30. package/dist/assets/bat-BkioyH1T.js +1 -0
  31. package/dist/assets/beancount-k_qm7-4y.js +1 -0
  32. package/dist/assets/berry-uYugtg8r.js +1 -0
  33. package/dist/assets/bibtex-CHM0blh-.js +1 -0
  34. package/dist/assets/bicep-Bmn6On1c.js +1 -0
  35. package/dist/assets/bird2-DPOp833l.js +1 -0
  36. package/dist/assets/blade-D4QpJJKB.js +1 -0
  37. package/dist/assets/blockDiagram-WCTKOSBZ-BhTxXYHE.js +132 -0
  38. package/dist/assets/bsl-BO_Y6i37.js +1 -0
  39. package/dist/assets/c-BIGW1oBm.js +1 -0
  40. package/dist/assets/c3-eo99z4R2.js +1 -0
  41. package/dist/assets/c4Diagram-IC4MRINW-D3xrrPyf.js +10 -0
  42. package/dist/assets/cadence-Bv_4Rxtq.js +1 -0
  43. package/dist/assets/cairo-KRGpt6FW.js +1 -0
  44. package/dist/assets/catppuccin-frappe-DFWUc33u.js +1 -0
  45. package/dist/assets/catppuccin-latte-C9dUb6Cb.js +1 -0
  46. package/dist/assets/catppuccin-macchiato-DQyhUUbL.js +1 -0
  47. package/dist/assets/catppuccin-mocha-D87Tk5Gz.js +1 -0
  48. package/dist/assets/channel-D6xYGBae.js +1 -0
  49. package/dist/assets/chunk-4BX2VUAB-Fb3wkGSX.js +1 -0
  50. package/dist/assets/chunk-55IACEB6-CQwPJLM_.js +1 -0
  51. package/dist/assets/chunk-FMBD7UC4-B3SocdK3.js +15 -0
  52. package/dist/assets/chunk-JSJVCQXG-4LjhKVWX.js +1 -0
  53. package/dist/assets/chunk-KX2RTZJC-B5NX8jxL.js +1 -0
  54. package/dist/assets/chunk-NQ4KR5QH-6puKzw3k.js +220 -0
  55. package/dist/assets/chunk-QZHKN3VN-CxscPgdC.js +1 -0
  56. package/dist/assets/chunk-WL4C6EOR-uBFUeI3B.js +189 -0
  57. package/dist/assets/clarity-D53aC0YG.js +1 -0
  58. package/dist/assets/classDiagram-VBA2DB6C-CAq2xBD7.js +1 -0
  59. package/dist/assets/classDiagram-v2-RAHNMMFH-CAq2xBD7.js +1 -0
  60. package/dist/assets/clojure-P80f7IUj.js +1 -0
  61. package/dist/assets/clone-Ci5Ji0hp.js +1 -0
  62. package/dist/assets/cmake-D1j8_8rp.js +1 -0
  63. package/dist/assets/cobol-nwyudZeR.js +1 -0
  64. package/dist/assets/codeowners-Bp6g37R7.js +1 -0
  65. package/dist/assets/codeql-DsOJ9woJ.js +1 -0
  66. package/dist/assets/coffee-Ch7k5sss.js +1 -0
  67. package/dist/assets/common-lisp-Cg-RD9OK.js +1 -0
  68. package/dist/assets/coq-DkFqJrB1.js +1 -0
  69. package/dist/assets/cose-bilkent-S5V4N54A-DlbARPn2.js +1 -0
  70. package/dist/assets/cpp-CofmeUqb.js +1 -0
  71. package/dist/assets/crystal-tKQVLTB8.js +1 -0
  72. package/dist/assets/csharp-COcwbKMJ.js +1 -0
  73. package/dist/assets/css-DPfMkruS.js +1 -0
  74. package/dist/assets/csv-fuZLfV_i.js +1 -0
  75. package/dist/assets/cue-D82EKSYY.js +1 -0
  76. package/dist/assets/cypher-COkxafJQ.js +1 -0
  77. package/dist/assets/cytoscape.esm-2ZfV8NB5.js +331 -0
  78. package/dist/assets/d-85-TOEBH.js +1 -0
  79. package/dist/assets/dagre-KLK3FWXG-D5rHdqja.js +4 -0
  80. package/dist/assets/dark-plus-C3mMm8J8.js +1 -0
  81. package/dist/assets/dart-CF10PKvl.js +1 -0
  82. package/dist/assets/dax-CEL-wOlO.js +1 -0
  83. package/dist/assets/defaultLocale-DX6XiGOO.js +1 -0
  84. package/dist/assets/desktop-BmXAJ9_W.js +1 -0
  85. package/dist/assets/diagram-E7M64L7V-1UmM7jTs.js +24 -0
  86. package/dist/assets/diagram-IFDJBPK2-BiB8xLQb.js +43 -0
  87. package/dist/assets/diagram-P4PSJMXO-D0DHiPZv.js +24 -0
  88. package/dist/assets/diff-D97Zzqfu.js +1 -0
  89. package/dist/assets/docker-BcOcwvcX.js +1 -0
  90. package/dist/assets/dotenv-Da5cRb03.js +1 -0
  91. package/dist/assets/dracula-BzJJZx-M.js +1 -0
  92. package/dist/assets/dracula-soft-BXkSAIEj.js +1 -0
  93. package/dist/assets/dream-maker-BtqSS_iP.js +1 -0
  94. package/dist/assets/edge-BkV0erSs.js +1 -0
  95. package/dist/assets/elixir-CDX3lj18.js +1 -0
  96. package/dist/assets/elm-DbKCFpqz.js +1 -0
  97. package/dist/assets/emacs-lisp-C9XAeP06.js +1 -0
  98. package/dist/assets/erDiagram-INFDFZHY-CnRJ2Jix.js +70 -0
  99. package/dist/assets/erb-B12qg9BL.js +1 -0
  100. package/dist/assets/erlang-DsQrWhSR.js +1 -0
  101. package/dist/assets/everforest-dark-BgDCqdQA.js +1 -0
  102. package/dist/assets/everforest-light-C8M2exoo.js +1 -0
  103. package/dist/assets/fennel-BYunw83y.js +1 -0
  104. package/dist/assets/fish-BvzEVeQv.js +1 -0
  105. package/dist/assets/flowDiagram-PKNHOUZH-CEgo6QRr.js +162 -0
  106. package/dist/assets/fluent-C4IJs8-o.js +1 -0
  107. package/dist/assets/fortran-fixed-form-CkoXwp7k.js +1 -0
  108. package/dist/assets/fortran-free-form-BxgE0vQu.js +1 -0
  109. package/dist/assets/fsharp-CXgrBDvD.js +1 -0
  110. package/dist/assets/ganttDiagram-A5KZAMGK-BIuQLJvD.js +292 -0
  111. package/dist/assets/gdresource-BOOCDP_w.js +1 -0
  112. package/dist/assets/gdscript-C5YyOfLZ.js +1 -0
  113. package/dist/assets/gdshader-DkwncUOv.js +1 -0
  114. package/dist/assets/genie-D0YGMca9.js +1 -0
  115. package/dist/assets/gherkin-DyxjwDmM.js +1 -0
  116. package/dist/assets/git-commit-F4YmCXRG.js +1 -0
  117. package/dist/assets/git-rebase-r7XF79zn.js +1 -0
  118. package/dist/assets/gitGraphDiagram-K3NZZRJ6-BgM4MazK.js +65 -0
  119. package/dist/assets/github-dark-DHJKELXO.js +1 -0
  120. package/dist/assets/github-dark-default-Cuk6v7N8.js +1 -0
  121. package/dist/assets/github-dark-dimmed-DH5Ifo-i.js +1 -0
  122. package/dist/assets/github-dark-high-contrast-E3gJ1_iC.js +1 -0
  123. package/dist/assets/github-light-DAi9KRSo.js +1 -0
  124. package/dist/assets/github-light-default-D7oLnXFd.js +1 -0
  125. package/dist/assets/github-light-high-contrast-BfjtVDDH.js +1 -0
  126. package/dist/assets/gleam-BspZqrRM.js +1 -0
  127. package/dist/assets/glimmer-js-Rg0-pVw9.js +1 -0
  128. package/dist/assets/glimmer-ts-U6CK756n.js +1 -0
  129. package/dist/assets/glsl-DplSGwfg.js +1 -0
  130. package/dist/assets/gn-n2N0HUVH.js +1 -0
  131. package/dist/assets/gnuplot-DdkO51Og.js +1 -0
  132. package/dist/assets/go-CxLEBnE3.js +1 -0
  133. package/dist/assets/graph-CAfp4sq_.js +1 -0
  134. package/dist/assets/graphql-ChdNCCLP.js +1 -0
  135. package/dist/assets/groovy-gcz8RCvz.js +1 -0
  136. package/dist/assets/gruvbox-dark-hard-CFHQjOhq.js +1 -0
  137. package/dist/assets/gruvbox-dark-medium-GsRaNv29.js +1 -0
  138. package/dist/assets/gruvbox-dark-soft-CVdnzihN.js +1 -0
  139. package/dist/assets/gruvbox-light-hard-CH1njM8p.js +1 -0
  140. package/dist/assets/gruvbox-light-medium-DRw_LuNl.js +1 -0
  141. package/dist/assets/gruvbox-light-soft-hJgmCMqR.js +1 -0
  142. package/dist/assets/hack-CaT9iCJl.js +1 -0
  143. package/dist/assets/haml-B8DHNrY2.js +1 -0
  144. package/dist/assets/handlebars-BL8al0AC.js +1 -0
  145. package/dist/assets/haskell-Df6bDoY_.js +1 -0
  146. package/dist/assets/haxe-CzTSHFRz.js +1 -0
  147. package/dist/assets/hcl-BWvSN4gD.js +1 -0
  148. package/dist/assets/highlighted-body-TPN3WLV5-qMmmT5JC.js +1 -0
  149. package/dist/assets/hjson-D5-asLiD.js +1 -0
  150. package/dist/assets/hlsl-D3lLCCz7.js +1 -0
  151. package/dist/assets/horizon-BUw7H-hv.js +1 -0
  152. package/dist/assets/horizon-bright-Cn-bp-IR.js +1 -0
  153. package/dist/assets/houston-DnULxvSX.js +1 -0
  154. package/dist/assets/html-GMplVEZG.js +1 -0
  155. package/dist/assets/html-derivative-BFtXZ54Q.js +1 -0
  156. package/dist/assets/http-jrhK8wxY.js +1 -0
  157. package/dist/assets/hurl-irOxFIW8.js +1 -0
  158. package/dist/assets/hxml-Bvhsp5Yf.js +1 -0
  159. package/dist/assets/hy-DFXneXwc.js +1 -0
  160. package/dist/assets/imba-DGztddWO.js +1 -0
  161. package/dist/assets/index-DIJsxqXa.css +1 -0
  162. package/dist/assets/index-DLN_-tVh.js +2 -0
  163. package/dist/assets/infoDiagram-LFFYTUFH-CWSerJ0x.js +2 -0
  164. package/dist/assets/ini-BEwlwnbL.js +1 -0
  165. package/dist/assets/init-Gi6I4Gst.js +1 -0
  166. package/dist/assets/ishikawaDiagram-PHBUUO56-CzeVsiJ6.js +70 -0
  167. package/dist/assets/java-CylS5w8V.js +1 -0
  168. package/dist/assets/javascript-wDzz0qaB.js +1 -0
  169. package/dist/assets/jinja-4LBKfQ-Z.js +1 -0
  170. package/dist/assets/jison-wvAkD_A8.js +1 -0
  171. package/dist/assets/journeyDiagram-4ABVD52K-D_NYt9lf.js +139 -0
  172. package/dist/assets/json-Cp-IABpG.js +1 -0
  173. package/dist/assets/json5-C9tS-k6U.js +1 -0
  174. package/dist/assets/jsonc-Des-eS-w.js +1 -0
  175. package/dist/assets/jsonl-DcaNXYhu.js +1 -0
  176. package/dist/assets/jsonnet-DFQXde-d.js +1 -0
  177. package/dist/assets/jssm-C2t-YnRu.js +1 -0
  178. package/dist/assets/jsx-g9-lgVsj.js +1 -0
  179. package/dist/assets/julia-CxzCAyBv.js +1 -0
  180. package/dist/assets/just-Cw27pwNe.js +1 -0
  181. package/dist/assets/kanagawa-dragon-CkXjmgJE.js +1 -0
  182. package/dist/assets/kanagawa-lotus-CfQXZHmo.js +1 -0
  183. package/dist/assets/kanagawa-wave-DWedfzmr.js +1 -0
  184. package/dist/assets/kanban-definition-K7BYSVSG-CX7AUuup.js +89 -0
  185. package/dist/assets/kdl-DV7GczEv.js +1 -0
  186. package/dist/assets/kotlin-BdnUsdx6.js +1 -0
  187. package/dist/assets/kusto-DZf3V79B.js +1 -0
  188. package/dist/assets/laserwave-DUszq2jm.js +1 -0
  189. package/dist/assets/latex-CWtU0Tv5.js +1 -0
  190. package/dist/assets/layout-DSvVDs_y.js +1 -0
  191. package/dist/assets/lean-BZvkOJ9d.js +1 -0
  192. package/dist/assets/less-B1dDrJ26.js +1 -0
  193. package/dist/assets/light-plus-B7mTdjB0.js +1 -0
  194. package/dist/assets/linear-CVh3kWAl.js +1 -0
  195. package/dist/assets/liquid-DYVedYrR.js +1 -0
  196. package/dist/assets/llvm-DjAJT7YJ.js +1 -0
  197. package/dist/assets/log-2UxHyX5q.js +1 -0
  198. package/dist/assets/logo-BtOb2qkB.js +1 -0
  199. package/dist/assets/lua-BaeVxFsk.js +1 -0
  200. package/dist/assets/luau-C-HG3fhB.js +1 -0
  201. package/dist/assets/make-CHLpvVh8.js +1 -0
  202. package/dist/assets/markdown-Cvjx9yec.js +1 -0
  203. package/dist/assets/marko-CnJfTvn9.js +1 -0
  204. package/dist/assets/material-theme-D5KoaKCx.js +1 -0
  205. package/dist/assets/material-theme-darker-BfHTSMKl.js +1 -0
  206. package/dist/assets/material-theme-lighter-B0m2ddpp.js +1 -0
  207. package/dist/assets/material-theme-ocean-CyktbL80.js +1 -0
  208. package/dist/assets/material-theme-palenight-Csfq5Kiy.js +1 -0
  209. package/dist/assets/matlab-D7o27uSR.js +1 -0
  210. package/dist/assets/mdc-BMNejdWA.js +1 -0
  211. package/dist/assets/mdx-Cmh6b_Ma.js +1 -0
  212. package/dist/assets/mermaid-O7DHMXV3-CrPRD2Zy.js +964 -0
  213. package/dist/assets/mermaid-mWjccvbQ.js +1 -0
  214. package/dist/assets/min-dark-CafNBF8u.js +1 -0
  215. package/dist/assets/min-light-CTRr51gU.js +1 -0
  216. package/dist/assets/mindmap-definition-YRQLILUH-w_orDc4B.js +68 -0
  217. package/dist/assets/mipsasm-CKIfxQSi.js +1 -0
  218. package/dist/assets/mojo-rZm6bMo-.js +1 -0
  219. package/dist/assets/monokai-D4h5O-jR.js +1 -0
  220. package/dist/assets/moonbit-_H4v1dQx.js +1 -0
  221. package/dist/assets/move-IF9eRakj.js +1 -0
  222. package/dist/assets/narrat-DRg8JJMk.js +1 -0
  223. package/dist/assets/nextflow-Zz6hmt5N.js +1 -0
  224. package/dist/assets/nextflow-groovy-BeH2EWoN.js +1 -0
  225. package/dist/assets/nginx-BpAMiNFr.js +1 -0
  226. package/dist/assets/night-owl-C39BiMTA.js +1 -0
  227. package/dist/assets/night-owl-light-CMTm3GFP.js +1 -0
  228. package/dist/assets/nim-CVrawwO9.js +1 -0
  229. package/dist/assets/nix-CwoSXNpI.js +1 -0
  230. package/dist/assets/nord-Ddv68eIx.js +1 -0
  231. package/dist/assets/nushell-Cz2AlsmD.js +1 -0
  232. package/dist/assets/objective-c-DXmwc3jG.js +1 -0
  233. package/dist/assets/objective-cpp-CLxacb5B.js +1 -0
  234. package/dist/assets/ocaml-C0hk2d4L.js +1 -0
  235. package/dist/assets/odin-BBf5iR-q.js +1 -0
  236. package/dist/assets/one-dark-pro-DVMEJ2y_.js +1 -0
  237. package/dist/assets/one-light-C3Wv6jpd.js +1 -0
  238. package/dist/assets/openscad-C4EeE6gA.js +1 -0
  239. package/dist/assets/ordinal-Cboi1Yqb.js +1 -0
  240. package/dist/assets/pascal-D93ZcfNL.js +1 -0
  241. package/dist/assets/perl-C0TMdlhV.js +1 -0
  242. package/dist/assets/php-Dhbhpdrm.js +1 -0
  243. package/dist/assets/pieDiagram-SKSYHLDU-Ddit1h2q.js +30 -0
  244. package/dist/assets/pkl-u5AG7uiY.js +1 -0
  245. package/dist/assets/plastic-3e1v2bzS.js +1 -0
  246. package/dist/assets/plsql-ChMvpjG-.js +1 -0
  247. package/dist/assets/po-BTJTHyun.js +1 -0
  248. package/dist/assets/poimandres-CS3Unz2-.js +1 -0
  249. package/dist/assets/polar-C0HS_06l.js +1 -0
  250. package/dist/assets/postcss-CXtECtnM.js +1 -0
  251. package/dist/assets/powerquery-CEu0bR-o.js +1 -0
  252. package/dist/assets/powershell-Dpen1YoG.js +1 -0
  253. package/dist/assets/prisma-Dd19v3D-.js +1 -0
  254. package/dist/assets/prolog-CbFg5uaA.js +1 -0
  255. package/dist/assets/proto-C7zT0LnQ.js +1 -0
  256. package/dist/assets/pug-CGlum2m_.js +1 -0
  257. package/dist/assets/puppet-BMWR74SV.js +1 -0
  258. package/dist/assets/purescript-CklMAg4u.js +1 -0
  259. package/dist/assets/python-B6aJPvgy.js +1 -0
  260. package/dist/assets/qml-3beO22l8.js +1 -0
  261. package/dist/assets/qmldir-C8lEn-DE.js +1 -0
  262. package/dist/assets/qss-IeuSbFQv.js +1 -0
  263. package/dist/assets/quadrantDiagram-337W2JSQ-DVw1s8Ut.js +7 -0
  264. package/dist/assets/r-Dspwwk_N.js +1 -0
  265. package/dist/assets/racket-BqYA7rlc.js +1 -0
  266. package/dist/assets/raku-DXvB9xmW.js +1 -0
  267. package/dist/assets/razor-Uh8Bk_45.js +1 -0
  268. package/dist/assets/red-bN70gL4F.js +1 -0
  269. package/dist/assets/reg-C-SQnVFl.js +1 -0
  270. package/dist/assets/regexp-CDVJQ6XC.js +1 -0
  271. package/dist/assets/rel-C3B-1QV4.js +1 -0
  272. package/dist/assets/requirementDiagram-Z7DCOOCP-DQPZpp_9.js +73 -0
  273. package/dist/assets/riscv-BM1_JUlF.js +1 -0
  274. package/dist/assets/ron-D8l8udqQ.js +1 -0
  275. package/dist/assets/rose-pine-dawn-DHQR4-dF.js +1 -0
  276. package/dist/assets/rose-pine-moon-D4_iv3hh.js +1 -0
  277. package/dist/assets/rose-pine-qdsjHGoJ.js +1 -0
  278. package/dist/assets/rosmsg-BJDFO7_C.js +1 -0
  279. package/dist/assets/rst-BrH8l1NY.js +1 -0
  280. package/dist/assets/ruby-Dw2BHqvy.js +1 -0
  281. package/dist/assets/rust-B1yitclQ.js +1 -0
  282. package/dist/assets/sankeyDiagram-WA2Y5GQK-CfbFynOx.js +10 -0
  283. package/dist/assets/sas-cz2c8ADy.js +1 -0
  284. package/dist/assets/sass-Cj5Yp3dK.js +1 -0
  285. package/dist/assets/scala-C151Ov-r.js +1 -0
  286. package/dist/assets/scheme-C98Dy4si.js +1 -0
  287. package/dist/assets/scss-OYdSNvt2.js +1 -0
  288. package/dist/assets/sdbl-DVxCFoDh.js +1 -0
  289. package/dist/assets/sequenceDiagram-2WXFIKYE-BO9n1wra.js +145 -0
  290. package/dist/assets/shaderlab-Dg9Lc6iA.js +1 -0
  291. package/dist/assets/shellscript-Yzrsuije.js +1 -0
  292. package/dist/assets/shellsession-BADoaaVG.js +1 -0
  293. package/dist/assets/slack-dark-BthQWCQV.js +1 -0
  294. package/dist/assets/slack-ochin-DqwNpetd.js +1 -0
  295. package/dist/assets/smalltalk-BERRCDM3.js +1 -0
  296. package/dist/assets/snazzy-light-Bw305WKR.js +1 -0
  297. package/dist/assets/solarized-dark-DXbdFlpD.js +1 -0
  298. package/dist/assets/solarized-light-L9t79GZl.js +1 -0
  299. package/dist/assets/solidity-rGO070M0.js +1 -0
  300. package/dist/assets/soy-Brmx7dQM.js +1 -0
  301. package/dist/assets/sparql-rVzFXLq3.js +1 -0
  302. package/dist/assets/splunk-BtCnVYZw.js +1 -0
  303. package/dist/assets/sql-BLtJtn59.js +1 -0
  304. package/dist/assets/ssh-config-_ykCGR6B.js +1 -0
  305. package/dist/assets/stata-BH5u7GGu.js +1 -0
  306. package/dist/assets/stateDiagram-RAJIS63D-CRL3ceNd.js +1 -0
  307. package/dist/assets/stateDiagram-v2-FVOUBMTO-CZOgjDCg.js +1 -0
  308. package/dist/assets/stylus-BEDo0Tqx.js +1 -0
  309. package/dist/assets/surrealql-Bq5Q-fJD.js +1 -0
  310. package/dist/assets/svelte-C_ipcX3V.js +1 -0
  311. package/dist/assets/swift-D82vCrfD.js +1 -0
  312. package/dist/assets/synthwave-84-CbfX1IO0.js +1 -0
  313. package/dist/assets/system-verilog-CnnmHF94.js +1 -0
  314. package/dist/assets/systemd-4A_iFExJ.js +1 -0
  315. package/dist/assets/talonscript-CkByrt1z.js +1 -0
  316. package/dist/assets/tasl-QIJgUcNo.js +1 -0
  317. package/dist/assets/tcl-dwOrl1Do.js +1 -0
  318. package/dist/assets/templ-P3uqSqPl.js +1 -0
  319. package/dist/assets/terraform-BETggiCN.js +1 -0
  320. package/dist/assets/tex-idrVyKtj.js +1 -0
  321. package/dist/assets/timeline-definition-YZTLITO2-BR7smGEM.js +61 -0
  322. package/dist/assets/tokyo-night-hegEt444.js +1 -0
  323. package/dist/assets/toml-vGWfd6FD.js +1 -0
  324. package/dist/assets/treemap-KZPCXAKY-DkR8x0Kw.js +162 -0
  325. package/dist/assets/ts-tags-zn1MmPIZ.js +1 -0
  326. package/dist/assets/tsv-B_m7g4N7.js +1 -0
  327. package/dist/assets/tsx-COt5Ahok.js +1 -0
  328. package/dist/assets/turtle-BsS91CYL.js +1 -0
  329. package/dist/assets/twig-DNn4PbVi.js +1 -0
  330. package/dist/assets/typescript-BPQ3VLAy.js +1 -0
  331. package/dist/assets/typespec-BGHnOYBU.js +1 -0
  332. package/dist/assets/typst-DHCkPAjA.js +1 -0
  333. package/dist/assets/v-BcVCzyr7.js +1 -0
  334. package/dist/assets/vala-CsfeWuGM.js +1 -0
  335. package/dist/assets/vb-D17OF-Vu.js +1 -0
  336. package/dist/assets/{vendor-codemirror-B88_OPWf.js → vendor-codemirror-D5if-Qdt.js} +3 -3
  337. package/dist/assets/{vendor-react-C3RJLQGO.js → vendor-react-CSz7XC90.js} +11 -11
  338. package/dist/assets/vennDiagram-LZ73GAT5-DS7XpPV_.js +34 -0
  339. package/dist/assets/verilog-BQ8w6xss.js +1 -0
  340. package/dist/assets/vesper-DU1UobuO.js +1 -0
  341. package/dist/assets/vhdl-CeAyd5Ju.js +1 -0
  342. package/dist/assets/viml-CJc9bBzg.js +1 -0
  343. package/dist/assets/vitesse-black-Bkuqu6BP.js +1 -0
  344. package/dist/assets/vitesse-dark-D0r3Knsf.js +1 -0
  345. package/dist/assets/vitesse-light-CVO1_9PV.js +1 -0
  346. package/dist/assets/vue-DN_0RTcg.js +1 -0
  347. package/dist/assets/vue-html-AaS7Mt5G.js +1 -0
  348. package/dist/assets/vue-vine-CQOfvN7w.js +1 -0
  349. package/dist/assets/vyper-CDx5xZoG.js +1 -0
  350. package/dist/assets/wasm-CG6Dc4jp.js +1 -0
  351. package/dist/assets/wasm-MzD3tlZU.js +1 -0
  352. package/dist/assets/wenyan-BV7otONQ.js +1 -0
  353. package/dist/assets/wgsl-Dx-B1_4e.js +1 -0
  354. package/dist/assets/wikitext-BhOHFoWU.js +1 -0
  355. package/dist/assets/wit-5i3qLPDT.js +1 -0
  356. package/dist/assets/wolfram-lXgVvXCa.js +1 -0
  357. package/dist/assets/xml-sdJ4AIDG.js +1 -0
  358. package/dist/assets/xsl-CtQFsRM5.js +1 -0
  359. package/dist/assets/xychartDiagram-JWTSCODW-BgjSBvNS.js +7 -0
  360. package/dist/assets/yaml-Buea-lGh.js +1 -0
  361. package/dist/assets/zenscript-DVFEvuxE.js +1 -0
  362. package/dist/assets/zig-VOosw3JB.js +1 -0
  363. package/dist/index.html +37 -23
  364. package/dist/manifest.json +2 -2
  365. package/dist/sw.js +18 -46
  366. package/package.json +12 -7
  367. package/server/bin/codex-sdk-wrapper.js +49 -0
  368. package/server/channels/core/ChannelManager.js +399 -0
  369. package/server/channels/core/PluginManager.js +59 -0
  370. package/server/channels/index.js +3 -0
  371. package/server/channels/plugins/BasePlugin.js +46 -0
  372. package/server/channels/plugins/dingtalk/DingTalkAdapter.js +156 -0
  373. package/server/channels/plugins/dingtalk/DingTalkPlugin.js +592 -0
  374. package/server/channels/plugins/dingtalk/index.js +2 -0
  375. package/server/channels/plugins/lark/LarkAdapter.js +100 -0
  376. package/server/channels/plugins/lark/LarkCards.js +43 -0
  377. package/server/channels/plugins/lark/LarkPlugin.js +260 -0
  378. package/server/channels/runtime/AgentRuntimeAdapter.js +176 -0
  379. package/server/channels/runtime/DingTalkStreamWriter.js +105 -0
  380. package/server/channels/runtime/LarkStreamWriter.js +99 -0
  381. package/server/channels/store/ChannelStore.js +202 -0
  382. package/server/claude-sdk.js +151 -3
  383. package/server/cli.js +21 -21
  384. package/server/database/db.js +449 -275
  385. package/server/gemini-cli.js +106 -19
  386. package/server/index.js +87 -108
  387. package/server/load-env.js +16 -13
  388. package/server/openai-codex.js +146 -10
  389. package/server/projects.js +340 -331
  390. package/server/routes/agent.js +429 -30
  391. package/server/routes/auth.js +14 -36
  392. package/server/routes/channels.js +221 -0
  393. package/server/routes/cli-auth.js +117 -124
  394. package/server/routes/commands.js +16 -26
  395. package/server/routes/git.js +5 -16
  396. package/server/routes/projects.js +2 -7
  397. package/server/routes/session-core.js +177 -0
  398. package/server/session-core/abortSession.js +48 -0
  399. package/server/session-core/eventStore.js +139 -0
  400. package/server/session-core/providerAdapters.js +84 -0
  401. package/server/session-core/providerDiscovery.js +235 -0
  402. package/server/session-core/runtimeWriter.js +55 -0
  403. package/server/utils/agentCallback.js +273 -0
  404. package/server/utils/codexPath.js +47 -0
  405. package/shared/conversationEvents.js +1031 -0
  406. package/shared/modelConstants.js +18 -24
  407. package/dist/assets/index-C2r-Jzfw.js +0 -897
  408. package/dist/assets/index-COkoBQi5.css +0 -32
  409. package/server/cursor-cli.js +0 -276
  410. package/server/database/init.sql +0 -52
  411. package/server/routes/cursor.js +0 -795
@@ -0,0 +1,202 @@
1
+ import { channelDb } from '../../database/db.js';
2
+
3
+ const DEFAULT_CONFIGS = {
4
+ lark: {
5
+ appId: '',
6
+ appSecret: '',
7
+ encryptKey: '',
8
+ verificationToken: '',
9
+ defaultBackend: 'codex',
10
+ defaultModel: '',
11
+ defaultProjectPath: '',
12
+ },
13
+ dingtalk: {
14
+ clientId: '',
15
+ clientSecret: '',
16
+ defaultBackend: 'codex',
17
+ defaultModel: '',
18
+ defaultProjectPath: '',
19
+ },
20
+ };
21
+
22
+ const PLATFORM_TO_PLUGIN_ID = {
23
+ lark: 'lark_default',
24
+ dingtalk: 'dingtalk_default',
25
+ };
26
+
27
+ const PLUGIN_ID_TO_PLATFORM = {
28
+ lark_default: 'lark',
29
+ dingtalk_default: 'dingtalk',
30
+ };
31
+
32
+ function now() {
33
+ return new Date().toISOString();
34
+ }
35
+
36
+ function normalizePlatform(platform) {
37
+ const normalized = String(platform || '').trim().toLowerCase();
38
+ return normalized === 'dingtalk' ? 'dingtalk' : 'lark';
39
+ }
40
+
41
+ function resolvePlatformByPluginId(pluginId) {
42
+ return PLUGIN_ID_TO_PLATFORM[pluginId] || 'lark';
43
+ }
44
+
45
+ function resolvePluginIdByPlatform(platform) {
46
+ return PLATFORM_TO_PLUGIN_ID[normalizePlatform(platform)] || PLATFORM_TO_PLUGIN_ID.lark;
47
+ }
48
+
49
+ function getDefaultConfig(platform) {
50
+ return { ...(DEFAULT_CONFIGS[normalizePlatform(platform)] || DEFAULT_CONFIGS.lark) };
51
+ }
52
+
53
+ function mapAllowedUser(entry) {
54
+ if (!entry) return null;
55
+ return {
56
+ id: entry.id,
57
+ platformType: entry.platform_type,
58
+ userId: entry.user_id,
59
+ displayName: entry.display_name,
60
+ note: entry.note,
61
+ isActive: entry.is_active,
62
+ createdAt: entry.created_at,
63
+ updatedAt: entry.updated_at,
64
+ };
65
+ }
66
+
67
+ function mapChannelSession(entry) {
68
+ if (!entry) return null;
69
+ return {
70
+ id: entry.id,
71
+ platformType: entry.platform_type,
72
+ userId: entry.user_id,
73
+ chatId: entry.chat_id,
74
+ backend: entry.backend,
75
+ providerSessionId: entry.provider_session_id,
76
+ projectPath: entry.project_path,
77
+ updatedAt: entry.updated_at,
78
+ };
79
+ }
80
+
81
+ export class ChannelStore {
82
+ normalizePlatform(platform) {
83
+ return normalizePlatform(platform);
84
+ }
85
+
86
+ getPluginId(platform) {
87
+ return resolvePluginIdByPlatform(platform);
88
+ }
89
+
90
+ getPluginConfig(pluginId = 'lark_default') {
91
+ const row = channelDb.getPlugin(pluginId);
92
+ const platform = resolvePlatformByPluginId(pluginId);
93
+
94
+ if (!row) {
95
+ return {
96
+ id: pluginId,
97
+ type: platform,
98
+ enabled: false,
99
+ status: 'stopped',
100
+ config: getDefaultConfig(platform),
101
+ };
102
+ }
103
+
104
+ return {
105
+ id: row.id,
106
+ type: row.type || platform,
107
+ enabled: !!row.enabled,
108
+ status: row.status,
109
+ config: {
110
+ ...getDefaultConfig(row.type || platform),
111
+ ...(row.config || {}),
112
+ },
113
+ updatedAt: row.updated_at,
114
+ };
115
+ }
116
+
117
+ upsertPluginConfig(pluginId = 'lark_default', patch = {}) {
118
+ const existing = this.getPluginConfig(pluginId);
119
+ const type = resolvePlatformByPluginId(pluginId);
120
+
121
+ channelDb.upsertPlugin({
122
+ id: pluginId,
123
+ type,
124
+ enabled: !!existing.enabled,
125
+ status: existing.status || 'stopped',
126
+ config: {
127
+ ...existing.config,
128
+ ...patch,
129
+ },
130
+ updated_at: now(),
131
+ });
132
+
133
+ return this.getPluginConfig(pluginId);
134
+ }
135
+
136
+ updatePluginRuntimeStatus(pluginId = 'lark_default', enabled, status) {
137
+ const existing = this.getPluginConfig(pluginId);
138
+ const type = resolvePlatformByPluginId(pluginId);
139
+
140
+ channelDb.upsertPlugin({
141
+ id: pluginId,
142
+ type,
143
+ enabled: !!enabled,
144
+ status,
145
+ config: existing.config,
146
+ updated_at: now(),
147
+ });
148
+
149
+ return this.getPluginConfig(pluginId);
150
+ }
151
+
152
+ listAllowedUsers(platform = 'lark') {
153
+ return channelDb.listAllowedUsers(normalizePlatform(platform)).map(mapAllowedUser);
154
+ }
155
+
156
+ addAllowedUser(platform = 'lark', { userId, displayName = null, note = null }) {
157
+ const normalizedPlatform = normalizePlatform(platform);
158
+ const trimmedUserId = String(userId || '').trim();
159
+ if (!trimmedUserId) {
160
+ throw new Error('userId is required');
161
+ }
162
+
163
+ return mapAllowedUser(channelDb.addAllowedUser(normalizedPlatform, {
164
+ userId: trimmedUserId,
165
+ displayName: displayName ? String(displayName).trim() : null,
166
+ note: note ? String(note).trim() : null,
167
+ }));
168
+ }
169
+
170
+ removeAllowedUser(platform = 'lark', id) {
171
+ return channelDb.removeAllowedUser(normalizePlatform(platform), id);
172
+ }
173
+
174
+ toggleAllowedUser(platform = 'lark', id, isActive) {
175
+ return channelDb.toggleAllowedUser(normalizePlatform(platform), id, isActive);
176
+ }
177
+
178
+ isAllowedUser(platform = 'lark', userId) {
179
+ if (!userId) return false;
180
+ return channelDb.isAllowedUser(normalizePlatform(platform), String(userId));
181
+ }
182
+
183
+ getChannelSession({ platform = 'lark', userId, chatId, backend }) {
184
+ return mapChannelSession(channelDb.getChannelSession({
185
+ platform: normalizePlatform(platform),
186
+ userId,
187
+ chatId,
188
+ backend,
189
+ }));
190
+ }
191
+
192
+ upsertChannelSession({ platform = 'lark', userId, chatId, backend, providerSessionId, projectPath }) {
193
+ return mapChannelSession(channelDb.upsertChannelSession({
194
+ platform: normalizePlatform(platform),
195
+ userId,
196
+ chatId,
197
+ backend,
198
+ providerSessionId,
199
+ projectPath,
200
+ }));
201
+ }
202
+ }
@@ -32,6 +32,8 @@ const pendingToolApprovals = new Map();
32
32
  // This does not change SDK limits; it only defines how long we wait for the UI,
33
33
  // introduced to avoid hanging the run when no decision arrives.
34
34
  const TOOL_APPROVAL_TIMEOUT_MS = parseInt(process.env.CLAUDE_TOOL_APPROVAL_TIMEOUT_MS, 10) || 55000;
35
+ const CLAUDE_STREAM_START_TIMEOUT_MS = parseInt(process.env.CLAUDE_STREAM_START_TIMEOUT_MS, 10) || 20000;
36
+ const CLAUDE_MEANINGFUL_OUTPUT_TIMEOUT_MS = parseInt(process.env.CLAUDE_MEANINGFUL_OUTPUT_TIMEOUT_MS, 10) || 45000;
35
37
 
36
38
  // Generate a stable request ID for UI approval flows.
37
39
  // This does not encode tool details or get shown to users; it exists so the UI
@@ -273,6 +275,48 @@ function transformMessage(sdkMessage) {
273
275
  return sdkMessage;
274
276
  }
275
277
 
278
+ function messageHasMeaningfulClaudeOutput(message) {
279
+ if (!message || typeof message !== 'object') {
280
+ return false;
281
+ }
282
+
283
+ if (message.type === 'system' && message.subtype === 'init') {
284
+ return false;
285
+ }
286
+
287
+ if (message.type === 'content_block_delta') {
288
+ return typeof message.delta?.text === 'string' && message.delta.text.trim().length > 0;
289
+ }
290
+
291
+ if (message.type === 'thinking') {
292
+ return typeof message.message?.content === 'string' && message.message.content.trim().length > 0;
293
+ }
294
+
295
+ if (message.type === 'tool_use' || message.type === 'tool_result') {
296
+ return true;
297
+ }
298
+
299
+ const contentParts = Array.isArray(message.content)
300
+ ? message.content
301
+ : Array.isArray(message.message?.content)
302
+ ? message.message.content
303
+ : null;
304
+
305
+ if (contentParts) {
306
+ return contentParts.some((part) => (
307
+ (part?.type === 'text' && typeof part.text === 'string' && part.text.trim().length > 0) ||
308
+ part?.type === 'tool_use' ||
309
+ part?.type === 'tool_result'
310
+ ));
311
+ }
312
+
313
+ if (typeof message.content === 'string' && message.content.trim().length > 0) {
314
+ return true;
315
+ }
316
+
317
+ return false;
318
+ }
319
+
276
320
  /**
277
321
  * Extracts token usage from SDK result messages
278
322
  * @param {Object} resultMessage - SDK result message
@@ -473,6 +517,75 @@ async function queryClaudeSDK(command, options = {}, ws) {
473
517
  let sessionCreatedSent = false;
474
518
  let tempImagePaths = [];
475
519
  let tempDir = null;
520
+ let queryInstance = null;
521
+ let startupTimeoutId = null;
522
+ let meaningfulOutputTimeoutId = null;
523
+ let timeoutTriggered = false;
524
+ let timeoutErrorMessage = null;
525
+
526
+ const clearStartupTimeout = () => {
527
+ if (startupTimeoutId) {
528
+ clearTimeout(startupTimeoutId);
529
+ startupTimeoutId = null;
530
+ }
531
+ };
532
+
533
+ const clearMeaningfulOutputTimeout = () => {
534
+ if (meaningfulOutputTimeoutId) {
535
+ clearTimeout(meaningfulOutputTimeoutId);
536
+ meaningfulOutputTimeoutId = null;
537
+ }
538
+ };
539
+
540
+ const interruptTimedOutQuery = () => {
541
+ if (!queryInstance || typeof queryInstance.interrupt !== 'function') {
542
+ return;
543
+ }
544
+
545
+ Promise.resolve(queryInstance.interrupt()).catch((interruptError) => {
546
+ console.warn('Failed to interrupt Claude SDK query after timeout:', interruptError);
547
+ });
548
+ };
549
+
550
+ const triggerStreamTimeout = (message) => {
551
+ if (timeoutTriggered) {
552
+ return;
553
+ }
554
+
555
+ timeoutTriggered = true;
556
+ timeoutErrorMessage = message;
557
+ interruptTimedOutQuery();
558
+ };
559
+
560
+ const armStartupTimeout = () => {
561
+ clearStartupTimeout();
562
+
563
+ if (!Number.isFinite(CLAUDE_STREAM_START_TIMEOUT_MS) || CLAUDE_STREAM_START_TIMEOUT_MS <= 0) {
564
+ return;
565
+ }
566
+
567
+ startupTimeoutId = setTimeout(() => {
568
+ triggerStreamTimeout(
569
+ `Claude did not produce any stream events within ${Math.round(CLAUDE_STREAM_START_TIMEOUT_MS / 1000)} seconds. ` +
570
+ 'This usually means the Claude client or upstream service is unavailable.'
571
+ );
572
+ }, CLAUDE_STREAM_START_TIMEOUT_MS);
573
+ };
574
+
575
+ const armMeaningfulOutputTimeout = () => {
576
+ clearMeaningfulOutputTimeout();
577
+
578
+ if (!Number.isFinite(CLAUDE_MEANINGFUL_OUTPUT_TIMEOUT_MS) || CLAUDE_MEANINGFUL_OUTPUT_TIMEOUT_MS <= 0) {
579
+ return;
580
+ }
581
+
582
+ meaningfulOutputTimeoutId = setTimeout(() => {
583
+ triggerStreamTimeout(
584
+ `Claude did not produce any assistant output within ${Math.round(CLAUDE_MEANINGFUL_OUTPUT_TIMEOUT_MS / 1000)} seconds. ` +
585
+ 'The upstream Claude service may be unavailable or stuck before the first response.'
586
+ );
587
+ }, CLAUDE_MEANINGFUL_OUTPUT_TIMEOUT_MS);
588
+ };
476
589
 
477
590
  try {
478
591
  // Map CLI options to SDK format
@@ -554,14 +667,29 @@ async function queryClaudeSDK(command, options = {}, ws) {
554
667
  sdkOptions.disallowedTools = sdkOptions.disallowedTools.filter(entry => entry !== decision.rememberEntry);
555
668
  }
556
669
  }
670
+ ws.send({
671
+ type: 'claude-permission-resolved',
672
+ requestId,
673
+ status: 'approved',
674
+ toolName,
675
+ sessionId: capturedSessionId || sessionId || null
676
+ });
557
677
  return { behavior: 'allow', updatedInput: decision.updatedInput ?? input };
558
678
  }
559
679
 
680
+ ws.send({
681
+ type: 'claude-permission-resolved',
682
+ requestId,
683
+ status: 'denied',
684
+ toolName,
685
+ message: decision.message ?? 'User denied tool use',
686
+ sessionId: capturedSessionId || sessionId || null
687
+ });
560
688
  return { behavior: 'deny', message: decision.message ?? 'User denied tool use' };
561
689
  };
562
690
 
563
691
  // Create SDK query instance
564
- const queryInstance = query({
692
+ queryInstance = query({
565
693
  prompt: finalCommand,
566
694
  options: sdkOptions
567
695
  });
@@ -573,7 +701,11 @@ async function queryClaudeSDK(command, options = {}, ws) {
573
701
 
574
702
  // Process streaming messages
575
703
  console.log('Starting async generator loop for session:', capturedSessionId || 'NEW');
704
+ armStartupTimeout();
705
+ armMeaningfulOutputTimeout();
576
706
  for await (const message of queryInstance) {
707
+ clearStartupTimeout();
708
+
577
709
  // Capture session ID from first message
578
710
  if (message.session_id && !capturedSessionId) {
579
711
 
@@ -590,7 +722,8 @@ async function queryClaudeSDK(command, options = {}, ws) {
590
722
  sessionCreatedSent = true;
591
723
  ws.send({
592
724
  type: 'session-created',
593
- sessionId: capturedSessionId
725
+ sessionId: capturedSessionId,
726
+ provider: 'claude'
594
727
  });
595
728
  } else {
596
729
  console.log('Not sending session-created. sessionId:', sessionId, 'sessionCreatedSent:', sessionCreatedSent);
@@ -604,9 +737,14 @@ async function queryClaudeSDK(command, options = {}, ws) {
604
737
  ws.send({
605
738
  type: 'claude-response',
606
739
  data: transformedMessage,
740
+ provider: 'claude',
607
741
  sessionId: capturedSessionId || sessionId || null
608
742
  });
609
743
 
744
+ if (messageHasMeaningfulClaudeOutput(message)) {
745
+ clearMeaningfulOutputTimeout();
746
+ }
747
+
610
748
  // Extract and send token budget updates from result messages
611
749
  if (message.type === 'result') {
612
750
  const tokenBudget = extractTokenBudget(message);
@@ -615,12 +753,17 @@ async function queryClaudeSDK(command, options = {}, ws) {
615
753
  ws.send({
616
754
  type: 'token-budget',
617
755
  data: tokenBudget,
756
+ provider: 'claude',
618
757
  sessionId: capturedSessionId || sessionId || null
619
758
  });
620
759
  }
621
760
  }
622
761
  }
623
762
 
763
+ if (timeoutTriggered) {
764
+ throw new Error(timeoutErrorMessage);
765
+ }
766
+
624
767
  // Clean up session on completion
625
768
  if (capturedSessionId) {
626
769
  removeSession(capturedSessionId);
@@ -633,6 +776,7 @@ async function queryClaudeSDK(command, options = {}, ws) {
633
776
  console.log('Streaming complete, sending claude-complete event');
634
777
  ws.send({
635
778
  type: 'claude-complete',
779
+ provider: 'claude',
636
780
  sessionId: capturedSessionId,
637
781
  exitCode: 0,
638
782
  isNewSession: !sessionId && !!command
@@ -653,11 +797,15 @@ async function queryClaudeSDK(command, options = {}, ws) {
653
797
  // Send error to WebSocket
654
798
  ws.send({
655
799
  type: 'claude-error',
656
- error: error.message,
800
+ error: timeoutErrorMessage || error.message,
801
+ provider: 'claude',
657
802
  sessionId: capturedSessionId || sessionId || null
658
803
  });
659
804
 
660
805
  throw error;
806
+ } finally {
807
+ clearStartupTimeout();
808
+ clearMeaningfulOutputTimeout();
661
809
  }
662
810
  }
663
811
 
package/server/cli.js CHANGED
@@ -72,10 +72,10 @@ function loadEnvFile() {
72
72
  }
73
73
  }
74
74
 
75
- // Get the database path (same logic as db.js)
76
- function getDatabasePath() {
75
+ // Get the data file path (same logic as db.js)
76
+ function getDataFilePath() {
77
77
  loadEnvFile();
78
- return process.env.DATABASE_PATH || path.join(__dirname, 'database', 'auth.db');
78
+ return process.env.DATA_FILE_PATH || path.join(__dirname, 'database', 'state.json');
79
79
  }
80
80
 
81
81
  // Get the installation directory
@@ -253,15 +253,15 @@ function showStatus(options = {}) {
253
253
  console.log(`\n${c.info('[INFO]')} Installation Directory:`);
254
254
  console.log(` ${c.dim(installDir)}`);
255
255
 
256
- // Database location
257
- const dbPath = getDatabasePath();
258
- const dbExists = fs.existsSync(dbPath);
259
- console.log(`\n${c.info('[INFO]')} Database Location:`);
260
- console.log(` ${c.dim(dbPath)}`);
261
- console.log(` Status: ${dbExists ? c.ok('[OK] Exists') : c.warn('[WARN] Not created yet (will be created on first run)')}`);
256
+ // Data file location
257
+ const dataFilePath = getDataFilePath();
258
+ const dataFileExists = fs.existsSync(dataFilePath);
259
+ console.log(`\n${c.info('[INFO]')} Data File Location:`);
260
+ console.log(` ${c.dim(dataFilePath)}`);
261
+ console.log(` Status: ${dataFileExists ? c.ok('[OK] Exists') : c.warn('[WARN] Not created yet (will be created on first run)')}`);
262
262
 
263
- if (dbExists) {
264
- const stats = fs.statSync(dbPath);
263
+ if (dataFileExists) {
264
+ const stats = fs.statSync(dataFilePath);
265
265
  console.log(` Size: ${c.dim((stats.size / 1024).toFixed(2) + ' KB')}`);
266
266
  console.log(` Modified: ${c.dim(stats.mtime.toLocaleString())}`);
267
267
  }
@@ -295,7 +295,7 @@ function showStatus(options = {}) {
295
295
  // Environment variables
296
296
  console.log(`\n${c.info('[INFO]')} Configuration:`);
297
297
  console.log(` PORT: ${c.bright(configuredPort)} ${c.dim(process.env.PORT ? '' : '(default)')}`);
298
- console.log(` DATABASE_PATH: ${c.dim(process.env.DATABASE_PATH || '(using default location)')}`);
298
+ console.log(` DATA_FILE_PATH: ${c.dim(process.env.DATA_FILE_PATH || '(using default location)')}`);
299
299
  console.log(` CLAUDE_CLI_PATH: ${c.dim(process.env.CLAUDE_CLI_PATH || 'claude (default)')}`);
300
300
  console.log(` CONTEXT_WINDOW: ${c.dim(process.env.CONTEXT_WINDOW || '160000 (default)')}`);
301
301
 
@@ -316,7 +316,7 @@ function showStatus(options = {}) {
316
316
  console.log('\n' + c.dim('═'.repeat(60)));
317
317
  console.log(`\n${c.tip('[TIP]')} Hints:`);
318
318
  console.log(` ${c.dim('>')} Use ${c.bright('axhub-genie --port 8080')} to run on a custom port`);
319
- console.log(` ${c.dim('>')} Use ${c.bright('axhub-genie --database-path /path/to/db')} for custom database`);
319
+ console.log(` ${c.dim('>')} Use ${c.bright('axhub-genie --data-file-path /path/to/state.json')} for custom data file`);
320
320
  console.log(` ${c.dim('>')} Run ${c.bright('axhub-genie help')} for all options`);
321
321
  console.log(` ${c.dim('>')} Access the UI at http://localhost:${displayPort}\n`);
322
322
  }
@@ -341,7 +341,7 @@ Commands:
341
341
 
342
342
  Options:
343
343
  -p, --port <port> Set server port (default: 32123)
344
- --database-path <path> Set custom database location
344
+ --data-file-path <path> Set custom data file location
345
345
  --json Output status as JSON (for scripts)
346
346
  -h, --help Show this help information
347
347
  -v, --version Show version information
@@ -357,7 +357,7 @@ Examples:
357
357
 
358
358
  Environment Variables:
359
359
  PORT Set server port (default: 32123)
360
- DATABASE_PATH Set custom database location
360
+ DATA_FILE_PATH Set custom data file location
361
361
  CLAUDE_CLI_PATH Set custom Claude CLI path
362
362
  CONTEXT_WINDOW Set context window size (default: 160000)
363
363
  AXHUB_GENIE_STATUS_PATH Set runtime status file path
@@ -453,10 +453,10 @@ function parseArgs(args) {
453
453
  parsed.options.port = args[++i];
454
454
  } else if (arg.startsWith('--port=')) {
455
455
  parsed.options.port = arg.split('=')[1];
456
- } else if (arg === '--database-path') {
457
- parsed.options.databasePath = args[++i];
458
- } else if (arg.startsWith('--database-path=')) {
459
- parsed.options.databasePath = arg.split('=')[1];
456
+ } else if (arg === '--data-file-path') {
457
+ parsed.options.dataFilePath = args[++i];
458
+ } else if (arg.startsWith('--data-file-path=')) {
459
+ parsed.options.dataFilePath = arg.split('=')[1];
460
460
  } else if (arg === '--json') {
461
461
  parsed.options.json = true;
462
462
  } else if (arg === '--help' || arg === '-h') {
@@ -482,8 +482,8 @@ async function main() {
482
482
  if (options.port) {
483
483
  process.env.PORT = options.port;
484
484
  }
485
- if (options.databasePath) {
486
- process.env.DATABASE_PATH = options.databasePath;
485
+ if (options.dataFilePath) {
486
+ process.env.DATA_FILE_PATH = options.dataFilePath;
487
487
  }
488
488
 
489
489
  switch (command) {