@plebeiantech/lat.md 0.12.3-fork.9 → 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.
Files changed (330) hide show
  1. package/README.md +27 -3
  2. package/dist/src/cli/agent-invocation.d.ts +6 -0
  3. package/dist/src/cli/agent-invocation.js +23 -0
  4. package/dist/src/cli/checklist-menu.d.ts +2 -1
  5. package/dist/src/cli/checklist-menu.js +3 -2
  6. package/dist/src/cli/fork-instructions.d.ts +1 -0
  7. package/dist/src/cli/fork-instructions.js +8 -32
  8. package/dist/src/cli/fork-scaffold.js +2 -2
  9. package/dist/src/cli/graph.d.ts +1 -1
  10. package/dist/src/cli/hook.d.ts +26 -0
  11. package/dist/src/cli/hook.js +115 -64
  12. package/dist/src/cli/index.js +147 -70
  13. package/dist/src/cli/init-preferences.d.ts +4 -0
  14. package/dist/src/cli/init-preferences.js +36 -0
  15. package/dist/src/cli/init.d.ts +2 -1
  16. package/dist/src/cli/init.js +100 -60
  17. package/dist/src/cli/reindex.d.ts +1 -1
  18. package/dist/src/cli/reindex.js +7 -10
  19. package/dist/src/cli/search.d.ts +14 -4
  20. package/dist/src/cli/search.js +115 -101
  21. package/dist/src/cli/ui-build-server.d.ts +12 -0
  22. package/dist/src/cli/ui-build-server.js +26 -0
  23. package/dist/src/cli/ui-build.d.ts +1 -1
  24. package/dist/src/cli/ui-build.js +1 -1
  25. package/dist/src/cli/ui.d.ts +1 -1
  26. package/dist/src/cli/ui.js +1 -1
  27. package/dist/src/fork/antigravity-hook.d.ts +47 -0
  28. package/dist/src/fork/antigravity-hook.js +424 -0
  29. package/dist/src/fork/antigravity-init.d.ts +17 -0
  30. package/dist/src/fork/antigravity-init.js +124 -0
  31. package/dist/src/fork/upstream-drift.js +1 -1
  32. package/dist/src/fork/upstream-guard.d.ts +1 -1
  33. package/dist/src/fork/upstream-guard.js +8 -7
  34. package/dist/src/graph-export.js +7 -7
  35. package/dist/src/knowledge/index.js +2 -2
  36. package/dist/src/mcp/server.js +34 -18
  37. package/dist/src/search/cache.d.ts +3 -0
  38. package/dist/src/search/cache.js +104 -0
  39. package/dist/src/search/chunks.d.ts +23 -0
  40. package/dist/src/search/chunks.js +200 -0
  41. package/dist/src/search/db.d.ts +28 -16
  42. package/dist/src/search/db.js +100 -40
  43. package/dist/src/search/embedder.d.ts +2 -1
  44. package/dist/src/search/embedder.js +7 -6
  45. package/dist/src/search/index.d.ts +6 -2
  46. package/dist/src/search/index.js +176 -70
  47. package/dist/src/search/lexical.d.ts +6 -0
  48. package/dist/src/search/lexical.js +36 -0
  49. package/dist/src/search/lock.d.ts +5 -0
  50. package/dist/src/search/lock.js +45 -0
  51. package/dist/src/search/query.d.ts +26 -0
  52. package/dist/src/search/query.js +103 -0
  53. package/dist/src/search/search.d.ts +16 -7
  54. package/dist/src/search/search.js +165 -21
  55. package/dist/src/search/types.d.ts +15 -0
  56. package/dist/src/view/client/assets/GraphView-D_xnk0bP.js +456 -0
  57. package/dist/src/view/client/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  58. package/dist/src/view/client/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  59. package/dist/src/view/client/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  60. package/dist/src/view/client/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  61. package/dist/src/view/client/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  62. package/dist/src/view/client/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  63. package/dist/src/view/client/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  64. package/dist/src/view/client/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  65. package/dist/src/view/client/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  66. package/dist/src/view/client/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  67. package/dist/src/view/client/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  68. package/dist/src/view/client/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  69. package/dist/src/view/client/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  70. package/dist/src/view/client/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  71. package/dist/src/view/client/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  72. package/dist/src/view/client/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  73. package/dist/src/view/client/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  74. package/dist/src/view/client/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  75. package/dist/src/view/client/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  76. package/dist/src/view/client/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  77. package/dist/src/view/client/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  78. package/dist/src/view/client/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  79. package/dist/src/view/client/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  80. package/dist/src/view/client/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  81. package/dist/src/view/client/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  82. package/dist/src/view/client/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  83. package/dist/src/view/client/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  84. package/dist/src/view/client/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  85. package/dist/src/view/client/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  86. package/dist/src/view/client/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  87. package/dist/src/view/client/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  88. package/dist/src/view/client/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  89. package/dist/src/view/client/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  90. package/dist/src/view/client/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  91. package/dist/src/view/client/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  92. package/dist/src/view/client/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  93. package/dist/src/view/client/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  94. package/dist/src/view/client/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  95. package/dist/src/view/client/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  96. package/dist/src/view/client/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  97. package/dist/src/view/client/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  98. package/dist/src/view/client/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  99. package/dist/src/view/client/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  100. package/dist/src/view/client/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  101. package/dist/src/view/client/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  102. package/dist/src/view/client/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  103. package/dist/src/view/client/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  104. package/dist/src/view/client/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  105. package/dist/src/view/client/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  106. package/dist/src/view/client/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  107. package/dist/src/view/client/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  108. package/dist/src/view/client/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  109. package/dist/src/view/client/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  110. package/dist/src/view/client/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  111. package/dist/src/view/client/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  112. package/dist/src/view/client/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  113. package/dist/src/view/client/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  114. package/dist/src/view/client/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  115. package/dist/src/view/client/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  116. package/dist/src/view/client/assets/MarkdownEditor-bjqt_FoF.js +28 -0
  117. package/dist/src/view/client/assets/OrbitControls-DwcpQNja.js +1 -0
  118. package/dist/src/view/client/assets/STLLoader-CLWTKt5i.js +1 -0
  119. package/dist/src/view/client/assets/_commonjsHelpers-CqkleIqs.js +1 -0
  120. package/dist/src/view/client/assets/abnfDiagram-VCTEODGH-kWGvtRnL.js +1 -0
  121. package/dist/src/view/client/assets/arc-BPAFd7cP.js +1 -0
  122. package/dist/src/view/client/assets/architectureDiagram-5GKGNRK7-CsY39oIR.js +36 -0
  123. package/dist/src/view/client/assets/blockDiagram-I7D4REHJ-DHGBG7BJ.js +129 -0
  124. package/dist/src/view/client/assets/c4Diagram-7LVT6UL2-vywK4eb7.js +38 -0
  125. package/dist/src/view/client/assets/channel-CX71L_qV.js +1 -0
  126. package/dist/src/view/client/assets/chunk-2Q5K7J3B-Do3Hz_ci.js +1 -0
  127. package/dist/src/view/client/assets/chunk-5VM5RSS4-B5R1lSeY.js +15 -0
  128. package/dist/src/view/client/assets/chunk-F27PBJKO-Dm55FM_W.js +1 -0
  129. package/dist/src/view/client/assets/chunk-IMKFNOWR-ChptrvvM.js +231 -0
  130. package/dist/src/view/client/assets/chunk-JWPE2WC7-BRQBjrKS.js +1 -0
  131. package/dist/src/view/client/assets/chunk-POPQ4Y6H-CainVZIL.js +1 -0
  132. package/dist/src/view/client/assets/chunk-SVP7TREG-DsKsNGmM.js +88 -0
  133. package/dist/src/view/client/assets/chunk-TICWLB2K-BctkMcJc.js +206 -0
  134. package/dist/src/view/client/assets/chunk-XXDRQBXY-BN7SgOUT.js +1 -0
  135. package/dist/src/view/client/assets/classDiagram-ZZMXUADV-B1VyU6zO.js +1 -0
  136. package/dist/src/view/client/assets/classDiagram-v2-VYDZK3BY-B1VyU6zO.js +1 -0
  137. package/dist/src/view/client/assets/cose-bilkent-JH36ORCC-BszzwrMe.js +1 -0
  138. package/dist/src/view/client/assets/cynefin-OW5HDTMX-CdRyAkPs.js +166 -0
  139. package/dist/src/view/client/assets/cynefinDiagram-5FMLGOSQ-BLvKPZ1u.js +62 -0
  140. package/dist/src/view/client/assets/cytoscape.esm-DzSz-X2X.js +321 -0
  141. package/dist/src/view/client/assets/dagre-GXQ25YYZ-V68w_l65.js +4 -0
  142. package/dist/src/view/client/assets/defaultLocale-DX6XiGOO.js +1 -0
  143. package/dist/src/view/client/assets/diagram-S7CK7UJ4-C2i4eEMg.js +30 -0
  144. package/dist/src/view/client/assets/diagram-UQ7AKVKN-BiwWh5jC.js +41 -0
  145. package/dist/src/view/client/assets/diagram-VSXAHHWV-hkKR_vyS.js +3 -0
  146. package/dist/src/view/client/assets/diagram-VX7I27RA-DzRCSMAc.js +24 -0
  147. package/dist/src/view/client/assets/diagram-Z3DM3KII-fhSFPxyK.js +24 -0
  148. package/dist/src/view/client/assets/ebnfDiagram-PWID7BFC-CCEUDKSA.js +1 -0
  149. package/dist/src/view/client/assets/erDiagram-RLTQ6QDP-FJ2IMyTi.js +99 -0
  150. package/dist/src/view/client/assets/flowDiagram-HODETNUW-BvasdLeK.js +168 -0
  151. package/dist/src/view/client/assets/ganttDiagram-EL5Y4UJY-CiwkBZvY.js +292 -0
  152. package/dist/src/view/client/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
  153. package/dist/src/view/client/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
  154. package/dist/src/view/client/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
  155. package/dist/src/view/client/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
  156. package/dist/src/view/client/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2 +0 -0
  157. package/dist/src/view/client/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2 +0 -0
  158. package/dist/src/view/client/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2 +0 -0
  159. package/dist/src/view/client/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2 +0 -0
  160. package/dist/src/view/client/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2 +0 -0
  161. package/dist/src/view/client/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2 +0 -0
  162. package/dist/src/view/client/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
  163. package/dist/src/view/client/assets/gitGraphDiagram-WWUBYQGX-DYlP2_js.js +106 -0
  164. package/dist/src/view/client/assets/index-BnENo9bV.js +1 -0
  165. package/dist/src/view/client/assets/index-CQ7EOox7.css +1 -0
  166. package/dist/src/view/client/assets/index-CynNDkxt.js +13 -0
  167. package/dist/src/view/client/assets/infoDiagram-27XIBGKW-DRPB2c48.js +2 -0
  168. package/dist/src/view/client/assets/init-Gi6I4Gst.js +1 -0
  169. package/dist/src/view/client/assets/ishikawaDiagram-5VMMS53U-8VV429Cv.js +70 -0
  170. package/dist/src/view/client/assets/journeyDiagram-3NMN7TZE-Dzmwnf83.js +139 -0
  171. package/dist/src/view/client/assets/kanban-definition-UXKFOSKX-pYyZZ1i-.js +89 -0
  172. package/dist/src/view/client/assets/katex-HP8lGamR.js +257 -0
  173. package/dist/src/view/client/assets/layout-GF9k6yGo.js +1 -0
  174. package/dist/src/view/client/assets/linear-Yt2sSOYV.js +1 -0
  175. package/dist/src/view/client/assets/logo-RR_KBOAT.svg +149 -0
  176. package/dist/src/view/client/assets/maplibre-gl-CDX6Zuow.js +800 -0
  177. package/dist/src/view/client/assets/mermaid.core-ChWYCHN0.js +310 -0
  178. package/dist/src/view/client/assets/mindmap-definition-YA3MSWOX-Cc4fQvf1.js +96 -0
  179. package/dist/src/view/client/assets/ordinal-Cboi1Yqb.js +1 -0
  180. package/dist/src/view/client/assets/pegDiagram-XKGWAZYB-C0SsB8bZ.js +1 -0
  181. package/dist/src/view/client/assets/pieDiagram-E7YTZNPT-DIJpqERZ.js +39 -0
  182. package/dist/src/view/client/assets/quadrantDiagram-AXDQQJYC--d-gl6j-.js +7 -0
  183. package/dist/src/view/client/assets/railroadDiagram-O6MQD6OU-BQxwTt7z.js +1 -0
  184. package/dist/src/view/client/assets/requirementDiagram-BXWQKSXE-B_oTeD2A.js +84 -0
  185. package/dist/src/view/client/assets/sankeyDiagram-P5KCCOFB-DLukmE8X.js +40 -0
  186. package/dist/src/view/client/assets/sequenceDiagram-WJ2MYXX4-BNjVB2sc.js +162 -0
  187. package/dist/src/view/client/assets/sizeCapture-INFHLROL-BZecQTOw.js +1 -0
  188. package/dist/src/view/client/assets/stateDiagram-D77RDMKH-Bu1urvXC.js +1 -0
  189. package/dist/src/view/client/assets/stateDiagram-v2-MP3YSRHH-5pc_697G.js +1 -0
  190. package/dist/src/view/client/assets/swimlanes-42K2YHIH-bLAlcepB.js +1 -0
  191. package/dist/src/view/client/assets/swimlanesDiagram-VR7AAH4N-BbOpZjpp.js +8 -0
  192. package/dist/src/view/client/assets/three.module-PDSP0dbZ.js +4108 -0
  193. package/dist/src/view/client/assets/timeline-definition-24CTP7MA-tbwCNvcA.js +120 -0
  194. package/dist/src/view/client/assets/vennDiagram-4TSXK5OY-D8U8Fk0N.js +34 -0
  195. package/dist/src/view/client/assets/wardleyDiagram-VM6X3IG4-LHBVIeNb.js +78 -0
  196. package/dist/src/view/client/assets/xychartDiagram-S5SC5T6Z-CN4tfaFV.js +7 -0
  197. package/dist/src/view/client/index.html +2 -2
  198. package/dist/src/view/client-shell.d.ts +2 -0
  199. package/dist/src/view/client-shell.js +5 -0
  200. package/dist/src/view/diagnostics.d.ts +3 -2
  201. package/dist/src/view/diagnostics.js +49 -58
  202. package/dist/src/view/document-edit.d.ts +8 -0
  203. package/dist/src/view/document-edit.js +25 -0
  204. package/dist/src/view/document-route.d.ts +14 -0
  205. package/dist/src/view/document-route.js +137 -0
  206. package/dist/src/view/document-tree.d.ts +18 -0
  207. package/dist/src/view/document-tree.js +139 -0
  208. package/dist/src/view/external-document-tree.d.ts +3 -0
  209. package/dist/src/view/external-document-tree.js +674 -0
  210. package/dist/src/view/git-diff.js +202 -2
  211. package/dist/src/view/git.js +1 -1
  212. package/dist/src/view/graph.d.ts +4 -3
  213. package/dist/src/view/graph.js +100 -9
  214. package/dist/src/view/highlight.d.ts +10 -2
  215. package/dist/src/view/highlight.js +50648 -3166
  216. package/dist/src/view/markdown.d.ts +3 -2
  217. package/dist/src/view/markdown.js +256 -54
  218. package/dist/src/view/preindexed-search.d.ts +15 -0
  219. package/dist/src/view/preindexed-search.js +25 -0
  220. package/dist/src/view/protocol.d.ts +53 -7
  221. package/dist/src/view/publication.d.ts +2 -0
  222. package/dist/src/view/publication.js +78 -0
  223. package/dist/src/view/references.d.ts +11 -26
  224. package/dist/src/view/references.js +121 -112
  225. package/dist/src/view/repository.d.ts +14 -4
  226. package/dist/src/view/repository.js +260 -19
  227. package/dist/src/view/request-security.d.ts +5 -0
  228. package/dist/src/view/request-security.js +46 -0
  229. package/dist/src/view/search-result.d.ts +4 -0
  230. package/dist/src/view/search-result.js +25 -0
  231. package/dist/src/view/search.d.ts +7 -2
  232. package/dist/src/view/search.js +23 -34
  233. package/dist/src/view/server-build.d.ts +21 -0
  234. package/dist/src/view/server-build.js +145 -0
  235. package/dist/src/view/server-deployment.d.ts +31 -0
  236. package/dist/src/view/server-deployment.js +123 -0
  237. package/dist/src/view/server-index-worker.d.ts +6 -0
  238. package/dist/src/view/server-index-worker.js +14 -0
  239. package/dist/src/view/server.d.ts +11 -2
  240. package/dist/src/view/server.js +245 -73
  241. package/dist/src/view/source-target.d.ts +2 -0
  242. package/dist/src/view/source-target.js +49 -8
  243. package/dist/src/view/static-build.d.ts +18 -2
  244. package/dist/src/view/static-build.js +449 -110
  245. package/dist/src/view/static-protocol.d.ts +26 -2
  246. package/dist/src/view/static-protocol.js +5 -0
  247. package/dist/src/view/store.d.ts +20 -3
  248. package/dist/src/view/store.js +304 -48
  249. package/dist/src/view/table-of-contents.d.ts +2 -2
  250. package/dist/src/view/table-of-contents.js +2 -22
  251. package/dist/src/view/vercel-build.d.ts +24 -0
  252. package/dist/src/view/vercel-build.js +152 -0
  253. package/dist/src/view/vercel-server-build.d.ts +10 -0
  254. package/dist/src/view/vercel-server-build.js +61 -0
  255. package/dist/vendor/lat.md-server/cli.d.ts +2 -0
  256. package/dist/vendor/lat.md-server/cli.js +12 -0
  257. package/dist/vendor/lat.md-server/index.d.ts +38 -0
  258. package/dist/vendor/lat.md-server/index.js +128 -0
  259. package/package.json +68 -22
  260. package/plugins/lat-md/README.md +61 -0
  261. package/plugins/lat-md/hooks.json +38 -0
  262. package/plugins/lat-md/plugin.json +9 -0
  263. package/plugins/lat-md/rules/AGENTS.md +344 -0
  264. package/plugins/lat-md/skills/lat-md/SKILL.md +210 -0
  265. package/plugins/lat-md/skills/lat-md-conventions/SKILL.md +226 -0
  266. package/templates/AGENTS.md +26 -7
  267. package/templates/cursor-rules.md +23 -7
  268. package/templates/fork/conventions.md +133 -11
  269. package/templates/opencode-plugin.ts +9 -9
  270. package/templates/pi-extension.ts +11 -11
  271. package/templates/skill/SKILL.md +35 -3
  272. package/dist/src/cli/check-coverage.d.ts +0 -2
  273. package/dist/src/cli/check-coverage.js +0 -71
  274. package/dist/src/cli/check-frontmatter.d.ts +0 -12
  275. package/dist/src/cli/check-frontmatter.js +0 -44
  276. package/dist/src/cli/check-mode.d.ts +0 -21
  277. package/dist/src/cli/check-mode.js +0 -364
  278. package/dist/src/cli/check-status.d.ts +0 -74
  279. package/dist/src/cli/check-status.js +0 -217
  280. package/dist/src/cli/check.d.ts +0 -45
  281. package/dist/src/cli/check.js +0 -781
  282. package/dist/src/cli/context.d.ts +0 -11
  283. package/dist/src/cli/context.js +0 -58
  284. package/dist/src/cli/expand.d.ts +0 -8
  285. package/dist/src/cli/expand.js +0 -94
  286. package/dist/src/cli/gen-index.d.ts +0 -45
  287. package/dist/src/cli/gen-index.js +0 -235
  288. package/dist/src/cli/link-scheme.d.ts +0 -54
  289. package/dist/src/cli/link-scheme.js +0 -101
  290. package/dist/src/cli/locate.d.ts +0 -2
  291. package/dist/src/cli/locate.js +0 -17
  292. package/dist/src/cli/refs.d.ts +0 -22
  293. package/dist/src/cli/refs.js +0 -229
  294. package/dist/src/cli/section.d.ts +0 -43
  295. package/dist/src/cli/section.js +0 -252
  296. package/dist/src/cli/select-menu.d.ts +0 -13
  297. package/dist/src/cli/select-menu.js +0 -100
  298. package/dist/src/code-refs.d.ts +0 -17
  299. package/dist/src/code-refs.js +0 -298
  300. package/dist/src/config.d.ts +0 -29
  301. package/dist/src/config.js +0 -83
  302. package/dist/src/context.d.ts +0 -23
  303. package/dist/src/context.js +0 -11
  304. package/dist/src/extensions/wiki-link/from-markdown.d.ts +0 -5
  305. package/dist/src/extensions/wiki-link/from-markdown.js +0 -34
  306. package/dist/src/extensions/wiki-link/index.d.ts +0 -4
  307. package/dist/src/extensions/wiki-link/index.js +0 -3
  308. package/dist/src/extensions/wiki-link/syntax.d.ts +0 -14
  309. package/dist/src/extensions/wiki-link/syntax.js +0 -121
  310. package/dist/src/extensions/wiki-link/to-markdown.d.ts +0 -5
  311. package/dist/src/extensions/wiki-link/to-markdown.js +0 -28
  312. package/dist/src/extensions/wiki-link/types.d.ts +0 -34
  313. package/dist/src/format.d.ts +0 -8
  314. package/dist/src/format.js +0 -43
  315. package/dist/src/init-version.d.ts +0 -10
  316. package/dist/src/init-version.js +0 -49
  317. package/dist/src/lattice.d.ts +0 -109
  318. package/dist/src/lattice.js +0 -817
  319. package/dist/src/parser.d.ts +0 -3
  320. package/dist/src/parser.js +0 -18
  321. package/dist/src/source-parser.d.ts +0 -27
  322. package/dist/src/source-parser.js +0 -916
  323. package/dist/src/untrusted.d.ts +0 -18
  324. package/dist/src/untrusted.js +0 -93
  325. package/dist/src/view/client/assets/index-C3iaZyYT.css +0 -1
  326. package/dist/src/view/client/assets/index-KWi67IMz.js +0 -334
  327. package/dist/src/view/client/assets/logo-CNF8zs47.svg +0 -182
  328. package/dist/src/walk.d.ts +0 -18
  329. package/dist/src/walk.js +0 -27
  330. /package/dist/src/{extensions/wiki-link → search}/types.js +0 -0
@@ -1,83 +1,64 @@
1
1
  import { readFile } from 'node:fs/promises';
2
- import { join } from 'node:path';
3
- import { openDb, ensureMeta, getStoredModel, setStoredModel, ensureSectionsSchema, dropSections, closeDb, } from '../search/db.js';
4
- import { getLlmKey } from '../config.js';
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 { loadAllSections, flattenSections, } from '../lattice.js';
9
- import { formatSectionPreview, formatNavHints } from '../format.js';
10
- import { provenanceNote, formatProvenanceNote } from './check-status.js';
11
- async function withDb(latDir, progress, fn) {
12
- const db = openDb(latDir);
13
- try {
14
- await ensureMeta(db);
15
- const stored = await getStoredModel(db);
16
- // The stored model is authoritative — no silent backend switch. Throws
17
- // ReindexRequiredError if the environment can't serve the stored index.
18
- // Rebuilding / switching backends is `lat reindex`, never `lat search`.
19
- const embedder = await embedderForIndex(stored, latDir);
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
- // If the repo is pinned to local but a key is set, say so — otherwise it
34
- // looks like the key is being silently ignored.
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
- progress?.beforeIndex?.(isEmpty);
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
- const stats = await indexSections(latDir, db, embedder);
50
- // Pin the backend only after a successful index, so a failed build never
51
- // leaves the repo wrongly pinned to an empty index.
52
- if (!stored)
53
- await setStoredModel(db, modelKey(embedder));
54
- progress?.afterIndex?.(stats, isEmpty);
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
- catch (err) {
57
- // Failed fresh build → drop the half-created table so the next run is
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
- /** Resolve raw search hits (by id) to full section matches. */
70
- async function resolveMatches(latDir, results, preloadedSections) {
71
- if (results.length === 0)
72
- return [];
73
- const allSections = preloadedSections ?? (await loadAllSections(latDir));
74
- const flat = flattenSections(allSections);
75
- const byId = new Map(flat.map((s) => [s.id, s]));
76
- return results.flatMap((result) => {
77
- const section = byId.get(result.id);
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 db = openDb(latDir);
96
- try {
97
- await ensureMeta(db);
98
- const stored = await getStoredModel(db);
99
- // Never built (or a legacy pre-versioning cache) — leave building to
100
- // `lat search`; don't load the embedder just to embed the query.
101
- if (stored === null)
102
- return { query, matches: [] };
103
- const embedder = await embedderForIndex(stored, latDir);
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
- return withDb(latDir, progress, async (db, embedder) => {
116
- const results = await searchSections(db, query, embedder, limit);
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: await resolveMatches(latDir, results, opts?.preloadedSections),
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
- await withDb(latDir, progress, async () => { });
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 result = await runSearch(ctx.latDir, query, opts.limit, progress);
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
- formatNavHints(ctx),
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 '../context.js';
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>;
@@ -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-ui', options = {}) {
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 {
@@ -1,4 +1,4 @@
1
- import type { CmdContext, CmdResult } from '../context.js';
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>;
@@ -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: you can use `lat ui build` to build a static version of the UI',
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>;