@dikolab/kbdb 0.3.0 → 0.3.1
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 +24 -43
- 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/mcp-server.md +4 -2
- 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 +148 -166
- 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 +111 -0
- package/docs/release-notes/README.md +2 -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,187 +1,169 @@
|
|
|
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
|
+
- **CLI-first developers** -- composable commands
|
|
31
|
+
for managing knowledge from the terminal
|
|
32
|
+
|
|
33
|
+
## What Can It Do?
|
|
34
|
+
|
|
35
|
+
- **Import** Markdown files with automatic keyword
|
|
36
|
+
extraction and indexing
|
|
37
|
+
- **Search** with ranked results, snippets, and
|
|
38
|
+
paginated output
|
|
39
|
+
- **Recall** sections with progressive context
|
|
40
|
+
(depth 0--3)
|
|
41
|
+
- **Skills** -- reusable prompt templates with
|
|
42
|
+
placeholder arguments
|
|
43
|
+
- **Agents** -- AI profiles combining a persona
|
|
44
|
+
with skills
|
|
45
|
+
- **Export** the database as a portable snapshot
|
|
46
|
+
- **Verify** database integrity and clean up stale
|
|
47
|
+
data
|
|
48
|
+
- **MCP server** with 20 tools, prompts, resources,
|
|
49
|
+
and completions
|
|
50
|
+
|
|
51
|
+
### Install
|
|
52
|
+
|
|
53
|
+
```sh
|
|
54
|
+
# Node.js
|
|
55
|
+
npm install -g @dikolab/kbdb
|
|
56
|
+
|
|
57
|
+
# Deno
|
|
58
|
+
deno add @dikolab/kbdb
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Architecture
|
|
62
|
+
|
|
63
|
+
Five layers, top to bottom:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
User / AI Agent
|
|
67
|
+
-> kbdb command (CLI or MCP mode)
|
|
68
|
+
-> Worker Client (TypeScript IPC)
|
|
69
|
+
-> Worker Daemon (background process)
|
|
70
|
+
-> Rust/WASM Engine
|
|
71
|
+
-> File Database (folder on disk)
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**kbdb command** -- One executable, two modes. CLI
|
|
75
|
+
mode runs short-lived commands (`learn`, `search`,
|
|
76
|
+
`recall`). MCP mode starts a long-lived server for
|
|
77
|
+
AI agents over stdio.
|
|
78
|
+
|
|
79
|
+
**Worker Client** -- TypeScript module that discovers
|
|
80
|
+
or spawns the daemon and provides a typed async API.
|
|
81
|
+
|
|
82
|
+
**Worker Daemon** -- Background process that loads
|
|
83
|
+
WASM modules, caches data in memory, and serves
|
|
84
|
+
JSON-RPC 2.0 requests over local IPC.
|
|
85
|
+
|
|
86
|
+
**Rust/WASM Engine** -- Three WASM modules handle
|
|
87
|
+
tokenization, indexing, ranking, and file I/O. Rust
|
|
88
|
+
provides speed and memory safety; WASM runs on any
|
|
89
|
+
runtime.
|
|
90
|
+
|
|
91
|
+
**File Database** -- Structured directory on disk.
|
|
92
|
+
No server process. Portable, version-controllable,
|
|
93
|
+
and human-readable.
|
|
94
|
+
|
|
95
|
+
### Technology Stack
|
|
96
|
+
|
|
97
|
+
| Layer | Technology | Purpose |
|
|
98
|
+
|-------|-----------|---------|
|
|
99
|
+
| Runtime | Node.js, Deno | Runs CLI, MCP server, orchestration |
|
|
100
|
+
| Language | TypeScript | CLI, MCP protocol, I/O |
|
|
101
|
+
| Engine | Rust -> WebAssembly | Indexing, ranking, file operations |
|
|
102
|
+
| Protocol | MCP | AI agent integration |
|
|
103
|
+
| Distribution | NPM, JSR | Package delivery |
|
|
104
|
+
| Storage | File database | Persistent, portable data |
|
|
89
105
|
|
|
90
106
|
## Design Principles
|
|
91
107
|
|
|
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
|
-
- **[Document](goals/document.md)** --
|
|
116
|
-
|
|
117
|
-
embedding markers and cross-reference link markers.
|
|
108
|
+
1. **No server needed** -- A folder is your whole
|
|
109
|
+
database. Works anywhere.
|
|
110
|
+
2. **Built for AI agents** -- Commands and output
|
|
111
|
+
are optimized for machine use.
|
|
112
|
+
3. **MCP-first** -- The MCP server is a primary
|
|
113
|
+
interface, not an add-on.
|
|
114
|
+
4. **Fast** -- Heavy work runs in compiled Rust
|
|
115
|
+
via WebAssembly.
|
|
116
|
+
5. **Portable** -- Runs on Node.js or Deno. The
|
|
117
|
+
database is a plain directory.
|
|
118
|
+
6. **Section-level search** -- Returns the specific
|
|
119
|
+
passage that matters, not a whole document.
|
|
120
|
+
|
|
121
|
+
## Design Documents
|
|
122
|
+
|
|
123
|
+
Detailed specifications for each subsystem:
|
|
124
|
+
|
|
125
|
+
- **[Database](goals/database.md)** -- File storage
|
|
126
|
+
engine, directory structure, section and document
|
|
127
|
+
operations
|
|
128
|
+
- **[Query Parser](goals/query-parser.md)** --
|
|
129
|
+
Tokenization, query parsing, keyword extraction,
|
|
130
|
+
ranking
|
|
131
|
+
- **[Document](goals/document.md)** -- Content format
|
|
132
|
+
with markers and cross-references
|
|
118
133
|
- **[Content Parser](goals/content-parser.md)** --
|
|
119
|
-
Marker extraction
|
|
120
|
-
Scans section content for `$(type: value)` markers
|
|
121
|
-
and returns structured reference lists.
|
|
134
|
+
Marker extraction from section content
|
|
122
135
|
- **[Content Composer](goals/content-composer.md)** --
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
- **[
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
- **[
|
|
131
|
-
|
|
132
|
-
configuration, stdio transport, MCP tools and
|
|
133
|
-
resources, agent wiring examples, and relationship
|
|
134
|
-
to CLI mode.
|
|
135
|
-
- **[Worker Daemon](goals/worker-daemon.md)** -- Cache
|
|
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`.
|
|
136
|
+
Rendered Markdown composition from identifiers
|
|
137
|
+
- **[CLI](goals/cli.md)** -- Commands, run modes,
|
|
138
|
+
output formats
|
|
139
|
+
- **[MCP](goals/mcp.md)** -- MCP server, tools,
|
|
140
|
+
resources, agent wiring
|
|
141
|
+
- **[Worker Daemon](goals/worker-daemon.md)** --
|
|
142
|
+
Background daemon, WASM loading, caching, IPC
|
|
143
|
+
- **[Worker Client](goals/worker-client.md)** --
|
|
144
|
+
Client module, daemon discovery, typed API
|
|
143
145
|
|
|
144
146
|
## Project Status
|
|
145
147
|
|
|
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)
|
|
148
|
+
All layers are wired and working end-to-end. Every
|
|
149
|
+
core operation -- learn, search, recall, content
|
|
150
|
+
retrieval, skills, agents, export, and maintenance
|
|
151
|
+
-- runs through the full stack.
|
|
152
|
+
|
|
153
|
+
**548 e2e assertions** pass on both Node.js and Deno
|
|
154
|
+
with zero failures and zero skips.
|
|
155
|
+
|
|
156
|
+
- 18 CLI commands across 6 groups
|
|
157
|
+
- 20 MCP tools with prompts, resources, completions
|
|
158
|
+
- Sequential MCP request processing
|
|
159
|
+
- Worker daemon with fully implemented WASM host I/O
|
|
160
|
+
- Paginated search with rich metadata
|
|
169
161
|
- Progressive recall at depths 0--3
|
|
170
|
-
- Bidirectional reference graph
|
|
171
|
-
- Skills
|
|
172
|
-
|
|
173
|
-
-
|
|
174
|
-
-
|
|
175
|
-
wasm-pack)
|
|
176
|
-
- npm and JSR packaging with documentation
|
|
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
|
|
162
|
+
- Bidirectional reference graph
|
|
163
|
+
- Skills and agent document management
|
|
164
|
+
- esbuild bundling (ESM + CJS + .d.ts)
|
|
165
|
+
- Docker build containers
|
|
166
|
+
- npm and JSR packages with documentation
|
|
185
167
|
|
|
186
168
|
## Links
|
|
187
169
|
|
|
@@ -62,7 +62,7 @@ at once.
|
|
|
62
62
|
scores are kept in CLI and IPC output for
|
|
63
63
|
debugging.
|
|
64
64
|
|
|
65
|
-
- **Tool annotations** -- All
|
|
65
|
+
- **Tool annotations** -- All 20 MCP tool
|
|
66
66
|
definitions now include `openWorldHint: false`,
|
|
67
67
|
`readOnlyHint`, `destructiveHint`, and
|
|
68
68
|
`idempotentHint` annotations per the MCP spec.
|
|
@@ -84,8 +84,8 @@ at once.
|
|
|
84
84
|
|
|
85
85
|
## Testing
|
|
86
86
|
|
|
87
|
-
- **
|
|
88
|
-
|
|
87
|
+
- **548 e2e assertions** on both Node.js and Deno --
|
|
88
|
+
all passing with 0 failures and 0 skips.
|
|
89
89
|
|
|
90
90
|
- **Recall depth testing** -- Cross-referenced
|
|
91
91
|
test data (sections with `$(link: ...)` markers)
|