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
@@ -0,0 +1,3 @@
1
+ import type { SearchResult, ContextPackage } from '../../../../packages/shared/src/index.ts';
2
+ export declare function formatSearchResults(query: string, results: SearchResult[]): string;
3
+ export declare function formatContextPackage(pkg: ContextPackage): string;
@@ -0,0 +1,61 @@
1
+ import { RESET, BOLD, DIM, GREEN, CYAN, YELLOW, MAGENTA } from "./colors.js";
2
+ export function formatSearchResults(query, results) {
3
+ const lines = [];
4
+ lines.push('');
5
+ lines.push(`${BOLD}${CYAN}DocOrbit${RESET} ${DIM}— Search Results for: "${query}"${RESET}`);
6
+ lines.push(`${DIM}${'═'.repeat(64)}${RESET}`);
7
+ if (results.length === 0) {
8
+ lines.push(` ${YELLOW}No matching documentation chunks found.${RESET}`);
9
+ lines.push(`${DIM}${'═'.repeat(64)}${RESET}`);
10
+ lines.push('');
11
+ return lines.join('\n');
12
+ }
13
+ for (let i = 0; i < results.length; i++) {
14
+ const res = results[i];
15
+ const chunk = res.chunk;
16
+ const breadcrumb = chunk.sectionPath.length > 0 ? chunk.sectionPath.join(' > ') : (chunk.title || 'General');
17
+ lines.push(` ${BOLD}${i + 1}.${RESET} ${CYAN}${breadcrumb}${RESET} ${GREEN}(Score: ${res.score})${RESET}`);
18
+ lines.push(` ${DIM}Type: ${chunk.chunkType} | Est. Tokens: ~${chunk.tokenEstimate} | Chunk: ${chunk.id}${RESET}`);
19
+ if (res.matchReasons.length > 0) {
20
+ lines.push(` ${DIM}Matches: ${res.matchReasons.join(' • ')}${RESET}`);
21
+ }
22
+ if (res.symbols.length > 0) {
23
+ lines.push(` ${MAGENTA}Symbols: ${res.symbols.map(s => s.name).join(', ')}${RESET}`);
24
+ }
25
+ const preview = chunk.content.split('\n').filter(l => l.trim().length > 0).slice(0, 3).join('\n ');
26
+ lines.push(` ${DIM}│${RESET} ${preview}`);
27
+ lines.push('');
28
+ }
29
+ lines.push(`${DIM}${'═'.repeat(64)}${RESET}`);
30
+ lines.push('');
31
+ return lines.join('\n');
32
+ }
33
+ export function formatContextPackage(pkg) {
34
+ const lines = [];
35
+ lines.push('');
36
+ lines.push(`${BOLD}${GREEN}DocOrbit${RESET} ${DIM}— Assembled Context Package${RESET}`);
37
+ lines.push(`${DIM}${'═'.repeat(64)}${RESET}`);
38
+ lines.push(`${BOLD}Task:${RESET} ${CYAN}${pkg.task}${RESET}`);
39
+ lines.push(`${BOLD}Detected Intent:${RESET} ${MAGENTA}${pkg.detectedIntent}${RESET}`);
40
+ lines.push(`${BOLD}Estimated Tokens:${RESET} ~${pkg.totalEstimatedTokens} / ${pkg.tokenBudget} (heuristic)`);
41
+ lines.push(`${BOLD}Chunks Included:${RESET} ${pkg.chunks.length}`);
42
+ lines.push(`${BOLD}Sources Cited:${RESET} ${pkg.sources.length > 0 ? pkg.sources.join(', ') : 'Local documentation'}`);
43
+ if (pkg.warnings.length > 0) {
44
+ lines.push('');
45
+ lines.push(`${YELLOW}${BOLD}Advisories & Warnings (${pkg.warnings.length}):${RESET}`);
46
+ for (const w of pkg.warnings) {
47
+ lines.push(` ${YELLOW}⚠ ${w}${RESET}`);
48
+ }
49
+ }
50
+ lines.push('');
51
+ lines.push(`${BOLD}Package Markdown Preview:${RESET}`);
52
+ lines.push(`${DIM}${'─'.repeat(64)}${RESET}`);
53
+ const previewLines = pkg.markdown.split('\n').slice(0, 20);
54
+ lines.push(previewLines.join('\n'));
55
+ if (pkg.markdown.split('\n').length > 20) {
56
+ lines.push(`\n${DIM}... (${pkg.markdown.split('\n').length - 20} more lines in full package)${RESET}`);
57
+ }
58
+ lines.push(`${DIM}${'═'.repeat(64)}${RESET}`);
59
+ lines.push('');
60
+ return lines.join('\n');
61
+ }
@@ -3,4 +3,3 @@ export * from './inspection.ts';
3
3
  export * from './retrieval.ts';
4
4
  export * from './knowledge.ts';
5
5
  export * from './verification.ts';
6
-
@@ -0,0 +1,5 @@
1
+ export * from "./colors.js";
2
+ export * from "./inspection.js";
3
+ export * from "./retrieval.js";
4
+ export * from "./knowledge.js";
5
+ export * from "./verification.js";
@@ -0,0 +1,4 @@
1
+ import type { DocDiffResult, ImpactAnalysisResult, VerificationResult } from '../../../../packages/shared/src/index.ts';
2
+ export declare function formatVerificationReport(result: VerificationResult): string;
3
+ export declare function formatDiffReport(diff: DocDiffResult): string;
4
+ export declare function formatImpactReport(impact: ImpactAnalysisResult): string;
@@ -0,0 +1,102 @@
1
+ import { RESET, BOLD, DIM, GREEN, CYAN, YELLOW, RED } from "./colors.js";
2
+ export function formatVerificationReport(result) {
3
+ const lines = [];
4
+ const verdictColor = result.verdict === 'verified'
5
+ ? GREEN
6
+ : result.verdict === 'warning'
7
+ ? YELLOW
8
+ : result.verdict === 'mismatch'
9
+ ? RED
10
+ : CYAN;
11
+ lines.push(`${BOLD}${CYAN}DocOrbit — Code & Schema Verification${RESET}`);
12
+ lines.push(`Verdict: ${verdictColor}${BOLD}${result.verdict.toUpperCase()}${RESET}`);
13
+ lines.push(`Summary: ${result.summary}`);
14
+ if (result.targetVersion) {
15
+ lines.push(`Target Version: ${YELLOW}${result.targetVersion}${RESET}`);
16
+ }
17
+ if (result.projectVersion) {
18
+ lines.push(`Project Version: ${YELLOW}${result.projectVersion}${RESET}`);
19
+ }
20
+ lines.push(`Total Checks: ${result.totalChecks}\n`);
21
+ if (result.findings.length === 0) {
22
+ lines.push(`${GREEN}✔ No schema mismatches, deprecations, or syntax issues detected.${RESET}`);
23
+ return lines.join('\n');
24
+ }
25
+ lines.push(`${BOLD}Findings (${result.findings.length}):${RESET}`);
26
+ for (const f of result.findings) {
27
+ const fColor = f.severity === 'error' ? RED : f.severity === 'warning' ? YELLOW : CYAN;
28
+ const loc = f.location?.line ? ` (Line ${f.location.line})` : '';
29
+ lines.push(` ${fColor}• [${f.rule.toUpperCase()}]${loc}: ${f.message}${RESET}`);
30
+ if (f.location?.snippet) {
31
+ lines.push(` ${DIM}${f.location.snippet}${RESET}`);
32
+ }
33
+ if (f.expected) {
34
+ lines.push(` ${DIM}Expected: ${String(f.expected)}${RESET}`);
35
+ }
36
+ if (f.actual) {
37
+ lines.push(` ${DIM}Actual: ${String(f.actual)}${RESET}`);
38
+ }
39
+ }
40
+ return lines.join('\n');
41
+ }
42
+ export function formatDiffReport(diff) {
43
+ const lines = [];
44
+ const from = diff.fromVersion || diff.fromSnapshotId || 'previous';
45
+ const to = diff.toVersion || diff.toSnapshotId || 'latest';
46
+ lines.push(`${BOLD}${CYAN}DocOrbit — Documentation & API Diff${RESET}`);
47
+ lines.push(`Comparing: ${YELLOW}${from}${RESET} ➔ ${YELLOW}${to}${RESET}`);
48
+ lines.push(`Endpoints: +${diff.summary.endpointsAdded} added, -${diff.summary.endpointsRemoved} removed, ~${diff.summary.endpointsModified} modified, !${diff.summary.endpointsDeprecated} deprecated`);
49
+ lines.push(`Pitfalls: +${diff.summary.pitfallsAdded} added, -${diff.summary.pitfallsRemoved} removed\n`);
50
+ if (diff.apiChanges.length > 0) {
51
+ lines.push(`${BOLD}API Endpoint Changes:${RESET}`);
52
+ for (const ep of diff.apiChanges) {
53
+ const badge = ep.changeType === 'added'
54
+ ? `${GREEN}[ADDED]${RESET}`
55
+ : ep.changeType === 'removed'
56
+ ? `${RED}[REMOVED]${RESET}`
57
+ : ep.changeType === 'deprecated'
58
+ ? `${YELLOW}[DEPRECATED]${RESET}`
59
+ : `${CYAN}[MODIFIED]${RESET}`;
60
+ lines.push(` ${badge} ${ep.method.toUpperCase()} ${ep.path}`);
61
+ if (ep.changes) {
62
+ for (const ch of ep.changes) {
63
+ lines.push(` ${DIM}• ${ch}${RESET}`);
64
+ }
65
+ }
66
+ }
67
+ lines.push('');
68
+ }
69
+ if (diff.pitfallChanges.length > 0) {
70
+ lines.push(`${BOLD}Pitfall Changes:${RESET}`);
71
+ for (const p of diff.pitfallChanges) {
72
+ const badge = p.changeType === 'added' ? `${YELLOW}[NEW WARNING]${RESET}` : `${DIM}[REMOVED]${RESET}`;
73
+ lines.push(` ${badge} ${p.pitfall.kind}: ${p.pitfall.title}`);
74
+ }
75
+ }
76
+ return lines.join('\n');
77
+ }
78
+ export function formatImpactReport(impact) {
79
+ const lines = [];
80
+ lines.push(`${BOLD}${CYAN}DocOrbit — Project Impact Analysis${RESET}`);
81
+ lines.push(`Workspace: ${impact.projectDir}`);
82
+ lines.push(`Files Scanned: ${impact.totalFilesScanned}`);
83
+ lines.push(`Impacted Files: ${impact.affectedFilesCount}`);
84
+ lines.push(`Total Matches: ${impact.affectedLocations.length}\n`);
85
+ if (impact.affectedLocations.length === 0) {
86
+ lines.push(`${GREEN}✔ Zero project files impacted by documentation/API changes.${RESET}`);
87
+ return lines.join('\n');
88
+ }
89
+ lines.push(`${BOLD}Impacted Locations:${RESET}`);
90
+ for (const loc of impact.affectedLocations) {
91
+ const cert = loc.certainty === 'high'
92
+ ? `${RED}[HIGH]${RESET}`
93
+ : loc.certainty === 'medium'
94
+ ? `${YELLOW}[MED]${RESET}`
95
+ : `${DIM}[HEUR]${RESET}`;
96
+ lines.push(` ${cert} ${BOLD}${loc.filePath}:${loc.line}${RESET}`);
97
+ lines.push(` ${YELLOW}Reason: ${loc.reason}${RESET}`);
98
+ lines.push(` ${DIM}Pattern: ${loc.matchedPattern}${RESET}`);
99
+ lines.push(` ${DIM}Snippet: ${loc.snippet}${RESET}\n`);
100
+ }
101
+ return lines.join('\n');
102
+ }
@@ -0,0 +1 @@
1
+ export declare function main(args?: string[]): Promise<void>;
@@ -0,0 +1,376 @@
1
+ import { runInspectCommand } from "./commands/inspect.js";
2
+ import { runAddCommand } from "./commands/add.js";
3
+ import { runSearchCommand } from "./commands/search.js";
4
+ import { runContextCommand } from "./commands/context.js";
5
+ import { runInitCommand } from "./commands/init.js";
6
+ import { runUpdateCommand } from "./commands/update.js";
7
+ import { runApiCommand } from "./commands/api.js";
8
+ import { runExamplesCommand } from "./commands/examples.js";
9
+ import { runPitfallsCommand } from "./commands/pitfalls.js";
10
+ import { runRecipesCommand } from "./commands/recipes.js";
11
+ import { runMcpCommand } from "./commands/mcp.js";
12
+ import { runVerifyCommand } from "./commands/verify.js";
13
+ import { runDiffCommand } from "./commands/diff.js";
14
+ import { runImpactCommand } from "./commands/impact.js";
15
+ import { runDashboardCommand } from "./commands/dashboard.js";
16
+ import { runExportCommand } from "./commands/export.js";
17
+ import { handleEvaluateCommand } from "./commands/evaluate.js";
18
+ const VERSION = '0.1.1';
19
+ function printHelp() {
20
+ console.log(`
21
+ DocOrbit — The Documentation Intelligence Layer for Coding Agents
22
+ Version: ${VERSION}
23
+
24
+ USAGE:
25
+ docorbit <command> [options]
26
+
27
+ COMMANDS:
28
+ init [dir] Scan workspace, detect project dependencies, resolve docs, and write docs.lock
29
+ update [pkg] Update docs.lock dependencies (selective or global refresh)
30
+ inspect <url> Probe target documentation domain for canonical machine-readable sources
31
+ add <url> Discover, rank, fetch, normalize, slice, and store documentation into local SQLite
32
+ search "<query>" Deterministic hybrid search across sliced documentation chunks
33
+ context "<task>" Pack relevant documentation context optimized for AI coding agent tasks
34
+ api "<query>" Search and inspect structured API endpoints (OpenAPI / Swagger)
35
+ examples "<task>" Search and filter first-class code examples by language, framework, or task
36
+ pitfalls "<task>" Search explicit warnings, deprecations, breaking changes, and runtime restrictions
37
+ recipes "<goal>" Deterministically compile evidence-grounded implementation recipes
38
+ verify <code/file>Verify agent code against indexed schemas and detect mismatches/deprecations
39
+ diff [source] Compare documentation versions and snapshots (detect added/removed/deprecated APIs)
40
+ impact [source] Analyze impact of doc changes on project workspace files
41
+ dashboard Launch local zero-dependency web inspection UI and verification playground (alias: ui)
42
+ export [format] Deterministically export agent guidance files (AGENTS.md, CLAUDE.md, skill.md, llms.txt, docs-map.md)
43
+ eval Run empirical comparative evaluation benchmark (DocOrbit vs Context7 vs Official Docs Fetch vs Firecrawl)
44
+ mcp Start agent-native Model Context Protocol (MCP) server (stdio / streamable HTTP)
45
+
46
+ OPTIONS:
47
+ --project <dir> Workspace root for project-aware dependency detection (default: current dir)
48
+ --doc-version <v> Target documentation version filter/boost (e.g. v14, 15.0)
49
+ --from <v> Base version for documentation diffing / impact analysis (e.g. v14)
50
+ --to <v> Target version for documentation diffing / impact analysis (e.g. v15)
51
+ --library <lib> Filter or target specific library (e.g. stripe, next)
52
+ --format <fmt> Export format: agents.md, claude.md, skill.md, llms.txt, docs-map.md
53
+ --output <path> Custom output file path for export command
54
+ --stdout Print exported agent content directly to stdout
55
+ --json Output results as structured JSON
56
+ --db <path> Custom SQLite database path (default: .docorbit/docorbit.db)
57
+ --tokens <num> Token budget for context packaging (default: 3000)
58
+ --limit <num> Maximum search results to return (default: 10)
59
+ --type <type> Filter by chunk type: prose, code, api, warning, example, mixed
60
+ --method <method> Filter API endpoints by HTTP method: get, post, put, delete, patch
61
+ --language <lang> Filter code examples by language: typescript, python, go, rust, bash
62
+ --framework <fw> Filter code examples by framework: next, react, express, fastapi, flask
63
+ --kind <kind> Filter pitfalls by kind: deprecated, removed, breaking_change, server_only, rate_limit, security
64
+ --stdio Run MCP server over standard I/O (stdin/stdout) (default)
65
+ --port <num> Port for HTTP server or dashboard (default: 3737 for dashboard)
66
+ --host <ip> Host to bind HTTP transport / dashboard (default: 127.0.0.1)
67
+ --max-pages <num> Maximum pages to crawl and ingest (default: 50)
68
+ --allow-localhost Allow localhost / loopback targets (useful for local development & testing)
69
+ -h, --help Show this help message
70
+ -v, --version Show DocOrbit version
71
+
72
+ EXAMPLES:
73
+ docorbit init .
74
+ docorbit verify "fetch('/v1/charges', { method: 'POST' })" --doc-version v14
75
+ docorbit diff --from v14 --to v15
76
+ docorbit impact --from v14 --to v15 --project .
77
+ docorbit mcp --stdio
78
+ docorbit api "create subscription" --doc-version v1
79
+ docorbit examples "verify webhook signature" --language typescript --framework express
80
+ docorbit pitfalls "server actions" --kind server_only --doc-version v14
81
+ docorbit recipes "Handle webhook signature verification in Next.js" --project .
82
+ `);
83
+ }
84
+ export async function main(args = process.argv.slice(2)) {
85
+ if (args.length === 0 || args.includes('-h') || args.includes('--help')) {
86
+ printHelp();
87
+ return;
88
+ }
89
+ if (args.includes('-v') || args.includes('--version')) {
90
+ console.log(`DocOrbit v${VERSION}`);
91
+ return;
92
+ }
93
+ const command = args[0];
94
+ const queryArg = args[1]?.startsWith('-') ? undefined : args[1];
95
+ const isJson = args.includes('--json');
96
+ const allowLocalhost = args.includes('--allow-localhost');
97
+ let dbPath;
98
+ const dbIdx = args.indexOf('--db');
99
+ if (dbIdx !== -1 && args[dbIdx + 1]) {
100
+ dbPath = args[dbIdx + 1];
101
+ }
102
+ let projectDir;
103
+ const projIdx = args.indexOf('--project');
104
+ if (projIdx !== -1 && args[projIdx + 1]) {
105
+ projectDir = args[projIdx + 1];
106
+ }
107
+ let docVersion;
108
+ const docVerIdx = args.indexOf('--doc-version');
109
+ if (docVerIdx !== -1 && args[docVerIdx + 1]) {
110
+ docVersion = args[docVerIdx + 1];
111
+ }
112
+ let maxPages;
113
+ const maxPagesIdx = args.indexOf('--max-pages');
114
+ if (maxPagesIdx !== -1 && args[maxPagesIdx + 1]) {
115
+ maxPages = parseInt(args[maxPagesIdx + 1], 10);
116
+ }
117
+ let limit;
118
+ const limitIdx = args.indexOf('--limit');
119
+ if (limitIdx !== -1 && args[limitIdx + 1]) {
120
+ limit = parseInt(args[limitIdx + 1], 10);
121
+ }
122
+ let tokens;
123
+ const tokensIdx = args.indexOf('--tokens');
124
+ if (tokensIdx !== -1 && args[tokensIdx + 1]) {
125
+ tokens = parseInt(args[tokensIdx + 1], 10);
126
+ }
127
+ let chunkType;
128
+ const typeIdx = args.indexOf('--type');
129
+ if (typeIdx !== -1 && args[typeIdx + 1]) {
130
+ chunkType = args[typeIdx + 1];
131
+ }
132
+ let method;
133
+ const methodIdx = args.indexOf('--method');
134
+ if (methodIdx !== -1 && args[methodIdx + 1]) {
135
+ method = args[methodIdx + 1];
136
+ }
137
+ let language;
138
+ const langIdx = args.indexOf('--language');
139
+ if (langIdx !== -1 && args[langIdx + 1]) {
140
+ language = args[langIdx + 1];
141
+ }
142
+ let framework;
143
+ const fwIdx = args.indexOf('--framework');
144
+ if (fwIdx !== -1 && args[fwIdx + 1]) {
145
+ framework = args[fwIdx + 1];
146
+ }
147
+ let kind;
148
+ const kindIdx = args.indexOf('--kind');
149
+ if (kindIdx !== -1 && args[kindIdx + 1]) {
150
+ kind = args[kindIdx + 1];
151
+ }
152
+ const isStdio = args.includes('--stdio');
153
+ let port;
154
+ const portIdx = args.indexOf('--port');
155
+ if (portIdx !== -1 && args[portIdx + 1]) {
156
+ port = parseInt(args[portIdx + 1], 10);
157
+ }
158
+ let host;
159
+ const hostIdx = args.indexOf('--host');
160
+ if (hostIdx !== -1 && args[hostIdx + 1]) {
161
+ host = args[hostIdx + 1];
162
+ }
163
+ let fromVersion;
164
+ const fromIdx = args.indexOf('--from');
165
+ if (fromIdx !== -1 && args[fromIdx + 1]) {
166
+ fromVersion = args[fromIdx + 1];
167
+ }
168
+ let toVersion;
169
+ const toIdx = args.indexOf('--to');
170
+ if (toIdx !== -1 && args[toIdx + 1]) {
171
+ toVersion = args[toIdx + 1];
172
+ }
173
+ let library;
174
+ const libIdx = args.indexOf('--library');
175
+ if (libIdx !== -1 && args[libIdx + 1]) {
176
+ library = args[libIdx + 1];
177
+ }
178
+ let output;
179
+ const outIdx = args.indexOf('--output');
180
+ if (outIdx !== -1 && args[outIdx + 1]) {
181
+ output = args[outIdx + 1];
182
+ }
183
+ let format;
184
+ const fmtIdx = args.indexOf('--format');
185
+ if (fmtIdx !== -1 && args[fmtIdx + 1]) {
186
+ format = args[fmtIdx + 1];
187
+ }
188
+ let targetSource;
189
+ const srcIdx = args.indexOf('--source');
190
+ if (srcIdx !== -1 && args[srcIdx + 1]) {
191
+ targetSource = args[srcIdx + 1];
192
+ }
193
+ let evalSplit;
194
+ const splitIdx = args.indexOf('--split');
195
+ if (splitIdx !== -1 && args[splitIdx + 1]) {
196
+ evalSplit = args[splitIdx + 1];
197
+ }
198
+ let evalStrategy;
199
+ const stratIdx = args.indexOf('--strategy');
200
+ if (stratIdx !== -1 && args[stratIdx + 1]) {
201
+ evalStrategy = args[stratIdx + 1];
202
+ }
203
+ let evalTask;
204
+ const taskIdx = args.indexOf('--task');
205
+ if (taskIdx !== -1 && args[taskIdx + 1]) {
206
+ evalTask = args[taskIdx + 1];
207
+ }
208
+ const isStdout = args.includes('--stdout');
209
+ const noOpen = args.includes('--no-open');
210
+ const isVerbose = args.includes('--verbose');
211
+ switch (command) {
212
+ case 'init': {
213
+ const targetDir = queryArg || projectDir || '.';
214
+ await runInitCommand(targetDir, { json: isJson, dbPath });
215
+ break;
216
+ }
217
+ case 'update': {
218
+ const targetPkg = queryArg;
219
+ await runUpdateCommand(targetPkg, { json: isJson, dbPath, projectDir });
220
+ break;
221
+ }
222
+ case 'inspect': {
223
+ if (!queryArg) {
224
+ console.error('Error: "inspect" requires a target URL argument.');
225
+ printHelp();
226
+ process.exit(1);
227
+ }
228
+ await runInspectCommand(queryArg, { json: isJson, allowLocalhost });
229
+ break;
230
+ }
231
+ case 'add': {
232
+ if (!queryArg) {
233
+ console.error('Error: "add" requires a target URL argument.');
234
+ printHelp();
235
+ process.exit(1);
236
+ }
237
+ await runAddCommand(queryArg, { json: isJson, dbPath, maxPages, allowLocalhost });
238
+ break;
239
+ }
240
+ case 'search': {
241
+ if (!queryArg) {
242
+ console.error('Error: "search" requires a query string argument.');
243
+ printHelp();
244
+ process.exit(1);
245
+ }
246
+ await runSearchCommand(queryArg, { json: isJson, dbPath, limit, chunkType, docVersion, projectDir });
247
+ break;
248
+ }
249
+ case 'context': {
250
+ if (!queryArg) {
251
+ console.error('Error: "context" requires a task description argument.');
252
+ printHelp();
253
+ process.exit(1);
254
+ }
255
+ await runContextCommand(queryArg, { json: isJson, dbPath, tokens, docVersion, projectDir });
256
+ break;
257
+ }
258
+ case 'api': {
259
+ await runApiCommand(queryArg || '', { method, docVersion, projectDir, limit, json: isJson, dbPath });
260
+ break;
261
+ }
262
+ case 'examples': {
263
+ await runExamplesCommand(queryArg || '', { language, framework, docVersion, projectDir, limit, json: isJson, dbPath });
264
+ break;
265
+ }
266
+ case 'pitfalls': {
267
+ await runPitfallsCommand(queryArg || '', { kind, docVersion, projectDir, limit, json: isJson, dbPath });
268
+ break;
269
+ }
270
+ case 'recipes': {
271
+ if (!queryArg) {
272
+ console.error('Error: "recipes" requires an implementation goal argument.');
273
+ printHelp();
274
+ process.exit(1);
275
+ }
276
+ await runRecipesCommand(queryArg, { docVersion, projectDir, json: isJson, dbPath });
277
+ break;
278
+ }
279
+ case 'mcp': {
280
+ await runMcpCommand({
281
+ stdio: isStdio || !port,
282
+ port,
283
+ host,
284
+ dbPath,
285
+ projectDir,
286
+ });
287
+ break;
288
+ }
289
+ case 'verify':
290
+ case 'check-api': {
291
+ if (!queryArg) {
292
+ console.error('Error: "verify" requires a code snippet or file path argument.');
293
+ printHelp();
294
+ process.exit(1);
295
+ }
296
+ await runVerifyCommand(queryArg, {
297
+ docVersion,
298
+ projectDir,
299
+ library,
300
+ language,
301
+ json: isJson,
302
+ dbPath,
303
+ });
304
+ break;
305
+ }
306
+ case 'diff': {
307
+ await runDiffCommand(queryArg || '', {
308
+ from: fromVersion,
309
+ to: toVersion,
310
+ json: isJson,
311
+ dbPath,
312
+ });
313
+ break;
314
+ }
315
+ case 'impact': {
316
+ await runImpactCommand(queryArg || '', {
317
+ from: fromVersion,
318
+ to: toVersion,
319
+ projectDir,
320
+ json: isJson,
321
+ dbPath,
322
+ });
323
+ break;
324
+ }
325
+ case 'dashboard':
326
+ case 'ui': {
327
+ await runDashboardCommand({
328
+ port,
329
+ host,
330
+ projectDir,
331
+ dbPath,
332
+ noOpen,
333
+ });
334
+ break;
335
+ }
336
+ case 'export': {
337
+ await runExportCommand(queryArg || format, {
338
+ format,
339
+ output,
340
+ stdout: isStdout,
341
+ projectDir,
342
+ docVersion,
343
+ targetSource,
344
+ json: isJson,
345
+ dbPath,
346
+ });
347
+ break;
348
+ }
349
+ case 'eval':
350
+ case 'evaluate':
351
+ case 'benchmark': {
352
+ await handleEvaluateCommand({
353
+ split: evalSplit,
354
+ strategy: evalStrategy,
355
+ task: evalTask,
356
+ output,
357
+ json: isJson,
358
+ verbose: isVerbose,
359
+ simulation: args.includes('--simulation'),
360
+ });
361
+ break;
362
+ }
363
+ default: {
364
+ console.error(`Unknown command: "${command}"\n`);
365
+ printHelp();
366
+ process.exit(1);
367
+ }
368
+ }
369
+ }
370
+ // Direct CLI invocation
371
+ if (import.meta.url === `file://${process.argv[1]}`) {
372
+ main().catch(err => {
373
+ console.error('Fatal DocOrbit Error:', err);
374
+ process.exit(1);
375
+ });
376
+ }
@@ -0,0 +1,33 @@
1
+ import http from 'node:http';
2
+ import type { DocOrbitRepository } from '../../../storage/src/index.ts';
3
+ export interface DashboardServerOptions {
4
+ repo: DocOrbitRepository;
5
+ projectDir?: string;
6
+ dbPath?: string;
7
+ }
8
+ export declare class DashboardServer {
9
+ private repo;
10
+ private projectDir?;
11
+ private dbPath;
12
+ private exportService;
13
+ private verificationService;
14
+ private diffService;
15
+ private impactService;
16
+ private server;
17
+ constructor(options: DashboardServerOptions);
18
+ /**
19
+ * Starts the local dashboard HTTP server.
20
+ */
21
+ start(port?: number, host?: string): Promise<{
22
+ server: http.Server;
23
+ url: string;
24
+ port: number;
25
+ }>;
26
+ /**
27
+ * Stops the server gracefully.
28
+ */
29
+ stop(): Promise<void>;
30
+ handleRequest(req: http.IncomingMessage, res: http.ServerResponse): Promise<void>;
31
+ private getStats;
32
+ private readJsonBody;
33
+ }