mdcontext 0.1.0 → 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.
- package/.changeset/config.json +9 -9
- package/.claude/settings.local.json +25 -0
- package/.github/workflows/claude-code-review.yml +44 -0
- package/.github/workflows/claude.yml +85 -0
- package/CONTRIBUTING.md +186 -0
- package/NOTES/NOTES +44 -0
- package/README.md +206 -3
- package/biome.json +1 -1
- package/dist/chunk-23UPXDNL.js +3044 -0
- package/dist/chunk-2W7MO2DL.js +1366 -0
- package/dist/chunk-3NUAZGMA.js +1689 -0
- package/dist/chunk-7TOWB2XB.js +366 -0
- package/dist/chunk-7XOTOADQ.js +3065 -0
- package/dist/chunk-AH2PDM2K.js +3042 -0
- package/dist/chunk-BNXWSZ63.js +3742 -0
- package/dist/chunk-BTL5DJVU.js +3222 -0
- package/dist/chunk-HDHYG7E4.js +104 -0
- package/dist/chunk-HLR4KZBP.js +3234 -0
- package/dist/chunk-IP3FRFEB.js +1045 -0
- package/dist/chunk-KHU56VDO.js +3042 -0
- package/dist/chunk-KRYIFLQR.js +85 -89
- package/dist/chunk-LBSDNLEM.js +287 -0
- package/dist/chunk-MNTQ7HCP.js +2643 -0
- package/dist/chunk-MUJELQQ6.js +1387 -0
- package/dist/chunk-MXJGMSLV.js +2199 -0
- package/dist/chunk-N6QJGC3Z.js +2636 -0
- package/dist/chunk-OBELGBPM.js +1713 -0
- package/dist/chunk-OT7R5XTA.js +3192 -0
- package/dist/chunk-P7X4RA2T.js +106 -0
- package/dist/chunk-PIDUQNC2.js +3185 -0
- package/dist/chunk-POGCDIH4.js +3187 -0
- package/dist/chunk-PSIEOQGZ.js +3043 -0
- package/dist/chunk-PVRT3IHA.js +3238 -0
- package/dist/chunk-QNN4TT23.js +1430 -0
- package/dist/chunk-RE3R45RJ.js +3042 -0
- package/dist/chunk-S7E6TFX6.js +718 -657
- package/dist/chunk-SG6GLU4U.js +1378 -0
- package/dist/chunk-SJCDV2ST.js +274 -0
- package/dist/chunk-SYE5XLF3.js +104 -0
- package/dist/chunk-T5VLYBZD.js +103 -0
- package/dist/chunk-TOQB7VWU.js +3238 -0
- package/dist/chunk-VFNMZ4ZQ.js +3228 -0
- package/dist/chunk-VVTGZNBT.js +1533 -1423
- package/dist/chunk-W7Q4RFEV.js +104 -0
- package/dist/chunk-XTYYVRLO.js +3190 -0
- package/dist/chunk-Y6MDYVJD.js +3063 -0
- package/dist/cli/main.js +4072 -629
- package/dist/index.d.ts +420 -33
- package/dist/index.js +8 -15
- package/dist/mcp/server.js +103 -7
- package/dist/schema-BAWSG7KY.js +22 -0
- package/dist/schema-E3QUPL26.js +20 -0
- package/dist/schema-EHL7WUT6.js +20 -0
- package/docs/019-USAGE.md +44 -5
- package/docs/020-current-implementation.md +8 -8
- package/docs/021-DOGFOODING-FINDINGS.md +1 -1
- package/docs/CONFIG.md +1123 -0
- package/docs/ERRORS.md +383 -0
- package/docs/summarization.md +320 -0
- package/justfile +40 -0
- package/package.json +39 -33
- package/research/INDEX.md +315 -0
- package/research/code-review/README.md +90 -0
- package/research/code-review/cli-error-handling-review.md +979 -0
- package/research/code-review/code-review-validation-report.md +464 -0
- package/research/code-review/main-ts-review.md +1128 -0
- package/research/config-docs/SUMMARY.md +357 -0
- package/research/config-docs/TEST-RESULTS.md +776 -0
- package/research/config-docs/TODO.md +542 -0
- package/research/config-docs/analysis.md +744 -0
- package/research/config-docs/fix-validation.md +502 -0
- package/research/config-docs/help-audit.md +264 -0
- package/research/config-docs/help-system-analysis.md +890 -0
- package/research/frontmatter/COMMENTS-ARE-SKIPPED.md +149 -0
- package/research/frontmatter/LLM-CODE-NAVIGATION.md +276 -0
- package/research/issue-review.md +603 -0
- package/research/llm-summarization/agent-cli-tools-2026.md +1082 -0
- package/research/llm-summarization/alternative-providers-2026.md +1428 -0
- package/research/llm-summarization/anthropic-2026.md +367 -0
- package/research/llm-summarization/claude-cli-integration.md +1706 -0
- package/research/llm-summarization/cli-integration-patterns.md +3155 -0
- package/research/llm-summarization/openai-2026.md +473 -0
- package/research/llm-summarization/openai-compatible-providers-2026.md +1022 -0
- package/research/llm-summarization/opencode-cli-integration.md +1552 -0
- package/research/llm-summarization/prompt-engineering-2026.md +1426 -0
- package/research/llm-summarization/prototype-results.md +56 -0
- package/research/llm-summarization/provider-switching-patterns-2026.md +2153 -0
- package/research/llm-summarization/typescript-llm-libraries-2026.md +2436 -0
- package/research/mdcontext-pudding/00-EXECUTIVE-SUMMARY.md +282 -0
- package/research/mdcontext-pudding/01-index-embed.md +956 -0
- package/research/mdcontext-pudding/02-search-COMMANDS.md +142 -0
- package/research/mdcontext-pudding/02-search-SUMMARY.md +146 -0
- package/research/mdcontext-pudding/02-search.md +970 -0
- package/research/mdcontext-pudding/03-context.md +779 -0
- package/research/mdcontext-pudding/04-navigation-and-analytics.md +803 -0
- package/research/mdcontext-pudding/04-tree.md +704 -0
- package/research/mdcontext-pudding/05-config.md +1038 -0
- package/research/mdcontext-pudding/06-links-summary.txt +87 -0
- package/research/mdcontext-pudding/06-links.md +679 -0
- package/research/mdcontext-pudding/07-stats.md +693 -0
- package/research/mdcontext-pudding/BUG-FIX-PLAN.md +388 -0
- package/research/mdcontext-pudding/P0-BUG-VALIDATION.md +167 -0
- package/research/mdcontext-pudding/README.md +168 -0
- package/research/mdcontext-pudding/TESTING-SUMMARY.md +128 -0
- package/research/research-quality-review.md +834 -0
- package/research/semantic-search/embedding-text-analysis.md +156 -0
- package/research/semantic-search/multi-word-failure-reproduction.md +171 -0
- package/research/semantic-search/query-processing-analysis.md +207 -0
- package/research/semantic-search/root-cause-and-solution.md +114 -0
- package/research/semantic-search/threshold-validation-report.md +69 -0
- package/research/semantic-search/vector-search-analysis.md +63 -0
- package/research/test-path-issues.md +276 -0
- package/review/ALP-76/1-error-type-design.md +962 -0
- package/review/ALP-76/2-error-handling-patterns.md +906 -0
- package/review/ALP-76/3-error-presentation.md +624 -0
- package/review/ALP-76/4-test-coverage.md +625 -0
- package/review/ALP-76/5-migration-completeness.md +440 -0
- package/review/ALP-76/6-effect-best-practices.md +755 -0
- package/scripts/apply-branch-protection.sh +47 -0
- package/scripts/branch-protection-templates.json +79 -0
- package/scripts/prototype-summarization.ts +346 -0
- package/scripts/rebuild-hnswlib.js +32 -37
- package/scripts/setup-branch-protection.sh +64 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/active-provider.json +7 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/bm25.json +541 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/bm25.meta.json +5 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/config.json +8 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/embeddings/openai_text-embedding-3-small_512/vectors.bin +0 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/embeddings/openai_text-embedding-3-small_512/vectors.meta.bin +0 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/indexes/documents.json +60 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/indexes/links.json +13 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/indexes/sections.json +1197 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/configuration-management.md +99 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/distributed-systems.md +92 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/error-handling.md +78 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/failure-automation.md +55 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/job-context.md +69 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/process-orchestration.md +99 -0
- package/src/cli/argv-preprocessor.test.ts +2 -2
- package/src/cli/cli.test.ts +230 -33
- package/src/cli/commands/config-cmd.ts +642 -0
- package/src/cli/commands/context.ts +97 -9
- package/src/cli/commands/duplicates.ts +122 -0
- package/src/cli/commands/embeddings.ts +529 -0
- package/src/cli/commands/index-cmd.ts +210 -30
- package/src/cli/commands/index.ts +3 -0
- package/src/cli/commands/search.ts +894 -64
- package/src/cli/commands/stats.ts +3 -0
- package/src/cli/commands/tree.ts +26 -5
- package/src/cli/config-layer.ts +176 -0
- package/src/cli/error-handler.test.ts +235 -0
- package/src/cli/error-handler.ts +655 -0
- package/src/cli/flag-schemas.ts +66 -0
- package/src/cli/help.ts +209 -7
- package/src/cli/main.ts +348 -58
- package/src/cli/options.ts +10 -0
- package/src/cli/shared-error-handling.ts +199 -0
- package/src/cli/utils.ts +150 -17
- package/src/config/file-provider.test.ts +320 -0
- package/src/config/file-provider.ts +273 -0
- package/src/config/index.ts +72 -0
- package/src/config/integration.test.ts +667 -0
- package/src/config/precedence.test.ts +277 -0
- package/src/config/precedence.ts +451 -0
- package/src/config/schema.test.ts +414 -0
- package/src/config/schema.ts +603 -0
- package/src/config/service.test.ts +320 -0
- package/src/config/service.ts +243 -0
- package/src/config/testing.test.ts +264 -0
- package/src/config/testing.ts +110 -0
- package/src/core/types.ts +6 -33
- package/src/duplicates/detector.test.ts +183 -0
- package/src/duplicates/detector.ts +414 -0
- package/src/duplicates/index.ts +18 -0
- package/src/embeddings/embedding-namespace.test.ts +300 -0
- package/src/embeddings/embedding-namespace.ts +947 -0
- package/src/embeddings/heading-boost.test.ts +222 -0
- package/src/embeddings/hnsw-build-options.test.ts +198 -0
- package/src/embeddings/hyde.test.ts +272 -0
- package/src/embeddings/hyde.ts +264 -0
- package/src/embeddings/index.ts +2 -0
- package/src/embeddings/openai-provider.ts +332 -83
- package/src/embeddings/pricing.json +22 -0
- package/src/embeddings/provider-constants.ts +204 -0
- package/src/embeddings/provider-errors.test.ts +967 -0
- package/src/embeddings/provider-errors.ts +565 -0
- package/src/embeddings/provider-factory.test.ts +240 -0
- package/src/embeddings/provider-factory.ts +225 -0
- package/src/embeddings/provider-integration.test.ts +788 -0
- package/src/embeddings/query-preprocessing.test.ts +187 -0
- package/src/embeddings/semantic-search-threshold.test.ts +508 -0
- package/src/embeddings/semantic-search.ts +780 -93
- package/src/embeddings/types.ts +293 -16
- package/src/embeddings/vector-store.ts +486 -77
- package/src/embeddings/voyage-provider.ts +313 -0
- package/src/errors/errors.test.ts +845 -0
- package/src/errors/index.ts +533 -0
- package/src/index/ignore-patterns.test.ts +354 -0
- package/src/index/ignore-patterns.ts +305 -0
- package/src/index/indexer.ts +286 -48
- package/src/index/storage.ts +94 -30
- package/src/index/types.ts +40 -2
- package/src/index/watcher.ts +67 -9
- package/src/index.ts +22 -0
- package/src/integration/search-keyword.test.ts +678 -0
- package/src/mcp/server.ts +135 -6
- package/src/parser/parser.ts +18 -19
- package/src/parser/section-filter.test.ts +277 -0
- package/src/parser/section-filter.ts +125 -3
- package/src/search/__tests__/hybrid-search.test.ts +650 -0
- package/src/search/bm25-store.ts +366 -0
- package/src/search/cross-encoder.test.ts +253 -0
- package/src/search/cross-encoder.ts +406 -0
- package/src/search/fuzzy-search.test.ts +419 -0
- package/src/search/fuzzy-search.ts +273 -0
- package/src/search/hybrid-search.ts +448 -0
- package/src/search/path-matcher.test.ts +276 -0
- package/src/search/path-matcher.ts +33 -0
- package/src/search/searcher.test.ts +99 -1
- package/src/search/searcher.ts +189 -67
- package/src/search/wink-bm25.d.ts +30 -0
- package/src/summarization/cli-providers/claude.ts +202 -0
- package/src/summarization/cli-providers/detection.test.ts +273 -0
- package/src/summarization/cli-providers/detection.ts +118 -0
- package/src/summarization/cli-providers/index.ts +8 -0
- package/src/summarization/cost.test.ts +139 -0
- package/src/summarization/cost.ts +102 -0
- package/src/summarization/error-handler.test.ts +127 -0
- package/src/summarization/error-handler.ts +111 -0
- package/src/summarization/index.ts +102 -0
- package/src/summarization/pipeline.test.ts +498 -0
- package/src/summarization/pipeline.ts +231 -0
- package/src/summarization/prompts.test.ts +269 -0
- package/src/summarization/prompts.ts +133 -0
- package/src/summarization/provider-factory.test.ts +396 -0
- package/src/summarization/provider-factory.ts +178 -0
- package/src/summarization/types.ts +184 -0
- package/src/summarize/summarizer.ts +104 -35
- package/src/types/huggingface-transformers.d.ts +66 -0
- package/tests/fixtures/cli/.mdcontext/active-provider.json +7 -0
- package/tests/fixtures/cli/.mdcontext/embeddings/openai_text-embedding-3-small_512/vectors.bin +0 -0
- package/tests/fixtures/cli/.mdcontext/embeddings/openai_text-embedding-3-small_512/vectors.meta.bin +0 -0
- package/tests/fixtures/cli/.mdcontext/indexes/documents.json +4 -4
- package/tests/fixtures/cli/.mdcontext/indexes/sections.json +14 -0
- package/tests/integration/embed-index.test.ts +712 -0
- package/tests/integration/search-context.test.ts +469 -0
- package/tests/integration/search-semantic.test.ts +522 -0
- package/vitest.config.ts +1 -6
- package/AGENTS.md +0 -46
- package/tests/fixtures/cli/.mdcontext/vectors.bin +0 -0
- package/tests/fixtures/cli/.mdcontext/vectors.meta.json +0 -1264
|
@@ -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
|