@dikolab/kbdb 0.4.3 → 0.6.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/CLA.md +68 -0
- package/LICENSE +676 -12
- package/LICENSING.md +58 -0
- package/README.md +50 -27
- package/README.md.bak +320 -0
- package/dist/README.md +320 -0
- package/dist/{chunk-BJXEVALU.mjs → chunk-QLJ33C74.mjs} +44 -44
- package/dist/chunk-QLJ33C74.mjs.map +7 -0
- package/dist/cli.cjs +550 -232
- package/dist/cli.cjs.map +4 -4
- package/dist/cli.d.ts +0 -8
- package/dist/cli.mjs +483 -154
- package/dist/cli.mjs.map +4 -4
- package/dist/kbdb-worker.cjs +36 -5
- package/dist/kbdb-worker.cjs.map +3 -3
- package/dist/mod.cjs +89 -30
- package/dist/mod.cjs.map +4 -4
- package/dist/mod.mjs +88 -30
- package/dist/mod.mjs.map +4 -4
- package/dist/src/cli.d.ts +0 -8
- package/dist/src/shared/cli/constants/defaults.constant.d.ts +1 -1
- package/dist/src/shared/cli/constants/recfile-command-field-map.constant.d.ts +8 -0
- package/dist/src/shared/cli/constants/recfile-field-maps.constant.d.ts +21 -0
- package/dist/src/shared/cli/functions/compute-directory-level.function.d.ts +14 -0
- package/dist/src/shared/cli/functions/dispatch-command.function.d.ts +2 -28
- package/dist/src/shared/cli/functions/format-command-output.function.d.ts +14 -0
- package/dist/src/shared/cli/functions/format-db-not-found.function.d.ts +20 -0
- package/dist/src/shared/cli/functions/format-output.function.d.ts +1 -0
- package/dist/src/shared/cli/functions/format-recfile-output.function.d.ts +11 -0
- package/dist/src/shared/cli/functions/render-recfile-value.function.d.ts +11 -0
- package/dist/src/shared/cli/functions/resolve-db-dir.function.d.ts +24 -0
- package/dist/src/shared/cli/functions/resolve-recfile-key.function.d.ts +9 -0
- package/dist/src/shared/cli/functions/run-db-path.function.d.ts +10 -0
- package/dist/src/shared/cli/functions/run-export.function.d.ts +8 -4
- package/dist/src/shared/cli/functions/run-import.function.d.ts +4 -0
- package/dist/src/shared/cli/functions/run-learn.function.d.ts +12 -0
- package/dist/src/shared/cli/index.d.ts +4 -1
- package/dist/src/shared/cli/typings/cli-options.interface.d.ts +9 -2
- package/dist/src/shared/cli/typings/db-resolution.interface.d.ts +9 -0
- package/dist/src/shared/cli/typings/recfile-field-map.type.d.ts +10 -0
- package/dist/src/shared/version/constants/version.constant.d.ts +1 -1
- package/dist/src/shared/wasm-codec/functions/decode-option-u8.function.d.ts +9 -0
- package/dist/src/shared/wasm-codec/functions/decode-section-records.function.d.ts +4 -0
- package/dist/src/shared/wasm-codec/functions/encode-add-section-params.function.d.ts +2 -45
- package/dist/src/shared/wasm-codec/functions/encode-update-section-params.function.d.ts +10 -1
- package/dist/src/shared/wasm-codec/index.d.ts +1 -1
- package/dist/src/shared/wasm-codec/typings/add-section-input.model.d.ts +6 -0
- package/dist/src/shared/wasm-codec/typings/section-record-trailing.model.d.ts +5 -0
- package/dist/src/shared/wasm-codec/typings/section-record.model.d.ts +5 -0
- package/dist/src/shared/worker-client/functions/build-deno-permissions.function.d.ts +11 -0
- package/dist/src/shared/worker-client/functions/read-crash-reason.function.d.ts +9 -0
- package/dist/src/shared/worker-client/functions/resolve-spawn-script.function.d.ts +6 -0
- package/dist/src/shared/worker-client/functions/spawn-daemon.function.d.ts +1 -1
- package/dist/src/shared/worker-client/typings/section.model.d.ts +5 -0
- package/dist/src/shared/worker-client/typings/worker-client-options.interface.d.ts +0 -6
- package/dist/src/shared/worker-daemon/functions/count-files.function.d.ts +12 -0
- package/dist/src/shared/worker-daemon/functions/handle-import.function.d.ts +2 -0
- package/dist/src/shared/worker-daemon/functions/handle-read-ops.function.d.ts +8 -0
- package/dist/src/shared/worker-daemon/functions/validate-daemon-path.function.d.ts +15 -0
- package/dist/src/worker.d.ts +0 -7
- package/dist/wasm/default-embedding/kbdb_default_embedding_bg.wasm +0 -0
- package/dist/wasm/default-embedding/package.json +1 -1
- package/dist/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
- package/dist/wasm/fs-database/package.json +1 -1
- package/dist/wasm/fs-migration/kbdb_fs_migration_bg.wasm +0 -0
- package/dist/wasm/fs-migration/package.json +1 -1
- package/dist/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
- package/dist/wasm/kb-worker/package.json +1 -1
- package/dist/wasm/query-parser/kbdb_query_parser_bg.wasm +0 -0
- package/dist/wasm/query-parser/package.json +1 -1
- package/dist/worker.d.ts +0 -7
- package/dist/worker.mjs +37 -6
- package/dist/worker.mjs.map +3 -3
- package/package.json +13 -12
- package/dist/chunk-BJXEVALU.mjs.map +0 -7
- package/dist/src/shared/cli/functions/resolve-raw-db-path.function.d.ts +0 -10
- package/docs/details/README.md +0 -30
- package/docs/details/agent-tooling.md +0 -132
- package/docs/details/cli.md +0 -777
- package/docs/details/knowledge-base.md +0 -180
- package/docs/details/library-api.md +0 -495
- package/docs/details/mcp-server.md +0 -482
- package/docs/details/search-and-ranking.md +0 -575
- package/docs/details/storage.md +0 -531
- package/docs/goals/agents.md +0 -751
- package/docs/goals/architecture.svg +0 -198
- package/docs/goals/auto-capture.md +0 -378
- package/docs/goals/benchmarking.md +0 -296
- package/docs/goals/cli.md +0 -2654
- package/docs/goals/concurrency.md +0 -259
- package/docs/goals/content-composer.md +0 -609
- package/docs/goals/content-parser.md +0 -279
- package/docs/goals/database.md +0 -1679
- package/docs/goals/document.md +0 -368
- package/docs/goals/hybrid-search.md +0 -465
- package/docs/goals/mcp.md +0 -1541
- package/docs/goals/overview.md +0 -124
- package/docs/goals/query-parser.md +0 -373
- package/docs/goals/query-result.md +0 -860
- package/docs/goals/semantic-dedup.md +0 -233
- package/docs/goals/skills.md +0 -810
- package/docs/goals/sync.md +0 -217
- package/docs/goals/worker-client.md +0 -1005
- package/docs/goals/worker-daemon.md +0 -1547
- package/docs/modules/overview.md +0 -319
- package/docs/modules/rust/embedding/module.md +0 -91
- package/docs/modules/rust/fs-database/functions/document.md +0 -48
- package/docs/modules/rust/fs-database/functions/integrity.md +0 -79
- package/docs/modules/rust/fs-database/functions/io.md +0 -87
- package/docs/modules/rust/fs-database/functions/module.md +0 -22
- package/docs/modules/rust/fs-database/functions/query-exec.md +0 -44
- package/docs/modules/rust/fs-database/functions/section.md +0 -76
- package/docs/modules/rust/fs-database/indexes/btree.md +0 -35
- package/docs/modules/rust/fs-database/indexes/corpus.md +0 -61
- package/docs/modules/rust/fs-database/indexes/inverted.md +0 -60
- package/docs/modules/rust/fs-database/indexes/module.md +0 -64
- package/docs/modules/rust/fs-database/indexes/positional.md +0 -39
- package/docs/modules/rust/fs-database/indexes/vectors.md +0 -110
- package/docs/modules/rust/fs-database/module.md +0 -150
- package/docs/modules/rust/fs-database/types/catalog.md +0 -53
- package/docs/modules/rust/fs-database/types/module.md +0 -12
- package/docs/modules/rust/fs-database/types/section.md +0 -127
- package/docs/modules/rust/kb-worker/functions/compose.md +0 -57
- package/docs/modules/rust/kb-worker/functions/module.md +0 -20
- package/docs/modules/rust/kb-worker/functions/retrieve.md +0 -194
- package/docs/modules/rust/kb-worker/functions/search.md +0 -173
- package/docs/modules/rust/kb-worker/functions/write.md +0 -172
- package/docs/modules/rust/kb-worker/module.md +0 -171
- package/docs/modules/rust/kb-worker/types/cache.md +0 -90
- package/docs/modules/rust/kb-worker/types/context.md +0 -26
- package/docs/modules/rust/kb-worker/types/module.md +0 -16
- package/docs/modules/rust/kb-worker/types/status.md +0 -29
- package/docs/modules/rust/kb-worker/types/token.md +0 -50
- package/docs/modules/rust/overview.md +0 -531
- package/docs/modules/rust/query-parser/functions/extract.md +0 -56
- package/docs/modules/rust/query-parser/functions/module.md +0 -18
- package/docs/modules/rust/query-parser/functions/parse.md +0 -33
- package/docs/modules/rust/query-parser/functions/pipeline.md +0 -9
- package/docs/modules/rust/query-parser/functions/rank.md +0 -85
- package/docs/modules/rust/query-parser/module.md +0 -131
- package/docs/modules/rust/query-parser/types/cache.md +0 -39
- package/docs/modules/rust/query-parser/types/keyphrase.md +0 -71
- package/docs/modules/rust/query-parser/types/module.md +0 -18
- package/docs/modules/rust/query-parser/types/token.md +0 -46
- package/docs/modules/rust/shared/content-composer/functions.md +0 -114
- package/docs/modules/rust/shared/content-composer/module.md +0 -147
- package/docs/modules/rust/shared/content-composer/types.md +0 -93
- package/docs/modules/rust/shared/content-parser/functions.md +0 -72
- package/docs/modules/rust/shared/content-parser/module.md +0 -99
- package/docs/modules/rust/shared/content-parser/types.md +0 -71
- package/docs/modules/rust/shared/corpus/module.md +0 -24
- package/docs/modules/rust/shared/corpus/types.md +0 -141
- package/docs/modules/rust/shared/document/module.md +0 -25
- package/docs/modules/rust/shared/document/types.md +0 -154
- package/docs/modules/rust/shared/encode/module.md +0 -22
- package/docs/modules/rust/shared/encode/traits.md +0 -304
- package/docs/modules/rust/shared/error/module.md +0 -28
- package/docs/modules/rust/shared/error/types.md +0 -302
- package/docs/modules/rust/shared/kbid/module.md +0 -24
- package/docs/modules/rust/shared/kbid/types.md +0 -147
- package/docs/modules/rust/shared/memory/functions.md +0 -209
- package/docs/modules/rust/shared/memory/module.md +0 -24
- package/docs/modules/rust/shared/module.md +0 -196
- package/docs/modules/rust/shared/pipeline/functions.md +0 -141
- package/docs/modules/rust/shared/pipeline/module.md +0 -62
- package/docs/modules/rust/shared/pipeline/types.md +0 -43
- package/docs/modules/rust/shared/query/module.md +0 -27
- package/docs/modules/rust/shared/query/types.md +0 -236
- package/docs/modules/rust/shared/section/module.md +0 -25
- package/docs/modules/rust/shared/section/types.md +0 -294
- package/docs/modules/rust/shared/term/module.md +0 -25
- package/docs/modules/rust/shared/term/types.md +0 -139
- package/docs/modules/typescript/cli.md +0 -131
- package/docs/modules/typescript/kbdb-worker.md +0 -150
- package/docs/modules/typescript/overview.md +0 -400
- package/docs/modules/typescript/shared/auto-capture/module.md +0 -73
- package/docs/modules/typescript/shared/cli/constants.md +0 -23
- package/docs/modules/typescript/shared/cli/functions.md +0 -809
- package/docs/modules/typescript/shared/cli/module.md +0 -138
- package/docs/modules/typescript/shared/cli/typings.md +0 -197
- package/docs/modules/typescript/shared/embedding/functions.md +0 -200
- package/docs/modules/typescript/shared/embedding/module.md +0 -77
- package/docs/modules/typescript/shared/embedding/typings.md +0 -124
- package/docs/modules/typescript/shared/hash/functions.md +0 -20
- package/docs/modules/typescript/shared/hash/module.md +0 -21
- package/docs/modules/typescript/shared/log/constants.md +0 -82
- package/docs/modules/typescript/shared/log/functions.md +0 -131
- package/docs/modules/typescript/shared/log/module.md +0 -153
- package/docs/modules/typescript/shared/log/typings.md +0 -82
- package/docs/modules/typescript/shared/mcp/classes.md +0 -179
- package/docs/modules/typescript/shared/mcp/functions.md +0 -386
- package/docs/modules/typescript/shared/mcp/module.md +0 -160
- package/docs/modules/typescript/shared/mcp/typings.md +0 -529
- package/docs/modules/typescript/shared/module.md +0 -110
- package/docs/modules/typescript/shared/platform/functions.md +0 -42
- package/docs/modules/typescript/shared/platform/module.md +0 -25
- package/docs/modules/typescript/shared/runtime/functions.md +0 -26
- package/docs/modules/typescript/shared/runtime/module.md +0 -27
- package/docs/modules/typescript/shared/runtime/typings.md +0 -13
- package/docs/modules/typescript/shared/version/module.md +0 -27
- package/docs/modules/typescript/shared/wasm-codec/functions.md +0 -391
- package/docs/modules/typescript/shared/wasm-codec/module.md +0 -98
- package/docs/modules/typescript/shared/worker-client/classes.md +0 -264
- package/docs/modules/typescript/shared/worker-client/functions.md +0 -175
- package/docs/modules/typescript/shared/worker-client/module.md +0 -92
- package/docs/modules/typescript/shared/worker-client/typings.md +0 -511
- package/docs/modules/typescript/shared/worker-daemon/classes.md +0 -239
- package/docs/modules/typescript/shared/worker-daemon/constants.md +0 -37
- package/docs/modules/typescript/shared/worker-daemon/functions.md +0 -234
- package/docs/modules/typescript/shared/worker-daemon/module.md +0 -118
- package/docs/modules/typescript/shared/worker-daemon/typings.md +0 -132
- package/docs/overview.md +0 -191
- package/docs/release-notes/0.1.0.md +0 -189
- package/docs/release-notes/0.1.1.md +0 -46
- package/docs/release-notes/0.1.2.md +0 -38
- package/docs/release-notes/0.1.3.md +0 -42
- package/docs/release-notes/0.2.0.md +0 -147
- package/docs/release-notes/0.3.0.md +0 -89
- package/docs/release-notes/0.3.1.md +0 -121
- package/docs/release-notes/0.3.2.md +0 -64
- package/docs/release-notes/0.4.0.md +0 -80
- package/docs/release-notes/0.4.1.md +0 -149
- package/docs/release-notes/0.4.3.md +0 -60
- package/docs/release-notes/README.md +0 -13
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
# 0.2.0
|
|
2
|
-
|
|
3
|
-
*Minor release -- 2026-06-21*
|
|
4
|
-
|
|
5
|
-
Adds progressive context recall, paginated search
|
|
6
|
-
results with rich metadata, and a bidirectional
|
|
7
|
-
reference graph. These features give AI agents
|
|
8
|
-
the ability to explore related content across
|
|
9
|
-
sections and documents without loading everything
|
|
10
|
-
at once.
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## New Features
|
|
15
|
-
|
|
16
|
-
- **Recall with layered context (depths 0--3)** --
|
|
17
|
-
New `recall` command (CLI), MCP tool, and IPC
|
|
18
|
-
method. Accepts a `kbid` (or `kbids` for batch)
|
|
19
|
-
and a `depth` parameter that controls how much
|
|
20
|
-
context is returned:
|
|
21
|
-
- Depth 0: section content, heading, type, docids
|
|
22
|
-
- Depth 1: adds parent documents and
|
|
23
|
-
back-references
|
|
24
|
-
- Depth 2: adds sibling sections and forward
|
|
25
|
-
references
|
|
26
|
-
- Depth 3: referenced sections include full
|
|
27
|
-
content
|
|
28
|
-
|
|
29
|
-
- **Paginated search results** -- Search now
|
|
30
|
-
returns a `PagedSearchResult` envelope:
|
|
31
|
-
`{ items, total, offset, limit, has_more }`.
|
|
32
|
-
New `--offset` / `-o` CLI flag. The `offset`
|
|
33
|
-
parameter is available in MCP and IPC as well.
|
|
34
|
-
|
|
35
|
-
- **Rich search result metadata** -- Each search
|
|
36
|
-
result item now includes `heading`, `type`,
|
|
37
|
-
`snippet` (KWIC ~150 chars around matched terms),
|
|
38
|
-
`matched_terms`, and `docids`. Replaces the
|
|
39
|
-
previous `matches: [{term, frequency}]` format.
|
|
40
|
-
|
|
41
|
-
- **Bidirectional reference graph** -- New
|
|
42
|
-
`references.idx` tracks content-marker references
|
|
43
|
-
(`$(link: ...)`, `$(doclink: ...)`, etc.) between
|
|
44
|
-
sections. New WASM exports `db_get_forward_refs`
|
|
45
|
-
and `db_get_back_refs`. Built automatically on
|
|
46
|
-
`learn`/`update`, cleaned on `unlearn`,
|
|
47
|
-
regenerated on `rebuild`.
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## Improvements
|
|
52
|
-
|
|
53
|
-
- **KWIC snippet generation** -- New
|
|
54
|
-
`extract_kwic_snippet()` in the Rust engine
|
|
55
|
-
produces ~150-character context windows around
|
|
56
|
-
matched terms with case-insensitive matching,
|
|
57
|
-
Unicode-safe boundaries, and ellipsis markers.
|
|
58
|
-
|
|
59
|
-
- **MCP search strips score** -- The MCP layer
|
|
60
|
-
omits the `score` field from search results.
|
|
61
|
-
Rank order is the signal for AI agents; raw
|
|
62
|
-
scores are kept in CLI and IPC output for
|
|
63
|
-
debugging.
|
|
64
|
-
|
|
65
|
-
- **Tool annotations** -- All 20 MCP tool
|
|
66
|
-
definitions now include `openWorldHint: false`,
|
|
67
|
-
`readOnlyHint`, `destructiveHint`, and
|
|
68
|
-
`idempotentHint` annotations per the MCP spec.
|
|
69
|
-
|
|
70
|
-
- **Text format paging** -- CLI text output now
|
|
71
|
-
shows a paging footer:
|
|
72
|
-
`Showing 1--20 of 42 results. Use --offset 20 to see more.`
|
|
73
|
-
|
|
74
|
-
- **MCP tool descriptions** -- `search` guides
|
|
75
|
-
agents to use `recall` for full content.
|
|
76
|
-
`retrieve` updated to prefer `recall`.
|
|
77
|
-
|
|
78
|
-
- **Documentation included in package** -- Both
|
|
79
|
-
npm and JSR packages now ship `docs/details/`,
|
|
80
|
-
`docs/goals/`, `docs/modules/`,
|
|
81
|
-
`docs/release-notes/`, and `docs/overview.md`.
|
|
82
|
-
|
|
83
|
-
---
|
|
84
|
-
|
|
85
|
-
## Testing
|
|
86
|
-
|
|
87
|
-
- **548 e2e assertions** on both Node.js and Deno --
|
|
88
|
-
all passing with 0 failures and 0 skips.
|
|
89
|
-
|
|
90
|
-
- **Recall depth testing** -- Cross-referenced
|
|
91
|
-
test data (sections with `$(link: ...)` markers)
|
|
92
|
-
validates depth 0--3 field presence across CLI,
|
|
93
|
-
MCP, and worker IPC.
|
|
94
|
-
|
|
95
|
-
- **Response shape validation** -- Every field in
|
|
96
|
-
the public API is asserted: paged search envelope,
|
|
97
|
-
search item metadata, recall depth fields, skill
|
|
98
|
-
and agent CRUD responses, MCP prompts protocol,
|
|
99
|
-
resource templates, and completions.
|
|
100
|
-
|
|
101
|
-
- **Rust unit tests** -- 21+ new tests for KWIC
|
|
102
|
-
snippet extraction, matched-terms ordering,
|
|
103
|
-
paged result pagination, and section matching.
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
## Breaking Changes
|
|
108
|
-
|
|
109
|
-
- **Search result shape changed** -- Results are
|
|
110
|
-
now wrapped in a `PagedSearchResult` envelope.
|
|
111
|
-
Code that expected a flat array of results must
|
|
112
|
-
read `result.items` instead. Each item's
|
|
113
|
-
`matches` array is replaced by `snippet`,
|
|
114
|
-
`matched_terms`, `heading`, `type`, and `docids`.
|
|
115
|
-
|
|
116
|
-
- **Codec exports renamed** -- `decodeScoredResults`
|
|
117
|
-
is now `decodePagedSearchResult`. `ScoredResult`
|
|
118
|
-
is now `SectionMatch`.
|
|
119
|
-
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
## Internal
|
|
123
|
-
|
|
124
|
-
- Rust engine: reference tracking wired into
|
|
125
|
-
`db_add_section`, `db_update_section`, and
|
|
126
|
-
`db_remove_section`. `worker_search` parses
|
|
127
|
-
4-part format (query/mode/limit/offset).
|
|
128
|
-
`worker_recall` WASM export added.
|
|
129
|
-
- `content-creator` renamed to `content-composer`
|
|
130
|
-
across all code and docs.
|
|
131
|
-
- WASM binaries rebuilt (~8KB and ~35KB larger).
|
|
132
|
-
|
|
133
|
-
---
|
|
134
|
-
|
|
135
|
-
## Upgrade
|
|
136
|
-
|
|
137
|
-
```sh
|
|
138
|
-
# Node.js
|
|
139
|
-
npm install -g @dikolab/kbdb@0.2.0
|
|
140
|
-
|
|
141
|
-
# Deno
|
|
142
|
-
deno install -Agf jsr:@dikolab/kbdb/cli
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
Review the **Breaking Changes** section above if
|
|
146
|
-
you use the library API or parse search results
|
|
147
|
-
programmatically.
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
# 0.3.0
|
|
2
|
-
|
|
3
|
-
*Minor release -- 2026-06-23*
|
|
4
|
-
|
|
5
|
-
Adds supersession, relaxed queries, database export,
|
|
6
|
-
tags, and confidence scoring. The Rust engine gains
|
|
7
|
-
source tracking, near-duplicate detection, and
|
|
8
|
-
synonym expansion.
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## New Features
|
|
13
|
-
|
|
14
|
-
- **Supersession** -- Re-learning from the same
|
|
15
|
-
source automatically replaces outdated sections
|
|
16
|
-
instead of duplicating them. Source key identity
|
|
17
|
-
tracked via SHA-256.
|
|
18
|
-
|
|
19
|
-
- **Relaxed OR fallback** -- When an exact AND
|
|
20
|
-
query returns no results, kbdb automatically
|
|
21
|
-
retries with relaxed OR matching so you always
|
|
22
|
-
get the best available results.
|
|
23
|
-
|
|
24
|
-
- **Database export** -- New `export` CLI command
|
|
25
|
-
and MCP tool. Copies sections, documents, and
|
|
26
|
-
catalog as a self-contained directory snapshot.
|
|
27
|
-
|
|
28
|
-
- **Tags and replace on learn** -- `--tags` attaches
|
|
29
|
-
labels to imported sections for scoped queries.
|
|
30
|
-
`--replace` supersedes existing sections from the
|
|
31
|
-
same source in one step.
|
|
32
|
-
|
|
33
|
-
- **Confidence scoring** -- Search results include
|
|
34
|
-
a normalized BM25F confidence score and
|
|
35
|
-
`matched_fields` (heading, body, code) so agents
|
|
36
|
-
can tell strong matches from weak ones.
|
|
37
|
-
|
|
38
|
-
- **Near-duplicate detection** -- Jaccard similarity
|
|
39
|
-
warns when imported content closely matches an
|
|
40
|
-
existing section, preventing silent drift.
|
|
41
|
-
|
|
42
|
-
- **Default skills** -- `db init` installs
|
|
43
|
-
`query-guidance` and `memory-protocol` skills
|
|
44
|
-
that teach agents how to search and what to store.
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## Improvements
|
|
49
|
-
|
|
50
|
-
- **Synonym expansion pipeline** in the Rust engine
|
|
51
|
-
broadens keyword coverage automatically.
|
|
52
|
-
|
|
53
|
-
- **Matched field tracking** -- Results show which
|
|
54
|
-
fields (heading, body, code) matched the query.
|
|
55
|
-
|
|
56
|
-
- **`created_at` timestamps** in search results.
|
|
57
|
-
|
|
58
|
-
- **Divergent content detection** via integrity
|
|
59
|
-
check catches contradictions between versions.
|
|
60
|
-
|
|
61
|
-
- **GC fix** -- Garbage collection now only removes
|
|
62
|
-
superseded sections, not active ones.
|
|
63
|
-
|
|
64
|
-
- **Reference graph rebuild** included in `rebuild`
|
|
65
|
-
command.
|
|
66
|
-
|
|
67
|
-
- **Writer lock** prevents concurrent WASM writes.
|
|
68
|
-
|
|
69
|
-
- **Worker daemon startup health check** verifies
|
|
70
|
-
WASM modules load correctly.
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
## Testing
|
|
75
|
-
|
|
76
|
-
- **517 e2e assertions (Node.js), 514 (Deno)** --
|
|
77
|
-
all pass with 0 failures.
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
## Upgrade
|
|
82
|
-
|
|
83
|
-
```sh
|
|
84
|
-
# Node.js
|
|
85
|
-
npm install -g @dikolab/kbdb@0.3.0
|
|
86
|
-
|
|
87
|
-
# Deno
|
|
88
|
-
deno install -Agf jsr:@dikolab/kbdb/cli
|
|
89
|
-
```
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
# 0.3.1
|
|
2
|
-
|
|
3
|
-
*Patch release -- 2026-06-23*
|
|
4
|
-
|
|
5
|
-
Fixes MCP request processing reliability, agent
|
|
6
|
-
document persistence, WASM memory safety, and
|
|
7
|
-
eliminates all e2e test skips. Adds the 20th MCP
|
|
8
|
-
tool (`auto-capture-review`).
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## Bug Fixes
|
|
13
|
-
|
|
14
|
-
- **MCP sequential request processing** -- The MCP
|
|
15
|
-
server previously dispatched JSON-RPC requests
|
|
16
|
-
concurrently (fire-and-forget). When multiple
|
|
17
|
-
requests arrived in a batch, later requests could
|
|
18
|
-
execute before earlier ones finished -- for
|
|
19
|
-
example, reading an agent document before it was
|
|
20
|
-
fully written. Requests are now processed
|
|
21
|
-
sequentially via a promise chain, ensuring each
|
|
22
|
-
completes before the next begins.
|
|
23
|
-
|
|
24
|
-
- **Agent document type persistence** -- Agent
|
|
25
|
-
documents created via `agent-create` were missing
|
|
26
|
-
their `doc_type` field, so `listDocumentsByType`
|
|
27
|
-
could not find them. `handleAgentCreate` now
|
|
28
|
-
passes `'agent'` as the document type.
|
|
29
|
-
|
|
30
|
-
- **Agent prompt lookup** -- `prompts/get` for
|
|
31
|
-
agent prompts treated the agent title as a
|
|
32
|
-
document ID, which failed because document IDs
|
|
33
|
-
are content hashes. Now looks up agents by title
|
|
34
|
-
via `listDocumentsByType('agent')`.
|
|
35
|
-
|
|
36
|
-
- **WASM `worker_remove_grouping` double-free** --
|
|
37
|
-
The WASM export returned success without calling
|
|
38
|
-
`set_return`, leaving stale memory in the return
|
|
39
|
-
slot. The next `readReturnSlot` call freed
|
|
40
|
-
already-freed memory, causing a WASM trap. Now
|
|
41
|
-
sets the return slot to null before returning.
|
|
42
|
-
|
|
43
|
-
- **WASM defensive `set_return` calls** -- Added
|
|
44
|
-
null return slot initialization to `worker_init`
|
|
45
|
-
and `worker_init_directory` to prevent the same
|
|
46
|
-
stale-memory pattern from surfacing in edge cases.
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
## New Features
|
|
51
|
-
|
|
52
|
-
- **`auto-capture-review` MCP tool** -- Review and
|
|
53
|
-
approve pending auto-captured knowledge before
|
|
54
|
-
storage. Accepts `action` parameter with values
|
|
55
|
-
`list`, `approve`, or `reject`. This brings the
|
|
56
|
-
MCP server to 20 tools.
|
|
57
|
-
|
|
58
|
-
- **Hybrid search infrastructure** -- New `--algo`
|
|
59
|
-
flag (CLI) and `algo` parameter (MCP/IPC) with
|
|
60
|
-
values `lexical`, `vector`, `hybrid`. Embedding
|
|
61
|
-
module with pluggable provider interface, vector
|
|
62
|
-
index binary format (KBVX), cosine similarity,
|
|
63
|
-
and RRF score fusion. Defaults to `lexical`.
|
|
64
|
-
Concrete embedding providers are deferred -- a
|
|
65
|
-
`NullEmbeddingProvider` is used until one is
|
|
66
|
-
configured.
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
## Testing
|
|
71
|
-
|
|
72
|
-
- **548 e2e assertions** on both Node.js and Deno,
|
|
73
|
-
all passing with **0 failures and 0 skips** (up
|
|
74
|
-
from 517/514 with some skips in 0.3.0).
|
|
75
|
-
|
|
76
|
-
- **E2E test restructuring** -- Test databases
|
|
77
|
-
isolated by category (CLI, MCP, Worker) instead
|
|
78
|
-
of sharing a flat directory. Worker recall tests
|
|
79
|
-
now seed their own cross-reference data instead
|
|
80
|
-
of depending on CLI test data.
|
|
81
|
-
|
|
82
|
-
- **Pre-built WASM in Docker** -- E2E test
|
|
83
|
-
container caches WASM binaries at build time,
|
|
84
|
-
reducing test startup from ~30 seconds to
|
|
85
|
-
sub-second.
|
|
86
|
-
|
|
87
|
-
---
|
|
88
|
-
|
|
89
|
-
## Documentation
|
|
90
|
-
|
|
91
|
-
- **README.md** reorganized for clarity -- shorter
|
|
92
|
-
intro, labeled paragraphs ("How search works",
|
|
93
|
-
"Knowledge stays fresh"), accessible to both
|
|
94
|
-
technical and non-technical readers.
|
|
95
|
-
|
|
96
|
-
- **Architecture overview** rewritten -- simplified
|
|
97
|
-
prose, ASCII architecture diagram, removed stale
|
|
98
|
-
"Remaining" section (WASM host I/O is fully
|
|
99
|
-
implemented).
|
|
100
|
-
|
|
101
|
-
- **MCP server guide** updated with
|
|
102
|
-
`auto-capture-review` tool in reference tables
|
|
103
|
-
and annotations summary.
|
|
104
|
-
|
|
105
|
-
- **Tool counts corrected** across all docs
|
|
106
|
-
(19 -> 20).
|
|
107
|
-
|
|
108
|
-
- **Assertion counts updated** across all docs
|
|
109
|
-
(380+/383 -> 548).
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
## Upgrade
|
|
114
|
-
|
|
115
|
-
```sh
|
|
116
|
-
# Node.js
|
|
117
|
-
npm install -g @dikolab/kbdb@0.3.1
|
|
118
|
-
|
|
119
|
-
# Deno
|
|
120
|
-
deno install -Agf jsr:@dikolab/kbdb/cli
|
|
121
|
-
```
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
# 0.3.2
|
|
2
|
-
|
|
3
|
-
*Patch release -- 2026-06-23*
|
|
4
|
-
|
|
5
|
-
Documentation alignment, hybrid search highlight,
|
|
6
|
-
and readability improvements for non-technical users.
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## Documentation
|
|
11
|
-
|
|
12
|
-
- **Internal doc links use relative paths** --
|
|
13
|
-
README.md links to CLI reference, MCP guide,
|
|
14
|
-
library API, Makefile, release notes, overview,
|
|
15
|
-
and LICENSE now use relative paths instead of
|
|
16
|
-
absolute GitLab URLs. External links (NPM, JSR,
|
|
17
|
-
GitLab homepage) remain absolute.
|
|
18
|
-
|
|
19
|
-
- **Fixed repository URL in overview.md** --
|
|
20
|
-
Corrected `tech-slaves-internal` to `tech-slaves`.
|
|
21
|
-
|
|
22
|
-
- **`--algo` added to CLI reference** -- Search
|
|
23
|
-
Options table now documents the `--algo` flag with
|
|
24
|
-
values `lexical`, `vector`, `hybrid` and a new
|
|
25
|
-
Search Algorithms subsection.
|
|
26
|
-
|
|
27
|
-
- **Hybrid search section in search-and-ranking.md**
|
|
28
|
-
-- New section explains lexical, vector, and hybrid
|
|
29
|
-
algorithms with plain-language descriptions of
|
|
30
|
-
how each works and when to use it.
|
|
31
|
-
|
|
32
|
-
- **Beginner summary in search-and-ranking.md** --
|
|
33
|
-
Three-sentence intro at the top so non-technical
|
|
34
|
-
readers know what the page covers without reading
|
|
35
|
-
the full technical deep-dive.
|
|
36
|
-
|
|
37
|
-
- **Feature lists updated** -- README and overview
|
|
38
|
-
now include auto-capture, sync/export, and
|
|
39
|
-
near-duplicate detection. Design Documents section
|
|
40
|
-
in overview now links to hybrid search,
|
|
41
|
-
auto-capture, and sync goal docs.
|
|
42
|
-
|
|
43
|
-
- **Readability pass** -- Simplified jargon across
|
|
44
|
-
README and overview. "RRF score fusion" becomes
|
|
45
|
-
"blends keyword matching with AI-powered
|
|
46
|
-
similarity". Technology stack table simplified.
|
|
47
|
-
MCP setup examples consolidated from three
|
|
48
|
-
nearly-identical blocks into one with platform
|
|
49
|
-
notes.
|
|
50
|
-
|
|
51
|
-
- **"Vibe coders" added to audience list** in
|
|
52
|
-
overview.md.
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## Upgrade
|
|
57
|
-
|
|
58
|
-
```sh
|
|
59
|
-
# Node.js
|
|
60
|
-
npm install -g @dikolab/kbdb@0.3.2
|
|
61
|
-
|
|
62
|
-
# Deno
|
|
63
|
-
deno install -Agf jsr:@dikolab/kbdb/cli
|
|
64
|
-
```
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
# 0.4.0
|
|
2
|
-
|
|
3
|
-
*Minor release -- 2026-06-25*
|
|
4
|
-
|
|
5
|
-
Rust engine refactor, daemon reliability, publishing
|
|
6
|
-
fixes, and documentation accuracy audit.
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## Engine
|
|
11
|
-
|
|
12
|
-
- **Rust engine refactor** -- extracted specs into
|
|
13
|
-
separate files, split large modules across all
|
|
14
|
-
four crates for readability and maintainability.
|
|
15
|
-
|
|
16
|
-
## Daemon
|
|
17
|
-
|
|
18
|
-
- **Reliability fixes** -- improved daemon startup,
|
|
19
|
-
error handling, and shutdown behaviour.
|
|
20
|
-
- **UX improvements** -- clearer error messages and
|
|
21
|
-
exit codes from the worker daemon.
|
|
22
|
-
|
|
23
|
-
## CLI
|
|
24
|
-
|
|
25
|
-
- **Optional `--db`** -- the `--db` flag is now
|
|
26
|
-
optional. kbdb walks up from the current directory
|
|
27
|
-
to find `.kbdb`. Set `KBDB_DB_DIR` as an
|
|
28
|
-
alternative. Resolution order: `--db` flag >
|
|
29
|
-
`KBDB_DB_DIR` env var > upward traversal from cwd.
|
|
30
|
-
- **Request timeout** -- per-request timeout via
|
|
31
|
-
`--timeout-ms` flag or `KBDB_DAEMON_TIMEOUT` env
|
|
32
|
-
var (default 30 000 ms).
|
|
33
|
-
- **Automatic retry** -- on timeout, the CLI
|
|
34
|
-
respawns the daemon and retries. Configurable via
|
|
35
|
-
`--retry` flag or `KBDB_RETRY` env var (default 5).
|
|
36
|
-
- **Breaking: `KBDB_DIR` renamed to `KBDB_DB_DIR`**
|
|
37
|
-
-- update MCP server configs and scripts that
|
|
38
|
-
reference the old variable name.
|
|
39
|
-
|
|
40
|
-
## MCP Server
|
|
41
|
-
|
|
42
|
-
- **Version reports package version** -- the MCP
|
|
43
|
-
`initialize` response now uses the `VERSION`
|
|
44
|
-
constant instead of a hardcoded `'0.1.0'` string.
|
|
45
|
-
Clients see the real server version.
|
|
46
|
-
- **Retry on timeout** -- tool calls and resource
|
|
47
|
-
reads automatically retry with a fresh daemon
|
|
48
|
-
connection when the worker times out.
|
|
49
|
-
|
|
50
|
-
## Packaging
|
|
51
|
-
|
|
52
|
-
- **Trimmed npm package** -- removed raw TypeScript
|
|
53
|
-
source files from the npm tarball. Package dropped
|
|
54
|
-
from 908 files / 6.7 MB to 545 files / 4.5 MB.
|
|
55
|
-
JSR still includes sources as required.
|
|
56
|
-
|
|
57
|
-
## Documentation
|
|
58
|
-
|
|
59
|
-
- **README accuracy audit** -- removed overstated
|
|
60
|
-
claims about reStructuredText/AsciiDoc parsing
|
|
61
|
-
and sync feature. Added npm/JSR/license badges
|
|
62
|
-
and a beta status line.
|
|
63
|
-
- **CLAUDE.md updated** -- corrected outdated
|
|
64
|
-
statement about the WASM-to-host bridge being
|
|
65
|
-
stubbed. The bridge is fully implemented and
|
|
66
|
-
tested.
|
|
67
|
-
- **Docs alignment** -- knowledge-base guide updated
|
|
68
|
-
to match README on supported file formats.
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## Upgrade
|
|
73
|
-
|
|
74
|
-
```sh
|
|
75
|
-
# Node.js
|
|
76
|
-
npm install -g @dikolab/kbdb@0.4.0
|
|
77
|
-
|
|
78
|
-
# Deno
|
|
79
|
-
deno install -Agf jsr:@dikolab/kbdb/cli
|
|
80
|
-
```
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
# 0.4.1
|
|
2
|
-
|
|
3
|
-
*Patch release -- 2026-06-26*
|
|
4
|
-
|
|
5
|
-
Built-in TF-IDF embedding provider so hybrid search
|
|
6
|
-
works out of the box with zero configuration.
|
|
7
|
-
Structured logging across the entire TypeScript
|
|
8
|
-
layer with configurable verbosity. Daemon lifecycle
|
|
9
|
-
fixes for reliable shutdown on bare Linux TTY.
|
|
10
|
-
Non-interactive mode for scripts, CI, and automated
|
|
11
|
-
testing.
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## Engine
|
|
16
|
-
|
|
17
|
-
- **New WASM crate: `kbdb-default-embedding`** --
|
|
18
|
-
computes 256-dimensional feature-hashed sublinear
|
|
19
|
-
TF vectors using FNV-1a with the sign trick
|
|
20
|
-
(Weinberger et al., 2009). Pure computation, no
|
|
21
|
-
host imports.
|
|
22
|
-
- **Pipeline moved to `kbdb-shared`** -- the 9-stage
|
|
23
|
-
tokenization pipeline (NFC normalization, Unicode
|
|
24
|
-
segmentation, camelCase splitting, stop-word
|
|
25
|
-
removal, synonym expansion, Snowball stemming)
|
|
26
|
-
moved from `kbdb-query-parser` to `kbdb-shared`.
|
|
27
|
-
Both `kbdb-query-parser` and
|
|
28
|
-
`kbdb-default-embedding` now share a single source
|
|
29
|
-
of truth, keeping TF-IDF vectors token-consistent
|
|
30
|
-
with the lexical index.
|
|
31
|
-
|
|
32
|
-
## Daemon
|
|
33
|
-
|
|
34
|
-
- **Loads `default-embedding.wasm` at startup** --
|
|
35
|
-
the worker daemon loads the new standalone WASM
|
|
36
|
-
module alongside the existing `kb-worker.wasm`.
|
|
37
|
-
If the module is missing, the daemon gracefully
|
|
38
|
-
falls back to `NullEmbeddingProvider`.
|
|
39
|
-
- **Daemon lifecycle fixes** -- socket-level
|
|
40
|
-
connection tracking replaces the broken
|
|
41
|
-
server-level `close` handler, so the idle timer
|
|
42
|
-
fires correctly. `stop()` force-closes lingering
|
|
43
|
-
sockets. `worker stop` polls until the daemon
|
|
44
|
-
actually exits (5 s cap) instead of fire-and-forget
|
|
45
|
-
SIGTERM. `retryOnTimeout` kills a stuck daemon
|
|
46
|
-
before spawning a fresh one.
|
|
47
|
-
- **Accepts `--log-level`** -- the daemon parses an
|
|
48
|
-
optional `--log-level <level>` argument forwarded
|
|
49
|
-
by the spawner from the `KBDB_LOG_LEVEL` env var.
|
|
50
|
-
|
|
51
|
-
## CLI
|
|
52
|
-
|
|
53
|
-
- **`--non-interactive` flag** -- suppresses
|
|
54
|
-
interactive prompts and uses default values.
|
|
55
|
-
When set, data commands that find no `.kbdb`
|
|
56
|
-
directory return an error instead of prompting
|
|
57
|
-
to create one.
|
|
58
|
-
- **`KBDB_NON_INTERACTIVE` env var** -- same effect
|
|
59
|
-
as `--non-interactive`. Accepts `1` or `true`.
|
|
60
|
-
CLI flag takes priority.
|
|
61
|
-
- **Deprecation warnings fixed** -- `--init` and
|
|
62
|
-
`--migrate` deprecation messages now emit at all
|
|
63
|
-
log levels. Previously they fired before log
|
|
64
|
-
configuration and were suppressed.
|
|
65
|
-
|
|
66
|
-
## Embedding
|
|
67
|
-
|
|
68
|
-
- **`TfidfEmbeddingProvider`** -- new provider backed
|
|
69
|
-
by the `kbdb-default-embedding` WASM module.
|
|
70
|
-
Returns 256-dimensional L2-normalized vectors.
|
|
71
|
-
Model name: `tfidf-v1`.
|
|
72
|
-
- **New factory default** -- when no `[embedding]`
|
|
73
|
-
section is present in `worker.toml`, the factory
|
|
74
|
-
returns `TfidfEmbeddingProvider` instead of
|
|
75
|
-
`NullEmbeddingProvider`. Hybrid and vector search
|
|
76
|
-
work without configuration.
|
|
77
|
-
- **Explicit disable** -- setting `provider = "none"`
|
|
78
|
-
in `worker.toml` still returns
|
|
79
|
-
`NullEmbeddingProvider`, which rejects hybrid and
|
|
80
|
-
vector search with a structured error.
|
|
81
|
-
|
|
82
|
-
## Logging
|
|
83
|
-
|
|
84
|
-
- **New `log` module** (`src/shared/log/`) --
|
|
85
|
-
structured logging with four levels (`DEBUG`,
|
|
86
|
-
`INFO`, `WARNING`, `ERROR`), per-level Unicode
|
|
87
|
-
icons (▸ℹ⚠✖), per-level ANSI colors, and
|
|
88
|
-
configurable output targets. Default level is
|
|
89
|
-
`ERROR` (errors only).
|
|
90
|
-
- **CLI verbose flags** -- `-v` (warnings), `-vv`
|
|
91
|
-
(info), `-vvv` (debug). `-v` is reassigned from
|
|
92
|
-
`--version` to `--verbose`; `--version` has no
|
|
93
|
-
short alias.
|
|
94
|
-
- **`KBDB_LOG_LEVEL` env var** -- accepts `debug`,
|
|
95
|
-
`info`, `warning`, `error` (case-insensitive).
|
|
96
|
-
CLI flags take priority over the env var.
|
|
97
|
-
- **Comprehensive lifecycle logging** -- milestone
|
|
98
|
-
logging at key process points across CLI command
|
|
99
|
-
runners, MCP server lifecycle, worker daemon IPC
|
|
100
|
-
dispatch, embedding providers, worker client
|
|
101
|
-
discovery, and auto-capture. Full IPC lifecycle
|
|
102
|
-
coverage: daemon startup/shutdown, socket
|
|
103
|
-
connections, request dispatch, retry logic,
|
|
104
|
-
daemon discovery, write lock events, and idle
|
|
105
|
-
timer. Pre-throw error logging at all throw
|
|
106
|
-
sites. All `console.error` calls replaced with
|
|
107
|
-
`log()`.
|
|
108
|
-
|
|
109
|
-
## Documentation
|
|
110
|
-
|
|
111
|
-
- **Hybrid search docs aligned** -- updated
|
|
112
|
-
architecture, CLI/MCP surface, and design
|
|
113
|
-
constraint sections to reflect the new WASM crate
|
|
114
|
-
and `--algo` flag.
|
|
115
|
-
- **Worker daemon docs updated** -- WASM module
|
|
116
|
-
count, loading diagram, and distribution section
|
|
117
|
-
now describe four modules.
|
|
118
|
-
- **Factory docs corrected** -- `type:` references
|
|
119
|
-
fixed to `provider:`, factory mapping table
|
|
120
|
-
updated for the new default.
|
|
121
|
-
- **Log module docs added** -- module overview,
|
|
122
|
-
functions reference, typings reference, and
|
|
123
|
-
constants reference under
|
|
124
|
-
`docs/modules/typescript/shared/log/`.
|
|
125
|
-
- **CLI and worker daemon docs updated** -- verbose
|
|
126
|
-
flags (`-v`/`-vv`/`-vvv`), `--log-level` arg,
|
|
127
|
-
`KBDB_LOG_LEVEL` env var documented across CLI,
|
|
128
|
-
worker daemon, and shared module pages.
|
|
129
|
-
- **E2E test harness hardened** -- `run_kbdb`
|
|
130
|
-
wrapper wraps all `kbdb` calls in `timeout -k 5`
|
|
131
|
-
with SIGKILL fallback. Timeouts report as test
|
|
132
|
-
failures. GNU `coreutils` added to Docker image.
|
|
133
|
-
Non-interactive mode enabled for all E2E tests.
|
|
134
|
-
- **Completed todos and issues archived** -- three
|
|
135
|
-
todo docs (pipeline move, TF-IDF provider, default
|
|
136
|
-
wiring) and two issue docs (daemon lifecycle hang,
|
|
137
|
-
hybrid search errors) moved to `archived/`.
|
|
138
|
-
|
|
139
|
-
---
|
|
140
|
-
|
|
141
|
-
## Upgrade
|
|
142
|
-
|
|
143
|
-
```sh
|
|
144
|
-
# Node.js
|
|
145
|
-
npm install -g @dikolab/kbdb@0.4.1
|
|
146
|
-
|
|
147
|
-
# Deno
|
|
148
|
-
deno install -Agf jsr:@dikolab/kbdb/cli
|
|
149
|
-
```
|