mdcontext 0.0.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (337) hide show
  1. package/.changeset/README.md +28 -0
  2. package/.changeset/config.json +11 -0
  3. package/.claude/settings.local.json +25 -0
  4. package/.github/workflows/ci.yml +83 -0
  5. package/.github/workflows/claude-code-review.yml +44 -0
  6. package/.github/workflows/claude.yml +85 -0
  7. package/.github/workflows/release.yml +113 -0
  8. package/.tldrignore +112 -0
  9. package/BACKLOG.md +338 -0
  10. package/CONTRIBUTING.md +186 -0
  11. package/NOTES/NOTES +44 -0
  12. package/README.md +434 -11
  13. package/biome.json +36 -0
  14. package/cspell.config.yaml +14 -0
  15. package/dist/chunk-23UPXDNL.js +3044 -0
  16. package/dist/chunk-2W7MO2DL.js +1366 -0
  17. package/dist/chunk-3NUAZGMA.js +1689 -0
  18. package/dist/chunk-7TOWB2XB.js +366 -0
  19. package/dist/chunk-7XOTOADQ.js +3065 -0
  20. package/dist/chunk-AH2PDM2K.js +3042 -0
  21. package/dist/chunk-BNXWSZ63.js +3742 -0
  22. package/dist/chunk-BTL5DJVU.js +3222 -0
  23. package/dist/chunk-HDHYG7E4.js +104 -0
  24. package/dist/chunk-HLR4KZBP.js +3234 -0
  25. package/dist/chunk-IP3FRFEB.js +1045 -0
  26. package/dist/chunk-KHU56VDO.js +3042 -0
  27. package/dist/chunk-KRYIFLQR.js +88 -0
  28. package/dist/chunk-LBSDNLEM.js +287 -0
  29. package/dist/chunk-MNTQ7HCP.js +2643 -0
  30. package/dist/chunk-MUJELQQ6.js +1387 -0
  31. package/dist/chunk-MXJGMSLV.js +2199 -0
  32. package/dist/chunk-N6QJGC3Z.js +2636 -0
  33. package/dist/chunk-OBELGBPM.js +1713 -0
  34. package/dist/chunk-OT7R5XTA.js +3192 -0
  35. package/dist/chunk-P7X4RA2T.js +106 -0
  36. package/dist/chunk-PIDUQNC2.js +3185 -0
  37. package/dist/chunk-POGCDIH4.js +3187 -0
  38. package/dist/chunk-PSIEOQGZ.js +3043 -0
  39. package/dist/chunk-PVRT3IHA.js +3238 -0
  40. package/dist/chunk-QNN4TT23.js +1430 -0
  41. package/dist/chunk-RE3R45RJ.js +3042 -0
  42. package/dist/chunk-S7E6TFX6.js +803 -0
  43. package/dist/chunk-SG6GLU4U.js +1378 -0
  44. package/dist/chunk-SJCDV2ST.js +274 -0
  45. package/dist/chunk-SYE5XLF3.js +104 -0
  46. package/dist/chunk-T5VLYBZD.js +103 -0
  47. package/dist/chunk-TOQB7VWU.js +3238 -0
  48. package/dist/chunk-VFNMZ4ZQ.js +3228 -0
  49. package/dist/chunk-VVTGZNBT.js +1629 -0
  50. package/dist/chunk-W7Q4RFEV.js +104 -0
  51. package/dist/chunk-XTYYVRLO.js +3190 -0
  52. package/dist/chunk-Y6MDYVJD.js +3063 -0
  53. package/dist/cli/main.d.ts +1 -0
  54. package/dist/cli/main.js +5458 -0
  55. package/dist/index.d.ts +653 -0
  56. package/dist/index.js +79 -0
  57. package/dist/mcp/server.d.ts +1 -0
  58. package/dist/mcp/server.js +472 -0
  59. package/dist/schema-BAWSG7KY.js +22 -0
  60. package/dist/schema-E3QUPL26.js +20 -0
  61. package/dist/schema-EHL7WUT6.js +20 -0
  62. package/docs/019-USAGE.md +625 -0
  63. package/docs/020-current-implementation.md +364 -0
  64. package/docs/021-DOGFOODING-FINDINGS.md +175 -0
  65. package/docs/BACKLOG.md +80 -0
  66. package/docs/CONFIG.md +1123 -0
  67. package/docs/DESIGN.md +439 -0
  68. package/docs/ERRORS.md +383 -0
  69. package/docs/PROJECT.md +88 -0
  70. package/docs/ROADMAP.md +407 -0
  71. package/docs/summarization.md +320 -0
  72. package/docs/test-links.md +9 -0
  73. package/justfile +40 -0
  74. package/package.json +74 -9
  75. package/pnpm-workspace.yaml +5 -0
  76. package/research/INDEX.md +315 -0
  77. package/research/code-review/README.md +90 -0
  78. package/research/code-review/cli-error-handling-review.md +979 -0
  79. package/research/code-review/code-review-validation-report.md +464 -0
  80. package/research/code-review/main-ts-review.md +1128 -0
  81. package/research/config-analysis/01-current-implementation.md +470 -0
  82. package/research/config-analysis/02-strategy-recommendation.md +428 -0
  83. package/research/config-analysis/03-task-candidates.md +715 -0
  84. package/research/config-analysis/033-research-configuration-management.md +828 -0
  85. package/research/config-analysis/034-research-effect-cli-config.md +1504 -0
  86. package/research/config-analysis/04-consolidated-task-candidates.md +277 -0
  87. package/research/config-docs/SUMMARY.md +357 -0
  88. package/research/config-docs/TEST-RESULTS.md +776 -0
  89. package/research/config-docs/TODO.md +542 -0
  90. package/research/config-docs/analysis.md +744 -0
  91. package/research/config-docs/fix-validation.md +502 -0
  92. package/research/config-docs/help-audit.md +264 -0
  93. package/research/config-docs/help-system-analysis.md +890 -0
  94. package/research/dogfood/consolidated-tool-evaluation.md +373 -0
  95. package/research/dogfood/strategy-a/a-synthesis.md +184 -0
  96. package/research/dogfood/strategy-a/a1-docs.md +226 -0
  97. package/research/dogfood/strategy-a/a2-amorphic.md +156 -0
  98. package/research/dogfood/strategy-a/a3-llm.md +164 -0
  99. package/research/dogfood/strategy-b/b-synthesis.md +228 -0
  100. package/research/dogfood/strategy-b/b1-architecture.md +207 -0
  101. package/research/dogfood/strategy-b/b2-gaps.md +258 -0
  102. package/research/dogfood/strategy-b/b3-workflows.md +250 -0
  103. package/research/dogfood/strategy-c/c-synthesis.md +451 -0
  104. package/research/dogfood/strategy-c/c1-explorer.md +192 -0
  105. package/research/dogfood/strategy-c/c2-diver-memory.md +145 -0
  106. package/research/dogfood/strategy-c/c3-diver-control.md +148 -0
  107. package/research/dogfood/strategy-c/c4-diver-failure.md +151 -0
  108. package/research/dogfood/strategy-c/c5-diver-execution.md +221 -0
  109. package/research/dogfood/strategy-c/c6-diver-org.md +221 -0
  110. package/research/effect-cli-error-handling.md +845 -0
  111. package/research/effect-errors-as-values.md +943 -0
  112. package/research/errors-task-analysis/00-consolidated-tasks.md +207 -0
  113. package/research/errors-task-analysis/cli-commands-analysis.md +909 -0
  114. package/research/errors-task-analysis/embeddings-analysis.md +709 -0
  115. package/research/errors-task-analysis/index-search-analysis.md +812 -0
  116. package/research/frontmatter/COMMENTS-ARE-SKIPPED.md +149 -0
  117. package/research/frontmatter/LLM-CODE-NAVIGATION.md +276 -0
  118. package/research/issue-review.md +603 -0
  119. package/research/llm-summarization/agent-cli-tools-2026.md +1082 -0
  120. package/research/llm-summarization/alternative-providers-2026.md +1428 -0
  121. package/research/llm-summarization/anthropic-2026.md +367 -0
  122. package/research/llm-summarization/claude-cli-integration.md +1706 -0
  123. package/research/llm-summarization/cli-integration-patterns.md +3155 -0
  124. package/research/llm-summarization/openai-2026.md +473 -0
  125. package/research/llm-summarization/openai-compatible-providers-2026.md +1022 -0
  126. package/research/llm-summarization/opencode-cli-integration.md +1552 -0
  127. package/research/llm-summarization/prompt-engineering-2026.md +1426 -0
  128. package/research/llm-summarization/prototype-results.md +56 -0
  129. package/research/llm-summarization/provider-switching-patterns-2026.md +2153 -0
  130. package/research/llm-summarization/typescript-llm-libraries-2026.md +2436 -0
  131. package/research/mdcontext-error-analysis.md +521 -0
  132. package/research/mdcontext-pudding/00-EXECUTIVE-SUMMARY.md +282 -0
  133. package/research/mdcontext-pudding/01-index-embed.md +956 -0
  134. package/research/mdcontext-pudding/02-search-COMMANDS.md +142 -0
  135. package/research/mdcontext-pudding/02-search-SUMMARY.md +146 -0
  136. package/research/mdcontext-pudding/02-search.md +970 -0
  137. package/research/mdcontext-pudding/03-context.md +779 -0
  138. package/research/mdcontext-pudding/04-navigation-and-analytics.md +803 -0
  139. package/research/mdcontext-pudding/04-tree.md +704 -0
  140. package/research/mdcontext-pudding/05-config.md +1038 -0
  141. package/research/mdcontext-pudding/06-links-summary.txt +87 -0
  142. package/research/mdcontext-pudding/06-links.md +679 -0
  143. package/research/mdcontext-pudding/07-stats.md +693 -0
  144. package/research/mdcontext-pudding/BUG-FIX-PLAN.md +388 -0
  145. package/research/mdcontext-pudding/P0-BUG-VALIDATION.md +167 -0
  146. package/research/mdcontext-pudding/README.md +168 -0
  147. package/research/mdcontext-pudding/TESTING-SUMMARY.md +128 -0
  148. package/research/npm_publish/011-npm-workflow-research-agent2.md +792 -0
  149. package/research/npm_publish/012-npm-workflow-research-agent1.md +530 -0
  150. package/research/npm_publish/013-npm-workflow-research-agent3.md +722 -0
  151. package/research/npm_publish/014-npm-workflow-synthesis.md +556 -0
  152. package/research/npm_publish/031-npm-workflow-task-analysis.md +134 -0
  153. package/research/research-quality-review.md +834 -0
  154. package/research/semantic-search/002-research-embedding-models.md +490 -0
  155. package/research/semantic-search/003-research-rag-alternatives.md +523 -0
  156. package/research/semantic-search/004-research-vector-search.md +841 -0
  157. package/research/semantic-search/032-research-semantic-search.md +427 -0
  158. package/research/semantic-search/embedding-text-analysis.md +156 -0
  159. package/research/semantic-search/multi-word-failure-reproduction.md +171 -0
  160. package/research/semantic-search/query-processing-analysis.md +207 -0
  161. package/research/semantic-search/root-cause-and-solution.md +114 -0
  162. package/research/semantic-search/threshold-validation-report.md +69 -0
  163. package/research/semantic-search/vector-search-analysis.md +63 -0
  164. package/research/task-management-2026/00-synthesis-recommendations.md +295 -0
  165. package/research/task-management-2026/01-ai-workflow-tools.md +416 -0
  166. package/research/task-management-2026/02-agent-framework-patterns.md +476 -0
  167. package/research/task-management-2026/03-lightweight-file-based.md +567 -0
  168. package/research/task-management-2026/04-established-tools-ai-features.md +541 -0
  169. package/research/task-management-2026/linear/01-core-features-workflow.md +771 -0
  170. package/research/task-management-2026/linear/02-api-integrations.md +930 -0
  171. package/research/task-management-2026/linear/03-ai-features.md +368 -0
  172. package/research/task-management-2026/linear/04-pricing-setup.md +205 -0
  173. package/research/task-management-2026/linear/05-usage-patterns-best-practices.md +605 -0
  174. package/research/test-path-issues.md +276 -0
  175. package/review/ALP-76/1-error-type-design.md +962 -0
  176. package/review/ALP-76/2-error-handling-patterns.md +906 -0
  177. package/review/ALP-76/3-error-presentation.md +624 -0
  178. package/review/ALP-76/4-test-coverage.md +625 -0
  179. package/review/ALP-76/5-migration-completeness.md +440 -0
  180. package/review/ALP-76/6-effect-best-practices.md +755 -0
  181. package/scripts/apply-branch-protection.sh +47 -0
  182. package/scripts/branch-protection-templates.json +79 -0
  183. package/scripts/prototype-summarization.ts +346 -0
  184. package/scripts/rebuild-hnswlib.js +58 -0
  185. package/scripts/setup-branch-protection.sh +64 -0
  186. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/active-provider.json +7 -0
  187. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/bm25.json +541 -0
  188. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/bm25.meta.json +5 -0
  189. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/config.json +8 -0
  190. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/embeddings/openai_text-embedding-3-small_512/vectors.bin +0 -0
  191. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/embeddings/openai_text-embedding-3-small_512/vectors.meta.bin +0 -0
  192. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/indexes/documents.json +60 -0
  193. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/indexes/links.json +13 -0
  194. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/indexes/sections.json +1197 -0
  195. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/configuration-management.md +99 -0
  196. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/distributed-systems.md +92 -0
  197. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/error-handling.md +78 -0
  198. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/failure-automation.md +55 -0
  199. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/job-context.md +69 -0
  200. package/src/__tests__/fixtures/semantic-search/multi-word-corpus/process-orchestration.md +99 -0
  201. package/src/cli/argv-preprocessor.test.ts +210 -0
  202. package/src/cli/argv-preprocessor.ts +202 -0
  203. package/src/cli/cli.test.ts +627 -0
  204. package/src/cli/commands/backlinks.ts +54 -0
  205. package/src/cli/commands/config-cmd.ts +642 -0
  206. package/src/cli/commands/context.ts +285 -0
  207. package/src/cli/commands/duplicates.ts +122 -0
  208. package/src/cli/commands/embeddings.ts +529 -0
  209. package/src/cli/commands/index-cmd.ts +480 -0
  210. package/src/cli/commands/index.ts +16 -0
  211. package/src/cli/commands/links.ts +52 -0
  212. package/src/cli/commands/search.ts +1281 -0
  213. package/src/cli/commands/stats.ts +149 -0
  214. package/src/cli/commands/tree.ts +128 -0
  215. package/src/cli/config-layer.ts +176 -0
  216. package/src/cli/error-handler.test.ts +235 -0
  217. package/src/cli/error-handler.ts +655 -0
  218. package/src/cli/flag-schemas.ts +341 -0
  219. package/src/cli/help.ts +588 -0
  220. package/src/cli/index.ts +9 -0
  221. package/src/cli/main.ts +435 -0
  222. package/src/cli/options.ts +41 -0
  223. package/src/cli/shared-error-handling.ts +199 -0
  224. package/src/cli/typo-suggester.test.ts +105 -0
  225. package/src/cli/typo-suggester.ts +130 -0
  226. package/src/cli/utils.ts +259 -0
  227. package/src/config/file-provider.test.ts +320 -0
  228. package/src/config/file-provider.ts +273 -0
  229. package/src/config/index.ts +72 -0
  230. package/src/config/integration.test.ts +667 -0
  231. package/src/config/precedence.test.ts +277 -0
  232. package/src/config/precedence.ts +451 -0
  233. package/src/config/schema.test.ts +414 -0
  234. package/src/config/schema.ts +603 -0
  235. package/src/config/service.test.ts +320 -0
  236. package/src/config/service.ts +243 -0
  237. package/src/config/testing.test.ts +264 -0
  238. package/src/config/testing.ts +110 -0
  239. package/src/core/index.ts +1 -0
  240. package/src/core/types.ts +113 -0
  241. package/src/duplicates/detector.test.ts +183 -0
  242. package/src/duplicates/detector.ts +414 -0
  243. package/src/duplicates/index.ts +18 -0
  244. package/src/embeddings/embedding-namespace.test.ts +300 -0
  245. package/src/embeddings/embedding-namespace.ts +947 -0
  246. package/src/embeddings/heading-boost.test.ts +222 -0
  247. package/src/embeddings/hnsw-build-options.test.ts +198 -0
  248. package/src/embeddings/hyde.test.ts +272 -0
  249. package/src/embeddings/hyde.ts +264 -0
  250. package/src/embeddings/index.ts +10 -0
  251. package/src/embeddings/openai-provider.ts +414 -0
  252. package/src/embeddings/pricing.json +22 -0
  253. package/src/embeddings/provider-constants.ts +204 -0
  254. package/src/embeddings/provider-errors.test.ts +967 -0
  255. package/src/embeddings/provider-errors.ts +565 -0
  256. package/src/embeddings/provider-factory.test.ts +240 -0
  257. package/src/embeddings/provider-factory.ts +225 -0
  258. package/src/embeddings/provider-integration.test.ts +788 -0
  259. package/src/embeddings/query-preprocessing.test.ts +187 -0
  260. package/src/embeddings/semantic-search-threshold.test.ts +508 -0
  261. package/src/embeddings/semantic-search.ts +1270 -0
  262. package/src/embeddings/types.ts +359 -0
  263. package/src/embeddings/vector-store.ts +708 -0
  264. package/src/embeddings/voyage-provider.ts +313 -0
  265. package/src/errors/errors.test.ts +845 -0
  266. package/src/errors/index.ts +533 -0
  267. package/src/index/ignore-patterns.test.ts +354 -0
  268. package/src/index/ignore-patterns.ts +305 -0
  269. package/src/index/index.ts +4 -0
  270. package/src/index/indexer.ts +684 -0
  271. package/src/index/storage.ts +260 -0
  272. package/src/index/types.ts +147 -0
  273. package/src/index/watcher.ts +189 -0
  274. package/src/index.ts +30 -0
  275. package/src/integration/search-keyword.test.ts +678 -0
  276. package/src/mcp/server.ts +612 -0
  277. package/src/parser/index.ts +1 -0
  278. package/src/parser/parser.test.ts +291 -0
  279. package/src/parser/parser.ts +394 -0
  280. package/src/parser/section-filter.test.ts +277 -0
  281. package/src/parser/section-filter.ts +392 -0
  282. package/src/search/__tests__/hybrid-search.test.ts +650 -0
  283. package/src/search/bm25-store.ts +366 -0
  284. package/src/search/cross-encoder.test.ts +253 -0
  285. package/src/search/cross-encoder.ts +406 -0
  286. package/src/search/fuzzy-search.test.ts +419 -0
  287. package/src/search/fuzzy-search.ts +273 -0
  288. package/src/search/hybrid-search.ts +448 -0
  289. package/src/search/path-matcher.test.ts +276 -0
  290. package/src/search/path-matcher.ts +33 -0
  291. package/src/search/query-parser.test.ts +260 -0
  292. package/src/search/query-parser.ts +319 -0
  293. package/src/search/searcher.test.ts +280 -0
  294. package/src/search/searcher.ts +724 -0
  295. package/src/search/wink-bm25.d.ts +30 -0
  296. package/src/summarization/cli-providers/claude.ts +202 -0
  297. package/src/summarization/cli-providers/detection.test.ts +273 -0
  298. package/src/summarization/cli-providers/detection.ts +118 -0
  299. package/src/summarization/cli-providers/index.ts +8 -0
  300. package/src/summarization/cost.test.ts +139 -0
  301. package/src/summarization/cost.ts +102 -0
  302. package/src/summarization/error-handler.test.ts +127 -0
  303. package/src/summarization/error-handler.ts +111 -0
  304. package/src/summarization/index.ts +102 -0
  305. package/src/summarization/pipeline.test.ts +498 -0
  306. package/src/summarization/pipeline.ts +231 -0
  307. package/src/summarization/prompts.test.ts +269 -0
  308. package/src/summarization/prompts.ts +133 -0
  309. package/src/summarization/provider-factory.test.ts +396 -0
  310. package/src/summarization/provider-factory.ts +178 -0
  311. package/src/summarization/types.ts +184 -0
  312. package/src/summarize/budget-bugs.test.ts +620 -0
  313. package/src/summarize/formatters.ts +419 -0
  314. package/src/summarize/index.ts +20 -0
  315. package/src/summarize/summarizer.test.ts +275 -0
  316. package/src/summarize/summarizer.ts +597 -0
  317. package/src/summarize/verify-bugs.test.ts +238 -0
  318. package/src/types/huggingface-transformers.d.ts +66 -0
  319. package/src/utils/index.ts +1 -0
  320. package/src/utils/tokens.test.ts +142 -0
  321. package/src/utils/tokens.ts +186 -0
  322. package/tests/fixtures/cli/.mdcontext/active-provider.json +7 -0
  323. package/tests/fixtures/cli/.mdcontext/config.json +8 -0
  324. package/tests/fixtures/cli/.mdcontext/embeddings/openai_text-embedding-3-small_512/vectors.bin +0 -0
  325. package/tests/fixtures/cli/.mdcontext/embeddings/openai_text-embedding-3-small_512/vectors.meta.bin +0 -0
  326. package/tests/fixtures/cli/.mdcontext/indexes/documents.json +33 -0
  327. package/tests/fixtures/cli/.mdcontext/indexes/links.json +12 -0
  328. package/tests/fixtures/cli/.mdcontext/indexes/sections.json +247 -0
  329. package/tests/fixtures/cli/README.md +9 -0
  330. package/tests/fixtures/cli/api-reference.md +11 -0
  331. package/tests/fixtures/cli/getting-started.md +11 -0
  332. package/tests/integration/embed-index.test.ts +712 -0
  333. package/tests/integration/search-context.test.ts +469 -0
  334. package/tests/integration/search-semantic.test.ts +522 -0
  335. package/tsconfig.json +26 -0
  336. package/vitest.config.ts +16 -0
  337. package/vitest.setup.ts +12 -0
@@ -0,0 +1,776 @@
1
+ # Configuration Command Test Results
2
+
3
+ ---
4
+ **RESEARCH METADATA**
5
+
6
+ - Analysis Date: 2026-01-24
7
+ - Git Commit: ~07c9e72ba01cda840046b96a1be4743a85e3d4c5 (pre-fix)
8
+ - Status: ✅ Valid (for time tested)
9
+ - Last Validated: 2026-01-24
10
+ - Worktree: nancy-ALP-139
11
+ - Index: [/research/INDEX.md](../INDEX.md)
12
+
13
+ **ACCURACY NOTE**
14
+
15
+ Tests run on pre-fix codebase. Results were accurate at time of testing.
16
+ Failed tests #2 and #9 (TypeScript config) are now resolved - limitation documented,
17
+ default changed to .js. Should re-run to verify current state.
18
+ ---
19
+
20
+ **Test Date:** 2026-01-24
21
+ **Worktree:** nancy-ALP-139
22
+ **Test Environment:** macOS, Node.js 18+
23
+
24
+ ---
25
+
26
+ ## Test Summary
27
+
28
+ **Total Tests:** 12
29
+ **Passed:** 10
30
+ **Failed:** 2
31
+ **Pass Rate:** 83.3%
32
+
33
+ ---
34
+
35
+ ## Test Cases
36
+
37
+ ### 1. Config Init - JSON Format ✅ PASS
38
+
39
+ **Command:**
40
+ ```bash
41
+ npx . config init --format json
42
+ ```
43
+
44
+ **Expected:**
45
+ - Creates `mdcontext.config.json`
46
+ - Well-formatted JSON
47
+ - Includes all major config sections
48
+ - Valid JSON syntax
49
+
50
+ **Actual Output:**
51
+ ```
52
+ Created mdcontext.config.json
53
+
54
+ Edit the file to customize mdcontext for your project.
55
+ ```
56
+
57
+ **Verification:**
58
+ ```bash
59
+ $ cat mdcontext.config.json
60
+ {
61
+ "$schema": "https://mdcontext.dev/schema.json",
62
+ "index": {
63
+ "maxDepth": 10,
64
+ "excludePatterns": ["node_modules", ".git", "dist", "build"],
65
+ "fileExtensions": [".md", ".mdx"],
66
+ "followSymlinks": false,
67
+ "indexDir": ".mdcontext"
68
+ },
69
+ "search": {
70
+ "defaultLimit": 10,
71
+ "maxLimit": 100,
72
+ "minSimilarity": 0.5,
73
+ "includeSnippets": true,
74
+ "snippetLength": 200
75
+ },
76
+ "embeddings": {
77
+ "provider": "openai",
78
+ "model": "text-embedding-3-small",
79
+ "batchSize": 100,
80
+ "maxRetries": 3,
81
+ "retryDelayMs": 1000,
82
+ "timeoutMs": 30000
83
+ },
84
+ "output": {
85
+ "format": "text",
86
+ "color": true,
87
+ "prettyJson": true,
88
+ "verbose": false,
89
+ "debug": false
90
+ }
91
+ }
92
+ ```
93
+
94
+ **Result:** ✅ PASS
95
+ **Issues Found:**
96
+ - ⚠️ Missing `summarization` section (known issue)
97
+ - ⚠️ Schema URL doesn't exist yet (known issue)
98
+
99
+ ---
100
+
101
+ ### 2. Config Init - TypeScript Format ⚠️ PARTIAL PASS
102
+
103
+ **Command:**
104
+ ```bash
105
+ npx . config init
106
+ ```
107
+
108
+ **Expected:**
109
+ - Creates `mdcontext.config.ts`
110
+ - Includes TypeScript syntax
111
+ - Includes `defineConfig` import
112
+ - Well-documented with comments
113
+
114
+ **Actual Output:**
115
+ ```
116
+ Created mdcontext.config.ts
117
+
118
+ The config file includes:
119
+ - Type-safe defineConfig() helper
120
+ - Documented default values
121
+ - All available options
122
+
123
+ Edit the file to customize mdcontext for your project.
124
+ ```
125
+
126
+ **Verification:**
127
+ ```typescript
128
+ // First 50 lines of mdcontext.config.ts
129
+ /**
130
+ * mdcontext Configuration
131
+ *
132
+ * This file configures mdcontext behavior for this project.
133
+ * See https://mdcontext.dev/config for full documentation.
134
+ */
135
+
136
+ import { defineConfig } from 'mdcontext'
137
+
138
+ export default defineConfig({
139
+ // Index settings - control how markdown files are discovered and parsed
140
+ index: {
141
+ // Maximum directory depth to traverse (default: 10)
142
+ maxDepth: 10,
143
+
144
+ // Patterns to exclude from indexing (default: common build/dep dirs)
145
+ excludePatterns: ['node_modules', '.git', 'dist', 'build'],
146
+
147
+ // File extensions to index (default: markdown files)
148
+ fileExtensions: ['.md', '.mdx'],
149
+
150
+ // Whether to follow symbolic links (default: false)
151
+ followSymlinks: false,
152
+
153
+ // Directory for index storage (default: '.mdcontext')
154
+ indexDir: '.mdcontext',
155
+ },
156
+
157
+ // Search settings - configure search behavior and defaults
158
+ search: {
159
+ // Default number of results to return (default: 10)
160
+ defaultLimit: 10,
161
+
162
+ // Maximum results allowed (default: 100)
163
+ maxLimit: 100,
164
+
165
+ // Minimum similarity score for semantic search (default: 0.5)
166
+ minSimilarity: 0.5,
167
+
168
+ // Include content snippets in results (default: true)
169
+ includeSnippets: true,
170
+
171
+ // Maximum snippet length in characters (default: 200)
172
+ snippetLength: 200,
173
+ },
174
+ ...
175
+ })
176
+ ```
177
+
178
+ **Result:** ⚠️ PARTIAL PASS
179
+ **Issues Found:**
180
+ - ✅ File created successfully
181
+ - ✅ Excellent documentation
182
+ - ✅ TypeScript syntax correct
183
+ - ❌ **CRITICAL: File fails to load at runtime** (see test #7)
184
+ - ⚠️ Missing `summarization` section (known issue)
185
+
186
+ ---
187
+
188
+ ### 3. Config Init - Force Overwrite ✅ PASS
189
+
190
+ **Setup:**
191
+ ```bash
192
+ # Create initial config
193
+ npx . config init --format json
194
+ ```
195
+
196
+ **Command:**
197
+ ```bash
198
+ npx . config init --format json --force
199
+ ```
200
+
201
+ **Expected:**
202
+ - Overwrites existing file without error
203
+ - Shows success message
204
+
205
+ **Actual Output:**
206
+ ```
207
+ Created mdcontext.config.json
208
+
209
+ Edit the file to customize mdcontext for your project.
210
+ ```
211
+
212
+ **Result:** ✅ PASS
213
+
214
+ ---
215
+
216
+ ### 4. Config Init - Prevent Overwrite ✅ PASS
217
+
218
+ **Setup:**
219
+ ```bash
220
+ # Create initial config
221
+ npx . config init --format json
222
+ ```
223
+
224
+ **Command:**
225
+ ```bash
226
+ npx . config init --format json
227
+ ```
228
+
229
+ **Expected:**
230
+ - Refuses to overwrite
231
+ - Shows helpful error message
232
+ - Suggests using --force
233
+
234
+ **Actual Output:**
235
+ ```
236
+ Config file already exists: /path/to/mdcontext.config.json
237
+
238
+ Use --force to overwrite.
239
+ ```
240
+
241
+ **Result:** ✅ PASS
242
+
243
+ ---
244
+
245
+ ### 5. Config Show - No Config File ✅ PASS
246
+
247
+ **Setup:**
248
+ ```bash
249
+ # Ensure no config file exists
250
+ rm -f mdcontext.config.* .mdcontextrc*
251
+ ```
252
+
253
+ **Command:**
254
+ ```bash
255
+ npx . config show
256
+ ```
257
+
258
+ **Expected:**
259
+ - Clear message that no config found
260
+ - Lists all searched filenames
261
+ - Helpful suggestion
262
+
263
+ **Actual Output:**
264
+ ```
265
+ No config file found.
266
+
267
+ Searched for:
268
+ - mdcontext.config.ts
269
+ - mdcontext.config.js
270
+ - mdcontext.config.mjs
271
+ - mdcontext.config.json
272
+ - .mdcontextrc
273
+ - .mdcontextrc.json
274
+
275
+ Run 'mdcontext config init' to create one.
276
+ ```
277
+
278
+ **Result:** ✅ PASS
279
+
280
+ ---
281
+
282
+ ### 6. Config Show - With Config File ✅ PASS
283
+
284
+ **Setup:**
285
+ ```bash
286
+ npx . config init --format json
287
+ ```
288
+
289
+ **Command:**
290
+ ```bash
291
+ npx . config show
292
+ ```
293
+
294
+ **Expected:**
295
+ - Shows absolute path to config file
296
+ - Clean, simple output
297
+
298
+ **Actual Output:**
299
+ ```
300
+ Config file: /Users/alphab/Dev/LLM/DEV/mdcontext/worktrees/nancy-ALP-139/mdcontext.config.json
301
+ ```
302
+
303
+ **Result:** ✅ PASS
304
+
305
+ ---
306
+
307
+ ### 7. Config Check - No Config File ✅ PASS
308
+
309
+ **Setup:**
310
+ ```bash
311
+ rm -f mdcontext.config.* .mdcontextrc*
312
+ ```
313
+
314
+ **Command:**
315
+ ```bash
316
+ npx . config check
317
+ ```
318
+
319
+ **Expected:**
320
+ - Shows "using defaults"
321
+ - Displays all config sections with values
322
+ - All sources show "(default)"
323
+
324
+ **Actual Output:**
325
+ ```
326
+ Configuration validated successfully!
327
+
328
+ Source: No config file found (using defaults)
329
+
330
+ Effective configuration:
331
+ index:
332
+ maxDepth: 10 (default)
333
+ excludePatterns: ["node_modules",".git","dist","build"] (default)
334
+ fileExtensions: [".md",".mdx"] (default)
335
+ followSymlinks: false (default)
336
+ indexDir: .mdcontext (default)
337
+ search:
338
+ defaultLimit: 10 (default)
339
+ maxLimit: 100 (default)
340
+ minSimilarity: 0.5 (default)
341
+ includeSnippets: true (default)
342
+ snippetLength: 200 (default)
343
+ autoIndexThreshold: 10 (default)
344
+ embeddings:
345
+ provider: openai (default)
346
+ model: text-embedding-3-small (default)
347
+ dimensions: 512 (default)
348
+ batchSize: 100 (default)
349
+ maxRetries: 3 (default)
350
+ retryDelayMs: 1000 (default)
351
+ timeoutMs: 30000 (default)
352
+ apiKey: (not set) (default)
353
+ output:
354
+ format: text (default)
355
+ color: true (default)
356
+ prettyJson: true (default)
357
+ verbose: false (default)
358
+ debug: false (default)
359
+ paths:
360
+ root: (not set) (default)
361
+ configFile: (not set) (default)
362
+ cacheDir: .mdcontext/cache (default)
363
+ ```
364
+
365
+ **Result:** ✅ PASS
366
+ **Issues Found:**
367
+ - ⚠️ Missing `summarization` section (known issue)
368
+
369
+ ---
370
+
371
+ ### 8. Config Check - With JSON Config ✅ PASS
372
+
373
+ **Setup:**
374
+ ```bash
375
+ npx . config init --format json
376
+ ```
377
+
378
+ **Command:**
379
+ ```bash
380
+ npx . config check
381
+ ```
382
+
383
+ **Expected:**
384
+ - Shows config file path
385
+ - Values show "(from config file)"
386
+ - Validation successful
387
+
388
+ **Actual Output:**
389
+ ```
390
+ Configuration validated successfully!
391
+
392
+ Source: /Users/alphab/Dev/LLM/DEV/mdcontext/worktrees/nancy-ALP-139/mdcontext.config.json
393
+
394
+ Effective configuration:
395
+ index:
396
+ maxDepth: 10 (from config file)
397
+ excludePatterns: ["node_modules",".git","dist","build"] (from config file)
398
+ fileExtensions: [".md",".mdx"] (from config file)
399
+ followSymlinks: false (from config file)
400
+ indexDir: .mdcontext (from config file)
401
+ search:
402
+ defaultLimit: 10 (from config file)
403
+ maxLimit: 100 (from config file)
404
+ minSimilarity: 0.5 (from config file)
405
+ includeSnippets: true (from config file)
406
+ snippetLength: 200 (from config file)
407
+ autoIndexThreshold: 10 (default)
408
+ embeddings:
409
+ provider: openai (from config file)
410
+ model: text-embedding-3-small (from config file)
411
+ dimensions: 512 (default)
412
+ batchSize: 100 (from config file)
413
+ maxRetries: 3 (from config file)
414
+ retryDelayMs: 1000 (from config file)
415
+ timeoutMs: 30000 (from config file)
416
+ apiKey: (not set) (default)
417
+ output:
418
+ format: text (from config file)
419
+ color: true (from config file)
420
+ prettyJson: true (from config file)
421
+ verbose: false (from config file)
422
+ debug: false (from config file)
423
+ paths:
424
+ root: (not set) (default)
425
+ configFile: (not set) (default)
426
+ cacheDir: .mdcontext/cache (default)
427
+ ```
428
+
429
+ **Result:** ✅ PASS
430
+ **Issues Found:**
431
+ - ⚠️ Missing `summarization` section (known issue)
432
+ - ⚠️ Some values show "(default)" even though file defines them (dimensions, autoIndexThreshold)
433
+
434
+ ---
435
+
436
+ ### 9. Config Check - With TypeScript Config ❌ FAIL
437
+
438
+ **Setup:**
439
+ ```bash
440
+ npx . config init # Creates .ts file
441
+ ```
442
+
443
+ **Command:**
444
+ ```bash
445
+ npx . config check --json --pretty
446
+ ```
447
+
448
+ **Expected:**
449
+ - Load TypeScript config
450
+ - Show values from file
451
+ - Validation successful
452
+
453
+ **Actual Output:**
454
+ ```json
455
+ {
456
+ "valid": false,
457
+ "sourceFile": null,
458
+ "config": {
459
+ "index": {
460
+ "maxDepth": {
461
+ "value": 10,
462
+ "source": "default"
463
+ },
464
+ ...
465
+ },
466
+ ...
467
+ },
468
+ "errors": [
469
+ "Failed to load config from /path/mdcontext.config.ts: Unknown file extension \".ts\""
470
+ ]
471
+ }
472
+ ```
473
+
474
+ **Result:** ❌ FAIL
475
+
476
+ **Root Cause:**
477
+ - Node.js cannot import `.ts` files without a loader
478
+ - `file-provider.ts` uses dynamic import which fails on .ts files
479
+ - TypeScript configs are documented as recommended but don't work
480
+
481
+ **Impact:** CRITICAL - Recommended format doesn't work
482
+
483
+ ---
484
+
485
+ ### 10. Config Check - Environment Variable Override ✅ PASS
486
+
487
+ **Setup:**
488
+ ```bash
489
+ npx . config init --format json
490
+ # Config file sets search.defaultLimit = 10
491
+ ```
492
+
493
+ **Command:**
494
+ ```bash
495
+ MDCONTEXT_SEARCH_DEFAULTLIMIT=25 npx . config check
496
+ ```
497
+
498
+ **Expected:**
499
+ - Shows environment variable value (25)
500
+ - Source shows "(from environment)"
501
+ - Other values still from file
502
+
503
+ **Actual Output:**
504
+ ```
505
+ Configuration validated successfully!
506
+
507
+ Source: /path/mdcontext.config.json
508
+
509
+ Effective configuration:
510
+ ...
511
+ search:
512
+ defaultLimit: 25 (from environment)
513
+ maxLimit: 100 (from config file)
514
+ minSimilarity: 0.5 (from config file)
515
+ includeSnippets: true (from config file)
516
+ snippetLength: 200 (from config file)
517
+ autoIndexThreshold: 10 (default)
518
+ ...
519
+ ```
520
+
521
+ **Result:** ✅ PASS
522
+
523
+ ---
524
+
525
+ ### 11. Config Check - JSON Output ✅ PASS
526
+
527
+ **Setup:**
528
+ ```bash
529
+ npx . config init --format json
530
+ ```
531
+
532
+ **Command:**
533
+ ```bash
534
+ npx . config check --json --pretty
535
+ ```
536
+
537
+ **Expected:**
538
+ - Valid JSON output
539
+ - Pretty-printed
540
+ - Includes all sections
541
+ - Shows sources
542
+
543
+ **Actual Output:**
544
+ ```json
545
+ {
546
+ "valid": true,
547
+ "sourceFile": "/Users/alphab/Dev/LLM/DEV/mdcontext/worktrees/nancy-ALP-139/mdcontext.config.json",
548
+ "config": {
549
+ "index": {
550
+ "maxDepth": {
551
+ "value": 10,
552
+ "source": "file"
553
+ },
554
+ "excludePatterns": {
555
+ "value": [
556
+ "node_modules",
557
+ ".git",
558
+ "dist",
559
+ "build"
560
+ ],
561
+ "source": "file"
562
+ },
563
+ ...
564
+ },
565
+ "search": { ... },
566
+ "embeddings": { ... },
567
+ "output": { ... },
568
+ "paths": { ... }
569
+ }
570
+ }
571
+ ```
572
+
573
+ **Result:** ✅ PASS
574
+ **Issues Found:**
575
+ - ⚠️ Missing `summarization` section (known issue)
576
+
577
+ ---
578
+
579
+ ### 12. Config Help Text ✅ PASS
580
+
581
+ **Commands:**
582
+ ```bash
583
+ npx . config init --help
584
+ npx . config show --help
585
+ npx . config check --help
586
+ npx . config --help
587
+ ```
588
+
589
+ **Expected:**
590
+ - Clear help text for each command
591
+ - Shows all options
592
+ - Includes descriptions
593
+
594
+ **Actual Results:**
595
+
596
+ **`config init --help`:**
597
+ ```
598
+ USAGE
599
+ $ init [(-f, --format ts | json)] [--force] [--json] [--pretty]
600
+
601
+ DESCRIPTION
602
+ Create a starter config file
603
+
604
+ OPTIONS
605
+ (-f, --format ts | json)
606
+ Config file format
607
+ This setting is optional.
608
+
609
+ --force
610
+ Overwrite existing config file
611
+ This setting is optional.
612
+
613
+ --json
614
+ Output as JSON
615
+ This setting is optional.
616
+
617
+ --pretty
618
+ Pretty-print JSON output
619
+ This setting is optional.
620
+ ```
621
+
622
+ **`config show --help`:**
623
+ ```
624
+ USAGE
625
+ $ show [--json] [--pretty]
626
+
627
+ DESCRIPTION
628
+ Show config file location
629
+
630
+ OPTIONS
631
+ --json
632
+ Output as JSON
633
+ This setting is optional.
634
+
635
+ --pretty
636
+ Pretty-print JSON output
637
+ This setting is optional.
638
+ ```
639
+
640
+ **`config check --help`:**
641
+ ```
642
+ USAGE
643
+ $ check [--json] [--pretty]
644
+
645
+ DESCRIPTION
646
+ Validate and display effective configuration
647
+
648
+ OPTIONS
649
+ --json
650
+ Output as JSON
651
+ This setting is optional.
652
+
653
+ --pretty
654
+ Pretty-print JSON output
655
+ This setting is optional.
656
+ ```
657
+
658
+ **`config --help`:**
659
+ ```
660
+ USAGE
661
+ $ config
662
+
663
+ DESCRIPTION
664
+ Configuration management
665
+
666
+ COMMANDS
667
+ - init [(-f, --format ts | json)] [--force] [--json] [--pretty] Create a starter config file
668
+ - show [--json] [--pretty] Show config file location
669
+ - check [--json] [--pretty] Validate and display effective configuration
670
+ ```
671
+
672
+ **Result:** ✅ PASS
673
+
674
+ ---
675
+
676
+ ## Issues Found
677
+
678
+ ### Critical Issues
679
+
680
+ 1. **TypeScript Config Loading Fails** (Test #9)
681
+ - Severity: CRITICAL
682
+ - Impact: Recommended config format doesn't work
683
+ - Files: `src/config/file-provider.ts`
684
+ - Error: "Unknown file extension \".ts\""
685
+
686
+ 2. **Summarization Section Missing** (Tests #1, #2, #7, #8, #11)
687
+ - Severity: MAJOR
688
+ - Impact: Hidden feature, users can't configure it
689
+ - Files: `src/cli/commands/config-cmd.ts`
690
+ - Missing from: generated configs, config check output
691
+
692
+ ### Medium Issues
693
+
694
+ 3. **Schema URL Doesn't Exist** (Test #1)
695
+ - Severity: MEDIUM
696
+ - Impact: JSON schema validation not available
697
+ - URL: `https://mdcontext.dev/schema.json`
698
+ - Status: 404 (not yet published)
699
+
700
+ 4. **Some Values Show Wrong Source** (Test #8)
701
+ - Severity: LOW
702
+ - Impact: Confusing source annotations
703
+ - Example: `dimensions` and `autoIndexThreshold` show "(default)" even when in file
704
+ - Likely cause: These values aren't in generated JSON (missing from template)
705
+
706
+ ---
707
+
708
+ ## Test Environment
709
+
710
+ **System:**
711
+ - OS: macOS (Darwin 24.5.0)
712
+ - Node.js: 18+
713
+ - Working Directory: `/Users/alphab/Dev/LLM/DEV/mdcontext/worktrees/nancy-ALP-139`
714
+
715
+ **Command Used:**
716
+ ```bash
717
+ npx .
718
+ ```
719
+
720
+ **Package Version:**
721
+ ```
722
+ mdcontext 0.1.0
723
+ ```
724
+
725
+ ---
726
+
727
+ ## Recommendations
728
+
729
+ Based on test results:
730
+
731
+ 1. **Fix TypeScript Loading** (CRITICAL)
732
+ - Either bundle tsx/ts-node or document limitation
733
+ - Change default format to `.js` if not fixable
734
+ - Update all docs to reflect actual working formats
735
+
736
+ 2. **Add Summarization Section** (MAJOR)
737
+ - Update config generation templates
738
+ - Add to config check output
739
+ - Ensure consistency across all outputs
740
+
741
+ 3. **Fix Source Annotations** (MINOR)
742
+ - Ensure all config file values show "(from config file)"
743
+ - Check why some values default to "(default)"
744
+ - May need to update generated templates
745
+
746
+ 4. **Create JSON Schema** (NICE-TO-HAVE)
747
+ - Publish schema to documented URL
748
+ - Enable IDE validation
749
+ - Add to generated JSON files
750
+
751
+ ---
752
+
753
+ ## Test Artifacts
754
+
755
+ **Created Files:**
756
+ - `mdcontext.config.json` (cleaned up after tests)
757
+ - `mdcontext.config.ts` (cleaned up after tests)
758
+
759
+ **Test Logs:**
760
+ All command outputs captured in this document.
761
+
762
+ ---
763
+
764
+ ## Next Steps
765
+
766
+ 1. Review test results with development team
767
+ 2. Prioritize fixes (TypeScript loading, summarization)
768
+ 3. Create issues for each problem found
769
+ 4. Re-run tests after fixes
770
+ 5. Add automated tests to prevent regressions
771
+
772
+ ---
773
+
774
+ **Test Completed:** 2026-01-24
775
+ **Tester:** Claude Sonnet 4.5
776
+ **Status:** 10/12 tests passing, 2 critical issues found