abb-opencode-local-rag 0.1.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/LICENSE +21 -0
- package/README.de.md +416 -0
- package/README.es.md +416 -0
- package/README.fr.md +416 -0
- package/README.md +491 -0
- package/README.pt-BR.md +416 -0
- package/README.zh-CN.md +416 -0
- package/dist/bin/install-skills.d.ts +20 -0
- package/dist/bin/install-skills.d.ts.map +1 -0
- package/dist/bin/install-skills.js +195 -0
- package/dist/bin/install-skills.js.map +1 -0
- package/dist/chunker/index.d.ts +24 -0
- package/dist/chunker/index.d.ts.map +1 -0
- package/dist/chunker/index.js +2 -0
- package/dist/chunker/index.js.map +1 -0
- package/dist/chunker/semantic-chunker.d.ts +97 -0
- package/dist/chunker/semantic-chunker.d.ts.map +1 -0
- package/dist/chunker/semantic-chunker.js +294 -0
- package/dist/chunker/semantic-chunker.js.map +1 -0
- package/dist/chunker/sentence-splitter.d.ts +28 -0
- package/dist/chunker/sentence-splitter.d.ts.map +1 -0
- package/dist/chunker/sentence-splitter.js +219 -0
- package/dist/chunker/sentence-splitter.js.map +1 -0
- package/dist/cli/common.d.ts +65 -0
- package/dist/cli/common.d.ts.map +1 -0
- package/dist/cli/common.js +138 -0
- package/dist/cli/common.js.map +1 -0
- package/dist/cli/delete.d.ts +8 -0
- package/dist/cli/delete.d.ts.map +1 -0
- package/dist/cli/delete.js +173 -0
- package/dist/cli/delete.js.map +1 -0
- package/dist/cli/file-collection.d.ts +2 -0
- package/dist/cli/file-collection.d.ts.map +1 -0
- package/dist/cli/file-collection.js +53 -0
- package/dist/cli/file-collection.js.map +1 -0
- package/dist/cli/ingest.d.ts +100 -0
- package/dist/cli/ingest.d.ts.map +1 -0
- package/dist/cli/ingest.js +363 -0
- package/dist/cli/ingest.js.map +1 -0
- package/dist/cli/list.d.ts +35 -0
- package/dist/cli/list.d.ts.map +1 -0
- package/dist/cli/list.js +210 -0
- package/dist/cli/list.js.map +1 -0
- package/dist/cli/options.d.ts +100 -0
- package/dist/cli/options.d.ts.map +1 -0
- package/dist/cli/options.js +241 -0
- package/dist/cli/options.js.map +1 -0
- package/dist/cli/query.d.ts +24 -0
- package/dist/cli/query.d.ts.map +1 -0
- package/dist/cli/query.js +191 -0
- package/dist/cli/query.js.map +1 -0
- package/dist/cli/read-neighbors.d.ts +11 -0
- package/dist/cli/read-neighbors.d.ts.map +1 -0
- package/dist/cli/read-neighbors.js +224 -0
- package/dist/cli/read-neighbors.js.map +1 -0
- package/dist/cli/status.d.ts +8 -0
- package/dist/cli/status.d.ts.map +1 -0
- package/dist/cli/status.js +80 -0
- package/dist/cli/status.js.map +1 -0
- package/dist/cli/sync.d.ts +8 -0
- package/dist/cli/sync.d.ts.map +1 -0
- package/dist/cli/sync.js +244 -0
- package/dist/cli/sync.js.map +1 -0
- package/dist/cli-main.d.ts +12 -0
- package/dist/cli-main.d.ts.map +1 -0
- package/dist/cli-main.js +63 -0
- package/dist/cli-main.js.map +1 -0
- package/dist/embedder/index.d.ts +85 -0
- package/dist/embedder/index.d.ts.map +1 -0
- package/dist/embedder/index.js +284 -0
- package/dist/embedder/index.js.map +1 -0
- package/dist/features/list.d.ts +37 -0
- package/dist/features/list.d.ts.map +1 -0
- package/dist/features/list.js +40 -0
- package/dist/features/list.js.map +1 -0
- package/dist/features/sync.d.ts +207 -0
- package/dist/features/sync.d.ts.map +1 -0
- package/dist/features/sync.js +380 -0
- package/dist/features/sync.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +53 -0
- package/dist/index.js.map +1 -0
- package/dist/ingest/compute.d.ts +86 -0
- package/dist/ingest/compute.d.ts.map +1 -0
- package/dist/ingest/compute.js +177 -0
- package/dist/ingest/compute.js.map +1 -0
- package/dist/ingest/file.d.ts +27 -0
- package/dist/ingest/file.d.ts.map +1 -0
- package/dist/ingest/file.js +67 -0
- package/dist/ingest/file.js.map +1 -0
- package/dist/ingest/visual.d.ts +45 -0
- package/dist/ingest/visual.d.ts.map +1 -0
- package/dist/ingest/visual.js +234 -0
- package/dist/ingest/visual.js.map +1 -0
- package/dist/parser/docx-parser.d.ts +12 -0
- package/dist/parser/docx-parser.d.ts.map +1 -0
- package/dist/parser/docx-parser.js +328 -0
- package/dist/parser/docx-parser.js.map +1 -0
- package/dist/parser/html-parser.d.ts +18 -0
- package/dist/parser/html-parser.d.ts.map +1 -0
- package/dist/parser/html-parser.js +102 -0
- package/dist/parser/html-parser.js.map +1 -0
- package/dist/parser/index.d.ts +214 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +454 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/pdf-extract.d.ts +81 -0
- package/dist/parser/pdf-extract.d.ts.map +1 -0
- package/dist/parser/pdf-extract.js +112 -0
- package/dist/parser/pdf-extract.js.map +1 -0
- package/dist/parser/pdf-filter.d.ts +117 -0
- package/dist/parser/pdf-filter.d.ts.map +1 -0
- package/dist/parser/pdf-filter.js +528 -0
- package/dist/parser/pdf-filter.js.map +1 -0
- package/dist/parser/title-extractor.d.ts +69 -0
- package/dist/parser/title-extractor.d.ts.map +1 -0
- package/dist/parser/title-extractor.js +145 -0
- package/dist/parser/title-extractor.js.map +1 -0
- package/dist/pdf-visual/captioner.d.ts +16 -0
- package/dist/pdf-visual/captioner.d.ts.map +1 -0
- package/dist/pdf-visual/captioner.js +63 -0
- package/dist/pdf-visual/captioner.js.map +1 -0
- package/dist/pdf-visual/captioners/fast.d.ts +7 -0
- package/dist/pdf-visual/captioners/fast.d.ts.map +1 -0
- package/dist/pdf-visual/captioners/fast.js +103 -0
- package/dist/pdf-visual/captioners/fast.js.map +1 -0
- package/dist/pdf-visual/captioners/quality.d.ts +7 -0
- package/dist/pdf-visual/captioners/quality.d.ts.map +1 -0
- package/dist/pdf-visual/captioners/quality.js +127 -0
- package/dist/pdf-visual/captioners/quality.js.map +1 -0
- package/dist/pdf-visual/captioners/shared.d.ts +44 -0
- package/dist/pdf-visual/captioners/shared.d.ts.map +1 -0
- package/dist/pdf-visual/captioners/shared.js +104 -0
- package/dist/pdf-visual/captioners/shared.js.map +1 -0
- package/dist/pdf-visual/detector.d.ts +9 -0
- package/dist/pdf-visual/detector.d.ts.map +1 -0
- package/dist/pdf-visual/detector.js +234 -0
- package/dist/pdf-visual/detector.js.map +1 -0
- package/dist/pdf-visual/index.d.ts +13 -0
- package/dist/pdf-visual/index.d.ts.map +1 -0
- package/dist/pdf-visual/index.js +45 -0
- package/dist/pdf-visual/index.js.map +1 -0
- package/dist/pdf-visual/renderer.d.ts +9 -0
- package/dist/pdf-visual/renderer.d.ts.map +1 -0
- package/dist/pdf-visual/renderer.js +177 -0
- package/dist/pdf-visual/renderer.js.map +1 -0
- package/dist/pdf-visual/types.d.ts +62 -0
- package/dist/pdf-visual/types.d.ts.map +1 -0
- package/dist/pdf-visual/types.js +32 -0
- package/dist/pdf-visual/types.js.map +1 -0
- package/dist/server/error-utils.d.ts +79 -0
- package/dist/server/error-utils.d.ts.map +1 -0
- package/dist/server/error-utils.js +148 -0
- package/dist/server/error-utils.js.map +1 -0
- package/dist/server/index.d.ts +258 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +1104 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/list-scanner.d.ts +52 -0
- package/dist/server/list-scanner.d.ts.map +1 -0
- package/dist/server/list-scanner.js +72 -0
- package/dist/server/list-scanner.js.map +1 -0
- package/dist/server/tool-definitions.d.ts +8 -0
- package/dist/server/tool-definitions.d.ts.map +1 -0
- package/dist/server/tool-definitions.js +181 -0
- package/dist/server/tool-definitions.js.map +1 -0
- package/dist/server/tool-input.d.ts +37 -0
- package/dist/server/tool-input.d.ts.map +1 -0
- package/dist/server/tool-input.js +216 -0
- package/dist/server/tool-input.js.map +1 -0
- package/dist/server/types.d.ts +331 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/server/types.js +3 -0
- package/dist/server/types.js.map +1 -0
- package/dist/server-main.d.ts +46 -0
- package/dist/server-main.d.ts.map +1 -0
- package/dist/server-main.js +242 -0
- package/dist/server-main.js.map +1 -0
- package/dist/utils/base-dirs.d.ts +212 -0
- package/dist/utils/base-dirs.d.ts.map +1 -0
- package/dist/utils/base-dirs.js +422 -0
- package/dist/utils/base-dirs.js.map +1 -0
- package/dist/utils/errors.d.ts +24 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +53 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/limits.d.ts +26 -0
- package/dist/utils/limits.d.ts.map +1 -0
- package/dist/utils/limits.js +28 -0
- package/dist/utils/limits.js.map +1 -0
- package/dist/utils/list-sources.d.ts +47 -0
- package/dist/utils/list-sources.d.ts.map +1 -0
- package/dist/utils/list-sources.js +50 -0
- package/dist/utils/list-sources.js.map +1 -0
- package/dist/utils/raw-data-utils.d.ts +131 -0
- package/dist/utils/raw-data-utils.d.ts.map +1 -0
- package/dist/utils/raw-data-utils.js +255 -0
- package/dist/utils/raw-data-utils.js.map +1 -0
- package/dist/utils/scan.d.ts +126 -0
- package/dist/utils/scan.d.ts.map +1 -0
- package/dist/utils/scan.js +221 -0
- package/dist/utils/scan.js.map +1 -0
- package/dist/utils/scope-match.d.ts +43 -0
- package/dist/utils/scope-match.d.ts.map +1 -0
- package/dist/utils/scope-match.js +87 -0
- package/dist/utils/scope-match.js.map +1 -0
- package/dist/utils/sensitive-path.d.ts +23 -0
- package/dist/utils/sensitive-path.d.ts.map +1 -0
- package/dist/utils/sensitive-path.js +91 -0
- package/dist/utils/sensitive-path.js.map +1 -0
- package/dist/utils/sync-path-key.d.ts +20 -0
- package/dist/utils/sync-path-key.d.ts.map +1 -0
- package/dist/utils/sync-path-key.js +33 -0
- package/dist/utils/sync-path-key.js.map +1 -0
- package/dist/vectordb/index.d.ts +168 -0
- package/dist/vectordb/index.d.ts.map +1 -0
- package/dist/vectordb/index.js +619 -0
- package/dist/vectordb/index.js.map +1 -0
- package/dist/vectordb/search-filters.d.ts +39 -0
- package/dist/vectordb/search-filters.d.ts.map +1 -0
- package/dist/vectordb/search-filters.js +136 -0
- package/dist/vectordb/search-filters.js.map +1 -0
- package/dist/vectordb/types.d.ts +196 -0
- package/dist/vectordb/types.d.ts.map +1 -0
- package/dist/vectordb/types.js +224 -0
- package/dist/vectordb/types.js.map +1 -0
- package/package.json +105 -0
- package/skills/mcp-local-rag/SKILL.md +308 -0
- package/skills/mcp-local-rag/references/cli-reference.md +175 -0
- package/skills/mcp-local-rag/references/html-ingestion.md +78 -0
- package/skills/mcp-local-rag/references/query-optimization.md +57 -0
- package/skills/mcp-local-rag/references/result-refinement.md +56 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# HTML Ingestion Reference
|
|
2
|
+
|
|
3
|
+
Core usage is in SKILL.md. This covers URL handling and edge cases.
|
|
4
|
+
|
|
5
|
+
## System Behavior
|
|
6
|
+
|
|
7
|
+
The parser extracts main content only—navigation, ads, and boilerplate are stripped. What gets indexed is clean body text, not the full HTML.
|
|
8
|
+
|
|
9
|
+
## When to Use Each Source Method
|
|
10
|
+
|
|
11
|
+
| Source Type | Method | Why |
|
|
12
|
+
|-------------|--------|-----|
|
|
13
|
+
| Static page, public | HTTP fetch | Simplest, no extra tools |
|
|
14
|
+
| SPA / JS-rendered | Browser/web tool with DOM rendering | Need rendered DOM |
|
|
15
|
+
| Auth required | Manual paste | Cannot fetch programmatically |
|
|
16
|
+
|
|
17
|
+
**Fallback:** If HTTP fetch returns empty or minimal content, treat as SPA and retry with a browser/web tool.
|
|
18
|
+
|
|
19
|
+
## URL Normalization
|
|
20
|
+
|
|
21
|
+
System strips query strings and fragments:
|
|
22
|
+
```
|
|
23
|
+
https://example.com/page?utm=x#section → https://example.com/page
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**When query strings matter** (pagination, dynamic IDs):
|
|
27
|
+
```
|
|
28
|
+
ingest_data({
|
|
29
|
+
content: page1_html,
|
|
30
|
+
metadata: { source: "https://example.com/results?page=1", format: "html" }
|
|
31
|
+
})
|
|
32
|
+
```
|
|
33
|
+
Explicitly include full URL as source.
|
|
34
|
+
|
|
35
|
+
## Edge Cases
|
|
36
|
+
|
|
37
|
+
### Empty/Minimal Extraction
|
|
38
|
+
|
|
39
|
+
Why it happens:
|
|
40
|
+
- JS-rendered content (use browser/web tool with DOM rendering)
|
|
41
|
+
- Non-standard HTML structure
|
|
42
|
+
- Login required
|
|
43
|
+
|
|
44
|
+
### SPA/Dynamic Content
|
|
45
|
+
|
|
46
|
+
1. Use browser/web tool to render
|
|
47
|
+
2. Wait for content load
|
|
48
|
+
3. Extract rendered HTML
|
|
49
|
+
4. Ingest via `ingest_data`
|
|
50
|
+
|
|
51
|
+
### Pages with Only Navigation
|
|
52
|
+
|
|
53
|
+
Skip or fetch deeper linked pages instead.
|
|
54
|
+
|
|
55
|
+
## Updating Content
|
|
56
|
+
|
|
57
|
+
Re-ingest with same source to replace:
|
|
58
|
+
```
|
|
59
|
+
ingest_data({
|
|
60
|
+
content: updated_html,
|
|
61
|
+
metadata: { source: "https://example.com/page", format: "html" }
|
|
62
|
+
})
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Search Results
|
|
66
|
+
|
|
67
|
+
Results from HTML include `source` and `fileTitle` fields:
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"filePath": "/absolute/path/to/db/raw-data/<base64url-encoded-source>.md",
|
|
71
|
+
"source": "https://example.com/page",
|
|
72
|
+
"fileTitle": "Getting Started Guide",
|
|
73
|
+
"text": "...",
|
|
74
|
+
"score": 0.25
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
`filePath` is an internal path (base64url-encoded source, always `.md` extension). Use `source` to identify the content origin.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Query Optimization Reference
|
|
2
|
+
|
|
3
|
+
Core rules are in SKILL.md. This covers patterns and edge cases.
|
|
4
|
+
|
|
5
|
+
## Query Patterns by Intent
|
|
6
|
+
|
|
7
|
+
| User Intent | Query Pattern | Why |
|
|
8
|
+
|-------------|---------------|-----|
|
|
9
|
+
| Definition/Concept | `"[term] definition concept"` | Targets explanatory content |
|
|
10
|
+
| How-To/Procedure | `"[action] steps example usage"` | Targets instructional content |
|
|
11
|
+
| API/Function | `"[function] API arguments return"` | Targets reference docs |
|
|
12
|
+
| Troubleshooting | `"[error] fix solution cause"` | Targets problem-solving content |
|
|
13
|
+
|
|
14
|
+
## Multi-Query: When to Split
|
|
15
|
+
|
|
16
|
+
**Split** when "and" connects distinct topics:
|
|
17
|
+
```
|
|
18
|
+
"How do I authenticate AND handle errors?"
|
|
19
|
+
→ Query 1: "authentication login JWT session"
|
|
20
|
+
→ Query 2: "error handling exception catch"
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Keep one query** when "and" is within a single topic:
|
|
24
|
+
```
|
|
25
|
+
"How do I set up and configure the database?"
|
|
26
|
+
→ Single: "database setup configuration"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Query Expansion Examples
|
|
30
|
+
|
|
31
|
+
When results are few or all score > 0.5:
|
|
32
|
+
|
|
33
|
+
| Type | Original | Expanded |
|
|
34
|
+
|------|----------|----------|
|
|
35
|
+
| Synonyms | delete | "delete remove" |
|
|
36
|
+
| Abbreviations | API | "API Application Programming Interface" |
|
|
37
|
+
| Related terms | auth | "auth authentication login" |
|
|
38
|
+
| Word forms | config | "config configuration configure" |
|
|
39
|
+
|
|
40
|
+
Keep original term first. Limit to 2-4 additions.
|
|
41
|
+
|
|
42
|
+
## Iterative Refinement
|
|
43
|
+
|
|
44
|
+
When initial results are unsatisfactory:
|
|
45
|
+
|
|
46
|
+
| Problem | Why It Happens | Action |
|
|
47
|
+
|---------|----------------|--------|
|
|
48
|
+
| Too few results | Term mismatch | Expand query (see above) |
|
|
49
|
+
| Too many irrelevant | Query too broad | Add specific terms |
|
|
50
|
+
| Missing expected | Phrasing mismatch | Try alternative wording |
|
|
51
|
+
|
|
52
|
+
## Language Mixing
|
|
53
|
+
|
|
54
|
+
Ngram tokenization supports cross-language queries:
|
|
55
|
+
```
|
|
56
|
+
"API error handling" → matches content regardless of language
|
|
57
|
+
```
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Result Refinement Reference
|
|
2
|
+
|
|
3
|
+
Core rules (score, include/skip) are in SKILL.md. This covers when and how to combine multiple results.
|
|
4
|
+
|
|
5
|
+
## When to Synthesize vs Filter
|
|
6
|
+
|
|
7
|
+
Match approach to user intent:
|
|
8
|
+
|
|
9
|
+
| User Intent | Approach | Why |
|
|
10
|
+
|-------------|----------|-----|
|
|
11
|
+
| Specific answer ("how to X") | Filter to 1-2 best | Extra results add noise |
|
|
12
|
+
| Understanding a topic | Synthesize multiple | Builds complete picture |
|
|
13
|
+
| Troubleshooting error | Filter to direct cause | Tangential info confuses |
|
|
14
|
+
| Comparing options | Synthesize with structure | Need all perspectives |
|
|
15
|
+
|
|
16
|
+
## Multiple Results Handling
|
|
17
|
+
|
|
18
|
+
### Synthesis
|
|
19
|
+
|
|
20
|
+
When: User needs comprehensive understanding.
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
Result 1: "API accepts JSON..."
|
|
24
|
+
Result 2: "Auth uses Bearer tokens..."
|
|
25
|
+
→ Combine into unified answer
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Deduplication
|
|
29
|
+
|
|
30
|
+
When: Results overlap significantly.
|
|
31
|
+
|
|
32
|
+
1. Pick most complete result
|
|
33
|
+
2. Add only unique info from others
|
|
34
|
+
|
|
35
|
+
### Contradiction Resolution
|
|
36
|
+
|
|
37
|
+
When: Results conflict.
|
|
38
|
+
|
|
39
|
+
Priority: Lower score (= better match)
|
|
40
|
+
If unresolved → Note discrepancy to user
|
|
41
|
+
|
|
42
|
+
## Chunk Context
|
|
43
|
+
|
|
44
|
+
Single chunks may lack context ("as described above").
|
|
45
|
+
|
|
46
|
+
- Use `fileTitle` as the chunk's document-level context—it identifies the source document's topic
|
|
47
|
+
- Note when information is partial
|
|
48
|
+
- Group multiple chunks from same `filePath` as coherent sections
|
|
49
|
+
|
|
50
|
+
## No Results
|
|
51
|
+
|
|
52
|
+
1. Rephrase query (alternative terms)
|
|
53
|
+
2. Broaden scope
|
|
54
|
+
3. If `scope` was passed, confirm it is an absolute path prefix — a relative prefix silently matches nothing
|
|
55
|
+
4. Check ingestion (`list_files`)
|
|
56
|
+
5. Inform user: no matching content
|