docorbit 0.1.0 → 0.1.1

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 (402) hide show
  1. package/bin/docorbit.js +2 -2
  2. package/dist/apps/cli/src/commands/add.d.ts +7 -0
  3. package/dist/apps/cli/src/commands/add.js +35 -0
  4. package/dist/apps/cli/src/commands/api.d.ts +2 -0
  5. package/dist/apps/cli/src/commands/api.js +35 -0
  6. package/dist/apps/cli/src/commands/context.d.ts +10 -0
  7. package/dist/apps/cli/src/commands/context.js +36 -0
  8. package/dist/apps/cli/src/commands/dashboard.d.ts +8 -0
  9. package/dist/apps/cli/src/commands/dashboard.js +43 -0
  10. package/dist/apps/cli/src/commands/diff.d.ts +2 -0
  11. package/dist/apps/cli/src/commands/diff.js +29 -0
  12. package/dist/apps/cli/src/commands/evaluate.d.ts +11 -0
  13. package/dist/apps/cli/src/commands/evaluate.js +101 -0
  14. package/dist/apps/cli/src/commands/examples.d.ts +2 -0
  15. package/dist/apps/cli/src/commands/examples.js +36 -0
  16. package/dist/apps/cli/src/commands/export.d.ts +11 -0
  17. package/dist/apps/cli/src/commands/export.js +72 -0
  18. package/dist/apps/cli/src/commands/impact.d.ts +2 -0
  19. package/dist/apps/cli/src/commands/impact.js +30 -0
  20. package/dist/apps/cli/src/commands/init.d.ts +5 -0
  21. package/dist/apps/cli/src/commands/init.js +52 -0
  22. package/dist/apps/cli/src/commands/inspect.d.ts +5 -0
  23. package/dist/apps/cli/src/commands/inspect.js +24 -0
  24. package/dist/apps/cli/src/commands/mcp.d.ts +8 -0
  25. package/dist/apps/cli/src/commands/mcp.js +49 -0
  26. package/dist/apps/cli/src/commands/pitfalls.d.ts +2 -0
  27. package/dist/apps/cli/src/commands/pitfalls.js +35 -0
  28. package/dist/apps/cli/src/commands/recipes.d.ts +2 -0
  29. package/dist/apps/cli/src/commands/recipes.js +33 -0
  30. package/dist/apps/cli/src/commands/search.d.ts +11 -0
  31. package/dist/apps/cli/src/commands/search.js +36 -0
  32. package/dist/apps/cli/src/commands/update.d.ts +6 -0
  33. package/dist/apps/cli/src/commands/update.js +53 -0
  34. package/dist/apps/cli/src/commands/verify.d.ts +2 -0
  35. package/dist/apps/cli/src/commands/verify.js +44 -0
  36. package/dist/apps/cli/src/formatters/colors.d.ts +21 -0
  37. package/dist/apps/cli/src/formatters/colors.js +22 -0
  38. package/dist/apps/cli/src/formatters/inspection.d.ts +3 -0
  39. package/dist/apps/cli/src/formatters/inspection.js +88 -0
  40. package/dist/apps/cli/src/formatters/knowledge.d.ts +5 -0
  41. package/dist/apps/cli/src/formatters/knowledge.js +229 -0
  42. package/dist/apps/cli/src/formatters/retrieval.d.ts +3 -0
  43. package/dist/apps/cli/src/formatters/retrieval.js +61 -0
  44. package/{apps/cli/src/formatters/terminal.ts → dist/apps/cli/src/formatters/terminal.d.ts} +0 -1
  45. package/dist/apps/cli/src/formatters/terminal.js +5 -0
  46. package/dist/apps/cli/src/formatters/verification.d.ts +4 -0
  47. package/dist/apps/cli/src/formatters/verification.js +102 -0
  48. package/dist/apps/cli/src/index.d.ts +1 -0
  49. package/dist/apps/cli/src/index.js +376 -0
  50. package/dist/packages/core/src/dashboard/server.d.ts +33 -0
  51. package/dist/packages/core/src/dashboard/server.js +267 -0
  52. package/dist/packages/core/src/dashboard/ui.d.ts +5 -0
  53. package/{packages/core/src/dashboard/ui.ts → dist/packages/core/src/dashboard/ui.js} +2 -2
  54. package/dist/packages/core/src/implementation-service.d.ts +73 -0
  55. package/dist/packages/core/src/implementation-service.js +325 -0
  56. package/{packages/core/src/index.ts → dist/packages/core/src/index.d.ts} +0 -1
  57. package/dist/packages/core/src/index.js +6 -0
  58. package/dist/packages/core/src/inspector.d.ts +22 -0
  59. package/dist/packages/core/src/inspector.js +38 -0
  60. package/dist/packages/core/src/pipeline.d.ts +45 -0
  61. package/dist/packages/core/src/pipeline.js +246 -0
  62. package/dist/packages/crawler/src/config.d.ts +2 -0
  63. package/dist/packages/crawler/src/config.js +10 -0
  64. package/dist/packages/crawler/src/fetcher.d.ts +31 -0
  65. package/dist/packages/crawler/src/fetcher.js +139 -0
  66. package/dist/packages/crawler/src/index.js +2 -0
  67. package/dist/packages/discovery/src/index.d.ts +11 -0
  68. package/dist/packages/discovery/src/index.js +29 -0
  69. package/dist/packages/discovery/src/provider.d.ts +12 -0
  70. package/dist/packages/discovery/src/provider.js +30 -0
  71. package/dist/packages/discovery/src/providers/generic.d.ts +7 -0
  72. package/dist/packages/discovery/src/providers/generic.js +94 -0
  73. package/dist/packages/discovery/src/providers/github.d.ts +7 -0
  74. package/dist/packages/discovery/src/providers/github.js +52 -0
  75. package/dist/packages/discovery/src/providers/llms-txt.d.ts +7 -0
  76. package/dist/packages/discovery/src/providers/llms-txt.js +60 -0
  77. package/dist/packages/discovery/src/providers/markdown.d.ts +7 -0
  78. package/dist/packages/discovery/src/providers/markdown.js +38 -0
  79. package/dist/packages/discovery/src/providers/openapi.d.ts +7 -0
  80. package/dist/packages/discovery/src/providers/openapi.js +77 -0
  81. package/dist/packages/discovery/src/providers/sitemap.d.ts +7 -0
  82. package/dist/packages/discovery/src/providers/sitemap.js +53 -0
  83. package/dist/packages/discovery/src/providers/skill.d.ts +7 -0
  84. package/dist/packages/discovery/src/providers/skill.js +46 -0
  85. package/dist/packages/discovery/src/ranker.d.ts +6 -0
  86. package/dist/packages/discovery/src/ranker.js +107 -0
  87. package/dist/packages/evaluation/src/dataset.d.ts +2 -0
  88. package/dist/packages/evaluation/src/dataset.js +944 -0
  89. package/dist/packages/evaluation/src/index.js +8 -0
  90. package/dist/packages/evaluation/src/runner.d.ts +7 -0
  91. package/dist/packages/evaluation/src/runner.js +196 -0
  92. package/dist/packages/evaluation/src/strategies/context7-runner.d.ts +24 -0
  93. package/dist/packages/evaluation/src/strategies/context7-runner.js +229 -0
  94. package/dist/packages/evaluation/src/strategies/docorbit-runner.d.ts +5 -0
  95. package/dist/packages/evaluation/src/strategies/docorbit-runner.js +210 -0
  96. package/dist/packages/evaluation/src/strategies/firecrawl-runner.d.ts +24 -0
  97. package/dist/packages/evaluation/src/strategies/firecrawl-runner.js +151 -0
  98. package/dist/packages/evaluation/src/strategies/web-search-runner.d.ts +32 -0
  99. package/dist/packages/evaluation/src/strategies/web-search-runner.js +161 -0
  100. package/dist/packages/evaluation/src/types.d.ts +15 -0
  101. package/dist/packages/evaluation/src/types.js +1 -0
  102. package/dist/packages/evaluation/src/version-matcher.d.ts +11 -0
  103. package/dist/packages/evaluation/src/version-matcher.js +61 -0
  104. package/dist/packages/export/src/agents-md.d.ts +19 -0
  105. package/dist/packages/export/src/agents-md.js +170 -0
  106. package/dist/packages/export/src/claude-md.d.ts +17 -0
  107. package/dist/packages/export/src/claude-md.js +118 -0
  108. package/dist/packages/export/src/docs-map.d.ts +14 -0
  109. package/dist/packages/export/src/docs-map.js +118 -0
  110. package/dist/packages/export/src/index.js +6 -0
  111. package/dist/packages/export/src/llms-txt.d.ts +15 -0
  112. package/dist/packages/export/src/llms-txt.js +73 -0
  113. package/dist/packages/export/src/service.d.ts +23 -0
  114. package/dist/packages/export/src/service.js +210 -0
  115. package/dist/packages/export/src/skill-md.d.ts +14 -0
  116. package/dist/packages/export/src/skill-md.js +107 -0
  117. package/{packages/mcp/src/index.ts → dist/packages/mcp/src/index.d.ts} +2 -35
  118. package/dist/packages/mcp/src/index.js +6 -0
  119. package/dist/packages/mcp/src/resources/index.d.ts +12 -0
  120. package/dist/packages/mcp/src/resources/index.js +165 -0
  121. package/dist/packages/mcp/src/server.d.ts +30 -0
  122. package/dist/packages/mcp/src/server.js +243 -0
  123. package/dist/packages/mcp/src/tools/analyze-impact.d.ts +6 -0
  124. package/dist/packages/mcp/src/tools/analyze-impact.js +64 -0
  125. package/dist/packages/mcp/src/tools/check-api.d.ts +6 -0
  126. package/dist/packages/mcp/src/tools/check-api.js +74 -0
  127. package/dist/packages/mcp/src/tools/diff-docs.d.ts +6 -0
  128. package/dist/packages/mcp/src/tools/diff-docs.js +58 -0
  129. package/dist/packages/mcp/src/tools/export-context.d.ts +6 -0
  130. package/dist/packages/mcp/src/tools/export-context.js +61 -0
  131. package/dist/packages/mcp/src/tools/find-api.d.ts +6 -0
  132. package/dist/packages/mcp/src/tools/find-api.js +91 -0
  133. package/dist/packages/mcp/src/tools/find-example.d.ts +6 -0
  134. package/dist/packages/mcp/src/tools/find-example.js +92 -0
  135. package/dist/packages/mcp/src/tools/find-pitfall.d.ts +6 -0
  136. package/dist/packages/mcp/src/tools/find-pitfall.js +85 -0
  137. package/dist/packages/mcp/src/tools/find-recipe.d.ts +6 -0
  138. package/dist/packages/mcp/src/tools/find-recipe.js +89 -0
  139. package/dist/packages/mcp/src/tools/get-doc.d.ts +6 -0
  140. package/dist/packages/mcp/src/tools/get-doc.js +118 -0
  141. package/dist/packages/mcp/src/tools/get-docs-map.d.ts +6 -0
  142. package/dist/packages/mcp/src/tools/get-docs-map.js +54 -0
  143. package/dist/packages/mcp/src/tools/get-version.d.ts +6 -0
  144. package/dist/packages/mcp/src/tools/get-version.js +104 -0
  145. package/dist/packages/mcp/src/tools/implementation-context.d.ts +6 -0
  146. package/dist/packages/mcp/src/tools/implementation-context.js +82 -0
  147. package/dist/packages/mcp/src/tools/index.d.ts +18 -0
  148. package/dist/packages/mcp/src/tools/index.js +39 -0
  149. package/dist/packages/mcp/src/tools/list-sources.d.ts +6 -0
  150. package/dist/packages/mcp/src/tools/list-sources.js +76 -0
  151. package/dist/packages/mcp/src/tools/search-docs.d.ts +6 -0
  152. package/dist/packages/mcp/src/tools/search-docs.js +113 -0
  153. package/dist/packages/mcp/src/tools/types.d.ts +22 -0
  154. package/dist/packages/mcp/src/tools/types.js +1 -0
  155. package/dist/packages/mcp/src/transports/http.d.ts +31 -0
  156. package/dist/packages/mcp/src/transports/http.js +215 -0
  157. package/dist/packages/mcp/src/transports/stdio.d.ts +22 -0
  158. package/dist/packages/mcp/src/transports/stdio.js +86 -0
  159. package/{packages/mcp/src/transports/types.ts → dist/packages/mcp/src/transports/types.d.ts} +2 -3
  160. package/dist/packages/mcp/src/transports/types.js +1 -0
  161. package/dist/packages/mcp/src/types.d.ts +89 -0
  162. package/dist/packages/mcp/src/types.js +7 -0
  163. package/dist/packages/normalizer/src/example-indexer.d.ts +5 -0
  164. package/dist/packages/normalizer/src/example-indexer.js +200 -0
  165. package/dist/packages/normalizer/src/html.d.ts +13 -0
  166. package/dist/packages/normalizer/src/html.js +221 -0
  167. package/{packages/normalizer/src/index.ts → dist/packages/normalizer/src/index.d.ts} +0 -1
  168. package/dist/packages/normalizer/src/index.js +7 -0
  169. package/dist/packages/normalizer/src/llms.d.ts +3 -0
  170. package/dist/packages/normalizer/src/llms.js +71 -0
  171. package/dist/packages/normalizer/src/openapi/endpoint-parser.d.ts +11 -0
  172. package/dist/packages/normalizer/src/openapi/endpoint-parser.js +357 -0
  173. package/dist/packages/normalizer/src/openapi/schema-resolver.d.ts +10 -0
  174. package/dist/packages/normalizer/src/openapi/schema-resolver.js +82 -0
  175. package/dist/packages/normalizer/src/openapi.js +2 -0
  176. package/dist/packages/normalizer/src/page.d.ts +13 -0
  177. package/dist/packages/normalizer/src/page.js +150 -0
  178. package/dist/packages/normalizer/src/pitfall-extractor.d.ts +6 -0
  179. package/dist/packages/normalizer/src/pitfall-extractor.js +153 -0
  180. package/dist/packages/normalizer/src/slicer.d.ts +30 -0
  181. package/dist/packages/normalizer/src/slicer.js +360 -0
  182. package/dist/packages/retrieval/src/engine.d.ts +17 -0
  183. package/dist/packages/retrieval/src/engine.js +93 -0
  184. package/{packages/retrieval/src/index.ts → dist/packages/retrieval/src/index.d.ts} +0 -1
  185. package/dist/packages/retrieval/src/index.js +6 -0
  186. package/dist/packages/retrieval/src/intent.d.ts +6 -0
  187. package/dist/packages/retrieval/src/intent.js +39 -0
  188. package/dist/packages/retrieval/src/packer.d.ts +2 -0
  189. package/dist/packages/retrieval/src/packer.js +108 -0
  190. package/dist/packages/retrieval/src/recipe-engine.d.ts +18 -0
  191. package/dist/packages/retrieval/src/recipe-engine.js +265 -0
  192. package/dist/packages/retrieval/src/scorer.d.ts +13 -0
  193. package/dist/packages/retrieval/src/scorer.js +110 -0
  194. package/dist/packages/retrieval/src/weights.d.ts +3 -0
  195. package/dist/packages/retrieval/src/weights.js +28 -0
  196. package/dist/packages/security/src/annotations.d.ts +10 -0
  197. package/dist/packages/security/src/annotations.js +100 -0
  198. package/dist/packages/security/src/index.js +2 -0
  199. package/dist/packages/security/src/ssrf.d.ts +17 -0
  200. package/dist/packages/security/src/ssrf.js +132 -0
  201. package/dist/packages/shared/src/errors.d.ts +22 -0
  202. package/dist/packages/shared/src/errors.js +44 -0
  203. package/dist/packages/shared/src/hashing.d.ts +3 -0
  204. package/dist/packages/shared/src/hashing.js +21 -0
  205. package/dist/packages/shared/src/index.js +3 -0
  206. package/dist/packages/shared/src/types.d.ts +715 -0
  207. package/dist/packages/shared/src/types.js +1 -0
  208. package/dist/packages/storage/src/db.d.ts +10 -0
  209. package/dist/packages/storage/src/db.js +61 -0
  210. package/dist/packages/storage/src/index.js +10 -0
  211. package/dist/packages/storage/src/interfaces.d.ts +83 -0
  212. package/dist/packages/storage/src/interfaces.js +1 -0
  213. package/dist/packages/storage/src/repositories/api-repository.d.ts +16 -0
  214. package/dist/packages/storage/src/repositories/api-repository.js +169 -0
  215. package/dist/packages/storage/src/repositories/chunk-repository.d.ts +32 -0
  216. package/dist/packages/storage/src/repositories/chunk-repository.js +250 -0
  217. package/dist/packages/storage/src/repositories/example-repository.d.ts +16 -0
  218. package/dist/packages/storage/src/repositories/example-repository.js +158 -0
  219. package/dist/packages/storage/src/repositories/page-repository.d.ts +16 -0
  220. package/dist/packages/storage/src/repositories/page-repository.js +161 -0
  221. package/dist/packages/storage/src/repositories/pitfall-repository.d.ts +15 -0
  222. package/dist/packages/storage/src/repositories/pitfall-repository.js +144 -0
  223. package/dist/packages/storage/src/repositories/source-repository.d.ts +33 -0
  224. package/dist/packages/storage/src/repositories/source-repository.js +153 -0
  225. package/dist/packages/storage/src/repository.d.ts +92 -0
  226. package/dist/packages/storage/src/repository.js +157 -0
  227. package/dist/packages/storage/src/schema.d.ts +2 -0
  228. package/{packages/storage/src/schema.ts → dist/packages/storage/src/schema.js} +0 -3
  229. package/dist/packages/storage/src/search-tokens.d.ts +6 -0
  230. package/dist/packages/storage/src/search-tokens.js +26 -0
  231. package/dist/packages/verification/src/diff-engine.d.ts +18 -0
  232. package/dist/packages/verification/src/diff-engine.js +218 -0
  233. package/dist/packages/verification/src/extractor.d.ts +29 -0
  234. package/dist/packages/verification/src/extractor.js +302 -0
  235. package/dist/packages/verification/src/impact-scanner.d.ts +9 -0
  236. package/dist/packages/verification/src/impact-scanner.js +181 -0
  237. package/dist/packages/verification/src/index.js +5 -0
  238. package/dist/packages/verification/src/services.d.ts +55 -0
  239. package/dist/packages/verification/src/services.js +189 -0
  240. package/dist/packages/verification/src/verifier.d.ts +15 -0
  241. package/dist/packages/verification/src/verifier.js +315 -0
  242. package/dist/packages/workspace/src/detector.d.ts +7 -0
  243. package/dist/packages/workspace/src/detector.js +117 -0
  244. package/dist/packages/workspace/src/ecosystems/cargo.d.ts +10 -0
  245. package/dist/packages/workspace/src/ecosystems/cargo.js +69 -0
  246. package/dist/packages/workspace/src/ecosystems/composer.d.ts +7 -0
  247. package/dist/packages/workspace/src/ecosystems/composer.js +40 -0
  248. package/dist/packages/workspace/src/ecosystems/go.d.ts +7 -0
  249. package/dist/packages/workspace/src/ecosystems/go.js +49 -0
  250. package/{packages/workspace/src/ecosystems/index.ts → dist/packages/workspace/src/ecosystems/index.d.ts} +2 -24
  251. package/dist/packages/workspace/src/ecosystems/index.js +21 -0
  252. package/dist/packages/workspace/src/ecosystems/maven.d.ts +7 -0
  253. package/dist/packages/workspace/src/ecosystems/maven.js +28 -0
  254. package/dist/packages/workspace/src/ecosystems/npm.d.ts +10 -0
  255. package/dist/packages/workspace/src/ecosystems/npm.js +73 -0
  256. package/dist/packages/workspace/src/ecosystems/pub.d.ts +7 -0
  257. package/dist/packages/workspace/src/ecosystems/pub.js +34 -0
  258. package/dist/packages/workspace/src/ecosystems/pypi.d.ts +9 -0
  259. package/dist/packages/workspace/src/ecosystems/pypi.js +94 -0
  260. package/dist/packages/workspace/src/ecosystems/rubygems.d.ts +7 -0
  261. package/dist/packages/workspace/src/ecosystems/rubygems.js +25 -0
  262. package/dist/packages/workspace/src/ecosystems/types.d.ts +9 -0
  263. package/dist/packages/workspace/src/ecosystems/types.js +1 -0
  264. package/dist/packages/workspace/src/index.js +5 -0
  265. package/dist/packages/workspace/src/lockfile.d.ts +21 -0
  266. package/dist/packages/workspace/src/lockfile.js +153 -0
  267. package/dist/packages/workspace/src/resolver.d.ts +39 -0
  268. package/dist/packages/workspace/src/resolver.js +164 -0
  269. package/dist/packages/workspace/src/semver.d.ts +33 -0
  270. package/dist/packages/workspace/src/semver.js +235 -0
  271. package/package.json +8 -7
  272. package/apps/cli/bin/docorbit.js +0 -8
  273. package/apps/cli/src/commands/add.ts +0 -44
  274. package/apps/cli/src/commands/api.ts +0 -38
  275. package/apps/cli/src/commands/context.ts +0 -47
  276. package/apps/cli/src/commands/dashboard.ts +0 -55
  277. package/apps/cli/src/commands/diff.ts +0 -30
  278. package/apps/cli/src/commands/evaluate.ts +0 -133
  279. package/apps/cli/src/commands/examples.ts +0 -39
  280. package/apps/cli/src/commands/export.ts +0 -89
  281. package/apps/cli/src/commands/impact.ts +0 -31
  282. package/apps/cli/src/commands/init.ts +0 -69
  283. package/apps/cli/src/commands/inspect.ts +0 -30
  284. package/apps/cli/src/commands/mcp.ts +0 -72
  285. package/apps/cli/src/commands/pitfalls.ts +0 -38
  286. package/apps/cli/src/commands/recipes.ts +0 -35
  287. package/apps/cli/src/commands/search.ts +0 -48
  288. package/apps/cli/src/commands/update.ts +0 -73
  289. package/apps/cli/src/commands/verify.ts +0 -48
  290. package/apps/cli/src/formatters/colors.ts +0 -23
  291. package/apps/cli/src/formatters/inspection.ts +0 -102
  292. package/apps/cli/src/formatters/knowledge.ts +0 -272
  293. package/apps/cli/src/formatters/retrieval.ts +0 -74
  294. package/apps/cli/src/formatters/verification.ts +0 -126
  295. package/apps/cli/src/index.ts +0 -409
  296. package/packages/core/src/dashboard/server.ts +0 -314
  297. package/packages/core/src/implementation-service.ts +0 -451
  298. package/packages/core/src/inspector.ts +0 -71
  299. package/packages/core/src/pipeline.ts +0 -331
  300. package/packages/crawler/src/config.ts +0 -12
  301. package/packages/crawler/src/fetcher.ts +0 -185
  302. package/packages/discovery/src/index.ts +0 -31
  303. package/packages/discovery/src/provider.ts +0 -47
  304. package/packages/discovery/src/providers/generic.ts +0 -98
  305. package/packages/discovery/src/providers/github.ts +0 -61
  306. package/packages/discovery/src/providers/llms-txt.ts +0 -73
  307. package/packages/discovery/src/providers/markdown.ts +0 -48
  308. package/packages/discovery/src/providers/openapi.ts +0 -91
  309. package/packages/discovery/src/providers/sitemap.ts +0 -62
  310. package/packages/discovery/src/providers/skill.ts +0 -54
  311. package/packages/discovery/src/ranker.ts +0 -123
  312. package/packages/evaluation/src/dataset.ts +0 -963
  313. package/packages/evaluation/src/runner.ts +0 -241
  314. package/packages/evaluation/src/strategies/context7-runner.ts +0 -269
  315. package/packages/evaluation/src/strategies/docorbit-runner.ts +0 -228
  316. package/packages/evaluation/src/strategies/firecrawl-runner.ts +0 -172
  317. package/packages/evaluation/src/strategies/web-search-runner.ts +0 -194
  318. package/packages/evaluation/src/types.ts +0 -34
  319. package/packages/evaluation/src/version-matcher.ts +0 -73
  320. package/packages/export/src/agents-md.ts +0 -200
  321. package/packages/export/src/claude-md.ts +0 -141
  322. package/packages/export/src/docs-map.ts +0 -150
  323. package/packages/export/src/llms-txt.ts +0 -96
  324. package/packages/export/src/service.ts +0 -250
  325. package/packages/export/src/skill-md.ts +0 -128
  326. package/packages/mcp/src/resources/index.ts +0 -189
  327. package/packages/mcp/src/server.ts +0 -278
  328. package/packages/mcp/src/tools/analyze-impact.ts +0 -74
  329. package/packages/mcp/src/tools/check-api.ts +0 -86
  330. package/packages/mcp/src/tools/diff-docs.ts +0 -68
  331. package/packages/mcp/src/tools/export-context.ts +0 -73
  332. package/packages/mcp/src/tools/find-api.ts +0 -99
  333. package/packages/mcp/src/tools/find-example.ts +0 -100
  334. package/packages/mcp/src/tools/find-pitfall.ts +0 -94
  335. package/packages/mcp/src/tools/find-recipe.ts +0 -98
  336. package/packages/mcp/src/tools/get-doc.ts +0 -130
  337. package/packages/mcp/src/tools/get-docs-map.ts +0 -64
  338. package/packages/mcp/src/tools/get-version.ts +0 -118
  339. package/packages/mcp/src/tools/implementation-context.ts +0 -88
  340. package/packages/mcp/src/tools/index.ts +0 -59
  341. package/packages/mcp/src/tools/list-sources.ts +0 -85
  342. package/packages/mcp/src/tools/search-docs.ts +0 -123
  343. package/packages/mcp/src/tools/types.ts +0 -28
  344. package/packages/mcp/src/transports/http.ts +0 -256
  345. package/packages/mcp/src/transports/stdio.ts +0 -105
  346. package/packages/mcp/src/types.ts +0 -102
  347. package/packages/normalizer/src/example-indexer.ts +0 -240
  348. package/packages/normalizer/src/html.ts +0 -253
  349. package/packages/normalizer/src/llms.ts +0 -83
  350. package/packages/normalizer/src/openapi/endpoint-parser.ts +0 -406
  351. package/packages/normalizer/src/openapi/schema-resolver.ts +0 -111
  352. package/packages/normalizer/src/page.ts +0 -184
  353. package/packages/normalizer/src/pitfall-extractor.ts +0 -190
  354. package/packages/normalizer/src/slicer.ts +0 -455
  355. package/packages/retrieval/src/engine.ts +0 -120
  356. package/packages/retrieval/src/intent.ts +0 -43
  357. package/packages/retrieval/src/packer.ts +0 -145
  358. package/packages/retrieval/src/recipe-engine.ts +0 -313
  359. package/packages/retrieval/src/scorer.ts +0 -139
  360. package/packages/retrieval/src/weights.ts +0 -31
  361. package/packages/security/src/annotations.ts +0 -112
  362. package/packages/security/src/ssrf.ts +0 -153
  363. package/packages/shared/src/errors.ts +0 -53
  364. package/packages/shared/src/hashing.ts +0 -23
  365. package/packages/shared/src/types.ts +0 -881
  366. package/packages/storage/src/db.ts +0 -72
  367. package/packages/storage/src/interfaces.ts +0 -115
  368. package/packages/storage/src/repositories/api-repository.ts +0 -219
  369. package/packages/storage/src/repositories/chunk-repository.ts +0 -316
  370. package/packages/storage/src/repositories/example-repository.ts +0 -206
  371. package/packages/storage/src/repositories/page-repository.ts +0 -205
  372. package/packages/storage/src/repositories/pitfall-repository.ts +0 -188
  373. package/packages/storage/src/repositories/source-repository.ts +0 -205
  374. package/packages/storage/src/repository.ts +0 -256
  375. package/packages/storage/src/search-tokens.ts +0 -28
  376. package/packages/verification/src/diff-engine.ts +0 -258
  377. package/packages/verification/src/extractor.ts +0 -339
  378. package/packages/verification/src/impact-scanner.ts +0 -203
  379. package/packages/verification/src/services.ts +0 -238
  380. package/packages/verification/src/verifier.ts +0 -375
  381. package/packages/workspace/src/detector.ts +0 -143
  382. package/packages/workspace/src/ecosystems/cargo.ts +0 -84
  383. package/packages/workspace/src/ecosystems/composer.ts +0 -42
  384. package/packages/workspace/src/ecosystems/go.ts +0 -54
  385. package/packages/workspace/src/ecosystems/maven.ts +0 -34
  386. package/packages/workspace/src/ecosystems/npm.ts +0 -83
  387. package/packages/workspace/src/ecosystems/pub.ts +0 -40
  388. package/packages/workspace/src/ecosystems/pypi.ts +0 -100
  389. package/packages/workspace/src/ecosystems/rubygems.ts +0 -30
  390. package/packages/workspace/src/ecosystems/types.ts +0 -18
  391. package/packages/workspace/src/lockfile.ts +0 -194
  392. package/packages/workspace/src/resolver.ts +0 -234
  393. package/packages/workspace/src/semver.ts +0 -259
  394. /package/{packages/crawler/src/index.ts → dist/packages/crawler/src/index.d.ts} +0 -0
  395. /package/{packages/evaluation/src/index.ts → dist/packages/evaluation/src/index.d.ts} +0 -0
  396. /package/{packages/export/src/index.ts → dist/packages/export/src/index.d.ts} +0 -0
  397. /package/{packages/normalizer/src/openapi.ts → dist/packages/normalizer/src/openapi.d.ts} +0 -0
  398. /package/{packages/security/src/index.ts → dist/packages/security/src/index.d.ts} +0 -0
  399. /package/{packages/shared/src/index.ts → dist/packages/shared/src/index.d.ts} +0 -0
  400. /package/{packages/storage/src/index.ts → dist/packages/storage/src/index.d.ts} +0 -0
  401. /package/{packages/verification/src/index.ts → dist/packages/verification/src/index.d.ts} +0 -0
  402. /package/{packages/workspace/src/index.ts → dist/packages/workspace/src/index.d.ts} +0 -0
package/bin/docorbit.js CHANGED
@@ -1,6 +1,6 @@
1
- #!/usr/bin/env -S node --experimental-strip-types
1
+ #!/usr/bin/env node
2
2
 
3
- import { main } from '../apps/cli/src/index.ts';
3
+ import { main } from '../dist/apps/cli/src/index.js';
4
4
 
5
5
  main().catch(err => {
6
6
  console.error('Fatal DocOrbit Error:', err);
@@ -0,0 +1,7 @@
1
+ export interface AddCommandOptions {
2
+ json?: boolean;
3
+ dbPath?: string;
4
+ maxPages?: number;
5
+ allowLocalhost?: boolean;
6
+ }
7
+ export declare function runAddCommand(targetUrl: string, options?: AddCommandOptions): Promise<void>;
@@ -0,0 +1,35 @@
1
+ import { DocOrbitDb, DocOrbitRepository } from "../../../../packages/storage/src/index.js";
2
+ import { IngestionPipeline } from "../../../../packages/core/src/index.js";
3
+ import { formatIngestionResult } from "../formatters/terminal.js";
4
+ export async function runAddCommand(targetUrl, options = {}) {
5
+ if (!targetUrl) {
6
+ console.error('Error: Please provide a documentation target URL.');
7
+ console.error('Usage: docorbit add <url> [--json] [--db <path>]');
8
+ process.exit(1);
9
+ }
10
+ const dbPath = options.dbPath || '.docorbit/docorbit.db';
11
+ const db = new DocOrbitDb(dbPath);
12
+ const repository = new DocOrbitRepository(db);
13
+ try {
14
+ const pipeline = new IngestionPipeline(repository, {
15
+ allowLocalhostForTesting: options.allowLocalhost,
16
+ crawlerConfig: {
17
+ maxPages: options.maxPages || 50,
18
+ },
19
+ });
20
+ const result = await pipeline.ingest(targetUrl);
21
+ if (options.json) {
22
+ console.log(JSON.stringify(result, null, 2));
23
+ }
24
+ else {
25
+ console.log(formatIngestionResult(result));
26
+ }
27
+ }
28
+ catch (err) {
29
+ console.error(`DocOrbit Ingestion Error: ${err instanceof Error ? err.message : String(err)}`);
30
+ process.exit(1);
31
+ }
32
+ finally {
33
+ db.close();
34
+ }
35
+ }
@@ -0,0 +1,2 @@
1
+ import type { ApiCommandOptions } from '../../../../packages/shared/src/index.ts';
2
+ export declare function runApiCommand(query?: string, options?: ApiCommandOptions): Promise<void>;
@@ -0,0 +1,35 @@
1
+ import { DocOrbitDb, DocOrbitRepository } from "../../../../packages/storage/src/index.js";
2
+ import { resolveProjectContext } from "../../../../packages/workspace/src/index.js";
3
+ import { formatApiEndpoints } from "../formatters/terminal.js";
4
+ export async function runApiCommand(query = '', options = {}) {
5
+ const dbPath = options.dbPath || '.docorbit/docorbit.db';
6
+ const db = new DocOrbitDb(dbPath);
7
+ const repository = new DocOrbitRepository(db);
8
+ try {
9
+ let effectiveDocVersion = options.docVersion;
10
+ if (options.projectDir) {
11
+ const projContext = resolveProjectContext(options.projectDir, query, repository);
12
+ if (projContext.matchedDependency && !effectiveDocVersion) {
13
+ effectiveDocVersion = projContext.matchedDependency.targetDocVersion;
14
+ }
15
+ }
16
+ const endpoints = repository.searchApiEndpoints(query, {
17
+ method: options.method,
18
+ docVersion: effectiveDocVersion,
19
+ limit: options.limit || 20,
20
+ });
21
+ if (options.json) {
22
+ console.log(JSON.stringify(endpoints, null, 2));
23
+ }
24
+ else {
25
+ console.log(formatApiEndpoints(endpoints, query));
26
+ }
27
+ }
28
+ catch (err) {
29
+ console.error(`DocOrbit API Error: ${err instanceof Error ? err.message : String(err)}`);
30
+ process.exit(1);
31
+ }
32
+ finally {
33
+ db.close();
34
+ }
35
+ }
@@ -0,0 +1,10 @@
1
+ export interface ContextCommandOptions {
2
+ json?: boolean;
3
+ dbPath?: string;
4
+ tokens?: number;
5
+ maxChunks?: number;
6
+ snapshotId?: string;
7
+ docVersion?: string;
8
+ projectDir?: string;
9
+ }
10
+ export declare function runContextCommand(task: string, options?: ContextCommandOptions): Promise<void>;
@@ -0,0 +1,36 @@
1
+ import { DocOrbitDb, DocOrbitRepository } from "../../../../packages/storage/src/index.js";
2
+ import { RetrievalEngine } from "../../../../packages/retrieval/src/index.js";
3
+ import { formatContextPackage } from "../formatters/terminal.js";
4
+ export async function runContextCommand(task, options = {}) {
5
+ if (!task) {
6
+ console.error('Error: Please provide a coding task description.');
7
+ console.error('Usage: docorbit context "<task>" [--tokens <n>] [--doc-version <ver>] [--project <dir>] [--json] [--db <path>]');
8
+ process.exit(1);
9
+ }
10
+ const dbPath = options.dbPath || '.docorbit/docorbit.db';
11
+ const db = new DocOrbitDb(dbPath);
12
+ const repository = new DocOrbitRepository(db);
13
+ const engine = new RetrievalEngine(repository);
14
+ try {
15
+ const pkg = await engine.buildContext(task, {
16
+ tokenBudget: options.tokens || 3000,
17
+ maxChunks: options.maxChunks,
18
+ snapshotId: options.snapshotId,
19
+ docVersion: options.docVersion,
20
+ projectDir: options.projectDir,
21
+ });
22
+ if (options.json) {
23
+ console.log(JSON.stringify(pkg, null, 2));
24
+ }
25
+ else {
26
+ console.log(formatContextPackage(pkg));
27
+ }
28
+ }
29
+ catch (err) {
30
+ console.error(`DocOrbit Context Error: ${err instanceof Error ? err.message : String(err)}`);
31
+ process.exit(1);
32
+ }
33
+ finally {
34
+ db.close();
35
+ }
36
+ }
@@ -0,0 +1,8 @@
1
+ export interface DashboardCommandOptions {
2
+ port?: number;
3
+ host?: string;
4
+ projectDir?: string;
5
+ dbPath?: string;
6
+ noOpen?: boolean;
7
+ }
8
+ export declare function runDashboardCommand(options?: DashboardCommandOptions): Promise<void>;
@@ -0,0 +1,43 @@
1
+ import path from 'node:path';
2
+ import { DocOrbitDb, DocOrbitRepository } from "../../../../packages/storage/src/index.js";
3
+ import { DashboardServer } from "../../../../packages/core/src/index.js";
4
+ import { c } from "../formatters/colors.js";
5
+ export async function runDashboardCommand(options = {}) {
6
+ const projectDir = options.projectDir ? path.resolve(options.projectDir) : process.cwd();
7
+ const dbPath = options.dbPath || path.join(projectDir, '.docorbit', 'docorbit.db');
8
+ const port = options.port || 3737;
9
+ const host = options.host || '127.0.0.1';
10
+ const db = new DocOrbitDb(dbPath);
11
+ const repo = new DocOrbitRepository(db);
12
+ const server = new DashboardServer({
13
+ repo,
14
+ projectDir,
15
+ dbPath,
16
+ });
17
+ try {
18
+ const info = await server.start(port, host);
19
+ console.log(`\n${c.bold(c.cyan('DocOrbit Local Dashboard'))}`);
20
+ console.log(`${c.dim('Documentation Intelligence & Verification Layer')}\n`);
21
+ console.log(` ${c.green('●')} Server running at: ${c.bold(c.underline(info.url))}`);
22
+ console.log(` ${c.dim('Database:')} ${dbPath}`);
23
+ console.log(` ${c.dim('Workspace:')} ${projectDir}`);
24
+ console.log(` ${c.dim('Security:')} ${c.yellow('untrusted documentation boundary enforced')}\n`);
25
+ console.log(c.dim('Press Ctrl+C to stop.\n'));
26
+ // Keep process alive until interrupted
27
+ await new Promise((resolve) => {
28
+ const shutdown = async () => {
29
+ console.log(`\n${c.dim('Stopping dashboard server...')}`);
30
+ await server.stop();
31
+ db.close();
32
+ resolve();
33
+ };
34
+ process.on('SIGINT', shutdown);
35
+ process.on('SIGTERM', shutdown);
36
+ });
37
+ }
38
+ catch (err) {
39
+ db.close();
40
+ console.error(c.red(`Failed to start dashboard server: ${err.message}`));
41
+ process.exit(1);
42
+ }
43
+ }
@@ -0,0 +1,2 @@
1
+ import type { DiffCommandOptions } from '../../../../packages/shared/src/index.ts';
2
+ export declare function runDiffCommand(target?: string, options?: DiffCommandOptions): Promise<void>;
@@ -0,0 +1,29 @@
1
+ import { DocOrbitDb, DocOrbitRepository } from "../../../../packages/storage/src/index.js";
2
+ import { DiffService } from "../../../../packages/verification/src/index.js";
3
+ import { formatDiffReport } from "../formatters/terminal.js";
4
+ export async function runDiffCommand(target = '', options = {}) {
5
+ const dbPath = options.dbPath || '.docorbit/docorbit.db';
6
+ const db = new DocOrbitDb(dbPath);
7
+ const repo = new DocOrbitRepository(db);
8
+ try {
9
+ const service = new DiffService(repo);
10
+ const { result } = service.diffDocs({
11
+ fromVersion: options.from,
12
+ toVersion: options.to,
13
+ sourceId: options.source || (target && !target.startsWith('-') ? target : undefined),
14
+ });
15
+ if (options.json) {
16
+ console.log(JSON.stringify(result, null, 2));
17
+ }
18
+ else {
19
+ console.log(formatDiffReport(result));
20
+ }
21
+ }
22
+ catch (err) {
23
+ console.error(`DocOrbit Diff Error: ${err instanceof Error ? err.message : String(err)}`);
24
+ process.exit(1);
25
+ }
26
+ finally {
27
+ db.close();
28
+ }
29
+ }
@@ -0,0 +1,11 @@
1
+ export interface EvaluateCommandOptions {
2
+ split?: string;
3
+ strategy?: string;
4
+ task?: string;
5
+ output?: string;
6
+ json?: boolean;
7
+ verbose?: boolean;
8
+ /** Offline simulation mode — no network required, for CI regression only */
9
+ simulation?: boolean;
10
+ }
11
+ export declare function handleEvaluateCommand(options?: EvaluateCommandOptions): Promise<void>;
@@ -0,0 +1,101 @@
1
+ import { BenchmarkRunner } from "../../../../packages/evaluation/src/index.js";
2
+ import { c } from "../formatters/colors.js";
3
+ export async function handleEvaluateCommand(options = {}) {
4
+ const sim = options.simulation ?? false;
5
+ const runner = new BenchmarkRunner({ simulation: sim });
6
+ const split = options.split === 'train'
7
+ ? 'train'
8
+ : options.split === 'eval'
9
+ ? 'eval'
10
+ : options.split === 'verification'
11
+ ? 'verification'
12
+ : 'all';
13
+ let strategies;
14
+ if (options.strategy) {
15
+ const list = options.strategy.split(',').map((s) => s.trim());
16
+ strategies = list;
17
+ }
18
+ const tasks = options.task ? [options.task] : undefined;
19
+ if (!options.json) {
20
+ const modeLabel = sim
21
+ ? c.yellow('[SIMULATION MODE — offline CI, no network]')
22
+ : c.green('[REAL MODE — requires network access]');
23
+ console.log(c.bold(c.cyan('\n=== DocOrbit Real-World Agent Evaluation Benchmark ===')));
24
+ console.log(modeLabel);
25
+ if (!sim) {
26
+ console.log(c.gray(' Context7: real context7-mcp stdio subprocess (context7.com)'));
27
+ console.log(c.gray(' Firecrawl: real /v1/scrape API (api.firecrawl.dev)'));
28
+ console.log(c.gray(' Official Docs Fetch: direct HTTPS fetch to official docs URLs'));
29
+ console.log(c.gray(' DocOrbit: real in-process MCP server\n'));
30
+ }
31
+ console.log(`Split: ${c.yellow(split)} | Strategies: ${strategies ? strategies.join(', ') : 'all'}`);
32
+ console.log(`Artifacts: ${options.output || 'eval-results/'}\n`);
33
+ }
34
+ const report = await runner.run({
35
+ split,
36
+ strategies,
37
+ tasks,
38
+ outputDir: options.output,
39
+ verbose: options.verbose,
40
+ simulation: sim,
41
+ });
42
+ if (options.json) {
43
+ console.log(JSON.stringify(report, null, 2));
44
+ return;
45
+ }
46
+ const modeTag = sim ? ' [SIMULATION]' : ' [REAL]';
47
+ console.log(c.bold(c.green(`\nEvaluation Complete${modeTag} — ${report.totalTasks} tasks\n`)));
48
+ const sDocs = report.byStrategy.agent_official_docs_fetch || report.byStrategy.agent_web_search;
49
+ const sFC = report.byStrategy.agent_firecrawl;
50
+ const sDR = report.byStrategy.agent_docorbit;
51
+ if (sDocs && sC7 && sDR) {
52
+ const pct = (n) => `${(n * 100).toFixed(1)}%`;
53
+ if (sFC) {
54
+ const hr = '---------------------------------------------------------------------------------------------------------------------';
55
+ console.log(hr);
56
+ console.log(c.bold(`| ${'Metric'.padEnd(32)}| ${'Official Docs Fetch'.padEnd(21)}| ${'Firecrawl'.padEnd(14)}| ${'Context7'.padEnd(14)}| ${'DocOrbit'.padEnd(14)}|`));
57
+ console.log(hr);
58
+ const row = (label, vDocs, vFC, vC7, vDR) => `| ${label.padEnd(32)}| ${vDocs.padEnd(21)}| ${vFC.padEnd(14)}| ${vC7.padEnd(14)}| ${vDR.padEnd(14)}|`;
59
+ console.log(row('Overall Task Success Rate', pct(sDocs.overallSuccessRate), pct(sFC.overallSuccessRate), pct(sC7.overallSuccessRate), pct(sDR.overallSuccessRate)));
60
+ console.log(row('Held-Out Eval Success Rate', pct(sDocs.evalSuccessRate), pct(sFC.evalSuccessRate), pct(sC7.evalSuccessRate), pct(sDR.evalSuccessRate)));
61
+ console.log(row('Correct Version Selection', pct(sDocs.versionAccuracy), pct(sFC.versionAccuracy), pct(sC7.versionAccuracy), pct(sDR.versionAccuracy)));
62
+ console.log(row('Retrieval Precision@k', pct(sDocs.meanPrecision), pct(sFC.meanPrecision), pct(sC7.meanPrecision), pct(sDR.meanPrecision)));
63
+ console.log(row('Retrieval Recall@k', pct(sDocs.meanRecall), pct(sFC.meanRecall), pct(sC7.meanRecall), pct(sDR.meanRecall)));
64
+ console.log(row('Mean Token Ingestion', `~${Math.round(sDocs.meanTokens)}`, `~${Math.round(sFC.meanTokens)}`, `~${Math.round(sC7.meanTokens)}`, `~${Math.round(sDR.meanTokens)}`));
65
+ 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`));
66
+ console.log(row('Avg Tool Calls per Task', sDocs.meanToolCalls.toFixed(1), sFC.meanToolCalls.toFixed(1), sC7.meanToolCalls.toFixed(1), sDR.meanToolCalls.toFixed(1)));
67
+ console.log(row('AST Verification Catches', '—', '—', '—', String(sDR.totalVerificationCatches)));
68
+ console.log(row('Verification False Positives', '—', '—', '—', String(sDR.falsePositives)));
69
+ console.log(hr);
70
+ }
71
+ else {
72
+ const hr = '--------------------------------------------------------------------------------------------------';
73
+ console.log(hr);
74
+ console.log(c.bold(`| ${'Metric'.padEnd(36)}| ${'Official Docs Fetch'.padEnd(21)}| ${'Context7'.padEnd(14)}| ${'DocOrbit'.padEnd(14)}|`));
75
+ console.log(hr);
76
+ const row = (label, vDocs, vC7, vDR) => `| ${label.padEnd(36)}| ${vDocs.padEnd(21)}| ${vC7.padEnd(14)}| ${vDR.padEnd(14)}|`;
77
+ console.log(row('Overall Task Success Rate', pct(sDocs.overallSuccessRate), pct(sC7.overallSuccessRate), pct(sDR.overallSuccessRate)));
78
+ console.log(row('Held-Out Eval Success Rate', pct(sDocs.evalSuccessRate), pct(sC7.evalSuccessRate), pct(sDR.evalSuccessRate)));
79
+ console.log(row('Correct Version Selection', pct(sDocs.versionAccuracy), pct(sC7.versionAccuracy), pct(sDR.versionAccuracy)));
80
+ console.log(row('Retrieval Precision@k', pct(sDocs.meanPrecision), pct(sC7.meanPrecision), pct(sDR.meanPrecision)));
81
+ console.log(row('Retrieval Recall@k', pct(sDocs.meanRecall), pct(sC7.meanRecall), pct(sDR.meanRecall)));
82
+ console.log(row('Mean Token Ingestion', `~${Math.round(sDocs.meanTokens)}`, `~${Math.round(sC7.meanTokens)}`, `~${Math.round(sDR.meanTokens)}`));
83
+ console.log(row('Context Prep Latency', `~${sDocs.meanLatencyMs.toFixed(0)}ms`, `~${sC7.meanLatencyMs.toFixed(0)}ms`, `~${sDR.meanLatencyMs.toFixed(0)}ms`));
84
+ console.log(row('Avg Tool Calls per Task', sDocs.meanToolCalls.toFixed(1), sC7.meanToolCalls.toFixed(1), sDR.meanToolCalls.toFixed(1)));
85
+ console.log(row('AST Verification Catches', '—', '—', String(sDR.totalVerificationCatches)));
86
+ console.log(row('Verification False Positives', '—', '—', String(sDR.falsePositives)));
87
+ console.log(hr);
88
+ }
89
+ if (sDR) {
90
+ console.log(c.bold(c.cyan('\nAST Code Verification (`check_api`) Performance:')));
91
+ console.log(` Total Verification Catches: ${c.bold(String(sDR.totalVerificationCatches))}`);
92
+ console.log(` False Positives on Valid Code: ${c.bold(String(sDR.falsePositives))}`);
93
+ console.log(` Dynamic/Ambiguous Fallback Rate: ${c.bold(pct(sDR.insufficientEvidenceRate))}`);
94
+ }
95
+ if (sim) {
96
+ console.log(c.yellow('\n⚠ Results above are from simulated runners. Run without --simulation for real results.'));
97
+ }
98
+ console.log(c.gray('\n* Official Docs Fetch baseline directly fetches known official documentation URLs over HTTPS rather than querying a search engine.'));
99
+ }
100
+ console.log(`\nRaw artifacts: ${c.cyan(options.output || 'eval-results/')}\n`);
101
+ }
@@ -0,0 +1,2 @@
1
+ import type { ExamplesCommandOptions } from '../../../../packages/shared/src/index.ts';
2
+ export declare function runExamplesCommand(task?: string, options?: ExamplesCommandOptions): Promise<void>;
@@ -0,0 +1,36 @@
1
+ import { DocOrbitDb, DocOrbitRepository } from "../../../../packages/storage/src/index.js";
2
+ import { resolveProjectContext } from "../../../../packages/workspace/src/index.js";
3
+ import { formatIndexedExamples } from "../formatters/terminal.js";
4
+ export async function runExamplesCommand(task = '', options = {}) {
5
+ const dbPath = options.dbPath || '.docorbit/docorbit.db';
6
+ const db = new DocOrbitDb(dbPath);
7
+ const repository = new DocOrbitRepository(db);
8
+ try {
9
+ let effectiveDocVersion = options.docVersion;
10
+ if (options.projectDir) {
11
+ const projContext = resolveProjectContext(options.projectDir, task, repository);
12
+ if (projContext.matchedDependency && !effectiveDocVersion) {
13
+ effectiveDocVersion = projContext.matchedDependency.targetDocVersion;
14
+ }
15
+ }
16
+ const examples = repository.searchIndexedExamples(task, {
17
+ language: options.language,
18
+ framework: options.framework,
19
+ docVersion: effectiveDocVersion,
20
+ limit: options.limit || 10,
21
+ });
22
+ if (options.json) {
23
+ console.log(JSON.stringify(examples, null, 2));
24
+ }
25
+ else {
26
+ console.log(formatIndexedExamples(examples, task));
27
+ }
28
+ }
29
+ catch (err) {
30
+ console.error(`DocOrbit Examples Error: ${err instanceof Error ? err.message : String(err)}`);
31
+ process.exit(1);
32
+ }
33
+ finally {
34
+ db.close();
35
+ }
36
+ }
@@ -0,0 +1,11 @@
1
+ export interface ExportCommandOptions {
2
+ format?: string;
3
+ output?: string;
4
+ stdout?: boolean;
5
+ projectDir?: string;
6
+ docVersion?: string;
7
+ targetSource?: string;
8
+ json?: boolean;
9
+ dbPath?: string;
10
+ }
11
+ export declare function runExportCommand(formatArg?: string, options?: ExportCommandOptions): Promise<void>;
@@ -0,0 +1,72 @@
1
+ import path from 'node:path';
2
+ import { DocOrbitDb, DocOrbitRepository } from "../../../../packages/storage/src/index.js";
3
+ import { ExportService } from "../../../../packages/export/src/index.js";
4
+ import { c } from "../formatters/colors.js";
5
+ export async function runExportCommand(formatArg, options = {}) {
6
+ const rawFormat = (formatArg || options.format || 'agents.md').toLowerCase();
7
+ const validFormats = ['agents.md', 'claude.md', 'skill.md', 'llms.txt', 'docs-map.md'];
8
+ let format = 'agents.md';
9
+ if (validFormats.includes(rawFormat)) {
10
+ format = rawFormat;
11
+ }
12
+ else if (rawFormat === 'agents' || rawFormat === 'agent') {
13
+ format = 'agents.md';
14
+ }
15
+ else if (rawFormat === 'claude') {
16
+ format = 'claude.md';
17
+ }
18
+ else if (rawFormat === 'skill') {
19
+ format = 'skill.md';
20
+ }
21
+ else if (rawFormat === 'llms' || rawFormat === 'llms.txt') {
22
+ format = 'llms.txt';
23
+ }
24
+ else if (rawFormat === 'map' || rawFormat === 'docs-map') {
25
+ format = 'docs-map.md';
26
+ }
27
+ const projectDir = options.projectDir ? path.resolve(options.projectDir) : process.cwd();
28
+ const dbPath = options.dbPath || path.join(projectDir, '.docorbit', 'docorbit.db');
29
+ const db = new DocOrbitDb(dbPath);
30
+ const repo = new DocOrbitRepository(db);
31
+ const service = new ExportService(repo);
32
+ try {
33
+ if (options.stdout) {
34
+ const result = await service.generateExport({
35
+ format,
36
+ projectDir,
37
+ docVersion: options.docVersion,
38
+ targetSource: options.targetSource,
39
+ stdout: true,
40
+ });
41
+ if (options.json) {
42
+ console.log(JSON.stringify(result, null, 2));
43
+ }
44
+ else {
45
+ process.stdout.write(result.content);
46
+ }
47
+ return;
48
+ }
49
+ const result = await service.writeExport({
50
+ format,
51
+ projectDir,
52
+ docVersion: options.docVersion,
53
+ targetSource: options.targetSource,
54
+ outputPath: options.output,
55
+ });
56
+ if (options.json) {
57
+ console.log(JSON.stringify(result, null, 2));
58
+ return;
59
+ }
60
+ console.log(`\n${c.bold(c.green('✓'))} Generated ${c.bold(format)} for coding agents`);
61
+ console.log(` ${c.dim('Output file:')} ${c.cyan(result.outputPath || 'stdout')}`);
62
+ console.log(` ${c.dim('Doc Version:')} ${result.metadata.docVersion || 'global/latest'}`);
63
+ console.log(` ${c.dim('Estimated Tokens:')} ~${result.metadata.tokenEstimate.toLocaleString()}`);
64
+ console.log(` ${c.dim('APIs Included:')} ${result.metadata.totalApis}`);
65
+ console.log(` ${c.dim('Pitfalls Included:')}${result.metadata.totalPitfalls}`);
66
+ console.log(` ${c.dim('Indexed Sources:')} ${result.metadata.sources.length}`);
67
+ console.log(` ${c.dim('Security Boundary:')}${c.yellow('untrusted documentation preserved')}\n`);
68
+ }
69
+ finally {
70
+ db.close();
71
+ }
72
+ }
@@ -0,0 +1,2 @@
1
+ import type { ImpactCommandOptions } from '../../../../packages/shared/src/index.ts';
2
+ export declare function runImpactCommand(target?: string, options?: ImpactCommandOptions): Promise<void>;
@@ -0,0 +1,30 @@
1
+ import { DocOrbitDb, DocOrbitRepository } from "../../../../packages/storage/src/index.js";
2
+ import { ImpactAnalysisService } from "../../../../packages/verification/src/index.js";
3
+ import { formatImpactReport } from "../formatters/terminal.js";
4
+ export async function runImpactCommand(target = '', options = {}) {
5
+ const dbPath = options.dbPath || '.docorbit/docorbit.db';
6
+ const db = new DocOrbitDb(dbPath);
7
+ const repo = new DocOrbitRepository(db);
8
+ try {
9
+ const service = new ImpactAnalysisService(repo);
10
+ const { result } = service.analyzeImpact({
11
+ projectDir: options.projectDir || process.cwd(),
12
+ fromVersion: options.from,
13
+ toVersion: options.to,
14
+ sourceId: options.source || (target && !target.startsWith('-') ? target : undefined),
15
+ });
16
+ if (options.json) {
17
+ console.log(JSON.stringify(result, null, 2));
18
+ }
19
+ else {
20
+ console.log(formatImpactReport(result));
21
+ }
22
+ }
23
+ catch (err) {
24
+ console.error(`DocOrbit Impact Error: ${err instanceof Error ? err.message : String(err)}`);
25
+ process.exit(1);
26
+ }
27
+ finally {
28
+ db.close();
29
+ }
30
+ }
@@ -0,0 +1,5 @@
1
+ export interface InitCommandOptions {
2
+ json?: boolean;
3
+ dbPath?: string;
4
+ }
5
+ export declare function runInitCommand(targetDir?: string, options?: InitCommandOptions): Promise<void>;
@@ -0,0 +1,52 @@
1
+ import { resolve } from 'node:path';
2
+ import { DocOrbitDb, DocOrbitRepository } from "../../../../packages/storage/src/index.js";
3
+ import { detectWorkspaceDependencies, generateDocsLock, readDocsLock, writeDocsLock, } from "../../../../packages/workspace/src/index.js";
4
+ export async function runInitCommand(targetDir = '.', options = {}) {
5
+ const projectDir = resolve(targetDir);
6
+ const dbPath = options.dbPath || '.docorbit/docorbit.db';
7
+ const db = new DocOrbitDb(dbPath);
8
+ const repository = new DocOrbitRepository(db);
9
+ try {
10
+ const scanResult = detectWorkspaceDependencies(projectDir);
11
+ const existingLock = readDocsLock(projectDir);
12
+ const lock = generateDocsLock(scanResult, repository, existingLock);
13
+ writeDocsLock(projectDir, lock);
14
+ if (options.json) {
15
+ console.log(JSON.stringify(lock, null, 2));
16
+ return;
17
+ }
18
+ console.log(`\n=== DocOrbit Project Initialization ===`);
19
+ console.log(`Workspace Root: ${projectDir}`);
20
+ console.log(`Ecosystems: ${scanResult.ecosystems.length > 0 ? scanResult.ecosystems.join(', ') : 'None detected'}`);
21
+ console.log(`Manifests: ${scanResult.manifestsFound.join(', ') || 'None'}`);
22
+ console.log(`Dependencies: ${scanResult.dependencies.length} detected`);
23
+ const lockedCount = Object.keys(lock.dependencies).length;
24
+ console.log(`Locked Docs: ${lockedCount} dependencies resolved to documentation\n`);
25
+ if (lockedCount > 0) {
26
+ console.log('-----------------------------------------------------------------------------');
27
+ console.log('| Package | Project Ver | Doc Ver | Match | Confidence |');
28
+ console.log('-----------------------------------------------------------------------------');
29
+ for (const [key, dep] of Object.entries(lock.dependencies)) {
30
+ const pkgPad = key.padEnd(21).slice(0, 21);
31
+ const projPad = dep.resolvedDependencyVersion.padEnd(11).slice(0, 11);
32
+ const docPad = dep.docVersion.padEnd(8).slice(0, 8);
33
+ const matchPad = dep.matchType.padEnd(11).slice(0, 11);
34
+ const confPad = (dep.confidence * 100).toFixed(0) + '%';
35
+ console.log(`| ${pkgPad} | ${projPad} | ${docPad} | ${matchPad} | ${confPad.padEnd(10)} |`);
36
+ }
37
+ console.log('-----------------------------------------------------------------------------');
38
+ console.log(`\nGenerated deterministic docs.lock at: ${projectDir}/docs.lock\n`);
39
+ }
40
+ else {
41
+ console.log('Note: No ingested documentation matched detected dependencies.');
42
+ console.log('Tip: Use `docorbit add <url>` to ingest official docs for your dependencies, then re-run `docorbit init`.\n');
43
+ }
44
+ }
45
+ catch (err) {
46
+ console.error(`DocOrbit Init Error: ${err instanceof Error ? err.message : String(err)}`);
47
+ process.exit(1);
48
+ }
49
+ finally {
50
+ db.close();
51
+ }
52
+ }
@@ -0,0 +1,5 @@
1
+ export interface InspectCommandOptions {
2
+ json?: boolean;
3
+ allowLocalhost?: boolean;
4
+ }
5
+ export declare function runInspectCommand(targetUrl: string, options?: InspectCommandOptions): Promise<void>;
@@ -0,0 +1,24 @@
1
+ import { inspectDocumentation } from "../../../../packages/core/src/index.js";
2
+ import { formatInspectionReport } from "../formatters/terminal.js";
3
+ export async function runInspectCommand(targetUrl, options = {}) {
4
+ if (!targetUrl) {
5
+ console.error('Error: Please provide a documentation target URL.');
6
+ console.error('Usage: docorbit inspect <url> [--json]');
7
+ process.exit(1);
8
+ }
9
+ try {
10
+ const report = await inspectDocumentation(targetUrl, {
11
+ allowLocalhostForTesting: options.allowLocalhost,
12
+ });
13
+ if (options.json) {
14
+ console.log(JSON.stringify(report, null, 2));
15
+ }
16
+ else {
17
+ console.log(formatInspectionReport(report));
18
+ }
19
+ }
20
+ catch (err) {
21
+ console.error(`DocOrbit Inspection Error: ${err instanceof Error ? err.message : String(err)}`);
22
+ process.exit(1);
23
+ }
24
+ }
@@ -0,0 +1,8 @@
1
+ export interface McpCommandOptions {
2
+ stdio?: boolean;
3
+ port?: number;
4
+ host?: string;
5
+ dbPath?: string;
6
+ projectDir?: string;
7
+ }
8
+ export declare function runMcpCommand(options?: McpCommandOptions): Promise<void>;