@dikolab/kbdb 0.3.0 → 0.3.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/README.md +89 -120
- package/dist/bench/constants/corpus-defaults.constant.d.ts +3 -0
- package/dist/bench/functions/format-report.function.d.ts +11 -0
- package/dist/bench/functions/generate-corpus.function.d.ts +12 -0
- package/dist/bench/functions/measure-operation.function.d.ts +14 -0
- package/dist/bench/functions/seeded-rng.function.d.ts +11 -0
- package/dist/bench/functions/zipf-word.function.d.ts +13 -0
- package/dist/bench/index.d.ts +10 -0
- package/dist/bench/typings/bench-result.interface.d.ts +11 -0
- package/dist/bench/typings/bench-suite-result.interface.d.ts +10 -0
- package/dist/bench/typings/corpus-config.interface.d.ts +11 -0
- package/dist/bench/typings/corpus-section.interface.d.ts +9 -0
- package/dist/cli.cjs +63 -9
- package/dist/cli.cjs.map +2 -2
- package/dist/cli.mjs +63 -9
- package/dist/cli.mjs.map +2 -2
- package/dist/src/shared/auto-capture/classes/auto-capture-controller.class.d.ts +33 -0
- package/dist/src/shared/auto-capture/constants/auto-capture-defaults.constant.d.ts +8 -0
- package/dist/src/shared/auto-capture/functions/build-capture-prompt.function.d.ts +11 -0
- package/dist/src/shared/auto-capture/functions/evaluate-trigger.function.d.ts +12 -0
- package/dist/src/shared/auto-capture/index.d.ts +7 -0
- package/dist/src/shared/auto-capture/typings/auto-capture-config.interface.d.ts +13 -0
- package/dist/src/shared/auto-capture/typings/auto-capture-state.interface.d.ts +13 -0
- package/dist/src/shared/auto-capture/typings/auto-capture-trigger.interface.d.ts +7 -0
- package/dist/src/shared/cli/constants/global-help.constant.d.ts +8 -0
- package/dist/src/shared/cli/constants/leaf-help.constant.d.ts +7 -0
- package/dist/src/shared/cli/constants/memory-protocol-body.constant.d.ts +7 -0
- package/dist/src/shared/cli/constants/query-guidance-body.constant.d.ts +7 -0
- package/dist/src/shared/cli/constants/subcommand-help.constant.d.ts +8 -0
- package/dist/src/shared/cli/functions/collect-files.function.d.ts +13 -0
- package/dist/src/shared/cli/functions/compute-section-kbid.function.d.ts +15 -0
- package/dist/src/shared/cli/functions/format-mcp-output.function.d.ts +9 -0
- package/dist/src/shared/cli/functions/format-text-output.function.d.ts +9 -0
- package/dist/src/shared/cli/functions/generate-group-help.function.d.ts +11 -0
- package/dist/src/shared/cli/functions/handle-data-command.function.d.ts +16 -0
- package/dist/src/shared/cli/functions/handle-mcp.function.d.ts +15 -0
- package/dist/src/shared/cli/functions/handle-migrate.function.d.ts +15 -0
- package/dist/src/shared/cli/functions/hydrate-search-previews.function.d.ts +14 -0
- package/dist/src/shared/cli/functions/resolve-skill-names.function.d.ts +16 -0
- package/dist/src/shared/cli/functions/run-search.function.d.ts +1 -0
- package/dist/src/shared/cli/functions/version-gate.function.d.ts +15 -0
- package/dist/src/shared/cli/functions/wrap-command.function.d.ts +15 -0
- package/dist/src/shared/cli/typings/agent-create-client.interface.d.ts +42 -0
- package/dist/src/shared/cli/typings/agent-get-client.interface.d.ts +36 -0
- package/dist/src/shared/cli/typings/check-client.interface.d.ts +58 -0
- package/dist/src/shared/cli/typings/cli-deps.interface.d.ts +48 -0
- package/dist/src/shared/cli/typings/cli-options.interface.d.ts +2 -0
- package/dist/src/shared/cli/typings/disconnectable-client.interface.d.ts +26 -0
- package/dist/src/shared/cli/typings/dispatch-client.type.d.ts +27 -0
- package/dist/src/shared/cli/typings/learn-client.interface.d.ts +52 -0
- package/dist/src/shared/cli/typings/learn-io.interface.d.ts +5 -0
- package/dist/src/shared/cli/typings/search-client.interface.d.ts +71 -0
- package/dist/src/shared/embedding/classes/null-embedding-provider.class.d.ts +20 -0
- package/dist/src/shared/embedding/constants/near-duplicate-thresholds.constant.d.ts +15 -0
- package/dist/src/shared/embedding/functions/build-vector-index.function.d.ts +14 -0
- package/dist/src/shared/embedding/functions/cosine-similarity.function.d.ts +10 -0
- package/dist/src/shared/embedding/functions/detect-near-duplicates.function.d.ts +18 -0
- package/dist/src/shared/embedding/functions/jaccard-coefficient.function.d.ts +9 -0
- package/dist/src/shared/embedding/functions/read-vector-index-meta.function.d.ts +10 -0
- package/dist/src/shared/embedding/functions/rrf-fuse.function.d.ts +14 -0
- package/dist/src/shared/embedding/functions/search-vectors.function.d.ts +14 -0
- package/dist/src/shared/embedding/index.d.ts +16 -0
- package/dist/src/shared/embedding/typings/embedding-config.interface.d.ts +20 -0
- package/dist/src/shared/embedding/typings/embedding-provider.interface.d.ts +23 -0
- package/dist/src/shared/embedding/typings/near-duplicate-candidate.model.d.ts +23 -0
- package/dist/src/shared/embedding/typings/near-duplicate-result.model.d.ts +24 -0
- package/dist/src/shared/embedding/typings/vector-index-entry.model.d.ts +12 -0
- package/dist/src/shared/embedding/typings/vector-index-meta.model.d.ts +11 -0
- package/dist/src/shared/embedding/typings/vector-search-result.model.d.ts +7 -0
- package/dist/src/shared/mcp/constants/tool-agent-create.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-agent-delete.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-agent-get.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-agent-list.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-auto-capture-review.constant.d.ts +8 -0
- package/dist/src/shared/mcp/constants/tool-check.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-content.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-export.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-gc.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-learn.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-rebuild.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-recall.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-retrieve.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-search.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-skill-delete.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-skill-get.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-skill-learn.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-skill-list.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-status.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-unlearn.constant.d.ts +3 -0
- package/dist/src/shared/mcp/functions/as-boolean-or-undefined.function.d.ts +7 -0
- package/dist/src/shared/mcp/functions/as-string-array-or-undefined.function.d.ts +7 -0
- package/dist/src/shared/mcp/functions/as-string-array.function.d.ts +7 -0
- package/dist/src/shared/mcp/functions/as-string.function.d.ts +8 -0
- package/dist/src/shared/mcp/functions/build-skills-text.function.d.ts +18 -0
- package/dist/src/shared/mcp/functions/handle-agent-prompt.function.d.ts +14 -0
- package/dist/src/shared/mcp/functions/handle-mcp-request.function.d.ts +14 -0
- package/dist/src/shared/mcp/functions/handle-prompt-get.function.d.ts +4 -3
- package/dist/src/shared/mcp/functions/handle-skill-prompt.function.d.ts +16 -0
- package/dist/src/shared/mcp/functions/handle-tool-auto-capture-review.function.d.ts +12 -0
- package/dist/src/shared/mcp/functions/handle-tool-check.function.d.ts +11 -0
- package/dist/src/shared/mcp/functions/handle-tool-content.function.d.ts +12 -0
- package/dist/src/shared/mcp/functions/handle-tool-export.function.d.ts +12 -0
- package/dist/src/shared/mcp/functions/handle-tool-gc.function.d.ts +11 -0
- package/dist/src/shared/mcp/functions/handle-tool-learn.function.d.ts +12 -0
- package/dist/src/shared/mcp/functions/handle-tool-rebuild.function.d.ts +11 -0
- package/dist/src/shared/mcp/functions/handle-tool-retrieve.function.d.ts +12 -0
- package/dist/src/shared/mcp/functions/handle-tool-search.function.d.ts +13 -0
- package/dist/src/shared/mcp/functions/handle-tool-skill-delete.function.d.ts +12 -0
- package/dist/src/shared/mcp/functions/handle-tool-skill-get.function.d.ts +13 -0
- package/dist/src/shared/mcp/functions/handle-tool-skill-learn.function.d.ts +13 -0
- package/dist/src/shared/mcp/functions/handle-tool-skill-list.function.d.ts +11 -0
- package/dist/src/shared/mcp/functions/handle-tool-status.function.d.ts +11 -0
- package/dist/src/shared/mcp/functions/handle-tool-unlearn.function.d.ts +12 -0
- package/dist/src/shared/mcp/functions/parse-agent-meta.function.d.ts +14 -0
- package/dist/src/shared/mcp/functions/parse-skill-arguments.function.d.ts +11 -0
- package/dist/src/shared/mcp/functions/read-agent-meta.function.d.ts +17 -0
- package/dist/src/shared/mcp/functions/resolve-skill-refs.function.d.ts +23 -0
- package/dist/src/shared/mcp/functions/run-startup-health-check.function.d.ts +14 -0
- package/dist/src/shared/mcp/typings/mcp-capabilities.interface.d.ts +16 -0
- package/dist/src/shared/mcp/typings/mcp-client.interface.d.ts +2 -0
- package/dist/src/shared/mcp/typings/mcp-completion.interface.d.ts +43 -0
- package/dist/src/shared/mcp/typings/mcp-content-result.model.d.ts +9 -0
- package/dist/src/shared/mcp/typings/mcp-export-result.model.d.ts +11 -0
- package/dist/src/shared/mcp/typings/mcp-gc-result.model.d.ts +15 -0
- package/dist/src/shared/mcp/typings/mcp-integrity-check-result.model.d.ts +16 -0
- package/dist/src/shared/mcp/typings/mcp-integrity-error.model.d.ts +9 -0
- package/dist/src/shared/mcp/typings/mcp-notification.interface.d.ts +9 -0
- package/dist/src/shared/mcp/typings/mcp-rebuild-result.model.d.ts +9 -0
- package/dist/src/shared/mcp/typings/mcp-request.interface.d.ts +11 -0
- package/dist/src/shared/mcp/typings/mcp-resource-result.interface.d.ts +12 -0
- package/dist/src/shared/mcp/typings/mcp-resource-template.interface.d.ts +11 -0
- package/dist/src/shared/mcp/typings/mcp-response.interface.d.ts +18 -0
- package/dist/src/shared/mcp/typings/mcp-server-info.interface.d.ts +7 -0
- package/dist/src/shared/mcp/typings/mcp-server-state.interface.d.ts +16 -0
- package/dist/src/shared/mcp/typings/mcp-tool-annotations.interface.d.ts +32 -0
- package/dist/src/shared/mcp/typings/mcp-tool-definition.interface.d.ts +15 -0
- package/dist/src/shared/mcp/typings/mcp-tool-result.interface.d.ts +19 -0
- package/dist/src/shared/mcp/typings/mcp-worker-client.interface.d.ts +220 -0
- package/dist/src/shared/mcp/typings/tool-call-result.model.d.ts +17 -0
- package/dist/src/shared/sync/functions/build-import-report.function.d.ts +18 -0
- package/dist/src/shared/sync/functions/parse-export-entry.function.d.ts +11 -0
- package/dist/src/shared/sync/functions/resolve-conflict.function.d.ts +13 -0
- package/dist/src/shared/sync/functions/serialize-export-entry.function.d.ts +8 -0
- package/dist/src/shared/sync/index.d.ts +9 -0
- package/dist/src/shared/sync/typings/conflict-resolution.type.d.ts +8 -0
- package/dist/src/shared/sync/typings/export-entry.interface.d.ts +13 -0
- package/dist/src/shared/sync/typings/export-options.interface.d.ts +9 -0
- package/dist/src/shared/sync/typings/import-options.interface.d.ts +7 -0
- package/dist/src/shared/sync/typings/import-report.interface.d.ts +15 -0
- package/dist/src/shared/wasm-codec/functions/decode-one-recall-result.function.d.ts +14 -0
- package/dist/src/shared/wasm-codec/functions/decode-option-string.function.d.ts +12 -0
- package/dist/src/shared/wasm-codec/functions/decode-recall-document.function.d.ts +14 -0
- package/dist/src/shared/wasm-codec/functions/decode-recall-reference.function.d.ts +14 -0
- package/dist/src/shared/wasm-codec/functions/decode-recall-sibling.function.d.ts +13 -0
- package/dist/src/shared/wasm-codec/functions/decode-section-match.function.d.ts +15 -0
- package/dist/src/shared/wasm-codec/functions/decode-section-record-trailing.function.d.ts +14 -0
- package/dist/src/shared/wasm-codec/functions/decode-section-record.function.d.ts +14 -0
- package/dist/src/shared/wasm-codec/functions/decode-section-type.function.d.ts +13 -0
- package/dist/src/shared/wasm-codec/functions/decode-wasm-list.function.d.ts +17 -0
- package/dist/src/shared/wasm-codec/typings/add-section-input.model.d.ts +45 -0
- package/dist/src/shared/wasm-codec/typings/add-section-result.model.d.ts +27 -0
- package/dist/src/shared/wasm-codec/typings/document-manifest.model.d.ts +19 -0
- package/dist/src/shared/wasm-codec/typings/document-section.model.d.ts +12 -0
- package/dist/src/shared/wasm-codec/typings/item-decoder.type.d.ts +6 -0
- package/dist/src/shared/wasm-codec/typings/near-duplicate.model.d.ts +16 -0
- package/dist/src/shared/wasm-codec/typings/paged-search-result.model.d.ts +21 -0
- package/dist/src/shared/wasm-codec/typings/section-match.model.d.ts +31 -0
- package/dist/src/shared/wasm-codec/typings/section-record-trailing.model.d.ts +38 -0
- package/dist/src/shared/wasm-codec/typings/section-record.model.d.ts +66 -0
- package/dist/src/shared/wasm-codec/typings/section-type-result.model.d.ts +12 -0
- package/dist/src/shared/worker-client/functions/handle-ipc-data.function.d.ts +16 -0
- package/dist/src/shared/worker-client/functions/send-ipc-request.function.d.ts +19 -0
- package/dist/src/shared/worker-client/typings/add-section-result.model.d.ts +2 -0
- package/dist/src/shared/worker-client/typings/json-rpc-response.interface.d.ts +16 -0
- package/dist/src/shared/worker-client/typings/pending-call.interface.d.ts +7 -0
- package/dist/src/shared/worker-client/typings/recall-document.model.d.ts +16 -0
- package/dist/src/shared/worker-client/typings/recall-params.model.d.ts +15 -0
- package/dist/src/shared/worker-client/typings/recall-reference.model.d.ts +32 -0
- package/dist/src/shared/worker-client/typings/recall-sibling.model.d.ts +11 -0
- package/dist/src/shared/worker-client/typings/recall-single-result.model.d.ts +40 -0
- package/dist/src/shared/worker-daemon/classes/ipc-error.class.d.ts +17 -0
- package/dist/src/shared/worker-daemon/constants/wasm-method-map.constant.d.ts +16 -0
- package/dist/src/shared/worker-daemon/functions/build-ipc-error-response.function.d.ts +9 -0
- package/dist/src/shared/worker-daemon/functions/check-catalog-version.function.d.ts +9 -0
- package/dist/src/shared/worker-daemon/functions/check-preconditions.function.d.ts +10 -0
- package/dist/src/shared/worker-daemon/functions/detect-stale-pid.function.d.ts +15 -0
- package/dist/src/shared/worker-daemon/functions/dispatch-request.function.d.ts +35 -0
- package/dist/src/shared/worker-daemon/functions/handle-check-version.function.d.ts +23 -0
- package/dist/src/shared/worker-daemon/functions/handle-config-method.function.d.ts +11 -0
- package/dist/src/shared/worker-daemon/functions/handle-read-ops.function.d.ts +52 -0
- package/dist/src/shared/worker-daemon/functions/handle-write-ops.function.d.ts +44 -0
- package/dist/src/shared/worker-daemon/functions/parse-auto-capture-section.function.d.ts +14 -0
- package/dist/src/shared/worker-daemon/functions/parse-catalog-version.function.d.ts +10 -0
- package/dist/src/shared/worker-daemon/functions/parse-embedding-section.function.d.ts +13 -0
- package/dist/src/shared/worker-daemon/functions/parse-worker-toml.function.d.ts +11 -0
- package/dist/src/shared/worker-daemon/functions/run-startup-integrity-check.function.d.ts +18 -0
- package/dist/src/shared/worker-daemon/functions/scan-near-duplicates.function.d.ts +21 -0
- package/dist/src/shared/worker-daemon/functions/wasm-bridge.function.d.ts +51 -0
- package/dist/src/shared/worker-daemon/functions/wasm-memory-helpers.function.d.ts +22 -0
- package/dist/src/shared/worker-daemon/functions/write-lock.function.d.ts +32 -0
- package/dist/src/shared/worker-daemon/typings/allocator-ref.interface.d.ts +16 -0
- package/dist/src/shared/worker-daemon/typings/daemon-config.interface.d.ts +6 -0
- package/dist/src/shared/worker-daemon/typings/fs-adapter.interface.d.ts +22 -0
- package/dist/src/shared/worker-daemon/typings/handler-context.interface.d.ts +18 -0
- package/dist/src/shared/worker-daemon/typings/memory-ref.interface.d.ts +13 -0
- package/dist/src/shared/worker-daemon/typings/wasm-fn.type.d.ts +2 -0
- package/dist/src/shared/worker-daemon/typings/write-lock.interface.d.ts +15 -0
- package/dist/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
- package/dist/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
- package/docs/details/cli.md +9 -0
- package/docs/details/mcp-server.md +5 -3
- package/docs/details/search-and-ranking.md +55 -0
- package/docs/goals/auto-capture.md +378 -0
- package/docs/goals/benchmarking.md +296 -0
- package/docs/goals/concurrency.md +259 -0
- package/docs/goals/hybrid-search.md +436 -0
- package/docs/goals/semantic-dedup.md +229 -0
- package/docs/goals/sync.md +217 -0
- package/docs/modules/rust/fs-database/indexes/vectors.md +110 -0
- package/docs/modules/typescript/shared/auto-capture/module.md +73 -0
- package/docs/modules/typescript/shared/embedding/functions.md +94 -0
- package/docs/modules/typescript/shared/embedding/module.md +71 -0
- package/docs/modules/typescript/shared/embedding/typings.md +122 -0
- package/docs/overview.md +171 -167
- package/docs/release-notes/0.2.0.md +3 -3
- package/docs/release-notes/0.3.0.md +89 -0
- package/docs/release-notes/0.3.1.md +121 -0
- package/docs/release-notes/0.3.2.md +64 -0
- package/docs/release-notes/README.md +3 -0
- package/package.json +1 -1
- package/src/shared/auto-capture/classes/auto-capture-controller.class.ts +62 -0
- package/src/shared/auto-capture/constants/auto-capture-defaults.constant.ts +15 -0
- package/src/shared/auto-capture/functions/build-capture-prompt.function.ts +27 -0
- package/src/shared/auto-capture/functions/evaluate-trigger.function.ts +50 -0
- package/src/shared/auto-capture/index.ts +7 -0
- package/src/shared/auto-capture/typings/auto-capture-config.interface.ts +13 -0
- package/src/shared/auto-capture/typings/auto-capture-state.interface.ts +13 -0
- package/src/shared/auto-capture/typings/auto-capture-trigger.interface.ts +7 -0
- package/src/shared/cli/constants/global-help.constant.ts +73 -0
- package/src/shared/cli/constants/leaf-help.constant.ts +219 -0
- package/src/shared/cli/constants/memory-protocol-body.constant.ts +39 -0
- package/src/shared/cli/constants/query-guidance-body.constant.ts +37 -0
- package/src/shared/cli/constants/subcommand-help.constant.ts +195 -0
- package/src/shared/cli/functions/collect-files.function.ts +55 -0
- package/src/shared/cli/functions/compute-section-kbid.function.ts +49 -0
- package/src/shared/cli/functions/format-mcp-output.function.ts +41 -0
- package/src/shared/cli/functions/format-text-output.function.ts +42 -0
- package/src/shared/cli/functions/generate-group-help.function.ts +41 -0
- package/src/shared/cli/functions/handle-data-command.function.ts +67 -0
- package/src/shared/cli/functions/handle-mcp.function.ts +56 -0
- package/src/shared/cli/functions/handle-migrate.function.ts +64 -0
- package/src/shared/cli/functions/hydrate-search-previews.function.ts +29 -0
- package/src/shared/cli/functions/parse-args.function.ts +3 -0
- package/src/shared/cli/functions/resolve-skill-names.function.ts +43 -0
- package/src/shared/cli/functions/run-search.function.ts +2 -0
- package/src/shared/cli/functions/version-gate.function.ts +44 -0
- package/src/shared/cli/functions/wrap-command.function.ts +34 -0
- package/src/shared/cli/typings/agent-create-client.interface.ts +47 -0
- package/src/shared/cli/typings/agent-get-client.interface.ts +39 -0
- package/src/shared/cli/typings/check-client.interface.ts +66 -0
- package/src/shared/cli/typings/cli-deps.interface.ts +54 -0
- package/src/shared/cli/typings/cli-options.interface.ts +2 -0
- package/src/shared/cli/typings/disconnectable-client.interface.ts +29 -0
- package/src/shared/cli/typings/dispatch-client.type.ts +46 -0
- package/src/shared/cli/typings/learn-client.interface.ts +53 -0
- package/src/shared/cli/typings/learn-io.interface.ts +5 -0
- package/src/shared/cli/typings/search-client.interface.ts +73 -0
- package/src/shared/embedding/classes/null-embedding-provider.class.ts +29 -0
- package/src/shared/embedding/constants/near-duplicate-thresholds.constant.ts +17 -0
- package/src/shared/embedding/functions/build-vector-index.function.ts +79 -0
- package/src/shared/embedding/functions/cosine-similarity.function.ts +31 -0
- package/src/shared/embedding/functions/detect-near-duplicates.function.ts +69 -0
- package/src/shared/embedding/functions/jaccard-coefficient.function.ts +26 -0
- package/src/shared/embedding/functions/read-vector-index-meta.function.ts +44 -0
- package/src/shared/embedding/functions/rrf-fuse.function.ts +33 -0
- package/src/shared/embedding/functions/search-vectors.function.ts +59 -0
- package/src/shared/embedding/index.ts +20 -0
- package/src/shared/embedding/typings/embedding-config.interface.ts +23 -0
- package/src/shared/embedding/typings/embedding-provider.interface.ts +25 -0
- package/src/shared/embedding/typings/near-duplicate-candidate.model.ts +25 -0
- package/src/shared/embedding/typings/near-duplicate-result.model.ts +26 -0
- package/src/shared/embedding/typings/vector-index-entry.model.ts +13 -0
- package/src/shared/embedding/typings/vector-index-meta.model.ts +14 -0
- package/src/shared/embedding/typings/vector-search-result.model.ts +8 -0
- package/src/shared/mcp/classes/mcp-server.class.ts +6 -3
- package/src/shared/mcp/constants/tool-agent-create.constant.ts +39 -0
- package/src/shared/mcp/constants/tool-agent-delete.constant.ts +26 -0
- package/src/shared/mcp/constants/tool-agent-get.constant.ts +24 -0
- package/src/shared/mcp/constants/tool-agent-list.constant.ts +18 -0
- package/src/shared/mcp/constants/tool-auto-capture-review.constant.ts +32 -0
- package/src/shared/mcp/constants/tool-check.constant.ts +21 -0
- package/src/shared/mcp/constants/tool-content.constant.ts +29 -0
- package/src/shared/mcp/constants/tool-export.constant.ts +27 -0
- package/src/shared/mcp/constants/tool-gc.constant.ts +21 -0
- package/src/shared/mcp/constants/tool-learn.constant.ts +58 -0
- package/src/shared/mcp/constants/tool-rebuild.constant.ts +21 -0
- package/src/shared/mcp/constants/tool-recall.constant.ts +36 -0
- package/src/shared/mcp/constants/tool-retrieve.constant.ts +31 -0
- package/src/shared/mcp/constants/tool-search.constant.ts +51 -0
- package/src/shared/mcp/constants/tool-skill-delete.constant.ts +24 -0
- package/src/shared/mcp/constants/tool-skill-get.constant.ts +27 -0
- package/src/shared/mcp/constants/tool-skill-learn.constant.ts +37 -0
- package/src/shared/mcp/constants/tool-skill-list.constant.ts +18 -0
- package/src/shared/mcp/constants/tool-status.constant.ts +20 -0
- package/src/shared/mcp/constants/tool-unlearn.constant.ts +25 -0
- package/src/shared/mcp/functions/as-boolean-or-undefined.function.ts +11 -0
- package/src/shared/mcp/functions/as-string-array-or-undefined.function.ts +17 -0
- package/src/shared/mcp/functions/as-string-array.function.ts +15 -0
- package/src/shared/mcp/functions/as-string.function.ts +10 -0
- package/src/shared/mcp/functions/build-skills-text.function.ts +43 -0
- package/src/shared/mcp/functions/create-tool-definitions.function.ts +28 -0
- package/src/shared/mcp/functions/handle-agent-create.function.ts +1 -1
- package/src/shared/mcp/functions/handle-agent-prompt.function.ts +68 -0
- package/src/shared/mcp/functions/handle-mcp-request.function.ts +202 -0
- package/src/shared/mcp/functions/handle-prompt-get.function.ts +18 -12
- package/src/shared/mcp/functions/handle-skill-prompt.function.ts +44 -0
- package/src/shared/mcp/functions/handle-tool-auto-capture-review.function.ts +24 -0
- package/src/shared/mcp/functions/handle-tool-call.function.ts +18 -0
- package/src/shared/mcp/functions/handle-tool-check.function.ts +21 -0
- package/src/shared/mcp/functions/handle-tool-content.function.ts +23 -0
- package/src/shared/mcp/functions/handle-tool-export.function.ts +25 -0
- package/src/shared/mcp/functions/handle-tool-gc.function.ts +21 -0
- package/src/shared/mcp/functions/handle-tool-learn.function.ts +69 -0
- package/src/shared/mcp/functions/handle-tool-rebuild.function.ts +21 -0
- package/src/shared/mcp/functions/handle-tool-retrieve.function.ts +40 -0
- package/src/shared/mcp/functions/handle-tool-search.function.ts +47 -0
- package/src/shared/mcp/functions/handle-tool-skill-delete.function.ts +34 -0
- package/src/shared/mcp/functions/handle-tool-skill-get.function.ts +59 -0
- package/src/shared/mcp/functions/handle-tool-skill-learn.function.ts +61 -0
- package/src/shared/mcp/functions/handle-tool-skill-list.function.ts +39 -0
- package/src/shared/mcp/functions/handle-tool-status.function.ts +21 -0
- package/src/shared/mcp/functions/handle-tool-unlearn.function.ts +24 -0
- package/src/shared/mcp/functions/parse-agent-meta.function.ts +27 -0
- package/src/shared/mcp/functions/parse-skill-arguments.function.ts +36 -0
- package/src/shared/mcp/functions/read-agent-meta.function.ts +41 -0
- package/src/shared/mcp/functions/resolve-skill-refs.function.ts +50 -0
- package/src/shared/mcp/functions/run-startup-health-check.function.ts +34 -0
- package/src/shared/mcp/typings/mcp-capabilities.interface.ts +16 -0
- package/src/shared/mcp/typings/mcp-client.interface.ts +2 -0
- package/src/shared/mcp/typings/mcp-completion.interface.ts +45 -0
- package/src/shared/mcp/typings/mcp-content-result.model.ts +9 -0
- package/src/shared/mcp/typings/mcp-export-result.model.ts +11 -0
- package/src/shared/mcp/typings/mcp-gc-result.model.ts +15 -0
- package/src/shared/mcp/typings/mcp-integrity-check-result.model.ts +17 -0
- package/src/shared/mcp/typings/mcp-integrity-error.model.ts +15 -0
- package/src/shared/mcp/typings/mcp-notification.interface.ts +9 -0
- package/src/shared/mcp/typings/mcp-rebuild-result.model.ts +9 -0
- package/src/shared/mcp/typings/mcp-request.interface.ts +11 -0
- package/src/shared/mcp/typings/mcp-resource-result.interface.ts +12 -0
- package/src/shared/mcp/typings/mcp-resource-template.interface.ts +11 -0
- package/src/shared/mcp/typings/mcp-response.interface.ts +18 -0
- package/src/shared/mcp/typings/mcp-server-info.interface.ts +7 -0
- package/src/shared/mcp/typings/mcp-server-state.interface.ts +17 -0
- package/src/shared/mcp/typings/mcp-tool-annotations.interface.ts +32 -0
- package/src/shared/mcp/typings/mcp-tool-definition.interface.ts +16 -0
- package/src/shared/mcp/typings/mcp-tool-result.interface.ts +19 -0
- package/src/shared/mcp/typings/mcp-worker-client.interface.ts +243 -0
- package/src/shared/mcp/typings/tool-call-result.model.ts +18 -0
- package/src/shared/sync/functions/build-import-report.function.ts +40 -0
- package/src/shared/sync/functions/parse-export-entry.function.ts +45 -0
- package/src/shared/sync/functions/resolve-conflict.function.ts +31 -0
- package/src/shared/sync/functions/serialize-export-entry.function.ts +18 -0
- package/src/shared/sync/index.ts +9 -0
- package/src/shared/sync/typings/conflict-resolution.type.ts +8 -0
- package/src/shared/sync/typings/export-entry.interface.ts +13 -0
- package/src/shared/sync/typings/export-options.interface.ts +9 -0
- package/src/shared/sync/typings/import-options.interface.ts +7 -0
- package/src/shared/sync/typings/import-report.interface.ts +15 -0
- package/src/shared/wasm-codec/functions/decode-one-recall-result.function.ts +86 -0
- package/src/shared/wasm-codec/functions/decode-option-string.function.ts +24 -0
- package/src/shared/wasm-codec/functions/decode-recall-document.function.ts +59 -0
- package/src/shared/wasm-codec/functions/decode-recall-reference.function.ts +52 -0
- package/src/shared/wasm-codec/functions/decode-recall-sibling.function.ts +43 -0
- package/src/shared/wasm-codec/functions/decode-section-match.function.ts +80 -0
- package/src/shared/wasm-codec/functions/decode-section-record-trailing.function.ts +75 -0
- package/src/shared/wasm-codec/functions/decode-section-record.function.ts +85 -0
- package/src/shared/wasm-codec/functions/decode-section-type.function.ts +30 -0
- package/src/shared/wasm-codec/functions/decode-wasm-list.function.ts +31 -0
- package/src/shared/wasm-codec/typings/add-section-input.model.ts +45 -0
- package/src/shared/wasm-codec/typings/add-section-result.model.ts +28 -0
- package/src/shared/wasm-codec/typings/document-manifest.model.ts +20 -0
- package/src/shared/wasm-codec/typings/document-section.model.ts +12 -0
- package/src/shared/wasm-codec/typings/item-decoder.type.ts +10 -0
- package/src/shared/wasm-codec/typings/near-duplicate.model.ts +16 -0
- package/src/shared/wasm-codec/typings/paged-search-result.model.ts +22 -0
- package/src/shared/wasm-codec/typings/section-match.model.ts +31 -0
- package/src/shared/wasm-codec/typings/section-record-trailing.model.ts +38 -0
- package/src/shared/wasm-codec/typings/section-record.model.ts +66 -0
- package/src/shared/wasm-codec/typings/section-type-result.model.ts +12 -0
- package/src/shared/worker-client/functions/handle-ipc-data.function.ts +49 -0
- package/src/shared/worker-client/functions/send-ipc-request.function.ts +39 -0
- package/src/shared/worker-client/typings/add-section-result.model.ts +2 -0
- package/src/shared/worker-client/typings/json-rpc-response.interface.ts +17 -0
- package/src/shared/worker-client/typings/pending-call.interface.ts +7 -0
- package/src/shared/worker-client/typings/recall-document.model.ts +16 -0
- package/src/shared/worker-client/typings/recall-params.model.ts +15 -0
- package/src/shared/worker-client/typings/recall-reference.model.ts +32 -0
- package/src/shared/worker-client/typings/recall-sibling.model.ts +11 -0
- package/src/shared/worker-client/typings/recall-single-result.model.ts +41 -0
- package/src/shared/worker-daemon/classes/ipc-error.class.ts +22 -0
- package/src/shared/worker-daemon/constants/wasm-method-map.constant.ts +69 -0
- package/src/shared/worker-daemon/functions/build-ipc-error-response.function.ts +16 -0
- package/src/shared/worker-daemon/functions/check-catalog-version.function.ts +54 -0
- package/src/shared/worker-daemon/functions/check-preconditions.function.ts +28 -0
- package/src/shared/worker-daemon/functions/detect-stale-pid.function.ts +33 -0
- package/src/shared/worker-daemon/functions/dispatch-request.function.ts +190 -0
- package/src/shared/worker-daemon/functions/handle-check-version.function.ts +74 -0
- package/src/shared/worker-daemon/functions/handle-config-method.function.ts +27 -0
- package/src/shared/worker-daemon/functions/handle-read-ops.function.ts +236 -0
- package/src/shared/worker-daemon/functions/handle-write-ops.function.ts +257 -0
- package/src/shared/worker-daemon/functions/parse-auto-capture-section.function.ts +51 -0
- package/src/shared/worker-daemon/functions/parse-catalog-version.function.ts +20 -0
- package/src/shared/worker-daemon/functions/parse-embedding-section.function.ts +38 -0
- package/src/shared/worker-daemon/functions/parse-worker-toml.function.ts +104 -0
- package/src/shared/worker-daemon/functions/run-startup-integrity-check.function.ts +55 -0
- package/src/shared/worker-daemon/functions/scan-near-duplicates.function.ts +92 -0
- package/src/shared/worker-daemon/functions/wasm-bridge.function.ts +144 -0
- package/src/shared/worker-daemon/functions/wasm-memory-helpers.function.ts +41 -0
- package/src/shared/worker-daemon/functions/write-lock.function.ts +49 -0
- package/src/shared/worker-daemon/typings/allocator-ref.interface.ts +16 -0
- package/src/shared/worker-daemon/typings/daemon-config.interface.ts +7 -0
- package/src/shared/worker-daemon/typings/fs-adapter.interface.ts +22 -0
- package/src/shared/worker-daemon/typings/handler-context.interface.ts +19 -0
- package/src/shared/worker-daemon/typings/memory-ref.interface.ts +13 -0
- package/src/shared/worker-daemon/typings/wasm-fn.type.ts +2 -0
- package/src/shared/worker-daemon/typings/write-lock.interface.ts +13 -0
- package/src/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
- package/src/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# embedding/functions -- Embedding Functions
|
|
2
|
+
|
|
3
|
+
**Source:** `src/shared/embedding/functions/`
|
|
4
|
+
|
|
5
|
+
## embed
|
|
6
|
+
|
|
7
|
+
```ts
|
|
8
|
+
embed(
|
|
9
|
+
provider: EmbeddingProvider,
|
|
10
|
+
text: string,
|
|
11
|
+
): Promise<Float32Array>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Computes a single embedding vector for the given text.
|
|
15
|
+
Delegates to the provider's `embed()` method. Returns a
|
|
16
|
+
`Float32Array` of dimensions matching `provider.dimensions()`.
|
|
17
|
+
|
|
18
|
+
Used during `learn` to embed section content and during
|
|
19
|
+
`search` to embed the query string.
|
|
20
|
+
|
|
21
|
+
## batchEmbed
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
batchEmbed(
|
|
25
|
+
provider: EmbeddingProvider,
|
|
26
|
+
texts: string[],
|
|
27
|
+
): Promise<Float32Array[]>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Computes embeddings for multiple texts in a single batch.
|
|
31
|
+
More efficient than calling `embed()` in a loop -- providers
|
|
32
|
+
can batch API calls or parallelize ONNX inference. Used
|
|
33
|
+
during `rebuild` to re-embed all sections.
|
|
34
|
+
|
|
35
|
+
## cosineSimilarity
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
cosineSimilarity(
|
|
39
|
+
a: Float32Array,
|
|
40
|
+
b: Float32Array,
|
|
41
|
+
): number
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Computes the cosine similarity between two vectors. Returns a
|
|
45
|
+
value in [-1, 1], where 1 means identical direction. Used by
|
|
46
|
+
semantic near-duplicate detection (threshold >= 0.92) and by
|
|
47
|
+
vector search ranking.
|
|
48
|
+
|
|
49
|
+
Both vectors must have the same length (same embedding
|
|
50
|
+
dimensions). Throws if lengths differ.
|
|
51
|
+
|
|
52
|
+
## buildVectorIndex
|
|
53
|
+
|
|
54
|
+
```ts
|
|
55
|
+
buildVectorIndex(
|
|
56
|
+
provider: EmbeddingProvider,
|
|
57
|
+
sections: SectionRecord[],
|
|
58
|
+
outPath: string,
|
|
59
|
+
): Promise<VectorIndexMeta>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Builds the vector index file (`vectors.idx`) from all
|
|
63
|
+
sections. Embeds each section's content via `batchEmbed`,
|
|
64
|
+
writes fixed-width records (kbid + vector) to `outPath`, and
|
|
65
|
+
writes `vectors-meta.toml` alongside it with model name,
|
|
66
|
+
dimensions, and record count.
|
|
67
|
+
|
|
68
|
+
Called by `rebuild` when an embedding provider is configured.
|
|
69
|
+
Returns metadata about the built index.
|
|
70
|
+
|
|
71
|
+
## searchVectors
|
|
72
|
+
|
|
73
|
+
```ts
|
|
74
|
+
searchVectors(
|
|
75
|
+
provider: EmbeddingProvider,
|
|
76
|
+
query: string,
|
|
77
|
+
indexPath: string,
|
|
78
|
+
limit: number,
|
|
79
|
+
): Promise<VectorSearchResult[]>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Performs vector similarity search. Embeds the query, reads
|
|
83
|
+
`vectors.idx`, computes cosine similarity against all stored
|
|
84
|
+
vectors, and returns the top `limit` results sorted by
|
|
85
|
+
similarity descending.
|
|
86
|
+
|
|
87
|
+
Each result includes the kbid and similarity score. The
|
|
88
|
+
results are passed to the RRF fusion step alongside lexical
|
|
89
|
+
search results.
|
|
90
|
+
|
|
91
|
+
Note: This is a brute-force linear scan. For corpus sizes
|
|
92
|
+
under 100k sections, this is fast enough (< 50ms). A future
|
|
93
|
+
version may add approximate nearest neighbor (ANN) indexing
|
|
94
|
+
if scale demands it.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# embedding -- Pluggable Embedding Computation
|
|
2
|
+
|
|
3
|
+
**Source:** `src/shared/embedding/`
|
|
4
|
+
|
|
5
|
+
## Responsibility
|
|
6
|
+
|
|
7
|
+
Pluggable embedding computation for hybrid lexical+vector search.
|
|
8
|
+
Provides the `EmbeddingProvider` interface and implementations for
|
|
9
|
+
different backends. Used by the worker daemon to embed sections at
|
|
10
|
+
learn time and to compute query embeddings at search time.
|
|
11
|
+
|
|
12
|
+
## Directory Layout
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
src/shared/embedding/
|
|
16
|
+
index.ts
|
|
17
|
+
functions/
|
|
18
|
+
embed.function.ts
|
|
19
|
+
batch-embed.function.ts
|
|
20
|
+
cosine-similarity.function.ts
|
|
21
|
+
build-vector-index.function.ts
|
|
22
|
+
search-vectors.function.ts
|
|
23
|
+
providers/
|
|
24
|
+
null-embedding.provider.ts
|
|
25
|
+
onnx-embedding.provider.ts
|
|
26
|
+
api-embedding.provider.ts
|
|
27
|
+
typings/
|
|
28
|
+
embedding-provider.typing.ts
|
|
29
|
+
embedding-config.typing.ts
|
|
30
|
+
vector-search-result.typing.ts
|
|
31
|
+
vector-index-meta.typing.ts
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Exports
|
|
35
|
+
|
|
36
|
+
- [Functions](functions.md) -- `embed`, `batchEmbed`,
|
|
37
|
+
`cosineSimilarity`, `buildVectorIndex`, `searchVectors`
|
|
38
|
+
- [Typings](typings.md) -- `EmbeddingProvider`, `EmbeddingConfig`,
|
|
39
|
+
`VectorSearchResult`, `VectorIndexMeta`
|
|
40
|
+
|
|
41
|
+
## Providers
|
|
42
|
+
|
|
43
|
+
Three implementations of the `EmbeddingProvider` interface:
|
|
44
|
+
|
|
45
|
+
- **NullEmbeddingProvider** -- No-op provider used when no embedding
|
|
46
|
+
backend is configured. Returns empty vectors. Allows all
|
|
47
|
+
lexical-only paths to work unchanged.
|
|
48
|
+
- **OnnxEmbeddingProvider** -- Local inference using ONNX Runtime.
|
|
49
|
+
Loads a model from disk (e.g., `all-MiniLM-L6-v2`). Zero network
|
|
50
|
+
calls, fully offline.
|
|
51
|
+
- **ApiEmbeddingProvider** -- Remote inference via HTTP API (OpenAI,
|
|
52
|
+
Anthropic, or compatible endpoints). Configured via `worker.toml`
|
|
53
|
+
with endpoint URL and API key.
|
|
54
|
+
|
|
55
|
+
## Dependency Direction
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
shared/embedding/
|
|
59
|
+
├── shared/hash/ (content hashing for cache keys)
|
|
60
|
+
└── shared/platform/ (file paths for local models)
|
|
61
|
+
|
|
62
|
+
shared/worker-daemon/
|
|
63
|
+
└── shared/embedding/ (init provider at startup)
|
|
64
|
+
|
|
65
|
+
shared/mcp/
|
|
66
|
+
└── (indirect via worker-client)
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
The embedding module is a utility module -- it depends only on other
|
|
70
|
+
utility modules. The worker daemon initializes the provider at startup
|
|
71
|
+
based on `worker.toml` config.
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# embedding/typings -- Embedding Type Definitions
|
|
2
|
+
|
|
3
|
+
*Interfaces and type aliases for the embedding
|
|
4
|
+
module's providers, configuration, and search
|
|
5
|
+
results.*
|
|
6
|
+
|
|
7
|
+
## Source
|
|
8
|
+
|
|
9
|
+
`src/shared/embedding/typings/`
|
|
10
|
+
|
|
11
|
+
## Typings
|
|
12
|
+
|
|
13
|
+
### `EmbeddingProvider`
|
|
14
|
+
|
|
15
|
+
**File:** `embedding-provider.typing.ts`
|
|
16
|
+
|
|
17
|
+
Core abstraction for text embedding. Accepts a batch
|
|
18
|
+
of texts and returns a vector for each. Implemented
|
|
19
|
+
by `NullEmbeddingProvider`, `OnnxEmbeddingProvider`,
|
|
20
|
+
and `ApiEmbeddingProvider`.
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
interface EmbeddingProvider {
|
|
24
|
+
embed(texts: string[]): Promise<Float32Array[]>;
|
|
25
|
+
dimensions(): number;
|
|
26
|
+
modelName(): string;
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
| Member | Description |
|
|
31
|
+
|--------------|-----------------------------------------|
|
|
32
|
+
| `embed` | Produces one embedding vector per input |
|
|
33
|
+
| | text; accepts an array for batching |
|
|
34
|
+
| | efficiency |
|
|
35
|
+
| `dimensions` | Returns the length of each vector |
|
|
36
|
+
| | (e.g. 384 for MiniLM) |
|
|
37
|
+
| `modelName` | Returns a stable identifier stored in |
|
|
38
|
+
| | `vectors-meta.toml`; used to detect |
|
|
39
|
+
| | model changes that require a rebuild |
|
|
40
|
+
|
|
41
|
+
### `EmbeddingConfig`
|
|
42
|
+
|
|
43
|
+
**File:** `embedding-config.typing.ts`
|
|
44
|
+
|
|
45
|
+
Configuration read from the `[embedding]` section
|
|
46
|
+
of `worker.toml`. Determines which `EmbeddingProvider`
|
|
47
|
+
implementation to instantiate at daemon startup.
|
|
48
|
+
|
|
49
|
+
```ts
|
|
50
|
+
interface EmbeddingConfig {
|
|
51
|
+
provider: 'none' | 'onnx' | 'api';
|
|
52
|
+
model?: string;
|
|
53
|
+
apiEndpoint?: string;
|
|
54
|
+
apiKey?: string;
|
|
55
|
+
dimensions?: number;
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
| Property | Description |
|
|
60
|
+
|---------------|------------------------------------------|
|
|
61
|
+
| `provider` | Selects the backend: `'none'` → |
|
|
62
|
+
| | `NullEmbeddingProvider`; `'onnx'` → |
|
|
63
|
+
| | `OnnxEmbeddingProvider`; `'api'` → |
|
|
64
|
+
| | `ApiEmbeddingProvider` |
|
|
65
|
+
| `model` | Path to the local ONNX model file; |
|
|
66
|
+
| | required when `provider` is `'onnx'` |
|
|
67
|
+
| `apiEndpoint` | Remote HTTP API URL; required when |
|
|
68
|
+
| | `provider` is `'api'` |
|
|
69
|
+
| `apiKey` | Bearer token for the remote API; |
|
|
70
|
+
| | required when `provider` is `'api'` |
|
|
71
|
+
| `dimensions` | Vector length; inferred from the model |
|
|
72
|
+
| | when possible; required for API |
|
|
73
|
+
| | providers that do not report dimensions |
|
|
74
|
+
|
|
75
|
+
### `VectorSearchResult`
|
|
76
|
+
|
|
77
|
+
**File:** `vector-search-result.typing.ts`
|
|
78
|
+
|
|
79
|
+
A single result from a vector similarity search.
|
|
80
|
+
Used as input to the RRF fusion step alongside
|
|
81
|
+
lexical search results.
|
|
82
|
+
|
|
83
|
+
```ts
|
|
84
|
+
interface VectorSearchResult {
|
|
85
|
+
kbid: string;
|
|
86
|
+
similarity: number;
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
| Property | Description |
|
|
91
|
+
|--------------|-----------------------------------------|
|
|
92
|
+
| `kbid` | Knowledge-base identifier of the |
|
|
93
|
+
| | matched section |
|
|
94
|
+
| `similarity` | Cosine similarity score in [-1, 1] |
|
|
95
|
+
|
|
96
|
+
### `VectorIndexMeta`
|
|
97
|
+
|
|
98
|
+
**File:** `vector-index-meta.typing.ts`
|
|
99
|
+
|
|
100
|
+
Metadata stored in `vectors-meta.toml` alongside
|
|
101
|
+
`vectors.idx`. Used to detect stale indexes: when
|
|
102
|
+
`model` differs from the current provider's
|
|
103
|
+
`modelName()`, vectors must be rebuilt.
|
|
104
|
+
|
|
105
|
+
```ts
|
|
106
|
+
interface VectorIndexMeta {
|
|
107
|
+
model: string;
|
|
108
|
+
dimensions: number;
|
|
109
|
+
recordCount: number;
|
|
110
|
+
version: number;
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
| Property | Description |
|
|
115
|
+
|---------------|-----------------------------------------|
|
|
116
|
+
| `model` | `modelName()` value at index build time |
|
|
117
|
+
| `dimensions` | Vector length used when building the |
|
|
118
|
+
| | index |
|
|
119
|
+
| `recordCount` | Number of vectors stored in the index |
|
|
120
|
+
| `version` | Format version; currently `1` |
|
|
121
|
+
|
|
122
|
+
No spec -- typings are compile-time only.
|
package/docs/overview.md
CHANGED
|
@@ -1,188 +1,192 @@
|
|
|
1
1
|
# @dikolab/kbdb -- Knowledge Base Database
|
|
2
2
|
|
|
3
|
-
*A
|
|
3
|
+
*A file-based knowledge store and MCP server for
|
|
4
|
+
AI agents -- your second brain, on disk.*
|
|
4
5
|
|
|
5
|
-
## What Is
|
|
6
|
+
## What Is kbdb?
|
|
6
7
|
|
|
7
|
-
AI agents
|
|
8
|
+
AI agents forget everything between sessions. kbdb
|
|
9
|
+
gives them a searchable, persistent memory.
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
Import your documents, and kbdb indexes them
|
|
12
|
+
automatically. Search returns ranked results
|
|
13
|
+
instantly. No database server to install, no cloud
|
|
14
|
+
account to create -- your knowledge base is just a
|
|
15
|
+
folder on disk.
|
|
10
16
|
|
|
11
|
-
|
|
17
|
+
kbdb works as both a command-line tool and an
|
|
18
|
+
[MCP](https://modelcontextprotocol.io/) server.
|
|
19
|
+
Humans use it from the terminal; AI agents connect
|
|
20
|
+
to it as a tool.
|
|
12
21
|
|
|
13
22
|
## Who Is This For?
|
|
14
23
|
|
|
15
|
-
- **AI agent developers** --
|
|
16
|
-
|
|
17
|
-
- **
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
- **
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
24
|
+
- **AI agent developers** -- persistent, searchable
|
|
25
|
+
knowledge across agent sessions
|
|
26
|
+
- **MCP tool authors** -- a local knowledge backend
|
|
27
|
+
for Model Context Protocol servers
|
|
28
|
+
- **Knowledge workers** -- a second brain your AI
|
|
29
|
+
assistant can search across conversations
|
|
30
|
+
- **Vibe coders** -- a searchable doc store for
|
|
31
|
+
your AI-assisted projects
|
|
32
|
+
- **CLI-first developers** -- composable commands
|
|
33
|
+
for managing knowledge from the terminal
|
|
34
|
+
|
|
35
|
+
## What Can It Do?
|
|
36
|
+
|
|
37
|
+
- **Import** Markdown files with automatic keyword
|
|
38
|
+
extraction and indexing
|
|
39
|
+
- **Search** three ways: keyword (default),
|
|
40
|
+
AI similarity, or hybrid (both combined) via
|
|
41
|
+
`--algo`
|
|
42
|
+
- **Auto-fallback** -- loosens your query when
|
|
43
|
+
exact matches return nothing
|
|
44
|
+
- **Recall** sections with progressive context
|
|
45
|
+
(depth 0--3)
|
|
46
|
+
- **Smart updates** -- re-learning a file replaces
|
|
47
|
+
the old version, not duplicates it
|
|
48
|
+
- **Near-duplicate detection** -- warns when
|
|
49
|
+
imported content closely matches existing data
|
|
50
|
+
- **Skills** -- reusable prompt templates with
|
|
51
|
+
fill-in-the-blank arguments
|
|
52
|
+
- **Agents** -- AI profiles combining a persona
|
|
53
|
+
with skills
|
|
54
|
+
- **Auto-capture** -- MCP server proactively
|
|
55
|
+
suggests knowledge to store from conversations
|
|
56
|
+
- **Export and sync** -- snapshot your knowledge
|
|
57
|
+
base for backup or sharing across machines
|
|
58
|
+
- **Verify** database integrity and clean up stale
|
|
59
|
+
data
|
|
60
|
+
- **MCP server** with 20 tools, prompts, resources,
|
|
61
|
+
and completions
|
|
62
|
+
|
|
63
|
+
### Install
|
|
64
|
+
|
|
65
|
+
```sh
|
|
66
|
+
# Node.js
|
|
67
|
+
npm install -g @dikolab/kbdb
|
|
68
|
+
|
|
69
|
+
# Deno
|
|
70
|
+
deno add @dikolab/kbdb
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Architecture
|
|
74
|
+
|
|
75
|
+
Five layers, top to bottom:
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
User / AI Agent
|
|
79
|
+
-> kbdb command (CLI or MCP mode)
|
|
80
|
+
-> Worker Client (TypeScript IPC)
|
|
81
|
+
-> Worker Daemon (background process)
|
|
82
|
+
-> Rust/WASM Engine
|
|
83
|
+
-> File Database (folder on disk)
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**kbdb command** -- One executable, two modes. CLI
|
|
87
|
+
mode runs short-lived commands (`learn`, `search`,
|
|
88
|
+
`recall`). MCP mode starts a long-lived server for
|
|
89
|
+
AI agents over stdio.
|
|
90
|
+
|
|
91
|
+
**Worker Client** -- Connects to the background
|
|
92
|
+
daemon and gives your code a typed API.
|
|
93
|
+
|
|
94
|
+
**Worker Daemon** -- Background process that loads
|
|
95
|
+
the search engine, caches data in memory, and
|
|
96
|
+
handles requests.
|
|
97
|
+
|
|
98
|
+
**Search Engine** -- Compiled from Rust to
|
|
99
|
+
WebAssembly for speed. Three modules handle
|
|
100
|
+
tokenization, indexing, ranking, and file I/O.
|
|
101
|
+
|
|
102
|
+
**File Database** -- Structured folder on disk.
|
|
103
|
+
No server process. Portable, version-controllable,
|
|
104
|
+
and human-readable.
|
|
105
|
+
|
|
106
|
+
### Technology Stack
|
|
107
|
+
|
|
108
|
+
| Layer | Technology | What it does |
|
|
109
|
+
|-------|-----------|--------------|
|
|
110
|
+
| Runtime | Node.js, Deno | Runs the tools |
|
|
111
|
+
| Language | TypeScript | CLI, MCP server, I/O |
|
|
112
|
+
| Engine | Rust -> WebAssembly | Fast indexing and search |
|
|
113
|
+
| Protocol | MCP | AI agent integration |
|
|
114
|
+
| Distribution | NPM, JSR | Install from either |
|
|
115
|
+
| Storage | File database | Your data, in a folder |
|
|
89
116
|
|
|
90
117
|
## Design Principles
|
|
91
118
|
|
|
92
|
-
1. **
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
- **[
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
119
|
+
1. **No server needed** -- A folder is your whole
|
|
120
|
+
database. Works anywhere.
|
|
121
|
+
2. **Built for AI agents** -- Commands and output
|
|
122
|
+
are optimized for machine use.
|
|
123
|
+
3. **MCP-first** -- The MCP server is a primary
|
|
124
|
+
interface, not an add-on.
|
|
125
|
+
4. **Fast** -- Heavy work runs in compiled Rust
|
|
126
|
+
via WebAssembly.
|
|
127
|
+
5. **Portable** -- Runs on Node.js or Deno. The
|
|
128
|
+
database is a plain directory.
|
|
129
|
+
6. **Section-level search** -- Returns the specific
|
|
130
|
+
passage that matters, not a whole document.
|
|
131
|
+
|
|
132
|
+
## Design Documents
|
|
133
|
+
|
|
134
|
+
Deeper docs for each part of the system. You don't
|
|
135
|
+
need to read these to use kbdb -- they're here for
|
|
136
|
+
contributors and anyone curious about internals.
|
|
137
|
+
|
|
138
|
+
- **[Database](goals/database.md)** -- File storage
|
|
139
|
+
engine, directory structure, section and document
|
|
140
|
+
operations
|
|
141
|
+
- **[Query Parser](goals/query-parser.md)** --
|
|
142
|
+
Tokenization, query parsing, keyword extraction,
|
|
143
|
+
ranking
|
|
144
|
+
- **[Hybrid Search](goals/hybrid-search.md)** --
|
|
145
|
+
Lexical + vector retrieval with score fusion
|
|
146
|
+
- **[Document](goals/document.md)** -- Content format
|
|
147
|
+
with markers and cross-references
|
|
118
148
|
- **[Content Parser](goals/content-parser.md)** --
|
|
119
|
-
Marker extraction
|
|
120
|
-
Scans section content for `$(type: value)` markers
|
|
121
|
-
and returns structured reference lists.
|
|
149
|
+
Marker extraction from section content
|
|
122
150
|
- **[Content Composer](goals/content-composer.md)** --
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
- **[
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
- **[
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
daemon (`kb-worker.wasm` + `src/worker.ts`).
|
|
137
|
-
The detached TypeScript daemon, WASM module loading,
|
|
138
|
-
caching, IPC protocol, lifecycle, and configuration.
|
|
139
|
-
- **[Worker Client](goals/worker-client.md)** -- Shared
|
|
140
|
-
TypeScript client module (`src/shared/worker-client/`).
|
|
141
|
-
Daemon discovery, spawning, IPC connection, typed
|
|
142
|
-
API, and the sole entry point used by `src/cli.ts`.
|
|
151
|
+
Rendered Markdown composition from identifiers
|
|
152
|
+
- **[CLI](goals/cli.md)** -- Commands, run modes,
|
|
153
|
+
output formats
|
|
154
|
+
- **[MCP](goals/mcp.md)** -- MCP server, tools,
|
|
155
|
+
resources, agent wiring
|
|
156
|
+
- **[Auto-Capture](goals/auto-capture.md)** --
|
|
157
|
+
Proactive knowledge capture via MCP sampling
|
|
158
|
+
- **[Sync](goals/sync.md)** -- Cross-machine export
|
|
159
|
+
and import
|
|
160
|
+
- **[Worker Daemon](goals/worker-daemon.md)** --
|
|
161
|
+
Background daemon, WASM loading, caching, IPC
|
|
162
|
+
- **[Worker Client](goals/worker-client.md)** --
|
|
163
|
+
Client module, daemon discovery, typed API
|
|
143
164
|
|
|
144
165
|
## Project Status
|
|
145
166
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
- CLI with 18 commands across 6 groups (tested)
|
|
161
|
-
- MCP server with 18 tools, prompts, resources,
|
|
162
|
-
and completions (tested)
|
|
163
|
-
- Worker client with typed async IPC API (tested)
|
|
164
|
-
- Worker daemon with WASM module loading (tested)
|
|
165
|
-
- Rust/WASM engine: search, recall, indexing,
|
|
166
|
-
reference graph, KWIC snippets, pagination
|
|
167
|
-
- Paginated search with rich metadata (heading,
|
|
168
|
-
type, snippet, matched_terms, docids)
|
|
167
|
+
All layers are wired and working end-to-end. Every
|
|
168
|
+
core operation -- learn, search, recall, content
|
|
169
|
+
retrieval, skills, agents, export, and maintenance
|
|
170
|
+
-- runs through the full stack.
|
|
171
|
+
|
|
172
|
+
**548 e2e assertions** pass on both Node.js and Deno
|
|
173
|
+
with zero failures and zero skips.
|
|
174
|
+
|
|
175
|
+
- 18 CLI commands across 6 groups
|
|
176
|
+
- 20 MCP tools with prompts, resources, completions
|
|
177
|
+
- Three search algorithms: lexical, vector, hybrid
|
|
178
|
+
- Sequential MCP request processing
|
|
179
|
+
- Worker daemon with fully implemented WASM host I/O
|
|
180
|
+
- Paginated search with rich metadata
|
|
169
181
|
- Progressive recall at depths 0--3
|
|
170
|
-
- Bidirectional reference graph
|
|
171
|
-
- Skills
|
|
172
|
-
|
|
173
|
-
-
|
|
174
|
-
-
|
|
175
|
-
|
|
176
|
-
- npm and JSR
|
|
177
|
-
|
|
178
|
-
### Remaining
|
|
179
|
-
|
|
180
|
-
- Complete WASM host I/O imports (some operations
|
|
181
|
-
still hit stubs: document removal, agent document
|
|
182
|
-
persistence)
|
|
183
|
-
- Database format versioning and migration
|
|
184
|
-
infrastructure
|
|
182
|
+
- Bidirectional reference graph
|
|
183
|
+
- Skills and agent document management
|
|
184
|
+
- Auto-capture hooks via MCP sampling
|
|
185
|
+
- Export/import sync primitives
|
|
186
|
+
- esbuild bundling (ESM + CJS + .d.ts)
|
|
187
|
+
- Docker build containers
|
|
188
|
+
- npm and JSR packages with documentation
|
|
185
189
|
|
|
186
190
|
## Links
|
|
187
191
|
|
|
188
|
-
- **Repository**: https://gitlab.com/tech-slaves
|
|
192
|
+
- **Repository**: https://gitlab.com/tech-slaves/knowledge-base-db
|