@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
package/README.md
CHANGED
|
@@ -1,20 +1,28 @@
|
|
|
1
1
|
# @dikolab/kbdb
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/@dikolab/kbdb)
|
|
4
|
+
[](https://jsr.io/@dikolab/kbdb)
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
|
|
7
|
+
A file-based knowledge base database -- no external
|
|
8
|
+
server to install.
|
|
5
9
|
|
|
6
10
|
[GitLab](https://gitlab.com/tech-slaves/knowledge-base-db)
|
|
7
11
|
| [NPM](https://www.npmjs.com/package/@dikolab/kbdb)
|
|
8
12
|
| [JSR](https://jsr.io/@dikolab/kbdb)
|
|
9
13
|
| [License: ISC](LICENSE)
|
|
10
14
|
|
|
15
|
+
> **Status:** Beta -- actively developed. Core
|
|
16
|
+
> features (search, recall, MCP) are stable and
|
|
17
|
+
> tested.
|
|
18
|
+
|
|
11
19
|
---
|
|
12
20
|
|
|
13
21
|
## What is kbdb?
|
|
14
22
|
|
|
15
23
|
**kbdb** stores your docs in a plain folder on
|
|
16
|
-
disk and makes them searchable. No server
|
|
17
|
-
install. No cloud account. Import your Markdown
|
|
24
|
+
disk and makes them searchable. No external server
|
|
25
|
+
to install. No cloud account. Import your Markdown
|
|
18
26
|
files, and kbdb indexes them automatically.
|
|
19
27
|
Search returns ranked results instantly.
|
|
20
28
|
|
|
@@ -23,23 +31,21 @@ works as an [MCP](https://modelcontextprotocol.io/)
|
|
|
23
31
|
server -- giving AI agents like Claude a searchable
|
|
24
32
|
second brain that persists between sessions.
|
|
25
33
|
|
|
26
|
-
**How search works:** kbdb
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
needs an embedding provider -- without one, kbdb
|
|
42
|
-
sticks to keyword search.
|
|
34
|
+
**How search works:** kbdb uses **keyword search** by
|
|
35
|
+
default -- synonyms are expanded, terms are ranked
|
|
36
|
+
by relevance, and headings carry 2× weight in
|
|
37
|
+
scoring. When an exact query finds nothing, kbdb
|
|
38
|
+
automatically loosens the match so you still get the
|
|
39
|
+
best available results.
|
|
40
|
+
|
|
41
|
+
Want smarter results? Use `--algo hybrid` to blend
|
|
42
|
+
keyword matching with similarity search -- finding
|
|
43
|
+
results even when different words describe the same
|
|
44
|
+
concept. The default **TF-IDF** embedding provider
|
|
45
|
+
works offline with zero setup. Swap it for a
|
|
46
|
+
third-party provider (local ONNX model or remote
|
|
47
|
+
API) in `worker.toml` when you need richer
|
|
48
|
+
embeddings.
|
|
43
49
|
|
|
44
50
|
**Knowledge stays fresh:** Re-learn a file and kbdb
|
|
45
51
|
replaces the old version automatically.
|
|
@@ -117,6 +123,17 @@ kbdb search "how does auth work" --algo hybrid \
|
|
|
117
123
|
--db ./my-kb
|
|
118
124
|
```
|
|
119
125
|
|
|
126
|
+
> **Tip:** `--db` is optional. If you're already
|
|
127
|
+
> inside a directory with a `.kbdb` folder, just
|
|
128
|
+
> omit it. You can also set `KBDB_DB_DIR` as an
|
|
129
|
+
> environment variable.
|
|
130
|
+
|
|
131
|
+
> **Scripting:** Use `--non-interactive` or set
|
|
132
|
+
> `KBDB_NON_INTERACTIVE=1` to suppress prompts in
|
|
133
|
+
> scripts and CI pipelines. Commands that need a
|
|
134
|
+
> database will return an error instead of waiting
|
|
135
|
+
> for user input.
|
|
136
|
+
|
|
120
137
|
**4. Recall context**
|
|
121
138
|
|
|
122
139
|
```sh
|
|
@@ -132,86 +149,53 @@ referenced sections.
|
|
|
132
149
|
|
|
133
150
|
---
|
|
134
151
|
|
|
135
|
-
##
|
|
152
|
+
## Knowledge Base
|
|
136
153
|
|
|
137
|
-
|
|
138
|
-
|
|
154
|
+
Build, search, and maintain your knowledge store.
|
|
155
|
+
|
|
156
|
+
- **Import** Markdown and plain text files with
|
|
157
|
+
tags and source tracking
|
|
139
158
|
- **Smart updates** -- re-learning a file replaces
|
|
140
159
|
the old version instead of duplicating it
|
|
141
|
-
- **Search** with three
|
|
142
|
-
AI similarity, or hybrid (both
|
|
160
|
+
- **Search** with three algorithms: keyword
|
|
161
|
+
(default), AI similarity, or hybrid (both)
|
|
143
162
|
- **Auto-fallback** -- if your exact query finds
|
|
144
163
|
nothing, kbdb loosens the match automatically
|
|
145
164
|
- **Recall** sections with progressive context --
|
|
146
165
|
from a quick summary to full related content
|
|
147
|
-
- **Export
|
|
148
|
-
|
|
149
|
-
- **Skills** -- store reusable prompt templates
|
|
150
|
-
with fill-in-the-blank arguments
|
|
151
|
-
- **Agents** -- create AI agent profiles that
|
|
152
|
-
combine a persona with skills
|
|
153
|
-
- **Auto-capture** -- the MCP server can
|
|
154
|
-
proactively suggest knowledge to store from
|
|
155
|
-
your conversations
|
|
166
|
+
- **Export** -- snapshot your knowledge base for
|
|
167
|
+
backup
|
|
156
168
|
- **Verify** database integrity and clean up
|
|
157
169
|
stale data
|
|
158
170
|
- **Rebuild** indexes if anything goes wrong
|
|
159
171
|
|
|
160
|
-
See the
|
|
161
|
-
|
|
172
|
+
See the
|
|
173
|
+
[Knowledge Base Guide](docs/details/knowledge-base.md)
|
|
174
|
+
for the full walkthrough, including export and backup.
|
|
162
175
|
|
|
163
176
|
---
|
|
164
177
|
|
|
165
|
-
##
|
|
166
|
-
|
|
167
|
-
kbdb runs as an
|
|
168
|
-
[MCP](https://modelcontextprotocol.io/) server
|
|
169
|
-
with 20 tools, so AI agents can search your docs,
|
|
170
|
-
recall context progressively, export snapshots,
|
|
171
|
-
store reusable skills, and build agent profiles --
|
|
172
|
-
a second brain that persists between sessions.
|
|
173
|
-
|
|
174
|
-
### Setup
|
|
175
|
-
|
|
176
|
-
Add kbdb to your AI tool's MCP config. The setup
|
|
177
|
-
is the same for Claude Code, VS Code, Cursor, and
|
|
178
|
-
Claude Desktop -- just put the config in the right
|
|
179
|
-
file for your tool.
|
|
180
|
-
|
|
181
|
-
**Claude Code** -- `.mcp.json` in your project root.
|
|
182
|
-
**VS Code / Cursor** -- `.vscode/mcp.json` in your
|
|
183
|
-
project. **Claude Desktop** --
|
|
184
|
-
`claude_desktop_config.json`.
|
|
185
|
-
|
|
186
|
-
```json
|
|
187
|
-
{
|
|
188
|
-
"mcpServers": {
|
|
189
|
-
"kbdb": {
|
|
190
|
-
"command": "npx",
|
|
191
|
-
"args": [
|
|
192
|
-
"-y",
|
|
193
|
-
"@dikolab/kbdb",
|
|
194
|
-
"mcp",
|
|
195
|
-
"--db",
|
|
196
|
-
"/path/to/.kbdb"
|
|
197
|
-
]
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
```
|
|
178
|
+
## Agent Tooling
|
|
202
179
|
|
|
203
|
-
|
|
204
|
-
instead of `{"mcpServers": ...}`. Use
|
|
205
|
-
`"${workspaceFolder}/.kbdb"` for the db path.
|
|
180
|
+
Integrate kbdb with AI agents and custom tools.
|
|
206
181
|
|
|
207
|
-
**
|
|
208
|
-
|
|
209
|
-
|
|
182
|
+
- **MCP server** with 20 tools -- search, recall,
|
|
183
|
+
learn, export, and more
|
|
184
|
+
- **Skills** -- store reusable prompt templates
|
|
185
|
+
with fill-in-the-blank arguments
|
|
186
|
+
- **Agents** -- create AI agent profiles that
|
|
187
|
+
combine a persona with skills
|
|
188
|
+
- **Auto-capture** -- the MCP server can
|
|
189
|
+
proactively suggest knowledge to store from
|
|
190
|
+
your conversations
|
|
191
|
+
- **Daemon resilience** -- configurable request
|
|
192
|
+
timeout and automatic retry with daemon respawn
|
|
193
|
+
- **Worker daemon** lifecycle management --
|
|
194
|
+
stop and restart the background process
|
|
210
195
|
|
|
211
196
|
See the
|
|
212
|
-
[
|
|
213
|
-
for
|
|
214
|
-
multiple knowledge bases, and the full tool list.
|
|
197
|
+
[Agent Tooling Guide](docs/details/agent-tooling.md)
|
|
198
|
+
for MCP setup, skills, agents, and the library API.
|
|
215
199
|
|
|
216
200
|
---
|
|
217
201
|
|
|
@@ -225,8 +209,10 @@ project:
|
|
|
225
209
|
```typescript
|
|
226
210
|
import { createWorkerClient } from '@dikolab/kbdb';
|
|
227
211
|
|
|
212
|
+
// Spawns a background worker if not already running
|
|
228
213
|
const client = await createWorkerClient({
|
|
229
214
|
contextPath: '/path/to/.kbdb',
|
|
215
|
+
requestTimeoutMs: 30_000,
|
|
230
216
|
});
|
|
231
217
|
|
|
232
218
|
const results = await client.search({
|
|
@@ -239,6 +225,10 @@ console.log(results.items);
|
|
|
239
225
|
client.disconnect();
|
|
240
226
|
```
|
|
241
227
|
|
|
228
|
+
Pass `contextPath` (the `.kbdb` directory itself)
|
|
229
|
+
or `dbPath` (the parent directory -- kbdb discovers
|
|
230
|
+
`.kbdb` inside it).
|
|
231
|
+
|
|
242
232
|
See the
|
|
243
233
|
[Library API Reference](docs/details/library-api.md)
|
|
244
234
|
for the full API.
|
|
@@ -261,6 +251,11 @@ A Docker setup is included with all build tools
|
|
|
261
251
|
HOST_UMASK=$(umask) docker compose run --rm dev bash
|
|
262
252
|
```
|
|
263
253
|
|
|
254
|
+
Run `make benchmark` to measure search and rebuild
|
|
255
|
+
latency at scale -- results are written to
|
|
256
|
+
[docs/benchmark/benchmark.md](docs/benchmark/benchmark.md)
|
|
257
|
+
automatically.
|
|
258
|
+
|
|
264
259
|
See the [Makefile](Makefile) for all available
|
|
265
260
|
build targets.
|
|
266
261
|
|
|
@@ -276,9 +271,20 @@ build targets.
|
|
|
276
271
|
|
|
277
272
|
## Documentation
|
|
278
273
|
|
|
279
|
-
- [
|
|
280
|
-
|
|
281
|
-
|
|
274
|
+
- [Knowledge Base Guide](docs/details/knowledge-base.md)
|
|
275
|
+
-- importing, searching, recall, export
|
|
276
|
+
- [Agent Tooling Guide](docs/details/agent-tooling.md)
|
|
277
|
+
-- MCP, skills, agents, library API
|
|
278
|
+
- [CLI Reference](docs/details/cli.md) -- full command
|
|
279
|
+
list with examples
|
|
280
|
+
- [MCP Server Guide](docs/details/mcp-server.md) --
|
|
281
|
+
setup, tools, environment config
|
|
282
|
+
- [Search and Ranking](docs/details/search-and-ranking.md)
|
|
283
|
+
-- how search works under the hood
|
|
284
|
+
- [Storage Architecture](docs/details/storage.md) --
|
|
285
|
+
file formats and directory layout
|
|
286
|
+
- [Benchmark Results](docs/benchmark/benchmark.md)
|
|
287
|
+
-- search and rebuild latency at scale
|
|
282
288
|
- [Release Notes](docs/release-notes/)
|
|
283
289
|
- [Architecture Overview](docs/overview.md)
|
|
284
290
|
|
|
@@ -289,7 +295,3 @@ build targets.
|
|
|
289
295
|
ISC License -- see [LICENSE](LICENSE) for details.
|
|
290
296
|
|
|
291
297
|
---
|
|
292
|
-
|
|
293
|
-
[GitLab](https://gitlab.com/tech-slaves/knowledge-base-db)
|
|
294
|
-
| [NPM](https://www.npmjs.com/package/@dikolab/kbdb)
|
|
295
|
-
| [JSR](https://jsr.io/@dikolab/kbdb)
|
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
// src/shared/runtime/functions/detect-runtime.ts
|
|
2
|
+
function detectRuntime() {
|
|
3
|
+
if (typeof globalThis !== "undefined" && "Deno" in globalThis) {
|
|
4
|
+
return "deno";
|
|
5
|
+
}
|
|
6
|
+
return "node";
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
// src/shared/runtime/functions/get-args.ts
|
|
10
|
+
function getArgs() {
|
|
11
|
+
if (detectRuntime() === "deno") {
|
|
12
|
+
const g = globalThis;
|
|
13
|
+
const deno = g["Deno"];
|
|
14
|
+
return deno?.args ?? [];
|
|
15
|
+
}
|
|
16
|
+
return process.argv.slice(2);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// src/shared/dir-resolver/functions/resolve-base-dir.function.ts
|
|
20
|
+
import { dirname } from "node:path";
|
|
21
|
+
import { fileURLToPath } from "node:url";
|
|
22
|
+
function resolveScriptDir(entryUrl, entryDirname) {
|
|
23
|
+
if (entryDirname) return entryDirname;
|
|
24
|
+
if (entryUrl.startsWith("file:"))
|
|
25
|
+
return dirname(fileURLToPath(entryUrl));
|
|
26
|
+
return dirname(entryUrl);
|
|
27
|
+
}
|
|
28
|
+
function resolveBaseDir(entryUrl, entryDirname) {
|
|
29
|
+
const scriptDir = typeof __dirname !== "undefined" ? __dirname : resolveScriptDir(entryUrl, entryDirname);
|
|
30
|
+
return { scriptDir, cwd: process.cwd() };
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// src/shared/dir-resolver/functions/join-path.function.ts
|
|
34
|
+
import { join } from "node:path";
|
|
35
|
+
function isRemoteUrl(path) {
|
|
36
|
+
return path.startsWith("http://") || path.startsWith("https://");
|
|
37
|
+
}
|
|
38
|
+
function joinPath(base, ...segments) {
|
|
39
|
+
if (isRemoteUrl(base)) {
|
|
40
|
+
const trailing = base.endsWith("/") ? "" : "/";
|
|
41
|
+
return base + trailing + segments.join("/");
|
|
42
|
+
}
|
|
43
|
+
return join(base, ...segments);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// src/shared/dir-resolver/functions/resolve-worker-script.function.ts
|
|
47
|
+
function resolveWorkerScript(scriptDir, runtime) {
|
|
48
|
+
if (runtime === "deno") {
|
|
49
|
+
return joinPath(scriptDir, "worker.ts");
|
|
50
|
+
}
|
|
51
|
+
return joinPath(scriptDir, "kbdb-worker.cjs");
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// src/shared/dir-resolver/functions/resolve-wasm-dir.function.ts
|
|
55
|
+
function resolveWasmDir(scriptDir) {
|
|
56
|
+
return joinPath(scriptDir, "wasm");
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// src/shared/log/typings/log-level.type.ts
|
|
60
|
+
var LogLevel = /* @__PURE__ */ ((LogLevel2) => {
|
|
61
|
+
LogLevel2[LogLevel2["DEBUG"] = 0] = "DEBUG";
|
|
62
|
+
LogLevel2[LogLevel2["INFO"] = 1] = "INFO";
|
|
63
|
+
LogLevel2[LogLevel2["WARNING"] = 2] = "WARNING";
|
|
64
|
+
LogLevel2[LogLevel2["ERROR"] = 3] = "ERROR";
|
|
65
|
+
return LogLevel2;
|
|
66
|
+
})(LogLevel || {});
|
|
67
|
+
|
|
68
|
+
// src/shared/log/functions/parse-log-level.function.ts
|
|
69
|
+
var LOG_LEVEL_MAP = {
|
|
70
|
+
debug: 0 /* DEBUG */,
|
|
71
|
+
info: 1 /* INFO */,
|
|
72
|
+
warning: 2 /* WARNING */,
|
|
73
|
+
error: 3 /* ERROR */
|
|
74
|
+
};
|
|
75
|
+
function parseLogLevel(value) {
|
|
76
|
+
return LOG_LEVEL_MAP[value.toLowerCase()] ?? 2 /* WARNING */;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// src/shared/log/constants/log-colors.constant.ts
|
|
80
|
+
var ANSI_RESET = "\x1B[0m";
|
|
81
|
+
var LOG_COLORS = {
|
|
82
|
+
[0 /* DEBUG */]: "\x1B[37m",
|
|
83
|
+
[1 /* INFO */]: "\x1B[36m",
|
|
84
|
+
[2 /* WARNING */]: "\x1B[33m",
|
|
85
|
+
[3 /* ERROR */]: "\x1B[91m"
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
// src/shared/log/constants/log-icons.constant.ts
|
|
89
|
+
var LOG_ICONS = {
|
|
90
|
+
[0 /* DEBUG */]: "\u25B8",
|
|
91
|
+
[1 /* INFO */]: "\u2139",
|
|
92
|
+
[2 /* WARNING */]: "\u26A0",
|
|
93
|
+
[3 /* ERROR */]: "\u2716"
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
// src/shared/log/constants/log-defaults.constant.ts
|
|
97
|
+
var DEFAULT_LOG_LEVEL = 3 /* ERROR */;
|
|
98
|
+
|
|
99
|
+
// src/shared/log/functions/write-stderr.function.ts
|
|
100
|
+
function writeStderr(message) {
|
|
101
|
+
const g = globalThis;
|
|
102
|
+
const proc = g["process"];
|
|
103
|
+
if (proc?.stderr) {
|
|
104
|
+
proc.stderr.write(message);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const deno = g["Deno"];
|
|
108
|
+
deno?.stderr.writeSync(new TextEncoder().encode(message));
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// src/shared/log/functions/log.function.ts
|
|
112
|
+
var currentLevel = DEFAULT_LOG_LEVEL;
|
|
113
|
+
var outputs = {
|
|
114
|
+
[0 /* DEBUG */]: writeStderr,
|
|
115
|
+
[1 /* INFO */]: writeStderr,
|
|
116
|
+
[2 /* WARNING */]: writeStderr,
|
|
117
|
+
[3 /* ERROR */]: writeStderr
|
|
118
|
+
};
|
|
119
|
+
function setLogLevel(level) {
|
|
120
|
+
currentLevel = level;
|
|
121
|
+
}
|
|
122
|
+
function setLogOutput(level, output) {
|
|
123
|
+
outputs[level] = output;
|
|
124
|
+
}
|
|
125
|
+
function log(message, level = 3 /* ERROR */) {
|
|
126
|
+
if (level < currentLevel) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
const color = LOG_COLORS[level];
|
|
130
|
+
const icon = LOG_ICONS[level];
|
|
131
|
+
const name = LogLevel[level];
|
|
132
|
+
const line = `${color}${icon} [${name}] ${message}${ANSI_RESET}
|
|
133
|
+
`;
|
|
134
|
+
outputs[level](line);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// src/shared/log/functions/resolve-log-level.function.ts
|
|
138
|
+
function resolveLogLevel(cliLevel) {
|
|
139
|
+
if (cliLevel !== void 0) {
|
|
140
|
+
return cliLevel;
|
|
141
|
+
}
|
|
142
|
+
const envValue = process.env["KBDB_LOG_LEVEL"];
|
|
143
|
+
if (envValue !== void 0) {
|
|
144
|
+
return parseLogLevel(envValue);
|
|
145
|
+
}
|
|
146
|
+
return DEFAULT_LOG_LEVEL;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// src/shared/log/functions/configure-log.function.ts
|
|
150
|
+
function configureLog(config) {
|
|
151
|
+
setLogLevel(config.level);
|
|
152
|
+
if (config.outputs === void 0) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
const levels = [
|
|
156
|
+
0 /* DEBUG */,
|
|
157
|
+
1 /* INFO */,
|
|
158
|
+
2 /* WARNING */,
|
|
159
|
+
3 /* ERROR */
|
|
160
|
+
];
|
|
161
|
+
for (const level of levels) {
|
|
162
|
+
const output = config.outputs[level];
|
|
163
|
+
if (output !== void 0) {
|
|
164
|
+
setLogOutput(level, output.write);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
// src/shared/worker-daemon/constants/daemon-defaults.constant.ts
|
|
170
|
+
var DEFAULT_ITEM_LIMIT = 1e3;
|
|
171
|
+
var DEFAULT_INDEX_LIMIT = 100;
|
|
172
|
+
var DEFAULT_TIMEOUT_MS = 3e5;
|
|
173
|
+
var DEFAULT_ITEM_TTL_MS = 6e4;
|
|
174
|
+
var WORKER_TOML_FILENAME = "worker.toml";
|
|
175
|
+
var DB_FORMAT_VERSION = 1;
|
|
176
|
+
|
|
177
|
+
// src/shared/worker-daemon/functions/parse-embedding-section.function.ts
|
|
178
|
+
function parseEmbeddingSection(entries) {
|
|
179
|
+
const provider = entries.get("provider");
|
|
180
|
+
if (!provider) {
|
|
181
|
+
return void 0;
|
|
182
|
+
}
|
|
183
|
+
const model = entries.get("model");
|
|
184
|
+
const endpoint = entries.get("endpoint");
|
|
185
|
+
const dimensionsRaw = entries.get("dimensions");
|
|
186
|
+
const dimensions = dimensionsRaw ? parseInt(dimensionsRaw, 10) || void 0 : void 0;
|
|
187
|
+
return {
|
|
188
|
+
provider,
|
|
189
|
+
...model !== void 0 ? { model } : {},
|
|
190
|
+
...endpoint !== void 0 ? { endpoint } : {},
|
|
191
|
+
...dimensions !== void 0 ? { dimensions } : {}
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// src/shared/auto-capture/constants/auto-capture-defaults.constant.ts
|
|
196
|
+
var AUTO_CAPTURE_DEFAULTS = {
|
|
197
|
+
enabled: false,
|
|
198
|
+
triggerAfterToolCalls: 5,
|
|
199
|
+
minIntervalMs: 6e4,
|
|
200
|
+
maxCapturesPerSession: 10,
|
|
201
|
+
dryRun: false
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
// src/shared/worker-daemon/functions/parse-auto-capture-section.function.ts
|
|
205
|
+
function parseAutoCaptureSection(entries) {
|
|
206
|
+
const enabled = entries.has("enabled") ? entries.get("enabled") === "true" : AUTO_CAPTURE_DEFAULTS.enabled;
|
|
207
|
+
const dryRun = entries.has("dry_run") ? entries.get("dry_run") === "true" : AUTO_CAPTURE_DEFAULTS.dryRun;
|
|
208
|
+
const triggerRaw = entries.get("trigger_after_tool_calls");
|
|
209
|
+
const triggerAfterToolCalls = triggerRaw ? parseInt(triggerRaw, 10) || AUTO_CAPTURE_DEFAULTS.triggerAfterToolCalls : AUTO_CAPTURE_DEFAULTS.triggerAfterToolCalls;
|
|
210
|
+
const intervalRaw = entries.get("min_interval_ms");
|
|
211
|
+
const minIntervalMs = intervalRaw ? parseInt(intervalRaw, 10) || AUTO_CAPTURE_DEFAULTS.minIntervalMs : AUTO_CAPTURE_DEFAULTS.minIntervalMs;
|
|
212
|
+
const capRaw = entries.get("max_captures_per_session");
|
|
213
|
+
const maxCapturesPerSession = capRaw ? parseInt(capRaw, 10) || AUTO_CAPTURE_DEFAULTS.maxCapturesPerSession : AUTO_CAPTURE_DEFAULTS.maxCapturesPerSession;
|
|
214
|
+
return {
|
|
215
|
+
enabled,
|
|
216
|
+
triggerAfterToolCalls,
|
|
217
|
+
minIntervalMs,
|
|
218
|
+
maxCapturesPerSession,
|
|
219
|
+
dryRun
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
// src/shared/worker-daemon/functions/parse-worker-toml.function.ts
|
|
224
|
+
function applyRootKey(acc, key, value) {
|
|
225
|
+
switch (key) {
|
|
226
|
+
case "item_limit":
|
|
227
|
+
acc.itemLimit = parseInt(value, 10) || DEFAULT_ITEM_LIMIT;
|
|
228
|
+
break;
|
|
229
|
+
case "index_limit":
|
|
230
|
+
acc.indexLimit = parseInt(value, 10) || DEFAULT_INDEX_LIMIT;
|
|
231
|
+
break;
|
|
232
|
+
case "timeout_ms":
|
|
233
|
+
acc.timeoutMs = parseInt(value, 10) || DEFAULT_TIMEOUT_MS;
|
|
234
|
+
break;
|
|
235
|
+
case "item_ttl_ms":
|
|
236
|
+
acc.itemTtlMs = parseInt(value, 10) || DEFAULT_ITEM_TTL_MS;
|
|
237
|
+
break;
|
|
238
|
+
default:
|
|
239
|
+
break;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
function parseWorkerToml(text, contextPath) {
|
|
243
|
+
let section = "";
|
|
244
|
+
const embeddingEntries = /* @__PURE__ */ new Map();
|
|
245
|
+
const autoCaptureEntries = /* @__PURE__ */ new Map();
|
|
246
|
+
const acc = {
|
|
247
|
+
itemLimit: DEFAULT_ITEM_LIMIT,
|
|
248
|
+
indexLimit: DEFAULT_INDEX_LIMIT,
|
|
249
|
+
timeoutMs: DEFAULT_TIMEOUT_MS,
|
|
250
|
+
itemTtlMs: DEFAULT_ITEM_TTL_MS
|
|
251
|
+
};
|
|
252
|
+
for (const line of text.split("\n")) {
|
|
253
|
+
const trimmed = line.trim();
|
|
254
|
+
if (trimmed === "[embedding]") {
|
|
255
|
+
section = "embedding";
|
|
256
|
+
continue;
|
|
257
|
+
}
|
|
258
|
+
if (trimmed === "[auto_capture]") {
|
|
259
|
+
section = "auto_capture";
|
|
260
|
+
continue;
|
|
261
|
+
}
|
|
262
|
+
if (trimmed.startsWith("[")) {
|
|
263
|
+
section = "";
|
|
264
|
+
continue;
|
|
265
|
+
}
|
|
266
|
+
if (trimmed.startsWith("#") || !trimmed.includes("=")) continue;
|
|
267
|
+
const eqIdx = trimmed.indexOf("=");
|
|
268
|
+
const key = trimmed.slice(0, eqIdx).trim();
|
|
269
|
+
const value = trimmed.slice(eqIdx + 1).trim();
|
|
270
|
+
if (section === "embedding") {
|
|
271
|
+
embeddingEntries.set(key, value);
|
|
272
|
+
continue;
|
|
273
|
+
}
|
|
274
|
+
if (section === "auto_capture") {
|
|
275
|
+
autoCaptureEntries.set(key, value);
|
|
276
|
+
continue;
|
|
277
|
+
}
|
|
278
|
+
applyRootKey(acc, key, value);
|
|
279
|
+
}
|
|
280
|
+
const embedding = parseEmbeddingSection(embeddingEntries);
|
|
281
|
+
const autoCapture = autoCaptureEntries.size > 0 ? parseAutoCaptureSection(autoCaptureEntries) : void 0;
|
|
282
|
+
return {
|
|
283
|
+
contextPath,
|
|
284
|
+
...acc,
|
|
285
|
+
...embedding !== void 0 ? { embedding } : {},
|
|
286
|
+
...autoCapture !== void 0 ? { autoCapture } : {}
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
// src/shared/hash/functions/compute-sha256.ts
|
|
291
|
+
async function computeSha256(input) {
|
|
292
|
+
const data = new TextEncoder().encode(input);
|
|
293
|
+
const hash = await crypto.subtle.digest("SHA-256", data);
|
|
294
|
+
const bytes = new Uint8Array(hash);
|
|
295
|
+
return Array.from(bytes).map((b) => b.toString(16).padStart(2, "0")).join("");
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
// src/shared/platform/functions/get-ipc-path.function.ts
|
|
299
|
+
import { join as join2 } from "node:path";
|
|
300
|
+
|
|
301
|
+
// src/shared/platform/functions/get-tmpdir.function.ts
|
|
302
|
+
import { tmpdir } from "node:os";
|
|
303
|
+
function getTmpdir() {
|
|
304
|
+
return tmpdir();
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
// src/shared/platform/functions/get-ipc-path.function.ts
|
|
308
|
+
function getIpcPath(ctx) {
|
|
309
|
+
if (process.platform === "win32") {
|
|
310
|
+
return `\\\\.\\pipe\\kbdb-${ctx}`;
|
|
311
|
+
}
|
|
312
|
+
return join2(getTmpdir(), `kbdb-${ctx}.sock`);
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
export {
|
|
316
|
+
detectRuntime,
|
|
317
|
+
getArgs,
|
|
318
|
+
resolveBaseDir,
|
|
319
|
+
isRemoteUrl,
|
|
320
|
+
joinPath,
|
|
321
|
+
resolveWorkerScript,
|
|
322
|
+
resolveWasmDir,
|
|
323
|
+
parseLogLevel,
|
|
324
|
+
log,
|
|
325
|
+
computeSha256,
|
|
326
|
+
getIpcPath,
|
|
327
|
+
resolveLogLevel,
|
|
328
|
+
configureLog,
|
|
329
|
+
DEFAULT_ITEM_LIMIT,
|
|
330
|
+
DEFAULT_INDEX_LIMIT,
|
|
331
|
+
DEFAULT_TIMEOUT_MS,
|
|
332
|
+
DEFAULT_ITEM_TTL_MS,
|
|
333
|
+
WORKER_TOML_FILENAME,
|
|
334
|
+
DB_FORMAT_VERSION,
|
|
335
|
+
parseWorkerToml
|
|
336
|
+
};
|
|
337
|
+
//# sourceMappingURL=chunk-BJXEVALU.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/shared/runtime/functions/detect-runtime.ts", "../src/shared/runtime/functions/get-args.ts", "../src/shared/dir-resolver/functions/resolve-base-dir.function.ts", "../src/shared/dir-resolver/functions/join-path.function.ts", "../src/shared/dir-resolver/functions/resolve-worker-script.function.ts", "../src/shared/dir-resolver/functions/resolve-wasm-dir.function.ts", "../src/shared/log/typings/log-level.type.ts", "../src/shared/log/functions/parse-log-level.function.ts", "../src/shared/log/constants/log-colors.constant.ts", "../src/shared/log/constants/log-icons.constant.ts", "../src/shared/log/constants/log-defaults.constant.ts", "../src/shared/log/functions/write-stderr.function.ts", "../src/shared/log/functions/log.function.ts", "../src/shared/log/functions/resolve-log-level.function.ts", "../src/shared/log/functions/configure-log.function.ts", "../src/shared/worker-daemon/constants/daemon-defaults.constant.ts", "../src/shared/worker-daemon/functions/parse-embedding-section.function.ts", "../src/shared/auto-capture/constants/auto-capture-defaults.constant.ts", "../src/shared/worker-daemon/functions/parse-auto-capture-section.function.ts", "../src/shared/worker-daemon/functions/parse-worker-toml.function.ts", "../src/shared/hash/functions/compute-sha256.ts", "../src/shared/platform/functions/get-ipc-path.function.ts", "../src/shared/platform/functions/get-tmpdir.function.ts"],
|
|
4
|
+
"sourcesContent": ["import type { Runtime } from '../typings/runtime.ts';\n\n/**\n * Detects the current JavaScript runtime environment.\n *\n * Returns `'deno'` when the global `Deno` object is present,\n * otherwise returns `'node'`.\n */\nexport function detectRuntime(): Runtime {\n if (typeof globalThis !== 'undefined' && 'Deno' in globalThis) {\n return 'deno';\n }\n return 'node';\n}\n", "import { detectRuntime } from './detect-runtime.ts';\n\n/**\n * Returns the command-line arguments for the current runtime.\n *\n * In Deno, reads `Deno.args`; in Node.js, slices `process.argv`\n * past the interpreter and script entries.\n */\nexport function getArgs(): string[] {\n if (detectRuntime() === 'deno') {\n const g = globalThis as Record<string, unknown>;\n const deno = g['Deno'] as { args: string[] } | undefined;\n return deno?.args ?? [];\n }\n return process.argv.slice(2);\n}\n", "import { dirname } from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nimport type { BaseDir } from '../typings/base-dir.interface.ts';\n\nexport function resolveScriptDir(\n entryUrl: string,\n entryDirname?: string,\n): string {\n if (entryDirname) return entryDirname;\n if (entryUrl.startsWith('file:'))\n return dirname(fileURLToPath(entryUrl));\n return dirname(entryUrl);\n}\n\nexport function resolveBaseDir(\n entryUrl: string,\n entryDirname?: string,\n): BaseDir {\n const scriptDir =\n typeof __dirname !== 'undefined'\n ? __dirname\n : resolveScriptDir(entryUrl, entryDirname);\n return { scriptDir, cwd: process.cwd() };\n}\n", "import { join } from 'node:path';\n\nexport function isRemoteUrl(path: string): boolean {\n return path.startsWith('http://') || path.startsWith('https://');\n}\n\nexport function joinPath(base: string, ...segments: string[]): string {\n if (isRemoteUrl(base)) {\n const trailing = base.endsWith('/') ? '' : '/';\n return base + trailing + segments.join('/');\n }\n return join(base, ...segments);\n}\n", "import { joinPath } from './join-path.function.ts';\n\nimport type { Runtime } from '../../runtime/typings/runtime.ts';\n\nexport function resolveWorkerScript(\n scriptDir: string,\n runtime: Runtime,\n): string {\n if (runtime === 'deno') {\n return joinPath(scriptDir, 'worker.ts');\n }\n return joinPath(scriptDir, 'kbdb-worker.cjs');\n}\n", "import { joinPath } from './join-path.function.ts';\n\nexport function resolveWasmDir(scriptDir: string): string {\n return joinPath(scriptDir, 'wasm');\n}\n", "/** Verbosity levels, ordered from most to least verbose. */\nexport enum LogLevel {\n DEBUG = 0,\n INFO = 1,\n WARNING = 2,\n ERROR = 3,\n}\n", "import { LogLevel } from '../typings/log-level.type.ts';\n\n/** Map from lowercase level name to LogLevel enum value. */\nconst LOG_LEVEL_MAP: Readonly<Record<string, LogLevel>> = {\n debug: LogLevel.DEBUG,\n info: LogLevel.INFO,\n warning: LogLevel.WARNING,\n error: LogLevel.ERROR,\n};\n\n/**\n * Parses a string into a `LogLevel` enum value.\n *\n * Matching is case-insensitive. Returns `LogLevel.WARNING` for\n * any unrecognized value, including empty strings.\n *\n * @param value - the raw string to parse (e.g. from a CLI flag)\n */\nexport function parseLogLevel(value: string): LogLevel {\n return LOG_LEVEL_MAP[value.toLowerCase()] ?? LogLevel.WARNING;\n}\n", "import { LogLevel } from '../typings/log-level.type.ts';\n\n/** ANSI escape sequence that resets all text formatting. */\nexport const ANSI_RESET = '\\x1b[0m';\n\n/** ANSI foreground color code applied to each log level's output. */\nexport const LOG_COLORS: Record<LogLevel, string> = {\n [LogLevel.DEBUG]: '\\x1b[37m',\n [LogLevel.INFO]: '\\x1b[36m',\n [LogLevel.WARNING]: '\\x1b[33m',\n [LogLevel.ERROR]: '\\x1b[91m',\n};\n", "import { LogLevel } from '../typings/log-level.type.ts';\n\n/** Single-character icon used as visual prefix for each log level. */\nexport const LOG_ICONS: Record<LogLevel, string> = {\n [LogLevel.DEBUG]: '\u25B8',\n [LogLevel.INFO]: '\u2139',\n [LogLevel.WARNING]: '\u26A0',\n [LogLevel.ERROR]: '\u2716',\n};\n", "import { LogLevel } from '../typings/log-level.type.ts';\n\n/** Default log level used when no CLI flag or env var is set. */\nexport const DEFAULT_LOG_LEVEL = LogLevel.ERROR;\n", "/**\n * Writes a string to the process standard error stream.\n *\n * Works on both Node.js (via `process.stderr.write`) and Deno\n * (via `Deno.stderr.writeSync`). Silently does nothing when\n * neither runtime API is available.\n *\n * @param message - the string to write to stderr\n */\nexport function writeStderr(message: string): void {\n const g = globalThis as Record<string, unknown>;\n const proc = g['process'] as\n | { stderr: { write: (s: string) => void } }\n | undefined;\n if (proc?.stderr) {\n proc.stderr.write(message);\n return;\n }\n const deno = g['Deno'] as\n | { stderr: { writeSync: (b: Uint8Array) => void } }\n | undefined;\n deno?.stderr.writeSync(new TextEncoder().encode(message));\n}\n", "import {\n ANSI_RESET,\n LOG_COLORS,\n} from '../constants/log-colors.constant.ts';\nimport { LOG_ICONS } from '../constants/log-icons.constant.ts';\nimport { DEFAULT_LOG_LEVEL } from '../constants/log-defaults.constant.ts';\nimport { LogLevel } from '../typings/log-level.type.ts';\nimport { writeStderr } from './write-stderr.function.ts';\n\n/** A function that receives a formatted log line. */\ntype OutputFn = (message: string) => void;\n\nlet currentLevel: LogLevel = DEFAULT_LOG_LEVEL;\n\nconst outputs: Record<LogLevel, OutputFn> = {\n [LogLevel.DEBUG]: writeStderr,\n [LogLevel.INFO]: writeStderr,\n [LogLevel.WARNING]: writeStderr,\n [LogLevel.ERROR]: writeStderr,\n};\n\n/**\n * Sets the minimum log level. Messages below this level are\n * suppressed. Used internally by `configureLog`.\n */\nexport function setLogLevel(level: LogLevel): void {\n currentLevel = level;\n}\n\n/**\n * Overrides the output function for a specific log level.\n * Used internally by `configureLog`.\n *\n * @param level - the log level whose output to replace\n * @param output - function that receives the formatted message\n */\nexport function setLogOutput(level: LogLevel, output: OutputFn): void {\n outputs[level] = output;\n}\n\n/**\n * Writes a formatted, colorized log message to the configured\n * output for the given level. Messages below the current level\n * are silently discarded.\n *\n * Format: `\\x1b[COLORm ICON [LEVEL_NAME] message\\x1b[0m\\n`\n *\n * @param message - the text to log\n * @param level - severity level; defaults to `LogLevel.ERROR`\n */\nexport function log(\n message: string,\n level: LogLevel = LogLevel.ERROR,\n): void {\n if (level < currentLevel) {\n return;\n }\n const color = LOG_COLORS[level];\n const icon = LOG_ICONS[level];\n const name = LogLevel[level];\n const line = `${color}${icon} [${name}] ${message}${ANSI_RESET}\\n`;\n outputs[level](line);\n}\n", "import type { LogLevel } from '../typings/log-level.type.ts';\nimport { DEFAULT_LOG_LEVEL } from '../constants/log-defaults.constant.ts';\nimport { parseLogLevel } from './parse-log-level.function.ts';\n\n/**\n * Resolves the active log level from CLI flags or the environment.\n *\n * Priority order:\n * 1. `cliLevel` when provided (CLI flag takes highest priority)\n * 2. `KBDB_LOG_LEVEL` environment variable, parsed via `parseLogLevel`\n * 3. `DEFAULT_LOG_LEVEL` (`LogLevel.ERROR`) when neither is set\n *\n * @param cliLevel - explicit level passed from a CLI flag, if any\n */\nexport function resolveLogLevel(cliLevel?: LogLevel): LogLevel {\n if (cliLevel !== undefined) {\n return cliLevel;\n }\n const envValue = process.env['KBDB_LOG_LEVEL'];\n if (envValue !== undefined) {\n return parseLogLevel(envValue);\n }\n return DEFAULT_LOG_LEVEL;\n}\n", "import type { LogConfig } from '../typings/log-config.interface.ts';\nimport { LogLevel } from '../typings/log-level.type.ts';\nimport { setLogLevel, setLogOutput } from './log.function.ts';\n\n/**\n * Applies a log configuration, setting the active log level and\n * optionally overriding the output target for individual levels.\n *\n * Only levels listed in `config.outputs` are affected; all other\n * level outputs remain unchanged. Calling this function multiple\n * times is safe -- the last call's settings take effect.\n *\n * @param config - desired log level and optional per-level outputs\n */\nexport function configureLog(config: LogConfig): void {\n setLogLevel(config.level);\n if (config.outputs === undefined) {\n return;\n }\n const levels: LogLevel[] = [\n LogLevel.DEBUG,\n LogLevel.INFO,\n LogLevel.WARNING,\n LogLevel.ERROR,\n ];\n for (const level of levels) {\n const output = config.outputs[level];\n if (output !== undefined) {\n setLogOutput(level, output.write);\n }\n }\n}\n", "/** Default maximum number of items held in daemon memory. */\nexport const DEFAULT_ITEM_LIMIT = 1000;\n\n/** Default maximum number of index entries held in daemon memory. */\nexport const DEFAULT_INDEX_LIMIT = 100;\n\n/**\n * Default idle timeout in milliseconds before the daemon shuts\n * down automatically (5 minutes).\n */\nexport const DEFAULT_TIMEOUT_MS = 300_000;\n\n/**\n * Default time-to-live in milliseconds for each cached item\n * (1 minute).\n */\nexport const DEFAULT_ITEM_TTL_MS = 60_000;\n\n/** Filename of the daemon configuration file inside `.kbdb/`. */\nexport const WORKER_TOML_FILENAME = 'worker.toml';\n\n/**\n * Database format version the daemon supports.\n *\n * Read from `catalog.toml` at startup. If the catalog version\n * differs, the daemon prints a structured error to stderr and\n * exits with code 1 before loading any WASM modules.\n */\nexport const DB_FORMAT_VERSION = 1;\n", "import type { EmbeddingConfig } from '../../embedding/typings/embedding-config.interface.ts';\n\n/**\n * Parses key-value pairs from a `[embedding]` TOML section into an\n * `EmbeddingConfig`.\n *\n * Recognises: `provider`, `model`, `endpoint`, `dimensions`.\n * Unknown keys are silently ignored. Returns `undefined` when the\n * `provider` key is absent from the supplied entries.\n *\n * @param entries - key-value pairs from inside the `[embedding]`\n * section\n */\nexport function parseEmbeddingSection(\n entries: ReadonlyMap<string, string>,\n): EmbeddingConfig | undefined {\n const provider = entries.get('provider') as\n | EmbeddingConfig['provider']\n | undefined;\n\n if (!provider) {\n return undefined;\n }\n\n const model = entries.get('model');\n const endpoint = entries.get('endpoint');\n const dimensionsRaw = entries.get('dimensions');\n const dimensions = dimensionsRaw\n ? parseInt(dimensionsRaw, 10) || undefined\n : undefined;\n\n return {\n provider,\n ...(model !== undefined ? { model } : {}),\n ...(endpoint !== undefined ? { endpoint } : {}),\n ...(dimensions !== undefined ? { dimensions } : {}),\n };\n}\n", "import type { AutoCaptureConfig } from '../typings/auto-capture-config.interface.ts';\n\n/**\n * Default configuration for the auto-capture feature.\n *\n * Auto-capture is disabled by default. Enable it in\n * `worker.toml` under `[auto_capture]`.\n */\nexport const AUTO_CAPTURE_DEFAULTS: AutoCaptureConfig = {\n enabled: false,\n triggerAfterToolCalls: 5,\n minIntervalMs: 60_000,\n maxCapturesPerSession: 10,\n dryRun: false,\n};\n", "import type { AutoCaptureConfig } from '../../auto-capture/typings/auto-capture-config.interface.ts';\nimport { AUTO_CAPTURE_DEFAULTS } from '../../auto-capture/constants/auto-capture-defaults.constant.ts';\n\n/**\n * Parses key-value pairs from an `[auto_capture]` TOML section\n * into an `AutoCaptureConfig`.\n *\n * Recognised keys: `enabled`, `trigger_after_tool_calls`,\n * `min_interval_ms`, `max_captures_per_session`, `dry_run`.\n * Unknown keys are silently ignored. Falls back to\n * `AUTO_CAPTURE_DEFAULTS` for any absent key.\n *\n * @param entries - key-value pairs from inside the\n * `[auto_capture]` section\n */\nexport function parseAutoCaptureSection(\n entries: ReadonlyMap<string, string>,\n): AutoCaptureConfig {\n const enabled = entries.has('enabled')\n ? entries.get('enabled') === 'true'\n : AUTO_CAPTURE_DEFAULTS.enabled;\n\n const dryRun = entries.has('dry_run')\n ? entries.get('dry_run') === 'true'\n : AUTO_CAPTURE_DEFAULTS.dryRun;\n\n const triggerRaw = entries.get('trigger_after_tool_calls');\n const triggerAfterToolCalls = triggerRaw\n ? parseInt(triggerRaw, 10) ||\n AUTO_CAPTURE_DEFAULTS.triggerAfterToolCalls\n : AUTO_CAPTURE_DEFAULTS.triggerAfterToolCalls;\n\n const intervalRaw = entries.get('min_interval_ms');\n const minIntervalMs = intervalRaw\n ? parseInt(intervalRaw, 10) || AUTO_CAPTURE_DEFAULTS.minIntervalMs\n : AUTO_CAPTURE_DEFAULTS.minIntervalMs;\n\n const capRaw = entries.get('max_captures_per_session');\n const maxCapturesPerSession = capRaw\n ? parseInt(capRaw, 10) ||\n AUTO_CAPTURE_DEFAULTS.maxCapturesPerSession\n : AUTO_CAPTURE_DEFAULTS.maxCapturesPerSession;\n\n return {\n enabled,\n triggerAfterToolCalls,\n minIntervalMs,\n maxCapturesPerSession,\n dryRun,\n };\n}\n", "import type { DaemonConfig } from '../typings/daemon-config.interface.ts';\nimport {\n DEFAULT_ITEM_LIMIT,\n DEFAULT_INDEX_LIMIT,\n DEFAULT_TIMEOUT_MS,\n DEFAULT_ITEM_TTL_MS,\n} from '../constants/daemon-defaults.constant.ts';\nimport { parseEmbeddingSection } from './parse-embedding-section.function.ts';\nimport { parseAutoCaptureSection } from './parse-auto-capture-section.function.ts';\n\ninterface RootAccum {\n itemLimit: number;\n indexLimit: number;\n timeoutMs: number;\n itemTtlMs: number;\n}\n\nfunction applyRootKey(\n acc: RootAccum,\n key: string,\n value: string,\n): void {\n switch (key) {\n case 'item_limit':\n acc.itemLimit = parseInt(value, 10) || DEFAULT_ITEM_LIMIT;\n break;\n case 'index_limit':\n acc.indexLimit = parseInt(value, 10) || DEFAULT_INDEX_LIMIT;\n break;\n case 'timeout_ms':\n acc.timeoutMs = parseInt(value, 10) || DEFAULT_TIMEOUT_MS;\n break;\n case 'item_ttl_ms':\n acc.itemTtlMs = parseInt(value, 10) || DEFAULT_ITEM_TTL_MS;\n break;\n default:\n break;\n }\n}\n\n/**\n * Parses a `worker.toml` file body into a partial `DaemonConfig`.\n *\n * Handles `[embedding]` sub-sections and root key-value pairs.\n * Unknown keys are silently ignored.\n *\n * @param text - raw content of `worker.toml`\n * @param contextPath - daemon context directory path\n */\nexport function parseWorkerToml(\n text: string,\n contextPath: string,\n): DaemonConfig {\n let section = '';\n const embeddingEntries = new Map<string, string>();\n const autoCaptureEntries = new Map<string, string>();\n const acc: RootAccum = {\n itemLimit: DEFAULT_ITEM_LIMIT,\n indexLimit: DEFAULT_INDEX_LIMIT,\n timeoutMs: DEFAULT_TIMEOUT_MS,\n itemTtlMs: DEFAULT_ITEM_TTL_MS,\n };\n\n for (const line of text.split('\\n')) {\n const trimmed = line.trim();\n if (trimmed === '[embedding]') {\n section = 'embedding';\n continue;\n }\n if (trimmed === '[auto_capture]') {\n section = 'auto_capture';\n continue;\n }\n if (trimmed.startsWith('[')) {\n section = '';\n continue;\n }\n if (trimmed.startsWith('#') || !trimmed.includes('=')) continue;\n const eqIdx = trimmed.indexOf('=');\n const key = trimmed.slice(0, eqIdx).trim();\n const value = trimmed.slice(eqIdx + 1).trim();\n if (section === 'embedding') {\n embeddingEntries.set(key, value);\n continue;\n }\n if (section === 'auto_capture') {\n autoCaptureEntries.set(key, value);\n continue;\n }\n applyRootKey(acc, key, value);\n }\n\n const embedding = parseEmbeddingSection(embeddingEntries);\n const autoCapture =\n autoCaptureEntries.size > 0\n ? parseAutoCaptureSection(autoCaptureEntries)\n : undefined;\n return {\n contextPath,\n ...acc,\n ...(embedding !== undefined ? { embedding } : {}),\n ...(autoCapture !== undefined ? { autoCapture } : {}),\n };\n}\n", "/**\n * Computes the SHA-256 hash of a UTF-8 string.\n *\n * Uses the Web Crypto API (`crypto.subtle`), which is available\n * in both Deno and Node.js >= 20 without additional imports.\n *\n * @param input - the string to hash\n * @returns lowercase hex-encoded SHA-256 digest (64 characters)\n */\nexport async function computeSha256(input: string): Promise<string> {\n const data = new TextEncoder().encode(input);\n const hash = await crypto.subtle.digest('SHA-256', data);\n const bytes = new Uint8Array(hash);\n return Array.from(bytes)\n .map((b) => b.toString(16).padStart(2, '0'))\n .join('');\n}\n", "import { join } from 'node:path';\nimport { getTmpdir } from './get-tmpdir.function.ts';\n\n/**\n * Returns the platform-appropriate IPC socket path for a given\n * context identifier.\n *\n * On Windows, returns a named pipe path (`\\\\.\\pipe\\kbdb-<ctx>`).\n * On POSIX systems, returns a Unix domain socket path under the\n * system temp directory (`<tmpdir>/kbdb-<ctx>.sock`).\n *\n * @param ctx - unique context identifier embedded in the path\n */\nexport function getIpcPath(ctx: string): string {\n if (process.platform === 'win32') {\n return `\\\\\\\\.\\\\pipe\\\\kbdb-${ctx}`;\n }\n return join(getTmpdir(), `kbdb-${ctx}.sock`);\n}\n", "import { tmpdir } from 'node:os';\n\n/**\n * Returns the operating system's default temporary directory path.\n */\nexport function getTmpdir(): string {\n return tmpdir();\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["LogLevel", "join", "join"]
|
|
7
|
+
}
|