@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
package/docs/overview.md
CHANGED
|
@@ -27,6 +27,8 @@ to it as a tool.
|
|
|
27
27
|
for Model Context Protocol servers
|
|
28
28
|
- **Knowledge workers** -- a second brain your AI
|
|
29
29
|
assistant can search across conversations
|
|
30
|
+
- **Vibe coders** -- a searchable doc store for
|
|
31
|
+
your AI-assisted projects
|
|
30
32
|
- **CLI-first developers** -- composable commands
|
|
31
33
|
for managing knowledge from the terminal
|
|
32
34
|
|
|
@@ -34,15 +36,24 @@ to it as a tool.
|
|
|
34
36
|
|
|
35
37
|
- **Import** Markdown files with automatic keyword
|
|
36
38
|
extraction and indexing
|
|
37
|
-
- **Search**
|
|
38
|
-
|
|
39
|
+
- **Search** three ways: keyword (default),
|
|
40
|
+
hybrid, or AI similarity via `--algo`
|
|
41
|
+
- **Auto-fallback** -- loosens your query when
|
|
42
|
+
exact matches return nothing
|
|
39
43
|
- **Recall** sections with progressive context
|
|
40
44
|
(depth 0--3)
|
|
45
|
+
- **Smart updates** -- re-learning a file replaces
|
|
46
|
+
the old version, not duplicates it
|
|
47
|
+
- **Near-duplicate detection** -- warns when
|
|
48
|
+
imported content closely matches existing data
|
|
41
49
|
- **Skills** -- reusable prompt templates with
|
|
42
|
-
|
|
50
|
+
fill-in-the-blank arguments
|
|
43
51
|
- **Agents** -- AI profiles combining a persona
|
|
44
52
|
with skills
|
|
45
|
-
- **
|
|
53
|
+
- **Auto-capture** -- MCP server proactively
|
|
54
|
+
suggests knowledge to store from conversations
|
|
55
|
+
- **Export and sync** -- snapshot your knowledge
|
|
56
|
+
base for backup or sharing across machines
|
|
46
57
|
- **Verify** database integrity and clean up stale
|
|
47
58
|
data
|
|
48
59
|
- **MCP server** with 20 tools, prompts, resources,
|
|
@@ -76,32 +87,31 @@ mode runs short-lived commands (`learn`, `search`,
|
|
|
76
87
|
`recall`). MCP mode starts a long-lived server for
|
|
77
88
|
AI agents over stdio.
|
|
78
89
|
|
|
79
|
-
**Worker Client** --
|
|
80
|
-
|
|
90
|
+
**Worker Client** -- Connects to the background
|
|
91
|
+
daemon and gives your code a typed API.
|
|
81
92
|
|
|
82
93
|
**Worker Daemon** -- Background process that loads
|
|
83
|
-
|
|
84
|
-
|
|
94
|
+
the search engine, caches data in memory, and
|
|
95
|
+
handles requests.
|
|
85
96
|
|
|
86
|
-
**
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
runtime.
|
|
97
|
+
**Search Engine** -- Compiled from Rust to
|
|
98
|
+
WebAssembly for speed. Three modules handle
|
|
99
|
+
tokenization, indexing, ranking, and file I/O.
|
|
90
100
|
|
|
91
|
-
**File Database** -- Structured
|
|
101
|
+
**File Database** -- Structured folder on disk.
|
|
92
102
|
No server process. Portable, version-controllable,
|
|
93
103
|
and human-readable.
|
|
94
104
|
|
|
95
105
|
### Technology Stack
|
|
96
106
|
|
|
97
|
-
| Layer | Technology |
|
|
98
|
-
|
|
99
|
-
| Runtime | Node.js, Deno | Runs
|
|
100
|
-
| Language | TypeScript | CLI, MCP
|
|
101
|
-
| Engine | Rust -> WebAssembly |
|
|
107
|
+
| Layer | Technology | What it does |
|
|
108
|
+
|-------|-----------|--------------|
|
|
109
|
+
| Runtime | Node.js, Deno | Runs the tools |
|
|
110
|
+
| Language | TypeScript | CLI, MCP server, I/O |
|
|
111
|
+
| Engine | Rust -> WebAssembly | Fast indexing and search |
|
|
102
112
|
| Protocol | MCP | AI agent integration |
|
|
103
|
-
| Distribution | NPM, JSR |
|
|
104
|
-
| Storage | File database |
|
|
113
|
+
| Distribution | NPM, JSR | Install from either |
|
|
114
|
+
| Storage | File database | Your data, in a folder |
|
|
105
115
|
|
|
106
116
|
## Design Principles
|
|
107
117
|
|
|
@@ -120,7 +130,9 @@ and human-readable.
|
|
|
120
130
|
|
|
121
131
|
## Design Documents
|
|
122
132
|
|
|
123
|
-
|
|
133
|
+
Deeper docs for each part of the system. You don't
|
|
134
|
+
need to read these to use kbdb -- they're here for
|
|
135
|
+
contributors and anyone curious about internals.
|
|
124
136
|
|
|
125
137
|
- **[Database](goals/database.md)** -- File storage
|
|
126
138
|
engine, directory structure, section and document
|
|
@@ -128,6 +140,8 @@ Detailed specifications for each subsystem:
|
|
|
128
140
|
- **[Query Parser](goals/query-parser.md)** --
|
|
129
141
|
Tokenization, query parsing, keyword extraction,
|
|
130
142
|
ranking
|
|
143
|
+
- **[Hybrid Search](goals/hybrid-search.md)** --
|
|
144
|
+
Lexical + vector retrieval with score fusion
|
|
131
145
|
- **[Document](goals/document.md)** -- Content format
|
|
132
146
|
with markers and cross-references
|
|
133
147
|
- **[Content Parser](goals/content-parser.md)** --
|
|
@@ -138,6 +152,10 @@ Detailed specifications for each subsystem:
|
|
|
138
152
|
output formats
|
|
139
153
|
- **[MCP](goals/mcp.md)** -- MCP server, tools,
|
|
140
154
|
resources, agent wiring
|
|
155
|
+
- **[Auto-Capture](goals/auto-capture.md)** --
|
|
156
|
+
Proactive knowledge capture via MCP sampling
|
|
157
|
+
- **[Sync](goals/sync.md)** -- Cross-machine export
|
|
158
|
+
and import
|
|
141
159
|
- **[Worker Daemon](goals/worker-daemon.md)** --
|
|
142
160
|
Background daemon, WASM loading, caching, IPC
|
|
143
161
|
- **[Worker Client](goals/worker-client.md)** --
|
|
@@ -155,16 +173,19 @@ with zero failures and zero skips.
|
|
|
155
173
|
|
|
156
174
|
- 18 CLI commands across 6 groups
|
|
157
175
|
- 20 MCP tools with prompts, resources, completions
|
|
176
|
+
- Three search algorithms: lexical, vector, hybrid
|
|
158
177
|
- Sequential MCP request processing
|
|
159
178
|
- Worker daemon with fully implemented WASM host I/O
|
|
160
179
|
- Paginated search with rich metadata
|
|
161
180
|
- Progressive recall at depths 0--3
|
|
162
181
|
- Bidirectional reference graph
|
|
163
182
|
- Skills and agent document management
|
|
183
|
+
- Auto-capture hooks via MCP sampling
|
|
184
|
+
- Export/import sync primitives
|
|
164
185
|
- esbuild bundling (ESM + CJS + .d.ts)
|
|
165
186
|
- Docker build containers
|
|
166
187
|
- npm and JSR packages with documentation
|
|
167
188
|
|
|
168
189
|
## Links
|
|
169
190
|
|
|
170
|
-
- **Repository**: https://gitlab.com/tech-slaves
|
|
191
|
+
- **Repository**: https://gitlab.com/tech-slaves/knowledge-base-db
|
|
@@ -55,6 +55,16 @@ tool (`auto-capture-review`).
|
|
|
55
55
|
`list`, `approve`, or `reject`. This brings the
|
|
56
56
|
MCP server to 20 tools.
|
|
57
57
|
|
|
58
|
+
- **Hybrid search infrastructure** -- New `--algo`
|
|
59
|
+
flag (CLI) and `algo` parameter (MCP/IPC) with
|
|
60
|
+
values `lexical`, `vector`, `hybrid`. Embedding
|
|
61
|
+
module with pluggable provider interface, vector
|
|
62
|
+
index binary format (KBVX), cosine similarity,
|
|
63
|
+
and RRF score fusion. Defaults to `lexical`.
|
|
64
|
+
Concrete embedding providers are deferred -- a
|
|
65
|
+
`NullEmbeddingProvider` is used until one is
|
|
66
|
+
configured.
|
|
67
|
+
|
|
58
68
|
---
|
|
59
69
|
|
|
60
70
|
## Testing
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# 0.3.2
|
|
2
|
+
|
|
3
|
+
*Patch release -- 2026-06-23*
|
|
4
|
+
|
|
5
|
+
Documentation alignment, hybrid search highlight,
|
|
6
|
+
and readability improvements for non-technical users.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Documentation
|
|
11
|
+
|
|
12
|
+
- **Internal doc links use relative paths** --
|
|
13
|
+
README.md links to CLI reference, MCP guide,
|
|
14
|
+
library API, Makefile, release notes, overview,
|
|
15
|
+
and LICENSE now use relative paths instead of
|
|
16
|
+
absolute GitLab URLs. External links (NPM, JSR,
|
|
17
|
+
GitLab homepage) remain absolute.
|
|
18
|
+
|
|
19
|
+
- **Fixed repository URL in overview.md** --
|
|
20
|
+
Corrected `tech-slaves-internal` to `tech-slaves`.
|
|
21
|
+
|
|
22
|
+
- **`--algo` added to CLI reference** -- Search
|
|
23
|
+
Options table now documents the `--algo` flag with
|
|
24
|
+
values `lexical`, `vector`, `hybrid` and a new
|
|
25
|
+
Search Algorithms subsection.
|
|
26
|
+
|
|
27
|
+
- **Hybrid search section in search-and-ranking.md**
|
|
28
|
+
-- New section explains lexical, vector, and hybrid
|
|
29
|
+
algorithms with plain-language descriptions of
|
|
30
|
+
how each works and when to use it.
|
|
31
|
+
|
|
32
|
+
- **Beginner summary in search-and-ranking.md** --
|
|
33
|
+
Three-sentence intro at the top so non-technical
|
|
34
|
+
readers know what the page covers without reading
|
|
35
|
+
the full technical deep-dive.
|
|
36
|
+
|
|
37
|
+
- **Feature lists updated** -- README and overview
|
|
38
|
+
now include auto-capture, sync/export, and
|
|
39
|
+
near-duplicate detection. Design Documents section
|
|
40
|
+
in overview now links to hybrid search,
|
|
41
|
+
auto-capture, and sync goal docs.
|
|
42
|
+
|
|
43
|
+
- **Readability pass** -- Simplified jargon across
|
|
44
|
+
README and overview. "RRF score fusion" becomes
|
|
45
|
+
"blends keyword matching with AI-powered
|
|
46
|
+
similarity". Technology stack table simplified.
|
|
47
|
+
MCP setup examples consolidated from three
|
|
48
|
+
nearly-identical blocks into one with platform
|
|
49
|
+
notes.
|
|
50
|
+
|
|
51
|
+
- **"Vibe coders" added to audience list** in
|
|
52
|
+
overview.md.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Upgrade
|
|
57
|
+
|
|
58
|
+
```sh
|
|
59
|
+
# Node.js
|
|
60
|
+
npm install -g @dikolab/kbdb@0.3.2
|
|
61
|
+
|
|
62
|
+
# Deno
|
|
63
|
+
deno install -Agf jsr:@dikolab/kbdb/cli
|
|
64
|
+
```
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# 0.4.0
|
|
2
|
+
|
|
3
|
+
*Minor release -- 2026-06-25*
|
|
4
|
+
|
|
5
|
+
Rust engine refactor, daemon reliability, publishing
|
|
6
|
+
fixes, and documentation accuracy audit.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Engine
|
|
11
|
+
|
|
12
|
+
- **Rust engine refactor** -- extracted specs into
|
|
13
|
+
separate files, split large modules across all
|
|
14
|
+
four crates for readability and maintainability.
|
|
15
|
+
|
|
16
|
+
## Daemon
|
|
17
|
+
|
|
18
|
+
- **Reliability fixes** -- improved daemon startup,
|
|
19
|
+
error handling, and shutdown behaviour.
|
|
20
|
+
- **UX improvements** -- clearer error messages and
|
|
21
|
+
exit codes from the worker daemon.
|
|
22
|
+
|
|
23
|
+
## CLI
|
|
24
|
+
|
|
25
|
+
- **Optional `--db`** -- the `--db` flag is now
|
|
26
|
+
optional. kbdb walks up from the current directory
|
|
27
|
+
to find `.kbdb`. Set `KBDB_DB_DIR` as an
|
|
28
|
+
alternative. Resolution order: `--db` flag >
|
|
29
|
+
`KBDB_DB_DIR` env var > upward traversal from cwd.
|
|
30
|
+
- **Request timeout** -- per-request timeout via
|
|
31
|
+
`--timeout-ms` flag or `KBDB_DAEMON_TIMEOUT` env
|
|
32
|
+
var (default 30 000 ms).
|
|
33
|
+
- **Automatic retry** -- on timeout, the CLI
|
|
34
|
+
respawns the daemon and retries. Configurable via
|
|
35
|
+
`--retry` flag or `KBDB_RETRY` env var (default 5).
|
|
36
|
+
- **Breaking: `KBDB_DIR` renamed to `KBDB_DB_DIR`**
|
|
37
|
+
-- update MCP server configs and scripts that
|
|
38
|
+
reference the old variable name.
|
|
39
|
+
|
|
40
|
+
## MCP Server
|
|
41
|
+
|
|
42
|
+
- **Version reports package version** -- the MCP
|
|
43
|
+
`initialize` response now uses the `VERSION`
|
|
44
|
+
constant instead of a hardcoded `'0.1.0'` string.
|
|
45
|
+
Clients see the real server version.
|
|
46
|
+
- **Retry on timeout** -- tool calls and resource
|
|
47
|
+
reads automatically retry with a fresh daemon
|
|
48
|
+
connection when the worker times out.
|
|
49
|
+
|
|
50
|
+
## Packaging
|
|
51
|
+
|
|
52
|
+
- **Trimmed npm package** -- removed raw TypeScript
|
|
53
|
+
source files from the npm tarball. Package dropped
|
|
54
|
+
from 908 files / 6.7 MB to 545 files / 4.5 MB.
|
|
55
|
+
JSR still includes sources as required.
|
|
56
|
+
|
|
57
|
+
## Documentation
|
|
58
|
+
|
|
59
|
+
- **README accuracy audit** -- removed overstated
|
|
60
|
+
claims about reStructuredText/AsciiDoc parsing
|
|
61
|
+
and sync feature. Added npm/JSR/license badges
|
|
62
|
+
and a beta status line.
|
|
63
|
+
- **CLAUDE.md updated** -- corrected outdated
|
|
64
|
+
statement about the WASM-to-host bridge being
|
|
65
|
+
stubbed. The bridge is fully implemented and
|
|
66
|
+
tested.
|
|
67
|
+
- **Docs alignment** -- knowledge-base guide updated
|
|
68
|
+
to match README on supported file formats.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Upgrade
|
|
73
|
+
|
|
74
|
+
```sh
|
|
75
|
+
# Node.js
|
|
76
|
+
npm install -g @dikolab/kbdb@0.4.0
|
|
77
|
+
|
|
78
|
+
# Deno
|
|
79
|
+
deno install -Agf jsr:@dikolab/kbdb/cli
|
|
80
|
+
```
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
## Releases
|
|
4
4
|
|
|
5
|
+
- [0.4.0](0.4.0.md) -- Engine refactor, daemon reliability, publishing fixes
|
|
6
|
+
- [0.3.2](0.3.2.md) -- Docs alignment, hybrid search highlight, readability
|
|
5
7
|
- [0.3.1](0.3.1.md) -- MCP reliability fixes, 20 tools, zero test skips
|
|
6
8
|
- [0.3.0](0.3.0.md) -- Supersession, relaxed queries, export, tags, confidence
|
|
7
9
|
- [0.2.0](0.2.0.md) -- Recall, paginated search, reference graph
|
package/mod.ts
CHANGED
|
@@ -24,20 +24,38 @@
|
|
|
24
24
|
* ```
|
|
25
25
|
*/
|
|
26
26
|
|
|
27
|
+
/** Semantic version string matching `package.json`. */
|
|
27
28
|
export { version } from './src/shared/mod.ts';
|
|
28
29
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
export
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
30
|
+
/** Creates a connected worker client for the given database. */
|
|
31
|
+
export { createWorkerClient } from './src/shared/worker-client/index.ts';
|
|
32
|
+
|
|
33
|
+
/** Persistent client wrapping JSON-RPC calls to the daemon. */
|
|
34
|
+
export { WorkerClient } from './src/shared/worker-client/index.ts';
|
|
35
|
+
|
|
36
|
+
/** Resolves a parent directory to the `.kbdb` path inside it. */
|
|
37
|
+
export { resolveDbPath } from './src/shared/worker-client/index.ts';
|
|
38
|
+
|
|
39
|
+
/** Derives the 16-char hex context ID from an absolute path. */
|
|
40
|
+
export { computeContextId } from './src/shared/worker-client/index.ts';
|
|
41
|
+
|
|
42
|
+
/** Returns a cached client or creates a new one for the given path. */
|
|
43
|
+
export { getOrCreateClient } from './src/shared/worker-client/index.ts';
|
|
44
|
+
|
|
45
|
+
/** Options accepted by {@linkcode createWorkerClient}. */
|
|
46
|
+
export type { WorkerClientOptions } from './src/shared/worker-client/index.ts';
|
|
47
|
+
|
|
48
|
+
/** Parameters for a search query. */
|
|
49
|
+
export type { SearchParams } from './src/shared/worker-client/index.ts';
|
|
50
|
+
|
|
51
|
+
/** A single ranked result returned by search. */
|
|
52
|
+
export type { SearchResult } from './src/shared/worker-client/index.ts';
|
|
53
|
+
|
|
54
|
+
/** Raw section record stored on disk. */
|
|
55
|
+
export type { Section } from './src/shared/worker-client/index.ts';
|
|
56
|
+
|
|
57
|
+
/** Parameters for adding a new section. */
|
|
58
|
+
export type { AddSectionParams } from './src/shared/worker-client/index.ts';
|
|
59
|
+
|
|
60
|
+
/** Database status snapshot returned by `client.status()`. */
|
|
61
|
+
export type { StatusResult } from './src/shared/worker-client/index.ts';
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dikolab/kbdb",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "CLI tool and MCP server for a file-based knowledge base database",
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"description": "CLI tool and MCP server for a file-based knowledge base database -- index documents, search with ranked results, and recall context for AI agents",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -17,13 +17,15 @@
|
|
|
17
17
|
"license": "ISC",
|
|
18
18
|
"repository": {
|
|
19
19
|
"type": "git",
|
|
20
|
-
"url": "git
|
|
20
|
+
"url": "git+https://gitlab.com/tech-slaves/knowledge-base-db.git"
|
|
21
|
+
},
|
|
22
|
+
"homepage": "https://gitlab.com/tech-slaves/knowledge-base-db#readme",
|
|
23
|
+
"bugs": {
|
|
24
|
+
"url": "https://gitlab.com/tech-slaves/knowledge-base-db/-/issues"
|
|
21
25
|
},
|
|
22
26
|
"files": [
|
|
23
27
|
"dist/**/*",
|
|
24
28
|
"mod.ts",
|
|
25
|
-
"src/**/*",
|
|
26
|
-
"!src/**/*.spec.ts",
|
|
27
29
|
"LICENSE",
|
|
28
30
|
"README.md",
|
|
29
31
|
"docs/details/**/*.md",
|
|
@@ -37,26 +39,25 @@
|
|
|
37
39
|
"module": "./dist/mod.mjs",
|
|
38
40
|
"types": "./dist/mod.d.ts",
|
|
39
41
|
"bin": {
|
|
40
|
-
"kbdb": "./dist/cli.cjs"
|
|
41
|
-
"kbdb-worker": "./dist/kbdb-worker.cjs"
|
|
42
|
+
"kbdb": "./dist/cli.cjs"
|
|
42
43
|
},
|
|
43
44
|
"exports": {
|
|
44
45
|
".": {
|
|
45
|
-
"deno": "./mod.ts",
|
|
46
46
|
"types": "./dist/mod.d.ts",
|
|
47
|
+
"deno": "./mod.ts",
|
|
47
48
|
"import": "./dist/mod.mjs",
|
|
48
49
|
"require": "./dist/mod.cjs",
|
|
49
50
|
"default": "./dist/mod.mjs"
|
|
50
51
|
},
|
|
51
52
|
"./cli": {
|
|
53
|
+
"types": "./dist/cli.d.ts",
|
|
52
54
|
"deno": "./src/cli.ts",
|
|
53
|
-
"types": "./dist/src/cli.d.ts",
|
|
54
55
|
"import": "./dist/cli.mjs",
|
|
55
56
|
"default": "./dist/cli.mjs"
|
|
56
57
|
},
|
|
57
58
|
"./worker": {
|
|
59
|
+
"types": "./dist/worker.d.ts",
|
|
58
60
|
"deno": "./src/worker.ts",
|
|
59
|
-
"types": "./dist/src/worker.d.ts",
|
|
60
61
|
"import": "./dist/worker.mjs",
|
|
61
62
|
"default": "./dist/worker.mjs"
|
|
62
63
|
}
|
package/dist/chunk-JG2UCKLI.mjs
DELETED
|
@@ -1,95 +0,0 @@
|
|
|
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/hash/functions/compute-sha256.ts
|
|
60
|
-
async function computeSha256(input) {
|
|
61
|
-
const data = new TextEncoder().encode(input);
|
|
62
|
-
const hash = await crypto.subtle.digest("SHA-256", data);
|
|
63
|
-
const bytes = new Uint8Array(hash);
|
|
64
|
-
return Array.from(bytes).map((b) => b.toString(16).padStart(2, "0")).join("");
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
// src/shared/platform/functions/get-ipc-path.function.ts
|
|
68
|
-
import { join as join2 } from "node:path";
|
|
69
|
-
|
|
70
|
-
// src/shared/platform/functions/get-tmpdir.function.ts
|
|
71
|
-
import { tmpdir } from "node:os";
|
|
72
|
-
function getTmpdir() {
|
|
73
|
-
return tmpdir();
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
// src/shared/platform/functions/get-ipc-path.function.ts
|
|
77
|
-
function getIpcPath(ctx) {
|
|
78
|
-
if (process.platform === "win32") {
|
|
79
|
-
return `\\\\.\\pipe\\kbdb-${ctx}`;
|
|
80
|
-
}
|
|
81
|
-
return join2(getTmpdir(), `kbdb-${ctx}.sock`);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export {
|
|
85
|
-
detectRuntime,
|
|
86
|
-
getArgs,
|
|
87
|
-
resolveBaseDir,
|
|
88
|
-
isRemoteUrl,
|
|
89
|
-
joinPath,
|
|
90
|
-
resolveWorkerScript,
|
|
91
|
-
resolveWasmDir,
|
|
92
|
-
computeSha256,
|
|
93
|
-
getIpcPath
|
|
94
|
-
};
|
|
95
|
-
//# sourceMappingURL=chunk-JG2UCKLI.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
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/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", "/**\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": ";AAQO,SAAS,gBAAyB;AACtC,MAAI,OAAO,eAAe,eAAe,UAAU,YAAY;AAC5D,WAAO;AAAA,EACV;AACA,SAAO;AACV;;;ACLO,SAAS,UAAoB;AACjC,MAAI,cAAc,MAAM,QAAQ;AAC7B,UAAM,IAAI;AACV,UAAM,OAAO,EAAE,MAAM;AACrB,WAAO,MAAM,QAAQ,CAAC;AAAA,EACzB;AACA,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC9B;;;ACfA,SAAS,eAAe;AACxB,SAAS,qBAAqB;AAIvB,SAAS,iBACb,UACA,cACO;AACP,MAAI,aAAc,QAAO;AACzB,MAAI,SAAS,WAAW,OAAO;AAC5B,WAAO,QAAQ,cAAc,QAAQ,CAAC;AACzC,SAAO,QAAQ,QAAQ;AAC1B;AAEO,SAAS,eACb,UACA,cACQ;AACR,QAAM,YACH,OAAO,cAAc,cAChB,YACA,iBAAiB,UAAU,YAAY;AAC/C,SAAO,EAAE,WAAW,KAAK,QAAQ,IAAI,EAAE;AAC1C;;;ACxBA,SAAS,YAAY;AAEd,SAAS,YAAY,MAAuB;AAChD,SAAO,KAAK,WAAW,SAAS,KAAK,KAAK,WAAW,UAAU;AAClE;AAEO,SAAS,SAAS,SAAiB,UAA4B;AACnE,MAAI,YAAY,IAAI,GAAG;AACpB,UAAM,WAAW,KAAK,SAAS,GAAG,IAAI,KAAK;AAC3C,WAAO,OAAO,WAAW,SAAS,KAAK,GAAG;AAAA,EAC7C;AACA,SAAO,KAAK,MAAM,GAAG,QAAQ;AAChC;;;ACRO,SAAS,oBACb,WACA,SACO;AACP,MAAI,YAAY,QAAQ;AACrB,WAAO,SAAS,WAAW,WAAW;AAAA,EACzC;AACA,SAAO,SAAS,WAAW,iBAAiB;AAC/C;;;ACVO,SAAS,eAAe,WAA2B;AACvD,SAAO,SAAS,WAAW,MAAM;AACpC;;;ACKA,eAAsB,cAAc,OAAgC;AACjE,QAAM,OAAO,IAAI,YAAY,EAAE,OAAO,KAAK;AAC3C,QAAM,OAAO,MAAM,OAAO,OAAO,OAAO,WAAW,IAAI;AACvD,QAAM,QAAQ,IAAI,WAAW,IAAI;AACjC,SAAO,MAAM,KAAK,KAAK,EACnB,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EAC1C,KAAK,EAAE;AACd;;;AChBA,SAAS,QAAAA,aAAY;;;ACArB,SAAS,cAAc;AAKhB,SAAS,YAAoB;AACjC,SAAO,OAAO;AACjB;;;ADMO,SAAS,WAAW,KAAqB;AAC7C,MAAI,QAAQ,aAAa,SAAS;AAC/B,WAAO,qBAAqB,GAAG;AAAA,EAClC;AACA,SAAOC,MAAK,UAAU,GAAG,QAAQ,GAAG,OAAO;AAC9C;",
|
|
6
|
-
"names": ["join", "join"]
|
|
7
|
-
}
|
package/src/cli.ts
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module
|
|
3
|
-
*
|
|
4
|
-
* CLI and MCP server executable for kbdb. Provides the
|
|
5
|
-
* `kbdb` command with 18 subcommands for managing a
|
|
6
|
-
* file-based knowledge base, and an MCP server mode
|
|
7
|
-
* for AI agent integration.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import { getArgs, detectRuntime } from './shared/runtime/index.ts';
|
|
11
|
-
import {
|
|
12
|
-
resolveBaseDir,
|
|
13
|
-
resolveWorkerScript,
|
|
14
|
-
} from './shared/dir-resolver/index.ts';
|
|
15
|
-
import {
|
|
16
|
-
runCli,
|
|
17
|
-
isStdinTty,
|
|
18
|
-
promptUser,
|
|
19
|
-
findDb,
|
|
20
|
-
runInit,
|
|
21
|
-
} from './shared/cli/index.ts';
|
|
22
|
-
import type { CliDeps } from './shared/cli/index.ts';
|
|
23
|
-
import { createWorkerClient } from './shared/worker-client/index.ts';
|
|
24
|
-
import { createMcpServer } from './shared/mcp/index.ts';
|
|
25
|
-
|
|
26
|
-
const runtime = detectRuntime();
|
|
27
|
-
const baseDir = resolveBaseDir(import.meta.url, import.meta.dirname);
|
|
28
|
-
const workerScript = resolveWorkerScript(baseDir.scriptDir, runtime);
|
|
29
|
-
|
|
30
|
-
const deps: CliDeps = {
|
|
31
|
-
isStdinTty,
|
|
32
|
-
promptUser,
|
|
33
|
-
createWorkerClient: (opts) =>
|
|
34
|
-
createWorkerClient({ ...opts, workerScript }),
|
|
35
|
-
findDb,
|
|
36
|
-
runInit,
|
|
37
|
-
startMcpServer: async (contextPath) => {
|
|
38
|
-
const client = await createWorkerClient({
|
|
39
|
-
contextPath,
|
|
40
|
-
workerScript,
|
|
41
|
-
});
|
|
42
|
-
try {
|
|
43
|
-
const server = createMcpServer(client);
|
|
44
|
-
await server.listen();
|
|
45
|
-
} finally {
|
|
46
|
-
client.disconnect();
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
async function main(): Promise<void> {
|
|
52
|
-
const result = await runCli(getArgs(), deps);
|
|
53
|
-
if (result.output) {
|
|
54
|
-
// eslint-disable-next-line no-console
|
|
55
|
-
console.log(result.output);
|
|
56
|
-
}
|
|
57
|
-
if (result.error) {
|
|
58
|
-
// eslint-disable-next-line no-console
|
|
59
|
-
console.error(result.error);
|
|
60
|
-
}
|
|
61
|
-
if (result.exitCode !== 0) {
|
|
62
|
-
process.exitCode = result.exitCode;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
main().catch((err: unknown) => {
|
|
67
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
68
|
-
// eslint-disable-next-line no-console
|
|
69
|
-
console.error(`error: ${msg}`);
|
|
70
|
-
process.exitCode = 1;
|
|
71
|
-
});
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import type { AutoCaptureConfig } from '../typings/auto-capture-config.interface.ts';
|
|
2
|
-
import type { AutoCaptureState } from '../typings/auto-capture-state.interface.ts';
|
|
3
|
-
import type { AutoCaptureTrigger } from '../typings/auto-capture-trigger.interface.ts';
|
|
4
|
-
import { evaluateTrigger } from '../functions/evaluate-trigger.function.ts';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Controls the auto-capture lifecycle.
|
|
8
|
-
*
|
|
9
|
-
* Tracks tool call counts, evaluates trigger conditions, and
|
|
10
|
-
* advances session state when a capture fires. Reset state on
|
|
11
|
-
* disconnect or session end via `reset()`.
|
|
12
|
-
*/
|
|
13
|
-
export class AutoCaptureController {
|
|
14
|
-
private toolCallsSinceLastCapture = 0;
|
|
15
|
-
private lastCaptureTimestamp = 0;
|
|
16
|
-
private totalCapturesThisSession = 0;
|
|
17
|
-
private readonly config: AutoCaptureConfig;
|
|
18
|
-
|
|
19
|
-
/** @param config - the auto-capture configuration to use */
|
|
20
|
-
constructor(config: AutoCaptureConfig) {
|
|
21
|
-
this.config = config;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/** Record one tool call for trigger counting. */
|
|
25
|
-
recordToolCall(): void {
|
|
26
|
-
this.toolCallsSinceLastCapture += 1;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Evaluates the current state against the trigger criteria.
|
|
31
|
-
*
|
|
32
|
-
* When the trigger fires, advances the session counters so the
|
|
33
|
-
* next evaluation respects rate limiting and the session cap.
|
|
34
|
-
*
|
|
35
|
-
* @returns the trigger decision with a human-readable reason
|
|
36
|
-
*/
|
|
37
|
-
evaluate(): AutoCaptureTrigger {
|
|
38
|
-
const trigger = evaluateTrigger(this.config, this.state());
|
|
39
|
-
if (trigger.shouldCapture) {
|
|
40
|
-
this.totalCapturesThisSession += 1;
|
|
41
|
-
this.lastCaptureTimestamp = Date.now();
|
|
42
|
-
this.toolCallsSinceLastCapture = 0;
|
|
43
|
-
}
|
|
44
|
-
return trigger;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/** Reset all counters, e.g. on client disconnect. */
|
|
48
|
-
reset(): void {
|
|
49
|
-
this.toolCallsSinceLastCapture = 0;
|
|
50
|
-
this.lastCaptureTimestamp = 0;
|
|
51
|
-
this.totalCapturesThisSession = 0;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/** Returns a snapshot of the current controller state. */
|
|
55
|
-
state(): AutoCaptureState {
|
|
56
|
-
return {
|
|
57
|
-
toolCallsSinceLastCapture: this.toolCallsSinceLastCapture,
|
|
58
|
-
lastCaptureTimestamp: this.lastCaptureTimestamp,
|
|
59
|
-
totalCapturesThisSession: this.totalCapturesThisSession,
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
}
|