contextpro-mcp 0.0.0-stage → 1.5.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 +425 -0
  2. package/INSTALL.md +218 -0
  3. package/INSTRUCTIONS.md +33 -0
  4. package/LICENSE +21 -0
  5. package/NOTICE +12 -0
  6. package/README.md +89 -2
  7. package/SECURITY.md +29 -0
  8. package/agent-guide.md +354 -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 +95 -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 +61 -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 +9 -0
  179. package/build/core/root-guard.d.ts.map +1 -0
  180. package/build/core/root-guard.js +64 -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 +634 -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 +351 -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 +35 -0
  463. package/docs/architecture.md +35 -0
  464. package/docs/configuration.md +207 -0
  465. package/docs/maintenance.md +77 -0
  466. package/package.json +80 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-graph.js","sourceRoot":"","sources":["../../src/core/project-graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export type ResolvedProvider = "ollama" | "openai";
2
+ export declare function normalizeProvider(raw: string | undefined): ResolvedProvider;
3
+ /** The selected backend: `ollama` (local) or `openai` (any OpenAI-compatible endpoint). */
4
+ export declare function getProvider(): ResolvedProvider;
5
+ /** Chat backend — defaults to the embed provider unless overridden. */
6
+ export declare function getChatProvider(): ResolvedProvider;
7
+ /** API key for the OpenAI-compatible path. */
8
+ export declare function getApiKey(): string;
9
+ /** Base URL for the OpenAI-compatible path. */
10
+ export declare function getBaseUrl(): string;
11
+ /** Embedding model name. Provider-aware default. */
12
+ export declare function getEmbedModelName(provider?: ResolvedProvider): string;
13
+ /** Chat model name. Provider-aware default. */
14
+ export declare function getChatModelName(provider?: ResolvedProvider): string;
15
+ //# sourceMappingURL=provider-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-config.d.ts","sourceRoot":"","sources":["../../src/core/provider-config.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAiBnD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,gBAAgB,CAI3E;AAID,2FAA2F;AAC3F,wBAAgB,WAAW,IAAI,gBAAgB,CAM9C;AAED,uEAAuE;AACvE,wBAAgB,eAAe,IAAI,gBAAgB,CAQlD;AAED,8CAA8C;AAC9C,wBAAgB,SAAS,IAAI,MAAM,CAOlC;AAED,+CAA+C;AAC/C,wBAAgB,UAAU,IAAI,MAAM,CAOnC;AAED,oDAAoD;AACpD,wBAAgB,iBAAiB,CAAC,QAAQ,GAAE,gBAAgC,GAAG,MAAM,CAWpF;AAED,+CAA+C;AAC/C,wBAAgB,gBAAgB,CAAC,QAAQ,GAAE,gBAAoC,GAAG,MAAM,CAWvF"}
@@ -0,0 +1,67 @@
1
+ // Single source of truth for LLM provider configuration (embeddings + chat).
2
+ // FEATURE: Generic, short env vars with full backward-compatibility to the older long names.
3
+ //
4
+ // Precedence for every setting (first non-empty wins):
5
+ // 1. Generic key — CONTEXTPRO_PROVIDER / _API_KEY / _BASE_URL / _EMBED_MODEL / _CHAT_MODEL
6
+ // 2. Legacy CONTEXTPRO_* — e.g. CONTEXTPRO_EMBED_PROVIDER, CONTEXTPRO_OPENAI_API_KEY
7
+ // 3. Legacy CONTEXTPLUS_* — the pre-rename aliases
8
+ // 4. Provider-native — OLLAMA_* / OPENAI_* (so `OPENAI_API_KEY` etc. just work)
9
+ // 5. Built-in default
10
+ // Any provider speaking the OpenAI /embeddings + /chat/completions API maps to the "openai" path.
11
+ // Aliases are purely for readability — they behave identically. Point CONTEXTPRO_BASE_URL at the
12
+ // endpoint (OpenRouter, Groq, Together, vLLM, LM Studio, …).
13
+ const OPENAI_COMPATIBLE_ALIASES = new Set([
14
+ "openai", "openai-compatible", "compatible", "openrouter", "groq", "together",
15
+ "deepinfra", "vllm", "lmstudio", "litellm", "anyscale", "fireworks", "mistral",
16
+ ]);
17
+ function firstNonEmpty(...values) {
18
+ for (const v of values) {
19
+ if (v !== undefined && v.trim().length > 0)
20
+ return v;
21
+ }
22
+ return undefined;
23
+ }
24
+ export function normalizeProvider(raw) {
25
+ const p = (raw ?? "").trim().toLowerCase();
26
+ if (p === "ollama" || p === "local" || p === "")
27
+ return p === "" ? "ollama" : "ollama";
28
+ return OPENAI_COMPATIBLE_ALIASES.has(p) ? "openai" : "ollama";
29
+ }
30
+ const env = process.env;
31
+ /** The selected backend: `ollama` (local) or `openai` (any OpenAI-compatible endpoint). */
32
+ export function getProvider() {
33
+ return normalizeProvider(firstNonEmpty(env.CONTEXTPRO_PROVIDER, env.CONTEXTPRO_EMBED_PROVIDER, env.CONTEXTPLUS_EMBED_PROVIDER));
34
+ }
35
+ /** Chat backend — defaults to the embed provider unless overridden. */
36
+ export function getChatProvider() {
37
+ return normalizeProvider(firstNonEmpty(env.CONTEXTPRO_CHAT_PROVIDER, env.CONTEXTPLUS_CHAT_PROVIDER, env.CONTEXTPRO_PROVIDER, env.CONTEXTPRO_EMBED_PROVIDER, env.CONTEXTPLUS_EMBED_PROVIDER));
38
+ }
39
+ /** API key for the OpenAI-compatible path. */
40
+ export function getApiKey() {
41
+ return firstNonEmpty(env.CONTEXTPRO_API_KEY, env.CONTEXTPRO_OPENAI_API_KEY, env.CONTEXTPLUS_OPENAI_API_KEY, env.OPENAI_API_KEY) ?? "";
42
+ }
43
+ /** Base URL for the OpenAI-compatible path. */
44
+ export function getBaseUrl() {
45
+ return firstNonEmpty(env.CONTEXTPRO_BASE_URL, env.CONTEXTPRO_OPENAI_BASE_URL, env.CONTEXTPLUS_OPENAI_BASE_URL, env.OPENAI_BASE_URL) ?? "https://api.openai.com/v1";
46
+ }
47
+ /** Embedding model name. Provider-aware default. */
48
+ export function getEmbedModelName(provider = getProvider()) {
49
+ const generic = firstNonEmpty(env.CONTEXTPRO_EMBED_MODEL);
50
+ if (generic)
51
+ return generic;
52
+ if (provider === "openai") {
53
+ return firstNonEmpty(env.CONTEXTPRO_OPENAI_EMBED_MODEL, env.CONTEXTPLUS_OPENAI_EMBED_MODEL, env.OPENAI_EMBED_MODEL) ?? "text-embedding-3-small";
54
+ }
55
+ return firstNonEmpty(env.OLLAMA_EMBED_MODEL) ?? "nomic-embed-text:latest";
56
+ }
57
+ /** Chat model name. Provider-aware default. */
58
+ export function getChatModelName(provider = getChatProvider()) {
59
+ const generic = firstNonEmpty(env.CONTEXTPRO_CHAT_MODEL);
60
+ if (generic)
61
+ return generic;
62
+ if (provider === "openai") {
63
+ return firstNonEmpty(env.CONTEXTPRO_OPENAI_CHAT_MODEL, env.CONTEXTPLUS_OPENAI_CHAT_MODEL, env.OPENAI_CHAT_MODEL) ?? "gpt-4o-mini";
64
+ }
65
+ return firstNonEmpty(env.OLLAMA_CHAT_MODEL) ?? "gemma4:12b";
66
+ }
67
+ //# sourceMappingURL=provider-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-config.js","sourceRoot":"","sources":["../../src/core/provider-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export interface ProviderUsage {
2
+ kind: "embedding" | "chat";
3
+ provider: string;
4
+ model: string;
5
+ inputTokens: number | null;
6
+ outputTokens: number | null;
7
+ cachedInputTokens: number | null;
8
+ durationMs: number;
9
+ status: "ok" | "error";
10
+ startedAt: number;
11
+ }
12
+ export declare function withProviderUsage<T>(fn: () => Promise<T>): Promise<{
13
+ value: T;
14
+ usage: ProviderUsage[];
15
+ }>;
16
+ export declare function observeProviderCall<T>(identity: Pick<ProviderUsage, "kind" | "provider" | "model">, run: () => Promise<T>, extract: (result: T) => {
17
+ input?: unknown;
18
+ output?: unknown;
19
+ cached?: unknown;
20
+ }): Promise<T>;
21
+ //# sourceMappingURL=provider-usage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-usage.d.ts","sourceRoot":"","sources":["../../src/core/provider-usage.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,GAAG,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAC5D,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1F,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;CAC/D;AAED,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,aAAa,EAAE,CAAA;CAAE,CAAC,CAG9G;AAED,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAwB7N"}
@@ -0,0 +1,52 @@
1
+ // Provider-reported counts only. Missing fields remain null, never estimates.
2
+ import { AsyncLocalStorage } from "node:async_hooks";
3
+ import { openSync, closeSync, constants, fstatSync, lstatSync, writeSync } from "node:fs";
4
+ import { isAbsolute } from "node:path";
5
+ const current = new AsyncLocalStorage();
6
+ export async function withProviderUsage(fn) {
7
+ const usage = [];
8
+ return current.run(usage, async () => ({ value: await fn(), usage }));
9
+ }
10
+ const count = (value) => typeof value === "number" && Number.isSafeInteger(value) && value >= 0 ? value : null;
11
+ export async function observeProviderCall(identity, run, extract) {
12
+ const startedAt = Date.now(), start = performance.now();
13
+ let status = "error", counts = {};
14
+ try {
15
+ const result = await run();
16
+ status = "ok";
17
+ counts = extract(result);
18
+ return result;
19
+ }
20
+ finally {
21
+ const event = { ...identity, inputTokens: count(counts.input), outputTokens: count(counts.output), cachedInputTokens: count(counts.cached), startedAt, durationMs: performance.now() - start, status };
22
+ current.getStore()?.push(event);
23
+ const path = process.env.CONTEXTPRO_PROVIDER_TRACE_PATH;
24
+ if (path) {
25
+ let fd;
26
+ try {
27
+ if (!isAbsolute(path))
28
+ throw new Error("absolute trace path required");
29
+ const existing = lstatSync(path, { throwIfNoEntry: false });
30
+ if (existing && !existing.isFile())
31
+ throw new Error("regular trace file required");
32
+ // Recheck the descriptor below. Nonblocking open also closes the race
33
+ // where a regular path becomes a FIFO after the preflight check.
34
+ fd = openSync(path, constants.O_WRONLY | constants.O_APPEND | constants.O_CREAT | constants.O_NOFOLLOW | constants.O_NONBLOCK, 0o600);
35
+ const stat = fstatSync(fd), line = JSON.stringify(event) + "\n";
36
+ if (!stat.isFile() || (stat.mode & 0o077) !== 0 || stat.size + Buffer.byteLength(line) > 64 * 1024 * 1024)
37
+ throw new Error("invalid trace destination");
38
+ writeSync(fd, line);
39
+ }
40
+ catch { /* diagnostics must not break retrieval */ }
41
+ finally {
42
+ if (fd !== undefined) {
43
+ try {
44
+ closeSync(fd);
45
+ }
46
+ catch { }
47
+ }
48
+ }
49
+ }
50
+ }
51
+ }
52
+ //# sourceMappingURL=provider-usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-usage.js","sourceRoot":"","sources":["../../src/core/provider-usage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { CompilerResult } from "./typescript-references.js";
2
+ export declare const pythonLanguageServerConfigured: () => boolean;
3
+ export declare function closePythonLanguageServers(): void;
4
+ type PythonResult = CompilerResult & {
5
+ references?: Array<{
6
+ file: string;
7
+ line: number;
8
+ column: number;
9
+ context: string;
10
+ isDefinition: boolean;
11
+ }>;
12
+ };
13
+ export declare function pythonOperation(input: {
14
+ rootDir: string;
15
+ files: string[];
16
+ operation: "diagnostics" | "rename" | "references";
17
+ file?: string;
18
+ line?: number;
19
+ column?: number;
20
+ newName?: string;
21
+ }): Promise<PythonResult>;
22
+ export {};
23
+ //# sourceMappingURL=python-language-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python-language-server.d.ts","sourceRoot":"","sources":["../../src/core/python-language-server.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAmBjE,eAAO,MAAM,8BAA8B,eAAiD,CAAC;AAC7F,wBAAgB,0BAA0B,IAAI,IAAI,CAGjD;AAuCD,KAAK,YAAY,GAAG,cAAc,GAAG;IAAE,UAAU,CAAC,EAAE,KAAK,CAAC;QAAC,IAAI,EAAC,MAAM,CAAC;QAAA,IAAI,EAAC,MAAM,CAAC;QAAA,MAAM,EAAC,MAAM,CAAC;QAAA,OAAO,EAAC,MAAM,CAAC;QAAA,YAAY,EAAC,OAAO,CAAA;KAAC,CAAC,CAAA;CAAE,CAAC;AACzI,wBAAsB,eAAe,CAAC,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,aAAa,GAAG,QAAQ,GAAG,YAAY,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAgG7N"}
@@ -0,0 +1,217 @@
1
+ // Optional configured Pyright process. No installation, shell execution or runtime downloads.
2
+ import { spawn } from "node:child_process";
3
+ import { readFile, realpath } from "node:fs/promises";
4
+ import { resolve, relative } from "node:path";
5
+ import { pathToFileURL, fileURLToPath } from "node:url";
6
+ import { createHash } from "node:crypto";
7
+ import { createMessageConnection, StreamMessageReader, StreamMessageWriter } from "vscode-jsonrpc/node";
8
+ import pLimit from "p-limit";
9
+ import { resolveProjectPath } from "./path-guard.js";
10
+ import { sharedCompute } from "./local-daemon.js";
11
+ import { pythonRuntimeIdentity } from "./python-runtime-identity.js";
12
+ import { bindEvidence, evidenceConfigurationFiles } from "./evidence-state.js";
13
+ import { walkDirectory } from "./walker.js";
14
+ const sessions = new Map(), limit = pLimit(1);
15
+ export const pythonLanguageServerConfigured = () => !!process.env.CONTEXTPRO_PYRIGHT_COMMAND;
16
+ export function closePythonLanguageServers() {
17
+ for (const session of sessions.values()) {
18
+ clearTimeout(session.idle);
19
+ session.connection.dispose();
20
+ session.process.kill();
21
+ }
22
+ sessions.clear();
23
+ }
24
+ function close(root) {
25
+ const session = sessions.get(root);
26
+ if (session) {
27
+ clearTimeout(session.idle);
28
+ session.connection.dispose();
29
+ session.process.kill();
30
+ sessions.delete(root);
31
+ }
32
+ }
33
+ async function sessionFor(root) {
34
+ const command = process.env.CONTEXTPRO_PYRIGHT_COMMAND;
35
+ if (!command)
36
+ throw new Error("Configure CONTEXTPRO_PYRIGHT_COMMAND to an installed pyright-langserver executable. No runtime downloads are performed.");
37
+ const config = await Promise.all((await evidenceConfigurationFiles(root)).map(async (file) => [file, (await readFile(resolveProjectPath(root, file))).toString("base64")]));
38
+ const identity = createHash("sha256").update(await pythonRuntimeIdentity()).update(process.env.CONTEXTPRO_PYTHON_PATH ?? "").update(JSON.stringify(config)).digest("hex");
39
+ const previous = sessions.get(root);
40
+ if (previous?.identity === identity) {
41
+ clearTimeout(previous.idle);
42
+ return previous;
43
+ }
44
+ if (previous)
45
+ close(root);
46
+ // ponytail: two cached Python projects; the serial queue prevents active-session eviction.
47
+ if (sessions.size >= 2)
48
+ close(sessions.keys().next().value);
49
+ const child = spawn(command, ["--stdio"], { cwd: root, shell: false, stdio: ["pipe", "pipe", "pipe"],
50
+ env: { ...process.env, NODE_OPTIONS: `${process.env.NODE_OPTIONS ?? ""} --max-old-space-size=1024` } });
51
+ const connection = createMessageConnection(new StreamMessageReader(child.stdout), new StreamMessageWriter(child.stdin));
52
+ const session = { process: child, connection, identity, opened: new Map(), diagnostics: new Map() };
53
+ sessions.set(root, session);
54
+ child.stderr.resume();
55
+ child.on("error", () => { if (sessions.get(root) === session)
56
+ close(root); });
57
+ child.on("exit", () => { if (sessions.get(root) === session)
58
+ close(root); });
59
+ connection.onRequest("workspace/configuration", (params) => params.items.map(item => item.section === "python"
60
+ ? { pythonPath: process.env.CONTEXTPRO_PYTHON_PATH } : { diagnosticMode: "openFilesOnly" }));
61
+ connection.onRequest("client/registerCapability", () => null);
62
+ connection.onNotification("textDocument/publishDiagnostics", (params) => { session.diagnostics.set(params.uri, params); });
63
+ connection.listen();
64
+ await connection.sendRequest("initialize", { processId: process.pid, rootUri: pathToFileURL(root).href,
65
+ workspaceFolders: [{ uri: pathToFileURL(root).href, name: root }], capabilities: { workspace: { configuration: true }, textDocument: { publishDiagnostics: { versionSupport: true } } } });
66
+ await connection.sendNotification("initialized", {});
67
+ return session;
68
+ }
69
+ const offset = (text, position) => {
70
+ const lines = text.split("\n");
71
+ if (position.line < 0 || position.line >= lines.length || position.character < 0 || position.character > lines[position.line].length)
72
+ throw new Error("Language server returned an invalid edit range.");
73
+ return lines.slice(0, position.line).reduce((size, line) => size + line.length + 1, 0) + position.character;
74
+ };
75
+ export async function pythonOperation(input) {
76
+ const shared = await sharedCompute("python", input);
77
+ if (shared)
78
+ return shared.value;
79
+ if (limit.pendingCount >= 16)
80
+ throw new Error("Python queue capacity exceeded; narrow the request.");
81
+ return limit(async () => {
82
+ const root = await realpath(input.rootDir);
83
+ const canonicalFile = (file) => resolveProjectPath(root, relative(resolve(input.rootDir), resolveProjectPath(input.rootDir, file)));
84
+ let deadline;
85
+ const work = async () => {
86
+ const session = await sessionFor(root), connection = session.connection;
87
+ const files = [...new Set([...input.files, ...input.file ? [input.file] : []].map(canonicalFile))];
88
+ if (files.length > 1000)
89
+ throw new Error("Python operation exceeds 1,000 files; narrow the workspace.");
90
+ // Imported modules may never be opened by this client. Observe their contents
91
+ // and membership too, rather than reusing diagnostics for unchanged callers.
92
+ const workspace = (await walkDirectory({ rootDir: root, includeHidden: true }))
93
+ .filter(entry => !entry.isDirectory && /\.pyi?$/.test(entry.relativePath)).map(entry => entry.relativePath);
94
+ const state = await bindEvidence(root, [...new Set([...workspace, ...files.map(file => relative(root, file))])].map(file => ({ file })));
95
+ const sources = new Map(state.files.map(item => [pathToFileURL(resolveProjectPath(root, item.file)).href, item.hash]));
96
+ const changes = [];
97
+ if (session.sources) {
98
+ for (const [uri, hash] of sources)
99
+ if (session.sources.get(uri) !== hash)
100
+ changes.push({ uri, type: session.sources.has(uri) ? 2 : 1 });
101
+ for (const uri of session.sources.keys())
102
+ if (!sources.has(uri))
103
+ changes.push({ uri, type: 3 });
104
+ }
105
+ // Close old overlays before notifying disk changes, including deleted imports.
106
+ const active = new Set(files.map(file => pathToFileURL(file).href));
107
+ for (const uri of session.opened.keys())
108
+ if (!active.has(uri)) {
109
+ await connection.sendNotification("textDocument/didClose", { textDocument: { uri } });
110
+ session.opened.delete(uri);
111
+ session.diagnostics.delete(uri);
112
+ }
113
+ if (changes.length)
114
+ await connection.sendNotification("workspace/didChangeWatchedFiles", { changes });
115
+ session.sources = sources;
116
+ for (const file of files) {
117
+ const path = resolveProjectPath(root, file), uri = pathToFileURL(path).href;
118
+ const text = await readFile(path, "utf8"), previous = session.opened.get(uri);
119
+ // A new document version fences off diagnostics queued before an imported
120
+ // source changed, even if the requested document itself is unchanged.
121
+ if (previous?.text === text && !changes.length)
122
+ continue;
123
+ const version = (previous?.version ?? 0) + 1;
124
+ session.diagnostics.delete(uri);
125
+ session.opened.set(uri, { text, version });
126
+ if (previous)
127
+ await connection.sendNotification("textDocument/didChange", { textDocument: { uri, version }, contentChanges: [{ text }] });
128
+ else
129
+ await connection.sendNotification("textDocument/didOpen", { textDocument: { uri, version, languageId: "python", text } });
130
+ }
131
+ const file = input.file ? canonicalFile(input.file) : undefined;
132
+ const textDocument = file ? { uri: pathToFileURL(file).href } : undefined;
133
+ const position = { line: (input.line ?? 1) - 1, character: (input.column ?? 1) - 1 };
134
+ const result = { engine: "pyright", warnings: [] };
135
+ if (input.operation === "references") {
136
+ const references = await connection.sendRequest("textDocument/references", { textDocument, position, context: { includeDeclaration: true } });
137
+ const definitions = await connection.sendRequest("textDocument/definition", { textDocument, position });
138
+ const definitionList = definitions ? Array.isArray(definitions) ? definitions : [definitions] : [];
139
+ result.references = [];
140
+ for (const location of references ?? []) {
141
+ let path;
142
+ try {
143
+ path = resolveProjectPath(root, fileURLToPath(location.uri));
144
+ }
145
+ catch {
146
+ result.warnings.push("External Python references omitted.");
147
+ continue;
148
+ }
149
+ const text = session.opened.get(location.uri)?.text ?? await readFile(path, "utf8");
150
+ result.references.push({ file: relative(root, path), line: location.range.start.line + 1, column: location.range.start.character + 1,
151
+ context: (text.split("\n")[location.range.start.line] ?? "").trim().slice(0, 160),
152
+ isDefinition: definitionList.some(item => item.uri === location.uri && item.range.start.line === location.range.start.line && item.range.start.character === location.range.start.character) });
153
+ }
154
+ }
155
+ else if (input.operation === "rename") {
156
+ if (!await connection.sendRequest("textDocument/prepareRename", { textDocument, position }))
157
+ throw new Error("Python language server cannot rename this target.");
158
+ const response = await connection.sendRequest("textDocument/rename", { textDocument, position, newName: input.newName });
159
+ if (!response)
160
+ throw new Error("Python language server cannot rename this target.");
161
+ const changes = Object.entries(response.changes ?? {});
162
+ for (const change of response.documentChanges ?? []) {
163
+ if (change.kind || !change.textDocument || !change.edits)
164
+ throw new Error("Rename includes unsupported file operations.");
165
+ changes.push([change.textDocument.uri, change.edits]);
166
+ }
167
+ result.edits = [];
168
+ for (const [uri, edits] of changes) {
169
+ const path = resolveProjectPath(root, fileURLToPath(uri), "Python rename");
170
+ const text = session.opened.get(uri)?.text ?? await readFile(path, "utf8");
171
+ for (const edit of edits) {
172
+ const start = offset(text, edit.range.start), end = offset(text, edit.range.end);
173
+ if (end < start)
174
+ throw new Error("Invalid Python rename edit.");
175
+ result.edits.push({ file: relative(root, path), start, length: end - start, text: edit.newText });
176
+ }
177
+ }
178
+ if (!result.edits.length)
179
+ throw new Error("Python language server returned no rename edits.");
180
+ }
181
+ else {
182
+ const end = Date.now() + 15_000;
183
+ while ([...active].some(uri => !session.diagnostics.has(uri) || (session.diagnostics.get(uri)?.version !== undefined && session.diagnostics.get(uri)?.version !== session.opened.get(uri)?.version))) {
184
+ if (Date.now() > end)
185
+ throw new Error("Python diagnostics incomplete; server did not report all requested file versions.");
186
+ await new Promise(done => setTimeout(done, 25));
187
+ }
188
+ result.diagnostics = [...active].flatMap(uri => session.diagnostics.get(uri).diagnostics.map(item => ({ file: relative(root, fileURLToPath(uri)), line: item.range.start.line + 1,
189
+ column: item.range.start.character + 1, severity: item.severity === 1 ? "error" : "warning", code: String(item.code ?? ""), message: item.message.slice(0, 1500) })));
190
+ if (result.diagnostics.length > 500) {
191
+ result.diagnostics = result.diagnostics.slice(0, 500);
192
+ result.warnings.push("Diagnostics capped at 500; narrow files.");
193
+ }
194
+ }
195
+ session.idle = setTimeout(() => close(root), 60_000);
196
+ session.idle.unref();
197
+ childUnref(session);
198
+ return result;
199
+ };
200
+ try {
201
+ return await Promise.race([work(), new Promise((_, reject) => { deadline = setTimeout(() => { close(root); reject(new Error("Python language server timed out.")); }, 30_000); })]);
202
+ }
203
+ catch (error) {
204
+ close(root);
205
+ throw error;
206
+ }
207
+ finally {
208
+ clearTimeout(deadline);
209
+ }
210
+ });
211
+ }
212
+ function childUnref(session) {
213
+ session.process.unref();
214
+ for (const stream of [session.process.stdin, session.process.stdout, session.process.stderr])
215
+ stream.unref?.();
216
+ }
217
+ //# sourceMappingURL=python-language-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python-language-server.js","sourceRoot":"","sources":["../../src/core/python-language-server.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,OAAO,EAAE,KAAK,EAAuC,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,mBAAmB,EAA0B,MAAM,qBAAqB,CAAC;AAChI,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAc5C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmB,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;AAC7F,MAAM,UAAU,0BAA0B;IACxC,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAAC,CAAC;IAC9H,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC;AACD,SAAS,KAAK,CAAC,IAAY;IACzB,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,OAAO,EAAE,CAAC;QAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;AAC3H,CAAC;AACD,KAAK,UAAU,UAAU,CAAC,IAAY;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;IACvD,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,yHAAyH,CAAC,CAAC;IACzJ,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAC,IAAI,EAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,QAAQ,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1K,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,qBAAqB,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1K,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,QAAQ,EAAE,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAAC,OAAO,QAAQ,CAAC;IAAC,CAAC;IACtF,IAAI,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,2FAA2F;IAC3F,IAAI,QAAQ,CAAC,IAAI,IAAI,CAAC;QAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAM,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAClG,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,4BAA4B,EAAE,EAAE,CAAC,CAAC;IAC1G,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACxH,MAAM,OAAO,GAAY,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;IAC7G,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5B,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,UAAU,CAAC,SAAS,CAAC,yBAAyB,EAAE,CAAC,MAAwC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ;QAC9I,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;IAC/F,UAAU,CAAC,SAAS,CAAC,2BAA2B,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC9D,UAAU,CAAC,cAAc,CAAC,iCAAiC,EAAE,CAAC,MAA6D,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClL,UAAU,CAAC,MAAM,EAAE,CAAC;IACpB,MAAM,UAAU,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI;QACpG,gBAAgB,EAAE,CAAC,EAAC,GAAG,EAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,kBAAkB,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACxL,MAAM,UAAU,CAAC,gBAAgB,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACrD,OAAO,OAAO,CAAC;AACjB,CAAC;AACD,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,QAAkB,EAAU,EAAE;IAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC,SAAS,GAAG,CAAC,IAAI,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACzM,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAC,IAAI,EAAC,EAAE,CAAA,IAAI,GAAC,IAAI,CAAC,MAAM,GAAC,CAAC,EAAC,CAAC,CAAC,GAAC,QAAQ,CAAC,SAAS,CAAC;AACnG,CAAC,CAAC;AAGF,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAgK;IACpM,MAAM,MAAM,GAAG,MAAM,aAAa,CAAe,QAAQ,EAAE,KAAK,CAAC,CAAC;IAClE,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC;IAChC,IAAI,KAAK,CAAC,YAAY,IAAI,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACrG,OAAO,KAAK,CAAC,KAAK,IAAI,EAAE;QACtB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5I,IAAI,QAAwB,CAAC;QAC7B,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACtB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YACxE,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACnG,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;YACxG,8EAA8E;YAC9E,6EAA6E;YAC7E,MAAM,SAAS,GAAG,CAAC,MAAM,aAAa,CAAC,EAAC,OAAO,EAAC,IAAI,EAAC,aAAa,EAAC,IAAI,EAAC,CAAC,CAAC;iBACvE,MAAM,CAAC,KAAK,CAAA,EAAE,CAAA,CAAC,KAAK,CAAC,WAAW,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAA,EAAE,CAAA,KAAK,CAAC,YAAY,CAAC,CAAC;YAC1G,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,EAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAA,EAAE,CAAA,QAAQ,CAAC,IAAI,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAA,EAAE,CAAA,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC;YACjI,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAA,EAAE,CAAA,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnH,MAAM,OAAO,GAAoC,EAAE,CAAC;YACpD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,KAAK,MAAM,CAAC,GAAG,EAAC,IAAI,CAAC,IAAI,OAAO;oBAAE,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAG,IAAI;wBAAE,OAAO,CAAC,IAAI,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,EAAC,CAAC,CAAC;gBAC7H,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE;oBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;wBAAE,OAAO,CAAC,IAAI,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,CAAC;YAC9F,CAAC;YACD,+EAA+E;YAC/E,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAA,EAAE,CAAA,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAClE,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;gBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC9D,MAAM,UAAU,CAAC,gBAAgB,CAAC,uBAAuB,EAAC,EAAC,YAAY,EAAC,EAAC,GAAG,EAAC,EAAC,CAAC,CAAC;oBAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC/I,CAAC;YACD,IAAI,OAAO,CAAC,MAAM;gBAAE,MAAM,UAAU,CAAC,gBAAgB,CAAC,iCAAiC,EAAC,EAAC,OAAO,EAAC,CAAC,CAAC;YACnG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;YAC1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,EAAC,IAAI,CAAC,EAAE,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;gBAC3E,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC7E,0EAA0E;gBAC1E,sEAAsE;gBACtE,IAAI,QAAQ,EAAE,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM;oBAAE,SAAS;gBACzD,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC;gBAC3C,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAC,EAAC,IAAI,EAAC,OAAO,EAAC,CAAC,CAAC;gBACvC,IAAI,QAAQ;oBAAE,MAAM,UAAU,CAAC,gBAAgB,CAAC,wBAAwB,EAAC,EAAC,YAAY,EAAC,EAAC,GAAG,EAAC,OAAO,EAAC,EAAC,cAAc,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,CAAC;;oBAC1H,MAAM,UAAU,CAAC,gBAAgB,CAAC,sBAAsB,EAAC,EAAC,YAAY,EAAC,EAAC,GAAG,EAAC,OAAO,EAAC,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAC,EAAC,CAAC,CAAC;YACvH,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,EAAC,GAAG,EAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvE,MAAM,QAAQ,GAAG,EAAC,IAAI,EAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,GAAC,CAAC,EAAC,SAAS,EAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,GAAC,CAAC,EAAC,CAAC;YAC5E,MAAM,MAAM,GAAsH,EAAC,MAAM,EAAC,SAAS,EAAC,QAAQ,EAAC,EAAE,EAAC,CAAC;YACjK,IAAI,KAAK,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;gBACrC,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,WAAW,CAAa,yBAAyB,EAAC,EAAC,YAAY,EAAC,QAAQ,EAAC,OAAO,EAAC,EAAC,kBAAkB,EAAC,IAAI,EAAC,EAAC,CAAC,CAAC;gBACjJ,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,WAAW,CAA+B,yBAAyB,EAAC,EAAC,YAAY,EAAC,QAAQ,EAAC,CAAC,CAAC;gBAClI,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnG,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;gBACvB,KAAK,MAAM,QAAQ,IAAI,UAAU,IAAI,EAAE,EAAE,CAAC;oBACxC,IAAI,IAAI,CAAC;oBACT,IAAI,CAAC;wBAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,EAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC;wBAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;wBAAC,SAAS;oBAAC,CAAC;oBACrJ,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAC,MAAM,CAAC,CAAC;oBACnF,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,QAAQ,CAAC,IAAI,EAAC,IAAI,CAAC,EAAC,IAAI,EAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAC,CAAC,EAAC,MAAM,EAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAC,CAAC;wBACvH,OAAO,EAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAC,GAAG,CAAC;wBAC7E,YAAY,EAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAA,EAAE,CAAA,IAAI,CAAC,GAAG,KAAG,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,KAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EAAC,CAAC,CAAC;gBAC1L,CAAC;YACH,CAAC;iBAAM,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;gBACxC,IAAI,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,4BAA4B,EAAC,EAAC,YAAY,EAAC,QAAQ,EAAC,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;gBAC9J,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,WAAW,CAAuB,qBAAqB,EAAC,EAAC,YAAY,EAAC,QAAQ,EAAC,OAAO,EAAC,KAAK,CAAC,OAAO,EAAC,CAAC,CAAC;gBACzI,IAAI,CAAC,QAAQ;oBAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;gBACpF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;gBACvD,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,eAAe,IAAI,EAAE,EAAE,CAAC;oBACpD,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK;wBAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;oBAC1H,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACvD,CAAC;gBACD,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;gBAClB,KAAK,MAAM,CAAC,GAAG,EAAC,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;oBAClC,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,EAAC,aAAa,CAAC,GAAG,CAAC,EAAC,eAAe,CAAC,CAAC;oBACzE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAC,MAAM,CAAC,CAAC;oBAC1E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,MAAM,KAAK,GAAC,MAAM,CAAC,IAAI,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,GAAC,MAAM,CAAC,IAAI,EAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAC3E,IAAG,GAAG,GAAC,KAAK;4BAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;wBAC7D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,QAAQ,CAAC,IAAI,EAAC,IAAI,CAAC,EAAC,KAAK,EAAC,MAAM,EAAC,GAAG,GAAC,KAAK,EAAC,IAAI,EAAC,IAAI,CAAC,OAAO,EAAC,CAAC,CAAC;oBACzF,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;oBAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YAChG,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAC,MAAM,CAAC;gBAC9B,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAA,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;oBACpM,IAAG,IAAI,CAAC,GAAG,EAAE,GAAC,GAAG;wBAAE,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;oBACxH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAA,EAAE,CAAA,UAAU,CAAC,IAAI,EAAC,EAAE,CAAC,CAAC,CAAC;gBAC/C,CAAC;gBACD,MAAM,CAAC,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAC,IAAI,EAAC,QAAQ,CAAC,IAAI,EAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAC,CAAC;oBACzK,MAAM,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAC,CAAC,EAAC,QAAQ,EAAC,IAAI,CAAC,QAAQ,KAAG,CAAC,CAAA,CAAC,CAAA,OAAO,CAAA,CAAC,CAAA,SAAS,EAAC,IAAI,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAE,EAAE,CAAC,EAAC,OAAO,EAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAC,IAAI,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC;gBACrJ,IAAG,MAAM,CAAC,WAAW,CAAC,MAAM,GAAC,GAAG,EAAE,CAAC;oBAAA,MAAM,CAAC,WAAW,GAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAC,GAAG,CAAC,CAAC;oBAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;gBAAA,CAAC;YAC1J,CAAC;YACD,OAAO,CAAC,IAAI,GAAG,UAAU,CAAC,GAAE,EAAE,CAAA,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,CAAC,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC7F,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QACF,IAAI,CAAC;YAAC,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAC,MAAM,EAAC,EAAE,GAAE,QAAQ,GAAC,UAAU,CAAC,GAAE,EAAE,GAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC,CAAA,CAAC,EAAC,MAAM,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QACvL,OAAM,KAAK,EAAE,CAAC;YAAA,KAAK,CAAC,IAAI,CAAC,CAAC;YAAA,MAAM,KAAK,CAAC;QAAA,CAAC;gBAC/B,CAAC;YAAA,YAAY,CAAC,QAAS,CAAC,CAAC;QAAA,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AACD,SAAS,UAAU,CAAC,OAAe;IACjC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,KAAI,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;QAAG,MAAuC,CAAC,KAAK,EAAE,EAAE,CAAC;AAChJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Content/version identity also used in shared-service compatibility checks. */
2
+ export declare function pythonRuntimeIdentity(): Promise<string>;
3
+ //# sourceMappingURL=python-runtime-identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python-runtime-identity.d.ts","sourceRoot":"","sources":["../../src/core/python-runtime-identity.ts"],"names":[],"mappings":"AAMA,iFAAiF;AACjF,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,CAqC7D"}
@@ -0,0 +1,53 @@
1
+ // Configured Pyright installation identity, shared without starting a server.
2
+ import { readFile, realpath, stat } from "node:fs/promises";
3
+ import { dirname, join, delimiter, isAbsolute } from "node:path";
4
+ import { createHash } from "node:crypto";
5
+ const executableHashes = new Map();
6
+ /** Content/version identity also used in shared-service compatibility checks. */
7
+ export async function pythonRuntimeIdentity() {
8
+ const command = process.env.CONTEXTPRO_PYRIGHT_COMMAND;
9
+ if (!command)
10
+ return "unconfigured";
11
+ let executable;
12
+ for (const candidate of isAbsolute(command) ? [command] : (process.env.PATH ?? "").split(delimiter).map(path => join(path, command))) {
13
+ try {
14
+ executable = await realpath(candidate);
15
+ break;
16
+ }
17
+ catch { /* Try the next executable directory. */ }
18
+ }
19
+ if (!executable)
20
+ throw new Error("Configured Pyright executable is unavailable.");
21
+ const hash = createHash("sha256").update(executable);
22
+ const include = async (path) => {
23
+ const info = await stat(path);
24
+ const stamp = `${info.dev}:${info.ino}:${info.size}:${info.mtimeMs}:${info.ctimeMs}`;
25
+ let entry = executableHashes.get(path);
26
+ if (entry?.stamp !== stamp) {
27
+ entry = { stamp, hash: createHash("sha256").update(await readFile(path)).digest("hex") };
28
+ if (executableHashes.size >= 16)
29
+ executableHashes.clear();
30
+ executableHashes.set(path, entry);
31
+ }
32
+ hash.update(path).update(entry.hash);
33
+ };
34
+ await include(executable);
35
+ // npm/pnpm launchers resolve into Pyright's package. Hash its version and
36
+ // bundled server, so an in-place upgrade cannot reuse the old process.
37
+ for (let folder = dirname(executable), depth = 0; depth < 6; depth++) {
38
+ const manifest = join(folder, "package.json");
39
+ const metadata = await readFile(manifest, "utf8").then(text => JSON.parse(text), () => null);
40
+ if (metadata?.name === "pyright") {
41
+ await include(manifest);
42
+ await include(join(folder, "dist", "pyright-langserver.js"));
43
+ await include(join(folder, "dist", "pyright-internal.js"));
44
+ break;
45
+ }
46
+ const parent = dirname(folder);
47
+ if (parent === folder)
48
+ break;
49
+ folder = parent;
50
+ }
51
+ return hash.digest("hex");
52
+ }
53
+ //# sourceMappingURL=python-runtime-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python-runtime-identity.js","sourceRoot":"","sources":["../../src/core/python-runtime-identity.ts"],"names":[],"mappings":"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"}