contextpro-mcp 0.0.0-stage → 1.4.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 (466) hide show
  1. package/CHANGELOG.md +416 -0
  2. package/INSTALL.md +128 -0
  3. package/INSTRUCTIONS.md +33 -0
  4. package/LICENSE +21 -0
  5. package/NOTICE +12 -0
  6. package/README.md +164 -2
  7. package/SECURITY.md +27 -0
  8. package/agent-guide.md +323 -0
  9. package/agent-instructions.md +1 -0
  10. package/build/core/agent-setup.d.ts +5 -0
  11. package/build/core/agent-setup.d.ts.map +1 -0
  12. package/build/core/agent-setup.js +94 -0
  13. package/build/core/agent-setup.js.map +1 -0
  14. package/build/core/artifacts.d.ts +64 -0
  15. package/build/core/artifacts.d.ts.map +1 -0
  16. package/build/core/artifacts.js +370 -0
  17. package/build/core/artifacts.js.map +1 -0
  18. package/build/core/bounded-source.d.ts +15 -0
  19. package/build/core/bounded-source.d.ts.map +1 -0
  20. package/build/core/bounded-source.js +78 -0
  21. package/build/core/bounded-source.js.map +1 -0
  22. package/build/core/changed-since.d.ts +20 -0
  23. package/build/core/changed-since.d.ts.map +1 -0
  24. package/build/core/changed-since.js +43 -0
  25. package/build/core/changed-since.js.map +1 -0
  26. package/build/core/chat-model.d.ts +8 -0
  27. package/build/core/chat-model.d.ts.map +1 -0
  28. package/build/core/chat-model.js +135 -0
  29. package/build/core/chat-model.js.map +1 -0
  30. package/build/core/clustering.d.ts +6 -0
  31. package/build/core/clustering.d.ts.map +1 -0
  32. package/build/core/clustering.js +201 -0
  33. package/build/core/clustering.js.map +1 -0
  34. package/build/core/context-metadata.d.ts +50 -0
  35. package/build/core/context-metadata.d.ts.map +1 -0
  36. package/build/core/context-metadata.js +118 -0
  37. package/build/core/context-metadata.js.map +1 -0
  38. package/build/core/data-dir.d.ts +5 -0
  39. package/build/core/data-dir.d.ts.map +1 -0
  40. package/build/core/data-dir.js +53 -0
  41. package/build/core/data-dir.js.map +1 -0
  42. package/build/core/db-native.d.ts +28 -0
  43. package/build/core/db-native.d.ts.map +1 -0
  44. package/build/core/db-native.js +120 -0
  45. package/build/core/db-native.js.map +1 -0
  46. package/build/core/db.d.ts +294 -0
  47. package/build/core/db.d.ts.map +1 -0
  48. package/build/core/db.js +1047 -0
  49. package/build/core/db.js.map +1 -0
  50. package/build/core/doctor.d.ts +13 -0
  51. package/build/core/doctor.d.ts.map +1 -0
  52. package/build/core/doctor.js +55 -0
  53. package/build/core/doctor.js.map +1 -0
  54. package/build/core/efficiency.d.ts +16 -0
  55. package/build/core/efficiency.d.ts.map +1 -0
  56. package/build/core/efficiency.js +170 -0
  57. package/build/core/efficiency.js.map +1 -0
  58. package/build/core/embedding-tracker.d.ts +25 -0
  59. package/build/core/embedding-tracker.d.ts.map +1 -0
  60. package/build/core/embedding-tracker.js +228 -0
  61. package/build/core/embedding-tracker.js.map +1 -0
  62. package/build/core/embeddings.d.ts +90 -0
  63. package/build/core/embeddings.d.ts.map +1 -0
  64. package/build/core/embeddings.js +693 -0
  65. package/build/core/embeddings.js.map +1 -0
  66. package/build/core/evidence-state.d.ts +42 -0
  67. package/build/core/evidence-state.d.ts.map +1 -0
  68. package/build/core/evidence-state.js +153 -0
  69. package/build/core/evidence-state.js.map +1 -0
  70. package/build/core/extractor-stamp.d.ts +10 -0
  71. package/build/core/extractor-stamp.d.ts.map +1 -0
  72. package/build/core/extractor-stamp.js +51 -0
  73. package/build/core/extractor-stamp.js.map +1 -0
  74. package/build/core/feature-brief-cache.d.ts +37 -0
  75. package/build/core/feature-brief-cache.d.ts.map +1 -0
  76. package/build/core/feature-brief-cache.js +100 -0
  77. package/build/core/feature-brief-cache.js.map +1 -0
  78. package/build/core/file-fingerprint.d.ts +15 -0
  79. package/build/core/file-fingerprint.d.ts.map +1 -0
  80. package/build/core/file-fingerprint.js +24 -0
  81. package/build/core/file-fingerprint.js.map +1 -0
  82. package/build/core/graph-analytics.d.ts +46 -0
  83. package/build/core/graph-analytics.d.ts.map +1 -0
  84. package/build/core/graph-analytics.js +371 -0
  85. package/build/core/graph-analytics.js.map +1 -0
  86. package/build/core/hub.d.ts +23 -0
  87. package/build/core/hub.d.ts.map +1 -0
  88. package/build/core/hub.js +123 -0
  89. package/build/core/hub.js.map +1 -0
  90. package/build/core/ignore-dirs.d.ts +7 -0
  91. package/build/core/ignore-dirs.d.ts.map +1 -0
  92. package/build/core/ignore-dirs.js +84 -0
  93. package/build/core/ignore-dirs.js.map +1 -0
  94. package/build/core/index-freshness.d.ts +15 -0
  95. package/build/core/index-freshness.d.ts.map +1 -0
  96. package/build/core/index-freshness.js +96 -0
  97. package/build/core/index-freshness.js.map +1 -0
  98. package/build/core/index-reconcile.d.ts +28 -0
  99. package/build/core/index-reconcile.d.ts.map +1 -0
  100. package/build/core/index-reconcile.js +129 -0
  101. package/build/core/index-reconcile.js.map +1 -0
  102. package/build/core/local-daemon.d.ts +5 -0
  103. package/build/core/local-daemon.d.ts.map +1 -0
  104. package/build/core/local-daemon.js +282 -0
  105. package/build/core/local-daemon.js.map +1 -0
  106. package/build/core/memory-graph.d.ts +68 -0
  107. package/build/core/memory-graph.d.ts.map +1 -0
  108. package/build/core/memory-graph.js +152 -0
  109. package/build/core/memory-graph.js.map +1 -0
  110. package/build/core/native-repair.d.ts +12 -0
  111. package/build/core/native-repair.d.ts.map +1 -0
  112. package/build/core/native-repair.js +167 -0
  113. package/build/core/native-repair.js.map +1 -0
  114. package/build/core/native-runtime.d.ts +12 -0
  115. package/build/core/native-runtime.d.ts.map +1 -0
  116. package/build/core/native-runtime.js +38 -0
  117. package/build/core/native-runtime.js.map +1 -0
  118. package/build/core/pagerank.d.ts +29 -0
  119. package/build/core/pagerank.d.ts.map +1 -0
  120. package/build/core/pagerank.js +90 -0
  121. package/build/core/pagerank.js.map +1 -0
  122. package/build/core/parser-process.d.ts +21 -0
  123. package/build/core/parser-process.d.ts.map +1 -0
  124. package/build/core/parser-process.js +103 -0
  125. package/build/core/parser-process.js.map +1 -0
  126. package/build/core/parser-worker.d.ts +2 -0
  127. package/build/core/parser-worker.d.ts.map +1 -0
  128. package/build/core/parser-worker.js +17 -0
  129. package/build/core/parser-worker.js.map +1 -0
  130. package/build/core/parser.d.ts +66 -0
  131. package/build/core/parser.d.ts.map +1 -0
  132. package/build/core/parser.js +750 -0
  133. package/build/core/parser.js.map +1 -0
  134. package/build/core/path-guard.d.ts +6 -0
  135. package/build/core/path-guard.d.ts.map +1 -0
  136. package/build/core/path-guard.js +55 -0
  137. package/build/core/path-guard.js.map +1 -0
  138. package/build/core/process-lifecycle.d.ts +30 -0
  139. package/build/core/process-lifecycle.d.ts.map +1 -0
  140. package/build/core/process-lifecycle.js +129 -0
  141. package/build/core/process-lifecycle.js.map +1 -0
  142. package/build/core/project-config.d.ts +83 -0
  143. package/build/core/project-config.d.ts.map +1 -0
  144. package/build/core/project-config.js +302 -0
  145. package/build/core/project-config.js.map +1 -0
  146. package/build/core/project-graph.d.ts +69 -0
  147. package/build/core/project-graph.d.ts.map +1 -0
  148. package/build/core/project-graph.js +874 -0
  149. package/build/core/project-graph.js.map +1 -0
  150. package/build/core/provider-config.d.ts +15 -0
  151. package/build/core/provider-config.d.ts.map +1 -0
  152. package/build/core/provider-config.js +67 -0
  153. package/build/core/provider-config.js.map +1 -0
  154. package/build/core/provider-usage.d.ts +21 -0
  155. package/build/core/provider-usage.d.ts.map +1 -0
  156. package/build/core/provider-usage.js +52 -0
  157. package/build/core/provider-usage.js.map +1 -0
  158. package/build/core/python-language-server.d.ts +23 -0
  159. package/build/core/python-language-server.d.ts.map +1 -0
  160. package/build/core/python-language-server.js +217 -0
  161. package/build/core/python-language-server.js.map +1 -0
  162. package/build/core/python-runtime-identity.d.ts +3 -0
  163. package/build/core/python-runtime-identity.d.ts.map +1 -0
  164. package/build/core/python-runtime-identity.js +53 -0
  165. package/build/core/python-runtime-identity.js.map +1 -0
  166. package/build/core/reconcile-scheduler.d.ts +20 -0
  167. package/build/core/reconcile-scheduler.d.ts.map +1 -0
  168. package/build/core/reconcile-scheduler.js +58 -0
  169. package/build/core/reconcile-scheduler.js.map +1 -0
  170. package/build/core/request-context.d.ts +7 -0
  171. package/build/core/request-context.d.ts.map +1 -0
  172. package/build/core/request-context.js +17 -0
  173. package/build/core/request-context.js.map +1 -0
  174. package/build/core/request-root.d.ts +19 -0
  175. package/build/core/request-root.d.ts.map +1 -0
  176. package/build/core/request-root.js +26 -0
  177. package/build/core/request-root.js.map +1 -0
  178. package/build/core/root-guard.d.ts +8 -0
  179. package/build/core/root-guard.d.ts.map +1 -0
  180. package/build/core/root-guard.js +53 -0
  181. package/build/core/root-guard.js.map +1 -0
  182. package/build/core/roots-detect.d.ts +17 -0
  183. package/build/core/roots-detect.d.ts.map +1 -0
  184. package/build/core/roots-detect.js +63 -0
  185. package/build/core/roots-detect.js.map +1 -0
  186. package/build/core/runtime-session.d.ts +5 -0
  187. package/build/core/runtime-session.d.ts.map +1 -0
  188. package/build/core/runtime-session.js +10 -0
  189. package/build/core/runtime-session.js.map +1 -0
  190. package/build/core/scip-index.d.ts +71 -0
  191. package/build/core/scip-index.d.ts.map +1 -0
  192. package/build/core/scip-index.js +343 -0
  193. package/build/core/scip-index.js.map +1 -0
  194. package/build/core/semantic-diff.d.ts +32 -0
  195. package/build/core/semantic-diff.d.ts.map +1 -0
  196. package/build/core/semantic-diff.js +259 -0
  197. package/build/core/semantic-diff.js.map +1 -0
  198. package/build/core/source-context.d.ts +3 -0
  199. package/build/core/source-context.d.ts.map +1 -0
  200. package/build/core/source-context.js +86 -0
  201. package/build/core/source-context.js.map +1 -0
  202. package/build/core/source-mask.d.ts +8 -0
  203. package/build/core/source-mask.d.ts.map +1 -0
  204. package/build/core/source-mask.js +156 -0
  205. package/build/core/source-mask.js.map +1 -0
  206. package/build/core/source-mutation.d.ts +16 -0
  207. package/build/core/source-mutation.d.ts.map +1 -0
  208. package/build/core/source-mutation.js +193 -0
  209. package/build/core/source-mutation.js.map +1 -0
  210. package/build/core/sql-schema.d.ts +59 -0
  211. package/build/core/sql-schema.d.ts.map +1 -0
  212. package/build/core/sql-schema.js +218 -0
  213. package/build/core/sql-schema.js.map +1 -0
  214. package/build/core/startup-health.d.ts +40 -0
  215. package/build/core/startup-health.d.ts.map +1 -0
  216. package/build/core/startup-health.js +132 -0
  217. package/build/core/startup-health.js.map +1 -0
  218. package/build/core/team-ledger.d.ts +60 -0
  219. package/build/core/team-ledger.d.ts.map +1 -0
  220. package/build/core/team-ledger.js +171 -0
  221. package/build/core/team-ledger.js.map +1 -0
  222. package/build/core/test-impact.d.ts +23 -0
  223. package/build/core/test-impact.d.ts.map +1 -0
  224. package/build/core/test-impact.js +131 -0
  225. package/build/core/test-impact.js.map +1 -0
  226. package/build/core/tool-metrics.d.ts +29 -0
  227. package/build/core/tool-metrics.d.ts.map +1 -0
  228. package/build/core/tool-metrics.js +74 -0
  229. package/build/core/tool-metrics.js.map +1 -0
  230. package/build/core/tool-profile.d.ts +12 -0
  231. package/build/core/tool-profile.d.ts.map +1 -0
  232. package/build/core/tool-profile.js +102 -0
  233. package/build/core/tool-profile.js.map +1 -0
  234. package/build/core/tool-trace.d.ts +8 -0
  235. package/build/core/tool-trace.d.ts.map +1 -0
  236. package/build/core/tool-trace.js +70 -0
  237. package/build/core/tool-trace.js.map +1 -0
  238. package/build/core/tree-sitter-runtime.d.ts +20 -0
  239. package/build/core/tree-sitter-runtime.d.ts.map +1 -0
  240. package/build/core/tree-sitter-runtime.js +324 -0
  241. package/build/core/tree-sitter-runtime.js.map +1 -0
  242. package/build/core/tree-sitter.d.ts +6 -0
  243. package/build/core/tree-sitter.d.ts.map +1 -0
  244. package/build/core/tree-sitter.js +24 -0
  245. package/build/core/tree-sitter.js.map +1 -0
  246. package/build/core/typescript-reference-process.d.ts +30 -0
  247. package/build/core/typescript-reference-process.d.ts.map +1 -0
  248. package/build/core/typescript-reference-process.js +124 -0
  249. package/build/core/typescript-reference-process.js.map +1 -0
  250. package/build/core/typescript-reference-worker.d.ts +2 -0
  251. package/build/core/typescript-reference-worker.d.ts.map +1 -0
  252. package/build/core/typescript-reference-worker.js +14 -0
  253. package/build/core/typescript-reference-worker.js.map +1 -0
  254. package/build/core/typescript-references.d.ts +71 -0
  255. package/build/core/typescript-references.d.ts.map +1 -0
  256. package/build/core/typescript-references.js +392 -0
  257. package/build/core/typescript-references.js.map +1 -0
  258. package/build/core/typescript-skeleton.d.ts +5 -0
  259. package/build/core/typescript-skeleton.d.ts.map +1 -0
  260. package/build/core/typescript-skeleton.js +49 -0
  261. package/build/core/typescript-skeleton.js.map +1 -0
  262. package/build/core/walker.d.ts +16 -0
  263. package/build/core/walker.d.ts.map +1 -0
  264. package/build/core/walker.js +152 -0
  265. package/build/core/walker.js.map +1 -0
  266. package/build/core/workspace-router.d.ts +28 -0
  267. package/build/core/workspace-router.d.ts.map +1 -0
  268. package/build/core/workspace-router.js +93 -0
  269. package/build/core/workspace-router.js.map +1 -0
  270. package/build/core/worktree-gc.d.ts +16 -0
  271. package/build/core/worktree-gc.d.ts.map +1 -0
  272. package/build/core/worktree-gc.js +69 -0
  273. package/build/core/worktree-gc.js.map +1 -0
  274. package/build/core/worktree-overlay.d.ts +22 -0
  275. package/build/core/worktree-overlay.d.ts.map +1 -0
  276. package/build/core/worktree-overlay.js +84 -0
  277. package/build/core/worktree-overlay.js.map +1 -0
  278. package/build/core/worktree-root-guard.d.ts +8 -0
  279. package/build/core/worktree-root-guard.d.ts.map +1 -0
  280. package/build/core/worktree-root-guard.js +82 -0
  281. package/build/core/worktree-root-guard.js.map +1 -0
  282. package/build/core/worktree-seed.d.ts +14 -0
  283. package/build/core/worktree-seed.d.ts.map +1 -0
  284. package/build/core/worktree-seed.js +98 -0
  285. package/build/core/worktree-seed.js.map +1 -0
  286. package/build/git/shadow.d.ts +40 -0
  287. package/build/git/shadow.d.ts.map +1 -0
  288. package/build/git/shadow.js +298 -0
  289. package/build/git/shadow.js.map +1 -0
  290. package/build/index.d.ts +3 -0
  291. package/build/index.d.ts.map +1 -0
  292. package/build/index.js +599 -0
  293. package/build/index.js.map +1 -0
  294. package/build/tools/agentic-context.d.ts +86 -0
  295. package/build/tools/agentic-context.d.ts.map +1 -0
  296. package/build/tools/agentic-context.js +1546 -0
  297. package/build/tools/agentic-context.js.map +1 -0
  298. package/build/tools/blast-radius.d.ts +24 -0
  299. package/build/tools/blast-radius.d.ts.map +1 -0
  300. package/build/tools/blast-radius.js +231 -0
  301. package/build/tools/blast-radius.js.map +1 -0
  302. package/build/tools/changed-since.d.ts +7 -0
  303. package/build/tools/changed-since.d.ts.map +1 -0
  304. package/build/tools/changed-since.js +68 -0
  305. package/build/tools/changed-since.js.map +1 -0
  306. package/build/tools/compiler-actions.d.ts +26 -0
  307. package/build/tools/compiler-actions.d.ts.map +1 -0
  308. package/build/tools/compiler-actions.js +121 -0
  309. package/build/tools/compiler-actions.js.map +1 -0
  310. package/build/tools/context-tree.d.ts +9 -0
  311. package/build/tools/context-tree.d.ts.map +1 -0
  312. package/build/tools/context-tree.js +131 -0
  313. package/build/tools/context-tree.js.map +1 -0
  314. package/build/tools/context.d.ts +37 -0
  315. package/build/tools/context.d.ts.map +1 -0
  316. package/build/tools/context.js +800 -0
  317. package/build/tools/context.js.map +1 -0
  318. package/build/tools/diff.d.ts +9 -0
  319. package/build/tools/diff.d.ts.map +1 -0
  320. package/build/tools/diff.js +176 -0
  321. package/build/tools/diff.js.map +1 -0
  322. package/build/tools/directory-prior.d.ts +16 -0
  323. package/build/tools/directory-prior.d.ts.map +1 -0
  324. package/build/tools/directory-prior.js +121 -0
  325. package/build/tools/directory-prior.js.map +1 -0
  326. package/build/tools/discovery-documents.d.ts +11 -0
  327. package/build/tools/discovery-documents.d.ts.map +1 -0
  328. package/build/tools/discovery-documents.js +71 -0
  329. package/build/tools/discovery-documents.js.map +1 -0
  330. package/build/tools/discovery-hints.d.ts +25 -0
  331. package/build/tools/discovery-hints.d.ts.map +1 -0
  332. package/build/tools/discovery-hints.js +329 -0
  333. package/build/tools/discovery-hints.js.map +1 -0
  334. package/build/tools/efficiency-report.d.ts +13 -0
  335. package/build/tools/efficiency-report.d.ts.map +1 -0
  336. package/build/tools/efficiency-report.js +78 -0
  337. package/build/tools/efficiency-report.js.map +1 -0
  338. package/build/tools/evidence-retrieval.d.ts +33 -0
  339. package/build/tools/evidence-retrieval.d.ts.map +1 -0
  340. package/build/tools/evidence-retrieval.js +200 -0
  341. package/build/tools/evidence-retrieval.js.map +1 -0
  342. package/build/tools/exact-references.d.ts +10 -0
  343. package/build/tools/exact-references.d.ts.map +1 -0
  344. package/build/tools/exact-references.js +349 -0
  345. package/build/tools/exact-references.js.map +1 -0
  346. package/build/tools/explain.d.ts +14 -0
  347. package/build/tools/explain.d.ts.map +1 -0
  348. package/build/tools/explain.js +370 -0
  349. package/build/tools/explain.js.map +1 -0
  350. package/build/tools/feature-brief.d.ts +7 -0
  351. package/build/tools/feature-brief.d.ts.map +1 -0
  352. package/build/tools/feature-brief.js +89 -0
  353. package/build/tools/feature-brief.js.map +1 -0
  354. package/build/tools/feature-hub.d.ts +15 -0
  355. package/build/tools/feature-hub.d.ts.map +1 -0
  356. package/build/tools/feature-hub.js +404 -0
  357. package/build/tools/feature-hub.js.map +1 -0
  358. package/build/tools/file-skeleton.d.ts +7 -0
  359. package/build/tools/file-skeleton.d.ts.map +1 -0
  360. package/build/tools/file-skeleton.js +190 -0
  361. package/build/tools/file-skeleton.js.map +1 -0
  362. package/build/tools/grep.d.ts +25 -0
  363. package/build/tools/grep.d.ts.map +1 -0
  364. package/build/tools/grep.js +341 -0
  365. package/build/tools/grep.js.map +1 -0
  366. package/build/tools/impact-delta.d.ts +7 -0
  367. package/build/tools/impact-delta.d.ts.map +1 -0
  368. package/build/tools/impact-delta.js +102 -0
  369. package/build/tools/impact-delta.js.map +1 -0
  370. package/build/tools/memory-tools.d.ts +69 -0
  371. package/build/tools/memory-tools.d.ts.map +1 -0
  372. package/build/tools/memory-tools.js +366 -0
  373. package/build/tools/memory-tools.js.map +1 -0
  374. package/build/tools/planning-helpers.d.ts +26 -0
  375. package/build/tools/planning-helpers.d.ts.map +1 -0
  376. package/build/tools/planning-helpers.js +269 -0
  377. package/build/tools/planning-helpers.js.map +1 -0
  378. package/build/tools/project-graph.d.ts +19 -0
  379. package/build/tools/project-graph.d.ts.map +1 -0
  380. package/build/tools/project-graph.js +259 -0
  381. package/build/tools/project-graph.js.map +1 -0
  382. package/build/tools/propose-commit.d.ts +9 -0
  383. package/build/tools/propose-commit.d.ts.map +1 -0
  384. package/build/tools/propose-commit.js +156 -0
  385. package/build/tools/propose-commit.js.map +1 -0
  386. package/build/tools/register-tools.d.ts +18 -0
  387. package/build/tools/register-tools.d.ts.map +1 -0
  388. package/build/tools/register-tools.js +1131 -0
  389. package/build/tools/register-tools.js.map +1 -0
  390. package/build/tools/reindex.d.ts +76 -0
  391. package/build/tools/reindex.d.ts.map +1 -0
  392. package/build/tools/reindex.js +871 -0
  393. package/build/tools/reindex.js.map +1 -0
  394. package/build/tools/related.d.ts +6 -0
  395. package/build/tools/related.d.ts.map +1 -0
  396. package/build/tools/related.js +143 -0
  397. package/build/tools/related.js.map +1 -0
  398. package/build/tools/repo-map.d.ts +59 -0
  399. package/build/tools/repo-map.d.ts.map +1 -0
  400. package/build/tools/repo-map.js +270 -0
  401. package/build/tools/repo-map.js.map +1 -0
  402. package/build/tools/resolve-symbol.d.ts +41 -0
  403. package/build/tools/resolve-symbol.d.ts.map +1 -0
  404. package/build/tools/resolve-symbol.js +250 -0
  405. package/build/tools/resolve-symbol.js.map +1 -0
  406. package/build/tools/retrieval-helpers.d.ts +35 -0
  407. package/build/tools/retrieval-helpers.d.ts.map +1 -0
  408. package/build/tools/retrieval-helpers.js +302 -0
  409. package/build/tools/retrieval-helpers.js.map +1 -0
  410. package/build/tools/scip-index.d.ts +12 -0
  411. package/build/tools/scip-index.d.ts.map +1 -0
  412. package/build/tools/scip-index.js +66 -0
  413. package/build/tools/scip-index.js.map +1 -0
  414. package/build/tools/scoped-discovery.d.ts +7 -0
  415. package/build/tools/scoped-discovery.d.ts.map +1 -0
  416. package/build/tools/scoped-discovery.js +89 -0
  417. package/build/tools/scoped-discovery.js.map +1 -0
  418. package/build/tools/search.d.ts +62 -0
  419. package/build/tools/search.d.ts.map +1 -0
  420. package/build/tools/search.js +419 -0
  421. package/build/tools/search.js.map +1 -0
  422. package/build/tools/semantic-diff.d.ts +7 -0
  423. package/build/tools/semantic-diff.d.ts.map +1 -0
  424. package/build/tools/semantic-diff.js +45 -0
  425. package/build/tools/semantic-diff.js.map +1 -0
  426. package/build/tools/semantic-identifiers.d.ts +51 -0
  427. package/build/tools/semantic-identifiers.d.ts.map +1 -0
  428. package/build/tools/semantic-identifiers.js +522 -0
  429. package/build/tools/semantic-identifiers.js.map +1 -0
  430. package/build/tools/semantic-navigate.d.ts +18 -0
  431. package/build/tools/semantic-navigate.d.ts.map +1 -0
  432. package/build/tools/semantic-navigate.js +413 -0
  433. package/build/tools/semantic-navigate.js.map +1 -0
  434. package/build/tools/semantic-search.d.ts +30 -0
  435. package/build/tools/semantic-search.d.ts.map +1 -0
  436. package/build/tools/semantic-search.js +466 -0
  437. package/build/tools/semantic-search.js.map +1 -0
  438. package/build/tools/sql-schema.d.ts +23 -0
  439. package/build/tools/sql-schema.d.ts.map +1 -0
  440. package/build/tools/sql-schema.js +155 -0
  441. package/build/tools/sql-schema.js.map +1 -0
  442. package/build/tools/static-analysis.d.ts +7 -0
  443. package/build/tools/static-analysis.d.ts.map +1 -0
  444. package/build/tools/static-analysis.js +331 -0
  445. package/build/tools/static-analysis.js.map +1 -0
  446. package/build/tools/status.d.ts +74 -0
  447. package/build/tools/status.d.ts.map +1 -0
  448. package/build/tools/status.js +227 -0
  449. package/build/tools/status.js.map +1 -0
  450. package/build/tools/symbolic-edit.d.ts +57 -0
  451. package/build/tools/symbolic-edit.d.ts.map +1 -0
  452. package/build/tools/symbolic-edit.js +500 -0
  453. package/build/tools/symbolic-edit.js.map +1 -0
  454. package/build/tools/test-impact.d.ts +7 -0
  455. package/build/tools/test-impact.d.ts.map +1 -0
  456. package/build/tools/test-impact.js +34 -0
  457. package/build/tools/test-impact.js.map +1 -0
  458. package/build/tools/test-map.d.ts +8 -0
  459. package/build/tools/test-map.d.ts.map +1 -0
  460. package/build/tools/test-map.js +75 -0
  461. package/build/tools/test-map.js.map +1 -0
  462. package/docs/README.md +26 -0
  463. package/docs/architecture.md +35 -0
  464. package/docs/configuration.md +178 -0
  465. package/docs/maintenance.md +77 -0
  466. package/package.json +80 -4
@@ -0,0 +1,419 @@
1
+ // Unified semantic search over files, identifiers, or both with metadata
2
+ // FEATURE: Search — single entry point for structured and text discovery
3
+ import { applySearchPreset, formatSemanticCodeSearchData, semanticCodeSearchResults, invalidateSearchCache } from "./semantic-search.js";
4
+ import { formatSemanticIdentifierSearchData, semanticIdentifierSearchResults, invalidateIdentifierSearchCache } from "./semantic-identifiers.js";
5
+ import { ensureFreshIndex } from "../core/index-freshness.js";
6
+ import { loadProjectConfig } from "../core/project-config.js";
7
+ import { persistArtifact, canonicalArtifactKey } from "../core/artifacts.js";
8
+ import { buildFreshnessMetadata, buildTrustMetadata, getIndexState } from "../core/context-metadata.js";
9
+ import { getDB } from "../core/db.js";
10
+ import { discoveryPathWeight } from "./discovery-hints.js";
11
+ import { withQueryEmbeddingCache, matchesSearchConstraints } from "../core/embeddings.js";
12
+ export { invalidateSearchCache, invalidateIdentifierSearchCache };
13
+ function buildEvidence(input) {
14
+ return [
15
+ ...(input.files && input.files.results.length > 0 ? [`${input.files.results.length} ranked file matches`] : []),
16
+ ...(input.identifiers && input.identifiers.results.length > 0 ? [`${input.identifiers.results.length} ranked identifier matches`] : []),
17
+ ...(input.freshness.refreshed && input.freshness.staleCount > 0 ? [`auto-refreshed ${input.freshness.staleCount} stale files`] : []),
18
+ ...(input.freshness.indexGeneration > 0 ? [`index generation ${input.freshness.indexGeneration}`] : []),
19
+ ...(input.mode === "hybrid" ? ["hybrid retrieval across files and identifiers"] : []),
20
+ ];
21
+ }
22
+ function computeTopBreakdown(input) {
23
+ // Pick the single best result across whichever surfaces are present.
24
+ const topFile = input.files?.results[0];
25
+ const topId = input.identifiers?.results[0];
26
+ let best = null;
27
+ if (topFile && (topFile.score ?? 0) >= (topId?.score ?? 0)) {
28
+ best = { path: topFile.path, semantic: topFile.semanticScore, keyword: topFile.keywordScore, combined: topFile.score };
29
+ }
30
+ else if (topId) {
31
+ best = { path: topId.path, semantic: topId.semanticScore, keyword: topId.keywordScore, combined: topId.score };
32
+ }
33
+ else if (topFile) {
34
+ best = { path: topFile.path, semantic: topFile.semanticScore, keyword: topFile.keywordScore, combined: topFile.score };
35
+ }
36
+ if (!best)
37
+ return undefined;
38
+ const sem = best.semantic;
39
+ const kw = best.keyword;
40
+ let signal;
41
+ if (sem < 5 && kw < 5)
42
+ signal = "none";
43
+ else if (sem < 5)
44
+ signal = "keyword-dominant";
45
+ else if (kw < 5)
46
+ signal = "semantic-dominant";
47
+ else if (Math.abs(sem - kw) > 35)
48
+ signal = sem > kw ? "semantic-dominant" : "keyword-dominant";
49
+ else
50
+ signal = "balanced";
51
+ // Confidence label is bound by min(semantic, keyword) so a keyword-only hit can't read "high".
52
+ const minComponent = Math.min(sem, kw);
53
+ let confidenceLabel;
54
+ if (minComponent >= 50)
55
+ confidenceLabel = "high";
56
+ else if (minComponent >= 20)
57
+ confidenceLabel = "medium";
58
+ else
59
+ confidenceLabel = "low";
60
+ return { ...best, signal, confidenceLabel };
61
+ }
62
+ function buildAmbiguities(input) {
63
+ const filesAllKeywordOnly = input.files
64
+ && input.files.results.length > 0
65
+ && input.files.results.every((result) => result.semanticScore <= 0);
66
+ const identifiersAllKeywordOnly = input.identifiers
67
+ && input.identifiers.results.length > 0
68
+ && input.identifiers.results.every((result) => result.semanticScore <= 0);
69
+ const topFile = input.files?.results[0];
70
+ const topId = input.identifiers?.results[0];
71
+ const topKeywordOnly = (topFile && topFile.semanticScore < 20 && topFile.keywordScore > 60)
72
+ || (topId && topId.semanticScore < 20 && topId.keywordScore > 60);
73
+ return [
74
+ ...(input.files && input.files.results.length === 0 ? ["no file matches found"] : []),
75
+ ...(input.identifiers && input.identifiers.results.length === 0 ? ["no identifier matches found"] : []),
76
+ ...(topKeywordOnly
77
+ ? [`top hit is keyword-only (semantic≈0); it matches the query text but may not be semantically relevant — verify before trusting`]
78
+ : []),
79
+ ...(input.keywordOnlyRequested ? ["keyword_only preset selected; semantic evidence was not requested"] : []),
80
+ ...(filesAllKeywordOnly && !input.keywordOnlyRequested ? ["file search results are keyword-only; check status for corpus readiness and provider health"] : []),
81
+ ...(identifiersAllKeywordOnly && !input.keywordOnlyRequested ? ["identifier search results are keyword-only; check status for corpus readiness and provider health"] : []),
82
+ ...(input.files && input.files.results.length > 1 && Math.abs(input.files.results[0].score - input.files.results[1].score) < 5
83
+ ? ["top file matches are close in score"]
84
+ : []),
85
+ ...(input.identifiers && input.identifiers.results.length > 1 && Math.abs(input.identifiers.results[0].score - input.identifiers.results[1].score) < 8
86
+ ? ["top identifier matches are close in score"]
87
+ : []),
88
+ ];
89
+ }
90
+ export function extractIdentifierHints(query) {
91
+ const rawTokens = query.match(/[A-Za-z_$][\w$]*/g) ?? [];
92
+ const marked = new Set([
93
+ ...[...query.matchAll(/[`'"]([A-Za-z_$][\w$]*)[`'"]/g)].map(match => match[1]),
94
+ ...[...query.matchAll(/\b(?:function|class|method|symbol|(?:definition|implementation)(?:\s+of)?)\s+([A-Za-z_$][\w$]*)/gi)].map(match => match[1]),
95
+ ]);
96
+ const unique = new Map();
97
+ const queryTrimmed = query.trim();
98
+ for (const token of rawTokens) {
99
+ if (token.length < 3 && rawTokens.length !== 1 && !marked.has(token))
100
+ continue;
101
+ const looksIdentifier = /[A-Z_$]/.test(token) || marked.has(token) || rawTokens.length === 1 || queryTrimmed === token;
102
+ if (!looksIdentifier)
103
+ continue;
104
+ unique.set(token, token);
105
+ }
106
+ return [...unique.values()];
107
+ }
108
+ function formatLineRange(line, endLine) {
109
+ return endLine && endLine > line ? `L${line}-L${endLine}` : `L${line}`;
110
+ }
111
+ async function applyExactSymbolFileBoosts(rootDir, query, files, topK) {
112
+ if (!files)
113
+ return files;
114
+ const hints = extractIdentifierHints(query);
115
+ if (hints.length === 0)
116
+ return files;
117
+ const db = await getDB(rootDir);
118
+ const exactSymbols = hints.flatMap((hint) =>
119
+ // Prose capitalizations such as "Pro" are not evidence for a local `pro`
120
+ // variable in every test. Standalone name lookups remain case-insensitive.
121
+ db.searchSymbolsByName(hint).filter((symbol) => query.trim() === hint
122
+ ? symbol.name.toLowerCase() === hint.toLowerCase() : symbol.name === hint));
123
+ if (exactSymbols.length === 0)
124
+ return files;
125
+ const exactPaths = new Set();
126
+ const symbolLocationsByPath = new Map();
127
+ const symbolsByPath = new Map();
128
+ const allFiles = db.getAllFiles();
129
+ const semanticBackedScores = files.results
130
+ .filter((result) => result.semanticScore > 40)
131
+ .map((result) => result.score);
132
+ const keywordOnlyCap = semanticBackedScores.length > 0
133
+ ? Math.max(0, Math.min(...semanticBackedScores) - 0.01)
134
+ : /^[A-Za-z_$][\w$]*$/.test(query.trim()) ? 100 : 65;
135
+ for (const symbol of exactSymbols) {
136
+ const file = allFiles.find((candidate) => candidate.id === symbol.file_id);
137
+ if (!file)
138
+ continue;
139
+ exactPaths.add(file.path);
140
+ const existingSymbols = symbolsByPath.get(file.path) ?? [];
141
+ if (!existingSymbols.includes(symbol.name))
142
+ existingSymbols.push(symbol.name);
143
+ symbolsByPath.set(file.path, existingSymbols);
144
+ const existingLocations = symbolLocationsByPath.get(file.path) ?? [];
145
+ existingLocations.push(`${symbol.name}@${formatLineRange(symbol.line_start, symbol.line_end)}`);
146
+ symbolLocationsByPath.set(file.path, existingLocations);
147
+ }
148
+ const boosted = files.results.map((result) => {
149
+ const matchedExactSymbols = (symbolsByPath.get(result.path) ?? []).filter((name) => result.matchedSymbols.includes(name) || exactPaths.has(result.path));
150
+ const exactPathBoost = exactPaths.has(result.path) ? 25 : 0;
151
+ const exactSymbolBoost = matchedExactSymbols.length > 0 ? 12 : 0;
152
+ if (exactPathBoost === 0 && exactSymbolBoost === 0)
153
+ return result;
154
+ // Keep exact-name evidence, but never let a zero-semantic result jump above a result with
155
+ // strong semantic agreement. The keyword component remains honest at 100.
156
+ const rawCombined = result.score + exactPathBoost + exactSymbolBoost;
157
+ const weight = discoveryPathWeight(query, result.path, true);
158
+ const cap = (result.semanticScore < 15 ? keywordOnlyCap : 100) * weight;
159
+ return {
160
+ ...result,
161
+ score: Math.max(result.score, Math.min(cap, Math.round(rawCombined * 100) / 100)),
162
+ keywordScore: Math.min(100, Math.round(Math.max(result.keywordScore, matchedExactSymbols.length > 0 ? 96 : result.keywordScore) * 10) / 10),
163
+ matchedSymbols: [...new Set([...matchedExactSymbols, ...result.matchedSymbols])],
164
+ matchedSymbolLocations: [...new Set([...(symbolLocationsByPath.get(result.path) ?? []), ...result.matchedSymbolLocations])],
165
+ };
166
+ });
167
+ const missingExactFiles = [...exactPaths].filter((path) => !boosted.some((result) => result.path === path));
168
+ for (const path of missingExactFiles) {
169
+ const dbFile = db.getFile(path);
170
+ boosted.push({
171
+ path,
172
+ // A hit found only through the symbol table stays below every strong semantic result.
173
+ score: keywordOnlyCap * discoveryPathWeight(query, path, true),
174
+ semanticScore: 0,
175
+ keywordScore: 100,
176
+ header: dbFile?.header ?? "",
177
+ matchedSymbols: symbolsByPath.get(path) ?? [],
178
+ matchedSymbolLocations: symbolLocationsByPath.get(path) ?? [],
179
+ });
180
+ }
181
+ return {
182
+ ...files,
183
+ results: boosted
184
+ .sort((left, right) => right.score - left.score || right.keywordScore - left.keywordScore || left.path.localeCompare(right.path))
185
+ .slice(0, topK ?? boosted.length),
186
+ };
187
+ }
188
+ export function unifiedSearchData(options) {
189
+ return withQueryEmbeddingCache(() => unifiedSearchDataUncached(options));
190
+ }
191
+ async function unifiedSearchDataUncached(options) {
192
+ const started = performance.now();
193
+ options = { ...options, ...applySearchPreset(options) };
194
+ const refreshState = await ensureFreshIndex(options.rootDir);
195
+ const { staleCount, refreshed } = refreshState;
196
+ const refreshedAt = performance.now();
197
+ const mode = options.mode ?? "hybrid";
198
+ const staleWarning = refreshState.warning;
199
+ const [config, indexState] = await Promise.all([
200
+ loadProjectConfig(options.rootDir),
201
+ getIndexState(options.rootDir),
202
+ ]);
203
+ const freshness = buildFreshnessMetadata(indexState, {
204
+ staleCount,
205
+ refreshed,
206
+ warning: staleWarning,
207
+ complete: refreshState.checked && !refreshState.warning,
208
+ });
209
+ const repo = {
210
+ root: options.rootDir,
211
+ projectId: config?.projectId ?? null,
212
+ clientId: config?.clientId ?? null,
213
+ fingerprint: config?.repoFingerprint ?? null,
214
+ };
215
+ let files;
216
+ let identifiers;
217
+ if (mode === "file") {
218
+ files = await semanticCodeSearchResults(options);
219
+ }
220
+ else if (mode === "identifier") {
221
+ identifiers = await semanticIdentifierSearchResults({
222
+ rootDir: options.rootDir,
223
+ query: options.query,
224
+ topK: options.topK,
225
+ preset: options.preset,
226
+ expandCallers: options.expandCallers,
227
+ topCallsPerIdentifier: options.topCallsPerIdentifier,
228
+ includeKinds: options.includeKinds,
229
+ semanticWeight: options.semanticWeight,
230
+ keywordWeight: options.keywordWeight,
231
+ minSemanticScore: options.minSemanticScore,
232
+ minKeywordScore: options.minKeywordScore,
233
+ minCombinedScore: options.minCombinedScore,
234
+ requireKeywordMatch: options.requireKeywordMatch,
235
+ requireSemanticMatch: options.requireSemanticMatch,
236
+ });
237
+ }
238
+ else {
239
+ [files, identifiers] = await Promise.all([
240
+ semanticCodeSearchResults({
241
+ rootDir: options.rootDir,
242
+ query: options.query,
243
+ preset: options.preset,
244
+ topK: options.topK,
245
+ semanticWeight: options.semanticWeight,
246
+ keywordWeight: options.keywordWeight,
247
+ minSemanticScore: options.minSemanticScore,
248
+ minKeywordScore: options.minKeywordScore,
249
+ minCombinedScore: options.minCombinedScore,
250
+ requireKeywordMatch: options.requireKeywordMatch,
251
+ requireSemanticMatch: options.requireSemanticMatch,
252
+ fusion: options.fusion,
253
+ inlineCode: options.inlineCode,
254
+ }),
255
+ semanticIdentifierSearchResults({
256
+ rootDir: options.rootDir,
257
+ query: options.query,
258
+ topK: options.topK,
259
+ preset: options.preset,
260
+ expandCallers: options.expandCallers,
261
+ topCallsPerIdentifier: options.topCallsPerIdentifier,
262
+ includeKinds: options.includeKinds,
263
+ semanticWeight: options.semanticWeight,
264
+ keywordWeight: options.keywordWeight,
265
+ minSemanticScore: options.minSemanticScore,
266
+ minKeywordScore: options.minKeywordScore,
267
+ minCombinedScore: options.minCombinedScore,
268
+ requireKeywordMatch: options.requireKeywordMatch,
269
+ requireSemanticMatch: options.requireSemanticMatch,
270
+ }),
271
+ ]);
272
+ }
273
+ files = await applyExactSymbolFileBoosts(options.rootDir, options.query, files, undefined);
274
+ if (files)
275
+ files.results = files.results.filter((result) => matchesSearchConstraints(result, options)).slice(0, options.topK ?? 5);
276
+ if (identifiers)
277
+ identifiers.results = identifiers.results.filter((result) => matchesSearchConstraints(result, options)).slice(0, options.topK ?? 5);
278
+ const evidence = buildEvidence({ mode, files, identifiers, freshness });
279
+ const ambiguities = buildAmbiguities({ files, identifiers, keywordOnlyRequested: options.preset === "keyword_only" });
280
+ const topResultBreakdown = computeTopBreakdown({ mode, files, identifiers });
281
+ // Base confidence reflects the actual signal quality. A keyword-only top hit (semantic≈0)
282
+ // can't read as high confidence — bound by min(semantic, keyword) of the top result.
283
+ const hasResults = (files?.results.length ?? 0) > 0 || (identifiers?.results.length ?? 0) > 0;
284
+ let baseConfidence;
285
+ if (!hasResults) {
286
+ baseConfidence = 0.32;
287
+ }
288
+ else if (topResultBreakdown) {
289
+ const minComp = Math.min(topResultBreakdown.semantic, topResultBreakdown.keyword) / 100;
290
+ // Map the min-component into a 0.4–0.85 band so we never over- or under-claim.
291
+ baseConfidence = Math.max(0.4, Math.min(0.85, 0.4 + minComp * 0.5));
292
+ }
293
+ else {
294
+ baseConfidence = 0.74;
295
+ }
296
+ const partial = {
297
+ repo,
298
+ query: options.query,
299
+ mode,
300
+ freshness,
301
+ trust: buildTrustMetadata({
302
+ baseConfidence,
303
+ freshness,
304
+ evidence,
305
+ ambiguities,
306
+ artifact: null,
307
+ }),
308
+ topResultBreakdown,
309
+ files,
310
+ identifiers,
311
+ };
312
+ if (options.includeDependencies && files) {
313
+ const db = await getDB(options.rootDir);
314
+ const inventory = new Map(db.getAllFiles().map(file => [file.id, file]));
315
+ const seen = new Set(files.results.map(file => file.path));
316
+ const candidates = [];
317
+ const terms = options.query.toLowerCase().match(/[a-z0-9]+/g) ?? [];
318
+ for (const source of files.results.slice(0, 2)) {
319
+ const file = db.getFile(source.path);
320
+ if (!file)
321
+ continue;
322
+ for (const edge of db.getImportsFrom(file.id)) {
323
+ const target = edge.target_file_id ? inventory.get(edge.target_file_id) : undefined;
324
+ if (!target || seen.has(target.path))
325
+ continue;
326
+ seen.add(target.path);
327
+ const text = `${target.path} ${edge.symbols_imported ?? ""}`.toLowerCase();
328
+ candidates.push({ path: target.path, importedBy: file.path, symbols: edge.symbols_imported, score: terms.filter(term => term.length > 2 && text.includes(term)).length });
329
+ }
330
+ }
331
+ partial.dependencies = candidates.sort((a, b) => b.score - a.score || a.path.localeCompare(b.path)).slice(0, 3).map(({ score, ...item }) => item);
332
+ }
333
+ const retrievedAt = performance.now();
334
+ let artifact = null;
335
+ if (options.persistArtifact === true) {
336
+ artifact = await persistArtifact({
337
+ rootDir: options.rootDir,
338
+ kind: "search",
339
+ key: canonicalArtifactKey({
340
+ query: options.query,
341
+ mode,
342
+ topK: options.topK ?? null,
343
+ includeKinds: options.includeKinds ?? [],
344
+ }),
345
+ repoFingerprint: repo.fingerprint,
346
+ projectId: repo.projectId,
347
+ clientId: repo.clientId,
348
+ indexGeneration: freshness.indexGeneration,
349
+ metadata: {
350
+ query: options.query,
351
+ mode,
352
+ },
353
+ payload: partial,
354
+ });
355
+ }
356
+ return {
357
+ ...partial,
358
+ ...(options.profile ? { timingsMs: { freshness: refreshedAt - started, retrievalAndRanking: retrievedAt - refreshedAt, artifact: performance.now() - retrievedAt, total: performance.now() - started } } : {}),
359
+ trust: buildTrustMetadata({
360
+ baseConfidence,
361
+ freshness,
362
+ evidence,
363
+ ambiguities,
364
+ artifact,
365
+ }),
366
+ };
367
+ }
368
+ function buildQualityBanner(data) {
369
+ const b = data.topResultBreakdown;
370
+ if (!b)
371
+ return "";
372
+ // confidenceLabel is already bound by min(semantic, keyword) in computeTopBreakdown.
373
+ let suffix = "";
374
+ if (b.signal === "keyword-dominant" && b.semantic < 5) {
375
+ suffix = ` — keyword-only (semantic=0); matches query text but may not be semantically relevant`;
376
+ }
377
+ else if (b.signal === "semantic-dominant" && b.keyword < 5) {
378
+ suffix = ` — semantic-only (keyword=0); conceptual match, no literal token overlap`;
379
+ }
380
+ else {
381
+ suffix = ` — ${b.signal}`;
382
+ }
383
+ return `Confidence: ${b.confidenceLabel} (top: ${Math.round(b.combined)}% combined, semantic=${Math.round(b.semantic)}%, keyword=${Math.round(b.keyword)}%)${suffix}\n\n`;
384
+ }
385
+ export async function unifiedSearch(options) {
386
+ const data = await unifiedSearchData({
387
+ ...options,
388
+ inlineCode: options.inlineCode ?? "crux",
389
+ persistArtifact: options.persistArtifact ?? options.format === "json",
390
+ });
391
+ if (options.format === "json") {
392
+ return JSON.stringify(data, null, 2);
393
+ }
394
+ if (options.format === "compact") {
395
+ return JSON.stringify({
396
+ query: data.query, mode: data.mode,
397
+ freshness: data.freshness,
398
+ confidence: data.topResultBreakdown,
399
+ warnings: data.trust.ambiguities,
400
+ ...(data.timingsMs ? { timingsMs: data.timingsMs } : {}),
401
+ files: data.files?.results.map(({ path, score, inlineCode, matchedSymbolLocations }) => ({
402
+ path, score, definitions: matchedSymbolLocations, code: inlineCode,
403
+ })),
404
+ identifiers: data.identifiers,
405
+ dependencies: data.dependencies,
406
+ });
407
+ }
408
+ const warning = data.freshness.warning ? `\n⚠ ${data.freshness.warning}\n\n` : "";
409
+ const quality = buildQualityBanner(data);
410
+ const dependencies = data.dependencies?.length ? `\nImport dependencies (pointers, not relevance claims):\n${data.dependencies.map(item => ` ${item.path} ← ${item.importedBy}`).join("\n")}\n` : "";
411
+ if (data.mode === "file") {
412
+ return warning + quality + formatSemanticCodeSearchData(data.files ?? { query: data.query, results: [] }) + dependencies;
413
+ }
414
+ if (data.mode === "identifier") {
415
+ return warning + quality + formatSemanticIdentifierSearchData(data.identifiers ?? { query: data.query, results: [] }, options.includeKinds);
416
+ }
417
+ return `${warning}${quality}=== FILE MATCHES ===\n\n${formatSemanticCodeSearchData(data.files ?? { query: data.query, results: [] })}\n\n=== IDENTIFIER MATCHES ===\n\n${formatSemanticIdentifierSearchData(data.identifiers ?? { query: data.query, results: [] }, options.includeKinds)}${dependencies}`;
418
+ }
419
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export interface SemanticDiffToolOptions {
2
+ rootDir: string;
3
+ since?: string;
4
+ format?: "text" | "json";
5
+ }
6
+ export declare function getSemanticDiff(options: SemanticDiffToolOptions): Promise<string>;
7
+ //# sourceMappingURL=semantic-diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-diff.d.ts","sourceRoot":"","sources":["../../src/tools/semantic-diff.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AASD,wBAAsB,eAAe,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAMvF"}
@@ -0,0 +1,45 @@
1
+ // semantic_diff tool — agent-facing wrapper over the AST symbol-change engine.
2
+ // FEATURE: "What symbols changed since <ref>" as token-lean text or JSON, pairing
3
+ // with change_impact/blast_radius for the per-PR review loop.
4
+ import { computeSemanticDiff } from "../core/semantic-diff.js";
5
+ const CHANGE_MARK = {
6
+ added: "+",
7
+ removed: "-",
8
+ modified: "~",
9
+ moved: "→",
10
+ };
11
+ export async function getSemanticDiff(options) {
12
+ const result = await computeSemanticDiff(options.rootDir, { since: options.since });
13
+ if (options.format === "json") {
14
+ return JSON.stringify(result, null, 2);
15
+ }
16
+ return formatSemanticDiff(result);
17
+ }
18
+ function formatSemanticDiff(result) {
19
+ const { summary } = result;
20
+ const lines = [
21
+ `=== Semantic Diff (vs ${result.ref}) ===`,
22
+ `Files: ${summary.filesChanged} | +${summary.added} added | ~${summary.modified} modified | -${summary.removed} removed | →${summary.moved} moved`,
23
+ "",
24
+ ];
25
+ if (result.files.length === 0) {
26
+ lines.push("No symbol-level changes detected.");
27
+ return lines.join("\n");
28
+ }
29
+ for (const file of result.files) {
30
+ lines.push(`${file.path} (${file.status})`);
31
+ // Show meaningful changes first; suppress pure moves unless they're all there is.
32
+ const meaningful = file.symbols.filter((s) => s.change !== "moved");
33
+ const shown = meaningful.length > 0 ? meaningful : file.symbols;
34
+ for (const sym of shown) {
35
+ lines.push(` ${CHANGE_MARK[sym.change]} ${sym.kind} ${sym.name} (L${sym.line})`);
36
+ }
37
+ const movedCount = file.symbols.length - meaningful.length;
38
+ if (meaningful.length > 0 && movedCount > 0) {
39
+ lines.push(` (${movedCount} symbol${movedCount === 1 ? "" : "s"} relocated only)`);
40
+ }
41
+ lines.push("");
42
+ }
43
+ return lines.join("\n").trimEnd();
44
+ }
45
+ //# sourceMappingURL=semantic-diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-diff.js","sourceRoot":"","sources":["../../src/tools/semantic-diff.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,kFAAkF;AAClF,8DAA8D;AAE9D,OAAO,EAAE,mBAAmB,EAA8C,MAAM,0BAA0B,CAAC;AAQ3G,MAAM,WAAW,GAAiC;IAChD,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,KAAK,EAAE,GAAG;CACX,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAgC;IACpE,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACpF,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,kBAAkB,CAAC,MAA0B;IACpD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAC3B,MAAM,KAAK,GAAG;QACZ,yBAAyB,MAAM,CAAC,GAAG,OAAO;QAC1C,UAAU,OAAO,CAAC,YAAY,OAAO,OAAO,CAAC,KAAK,aAAa,OAAO,CAAC,QAAQ,gBAAgB,OAAO,CAAC,OAAO,eAAe,OAAO,CAAC,KAAK,QAAQ;QAClJ,EAAE;KACH,CAAC;IAEF,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAChD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5C,kFAAkF;QAClF,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QAChE,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAC3D,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,MAAM,UAAU,UAAU,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC;QACtF,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AACpC,CAAC"}
@@ -0,0 +1,51 @@
1
+ export interface SemanticIdentifierSearchOptions {
2
+ rootDir: string;
3
+ query: string;
4
+ preset?: "fast" | "balanced" | "exhaustive" | "semantic_only" | "keyword_only";
5
+ expandCallers?: boolean;
6
+ topK?: number;
7
+ topCallsPerIdentifier?: number;
8
+ includeKinds?: string[];
9
+ semanticWeight?: number;
10
+ keywordWeight?: number;
11
+ minSemanticScore?: number;
12
+ minKeywordScore?: number;
13
+ minCombinedScore?: number;
14
+ requireKeywordMatch?: boolean;
15
+ requireSemanticMatch?: boolean;
16
+ }
17
+ export interface IdentifierCallSiteResult {
18
+ file: string;
19
+ line: number;
20
+ context: string;
21
+ semanticScore: number;
22
+ keywordScore: number;
23
+ score: number;
24
+ }
25
+ export interface SemanticIdentifierHit {
26
+ name: string;
27
+ kind: string;
28
+ path: string;
29
+ line: number;
30
+ endLine: number;
31
+ signature: string;
32
+ parentName?: string;
33
+ score: number;
34
+ semanticScore: number;
35
+ keywordScore: number;
36
+ calls: IdentifierCallSiteResult[];
37
+ totalCalls: number;
38
+ }
39
+ export interface SemanticIdentifierSearchData {
40
+ query: string;
41
+ results: SemanticIdentifierHit[];
42
+ }
43
+ export declare function semanticIdentifierSearchResults(options: SemanticIdentifierSearchOptions): Promise<SemanticIdentifierSearchData>;
44
+ export declare function formatSemanticIdentifierSearchData({ query, results }: SemanticIdentifierSearchData, includeKinds?: string[]): string;
45
+ export declare function semanticIdentifierSearch(options: SemanticIdentifierSearchOptions): Promise<string>;
46
+ export declare function invalidateIdentifierSearchCache(): void;
47
+ export declare function refreshIdentifierEmbeddings(options: {
48
+ rootDir: string;
49
+ relativePaths: string[];
50
+ }): Promise<number>;
51
+ //# sourceMappingURL=semantic-identifiers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-identifiers.d.ts","sourceRoot":"","sources":["../../src/tools/semantic-identifiers.ts"],"names":[],"mappings":"AAgDA,MAAM,WAAW,+BAA+B;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,YAAY,GAAG,eAAe,GAAG,cAAc,CAAC;IAC/E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,wBAAwB,EAAE,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC;AA+XD,wBAAsB,+BAA+B,CAAC,OAAO,EAAE,+BAA+B,GAAG,OAAO,CAAC,4BAA4B,CAAC,CA6FrI;AAED,wBAAgB,kCAAkC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,4BAA4B,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAiCpI;AAED,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,+BAA+B,GAAG,OAAO,CAAC,MAAM,CAAC,CAExG;AAED,wBAAgB,+BAA+B,IAAI,IAAI,CAItD;AAED,wBAAsB,2BAA2B,CAAC,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAyDxH"}