@plebeiantech/lat.md 0.12.3-fork.9 → 0.13.4-fork.2

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 (340) 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 +178 -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/cli/wiki.d.ts +12 -0
  28. package/dist/src/cli/wiki.js +85 -0
  29. package/dist/src/fork/antigravity-hook.d.ts +47 -0
  30. package/dist/src/fork/antigravity-hook.js +424 -0
  31. package/dist/src/fork/antigravity-init.d.ts +17 -0
  32. package/dist/src/fork/antigravity-init.js +124 -0
  33. package/dist/src/fork/upstream-drift.js +1 -1
  34. package/dist/src/fork/upstream-guard.d.ts +1 -1
  35. package/dist/src/fork/upstream-guard.js +8 -7
  36. package/dist/src/graph-export.js +7 -7
  37. package/dist/src/knowledge/index.js +2 -2
  38. package/dist/src/mcp/server.js +34 -18
  39. package/dist/src/search/cache.d.ts +3 -0
  40. package/dist/src/search/cache.js +104 -0
  41. package/dist/src/search/chunks.d.ts +23 -0
  42. package/dist/src/search/chunks.js +200 -0
  43. package/dist/src/search/db.d.ts +28 -16
  44. package/dist/src/search/db.js +100 -40
  45. package/dist/src/search/embedder.d.ts +2 -1
  46. package/dist/src/search/embedder.js +7 -6
  47. package/dist/src/search/index.d.ts +6 -2
  48. package/dist/src/search/index.js +176 -70
  49. package/dist/src/search/lexical.d.ts +6 -0
  50. package/dist/src/search/lexical.js +36 -0
  51. package/dist/src/search/lock.d.ts +5 -0
  52. package/dist/src/search/lock.js +45 -0
  53. package/dist/src/search/query.d.ts +26 -0
  54. package/dist/src/search/query.js +103 -0
  55. package/dist/src/search/search.d.ts +16 -7
  56. package/dist/src/search/search.js +165 -21
  57. package/dist/src/search/types.d.ts +15 -0
  58. package/dist/src/view/client/assets/GraphView-D_xnk0bP.js +456 -0
  59. package/dist/src/view/client/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  60. package/dist/src/view/client/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  61. package/dist/src/view/client/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  62. package/dist/src/view/client/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  63. package/dist/src/view/client/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  64. package/dist/src/view/client/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  65. package/dist/src/view/client/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  66. package/dist/src/view/client/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  67. package/dist/src/view/client/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  68. package/dist/src/view/client/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  69. package/dist/src/view/client/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  70. package/dist/src/view/client/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  71. package/dist/src/view/client/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  72. package/dist/src/view/client/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  73. package/dist/src/view/client/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  74. package/dist/src/view/client/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  75. package/dist/src/view/client/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  76. package/dist/src/view/client/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  77. package/dist/src/view/client/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  78. package/dist/src/view/client/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  79. package/dist/src/view/client/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  80. package/dist/src/view/client/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  81. package/dist/src/view/client/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  82. package/dist/src/view/client/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  83. package/dist/src/view/client/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  84. package/dist/src/view/client/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  85. package/dist/src/view/client/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  86. package/dist/src/view/client/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  87. package/dist/src/view/client/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  88. package/dist/src/view/client/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  89. package/dist/src/view/client/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  90. package/dist/src/view/client/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  91. package/dist/src/view/client/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  92. package/dist/src/view/client/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  93. package/dist/src/view/client/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  94. package/dist/src/view/client/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  95. package/dist/src/view/client/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  96. package/dist/src/view/client/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  97. package/dist/src/view/client/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  98. package/dist/src/view/client/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  99. package/dist/src/view/client/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  100. package/dist/src/view/client/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  101. package/dist/src/view/client/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  102. package/dist/src/view/client/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  103. package/dist/src/view/client/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  104. package/dist/src/view/client/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  105. package/dist/src/view/client/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  106. package/dist/src/view/client/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  107. package/dist/src/view/client/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  108. package/dist/src/view/client/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  109. package/dist/src/view/client/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  110. package/dist/src/view/client/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  111. package/dist/src/view/client/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  112. package/dist/src/view/client/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  113. package/dist/src/view/client/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  114. package/dist/src/view/client/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  115. package/dist/src/view/client/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  116. package/dist/src/view/client/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  117. package/dist/src/view/client/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  118. package/dist/src/view/client/assets/MarkdownEditor-bjqt_FoF.js +28 -0
  119. package/dist/src/view/client/assets/OrbitControls-DwcpQNja.js +1 -0
  120. package/dist/src/view/client/assets/STLLoader-CLWTKt5i.js +1 -0
  121. package/dist/src/view/client/assets/_commonjsHelpers-CqkleIqs.js +1 -0
  122. package/dist/src/view/client/assets/abnfDiagram-VCTEODGH-kWGvtRnL.js +1 -0
  123. package/dist/src/view/client/assets/arc-BPAFd7cP.js +1 -0
  124. package/dist/src/view/client/assets/architectureDiagram-5GKGNRK7-CsY39oIR.js +36 -0
  125. package/dist/src/view/client/assets/blockDiagram-I7D4REHJ-DHGBG7BJ.js +129 -0
  126. package/dist/src/view/client/assets/c4Diagram-7LVT6UL2-vywK4eb7.js +38 -0
  127. package/dist/src/view/client/assets/channel-CX71L_qV.js +1 -0
  128. package/dist/src/view/client/assets/chunk-2Q5K7J3B-Do3Hz_ci.js +1 -0
  129. package/dist/src/view/client/assets/chunk-5VM5RSS4-B5R1lSeY.js +15 -0
  130. package/dist/src/view/client/assets/chunk-F27PBJKO-Dm55FM_W.js +1 -0
  131. package/dist/src/view/client/assets/chunk-IMKFNOWR-ChptrvvM.js +231 -0
  132. package/dist/src/view/client/assets/chunk-JWPE2WC7-BRQBjrKS.js +1 -0
  133. package/dist/src/view/client/assets/chunk-POPQ4Y6H-CainVZIL.js +1 -0
  134. package/dist/src/view/client/assets/chunk-SVP7TREG-DsKsNGmM.js +88 -0
  135. package/dist/src/view/client/assets/chunk-TICWLB2K-BctkMcJc.js +206 -0
  136. package/dist/src/view/client/assets/chunk-XXDRQBXY-BN7SgOUT.js +1 -0
  137. package/dist/src/view/client/assets/classDiagram-ZZMXUADV-B1VyU6zO.js +1 -0
  138. package/dist/src/view/client/assets/classDiagram-v2-VYDZK3BY-B1VyU6zO.js +1 -0
  139. package/dist/src/view/client/assets/cose-bilkent-JH36ORCC-BszzwrMe.js +1 -0
  140. package/dist/src/view/client/assets/cynefin-OW5HDTMX-CdRyAkPs.js +166 -0
  141. package/dist/src/view/client/assets/cynefinDiagram-5FMLGOSQ-BLvKPZ1u.js +62 -0
  142. package/dist/src/view/client/assets/cytoscape.esm-DzSz-X2X.js +321 -0
  143. package/dist/src/view/client/assets/dagre-GXQ25YYZ-V68w_l65.js +4 -0
  144. package/dist/src/view/client/assets/defaultLocale-DX6XiGOO.js +1 -0
  145. package/dist/src/view/client/assets/diagram-S7CK7UJ4-C2i4eEMg.js +30 -0
  146. package/dist/src/view/client/assets/diagram-UQ7AKVKN-BiwWh5jC.js +41 -0
  147. package/dist/src/view/client/assets/diagram-VSXAHHWV-hkKR_vyS.js +3 -0
  148. package/dist/src/view/client/assets/diagram-VX7I27RA-DzRCSMAc.js +24 -0
  149. package/dist/src/view/client/assets/diagram-Z3DM3KII-fhSFPxyK.js +24 -0
  150. package/dist/src/view/client/assets/ebnfDiagram-PWID7BFC-CCEUDKSA.js +1 -0
  151. package/dist/src/view/client/assets/erDiagram-RLTQ6QDP-FJ2IMyTi.js +99 -0
  152. package/dist/src/view/client/assets/flowDiagram-HODETNUW-BvasdLeK.js +168 -0
  153. package/dist/src/view/client/assets/ganttDiagram-EL5Y4UJY-CiwkBZvY.js +292 -0
  154. package/dist/src/view/client/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
  155. package/dist/src/view/client/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
  156. package/dist/src/view/client/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
  157. package/dist/src/view/client/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
  158. package/dist/src/view/client/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2 +0 -0
  159. package/dist/src/view/client/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2 +0 -0
  160. package/dist/src/view/client/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2 +0 -0
  161. package/dist/src/view/client/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2 +0 -0
  162. package/dist/src/view/client/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2 +0 -0
  163. package/dist/src/view/client/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2 +0 -0
  164. package/dist/src/view/client/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
  165. package/dist/src/view/client/assets/gitGraphDiagram-WWUBYQGX-DYlP2_js.js +106 -0
  166. package/dist/src/view/client/assets/index-BnENo9bV.js +1 -0
  167. package/dist/src/view/client/assets/index-CQ7EOox7.css +1 -0
  168. package/dist/src/view/client/assets/index-CynNDkxt.js +13 -0
  169. package/dist/src/view/client/assets/infoDiagram-27XIBGKW-DRPB2c48.js +2 -0
  170. package/dist/src/view/client/assets/init-Gi6I4Gst.js +1 -0
  171. package/dist/src/view/client/assets/ishikawaDiagram-5VMMS53U-8VV429Cv.js +70 -0
  172. package/dist/src/view/client/assets/journeyDiagram-3NMN7TZE-Dzmwnf83.js +139 -0
  173. package/dist/src/view/client/assets/kanban-definition-UXKFOSKX-pYyZZ1i-.js +89 -0
  174. package/dist/src/view/client/assets/katex-HP8lGamR.js +257 -0
  175. package/dist/src/view/client/assets/layout-GF9k6yGo.js +1 -0
  176. package/dist/src/view/client/assets/linear-Yt2sSOYV.js +1 -0
  177. package/dist/src/view/client/assets/logo-RR_KBOAT.svg +149 -0
  178. package/dist/src/view/client/assets/maplibre-gl-CDX6Zuow.js +800 -0
  179. package/dist/src/view/client/assets/mermaid.core-ChWYCHN0.js +310 -0
  180. package/dist/src/view/client/assets/mindmap-definition-YA3MSWOX-Cc4fQvf1.js +96 -0
  181. package/dist/src/view/client/assets/ordinal-Cboi1Yqb.js +1 -0
  182. package/dist/src/view/client/assets/pegDiagram-XKGWAZYB-C0SsB8bZ.js +1 -0
  183. package/dist/src/view/client/assets/pieDiagram-E7YTZNPT-DIJpqERZ.js +39 -0
  184. package/dist/src/view/client/assets/quadrantDiagram-AXDQQJYC--d-gl6j-.js +7 -0
  185. package/dist/src/view/client/assets/railroadDiagram-O6MQD6OU-BQxwTt7z.js +1 -0
  186. package/dist/src/view/client/assets/requirementDiagram-BXWQKSXE-B_oTeD2A.js +84 -0
  187. package/dist/src/view/client/assets/sankeyDiagram-P5KCCOFB-DLukmE8X.js +40 -0
  188. package/dist/src/view/client/assets/sequenceDiagram-WJ2MYXX4-BNjVB2sc.js +162 -0
  189. package/dist/src/view/client/assets/sizeCapture-INFHLROL-BZecQTOw.js +1 -0
  190. package/dist/src/view/client/assets/stateDiagram-D77RDMKH-Bu1urvXC.js +1 -0
  191. package/dist/src/view/client/assets/stateDiagram-v2-MP3YSRHH-5pc_697G.js +1 -0
  192. package/dist/src/view/client/assets/swimlanes-42K2YHIH-bLAlcepB.js +1 -0
  193. package/dist/src/view/client/assets/swimlanesDiagram-VR7AAH4N-BbOpZjpp.js +8 -0
  194. package/dist/src/view/client/assets/three.module-PDSP0dbZ.js +4108 -0
  195. package/dist/src/view/client/assets/timeline-definition-24CTP7MA-tbwCNvcA.js +120 -0
  196. package/dist/src/view/client/assets/vennDiagram-4TSXK5OY-D8U8Fk0N.js +34 -0
  197. package/dist/src/view/client/assets/wardleyDiagram-VM6X3IG4-LHBVIeNb.js +78 -0
  198. package/dist/src/view/client/assets/xychartDiagram-S5SC5T6Z-CN4tfaFV.js +7 -0
  199. package/dist/src/view/client/index.html +2 -2
  200. package/dist/src/view/client-shell.d.ts +2 -0
  201. package/dist/src/view/client-shell.js +5 -0
  202. package/dist/src/view/diagnostics.d.ts +3 -2
  203. package/dist/src/view/diagnostics.js +49 -58
  204. package/dist/src/view/document-edit.d.ts +8 -0
  205. package/dist/src/view/document-edit.js +25 -0
  206. package/dist/src/view/document-route.d.ts +14 -0
  207. package/dist/src/view/document-route.js +137 -0
  208. package/dist/src/view/document-tree.d.ts +18 -0
  209. package/dist/src/view/document-tree.js +139 -0
  210. package/dist/src/view/external-document-tree.d.ts +3 -0
  211. package/dist/src/view/external-document-tree.js +674 -0
  212. package/dist/src/view/git-diff.js +202 -2
  213. package/dist/src/view/git.js +1 -1
  214. package/dist/src/view/graph.d.ts +4 -3
  215. package/dist/src/view/graph.js +100 -9
  216. package/dist/src/view/highlight.d.ts +10 -2
  217. package/dist/src/view/highlight.js +50648 -3166
  218. package/dist/src/view/markdown.d.ts +3 -2
  219. package/dist/src/view/markdown.js +256 -54
  220. package/dist/src/view/preindexed-search.d.ts +15 -0
  221. package/dist/src/view/preindexed-search.js +25 -0
  222. package/dist/src/view/protocol.d.ts +53 -7
  223. package/dist/src/view/publication.d.ts +2 -0
  224. package/dist/src/view/publication.js +78 -0
  225. package/dist/src/view/references.d.ts +11 -26
  226. package/dist/src/view/references.js +121 -112
  227. package/dist/src/view/repository.d.ts +14 -4
  228. package/dist/src/view/repository.js +260 -19
  229. package/dist/src/view/request-security.d.ts +5 -0
  230. package/dist/src/view/request-security.js +46 -0
  231. package/dist/src/view/search-result.d.ts +4 -0
  232. package/dist/src/view/search-result.js +25 -0
  233. package/dist/src/view/search.d.ts +7 -2
  234. package/dist/src/view/search.js +23 -34
  235. package/dist/src/view/server-build.d.ts +21 -0
  236. package/dist/src/view/server-build.js +145 -0
  237. package/dist/src/view/server-deployment.d.ts +31 -0
  238. package/dist/src/view/server-deployment.js +123 -0
  239. package/dist/src/view/server-index-worker.d.ts +6 -0
  240. package/dist/src/view/server-index-worker.js +14 -0
  241. package/dist/src/view/server.d.ts +11 -2
  242. package/dist/src/view/server.js +245 -73
  243. package/dist/src/view/source-target.d.ts +2 -0
  244. package/dist/src/view/source-target.js +49 -8
  245. package/dist/src/view/static-build.d.ts +18 -2
  246. package/dist/src/view/static-build.js +449 -110
  247. package/dist/src/view/static-protocol.d.ts +26 -2
  248. package/dist/src/view/static-protocol.js +5 -0
  249. package/dist/src/view/store.d.ts +20 -3
  250. package/dist/src/view/store.js +304 -48
  251. package/dist/src/view/table-of-contents.d.ts +2 -2
  252. package/dist/src/view/table-of-contents.js +2 -22
  253. package/dist/src/view/vercel-build.d.ts +24 -0
  254. package/dist/src/view/vercel-build.js +152 -0
  255. package/dist/src/view/vercel-server-build.d.ts +10 -0
  256. package/dist/src/view/vercel-server-build.js +61 -0
  257. package/dist/src/wiki/catalog.d.ts +21 -0
  258. package/dist/src/wiki/catalog.js +256 -0
  259. package/dist/src/wiki/publish.d.ts +27 -0
  260. package/dist/src/wiki/publish.js +265 -0
  261. package/dist/src/wiki/render.d.ts +20 -0
  262. package/dist/src/wiki/render.js +163 -0
  263. package/dist/src/wiki/transform.d.ts +7 -0
  264. package/dist/src/wiki/transform.js +264 -0
  265. package/dist/vendor/lat.md-server/cli.d.ts +2 -0
  266. package/dist/vendor/lat.md-server/cli.js +12 -0
  267. package/dist/vendor/lat.md-server/index.d.ts +38 -0
  268. package/dist/vendor/lat.md-server/index.js +128 -0
  269. package/package.json +68 -22
  270. package/plugins/lat-md/README.md +61 -0
  271. package/plugins/lat-md/hooks.json +38 -0
  272. package/plugins/lat-md/plugin.json +9 -0
  273. package/plugins/lat-md/rules/AGENTS.md +344 -0
  274. package/plugins/lat-md/skills/lat-md/SKILL.md +210 -0
  275. package/plugins/lat-md/skills/lat-md-conventions/SKILL.md +226 -0
  276. package/templates/AGENTS.md +26 -7
  277. package/templates/cursor-rules.md +23 -7
  278. package/templates/fork/conventions.md +133 -11
  279. package/templates/opencode-plugin.ts +9 -9
  280. package/templates/pi-extension.ts +11 -11
  281. package/templates/skill/SKILL.md +35 -3
  282. package/dist/src/cli/check-coverage.d.ts +0 -2
  283. package/dist/src/cli/check-coverage.js +0 -71
  284. package/dist/src/cli/check-frontmatter.d.ts +0 -12
  285. package/dist/src/cli/check-frontmatter.js +0 -44
  286. package/dist/src/cli/check-mode.d.ts +0 -21
  287. package/dist/src/cli/check-mode.js +0 -364
  288. package/dist/src/cli/check-status.d.ts +0 -74
  289. package/dist/src/cli/check-status.js +0 -217
  290. package/dist/src/cli/check.d.ts +0 -45
  291. package/dist/src/cli/check.js +0 -781
  292. package/dist/src/cli/context.d.ts +0 -11
  293. package/dist/src/cli/context.js +0 -58
  294. package/dist/src/cli/expand.d.ts +0 -8
  295. package/dist/src/cli/expand.js +0 -94
  296. package/dist/src/cli/gen-index.d.ts +0 -45
  297. package/dist/src/cli/gen-index.js +0 -235
  298. package/dist/src/cli/link-scheme.d.ts +0 -54
  299. package/dist/src/cli/link-scheme.js +0 -101
  300. package/dist/src/cli/locate.d.ts +0 -2
  301. package/dist/src/cli/locate.js +0 -17
  302. package/dist/src/cli/refs.d.ts +0 -22
  303. package/dist/src/cli/refs.js +0 -229
  304. package/dist/src/cli/section.d.ts +0 -43
  305. package/dist/src/cli/section.js +0 -252
  306. package/dist/src/cli/select-menu.d.ts +0 -13
  307. package/dist/src/cli/select-menu.js +0 -100
  308. package/dist/src/code-refs.d.ts +0 -17
  309. package/dist/src/code-refs.js +0 -298
  310. package/dist/src/config.d.ts +0 -29
  311. package/dist/src/config.js +0 -83
  312. package/dist/src/context.d.ts +0 -23
  313. package/dist/src/context.js +0 -11
  314. package/dist/src/extensions/wiki-link/from-markdown.d.ts +0 -5
  315. package/dist/src/extensions/wiki-link/from-markdown.js +0 -34
  316. package/dist/src/extensions/wiki-link/index.d.ts +0 -4
  317. package/dist/src/extensions/wiki-link/index.js +0 -3
  318. package/dist/src/extensions/wiki-link/syntax.d.ts +0 -14
  319. package/dist/src/extensions/wiki-link/syntax.js +0 -121
  320. package/dist/src/extensions/wiki-link/to-markdown.d.ts +0 -5
  321. package/dist/src/extensions/wiki-link/to-markdown.js +0 -28
  322. package/dist/src/extensions/wiki-link/types.d.ts +0 -34
  323. package/dist/src/format.d.ts +0 -8
  324. package/dist/src/format.js +0 -43
  325. package/dist/src/init-version.d.ts +0 -10
  326. package/dist/src/init-version.js +0 -49
  327. package/dist/src/lattice.d.ts +0 -109
  328. package/dist/src/lattice.js +0 -817
  329. package/dist/src/parser.d.ts +0 -3
  330. package/dist/src/parser.js +0 -18
  331. package/dist/src/source-parser.d.ts +0 -27
  332. package/dist/src/source-parser.js +0 -916
  333. package/dist/src/untrusted.d.ts +0 -18
  334. package/dist/src/untrusted.js +0 -93
  335. package/dist/src/view/client/assets/index-C3iaZyYT.css +0 -1
  336. package/dist/src/view/client/assets/index-KWi67IMz.js +0 -334
  337. package/dist/src/view/client/assets/logo-CNF8zs47.svg +0 -182
  338. package/dist/src/walk.d.ts +0 -18
  339. package/dist/src/walk.js +0 -27
  340. /package/dist/src/{extensions/wiki-link → search}/types.js +0 -0
@@ -0,0 +1,145 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { fork } from 'node:child_process';
3
+ import { mkdtemp, mkdir, rm, writeFile } from 'node:fs/promises';
4
+ import { dirname, join, relative, resolve } from 'node:path';
5
+ import { fileURLToPath } from 'node:url';
6
+ import { getLatServerVersion } from '../../vendor/lat.md-server/index.js';
7
+ import { analyzeMarkdownProject, } from '@plebeiantech/lat.md-core/project-analysis';
8
+ import { getLocalVersion } from '../version.js';
9
+ import { toPosix } from '@plebeiantech/lat.md-core/path';
10
+ import { buildStaticView, moveViewBuildOutput, removeViewBuildStaging, normalizeStaticViewBasePath, validateViewBuildOutput, } from './static-build.js';
11
+ import { SERVER_VIEW_SCHEMA_VERSION, } from './server-deployment.js';
12
+ const defaultDependencies = {
13
+ analyzeMarkdownProject,
14
+ buildStaticView,
15
+ getLocalVersion,
16
+ getLatServerVersion,
17
+ getPackageVersion,
18
+ buildSearchIndex: buildServerSearchIndex,
19
+ };
20
+ /** Wait for the index process to exit so native handles cannot lock staging. */
21
+ export function buildServerSearchIndex(latDir, project, cacheDir) {
22
+ const sourceRuntime = import.meta.url.endsWith('.ts');
23
+ const child = fork(new URL(sourceRuntime ? './server-index-worker.ts' : './server-index-worker.js', import.meta.url), [], {
24
+ execArgv: sourceRuntime ? ['--import', 'tsx'] : [],
25
+ serialization: 'advanced',
26
+ stdio: ['ignore', 'ignore', 'pipe', 'ipc'],
27
+ });
28
+ return new Promise((resolveIndex, reject) => {
29
+ let stderr = '';
30
+ let sendError = null;
31
+ child.stderr.setEncoding('utf8');
32
+ child.stderr.on('data', (chunk) => {
33
+ stderr = (stderr + chunk).slice(-64_000);
34
+ });
35
+ child.once('error', reject);
36
+ child.once('close', (code, signal) => {
37
+ if (sendError)
38
+ reject(sendError);
39
+ else if (code === 0)
40
+ resolveIndex();
41
+ else {
42
+ reject(new Error(`Server search indexing failed (${signal ?? code}): ${stderr.trim()}`));
43
+ }
44
+ });
45
+ child.send({ latDir, project, cacheDir }, (error) => {
46
+ if (error) {
47
+ sendError = error;
48
+ child.kill();
49
+ }
50
+ });
51
+ });
52
+ }
53
+ function getPackageVersion(name) {
54
+ let directory = dirname(fileURLToPath(import.meta.resolve(name)));
55
+ while (true) {
56
+ try {
57
+ const manifest = JSON.parse(readFileSync(join(directory, 'package.json'), 'utf8'));
58
+ if (manifest.name === name && manifest.version)
59
+ return manifest.version;
60
+ }
61
+ catch (error) {
62
+ if (error.code !== 'ENOENT')
63
+ throw error;
64
+ }
65
+ const parent = dirname(directory);
66
+ if (parent === directory)
67
+ break;
68
+ directory = parent;
69
+ }
70
+ throw new Error(`Could not resolve package version: ${name}`);
71
+ }
72
+ function appModule() {
73
+ return `import { createEmbedder } from '@lat.md/embed';
74
+ import minilm from '@lat.md/embed-minilm-fp16';
75
+ import express from 'express';
76
+ import { createServerViewApp } from 'lat.md/server';
77
+ const view = createServerViewApp({
78
+ app: express(),
79
+ manifestFile: new URL('./server-data/server.json', import.meta.url),
80
+ indexFile: new URL('./server-data/search.db', import.meta.url),
81
+ createSearchEngine: () => createEmbedder({ model: minilm }),
82
+ });
83
+ export const close = view.close;
84
+ export default view.app;
85
+ `;
86
+ }
87
+ function packageManifest(latVersion, serverVersion, runtimeVersions) {
88
+ return `${JSON.stringify({
89
+ name: 'lat-ui-server',
90
+ private: true,
91
+ type: 'module',
92
+ scripts: { start: 'lat-ui-server app.mjs' },
93
+ dependencies: {
94
+ '@lat.md/embed': runtimeVersions.embed,
95
+ '@lat.md/embed-minilm-fp16': runtimeVersions.model,
96
+ '../../vendor/lat.md-server/index.js': serverVersion,
97
+ express: runtimeVersions.express,
98
+ 'lat.md': latVersion,
99
+ },
100
+ }, null, 2)}\n`;
101
+ }
102
+ /** Build immutable UI data plus the small portable Express search service. */
103
+ export async function buildServerView(ctx, requestedOutput, options = {}, dependencies = defaultDependencies) {
104
+ const outputDir = resolve(ctx.projectRoot, requestedOutput);
105
+ const basePath = normalizeStaticViewBasePath(options.basePath ?? '/');
106
+ await validateViewBuildOutput(outputDir, ctx.projectRoot, 'Server', options.force);
107
+ await mkdir(dirname(outputDir), { recursive: true });
108
+ const stagingDir = await mkdtemp(join(dirname(outputDir), '.lat-server-staging-'));
109
+ try {
110
+ const publicDir = join(stagingDir, 'public');
111
+ const dataDir = join(stagingDir, 'server-data');
112
+ const staticResult = await dependencies.buildStaticView(ctx, publicDir, {
113
+ ...options,
114
+ basePath,
115
+ searchApi: `${basePath}api/search`,
116
+ });
117
+ const project = await dependencies.analyzeMarkdownProject(ctx.latDir, ctx.projectRoot, { executor: 'auto' });
118
+ await dependencies.buildSearchIndex(ctx.latDir, project, dataDir);
119
+ const sections = project.sections.map(({ children: _children, ...section }) => ({
120
+ ...section,
121
+ documentPath: toPosix(relative(ctx.latDir, resolve(ctx.projectRoot, section.filePath))),
122
+ }));
123
+ const manifest = {
124
+ version: SERVER_VIEW_SCHEMA_VERSION,
125
+ basePath,
126
+ sections,
127
+ };
128
+ await writeFile(join(dataDir, 'server.json'), `${JSON.stringify(manifest)}\n`);
129
+ await writeFile(join(stagingDir, 'app.mjs'), appModule());
130
+ await writeFile(join(stagingDir, 'package.json'), packageManifest(dependencies.getLocalVersion(), dependencies.getLatServerVersion(), {
131
+ embed: dependencies.getPackageVersion('@lat.md/embed'),
132
+ express: dependencies.getPackageVersion('express'),
133
+ model: dependencies.getPackageVersion('@lat.md/embed-minilm-fp16'),
134
+ }));
135
+ if (options.force) {
136
+ await rm(outputDir, { recursive: true, force: true });
137
+ }
138
+ await moveViewBuildOutput(stagingDir, outputDir);
139
+ return { ...staticResult, outputDir };
140
+ }
141
+ catch (error) {
142
+ await removeViewBuildStaging(stagingDir);
143
+ throw error;
144
+ }
145
+ }
@@ -0,0 +1,31 @@
1
+ import { type LatServerApp } from '../../vendor/lat.md-server/index.js';
2
+ import type { Express } from 'express';
3
+ import type { Section } from '@plebeiantech/lat.md-core/lattice-model';
4
+ import type { CreateSearchEngine } from '../search/embedder.js';
5
+ import type { ViewSearchResponse } from './protocol.js';
6
+ export declare const SERVER_VIEW_SCHEMA_VERSION = 1;
7
+ export type ServerViewSection = Omit<Section, 'children'> & {
8
+ documentPath: string;
9
+ };
10
+ export type ServerViewManifest = {
11
+ version: number;
12
+ basePath: string;
13
+ sections: ServerViewSection[];
14
+ };
15
+ export type ServerViewAppOptions = {
16
+ app: Express;
17
+ manifestFile: string | URL;
18
+ indexFile: string | URL;
19
+ createSearchEngine?: CreateSearchEngine;
20
+ search?: (query: string) => Promise<ViewSearchResponse>;
21
+ };
22
+ export type ServerViewApp = {
23
+ app: LatServerApp;
24
+ close: () => Promise<void>;
25
+ };
26
+ /**
27
+ * Create the portable Express application emitted by `lat ui build server`.
28
+ * Static assets are also mounted for ordinary Node hosts; platforms with a CDN
29
+ * can serve `public/` directly and forward only the search route to this app.
30
+ */
31
+ export declare function createServerViewApp(options: ServerViewAppOptions): ServerViewApp;
@@ -0,0 +1,123 @@
1
+ import { INDEX_FILE } from '../search/db.js';
2
+ import { chmod, copyFile, mkdtemp, readFile, rm } from 'node:fs/promises';
3
+ import { tmpdir } from 'node:os';
4
+ import { basename, dirname, join, resolve } from 'node:path';
5
+ import { fileURLToPath } from 'node:url';
6
+ import { createLatServerApp } from '../../vendor/lat.md-server/index.js';
7
+ import { createPreindexedViewSearch, } from './preindexed-search.js';
8
+ export const SERVER_VIEW_SCHEMA_VERSION = 1;
9
+ function searchRoute(basePath) {
10
+ return `${basePath === '/' ? '' : basePath.slice(0, -1)}/api/search`;
11
+ }
12
+ function sendJson(res, status, value, headOnly) {
13
+ const body = JSON.stringify(value);
14
+ res.statusCode = status;
15
+ res.setHeader('Cache-Control', 'no-store');
16
+ res.setHeader('Content-Type', 'application/json; charset=utf-8');
17
+ res.setHeader('Content-Length', Buffer.byteLength(body));
18
+ res.end(headOnly ? undefined : body);
19
+ }
20
+ function localPath(path) {
21
+ return resolve(typeof path === 'string' ? path : fileURLToPath(path));
22
+ }
23
+ async function readManifest(path) {
24
+ const manifest = JSON.parse(await readFile(path, 'utf8'));
25
+ if (manifest.version !== SERVER_VIEW_SCHEMA_VERSION ||
26
+ typeof manifest.basePath !== 'string' ||
27
+ !Array.isArray(manifest.sections)) {
28
+ throw new Error(`Unsupported Lat server build manifest: ${path}`);
29
+ }
30
+ return manifest;
31
+ }
32
+ async function prepareServerView(options, manifestFile, indexFile) {
33
+ const manifest = await readManifest(manifestFile);
34
+ let search = options.search;
35
+ let ownedSearch;
36
+ let runtimeDir;
37
+ if (!search) {
38
+ if (basename(indexFile) !== INDEX_FILE) {
39
+ throw new Error(`Server search index must be named ${INDEX_FILE}: ${indexFile}`);
40
+ }
41
+ const documentPaths = new Map();
42
+ const sections = manifest.sections.map(({ documentPath, ...section }) => {
43
+ documentPaths.set(section.id.toLowerCase(), documentPath);
44
+ return { ...section, children: [] };
45
+ });
46
+ const openSearch = (cacheDir) => createPreindexedViewSearch(dirname(indexFile), cacheDir, sections, documentPaths, undefined, options.createSearchEngine);
47
+ try {
48
+ ownedSearch = await openSearch(dirname(indexFile));
49
+ }
50
+ catch (error) {
51
+ const code = error.code;
52
+ if (code !== 'EROFS' && code !== 'EACCES')
53
+ throw error;
54
+ // Serverless bundles are immutable; locks and database sidecars need writes.
55
+ runtimeDir = await mkdtemp(join(tmpdir(), 'lat-server-search-'));
56
+ try {
57
+ await copyFile(indexFile, join(runtimeDir, INDEX_FILE));
58
+ await chmod(join(runtimeDir, INDEX_FILE), 0o600);
59
+ ownedSearch = await openSearch(runtimeDir);
60
+ }
61
+ catch (copyError) {
62
+ await rm(runtimeDir, { recursive: true, force: true });
63
+ throw copyError;
64
+ }
65
+ }
66
+ search = ownedSearch;
67
+ }
68
+ return {
69
+ manifest,
70
+ search,
71
+ close: async () => {
72
+ try {
73
+ await ownedSearch?.close();
74
+ }
75
+ finally {
76
+ if (runtimeDir)
77
+ await rm(runtimeDir, { recursive: true, force: true });
78
+ }
79
+ },
80
+ };
81
+ }
82
+ /**
83
+ * Create the portable Express application emitted by `lat ui build server`.
84
+ * Static assets are also mounted for ordinary Node hosts; platforms with a CDN
85
+ * can serve `public/` directly and forward only the search route to this app.
86
+ */
87
+ export function createServerViewApp(options) {
88
+ const manifestFile = localPath(options.manifestFile);
89
+ const publicDir = resolve(dirname(manifestFile), '..', 'public');
90
+ const prepared = prepareServerView(options, manifestFile, localPath(options.indexFile));
91
+ // Preparation starts before the first request; requests still receive its error.
92
+ void prepared.catch(() => { });
93
+ const app = createLatServerApp({
94
+ publicDir,
95
+ async handle(req, res, next) {
96
+ const { manifest, search } = await prepared;
97
+ const method = req.method ?? 'GET';
98
+ const headOnly = method === 'HEAD';
99
+ if (method !== 'GET' && !headOnly)
100
+ return next();
101
+ const url = new URL(req.url ?? '/', 'http://lat.local');
102
+ if (url.pathname !== searchRoute(manifest.basePath))
103
+ return next();
104
+ try {
105
+ const query = (url.searchParams.get('query') ?? '').trim();
106
+ if (query.length > 500) {
107
+ sendJson(res, 400, { error: 'Search query is too long' }, headOnly);
108
+ return;
109
+ }
110
+ sendJson(res, 200, await search(query), headOnly);
111
+ }
112
+ catch (error) {
113
+ next(error);
114
+ }
115
+ },
116
+ }, options.app);
117
+ return {
118
+ app,
119
+ close: async () => {
120
+ await (await prepared).close();
121
+ },
122
+ };
123
+ }
@@ -0,0 +1,6 @@
1
+ import type { MarkdownProjectAnalysis } from '@plebeiantech/lat.md-core/project-analysis';
2
+ export type ServerIndexRequest = {
3
+ latDir: string;
4
+ project: MarkdownProjectAnalysis;
5
+ cacheDir: string;
6
+ };
@@ -0,0 +1,14 @@
1
+ import { runIndex } from '../cli/search.js';
2
+ process.once('message', async (request) => {
3
+ try {
4
+ await runIndex(request.latDir, undefined, request.project, {
5
+ cacheDir: request.cacheDir,
6
+ });
7
+ // Process exit releases native database handles before staging is renamed.
8
+ process.exit(0);
9
+ }
10
+ catch (error) {
11
+ console.error(error);
12
+ process.exit(1);
13
+ }
14
+ });
@@ -1,5 +1,6 @@
1
1
  import { type Server } from 'node:http';
2
- import type { CmdContext } from '../context.js';
2
+ import { type LatServerApp } from '../../vendor/lat.md-server/index.js';
3
+ import { type CmdContext } from '@plebeiantech/lat.md-core/context';
3
4
  import { type ViewSearch } from './search.js';
4
5
  import { type ViewStore } from './store.js';
5
6
  export declare const DEFAULT_VIEW_PORT = 4242;
@@ -9,6 +10,11 @@ export type ViewServer = {
9
10
  url: string;
10
11
  close: () => Promise<void>;
11
12
  };
13
+ export type ViewApp = {
14
+ app: LatServerApp;
15
+ store: ViewStore;
16
+ close: () => Promise<void>;
17
+ };
12
18
  export type ViewServerOptions = {
13
19
  clientDir?: string;
14
20
  git?: boolean;
@@ -18,6 +24,9 @@ export type ViewServerOptions = {
18
24
  port?: number;
19
25
  search?: ViewSearch;
20
26
  watch?: boolean;
27
+ externalCa?: string | Buffer;
21
28
  };
22
- /** Start the read-only loopback server used by `lat ui`. */
29
+ /** Create the portable Express application used by live Lat UI servers. */
30
+ export declare function createViewApp(ctx: CmdContext, options?: ViewServerOptions): Promise<ViewApp>;
31
+ /** Start the loopback server used by `lat ui`. */
23
32
  export declare function startViewServer(ctx: CmdContext, options?: ViewServerOptions): Promise<ViewServer>;