@ngao/search 0.1.0 โ 0.1.2
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/.claude/settings.local.json +10 -0
- package/.env.example +7 -0
- package/.eslintrc.json +20 -0
- package/.github/workflows/build.yml +39 -0
- package/.github/workflows/release.yml +34 -0
- package/.github/workflows/test.yml +35 -0
- package/.mcp-config.json +14 -0
- package/.prettierrc.json +10 -0
- package/LICENSE +17 -0
- package/Makefile +26 -0
- package/README.md +57 -172
- package/config.example.json +8 -0
- package/dist/backend/api/search-engine.d.ts +40 -0
- package/dist/backend/api/search-engine.d.ts.map +1 -0
- package/dist/backend/api/search-engine.js +227 -0
- package/dist/backend/api/search-engine.js.map +1 -0
- package/dist/backend/core/block-impl.d.ts +32 -0
- package/dist/backend/core/block-impl.d.ts.map +1 -0
- package/dist/backend/core/block-impl.js +33 -0
- package/dist/backend/core/block-impl.js.map +1 -0
- package/dist/backend/core/config-loader.d.ts +68 -0
- package/dist/backend/core/config-loader.d.ts.map +1 -0
- package/dist/backend/core/config-loader.js +234 -0
- package/dist/backend/core/config-loader.js.map +1 -0
- package/dist/backend/core/constants.d.ts +39 -0
- package/dist/backend/core/constants.d.ts.map +1 -0
- package/dist/backend/core/constants.js +57 -0
- package/dist/backend/core/constants.js.map +1 -0
- package/dist/backend/core/enums.d.ts +54 -0
- package/dist/backend/core/enums.d.ts.map +1 -0
- package/dist/backend/core/enums.js +61 -0
- package/dist/backend/core/enums.js.map +1 -0
- package/dist/backend/core/errors.d.ts +83 -0
- package/dist/backend/core/errors.d.ts.map +1 -0
- package/dist/backend/core/errors.js +151 -0
- package/dist/backend/core/errors.js.map +1 -0
- package/dist/backend/core/logger.d.ts +68 -0
- package/dist/backend/core/logger.d.ts.map +1 -0
- package/dist/backend/core/logger.js +151 -0
- package/dist/backend/core/logger.js.map +1 -0
- package/dist/backend/core/models.d.ts +332 -0
- package/dist/backend/core/models.d.ts.map +1 -0
- package/dist/backend/core/models.js +6 -0
- package/dist/backend/core/models.js.map +1 -0
- package/dist/backend/core/service-types.d.ts +184 -0
- package/dist/backend/core/service-types.d.ts.map +1 -0
- package/dist/backend/core/service-types.js +7 -0
- package/dist/backend/core/service-types.js.map +1 -0
- package/dist/backend/core/types.d.ts +219 -0
- package/dist/backend/core/types.d.ts.map +1 -0
- package/dist/backend/core/types.js +109 -0
- package/dist/backend/core/types.js.map +1 -0
- package/dist/backend/index.d.ts +5 -0
- package/dist/backend/index.d.ts.map +1 -0
- package/dist/backend/index.js +13 -0
- package/dist/backend/index.js.map +1 -0
- package/dist/backend/indexing/block-extractor.d.ts +22 -0
- package/dist/backend/indexing/block-extractor.d.ts.map +1 -0
- package/dist/backend/indexing/block-extractor.js +52 -0
- package/dist/backend/indexing/block-extractor.js.map +1 -0
- package/dist/backend/indexing/index-builder.d.ts +26 -0
- package/dist/backend/indexing/index-builder.d.ts.map +1 -0
- package/dist/backend/indexing/index-builder.js +71 -0
- package/dist/backend/indexing/index-builder.js.map +1 -0
- package/dist/backend/parsers/base-file-parser.d.ts +134 -0
- package/dist/backend/parsers/base-file-parser.d.ts.map +1 -0
- package/dist/backend/parsers/base-file-parser.js +149 -0
- package/dist/backend/parsers/base-file-parser.js.map +1 -0
- package/dist/backend/parsers/javascript-parser.d.ts +36 -0
- package/dist/backend/parsers/javascript-parser.d.ts.map +1 -0
- package/dist/backend/parsers/javascript-parser.js +194 -0
- package/dist/backend/parsers/javascript-parser.js.map +1 -0
- package/dist/backend/parsers/json-parser.d.ts +15 -0
- package/dist/backend/parsers/json-parser.d.ts.map +1 -0
- package/dist/backend/parsers/json-parser.js +75 -0
- package/dist/backend/parsers/json-parser.js.map +1 -0
- package/dist/backend/parsers/markdown-parser.d.ts +17 -0
- package/dist/backend/parsers/markdown-parser.d.ts.map +1 -0
- package/dist/backend/parsers/markdown-parser.js +94 -0
- package/dist/backend/parsers/markdown-parser.js.map +1 -0
- package/dist/backend/parsers/parser-factory.d.ts +43 -0
- package/dist/backend/parsers/parser-factory.d.ts.map +1 -0
- package/dist/backend/parsers/parser-factory.js +149 -0
- package/dist/backend/parsers/parser-factory.js.map +1 -0
- package/dist/backend/parsers/python-parser.d.ts +21 -0
- package/dist/backend/parsers/python-parser.d.ts.map +1 -0
- package/dist/backend/parsers/python-parser.js +185 -0
- package/dist/backend/parsers/python-parser.js.map +1 -0
- package/dist/backend/parsers/yaml-parser.d.ts +16 -0
- package/dist/backend/parsers/yaml-parser.d.ts.map +1 -0
- package/dist/backend/parsers/yaml-parser.js +81 -0
- package/dist/backend/parsers/yaml-parser.js.map +1 -0
- package/dist/backend/repositories/implementations/lancedb-block-repository.d.ts +125 -0
- package/dist/backend/repositories/implementations/lancedb-block-repository.d.ts.map +1 -0
- package/dist/backend/repositories/implementations/lancedb-block-repository.js +505 -0
- package/dist/backend/repositories/implementations/lancedb-block-repository.js.map +1 -0
- package/dist/backend/repositories/implementations/lancedb-metadata-repository.d.ts +107 -0
- package/dist/backend/repositories/implementations/lancedb-metadata-repository.d.ts.map +1 -0
- package/dist/backend/repositories/implementations/lancedb-metadata-repository.js +275 -0
- package/dist/backend/repositories/implementations/lancedb-metadata-repository.js.map +1 -0
- package/dist/backend/repositories/implementations/memory-cache.d.ts +18 -0
- package/dist/backend/repositories/implementations/memory-cache.d.ts.map +1 -0
- package/dist/backend/repositories/implementations/memory-cache.js +53 -0
- package/dist/backend/repositories/implementations/memory-cache.js.map +1 -0
- package/dist/backend/repositories/repository.interface.d.ts +334 -0
- package/dist/backend/repositories/repository.interface.d.ts.map +1 -0
- package/dist/backend/repositories/repository.interface.js +7 -0
- package/dist/backend/repositories/repository.interface.js.map +1 -0
- package/dist/backend/search/context-extractor.d.ts +29 -0
- package/dist/backend/search/context-extractor.d.ts.map +1 -0
- package/dist/backend/search/context-extractor.js +106 -0
- package/dist/backend/search/context-extractor.js.map +1 -0
- package/dist/backend/search/multi-index-searcher.d.ts +28 -0
- package/dist/backend/search/multi-index-searcher.d.ts.map +1 -0
- package/dist/backend/search/multi-index-searcher.js +81 -0
- package/dist/backend/search/multi-index-searcher.js.map +1 -0
- package/dist/backend/search/query-parser.d.ts +37 -0
- package/dist/backend/search/query-parser.d.ts.map +1 -0
- package/dist/backend/search/query-parser.js +145 -0
- package/dist/backend/search/query-parser.js.map +1 -0
- package/dist/backend/search/ranking-engine.d.ts +31 -0
- package/dist/backend/search/ranking-engine.d.ts.map +1 -0
- package/dist/backend/search/ranking-engine.js +165 -0
- package/dist/backend/search/ranking-engine.js.map +1 -0
- package/dist/backend/search/result-formatter.d.ts +29 -0
- package/dist/backend/search/result-formatter.d.ts.map +1 -0
- package/dist/backend/search/result-formatter.js +70 -0
- package/dist/backend/search/result-formatter.js.map +1 -0
- package/dist/backend/service-types.d.ts +184 -0
- package/dist/backend/service-types.d.ts.map +1 -0
- package/dist/backend/service-types.js +7 -0
- package/dist/backend/service-types.js.map +1 -0
- package/dist/backend/services/embedding-service.d.ts +75 -0
- package/dist/backend/services/embedding-service.d.ts.map +1 -0
- package/dist/backend/services/embedding-service.js +298 -0
- package/dist/backend/services/embedding-service.js.map +1 -0
- package/dist/backend/services/file-watcher.d.ts +17 -0
- package/dist/backend/services/file-watcher.d.ts.map +1 -0
- package/dist/backend/services/file-watcher.js +92 -0
- package/dist/backend/services/file-watcher.js.map +1 -0
- package/dist/backend/services/index-information-service.d.ts +114 -0
- package/dist/backend/services/index-information-service.d.ts.map +1 -0
- package/dist/backend/services/index-information-service.js +104 -0
- package/dist/backend/services/index-information-service.js.map +1 -0
- package/dist/backend/services/ngao-search-service.d.ts +107 -0
- package/dist/backend/services/ngao-search-service.d.ts.map +1 -0
- package/dist/backend/services/ngao-search-service.js +384 -0
- package/dist/backend/services/ngao-search-service.js.map +1 -0
- package/dist/backend/services/quantization-service.d.ts +53 -0
- package/dist/backend/services/quantization-service.d.ts.map +1 -0
- package/dist/backend/services/quantization-service.js +84 -0
- package/dist/backend/services/quantization-service.js.map +1 -0
- package/dist/backend/services/reindex-manager.d.ts +25 -0
- package/dist/backend/services/reindex-manager.d.ts.map +1 -0
- package/dist/backend/services/reindex-manager.js +78 -0
- package/dist/backend/services/reindex-manager.js.map +1 -0
- package/dist/backend/services/session-manager.d.ts +115 -0
- package/dist/backend/services/session-manager.d.ts.map +1 -0
- package/dist/backend/services/session-manager.js +150 -0
- package/dist/backend/services/session-manager.js.map +1 -0
- package/dist/backend/services/vector-search-service.d.ts +81 -0
- package/dist/backend/services/vector-search-service.d.ts.map +1 -0
- package/dist/backend/services/vector-search-service.js +143 -0
- package/dist/backend/services/vector-search-service.js.map +1 -0
- package/dist/backend/utils/file-utils.d.ts +92 -0
- package/dist/backend/utils/file-utils.d.ts.map +1 -0
- package/dist/backend/utils/file-utils.js +247 -0
- package/dist/backend/utils/file-utils.js.map +1 -0
- package/dist/cli/setup.d.ts +4 -0
- package/dist/cli/setup.d.ts.map +1 -0
- package/dist/cli/setup.js +138 -0
- package/dist/cli/setup.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/main.d.ts +14 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +7 -67075
- package/dist/main.js.map +1 -0
- package/dist/mcp/tool-schemas.d.ts +205 -0
- package/dist/mcp/tool-schemas.d.ts.map +1 -0
- package/dist/mcp/tool-schemas.js +391 -0
- package/dist/mcp/tool-schemas.js.map +1 -0
- package/dist/server/logger.d.ts +50 -0
- package/dist/server/logger.d.ts.map +1 -0
- package/dist/server/logger.js +77 -0
- package/dist/server/logger.js.map +1 -0
- package/dist/server/tool-registry.d.ts +64 -0
- package/dist/server/tool-registry.d.ts.map +1 -0
- package/dist/server/tool-registry.js +93 -0
- package/dist/server/tool-registry.js.map +1 -0
- package/dist/server/transports/mcp-transport.d.ts +31 -0
- package/dist/server/transports/mcp-transport.d.ts.map +1 -0
- package/dist/server/transports/mcp-transport.js +331 -0
- package/dist/server/transports/mcp-transport.js.map +1 -0
- package/dist/server/transports/rest-transport.d.ts +36 -0
- package/dist/server/transports/rest-transport.d.ts.map +1 -0
- package/dist/server/transports/rest-transport.js +250 -0
- package/dist/server/transports/rest-transport.js.map +1 -0
- package/docs/API.md +116 -0
- package/docs/ARCHITECTURE.md +101 -0
- package/docs/FILE_WATCHING.md +120 -0
- package/docs/INSTALLATION.md +87 -0
- package/docs/MCP_INTEGRATION.md +108 -0
- package/docs/README.md +288 -0
- package/docs/USAGE.md +123 -0
- package/docs/architecture-design-standards/01_ARCHITECTURE.md +863 -0
- package/docs/architecture-design-standards/02_SEARCH_ENGINE_DESIGN.md +958 -0
- package/docs/architecture-design-standards/03_DATAFLOW.md +1000 -0
- package/docs/architecture-design-standards/04_VISUAL_GUIDE.md +922 -0
- package/docs/architecture-design-standards/05_REPOSITORY_PATTERN_GUIDE.md +503 -0
- package/docs/architecture-design-standards/06_IMPLEMENTATION_PATTERNS.md +1026 -0
- package/docs/architecture-design-standards/07_TYPESCRIPT_GUIDE.md +1027 -0
- package/docs/architecture-design-standards/08_CODING_STANDARDS.md +1274 -0
- package/docs/reference/01_START_HERE.md +108 -0
- package/docs/reference/02_QUICK_REFERENCE.md +363 -0
- package/docs/reference/03_DOCUMENTATION_INDEX.md +293 -0
- package/docs/reference/04_DELIVERY_SUMMARY.md +463 -0
- package/docs/reference/05_IMPLEMENTATION_OVERVIEW.md +319 -0
- package/docs/reference/06_RESEARCH_SUMMARY.md +519 -0
- package/docs/tracking/03_IMPLEMENTATION_ROADMAP.md +788 -0
- package/jest.config.json +12 -0
- package/package.json +46 -53
- package/prepend-shebang.js +18 -0
- package/scripts/setup-mcp.sh +66 -0
- package/src/backend/index.ts +5 -0
- package/src/backend/service-types.ts +219 -0
- package/src/backend/services/file-watcher.ts +79 -0
- package/src/backend/services/ngao-search-service.ts +430 -0
- package/src/backend/services/reindex-manager.ts +90 -0
- package/src/backend/services/session-manager.ts +214 -0
- package/src/cli/setup.ts +122 -0
- package/src/index.ts +6 -0
- package/src/main.ts +225 -0
- package/src/mcp/tool-schemas.ts +439 -0
- package/src/server/logger.ts +88 -0
- package/src/server/tool-registry.ts +117 -0
- package/src/server/transports/mcp-transport.ts +374 -0
- package/src/server/transports/rest-transport.ts +258 -0
- package/tests/unit/agent-tools.test.ts +454 -0
- package/tests/unit/file-watcher.test.d.ts +2 -0
- package/tests/unit/file-watcher.test.d.ts.map +1 -0
- package/tests/unit/file-watcher.test.js +9 -0
- package/tests/unit/file-watcher.test.js.map +1 -0
- package/tests/unit/file-watcher.test.ts +7 -0
- package/tests/unit/search-integration.test.ts +256 -0
- package/tests/unit/services.test.d.ts +2 -0
- package/tests/unit/services.test.d.ts.map +1 -0
- package/tests/unit/services.test.js +9 -0
- package/tests/unit/services.test.js.map +1 -0
- package/tests/unit/services.test.ts +7 -0
- package/tsconfig.json +23 -0
- package/webpack.backend.config.js +60 -0
- package/webpack.config.js +34 -0
- package/models/Xenova/all-MiniLM-L6-v2/config.json +0 -25
- package/models/Xenova/all-MiniLM-L6-v2/onnx/model_quantized.onnx +0 -0
- package/models/Xenova/all-MiniLM-L6-v2/tokenizer.json +0 -30686
- package/models/Xenova/all-MiniLM-L6-v2/tokenizer_config.json +0 -15
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
# NGAO Search - Reference Documentation Index
|
|
2
|
+
|
|
3
|
+
> **Last Updated**: January 16, 2026
|
|
4
|
+
|
|
5
|
+
This reference folder contains 6 quick-access guides designed to help you understand and implement NGAO Search.
|
|
6
|
+
|
|
7
|
+
## ๐ Quick Navigation
|
|
8
|
+
|
|
9
|
+
- **New to the project?** โ Start with [START_HERE.md](START_HERE.md)
|
|
10
|
+
- **Want executive overview?** โ Read [RESEARCH_SUMMARY.md](RESEARCH_SUMMARY.md)
|
|
11
|
+
- **Need quick reference?** โ Check [QUICK_REFERENCE.md](QUICK_REFERENCE.md) for formulas and benchmarks
|
|
12
|
+
- **Understand what you have?** โ Read [DELIVERY_SUMMARY.md](DELIVERY_SUMMARY.md)
|
|
13
|
+
- **Start implementing?** โ Read [IMPLEMENTATION_OVERVIEW.md](IMPLEMENTATION_OVERVIEW.md)
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## ๐ All Documents in Reference Folder
|
|
18
|
+
|
|
19
|
+
1. **[START_HERE.md](START_HERE.md)** - Entry point with navigation guide
|
|
20
|
+
- Multiple reading paths based on your role
|
|
21
|
+
- Quick overview (10 minutes)
|
|
22
|
+
- Key topics and where to find them
|
|
23
|
+
|
|
24
|
+
2. **[QUICK_REFERENCE.md](QUICK_REFERENCE.md)** - Fast lookup guide
|
|
25
|
+
- Performance benchmarks
|
|
26
|
+
- Formulas and scoring algorithms
|
|
27
|
+
- File type support matrix
|
|
28
|
+
- Implementation timeline
|
|
29
|
+
- Quick answer reference
|
|
30
|
+
|
|
31
|
+
3. **[RESEARCH_SUMMARY.md](RESEARCH_SUMMARY.md)** - Executive overview
|
|
32
|
+
- System overview and key differentiators
|
|
33
|
+
- Core architecture (4 layers, 3 pipelines)
|
|
34
|
+
- Index structures explained
|
|
35
|
+
- Ranking algorithm details
|
|
36
|
+
- LLM-optimized output format
|
|
37
|
+
- Use case examples
|
|
38
|
+
- Technology recommendations
|
|
39
|
+
|
|
40
|
+
4. **[IMPLEMENTATION_OVERVIEW.md](IMPLEMENTATION_OVERVIEW.md)** - TypeScript/Node.js guide
|
|
41
|
+
- Complete project structure
|
|
42
|
+
- Repository pattern overview
|
|
43
|
+
- Dependency injection setup
|
|
44
|
+
- Testing patterns
|
|
45
|
+
- Implementation phases
|
|
46
|
+
- FAQ and quick answers
|
|
47
|
+
|
|
48
|
+
5. **[DELIVERY_SUMMARY.md](DELIVERY_SUMMARY.md)** - What you received
|
|
49
|
+
- Documentation organization
|
|
50
|
+
- Content summary by file
|
|
51
|
+
- Content statistics
|
|
52
|
+
- What you can now do checklist
|
|
53
|
+
- Learning outcomes
|
|
54
|
+
|
|
55
|
+
6. **[DOCUMENTATION_INDEX.md](DOCUMENTATION_INDEX.md)** - This file
|
|
56
|
+
- Navigation guide for all reference documents
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## ๐ฏ Choose Your Path
|
|
61
|
+
|
|
62
|
+
### ๐ I'm Completely New
|
|
63
|
+
1. [START_HERE.md](START_HERE.md) - 10 minutes
|
|
64
|
+
2. [RESEARCH_SUMMARY.md](RESEARCH_SUMMARY.md) - 15 minutes
|
|
65
|
+
3. [QUICK_REFERENCE.md](QUICK_REFERENCE.md) - 10 minutes
|
|
66
|
+
|
|
67
|
+
### ๐ป I Want to Start Coding
|
|
68
|
+
1. [IMPLEMENTATION_OVERVIEW.md](IMPLEMENTATION_OVERVIEW.md) - 15 minutes
|
|
69
|
+
2. [RESEARCH_SUMMARY.md](RESEARCH_SUMMARY.md) - 15 minutes
|
|
70
|
+
3. Reference other files as needed
|
|
71
|
+
|
|
72
|
+
### ๐ I'm Planning a Project
|
|
73
|
+
1. [DELIVERY_SUMMARY.md](DELIVERY_SUMMARY.md) - 10 minutes
|
|
74
|
+
2. [QUICK_REFERENCE.md](QUICK_REFERENCE.md) - 10 minutes
|
|
75
|
+
3. [RESEARCH_SUMMARY.md](RESEARCH_SUMMARY.md) - 15 minutes
|
|
76
|
+
|
|
77
|
+
### โ
Complete Understanding
|
|
78
|
+
Read all 6 documents in order (1.5-2 hours total)
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## ๐๏ธ Core Concepts at a Glance
|
|
83
|
+
|
|
84
|
+
### System Architecture (4 Layers)
|
|
85
|
+
- **Input Layer**: File discovery and routing
|
|
86
|
+
- **Parsing Layer**: Format-specific parsers (Python, Markdown, JavaScript, JSON, YAML)
|
|
87
|
+
- **Indexing Layer**: 4 specialized indexes for fast search
|
|
88
|
+
- **Query Layer**: Search, ranking, and result formatting
|
|
89
|
+
|
|
90
|
+
### Data Storage (4 Indexes)
|
|
91
|
+
- **Inverted Index** (70% storage) - Keywords to locations
|
|
92
|
+
- **Scope Hierarchy Index** (20% storage) - Code structure navigation
|
|
93
|
+
- **Block Registry** (10% storage) - Quick metadata lookup
|
|
94
|
+
- **Semantic Index** (optional) - Dense embeddings
|
|
95
|
+
|
|
96
|
+
### Key Features
|
|
97
|
+
- Format-aware parsing
|
|
98
|
+
- Multi-factor ranking algorithm
|
|
99
|
+
- LLM-optimized output format
|
|
100
|
+
- Incremental indexing
|
|
101
|
+
- Context extraction with surrounding code
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## ๐ Quick Stats
|
|
106
|
+
|
|
107
|
+
| Metric | Value |
|
|
108
|
+
|--------|-------|
|
|
109
|
+
| Total Documents | 6 reference files |
|
|
110
|
+
| Total Read Time | 1.5-2 hours (all) |
|
|
111
|
+
| Quick Overview | 25 minutes |
|
|
112
|
+
| Index Types | 4 specialized indexes |
|
|
113
|
+
| File Format Support | 5+ types |
|
|
114
|
+
| Ranking Factors | 5 weighted factors |
|
|
115
|
+
| Performance (avg query) | <1 second |
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## โจ What You Can Do After Reading
|
|
120
|
+
|
|
121
|
+
โ
Understand what NGAO Search is and why it's useful
|
|
122
|
+
โ
Explain the 4-layer architecture
|
|
123
|
+
โ
Understand how different file types are parsed
|
|
124
|
+
โ
Understand the ranking algorithm
|
|
125
|
+
โ
Know how to structure a TypeScript/Node.js implementation
|
|
126
|
+
โ
Plan a 6-phase implementation
|
|
127
|
+
โ
Understand LLM optimization approach
|
|
128
|
+
โ
Design a testing strategy
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## ๐ Document Relationships
|
|
133
|
+
|
|
134
|
+
All 6 documents are complementary:
|
|
135
|
+
- **START_HERE.md** โ Navigation hub (read first)
|
|
136
|
+
- **RESEARCH_SUMMARY.md** โ High-level overview
|
|
137
|
+
- **IMPLEMENTATION_OVERVIEW.md** โ How to build it
|
|
138
|
+
- **QUICK_REFERENCE.md** โ Lookup tables and formulas
|
|
139
|
+
- **DELIVERY_SUMMARY.md** โ What you have
|
|
140
|
+
- **DOCUMENTATION_INDEX.md** โ This guide (navigate between docs)
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
**Next Step**: Open [START_HERE.md](START_HERE.md) for your entry point
|
|
145
|
+
- Multi-index searching
|
|
146
|
+
- Ranking algorithm
|
|
147
|
+
- Query parsing
|
|
148
|
+
- Result formatting
|
|
149
|
+
|
|
150
|
+
### Phase 4: Additional Formats (28-35 hours)
|
|
151
|
+
- Python AST parsing
|
|
152
|
+
- JavaScript parsing
|
|
153
|
+
- JSON parsing
|
|
154
|
+
- Format-specific optimizations
|
|
155
|
+
|
|
156
|
+
### Phase 5: Optimization (27-35 hours)
|
|
157
|
+
- Incremental indexing
|
|
158
|
+
- Caching layer
|
|
159
|
+
- Performance profiling
|
|
160
|
+
- Query optimization
|
|
161
|
+
|
|
162
|
+
### Phase 6: Enterprise Features (20+ hours)
|
|
163
|
+
- Multiple backends (PostgreSQL)
|
|
164
|
+
- Advanced search syntax
|
|
165
|
+
- Batch indexing
|
|
166
|
+
- Admin tools
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## ๐งช Testing Strategy
|
|
171
|
+
|
|
172
|
+
### Unit Tests (with in-memory repositories)
|
|
173
|
+
- Test parsers independently
|
|
174
|
+
- Test ranking engine
|
|
175
|
+
- Test search logic
|
|
176
|
+
- Test indexing logic
|
|
177
|
+
- **No database needed!**
|
|
178
|
+
|
|
179
|
+
### Integration Tests
|
|
180
|
+
- Test end-to-end indexing pipeline
|
|
181
|
+
- Test search with real data
|
|
182
|
+
- Test incremental updates
|
|
183
|
+
|
|
184
|
+
### Example Test Setup
|
|
185
|
+
```typescript
|
|
186
|
+
// Use InMemoryBlockRepository for testing
|
|
187
|
+
const blockRepo = new InMemoryBlockRepository();
|
|
188
|
+
const indexRepo = new InMemoryIndexRepository();
|
|
189
|
+
const engine = new SearchEngine(blockRepo, indexRepo, ...);
|
|
190
|
+
|
|
191
|
+
// Test without database!
|
|
192
|
+
await engine.indexFile('test.ts');
|
|
193
|
+
const results = await engine.search('test');
|
|
194
|
+
expect(results).toHaveLength(expectedCount);
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## ๐ Code Standards Summary
|
|
200
|
+
|
|
201
|
+
### Naming Conventions (TypeScript)
|
|
202
|
+
- Classes: `PascalCase` (e.g., `BlockRepository`, `SearchEngine`)
|
|
203
|
+
- Methods: `camelCase` (e.g., `findByFilePath`, `computeScore`)
|
|
204
|
+
- Properties: `camelCase` (e.g., `blockId`, `filePath`)
|
|
205
|
+
- Constants: `UPPER_SNAKE_CASE` (e.g., `DEFAULT_CONTEXT_LINES`)
|
|
206
|
+
- Private: Leading `_` (e.g., `_internalCache`)
|
|
207
|
+
- Directories: `kebab-case` (e.g., `src/repositories`, `src/di`)
|
|
208
|
+
|
|
209
|
+
### Design Patterns
|
|
210
|
+
- **Repository**: Data access abstraction
|
|
211
|
+
- **Dependency Injection**: Service composition
|
|
212
|
+
- **Strategy**: File parsing implementations
|
|
213
|
+
- **Factory**: Parser selection
|
|
214
|
+
- **Observer**: File change detection
|
|
215
|
+
- **Builder**: Complex object construction
|
|
216
|
+
|
|
217
|
+
### Clean Code Principles
|
|
218
|
+
- Functions should be small (<30 lines)
|
|
219
|
+
- Single responsibility principle
|
|
220
|
+
- Depend on interfaces, not implementations
|
|
221
|
+
- Explicit error handling
|
|
222
|
+
- Type hints everywhere
|
|
223
|
+
- Comments explain WHY, not WHAT
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## ๐ฏ Next Steps
|
|
228
|
+
|
|
229
|
+
### For Architecture Understanding
|
|
230
|
+
1. Read [RESEARCH_SUMMARY.md](RESEARCH_SUMMARY.md) - 20 minutes
|
|
231
|
+
2. Read [IMPLEMENTATION_OVERVIEW.md](IMPLEMENTATION_OVERVIEW.md) - 15 minutes
|
|
232
|
+
3. Review [DOCUMENTATION_INDEX.md](DOCUMENTATION_INDEX.md) - 10 minutes
|
|
233
|
+
|
|
234
|
+
### For Implementation
|
|
235
|
+
1. Start with [IMPLEMENTATION_OVERVIEW.md](IMPLEMENTATION_OVERVIEW.md) - 20 minutes
|
|
236
|
+
2. Review RESEARCH_SUMMARY.md for architecture details
|
|
237
|
+
3. Check QUICK_REFERENCE.md for formulas and patterns
|
|
238
|
+
4. Review testing strategies in IMPLEMENTATION_OVERVIEW.md
|
|
239
|
+
|
|
240
|
+
### For Quick Reference
|
|
241
|
+
1. Read [QUICK_REFERENCE.md](QUICK_REFERENCE.md) - 10 minutes
|
|
242
|
+
2. Use as lookup while coding
|
|
243
|
+
3. Refer to IMPLEMENTATION_OVERVIEW.md for details
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## ๐ Documentation Files at a Glance
|
|
248
|
+
|
|
249
|
+
| File | Purpose | Read Time |
|
|
250
|
+
|------|---------|-----------|
|
|
251
|
+
| [START_HERE.md](START_HERE.md) | Entry point & navigation | 10 min |
|
|
252
|
+
| [RESEARCH_SUMMARY.md](RESEARCH_SUMMARY.md) | Executive overview | 15 min |
|
|
253
|
+
| [IMPLEMENTATION_OVERVIEW.md](IMPLEMENTATION_OVERVIEW.md) | TypeScript/Node.js guide | 20 min |
|
|
254
|
+
| [QUICK_REFERENCE.md](QUICK_REFERENCE.md) | Formulas & quick answers | 10 min |
|
|
255
|
+
| [DOCUMENTATION_INDEX.md](DOCUMENTATION_INDEX.md) | Navigation & planning | 15 min |
|
|
256
|
+
| [DELIVERY_SUMMARY.md](DELIVERY_SUMMARY.md) | What you have | 10 min |
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## โ FAQ
|
|
261
|
+
|
|
262
|
+
### Q: Do I really need a repository layer?
|
|
263
|
+
**A**: Yes, absolutely. See [RESEARCH_SUMMARY.md](RESEARCH_SUMMARY.md) for architecture details.
|
|
264
|
+
|
|
265
|
+
### Q: What's the difference between SQLite and in-memory repositories?
|
|
266
|
+
**A**: SQLite persists data to disk; in-memory stores in RAM only. Use in-memory for testing.
|
|
267
|
+
|
|
268
|
+
### Q: How do I swap from SQLite to PostgreSQL?
|
|
269
|
+
**A**: Create new `PostgreSQLBlockRepository implements IBlockRepository`. Register it in DI container. Done!
|
|
270
|
+
|
|
271
|
+
### Q: Do I need dependency injection?
|
|
272
|
+
**A**: Yes, for testability and flexibility. Use tsyringe, it's simple.
|
|
273
|
+
|
|
274
|
+
### Q: What if I want to add caching?
|
|
275
|
+
**A**: Create `CachedBlockRepository implements IBlockRepository` that wraps actual repository. Register in DI.
|
|
276
|
+
|
|
277
|
+
### Q: How do I test without a database?
|
|
278
|
+
**A**: Use `InMemoryBlockRepository` in tests. It implements same interface.
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
## ๐ค Contributing
|
|
283
|
+
|
|
284
|
+
When contributing code, follow these guides:
|
|
285
|
+
1. [IMPLEMENTATION_OVERVIEW.md](IMPLEMENTATION_OVERVIEW.md) - Architecture patterns
|
|
286
|
+
2. [RESEARCH_SUMMARY.md](RESEARCH_SUMMARY.md) - System design
|
|
287
|
+
3. [QUICK_REFERENCE.md](QUICK_REFERENCE.md) - Reference materials
|
|
288
|
+
|
|
289
|
+
---
|
|
290
|
+
|
|
291
|
+
**Last Updated**: January 16, 2026
|
|
292
|
+
**Status**: Complete Architecture & TypeScript Implementation Guide
|
|
293
|
+
|