@plebeiantech/lat.md 0.12.3-fork.8 → 0.13.4-fork.1
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 +27 -3
- package/dist/src/cli/agent-invocation.d.ts +6 -0
- package/dist/src/cli/agent-invocation.js +23 -0
- package/dist/src/cli/checklist-menu.d.ts +2 -1
- package/dist/src/cli/checklist-menu.js +3 -2
- package/dist/src/cli/fork-instructions.d.ts +1 -0
- package/dist/src/cli/fork-instructions.js +8 -32
- package/dist/src/cli/fork-scaffold.js +2 -2
- package/dist/src/cli/graph.d.ts +1 -1
- package/dist/src/cli/hook.d.ts +26 -0
- package/dist/src/cli/hook.js +115 -64
- package/dist/src/cli/index.js +147 -70
- package/dist/src/cli/init-preferences.d.ts +4 -0
- package/dist/src/cli/init-preferences.js +36 -0
- package/dist/src/cli/init.d.ts +2 -1
- package/dist/src/cli/init.js +100 -60
- package/dist/src/cli/reindex.d.ts +1 -1
- package/dist/src/cli/reindex.js +7 -10
- package/dist/src/cli/search.d.ts +14 -4
- package/dist/src/cli/search.js +115 -101
- package/dist/src/cli/ui-build-server.d.ts +12 -0
- package/dist/src/cli/ui-build-server.js +26 -0
- package/dist/src/cli/ui-build.d.ts +1 -1
- package/dist/src/cli/ui-build.js +1 -1
- package/dist/src/cli/ui.d.ts +1 -1
- package/dist/src/cli/ui.js +1 -1
- package/dist/src/fork/antigravity-hook.d.ts +47 -0
- package/dist/src/fork/antigravity-hook.js +424 -0
- package/dist/src/fork/antigravity-init.d.ts +17 -0
- package/dist/src/fork/antigravity-init.js +124 -0
- package/dist/src/fork/upstream-drift.js +1 -1
- package/dist/src/fork/upstream-guard.d.ts +1 -1
- package/dist/src/fork/upstream-guard.js +8 -7
- package/dist/src/graph-export.js +7 -7
- package/dist/src/knowledge/index.js +2 -2
- package/dist/src/mcp/server.js +34 -18
- package/dist/src/search/cache.d.ts +3 -0
- package/dist/src/search/cache.js +104 -0
- package/dist/src/search/chunks.d.ts +23 -0
- package/dist/src/search/chunks.js +200 -0
- package/dist/src/search/db.d.ts +28 -16
- package/dist/src/search/db.js +100 -40
- package/dist/src/search/embedder.d.ts +2 -1
- package/dist/src/search/embedder.js +7 -6
- package/dist/src/search/index.d.ts +6 -2
- package/dist/src/search/index.js +176 -53
- package/dist/src/search/lexical.d.ts +6 -0
- package/dist/src/search/lexical.js +36 -0
- package/dist/src/search/lock.d.ts +5 -0
- package/dist/src/search/lock.js +45 -0
- package/dist/src/search/query.d.ts +26 -0
- package/dist/src/search/query.js +103 -0
- package/dist/src/search/search.d.ts +16 -7
- package/dist/src/search/search.js +165 -21
- package/dist/src/search/types.d.ts +15 -0
- package/dist/src/view/client/assets/GraphView-D_xnk0bP.js +456 -0
- package/dist/src/view/client/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/dist/src/view/client/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/dist/src/view/client/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/dist/src/view/client/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/dist/src/view/client/assets/MarkdownEditor-bjqt_FoF.js +28 -0
- package/dist/src/view/client/assets/OrbitControls-DwcpQNja.js +1 -0
- package/dist/src/view/client/assets/STLLoader-CLWTKt5i.js +1 -0
- package/dist/src/view/client/assets/_commonjsHelpers-CqkleIqs.js +1 -0
- package/dist/src/view/client/assets/abnfDiagram-VCTEODGH-kWGvtRnL.js +1 -0
- package/dist/src/view/client/assets/arc-BPAFd7cP.js +1 -0
- package/dist/src/view/client/assets/architectureDiagram-5GKGNRK7-CsY39oIR.js +36 -0
- package/dist/src/view/client/assets/blockDiagram-I7D4REHJ-DHGBG7BJ.js +129 -0
- package/dist/src/view/client/assets/c4Diagram-7LVT6UL2-vywK4eb7.js +38 -0
- package/dist/src/view/client/assets/channel-CX71L_qV.js +1 -0
- package/dist/src/view/client/assets/chunk-2Q5K7J3B-Do3Hz_ci.js +1 -0
- package/dist/src/view/client/assets/chunk-5VM5RSS4-B5R1lSeY.js +15 -0
- package/dist/src/view/client/assets/chunk-F27PBJKO-Dm55FM_W.js +1 -0
- package/dist/src/view/client/assets/chunk-IMKFNOWR-ChptrvvM.js +231 -0
- package/dist/src/view/client/assets/chunk-JWPE2WC7-BRQBjrKS.js +1 -0
- package/dist/src/view/client/assets/chunk-POPQ4Y6H-CainVZIL.js +1 -0
- package/dist/src/view/client/assets/chunk-SVP7TREG-DsKsNGmM.js +88 -0
- package/dist/src/view/client/assets/chunk-TICWLB2K-BctkMcJc.js +206 -0
- package/dist/src/view/client/assets/chunk-XXDRQBXY-BN7SgOUT.js +1 -0
- package/dist/src/view/client/assets/classDiagram-ZZMXUADV-B1VyU6zO.js +1 -0
- package/dist/src/view/client/assets/classDiagram-v2-VYDZK3BY-B1VyU6zO.js +1 -0
- package/dist/src/view/client/assets/cose-bilkent-JH36ORCC-BszzwrMe.js +1 -0
- package/dist/src/view/client/assets/cynefin-OW5HDTMX-CdRyAkPs.js +166 -0
- package/dist/src/view/client/assets/cynefinDiagram-5FMLGOSQ-BLvKPZ1u.js +62 -0
- package/dist/src/view/client/assets/cytoscape.esm-DzSz-X2X.js +321 -0
- package/dist/src/view/client/assets/dagre-GXQ25YYZ-V68w_l65.js +4 -0
- package/dist/src/view/client/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/dist/src/view/client/assets/diagram-S7CK7UJ4-C2i4eEMg.js +30 -0
- package/dist/src/view/client/assets/diagram-UQ7AKVKN-BiwWh5jC.js +41 -0
- package/dist/src/view/client/assets/diagram-VSXAHHWV-hkKR_vyS.js +3 -0
- package/dist/src/view/client/assets/diagram-VX7I27RA-DzRCSMAc.js +24 -0
- package/dist/src/view/client/assets/diagram-Z3DM3KII-fhSFPxyK.js +24 -0
- package/dist/src/view/client/assets/ebnfDiagram-PWID7BFC-CCEUDKSA.js +1 -0
- package/dist/src/view/client/assets/erDiagram-RLTQ6QDP-FJ2IMyTi.js +99 -0
- package/dist/src/view/client/assets/flowDiagram-HODETNUW-BvasdLeK.js +168 -0
- package/dist/src/view/client/assets/ganttDiagram-EL5Y4UJY-CiwkBZvY.js +292 -0
- package/dist/src/view/client/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
- package/dist/src/view/client/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
- package/dist/src/view/client/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
- package/dist/src/view/client/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
- package/dist/src/view/client/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2 +0 -0
- package/dist/src/view/client/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2 +0 -0
- package/dist/src/view/client/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2 +0 -0
- package/dist/src/view/client/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2 +0 -0
- package/dist/src/view/client/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2 +0 -0
- package/dist/src/view/client/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2 +0 -0
- package/dist/src/view/client/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
- package/dist/src/view/client/assets/gitGraphDiagram-WWUBYQGX-DYlP2_js.js +106 -0
- package/dist/src/view/client/assets/index-BnENo9bV.js +1 -0
- package/dist/src/view/client/assets/index-CQ7EOox7.css +1 -0
- package/dist/src/view/client/assets/index-CynNDkxt.js +13 -0
- package/dist/src/view/client/assets/infoDiagram-27XIBGKW-DRPB2c48.js +2 -0
- package/dist/src/view/client/assets/init-Gi6I4Gst.js +1 -0
- package/dist/src/view/client/assets/ishikawaDiagram-5VMMS53U-8VV429Cv.js +70 -0
- package/dist/src/view/client/assets/journeyDiagram-3NMN7TZE-Dzmwnf83.js +139 -0
- package/dist/src/view/client/assets/kanban-definition-UXKFOSKX-pYyZZ1i-.js +89 -0
- package/dist/src/view/client/assets/katex-HP8lGamR.js +257 -0
- package/dist/src/view/client/assets/layout-GF9k6yGo.js +1 -0
- package/dist/src/view/client/assets/linear-Yt2sSOYV.js +1 -0
- package/dist/src/view/client/assets/logo-RR_KBOAT.svg +149 -0
- package/dist/src/view/client/assets/maplibre-gl-CDX6Zuow.js +800 -0
- package/dist/src/view/client/assets/mermaid.core-ChWYCHN0.js +310 -0
- package/dist/src/view/client/assets/mindmap-definition-YA3MSWOX-Cc4fQvf1.js +96 -0
- package/dist/src/view/client/assets/ordinal-Cboi1Yqb.js +1 -0
- package/dist/src/view/client/assets/pegDiagram-XKGWAZYB-C0SsB8bZ.js +1 -0
- package/dist/src/view/client/assets/pieDiagram-E7YTZNPT-DIJpqERZ.js +39 -0
- package/dist/src/view/client/assets/quadrantDiagram-AXDQQJYC--d-gl6j-.js +7 -0
- package/dist/src/view/client/assets/railroadDiagram-O6MQD6OU-BQxwTt7z.js +1 -0
- package/dist/src/view/client/assets/requirementDiagram-BXWQKSXE-B_oTeD2A.js +84 -0
- package/dist/src/view/client/assets/sankeyDiagram-P5KCCOFB-DLukmE8X.js +40 -0
- package/dist/src/view/client/assets/sequenceDiagram-WJ2MYXX4-BNjVB2sc.js +162 -0
- package/dist/src/view/client/assets/sizeCapture-INFHLROL-BZecQTOw.js +1 -0
- package/dist/src/view/client/assets/stateDiagram-D77RDMKH-Bu1urvXC.js +1 -0
- package/dist/src/view/client/assets/stateDiagram-v2-MP3YSRHH-5pc_697G.js +1 -0
- package/dist/src/view/client/assets/swimlanes-42K2YHIH-bLAlcepB.js +1 -0
- package/dist/src/view/client/assets/swimlanesDiagram-VR7AAH4N-BbOpZjpp.js +8 -0
- package/dist/src/view/client/assets/three.module-PDSP0dbZ.js +4108 -0
- package/dist/src/view/client/assets/timeline-definition-24CTP7MA-tbwCNvcA.js +120 -0
- package/dist/src/view/client/assets/vennDiagram-4TSXK5OY-D8U8Fk0N.js +34 -0
- package/dist/src/view/client/assets/wardleyDiagram-VM6X3IG4-LHBVIeNb.js +78 -0
- package/dist/src/view/client/assets/xychartDiagram-S5SC5T6Z-CN4tfaFV.js +7 -0
- package/dist/src/view/client/index.html +2 -2
- package/dist/src/view/client-shell.d.ts +2 -0
- package/dist/src/view/client-shell.js +5 -0
- package/dist/src/view/diagnostics.d.ts +3 -2
- package/dist/src/view/diagnostics.js +49 -58
- package/dist/src/view/document-edit.d.ts +8 -0
- package/dist/src/view/document-edit.js +25 -0
- package/dist/src/view/document-route.d.ts +14 -0
- package/dist/src/view/document-route.js +137 -0
- package/dist/src/view/document-tree.d.ts +18 -0
- package/dist/src/view/document-tree.js +139 -0
- package/dist/src/view/external-document-tree.d.ts +3 -0
- package/dist/src/view/external-document-tree.js +674 -0
- package/dist/src/view/git-diff.js +202 -2
- package/dist/src/view/git.js +1 -1
- package/dist/src/view/graph.d.ts +4 -3
- package/dist/src/view/graph.js +100 -9
- package/dist/src/view/highlight.d.ts +10 -2
- package/dist/src/view/highlight.js +50648 -3166
- package/dist/src/view/markdown.d.ts +3 -2
- package/dist/src/view/markdown.js +256 -54
- package/dist/src/view/preindexed-search.d.ts +15 -0
- package/dist/src/view/preindexed-search.js +25 -0
- package/dist/src/view/protocol.d.ts +53 -7
- package/dist/src/view/publication.d.ts +2 -0
- package/dist/src/view/publication.js +78 -0
- package/dist/src/view/references.d.ts +11 -26
- package/dist/src/view/references.js +121 -112
- package/dist/src/view/repository.d.ts +14 -4
- package/dist/src/view/repository.js +260 -19
- package/dist/src/view/request-security.d.ts +5 -0
- package/dist/src/view/request-security.js +46 -0
- package/dist/src/view/search-result.d.ts +4 -0
- package/dist/src/view/search-result.js +25 -0
- package/dist/src/view/search.d.ts +7 -2
- package/dist/src/view/search.js +23 -34
- package/dist/src/view/server-build.d.ts +21 -0
- package/dist/src/view/server-build.js +145 -0
- package/dist/src/view/server-deployment.d.ts +31 -0
- package/dist/src/view/server-deployment.js +123 -0
- package/dist/src/view/server-index-worker.d.ts +6 -0
- package/dist/src/view/server-index-worker.js +14 -0
- package/dist/src/view/server.d.ts +11 -2
- package/dist/src/view/server.js +245 -73
- package/dist/src/view/source-target.d.ts +2 -0
- package/dist/src/view/source-target.js +49 -8
- package/dist/src/view/static-build.d.ts +18 -2
- package/dist/src/view/static-build.js +449 -110
- package/dist/src/view/static-protocol.d.ts +26 -2
- package/dist/src/view/static-protocol.js +5 -0
- package/dist/src/view/store.d.ts +20 -3
- package/dist/src/view/store.js +304 -48
- package/dist/src/view/table-of-contents.d.ts +2 -2
- package/dist/src/view/table-of-contents.js +2 -22
- package/dist/src/view/vercel-build.d.ts +24 -0
- package/dist/src/view/vercel-build.js +152 -0
- package/dist/src/view/vercel-server-build.d.ts +10 -0
- package/dist/src/view/vercel-server-build.js +61 -0
- package/dist/vendor/lat.md-server/cli.d.ts +2 -0
- package/dist/vendor/lat.md-server/cli.js +12 -0
- package/dist/vendor/lat.md-server/index.d.ts +38 -0
- package/dist/vendor/lat.md-server/index.js +128 -0
- package/package.json +68 -22
- package/plugins/lat-md/README.md +61 -0
- package/plugins/lat-md/hooks.json +38 -0
- package/plugins/lat-md/plugin.json +9 -0
- package/plugins/lat-md/rules/AGENTS.md +344 -0
- package/plugins/lat-md/skills/lat-md/SKILL.md +210 -0
- package/plugins/lat-md/skills/lat-md-conventions/SKILL.md +226 -0
- package/templates/AGENTS.md +26 -7
- package/templates/cursor-rules.md +23 -7
- package/templates/fork/conventions.md +133 -11
- package/templates/opencode-plugin.ts +9 -9
- package/templates/pi-extension.ts +11 -11
- package/templates/skill/SKILL.md +35 -3
- package/dist/src/cli/check-coverage.d.ts +0 -2
- package/dist/src/cli/check-coverage.js +0 -71
- package/dist/src/cli/check-frontmatter.d.ts +0 -12
- package/dist/src/cli/check-frontmatter.js +0 -44
- package/dist/src/cli/check-mode.d.ts +0 -21
- package/dist/src/cli/check-mode.js +0 -364
- package/dist/src/cli/check-status.d.ts +0 -74
- package/dist/src/cli/check-status.js +0 -217
- package/dist/src/cli/check.d.ts +0 -45
- package/dist/src/cli/check.js +0 -781
- package/dist/src/cli/context.d.ts +0 -11
- package/dist/src/cli/context.js +0 -58
- package/dist/src/cli/expand.d.ts +0 -8
- package/dist/src/cli/expand.js +0 -94
- package/dist/src/cli/gen-index.d.ts +0 -45
- package/dist/src/cli/gen-index.js +0 -235
- package/dist/src/cli/link-scheme.d.ts +0 -54
- package/dist/src/cli/link-scheme.js +0 -101
- package/dist/src/cli/locate.d.ts +0 -2
- package/dist/src/cli/locate.js +0 -17
- package/dist/src/cli/refs.d.ts +0 -22
- package/dist/src/cli/refs.js +0 -229
- package/dist/src/cli/section.d.ts +0 -43
- package/dist/src/cli/section.js +0 -252
- package/dist/src/cli/select-menu.d.ts +0 -13
- package/dist/src/cli/select-menu.js +0 -100
- package/dist/src/code-refs.d.ts +0 -17
- package/dist/src/code-refs.js +0 -298
- package/dist/src/config.d.ts +0 -29
- package/dist/src/config.js +0 -83
- package/dist/src/context.d.ts +0 -23
- package/dist/src/context.js +0 -11
- package/dist/src/extensions/wiki-link/from-markdown.d.ts +0 -5
- package/dist/src/extensions/wiki-link/from-markdown.js +0 -34
- package/dist/src/extensions/wiki-link/index.d.ts +0 -4
- package/dist/src/extensions/wiki-link/index.js +0 -3
- package/dist/src/extensions/wiki-link/syntax.d.ts +0 -14
- package/dist/src/extensions/wiki-link/syntax.js +0 -121
- package/dist/src/extensions/wiki-link/to-markdown.d.ts +0 -5
- package/dist/src/extensions/wiki-link/to-markdown.js +0 -28
- package/dist/src/extensions/wiki-link/types.d.ts +0 -34
- package/dist/src/format.d.ts +0 -8
- package/dist/src/format.js +0 -43
- package/dist/src/init-version.d.ts +0 -10
- package/dist/src/init-version.js +0 -49
- package/dist/src/lattice.d.ts +0 -109
- package/dist/src/lattice.js +0 -817
- package/dist/src/parser.d.ts +0 -3
- package/dist/src/parser.js +0 -18
- package/dist/src/source-parser.d.ts +0 -27
- package/dist/src/source-parser.js +0 -916
- package/dist/src/untrusted.d.ts +0 -18
- package/dist/src/untrusted.js +0 -93
- package/dist/src/view/client/assets/index-VZwPPiFE.js +0 -334
- package/dist/src/view/client/assets/index-W8ktvNj9.css +0 -1
- package/dist/src/view/client/assets/logo-CNF8zs47.svg +0 -182
- package/dist/src/walk.d.ts +0 -18
- package/dist/src/walk.js +0 -27
- /package/dist/src/{extensions/wiki-link → search}/types.js +0 -0
package/dist/src/cli/search.js
CHANGED
|
@@ -1,83 +1,64 @@
|
|
|
1
1
|
import { readFile } from 'node:fs/promises';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { LEXICAL_VERSION } from '../search/lexical.js';
|
|
3
|
+
import { hasIndex } from '../search/db.js';
|
|
4
|
+
import { embeddingFingerprint } from '../search/chunks.js';
|
|
5
|
+
import { writeIndex } from '../search/cache.js';
|
|
6
|
+
import { dirname, join } from 'node:path';
|
|
7
|
+
import { openDb, setStoredModel, ensureSectionsSchema, closeDb, } from '../search/db.js';
|
|
5
8
|
import { embedderForIndex, modelKey, ReindexRequiredError, EmbeddingAuthError, } from '../search/embedder.js';
|
|
6
|
-
import { indexSections } from '../search/index.js';
|
|
7
|
-
import { searchSections } from '../search/search.js';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
await ensureSectionsSchema(db, embedder.dimensions);
|
|
21
|
-
const countResult = await db.execute('SELECT COUNT(*) as n FROM sections');
|
|
22
|
-
let isEmpty = countResult.rows[0].n === 0;
|
|
23
|
-
// Legacy cache: a version before the model was recorded left rows behind
|
|
24
|
-
// with no `meta.embedding_model`. Those vectors may be a different backend
|
|
25
|
-
// (and dimension) than the resolved embedder, and `CREATE TABLE IF NOT
|
|
26
|
-
// EXISTS` won't migrate the column width — so drop and rebuild from scratch
|
|
27
|
-
// under the resolved backend rather than querying a mismatched table.
|
|
28
|
-
if (!stored && !isEmpty) {
|
|
29
|
-
await dropSections(db);
|
|
30
|
-
await ensureSectionsSchema(db, embedder.dimensions);
|
|
31
|
-
isEmpty = true;
|
|
9
|
+
import { indexSections, projectFingerprint, } from '../search/index.js';
|
|
10
|
+
import { searchSections, prepareSearchQuery } from '../search/search.js';
|
|
11
|
+
import { indexMetadata, sameIndexMetadata, resolveSearchMatches, searchIndexedSections, } from '../search/query.js';
|
|
12
|
+
import { analyzeMarkdownProject, commandProjectAnalysis, } from '@plebeiantech/lat.md-core/project-analysis';
|
|
13
|
+
import { formatSectionPreview, formatNavHints, } from '@plebeiantech/lat.md-core/format';
|
|
14
|
+
import { provenanceNote, formatProvenanceNote, } from '@plebeiantech/lat.md-core/cli/check-status';
|
|
15
|
+
async function withDb(latDir, progress, project, cacheDir, fn, prepare) {
|
|
16
|
+
for (let attempt = 0; hasIndex(cacheDir ?? join(latDir, '.cache')); attempt++) {
|
|
17
|
+
if (attempt >= 3)
|
|
18
|
+
throw new Error('Search index keeps changing; retry shortly.');
|
|
19
|
+
const metadataDb = openDb(latDir, cacheDir, true);
|
|
20
|
+
let metadata;
|
|
21
|
+
try {
|
|
22
|
+
metadata = await indexMetadata(metadataDb);
|
|
32
23
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
if (isEmpty && embedder.name.startsWith('local:') && process.stderr.isTTY) {
|
|
36
|
-
let hasKey = false;
|
|
37
|
-
try {
|
|
38
|
-
hasKey = !!getLlmKey();
|
|
39
|
-
}
|
|
40
|
-
catch {
|
|
41
|
-
/* key source misconfigured — irrelevant, we're local */
|
|
42
|
-
}
|
|
43
|
-
if (hasKey) {
|
|
44
|
-
process.stderr.write('This repo is configured for local embeddings; ignoring LAT_LLM_KEY.\n');
|
|
45
|
-
}
|
|
24
|
+
finally {
|
|
25
|
+
await closeDb(metadataDb);
|
|
46
26
|
}
|
|
47
|
-
|
|
27
|
+
const stored = metadata.get('embedding_model') ?? null;
|
|
28
|
+
const embedder = await embedderForIndex(stored, latDir);
|
|
29
|
+
if (metadata.get('fingerprint') !== embeddingFingerprint(embedder))
|
|
30
|
+
throw new ReindexRequiredError('Search chunking or embedding model changed; run lat reindex.');
|
|
31
|
+
if (!stored ||
|
|
32
|
+
metadata.get('lexical_version') !== LEXICAL_VERSION ||
|
|
33
|
+
metadata.get('project_hash') !== projectFingerprint(project))
|
|
34
|
+
break;
|
|
35
|
+
await prepare?.(embedder);
|
|
36
|
+
const db = openDb(latDir, cacheDir, true);
|
|
48
37
|
try {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
38
|
+
if (!sameIndexMetadata(metadata, await indexMetadata(db)))
|
|
39
|
+
continue;
|
|
40
|
+
progress?.afterIndex?.({
|
|
41
|
+
added: 0,
|
|
42
|
+
updated: 0,
|
|
43
|
+
removed: 0,
|
|
44
|
+
unchanged: project.sections.length,
|
|
45
|
+
}, false);
|
|
46
|
+
return await fn(db, embedder, project);
|
|
55
47
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
// truly fresh (re-resolves the backend cleanly) rather than stuck.
|
|
59
|
-
if (!stored)
|
|
60
|
-
await dropSections(db);
|
|
61
|
-
throw err;
|
|
48
|
+
finally {
|
|
49
|
+
await closeDb(db);
|
|
62
50
|
}
|
|
63
|
-
return await fn(db, embedder);
|
|
64
|
-
}
|
|
65
|
-
finally {
|
|
66
|
-
await closeDb(db);
|
|
67
51
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
return section
|
|
79
|
-
? [{ section, reason: 'semantic match', score: result.score }]
|
|
80
|
-
: [];
|
|
52
|
+
return writeIndex(latDir, cacheDir, false, async (db, stored) => {
|
|
53
|
+
const embedder = await embedderForIndex(stored, latDir);
|
|
54
|
+
await ensureSectionsSchema(db, embedder.dimensions);
|
|
55
|
+
const isEmpty = (await db.execute('SELECT COUNT(*) AS n FROM sections')).rows[0].n === 0;
|
|
56
|
+
progress?.beforeIndex?.(isEmpty);
|
|
57
|
+
const stats = await indexSections(latDir, db, embedder, undefined, project);
|
|
58
|
+
await setStoredModel(db, modelKey(embedder));
|
|
59
|
+
progress?.afterIndex?.(stats, isEmpty);
|
|
60
|
+
await prepare?.(embedder);
|
|
61
|
+
return fn(db, embedder, project);
|
|
81
62
|
});
|
|
82
63
|
}
|
|
83
64
|
/**
|
|
@@ -92,40 +73,41 @@ async function resolveMatches(latDir, results, preloadedSections) {
|
|
|
92
73
|
*/
|
|
93
74
|
export async function runSearch(latDir, query, limit, progress, opts) {
|
|
94
75
|
if (opts?.buildIndex === false) {
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
await
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
await ensureSectionsSchema(db, embedder.dimensions);
|
|
105
|
-
const results = await searchSections(db, query, embedder, limit);
|
|
106
|
-
return {
|
|
107
|
-
query,
|
|
108
|
-
matches: await resolveMatches(latDir, results, opts?.preloadedSections),
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
finally {
|
|
112
|
-
await closeDb(db);
|
|
113
|
-
}
|
|
76
|
+
const sectionById = opts.sectionById ??
|
|
77
|
+
opts.project?.sectionById ??
|
|
78
|
+
(await analyzeMarkdownProject(latDir, dirname(latDir), {
|
|
79
|
+
executor: 'auto',
|
|
80
|
+
})).sectionById;
|
|
81
|
+
return searchIndexedSections(latDir, query, limit, sectionById, {
|
|
82
|
+
cacheDir: opts.cacheDir,
|
|
83
|
+
minSimilarity: opts.minSimilarity,
|
|
84
|
+
});
|
|
114
85
|
}
|
|
115
|
-
|
|
116
|
-
|
|
86
|
+
const project = opts?.project ??
|
|
87
|
+
(await analyzeMarkdownProject(latDir, dirname(latDir), {
|
|
88
|
+
executor: 'auto',
|
|
89
|
+
}));
|
|
90
|
+
let vector;
|
|
91
|
+
return withDb(latDir, progress, project, opts?.cacheDir, async (db, embedder, analyzed) => {
|
|
92
|
+
const results = await searchSections(db, query, embedder, limit, opts?.minSimilarity, vector);
|
|
117
93
|
return {
|
|
118
94
|
query,
|
|
119
|
-
matches:
|
|
95
|
+
matches: resolveSearchMatches(results, analyzed.sectionById),
|
|
120
96
|
};
|
|
97
|
+
}, async (embedder) => {
|
|
98
|
+
vector = await prepareSearchQuery(query, embedder, limit, opts?.minSimilarity);
|
|
121
99
|
});
|
|
122
100
|
}
|
|
123
101
|
/**
|
|
124
102
|
* Index-only mode (no query) — builds the index on first use. Rebuilding is
|
|
125
103
|
* `lat reindex`, not a flag here.
|
|
126
104
|
*/
|
|
127
|
-
export async function runIndex(latDir, progress) {
|
|
128
|
-
|
|
105
|
+
export async function runIndex(latDir, progress, analyzedProject, options = {}) {
|
|
106
|
+
const project = analyzedProject ??
|
|
107
|
+
(await analyzeMarkdownProject(latDir, dirname(latDir), {
|
|
108
|
+
executor: 'auto',
|
|
109
|
+
}));
|
|
110
|
+
await withDb(latDir, progress, project, options.cacheDir, async () => { });
|
|
129
111
|
}
|
|
130
112
|
export function cliProgress(s) {
|
|
131
113
|
return {
|
|
@@ -153,7 +135,7 @@ export function cliProgress(s) {
|
|
|
153
135
|
* say whether a person ever checked that claim. Frontmatter is read once per
|
|
154
136
|
* file rather than once per match, since several matches routinely share one.
|
|
155
137
|
*/
|
|
156
|
-
async function formatSearchMatches(ctx, query, matches) {
|
|
138
|
+
async function formatSearchMatches(ctx, query, matches, opts) {
|
|
157
139
|
const notes = new Map();
|
|
158
140
|
for (const match of matches) {
|
|
159
141
|
const filePath = match.section.filePath;
|
|
@@ -173,6 +155,32 @@ async function formatSearchMatches(ctx, query, matches) {
|
|
|
173
155
|
lines.push('');
|
|
174
156
|
lines.push(formatSectionPreview(ctx, matches[i].section, {
|
|
175
157
|
reason: matches[i].reason,
|
|
158
|
+
spans: opts?.preview === 'intro'
|
|
159
|
+
? undefined
|
|
160
|
+
: matches[i].evidence?.[0]?.spans,
|
|
161
|
+
score: opts?.showScores ? matches[i].rankScore : undefined,
|
|
162
|
+
text: opts?.preview === 'intro'
|
|
163
|
+
? undefined
|
|
164
|
+
: matches[i].evidence?.length
|
|
165
|
+
? (opts?.preview === 'both'
|
|
166
|
+
? matches[i].section.firstParagraph + '\n\n'
|
|
167
|
+
: '') + matches[i].evidence[0].text
|
|
168
|
+
: undefined,
|
|
169
|
+
debug: opts?.showScores && matches[i].rankScore !== undefined
|
|
170
|
+
? JSON.stringify({
|
|
171
|
+
lexicalRank: matches[i].lexicalRank,
|
|
172
|
+
semanticRank: matches[i].semanticRank,
|
|
173
|
+
lexicalScore: matches[i].lexicalScore,
|
|
174
|
+
semanticSimilarity: matches[i].semanticSimilarity,
|
|
175
|
+
lexicalContribution: matches[i].lexicalRank
|
|
176
|
+
? 1 / (60 + matches[i].lexicalRank)
|
|
177
|
+
: 0,
|
|
178
|
+
semanticContribution: matches[i].semanticRank
|
|
179
|
+
? 1 / (60 + matches[i].semanticRank)
|
|
180
|
+
: 0,
|
|
181
|
+
...matches[i].diagnostics,
|
|
182
|
+
})
|
|
183
|
+
: undefined,
|
|
176
184
|
}));
|
|
177
185
|
const note = notes.get(matches[i].section.filePath);
|
|
178
186
|
if (note)
|
|
@@ -185,16 +193,22 @@ export async function searchCommand(ctx, query, opts, progress) {
|
|
|
185
193
|
const s = ctx.styler;
|
|
186
194
|
try {
|
|
187
195
|
if (!query) {
|
|
188
|
-
await runIndex(ctx.latDir, progress);
|
|
196
|
+
await runIndex(ctx.latDir, progress, await commandProjectAnalysis(ctx));
|
|
189
197
|
return { output: '' };
|
|
190
198
|
}
|
|
191
|
-
const
|
|
199
|
+
const project = await commandProjectAnalysis(ctx);
|
|
200
|
+
const result = await runSearch(ctx.latDir, query, opts.limit, progress, {
|
|
201
|
+
project,
|
|
202
|
+
minSimilarity: opts.minSimilarity,
|
|
203
|
+
});
|
|
192
204
|
if (result.matches.length === 0) {
|
|
193
205
|
return { output: 'No results found.' };
|
|
194
206
|
}
|
|
195
207
|
return {
|
|
196
|
-
output: (await formatSearchMatches(ctx, query, result.matches
|
|
197
|
-
|
|
208
|
+
output: (await formatSearchMatches(ctx, query, result.matches, {
|
|
209
|
+
showScores: opts.debug,
|
|
210
|
+
preview: opts.preview ?? 'passage',
|
|
211
|
+
})) + formatNavHints(ctx),
|
|
198
212
|
};
|
|
199
213
|
}
|
|
200
214
|
catch (err) {
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { CmdContext, CmdResult } from '@plebeiantech/lat.md-core/context';
|
|
2
|
+
import { buildServerView, type ServerViewBuildOptions, type ServerViewBuildResult } from '../view/server-build.js';
|
|
3
|
+
export type ServerViewBuildTarget = 'node' | 'vercel';
|
|
4
|
+
export type UiBuildServerOptions = ServerViewBuildOptions & {
|
|
5
|
+
target?: ServerViewBuildTarget;
|
|
6
|
+
};
|
|
7
|
+
export type UiBuildServerDependencies = {
|
|
8
|
+
buildNode: typeof buildServerView;
|
|
9
|
+
buildVercel?: (ctx: CmdContext, output: string, options: ServerViewBuildOptions) => Promise<ServerViewBuildResult>;
|
|
10
|
+
};
|
|
11
|
+
/** Export immutable UI data with a Node or Vercel semantic-search service. */
|
|
12
|
+
export declare function uiBuildServerCommand(ctx: CmdContext, output: string | undefined, options?: UiBuildServerOptions, dependencies?: UiBuildServerDependencies): Promise<CmdResult>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { buildServerView, } from '../view/server-build.js';
|
|
2
|
+
const defaultDependencies = {
|
|
3
|
+
buildNode: buildServerView,
|
|
4
|
+
};
|
|
5
|
+
/** Export immutable UI data with a Node or Vercel semantic-search service. */
|
|
6
|
+
export async function uiBuildServerCommand(ctx, output, options = {}, dependencies = defaultDependencies) {
|
|
7
|
+
try {
|
|
8
|
+
const { target = 'node', ...buildOptions } = options;
|
|
9
|
+
const resolvedOutput = output ?? (target === 'vercel' ? '.vercel/output' : '.lat-build/server');
|
|
10
|
+
let result;
|
|
11
|
+
if (target === 'vercel') {
|
|
12
|
+
const buildVercel = dependencies.buildVercel ??
|
|
13
|
+
(await import('../view/vercel-server-build.js')).buildVercelServerView;
|
|
14
|
+
result = await buildVercel(ctx, resolvedOutput, buildOptions);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
result = await dependencies.buildNode(ctx, resolvedOutput, buildOptions);
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
output: `Built ${result.documents} documents and ${result.sources} source views for ${target} at ${result.outputDir}`,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
return { output: error.message, isError: true };
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CmdContext, CmdResult } from '
|
|
1
|
+
import type { CmdContext, CmdResult } from '@plebeiantech/lat.md-core/context';
|
|
2
2
|
import { type StaticViewBuildOptions } from '../view/static-build.js';
|
|
3
3
|
/** Export the current vault as a serverless, read-only Lat UI. */
|
|
4
4
|
export declare function uiBuildCommand(ctx: CmdContext, output?: string, options?: StaticViewBuildOptions): Promise<CmdResult>;
|
package/dist/src/cli/ui-build.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { buildStaticView, } from '../view/static-build.js';
|
|
2
2
|
/** Export the current vault as a serverless, read-only Lat UI. */
|
|
3
|
-
export async function uiBuildCommand(ctx, output = 'lat-
|
|
3
|
+
export async function uiBuildCommand(ctx, output = '.lat-build/static', options = {}) {
|
|
4
4
|
try {
|
|
5
5
|
const result = await buildStaticView(ctx, output, options);
|
|
6
6
|
return {
|
package/dist/src/cli/ui.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CmdContext, CmdResult } from '
|
|
1
|
+
import type { CmdContext, CmdResult } from '@plebeiantech/lat.md-core/context';
|
|
2
2
|
import { type ViewServer, type ViewServerOptions } from '../view/server.js';
|
|
3
3
|
type UiCommandOptions = ViewServerOptions & {
|
|
4
4
|
openBrowser?: (url: string) => Promise<void>;
|
package/dist/src/cli/ui.js
CHANGED
|
@@ -38,7 +38,7 @@ export async function uiCommand(ctx, options = {}) {
|
|
|
38
38
|
options.onStarted?.(server);
|
|
39
39
|
const lines = [
|
|
40
40
|
`Viewing lat.md at ${server.url}`,
|
|
41
|
-
'Note:
|
|
41
|
+
'Note: use `lat ui build static` or `lat ui build server` to build a deployable UI',
|
|
42
42
|
];
|
|
43
43
|
try {
|
|
44
44
|
await (options.openBrowser ?? openBrowser)(server.url);
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export type AntigravityPreInvocationInput = {
|
|
2
|
+
conversationId?: string;
|
|
3
|
+
workspacePaths?: string[];
|
|
4
|
+
transcriptPath?: string;
|
|
5
|
+
artifactDirectoryPath?: string;
|
|
6
|
+
modelName?: string;
|
|
7
|
+
user_prompt?: string;
|
|
8
|
+
prompt?: string;
|
|
9
|
+
userPrompt?: string;
|
|
10
|
+
};
|
|
11
|
+
export type AntigravityPreInvocationOutput = {
|
|
12
|
+
injectSteps: Array<{
|
|
13
|
+
ephemeralMessage?: string;
|
|
14
|
+
}>;
|
|
15
|
+
};
|
|
16
|
+
export type AntigravityPreToolUseInput = {
|
|
17
|
+
toolCall?: {
|
|
18
|
+
name?: string;
|
|
19
|
+
args?: Record<string, unknown>;
|
|
20
|
+
};
|
|
21
|
+
stepIdx?: number;
|
|
22
|
+
workspacePaths?: string[];
|
|
23
|
+
};
|
|
24
|
+
export type AntigravityPreToolUseOutput = {
|
|
25
|
+
decision: 'allow' | 'deny';
|
|
26
|
+
reason?: string;
|
|
27
|
+
};
|
|
28
|
+
export type AntigravityStopInput = {
|
|
29
|
+
executionNum?: number;
|
|
30
|
+
execution_num?: number;
|
|
31
|
+
stop_hook_active?: boolean;
|
|
32
|
+
stopHookActive?: boolean;
|
|
33
|
+
terminationReason?: string;
|
|
34
|
+
error?: string;
|
|
35
|
+
fullyIdle?: boolean;
|
|
36
|
+
workspacePaths?: string[];
|
|
37
|
+
};
|
|
38
|
+
export type AntigravityStopOutput = {
|
|
39
|
+
decision?: 'continue';
|
|
40
|
+
reason?: string;
|
|
41
|
+
};
|
|
42
|
+
export declare function extractLastUserPrompt(transcriptPath?: string): string | null;
|
|
43
|
+
export declare function handleAntigravityPreInvocation(rawInput?: string, writeOutput?: boolean): Promise<AntigravityPreInvocationOutput>;
|
|
44
|
+
export declare function handleAntigravityPreToolUse(rawInput?: string, writeOutput?: boolean): Promise<AntigravityPreToolUseOutput>;
|
|
45
|
+
export declare function handleAntigravityPostToolUse(rawInput?: string, writeOutput?: boolean): Promise<Record<string, unknown>>;
|
|
46
|
+
export declare function handleAntigravityStop(rawInput?: string, writeOutput?: boolean): Promise<AntigravityStopOutput>;
|
|
47
|
+
export declare function handleAntigravityHook(event: string, rawInput?: string): Promise<void>;
|