@dikolab/kbdb 0.3.2 → 0.4.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 +92 -90
- package/dist/chunk-BJXEVALU.mjs +337 -0
- package/dist/chunk-BJXEVALU.mjs.map +7 -0
- package/dist/cli.cjs +1398 -378
- package/dist/cli.cjs.map +4 -4
- package/dist/cli.d.ts +9 -0
- package/dist/cli.mjs +1138 -342
- package/dist/cli.mjs.map +4 -4
- package/dist/kbdb-worker.cjs +1115 -135
- package/dist/kbdb-worker.cjs.map +4 -4
- package/dist/mod.cjs +351 -69
- package/dist/mod.cjs.map +4 -4
- package/dist/mod.d.ts +23 -2
- package/dist/mod.mjs +349 -68
- package/dist/mod.mjs.map +4 -4
- package/dist/src/shared/cli/functions/dispatch-command.function.d.ts +2 -1
- package/dist/src/shared/cli/functions/find-db.function.d.ts +7 -8
- package/dist/src/shared/cli/functions/handle-mcp.function.d.ts +1 -1
- package/dist/src/shared/cli/functions/parse-args.function.d.ts +4 -3
- package/dist/src/shared/cli/functions/resolve-kbid-prefix.function.d.ts +27 -0
- package/dist/src/shared/cli/functions/resolve-raw-db-path.function.d.ts +10 -0
- package/dist/src/shared/cli/functions/run-cli.function.d.ts +3 -1
- package/dist/src/shared/cli/functions/run-content.function.d.ts +8 -3
- package/dist/src/shared/cli/functions/run-import.function.d.ts +27 -0
- package/dist/src/shared/cli/functions/run-recall.function.d.ts +10 -4
- package/dist/src/shared/cli/functions/run-search.function.d.ts +7 -0
- package/dist/src/shared/cli/functions/run-unlearn.function.d.ts +9 -4
- package/dist/src/shared/cli/functions/run-worker-restart.function.d.ts +11 -0
- package/dist/src/shared/cli/functions/run-worker-stop.function.d.ts +11 -0
- package/dist/src/shared/cli/index.d.ts +2 -0
- package/dist/src/shared/cli/typings/cli-deps.interface.d.ts +4 -1
- package/dist/src/shared/cli/typings/cli-options.interface.d.ts +22 -0
- package/dist/src/shared/cli/typings/dispatch-client.type.d.ts +2 -1
- package/dist/src/shared/cli/typings/search-display.model.d.ts +6 -0
- package/dist/src/shared/embedding/classes/api-embedding-provider.class.d.ts +33 -0
- package/dist/src/shared/embedding/classes/onnx-embedding-provider.class.d.ts +33 -0
- package/dist/src/shared/embedding/classes/tfidf-embedding-provider.class.d.ts +28 -0
- package/dist/src/shared/embedding/constants/tfidf-defaults.constant.d.ts +4 -0
- package/dist/src/shared/embedding/functions/append-vector-entry.function.d.ts +14 -0
- package/dist/src/shared/embedding/functions/create-embedding-provider.function.d.ts +15 -0
- package/dist/src/shared/embedding/functions/detect-stale-vectors.function.d.ts +16 -0
- package/dist/src/shared/embedding/functions/parse-api-embedding-response.function.d.ts +11 -0
- package/dist/src/shared/embedding/functions/rebuild-vectors.function.d.ts +15 -0
- package/dist/src/shared/embedding/functions/scan-semantic-contradictions.function.d.ts +13 -0
- package/dist/src/shared/embedding/index.d.ts +9 -0
- package/dist/src/shared/embedding/typings/semantic-contradiction.model.d.ts +21 -0
- package/dist/src/shared/embedding/typings/stale-vectors-report.model.d.ts +16 -0
- package/dist/src/shared/log/constants/log-colors.constant.d.ts +5 -0
- package/dist/src/shared/log/constants/log-defaults.constant.d.ts +3 -0
- package/dist/src/shared/log/constants/log-icons.constant.d.ts +3 -0
- package/dist/src/shared/log/functions/configure-log.function.d.ts +12 -0
- package/dist/src/shared/log/functions/log.function.d.ts +28 -0
- package/dist/src/shared/log/functions/parse-log-level.function.d.ts +10 -0
- package/dist/src/shared/log/functions/resolve-log-level.function.d.ts +12 -0
- package/dist/src/shared/log/functions/write-stderr.function.d.ts +10 -0
- package/dist/src/shared/log/index.d.ts +10 -0
- package/dist/src/shared/log/typings/log-config.interface.d.ts +7 -0
- package/dist/src/shared/log/typings/log-level.type.d.ts +7 -0
- package/dist/src/shared/log/typings/log-output.interface.d.ts +4 -0
- package/dist/src/shared/mcp/classes/mcp-server.class.d.ts +22 -2
- package/dist/src/shared/mcp/functions/create-mcp-server.function.d.ts +6 -1
- package/dist/src/shared/mcp/functions/has-sampling-capability.function.d.ts +8 -0
- package/dist/src/shared/mcp/functions/run-auto-capture.function.d.ts +26 -0
- package/dist/src/shared/mcp/typings/mcp-client.interface.d.ts +2 -0
- package/dist/src/shared/mcp/typings/mcp-integrity-check-result.model.d.ts +24 -0
- package/dist/src/shared/mcp/typings/mcp-worker-client.interface.d.ts +3 -1
- package/dist/src/shared/version/constants/version.constant.d.ts +1 -1
- package/dist/src/shared/wasm-codec/typings/paged-search-result.model.d.ts +2 -0
- package/dist/src/shared/worker-client/classes/worker-client.class.d.ts +38 -1
- package/dist/src/shared/worker-client/constants/request-timeout.constant.d.ts +2 -0
- package/dist/src/shared/worker-client/constants/retry-defaults.constant.d.ts +2 -0
- package/dist/src/shared/worker-client/functions/get-or-create-client.function.d.ts +20 -0
- package/dist/src/shared/worker-client/functions/retry-on-timeout.function.d.ts +18 -0
- package/dist/src/shared/worker-client/index.d.ts +4 -1
- package/dist/src/shared/worker-client/typings/import-result.model.d.ts +16 -0
- package/dist/src/shared/worker-client/typings/integrity-check-result.model.d.ts +24 -0
- package/dist/src/shared/worker-client/typings/search-params.model.d.ts +4 -0
- package/dist/src/shared/worker-client/typings/search-result.model.d.ts +6 -0
- package/dist/src/shared/worker-client/typings/worker-client-options.interface.d.ts +7 -0
- package/dist/src/shared/worker-daemon/classes/worker-daemon.class.d.ts +6 -0
- package/dist/src/shared/worker-daemon/functions/create-ipc-server.function.d.ts +11 -11
- package/dist/src/shared/worker-daemon/functions/embed-after-learn.function.d.ts +13 -0
- package/dist/src/shared/worker-daemon/functions/handle-hybrid-search.function.d.ts +44 -0
- package/dist/src/shared/worker-daemon/functions/handle-import.function.d.ts +14 -0
- package/dist/src/shared/worker-daemon/functions/handle-read-ops.function.d.ts +7 -1
- package/dist/src/shared/worker-daemon/functions/handle-write-ops.function.d.ts +9 -4
- package/dist/src/shared/worker-daemon/functions/run-worker.function.d.ts +6 -1
- package/dist/src/shared/worker-daemon/typings/handler-context.interface.d.ts +3 -0
- package/dist/src/shared/worker-daemon/typings/wasm-modules.interface.d.ts +5 -0
- package/dist/wasm/default-embedding/kbdb_default_embedding.d.ts +55 -0
- package/dist/wasm/default-embedding/kbdb_default_embedding.js +156 -0
- package/{src/wasm/query-parser/kbdb_query_parser_bg.wasm → dist/wasm/default-embedding/kbdb_default_embedding_bg.wasm} +0 -0
- package/dist/wasm/default-embedding/kbdb_default_embedding_bg.wasm.d.ts +12 -0
- package/dist/wasm/default-embedding/package.json +13 -0
- package/dist/wasm/fs-database/kbdb_fs_database.d.ts +16 -85
- package/dist/wasm/fs-database/kbdb_fs_database.js +16 -85
- package/dist/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
- package/dist/wasm/fs-migration/kbdb_fs_migration.d.ts +38 -0
- package/dist/wasm/fs-migration/kbdb_fs_migration.js +130 -0
- package/dist/wasm/fs-migration/kbdb_fs_migration_bg.wasm +0 -0
- package/dist/wasm/fs-migration/kbdb_fs_migration_bg.wasm.d.ts +9 -0
- package/dist/wasm/fs-migration/package.json +13 -0
- package/dist/wasm/kb-worker/kbdb_worker.d.ts +20 -115
- package/dist/wasm/kb-worker/kbdb_worker.js +20 -115
- package/dist/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
- package/dist/wasm/query-parser/kbdb_query_parser_bg.wasm +0 -0
- package/dist/worker.d.ts +8 -0
- package/dist/worker.mjs +899 -143
- package/dist/worker.mjs.map +4 -4
- package/docs/details/README.md +4 -0
- package/docs/details/agent-tooling.md +132 -0
- package/docs/details/cli.md +91 -18
- package/docs/details/knowledge-base.md +180 -0
- package/docs/details/library-api.md +42 -2
- package/docs/details/mcp-server.md +53 -7
- package/docs/details/search-and-ranking.md +16 -11
- package/docs/goals/cli.md +142 -37
- package/docs/goals/content-parser.md +1 -1
- package/docs/goals/hybrid-search.md +71 -42
- package/docs/goals/mcp.md +24 -19
- package/docs/goals/overview.md +1 -1
- package/docs/goals/query-parser.md +8 -0
- package/docs/goals/semantic-dedup.md +7 -3
- package/docs/goals/worker-client.md +62 -1
- package/docs/goals/worker-daemon.md +83 -30
- package/docs/modules/overview.md +43 -22
- package/docs/modules/rust/embedding/module.md +91 -0
- package/docs/modules/rust/overview.md +56 -21
- package/docs/modules/rust/query-parser/functions/module.md +7 -5
- package/docs/modules/rust/query-parser/functions/pipeline.md +6 -138
- package/docs/modules/rust/query-parser/module.md +16 -22
- package/docs/modules/rust/query-parser/types/module.md +5 -4
- package/docs/modules/rust/query-parser/types/token.md +5 -1
- package/docs/modules/rust/shared/content-parser/functions.md +1 -1
- package/docs/modules/rust/shared/memory/module.md +1 -1
- package/docs/modules/rust/shared/module.md +33 -5
- package/docs/modules/rust/shared/pipeline/functions.md +141 -0
- package/docs/modules/rust/shared/pipeline/module.md +62 -0
- package/docs/modules/rust/shared/pipeline/types.md +43 -0
- package/docs/modules/rust/shared/section/module.md +1 -1
- package/docs/modules/rust/shared/section/types.md +1 -1
- package/docs/modules/typescript/cli.md +5 -3
- package/docs/modules/typescript/kbdb-worker.md +20 -5
- package/docs/modules/typescript/overview.md +28 -6
- package/docs/modules/typescript/shared/cli/functions.md +131 -17
- package/docs/modules/typescript/shared/cli/module.md +33 -20
- package/docs/modules/typescript/shared/cli/typings.md +25 -0
- package/docs/modules/typescript/shared/embedding/functions.md +125 -19
- package/docs/modules/typescript/shared/embedding/module.md +10 -4
- package/docs/modules/typescript/shared/embedding/typings.md +7 -5
- package/docs/modules/typescript/shared/log/constants.md +82 -0
- package/docs/modules/typescript/shared/log/functions.md +131 -0
- package/docs/modules/typescript/shared/log/module.md +153 -0
- package/docs/modules/typescript/shared/log/typings.md +82 -0
- package/docs/modules/typescript/shared/mcp/module.md +1 -1
- package/docs/modules/typescript/shared/mcp/typings.md +8 -1
- package/docs/modules/typescript/shared/module.md +22 -6
- package/docs/modules/typescript/shared/worker-client/module.md +9 -1
- package/docs/modules/typescript/shared/worker-client/typings.md +3 -0
- package/docs/modules/typescript/shared/worker-daemon/functions.md +19 -6
- package/docs/modules/typescript/shared/worker-daemon/module.md +11 -5
- package/docs/modules/typescript/shared/worker-daemon/typings.md +13 -7
- package/docs/overview.md +1 -2
- package/docs/release-notes/0.4.0.md +80 -0
- package/docs/release-notes/0.4.1.md +149 -0
- package/docs/release-notes/README.md +1 -0
- package/mod.ts +33 -15
- package/package.json +12 -11
- package/dist/chunk-JG2UCKLI.mjs +0 -95
- package/dist/chunk-JG2UCKLI.mjs.map +0 -7
- package/src/cli.ts +0 -71
- package/src/shared/auto-capture/classes/auto-capture-controller.class.ts +0 -62
- package/src/shared/auto-capture/constants/auto-capture-defaults.constant.ts +0 -15
- package/src/shared/auto-capture/functions/build-capture-prompt.function.ts +0 -27
- package/src/shared/auto-capture/functions/evaluate-trigger.function.ts +0 -50
- package/src/shared/auto-capture/index.ts +0 -7
- package/src/shared/auto-capture/typings/auto-capture-config.interface.ts +0 -13
- package/src/shared/auto-capture/typings/auto-capture-state.interface.ts +0 -13
- package/src/shared/auto-capture/typings/auto-capture-trigger.interface.ts +0 -7
- package/src/shared/cli/constants/defaults.constant.ts +0 -19
- package/src/shared/cli/constants/global-help.constant.ts +0 -73
- package/src/shared/cli/constants/help-text.constant.ts +0 -4
- package/src/shared/cli/constants/leaf-help.constant.ts +0 -219
- package/src/shared/cli/constants/memory-protocol-body.constant.ts +0 -39
- package/src/shared/cli/constants/query-guidance-body.constant.ts +0 -37
- package/src/shared/cli/constants/subcommand-help.constant.ts +0 -195
- package/src/shared/cli/functions/collect-files.function.ts +0 -55
- package/src/shared/cli/functions/compute-section-kbid.function.ts +0 -49
- package/src/shared/cli/functions/dispatch-command.function.ts +0 -390
- package/src/shared/cli/functions/ensure-db.function.ts +0 -21
- package/src/shared/cli/functions/error-to-message.function.ts +0 -9
- package/src/shared/cli/functions/find-db.function.ts +0 -20
- package/src/shared/cli/functions/format-mcp-output.function.ts +0 -41
- package/src/shared/cli/functions/format-output.function.ts +0 -95
- package/src/shared/cli/functions/format-text-output.function.ts +0 -42
- package/src/shared/cli/functions/generate-group-help.function.ts +0 -41
- package/src/shared/cli/functions/generate-help.function.ts +0 -654
- package/src/shared/cli/functions/handle-data-command.function.ts +0 -67
- package/src/shared/cli/functions/handle-mcp.function.ts +0 -56
- package/src/shared/cli/functions/handle-migrate.function.ts +0 -64
- package/src/shared/cli/functions/hydrate-search-previews.function.ts +0 -29
- package/src/shared/cli/functions/install-default-skills.function.ts +0 -296
- package/src/shared/cli/functions/is-stdin-tty.function.ts +0 -12
- package/src/shared/cli/functions/parse-args.function.ts +0 -156
- package/src/shared/cli/functions/prompt-user.function.ts +0 -36
- package/src/shared/cli/functions/resolve-skill-names.function.ts +0 -43
- package/src/shared/cli/functions/run-agent-create.function.ts +0 -114
- package/src/shared/cli/functions/run-agent-delete.function.ts +0 -47
- package/src/shared/cli/functions/run-agent-get.function.ts +0 -166
- package/src/shared/cli/functions/run-agent-list.function.ts +0 -58
- package/src/shared/cli/functions/run-check.function.ts +0 -159
- package/src/shared/cli/functions/run-cli.function.ts +0 -299
- package/src/shared/cli/functions/run-content.function.ts +0 -47
- package/src/shared/cli/functions/run-db-init.function.ts +0 -44
- package/src/shared/cli/functions/run-db-migrate.function.ts +0 -40
- package/src/shared/cli/functions/run-export.function.ts +0 -40
- package/src/shared/cli/functions/run-gc.function.ts +0 -51
- package/src/shared/cli/functions/run-init.function.ts +0 -93
- package/src/shared/cli/functions/run-learn.function.ts +0 -223
- package/src/shared/cli/functions/run-migrate.function.ts +0 -85
- package/src/shared/cli/functions/run-rebuild.function.ts +0 -47
- package/src/shared/cli/functions/run-recall.function.ts +0 -66
- package/src/shared/cli/functions/run-search.function.ts +0 -133
- package/src/shared/cli/functions/run-skill-delete.function.ts +0 -47
- package/src/shared/cli/functions/run-skill-get.function.ts +0 -90
- package/src/shared/cli/functions/run-skill-learn.function.ts +0 -70
- package/src/shared/cli/functions/run-skill-list.function.ts +0 -74
- package/src/shared/cli/functions/run-status.function.ts +0 -29
- package/src/shared/cli/functions/run-unlearn.function.ts +0 -58
- package/src/shared/cli/functions/version-gate.function.ts +0 -44
- package/src/shared/cli/functions/wrap-command.function.ts +0 -34
- package/src/shared/cli/index.ts +0 -55
- package/src/shared/cli/typings/agent-create-client.interface.ts +0 -47
- package/src/shared/cli/typings/agent-get-client.interface.ts +0 -39
- package/src/shared/cli/typings/check-client.interface.ts +0 -66
- package/src/shared/cli/typings/cli-deps.interface.ts +0 -54
- package/src/shared/cli/typings/cli-options.interface.ts +0 -72
- package/src/shared/cli/typings/command-result.model.ts +0 -15
- package/src/shared/cli/typings/disconnectable-client.interface.ts +0 -29
- package/src/shared/cli/typings/dispatch-client.type.ts +0 -46
- package/src/shared/cli/typings/learn-client.interface.ts +0 -53
- package/src/shared/cli/typings/learn-io.interface.ts +0 -5
- package/src/shared/cli/typings/learn-result.model.ts +0 -27
- package/src/shared/cli/typings/search-client.interface.ts +0 -73
- package/src/shared/cli/typings/search-display.model.ts +0 -54
- package/src/shared/dir-resolver/functions/join-path.function.ts +0 -13
- package/src/shared/dir-resolver/functions/resolve-base-dir.function.ts +0 -25
- package/src/shared/dir-resolver/functions/resolve-wasm-dir.function.ts +0 -5
- package/src/shared/dir-resolver/functions/resolve-worker-script.function.ts +0 -13
- package/src/shared/dir-resolver/index.ts +0 -11
- package/src/shared/dir-resolver/typings/base-dir.interface.ts +0 -4
- package/src/shared/embedding/classes/null-embedding-provider.class.ts +0 -29
- package/src/shared/embedding/constants/near-duplicate-thresholds.constant.ts +0 -17
- package/src/shared/embedding/functions/build-vector-index.function.ts +0 -79
- package/src/shared/embedding/functions/cosine-similarity.function.ts +0 -31
- package/src/shared/embedding/functions/detect-near-duplicates.function.ts +0 -69
- package/src/shared/embedding/functions/jaccard-coefficient.function.ts +0 -26
- package/src/shared/embedding/functions/read-vector-index-meta.function.ts +0 -44
- package/src/shared/embedding/functions/rrf-fuse.function.ts +0 -33
- package/src/shared/embedding/functions/search-vectors.function.ts +0 -59
- package/src/shared/embedding/index.ts +0 -20
- package/src/shared/embedding/typings/embedding-config.interface.ts +0 -23
- package/src/shared/embedding/typings/embedding-provider.interface.ts +0 -25
- package/src/shared/embedding/typings/near-duplicate-candidate.model.ts +0 -25
- package/src/shared/embedding/typings/near-duplicate-result.model.ts +0 -26
- package/src/shared/embedding/typings/vector-index-entry.model.ts +0 -13
- package/src/shared/embedding/typings/vector-index-meta.model.ts +0 -14
- package/src/shared/embedding/typings/vector-search-result.model.ts +0 -8
- package/src/shared/hash/functions/compute-sha256.ts +0 -17
- package/src/shared/hash/index.ts +0 -1
- package/src/shared/mcp/classes/mcp-server.class.ts +0 -480
- package/src/shared/mcp/constants/mcp-error-codes.constant.ts +0 -30
- package/src/shared/mcp/constants/tool-agent-create.constant.ts +0 -39
- package/src/shared/mcp/constants/tool-agent-delete.constant.ts +0 -26
- package/src/shared/mcp/constants/tool-agent-get.constant.ts +0 -24
- package/src/shared/mcp/constants/tool-agent-list.constant.ts +0 -18
- package/src/shared/mcp/constants/tool-auto-capture-review.constant.ts +0 -32
- package/src/shared/mcp/constants/tool-check.constant.ts +0 -21
- package/src/shared/mcp/constants/tool-content.constant.ts +0 -29
- package/src/shared/mcp/constants/tool-export.constant.ts +0 -27
- package/src/shared/mcp/constants/tool-gc.constant.ts +0 -21
- package/src/shared/mcp/constants/tool-learn.constant.ts +0 -58
- package/src/shared/mcp/constants/tool-rebuild.constant.ts +0 -21
- package/src/shared/mcp/constants/tool-recall.constant.ts +0 -36
- package/src/shared/mcp/constants/tool-retrieve.constant.ts +0 -31
- package/src/shared/mcp/constants/tool-search.constant.ts +0 -51
- package/src/shared/mcp/constants/tool-skill-delete.constant.ts +0 -24
- package/src/shared/mcp/constants/tool-skill-get.constant.ts +0 -27
- package/src/shared/mcp/constants/tool-skill-learn.constant.ts +0 -37
- package/src/shared/mcp/constants/tool-skill-list.constant.ts +0 -18
- package/src/shared/mcp/constants/tool-status.constant.ts +0 -20
- package/src/shared/mcp/constants/tool-unlearn.constant.ts +0 -25
- package/src/shared/mcp/functions/as-boolean-or-undefined.function.ts +0 -11
- package/src/shared/mcp/functions/as-string-array-or-undefined.function.ts +0 -17
- package/src/shared/mcp/functions/as-string-array.function.ts +0 -15
- package/src/shared/mcp/functions/as-string.function.ts +0 -10
- package/src/shared/mcp/functions/build-skills-text.function.ts +0 -43
- package/src/shared/mcp/functions/create-mcp-server.function.ts +0 -14
- package/src/shared/mcp/functions/create-prompt-definitions.function.ts +0 -102
- package/src/shared/mcp/functions/create-resource-templates.function.ts +0 -23
- package/src/shared/mcp/functions/create-tool-definitions.function.ts +0 -530
- package/src/shared/mcp/functions/extract-skill-arguments.function.ts +0 -27
- package/src/shared/mcp/functions/handle-agent-create.function.ts +0 -116
- package/src/shared/mcp/functions/handle-agent-delete.function.ts +0 -50
- package/src/shared/mcp/functions/handle-agent-get.function.ts +0 -160
- package/src/shared/mcp/functions/handle-agent-list.function.ts +0 -50
- package/src/shared/mcp/functions/handle-agent-prompt.function.ts +0 -68
- package/src/shared/mcp/functions/handle-completion.function.ts +0 -114
- package/src/shared/mcp/functions/handle-mcp-request.function.ts +0 -202
- package/src/shared/mcp/functions/handle-prompt-get.function.ts +0 -220
- package/src/shared/mcp/functions/handle-recall.function.ts +0 -66
- package/src/shared/mcp/functions/handle-resource-read.function.ts +0 -56
- package/src/shared/mcp/functions/handle-roots-list.function.ts +0 -29
- package/src/shared/mcp/functions/handle-skill-prompt.function.ts +0 -44
- package/src/shared/mcp/functions/handle-tool-auto-capture-review.function.ts +0 -24
- package/src/shared/mcp/functions/handle-tool-call.function.ts +0 -560
- package/src/shared/mcp/functions/handle-tool-check.function.ts +0 -21
- package/src/shared/mcp/functions/handle-tool-content.function.ts +0 -23
- package/src/shared/mcp/functions/handle-tool-export.function.ts +0 -25
- package/src/shared/mcp/functions/handle-tool-gc.function.ts +0 -21
- package/src/shared/mcp/functions/handle-tool-learn.function.ts +0 -69
- package/src/shared/mcp/functions/handle-tool-rebuild.function.ts +0 -21
- package/src/shared/mcp/functions/handle-tool-retrieve.function.ts +0 -40
- package/src/shared/mcp/functions/handle-tool-search.function.ts +0 -47
- package/src/shared/mcp/functions/handle-tool-skill-delete.function.ts +0 -34
- package/src/shared/mcp/functions/handle-tool-skill-get.function.ts +0 -59
- package/src/shared/mcp/functions/handle-tool-skill-learn.function.ts +0 -61
- package/src/shared/mcp/functions/handle-tool-skill-list.function.ts +0 -39
- package/src/shared/mcp/functions/handle-tool-status.function.ts +0 -21
- package/src/shared/mcp/functions/handle-tool-unlearn.function.ts +0 -24
- package/src/shared/mcp/functions/parse-agent-meta.function.ts +0 -27
- package/src/shared/mcp/functions/parse-skill-arguments.function.ts +0 -36
- package/src/shared/mcp/functions/parse-skill-content.function.ts +0 -38
- package/src/shared/mcp/functions/read-agent-meta.function.ts +0 -41
- package/src/shared/mcp/functions/resolve-skill-refs.function.ts +0 -50
- package/src/shared/mcp/functions/run-startup-health-check.function.ts +0 -34
- package/src/shared/mcp/functions/serialize-skill-content.function.ts +0 -12
- package/src/shared/mcp/functions/should-emit-log.function.ts +0 -38
- package/src/shared/mcp/index.ts +0 -28
- package/src/shared/mcp/typings/agent-types.interface.ts +0 -39
- package/src/shared/mcp/typings/log-types.interface.ts +0 -26
- package/src/shared/mcp/typings/mcp-capabilities.interface.ts +0 -16
- package/src/shared/mcp/typings/mcp-client.interface.ts +0 -317
- package/src/shared/mcp/typings/mcp-completion.interface.ts +0 -45
- package/src/shared/mcp/typings/mcp-content-result.model.ts +0 -9
- package/src/shared/mcp/typings/mcp-export-result.model.ts +0 -11
- package/src/shared/mcp/typings/mcp-gc-result.model.ts +0 -15
- package/src/shared/mcp/typings/mcp-integrity-check-result.model.ts +0 -17
- package/src/shared/mcp/typings/mcp-integrity-error.model.ts +0 -15
- package/src/shared/mcp/typings/mcp-notification.interface.ts +0 -9
- package/src/shared/mcp/typings/mcp-rebuild-result.model.ts +0 -9
- package/src/shared/mcp/typings/mcp-request.interface.ts +0 -11
- package/src/shared/mcp/typings/mcp-resource-result.interface.ts +0 -12
- package/src/shared/mcp/typings/mcp-resource-template.interface.ts +0 -11
- package/src/shared/mcp/typings/mcp-response.interface.ts +0 -18
- package/src/shared/mcp/typings/mcp-server-info.interface.ts +0 -7
- package/src/shared/mcp/typings/mcp-server-state.interface.ts +0 -17
- package/src/shared/mcp/typings/mcp-tool-annotations.interface.ts +0 -32
- package/src/shared/mcp/typings/mcp-tool-definition.interface.ts +0 -16
- package/src/shared/mcp/typings/mcp-tool-result.interface.ts +0 -19
- package/src/shared/mcp/typings/mcp-types.interface.ts +0 -158
- package/src/shared/mcp/typings/mcp-worker-client.interface.ts +0 -243
- package/src/shared/mcp/typings/prompt-types.interface.ts +0 -39
- package/src/shared/mcp/typings/remove-section-result.model.ts +0 -10
- package/src/shared/mcp/typings/sampling-types.interface.ts +0 -48
- package/src/shared/mcp/typings/skill-types.interface.ts +0 -29
- package/src/shared/mcp/typings/tool-call-result.model.ts +0 -18
- package/src/shared/mod.ts +0 -1
- package/src/shared/platform/functions/get-ipc-path.function.ts +0 -19
- package/src/shared/platform/functions/get-tmpdir.function.ts +0 -8
- package/src/shared/platform/functions/is-process-alive.function.ts +0 -17
- package/src/shared/platform/index.ts +0 -3
- package/src/shared/runtime/functions/detect-runtime.ts +0 -14
- package/src/shared/runtime/functions/get-args.ts +0 -16
- package/src/shared/runtime/index.ts +0 -3
- package/src/shared/runtime/typings/runtime.ts +0 -2
- package/src/shared/sync/functions/build-import-report.function.ts +0 -40
- package/src/shared/sync/functions/parse-export-entry.function.ts +0 -45
- package/src/shared/sync/functions/resolve-conflict.function.ts +0 -31
- package/src/shared/sync/functions/serialize-export-entry.function.ts +0 -18
- package/src/shared/sync/index.ts +0 -9
- package/src/shared/sync/typings/conflict-resolution.type.ts +0 -8
- package/src/shared/sync/typings/export-entry.interface.ts +0 -13
- package/src/shared/sync/typings/export-options.interface.ts +0 -9
- package/src/shared/sync/typings/import-options.interface.ts +0 -7
- package/src/shared/sync/typings/import-report.interface.ts +0 -15
- package/src/shared/version/constants/version.constant.ts +0 -2
- package/src/shared/version/index.ts +0 -1
- package/src/shared/wasm-codec/functions/decode-add-section-result.function.ts +0 -112
- package/src/shared/wasm-codec/functions/decode-compose-output.function.ts +0 -16
- package/src/shared/wasm-codec/functions/decode-document-manifest-list.function.ts +0 -70
- package/src/shared/wasm-codec/functions/decode-document-manifest.function.ts +0 -87
- package/src/shared/wasm-codec/functions/decode-f32.function.ts +0 -16
- package/src/shared/wasm-codec/functions/decode-key-value-text.function.ts +0 -15
- package/src/shared/wasm-codec/functions/decode-one-recall-result.function.ts +0 -86
- package/src/shared/wasm-codec/functions/decode-option-string.function.ts +0 -24
- package/src/shared/wasm-codec/functions/decode-recall-document.function.ts +0 -59
- package/src/shared/wasm-codec/functions/decode-recall-reference.function.ts +0 -52
- package/src/shared/wasm-codec/functions/decode-recall-result.function.ts +0 -267
- package/src/shared/wasm-codec/functions/decode-recall-sibling.function.ts +0 -43
- package/src/shared/wasm-codec/functions/decode-remove-flag.function.ts +0 -3
- package/src/shared/wasm-codec/functions/decode-scored-results.function.ts +0 -194
- package/src/shared/wasm-codec/functions/decode-section-match.function.ts +0 -80
- package/src/shared/wasm-codec/functions/decode-section-record-list.function.ts +0 -20
- package/src/shared/wasm-codec/functions/decode-section-record-trailing.function.ts +0 -75
- package/src/shared/wasm-codec/functions/decode-section-record.function.ts +0 -85
- package/src/shared/wasm-codec/functions/decode-section-records.function.ts +0 -249
- package/src/shared/wasm-codec/functions/decode-section-type.function.ts +0 -30
- package/src/shared/wasm-codec/functions/decode-string.function.ts +0 -22
- package/src/shared/wasm-codec/functions/decode-u32.function.ts +0 -16
- package/src/shared/wasm-codec/functions/decode-u64.function.ts +0 -16
- package/src/shared/wasm-codec/functions/decode-wasm-list.function.ts +0 -31
- package/src/shared/wasm-codec/functions/encode-add-section-params.function.ts +0 -102
- package/src/shared/wasm-codec/functions/encode-group-params.function.ts +0 -28
- package/src/shared/wasm-codec/functions/encode-identifier-list.function.ts +0 -17
- package/src/shared/wasm-codec/functions/encode-kbid-list.function.ts +0 -17
- package/src/shared/wasm-codec/functions/encode-option-string.function.ts +0 -14
- package/src/shared/wasm-codec/functions/encode-recall-params.function.ts +0 -68
- package/src/shared/wasm-codec/functions/encode-search-params.function.ts +0 -12
- package/src/shared/wasm-codec/functions/encode-section-type.function.ts +0 -18
- package/src/shared/wasm-codec/functions/encode-string.function.ts +0 -9
- package/src/shared/wasm-codec/functions/encode-type-filter-param.function.ts +0 -13
- package/src/shared/wasm-codec/functions/encode-u32.function.ts +0 -5
- package/src/shared/wasm-codec/functions/encode-update-section-params.function.ts +0 -16
- package/src/shared/wasm-codec/index.ts +0 -49
- package/src/shared/wasm-codec/typings/add-section-input.model.ts +0 -45
- package/src/shared/wasm-codec/typings/add-section-result.model.ts +0 -28
- package/src/shared/wasm-codec/typings/document-manifest.model.ts +0 -20
- package/src/shared/wasm-codec/typings/document-section.model.ts +0 -12
- package/src/shared/wasm-codec/typings/item-decoder.type.ts +0 -10
- package/src/shared/wasm-codec/typings/near-duplicate.model.ts +0 -16
- package/src/shared/wasm-codec/typings/paged-search-result.model.ts +0 -22
- package/src/shared/wasm-codec/typings/section-match.model.ts +0 -31
- package/src/shared/wasm-codec/typings/section-record-trailing.model.ts +0 -38
- package/src/shared/wasm-codec/typings/section-record.model.ts +0 -66
- package/src/shared/wasm-codec/typings/section-type-result.model.ts +0 -12
- package/src/shared/worker-client/classes/worker-client.class.ts +0 -466
- package/src/shared/worker-client/functions/compute-context-id.function.ts +0 -18
- package/src/shared/worker-client/functions/create-worker-client.function.ts +0 -70
- package/src/shared/worker-client/functions/discover-daemon.function.ts +0 -47
- package/src/shared/worker-client/functions/handle-ipc-data.function.ts +0 -49
- package/src/shared/worker-client/functions/resolve-db-path.function.ts +0 -21
- package/src/shared/worker-client/functions/send-ipc-request.function.ts +0 -39
- package/src/shared/worker-client/functions/spawn-daemon.function.ts +0 -35
- package/src/shared/worker-client/functions/wait-for-daemon.function.ts +0 -34
- package/src/shared/worker-client/index.ts +0 -44
- package/src/shared/worker-client/typings/add-section-result.model.ts +0 -39
- package/src/shared/worker-client/typings/content-result.model.ts +0 -12
- package/src/shared/worker-client/typings/daemon-info.model.ts +0 -7
- package/src/shared/worker-client/typings/export-result.model.ts +0 -14
- package/src/shared/worker-client/typings/gc-result.model.ts +0 -18
- package/src/shared/worker-client/typings/integrity-check-result.model.ts +0 -43
- package/src/shared/worker-client/typings/json-rpc-response.interface.ts +0 -17
- package/src/shared/worker-client/typings/migrate-result.model.ts +0 -11
- package/src/shared/worker-client/typings/pending-call.interface.ts +0 -7
- package/src/shared/worker-client/typings/rebuild-result.model.ts +0 -12
- package/src/shared/worker-client/typings/recall-document.model.ts +0 -16
- package/src/shared/worker-client/typings/recall-params.model.ts +0 -15
- package/src/shared/worker-client/typings/recall-reference.model.ts +0 -32
- package/src/shared/worker-client/typings/recall-result.model.ts +0 -98
- package/src/shared/worker-client/typings/recall-sibling.model.ts +0 -11
- package/src/shared/worker-client/typings/recall-single-result.model.ts +0 -41
- package/src/shared/worker-client/typings/remove-section-result.model.ts +0 -7
- package/src/shared/worker-client/typings/search-params.model.ts +0 -14
- package/src/shared/worker-client/typings/search-result.model.ts +0 -43
- package/src/shared/worker-client/typings/section.model.ts +0 -43
- package/src/shared/worker-client/typings/status-result.model.ts +0 -14
- package/src/shared/worker-client/typings/version-status.model.ts +0 -28
- package/src/shared/worker-client/typings/worker-client-error.interface.ts +0 -8
- package/src/shared/worker-client/typings/worker-client-options.interface.ts +0 -30
- package/src/shared/worker-daemon/classes/ipc-error.class.ts +0 -22
- package/src/shared/worker-daemon/classes/worker-daemon.class.ts +0 -1291
- package/src/shared/worker-daemon/constants/daemon-defaults.constant.ts +0 -29
- package/src/shared/worker-daemon/constants/wasm-method-map.constant.ts +0 -69
- package/src/shared/worker-daemon/functions/build-ipc-error-response.function.ts +0 -16
- package/src/shared/worker-daemon/functions/check-catalog-version.function.ts +0 -54
- package/src/shared/worker-daemon/functions/check-preconditions.function.ts +0 -28
- package/src/shared/worker-daemon/functions/create-host-imports.function.ts +0 -328
- package/src/shared/worker-daemon/functions/create-ipc-server.function.ts +0 -87
- package/src/shared/worker-daemon/functions/detect-stale-pid.function.ts +0 -33
- package/src/shared/worker-daemon/functions/dispatch-request.function.ts +0 -190
- package/src/shared/worker-daemon/functions/handle-check-version.function.ts +0 -74
- package/src/shared/worker-daemon/functions/handle-config-method.function.ts +0 -27
- package/src/shared/worker-daemon/functions/handle-read-ops.function.ts +0 -236
- package/src/shared/worker-daemon/functions/handle-write-ops.function.ts +0 -257
- package/src/shared/worker-daemon/functions/load-wasm-modules.function.ts +0 -95
- package/src/shared/worker-daemon/functions/parse-auto-capture-section.function.ts +0 -51
- package/src/shared/worker-daemon/functions/parse-catalog-version.function.ts +0 -20
- package/src/shared/worker-daemon/functions/parse-embedding-section.function.ts +0 -38
- package/src/shared/worker-daemon/functions/parse-worker-toml.function.ts +0 -104
- package/src/shared/worker-daemon/functions/read-config.function.ts +0 -83
- package/src/shared/worker-daemon/functions/run-startup-integrity-check.function.ts +0 -55
- package/src/shared/worker-daemon/functions/run-worker.function.ts +0 -57
- package/src/shared/worker-daemon/functions/scan-near-duplicates.function.ts +0 -92
- package/src/shared/worker-daemon/functions/start-daemon.function.ts +0 -74
- package/src/shared/worker-daemon/functions/wasm-bridge.function.ts +0 -144
- package/src/shared/worker-daemon/functions/wasm-memory-helpers.function.ts +0 -41
- package/src/shared/worker-daemon/functions/write-lock.function.ts +0 -49
- package/src/shared/worker-daemon/index.ts +0 -16
- package/src/shared/worker-daemon/typings/allocator-ref.interface.ts +0 -16
- package/src/shared/worker-daemon/typings/daemon-config.interface.ts +0 -20
- package/src/shared/worker-daemon/typings/fs-adapter.interface.ts +0 -22
- package/src/shared/worker-daemon/typings/handler-context.interface.ts +0 -19
- package/src/shared/worker-daemon/typings/ipc-handler.interface.ts +0 -39
- package/src/shared/worker-daemon/typings/memory-ref.interface.ts +0 -13
- package/src/shared/worker-daemon/typings/wasm-fn.type.ts +0 -2
- package/src/shared/worker-daemon/typings/wasm-modules.interface.ts +0 -7
- package/src/shared/worker-daemon/typings/write-lock.interface.ts +0 -13
- package/src/wasm/fs-database/kbdb_fs_database.d.ts +0 -259
- package/src/wasm/fs-database/kbdb_fs_database.js +0 -515
- package/src/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
- package/src/wasm/fs-database/kbdb_fs_database_bg.wasm.d.ts +0 -35
- package/src/wasm/fs-database/package.json +0 -13
- package/src/wasm/kb-worker/kbdb_worker.d.ts +0 -650
- package/src/wasm/kb-worker/kbdb_worker.js +0 -1181
- package/src/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
- package/src/wasm/kb-worker/kbdb_worker_bg.wasm.d.ts +0 -77
- package/src/wasm/kb-worker/package.json +0 -13
- package/src/wasm/query-parser/kbdb_query_parser.d.ts +0 -195
- package/src/wasm/query-parser/kbdb_query_parser.js +0 -403
- package/src/wasm/query-parser/kbdb_query_parser_bg.wasm.d.ts +0 -25
- package/src/wasm/query-parser/package.json +0 -13
- package/src/worker.ts +0 -42
|
@@ -34,8 +34,9 @@ both modes.
|
|
|
34
34
|
## Architecture
|
|
35
35
|
|
|
36
36
|
Two retrieval paths run in parallel. The vector path
|
|
37
|
-
runs
|
|
38
|
-
|
|
37
|
+
runs in TypeScript, backed by a lightweight WASM crate
|
|
38
|
+
(`kbdb-default-embedding`) for the built-in TF-IDF
|
|
39
|
+
provider.
|
|
39
40
|
|
|
40
41
|
```
|
|
41
42
|
Query → ┌─ Lexical path (WASM) ─→ BM25F ranked list ─┐
|
|
@@ -43,12 +44,19 @@ Query → ┌─ Lexical path (WASM) ─→ BM25F ranked list ─┐
|
|
|
43
44
|
└─ Vector path (TS) ─→ Cosine ranked list ──┘
|
|
44
45
|
```
|
|
45
46
|
|
|
46
|
-
The WASM
|
|
47
|
-
remains a pure-computation lexical
|
|
48
|
-
continues to orchestrate
|
|
49
|
-
`fs-database.wasm` exactly as
|
|
50
|
-
|
|
51
|
-
|
|
47
|
+
The existing WASM modules are untouched.
|
|
48
|
+
`query-parser.wasm` remains a pure-computation lexical
|
|
49
|
+
module. `kb-worker.wasm` continues to orchestrate
|
|
50
|
+
lexical retrieval via `fs-database.wasm` exactly as
|
|
51
|
+
today. No new exports or host imports are added to
|
|
52
|
+
any existing WASM module.
|
|
53
|
+
|
|
54
|
+
A new standalone WASM crate, `kbdb-default-embedding`,
|
|
55
|
+
provides the built-in TF-IDF embedding computation.
|
|
56
|
+
It depends only on `kbdb-shared` and requires no host
|
|
57
|
+
imports -- pure computation. It is loaded as an
|
|
58
|
+
independent WASM instance by the worker daemon
|
|
59
|
+
alongside the existing three modules.
|
|
52
60
|
|
|
53
61
|
The TypeScript daemon layer adds the vector path as an
|
|
54
62
|
independent retrieval step that runs after the lexical
|
|
@@ -93,15 +101,29 @@ interface EmbeddingProvider {
|
|
|
93
101
|
|
|
94
102
|
### Implementations
|
|
95
103
|
|
|
96
|
-
|
|
104
|
+
Four concrete implementations are specified.
|
|
105
|
+
|
|
106
|
+
**`TfidfEmbeddingProvider`** -- lightweight built-in
|
|
107
|
+
provider backed by the `kbdb-default-embedding` WASM
|
|
108
|
+
crate. Computes feature-hashed sublinear TF vectors
|
|
109
|
+
(256 dimensions, L2-normalized) using kbdb-shared's
|
|
110
|
+
tokenization pipeline (NFC normalization, Unicode
|
|
111
|
+
segmentation, camelCase splitting, stop-word removal,
|
|
112
|
+
synonym expansion, Snowball stemming). This ensures
|
|
113
|
+
token consistency between the lexical index and the
|
|
114
|
+
TF-IDF vectors -- hybrid search fuses two views of
|
|
115
|
+
the same vocabulary. The default when no `[embedding]`
|
|
116
|
+
section is present in `worker.toml`. Enables hybrid
|
|
117
|
+
search out of the box with zero configuration and
|
|
118
|
+
zero external dependencies. Uses FNV-1a feature
|
|
119
|
+
hashing with the sign trick (Weinberger et al., 2009).
|
|
120
|
+
Model name: `tfidf-v1`.
|
|
97
121
|
|
|
98
122
|
**`NullEmbeddingProvider`** -- no-op, returns empty
|
|
99
|
-
arrays.
|
|
100
|
-
|
|
101
|
-
`
|
|
102
|
-
|
|
103
|
-
results. Satisfies POLA: the absence of configuration
|
|
104
|
-
does not silently degrade results.
|
|
123
|
+
arrays. Available for explicit use but no longer the
|
|
124
|
+
default. Returns 0 dimensions, which causes
|
|
125
|
+
`assertProvider` to reject hybrid/vector search
|
|
126
|
+
requests with a structured error.
|
|
105
127
|
|
|
106
128
|
**`OnnxEmbeddingProvider`** -- local offline inference
|
|
107
129
|
using ONNX Runtime. Default model: `all-MiniLM-L6-v2`
|
|
@@ -305,9 +327,12 @@ The default is `lexical`. Existing integrations that do
|
|
|
305
327
|
not supply `search_mode` are unchanged. This is a
|
|
306
328
|
strict backward-compatibility guarantee.
|
|
307
329
|
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
330
|
+
When `[embedding]` is absent from `worker.toml`, the
|
|
331
|
+
`TfidfEmbeddingProvider` is active as the default.
|
|
332
|
+
Hybrid and vector search work out of the box using
|
|
333
|
+
feature-hashed TF vectors. If the user explicitly sets
|
|
334
|
+
`provider = "none"`, `NullEmbeddingProvider` is used
|
|
335
|
+
and hybrid/vector search returns a structured error:
|
|
311
336
|
|
|
312
337
|
```json
|
|
313
338
|
{
|
|
@@ -320,21 +345,21 @@ active) returns a structured error:
|
|
|
320
345
|
|
|
321
346
|
### CLI
|
|
322
347
|
|
|
323
|
-
The `search` subcommand gains an optional `--
|
|
348
|
+
The `search` subcommand gains an optional `--algo` flag:
|
|
324
349
|
|
|
325
350
|
```
|
|
326
351
|
kbdb search "database rationale"
|
|
327
|
-
kbdb search --
|
|
328
|
-
kbdb search --
|
|
352
|
+
kbdb search --algo hybrid "database rationale"
|
|
353
|
+
kbdb search --algo vector "database rationale"
|
|
329
354
|
```
|
|
330
355
|
|
|
331
|
-
Omitting `--
|
|
356
|
+
Omitting `--algo` defaults to `lexical`. The flag is
|
|
332
357
|
not shown in the short help unless an embedding provider
|
|
333
358
|
is configured.
|
|
334
359
|
|
|
335
360
|
### MCP
|
|
336
361
|
|
|
337
|
-
The `search` MCP tool gains an optional `
|
|
362
|
+
The `search` MCP tool gains an optional `algo` parameter
|
|
338
363
|
(string enum: `"lexical" | "vector" | "hybrid"`). The
|
|
339
364
|
parameter is documented as optional in the tool schema
|
|
340
365
|
with a default of `"lexical"`.
|
|
@@ -378,8 +403,10 @@ api_key_env = "KBDB_API_KEY"
|
|
|
378
403
|
| `api_key_env` | `"KBDB_API_KEY"` | Environment variable holding the API key |
|
|
379
404
|
|
|
380
405
|
When `[embedding]` is absent from `worker.toml`,
|
|
381
|
-
`provider` defaults to `"none"` and
|
|
382
|
-
is used
|
|
406
|
+
`provider` defaults to `"none"` and the built-in
|
|
407
|
+
`TfidfEmbeddingProvider` is used (256-dimensional
|
|
408
|
+
feature-hashed TF vectors). To fully disable
|
|
409
|
+
embeddings, set `provider = "none"` explicitly.
|
|
383
410
|
|
|
384
411
|
## Fallback Behaviour
|
|
385
412
|
|
|
@@ -388,11 +415,12 @@ in the search response with a specific warning field
|
|
|
388
415
|
rather than silently degrading.
|
|
389
416
|
|
|
390
417
|
**No embedding provider configured.**
|
|
391
|
-
`
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
418
|
+
The built-in `TfidfEmbeddingProvider` is active by
|
|
419
|
+
default, so hybrid and vector search work without
|
|
420
|
+
configuration. If the user explicitly sets
|
|
421
|
+
`provider = "none"`, requesting `hybrid` or `vector`
|
|
422
|
+
returns a structured error with code
|
|
423
|
+
`EMBEDDING_PROVIDER_NOT_CONFIGURED`.
|
|
396
424
|
|
|
397
425
|
**Stale vector index (model mismatch).**
|
|
398
426
|
When `vectors-meta.toml` model name does not match the
|
|
@@ -413,24 +441,25 @@ results until a rebuild is run.
|
|
|
413
441
|
|
|
414
442
|
## Provider Tradeoffs
|
|
415
443
|
|
|
416
|
-
| Aspect | ONNX (local) | API (cloud) |
|
|
417
|
-
|
|
418
|
-
| Latency | ~10 ms/embed | ~100 ms/embed |
|
|
419
|
-
| Offline | Yes | No |
|
|
420
|
-
| Cost | Free | Per-token |
|
|
421
|
-
| Quality | Good (384 dimensions) | Excellent (1536+ dimensions) |
|
|
422
|
-
| Setup | Model download on first use | API key required |
|
|
423
|
-
|
|
|
424
|
-
|
|
425
|
-
|
|
444
|
+
| Aspect | TF-IDF (built-in) | ONNX (local) | API (cloud) |
|
|
445
|
+
|---------------|---------------------------|---------------------------|------------------------------|
|
|
446
|
+
| Latency | < 1 ms/embed | ~10 ms/embed | ~100 ms/embed |
|
|
447
|
+
| Offline | Yes | Yes | No |
|
|
448
|
+
| Cost | Free | Free | Per-token |
|
|
449
|
+
| Quality | Adequate (256 dimensions) | Good (384 dimensions) | Excellent (1536+ dimensions) |
|
|
450
|
+
| Setup | None (default) | Model download on first use | API key required |
|
|
451
|
+
| Dependencies | None | onnxruntime-node | None |
|
|
452
|
+
| Dual runtime | Deno + Node.js >= 20 | Deno + Node.js >= 20 | Deno + Node.js >= 20 |
|
|
453
|
+
|
|
454
|
+
All providers implement the same `EmbeddingProvider`
|
|
426
455
|
interface. The daemon interacts only with the interface.
|
|
427
456
|
|
|
428
457
|
## Design Constraints
|
|
429
458
|
|
|
430
459
|
| Constraint | Details |
|
|
431
460
|
|-----------------------|------------------------------------------------|
|
|
432
|
-
| WASM purity | `query-parser.wasm` remains pure lexical computation with no I/O.
|
|
461
|
+
| WASM purity | `query-parser.wasm` remains pure lexical computation with no I/O. A new standalone crate, `kbdb-default-embedding`, is added for TF-IDF embedding but has no host imports. Existing WASM modules are unchanged. |
|
|
433
462
|
| Backward compatibility | Default `search_mode` is `lexical`. Callers that do not supply the parameter receive identical behaviour to today. |
|
|
434
463
|
| File-based storage | `vectors.idx` and `vectors-meta.toml` follow the same derived-and-rebuildable pattern as all other index files. |
|
|
435
464
|
| Dual runtime | `EmbeddingProvider` and all embedding logic must work on Deno and Node.js >= 20. No Node-specific or Deno-specific APIs in the implementation. |
|
|
436
|
-
| No new
|
|
465
|
+
| No new deps on existing WASM | The existing WASM modules (`fs-database.wasm`, `query-parser.wasm`, `kb-worker.wasm`) are not modified or recompiled. A new standalone module (`default-embedding.wasm`) is added, bringing the total to four WASM modules. |
|
package/docs/goals/mcp.md
CHANGED
|
@@ -27,25 +27,30 @@ identically.
|
|
|
27
27
|
## Invocation
|
|
28
28
|
|
|
29
29
|
```
|
|
30
|
-
kbdb mcp [--db <path>]
|
|
30
|
+
kbdb mcp [--db <path>] [--timeout-ms <ms>]
|
|
31
|
+
[--retry <n>] [--non-interactive]
|
|
31
32
|
```
|
|
32
33
|
|
|
33
|
-
|
|
34
|
-
`.kbdb` database directory. If omitted, the
|
|
35
|
-
reads the `
|
|
36
|
-
|
|
37
|
-
back to the current working directory.
|
|
34
|
+
All flags are optional. `--db` specifies the path
|
|
35
|
+
to the `.kbdb` database directory. If omitted, the
|
|
36
|
+
server reads the `KBDB_DB_DIR` environment variable,
|
|
37
|
+
then falls back to the current working directory.
|
|
38
38
|
|
|
39
39
|
Resolution order:
|
|
40
40
|
|
|
41
41
|
1. `--db <path>` command-line flag.
|
|
42
|
-
2. `
|
|
43
|
-
3.
|
|
42
|
+
2. `KBDB_DB_DIR` environment variable.
|
|
43
|
+
3. Current working directory.
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
### Environment Variables
|
|
46
|
+
|
|
47
|
+
| Variable | Description |
|
|
48
|
+
|-----------------------|-------------------------|
|
|
49
|
+
| `KBDB_DB_DIR` | Fallback database directory when `--db` is not specified |
|
|
50
|
+
| `KBDB_DAEMON_TIMEOUT` | Request timeout fallback (ms); default 30 000 |
|
|
51
|
+
| `KBDB_RETRY` | Retry count fallback; default 5 |
|
|
52
|
+
| `KBDB_LOG_LEVEL` | Log verbosity: `debug`, `info`, `warning`, `error` |
|
|
53
|
+
| `KBDB_NON_INTERACTIVE`| Suppress prompts (`1` or `true`) |
|
|
49
54
|
|
|
50
55
|
See [CLI -- Run Modes](cli.md#run-modes) for how
|
|
51
56
|
the `kbdb` executable dispatches to MCP mode.
|
|
@@ -127,7 +132,7 @@ Add to `.claude/settings.json` or project settings:
|
|
|
127
132
|
|
|
128
133
|
### Environment Variable
|
|
129
134
|
|
|
130
|
-
The `--db` flag can be replaced by `
|
|
135
|
+
The `--db` flag can be replaced by `KBDB_DB_DIR`:
|
|
131
136
|
|
|
132
137
|
```json
|
|
133
138
|
{
|
|
@@ -136,7 +141,7 @@ The `--db` flag can be replaced by `KBDB_DIR`:
|
|
|
136
141
|
"command": "npx",
|
|
137
142
|
"args": ["@dikolab/kbdb", "mcp"],
|
|
138
143
|
"env": {
|
|
139
|
-
"
|
|
144
|
+
"KBDB_DB_DIR": "/path/to/.kbdb"
|
|
140
145
|
}
|
|
141
146
|
}
|
|
142
147
|
}
|
|
@@ -1125,7 +1130,7 @@ interface McpToolAnnotations {
|
|
|
1125
1130
|
}
|
|
1126
1131
|
```
|
|
1127
1132
|
|
|
1128
|
-
Annotations for all
|
|
1133
|
+
Annotations for all 20 kbdb tools:
|
|
1129
1134
|
|
|
1130
1135
|
| Tool | title | readOnly | destructive | idempotent | openWorld |
|
|
1131
1136
|
|----------------|-------------------|----------|-------------|------------|-----------|
|
|
@@ -1148,6 +1153,7 @@ Annotations for all 19 kbdb tools:
|
|
|
1148
1153
|
| `agent-list` | List Agents | true | false | true | false |
|
|
1149
1154
|
| `agent-get` | Get Agent | true | false | true | false |
|
|
1150
1155
|
| `agent-delete` | Delete Agent | false | true | true | false |
|
|
1156
|
+
| `auto-capture-review` | Review Captures | false | false | false | false |
|
|
1151
1157
|
|
|
1152
1158
|
## Completions
|
|
1153
1159
|
|
|
@@ -1361,7 +1367,7 @@ The difference is the interface:
|
|
|
1361
1367
|
| Interface | Command-line arguments | MCP protocol (stdio) |
|
|
1362
1368
|
| Consumer | Human / shell script | AI agent |
|
|
1363
1369
|
| Output | stdout (JSON/text/MCP) | MCP tool result format |
|
|
1364
|
-
| DB path | CWD or `--db` flag | `--db` flag or `
|
|
1370
|
+
| DB path | CWD or `--db` flag | `--db` flag or `KBDB_DB_DIR` env |
|
|
1365
1371
|
|
|
1366
1372
|
See [CLI](cli.md) for CLI mode details,
|
|
1367
1373
|
[Worker Client](worker-client.md) for the shared
|
|
@@ -1513,9 +1519,8 @@ returns `-32601` if they are called.
|
|
|
1513
1519
|
- The server works with both Deno and Node.js
|
|
1514
1520
|
runtimes, consistent with the project's
|
|
1515
1521
|
dual-runtime requirement.
|
|
1516
|
-
- The database path
|
|
1517
|
-
|
|
1518
|
-
fallback.
|
|
1522
|
+
- The database path is resolved from `--db`,
|
|
1523
|
+
`KBDB_DB_DIR`, or the current working directory.
|
|
1519
1524
|
- The MCP server does not perform keyword extraction,
|
|
1520
1525
|
indexing, ranking, or database I/O itself. All
|
|
1521
1526
|
processing is delegated to the worker daemon via
|
package/docs/goals/overview.md
CHANGED
|
@@ -114,7 +114,7 @@ for both the Rust engine and the TypeScript layer.
|
|
|
114
114
|
lands in the TypeScript source tree, and gets
|
|
115
115
|
bundled into `dist/`. Start here.
|
|
116
116
|
- **[Rust/WASM Modules](../modules/rust/overview.md)**
|
|
117
|
-
-- Cargo workspace,
|
|
117
|
+
-- Cargo workspace, 5 crates, module namespaces,
|
|
118
118
|
WASM exports/imports, size optimization, and
|
|
119
119
|
testing.
|
|
120
120
|
- **[TypeScript Modules](../modules/typescript/overview.md)**
|
|
@@ -193,6 +193,14 @@ hardcoded. Future versions may allow user-defined
|
|
|
193
193
|
synonym maps via a `synonyms.toml` configuration file
|
|
194
194
|
in the `.kbdb` directory.
|
|
195
195
|
|
|
196
|
+
**Implementation status:** Synonym expansion is
|
|
197
|
+
implemented in the Rust pipeline
|
|
198
|
+
(`shared/src/pipeline/synonyms.rs`). The
|
|
199
|
+
built-in map covers common technical synonyms.
|
|
200
|
+
The `query-guidance` default skill complements this
|
|
201
|
+
by instructing AI agents to rephrase queries with
|
|
202
|
+
alternative terms before searching.
|
|
203
|
+
|
|
196
204
|
## Query Parsing
|
|
197
205
|
|
|
198
206
|
Search queries are parsed into a structured query plan
|
|
@@ -58,9 +58,13 @@ with no further processing.
|
|
|
58
58
|
|
|
59
59
|
### Pass 2: Cosine (when embeddings available)
|
|
60
60
|
|
|
61
|
-
Pass 2 runs
|
|
62
|
-
`
|
|
63
|
-
|
|
61
|
+
Pass 2 runs when the active `EmbeddingProvider` has
|
|
62
|
+
non-zero dimensions and `vectors.idx` is present and
|
|
63
|
+
not stale. With the built-in `TfidfEmbeddingProvider`
|
|
64
|
+
as the default (256 dimensions), Pass 2 runs
|
|
65
|
+
automatically without configuration. It is skipped
|
|
66
|
+
only when embeddings are explicitly disabled
|
|
67
|
+
(`provider = "none"` in `worker.toml`).
|
|
64
68
|
|
|
65
69
|
For each gray-zone candidate from Pass 1, retrieve the
|
|
66
70
|
candidate's embedding from `vectors.idx`. If the
|
|
@@ -270,7 +270,9 @@ The spawning sequence:
|
|
|
270
270
|
daemon started.
|
|
271
271
|
4. **On PID file found (success):** worker client
|
|
272
272
|
closes the stderr pipe, detaches the child, unrefs
|
|
273
|
-
it, and connects to the IPC socket.
|
|
273
|
+
it, and connects to the IPC socket. Because the
|
|
274
|
+
daemon writes the PID file only after the socket
|
|
275
|
+
is listening, the client can connect immediately.
|
|
274
276
|
5. **On timeout or child exit (failure):** worker
|
|
275
277
|
client reads all buffered stderr from the daemon,
|
|
276
278
|
includes it in the thrown error (see Startup
|
|
@@ -337,6 +339,65 @@ error reason even though the daemon runs as a separate
|
|
|
337
339
|
detached process. The daemon's stderr is the single
|
|
338
340
|
source of truth for startup failure diagnostics.
|
|
339
341
|
|
|
342
|
+
## Connection Retry
|
|
343
|
+
|
|
344
|
+
When the worker client calls `connect()`, transient
|
|
345
|
+
errors (`ENOENT` -- socket not yet created, or
|
|
346
|
+
`ECONNREFUSED` -- server not yet accepting) are
|
|
347
|
+
retried with exponential backoff:
|
|
348
|
+
|
|
349
|
+
- **Max retries**: 5
|
|
350
|
+
- **Initial delay**: 50 ms
|
|
351
|
+
- **Backoff**: doubles each attempt (50, 100, 200,
|
|
352
|
+
400, 800 ms = ~1.55 s worst case)
|
|
353
|
+
- **Non-transient errors** (`EACCES`, `EINVAL`, etc.)
|
|
354
|
+
fail immediately without retry.
|
|
355
|
+
|
|
356
|
+
This covers the narrow window where the PID file
|
|
357
|
+
exists but the socket has not yet finished binding
|
|
358
|
+
(e.g. under heavy load or slow I/O).
|
|
359
|
+
|
|
360
|
+
## Post-Connect Failure Handling
|
|
361
|
+
|
|
362
|
+
After a successful `connect()`, if the daemon crashes
|
|
363
|
+
or the IPC socket dies:
|
|
364
|
+
|
|
365
|
+
1. All pending RPC calls (in `this.pending`) are
|
|
366
|
+
rejected with a descriptive error.
|
|
367
|
+
2. The client marks itself as disconnected
|
|
368
|
+
(`this.socket = null`).
|
|
369
|
+
3. The socket is destroyed.
|
|
370
|
+
|
|
371
|
+
The `isConnected` getter exposes the connection
|
|
372
|
+
state so callers (and the cached client factory) can
|
|
373
|
+
check before reusing a client.
|
|
374
|
+
|
|
375
|
+
## Cached Client Factory
|
|
376
|
+
|
|
377
|
+
`getOrCreateClient(options?)` returns a cached
|
|
378
|
+
`WorkerClient` for the given context path, or creates
|
|
379
|
+
and caches a new one if the cached client is
|
|
380
|
+
disconnected or absent.
|
|
381
|
+
|
|
382
|
+
```ts
|
|
383
|
+
import { getOrCreateClient } from '@dikolab/kbdb';
|
|
384
|
+
|
|
385
|
+
const client = await getOrCreateClient({
|
|
386
|
+
dbPath: '/path/to/project',
|
|
387
|
+
});
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
Intended for library consumers and the MCP server.
|
|
391
|
+
CLI one-shots should use `createWorkerClient()`
|
|
392
|
+
directly (each is a separate process anyway).
|
|
393
|
+
|
|
394
|
+
## Socket Keepalive
|
|
395
|
+
|
|
396
|
+
Both the client and server enable `SO_KEEPALIVE`
|
|
397
|
+
with a 30-second interval. This ensures both ends
|
|
398
|
+
detect a dead peer within ~30 seconds, even if no
|
|
399
|
+
application-level traffic is flowing.
|
|
400
|
+
|
|
340
401
|
## `createWorkerClient(options?)`
|
|
341
402
|
|
|
342
403
|
Factory function. Returns a connected `WorkerClient`
|
|
@@ -14,8 +14,9 @@ retrieval and caching management. It is accessible
|
|
|
14
14
|
|
|
15
15
|
The daemon:
|
|
16
16
|
|
|
17
|
-
1. Loads and compiles the
|
|
18
|
-
|
|
17
|
+
1. Loads and compiles the WASM modules once at startup
|
|
18
|
+
(`kb-worker` for database operations, `embedding`
|
|
19
|
+
for default TF-IDF vector computation).
|
|
19
20
|
2. Holds indexes and content objects in an in-memory
|
|
20
21
|
cache managed by the WASM module.
|
|
21
22
|
3. Listens for IPC requests from worker client
|
|
@@ -163,18 +164,21 @@ daemon process performs the following startup sequence:
|
|
|
163
164
|
to startup. The health status (`integrity_ok`,
|
|
164
165
|
`integrity_errors`) is included in subsequent
|
|
165
166
|
`status` responses.
|
|
166
|
-
7.
|
|
167
|
-
temporary directory.
|
|
167
|
+
7. Removes the stale IPC socket if present.
|
|
168
168
|
8. Creates the IPC socket (`kbdb-{ctx}.sock` on Unix,
|
|
169
|
-
named pipe on Windows)
|
|
170
|
-
|
|
169
|
+
named pipe on Windows) and begins listening
|
|
170
|
+
(async, with backlog 256).
|
|
171
|
+
9. Writes its PID to `kbdb-{ctx}.pid` in the OS
|
|
172
|
+
temporary directory.
|
|
171
173
|
|
|
172
|
-
The daemon
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
the
|
|
176
|
-
|
|
177
|
-
|
|
174
|
+
The daemon writes its PID file only after the IPC
|
|
175
|
+
socket is bound and listening. This guarantees the
|
|
176
|
+
worker client's PID-file poll succeeds only when
|
|
177
|
+
the socket is ready to accept connections. If the
|
|
178
|
+
daemon exits before step 9, the worker client's
|
|
179
|
+
PID-file poll times out, and the worker client
|
|
180
|
+
reads the crash log (or the daemon's stderr) to
|
|
181
|
+
report the failure reason.
|
|
178
182
|
|
|
179
183
|
### Startup Preconditions
|
|
180
184
|
|
|
@@ -273,6 +277,14 @@ a client connects, disconnects, or sends a request.
|
|
|
273
277
|
The daemon stays alive as long as at least one client
|
|
274
278
|
is connected, regardless of the idle timer.
|
|
275
279
|
|
|
280
|
+
`SO_KEEPALIVE` (30-second interval) provides a
|
|
281
|
+
secondary mechanism for detecting dead connections
|
|
282
|
+
beyond the counter-based idle timer. If a client
|
|
283
|
+
process crashes without closing the socket, the OS
|
|
284
|
+
will detect the dead peer within ~30 seconds and
|
|
285
|
+
close the connection, allowing the daemon to
|
|
286
|
+
decrement its counter and eventually idle-shutdown.
|
|
287
|
+
|
|
276
288
|
## Graceful Shutdown
|
|
277
289
|
|
|
278
290
|
On shutdown (idle timeout or OS signal SIGTERM/SIGINT),
|
|
@@ -288,24 +300,28 @@ the daemon:
|
|
|
288
300
|
exists.
|
|
289
301
|
7. Calls `process.exit(0)`.
|
|
290
302
|
|
|
291
|
-
## WASM
|
|
303
|
+
## WASM Modules
|
|
292
304
|
|
|
293
|
-
The daemon loads
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
305
|
+
The daemon loads four WASM modules at startup. Three
|
|
306
|
+
share a single `WebAssembly.Memory` and are wired
|
|
307
|
+
together via imports; the fourth is a standalone
|
|
308
|
+
pure-computation module.
|
|
297
309
|
|
|
298
310
|
```
|
|
299
|
-
|
|
300
|
-
|
|
311
|
+
query-parser.wasm (standalone)
|
|
312
|
+
fs-database.wasm (standalone)
|
|
313
|
+
default-embedding.wasm (standalone, no host imports)
|
|
314
|
+
↓
|
|
315
|
+
kb-worker.wasm
|
|
316
|
+
(imports query-parser + fs-database)
|
|
301
317
|
↕
|
|
302
318
|
host I/O imports (TypeScript)
|
|
303
319
|
```
|
|
304
320
|
|
|
305
321
|
### WASM Module: kb-worker.wasm
|
|
306
322
|
|
|
307
|
-
`kb-worker.wasm` is the
|
|
308
|
-
|
|
323
|
+
`kb-worker.wasm` is the orchestration module. Its
|
|
324
|
+
responsibilities:
|
|
309
325
|
|
|
310
326
|
- **Query orchestration** -- Parses queries, performs
|
|
311
327
|
index lookups, scores and ranks results.
|
|
@@ -447,6 +463,26 @@ Configuration is set once when the daemon spawns and
|
|
|
447
463
|
does not change until the daemon shuts down and a new
|
|
448
464
|
one is spawned.
|
|
449
465
|
|
|
466
|
+
### Client vs Daemon Timeouts
|
|
467
|
+
|
|
468
|
+
The `KBDB_DAEMON_TIMEOUT` environment variable (or
|
|
469
|
+
`--timeout-ms` CLI flag) controls the **client-side
|
|
470
|
+
request timeout** -- how long a CLI or MCP client
|
|
471
|
+
waits for a response from the daemon before giving
|
|
472
|
+
up and optionally retrying.
|
|
473
|
+
|
|
474
|
+
The `timeout_ms` setting in `worker.toml` controls
|
|
475
|
+
the **daemon-side idle timeout** -- how long the
|
|
476
|
+
daemon stays alive after all client connections have
|
|
477
|
+
closed.
|
|
478
|
+
|
|
479
|
+
These are independent. A long-running query may
|
|
480
|
+
exceed the client request timeout while the daemon
|
|
481
|
+
continues processing. Conversely, a short idle
|
|
482
|
+
timeout shuts the daemon down quickly between
|
|
483
|
+
invocations but has no effect on in-flight
|
|
484
|
+
requests.
|
|
485
|
+
|
|
450
486
|
## IPC Transport
|
|
451
487
|
|
|
452
488
|
The daemon listens on a local IPC channel:
|
|
@@ -471,6 +507,17 @@ No third-party IPC library is required. The daemon
|
|
|
471
507
|
creates the IPC socket at startup and removes it on
|
|
472
508
|
shutdown.
|
|
473
509
|
|
|
510
|
+
### Socket Options
|
|
511
|
+
|
|
512
|
+
- **Backlog**: `256`. Handles connection bursts from
|
|
513
|
+
concurrent CLI invocations and benchmarks without
|
|
514
|
+
dropping connections.
|
|
515
|
+
- **SO_KEEPALIVE**: Enabled on every accepted
|
|
516
|
+
connection with a 30-second interval. Detects dead
|
|
517
|
+
clients without relying solely on the idle timer.
|
|
518
|
+
Both the server and client enable keepalive (see
|
|
519
|
+
[Worker Client](worker-client.md)).
|
|
520
|
+
|
|
474
521
|
## IPC Protocol
|
|
475
522
|
|
|
476
523
|
Communication uses **JSON-RPC 2.0** over the IPC
|
|
@@ -1481,14 +1528,20 @@ The worker daemon (`src/worker.ts` and its compiled
|
|
|
1481
1528
|
`kbdb-worker.js`) ships as part of the npm/JSR package.
|
|
1482
1529
|
No per-platform native binaries are required.
|
|
1483
1530
|
|
|
1484
|
-
The package includes
|
|
1485
|
-
|
|
1486
|
-
- `kb-worker/kbdb_worker_bg.wasm` --
|
|
1487
|
-
that
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1531
|
+
The package includes four WASM modules:
|
|
1532
|
+
|
|
1533
|
+
- `kb-worker/kbdb_worker_bg.wasm` -- orchestration
|
|
1534
|
+
module that imports query-parser and fs-database
|
|
1535
|
+
- `query-parser/query_parser_bg.wasm` -- tokenization
|
|
1536
|
+
and query parsing
|
|
1537
|
+
- `fs-database/fs_database_bg.wasm` -- filesystem
|
|
1538
|
+
storage engine
|
|
1539
|
+
- `default-embedding/kbdb_default_embedding_bg.wasm`
|
|
1540
|
+
-- built-in TF-IDF embedding (standalone, no host
|
|
1541
|
+
imports)
|
|
1542
|
+
|
|
1543
|
+
All are compiled from Rust via `wasm-pack` and work
|
|
1544
|
+
on all platforms. The daemon loads and compiles them
|
|
1545
|
+
at startup using the runtime's `WebAssembly` API. The
|
|
1493
1546
|
daemon runs on the same runtime (Node.js or Deno) as
|
|
1494
1547
|
the worker client that spawns it.
|