@dikolab/kbdb 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +108 -126
- package/dist/chunk-BJPSPNGX.mjs +223 -0
- package/dist/chunk-BJPSPNGX.mjs.map +7 -0
- package/dist/cli.cjs +956 -319
- package/dist/cli.cjs.map +4 -4
- package/dist/cli.d.ts +9 -0
- package/dist/cli.mjs +840 -321
- package/dist/cli.mjs.map +4 -4
- package/dist/kbdb-worker.cjs +714 -94
- package/dist/kbdb-worker.cjs.map +4 -4
- package/dist/mod.cjs +122 -16
- package/dist/mod.cjs.map +3 -3
- package/dist/mod.d.ts +23 -2
- package/dist/mod.mjs +121 -16
- package/dist/mod.mjs.map +3 -3
- 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 +17 -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/functions/append-vector-entry.function.d.ts +14 -0
- package/dist/src/shared/embedding/functions/create-embedding-provider.function.d.ts +12 -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 +7 -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/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 +31 -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 +17 -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 +5 -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/typings/handler-context.interface.d.ts +3 -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/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 +606 -102
- package/dist/worker.mjs.map +4 -4
- package/docs/details/README.md +4 -0
- package/docs/details/agent-tooling.md +122 -0
- package/docs/details/cli.md +78 -12
- package/docs/details/knowledge-base.md +173 -0
- package/docs/details/library-api.md +42 -2
- package/docs/details/mcp-server.md +39 -8
- package/docs/details/search-and-ranking.md +56 -0
- package/docs/goals/cli.md +110 -34
- package/docs/goals/mcp.md +22 -19
- package/docs/goals/query-parser.md +8 -0
- package/docs/goals/worker-client.md +62 -1
- package/docs/goals/worker-daemon.md +52 -10
- package/docs/modules/typescript/cli.md +1 -1
- package/docs/modules/typescript/shared/cli/functions.md +116 -13
- package/docs/modules/typescript/shared/cli/module.md +33 -20
- package/docs/modules/typescript/shared/cli/typings.md +4 -0
- package/docs/modules/typescript/shared/embedding/functions.md +104 -25
- 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/worker-client/module.md +9 -1
- package/docs/modules/typescript/shared/worker-client/typings.md +3 -0
- package/docs/modules/typescript/shared/worker-daemon/module.md +6 -3
- package/docs/overview.md +43 -22
- package/docs/release-notes/0.3.1.md +10 -0
- package/docs/release-notes/0.3.2.md +64 -0
- package/docs/release-notes/0.4.0.md +80 -0
- package/docs/release-notes/README.md +2 -0
- package/mod.ts +33 -15
- package/package.json +11 -10
- 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 +0 -0
- 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
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# How Search Works
|
|
2
2
|
|
|
3
|
+
When you search, kbdb finds the sections that best
|
|
4
|
+
match your query and ranks them by relevance. By
|
|
5
|
+
default it uses keyword search -- matching terms with
|
|
6
|
+
stemming, synonym expansion, and BM25F ranking. Use
|
|
7
|
+
`--algo hybrid` to combine keyword matching with
|
|
8
|
+
AI-powered similarity for broader recall. The rest
|
|
9
|
+
of this page explains how ranking
|
|
10
|
+
works under the hood -- you don't need to read it
|
|
11
|
+
to use kbdb.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
3
15
|
kbdb uses field-weighted BM25F ranking to score search
|
|
4
16
|
results by relevance. Sections are indexed across
|
|
5
17
|
three fields -- heading, body, and code -- each with a
|
|
@@ -513,3 +525,47 @@ Neither standalone module calls the other directly.
|
|
|
513
525
|
| `sections` | Individual matching sections with scores, snippets, and matched terms |
|
|
514
526
|
| `documents` | Documents containing matches, with aggregated scores and per-section details |
|
|
515
527
|
| `stats` | Match counts and top terms without content bodies |
|
|
528
|
+
|
|
529
|
+
## Search Algorithms
|
|
530
|
+
|
|
531
|
+
kbdb supports three search algorithms, selected
|
|
532
|
+
with `--algo` (CLI) or the `algo` parameter (MCP).
|
|
533
|
+
|
|
534
|
+
### Lexical
|
|
535
|
+
|
|
536
|
+
Keyword matching with stemming and synonym
|
|
537
|
+
expansion, scored by BM25F as described above.
|
|
538
|
+
Fast, works offline, and gives consistent results.
|
|
539
|
+
|
|
540
|
+
### Vector
|
|
541
|
+
|
|
542
|
+
Embedding-based similarity search. Each section's
|
|
543
|
+
content is converted into a numeric vector (an
|
|
544
|
+
"embedding") by an AI model. Search finds sections
|
|
545
|
+
whose vectors are closest to the query's vector
|
|
546
|
+
using cosine similarity.
|
|
547
|
+
|
|
548
|
+
Vector search catches matches that keyword search
|
|
549
|
+
misses -- for example, searching "database
|
|
550
|
+
rationale" finds a section about "we chose Postgres
|
|
551
|
+
because of JSONB" even though none of the words
|
|
552
|
+
overlap.
|
|
553
|
+
|
|
554
|
+
Requires an embedding provider to be configured.
|
|
555
|
+
Without one, vector mode returns an error.
|
|
556
|
+
|
|
557
|
+
### Hybrid
|
|
558
|
+
|
|
559
|
+
Runs both lexical and vector searches in parallel,
|
|
560
|
+
then merges the two ranked lists using Reciprocal
|
|
561
|
+
Rank Fusion (RRF). This combines the precision of
|
|
562
|
+
keyword matching with the associative recall of
|
|
563
|
+
embeddings. Use `--algo hybrid` to enable.
|
|
564
|
+
|
|
565
|
+
RRF works by converting each result's rank position
|
|
566
|
+
into a score (`1 / (k + rank)` with k=60), then
|
|
567
|
+
summing scores across both lists. Results that rank
|
|
568
|
+
well in both lists get the highest combined scores.
|
|
569
|
+
|
|
570
|
+
Hybrid mode requires an embedding provider. Without
|
|
571
|
+
one, it returns an error.
|
package/docs/goals/cli.md
CHANGED
|
@@ -61,6 +61,8 @@ kbdb gc [options]
|
|
|
61
61
|
kbdb rebuild [options]
|
|
62
62
|
kbdb status [options]
|
|
63
63
|
kbdb export [options] [<path>]
|
|
64
|
+
kbdb worker stop [options]
|
|
65
|
+
kbdb worker restart [options]
|
|
64
66
|
kbdb db init [options]
|
|
65
67
|
kbdb db migrate [options]
|
|
66
68
|
kbdb skill learn [options] --name <n> --body <file|->
|
|
@@ -104,10 +106,9 @@ with the AI agent host over stdio using JSON-RPC 2.0,
|
|
|
104
106
|
and delegates all operations to the worker daemon via
|
|
105
107
|
the same worker client module.
|
|
106
108
|
|
|
107
|
-
MCP mode
|
|
108
|
-
environment variable.
|
|
109
|
-
|
|
110
|
-
determined by the host application, not the user.
|
|
109
|
+
MCP mode accepts `--db <path>` or the `KBDB_DB_DIR`
|
|
110
|
+
environment variable. When neither is set, it falls
|
|
111
|
+
back to the current working directory.
|
|
111
112
|
|
|
112
113
|
See [MCP](mcp.md) for the full MCP mode
|
|
113
114
|
specification.
|
|
@@ -116,11 +117,14 @@ specification.
|
|
|
116
117
|
|
|
117
118
|
These options apply to all commands.
|
|
118
119
|
|
|
119
|
-
| Option
|
|
120
|
-
|
|
121
|
-
| `--help`
|
|
122
|
-
| `--version`
|
|
123
|
-
| `--db <path>`
|
|
120
|
+
| Option | Short | Description |
|
|
121
|
+
|--------------------|-------|--------------------------|
|
|
122
|
+
| `--help` | `-h` | Print help text and exit |
|
|
123
|
+
| `--version` | `-v` | Print version and exit |
|
|
124
|
+
| `--db <path>` | | Database directory path (optional) |
|
|
125
|
+
| `--format <fmt>` | `-f` | Output format (json default; text when stdout is a TTY) |
|
|
126
|
+
| `--timeout-ms <ms>`| | Request timeout in ms |
|
|
127
|
+
| `--retry <n>` | | Max retries on timeout |
|
|
124
128
|
|
|
125
129
|
### `--help`, `-h`
|
|
126
130
|
|
|
@@ -156,12 +160,13 @@ kbdb search "query" --db /path/to/project
|
|
|
156
160
|
```
|
|
157
161
|
|
|
158
162
|
When omitted:
|
|
159
|
-
- **CLI mode**:
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
163
|
+
- **CLI mode**: falls back to the `KBDB_DB_DIR`
|
|
164
|
+
environment variable when `--db` is omitted,
|
|
165
|
+
then to the current working directory
|
|
166
|
+
(`process.cwd()`).
|
|
167
|
+
- **MCP mode**: falls back to the `KBDB_DB_DIR`
|
|
168
|
+
environment variable, then to the current
|
|
169
|
+
working directory.
|
|
165
170
|
|
|
166
171
|
## Commands
|
|
167
172
|
|
|
@@ -300,7 +305,10 @@ Remove knowledge base sections by their kb-id.
|
|
|
300
305
|
|
|
301
306
|
**Arguments:**
|
|
302
307
|
- `<kbid>...` -- one or more 26-character kb-id
|
|
303
|
-
strings
|
|
308
|
+
strings (or unique prefixes -- kbdb resolves
|
|
309
|
+
short prefixes to full identifiers, similar to
|
|
310
|
+
git short hashes). Each is processed
|
|
311
|
+
independently.
|
|
304
312
|
|
|
305
313
|
**Behaviour:**
|
|
306
314
|
- The engine removes the referenced content and
|
|
@@ -360,6 +368,7 @@ Search the knowledge base by keywords or phrases.
|
|
|
360
368
|
| `--offset <n>` | `-o` | `0` | Result offset |
|
|
361
369
|
| `--format <fmt>` | `-f` | `json` | Output format |
|
|
362
370
|
| `--content` | `-c` | | Hydrate previews |
|
|
371
|
+
| `--algo <algo>` | | `lexical` | Search algorithm |
|
|
363
372
|
| `--db <path>` | | cwd | Database directory |
|
|
364
373
|
|
|
365
374
|
#### `--mode`, `-m`
|
|
@@ -406,8 +415,8 @@ Controls the output format printed to stdout.
|
|
|
406
415
|
|
|
407
416
|
| Format | Description |
|
|
408
417
|
|--------|-----------------------------------------|
|
|
409
|
-
| `json` | Pretty-printed JSON array (default).
|
|
410
|
-
| `text` | Numbered human-readable list with scores and matched terms. |
|
|
418
|
+
| `json` | Pretty-printed JSON array (default when stdout is piped). |
|
|
419
|
+
| `text` | Numbered human-readable list with scores and matched terms (default when stdout is a TTY). |
|
|
411
420
|
| `mcp` | JSON envelope for MCP protocol consumers. |
|
|
412
421
|
|
|
413
422
|
```
|
|
@@ -553,7 +562,10 @@ more knowledge base identifiers and output it to
|
|
|
553
562
|
stdout.
|
|
554
563
|
|
|
555
564
|
**Arguments:**
|
|
556
|
-
- `<id>...` -- one or more kbid or docid identifiers
|
|
565
|
+
- `<id>...` -- one or more kbid or docid identifiers
|
|
566
|
+
(or unique prefixes -- kbdb resolves short
|
|
567
|
+
prefixes to full identifiers, similar to git
|
|
568
|
+
short hashes).
|
|
557
569
|
|
|
558
570
|
**Output:**
|
|
559
571
|
- **stdout**: JSON envelope containing the composed
|
|
@@ -600,7 +612,9 @@ expansion depths.
|
|
|
600
612
|
|
|
601
613
|
**Arguments:**
|
|
602
614
|
- `<kbid>...` -- one or more 26-character kb-id
|
|
603
|
-
strings
|
|
615
|
+
strings (or unique prefixes -- kbdb resolves
|
|
616
|
+
short prefixes to full identifiers, similar to
|
|
617
|
+
git short hashes).
|
|
604
618
|
|
|
605
619
|
**Options:**
|
|
606
620
|
|
|
@@ -722,9 +736,9 @@ Start a long-lived MCP server on stdio.
|
|
|
722
736
|
**Behaviour:**
|
|
723
737
|
- Communicates with the AI agent host over stdio
|
|
724
738
|
using JSON-RPC 2.0.
|
|
725
|
-
-
|
|
726
|
-
variable.
|
|
727
|
-
directory.
|
|
739
|
+
- Accepts `--db <path>` or the `KBDB_DB_DIR`
|
|
740
|
+
environment variable. Falls back to the current
|
|
741
|
+
working directory when neither is set.
|
|
728
742
|
- Runs a version gate before starting: exits with an
|
|
729
743
|
error if the database needs migration or is too new.
|
|
730
744
|
- The MCP server does not prompt, does not print
|
|
@@ -734,8 +748,8 @@ Start a long-lived MCP server on stdio.
|
|
|
734
748
|
a shutdown signal.
|
|
735
749
|
|
|
736
750
|
**Environment variables:**
|
|
737
|
-
- `
|
|
738
|
-
`--db` is not specified.
|
|
751
|
+
- `KBDB_DB_DIR` -- fallback database directory path
|
|
752
|
+
when `--db` is not specified.
|
|
739
753
|
|
|
740
754
|
**Exit code:** `0` on clean shutdown, `1` on error.
|
|
741
755
|
|
|
@@ -943,6 +957,43 @@ src/cli.ts parseArgs()
|
|
|
943
957
|
-> stdout
|
|
944
958
|
```
|
|
945
959
|
|
|
960
|
+
### `kbdb worker` -- daemon lifecycle
|
|
961
|
+
|
|
962
|
+
The `worker` command group manages the background
|
|
963
|
+
worker daemon process.
|
|
964
|
+
|
|
965
|
+
#### `worker stop` -- stop the daemon
|
|
966
|
+
|
|
967
|
+
```
|
|
968
|
+
kbdb worker stop [options]
|
|
969
|
+
```
|
|
970
|
+
|
|
971
|
+
Stop the running worker daemon for the current
|
|
972
|
+
database. If no daemon is running, prints a message
|
|
973
|
+
and exits successfully.
|
|
974
|
+
|
|
975
|
+
**Exit code:** `0` on success, `1` on error.
|
|
976
|
+
|
|
977
|
+
**Delegation chain:**
|
|
978
|
+
```
|
|
979
|
+
src/cli.ts parseArgs()
|
|
980
|
+
-> dispatchCommand(client, options)
|
|
981
|
+
-> runWorkerStop(client, options)
|
|
982
|
+
-> sends shutdown signal via IPC
|
|
983
|
+
```
|
|
984
|
+
|
|
985
|
+
#### `worker restart` -- restart the daemon
|
|
986
|
+
|
|
987
|
+
```
|
|
988
|
+
kbdb worker restart [options]
|
|
989
|
+
```
|
|
990
|
+
|
|
991
|
+
Stop and restart the worker daemon. Equivalent to
|
|
992
|
+
`worker stop` followed by the next command
|
|
993
|
+
auto-spawning a new daemon.
|
|
994
|
+
|
|
995
|
+
**Exit code:** `0` on success, `1` on error.
|
|
996
|
+
|
|
946
997
|
### `kbdb db` -- database management
|
|
947
998
|
|
|
948
999
|
The `db` command group manages the `.kbdb` database
|
|
@@ -1721,18 +1772,21 @@ processes the raw argument vector
|
|
|
1721
1772
|
deprecation warning to stderr, and continues
|
|
1722
1773
|
parsing.
|
|
1723
1774
|
4. When the first positional token is `db`, `skill`,
|
|
1724
|
-
or `
|
|
1775
|
+
`agent`, or `worker`, the parser consumes the next positional
|
|
1725
1776
|
token as the subcommand and combines them into a
|
|
1726
1777
|
hyphenated command string: `db init` →
|
|
1727
1778
|
`'db-init'`, `skill learn` → `'skill-learn'`,
|
|
1728
|
-
`agent create` → `'agent-create'`,
|
|
1779
|
+
`agent create` → `'agent-create'`,
|
|
1780
|
+
`worker stop` → `'worker-stop'`, etc.
|
|
1729
1781
|
5. All other flags (`--db`, `--format`, `--mode`,
|
|
1730
1782
|
`--limit`, `--offset`, `--title`, `--description`,
|
|
1731
1783
|
`--docid`, `--name`, `--persona`, `--body`,
|
|
1732
|
-
`--skills`, `--depth` / `-d`, `--tags
|
|
1733
|
-
the next token
|
|
1734
|
-
as
|
|
1735
|
-
|
|
1784
|
+
`--skills`, `--depth` / `-d`, `--tags`,
|
|
1785
|
+
`--timeout-ms`, `--retry`) consume the next token
|
|
1786
|
+
as their value. `--depth` is parsed as a number
|
|
1787
|
+
and clamped to the range 0--3. `--tags` splits its
|
|
1788
|
+
value on commas into a `string[]`. `--timeout-ms`
|
|
1789
|
+
and `--retry` are parsed as numbers.
|
|
1736
1790
|
6. `--content` / `-c` and `--replace` are boolean
|
|
1737
1791
|
flags; they set their respective option to `true`
|
|
1738
1792
|
without consuming the next token.
|
|
@@ -1802,6 +1856,10 @@ interface CliOptions {
|
|
|
1802
1856
|
tags?: string[];
|
|
1803
1857
|
/** Enable supersession by source key (learn). */
|
|
1804
1858
|
replace?: boolean;
|
|
1859
|
+
/** Request timeout in ms. */
|
|
1860
|
+
timeoutMs?: number;
|
|
1861
|
+
/** Max retry count on timeout. */
|
|
1862
|
+
retry?: number;
|
|
1805
1863
|
/** Positional arguments following the sub-command. */
|
|
1806
1864
|
args: string[];
|
|
1807
1865
|
}
|
|
@@ -1883,6 +1941,10 @@ Agents:
|
|
|
1883
1941
|
agent get Retrieve an agent by docid
|
|
1884
1942
|
agent delete Remove an agent
|
|
1885
1943
|
|
|
1944
|
+
Worker:
|
|
1945
|
+
worker stop Stop the background daemon
|
|
1946
|
+
worker restart Restart the background daemon
|
|
1947
|
+
|
|
1886
1948
|
Server:
|
|
1887
1949
|
mcp Start MCP server mode (stdio)
|
|
1888
1950
|
|
|
@@ -2114,6 +2176,8 @@ Routing table:
|
|
|
2114
2176
|
| `agent-create` | `runAgentCreate` | yes |
|
|
2115
2177
|
| `agent-list` | `runAgentList` | yes |
|
|
2116
2178
|
| `agent-get` | `runAgentGet` | yes |
|
|
2179
|
+
| `worker-stop` | `runWorkerStop` | yes |
|
|
2180
|
+
| `worker-restart` | `runWorkerRestart` | yes |
|
|
2117
2181
|
| `agent-delete` | `runAgentDelete` | yes |
|
|
2118
2182
|
|
|
2119
2183
|
Unknown commands return exit code 1 with an "unknown
|
|
@@ -2504,9 +2568,21 @@ kbdb search "machine learning" --limit 5
|
|
|
2504
2568
|
|
|
2505
2569
|
## Environment Variables
|
|
2506
2570
|
|
|
2507
|
-
| Variable
|
|
2508
|
-
|
|
2509
|
-
| `
|
|
2571
|
+
| Variable | Used by | Description |
|
|
2572
|
+
|-----------------------|-----------|-------------------------|
|
|
2573
|
+
| `KBDB_DB_DIR` | CLI + MCP | Fallback database directory when `--db` is not specified |
|
|
2574
|
+
| `KBDB_DAEMON_TIMEOUT` | CLI + MCP | Request timeout fallback (ms) |
|
|
2575
|
+
| `KBDB_RETRY` | CLI + MCP | Retry count fallback |
|
|
2576
|
+
|
|
2577
|
+
### Resolution Priority
|
|
2578
|
+
|
|
2579
|
+
When multiple sources set the same option, the
|
|
2580
|
+
most specific source wins:
|
|
2581
|
+
|
|
2582
|
+
- **timeout**: `--timeout-ms` >
|
|
2583
|
+
`KBDB_DAEMON_TIMEOUT` > `30000`
|
|
2584
|
+
- **retry**: `--retry` > `KBDB_RETRY` > `5`
|
|
2585
|
+
- **db path**: `--db` > `KBDB_DB_DIR` > cwd
|
|
2510
2586
|
|
|
2511
2587
|
## Exit Codes
|
|
2512
2588
|
|
package/docs/goals/mcp.md
CHANGED
|
@@ -27,25 +27,28 @@ identically.
|
|
|
27
27
|
## Invocation
|
|
28
28
|
|
|
29
29
|
```
|
|
30
|
-
kbdb mcp [--db <path>]
|
|
30
|
+
kbdb mcp [--db <path>] [--timeout-ms <ms>]
|
|
31
|
+
[--retry <n>]
|
|
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 |
|
|
49
52
|
|
|
50
53
|
See [CLI -- Run Modes](cli.md#run-modes) for how
|
|
51
54
|
the `kbdb` executable dispatches to MCP mode.
|
|
@@ -127,7 +130,7 @@ Add to `.claude/settings.json` or project settings:
|
|
|
127
130
|
|
|
128
131
|
### Environment Variable
|
|
129
132
|
|
|
130
|
-
The `--db` flag can be replaced by `
|
|
133
|
+
The `--db` flag can be replaced by `KBDB_DB_DIR`:
|
|
131
134
|
|
|
132
135
|
```json
|
|
133
136
|
{
|
|
@@ -136,7 +139,7 @@ The `--db` flag can be replaced by `KBDB_DIR`:
|
|
|
136
139
|
"command": "npx",
|
|
137
140
|
"args": ["@dikolab/kbdb", "mcp"],
|
|
138
141
|
"env": {
|
|
139
|
-
"
|
|
142
|
+
"KBDB_DB_DIR": "/path/to/.kbdb"
|
|
140
143
|
}
|
|
141
144
|
}
|
|
142
145
|
}
|
|
@@ -1125,7 +1128,7 @@ interface McpToolAnnotations {
|
|
|
1125
1128
|
}
|
|
1126
1129
|
```
|
|
1127
1130
|
|
|
1128
|
-
Annotations for all
|
|
1131
|
+
Annotations for all 20 kbdb tools:
|
|
1129
1132
|
|
|
1130
1133
|
| Tool | title | readOnly | destructive | idempotent | openWorld |
|
|
1131
1134
|
|----------------|-------------------|----------|-------------|------------|-----------|
|
|
@@ -1148,6 +1151,7 @@ Annotations for all 19 kbdb tools:
|
|
|
1148
1151
|
| `agent-list` | List Agents | true | false | true | false |
|
|
1149
1152
|
| `agent-get` | Get Agent | true | false | true | false |
|
|
1150
1153
|
| `agent-delete` | Delete Agent | false | true | true | false |
|
|
1154
|
+
| `auto-capture-review` | Review Captures | false | false | false | false |
|
|
1151
1155
|
|
|
1152
1156
|
## Completions
|
|
1153
1157
|
|
|
@@ -1361,7 +1365,7 @@ The difference is the interface:
|
|
|
1361
1365
|
| Interface | Command-line arguments | MCP protocol (stdio) |
|
|
1362
1366
|
| Consumer | Human / shell script | AI agent |
|
|
1363
1367
|
| Output | stdout (JSON/text/MCP) | MCP tool result format |
|
|
1364
|
-
| DB path | CWD or `--db` flag | `--db` flag or `
|
|
1368
|
+
| DB path | CWD or `--db` flag | `--db` flag or `KBDB_DB_DIR` env |
|
|
1365
1369
|
|
|
1366
1370
|
See [CLI](cli.md) for CLI mode details,
|
|
1367
1371
|
[Worker Client](worker-client.md) for the shared
|
|
@@ -1513,9 +1517,8 @@ returns `-32601` if they are called.
|
|
|
1513
1517
|
- The server works with both Deno and Node.js
|
|
1514
1518
|
runtimes, consistent with the project's
|
|
1515
1519
|
dual-runtime requirement.
|
|
1516
|
-
- The database path
|
|
1517
|
-
|
|
1518
|
-
fallback.
|
|
1520
|
+
- The database path is resolved from `--db`,
|
|
1521
|
+
`KBDB_DB_DIR`, or the current working directory.
|
|
1519
1522
|
- The MCP server does not perform keyword extraction,
|
|
1520
1523
|
indexing, ranking, or database I/O itself. All
|
|
1521
1524
|
processing is delegated to the worker daemon via
|
|
@@ -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
|
+
(`query-parser/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
|
|
@@ -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`
|
|
@@ -163,18 +163,21 @@ daemon process performs the following startup sequence:
|
|
|
163
163
|
to startup. The health status (`integrity_ok`,
|
|
164
164
|
`integrity_errors`) is included in subsequent
|
|
165
165
|
`status` responses.
|
|
166
|
-
7.
|
|
167
|
-
temporary directory.
|
|
166
|
+
7. Removes the stale IPC socket if present.
|
|
168
167
|
8. Creates the IPC socket (`kbdb-{ctx}.sock` on Unix,
|
|
169
|
-
named pipe on Windows)
|
|
170
|
-
|
|
168
|
+
named pipe on Windows) and begins listening
|
|
169
|
+
(async, with backlog 256).
|
|
170
|
+
9. Writes its PID to `kbdb-{ctx}.pid` in the OS
|
|
171
|
+
temporary directory.
|
|
171
172
|
|
|
172
|
-
The daemon
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
the
|
|
176
|
-
|
|
177
|
-
|
|
173
|
+
The daemon writes its PID file only after the IPC
|
|
174
|
+
socket is bound and listening. This guarantees the
|
|
175
|
+
worker client's PID-file poll succeeds only when
|
|
176
|
+
the socket is ready to accept connections. If the
|
|
177
|
+
daemon exits before step 9, the worker client's
|
|
178
|
+
PID-file poll times out, and the worker client
|
|
179
|
+
reads the crash log (or the daemon's stderr) to
|
|
180
|
+
report the failure reason.
|
|
178
181
|
|
|
179
182
|
### Startup Preconditions
|
|
180
183
|
|
|
@@ -273,6 +276,14 @@ a client connects, disconnects, or sends a request.
|
|
|
273
276
|
The daemon stays alive as long as at least one client
|
|
274
277
|
is connected, regardless of the idle timer.
|
|
275
278
|
|
|
279
|
+
`SO_KEEPALIVE` (30-second interval) provides a
|
|
280
|
+
secondary mechanism for detecting dead connections
|
|
281
|
+
beyond the counter-based idle timer. If a client
|
|
282
|
+
process crashes without closing the socket, the OS
|
|
283
|
+
will detect the dead peer within ~30 seconds and
|
|
284
|
+
close the connection, allowing the daemon to
|
|
285
|
+
decrement its counter and eventually idle-shutdown.
|
|
286
|
+
|
|
276
287
|
## Graceful Shutdown
|
|
277
288
|
|
|
278
289
|
On shutdown (idle timeout or OS signal SIGTERM/SIGINT),
|
|
@@ -447,6 +458,26 @@ Configuration is set once when the daemon spawns and
|
|
|
447
458
|
does not change until the daemon shuts down and a new
|
|
448
459
|
one is spawned.
|
|
449
460
|
|
|
461
|
+
### Client vs Daemon Timeouts
|
|
462
|
+
|
|
463
|
+
The `KBDB_DAEMON_TIMEOUT` environment variable (or
|
|
464
|
+
`--timeout-ms` CLI flag) controls the **client-side
|
|
465
|
+
request timeout** -- how long a CLI or MCP client
|
|
466
|
+
waits for a response from the daemon before giving
|
|
467
|
+
up and optionally retrying.
|
|
468
|
+
|
|
469
|
+
The `timeout_ms` setting in `worker.toml` controls
|
|
470
|
+
the **daemon-side idle timeout** -- how long the
|
|
471
|
+
daemon stays alive after all client connections have
|
|
472
|
+
closed.
|
|
473
|
+
|
|
474
|
+
These are independent. A long-running query may
|
|
475
|
+
exceed the client request timeout while the daemon
|
|
476
|
+
continues processing. Conversely, a short idle
|
|
477
|
+
timeout shuts the daemon down quickly between
|
|
478
|
+
invocations but has no effect on in-flight
|
|
479
|
+
requests.
|
|
480
|
+
|
|
450
481
|
## IPC Transport
|
|
451
482
|
|
|
452
483
|
The daemon listens on a local IPC channel:
|
|
@@ -471,6 +502,17 @@ No third-party IPC library is required. The daemon
|
|
|
471
502
|
creates the IPC socket at startup and removes it on
|
|
472
503
|
shutdown.
|
|
473
504
|
|
|
505
|
+
### Socket Options
|
|
506
|
+
|
|
507
|
+
- **Backlog**: `256`. Handles connection bursts from
|
|
508
|
+
concurrent CLI invocations and benchmarks without
|
|
509
|
+
dropping connections.
|
|
510
|
+
- **SO_KEEPALIVE**: Enabled on every accepted
|
|
511
|
+
connection with a 30-second interval. Detects dead
|
|
512
|
+
clients without relying solely on the idle timer.
|
|
513
|
+
Both the server and client enable keepalive (see
|
|
514
|
+
[Worker Client](worker-client.md)).
|
|
515
|
+
|
|
474
516
|
## IPC Protocol
|
|
475
517
|
|
|
476
518
|
Communication uses **JSON-RPC 2.0** over the IPC
|
|
@@ -73,7 +73,7 @@ src/cli.ts
|
|
|
73
73
|
src/cli.ts
|
|
74
74
|
│
|
|
75
75
|
├─ argv[0] === 'mcp'
|
|
76
|
-
├─ resolve --db flag or
|
|
76
|
+
├─ resolve --db flag or KBDB_DB_DIR env or cwd
|
|
77
77
|
├─ client = await createWorkerClient({ targetDir })
|
|
78
78
|
├─ server = createMcpServer(client)
|
|
79
79
|
├─ server.listen() ← stdio, blocks until closed
|