docorbit 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/README.md +29 -15
  2. package/bin/docorbit.js +2 -2
  3. package/dist/apps/cli/src/commands/add.d.ts +7 -0
  4. package/dist/apps/cli/src/commands/add.js +35 -0
  5. package/dist/apps/cli/src/commands/api.d.ts +2 -0
  6. package/dist/apps/cli/src/commands/api.js +35 -0
  7. package/dist/apps/cli/src/commands/context.d.ts +10 -0
  8. package/dist/apps/cli/src/commands/context.js +36 -0
  9. package/dist/apps/cli/src/commands/dashboard.d.ts +8 -0
  10. package/dist/apps/cli/src/commands/dashboard.js +43 -0
  11. package/dist/apps/cli/src/commands/diff.d.ts +2 -0
  12. package/dist/apps/cli/src/commands/diff.js +29 -0
  13. package/dist/apps/cli/src/commands/evaluate.d.ts +11 -0
  14. package/dist/apps/cli/src/commands/evaluate.js +101 -0
  15. package/dist/apps/cli/src/commands/examples.d.ts +2 -0
  16. package/dist/apps/cli/src/commands/examples.js +36 -0
  17. package/dist/apps/cli/src/commands/export.d.ts +11 -0
  18. package/dist/apps/cli/src/commands/export.js +72 -0
  19. package/dist/apps/cli/src/commands/impact.d.ts +2 -0
  20. package/dist/apps/cli/src/commands/impact.js +30 -0
  21. package/dist/apps/cli/src/commands/init.d.ts +5 -0
  22. package/dist/apps/cli/src/commands/init.js +52 -0
  23. package/dist/apps/cli/src/commands/inspect.d.ts +5 -0
  24. package/dist/apps/cli/src/commands/inspect.js +24 -0
  25. package/dist/apps/cli/src/commands/mcp.d.ts +8 -0
  26. package/dist/apps/cli/src/commands/mcp.js +49 -0
  27. package/dist/apps/cli/src/commands/pitfalls.d.ts +2 -0
  28. package/dist/apps/cli/src/commands/pitfalls.js +35 -0
  29. package/dist/apps/cli/src/commands/recipes.d.ts +2 -0
  30. package/dist/apps/cli/src/commands/recipes.js +33 -0
  31. package/dist/apps/cli/src/commands/search.d.ts +11 -0
  32. package/dist/apps/cli/src/commands/search.js +36 -0
  33. package/dist/apps/cli/src/commands/update.d.ts +6 -0
  34. package/dist/apps/cli/src/commands/update.js +53 -0
  35. package/dist/apps/cli/src/commands/verify.d.ts +2 -0
  36. package/dist/apps/cli/src/commands/verify.js +44 -0
  37. package/dist/apps/cli/src/formatters/colors.d.ts +21 -0
  38. package/dist/apps/cli/src/formatters/colors.js +22 -0
  39. package/dist/apps/cli/src/formatters/inspection.d.ts +3 -0
  40. package/dist/apps/cli/src/formatters/inspection.js +88 -0
  41. package/dist/apps/cli/src/formatters/knowledge.d.ts +5 -0
  42. package/dist/apps/cli/src/formatters/knowledge.js +229 -0
  43. package/dist/apps/cli/src/formatters/retrieval.d.ts +3 -0
  44. package/dist/apps/cli/src/formatters/retrieval.js +61 -0
  45. package/{apps/cli/src/formatters/terminal.ts → dist/apps/cli/src/formatters/terminal.d.ts} +0 -1
  46. package/dist/apps/cli/src/formatters/terminal.js +5 -0
  47. package/dist/apps/cli/src/formatters/verification.d.ts +4 -0
  48. package/dist/apps/cli/src/formatters/verification.js +102 -0
  49. package/dist/apps/cli/src/index.d.ts +1 -0
  50. package/dist/apps/cli/src/index.js +376 -0
  51. package/dist/packages/core/src/dashboard/server.d.ts +33 -0
  52. package/dist/packages/core/src/dashboard/server.js +267 -0
  53. package/dist/packages/core/src/dashboard/ui.d.ts +5 -0
  54. package/{packages/core/src/dashboard/ui.ts → dist/packages/core/src/dashboard/ui.js} +2 -2
  55. package/dist/packages/core/src/implementation-service.d.ts +73 -0
  56. package/dist/packages/core/src/implementation-service.js +325 -0
  57. package/{packages/core/src/index.ts → dist/packages/core/src/index.d.ts} +0 -1
  58. package/dist/packages/core/src/index.js +6 -0
  59. package/dist/packages/core/src/inspector.d.ts +22 -0
  60. package/dist/packages/core/src/inspector.js +38 -0
  61. package/dist/packages/core/src/pipeline.d.ts +45 -0
  62. package/dist/packages/core/src/pipeline.js +246 -0
  63. package/dist/packages/crawler/src/config.d.ts +2 -0
  64. package/dist/packages/crawler/src/config.js +10 -0
  65. package/dist/packages/crawler/src/fetcher.d.ts +31 -0
  66. package/dist/packages/crawler/src/fetcher.js +139 -0
  67. package/dist/packages/crawler/src/index.js +2 -0
  68. package/dist/packages/discovery/src/index.d.ts +11 -0
  69. package/dist/packages/discovery/src/index.js +29 -0
  70. package/dist/packages/discovery/src/provider.d.ts +12 -0
  71. package/dist/packages/discovery/src/provider.js +30 -0
  72. package/dist/packages/discovery/src/providers/generic.d.ts +7 -0
  73. package/dist/packages/discovery/src/providers/generic.js +94 -0
  74. package/dist/packages/discovery/src/providers/github.d.ts +7 -0
  75. package/dist/packages/discovery/src/providers/github.js +52 -0
  76. package/dist/packages/discovery/src/providers/llms-txt.d.ts +7 -0
  77. package/dist/packages/discovery/src/providers/llms-txt.js +60 -0
  78. package/dist/packages/discovery/src/providers/markdown.d.ts +7 -0
  79. package/dist/packages/discovery/src/providers/markdown.js +38 -0
  80. package/dist/packages/discovery/src/providers/openapi.d.ts +7 -0
  81. package/dist/packages/discovery/src/providers/openapi.js +77 -0
  82. package/dist/packages/discovery/src/providers/sitemap.d.ts +7 -0
  83. package/dist/packages/discovery/src/providers/sitemap.js +53 -0
  84. package/dist/packages/discovery/src/providers/skill.d.ts +7 -0
  85. package/dist/packages/discovery/src/providers/skill.js +46 -0
  86. package/dist/packages/discovery/src/ranker.d.ts +6 -0
  87. package/dist/packages/discovery/src/ranker.js +107 -0
  88. package/dist/packages/evaluation/src/dataset.d.ts +2 -0
  89. package/dist/packages/evaluation/src/dataset.js +944 -0
  90. package/dist/packages/evaluation/src/index.js +8 -0
  91. package/dist/packages/evaluation/src/runner.d.ts +7 -0
  92. package/dist/packages/evaluation/src/runner.js +196 -0
  93. package/dist/packages/evaluation/src/strategies/context7-runner.d.ts +24 -0
  94. package/dist/packages/evaluation/src/strategies/context7-runner.js +229 -0
  95. package/dist/packages/evaluation/src/strategies/docorbit-runner.d.ts +5 -0
  96. package/dist/packages/evaluation/src/strategies/docorbit-runner.js +210 -0
  97. package/dist/packages/evaluation/src/strategies/firecrawl-runner.d.ts +24 -0
  98. package/dist/packages/evaluation/src/strategies/firecrawl-runner.js +151 -0
  99. package/dist/packages/evaluation/src/strategies/web-search-runner.d.ts +32 -0
  100. package/dist/packages/evaluation/src/strategies/web-search-runner.js +161 -0
  101. package/dist/packages/evaluation/src/types.d.ts +15 -0
  102. package/dist/packages/evaluation/src/types.js +1 -0
  103. package/dist/packages/evaluation/src/version-matcher.d.ts +11 -0
  104. package/dist/packages/evaluation/src/version-matcher.js +61 -0
  105. package/dist/packages/export/src/agents-md.d.ts +19 -0
  106. package/dist/packages/export/src/agents-md.js +170 -0
  107. package/dist/packages/export/src/claude-md.d.ts +17 -0
  108. package/dist/packages/export/src/claude-md.js +118 -0
  109. package/dist/packages/export/src/docs-map.d.ts +14 -0
  110. package/dist/packages/export/src/docs-map.js +118 -0
  111. package/dist/packages/export/src/index.js +6 -0
  112. package/dist/packages/export/src/llms-txt.d.ts +15 -0
  113. package/dist/packages/export/src/llms-txt.js +73 -0
  114. package/dist/packages/export/src/service.d.ts +23 -0
  115. package/dist/packages/export/src/service.js +210 -0
  116. package/dist/packages/export/src/skill-md.d.ts +14 -0
  117. package/dist/packages/export/src/skill-md.js +107 -0
  118. package/{packages/mcp/src/index.ts → dist/packages/mcp/src/index.d.ts} +2 -35
  119. package/dist/packages/mcp/src/index.js +6 -0
  120. package/dist/packages/mcp/src/resources/index.d.ts +12 -0
  121. package/dist/packages/mcp/src/resources/index.js +165 -0
  122. package/dist/packages/mcp/src/server.d.ts +30 -0
  123. package/dist/packages/mcp/src/server.js +243 -0
  124. package/dist/packages/mcp/src/tools/analyze-impact.d.ts +6 -0
  125. package/dist/packages/mcp/src/tools/analyze-impact.js +64 -0
  126. package/dist/packages/mcp/src/tools/check-api.d.ts +6 -0
  127. package/dist/packages/mcp/src/tools/check-api.js +74 -0
  128. package/dist/packages/mcp/src/tools/diff-docs.d.ts +6 -0
  129. package/dist/packages/mcp/src/tools/diff-docs.js +58 -0
  130. package/dist/packages/mcp/src/tools/export-context.d.ts +6 -0
  131. package/dist/packages/mcp/src/tools/export-context.js +61 -0
  132. package/dist/packages/mcp/src/tools/find-api.d.ts +6 -0
  133. package/dist/packages/mcp/src/tools/find-api.js +91 -0
  134. package/dist/packages/mcp/src/tools/find-example.d.ts +6 -0
  135. package/dist/packages/mcp/src/tools/find-example.js +92 -0
  136. package/dist/packages/mcp/src/tools/find-pitfall.d.ts +6 -0
  137. package/dist/packages/mcp/src/tools/find-pitfall.js +85 -0
  138. package/dist/packages/mcp/src/tools/find-recipe.d.ts +6 -0
  139. package/dist/packages/mcp/src/tools/find-recipe.js +89 -0
  140. package/dist/packages/mcp/src/tools/get-doc.d.ts +6 -0
  141. package/dist/packages/mcp/src/tools/get-doc.js +118 -0
  142. package/dist/packages/mcp/src/tools/get-docs-map.d.ts +6 -0
  143. package/dist/packages/mcp/src/tools/get-docs-map.js +54 -0
  144. package/dist/packages/mcp/src/tools/get-version.d.ts +6 -0
  145. package/dist/packages/mcp/src/tools/get-version.js +104 -0
  146. package/dist/packages/mcp/src/tools/implementation-context.d.ts +6 -0
  147. package/dist/packages/mcp/src/tools/implementation-context.js +102 -0
  148. package/dist/packages/mcp/src/tools/index.d.ts +19 -0
  149. package/dist/packages/mcp/src/tools/index.js +41 -0
  150. package/dist/packages/mcp/src/tools/ingest-doc.d.ts +6 -0
  151. package/dist/packages/mcp/src/tools/ingest-doc.js +264 -0
  152. package/dist/packages/mcp/src/tools/list-sources.d.ts +6 -0
  153. package/dist/packages/mcp/src/tools/list-sources.js +76 -0
  154. package/dist/packages/mcp/src/tools/search-docs.d.ts +6 -0
  155. package/dist/packages/mcp/src/tools/search-docs.js +113 -0
  156. package/dist/packages/mcp/src/tools/types.d.ts +22 -0
  157. package/dist/packages/mcp/src/tools/types.js +1 -0
  158. package/dist/packages/mcp/src/transports/http.d.ts +31 -0
  159. package/dist/packages/mcp/src/transports/http.js +215 -0
  160. package/dist/packages/mcp/src/transports/stdio.d.ts +22 -0
  161. package/dist/packages/mcp/src/transports/stdio.js +86 -0
  162. package/{packages/mcp/src/transports/types.ts → dist/packages/mcp/src/transports/types.d.ts} +2 -3
  163. package/dist/packages/mcp/src/transports/types.js +1 -0
  164. package/dist/packages/mcp/src/types.d.ts +89 -0
  165. package/dist/packages/mcp/src/types.js +7 -0
  166. package/dist/packages/normalizer/src/example-indexer.d.ts +5 -0
  167. package/dist/packages/normalizer/src/example-indexer.js +200 -0
  168. package/dist/packages/normalizer/src/html.d.ts +13 -0
  169. package/dist/packages/normalizer/src/html.js +221 -0
  170. package/{packages/normalizer/src/index.ts → dist/packages/normalizer/src/index.d.ts} +0 -1
  171. package/dist/packages/normalizer/src/index.js +7 -0
  172. package/dist/packages/normalizer/src/llms.d.ts +3 -0
  173. package/dist/packages/normalizer/src/llms.js +71 -0
  174. package/dist/packages/normalizer/src/openapi/endpoint-parser.d.ts +11 -0
  175. package/dist/packages/normalizer/src/openapi/endpoint-parser.js +357 -0
  176. package/dist/packages/normalizer/src/openapi/schema-resolver.d.ts +10 -0
  177. package/dist/packages/normalizer/src/openapi/schema-resolver.js +82 -0
  178. package/dist/packages/normalizer/src/openapi.js +2 -0
  179. package/dist/packages/normalizer/src/page.d.ts +13 -0
  180. package/dist/packages/normalizer/src/page.js +150 -0
  181. package/dist/packages/normalizer/src/pitfall-extractor.d.ts +6 -0
  182. package/dist/packages/normalizer/src/pitfall-extractor.js +153 -0
  183. package/dist/packages/normalizer/src/slicer.d.ts +30 -0
  184. package/dist/packages/normalizer/src/slicer.js +360 -0
  185. package/dist/packages/retrieval/src/engine.d.ts +17 -0
  186. package/dist/packages/retrieval/src/engine.js +93 -0
  187. package/{packages/retrieval/src/index.ts → dist/packages/retrieval/src/index.d.ts} +0 -1
  188. package/dist/packages/retrieval/src/index.js +6 -0
  189. package/dist/packages/retrieval/src/intent.d.ts +6 -0
  190. package/dist/packages/retrieval/src/intent.js +39 -0
  191. package/dist/packages/retrieval/src/packer.d.ts +2 -0
  192. package/dist/packages/retrieval/src/packer.js +108 -0
  193. package/dist/packages/retrieval/src/recipe-engine.d.ts +18 -0
  194. package/dist/packages/retrieval/src/recipe-engine.js +265 -0
  195. package/dist/packages/retrieval/src/scorer.d.ts +13 -0
  196. package/dist/packages/retrieval/src/scorer.js +110 -0
  197. package/dist/packages/retrieval/src/weights.d.ts +3 -0
  198. package/dist/packages/retrieval/src/weights.js +28 -0
  199. package/dist/packages/security/src/annotations.d.ts +10 -0
  200. package/dist/packages/security/src/annotations.js +100 -0
  201. package/dist/packages/security/src/index.js +2 -0
  202. package/dist/packages/security/src/ssrf.d.ts +17 -0
  203. package/dist/packages/security/src/ssrf.js +132 -0
  204. package/dist/packages/shared/src/errors.d.ts +22 -0
  205. package/dist/packages/shared/src/errors.js +44 -0
  206. package/dist/packages/shared/src/hashing.d.ts +3 -0
  207. package/dist/packages/shared/src/hashing.js +21 -0
  208. package/dist/packages/shared/src/index.js +3 -0
  209. package/dist/packages/shared/src/types.d.ts +715 -0
  210. package/dist/packages/shared/src/types.js +1 -0
  211. package/dist/packages/storage/src/db.d.ts +11 -0
  212. package/dist/packages/storage/src/db.js +128 -0
  213. package/dist/packages/storage/src/index.js +10 -0
  214. package/dist/packages/storage/src/interfaces.d.ts +83 -0
  215. package/dist/packages/storage/src/interfaces.js +1 -0
  216. package/dist/packages/storage/src/repositories/api-repository.d.ts +16 -0
  217. package/dist/packages/storage/src/repositories/api-repository.js +169 -0
  218. package/dist/packages/storage/src/repositories/chunk-repository.d.ts +32 -0
  219. package/dist/packages/storage/src/repositories/chunk-repository.js +250 -0
  220. package/dist/packages/storage/src/repositories/example-repository.d.ts +16 -0
  221. package/dist/packages/storage/src/repositories/example-repository.js +158 -0
  222. package/dist/packages/storage/src/repositories/page-repository.d.ts +16 -0
  223. package/dist/packages/storage/src/repositories/page-repository.js +161 -0
  224. package/dist/packages/storage/src/repositories/pitfall-repository.d.ts +15 -0
  225. package/dist/packages/storage/src/repositories/pitfall-repository.js +144 -0
  226. package/dist/packages/storage/src/repositories/source-repository.d.ts +33 -0
  227. package/dist/packages/storage/src/repositories/source-repository.js +153 -0
  228. package/dist/packages/storage/src/repository.d.ts +92 -0
  229. package/dist/packages/storage/src/repository.js +157 -0
  230. package/dist/packages/storage/src/schema.d.ts +2 -0
  231. package/{packages/storage/src/schema.ts → dist/packages/storage/src/schema.js} +0 -3
  232. package/dist/packages/storage/src/search-tokens.d.ts +6 -0
  233. package/dist/packages/storage/src/search-tokens.js +26 -0
  234. package/dist/packages/verification/src/diff-engine.d.ts +18 -0
  235. package/dist/packages/verification/src/diff-engine.js +218 -0
  236. package/dist/packages/verification/src/extractor.d.ts +29 -0
  237. package/dist/packages/verification/src/extractor.js +302 -0
  238. package/dist/packages/verification/src/impact-scanner.d.ts +9 -0
  239. package/dist/packages/verification/src/impact-scanner.js +181 -0
  240. package/dist/packages/verification/src/index.js +5 -0
  241. package/dist/packages/verification/src/services.d.ts +55 -0
  242. package/dist/packages/verification/src/services.js +189 -0
  243. package/dist/packages/verification/src/verifier.d.ts +15 -0
  244. package/dist/packages/verification/src/verifier.js +315 -0
  245. package/dist/packages/workspace/src/detector.d.ts +7 -0
  246. package/dist/packages/workspace/src/detector.js +117 -0
  247. package/dist/packages/workspace/src/ecosystems/cargo.d.ts +10 -0
  248. package/dist/packages/workspace/src/ecosystems/cargo.js +69 -0
  249. package/dist/packages/workspace/src/ecosystems/composer.d.ts +7 -0
  250. package/dist/packages/workspace/src/ecosystems/composer.js +40 -0
  251. package/dist/packages/workspace/src/ecosystems/go.d.ts +7 -0
  252. package/dist/packages/workspace/src/ecosystems/go.js +49 -0
  253. package/{packages/workspace/src/ecosystems/index.ts → dist/packages/workspace/src/ecosystems/index.d.ts} +2 -24
  254. package/dist/packages/workspace/src/ecosystems/index.js +21 -0
  255. package/dist/packages/workspace/src/ecosystems/maven.d.ts +7 -0
  256. package/dist/packages/workspace/src/ecosystems/maven.js +28 -0
  257. package/dist/packages/workspace/src/ecosystems/npm.d.ts +10 -0
  258. package/dist/packages/workspace/src/ecosystems/npm.js +73 -0
  259. package/dist/packages/workspace/src/ecosystems/pub.d.ts +7 -0
  260. package/dist/packages/workspace/src/ecosystems/pub.js +34 -0
  261. package/dist/packages/workspace/src/ecosystems/pypi.d.ts +9 -0
  262. package/dist/packages/workspace/src/ecosystems/pypi.js +94 -0
  263. package/dist/packages/workspace/src/ecosystems/rubygems.d.ts +7 -0
  264. package/dist/packages/workspace/src/ecosystems/rubygems.js +25 -0
  265. package/dist/packages/workspace/src/ecosystems/types.d.ts +9 -0
  266. package/dist/packages/workspace/src/ecosystems/types.js +1 -0
  267. package/dist/packages/workspace/src/index.js +5 -0
  268. package/dist/packages/workspace/src/lockfile.d.ts +21 -0
  269. package/dist/packages/workspace/src/lockfile.js +153 -0
  270. package/dist/packages/workspace/src/resolver.d.ts +39 -0
  271. package/dist/packages/workspace/src/resolver.js +164 -0
  272. package/dist/packages/workspace/src/semver.d.ts +33 -0
  273. package/dist/packages/workspace/src/semver.js +235 -0
  274. package/package.json +13 -9
  275. package/apps/cli/bin/docorbit.js +0 -8
  276. package/apps/cli/src/commands/add.ts +0 -44
  277. package/apps/cli/src/commands/api.ts +0 -38
  278. package/apps/cli/src/commands/context.ts +0 -47
  279. package/apps/cli/src/commands/dashboard.ts +0 -55
  280. package/apps/cli/src/commands/diff.ts +0 -30
  281. package/apps/cli/src/commands/evaluate.ts +0 -133
  282. package/apps/cli/src/commands/examples.ts +0 -39
  283. package/apps/cli/src/commands/export.ts +0 -89
  284. package/apps/cli/src/commands/impact.ts +0 -31
  285. package/apps/cli/src/commands/init.ts +0 -69
  286. package/apps/cli/src/commands/inspect.ts +0 -30
  287. package/apps/cli/src/commands/mcp.ts +0 -72
  288. package/apps/cli/src/commands/pitfalls.ts +0 -38
  289. package/apps/cli/src/commands/recipes.ts +0 -35
  290. package/apps/cli/src/commands/search.ts +0 -48
  291. package/apps/cli/src/commands/update.ts +0 -73
  292. package/apps/cli/src/commands/verify.ts +0 -48
  293. package/apps/cli/src/formatters/colors.ts +0 -23
  294. package/apps/cli/src/formatters/inspection.ts +0 -102
  295. package/apps/cli/src/formatters/knowledge.ts +0 -272
  296. package/apps/cli/src/formatters/retrieval.ts +0 -74
  297. package/apps/cli/src/formatters/verification.ts +0 -126
  298. package/apps/cli/src/index.ts +0 -409
  299. package/packages/core/src/dashboard/server.ts +0 -314
  300. package/packages/core/src/implementation-service.ts +0 -451
  301. package/packages/core/src/inspector.ts +0 -71
  302. package/packages/core/src/pipeline.ts +0 -331
  303. package/packages/crawler/src/config.ts +0 -12
  304. package/packages/crawler/src/fetcher.ts +0 -185
  305. package/packages/discovery/src/index.ts +0 -31
  306. package/packages/discovery/src/provider.ts +0 -47
  307. package/packages/discovery/src/providers/generic.ts +0 -98
  308. package/packages/discovery/src/providers/github.ts +0 -61
  309. package/packages/discovery/src/providers/llms-txt.ts +0 -73
  310. package/packages/discovery/src/providers/markdown.ts +0 -48
  311. package/packages/discovery/src/providers/openapi.ts +0 -91
  312. package/packages/discovery/src/providers/sitemap.ts +0 -62
  313. package/packages/discovery/src/providers/skill.ts +0 -54
  314. package/packages/discovery/src/ranker.ts +0 -123
  315. package/packages/evaluation/src/dataset.ts +0 -963
  316. package/packages/evaluation/src/runner.ts +0 -241
  317. package/packages/evaluation/src/strategies/context7-runner.ts +0 -269
  318. package/packages/evaluation/src/strategies/docorbit-runner.ts +0 -228
  319. package/packages/evaluation/src/strategies/firecrawl-runner.ts +0 -172
  320. package/packages/evaluation/src/strategies/web-search-runner.ts +0 -194
  321. package/packages/evaluation/src/types.ts +0 -34
  322. package/packages/evaluation/src/version-matcher.ts +0 -73
  323. package/packages/export/src/agents-md.ts +0 -200
  324. package/packages/export/src/claude-md.ts +0 -141
  325. package/packages/export/src/docs-map.ts +0 -150
  326. package/packages/export/src/llms-txt.ts +0 -96
  327. package/packages/export/src/service.ts +0 -250
  328. package/packages/export/src/skill-md.ts +0 -128
  329. package/packages/mcp/src/resources/index.ts +0 -189
  330. package/packages/mcp/src/server.ts +0 -278
  331. package/packages/mcp/src/tools/analyze-impact.ts +0 -74
  332. package/packages/mcp/src/tools/check-api.ts +0 -86
  333. package/packages/mcp/src/tools/diff-docs.ts +0 -68
  334. package/packages/mcp/src/tools/export-context.ts +0 -73
  335. package/packages/mcp/src/tools/find-api.ts +0 -99
  336. package/packages/mcp/src/tools/find-example.ts +0 -100
  337. package/packages/mcp/src/tools/find-pitfall.ts +0 -94
  338. package/packages/mcp/src/tools/find-recipe.ts +0 -98
  339. package/packages/mcp/src/tools/get-doc.ts +0 -130
  340. package/packages/mcp/src/tools/get-docs-map.ts +0 -64
  341. package/packages/mcp/src/tools/get-version.ts +0 -118
  342. package/packages/mcp/src/tools/implementation-context.ts +0 -88
  343. package/packages/mcp/src/tools/index.ts +0 -59
  344. package/packages/mcp/src/tools/list-sources.ts +0 -85
  345. package/packages/mcp/src/tools/search-docs.ts +0 -123
  346. package/packages/mcp/src/tools/types.ts +0 -28
  347. package/packages/mcp/src/transports/http.ts +0 -256
  348. package/packages/mcp/src/transports/stdio.ts +0 -105
  349. package/packages/mcp/src/types.ts +0 -102
  350. package/packages/normalizer/src/example-indexer.ts +0 -240
  351. package/packages/normalizer/src/html.ts +0 -253
  352. package/packages/normalizer/src/llms.ts +0 -83
  353. package/packages/normalizer/src/openapi/endpoint-parser.ts +0 -406
  354. package/packages/normalizer/src/openapi/schema-resolver.ts +0 -111
  355. package/packages/normalizer/src/page.ts +0 -184
  356. package/packages/normalizer/src/pitfall-extractor.ts +0 -190
  357. package/packages/normalizer/src/slicer.ts +0 -455
  358. package/packages/retrieval/src/engine.ts +0 -120
  359. package/packages/retrieval/src/intent.ts +0 -43
  360. package/packages/retrieval/src/packer.ts +0 -145
  361. package/packages/retrieval/src/recipe-engine.ts +0 -313
  362. package/packages/retrieval/src/scorer.ts +0 -139
  363. package/packages/retrieval/src/weights.ts +0 -31
  364. package/packages/security/src/annotations.ts +0 -112
  365. package/packages/security/src/ssrf.ts +0 -153
  366. package/packages/shared/src/errors.ts +0 -53
  367. package/packages/shared/src/hashing.ts +0 -23
  368. package/packages/shared/src/types.ts +0 -881
  369. package/packages/storage/src/db.ts +0 -72
  370. package/packages/storage/src/interfaces.ts +0 -115
  371. package/packages/storage/src/repositories/api-repository.ts +0 -219
  372. package/packages/storage/src/repositories/chunk-repository.ts +0 -316
  373. package/packages/storage/src/repositories/example-repository.ts +0 -206
  374. package/packages/storage/src/repositories/page-repository.ts +0 -205
  375. package/packages/storage/src/repositories/pitfall-repository.ts +0 -188
  376. package/packages/storage/src/repositories/source-repository.ts +0 -205
  377. package/packages/storage/src/repository.ts +0 -256
  378. package/packages/storage/src/search-tokens.ts +0 -28
  379. package/packages/verification/src/diff-engine.ts +0 -258
  380. package/packages/verification/src/extractor.ts +0 -339
  381. package/packages/verification/src/impact-scanner.ts +0 -203
  382. package/packages/verification/src/services.ts +0 -238
  383. package/packages/verification/src/verifier.ts +0 -375
  384. package/packages/workspace/src/detector.ts +0 -143
  385. package/packages/workspace/src/ecosystems/cargo.ts +0 -84
  386. package/packages/workspace/src/ecosystems/composer.ts +0 -42
  387. package/packages/workspace/src/ecosystems/go.ts +0 -54
  388. package/packages/workspace/src/ecosystems/maven.ts +0 -34
  389. package/packages/workspace/src/ecosystems/npm.ts +0 -83
  390. package/packages/workspace/src/ecosystems/pub.ts +0 -40
  391. package/packages/workspace/src/ecosystems/pypi.ts +0 -100
  392. package/packages/workspace/src/ecosystems/rubygems.ts +0 -30
  393. package/packages/workspace/src/ecosystems/types.ts +0 -18
  394. package/packages/workspace/src/lockfile.ts +0 -194
  395. package/packages/workspace/src/resolver.ts +0 -234
  396. package/packages/workspace/src/semver.ts +0 -259
  397. /package/{packages/crawler/src/index.ts → dist/packages/crawler/src/index.d.ts} +0 -0
  398. /package/{packages/evaluation/src/index.ts → dist/packages/evaluation/src/index.d.ts} +0 -0
  399. /package/{packages/export/src/index.ts → dist/packages/export/src/index.d.ts} +0 -0
  400. /package/{packages/normalizer/src/openapi.ts → dist/packages/normalizer/src/openapi.d.ts} +0 -0
  401. /package/{packages/security/src/index.ts → dist/packages/security/src/index.d.ts} +0 -0
  402. /package/{packages/shared/src/index.ts → dist/packages/shared/src/index.d.ts} +0 -0
  403. /package/{packages/storage/src/index.ts → dist/packages/storage/src/index.d.ts} +0 -0
  404. /package/{packages/verification/src/index.ts → dist/packages/verification/src/index.d.ts} +0 -0
  405. /package/{packages/workspace/src/index.ts → dist/packages/workspace/src/index.d.ts} +0 -0
@@ -0,0 +1,181 @@
1
+ import * as fs from 'node:fs';
2
+ import * as path from 'node:path';
3
+ const SOURCE_EXTENSIONS = new Set([
4
+ '.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs',
5
+ '.py', '.go', '.json',
6
+ ]);
7
+ const IGNORED_DIRS = new Set([
8
+ 'node_modules', '.git', '.docorbit', 'dist', 'build', '.next', 'coverage',
9
+ ]);
10
+ export class WorkspaceImpactScanner {
11
+ /**
12
+ * Scans a workspace project directory and identifies files affected by documentation diffs.
13
+ */
14
+ scan(projectDir, diff) {
15
+ const files = this.collectFiles(projectDir);
16
+ const affectedLocations = [];
17
+ for (const filePath of files) {
18
+ this.analyzeFile(filePath, projectDir, diff, affectedLocations);
19
+ }
20
+ const uniqueFiles = new Set(affectedLocations.map(loc => loc.filePath));
21
+ let summary;
22
+ if (affectedLocations.length === 0) {
23
+ summary = `No project files affected across ${files.length} scanned file(s).`;
24
+ }
25
+ else {
26
+ summary = `Found ${affectedLocations.length} affected location(s) across ${uniqueFiles.size} file(s).`;
27
+ }
28
+ return {
29
+ projectDir,
30
+ fromVersion: diff.fromVersion,
31
+ toVersion: diff.toVersion,
32
+ totalFilesScanned: files.length,
33
+ affectedFilesCount: uniqueFiles.size,
34
+ affectedLocations,
35
+ summary,
36
+ };
37
+ }
38
+ collectFiles(dir) {
39
+ const results = [];
40
+ if (!fs.existsSync(dir))
41
+ return results;
42
+ const traverse = (currentDir) => {
43
+ let entries;
44
+ try {
45
+ entries = fs.readdirSync(currentDir, { withFileTypes: true });
46
+ }
47
+ catch {
48
+ return;
49
+ }
50
+ for (const entry of entries) {
51
+ if (IGNORED_DIRS.has(entry.name))
52
+ continue;
53
+ const fullPath = path.join(currentDir, entry.name);
54
+ if (entry.isDirectory()) {
55
+ traverse(fullPath);
56
+ }
57
+ else if (entry.isFile()) {
58
+ const ext = path.extname(entry.name).toLowerCase();
59
+ if (SOURCE_EXTENSIONS.has(ext)) {
60
+ results.push(fullPath);
61
+ }
62
+ }
63
+ }
64
+ };
65
+ traverse(dir);
66
+ return results;
67
+ }
68
+ analyzeFile(fullPath, projectDir, diff, out) {
69
+ let content;
70
+ try {
71
+ content = fs.readFileSync(fullPath, 'utf8');
72
+ }
73
+ catch {
74
+ return;
75
+ }
76
+ const relPath = path.relative(projectDir, fullPath);
77
+ const lines = content.split('\n');
78
+ // Quick pre-filter: check imports
79
+ const hasStripe = content.includes('stripe');
80
+ const hasNext = content.includes('next');
81
+ // 1. Scan for API endpoint removals, deprecations, and parameter modifications
82
+ for (const apiChange of diff.apiChanges) {
83
+ const epPath = apiChange.path;
84
+ const cleanPath = epPath.replace(/^\//, '');
85
+ for (let i = 0; i < lines.length; i++) {
86
+ const lineText = lines[i];
87
+ // Check if line contains endpoint path
88
+ if (lineText.includes(epPath) || lineText.includes(`'${cleanPath}'`) || lineText.includes(`"${cleanPath}"`)) {
89
+ if (apiChange.changeType === 'removed') {
90
+ out.push({
91
+ filePath: relPath,
92
+ line: i + 1,
93
+ snippet: lineText.trim(),
94
+ reason: `Endpoint "${apiChange.method.toUpperCase()} ${epPath}" was removed in API documentation.`,
95
+ matchedPattern: epPath,
96
+ changeCategory: 'removed_api',
97
+ certainty: 'high',
98
+ confidence: 0.95,
99
+ relatedChange: { endpoint: epPath },
100
+ });
101
+ }
102
+ else if (apiChange.changeType === 'deprecated') {
103
+ out.push({
104
+ filePath: relPath,
105
+ line: i + 1,
106
+ snippet: lineText.trim(),
107
+ reason: `Endpoint "${apiChange.method.toUpperCase()} ${epPath}" is deprecated in API documentation.`,
108
+ matchedPattern: epPath,
109
+ changeCategory: 'deprecated_api',
110
+ certainty: 'high',
111
+ confidence: 0.9,
112
+ relatedChange: { endpoint: epPath },
113
+ });
114
+ }
115
+ else if (apiChange.changeType === 'modified') {
116
+ out.push({
117
+ filePath: relPath,
118
+ line: i + 1,
119
+ snippet: lineText.trim(),
120
+ reason: `Endpoint parameters/schemas changed: ${(apiChange.changes || []).join('; ')}`,
121
+ matchedPattern: epPath,
122
+ changeCategory: 'modified_parameters',
123
+ certainty: 'high',
124
+ confidence: 0.85,
125
+ relatedChange: { endpoint: epPath },
126
+ });
127
+ }
128
+ }
129
+ }
130
+ }
131
+ // 2. Scan for breaking pitfalls and deprecations
132
+ for (const pitChange of diff.pitfallChanges) {
133
+ const pit = pitChange.pitfall;
134
+ if (pitChange.changeType !== 'added')
135
+ continue;
136
+ const matchedLinesForThisPitfall = new Set();
137
+ // Next.js Route Params sync deprecation / removal
138
+ if (pit.content.includes('params.slug') || pit.title.includes('route params') || pit.title.includes('Route Parameters')) {
139
+ for (let i = 0; i < lines.length; i++) {
140
+ const lineText = lines[i];
141
+ if (lineText.includes('params.') && !lineText.includes('await params') && hasNext) {
142
+ matchedLinesForThisPitfall.add(i + 1);
143
+ out.push({
144
+ filePath: relPath,
145
+ line: i + 1,
146
+ snippet: lineText.trim(),
147
+ reason: `Synchronous route parameter access detected. Documentation deprecation notice: ${pit.title}`,
148
+ matchedPattern: 'params.',
149
+ changeCategory: 'breaking_pitfall',
150
+ certainty: hasNext ? 'medium' : 'heuristic',
151
+ confidence: hasNext ? 0.85 : 0.6,
152
+ relatedChange: { pitfallTitle: pit.title },
153
+ });
154
+ }
155
+ }
156
+ }
157
+ // Check symbol references
158
+ if (pit.relatedSymbol) {
159
+ for (let i = 0; i < lines.length; i++) {
160
+ if (matchedLinesForThisPitfall.has(i + 1))
161
+ continue;
162
+ const lineText = lines[i];
163
+ if (lineText.includes(pit.relatedSymbol)) {
164
+ matchedLinesForThisPitfall.add(i + 1);
165
+ out.push({
166
+ filePath: relPath,
167
+ line: i + 1,
168
+ snippet: lineText.trim(),
169
+ reason: `Symbol "${pit.relatedSymbol}" referenced in file has documented pitfall: ${pit.title}`,
170
+ matchedPattern: pit.relatedSymbol,
171
+ changeCategory: 'breaking_pitfall',
172
+ certainty: (hasStripe || hasNext) ? 'medium' : 'heuristic',
173
+ confidence: (hasStripe || hasNext) ? 0.8 : 0.5,
174
+ relatedChange: { symbol: pit.relatedSymbol, pitfallTitle: pit.title },
175
+ });
176
+ }
177
+ }
178
+ }
179
+ }
180
+ }
181
+ }
@@ -0,0 +1,5 @@
1
+ export * from "./extractor.js";
2
+ export * from "./verifier.js";
3
+ export * from "./diff-engine.js";
4
+ export * from "./impact-scanner.js";
5
+ export * from "./services.js";
@@ -0,0 +1,55 @@
1
+ import type { DocDiffResult, ImpactAnalysisResult, VerificationResult } from '../../shared/src/index.ts';
2
+ import type { DocOrbitRepository } from '../../storage/src/index.ts';
3
+ import { type DiffOptions } from './diff-engine.ts';
4
+ export interface VerifyCodeRequest {
5
+ code: string;
6
+ language?: string;
7
+ library?: string;
8
+ version?: string;
9
+ projectDir?: string;
10
+ filePath?: string;
11
+ }
12
+ export declare class VerificationService {
13
+ private repo;
14
+ private extractor;
15
+ private verifier;
16
+ private resolver;
17
+ constructor(repo: DocOrbitRepository);
18
+ verifyCode(request: VerifyCodeRequest): {
19
+ result: VerificationResult;
20
+ markdown: string;
21
+ };
22
+ private synthesizeMarkdown;
23
+ }
24
+ export declare class DiffService {
25
+ private repo;
26
+ private diffEngine;
27
+ constructor(repo: DocOrbitRepository);
28
+ diffDocs(options: DiffOptions): {
29
+ result: DocDiffResult;
30
+ markdown: string;
31
+ };
32
+ private synthesizeMarkdown;
33
+ }
34
+ export declare class ImpactAnalysisService {
35
+ private repo?;
36
+ private diffService?;
37
+ private scanner;
38
+ constructor(repo?: DocOrbitRepository);
39
+ analyzeWorkspaceImpact(projectDir: string, diff: DocDiffResult): {
40
+ structured: ImpactAnalysisResult;
41
+ markdown: string;
42
+ };
43
+ analyzeImpact(options: {
44
+ projectDir: string;
45
+ fromVersion?: string;
46
+ toVersion?: string;
47
+ fromSnapshotId?: string;
48
+ toSnapshotId?: string;
49
+ sourceId?: string;
50
+ }): {
51
+ result: ImpactAnalysisResult;
52
+ markdown: string;
53
+ };
54
+ private synthesizeMarkdown;
55
+ }
@@ -0,0 +1,189 @@
1
+ import { WorkspaceResolver } from "../../workspace/src/index.js";
2
+ import { CodeApiExtractor } from "./extractor.js";
3
+ import { SchemaVerifier } from "./verifier.js";
4
+ import { DocDiffEngine } from "./diff-engine.js";
5
+ import { WorkspaceImpactScanner } from "./impact-scanner.js";
6
+ export class VerificationService {
7
+ repo;
8
+ extractor;
9
+ verifier;
10
+ resolver;
11
+ constructor(repo) {
12
+ this.repo = repo;
13
+ this.extractor = new CodeApiExtractor();
14
+ this.verifier = new SchemaVerifier(repo);
15
+ this.resolver = new WorkspaceResolver(repo);
16
+ }
17
+ verifyCode(request) {
18
+ let effectiveDocVersion = request.version;
19
+ let projectVersion;
20
+ // Resolve project version context if projectDir is provided
21
+ if (request.projectDir) {
22
+ try {
23
+ const scan = this.resolver.scanWorkspace(request.projectDir);
24
+ const resolution = this.resolver.resolveWorkspace(scan);
25
+ const libName = (request.library || '').toLowerCase();
26
+ let matched = resolution.matches.find(m => m.dependency.name.toLowerCase() === libName);
27
+ if (!matched && resolution.matches.length > 0) {
28
+ if (request.code.includes('params') && resolution.matches.some(m => m.dependency.name.toLowerCase() === 'next')) {
29
+ matched = resolution.matches.find(m => m.dependency.name.toLowerCase() === 'next');
30
+ }
31
+ if (!matched) {
32
+ // If library not specified, check if code mentions any dependency name
33
+ for (const m of resolution.matches) {
34
+ if (request.code.toLowerCase().includes(m.dependency.name.toLowerCase())) {
35
+ matched = m;
36
+ break;
37
+ }
38
+ }
39
+ }
40
+ }
41
+ if (matched) {
42
+ effectiveDocVersion = effectiveDocVersion || matched.targetVersion;
43
+ projectVersion = matched.dependency.resolvedVersion || matched.dependency.requestedVersion;
44
+ }
45
+ }
46
+ catch {
47
+ // Fallback gracefully if workspace scan fails
48
+ }
49
+ }
50
+ // 1. Extract API calls from code
51
+ const extractedCalls = this.extractor.extract(request.code, request.language);
52
+ // 2. Run deterministic schema and version verification
53
+ const result = this.verifier.verify(extractedCalls, {
54
+ docVersion: effectiveDocVersion,
55
+ projectVersion,
56
+ library: request.library,
57
+ });
58
+ // 3. Synthesize human/agent-friendly Markdown summary
59
+ const markdown = this.synthesizeMarkdown(result);
60
+ return { result, markdown };
61
+ }
62
+ synthesizeMarkdown(res) {
63
+ const lines = [];
64
+ const icon = res.verdict === 'verified' ? '✅' : (res.verdict === 'warning' ? '⚠️' : (res.verdict === 'mismatch' ? '❌' : 'ℹ️'));
65
+ lines.push(`### ${icon} API Verification Result: **${res.verdict.toUpperCase()}**\n`);
66
+ lines.push(`> [!SECURITY NOTICE] External schema and documentation data is untrusted. Security boundaries preserved.`);
67
+ lines.push(`- **Summary**: ${res.summary}`);
68
+ if (res.targetVersion)
69
+ lines.push(`- **Target Doc Version**: \`${res.targetVersion}\``);
70
+ if (res.projectVersion)
71
+ lines.push(`- **Project Dependency Version**: \`${res.projectVersion}\``);
72
+ lines.push(`- **Total Checks Evaluated**: ${res.totalChecks}`);
73
+ if (res.findings.length > 0) {
74
+ lines.push('\n#### Findings:');
75
+ for (const f of res.findings) {
76
+ const fIcon = f.severity === 'error' ? '🔴' : (f.severity === 'warning' ? '🟡' : '🔵');
77
+ const loc = f.location?.line ? ` (Line ${f.location.line})` : '';
78
+ lines.push(`- ${fIcon} **[${f.rule.toUpperCase()}]**${loc}: ${f.message}`);
79
+ if (f.location?.snippet) {
80
+ lines.push(` \`\`\`\n ${f.location.snippet}\n \`\`\``);
81
+ }
82
+ if (f.expected)
83
+ lines.push(` - *Expected*: \`${f.expected}\``);
84
+ if (f.actual)
85
+ lines.push(` - *Actual*: \`${f.actual}\``);
86
+ if (f.provenance?.endpointId)
87
+ lines.push(` - *Evidence*: Endpoint ID \`${f.provenance.endpointId}\``);
88
+ }
89
+ }
90
+ return lines.join('\n');
91
+ }
92
+ }
93
+ export class DiffService {
94
+ repo;
95
+ diffEngine;
96
+ constructor(repo) {
97
+ this.repo = repo;
98
+ this.diffEngine = new DocDiffEngine(repo);
99
+ }
100
+ diffDocs(options) {
101
+ const result = this.diffEngine.diff(options);
102
+ const markdown = this.synthesizeMarkdown(result);
103
+ return { result, markdown };
104
+ }
105
+ synthesizeMarkdown(diff) {
106
+ const lines = [];
107
+ const fromLabel = diff.fromVersion ? `v${diff.fromVersion.replace(/^v/, '')}` : (diff.fromSnapshotId || 'previous');
108
+ const toLabel = diff.toVersion ? `v${diff.toVersion.replace(/^v/, '')}` : (diff.toSnapshotId || 'latest');
109
+ lines.push(`### 📊 Documentation Diff: \`${fromLabel}\` ➔ \`${toLabel}\`\n`);
110
+ lines.push(`| Category | Added | Removed | Modified | Deprecated |`);
111
+ lines.push(`| :--- | :---: | :---: | :---: | :---: |`);
112
+ lines.push(`| **Endpoints** | ${diff.summary.endpointsAdded} | ${diff.summary.endpointsRemoved} | ${diff.summary.endpointsModified} | ${diff.summary.endpointsDeprecated} |`);
113
+ lines.push(`| **Pitfalls** | ${diff.summary.pitfallsAdded} | ${diff.summary.pitfallsRemoved} | - | - |`);
114
+ lines.push(`| **Sections** | - | - | ${diff.summary.contentChanged} | - |\n`);
115
+ if (diff.apiChanges.length > 0) {
116
+ lines.push('#### API Endpoint Changes:');
117
+ for (const ch of diff.apiChanges) {
118
+ const badge = ch.changeType === 'added' ? '🟢 ADDED' : (ch.changeType === 'removed' ? '🔴 REMOVED' : (ch.changeType === 'deprecated' ? '🟡 DEPRECATED' : '🔵 MODIFIED'));
119
+ lines.push(`- **[${badge}]** \`${ch.method.toUpperCase()} ${ch.path}\``);
120
+ if (ch.changes && ch.changes.length > 0) {
121
+ for (const detail of ch.changes) {
122
+ lines.push(` - ${detail}`);
123
+ }
124
+ }
125
+ }
126
+ }
127
+ if (diff.pitfallChanges.length > 0) {
128
+ lines.push('\n#### Pitfall & Deprecation Changes:');
129
+ for (const p of diff.pitfallChanges) {
130
+ const badge = p.changeType === 'added' ? '⚠️ NEW' : 'REMOVED';
131
+ lines.push(`- **[${badge}]** \`${p.pitfall.kind}\`: ${p.pitfall.title}`);
132
+ }
133
+ }
134
+ return lines.join('\n');
135
+ }
136
+ }
137
+ export class ImpactAnalysisService {
138
+ repo;
139
+ diffService;
140
+ scanner;
141
+ constructor(repo) {
142
+ this.repo = repo;
143
+ if (repo) {
144
+ this.diffService = new DiffService(repo);
145
+ }
146
+ this.scanner = new WorkspaceImpactScanner();
147
+ }
148
+ analyzeWorkspaceImpact(projectDir, diff) {
149
+ const structured = this.scanner.scan(projectDir, diff);
150
+ const markdown = this.synthesizeMarkdown(structured);
151
+ return { structured, markdown };
152
+ }
153
+ analyzeImpact(options) {
154
+ if (!this.diffService) {
155
+ throw new Error('Repository is required for diff-based impact analysis');
156
+ }
157
+ const { result: diff } = this.diffService.diffDocs({
158
+ fromVersion: options.fromVersion,
159
+ toVersion: options.toVersion,
160
+ fromSnapshotId: options.fromSnapshotId,
161
+ toSnapshotId: options.toSnapshotId,
162
+ sourceId: options.sourceId,
163
+ });
164
+ const result = this.scanner.scan(options.projectDir, diff);
165
+ const markdown = this.synthesizeMarkdown(result);
166
+ return { result, markdown };
167
+ }
168
+ synthesizeMarkdown(res) {
169
+ const lines = [];
170
+ lines.push(`### 🔍 Project Impact Analysis`);
171
+ lines.push(`- **Scanned Workspace**: \`${res.projectDir}\``);
172
+ lines.push(`- **Files Scanned**: ${res.totalFilesScanned}`);
173
+ lines.push(`- **Impacted Files**: ${res.affectedFilesCount}`);
174
+ lines.push(`- **Total Affected Locations**: ${res.affectedLocations.length}\n`);
175
+ if (res.affectedLocations.length === 0) {
176
+ lines.push(`✅ No breaking changes or deprecated API usages detected in current project files.`);
177
+ return lines.join('\n');
178
+ }
179
+ lines.push(`#### Affected Locations:\n`);
180
+ for (const loc of res.affectedLocations) {
181
+ const certBadge = loc.certainty === 'high' ? '🎯 High Certainty' : (loc.certainty === 'medium' ? '⚖️ Medium' : '🔎 Heuristic');
182
+ lines.push(`- **\`${loc.filePath}:${loc.line}\`** (${certBadge}, Confidence: ${Math.round(loc.confidence * 100)}%)`);
183
+ lines.push(` - **Reason**: ${loc.reason}`);
184
+ lines.push(` - **Matched**: \`${loc.matchedPattern}\``);
185
+ lines.push(` \`\`\`\n ${loc.snippet}\n \`\`\``);
186
+ }
187
+ return lines.join('\n');
188
+ }
189
+ }
@@ -0,0 +1,15 @@
1
+ import type { ExtractedApiCall, VerificationResult } from '../../shared/src/index.ts';
2
+ import type { DocOrbitRepository } from '../../storage/src/index.ts';
3
+ export interface VerifierOptions {
4
+ docVersion?: string;
5
+ projectVersion?: string;
6
+ library?: string;
7
+ }
8
+ export declare class SchemaVerifier {
9
+ private repo;
10
+ constructor(repo: DocOrbitRepository);
11
+ verify(calls: ExtractedApiCall[], options?: VerifierOptions): VerificationResult;
12
+ private verifyParameters;
13
+ private verifyResponseFields;
14
+ private verifyNextJsParams;
15
+ }