kirograph 0.28.0 → 1.0.0

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 (753) hide show
  1. package/dist/architecture/index.js +4 -1
  2. package/dist/architecture/index.js.map +2 -2
  3. package/dist/architecture/manifest/index.js +13 -2
  4. package/dist/architecture/manifest/index.js.map +2 -2
  5. package/dist/bin/commands/install.js +2 -1
  6. package/dist/bin/commands/install.js.map +2 -2
  7. package/dist/bin/commands/status.js +2 -1
  8. package/dist/bin/commands/status.js.map +2 -2
  9. package/dist/bin/commands/uninit.js +2 -1
  10. package/dist/bin/commands/uninit.js.map +2 -2
  11. package/dist/bin/commands/vulns.js +10 -5
  12. package/dist/bin/commands/vulns.js.map +2 -2
  13. package/dist/bin/installer/common.js +7 -1
  14. package/dist/bin/installer/common.js.map +2 -2
  15. package/dist/bin/installer/config-prompt.js +117 -100
  16. package/dist/bin/installer/config-prompt.js.map +3 -3
  17. package/dist/bin/installer/detect.js +10 -0
  18. package/dist/bin/installer/detect.js.map +2 -2
  19. package/dist/bin/installer/hooks.js +13 -8
  20. package/dist/bin/installer/hooks.js.map +2 -2
  21. package/dist/bin/installer/targets/antigravity.js +1 -1
  22. package/dist/bin/installer/targets/antigravity.js.map +2 -2
  23. package/dist/bin/installer/targets/claude.js +1 -1
  24. package/dist/bin/installer/targets/claude.js.map +2 -2
  25. package/dist/bin/installer/targets/codex.js +1 -1
  26. package/dist/bin/installer/targets/codex.js.map +2 -2
  27. package/dist/bin/installer/targets/commandcode.js +84 -0
  28. package/dist/bin/installer/targets/commandcode.js.map +7 -0
  29. package/dist/bin/installer/targets/copilot.js +1 -1
  30. package/dist/bin/installer/targets/copilot.js.map +2 -2
  31. package/dist/bin/installer/targets/cursor.js +2 -2
  32. package/dist/bin/installer/targets/cursor.js.map +2 -2
  33. package/dist/bin/installer/targets/devin.js +1 -1
  34. package/dist/bin/installer/targets/devin.js.map +2 -2
  35. package/dist/bin/installer/targets/gemini-cli.js +1 -1
  36. package/dist/bin/installer/targets/gemini-cli.js.map +2 -2
  37. package/dist/bin/installer/targets/index.js +10 -0
  38. package/dist/bin/installer/targets/index.js.map +2 -2
  39. package/dist/bin/installer/targets/opencode.js +1 -1
  40. package/dist/bin/installer/targets/opencode.js.map +2 -2
  41. package/dist/bin/installer/targets/windsurf.js +1 -1
  42. package/dist/bin/installer/targets/windsurf.js.map +2 -2
  43. package/dist/bin/kirograph.js +1 -1
  44. package/dist/bin/kirograph.js.map +1 -1
  45. package/dist/config.js +21 -1
  46. package/dist/config.js.map +2 -2
  47. package/dist/core/pipeline.js +18 -6
  48. package/dist/core/pipeline.js.map +2 -2
  49. package/dist/extraction/extractor.js +58 -1
  50. package/dist/extraction/extractor.js.map +2 -2
  51. package/dist/extraction/grammars.js +38 -3
  52. package/dist/extraction/grammars.js.map +2 -2
  53. package/dist/extraction/wasm/tree-sitter-bash.wasm +0 -0
  54. package/dist/extraction/wasm/tree-sitter-c.wasm +0 -0
  55. package/dist/extraction/wasm/tree-sitter-c_sharp.wasm +0 -0
  56. package/dist/extraction/wasm/tree-sitter-cpp.wasm +0 -0
  57. package/dist/extraction/wasm/tree-sitter-csharp.wasm +0 -0
  58. package/dist/extraction/wasm/tree-sitter-css.wasm +0 -0
  59. package/dist/extraction/wasm/tree-sitter-dart.wasm +0 -0
  60. package/dist/extraction/wasm/tree-sitter-elisp.wasm +0 -0
  61. package/dist/extraction/wasm/tree-sitter-elixir.wasm +0 -0
  62. package/dist/extraction/wasm/tree-sitter-elm.wasm +0 -0
  63. package/dist/extraction/wasm/tree-sitter-embedded_template.wasm +0 -0
  64. package/dist/extraction/wasm/tree-sitter-embeddedtemplate.wasm +0 -0
  65. package/dist/extraction/wasm/tree-sitter-go.wasm +0 -0
  66. package/dist/extraction/wasm/tree-sitter-html.wasm +0 -0
  67. package/dist/extraction/wasm/tree-sitter-java.wasm +0 -0
  68. package/dist/extraction/wasm/tree-sitter-javascript.wasm +0 -0
  69. package/dist/extraction/wasm/tree-sitter-json.wasm +0 -0
  70. package/dist/extraction/wasm/tree-sitter-kotlin.wasm +0 -0
  71. package/dist/extraction/wasm/tree-sitter-lua.wasm +0 -0
  72. package/dist/extraction/wasm/tree-sitter-objc.wasm +0 -0
  73. package/dist/extraction/wasm/tree-sitter-ocaml.wasm +0 -0
  74. package/dist/extraction/wasm/tree-sitter-php.wasm +0 -0
  75. package/dist/extraction/wasm/tree-sitter-python.wasm +0 -0
  76. package/dist/extraction/wasm/tree-sitter-ql.wasm +0 -0
  77. package/dist/extraction/wasm/tree-sitter-rescript.wasm +0 -0
  78. package/dist/extraction/wasm/tree-sitter-ruby.wasm +0 -0
  79. package/dist/extraction/wasm/tree-sitter-rust.wasm +0 -0
  80. package/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
  81. package/dist/extraction/wasm/tree-sitter-solidity.wasm +0 -0
  82. package/dist/extraction/wasm/tree-sitter-swift.wasm +0 -0
  83. package/dist/extraction/wasm/tree-sitter-systemrdl.wasm +0 -0
  84. package/dist/extraction/wasm/tree-sitter-tlaplus.wasm +0 -0
  85. package/dist/extraction/wasm/tree-sitter-toml.wasm +0 -0
  86. package/dist/extraction/wasm/tree-sitter-tsx.wasm +0 -0
  87. package/dist/extraction/wasm/tree-sitter-typescript.wasm +0 -0
  88. package/dist/extraction/wasm/tree-sitter-vue.wasm +0 -0
  89. package/dist/extraction/wasm/tree-sitter-yaml.wasm +0 -0
  90. package/dist/extraction/wasm/tree-sitter-zig.wasm +0 -0
  91. package/dist/frameworks/index.js +68 -7
  92. package/dist/frameworks/index.js.map +2 -2
  93. package/dist/security/manifest/adapter.js +17 -2
  94. package/dist/security/manifest/adapter.js.map +2 -2
  95. package/dist/security/manifest/parser.js +2 -2
  96. package/dist/security/manifest/parser.js.map +2 -2
  97. package/dist/security/pipeline.js +4 -1
  98. package/dist/security/pipeline.js.map +2 -2
  99. package/dist/security/reachability.js +61 -45
  100. package/dist/security/reachability.js.map +3 -3
  101. package/dist/security/types.js.map +1 -1
  102. package/dist/security/vuln/epss-client.js +1 -1
  103. package/dist/security/vuln/epss-client.js.map +1 -1
  104. package/dist/security/vuln/osv-adapter.js +99 -31
  105. package/dist/security/vuln/osv-adapter.js.map +2 -2
  106. package/dist/sync/index.js +9 -2
  107. package/dist/sync/index.js.map +2 -2
  108. package/dist/vectors/libsql-index.js +287 -0
  109. package/dist/vectors/libsql-index.js.map +7 -0
  110. package/dist/vectors/turso-index.js +307 -0
  111. package/dist/vectors/turso-index.js.map +7 -0
  112. package/package.json +3 -2
  113. package/dist/architecture/index.d.ts +0 -11
  114. package/dist/architecture/index.d.ts.map +0 -1
  115. package/dist/architecture/layers/csharp.d.ts +0 -6
  116. package/dist/architecture/layers/csharp.d.ts.map +0 -1
  117. package/dist/architecture/layers/dart.d.ts +0 -10
  118. package/dist/architecture/layers/dart.d.ts.map +0 -1
  119. package/dist/architecture/layers/elixir.d.ts +0 -6
  120. package/dist/architecture/layers/elixir.d.ts.map +0 -1
  121. package/dist/architecture/layers/go.d.ts +0 -7
  122. package/dist/architecture/layers/go.d.ts.map +0 -1
  123. package/dist/architecture/layers/index.d.ts +0 -30
  124. package/dist/architecture/layers/index.d.ts.map +0 -1
  125. package/dist/architecture/layers/java.d.ts +0 -7
  126. package/dist/architecture/layers/java.d.ts.map +0 -1
  127. package/dist/architecture/layers/ocaml.d.ts +0 -6
  128. package/dist/architecture/layers/ocaml.d.ts.map +0 -1
  129. package/dist/architecture/layers/python.d.ts +0 -7
  130. package/dist/architecture/layers/python.d.ts.map +0 -1
  131. package/dist/architecture/layers/ruby.d.ts +0 -6
  132. package/dist/architecture/layers/ruby.d.ts.map +0 -1
  133. package/dist/architecture/layers/rust.d.ts +0 -6
  134. package/dist/architecture/layers/rust.d.ts.map +0 -1
  135. package/dist/architecture/layers/scala.d.ts +0 -6
  136. package/dist/architecture/layers/scala.d.ts.map +0 -1
  137. package/dist/architecture/layers/solidity.d.ts +0 -6
  138. package/dist/architecture/layers/solidity.d.ts.map +0 -1
  139. package/dist/architecture/layers/types.d.ts +0 -2
  140. package/dist/architecture/layers/types.d.ts.map +0 -1
  141. package/dist/architecture/layers/typescript.d.ts +0 -9
  142. package/dist/architecture/layers/typescript.d.ts.map +0 -1
  143. package/dist/architecture/layers/vue.d.ts +0 -6
  144. package/dist/architecture/layers/vue.d.ts.map +0 -1
  145. package/dist/architecture/manifest/cargo.d.ts +0 -3
  146. package/dist/architecture/manifest/cargo.d.ts.map +0 -1
  147. package/dist/architecture/manifest/csproj.d.ts +0 -3
  148. package/dist/architecture/manifest/csproj.d.ts.map +0 -1
  149. package/dist/architecture/manifest/elm.d.ts +0 -3
  150. package/dist/architecture/manifest/elm.d.ts.map +0 -1
  151. package/dist/architecture/manifest/go.d.ts +0 -3
  152. package/dist/architecture/manifest/go.d.ts.map +0 -1
  153. package/dist/architecture/manifest/gradle.d.ts +0 -3
  154. package/dist/architecture/manifest/gradle.d.ts.map +0 -1
  155. package/dist/architecture/manifest/index.d.ts +0 -12
  156. package/dist/architecture/manifest/index.d.ts.map +0 -1
  157. package/dist/architecture/manifest/maven.d.ts +0 -3
  158. package/dist/architecture/manifest/maven.d.ts.map +0 -1
  159. package/dist/architecture/manifest/npm.d.ts +0 -3
  160. package/dist/architecture/manifest/npm.d.ts.map +0 -1
  161. package/dist/architecture/manifest/ocaml.d.ts +0 -3
  162. package/dist/architecture/manifest/ocaml.d.ts.map +0 -1
  163. package/dist/architecture/manifest/python.d.ts +0 -3
  164. package/dist/architecture/manifest/python.d.ts.map +0 -1
  165. package/dist/architecture/manifest/scala.d.ts +0 -3
  166. package/dist/architecture/manifest/scala.d.ts.map +0 -1
  167. package/dist/architecture/manifest/types.d.ts +0 -2
  168. package/dist/architecture/manifest/types.d.ts.map +0 -1
  169. package/dist/architecture/types.d.ts +0 -91
  170. package/dist/architecture/types.d.ts.map +0 -1
  171. package/dist/banner.d.ts +0 -6
  172. package/dist/banner.d.ts.map +0 -1
  173. package/dist/banner.js +0 -67
  174. package/dist/banner.js.map +0 -1
  175. package/dist/bin/banner.d.ts +0 -6
  176. package/dist/bin/banner.d.ts.map +0 -1
  177. package/dist/bin/commands/affected.d.ts +0 -3
  178. package/dist/bin/commands/affected.d.ts.map +0 -1
  179. package/dist/bin/commands/architecture.d.ts +0 -3
  180. package/dist/bin/commands/architecture.d.ts.map +0 -1
  181. package/dist/bin/commands/attack-surface.d.ts +0 -3
  182. package/dist/bin/commands/attack-surface.d.ts.map +0 -1
  183. package/dist/bin/commands/benchmark.d.ts +0 -9
  184. package/dist/bin/commands/benchmark.d.ts.map +0 -1
  185. package/dist/bin/commands/budget.d.ts +0 -6
  186. package/dist/bin/commands/budget.d.ts.map +0 -1
  187. package/dist/bin/commands/caveman.d.ts +0 -7
  188. package/dist/bin/commands/caveman.d.ts.map +0 -1
  189. package/dist/bin/commands/communities.d.ts +0 -3
  190. package/dist/bin/commands/communities.d.ts.map +0 -1
  191. package/dist/bin/commands/compression.d.ts +0 -7
  192. package/dist/bin/commands/compression.d.ts.map +0 -1
  193. package/dist/bin/commands/configure-mcp.js +0 -104
  194. package/dist/bin/commands/configure-mcp.js.map +0 -7
  195. package/dist/bin/commands/context.d.ts +0 -3
  196. package/dist/bin/commands/context.d.ts.map +0 -1
  197. package/dist/bin/commands/coupling.d.ts +0 -3
  198. package/dist/bin/commands/coupling.d.ts.map +0 -1
  199. package/dist/bin/commands/dashboard.d.ts +0 -3
  200. package/dist/bin/commands/dashboard.d.ts.map +0 -1
  201. package/dist/bin/commands/data.d.ts +0 -3
  202. package/dist/bin/commands/data.d.ts.map +0 -1
  203. package/dist/bin/commands/dead-code.d.ts +0 -3
  204. package/dist/bin/commands/dead-code.d.ts.map +0 -1
  205. package/dist/bin/commands/dep-confusion.d.ts +0 -3
  206. package/dist/bin/commands/dep-confusion.d.ts.map +0 -1
  207. package/dist/bin/commands/docs.d.ts +0 -3
  208. package/dist/bin/commands/docs.d.ts.map +0 -1
  209. package/dist/bin/commands/exec.d.ts +0 -11
  210. package/dist/bin/commands/exec.d.ts.map +0 -1
  211. package/dist/bin/commands/export.d.ts +0 -3
  212. package/dist/bin/commands/export.d.ts.map +0 -1
  213. package/dist/bin/commands/files.d.ts +0 -3
  214. package/dist/bin/commands/files.d.ts.map +0 -1
  215. package/dist/bin/commands/flows.d.ts +0 -3
  216. package/dist/bin/commands/flows.d.ts.map +0 -1
  217. package/dist/bin/commands/gain.d.ts +0 -6
  218. package/dist/bin/commands/gain.d.ts.map +0 -1
  219. package/dist/bin/commands/help.d.ts +0 -11
  220. package/dist/bin/commands/help.d.ts.map +0 -1
  221. package/dist/bin/commands/hotspots.d.ts +0 -3
  222. package/dist/bin/commands/hotspots.d.ts.map +0 -1
  223. package/dist/bin/commands/index.d.ts +0 -3
  224. package/dist/bin/commands/index.d.ts.map +0 -1
  225. package/dist/bin/commands/init.d.ts +0 -3
  226. package/dist/bin/commands/init.d.ts.map +0 -1
  227. package/dist/bin/commands/install.d.ts +0 -3
  228. package/dist/bin/commands/install.d.ts.map +0 -1
  229. package/dist/bin/commands/licenses.d.ts +0 -3
  230. package/dist/bin/commands/licenses.d.ts.map +0 -1
  231. package/dist/bin/commands/mark-dirty.d.ts +0 -3
  232. package/dist/bin/commands/mark-dirty.d.ts.map +0 -1
  233. package/dist/bin/commands/memory.d.ts +0 -16
  234. package/dist/bin/commands/memory.d.ts.map +0 -1
  235. package/dist/bin/commands/package.d.ts +0 -3
  236. package/dist/bin/commands/package.d.ts.map +0 -1
  237. package/dist/bin/commands/path.d.ts +0 -3
  238. package/dist/bin/commands/path.d.ts.map +0 -1
  239. package/dist/bin/commands/pattern.d.ts +0 -3
  240. package/dist/bin/commands/pattern.d.ts.map +0 -1
  241. package/dist/bin/commands/qdrant.d.ts +0 -3
  242. package/dist/bin/commands/qdrant.d.ts.map +0 -1
  243. package/dist/bin/commands/qdrant.js +0 -159
  244. package/dist/bin/commands/qdrant.js.map +0 -1
  245. package/dist/bin/commands/query.d.ts +0 -3
  246. package/dist/bin/commands/query.d.ts.map +0 -1
  247. package/dist/bin/commands/reachability.d.ts +0 -3
  248. package/dist/bin/commands/reachability.d.ts.map +0 -1
  249. package/dist/bin/commands/read.d.ts +0 -6
  250. package/dist/bin/commands/read.d.ts.map +0 -1
  251. package/dist/bin/commands/refactor.d.ts +0 -3
  252. package/dist/bin/commands/refactor.d.ts.map +0 -1
  253. package/dist/bin/commands/remediation.d.ts +0 -3
  254. package/dist/bin/commands/remediation.d.ts.map +0 -1
  255. package/dist/bin/commands/sbom.d.ts +0 -3
  256. package/dist/bin/commands/sbom.d.ts.map +0 -1
  257. package/dist/bin/commands/security-ci-report.d.ts +0 -9
  258. package/dist/bin/commands/security-ci-report.d.ts.map +0 -1
  259. package/dist/bin/commands/security-export.d.ts +0 -2
  260. package/dist/bin/commands/security-export.d.ts.map +0 -1
  261. package/dist/bin/commands/security-flows.d.ts +0 -3
  262. package/dist/bin/commands/security-flows.d.ts.map +0 -1
  263. package/dist/bin/commands/security-secrets.d.ts +0 -3
  264. package/dist/bin/commands/security-secrets.d.ts.map +0 -1
  265. package/dist/bin/commands/security.d.ts +0 -3
  266. package/dist/bin/commands/security.d.ts.map +0 -1
  267. package/dist/bin/commands/serve.d.ts +0 -3
  268. package/dist/bin/commands/serve.d.ts.map +0 -1
  269. package/dist/bin/commands/snapshot.d.ts +0 -3
  270. package/dist/bin/commands/snapshot.d.ts.map +0 -1
  271. package/dist/bin/commands/staleness.d.ts +0 -3
  272. package/dist/bin/commands/staleness.d.ts.map +0 -1
  273. package/dist/bin/commands/status.d.ts +0 -3
  274. package/dist/bin/commands/status.d.ts.map +0 -1
  275. package/dist/bin/commands/stop.d.ts +0 -3
  276. package/dist/bin/commands/stop.d.ts.map +0 -1
  277. package/dist/bin/commands/stop.js +0 -81
  278. package/dist/bin/commands/stop.js.map +0 -1
  279. package/dist/bin/commands/supply-chain.d.ts +0 -3
  280. package/dist/bin/commands/supply-chain.d.ts.map +0 -1
  281. package/dist/bin/commands/surprising.d.ts +0 -3
  282. package/dist/bin/commands/surprising.d.ts.map +0 -1
  283. package/dist/bin/commands/sync-if-dirty.d.ts +0 -3
  284. package/dist/bin/commands/sync-if-dirty.d.ts.map +0 -1
  285. package/dist/bin/commands/sync.d.ts +0 -3
  286. package/dist/bin/commands/sync.d.ts.map +0 -1
  287. package/dist/bin/commands/typesense.d.ts +0 -3
  288. package/dist/bin/commands/typesense.d.ts.map +0 -1
  289. package/dist/bin/commands/typesense.js +0 -126
  290. package/dist/bin/commands/typesense.js.map +0 -1
  291. package/dist/bin/commands/uninit.d.ts +0 -4
  292. package/dist/bin/commands/uninit.d.ts.map +0 -1
  293. package/dist/bin/commands/unlock.d.ts +0 -3
  294. package/dist/bin/commands/unlock.d.ts.map +0 -1
  295. package/dist/bin/commands/utils.d.ts +0 -17
  296. package/dist/bin/commands/utils.d.ts.map +0 -1
  297. package/dist/bin/commands/vex.d.ts +0 -3
  298. package/dist/bin/commands/vex.d.ts.map +0 -1
  299. package/dist/bin/commands/vuln-suppress.d.ts +0 -3
  300. package/dist/bin/commands/vuln-suppress.d.ts.map +0 -1
  301. package/dist/bin/commands/vulns.d.ts +0 -3
  302. package/dist/bin/commands/vulns.d.ts.map +0 -1
  303. package/dist/bin/installer/archive.d.ts +0 -47
  304. package/dist/bin/installer/archive.d.ts.map +0 -1
  305. package/dist/bin/installer/auto-detect.d.ts +0 -16
  306. package/dist/bin/installer/auto-detect.d.ts.map +0 -1
  307. package/dist/bin/installer/caveman.d.ts +0 -12
  308. package/dist/bin/installer/caveman.d.ts.map +0 -1
  309. package/dist/bin/installer/cli-agent.d.ts +0 -20
  310. package/dist/bin/installer/cli-agent.d.ts.map +0 -1
  311. package/dist/bin/installer/common.d.ts +0 -36
  312. package/dist/bin/installer/common.d.ts.map +0 -1
  313. package/dist/bin/installer/config-prompt.d.ts +0 -13
  314. package/dist/bin/installer/config-prompt.d.ts.map +0 -1
  315. package/dist/bin/installer/dashboard.d.ts +0 -3
  316. package/dist/bin/installer/dashboard.d.ts.map +0 -1
  317. package/dist/bin/installer/detect.d.ts +0 -30
  318. package/dist/bin/installer/detect.d.ts.map +0 -1
  319. package/dist/bin/installer/hooks.d.ts +0 -8
  320. package/dist/bin/installer/hooks.d.ts.map +0 -1
  321. package/dist/bin/installer/index.d.ts +0 -12
  322. package/dist/bin/installer/index.d.ts.map +0 -1
  323. package/dist/bin/installer/instructions.d.ts +0 -14
  324. package/dist/bin/installer/instructions.d.ts.map +0 -1
  325. package/dist/bin/installer/mcp.d.ts +0 -5
  326. package/dist/bin/installer/mcp.d.ts.map +0 -1
  327. package/dist/bin/installer/prompts.d.ts +0 -45
  328. package/dist/bin/installer/prompts.d.ts.map +0 -1
  329. package/dist/bin/installer/qdrant-dashboard.d.ts +0 -4
  330. package/dist/bin/installer/qdrant-dashboard.d.ts.map +0 -1
  331. package/dist/bin/installer/steering.d.ts +0 -17
  332. package/dist/bin/installer/steering.d.ts.map +0 -1
  333. package/dist/bin/installer/targets/aider.d.ts +0 -6
  334. package/dist/bin/installer/targets/aider.d.ts.map +0 -1
  335. package/dist/bin/installer/targets/amp.d.ts +0 -6
  336. package/dist/bin/installer/targets/amp.d.ts.map +0 -1
  337. package/dist/bin/installer/targets/antigravity.d.ts +0 -13
  338. package/dist/bin/installer/targets/antigravity.d.ts.map +0 -1
  339. package/dist/bin/installer/targets/augment.d.ts +0 -6
  340. package/dist/bin/installer/targets/augment.d.ts.map +0 -1
  341. package/dist/bin/installer/targets/claude.d.ts +0 -6
  342. package/dist/bin/installer/targets/claude.d.ts.map +0 -1
  343. package/dist/bin/installer/targets/cline.d.ts +0 -13
  344. package/dist/bin/installer/targets/cline.d.ts.map +0 -1
  345. package/dist/bin/installer/targets/codex.d.ts +0 -6
  346. package/dist/bin/installer/targets/codex.d.ts.map +0 -1
  347. package/dist/bin/installer/targets/continue.d.ts +0 -12
  348. package/dist/bin/installer/targets/continue.d.ts.map +0 -1
  349. package/dist/bin/installer/targets/copilot-cli.d.ts +0 -12
  350. package/dist/bin/installer/targets/copilot-cli.d.ts.map +0 -1
  351. package/dist/bin/installer/targets/copilot.d.ts +0 -6
  352. package/dist/bin/installer/targets/copilot.d.ts.map +0 -1
  353. package/dist/bin/installer/targets/cursor.d.ts +0 -6
  354. package/dist/bin/installer/targets/cursor.d.ts.map +0 -1
  355. package/dist/bin/installer/targets/devin.d.ts +0 -13
  356. package/dist/bin/installer/targets/devin.d.ts.map +0 -1
  357. package/dist/bin/installer/targets/gemini-cli.d.ts +0 -16
  358. package/dist/bin/installer/targets/gemini-cli.d.ts.map +0 -1
  359. package/dist/bin/installer/targets/generic.d.ts +0 -59
  360. package/dist/bin/installer/targets/generic.d.ts.map +0 -1
  361. package/dist/bin/installer/targets/goose.d.ts +0 -6
  362. package/dist/bin/installer/targets/goose.d.ts.map +0 -1
  363. package/dist/bin/installer/targets/index.d.ts +0 -11
  364. package/dist/bin/installer/targets/index.d.ts.map +0 -1
  365. package/dist/bin/installer/targets/junie.d.ts +0 -13
  366. package/dist/bin/installer/targets/junie.d.ts.map +0 -1
  367. package/dist/bin/installer/targets/kilo.d.ts +0 -12
  368. package/dist/bin/installer/targets/kilo.d.ts.map +0 -1
  369. package/dist/bin/installer/targets/kiro.d.ts +0 -5
  370. package/dist/bin/installer/targets/kiro.d.ts.map +0 -1
  371. package/dist/bin/installer/targets/opencode.d.ts +0 -13
  372. package/dist/bin/installer/targets/opencode.d.ts.map +0 -1
  373. package/dist/bin/installer/targets/openhands.d.ts +0 -6
  374. package/dist/bin/installer/targets/openhands.d.ts.map +0 -1
  375. package/dist/bin/installer/targets/qoder.d.ts +0 -12
  376. package/dist/bin/installer/targets/qoder.d.ts.map +0 -1
  377. package/dist/bin/installer/targets/qwen.d.ts +0 -12
  378. package/dist/bin/installer/targets/qwen.d.ts.map +0 -1
  379. package/dist/bin/installer/targets/replit.d.ts +0 -6
  380. package/dist/bin/installer/targets/replit.d.ts.map +0 -1
  381. package/dist/bin/installer/targets/roo.d.ts +0 -13
  382. package/dist/bin/installer/targets/roo.d.ts.map +0 -1
  383. package/dist/bin/installer/targets/tabnine.d.ts +0 -6
  384. package/dist/bin/installer/targets/tabnine.d.ts.map +0 -1
  385. package/dist/bin/installer/targets/trae.d.ts +0 -6
  386. package/dist/bin/installer/targets/trae.d.ts.map +0 -1
  387. package/dist/bin/installer/targets/warp.d.ts +0 -12
  388. package/dist/bin/installer/targets/warp.d.ts.map +0 -1
  389. package/dist/bin/installer/targets/windsurf.d.ts +0 -13
  390. package/dist/bin/installer/targets/windsurf.d.ts.map +0 -1
  391. package/dist/bin/kirograph.d.ts +0 -6
  392. package/dist/bin/kirograph.d.ts.map +0 -1
  393. package/dist/bin/progress.d.ts +0 -29
  394. package/dist/bin/progress.d.ts.map +0 -1
  395. package/dist/bin/ui.d.ts +0 -11
  396. package/dist/bin/ui.d.ts.map +0 -1
  397. package/dist/compression/filters/aws.d.ts +0 -9
  398. package/dist/compression/filters/aws.d.ts.map +0 -1
  399. package/dist/compression/filters/docker.d.ts +0 -6
  400. package/dist/compression/filters/docker.d.ts.map +0 -1
  401. package/dist/compression/filters/files.d.ts +0 -6
  402. package/dist/compression/filters/files.d.ts.map +0 -1
  403. package/dist/compression/filters/generic.d.ts +0 -7
  404. package/dist/compression/filters/generic.d.ts.map +0 -1
  405. package/dist/compression/filters/git.d.ts +0 -6
  406. package/dist/compression/filters/git.d.ts.map +0 -1
  407. package/dist/compression/filters/github.d.ts +0 -6
  408. package/dist/compression/filters/github.d.ts.map +0 -1
  409. package/dist/compression/filters/lint.d.ts +0 -6
  410. package/dist/compression/filters/lint.d.ts.map +0 -1
  411. package/dist/compression/filters/misc.d.ts +0 -6
  412. package/dist/compression/filters/misc.d.ts.map +0 -1
  413. package/dist/compression/filters/package.d.ts +0 -6
  414. package/dist/compression/filters/package.d.ts.map +0 -1
  415. package/dist/compression/filters/test.d.ts +0 -6
  416. package/dist/compression/filters/test.d.ts.map +0 -1
  417. package/dist/compression/index.d.ts +0 -29
  418. package/dist/compression/index.d.ts.map +0 -1
  419. package/dist/compression/naive-cost.d.ts +0 -26
  420. package/dist/compression/naive-cost.d.ts.map +0 -1
  421. package/dist/compression/tracker.d.ts +0 -155
  422. package/dist/compression/tracker.d.ts.map +0 -1
  423. package/dist/compression/types.d.ts +0 -49
  424. package/dist/compression/types.d.ts.map +0 -1
  425. package/dist/config.d.ts +0 -138
  426. package/dist/config.d.ts.map +0 -1
  427. package/dist/context/index.d.ts +0 -61
  428. package/dist/context/index.d.ts.map +0 -1
  429. package/dist/core/file-tree.d.ts +0 -15
  430. package/dist/core/file-tree.d.ts.map +0 -1
  431. package/dist/core/lock-manager.d.ts +0 -22
  432. package/dist/core/lock-manager.d.ts.map +0 -1
  433. package/dist/core/pipeline.d.ts +0 -40
  434. package/dist/core/pipeline.d.ts.map +0 -1
  435. package/dist/core/snapshot.d.ts +0 -58
  436. package/dist/core/snapshot.d.ts.map +0 -1
  437. package/dist/data/filters.d.ts +0 -23
  438. package/dist/data/filters.d.ts.map +0 -1
  439. package/dist/data/indexer.d.ts +0 -25
  440. package/dist/data/indexer.d.ts.map +0 -1
  441. package/dist/data/linker.d.ts +0 -37
  442. package/dist/data/linker.d.ts.map +0 -1
  443. package/dist/data/linker.test.js +0 -60
  444. package/dist/data/linker.test.js.map +0 -7
  445. package/dist/data/lint.d.ts +0 -27
  446. package/dist/data/lint.d.ts.map +0 -1
  447. package/dist/data/parsers/__fixtures__/pdf-inspector-stub.js +0 -41
  448. package/dist/data/parsers/__fixtures__/pdf-inspector-stub.js.map +0 -7
  449. package/dist/data/parsers/csv.d.ts +0 -11
  450. package/dist/data/parsers/csv.d.ts.map +0 -1
  451. package/dist/data/parsers/excel.d.ts +0 -10
  452. package/dist/data/parsers/excel.d.ts.map +0 -1
  453. package/dist/data/parsers/index.d.ts +0 -28
  454. package/dist/data/parsers/index.d.ts.map +0 -1
  455. package/dist/data/parsers/json-array.d.ts +0 -9
  456. package/dist/data/parsers/json-array.d.ts.map +0 -1
  457. package/dist/data/parsers/jsonl.d.ts +0 -9
  458. package/dist/data/parsers/jsonl.d.ts.map +0 -1
  459. package/dist/data/parsers/parquet.d.ts +0 -10
  460. package/dist/data/parsers/parquet.d.ts.map +0 -1
  461. package/dist/data/parsers/pdf.test.js +0 -125
  462. package/dist/data/parsers/pdf.test.js.map +0 -7
  463. package/dist/data/pixelrag-bridge.js +0 -93
  464. package/dist/data/pixelrag-bridge.js.map +0 -7
  465. package/dist/data/pixelrag-manager.js +0 -416
  466. package/dist/data/pixelrag-manager.js.map +0 -7
  467. package/dist/data/profiler.d.ts +0 -29
  468. package/dist/data/profiler.d.ts.map +0 -1
  469. package/dist/data/queries.d.ts +0 -95
  470. package/dist/data/queries.d.ts.map +0 -1
  471. package/dist/data/types.d.ts +0 -103
  472. package/dist/data/types.d.ts.map +0 -1
  473. package/dist/db/database.d.ts +0 -190
  474. package/dist/db/database.d.ts.map +0 -1
  475. package/dist/docs/formats/asciidoc.d.ts +0 -9
  476. package/dist/docs/formats/asciidoc.d.ts.map +0 -1
  477. package/dist/docs/formats/html.d.ts +0 -10
  478. package/dist/docs/formats/html.d.ts.map +0 -1
  479. package/dist/docs/formats/index.d.ts +0 -31
  480. package/dist/docs/formats/index.d.ts.map +0 -1
  481. package/dist/docs/formats/markdown.d.ts +0 -11
  482. package/dist/docs/formats/markdown.d.ts.map +0 -1
  483. package/dist/docs/formats/openapi.d.ts +0 -17
  484. package/dist/docs/formats/openapi.d.ts.map +0 -1
  485. package/dist/docs/formats/org.d.ts +0 -9
  486. package/dist/docs/formats/org.d.ts.map +0 -1
  487. package/dist/docs/formats/plaintext.d.ts +0 -11
  488. package/dist/docs/formats/plaintext.d.ts.map +0 -1
  489. package/dist/docs/formats/rdoc.d.ts +0 -10
  490. package/dist/docs/formats/rdoc.d.ts.map +0 -1
  491. package/dist/docs/formats/rst.d.ts +0 -11
  492. package/dist/docs/formats/rst.d.ts.map +0 -1
  493. package/dist/docs/indexer.d.ts +0 -49
  494. package/dist/docs/indexer.d.ts.map +0 -1
  495. package/dist/docs/linker.d.ts +0 -30
  496. package/dist/docs/linker.d.ts.map +0 -1
  497. package/dist/docs/lint.d.ts +0 -27
  498. package/dist/docs/lint.d.ts.map +0 -1
  499. package/dist/docs/queries.d.ts +0 -78
  500. package/dist/docs/queries.d.ts.map +0 -1
  501. package/dist/docs/section-id.d.ts +0 -48
  502. package/dist/docs/section-id.d.ts.map +0 -1
  503. package/dist/docs/summarizer.d.ts +0 -13
  504. package/dist/docs/summarizer.d.ts.map +0 -1
  505. package/dist/docs/types.d.ts +0 -71
  506. package/dist/docs/types.d.ts.map +0 -1
  507. package/dist/docs/vectors.d.ts +0 -54
  508. package/dist/docs/vectors.d.ts.map +0 -1
  509. package/dist/errors.d.ts +0 -49
  510. package/dist/errors.d.ts.map +0 -1
  511. package/dist/extraction/extractor.d.ts +0 -29
  512. package/dist/extraction/extractor.d.ts.map +0 -1
  513. package/dist/extraction/grammars.d.ts +0 -54
  514. package/dist/extraction/grammars.d.ts.map +0 -1
  515. package/dist/extraction/languages.d.ts +0 -9
  516. package/dist/extraction/languages.d.ts.map +0 -1
  517. package/dist/extraction/notebook.d.ts +0 -14
  518. package/dist/extraction/notebook.d.ts.map +0 -1
  519. package/dist/frameworks/amplify.d.ts +0 -9
  520. package/dist/frameworks/amplify.d.ts.map +0 -1
  521. package/dist/frameworks/angular.d.ts +0 -9
  522. package/dist/frameworks/angular.d.ts.map +0 -1
  523. package/dist/frameworks/ansible.d.ts +0 -8
  524. package/dist/frameworks/ansible.d.ts.map +0 -1
  525. package/dist/frameworks/cloudformation.d.ts +0 -9
  526. package/dist/frameworks/cloudformation.d.ts.map +0 -1
  527. package/dist/frameworks/csharp.d.ts +0 -8
  528. package/dist/frameworks/csharp.d.ts.map +0 -1
  529. package/dist/frameworks/docker.d.ts +0 -9
  530. package/dist/frameworks/docker.d.ts.map +0 -1
  531. package/dist/frameworks/elixir.d.ts +0 -6
  532. package/dist/frameworks/elixir.d.ts.map +0 -1
  533. package/dist/frameworks/express.d.ts +0 -8
  534. package/dist/frameworks/express.d.ts.map +0 -1
  535. package/dist/frameworks/flutter.d.ts +0 -12
  536. package/dist/frameworks/flutter.d.ts.map +0 -1
  537. package/dist/frameworks/go.d.ts +0 -8
  538. package/dist/frameworks/go.d.ts.map +0 -1
  539. package/dist/frameworks/iac.d.ts +0 -10
  540. package/dist/frameworks/iac.d.ts.map +0 -1
  541. package/dist/frameworks/index.d.ts +0 -44
  542. package/dist/frameworks/index.d.ts.map +0 -1
  543. package/dist/frameworks/java.d.ts +0 -8
  544. package/dist/frameworks/java.d.ts.map +0 -1
  545. package/dist/frameworks/kubernetes.d.ts +0 -9
  546. package/dist/frameworks/kubernetes.d.ts.map +0 -1
  547. package/dist/frameworks/laravel.d.ts +0 -9
  548. package/dist/frameworks/laravel.d.ts.map +0 -1
  549. package/dist/frameworks/pulumi.d.ts +0 -9
  550. package/dist/frameworks/pulumi.d.ts.map +0 -1
  551. package/dist/frameworks/python.d.ts +0 -10
  552. package/dist/frameworks/python.d.ts.map +0 -1
  553. package/dist/frameworks/react.d.ts +0 -9
  554. package/dist/frameworks/react.d.ts.map +0 -1
  555. package/dist/frameworks/ruby.d.ts +0 -8
  556. package/dist/frameworks/ruby.d.ts.map +0 -1
  557. package/dist/frameworks/rust.d.ts +0 -8
  558. package/dist/frameworks/rust.d.ts.map +0 -1
  559. package/dist/frameworks/scala.d.ts +0 -6
  560. package/dist/frameworks/scala.d.ts.map +0 -1
  561. package/dist/frameworks/solidity.d.ts +0 -6
  562. package/dist/frameworks/solidity.d.ts.map +0 -1
  563. package/dist/frameworks/svelte.d.ts +0 -8
  564. package/dist/frameworks/svelte.d.ts.map +0 -1
  565. package/dist/frameworks/swift.d.ts +0 -10
  566. package/dist/frameworks/swift.d.ts.map +0 -1
  567. package/dist/frameworks/terraform.d.ts +0 -14
  568. package/dist/frameworks/terraform.d.ts.map +0 -1
  569. package/dist/frameworks/types.d.ts +0 -37
  570. package/dist/frameworks/types.d.ts.map +0 -1
  571. package/dist/frameworks/vue.d.ts +0 -7
  572. package/dist/frameworks/vue.d.ts.map +0 -1
  573. package/dist/graph/communities.d.ts +0 -43
  574. package/dist/graph/communities.d.ts.map +0 -1
  575. package/dist/graph/flows.d.ts +0 -55
  576. package/dist/graph/flows.d.ts.map +0 -1
  577. package/dist/graph/queries.d.ts +0 -53
  578. package/dist/graph/queries.d.ts.map +0 -1
  579. package/dist/graph/refactor.d.ts +0 -43
  580. package/dist/graph/refactor.d.ts.map +0 -1
  581. package/dist/graph/traversal.d.ts +0 -35
  582. package/dist/graph/traversal.d.ts.map +0 -1
  583. package/dist/index.d.ts +0 -134
  584. package/dist/index.d.ts.map +0 -1
  585. package/dist/installer/index.d.ts +0 -10
  586. package/dist/installer/index.d.ts.map +0 -1
  587. package/dist/installer/index.js +0 -526
  588. package/dist/installer/index.js.map +0 -1
  589. package/dist/mcp/cache.d.ts +0 -69
  590. package/dist/mcp/cache.d.ts.map +0 -1
  591. package/dist/mcp/read-modes.d.ts +0 -31
  592. package/dist/mcp/read-modes.d.ts.map +0 -1
  593. package/dist/mcp/server.d.ts +0 -17
  594. package/dist/mcp/server.d.ts.map +0 -1
  595. package/dist/mcp/tool-names.d.ts +0 -2
  596. package/dist/mcp/tool-names.d.ts.map +0 -1
  597. package/dist/mcp/tools.d.ts +0 -49
  598. package/dist/mcp/tools.d.ts.map +0 -1
  599. package/dist/mcp/transport.d.ts +0 -29
  600. package/dist/mcp/transport.d.ts.map +0 -1
  601. package/dist/memory/compress.d.ts +0 -19
  602. package/dist/memory/compress.d.ts.map +0 -1
  603. package/dist/memory/database.d.ts +0 -92
  604. package/dist/memory/database.d.ts.map +0 -1
  605. package/dist/memory/index.d.ts +0 -71
  606. package/dist/memory/index.d.ts.map +0 -1
  607. package/dist/memory/symbols.d.ts +0 -21
  608. package/dist/memory/symbols.d.ts.map +0 -1
  609. package/dist/memory/types.d.ts +0 -78
  610. package/dist/memory/types.d.ts.map +0 -1
  611. package/dist/memory/vectors.d.ts +0 -43
  612. package/dist/memory/vectors.d.ts.map +0 -1
  613. package/dist/patterns/graph.d.ts +0 -16
  614. package/dist/patterns/graph.d.ts.map +0 -1
  615. package/dist/patterns/index.d.ts +0 -4
  616. package/dist/patterns/index.d.ts.map +0 -1
  617. package/dist/patterns/indexer.d.ts +0 -15
  618. package/dist/patterns/indexer.d.ts.map +0 -1
  619. package/dist/patterns/loader.d.ts +0 -18
  620. package/dist/patterns/loader.d.ts.map +0 -1
  621. package/dist/patterns/runner.d.ts +0 -42
  622. package/dist/patterns/runner.d.ts.map +0 -1
  623. package/dist/patterns/types.d.ts +0 -27
  624. package/dist/patterns/types.d.ts.map +0 -1
  625. package/dist/resolution/bridges/android-rn.d.ts +0 -13
  626. package/dist/resolution/bridges/android-rn.d.ts.map +0 -1
  627. package/dist/resolution/bridges/expo-modules.d.ts +0 -10
  628. package/dist/resolution/bridges/expo-modules.d.ts.map +0 -1
  629. package/dist/resolution/bridges/flutter-channel.d.ts +0 -14
  630. package/dist/resolution/bridges/flutter-channel.d.ts.map +0 -1
  631. package/dist/resolution/bridges/index.d.ts +0 -40
  632. package/dist/resolution/bridges/index.d.ts.map +0 -1
  633. package/dist/resolution/bridges/native-events.d.ts +0 -10
  634. package/dist/resolution/bridges/native-events.d.ts.map +0 -1
  635. package/dist/resolution/bridges/native-views.d.ts +0 -13
  636. package/dist/resolution/bridges/native-views.d.ts.map +0 -1
  637. package/dist/resolution/bridges/react-native.d.ts +0 -9
  638. package/dist/resolution/bridges/react-native.d.ts.map +0 -1
  639. package/dist/resolution/bridges/swift-objc.d.ts +0 -14
  640. package/dist/resolution/bridges/swift-objc.d.ts.map +0 -1
  641. package/dist/resolution/bridges/turbomodules.d.ts +0 -10
  642. package/dist/resolution/bridges/turbomodules.d.ts.map +0 -1
  643. package/dist/resolution/index.d.ts +0 -81
  644. package/dist/resolution/index.d.ts.map +0 -1
  645. package/dist/resolution/name-matcher.d.ts +0 -25
  646. package/dist/resolution/name-matcher.d.ts.map +0 -1
  647. package/dist/scripts/postinstall.js +0 -64
  648. package/dist/search/query-utils.d.ts +0 -21
  649. package/dist/search/query-utils.d.ts.map +0 -1
  650. package/dist/search/searcher.d.ts +0 -15
  651. package/dist/search/searcher.d.ts.map +0 -1
  652. package/dist/security/attack-surface.d.ts +0 -46
  653. package/dist/security/attack-surface.d.ts.map +0 -1
  654. package/dist/security/context-warnings.d.ts +0 -40
  655. package/dist/security/context-warnings.d.ts.map +0 -1
  656. package/dist/security/data-flows.d.ts +0 -33
  657. package/dist/security/data-flows.d.ts.map +0 -1
  658. package/dist/security/dep-confusion.d.ts +0 -23
  659. package/dist/security/dep-confusion.d.ts.map +0 -1
  660. package/dist/security/errors.d.ts +0 -16
  661. package/dist/security/errors.d.ts.map +0 -1
  662. package/dist/security/export/fix-suggestions.d.ts +0 -21
  663. package/dist/security/export/fix-suggestions.d.ts.map +0 -1
  664. package/dist/security/export/sbom.d.ts +0 -33
  665. package/dist/security/export/sbom.d.ts.map +0 -1
  666. package/dist/security/export/serialization.d.ts +0 -62
  667. package/dist/security/export/serialization.d.ts.map +0 -1
  668. package/dist/security/export/vex.d.ts +0 -58
  669. package/dist/security/export/vex.d.ts.map +0 -1
  670. package/dist/security/index.d.ts +0 -21
  671. package/dist/security/index.d.ts.map +0 -1
  672. package/dist/security/integrator.d.ts +0 -63
  673. package/dist/security/integrator.d.ts.map +0 -1
  674. package/dist/security/license.d.ts +0 -33
  675. package/dist/security/license.d.ts.map +0 -1
  676. package/dist/security/manifest/adapter.d.ts +0 -92
  677. package/dist/security/manifest/adapter.d.ts.map +0 -1
  678. package/dist/security/manifest/parser.d.ts +0 -73
  679. package/dist/security/manifest/parser.d.ts.map +0 -1
  680. package/dist/security/manifest/plugins/cargo.d.ts +0 -11
  681. package/dist/security/manifest/plugins/cargo.d.ts.map +0 -1
  682. package/dist/security/manifest/plugins/composer.d.ts +0 -11
  683. package/dist/security/manifest/plugins/composer.d.ts.map +0 -1
  684. package/dist/security/manifest/plugins/go.d.ts +0 -12
  685. package/dist/security/manifest/plugins/go.d.ts.map +0 -1
  686. package/dist/security/manifest/plugins/gradle.d.ts +0 -12
  687. package/dist/security/manifest/plugins/gradle.d.ts.map +0 -1
  688. package/dist/security/manifest/plugins/hex.d.ts +0 -11
  689. package/dist/security/manifest/plugins/hex.d.ts.map +0 -1
  690. package/dist/security/manifest/plugins/maven.d.ts +0 -11
  691. package/dist/security/manifest/plugins/maven.d.ts.map +0 -1
  692. package/dist/security/manifest/plugins/npm.d.ts +0 -11
  693. package/dist/security/manifest/plugins/npm.d.ts.map +0 -1
  694. package/dist/security/manifest/plugins/nuget.d.ts +0 -12
  695. package/dist/security/manifest/plugins/nuget.d.ts.map +0 -1
  696. package/dist/security/manifest/plugins/pip.d.ts +0 -11
  697. package/dist/security/manifest/plugins/pip.d.ts.map +0 -1
  698. package/dist/security/manifest/plugins/pubspec.d.ts +0 -11
  699. package/dist/security/manifest/plugins/pubspec.d.ts.map +0 -1
  700. package/dist/security/manifest/plugins/pyproject.d.ts +0 -3
  701. package/dist/security/manifest/plugins/pyproject.d.ts.map +0 -1
  702. package/dist/security/manifest/plugins/rubygems.d.ts +0 -11
  703. package/dist/security/manifest/plugins/rubygems.d.ts.map +0 -1
  704. package/dist/security/manifest/plugins/swift.d.ts +0 -11
  705. package/dist/security/manifest/plugins/swift.d.ts.map +0 -1
  706. package/dist/security/owasp.d.ts +0 -16
  707. package/dist/security/owasp.d.ts.map +0 -1
  708. package/dist/security/pipeline.d.ts +0 -37
  709. package/dist/security/pipeline.d.ts.map +0 -1
  710. package/dist/security/reachability.d.ts +0 -67
  711. package/dist/security/reachability.d.ts.map +0 -1
  712. package/dist/security/remediation.d.ts +0 -51
  713. package/dist/security/remediation.d.ts.map +0 -1
  714. package/dist/security/secrets.d.ts +0 -38
  715. package/dist/security/secrets.d.ts.map +0 -1
  716. package/dist/security/staleness.d.ts +0 -43
  717. package/dist/security/staleness.d.ts.map +0 -1
  718. package/dist/security/supply-chain.d.ts +0 -34
  719. package/dist/security/supply-chain.d.ts.map +0 -1
  720. package/dist/security/suppressions.d.ts +0 -18
  721. package/dist/security/suppressions.d.ts.map +0 -1
  722. package/dist/security/types.d.ts +0 -144
  723. package/dist/security/types.d.ts.map +0 -1
  724. package/dist/security/vuln/client.d.ts +0 -90
  725. package/dist/security/vuln/client.d.ts.map +0 -1
  726. package/dist/security/vuln/epss-client.d.ts +0 -26
  727. package/dist/security/vuln/epss-client.d.ts.map +0 -1
  728. package/dist/security/vuln/index.d.ts +0 -6
  729. package/dist/security/vuln/index.d.ts.map +0 -1
  730. package/dist/security/vuln/osv-adapter.d.ts +0 -58
  731. package/dist/security/vuln/osv-adapter.d.ts.map +0 -1
  732. package/dist/security/vuln/types.d.ts +0 -29
  733. package/dist/security/vuln/types.d.ts.map +0 -1
  734. package/dist/sync/index.d.ts +0 -35
  735. package/dist/sync/index.d.ts.map +0 -1
  736. package/dist/types.d.ts +0 -137
  737. package/dist/types.d.ts.map +0 -1
  738. package/dist/utils.d.ts +0 -52
  739. package/dist/utils.d.ts.map +0 -1
  740. package/dist/vectors/index.d.ts +0 -79
  741. package/dist/vectors/index.d.ts.map +0 -1
  742. package/dist/vectors/lancedb-index.d.ts +0 -50
  743. package/dist/vectors/lancedb-index.d.ts.map +0 -1
  744. package/dist/vectors/orama-index.d.ts +0 -54
  745. package/dist/vectors/orama-index.d.ts.map +0 -1
  746. package/dist/vectors/pglite-index.d.ts +0 -53
  747. package/dist/vectors/pglite-index.d.ts.map +0 -1
  748. package/dist/vectors/qdrant-index.d.ts +0 -77
  749. package/dist/vectors/qdrant-index.d.ts.map +0 -1
  750. package/dist/vectors/typesense-index.d.ts +0 -75
  751. package/dist/vectors/typesense-index.d.ts.map +0 -1
  752. package/dist/vectors/vec-index.d.ts +0 -52
  753. package/dist/vectors/vec-index.d.ts.map +0 -1
@@ -1,93 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var pixelrag_bridge_exports = {};
20
- __export(pixelrag_bridge_exports, {
21
- getStatus: () => getStatus,
22
- isServerRunning: () => isServerRunning,
23
- searchVisual: () => searchVisual
24
- });
25
- module.exports = __toCommonJS(pixelrag_bridge_exports);
26
- async function isServerRunning(endpoint) {
27
- try {
28
- const res = await fetch(`${endpoint}/health`, { signal: AbortSignal.timeout(2e3) });
29
- return res.ok;
30
- } catch {
31
- return false;
32
- }
33
- }
34
- async function searchVisual(endpoint, query, opts = {}) {
35
- const limit = opts.limit ?? 3;
36
- const minTileHeight = opts.minTileHeight ?? 50;
37
- const idMap = opts.idMap ?? {};
38
- const res = await fetch(`${endpoint}/search`, {
39
- method: "POST",
40
- headers: { "Content-Type": "application/json" },
41
- body: JSON.stringify({ queries: [{ text: query }], n_docs: limit }),
42
- signal: AbortSignal.timeout(3e4)
43
- });
44
- if (!res.ok) {
45
- const body = await res.text().catch(() => "");
46
- throw new Error(`PixelRAG /search returned ${res.status}: ${body}`);
47
- }
48
- const data = await res.json();
49
- const hits = data.results?.[0]?.hits ?? [];
50
- const out = [];
51
- for (const hit of hits) {
52
- const h = hit;
53
- const tileHeight = typeof h.tile_height === "number" ? h.tile_height : 0;
54
- if (tileHeight < minTileHeight) continue;
55
- const articleId = String(h.article_id ?? h.url ?? "");
56
- const filePath = idMap[articleId] ?? articleId;
57
- out.push({
58
- score: typeof h.score === "number" ? h.score : 0,
59
- filePath,
60
- tileIndex: typeof h.tile_index === "number" ? h.tile_index : 0,
61
- chunkIndex: typeof h.chunk_index === "number" ? h.chunk_index : 0,
62
- yOffset: typeof h.y_offset === "number" ? h.y_offset : 0,
63
- chunkHeight: tileHeight,
64
- chunkImagePath: typeof h.path === "string" ? h.path : ""
65
- });
66
- if (out.length >= limit) break;
67
- }
68
- return out;
69
- }
70
- async function getStatus(endpoint, indexPath) {
71
- const running = await isServerRunning(endpoint);
72
- let tileCount = null;
73
- let lastBuilt = null;
74
- if (running) {
75
- try {
76
- const res = await fetch(`${endpoint}/status`, { signal: AbortSignal.timeout(3e3) });
77
- if (res.ok) {
78
- const data = await res.json();
79
- if (typeof data.tile_count === "number") tileCount = data.tile_count;
80
- if (typeof data.built_at === "number") lastBuilt = data.built_at * 1e3;
81
- }
82
- } catch {
83
- }
84
- }
85
- return { running, endpoint, indexPath, tileCount, lastBuilt };
86
- }
87
- // Annotate the CommonJS export names for ESM import in node:
88
- 0 && (module.exports = {
89
- getStatus,
90
- isServerRunning,
91
- searchVisual
92
- });
93
- //# sourceMappingURL=pixelrag-bridge.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/data/pixelrag-bridge.ts"],
4
- "sourcesContent": ["/**\n * PixelRAG HTTP bridge \u2014 pure client, no lifecycle management.\n * All lifecycle (install, index build, server spawn) lives in pixelrag-manager.ts.\n *\n * EXPERIMENTAL: This module is experimental and may change without notice.\n */\n\nimport type { VisualSearchResult, PixelRAGStatus } from './types';\n\nexport async function isServerRunning(endpoint: string): Promise<boolean> {\n try {\n const res = await fetch(`${endpoint}/health`, { signal: AbortSignal.timeout(2000) });\n return res.ok;\n } catch {\n return false;\n }\n}\n\n/**\n * Actual /search response shape (from live testing with pixelrag 0.3.x):\n * { \"results\": [ { \"hits\": [ { score, article_id, tile_index, chunk_index,\n * y_offset, tile_height, path, url, \u2026 } ] } ] }\n *\n * @param idMap Optional mapping from article_id (string) \u2192 original PDF absolute path.\n * Loaded from <kirographDir>/pixelrag-id-map.json by the caller.\n */\nexport async function searchVisual(\n endpoint: string,\n query: string,\n opts: { limit?: number; minTileHeight?: number; idMap?: Record<string, string> } = {},\n): Promise<VisualSearchResult[]> {\n const limit = opts.limit ?? 3;\n const minTileHeight = opts.minTileHeight ?? 50;\n const idMap = opts.idMap ?? {};\n\n const res = await fetch(`${endpoint}/search`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ queries: [{ text: query }], n_docs: limit }),\n signal: AbortSignal.timeout(30_000),\n });\n\n if (!res.ok) {\n const body = await res.text().catch(() => '');\n throw new Error(`PixelRAG /search returned ${res.status}: ${body}`);\n }\n\n // results[0].hits contains the actual hit list\n const data = await res.json() as { results?: { hits?: unknown[] }[] };\n const hits = data.results?.[0]?.hits ?? [];\n\n const out: VisualSearchResult[] = [];\n for (const hit of hits) {\n const h = hit as Record<string, unknown>;\n\n const tileHeight = typeof h.tile_height === 'number' ? h.tile_height : 0;\n if (tileHeight < minTileHeight) continue;\n\n const articleId = String(h.article_id ?? h.url ?? '');\n const filePath = idMap[articleId] ?? articleId;\n\n out.push({\n score: typeof h.score === 'number' ? h.score : 0,\n filePath,\n tileIndex: typeof h.tile_index === 'number' ? h.tile_index : 0,\n chunkIndex: typeof h.chunk_index === 'number' ? h.chunk_index : 0,\n yOffset: typeof h.y_offset === 'number' ? h.y_offset : 0,\n chunkHeight: tileHeight,\n chunkImagePath: typeof h.path === 'string' ? h.path : '',\n });\n\n if (out.length >= limit) break;\n }\n\n return out;\n}\n\nexport async function getStatus(endpoint: string, indexPath: string | null): Promise<PixelRAGStatus> {\n const running = await isServerRunning(endpoint);\n let tileCount: number | null = null;\n let lastBuilt: number | null = null;\n\n if (running) {\n try {\n const res = await fetch(`${endpoint}/status`, { signal: AbortSignal.timeout(3000) });\n if (res.ok) {\n const data = await res.json() as Record<string, unknown>;\n if (typeof data.tile_count === 'number') tileCount = data.tile_count;\n if (typeof data.built_at === 'number') lastBuilt = data.built_at * 1000;\n }\n } catch { /* best-effort */ }\n }\n\n return { running, endpoint, indexPath, tileCount, lastBuilt };\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,eAAsB,gBAAgB,UAAoC;AACxE,MAAI;AACF,UAAM,MAAM,MAAM,MAAM,GAAG,QAAQ,WAAW,EAAE,QAAQ,YAAY,QAAQ,GAAI,EAAE,CAAC;AACnF,WAAO,IAAI;AAAA,EACb,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAUA,eAAsB,aACpB,UACA,OACA,OAAmF,CAAC,GACrD;AAC/B,QAAM,QAAgB,KAAK,SAAS;AACpC,QAAM,gBAAgB,KAAK,iBAAiB;AAC5C,QAAM,QAAgB,KAAK,SAAS,CAAC;AAErC,QAAM,MAAM,MAAM,MAAM,GAAG,QAAQ,WAAW;AAAA,IAC5C,QAAQ;AAAA,IACR,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAC9C,MAAM,KAAK,UAAU,EAAE,SAAS,CAAC,EAAE,MAAM,MAAM,CAAC,GAAG,QAAQ,MAAM,CAAC;AAAA,IAClE,QAAQ,YAAY,QAAQ,GAAM;AAAA,EACpC,CAAC;AAED,MAAI,CAAC,IAAI,IAAI;AACX,UAAM,OAAO,MAAM,IAAI,KAAK,EAAE,MAAM,MAAM,EAAE;AAC5C,UAAM,IAAI,MAAM,6BAA6B,IAAI,MAAM,KAAK,IAAI,EAAE;AAAA,EACpE;AAGA,QAAM,OAAO,MAAM,IAAI,KAAK;AAC5B,QAAM,OAAO,KAAK,UAAU,CAAC,GAAG,QAAQ,CAAC;AAEzC,QAAM,MAA4B,CAAC;AACnC,aAAW,OAAO,MAAM;AACtB,UAAM,IAAI;AAEV,UAAM,aAAa,OAAO,EAAE,gBAAgB,WAAW,EAAE,cAAc;AACvE,QAAI,aAAa,cAAe;AAEhC,UAAM,YAAY,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE;AACpD,UAAM,WAAY,MAAM,SAAS,KAAK;AAEtC,QAAI,KAAK;AAAA,MACP,OAAgB,OAAO,EAAE,UAAU,WAAW,EAAE,QAAQ;AAAA,MACxD;AAAA,MACA,WAAgB,OAAO,EAAE,eAAiB,WAAW,EAAE,aAAe;AAAA,MACtE,YAAgB,OAAO,EAAE,gBAAiB,WAAW,EAAE,cAAe;AAAA,MACtE,SAAgB,OAAO,EAAE,aAAiB,WAAW,EAAE,WAAe;AAAA,MACtE,aAAgB;AAAA,MAChB,gBAAgB,OAAO,EAAE,SAAS,WAAW,EAAE,OAAO;AAAA,IACxD,CAAC;AAED,QAAI,IAAI,UAAU,MAAO;AAAA,EAC3B;AAEA,SAAO;AACT;AAEA,eAAsB,UAAU,UAAkB,WAAmD;AACnG,QAAM,UAAU,MAAM,gBAAgB,QAAQ;AAC9C,MAAI,YAA2B;AAC/B,MAAI,YAA2B;AAE/B,MAAI,SAAS;AACX,QAAI;AACF,YAAM,MAAM,MAAM,MAAM,GAAG,QAAQ,WAAW,EAAE,QAAQ,YAAY,QAAQ,GAAI,EAAE,CAAC;AACnF,UAAI,IAAI,IAAI;AACV,cAAM,OAAO,MAAM,IAAI,KAAK;AAC5B,YAAI,OAAO,KAAK,eAAe,SAAU,aAAY,KAAK;AAC1D,YAAI,OAAO,KAAK,aAAa,SAAU,aAAY,KAAK,WAAW;AAAA,MACrE;AAAA,IACF,QAAQ;AAAA,IAAoB;AAAA,EAC9B;AAEA,SAAO,EAAE,SAAS,UAAU,WAAW,WAAW,UAAU;AAC9D;",
6
- "names": []
7
- }
@@ -1,416 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var pixelrag_manager_exports = {};
30
- __export(pixelrag_manager_exports, {
31
- buildIndex: () => buildIndex,
32
- checkRam: () => checkRam,
33
- detectPython: () => detectPython,
34
- detectWSL2: () => detectWSL2,
35
- downloadPixelRAGModel: () => downloadPixelRAGModel,
36
- ensurePixelRAGInstalled: () => ensurePixelRAGInstalled,
37
- ensurePython: () => ensurePython,
38
- getFlaggedPdfs: () => getFlaggedPdfs,
39
- installPixelRAG: () => installPixelRAG,
40
- isPixelRAGInstalled: () => isPixelRAGInstalled,
41
- startServer: () => startServer
42
- });
43
- module.exports = __toCommonJS(pixelrag_manager_exports);
44
- var fs = __toESM(require("fs"));
45
- var os = __toESM(require("os"));
46
- var path = __toESM(require("path"));
47
- var import_child_process = require("child_process");
48
- const PIXELRAG_ENV = {
49
- ...process.env,
50
- OMP_NUM_THREADS: "1",
51
- KMP_DUPLICATE_LIB_OK: "TRUE"
52
- };
53
- function detectPython() {
54
- for (const bin of ["python3", "python"]) {
55
- try {
56
- const result = (0, import_child_process.spawnSync)(bin, ["--version"], { encoding: "utf8", timeout: 5e3 });
57
- if (result.status !== 0) continue;
58
- const out = (result.stdout + result.stderr).trim();
59
- const match = out.match(/Python (\d+)\.(\d+)/);
60
- if (!match) continue;
61
- const [, major, minor] = match;
62
- if (Number(major) >= 3 && Number(minor) >= 12) return bin;
63
- } catch {
64
- }
65
- }
66
- return null;
67
- }
68
- function ensurePython() {
69
- const bin = detectPython();
70
- if (!bin) {
71
- throw new Error(
72
- "PixelRAG (visual PDF search) requires Python 3.12+.\nInstall from https://python.org or via brew: brew install python@3.12"
73
- );
74
- }
75
- return bin;
76
- }
77
- function getPixelRAGBin(python) {
78
- try {
79
- const exe = (0, import_child_process.spawnSync)(python, ["-c", "import sys; print(sys.executable)"], {
80
- encoding: "utf8",
81
- timeout: 5e3
82
- }).stdout?.trim() ?? "";
83
- if (exe) {
84
- const candidate = path.join(path.dirname(exe), "pixelrag");
85
- if (fs.existsSync(candidate)) return candidate;
86
- }
87
- } catch {
88
- }
89
- try {
90
- const which = (0, import_child_process.spawnSync)("which", ["pixelrag"], { encoding: "utf8", timeout: 3e3 });
91
- if (which.status === 0) {
92
- const bin = which.stdout.trim();
93
- if (bin) return bin;
94
- }
95
- } catch {
96
- }
97
- for (const loc of ["/opt/homebrew/bin/pixelrag", "/usr/local/bin/pixelrag"]) {
98
- if (fs.existsSync(loc)) return loc;
99
- }
100
- throw new Error(
101
- "pixelrag binary not found.\nRun: pip install pixelrag[index,serve] pixelrag-render[pdf]\nAlso requires poppler: brew install poppler"
102
- );
103
- }
104
- function detectWSL2() {
105
- try {
106
- const version = fs.readFileSync("/proc/version", "utf8");
107
- return /microsoft|WSL/i.test(version);
108
- } catch {
109
- return false;
110
- }
111
- }
112
- function freeRam() {
113
- return os.freemem();
114
- }
115
- const WARN_RAM_BYTES = 4 * 1024 * 1024 * 1024;
116
- const BLOCK_RAM_BYTES = 2 * 1024 * 1024 * 1024;
117
- function checkRam() {
118
- const free = freeRam();
119
- if (free < BLOCK_RAM_BYTES) return "block";
120
- if (free < WARN_RAM_BYTES) return "warn";
121
- return "ok";
122
- }
123
- function isPixelRAGInstalled(python) {
124
- try {
125
- const bin = getPixelRAGBin(python);
126
- const result = (0, import_child_process.spawnSync)(bin, ["--help"], { encoding: "utf8", timeout: 5e3 });
127
- return result.status === 0;
128
- } catch {
129
- }
130
- return false;
131
- }
132
- function installPixelRAG(python) {
133
- console.log(" Installing PixelRAG (pip install pixelrag[index,serve] pixelrag-render[pdf])\u2026");
134
- let exePath = "";
135
- try {
136
- exePath = (0, import_child_process.spawnSync)(python, ["-c", "import sys; print(sys.executable)"], {
137
- encoding: "utf8",
138
- timeout: 5e3
139
- }).stdout?.trim() ?? "";
140
- } catch {
141
- }
142
- const extraArgs = exePath.includes("/opt/homebrew/") || exePath.includes("/usr/local/") ? ["--break-system-packages"] : [];
143
- const result = (0, import_child_process.spawnSync)(
144
- python,
145
- ["-m", "pip", "install", "pixelrag[index,serve]", "pixelrag-render[pdf]", ...extraArgs],
146
- { stdio: "inherit", timeout: 3e5 }
147
- );
148
- if (result.status !== 0) {
149
- throw new Error(
150
- "pip install pixelrag failed. Check your Python environment.\nAlso ensure poppler is installed: brew install poppler"
151
- );
152
- }
153
- }
154
- function downloadPixelRAGModel(python) {
155
- const pixelragBin = getPixelRAGBin(python);
156
- console.log(" Pre-downloading Qwen3-VL-Embedding-2B model (~4 GB)\u2026");
157
- const result = (0, import_child_process.spawnSync)(
158
- pixelragBin,
159
- ["embed", "--help"],
160
- // lightweight call that triggers model cache check
161
- { stdio: "inherit", timeout: 18e5, env: PIXELRAG_ENV }
162
- );
163
- if (result.status !== 0) {
164
- console.warn(" \u26A0 Model pre-download may have failed \u2014 it will download on first use.");
165
- }
166
- }
167
- function ensurePixelRAGInstalled(python) {
168
- if (!isPixelRAGInstalled(python)) {
169
- installPixelRAG(python);
170
- }
171
- }
172
- function readManifest(manifestPath) {
173
- try {
174
- return JSON.parse(fs.readFileSync(manifestPath, "utf8"));
175
- } catch {
176
- return [];
177
- }
178
- }
179
- function writeManifest(manifestPath, entries) {
180
- fs.writeFileSync(manifestPath, JSON.stringify(entries, null, 2));
181
- }
182
- function buildManifestEntries(absPaths) {
183
- return absPaths.map((p) => {
184
- try {
185
- const st = fs.statSync(p);
186
- return { path: p, mtime: st.mtimeMs, size: st.size };
187
- } catch {
188
- return { path: p, mtime: 0, size: 0 };
189
- }
190
- });
191
- }
192
- function manifestIsStale(current, fresh) {
193
- if (current.length !== fresh.length) return true;
194
- const map = new Map(current.map((e) => [e.path, e]));
195
- for (const f of fresh) {
196
- const c = map.get(f.path);
197
- if (!c || c.mtime !== f.mtime || c.size !== f.size) return true;
198
- }
199
- return false;
200
- }
201
- function getFlaggedPdfs(rawDb, projectRoot) {
202
- const datasets = rawDb.all(
203
- `SELECT id, file_path FROM data_datasets WHERE format = 'pdf'`
204
- );
205
- const flagged = [];
206
- for (const ds of datasets) {
207
- const tableName = `data_rows_${ds.id.replace(/[^a-zA-Z0-9_]/g, "_")}`;
208
- try {
209
- const rows = rawDb.all(
210
- `SELECT COUNT(*) as cnt FROM "${tableName}" WHERE needs_ocr = 'true' OR has_columns = 'true'`
211
- );
212
- if (rows[0]?.cnt > 0) {
213
- const absPath = path.isAbsolute(ds.file_path) ? ds.file_path : path.join(projectRoot, ds.file_path);
214
- flagged.push(absPath);
215
- }
216
- } catch {
217
- }
218
- }
219
- return flagged;
220
- }
221
- function buildIndex(opts) {
222
- const { python, flaggedPdfs, kirographDir, force } = opts;
223
- const indexDir = path.join(kirographDir, "pixelrag-index");
224
- const stagingDir = path.join(kirographDir, "pixelrag-staging");
225
- const manifestFile = path.join(kirographDir, "pixelrag-manifest.json");
226
- const idMapFile = path.join(kirographDir, "pixelrag-id-map.json");
227
- if (flaggedPdfs.length === 0) {
228
- console.log(" PixelRAG: no visually complex PDFs found \u2014 skipping index build.");
229
- return;
230
- }
231
- const freshEntries = buildManifestEntries(flaggedPdfs);
232
- const currentEntries = readManifest(manifestFile);
233
- const indexExists = fs.existsSync(indexDir);
234
- if (!force && indexExists && !manifestIsStale(currentEntries, freshEntries)) {
235
- console.log(` PixelRAG: index up to date (${flaggedPdfs.length} PDF${flaggedPdfs.length > 1 ? "s" : ""}).`);
236
- return;
237
- }
238
- const pixelragBin = getPixelRAGBin(python);
239
- if (fs.existsSync(stagingDir)) {
240
- fs.rmSync(stagingDir, { recursive: true, force: true });
241
- }
242
- fs.mkdirSync(stagingDir, { recursive: true });
243
- const idMap = {};
244
- for (let i = 0; i < flaggedPdfs.length; i++) {
245
- fs.symlinkSync(flaggedPdfs[i], path.join(stagingDir, `${i}.pdf`));
246
- idMap[String(i)] = flaggedPdfs[i];
247
- }
248
- const tileEstimate = flaggedPdfs.length * 40;
249
- const cpuMinutes = Math.round(tileEstimate * 10 / 60);
250
- const mpsMinutes = Math.round(tileEstimate * 2 / 60);
251
- console.log(
252
- ` Building PixelRAG index: ~${tileEstimate} tiles (~${cpuMinutes} min on CPU, ~${mpsMinutes} min on MPS)\u2026`
253
- );
254
- const args = [
255
- "index",
256
- "build",
257
- "--source",
258
- stagingDir,
259
- "--source-type",
260
- "pdf",
261
- "--output",
262
- indexDir,
263
- "--device",
264
- "cpu"
265
- ];
266
- if (force) args.push("--force");
267
- const result = (0, import_child_process.spawnSync)(pixelragBin, args, {
268
- stdio: "inherit",
269
- timeout: 72e5,
270
- // 2h hard limit
271
- env: PIXELRAG_ENV
272
- });
273
- try {
274
- fs.rmSync(stagingDir, { recursive: true, force: true });
275
- } catch {
276
- }
277
- if (result.status !== 0) {
278
- throw new Error("PixelRAG index build failed. Check Python output above for details.");
279
- }
280
- fs.writeFileSync(idMapFile, JSON.stringify(idMap, null, 2));
281
- writeManifest(manifestFile, freshEntries);
282
- console.log(` \u2713 PixelRAG index built (${flaggedPdfs.length} PDF${flaggedPdfs.length > 1 ? "s" : ""}).`);
283
- }
284
- let _serverProcess = null;
285
- let _cleanupRegistered = false;
286
- function registerCleanup() {
287
- if (_cleanupRegistered) return;
288
- _cleanupRegistered = true;
289
- const cleanup = () => {
290
- if (_serverProcess) {
291
- try {
292
- _serverProcess.kill("SIGTERM");
293
- } catch {
294
- }
295
- setTimeout(() => {
296
- try {
297
- _serverProcess?.kill("SIGKILL");
298
- } catch {
299
- }
300
- }, 5e3).unref();
301
- }
302
- };
303
- process.on("exit", cleanup);
304
- process.on("SIGINT", () => {
305
- cleanup();
306
- process.exit(0);
307
- });
308
- process.on("SIGTERM", () => {
309
- cleanup();
310
- process.exit(0);
311
- });
312
- }
313
- async function pollHealth(endpoint, maxAttempts, intervalMs) {
314
- for (let i = 0; i < maxAttempts; i++) {
315
- await new Promise((r) => setTimeout(r, intervalMs));
316
- try {
317
- const res = await fetch(`${endpoint}/health`, { signal: AbortSignal.timeout(2e3) });
318
- if (res.ok) return true;
319
- if (res.status !== 404 && res.status !== 503) {
320
- console.warn(` \u26A0 Port ${endpoint}: unexpected response (${res.status}). Another process may be on this port.`);
321
- return false;
322
- }
323
- } catch (e) {
324
- const err = e;
325
- if (err.code && err.code !== "ECONNREFUSED" && err.code !== "ECONNRESET" && err.code !== "UND_ERR_CONNECT_TIMEOUT") {
326
- console.warn(` \u26A0 PixelRAG health check: ${String(e)}`);
327
- }
328
- }
329
- if ((i + 1) % 8 === 0) {
330
- console.log(` PixelRAG loading model\u2026 ${Math.round((i + 1) * intervalMs / 1e3)}s elapsed`);
331
- }
332
- }
333
- return false;
334
- }
335
- async function startServer(python, port, kirographDir) {
336
- const endpoint = `http://localhost:${port}`;
337
- const indexDir = path.join(kirographDir, "pixelrag-index");
338
- const ramState = checkRam();
339
- if (ramState === "block") {
340
- throw new Error(
341
- `PixelRAG server requires at least 4 GB free RAM.
342
- Current free: ${(freeRam() / 1024 / 1024 / 1024).toFixed(1)} GB.
343
- Close other applications and retry, or disable enableVisualPDF.`
344
- );
345
- }
346
- if (ramState === "warn") {
347
- console.warn(
348
- ` \u26A0 Low RAM: ${(freeRam() / 1024 / 1024 / 1024).toFixed(1)} GB free. PixelRAG may degrade system performance.`
349
- );
350
- }
351
- if (detectWSL2()) {
352
- console.warn(
353
- " \u26A0 WSL2 detected. Visual PDF search has known limitations:\n \u2022 Ensure your project is on the Linux filesystem (/home/...), not /mnt/c/...\n \u2022 Allocate at least 8 GB to WSL2 in %USERPROFILE%\\.wslconfig\n \u2022 CUDA requires updated NVIDIA drivers with WSL2 support"
354
- );
355
- }
356
- try {
357
- const res = await fetch(`${endpoint}/health`, { signal: AbortSignal.timeout(2e3) });
358
- if (res.ok) {
359
- console.log(` PixelRAG server already running on port ${port}.`);
360
- return;
361
- }
362
- } catch {
363
- }
364
- if (!fs.existsSync(indexDir)) {
365
- console.warn(
366
- ` \u26A0 PixelRAG index not found at ${indexDir}.
367
- Run: kirograph index \u2014 to build it first.`
368
- );
369
- return;
370
- }
371
- const pixelragBin = getPixelRAGBin(python);
372
- console.log(` Starting PixelRAG server on port ${port}\u2026`);
373
- _serverProcess = (0, import_child_process.spawn)(
374
- pixelragBin,
375
- [
376
- "serve",
377
- "--index-dir",
378
- indexDir,
379
- "--tiles-dir",
380
- path.join(indexDir, "tiles"),
381
- "--articles-json",
382
- path.join(indexDir, "articles.json"),
383
- "--port",
384
- String(port)
385
- ],
386
- { stdio: ["ignore", "ignore", "ignore"], detached: false, env: PIXELRAG_ENV }
387
- );
388
- _serverProcess.on("error", (err) => {
389
- console.warn(` \u26A0 PixelRAG server error: ${err.message}`);
390
- });
391
- registerCleanup();
392
- const ready = await pollHealth(endpoint, 90, 2e3);
393
- if (ready) {
394
- console.log(` \u2713 PixelRAG server ready on port ${port}.`);
395
- } else {
396
- console.warn(
397
- ` \u26A0 PixelRAG server did not respond within 3 minutes.
398
- Visual PDF search calls will fail until it is ready.`
399
- );
400
- }
401
- }
402
- // Annotate the CommonJS export names for ESM import in node:
403
- 0 && (module.exports = {
404
- buildIndex,
405
- checkRam,
406
- detectPython,
407
- detectWSL2,
408
- downloadPixelRAGModel,
409
- ensurePixelRAGInstalled,
410
- ensurePython,
411
- getFlaggedPdfs,
412
- installPixelRAG,
413
- isPixelRAGInstalled,
414
- startServer
415
- });
416
- //# sourceMappingURL=pixelrag-manager.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/data/pixelrag-manager.ts"],
4
- "sourcesContent": ["/**\n * PixelRAG lifecycle manager.\n *\n * Handles: Python check, pip install, index build (with manifest staleness),\n * server spawn + health poll, cleanup on exit.\n *\n * EXPERIMENTAL: This module is experimental and may change without notice.\n */\n\nimport * as fs from 'fs';\nimport * as os from 'os';\nimport * as path from 'path';\nimport { spawnSync, spawn } from 'child_process';\nimport type { ChildProcess } from 'child_process';\nimport type { PixelRAGManifestEntry } from './types';\n\n// Environment variables required to prevent FAISS/PyTorch OpenMP conflict on macOS.\n// Without OMP_NUM_THREADS=1 the two runtimes clash and segfault during model loading.\nconst PIXELRAG_ENV = {\n ...process.env,\n OMP_NUM_THREADS: '1',\n KMP_DUPLICATE_LIB_OK: 'TRUE',\n};\n\n// \u2500\u2500 Python detection \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/** Returns the python3 binary name if available and \u2265 3.12, otherwise null. */\nexport function detectPython(): string | null {\n for (const bin of ['python3', 'python']) {\n try {\n const result = spawnSync(bin, ['--version'], { encoding: 'utf8', timeout: 5000 });\n if (result.status !== 0) continue;\n const out = (result.stdout + result.stderr).trim();\n const match = out.match(/Python (\\d+)\\.(\\d+)/);\n if (!match) continue;\n const [, major, minor] = match;\n if (Number(major) >= 3 && Number(minor) >= 12) return bin;\n } catch { /* not found */ }\n }\n return null;\n}\n\nexport function ensurePython(): string {\n const bin = detectPython();\n if (!bin) {\n throw new Error(\n 'PixelRAG (visual PDF search) requires Python 3.12+.\\n' +\n 'Install from https://python.org or via brew: brew install python@3.12',\n );\n }\n return bin;\n}\n\n// \u2500\u2500 pixelrag binary detection \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Finds the `pixelrag` CLI binary.\n * Searches: next to the Python executable, PATH, common brew paths.\n */\nfunction getPixelRAGBin(python: string): string {\n // Look next to the Python executable (covers pip-installed scripts)\n try {\n const exe = spawnSync(python, ['-c', 'import sys; print(sys.executable)'], {\n encoding: 'utf8', timeout: 5000,\n }).stdout?.trim() ?? '';\n if (exe) {\n const candidate = path.join(path.dirname(exe), 'pixelrag');\n if (fs.existsSync(candidate)) return candidate;\n }\n } catch { /* ignore */ }\n\n // Try pixelrag in PATH\n try {\n const which = spawnSync('which', ['pixelrag'], { encoding: 'utf8', timeout: 3000 });\n if (which.status === 0) {\n const bin = which.stdout.trim();\n if (bin) return bin;\n }\n } catch { /* ignore */ }\n\n // Common brew locations\n for (const loc of ['/opt/homebrew/bin/pixelrag', '/usr/local/bin/pixelrag']) {\n if (fs.existsSync(loc)) return loc;\n }\n\n throw new Error(\n 'pixelrag binary not found.\\n' +\n 'Run: pip install pixelrag[index,serve] pixelrag-render[pdf]\\n' +\n 'Also requires poppler: brew install poppler',\n );\n}\n\n// \u2500\u2500 WSL2 / platform checks \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function detectWSL2(): boolean {\n try {\n const version = fs.readFileSync('/proc/version', 'utf8');\n return /microsoft|WSL/i.test(version);\n } catch {\n return false;\n }\n}\n\n/** Returns free RAM in bytes. */\nfunction freeRam(): number {\n return os.freemem();\n}\n\nconst WARN_RAM_BYTES = 4 * 1024 * 1024 * 1024; // 4 GB\nconst BLOCK_RAM_BYTES = 2 * 1024 * 1024 * 1024; // 2 GB\n\nexport function checkRam(): 'ok' | 'warn' | 'block' {\n const free = freeRam();\n if (free < BLOCK_RAM_BYTES) return 'block';\n if (free < WARN_RAM_BYTES) return 'warn';\n return 'ok';\n}\n\n// \u2500\u2500 PixelRAG installation \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function isPixelRAGInstalled(python: string): boolean {\n // Check the binary first (most reliable)\n try {\n const bin = getPixelRAGBin(python);\n const result = spawnSync(bin, ['--help'], { encoding: 'utf8', timeout: 5000 });\n return result.status === 0;\n } catch { /* binary not found */ }\n return false;\n}\n\nexport function installPixelRAG(python: string): void {\n console.log(' Installing PixelRAG (pip install pixelrag[index,serve] pixelrag-render[pdf])\u2026');\n\n // Detect brew-managed Python \u2014 requires --break-system-packages\n let exePath = '';\n try {\n exePath = spawnSync(python, ['-c', 'import sys; print(sys.executable)'], {\n encoding: 'utf8', timeout: 5000,\n }).stdout?.trim() ?? '';\n } catch { /* ignore */ }\n const extraArgs = (exePath.includes('/opt/homebrew/') || exePath.includes('/usr/local/'))\n ? ['--break-system-packages']\n : [];\n\n const result = spawnSync(\n python,\n ['-m', 'pip', 'install', 'pixelrag[index,serve]', 'pixelrag-render[pdf]', ...extraArgs],\n { stdio: 'inherit', timeout: 300_000 },\n );\n if (result.status !== 0) {\n throw new Error(\n 'pip install pixelrag failed. Check your Python environment.\\n' +\n 'Also ensure poppler is installed: brew install poppler',\n );\n }\n}\n\nexport function downloadPixelRAGModel(python: string): void {\n // The model is downloaded automatically by pixelrag on first use;\n // this function pre-warms the cache at install time.\n const pixelragBin = getPixelRAGBin(python);\n console.log(' Pre-downloading Qwen3-VL-Embedding-2B model (~4 GB)\u2026');\n const result = spawnSync(\n pixelragBin,\n ['embed', '--help'], // lightweight call that triggers model cache check\n { stdio: 'inherit', timeout: 1800_000, env: PIXELRAG_ENV },\n );\n if (result.status !== 0) {\n console.warn(' \u26A0 Model pre-download may have failed \u2014 it will download on first use.');\n }\n}\n\nexport function ensurePixelRAGInstalled(python: string): void {\n if (!isPixelRAGInstalled(python)) {\n installPixelRAG(python);\n }\n}\n\n// \u2500\u2500 Manifest / staleness \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nfunction readManifest(manifestPath: string): PixelRAGManifestEntry[] {\n try {\n return JSON.parse(fs.readFileSync(manifestPath, 'utf8'));\n } catch {\n return [];\n }\n}\n\nfunction writeManifest(manifestPath: string, entries: PixelRAGManifestEntry[]): void {\n fs.writeFileSync(manifestPath, JSON.stringify(entries, null, 2));\n}\n\nfunction buildManifestEntries(absPaths: string[]): PixelRAGManifestEntry[] {\n return absPaths.map(p => {\n try {\n const st = fs.statSync(p);\n return { path: p, mtime: st.mtimeMs, size: st.size };\n } catch {\n return { path: p, mtime: 0, size: 0 };\n }\n });\n}\n\nfunction manifestIsStale(\n current: PixelRAGManifestEntry[],\n fresh: PixelRAGManifestEntry[],\n): boolean {\n if (current.length !== fresh.length) return true;\n const map = new Map(current.map(e => [e.path, e]));\n for (const f of fresh) {\n const c = map.get(f.path);\n if (!c || c.mtime !== f.mtime || c.size !== f.size) return true;\n }\n return false;\n}\n\n// \u2500\u2500 Get flagged PDFs from kirograph DB \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Queries the kirograph data DB for PDF datasets that have at least one page\n * with needs_ocr='true' or has_columns='true' (complex visual layout).\n * Returns absolute paths.\n */\nexport function getFlaggedPdfs(\n rawDb: { all: (sql: string, params?: unknown[]) => unknown[] },\n projectRoot: string,\n): string[] {\n const datasets = rawDb.all(\n `SELECT id, file_path FROM data_datasets WHERE format = 'pdf'`,\n ) as { id: string; file_path: string }[];\n\n const flagged: string[] = [];\n for (const ds of datasets) {\n const tableName = `data_rows_${ds.id.replace(/[^a-zA-Z0-9_]/g, '_')}`;\n try {\n const rows = rawDb.all(\n `SELECT COUNT(*) as cnt FROM \"${tableName}\" WHERE needs_ocr = 'true' OR has_columns = 'true'`,\n ) as { cnt: number }[];\n if (rows[0]?.cnt > 0) {\n const absPath = path.isAbsolute(ds.file_path)\n ? ds.file_path\n : path.join(projectRoot, ds.file_path);\n flagged.push(absPath);\n }\n } catch { /* table not yet created \u2014 skip */ }\n }\n return flagged;\n}\n\n// \u2500\u2500 Index build \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\ninterface BuildIndexOptions {\n python: string;\n flaggedPdfs: string[];\n projectRoot: string;\n kirographDir: string;\n force?: boolean;\n}\n\nexport function buildIndex(opts: BuildIndexOptions): void {\n const { python, flaggedPdfs, kirographDir, force } = opts;\n const indexDir = path.join(kirographDir, 'pixelrag-index');\n const stagingDir = path.join(kirographDir, 'pixelrag-staging');\n const manifestFile = path.join(kirographDir, 'pixelrag-manifest.json');\n const idMapFile = path.join(kirographDir, 'pixelrag-id-map.json');\n\n if (flaggedPdfs.length === 0) {\n console.log(' PixelRAG: no visually complex PDFs found \u2014 skipping index build.');\n return;\n }\n\n const freshEntries = buildManifestEntries(flaggedPdfs);\n const currentEntries = readManifest(manifestFile);\n const indexExists = fs.existsSync(indexDir);\n\n if (!force && indexExists && !manifestIsStale(currentEntries, freshEntries)) {\n console.log(` PixelRAG: index up to date (${flaggedPdfs.length} PDF${flaggedPdfs.length > 1 ? 's' : ''}).`);\n return;\n }\n\n const pixelragBin = getPixelRAGBin(python);\n\n // pixelrag PDFSource expects numerically-named files (0.pdf, 1.pdf, \u2026) so that\n // article IDs are integers. We stage symlinks and keep an id\u2192path map.\n if (fs.existsSync(stagingDir)) {\n fs.rmSync(stagingDir, { recursive: true, force: true });\n }\n fs.mkdirSync(stagingDir, { recursive: true });\n\n const idMap: Record<string, string> = {};\n for (let i = 0; i < flaggedPdfs.length; i++) {\n fs.symlinkSync(flaggedPdfs[i], path.join(stagingDir, `${i}.pdf`));\n idMap[String(i)] = flaggedPdfs[i];\n }\n\n const tileEstimate = flaggedPdfs.length * 40;\n const cpuMinutes = Math.round(tileEstimate * 10 / 60);\n const mpsMinutes = Math.round(tileEstimate * 2 / 60);\n console.log(\n ` Building PixelRAG index: ~${tileEstimate} tiles` +\n ` (~${cpuMinutes} min on CPU, ~${mpsMinutes} min on MPS)\u2026`,\n );\n\n const args = [\n 'index', 'build',\n '--source', stagingDir,\n '--source-type', 'pdf',\n '--output', indexDir,\n '--device', 'cpu',\n ];\n if (force) args.push('--force');\n\n const result = spawnSync(pixelragBin, args, {\n stdio: 'inherit',\n timeout: 7200_000, // 2h hard limit\n env: PIXELRAG_ENV,\n });\n\n // Clean up staging regardless of outcome\n try { fs.rmSync(stagingDir, { recursive: true, force: true }); } catch { /* best-effort */ }\n\n if (result.status !== 0) {\n throw new Error('PixelRAG index build failed. Check Python output above for details.');\n }\n\n // Persist id map and manifest\n fs.writeFileSync(idMapFile, JSON.stringify(idMap, null, 2));\n writeManifest(manifestFile, freshEntries);\n console.log(` \u2713 PixelRAG index built (${flaggedPdfs.length} PDF${flaggedPdfs.length > 1 ? 's' : ''}).`);\n}\n\n// \u2500\u2500 Server lifecycle \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nlet _serverProcess: ChildProcess | null = null;\nlet _cleanupRegistered = false;\n\nfunction registerCleanup(): void {\n if (_cleanupRegistered) return;\n _cleanupRegistered = true;\n\n const cleanup = (): void => {\n if (_serverProcess) {\n try { _serverProcess.kill('SIGTERM'); } catch { /* best-effort */ }\n setTimeout(() => {\n try { _serverProcess?.kill('SIGKILL'); } catch { /* best-effort */ }\n }, 5000).unref();\n }\n };\n\n process.on('exit', cleanup);\n process.on('SIGINT', () => { cleanup(); process.exit(0); });\n process.on('SIGTERM', () => { cleanup(); process.exit(0); });\n}\n\nasync function pollHealth(endpoint: string, maxAttempts: number, intervalMs: number): Promise<boolean> {\n for (let i = 0; i < maxAttempts; i++) {\n await new Promise(r => setTimeout(r, intervalMs));\n try {\n const res = await fetch(`${endpoint}/health`, { signal: AbortSignal.timeout(2000) });\n if (res.ok) return true;\n if (res.status !== 404 && res.status !== 503) {\n console.warn(` \u26A0 Port ${endpoint}: unexpected response (${res.status}). Another process may be on this port.`);\n return false;\n }\n } catch (e: unknown) {\n const err = e as { code?: string };\n if (err.code && err.code !== 'ECONNREFUSED' && err.code !== 'ECONNRESET' && err.code !== 'UND_ERR_CONNECT_TIMEOUT') {\n console.warn(` \u26A0 PixelRAG health check: ${String(e)}`);\n }\n }\n if ((i + 1) % 8 === 0) {\n console.log(` PixelRAG loading model\u2026 ${Math.round((i + 1) * intervalMs / 1000)}s elapsed`);\n }\n }\n return false;\n}\n\nexport async function startServer(python: string, port: number, kirographDir: string): Promise<void> {\n const endpoint = `http://localhost:${port}`;\n const indexDir = path.join(kirographDir, 'pixelrag-index');\n\n const ramState = checkRam();\n if (ramState === 'block') {\n throw new Error(\n `PixelRAG server requires at least 4 GB free RAM.\\n` +\n `Current free: ${(freeRam() / 1024 / 1024 / 1024).toFixed(1)} GB.\\n` +\n `Close other applications and retry, or disable enableVisualPDF.`,\n );\n }\n if (ramState === 'warn') {\n console.warn(\n ` \u26A0 Low RAM: ${(freeRam() / 1024 / 1024 / 1024).toFixed(1)} GB free. ` +\n `PixelRAG may degrade system performance.`,\n );\n }\n\n if (detectWSL2()) {\n console.warn(\n ' \u26A0 WSL2 detected. Visual PDF search has known limitations:\\n' +\n ' \u2022 Ensure your project is on the Linux filesystem (/home/...), not /mnt/c/...\\n' +\n ' \u2022 Allocate at least 8 GB to WSL2 in %USERPROFILE%\\\\.wslconfig\\n' +\n ' \u2022 CUDA requires updated NVIDIA drivers with WSL2 support',\n );\n }\n\n // Check if already running\n try {\n const res = await fetch(`${endpoint}/health`, { signal: AbortSignal.timeout(2000) });\n if (res.ok) {\n console.log(` PixelRAG server already running on port ${port}.`);\n return;\n }\n } catch { /* not running */ }\n\n if (!fs.existsSync(indexDir)) {\n console.warn(\n ` \u26A0 PixelRAG index not found at ${indexDir}.\\n` +\n ` Run: kirograph index \u2014 to build it first.`,\n );\n return;\n }\n\n const pixelragBin = getPixelRAGBin(python);\n console.log(` Starting PixelRAG server on port ${port}\u2026`);\n\n _serverProcess = spawn(\n pixelragBin,\n [\n 'serve',\n '--index-dir', indexDir,\n '--tiles-dir', path.join(indexDir, 'tiles'),\n '--articles-json', path.join(indexDir, 'articles.json'),\n '--port', String(port),\n ],\n { stdio: ['ignore', 'ignore', 'ignore'], detached: false, env: PIXELRAG_ENV },\n );\n\n _serverProcess.on('error', err => {\n console.warn(` \u26A0 PixelRAG server error: ${err.message}`);\n });\n\n registerCleanup();\n\n // Poll /health \u2014 startup only, 90 attempts \u00D7 2s = 3 minutes max\n const ready = await pollHealth(endpoint, 90, 2000);\n if (ready) {\n console.log(` \u2713 PixelRAG server ready on port ${port}.`);\n } else {\n console.warn(\n ` \u26A0 PixelRAG server did not respond within 3 minutes.\\n` +\n ` Visual PDF search calls will fail until it is ready.`,\n );\n }\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,29 +0,0 @@
1
- /**
2
- * Column Profiler
3
- *
4
- * Analyzes parsed rows to produce column profiles:
5
- * - Type inference (string, integer, float, boolean, date, null, mixed)
6
- * - Null count and percentage
7
- * - Cardinality (distinct values)
8
- * - Min/max values
9
- * - Mean (for numeric columns)
10
- * - Sample values (up to 5)
11
- */
12
- import type { DataColumn, ParsedRow } from './types';
13
- /**
14
- * Profile columns from a batch of rows.
15
- * Call repeatedly with batches, then call finalize() to get the final profiles.
16
- */
17
- export declare class ColumnProfiler {
18
- private stats;
19
- private columnOrder;
20
- /**
21
- * Process a batch of rows.
22
- */
23
- addBatch(rows: ParsedRow[], columns: string[]): void;
24
- /**
25
- * Finalize and return column profiles.
26
- */
27
- finalize(datasetId: string): DataColumn[];
28
- }
29
- //# sourceMappingURL=profiler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"profiler.d.ts","sourceRoot":"","sources":["../../src/data/profiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAgB,SAAS,EAAE,MAAM,SAAS,CAAC;AAiDnE;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,WAAW,CAAgB;IAEnC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAgEpD;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE;CA+B1C"}