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,542 @@
1
+ # Configuration Fixes TODO
2
+
3
+ ---
4
+ **RESEARCH METADATA**
5
+
6
+ - Analysis Date: 2026-01-24
7
+ - Git Commit: ~pre-07c9e72 (before fixes)
8
+ - Status: ⚠️ Outdated (5/6 P0-P1 tasks complete)
9
+ - Last Validated: 2026-01-24
10
+ - Superseded By: [fix-validation.md](./fix-validation.md)
11
+ - Worktree: nancy-ALP-139
12
+ - Index: [/research/INDEX.md](../INDEX.md)
13
+
14
+ **COMPLETION STATUS**
15
+
16
+ Most tasks in this document have been COMPLETED:
17
+ - ✅ P0 Task #1: Fix TypeScript Loading - COMPLETE
18
+ - ✅ P0 Task #2: Expose Summarization - COMPLETE
19
+ - ✅ P0 Task #3: Update README - COMPLETE
20
+ - ✅ P1 Task #4: Add Config to Main Help - COMPLETE
21
+ - ❌ P1 Task #5: Add Troubleshooting to CONFIG.md - **ONLY REMAINING TASK**
22
+ - ✅ P1 Task #6: Document TypeScript Limitation - COMPLETE
23
+
24
+ See fix-validation.md for verification details.
25
+ ---
26
+
27
+ Based on analysis completed 2026-01-24
28
+
29
+ ---
30
+
31
+ ## Critical Fixes (Required Before Release)
32
+
33
+ ### 1. Fix TypeScript Config Loading ✅ COMPLETE
34
+ **Priority:** P0
35
+ **Effort:** 4-8 hours
36
+ **Impact:** High - affects recommended workflow
37
+ **Status:** ✅ COMPLETED in commit db80c90c
38
+
39
+ **Implemented Option:** Option B (document limitation, use .js with JSDoc)
40
+
41
+ **Files changed:**
42
+ - ✅ `src/cli/commands/config-cmd.ts` - Changed default format to 'js' (line 202)
43
+ - ✅ `docs/CONFIG.md` - Updated TypeScript section, added limitation note (lines 91, 131)
44
+ - ✅ `README.md` - Changed examples to use .js (lines 189-198)
45
+ - ✅ `src/config/file-provider.ts` - Error message adequate for .ts files
46
+
47
+ **Tests added:**
48
+ - ✅ .js config with JSDoc types works
49
+ - ✅ Error message for .ts files shown
50
+ - ✅ Integration tests updated
51
+
52
+ ---
53
+
54
+ ### 2. Expose Summarization Configuration ✅ COMPLETE
55
+ **Priority:** P0
56
+ **Effort:** 2-4 hours
57
+ **Impact:** High - hidden feature
58
+ **Status:** ✅ COMPLETED (exact commit unknown, before db80c90c)
59
+
60
+ **Implementation:**
61
+
62
+ #### Step 1: Add to Generated Config Files ✅ COMPLETE
63
+ - ✅ Edited `src/cli/commands/config-cmd.ts`
64
+ - ✅ Updated `generateConfigContent()` function
65
+ - ✅ Added summarization section to JSON format (lines 54-61)
66
+ - ✅ Added summarization section to JavaScript format (lines 149-168)
67
+
68
+ **JSON addition (after embeddings section):**
69
+ ```json
70
+ "summarization": {
71
+ "briefTokenBudget": 100,
72
+ "summaryTokenBudget": 500,
73
+ "compressionRatio": 0.3,
74
+ "minSectionTokens": 20,
75
+ "maxTopics": 10,
76
+ "minPartialBudget": 50
77
+ }
78
+ ```
79
+
80
+ **TypeScript addition (after embeddings section):**
81
+ ```typescript
82
+ // Summarization settings - configure context assembly
83
+ summarization: {
84
+ // Token budget for 'brief' compression level (default: 100)
85
+ briefTokenBudget: 100,
86
+
87
+ // Token budget for 'summary' compression level (default: 500)
88
+ summaryTokenBudget: 500,
89
+
90
+ // Target compression ratio for summaries (default: 0.3)
91
+ compressionRatio: 0.3,
92
+
93
+ // Minimum tokens for any section summary (default: 20)
94
+ minSectionTokens: 20,
95
+
96
+ // Maximum topics to extract from a document (default: 10)
97
+ maxTopics: 10,
98
+
99
+ // Minimum remaining budget for partial content (default: 50)
100
+ minPartialBudget: 50,
101
+ },
102
+ ```
103
+
104
+ #### Step 2: Add to Config Check Output ✅ COMPLETE
105
+ - ✅ Edited `src/cli/commands/config-cmd.ts`
106
+ - ✅ Updated `checkCommand` function
107
+ - ✅ Added summarization to `configWithSources` object (lines 562-567)
108
+
109
+ **Addition:**
110
+ ```typescript
111
+ summarization: buildSectionWithSources(
112
+ 'summarization',
113
+ defaultConfig.summarization,
114
+ fileConfig.summarization,
115
+ envConfig,
116
+ ),
117
+ ```
118
+
119
+ #### Step 3: Update Types ✅ COMPLETE
120
+ - ✅ Verified `ConfigWithSources` interface includes summarization
121
+ - ✅ Added summarization to interface (line 364)
122
+
123
+ **Addition:**
124
+ ```typescript
125
+ interface ConfigWithSources {
126
+ index: ConfigSectionWithSources<typeof defaultConfig.index>
127
+ search: ConfigSectionWithSources<typeof defaultConfig.search>
128
+ embeddings: ConfigSectionWithSources<typeof defaultConfig.embeddings>
129
+ summarization: ConfigSectionWithSources<typeof defaultConfig.summarization> // ADD THIS
130
+ output: ConfigSectionWithSources<typeof defaultConfig.output>
131
+ paths: ConfigSectionWithSources<typeof defaultConfig.paths>
132
+ }
133
+ ```
134
+
135
+ #### Step 4: Update JSON Converter ✅ COMPLETE
136
+ - ✅ Updated `configToJsonFormat()` function
137
+ - ✅ Added summarization section conversion (line 506)
138
+
139
+ **Addition:**
140
+ ```typescript
141
+ return {
142
+ index: convertSection(config.index),
143
+ search: convertSection(config.search),
144
+ embeddings: convertSection(config.embeddings),
145
+ summarization: convertSection(config.summarization), // ADD THIS
146
+ output: convertSection(config.output),
147
+ paths: convertSection(config.paths),
148
+ }
149
+ ```
150
+
151
+ **Tests added:**
152
+ - ✅ Test summarization in generated JSON config
153
+ - ✅ Test summarization in generated JS config
154
+ - ✅ Test summarization in config check text output
155
+ - ✅ Test summarization in config check JSON output
156
+ - ⚠️ Test summarization env var overrides (assumed working)
157
+
158
+ ---
159
+
160
+ ### 3. Update README.md ✅ COMPLETE
161
+ **Priority:** P0
162
+ **Effort:** 30 minutes
163
+ **Impact:** Medium - users can't discover config
164
+ **Status:** ✅ COMPLETED (exact commit unknown, before db80c90c)
165
+
166
+ **Changes made:**
167
+
168
+ #### Add to Quick Reference ✅ COMPLETE
169
+ ```markdown
170
+ QUICK REFERENCE
171
+ mdcontext index [path] Index markdown files (add --embed for semantic search)
172
+ mdcontext search <query> [path] Search by meaning or structure
173
+ mdcontext context <files...> Get LLM-ready summary
174
+ mdcontext tree [path|file] Show files or document outline
175
+ mdcontext config init Create config file ← ADD
176
+ mdcontext config check Validate config ← ADD
177
+ mdcontext links <file> Outgoing links
178
+ mdcontext backlinks <file> Incoming links
179
+ mdcontext stats [path] Index statistics
180
+ ```
181
+
182
+ #### Expand Configuration Section ✅ COMPLETE (implemented at lines 205-234)
183
+ ```markdown
184
+ ## Configuration
185
+
186
+ mdcontext supports a layered configuration system for persistent settings:
187
+
188
+ ```bash
189
+ # Create a config file
190
+ mdcontext config init
191
+
192
+ # Check your configuration
193
+ mdcontext config check
194
+
195
+ # Customize settings in mdcontext.config.json
196
+ {
197
+ "index": {
198
+ "excludePatterns": ["node_modules", ".git", "dist", "vendor"]
199
+ },
200
+ "search": {
201
+ "defaultLimit": 20
202
+ }
203
+ }
204
+ ```
205
+
206
+ Configuration precedence: CLI flags > Environment variables > Config file > Defaults
207
+
208
+ **See [docs/CONFIG.md](./docs/CONFIG.md) for complete configuration reference.**
209
+
210
+ ### Index Location
211
+ ```
212
+
213
+ **Files changed:**
214
+ - ✅ `README.md` - Added config to quick reference (line 11) and expanded section (lines 205-234)
215
+
216
+ ---
217
+
218
+ ## Important Improvements (Should Do Soon)
219
+
220
+ ### 4. Add Config to Main Help Output ✅ COMPLETE
221
+ **Priority:** P1
222
+ **Effort:** 1 hour
223
+ **Impact:** Medium - discoverability
224
+ **Status:** ✅ COMPLETED (exact commit unknown, before db80c90c)
225
+
226
+ **Files changed:**
227
+ - ✅ Main help text now includes config commands in COMMANDS section
228
+ - ✅ Config workflow example added to WORKFLOWS section
229
+
230
+ **Example addition:**
231
+ ```
232
+ COMMANDS
233
+ index [path] Index markdown files (default: .)
234
+ search <query> [path] Search by meaning or structure
235
+ context <files>... Get LLM-ready summary
236
+ tree [path] Show files or document outline
237
+ config <command> Configuration management ← ADD
238
+ links <file> Show outgoing links
239
+ backlinks <file> Show incoming links
240
+ stats [path] Index statistics
241
+ ```
242
+
243
+ ---
244
+
245
+ ### 5. Add Troubleshooting to CONFIG.md ⏭️ TODO
246
+ **Priority:** P1
247
+ **Effort:** 1 hour
248
+ **Impact:** Medium - helps users debug issues
249
+ **Status:** ⏭️ NOT IMPLEMENTED - **ONLY REMAINING P0/P1 TASK**
250
+
251
+ **Location:** Add new section to `docs/CONFIG.md` before "Examples" section
252
+
253
+ **Content to add:**
254
+ ```markdown
255
+ ## Troubleshooting
256
+
257
+ ### Config File Not Loading
258
+
259
+ If your config file isn't being used:
260
+
261
+ 1. **Verify the file is found:**
262
+ ```bash
263
+ mdcontext config show
264
+ ```
265
+ This shows which config file mdcontext is using, if any.
266
+
267
+ 2. **Check for errors:**
268
+ ```bash
269
+ mdcontext config check --json
270
+ ```
271
+ The `errors` array will show any loading failures.
272
+
273
+ 3. **Common issues:**
274
+ - **JSON syntax errors:** Validate your JSON with `jq` or an online validator
275
+ - **TypeScript files:** Currently not supported - use `.js` or `.json` instead
276
+ - **Wrong export:** Ensure `.js` files use `export default { ... }`
277
+ - **File location:** Config must be in project root or parent directory
278
+
279
+ ### TypeScript Config Files
280
+
281
+ **Current Limitation:** `.ts` config files are not currently supported due to Node.js module loading restrictions.
282
+
283
+ **Recommended alternatives:**
284
+
285
+ 1. **JavaScript with JSDoc types** (best option):
286
+ ```javascript
287
+ // mdcontext.config.js
288
+ /** @type {import('mdcontext').PartialMdContextConfig} */
289
+ export default {
290
+ index: {
291
+ maxDepth: 10,
292
+ },
293
+ }
294
+ ```
295
+ Provides type checking in VS Code while working at runtime.
296
+
297
+ 2. **JSON format** (simplest):
298
+ ```bash
299
+ mdcontext config init --format json
300
+ ```
301
+
302
+ ### Environment Variables Not Working
303
+
304
+ 1. **Check variable name:** Must be uppercase with `MDCONTEXT_` prefix
305
+ ```bash
306
+ # Correct
307
+ export MDCONTEXT_SEARCH_DEFAULTLIMIT=20
308
+
309
+ # Wrong - will not work
310
+ export mdcontext_search_defaultLimit=20
311
+ ```
312
+
313
+ 2. **Verify with config check:**
314
+ ```bash
315
+ mdcontext config check
316
+ ```
317
+ Look for "(from environment)" annotations.
318
+
319
+ 3. **Array values:** Use comma-separated strings
320
+ ```bash
321
+ export MDCONTEXT_INDEX_EXCLUDEPATTERNS="node_modules,.git,dist"
322
+ ```
323
+
324
+ ### Config Not Taking Effect
325
+
326
+ If you've set config but commands still use defaults:
327
+
328
+ 1. **Check precedence:** CLI flags override everything
329
+ ```bash
330
+ # This ignores config file's defaultLimit setting
331
+ mdcontext search "query" --limit 5
332
+ ```
333
+
334
+ 2. **Verify effective config:**
335
+ ```bash
336
+ mdcontext config check
337
+ ```
338
+ Shows exactly what values are being used and why.
339
+
340
+ 3. **Try explicit config path:**
341
+ ```bash
342
+ mdcontext --config ./mdcontext.config.json index
343
+ ```
344
+ ```
345
+
346
+ **Files to change:**
347
+ - ⏭️ `docs/CONFIG.md` - Add troubleshooting section (ready to use content below)
348
+
349
+ ---
350
+
351
+ ### 6. Document TypeScript Limitation ✅ COMPLETE
352
+ **Priority:** P1
353
+ **Effort:** 30 minutes
354
+ **Impact:** Medium - sets correct expectations
355
+ **Status:** ✅ COMPLETED in commit db80c90c
356
+
357
+ **Files changed:**
358
+ - ✅ `docs/CONFIG.md` - Updated TypeScript section (lines 91, 131) with limitation note and JSDoc recommendation
359
+
360
+ **Changes:**
361
+ Replace "TypeScript Config (Recommended)" section with:
362
+
363
+ ```markdown
364
+ ### TypeScript Config
365
+
366
+ **Note:** TypeScript config files (`.ts`) are currently not supported due to Node.js module loading restrictions. Use JavaScript with JSDoc for type safety instead.
367
+
368
+ **Recommended: JavaScript with JSDoc Types**
369
+
370
+ ```javascript
371
+ // mdcontext.config.js
372
+ /**
373
+ * @type {import('mdcontext').PartialMdContextConfig}
374
+ */
375
+ export default {
376
+ index: {
377
+ maxDepth: 10,
378
+ excludePatterns: ['node_modules', '.git', 'dist', 'build'],
379
+ fileExtensions: ['.md', '.mdx'],
380
+ followSymlinks: false,
381
+ indexDir: '.mdcontext',
382
+ },
383
+ search: {
384
+ defaultLimit: 10,
385
+ maxLimit: 100,
386
+ minSimilarity: 0.5,
387
+ includeSnippets: true,
388
+ snippetLength: 200,
389
+ },
390
+ embeddings: {
391
+ provider: 'openai',
392
+ model: 'text-embedding-3-small',
393
+ batchSize: 100,
394
+ maxRetries: 3,
395
+ },
396
+ output: {
397
+ format: 'text',
398
+ color: true,
399
+ verbose: false,
400
+ },
401
+ }
402
+ ```
403
+
404
+ The JSDoc `@type` annotation provides full TypeScript type checking and IDE autocompletion while remaining a valid JavaScript file that Node.js can import.
405
+ ```
406
+
407
+ ---
408
+
409
+ ## Nice-to-Have Enhancements
410
+
411
+ ### 7. Better Config Validation
412
+ **Priority:** P2
413
+ **Effort:** 4-6 hours
414
+
415
+ - [ ] Warn on unknown config keys
416
+ - [ ] Warn on invalid value types
417
+ - [ ] Suggest fixes for common mistakes
418
+ - [ ] Add runtime schema validation
419
+
420
+ ### 8. Additional Config Commands
421
+ **Priority:** P2
422
+ **Effort:** 3-4 hours each
423
+
424
+ - [ ] `config validate <file>` - Validate specific file without using it
425
+ - [ ] `config edit` - Open config in $EDITOR
426
+ - [ ] `config reset` - Delete config and return to defaults
427
+ - [ ] `config path` - Rename `config show` for clarity
428
+
429
+ ### 9. Enhanced Config Init
430
+ **Priority:** P2
431
+ **Effort:** 2-3 hours
432
+
433
+ - [ ] Add `--minimal` flag for bare-bones config
434
+ - [ ] Add `--interactive` for guided setup
435
+ - [ ] Show diff before overwrite with --force
436
+ - [ ] Ask for confirmation before overwrite
437
+
438
+ ### 10. JSON Schema Support
439
+ **Priority:** P2
440
+ **Effort:** 4-6 hours
441
+
442
+ - [ ] Create JSON schema file
443
+ - [ ] Publish to `https://mdcontext.dev/schema.json`
444
+ - [ ] Add version field to schema
445
+ - [ ] Enable IDE validation for JSON configs
446
+
447
+ ### 11. Config Profiles
448
+ **Priority:** P3
449
+ **Effort:** 6-8 hours
450
+
451
+ - [ ] Support `MDCONTEXT_PROFILE` env var
452
+ - [ ] Allow `mdcontext.config.{profile}.json` files
453
+ - [ ] Add `--profile` CLI flag
454
+ - [ ] Enable easy dev/prod/test switching
455
+
456
+ ### 12. Config Extension
457
+ **Priority:** P3
458
+ **Effort:** 8-10 hours
459
+
460
+ - [ ] Support `extends` field for config composition
461
+ - [ ] Allow shared base configs
462
+ - [ ] Enable project-specific overrides
463
+ - [ ] Add config merging logic
464
+
465
+ ---
466
+
467
+ ## Testing Checklist
468
+
469
+ **Status:** ✅ MOST TESTS PASSING
470
+
471
+ ### Config Init ✅ ALL PASSING
472
+ - ✅ `npx . config init` creates .js file (not .ts)
473
+ - ✅ Generated .js file has JSDoc type annotations
474
+ - ✅ Generated JSON file includes all sections (including summarization)
475
+ - ✅ `--force` flag overwrites existing file
476
+ - ✅ `--format json` creates JSON file
477
+ - ✅ JSON format includes all sections
478
+
479
+ ### Config Show ✅ ALL PASSING
480
+ - ✅ Shows "No config file found" when no config
481
+ - ✅ Lists all searched filenames
482
+ - ✅ Shows correct path when config exists
483
+ - ✅ JSON output works (`--json --pretty`)
484
+
485
+ ### Config Check ✅ ALL PASSING
486
+ - ✅ Shows all sections including summarization
487
+ - ✅ Source annotations are correct (default/file/env)
488
+ - ✅ Environment variable overrides work
489
+ - ✅ JSON output includes all sections
490
+ - ✅ Validation errors shown when config fails to load
491
+ - ✅ Works with no config file (shows defaults)
492
+
493
+ ### Documentation ⚠️ MOSTLY PASSING (1 gap)
494
+ - ✅ README quick reference includes config
495
+ - ✅ README config section is clear
496
+ - ⏭️ CONFIG.md troubleshooting section is accurate (NOT YET ADDED)
497
+ - ✅ CONFIG.md TypeScript limitation is documented
498
+ - ✅ Main help output includes config commands
499
+ - ✅ All examples use .js (not .ts)
500
+
501
+ ### Integration ✅ ALL PASSING
502
+ - ✅ Config file is loaded correctly
503
+ - ✅ Environment variables override file config
504
+ - ✅ CLI flags override everything
505
+ - ✅ Config works with all commands (index, search, etc.)
506
+
507
+ ---
508
+
509
+ ## Estimated Total Effort
510
+
511
+ **Critical (P0):** ✅ 8-15 hours COMPLETED
512
+ **Important (P1):** ⚠️ 3-5 hours COMPLETED (1 hour remaining for troubleshooting)
513
+ **Nice-to-Have (P2-P3):** ⏭️ 20-30 hours (deferred)
514
+
515
+ **Original estimate:** P0 + P1 = 12-21 hours (~2-3 days)
516
+ **Actual completed:** ~11-20 hours
517
+ **Remaining:** ~30-60 minutes (troubleshooting section only)
518
+
519
+ ---
520
+
521
+ ## Success Criteria
522
+
523
+ **Status:** ✅ 7/8 COMPLETE
524
+
525
+ Configuration system improvements are complete when:
526
+
527
+ 1. ✅ Users can create working config files following documentation - COMPLETE
528
+ 2. ✅ TypeScript config issue is fixed OR documented with alternative - COMPLETE
529
+ 3. ✅ Summarization config is visible and usable - COMPLETE
530
+ 4. ✅ README makes config system discoverable - COMPLETE
531
+ 5. ✅ Main help includes config commands - COMPLETE
532
+ 6. ⏭️ Troubleshooting guide helps users debug issues - ONLY REMAINING ITEM
533
+ 7. ✅ All tests pass - COMPLETE
534
+ 8. ✅ No config-related errors in example workflows - COMPLETE
535
+
536
+ ---
537
+
538
+ ## References
539
+
540
+ - Full analysis: [analysis.md](./analysis.md)
541
+ - Executive summary: [SUMMARY.md](./SUMMARY.md)
542
+ - Source files: See analysis.md "Files Examined" section