@memo-code/memo 0.8.0 → 0.8.6
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.
- package/README.md +66 -14
- package/README.zh.md +57 -14
- package/dist/index.js +122 -107
- package/dist/web/server/main.cjs +145360 -0
- package/dist/web/server/package.json +3 -0
- package/dist/web/ui/assets/_baseUniq-kMerwpPq.js +1 -0
- package/dist/web/ui/assets/abap-BdImnpbu.js +1 -0
- package/dist/web/ui/assets/actionscript-3-CoDkCxhg.js +1 -0
- package/dist/web/ui/assets/ada-bCR0ucgS.js +1 -0
- package/dist/web/ui/assets/andromeeda-C4gqWexZ.js +1 -0
- package/dist/web/ui/assets/angular-html-CU67Zn6k.js +1 -0
- package/dist/web/ui/assets/angular-ts-BwZT4LLn.js +1 -0
- package/dist/web/ui/assets/apache-Pmp26Uib.js +1 -0
- package/dist/web/ui/assets/apex-D8_7TLub.js +1 -0
- package/dist/web/ui/assets/apl-dKokRX4l.js +1 -0
- package/dist/web/ui/assets/applescript-Co6uUVPk.js +1 -0
- package/dist/web/ui/assets/ara-BRHolxvo.js +1 -0
- package/dist/web/ui/assets/arc-BulUmzON.js +1 -0
- package/dist/web/ui/assets/architectureDiagram-VXUJARFQ-CkXEUKP9.js +36 -0
- package/dist/web/ui/assets/asciidoc-Dv7Oe6Be.js +1 -0
- package/dist/web/ui/assets/asm-D_Q5rh1f.js +1 -0
- package/dist/web/ui/assets/astro-CbQHKStN.js +1 -0
- package/dist/web/ui/assets/aurora-x-D-2ljcwZ.js +1 -0
- package/dist/web/ui/assets/awk-DMzUqQB5.js +1 -0
- package/dist/web/ui/assets/ayu-dark-CMjwMIkn.js +1 -0
- package/dist/web/ui/assets/ayu-light-C47S-Tmv.js +1 -0
- package/dist/web/ui/assets/ayu-mirage-CjoLj4QM.js +1 -0
- package/dist/web/ui/assets/ballerina-BFfxhgS-.js +1 -0
- package/dist/web/ui/assets/bat-BkioyH1T.js +1 -0
- package/dist/web/ui/assets/beancount-k_qm7-4y.js +1 -0
- package/dist/web/ui/assets/berry-uYugtg8r.js +1 -0
- package/dist/web/ui/assets/bibtex-CHM0blh-.js +1 -0
- package/dist/web/ui/assets/bicep-Bmn6On1c.js +1 -0
- package/dist/web/ui/assets/blade-D4QpJJKB.js +1 -0
- package/dist/web/ui/assets/blockDiagram-VD42YOAC-DXcW7NDi.js +122 -0
- package/dist/web/ui/assets/bsl-BO_Y6i37.js +1 -0
- package/dist/web/ui/assets/c-BIGW1oBm.js +1 -0
- package/dist/web/ui/assets/c3-VCDPK7BO.js +1 -0
- package/dist/web/ui/assets/c4Diagram-YG6GDRKO-QrajWDN7.js +10 -0
- package/dist/web/ui/assets/cadence-Bv_4Rxtq.js +1 -0
- package/dist/web/ui/assets/cairo-KRGpt6FW.js +1 -0
- package/dist/web/ui/assets/catppuccin-frappe-DFWUc33u.js +1 -0
- package/dist/web/ui/assets/catppuccin-latte-C9dUb6Cb.js +1 -0
- package/dist/web/ui/assets/catppuccin-macchiato-DQyhUUbL.js +1 -0
- package/dist/web/ui/assets/catppuccin-mocha-D87Tk5Gz.js +1 -0
- package/dist/web/ui/assets/channel-DcFyxfzD.js +1 -0
- package/dist/web/ui/assets/chunk-4BX2VUAB-CzB06K-m.js +1 -0
- package/dist/web/ui/assets/chunk-55IACEB6-e5LXEkOB.js +1 -0
- package/dist/web/ui/assets/chunk-B4BG7PRW-YVg5pH4D.js +165 -0
- package/dist/web/ui/assets/chunk-DI55MBZ5-Carl7-xm.js +220 -0
- package/dist/web/ui/assets/chunk-FMBD7UC4-06dN5sRQ.js +15 -0
- package/dist/web/ui/assets/chunk-QN33PNHL-Cl3zdZ7K.js +1 -0
- package/dist/web/ui/assets/chunk-QZHKN3VN-CDOQBeOx.js +1 -0
- package/dist/web/ui/assets/chunk-TZMSLE5B-DWeaVk_X.js +1 -0
- package/dist/web/ui/assets/clarity-D53aC0YG.js +1 -0
- package/dist/web/ui/assets/classDiagram-2ON5EDUG-DmyEwwBr.js +1 -0
- package/dist/web/ui/assets/classDiagram-v2-WZHVMYZB-DmyEwwBr.js +1 -0
- package/dist/web/ui/assets/clojure-P80f7IUj.js +1 -0
- package/dist/web/ui/assets/clone-DZ5SCP6k.js +1 -0
- package/dist/web/ui/assets/cmake-D1j8_8rp.js +1 -0
- package/dist/web/ui/assets/cobol-nwyudZeR.js +1 -0
- package/dist/web/ui/assets/code-block-OCS4YCEC-DmdcLUqO.js +2 -0
- package/dist/web/ui/assets/codeowners-Bp6g37R7.js +1 -0
- package/dist/web/ui/assets/codeql-DsOJ9woJ.js +1 -0
- package/dist/web/ui/assets/coffee-Ch7k5sss.js +1 -0
- package/dist/web/ui/assets/common-lisp-Cg-RD9OK.js +1 -0
- package/dist/web/ui/assets/coq-DkFqJrB1.js +1 -0
- package/dist/web/ui/assets/cose-bilkent-S5V4N54A-CDHjR7aY.js +1 -0
- package/dist/web/ui/assets/cpp-CofmeUqb.js +1 -0
- package/dist/web/ui/assets/crystal-tKQVLTB8.js +1 -0
- package/dist/web/ui/assets/csharp-COcwbKMJ.js +1 -0
- package/dist/web/ui/assets/css-DPfMkruS.js +1 -0
- package/dist/web/ui/assets/csv-fuZLfV_i.js +1 -0
- package/dist/web/ui/assets/cue-D82EKSYY.js +1 -0
- package/dist/web/ui/assets/cypher-COkxafJQ.js +1 -0
- package/dist/web/ui/assets/cytoscape.esm-5J0xJHOV.js +321 -0
- package/dist/web/ui/assets/d-85-TOEBH.js +1 -0
- package/dist/web/ui/assets/dagre-6UL2VRFP-BvAH8ysH.js +4 -0
- package/dist/web/ui/assets/dark-plus-C3mMm8J8.js +1 -0
- package/dist/web/ui/assets/dart-CF10PKvl.js +1 -0
- package/dist/web/ui/assets/dax-CEL-wOlO.js +1 -0
- package/dist/web/ui/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/dist/web/ui/assets/desktop-BmXAJ9_W.js +1 -0
- package/dist/web/ui/assets/diagram-PSM6KHXK-CKk6ZAaV.js +24 -0
- package/dist/web/ui/assets/diagram-QEK2KX5R-Ewj4cQfm.js +43 -0
- package/dist/web/ui/assets/diagram-S2PKOQOG-B-i75ELR.js +24 -0
- package/dist/web/ui/assets/diff-D97Zzqfu.js +1 -0
- package/dist/web/ui/assets/docker-BcOcwvcX.js +1 -0
- package/dist/web/ui/assets/dotenv-Da5cRb03.js +1 -0
- package/dist/web/ui/assets/dracula-BzJJZx-M.js +1 -0
- package/dist/web/ui/assets/dracula-soft-BXkSAIEj.js +1 -0
- package/dist/web/ui/assets/dream-maker-BtqSS_iP.js +1 -0
- package/dist/web/ui/assets/edge-BkV0erSs.js +1 -0
- package/dist/web/ui/assets/elixir-CDX3lj18.js +1 -0
- package/dist/web/ui/assets/elm-DbKCFpqz.js +1 -0
- package/dist/web/ui/assets/emacs-lisp-C9XAeP06.js +1 -0
- package/dist/web/ui/assets/erDiagram-Q2GNP2WA-BMe1fyY7.js +60 -0
- package/dist/web/ui/assets/erb-CgJxNhIT.js +1 -0
- package/dist/web/ui/assets/erlang-DsQrWhSR.js +1 -0
- package/dist/web/ui/assets/everforest-dark-BgDCqdQA.js +1 -0
- package/dist/web/ui/assets/everforest-light-C8M2exoo.js +1 -0
- package/dist/web/ui/assets/fennel-BYunw83y.js +1 -0
- package/dist/web/ui/assets/fish-BvzEVeQv.js +1 -0
- package/dist/web/ui/assets/flowDiagram-NV44I4VS-DTOpgGDg.js +162 -0
- package/dist/web/ui/assets/fluent-C4IJs8-o.js +1 -0
- package/dist/web/ui/assets/fortran-fixed-form-CkoXwp7k.js +1 -0
- package/dist/web/ui/assets/fortran-free-form-BxgE0vQu.js +1 -0
- package/dist/web/ui/assets/fsharp-CXgrBDvD.js +1 -0
- package/dist/web/ui/assets/ganttDiagram-JELNMOA3-DdrlqPr-.js +267 -0
- package/dist/web/ui/assets/gdresource-BOOCDP_w.js +1 -0
- package/dist/web/ui/assets/gdscript-C5YyOfLZ.js +1 -0
- package/dist/web/ui/assets/gdshader-DkwncUOv.js +1 -0
- package/dist/web/ui/assets/genie-D0YGMca9.js +1 -0
- package/dist/web/ui/assets/gherkin-DyxjwDmM.js +1 -0
- package/dist/web/ui/assets/git-commit-F4YmCXRG.js +1 -0
- package/dist/web/ui/assets/git-rebase-r7XF79zn.js +1 -0
- package/dist/web/ui/assets/gitGraphDiagram-NY62KEGX-DOpYoqH8.js +65 -0
- package/dist/web/ui/assets/github-dark-DHJKELXO.js +1 -0
- package/dist/web/ui/assets/github-dark-default-Cuk6v7N8.js +1 -0
- package/dist/web/ui/assets/github-dark-dimmed-DH5Ifo-i.js +1 -0
- package/dist/web/ui/assets/github-dark-high-contrast-E3gJ1_iC.js +1 -0
- package/dist/web/ui/assets/github-light-DAi9KRSo.js +1 -0
- package/dist/web/ui/assets/github-light-default-D7oLnXFd.js +1 -0
- package/dist/web/ui/assets/github-light-high-contrast-BfjtVDDH.js +1 -0
- package/dist/web/ui/assets/gleam-BspZqrRM.js +1 -0
- package/dist/web/ui/assets/glimmer-js-Rg0-pVw9.js +1 -0
- package/dist/web/ui/assets/glimmer-ts-U6CK756n.js +1 -0
- package/dist/web/ui/assets/glsl-DplSGwfg.js +1 -0
- package/dist/web/ui/assets/gn-n2N0HUVH.js +1 -0
- package/dist/web/ui/assets/gnuplot-DdkO51Og.js +1 -0
- package/dist/web/ui/assets/go-CxLEBnE3.js +1 -0
- package/dist/web/ui/assets/graph-DNq5-vTB.js +1 -0
- package/dist/web/ui/assets/graphql-ChdNCCLP.js +1 -0
- package/dist/web/ui/assets/groovy-gcz8RCvz.js +1 -0
- package/dist/web/ui/assets/gruvbox-dark-hard-CFHQjOhq.js +1 -0
- package/dist/web/ui/assets/gruvbox-dark-medium-GsRaNv29.js +1 -0
- package/dist/web/ui/assets/gruvbox-dark-soft-CVdnzihN.js +1 -0
- package/dist/web/ui/assets/gruvbox-light-hard-CH1njM8p.js +1 -0
- package/dist/web/ui/assets/gruvbox-light-medium-DRw_LuNl.js +1 -0
- package/dist/web/ui/assets/gruvbox-light-soft-hJgmCMqR.js +1 -0
- package/dist/web/ui/assets/hack-CaT9iCJl.js +1 -0
- package/dist/web/ui/assets/haml-B8DHNrY2.js +1 -0
- package/dist/web/ui/assets/handlebars-BL8al0AC.js +1 -0
- package/dist/web/ui/assets/haskell-Df6bDoY_.js +1 -0
- package/dist/web/ui/assets/haxe-CzTSHFRz.js +1 -0
- package/dist/web/ui/assets/hcl-BWvSN4gD.js +1 -0
- package/dist/web/ui/assets/hjson-D5-asLiD.js +1 -0
- package/dist/web/ui/assets/hlsl-D3lLCCz7.js +1 -0
- package/dist/web/ui/assets/horizon-BUw7H-hv.js +1 -0
- package/dist/web/ui/assets/houston-DnULxvSX.js +1 -0
- package/dist/web/ui/assets/html-GMplVEZG.js +1 -0
- package/dist/web/ui/assets/html-derivative-BFtXZ54Q.js +1 -0
- package/dist/web/ui/assets/http-jrhK8wxY.js +1 -0
- package/dist/web/ui/assets/hurl-irOxFIW8.js +1 -0
- package/dist/web/ui/assets/hxml-Bvhsp5Yf.js +1 -0
- package/dist/web/ui/assets/hy-DFXneXwc.js +1 -0
- package/dist/web/ui/assets/imba-DGztddWO.js +1 -0
- package/dist/web/ui/assets/index-B3TLzmaO.js +441 -0
- package/dist/web/ui/assets/index-BSSBc2rS.css +1 -0
- package/dist/web/ui/assets/infoDiagram-WHAUD3N6-D3Wwcqmd.js +2 -0
- package/dist/web/ui/assets/ini-BEwlwnbL.js +1 -0
- package/dist/web/ui/assets/init-Gi6I4Gst.js +1 -0
- package/dist/web/ui/assets/java-CylS5w8V.js +1 -0
- package/dist/web/ui/assets/javascript-wDzz0qaB.js +1 -0
- package/dist/web/ui/assets/jinja-4LBKfQ-Z.js +1 -0
- package/dist/web/ui/assets/jison-wvAkD_A8.js +1 -0
- package/dist/web/ui/assets/journeyDiagram-XKPGCS4Q-BKDrlvIB.js +139 -0
- package/dist/web/ui/assets/json-Cp-IABpG.js +1 -0
- package/dist/web/ui/assets/json5-C9tS-k6U.js +1 -0
- package/dist/web/ui/assets/jsonc-Des-eS-w.js +1 -0
- package/dist/web/ui/assets/jsonl-DcaNXYhu.js +1 -0
- package/dist/web/ui/assets/jsonnet-DFQXde-d.js +1 -0
- package/dist/web/ui/assets/jssm-C2t-YnRu.js +1 -0
- package/dist/web/ui/assets/jsx-g9-lgVsj.js +1 -0
- package/dist/web/ui/assets/julia-CxzCAyBv.js +1 -0
- package/dist/web/ui/assets/kanagawa-dragon-CkXjmgJE.js +1 -0
- package/dist/web/ui/assets/kanagawa-lotus-CfQXZHmo.js +1 -0
- package/dist/web/ui/assets/kanagawa-wave-DWedfzmr.js +1 -0
- package/dist/web/ui/assets/kanban-definition-3W4ZIXB7-Dj6sXTJI.js +89 -0
- package/dist/web/ui/assets/katex-DhXJpUyf.js +261 -0
- package/dist/web/ui/assets/kdl-DV7GczEv.js +1 -0
- package/dist/web/ui/assets/kotlin-BdnUsdx6.js +1 -0
- package/dist/web/ui/assets/kusto-DZf3V79B.js +1 -0
- package/dist/web/ui/assets/laserwave-DUszq2jm.js +1 -0
- package/dist/web/ui/assets/latex-DGMBWnxU.js +1 -0
- package/dist/web/ui/assets/layout-4XvXY0m8.js +1 -0
- package/dist/web/ui/assets/lean-BZvkOJ9d.js +1 -0
- package/dist/web/ui/assets/less-B1dDrJ26.js +1 -0
- package/dist/web/ui/assets/light-plus-B7mTdjB0.js +1 -0
- package/dist/web/ui/assets/linear-CUPS720l.js +1 -0
- package/dist/web/ui/assets/liquid-DYVedYrR.js +1 -0
- package/dist/web/ui/assets/llvm-BtvRca6l.js +1 -0
- package/dist/web/ui/assets/log-2UxHyX5q.js +1 -0
- package/dist/web/ui/assets/logo-BtOb2qkB.js +1 -0
- package/dist/web/ui/assets/lua-BaeVxFsk.js +1 -0
- package/dist/web/ui/assets/luau-C-HG3fhB.js +1 -0
- package/dist/web/ui/assets/make-CHLpvVh8.js +1 -0
- package/dist/web/ui/assets/markdown-Cvjx9yec.js +1 -0
- package/dist/web/ui/assets/marko-DZsq8hO1.js +1 -0
- package/dist/web/ui/assets/material-theme-D5KoaKCx.js +1 -0
- package/dist/web/ui/assets/material-theme-darker-BfHTSMKl.js +1 -0
- package/dist/web/ui/assets/material-theme-lighter-B0m2ddpp.js +1 -0
- package/dist/web/ui/assets/material-theme-ocean-CyktbL80.js +1 -0
- package/dist/web/ui/assets/material-theme-palenight-Csfq5Kiy.js +1 -0
- package/dist/web/ui/assets/matlab-D7o27uSR.js +1 -0
- package/dist/web/ui/assets/mdc-DUICxH0z.js +1 -0
- package/dist/web/ui/assets/mdx-Cmh6b_Ma.js +1 -0
- package/dist/web/ui/assets/mermaid-mWjccvbQ.js +1 -0
- package/dist/web/ui/assets/min-KWXImKVx.js +1 -0
- package/dist/web/ui/assets/min-dark-CafNBF8u.js +1 -0
- package/dist/web/ui/assets/min-light-CTRr51gU.js +1 -0
- package/dist/web/ui/assets/mindmap-definition-VGOIOE7T-D9ty43l7.js +68 -0
- package/dist/web/ui/assets/mipsasm-CKIfxQSi.js +1 -0
- package/dist/web/ui/assets/mojo-B93PlW-d.js +1 -0
- package/dist/web/ui/assets/monokai-D4h5O-jR.js +1 -0
- package/dist/web/ui/assets/moonbit-Ba13S78F.js +1 -0
- package/dist/web/ui/assets/move-IF9eRakj.js +1 -0
- package/dist/web/ui/assets/narrat-DRg8JJMk.js +1 -0
- package/dist/web/ui/assets/nextflow-BrzmwbiE.js +1 -0
- package/dist/web/ui/assets/nginx-BpAMiNFr.js +1 -0
- package/dist/web/ui/assets/night-owl-C39BiMTA.js +1 -0
- package/dist/web/ui/assets/night-owl-light-CMTm3GFP.js +1 -0
- package/dist/web/ui/assets/nim-CVrawwO9.js +1 -0
- package/dist/web/ui/assets/nix-CwoSXNpI.js +1 -0
- package/dist/web/ui/assets/nord-Ddv68eIx.js +1 -0
- package/dist/web/ui/assets/nushell-C-sUppwS.js +1 -0
- package/dist/web/ui/assets/objective-c-DXmwc3jG.js +1 -0
- package/dist/web/ui/assets/objective-cpp-CLxacb5B.js +1 -0
- package/dist/web/ui/assets/ocaml-C0hk2d4L.js +1 -0
- package/dist/web/ui/assets/odin-BBf5iR-q.js +1 -0
- package/dist/web/ui/assets/one-dark-pro-DVMEJ2y_.js +1 -0
- package/dist/web/ui/assets/one-light-C3Wv6jpd.js +1 -0
- package/dist/web/ui/assets/openscad-C4EeE6gA.js +1 -0
- package/dist/web/ui/assets/ordinal-Cboi1Yqb.js +1 -0
- package/dist/web/ui/assets/pascal-D93ZcfNL.js +1 -0
- package/dist/web/ui/assets/perl-C0TMdlhV.js +1 -0
- package/dist/web/ui/assets/php-Dhbhpdrm.js +1 -0
- package/dist/web/ui/assets/pieDiagram-ADFJNKIX-BlMxxSdO.js +30 -0
- package/dist/web/ui/assets/pkl-u5AG7uiY.js +1 -0
- package/dist/web/ui/assets/plastic-3e1v2bzS.js +1 -0
- package/dist/web/ui/assets/plsql-ChMvpjG-.js +1 -0
- package/dist/web/ui/assets/po-BTJTHyun.js +1 -0
- package/dist/web/ui/assets/poimandres-CS3Unz2-.js +1 -0
- package/dist/web/ui/assets/polar-C0HS_06l.js +1 -0
- package/dist/web/ui/assets/postcss-CXtECtnM.js +1 -0
- package/dist/web/ui/assets/powerquery-CEu0bR-o.js +1 -0
- package/dist/web/ui/assets/powershell-Dpen1YoG.js +1 -0
- package/dist/web/ui/assets/prisma-Dd19v3D-.js +1 -0
- package/dist/web/ui/assets/prolog-CbFg5uaA.js +1 -0
- package/dist/web/ui/assets/proto-C7zT0LnQ.js +1 -0
- package/dist/web/ui/assets/pug-CGlum2m_.js +1 -0
- package/dist/web/ui/assets/puppet-BMWR74SV.js +1 -0
- package/dist/web/ui/assets/purescript-CklMAg4u.js +1 -0
- package/dist/web/ui/assets/python-B6aJPvgy.js +1 -0
- package/dist/web/ui/assets/qml-3beO22l8.js +1 -0
- package/dist/web/ui/assets/qmldir-C8lEn-DE.js +1 -0
- package/dist/web/ui/assets/qss-IeuSbFQv.js +1 -0
- package/dist/web/ui/assets/quadrantDiagram-AYHSOK5B-Cam0yXvU.js +7 -0
- package/dist/web/ui/assets/r-Dspwwk_N.js +1 -0
- package/dist/web/ui/assets/racket-BqYA7rlc.js +1 -0
- package/dist/web/ui/assets/raku-DXvB9xmW.js +1 -0
- package/dist/web/ui/assets/razor-Uh8Bk_45.js +1 -0
- package/dist/web/ui/assets/red-bN70gL4F.js +1 -0
- package/dist/web/ui/assets/reg-C-SQnVFl.js +1 -0
- package/dist/web/ui/assets/regexp-CDVJQ6XC.js +1 -0
- package/dist/web/ui/assets/rel-C3B-1QV4.js +1 -0
- package/dist/web/ui/assets/requirementDiagram-UZGBJVZJ-D_yH3UAt.js +64 -0
- package/dist/web/ui/assets/riscv-BM1_JUlF.js +1 -0
- package/dist/web/ui/assets/ron-BhRPY-oY.js +1 -0
- package/dist/web/ui/assets/rose-pine-dawn-DHQR4-dF.js +1 -0
- package/dist/web/ui/assets/rose-pine-moon-D4_iv3hh.js +1 -0
- package/dist/web/ui/assets/rose-pine-qdsjHGoJ.js +1 -0
- package/dist/web/ui/assets/rosmsg-BJDFO7_C.js +1 -0
- package/dist/web/ui/assets/rst-D5oM4XIm.js +1 -0
- package/dist/web/ui/assets/ruby-Cw6WdidG.js +1 -0
- package/dist/web/ui/assets/rust-B1yitclQ.js +1 -0
- package/dist/web/ui/assets/sankeyDiagram-TZEHDZUN-Dm93-uJ1.js +10 -0
- package/dist/web/ui/assets/sas-cz2c8ADy.js +1 -0
- package/dist/web/ui/assets/sass-Cj5Yp3dK.js +1 -0
- package/dist/web/ui/assets/scala-C151Ov-r.js +1 -0
- package/dist/web/ui/assets/scheme-C98Dy4si.js +1 -0
- package/dist/web/ui/assets/scss-OYdSNvt2.js +1 -0
- package/dist/web/ui/assets/sdbl-DVxCFoDh.js +1 -0
- package/dist/web/ui/assets/sequenceDiagram-WL72ISMW-D6C4PHTO.js +145 -0
- package/dist/web/ui/assets/shaderlab-Dg9Lc6iA.js +1 -0
- package/dist/web/ui/assets/shellscript-Yzrsuije.js +1 -0
- package/dist/web/ui/assets/shellsession-BADoaaVG.js +1 -0
- package/dist/web/ui/assets/slack-dark-BthQWCQV.js +1 -0
- package/dist/web/ui/assets/slack-ochin-DqwNpetd.js +1 -0
- package/dist/web/ui/assets/smalltalk-BERRCDM3.js +1 -0
- package/dist/web/ui/assets/snazzy-light-Bw305WKR.js +1 -0
- package/dist/web/ui/assets/solarized-dark-DXbdFlpD.js +1 -0
- package/dist/web/ui/assets/solarized-light-L9t79GZl.js +1 -0
- package/dist/web/ui/assets/solidity-rGO070M0.js +1 -0
- package/dist/web/ui/assets/soy-Brmx7dQM.js +1 -0
- package/dist/web/ui/assets/sparql-rVzFXLq3.js +1 -0
- package/dist/web/ui/assets/splunk-BtCnVYZw.js +1 -0
- package/dist/web/ui/assets/sql-BLtJtn59.js +1 -0
- package/dist/web/ui/assets/ssh-config-_ykCGR6B.js +1 -0
- package/dist/web/ui/assets/stata-BH5u7GGu.js +1 -0
- package/dist/web/ui/assets/stateDiagram-FKZM4ZOC-msXCFM-o.js +1 -0
- package/dist/web/ui/assets/stateDiagram-v2-4FDKWEC3-BxRi32Am.js +1 -0
- package/dist/web/ui/assets/stylus-BEDo0Tqx.js +1 -0
- package/dist/web/ui/assets/surrealql-Bq5Q-fJD.js +1 -0
- package/dist/web/ui/assets/svelte-zxCyuUbr.js +1 -0
- package/dist/web/ui/assets/swift-Dg5xB15N.js +1 -0
- package/dist/web/ui/assets/synthwave-84-CbfX1IO0.js +1 -0
- package/dist/web/ui/assets/system-verilog-CnnmHF94.js +1 -0
- package/dist/web/ui/assets/systemd-4A_iFExJ.js +1 -0
- package/dist/web/ui/assets/talonscript-CkByrt1z.js +1 -0
- package/dist/web/ui/assets/tasl-QIJgUcNo.js +1 -0
- package/dist/web/ui/assets/tcl-dwOrl1Do.js +1 -0
- package/dist/web/ui/assets/templ-P3uqSqPl.js +1 -0
- package/dist/web/ui/assets/terraform-BETggiCN.js +1 -0
- package/dist/web/ui/assets/tex-CvyZ59Mk.js +1 -0
- package/dist/web/ui/assets/timeline-definition-IT6M3QCI-OhdHqGpr.js +61 -0
- package/dist/web/ui/assets/tokyo-night-hegEt444.js +1 -0
- package/dist/web/ui/assets/toml-vGWfd6FD.js +1 -0
- package/dist/web/ui/assets/treemap-KMMF4GRG-BBa7Tuyx.js +128 -0
- package/dist/web/ui/assets/ts-tags-zn1MmPIZ.js +1 -0
- package/dist/web/ui/assets/tsv-B_m7g4N7.js +1 -0
- package/dist/web/ui/assets/tsx-COt5Ahok.js +1 -0
- package/dist/web/ui/assets/turtle-BsS91CYL.js +1 -0
- package/dist/web/ui/assets/twig-ChbOoGGc.js +1 -0
- package/dist/web/ui/assets/typescript-BPQ3VLAy.js +1 -0
- package/dist/web/ui/assets/typespec-BGHnOYBU.js +1 -0
- package/dist/web/ui/assets/typst-DHCkPAjA.js +1 -0
- package/dist/web/ui/assets/v-BcVCzyr7.js +1 -0
- package/dist/web/ui/assets/vala-CsfeWuGM.js +1 -0
- package/dist/web/ui/assets/vb-D17OF-Vu.js +1 -0
- package/dist/web/ui/assets/verilog-BQ8w6xss.js +1 -0
- package/dist/web/ui/assets/vesper-DU1UobuO.js +1 -0
- package/dist/web/ui/assets/vhdl-CeAyd5Ju.js +1 -0
- package/dist/web/ui/assets/viml-CJc9bBzg.js +1 -0
- package/dist/web/ui/assets/vitesse-black-Bkuqu6BP.js +1 -0
- package/dist/web/ui/assets/vitesse-dark-D0r3Knsf.js +1 -0
- package/dist/web/ui/assets/vitesse-light-CVO1_9PV.js +1 -0
- package/dist/web/ui/assets/vue-DN_0RTcg.js +1 -0
- package/dist/web/ui/assets/vue-html-AaS7Mt5G.js +1 -0
- package/dist/web/ui/assets/vue-vine-CQOfvN7w.js +1 -0
- package/dist/web/ui/assets/vyper-CDx5xZoG.js +1 -0
- package/dist/web/ui/assets/wasm-CG6Dc4jp.js +1 -0
- package/dist/web/ui/assets/wasm-MzD3tlZU.js +1 -0
- package/dist/web/ui/assets/wenyan-BV7otONQ.js +1 -0
- package/dist/web/ui/assets/wgsl-Dx-B1_4e.js +1 -0
- package/dist/web/ui/assets/wikitext-BhOHFoWU.js +1 -0
- package/dist/web/ui/assets/wit-5i3qLPDT.js +1 -0
- package/dist/web/ui/assets/wolfram-lXgVvXCa.js +1 -0
- package/dist/web/ui/assets/xml-sdJ4AIDG.js +1 -0
- package/dist/web/ui/assets/xsl-CtQFsRM5.js +1 -0
- package/dist/web/ui/assets/xychartDiagram-PRI3JC2R-CwWrUftO.js +7 -0
- package/dist/web/ui/assets/yaml-Buea-lGh.js +1 -0
- package/dist/web/ui/assets/zenscript-DVFEvuxE.js +1 -0
- package/dist/web/ui/assets/zig-VOosw3JB.js +1 -0
- package/dist/web/ui/index.html +19 -0
- package/dist/web/ui/logo-dark.svg +10 -0
- package/dist/web/ui/logo.svg +10 -0
- package/package.json +18 -2
package/README.md
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
|
|
23
23
|
<img src="public/demo.png" width="100%" alt="Memo Code demo">
|
|
24
24
|
|
|
25
|
-
Built with Node.js + TypeScript.
|
|
25
|
+
Built with Node.js + TypeScript. Memo works with OpenAI-compatible APIs.
|
|
26
26
|
|
|
27
27
|
Memo Code is an open-source coding agent that lives in your terminal, understands repository context, and helps you move faster with natural-language commands.
|
|
28
28
|
|
|
@@ -40,10 +40,13 @@ yarn global add @memo-code/memo
|
|
|
40
40
|
bun add -g @memo-code/memo
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
+
Note: npm distribution is prebuilt and already includes required runtime/web assets.
|
|
44
|
+
`pnpm run build` is only needed when you run Memo from source checkout in this repository.
|
|
45
|
+
|
|
43
46
|
### 2. Configure API Key
|
|
44
47
|
|
|
45
48
|
```bash
|
|
46
|
-
export
|
|
49
|
+
export OPENAI_API_KEY=your_key
|
|
47
50
|
```
|
|
48
51
|
|
|
49
52
|
### 3. Start
|
|
@@ -57,12 +60,30 @@ memo
|
|
|
57
60
|
|
|
58
61
|
- Interactive mode: `memo` (default TUI; supports multi-turn chat, tool visualization, shortcuts).
|
|
59
62
|
- Plain mode (non-TTY): `echo "your prompt" | memo` (plain text output; useful for scripts).
|
|
63
|
+
- One-shot mode: `memo --once "your prompt"` or `memo -once "your prompt"` (run one turn and exit; recommended with `--dangerous` in trusted repos).
|
|
64
|
+
- Continue latest local session: `memo --prev` or `memo -prev` (load latest session context for current directory).
|
|
60
65
|
- Dangerous mode: `memo --dangerous` or `memo -d` (skip tool approvals; use carefully).
|
|
61
66
|
- Version: `memo --version` or `memo -v`.
|
|
67
|
+
- Start web server: `memo web --host 127.0.0.1 --port 5494 --open` (npm package already includes web assets; source checkout needs `pnpm run build`).
|
|
62
68
|
- Startup project guidance: if `AGENTS.md` exists in the startup root, Memo appends it to the system prompt automatically.
|
|
63
69
|
- Skills: Memo auto-discovers `SKILL.md` files and appends an available-skills section into the system prompt.
|
|
64
70
|
- MCP activation selection: when MCP servers are configured, startup shows a multi-select to activate servers for this run.
|
|
65
|
-
-
|
|
71
|
+
- Web app supports multi-workspace project management and concurrent live sessions (up to 20 per server process).
|
|
72
|
+
|
|
73
|
+
## Web Console
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
memo web --host 127.0.0.1 --port 5494 --open
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
- npm distribution already bundles web server + web UI assets.
|
|
80
|
+
- if running from source checkout, build once with `pnpm run build`.
|
|
81
|
+
- Web auth config is stored in `~/.memo/server.yaml` by default (`MEMO_SERVER_CONFIG` can override path).
|
|
82
|
+
- On first startup, Memo creates this file with generated auth secrets and a random password.
|
|
83
|
+
- Login page uses `server.yaml` credentials (`auth.username` / `auth.password`).
|
|
84
|
+
- Sidebar includes dedicated entries for `MCP Servers` and `Skills`:
|
|
85
|
+
- MCP: create/edit/remove/login/logout and active toggles.
|
|
86
|
+
- Skills: create/delete, detail preview, and active toggles.
|
|
66
87
|
|
|
67
88
|
## Configuration
|
|
68
89
|
|
|
@@ -71,13 +92,14 @@ Location: `~/.memo/config.toml` (can be changed via `MEMO_HOME`).
|
|
|
71
92
|
### Provider Configuration
|
|
72
93
|
|
|
73
94
|
```toml
|
|
74
|
-
current_provider = "
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
95
|
+
current_provider = "openai_compatible"
|
|
96
|
+
auto_compact_threshold_percent = 80
|
|
97
|
+
|
|
98
|
+
[[providers.openai_compatible]]
|
|
99
|
+
name = "openai_compatible"
|
|
100
|
+
env_api_key = "OPENAI_API_KEY"
|
|
101
|
+
model = "gpt-4.1-mini"
|
|
102
|
+
base_url = "https://api.openai.com/v1"
|
|
81
103
|
```
|
|
82
104
|
|
|
83
105
|
You can configure multiple providers and switch with `current_provider`.
|
|
@@ -100,6 +122,12 @@ Context window policy:
|
|
|
100
122
|
- priority 2: `model_profiles."<model>".context_window`
|
|
101
123
|
- fallback: `120000`
|
|
102
124
|
|
|
125
|
+
Auto compaction policy:
|
|
126
|
+
|
|
127
|
+
- threshold: `auto_compact_threshold_percent` (default `80`)
|
|
128
|
+
- trigger: estimated prompt tokens at step start reaches threshold
|
|
129
|
+
- frequency: at most once per turn
|
|
130
|
+
|
|
103
131
|
### MCP Tool Configuration
|
|
104
132
|
|
|
105
133
|
Both local and remote MCP servers are supported:
|
|
@@ -119,6 +147,11 @@ url = "https://your-mcp-server.com/mcp"
|
|
|
119
147
|
# Optional: default active MCP servers at startup
|
|
120
148
|
active_mcp_servers = ["local_tools", "remote"]
|
|
121
149
|
# Optional: use [] to start with no MCP servers active
|
|
150
|
+
|
|
151
|
+
# Optional: MCP OAuth credential storage mode: auto | keyring | file
|
|
152
|
+
mcp_oauth_credentials_store_mode = "auto"
|
|
153
|
+
# Optional: fixed localhost callback port for `memo mcp login`
|
|
154
|
+
# mcp_oauth_callback_port = 33333
|
|
122
155
|
```
|
|
123
156
|
|
|
124
157
|
You can also manage MCP configs via CLI (aligned with Codex CLI style):
|
|
@@ -133,11 +166,17 @@ memo mcp add local_tools -- /path/to/mcp-server --flag
|
|
|
133
166
|
# Add remote MCP server (streamable HTTP)
|
|
134
167
|
memo mcp add remote --url https://your-mcp-server.com/mcp --bearer-token-env-var MCP_TOKEN
|
|
135
168
|
|
|
169
|
+
# OAuth login/logout for streamable_http servers
|
|
170
|
+
memo mcp login remote --scopes read,write
|
|
171
|
+
memo mcp logout remote
|
|
172
|
+
|
|
136
173
|
# Show/remove
|
|
137
174
|
memo mcp get remote
|
|
138
175
|
memo mcp remove remote
|
|
139
176
|
```
|
|
140
177
|
|
|
178
|
+
`memo mcp list` includes `auth_status` for each server: `unsupported`, `not_logged_in`, `bearer_token`, or `oauth`.
|
|
179
|
+
|
|
141
180
|
## Skills
|
|
142
181
|
|
|
143
182
|
Memo supports Agent Skills and auto-discovers `SKILL.md` files at startup.
|
|
@@ -165,6 +204,16 @@ Memo reads `name` and `description` from frontmatter and injects each skill as m
|
|
|
165
204
|
|
|
166
205
|
In prompts, users can explicitly mention a skill with `$skill-name` (for example, `$doc-writing`).
|
|
167
206
|
|
|
207
|
+
Optional: persist default active skills in `config.toml`:
|
|
208
|
+
|
|
209
|
+
```toml
|
|
210
|
+
# Unset: all discovered skills are active by default.
|
|
211
|
+
# []: disable all skills by default.
|
|
212
|
+
active_skills = [
|
|
213
|
+
"/absolute/path/to/.codex/skills/doc-writing/SKILL.md"
|
|
214
|
+
]
|
|
215
|
+
```
|
|
216
|
+
|
|
168
217
|
## Built-in Tools
|
|
169
218
|
|
|
170
219
|
- `exec_command` / `write_stdin`: execute shell commands (default shell family)
|
|
@@ -216,7 +265,7 @@ pnpm start
|
|
|
216
265
|
### Build
|
|
217
266
|
|
|
218
267
|
```bash
|
|
219
|
-
pnpm run build # generates dist/index.js
|
|
268
|
+
pnpm run build # builds web-server/web-ui artifacts and generates dist/index.js
|
|
220
269
|
```
|
|
221
270
|
|
|
222
271
|
### Test
|
|
@@ -239,7 +288,7 @@ npm run format:check # check format (CI)
|
|
|
239
288
|
## Project Structure
|
|
240
289
|
|
|
241
290
|
```text
|
|
242
|
-
memo-
|
|
291
|
+
memo-code/
|
|
243
292
|
├── packages/
|
|
244
293
|
│ ├── core/ # core logic: Session, tool routing, config
|
|
245
294
|
│ ├── tools/ # built-in tool implementations
|
|
@@ -251,13 +300,15 @@ memo-cli/
|
|
|
251
300
|
## CLI Shortcuts and Commands
|
|
252
301
|
|
|
253
302
|
- `/help`: show help and shortcut guide.
|
|
254
|
-
- `/models`: list available Provider/Model entries and switch with Enter; also supports direct selection like `/models
|
|
303
|
+
- `/models`: list available Provider/Model entries and switch with Enter; also supports direct selection like `/models openai_compatible`.
|
|
255
304
|
- `/review <prNumber>`: run GitHub PR review and publish review comments (uses active GitHub MCP server first, then falls back to `gh` CLI).
|
|
305
|
+
- `/compact`: manually compact current session context.
|
|
256
306
|
- `/mcp`: show configured MCP servers in current session.
|
|
257
307
|
- `resume` history: type `resume` to list and load past sessions for current directory.
|
|
258
308
|
- Exit and clear: `exit` / `/exit`, `Ctrl+L` for new session, `Esc Esc` to cancel current run or clear input.
|
|
259
309
|
- **Tool approval**: risky operations open an approval dialog with `once`/`session`/`deny`.
|
|
260
310
|
- **Approval reminder**: risky approval prompts ring a bell and attempt a desktop notification in interactive TUI.
|
|
311
|
+
- **Context percent**: footer updates on each step (not just turn end), based on next-step prompt token estimate.
|
|
261
312
|
|
|
262
313
|
> Session logs are written only when a session contains user messages, to avoid empty files.
|
|
263
314
|
|
|
@@ -271,7 +322,8 @@ memo-cli/
|
|
|
271
322
|
|
|
272
323
|
## Related Docs
|
|
273
324
|
|
|
274
|
-
- [User Guide](./site/content/docs/README.
|
|
325
|
+
- [User Guide (EN)](./site/content/docs/en/README.mdx) - User-facing docs by module
|
|
326
|
+
- [用户指南 (ZH)](./site/content/docs/zh/README.mdx) - 中文文档入口
|
|
275
327
|
- [Core Architecture](./docs/core.md) - Core implementation details
|
|
276
328
|
- [CLI Adaptation History](./docs/cli-update.md) - Historical migration notes (Tool Use API)
|
|
277
329
|
- [Contributing](./CONTRIBUTING.md) - Contribution guide
|
package/README.zh.md
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
<img src="public/demo.png" width="100%" alt="Memo Code 演示图">
|
|
20
20
|
|
|
21
|
-
基于 Node.js + TypeScript
|
|
21
|
+
基于 Node.js + TypeScript,兼容 OpenAI API 格式。
|
|
22
22
|
|
|
23
23
|
Memo Code 是一个开源的终端编码代理,能够理解项目上下文,并通过自然语言协助你更快完成编码、排障和日常开发任务。
|
|
24
24
|
|
|
@@ -36,29 +36,50 @@ yarn global add @memo-code/memo
|
|
|
36
36
|
bun add -g @memo-code/memo
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
+
说明:npm 分发包是预构建产物,已包含运行所需的 CLI/Web 资源。
|
|
40
|
+
只有在直接运行本仓库源码时,才需要执行 `pnpm run build`。
|
|
41
|
+
|
|
39
42
|
### 2. 配置 API Key
|
|
40
43
|
|
|
41
44
|
```bash
|
|
42
|
-
export
|
|
45
|
+
export OPENAI_API_KEY=your_key
|
|
43
46
|
```
|
|
44
47
|
|
|
45
48
|
### 3. 启动使用
|
|
46
49
|
|
|
47
50
|
```bash
|
|
48
51
|
memo
|
|
49
|
-
# 首次运行会引导配置 provider/model
|
|
52
|
+
# 首次运行会引导配置 provider/model,并保存到 ~/.memo/config.toml
|
|
50
53
|
```
|
|
51
54
|
|
|
52
55
|
## 使用方式
|
|
53
56
|
|
|
54
57
|
- 交互式:`memo`(默认 TUI,支持多轮、工具可视化、快捷键)。
|
|
55
58
|
- 非交互纯文本模式(非 TTY):`echo "你的问题" | memo`(适合脚本)。
|
|
59
|
+
- 单次执行:`memo --once "你的问题"` 或 `memo -once "你的问题"`(执行一轮后退出;在可信仓库建议搭配 `--dangerous`)。
|
|
60
|
+
- 继续最近会话:`memo --prev` 或 `memo -prev`(加载当前目录最近会话上下文)。
|
|
56
61
|
- 危险模式:`memo --dangerous` 或 `memo -d`(跳过工具审批,谨慎使用)。
|
|
57
62
|
- 查看版本:`memo --version` 或 `memo -v`。
|
|
63
|
+
- 启动 Web 服务:`memo web --host 127.0.0.1 --port 5494 --open`(npm 分发包已包含 web 资源;源码运行需先 `pnpm run build`)。
|
|
58
64
|
- 启动目录约定:若启动根目录存在 `AGENTS.md`,Memo 会自动将其拼接进系统提示词。
|
|
59
65
|
- Skills:Memo 会自动发现 `SKILL.md` 并把可用 skills 列表拼接进系统提示词。
|
|
60
66
|
- MCP 启动选择:当配置了 MCP server 时,启动会弹出多选以决定本次会话激活哪些 server。
|
|
61
|
-
-
|
|
67
|
+
- Web app 支持多 workspace 项目管理,并可并发运行多个会话(单个 server 进程上限 20)。
|
|
68
|
+
|
|
69
|
+
## Web 控制台
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
memo web --host 127.0.0.1 --port 5494 --open
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
- npm 分发包已内置 web server 与 web UI 资源。
|
|
76
|
+
- 若从源码仓库运行,请先执行一次 `pnpm run build`。
|
|
77
|
+
- Web 认证配置默认存储在 `~/.memo/server.yaml`(可通过 `MEMO_SERVER_CONFIG` 覆盖路径)。
|
|
78
|
+
- 首次启动会自动生成该文件,包含认证密钥和随机初始密码。
|
|
79
|
+
- 登录页使用 `server.yaml` 中的 `auth.username` / `auth.password`。
|
|
80
|
+
- 侧边栏包含独立的 `MCP Servers` 与 `Skills` 入口:
|
|
81
|
+
- MCP:创建/编辑/删除/登录/登出与激活开关。
|
|
82
|
+
- Skills:创建/删除、详情预览与激活开关。
|
|
62
83
|
|
|
63
84
|
## 配置文件
|
|
64
85
|
|
|
@@ -67,13 +88,13 @@ memo
|
|
|
67
88
|
### Provider 配置
|
|
68
89
|
|
|
69
90
|
```toml
|
|
70
|
-
current_provider = "
|
|
91
|
+
current_provider = "openai_compatible"
|
|
71
92
|
|
|
72
|
-
[[providers.
|
|
73
|
-
name = "
|
|
74
|
-
env_api_key = "
|
|
75
|
-
model = "
|
|
76
|
-
base_url = "https://api.
|
|
93
|
+
[[providers.openai_compatible]]
|
|
94
|
+
name = "openai_compatible"
|
|
95
|
+
env_api_key = "OPENAI_API_KEY"
|
|
96
|
+
model = "gpt-4.1-mini"
|
|
97
|
+
base_url = "https://api.openai.com/v1"
|
|
77
98
|
```
|
|
78
99
|
|
|
79
100
|
支持配置多个 Provider,通过 `current_provider` 切换。
|
|
@@ -97,6 +118,11 @@ url = "https://your-mcp-server.com/mcp"
|
|
|
97
118
|
# 可选:启动时默认激活的 MCP server
|
|
98
119
|
active_mcp_servers = ["local_tools", "remote"]
|
|
99
120
|
# 可选:设为 [] 表示启动时不激活任何 MCP server
|
|
121
|
+
|
|
122
|
+
# 可选:MCP OAuth 凭据存储模式:auto | keyring | file
|
|
123
|
+
mcp_oauth_credentials_store_mode = "auto"
|
|
124
|
+
# 可选:为 `memo mcp login` 指定固定本地回调端口
|
|
125
|
+
# mcp_oauth_callback_port = 33333
|
|
100
126
|
```
|
|
101
127
|
|
|
102
128
|
也可以通过 CLI 管理 MCP 配置(对齐 Codex CLI 风格):
|
|
@@ -111,11 +137,17 @@ memo mcp add local_tools -- /path/to/mcp-server --flag
|
|
|
111
137
|
# 添加远程 MCP server(streamable HTTP)
|
|
112
138
|
memo mcp add remote --url https://your-mcp-server.com/mcp --bearer-token-env-var MCP_TOKEN
|
|
113
139
|
|
|
140
|
+
# streamable_http server 的 OAuth 登录/登出
|
|
141
|
+
memo mcp login remote --scopes read,write
|
|
142
|
+
memo mcp logout remote
|
|
143
|
+
|
|
114
144
|
# 查看/删除
|
|
115
145
|
memo mcp get remote
|
|
116
146
|
memo mcp remove remote
|
|
117
147
|
```
|
|
118
148
|
|
|
149
|
+
`memo mcp list` 会输出每个 server 的 `auth_status`:`unsupported`、`not_logged_in`、`bearer_token`、`oauth`。
|
|
150
|
+
|
|
119
151
|
## Skills
|
|
120
152
|
|
|
121
153
|
Memo 支持 Agent Skills,并会在启动时自动发现 `SKILL.md`。
|
|
@@ -143,6 +175,16 @@ Memo 会读取 frontmatter 的 `name` 和 `description`,并以元数据形式
|
|
|
143
175
|
|
|
144
176
|
在对话里可通过 `$skill-name` 显式提及某个 skill(例如 `$doc-writing`)。
|
|
145
177
|
|
|
178
|
+
可选:在 `config.toml` 中持久化默认激活 skills:
|
|
179
|
+
|
|
180
|
+
```toml
|
|
181
|
+
# 未设置:默认激活所有已发现 skills
|
|
182
|
+
# []:默认不激活任何 skill
|
|
183
|
+
active_skills = [
|
|
184
|
+
"/absolute/path/to/.codex/skills/doc-writing/SKILL.md"
|
|
185
|
+
]
|
|
186
|
+
```
|
|
187
|
+
|
|
146
188
|
## 内置工具
|
|
147
189
|
|
|
148
190
|
- `exec_command` / `write_stdin`:执行命令(默认执行工具族)
|
|
@@ -194,7 +236,7 @@ pnpm start
|
|
|
194
236
|
### 构建
|
|
195
237
|
|
|
196
238
|
```bash
|
|
197
|
-
pnpm run build #
|
|
239
|
+
pnpm run build # 构建 web-server/web-ui 产物并生成 dist/index.js
|
|
198
240
|
```
|
|
199
241
|
|
|
200
242
|
### 测试
|
|
@@ -217,7 +259,7 @@ npm run format:check # 检查格式(CI)
|
|
|
217
259
|
## 项目结构
|
|
218
260
|
|
|
219
261
|
```
|
|
220
|
-
memo-
|
|
262
|
+
memo-code/
|
|
221
263
|
├── packages/
|
|
222
264
|
│ ├── core/ # 核心逻辑:Session、工具路由、配置
|
|
223
265
|
│ ├── tools/ # 内置工具实现
|
|
@@ -229,7 +271,7 @@ memo-cli/
|
|
|
229
271
|
## CLI 快捷键与命令
|
|
230
272
|
|
|
231
273
|
- `/help`:显示帮助与快捷键说明。
|
|
232
|
-
- `/models`:列出现有 Provider/Model,回车切换;支持直接 `/models
|
|
274
|
+
- `/models`:列出现有 Provider/Model,回车切换;支持直接 `/models openai_compatible` 精确选择。
|
|
233
275
|
- `/context`:弹出 80k/120k/150k/200k 选项并立即设置上限。
|
|
234
276
|
- `/review <prNumber>`:执行 GitHub PR 审查并直接发布评论(优先使用已激活的 GitHub MCP,失败时回退 `gh` CLI)。
|
|
235
277
|
- `/mcp`:查看当前会话加载的 MCP 服务器配置。
|
|
@@ -250,7 +292,8 @@ memo-cli/
|
|
|
250
292
|
|
|
251
293
|
## 相关文档
|
|
252
294
|
|
|
253
|
-
- [
|
|
295
|
+
- [User Guide (EN)](./site/content/docs/en/README.mdx) - 英文文档入口
|
|
296
|
+
- [用户指南 (ZH)](./site/content/docs/zh/README.mdx) - 中文文档入口
|
|
254
297
|
- [Core 架构](./docs/core.md) - 核心实现详解
|
|
255
298
|
- [CLI 适配更新](./docs/cli-update.md) - Tool Use API 迁移说明
|
|
256
299
|
- [开发指南](./CONTRIBUTING.md) - 贡献指南
|