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
@@ -1,30 +0,0 @@
1
- import { DocOrbitDb, DocOrbitRepository } from '../../../../packages/storage/src/index.ts';
2
- import { DiffService } from '../../../../packages/verification/src/index.ts';
3
- import type { DiffCommandOptions } from '../../../../packages/shared/src/index.ts';
4
- import { formatDiffReport } from '../formatters/terminal.ts';
5
-
6
- export async function runDiffCommand(target: string = '', options: DiffCommandOptions = {}): Promise<void> {
7
- const dbPath = options.dbPath || '.docorbit/docorbit.db';
8
- const db = new DocOrbitDb(dbPath);
9
- const repo = new DocOrbitRepository(db);
10
-
11
- try {
12
- const service = new DiffService(repo);
13
- const { result } = service.diffDocs({
14
- fromVersion: options.from,
15
- toVersion: options.to,
16
- sourceId: options.source || (target && !target.startsWith('-') ? target : undefined),
17
- });
18
-
19
- if (options.json) {
20
- console.log(JSON.stringify(result, null, 2));
21
- } else {
22
- console.log(formatDiffReport(result));
23
- }
24
- } catch (err: unknown) {
25
- console.error(`DocOrbit Diff Error: ${err instanceof Error ? err.message : String(err)}`);
26
- process.exit(1);
27
- } finally {
28
- db.close();
29
- }
30
- }
@@ -1,133 +0,0 @@
1
- import { BenchmarkRunner } from '../../../../packages/evaluation/src/index.ts';
2
- import type { AgentEvaluationStrategy, EvaluationSplit } from '../../../../packages/evaluation/src/index.ts';
3
- import { c } from '../formatters/colors.ts';
4
-
5
- export interface EvaluateCommandOptions {
6
- split?: string;
7
- strategy?: string;
8
- task?: string;
9
- output?: string;
10
- json?: boolean;
11
- verbose?: boolean;
12
- /** Offline simulation mode — no network required, for CI regression only */
13
- simulation?: boolean;
14
- }
15
-
16
- export async function handleEvaluateCommand(options: EvaluateCommandOptions = {}): Promise<void> {
17
- const sim = options.simulation ?? false;
18
- const runner = new BenchmarkRunner({ simulation: sim });
19
-
20
- const split: EvaluationSplit | 'all' =
21
- options.split === 'train'
22
- ? 'train'
23
- : options.split === 'eval'
24
- ? 'eval'
25
- : options.split === 'verification'
26
- ? 'verification'
27
- : 'all';
28
-
29
- let strategies: AgentEvaluationStrategy[] | undefined;
30
- if (options.strategy) {
31
- const list = options.strategy.split(',').map((s) => s.trim());
32
- strategies = list as AgentEvaluationStrategy[];
33
- }
34
-
35
- const tasks = options.task ? [options.task] : undefined;
36
-
37
- if (!options.json) {
38
- const modeLabel = sim
39
- ? c.yellow('[SIMULATION MODE — offline CI, no network]')
40
- : c.green('[REAL MODE — requires network access]');
41
- console.log(c.bold(c.cyan('\n=== DocOrbit Real-World Agent Evaluation Benchmark ===')));
42
- console.log(modeLabel);
43
- if (!sim) {
44
- console.log(c.gray(' Context7: real context7-mcp stdio subprocess (context7.com)'));
45
- console.log(c.gray(' Firecrawl: real /v1/scrape API (api.firecrawl.dev)'));
46
- console.log(c.gray(' Official Docs Fetch: direct HTTPS fetch to official docs URLs'));
47
- console.log(c.gray(' DocOrbit: real in-process MCP server\n'));
48
- }
49
- console.log(`Split: ${c.yellow(split)} | Strategies: ${strategies ? strategies.join(', ') : 'all'}`);
50
- console.log(`Artifacts: ${options.output || 'eval-results/'}\n`);
51
- }
52
-
53
- const report = await runner.run({
54
- split,
55
- strategies,
56
- tasks,
57
- outputDir: options.output,
58
- verbose: options.verbose,
59
- simulation: sim,
60
- });
61
-
62
- if (options.json) {
63
- console.log(JSON.stringify(report, null, 2));
64
- return;
65
- }
66
-
67
- const modeTag = sim ? ' [SIMULATION]' : ' [REAL]';
68
- console.log(c.bold(c.green(`\nEvaluation Complete${modeTag} — ${report.totalTasks} tasks\n`)));
69
-
70
- const sDocs = report.byStrategy.agent_official_docs_fetch || report.byStrategy.agent_web_search;
71
- const sFC = report.byStrategy.agent_firecrawl;
72
- const sDR = report.byStrategy.agent_docorbit;
73
-
74
- if (sDocs && sC7 && sDR) {
75
- const pct = (n: number) => `${(n * 100).toFixed(1)}%`;
76
-
77
- if (sFC) {
78
- const hr = '---------------------------------------------------------------------------------------------------------------------';
79
- console.log(hr);
80
- console.log(c.bold(`| ${'Metric'.padEnd(32)}| ${'Official Docs Fetch'.padEnd(21)}| ${'Firecrawl'.padEnd(14)}| ${'Context7'.padEnd(14)}| ${'DocOrbit'.padEnd(14)}|`));
81
- console.log(hr);
82
-
83
- const row = (label: string, vDocs: string, vFC: string, vC7: string, vDR: string) =>
84
- `| ${label.padEnd(32)}| ${vDocs.padEnd(21)}| ${vFC.padEnd(14)}| ${vC7.padEnd(14)}| ${vDR.padEnd(14)}|`;
85
-
86
- console.log(row('Overall Task Success Rate', pct(sDocs.overallSuccessRate), pct(sFC.overallSuccessRate), pct(sC7.overallSuccessRate), pct(sDR.overallSuccessRate)));
87
- console.log(row('Held-Out Eval Success Rate', pct(sDocs.evalSuccessRate), pct(sFC.evalSuccessRate), pct(sC7.evalSuccessRate), pct(sDR.evalSuccessRate)));
88
- console.log(row('Correct Version Selection', pct(sDocs.versionAccuracy), pct(sFC.versionAccuracy), pct(sC7.versionAccuracy), pct(sDR.versionAccuracy)));
89
- console.log(row('Retrieval Precision@k', pct(sDocs.meanPrecision), pct(sFC.meanPrecision), pct(sC7.meanPrecision), pct(sDR.meanPrecision)));
90
- console.log(row('Retrieval Recall@k', pct(sDocs.meanRecall), pct(sFC.meanRecall), pct(sC7.meanRecall), pct(sDR.meanRecall)));
91
- console.log(row('Mean Token Ingestion', `~${Math.round(sDocs.meanTokens)}`, `~${Math.round(sFC.meanTokens)}`, `~${Math.round(sC7.meanTokens)}`, `~${Math.round(sDR.meanTokens)}`));
92
- console.log(row('Context Prep Latency', `~${sDocs.meanLatencyMs.toFixed(0)}ms`, `~${sFC.meanLatencyMs.toFixed(0)}ms`, `~${sC7.meanLatencyMs.toFixed(0)}ms`, `~${sDR.meanLatencyMs.toFixed(0)}ms`));
93
- console.log(row('Avg Tool Calls per Task', sDocs.meanToolCalls.toFixed(1), sFC.meanToolCalls.toFixed(1), sC7.meanToolCalls.toFixed(1), sDR.meanToolCalls.toFixed(1)));
94
- console.log(row('AST Verification Catches', '—', '—', '—', String(sDR.totalVerificationCatches)));
95
- console.log(row('Verification False Positives', '—', '—', '—', String(sDR.falsePositives)));
96
- console.log(hr);
97
- } else {
98
- const hr = '--------------------------------------------------------------------------------------------------';
99
- console.log(hr);
100
- console.log(c.bold(`| ${'Metric'.padEnd(36)}| ${'Official Docs Fetch'.padEnd(21)}| ${'Context7'.padEnd(14)}| ${'DocOrbit'.padEnd(14)}|`));
101
- console.log(hr);
102
-
103
- const row = (label: string, vDocs: string, vC7: string, vDR: string) =>
104
- `| ${label.padEnd(36)}| ${vDocs.padEnd(21)}| ${vC7.padEnd(14)}| ${vDR.padEnd(14)}|`;
105
-
106
- console.log(row('Overall Task Success Rate', pct(sDocs.overallSuccessRate), pct(sC7.overallSuccessRate), pct(sDR.overallSuccessRate)));
107
- console.log(row('Held-Out Eval Success Rate', pct(sDocs.evalSuccessRate), pct(sC7.evalSuccessRate), pct(sDR.evalSuccessRate)));
108
- console.log(row('Correct Version Selection', pct(sDocs.versionAccuracy), pct(sC7.versionAccuracy), pct(sDR.versionAccuracy)));
109
- console.log(row('Retrieval Precision@k', pct(sDocs.meanPrecision), pct(sC7.meanPrecision), pct(sDR.meanPrecision)));
110
- console.log(row('Retrieval Recall@k', pct(sDocs.meanRecall), pct(sC7.meanRecall), pct(sDR.meanRecall)));
111
- console.log(row('Mean Token Ingestion', `~${Math.round(sDocs.meanTokens)}`, `~${Math.round(sC7.meanTokens)}`, `~${Math.round(sDR.meanTokens)}`));
112
- console.log(row('Context Prep Latency', `~${sDocs.meanLatencyMs.toFixed(0)}ms`, `~${sC7.meanLatencyMs.toFixed(0)}ms`, `~${sDR.meanLatencyMs.toFixed(0)}ms`));
113
- console.log(row('Avg Tool Calls per Task', sDocs.meanToolCalls.toFixed(1), sC7.meanToolCalls.toFixed(1), sDR.meanToolCalls.toFixed(1)));
114
- console.log(row('AST Verification Catches', '—', '—', String(sDR.totalVerificationCatches)));
115
- console.log(row('Verification False Positives', '—', '—', String(sDR.falsePositives)));
116
- console.log(hr);
117
- }
118
-
119
- if (sDR) {
120
- console.log(c.bold(c.cyan('\nAST Code Verification (`check_api`) Performance:')));
121
- console.log(` Total Verification Catches: ${c.bold(String(sDR.totalVerificationCatches))}`);
122
- console.log(` False Positives on Valid Code: ${c.bold(String(sDR.falsePositives))}`);
123
- console.log(` Dynamic/Ambiguous Fallback Rate: ${c.bold(pct(sDR.insufficientEvidenceRate))}`);
124
- }
125
-
126
- if (sim) {
127
- console.log(c.yellow('\n⚠ Results above are from simulated runners. Run without --simulation for real results.'));
128
- }
129
- console.log(c.gray('\n* Official Docs Fetch baseline directly fetches known official documentation URLs over HTTPS rather than querying a search engine.'));
130
- }
131
-
132
- console.log(`\nRaw artifacts: ${c.cyan(options.output || 'eval-results/')}\n`);
133
- }
@@ -1,39 +0,0 @@
1
- import { DocOrbitDb, DocOrbitRepository } from '../../../../packages/storage/src/index.ts';
2
- import { resolveProjectContext } from '../../../../packages/workspace/src/index.ts';
3
- import type { ExamplesCommandOptions } from '../../../../packages/shared/src/index.ts';
4
- import { formatIndexedExamples } from '../formatters/terminal.ts';
5
-
6
- export async function runExamplesCommand(task: string = '', options: ExamplesCommandOptions = {}): Promise<void> {
7
- const dbPath = options.dbPath || '.docorbit/docorbit.db';
8
- const db = new DocOrbitDb(dbPath);
9
- const repository = new DocOrbitRepository(db);
10
-
11
- try {
12
- let effectiveDocVersion = options.docVersion;
13
-
14
- if (options.projectDir) {
15
- const projContext = resolveProjectContext(options.projectDir, task, repository);
16
- if (projContext.matchedDependency && !effectiveDocVersion) {
17
- effectiveDocVersion = projContext.matchedDependency.targetDocVersion;
18
- }
19
- }
20
-
21
- const examples = repository.searchIndexedExamples(task, {
22
- language: options.language,
23
- framework: options.framework,
24
- docVersion: effectiveDocVersion,
25
- limit: options.limit || 10,
26
- });
27
-
28
- if (options.json) {
29
- console.log(JSON.stringify(examples, null, 2));
30
- } else {
31
- console.log(formatIndexedExamples(examples, task));
32
- }
33
- } catch (err: unknown) {
34
- console.error(`DocOrbit Examples Error: ${err instanceof Error ? err.message : String(err)}`);
35
- process.exit(1);
36
- } finally {
37
- db.close();
38
- }
39
- }
@@ -1,89 +0,0 @@
1
- import path from 'node:path';
2
- import { DocOrbitDb, DocOrbitRepository } from '../../../../packages/storage/src/index.ts';
3
- import { ExportService } from '../../../../packages/export/src/index.ts';
4
- import type { ExportFormat } from '../../../../packages/shared/src/index.ts';
5
- import { c } from '../formatters/colors.ts';
6
-
7
- export interface ExportCommandOptions {
8
- format?: string;
9
- output?: string;
10
- stdout?: boolean;
11
- projectDir?: string;
12
- docVersion?: string;
13
- targetSource?: string;
14
- json?: boolean;
15
- dbPath?: string;
16
- }
17
-
18
- export async function runExportCommand(
19
- formatArg?: string,
20
- options: ExportCommandOptions = {}
21
- ): Promise<void> {
22
- const rawFormat = (formatArg || options.format || 'agents.md').toLowerCase();
23
- const validFormats: ExportFormat[] = ['agents.md', 'claude.md', 'skill.md', 'llms.txt', 'docs-map.md'];
24
-
25
- let format: ExportFormat = 'agents.md';
26
- if (validFormats.includes(rawFormat as ExportFormat)) {
27
- format = rawFormat as ExportFormat;
28
- } else if (rawFormat === 'agents' || rawFormat === 'agent') {
29
- format = 'agents.md';
30
- } else if (rawFormat === 'claude') {
31
- format = 'claude.md';
32
- } else if (rawFormat === 'skill') {
33
- format = 'skill.md';
34
- } else if (rawFormat === 'llms' || rawFormat === 'llms.txt') {
35
- format = 'llms.txt';
36
- } else if (rawFormat === 'map' || rawFormat === 'docs-map') {
37
- format = 'docs-map.md';
38
- }
39
-
40
- const projectDir = options.projectDir ? path.resolve(options.projectDir) : process.cwd();
41
- const dbPath = options.dbPath || path.join(projectDir, '.docorbit', 'docorbit.db');
42
-
43
- const db = new DocOrbitDb(dbPath);
44
- const repo = new DocOrbitRepository(db);
45
- const service = new ExportService(repo);
46
-
47
- try {
48
- if (options.stdout) {
49
- const result = await service.generateExport({
50
- format,
51
- projectDir,
52
- docVersion: options.docVersion,
53
- targetSource: options.targetSource,
54
- stdout: true,
55
- });
56
-
57
- if (options.json) {
58
- console.log(JSON.stringify(result, null, 2));
59
- } else {
60
- process.stdout.write(result.content);
61
- }
62
- return;
63
- }
64
-
65
- const result = await service.writeExport({
66
- format,
67
- projectDir,
68
- docVersion: options.docVersion,
69
- targetSource: options.targetSource,
70
- outputPath: options.output,
71
- });
72
-
73
- if (options.json) {
74
- console.log(JSON.stringify(result, null, 2));
75
- return;
76
- }
77
-
78
- console.log(`\n${c.bold(c.green('✓'))} Generated ${c.bold(format)} for coding agents`);
79
- console.log(` ${c.dim('Output file:')} ${c.cyan(result.outputPath || 'stdout')}`);
80
- console.log(` ${c.dim('Doc Version:')} ${result.metadata.docVersion || 'global/latest'}`);
81
- console.log(` ${c.dim('Estimated Tokens:')} ~${result.metadata.tokenEstimate.toLocaleString()}`);
82
- console.log(` ${c.dim('APIs Included:')} ${result.metadata.totalApis}`);
83
- console.log(` ${c.dim('Pitfalls Included:')}${result.metadata.totalPitfalls}`);
84
- console.log(` ${c.dim('Indexed Sources:')} ${result.metadata.sources.length}`);
85
- console.log(` ${c.dim('Security Boundary:')}${c.yellow('untrusted documentation preserved')}\n`);
86
- } finally {
87
- db.close();
88
- }
89
- }
@@ -1,31 +0,0 @@
1
- import { DocOrbitDb, DocOrbitRepository } from '../../../../packages/storage/src/index.ts';
2
- import { ImpactAnalysisService } from '../../../../packages/verification/src/index.ts';
3
- import type { ImpactCommandOptions } from '../../../../packages/shared/src/index.ts';
4
- import { formatImpactReport } from '../formatters/terminal.ts';
5
-
6
- export async function runImpactCommand(target: string = '', options: ImpactCommandOptions = {}): Promise<void> {
7
- const dbPath = options.dbPath || '.docorbit/docorbit.db';
8
- const db = new DocOrbitDb(dbPath);
9
- const repo = new DocOrbitRepository(db);
10
-
11
- try {
12
- const service = new ImpactAnalysisService(repo);
13
- const { result } = service.analyzeImpact({
14
- projectDir: options.projectDir || process.cwd(),
15
- fromVersion: options.from,
16
- toVersion: options.to,
17
- sourceId: options.source || (target && !target.startsWith('-') ? target : undefined),
18
- });
19
-
20
- if (options.json) {
21
- console.log(JSON.stringify(result, null, 2));
22
- } else {
23
- console.log(formatImpactReport(result));
24
- }
25
- } catch (err: unknown) {
26
- console.error(`DocOrbit Impact Error: ${err instanceof Error ? err.message : String(err)}`);
27
- process.exit(1);
28
- } finally {
29
- db.close();
30
- }
31
- }
@@ -1,69 +0,0 @@
1
- import { resolve } from 'node:path';
2
- import { DocOrbitDb, DocOrbitRepository } from '../../../../packages/storage/src/index.ts';
3
- import {
4
- detectWorkspaceDependencies,
5
- generateDocsLock,
6
- readDocsLock,
7
- writeDocsLock,
8
- } from '../../../../packages/workspace/src/index.ts';
9
-
10
- export interface InitCommandOptions {
11
- json?: boolean;
12
- dbPath?: string;
13
- }
14
-
15
- export async function runInitCommand(
16
- targetDir: string = '.',
17
- options: InitCommandOptions = {}
18
- ): Promise<void> {
19
- const projectDir = resolve(targetDir);
20
- const dbPath = options.dbPath || '.docorbit/docorbit.db';
21
- const db = new DocOrbitDb(dbPath);
22
- const repository = new DocOrbitRepository(db);
23
-
24
- try {
25
- const scanResult = detectWorkspaceDependencies(projectDir);
26
- const existingLock = readDocsLock(projectDir);
27
- const lock = generateDocsLock(scanResult, repository, existingLock);
28
-
29
- writeDocsLock(projectDir, lock);
30
-
31
- if (options.json) {
32
- console.log(JSON.stringify(lock, null, 2));
33
- return;
34
- }
35
-
36
- console.log(`\n=== DocOrbit Project Initialization ===`);
37
- console.log(`Workspace Root: ${projectDir}`);
38
- console.log(`Ecosystems: ${scanResult.ecosystems.length > 0 ? scanResult.ecosystems.join(', ') : 'None detected'}`);
39
- console.log(`Manifests: ${scanResult.manifestsFound.join(', ') || 'None'}`);
40
- console.log(`Dependencies: ${scanResult.dependencies.length} detected`);
41
-
42
- const lockedCount = Object.keys(lock.dependencies).length;
43
- console.log(`Locked Docs: ${lockedCount} dependencies resolved to documentation\n`);
44
-
45
- if (lockedCount > 0) {
46
- console.log('-----------------------------------------------------------------------------');
47
- console.log('| Package | Project Ver | Doc Ver | Match | Confidence |');
48
- console.log('-----------------------------------------------------------------------------');
49
- for (const [key, dep] of Object.entries(lock.dependencies)) {
50
- const pkgPad = key.padEnd(21).slice(0, 21);
51
- const projPad = dep.resolvedDependencyVersion.padEnd(11).slice(0, 11);
52
- const docPad = dep.docVersion.padEnd(8).slice(0, 8);
53
- const matchPad = dep.matchType.padEnd(11).slice(0, 11);
54
- const confPad = (dep.confidence * 100).toFixed(0) + '%';
55
- console.log(`| ${pkgPad} | ${projPad} | ${docPad} | ${matchPad} | ${confPad.padEnd(10)} |`);
56
- }
57
- console.log('-----------------------------------------------------------------------------');
58
- console.log(`\nGenerated deterministic docs.lock at: ${projectDir}/docs.lock\n`);
59
- } else {
60
- console.log('Note: No ingested documentation matched detected dependencies.');
61
- console.log('Tip: Use `docorbit add <url>` to ingest official docs for your dependencies, then re-run `docorbit init`.\n');
62
- }
63
- } catch (err: unknown) {
64
- console.error(`DocOrbit Init Error: ${err instanceof Error ? err.message : String(err)}`);
65
- process.exit(1);
66
- } finally {
67
- db.close();
68
- }
69
- }
@@ -1,30 +0,0 @@
1
- import { inspectDocumentation } from '../../../../packages/core/src/index.ts';
2
- import { formatInspectionReport } from '../formatters/terminal.ts';
3
-
4
- export interface InspectCommandOptions {
5
- json?: boolean;
6
- allowLocalhost?: boolean;
7
- }
8
-
9
- export async function runInspectCommand(targetUrl: string, options: InspectCommandOptions = {}): Promise<void> {
10
- if (!targetUrl) {
11
- console.error('Error: Please provide a documentation target URL.');
12
- console.error('Usage: docorbit inspect <url> [--json]');
13
- process.exit(1);
14
- }
15
-
16
- try {
17
- const report = await inspectDocumentation(targetUrl, {
18
- allowLocalhostForTesting: options.allowLocalhost,
19
- });
20
-
21
- if (options.json) {
22
- console.log(JSON.stringify(report, null, 2));
23
- } else {
24
- console.log(formatInspectionReport(report));
25
- }
26
- } catch (err: unknown) {
27
- console.error(`DocOrbit Inspection Error: ${err instanceof Error ? err.message : String(err)}`);
28
- process.exit(1);
29
- }
30
- }
@@ -1,72 +0,0 @@
1
- import { DocOrbitDb, DocOrbitRepository } from '../../../../packages/storage/src/index.ts';
2
- import { WorkspaceResolver } from '../../../../packages/workspace/src/index.ts';
3
- import {
4
- McpServer,
5
- StdioServerTransport,
6
- StreamableHttpTransport,
7
- } from '../../../../packages/mcp/src/index.ts';
8
-
9
- export interface McpCommandOptions {
10
- stdio?: boolean;
11
- port?: number;
12
- host?: string;
13
- dbPath?: string;
14
- projectDir?: string;
15
- }
16
-
17
- export async function runMcpCommand(options: McpCommandOptions = {}): Promise<void> {
18
- const dbPath = options.dbPath || '.docorbit/docorbit.db';
19
- const projectDir = options.projectDir || process.cwd();
20
-
21
- const db = new DocOrbitDb(dbPath);
22
- const repo = new DocOrbitRepository(db);
23
- const resolver = new WorkspaceResolver(repo);
24
-
25
- const server = new McpServer({
26
- repo,
27
- resolver,
28
- projectDir,
29
- serverName: 'docorbit-mcp',
30
- serverVersion: '0.5.0',
31
- });
32
-
33
- const isHttp = typeof options.port === 'number' && options.port > 0;
34
-
35
- if (isHttp) {
36
- const port = options.port!;
37
- const host = options.host || '127.0.0.1';
38
- const transport = new StreamableHttpTransport({ port, host });
39
-
40
- await transport.start(server);
41
- const activePort = transport.getPort();
42
- process.stderr.write(
43
- `[DocOrbit MCP] Streamable HTTP server listening on http://${host}:${activePort}\n` +
44
- ` - MCP endpoint: POST http://${host}:${activePort}/mcp\n` +
45
- ` - SSE fallback: GET http://${host}:${activePort}/sse\n` +
46
- ` - Health check: GET http://${host}:${activePort}/health\n`
47
- );
48
-
49
- const shutdown = async () => {
50
- process.stderr.write('[DocOrbit MCP] Shutting down HTTP server...\n');
51
- await transport.close();
52
- db.close();
53
- process.exit(0);
54
- };
55
-
56
- process.on('SIGINT', shutdown);
57
- process.on('SIGTERM', shutdown);
58
- } else {
59
- // Default to Stdio transport
60
- const transport = new StdioServerTransport();
61
- await transport.start(server);
62
-
63
- const shutdown = async () => {
64
- await transport.close();
65
- db.close();
66
- process.exit(0);
67
- };
68
-
69
- process.on('SIGINT', shutdown);
70
- process.on('SIGTERM', shutdown);
71
- }
72
- }
@@ -1,38 +0,0 @@
1
- import { DocOrbitDb, DocOrbitRepository } from '../../../../packages/storage/src/index.ts';
2
- import { resolveProjectContext } from '../../../../packages/workspace/src/index.ts';
3
- import type { PitfallsCommandOptions } from '../../../../packages/shared/src/index.ts';
4
- import { formatPitfalls } from '../formatters/terminal.ts';
5
-
6
- export async function runPitfallsCommand(task: string = '', options: PitfallsCommandOptions = {}): Promise<void> {
7
- const dbPath = options.dbPath || '.docorbit/docorbit.db';
8
- const db = new DocOrbitDb(dbPath);
9
- const repository = new DocOrbitRepository(db);
10
-
11
- try {
12
- let effectiveDocVersion = options.docVersion;
13
-
14
- if (options.projectDir) {
15
- const projContext = resolveProjectContext(options.projectDir, task, repository);
16
- if (projContext.matchedDependency && !effectiveDocVersion) {
17
- effectiveDocVersion = projContext.matchedDependency.targetDocVersion;
18
- }
19
- }
20
-
21
- const pitfalls = repository.searchPitfalls(task, {
22
- kind: options.kind,
23
- docVersion: effectiveDocVersion,
24
- limit: options.limit || 10,
25
- });
26
-
27
- if (options.json) {
28
- console.log(JSON.stringify(pitfalls, null, 2));
29
- } else {
30
- console.log(formatPitfalls(pitfalls, task));
31
- }
32
- } catch (err: unknown) {
33
- console.error(`DocOrbit Pitfalls Error: ${err instanceof Error ? err.message : String(err)}`);
34
- process.exit(1);
35
- } finally {
36
- db.close();
37
- }
38
- }
@@ -1,35 +0,0 @@
1
- import { DocOrbitDb, DocOrbitRepository } from '../../../../packages/storage/src/index.ts';
2
- import { RecipeEngine } from '../../../../packages/retrieval/src/index.ts';
3
- import type { RecipesCommandOptions } from '../../../../packages/shared/src/index.ts';
4
- import { formatRecipe } from '../formatters/terminal.ts';
5
-
6
- export async function runRecipesCommand(goal: string, options: RecipesCommandOptions = {}): Promise<void> {
7
- if (!goal) {
8
- console.error('Error: Please provide an implementation goal.');
9
- console.error('Usage: docorbit recipes "<goal>" [--doc-version <ver>] [--project <dir>] [--json] [--db <path>]');
10
- process.exit(1);
11
- }
12
-
13
- const dbPath = options.dbPath || '.docorbit/docorbit.db';
14
- const db = new DocOrbitDb(dbPath);
15
- const repository = new DocOrbitRepository(db);
16
- const recipeEngine = new RecipeEngine(repository);
17
-
18
- try {
19
- const recipe = await recipeEngine.assembleRecipe(goal, {
20
- docVersion: options.docVersion,
21
- projectDir: options.projectDir,
22
- });
23
-
24
- if (options.json) {
25
- console.log(JSON.stringify(recipe, null, 2));
26
- } else {
27
- console.log(formatRecipe(recipe));
28
- }
29
- } catch (err: unknown) {
30
- console.error(`DocOrbit Recipes Error: ${err instanceof Error ? err.message : String(err)}`);
31
- process.exit(1);
32
- } finally {
33
- db.close();
34
- }
35
- }
@@ -1,48 +0,0 @@
1
- import { DocOrbitDb, DocOrbitRepository } from '../../../../packages/storage/src/index.ts';
2
- import { RetrievalEngine } from '../../../../packages/retrieval/src/index.ts';
3
- import type { ChunkType } from '../../../../packages/shared/src/index.ts';
4
- import { formatSearchResults } from '../formatters/terminal.ts';
5
-
6
- export interface SearchCommandOptions {
7
- json?: boolean;
8
- dbPath?: string;
9
- limit?: number;
10
- chunkType?: ChunkType;
11
- snapshotId?: string;
12
- docVersion?: string;
13
- projectDir?: string;
14
- }
15
-
16
- export async function runSearchCommand(query: string, options: SearchCommandOptions = {}): Promise<void> {
17
- if (!query) {
18
- console.error('Error: Please provide a search query.');
19
- console.error('Usage: docorbit search "<query>" [--limit <n>] [--type <type>] [--doc-version <ver>] [--project <dir>] [--json] [--db <path>]');
20
- process.exit(1);
21
- }
22
-
23
- const dbPath = options.dbPath || '.docorbit/docorbit.db';
24
- const db = new DocOrbitDb(dbPath);
25
- const repository = new DocOrbitRepository(db);
26
- const engine = new RetrievalEngine(repository);
27
-
28
- try {
29
- const results = await engine.search(query, {
30
- limit: options.limit || 10,
31
- chunkType: options.chunkType,
32
- snapshotId: options.snapshotId,
33
- docVersion: options.docVersion,
34
- projectDir: options.projectDir,
35
- });
36
-
37
- if (options.json) {
38
- console.log(JSON.stringify(results, null, 2));
39
- } else {
40
- console.log(formatSearchResults(query, results));
41
- }
42
- } catch (err: unknown) {
43
- console.error(`DocOrbit Search Error: ${err instanceof Error ? err.message : String(err)}`);
44
- process.exit(1);
45
- } finally {
46
- db.close();
47
- }
48
- }