@dikolab/kbdb 0.2.1 → 0.3.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/README.md +59 -24
- package/dist/cli.cjs +462 -73
- package/dist/cli.cjs.map +4 -4
- package/dist/cli.mjs +454 -65
- package/dist/cli.mjs.map +4 -4
- package/dist/kbdb-worker.cjs +395 -60
- package/dist/kbdb-worker.cjs.map +4 -4
- package/dist/mod.cjs +18 -1
- package/dist/mod.cjs.map +2 -2
- package/dist/mod.mjs +18 -1
- package/dist/mod.mjs.map +2 -2
- package/dist/src/shared/cli/functions/dispatch-command.function.d.ts +3 -1
- package/dist/src/shared/cli/functions/install-default-skills.function.d.ts +12 -0
- package/dist/src/shared/cli/functions/run-check.function.d.ts +47 -5
- package/dist/src/shared/cli/functions/run-export.function.d.ts +34 -0
- package/dist/src/shared/cli/functions/run-gc.function.d.ts +6 -0
- package/dist/src/shared/cli/functions/run-learn.function.d.ts +35 -6
- package/dist/src/shared/cli/functions/run-recall.function.d.ts +45 -0
- package/dist/src/shared/cli/functions/run-search.function.d.ts +52 -15
- package/dist/src/shared/cli/index.d.ts +4 -0
- package/dist/src/shared/cli/typings/cli-options.interface.d.ts +13 -0
- package/dist/src/shared/cli/typings/learn-result.model.d.ts +19 -0
- package/dist/src/shared/cli/typings/search-display.model.d.ts +18 -0
- package/dist/src/shared/mcp/classes/mcp-server.class.d.ts +8 -0
- package/dist/src/shared/mcp/typings/mcp-client.interface.d.ts +43 -0
- package/dist/src/shared/version/constants/version.constant.d.ts +1 -1
- package/dist/src/shared/wasm-codec/functions/decode-add-section-result.function.d.ts +48 -0
- package/dist/src/shared/wasm-codec/functions/decode-scored-results.function.d.ts +58 -0
- package/dist/src/shared/wasm-codec/functions/decode-section-records.function.d.ts +33 -0
- package/dist/src/shared/wasm-codec/functions/encode-add-section-params.function.d.ts +52 -0
- package/dist/src/shared/wasm-codec/index.d.ts +2 -0
- package/dist/src/shared/worker-client/classes/worker-client.class.d.ts +16 -0
- package/dist/src/shared/worker-client/index.d.ts +1 -1
- package/dist/src/shared/worker-client/typings/add-section-result.model.d.ts +29 -15
- package/dist/src/shared/worker-client/typings/export-result.model.d.ts +14 -0
- package/dist/src/shared/worker-client/typings/gc-result.model.d.ts +6 -0
- package/dist/src/shared/worker-client/typings/search-result.model.d.ts +12 -0
- package/dist/src/shared/worker-client/typings/section.model.d.ts +16 -0
- package/dist/src/shared/worker-daemon/classes/worker-daemon.class.d.ts +35 -0
- package/dist/wasm/fs-database/kbdb_fs_database.d.ts +22 -1
- package/dist/wasm/fs-database/kbdb_fs_database.js +28 -1
- package/dist/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
- package/dist/wasm/fs-database/kbdb_fs_database_bg.wasm.d.ts +1 -0
- package/dist/wasm/kb-worker/kbdb_worker.d.ts +48 -1
- package/dist/wasm/kb-worker/kbdb_worker.js +60 -1
- package/dist/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
- package/dist/wasm/kb-worker/kbdb_worker_bg.wasm.d.ts +2 -0
- package/dist/wasm/query-parser/kbdb_query_parser_bg.wasm +0 -0
- package/dist/worker.mjs +396 -60
- package/dist/worker.mjs.map +4 -4
- package/docs/details/cli.md +102 -15
- package/docs/details/library-api.md +55 -6
- package/docs/details/mcp-server.md +8 -4
- package/docs/details/search-and-ranking.md +63 -5
- package/docs/details/storage.md +2 -0
- package/docs/goals/cli.md +255 -14
- package/docs/goals/database.md +244 -17
- package/docs/goals/document.md +1 -1
- package/docs/goals/mcp.md +83 -14
- package/docs/goals/query-parser.md +98 -4
- package/docs/goals/query-result.md +177 -10
- package/docs/goals/skills.md +72 -0
- package/docs/goals/worker-daemon.md +54 -7
- package/docs/modules/rust/fs-database/functions/integrity.md +11 -0
- package/docs/modules/rust/fs-database/functions/section.md +23 -6
- package/docs/modules/rust/fs-database/module.md +1 -0
- package/docs/modules/rust/fs-database/types/section.md +27 -1
- package/docs/modules/rust/overview.md +2 -1
- package/docs/modules/rust/query-parser/functions/module.md +2 -2
- package/docs/modules/rust/query-parser/functions/pipeline.md +44 -6
- package/docs/modules/rust/query-parser/module.md +5 -4
- package/docs/modules/rust/query-parser/types/keyphrase.md +11 -0
- package/docs/modules/rust/query-parser/types/module.md +3 -3
- package/docs/modules/typescript/shared/cli/functions.md +68 -3
- package/package.json +1 -1
- package/src/shared/cli/functions/dispatch-command.function.ts +53 -1
- package/src/shared/cli/functions/format-output.function.ts +36 -12
- package/src/shared/cli/functions/generate-help.function.ts +56 -1
- package/src/shared/cli/functions/install-default-skills.function.ts +296 -0
- package/src/shared/cli/functions/parse-args.function.ts +13 -0
- package/src/shared/cli/functions/run-check.function.ts +87 -6
- package/src/shared/cli/functions/run-export.function.ts +40 -0
- package/src/shared/cli/functions/run-gc.function.ts +6 -0
- package/src/shared/cli/functions/run-init.function.ts +2 -0
- package/src/shared/cli/functions/run-learn.function.ts +68 -16
- package/src/shared/cli/functions/run-recall.function.ts +66 -0
- package/src/shared/cli/functions/run-search.function.ts +58 -15
- package/src/shared/cli/index.ts +4 -0
- package/src/shared/cli/typings/cli-options.interface.ts +13 -0
- package/src/shared/cli/typings/learn-result.model.ts +16 -0
- package/src/shared/cli/typings/search-display.model.ts +18 -0
- package/src/shared/mcp/classes/mcp-server.class.ts +30 -1
- package/src/shared/mcp/functions/create-tool-definitions.function.ts +46 -5
- package/src/shared/mcp/functions/handle-tool-call.function.ts +70 -2
- package/src/shared/mcp/typings/mcp-client.interface.ts +45 -0
- package/src/shared/version/constants/version.constant.ts +1 -1
- package/src/shared/wasm-codec/functions/decode-add-section-result.function.ts +112 -0
- package/src/shared/wasm-codec/functions/decode-scored-results.function.ts +86 -0
- package/src/shared/wasm-codec/functions/decode-section-records.function.ts +87 -0
- package/src/shared/wasm-codec/functions/encode-add-section-params.function.ts +68 -0
- package/src/shared/wasm-codec/index.ts +5 -0
- package/src/shared/worker-client/classes/worker-client.class.ts +19 -0
- package/src/shared/worker-client/index.ts +4 -1
- package/src/shared/worker-client/typings/add-section-result.model.ts +30 -15
- package/src/shared/worker-client/typings/export-result.model.ts +14 -0
- package/src/shared/worker-client/typings/gc-result.model.ts +6 -0
- package/src/shared/worker-client/typings/search-result.model.ts +12 -0
- package/src/shared/worker-client/typings/section.model.ts +16 -0
- package/src/shared/worker-daemon/classes/worker-daemon.class.ts +315 -46
- package/src/shared/worker-daemon/functions/create-host-imports.function.ts +19 -4
- package/src/shared/worker-daemon/functions/create-ipc-server.function.ts +5 -1
- package/src/wasm/fs-database/kbdb_fs_database.d.ts +22 -1
- package/src/wasm/fs-database/kbdb_fs_database.js +28 -1
- package/src/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
- package/src/wasm/fs-database/kbdb_fs_database_bg.wasm.d.ts +1 -0
- package/src/wasm/kb-worker/kbdb_worker.d.ts +48 -1
- package/src/wasm/kb-worker/kbdb_worker.js +60 -1
- package/src/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
- package/src/wasm/kb-worker/kbdb_worker_bg.wasm.d.ts +2 -0
- package/src/wasm/query-parser/kbdb_query_parser_bg.wasm +0 -0
package/docs/goals/cli.md
CHANGED
|
@@ -53,12 +53,14 @@ kbdb --version | -v
|
|
|
53
53
|
kbdb learn [options] <path | ->...
|
|
54
54
|
kbdb unlearn [options] <kbid>...
|
|
55
55
|
kbdb search [options] <query>...
|
|
56
|
+
kbdb recall [options] <kbid>...
|
|
56
57
|
kbdb content [options] <id>...
|
|
57
58
|
kbdb mcp [options]
|
|
58
59
|
kbdb check [options]
|
|
59
60
|
kbdb gc [options]
|
|
60
61
|
kbdb rebuild [options]
|
|
61
62
|
kbdb status [options]
|
|
63
|
+
kbdb export [options] [<path>]
|
|
62
64
|
kbdb db init [options]
|
|
63
65
|
kbdb db migrate [options]
|
|
64
66
|
kbdb skill learn [options] --name <n> --body <file|->
|
|
@@ -196,6 +198,17 @@ Import and index documents into the knowledge base.
|
|
|
196
198
|
to this document ID. If the document does not
|
|
197
199
|
exist, it is created. Applies to all sections
|
|
198
200
|
ingested in this invocation.
|
|
201
|
+
- `--tags <t,...>` -- Comma-separated tags for scoping
|
|
202
|
+
and filtering. Applies to all sections ingested in
|
|
203
|
+
this invocation. Example: `--tags auth,api,v2`.
|
|
204
|
+
- `--replace` -- Enable supersession. When set, the
|
|
205
|
+
system matches each incoming section by source key
|
|
206
|
+
(source path + heading). If an existing section has
|
|
207
|
+
the same source key, it is superseded: the old
|
|
208
|
+
section's document references are transferred to the
|
|
209
|
+
new one and the old section becomes eligible for GC.
|
|
210
|
+
Without this flag, re-learning edited content creates
|
|
211
|
+
a sibling rather than replacing the original.
|
|
199
212
|
|
|
200
213
|
**Supported file extensions:**
|
|
201
214
|
|
|
@@ -239,7 +252,10 @@ sections in the same invocation.
|
|
|
239
252
|
"kbid": "abcdef1234567890abcdef1234",
|
|
240
253
|
"path": "/absolute/path/to/file.md",
|
|
241
254
|
"size": 1234,
|
|
242
|
-
"skipped": false
|
|
255
|
+
"skipped": false,
|
|
256
|
+
"superseded": null,
|
|
257
|
+
"warnings": [],
|
|
258
|
+
"near_duplicates": []
|
|
243
259
|
}
|
|
244
260
|
]
|
|
245
261
|
```
|
|
@@ -247,7 +263,12 @@ sections in the same invocation.
|
|
|
247
263
|
is the UTF-8 character count of the content. The
|
|
248
264
|
`skipped` field is always `false` for results that
|
|
249
265
|
appear in the array -- files that are skipped produce
|
|
250
|
-
no entry.
|
|
266
|
+
no entry. `superseded` is the kbid of the section
|
|
267
|
+
that was replaced via `--replace` (null when no
|
|
268
|
+
supersession occurred). `warnings` is an array of
|
|
269
|
+
warning strings (e.g. `"heading_missing"` when no
|
|
270
|
+
title is provided). `near_duplicates` lists sections
|
|
271
|
+
with similarity >= 0.85 as `{kbid, similarity}`.
|
|
251
272
|
- **stderr**: errors only.
|
|
252
273
|
|
|
253
274
|
**Exit code:** `0` on success, `1` on error.
|
|
@@ -425,15 +446,19 @@ array (see [SearchDisplay type](#searchdisplay-type)).
|
|
|
425
446
|
"type": "text/markdown",
|
|
426
447
|
"docids": ["doc-intro-ml"],
|
|
427
448
|
"score": 8.7432,
|
|
449
|
+
"confidence": 1.0,
|
|
428
450
|
"snippet": "Machine learning is a subfield...",
|
|
429
451
|
"matched_terms": ["machine", "learning"],
|
|
452
|
+
"matched_fields": ["heading", "body"],
|
|
453
|
+
"created_at": "2026-06-15T10:00:00Z",
|
|
430
454
|
"preview": ""
|
|
431
455
|
}
|
|
432
456
|
],
|
|
433
457
|
"total": 42,
|
|
434
458
|
"offset": 0,
|
|
435
459
|
"limit": 20,
|
|
436
|
-
"has_more": true
|
|
460
|
+
"has_more": true,
|
|
461
|
+
"relaxed": false
|
|
437
462
|
}
|
|
438
463
|
```
|
|
439
464
|
|
|
@@ -448,15 +473,19 @@ section text:
|
|
|
448
473
|
"type": "text/markdown",
|
|
449
474
|
"docids": ["doc-intro-ml"],
|
|
450
475
|
"score": 8.7432,
|
|
476
|
+
"confidence": 1.0,
|
|
451
477
|
"snippet": "Machine learning is a subfield...",
|
|
452
478
|
"matched_terms": ["machine", "learning"],
|
|
479
|
+
"matched_fields": ["heading", "body"],
|
|
480
|
+
"created_at": "2026-06-15T10:00:00Z",
|
|
453
481
|
"preview": "Machine learning is a subfield..."
|
|
454
482
|
}
|
|
455
483
|
],
|
|
456
484
|
"total": 42,
|
|
457
485
|
"offset": 0,
|
|
458
486
|
"limit": 20,
|
|
459
|
-
"has_more": true
|
|
487
|
+
"has_more": true,
|
|
488
|
+
"relaxed": false
|
|
460
489
|
}
|
|
461
490
|
```
|
|
462
491
|
|
|
@@ -557,6 +586,131 @@ src/cli.ts parseArgs()
|
|
|
557
586
|
See [Content Composer](content-composer.md) for the
|
|
558
587
|
full composition specification.
|
|
559
588
|
|
|
589
|
+
### `recall` -- progressive context retrieval
|
|
590
|
+
|
|
591
|
+
```
|
|
592
|
+
kbdb recall [options] <kbid>...
|
|
593
|
+
```
|
|
594
|
+
|
|
595
|
+
Retrieve full content and progressive context for one
|
|
596
|
+
or more sections by kbid. Use after `search` to drill
|
|
597
|
+
into relevant results. Returns section text, metadata,
|
|
598
|
+
references, and back-references at configurable
|
|
599
|
+
expansion depths.
|
|
600
|
+
|
|
601
|
+
**Arguments:**
|
|
602
|
+
- `<kbid>...` -- one or more 26-character kb-id
|
|
603
|
+
strings.
|
|
604
|
+
|
|
605
|
+
**Options:**
|
|
606
|
+
|
|
607
|
+
| Flag | Alias | Description |
|
|
608
|
+
|-----------------|-------|--------------------------------|
|
|
609
|
+
| `--depth <n>` | `-d` | Expansion depth (0--3, |
|
|
610
|
+
| | | default: 0, clamped to 3) |
|
|
611
|
+
| `--db <path>` | | Database directory path |
|
|
612
|
+
|
|
613
|
+
**Expansion levels:**
|
|
614
|
+
|
|
615
|
+
| Depth | Returns |
|
|
616
|
+
|-------|---------------------------------------|
|
|
617
|
+
| 0 | Full section content with heading, |
|
|
618
|
+
| | type, and docids. |
|
|
619
|
+
| 1 | Depth-0 content, plus parent document |
|
|
620
|
+
| | manifests (title, all section kbids |
|
|
621
|
+
| | with headings and types) for each |
|
|
622
|
+
| | docid, plus back-references (sections |
|
|
623
|
+
| | that reference this section, from the |
|
|
624
|
+
| | reference graph index, each with |
|
|
625
|
+
| | marker_type and context_snippet). |
|
|
626
|
+
| 2 | Depth-1 content, plus full text of |
|
|
627
|
+
| | sibling sections (other sections in |
|
|
628
|
+
| | the same documents), plus forward |
|
|
629
|
+
| | references from the section's own |
|
|
630
|
+
| | content markers. |
|
|
631
|
+
| 3 | Depth-2 content, plus full text of |
|
|
632
|
+
| | referenced sections (one level deep), |
|
|
633
|
+
| | plus their back-references. |
|
|
634
|
+
|
|
635
|
+
Depth values above 3 are clamped to 3.
|
|
636
|
+
|
|
637
|
+
**Output:**
|
|
638
|
+
- **stdout**: JSON `RecallResult` object (single kbid)
|
|
639
|
+
or `RecallResult[]` array (multiple kbids).
|
|
640
|
+
|
|
641
|
+
Single result shape (depth 0):
|
|
642
|
+
|
|
643
|
+
```json
|
|
644
|
+
{
|
|
645
|
+
"kbid": "a1b2c3d4e5f6g7h8j9k0l1m2n3",
|
|
646
|
+
"heading": "Architecture Overview",
|
|
647
|
+
"type": "text/markdown",
|
|
648
|
+
"content": "Full section text...",
|
|
649
|
+
"docids": ["doc-5678"]
|
|
650
|
+
}
|
|
651
|
+
```
|
|
652
|
+
|
|
653
|
+
Single result shape (depth 1+):
|
|
654
|
+
|
|
655
|
+
```json
|
|
656
|
+
{
|
|
657
|
+
"kbid": "a1b2c3d4e5f6g7h8j9k0l1m2n3",
|
|
658
|
+
"heading": "Architecture Overview",
|
|
659
|
+
"type": "text/markdown",
|
|
660
|
+
"content": "Full section text...",
|
|
661
|
+
"docids": ["doc-5678"],
|
|
662
|
+
"documents": [
|
|
663
|
+
{
|
|
664
|
+
"docid": "doc-5678",
|
|
665
|
+
"title": "System Architecture",
|
|
666
|
+
"sections": [
|
|
667
|
+
{
|
|
668
|
+
"kbid": "...",
|
|
669
|
+
"heading": "...",
|
|
670
|
+
"type": "..."
|
|
671
|
+
}
|
|
672
|
+
]
|
|
673
|
+
}
|
|
674
|
+
],
|
|
675
|
+
"back_references": [
|
|
676
|
+
{
|
|
677
|
+
"kbid": "ref-section-kbid",
|
|
678
|
+
"heading": "Related Section",
|
|
679
|
+
"type": "text/markdown",
|
|
680
|
+
"marker_type": "link",
|
|
681
|
+
"context_snippet": "For details, see ...",
|
|
682
|
+
"direction": "back"
|
|
683
|
+
}
|
|
684
|
+
],
|
|
685
|
+
"siblings": [ ... ],
|
|
686
|
+
"references": [ ... ]
|
|
687
|
+
}
|
|
688
|
+
```
|
|
689
|
+
|
|
690
|
+
Fields beyond `content` and `docids` are present only
|
|
691
|
+
at the corresponding depth level. At depth 0,
|
|
692
|
+
`documents`, `back_references`, `siblings`, and
|
|
693
|
+
`references` are absent. At depth 1, `siblings` and
|
|
694
|
+
`references` are absent. And so on.
|
|
695
|
+
|
|
696
|
+
- **stderr**: errors only.
|
|
697
|
+
|
|
698
|
+
**Exit code:** `0` on success, `1` on error.
|
|
699
|
+
|
|
700
|
+
**Delegation chain:**
|
|
701
|
+
```
|
|
702
|
+
src/cli.ts parseArgs()
|
|
703
|
+
-> findDb() / promptUser() / runDbInit()
|
|
704
|
+
-> createWorkerClient({ contextPath })
|
|
705
|
+
-> versionGate(client, dbDir)
|
|
706
|
+
-> dispatchCommand(client, options)
|
|
707
|
+
-> runRecall(client, options)
|
|
708
|
+
-> client.recall({ kbids, depth })
|
|
709
|
+
-> IPC -> worker daemon
|
|
710
|
+
-> kb-worker.wasm
|
|
711
|
+
-> fs-database.wasm (fetch)
|
|
712
|
+
```
|
|
713
|
+
|
|
560
714
|
### `mcp` -- start MCP server
|
|
561
715
|
|
|
562
716
|
```
|
|
@@ -604,7 +758,8 @@ The MCP server exposes `retrieve` (section/document
|
|
|
604
758
|
lookup by ID) and `status` (database metadata) tools
|
|
605
759
|
that have no CLI equivalents. These are programmatic
|
|
606
760
|
operations suited to MCP clients (AI agents). CLI
|
|
607
|
-
users use `kbdb search` to find content
|
|
761
|
+
users use `kbdb search` to find content,
|
|
762
|
+
`kbdb recall` to expand context progressively, and
|
|
608
763
|
`kbdb content` to compose documents by ID.
|
|
609
764
|
|
|
610
765
|
### `check` -- integrity check
|
|
@@ -614,8 +769,9 @@ kbdb check [options]
|
|
|
614
769
|
```
|
|
615
770
|
|
|
616
771
|
Verify the integrity of the database. Checks section
|
|
617
|
-
file checksums, document manifest references,
|
|
618
|
-
|
|
772
|
+
file checksums, document manifest references, type
|
|
773
|
+
consistency, and divergent content (sections sharing
|
|
774
|
+
the same source key with different content).
|
|
619
775
|
|
|
620
776
|
**Output:**
|
|
621
777
|
- **stdout**: JSON integrity report:
|
|
@@ -672,11 +828,15 @@ manifest references it (empty `docids` array).
|
|
|
672
828
|
```json
|
|
673
829
|
{
|
|
674
830
|
"removed_sections": 3,
|
|
675
|
-
"removed_bytes": 15360
|
|
831
|
+
"removed_bytes": 15360,
|
|
832
|
+
"stale_sources": 1
|
|
676
833
|
}
|
|
677
834
|
```
|
|
678
835
|
When no sections are eligible, `removed_sections`
|
|
679
836
|
is `0` and `removed_bytes` is `0`.
|
|
837
|
+
`stale_sources` reports sections whose
|
|
838
|
+
`source_path` file no longer contains their heading
|
|
839
|
+
text (advisory, not automatically removed).
|
|
680
840
|
- **stderr**: errors only.
|
|
681
841
|
|
|
682
842
|
**Exit code:** `0` on success, `1` on error.
|
|
@@ -734,6 +894,55 @@ src/cli.ts parseArgs()
|
|
|
734
894
|
-> stdout
|
|
735
895
|
```
|
|
736
896
|
|
|
897
|
+
### `export` -- snapshot database
|
|
898
|
+
|
|
899
|
+
```
|
|
900
|
+
kbdb export [options] [<path>]
|
|
901
|
+
```
|
|
902
|
+
|
|
903
|
+
Export the database as a self-contained directory
|
|
904
|
+
snapshot for backup, transfer, or version control.
|
|
905
|
+
The export includes sections, documents, and the
|
|
906
|
+
catalog. Indexes are excluded -- they are derived
|
|
907
|
+
data and can be rebuilt with `kbdb rebuild` after
|
|
908
|
+
importing.
|
|
909
|
+
|
|
910
|
+
**Arguments:**
|
|
911
|
+
- `<path>` -- Output directory path. Defaults to
|
|
912
|
+
`./kbdb-export/` in the current working directory.
|
|
913
|
+
If the directory exists, it is overwritten.
|
|
914
|
+
|
|
915
|
+
**Options:**
|
|
916
|
+
- `--db <path>` -- Source database directory.
|
|
917
|
+
|
|
918
|
+
**Output:**
|
|
919
|
+
- **stdout**: JSON report:
|
|
920
|
+
```json
|
|
921
|
+
{
|
|
922
|
+
"path": "/absolute/path/kbdb-export",
|
|
923
|
+
"sections_exported": 42,
|
|
924
|
+
"documents_exported": 5
|
|
925
|
+
}
|
|
926
|
+
```
|
|
927
|
+
- **stderr**: errors only.
|
|
928
|
+
|
|
929
|
+
**Exit code:** `0` on success, `1` on error.
|
|
930
|
+
|
|
931
|
+
**Delegation chain:**
|
|
932
|
+
```
|
|
933
|
+
src/cli.ts parseArgs()
|
|
934
|
+
-> findDb() / promptUser() / runDbInit()
|
|
935
|
+
-> createWorkerClient({ contextPath })
|
|
936
|
+
-> versionGate(client, dbDir)
|
|
937
|
+
-> dispatchCommand(client, options)
|
|
938
|
+
-> runExport(client, options)
|
|
939
|
+
-> client.export({ path })
|
|
940
|
+
-> IPC -> worker daemon
|
|
941
|
+
-> kb-worker.wasm
|
|
942
|
+
-> fs-database.wasm
|
|
943
|
+
-> stdout
|
|
944
|
+
```
|
|
945
|
+
|
|
737
946
|
### `kbdb db` -- database management
|
|
738
947
|
|
|
739
948
|
The `db` command group manages the `.kbdb` database
|
|
@@ -1520,10 +1729,13 @@ processes the raw argument vector
|
|
|
1520
1729
|
5. All other flags (`--db`, `--format`, `--mode`,
|
|
1521
1730
|
`--limit`, `--offset`, `--title`, `--description`,
|
|
1522
1731
|
`--docid`, `--name`, `--persona`, `--body`,
|
|
1523
|
-
`--skills`
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1732
|
+
`--skills`, `--depth` / `-d`, `--tags`) consume
|
|
1733
|
+
the next token as their value. `--depth` is parsed
|
|
1734
|
+
as a number and clamped to the range 0--3. `--tags`
|
|
1735
|
+
splits its value on commas into a `string[]`.
|
|
1736
|
+
6. `--content` / `-c` and `--replace` are boolean
|
|
1737
|
+
flags; they set their respective option to `true`
|
|
1738
|
+
without consuming the next token.
|
|
1527
1739
|
7. The first non-flag, non-group token becomes the
|
|
1528
1740
|
**command**.
|
|
1529
1741
|
8. Subsequent non-flag tokens become **positional
|
|
@@ -1584,6 +1796,12 @@ interface CliOptions {
|
|
|
1584
1796
|
/** Comma-separated skill kbids
|
|
1585
1797
|
* (agent create). Parsed to string[]. */
|
|
1586
1798
|
skills?: string[];
|
|
1799
|
+
/** Recall expansion depth (0-3). Defaults to 0. */
|
|
1800
|
+
depth?: number;
|
|
1801
|
+
/** Comma-separated tags for scoping (learn). */
|
|
1802
|
+
tags?: string[];
|
|
1803
|
+
/** Enable supersession by source key (learn). */
|
|
1804
|
+
replace?: boolean;
|
|
1587
1805
|
/** Positional arguments following the sub-command. */
|
|
1588
1806
|
args: string[];
|
|
1589
1807
|
}
|
|
@@ -1638,6 +1856,7 @@ Knowledge Base:
|
|
|
1638
1856
|
learn Import content from files/stdin
|
|
1639
1857
|
unlearn Remove sections by kbid
|
|
1640
1858
|
search Query the knowledge base
|
|
1859
|
+
recall Retrieve section context by kbid
|
|
1641
1860
|
content Compose rendered content from ids
|
|
1642
1861
|
|
|
1643
1862
|
Database:
|
|
@@ -1650,6 +1869,7 @@ Maintenance:
|
|
|
1650
1869
|
sections
|
|
1651
1870
|
rebuild Reconstruct all index files
|
|
1652
1871
|
status Show database status
|
|
1872
|
+
export Snapshot database for backup
|
|
1653
1873
|
|
|
1654
1874
|
Skills:
|
|
1655
1875
|
skill learn Create a new skill definition
|
|
@@ -1734,12 +1954,20 @@ interface SearchDisplay {
|
|
|
1734
1954
|
docids: string[];
|
|
1735
1955
|
/** Relevance score from the ranking engine. */
|
|
1736
1956
|
score: number;
|
|
1957
|
+
/** Normalized score (0.0-1.0) relative to the top
|
|
1958
|
+
* result in this result set. */
|
|
1959
|
+
confidence: number;
|
|
1737
1960
|
/** KWIC excerpt (~150 chars) centered on the
|
|
1738
1961
|
* highest-scoring matched term. Empty string
|
|
1739
1962
|
* for image sections. */
|
|
1740
1963
|
snippet: string;
|
|
1741
1964
|
/** Query terms that matched, as a flat string[]. */
|
|
1742
1965
|
matched_terms: string[];
|
|
1966
|
+
/** Fields that contained matches: subset of
|
|
1967
|
+
* ["heading", "body", "code"]. */
|
|
1968
|
+
matched_fields: string[];
|
|
1969
|
+
/** ISO 8601 creation timestamp. */
|
|
1970
|
+
created_at: string;
|
|
1743
1971
|
/** Full section text. Empty string when --content
|
|
1744
1972
|
* is not used. */
|
|
1745
1973
|
preview: string;
|
|
@@ -1764,12 +1992,23 @@ Produced by `runLearn()` for each file ingested.
|
|
|
1764
1992
|
interface LearnResult {
|
|
1765
1993
|
/** Knowledge-base identifier assigned to the section. */
|
|
1766
1994
|
kbid: string;
|
|
1767
|
-
/** Absolute path to the source file (or "-" for
|
|
1995
|
+
/** Absolute path to the source file (or "-" for
|
|
1996
|
+
* stdin). */
|
|
1768
1997
|
path: string;
|
|
1769
1998
|
/** UTF-8 character count of the ingested content. */
|
|
1770
1999
|
size: number;
|
|
1771
|
-
/** true when the file was skipped
|
|
2000
|
+
/** true when the file was skipped. */
|
|
1772
2001
|
skipped: boolean;
|
|
2002
|
+
/** Kbid of the section this one superseded via
|
|
2003
|
+
* --replace, or null. */
|
|
2004
|
+
superseded: string | null;
|
|
2005
|
+
/** Warning strings (e.g. "heading_missing"). */
|
|
2006
|
+
warnings: string[];
|
|
2007
|
+
/** Sections with similarity >= 0.85. */
|
|
2008
|
+
near_duplicates: Array<{
|
|
2009
|
+
kbid: string;
|
|
2010
|
+
similarity: number;
|
|
2011
|
+
}>;
|
|
1773
2012
|
}
|
|
1774
2013
|
```
|
|
1775
2014
|
|
|
@@ -1860,10 +2099,12 @@ Routing table:
|
|
|
1860
2099
|
| `learn` | `runLearn` | yes |
|
|
1861
2100
|
| `unlearn` | `runUnlearn` | yes |
|
|
1862
2101
|
| `search` | `runSearch` | yes |
|
|
2102
|
+
| `recall` | `runRecall` | yes |
|
|
1863
2103
|
| `content` | `runContent` | yes |
|
|
1864
2104
|
| `check` | `runCheck` | yes |
|
|
1865
2105
|
| `gc` | `runGc` | yes |
|
|
1866
2106
|
| `rebuild` | `runRebuild` | yes |
|
|
2107
|
+
| `export` | `runExport` | yes |
|
|
1867
2108
|
| `db-init` | `runDbInit` | no |
|
|
1868
2109
|
| `db-migrate` | `runDbMigrate` | yes |
|
|
1869
2110
|
| `skill-learn` | `runSkillLearn` | yes |
|