@dikolab/kbdb 0.2.2 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -31
- package/dist/bench/constants/corpus-defaults.constant.d.ts +3 -0
- package/dist/bench/functions/format-report.function.d.ts +11 -0
- package/dist/bench/functions/generate-corpus.function.d.ts +12 -0
- package/dist/bench/functions/measure-operation.function.d.ts +14 -0
- package/dist/bench/functions/seeded-rng.function.d.ts +11 -0
- package/dist/bench/functions/zipf-word.function.d.ts +13 -0
- package/dist/bench/index.d.ts +10 -0
- package/dist/bench/typings/bench-result.interface.d.ts +11 -0
- package/dist/bench/typings/bench-suite-result.interface.d.ts +10 -0
- package/dist/bench/typings/corpus-config.interface.d.ts +11 -0
- package/dist/bench/typings/corpus-section.interface.d.ts +9 -0
- package/dist/cli.cjs +523 -80
- package/dist/cli.cjs.map +4 -4
- package/dist/cli.mjs +515 -72
- package/dist/cli.mjs.map +4 -4
- package/dist/kbdb-worker.cjs +395 -60
- package/dist/kbdb-worker.cjs.map +4 -4
- package/dist/mod.cjs +17 -0
- package/dist/mod.cjs.map +2 -2
- package/dist/mod.mjs +17 -0
- package/dist/mod.mjs.map +2 -2
- package/dist/src/shared/auto-capture/classes/auto-capture-controller.class.d.ts +33 -0
- package/dist/src/shared/auto-capture/constants/auto-capture-defaults.constant.d.ts +8 -0
- package/dist/src/shared/auto-capture/functions/build-capture-prompt.function.d.ts +11 -0
- package/dist/src/shared/auto-capture/functions/evaluate-trigger.function.d.ts +12 -0
- package/dist/src/shared/auto-capture/index.d.ts +7 -0
- package/dist/src/shared/auto-capture/typings/auto-capture-config.interface.d.ts +13 -0
- package/dist/src/shared/auto-capture/typings/auto-capture-state.interface.d.ts +13 -0
- package/dist/src/shared/auto-capture/typings/auto-capture-trigger.interface.d.ts +7 -0
- package/dist/src/shared/cli/constants/global-help.constant.d.ts +8 -0
- package/dist/src/shared/cli/constants/leaf-help.constant.d.ts +7 -0
- package/dist/src/shared/cli/constants/memory-protocol-body.constant.d.ts +7 -0
- package/dist/src/shared/cli/constants/query-guidance-body.constant.d.ts +7 -0
- package/dist/src/shared/cli/constants/subcommand-help.constant.d.ts +8 -0
- package/dist/src/shared/cli/functions/collect-files.function.d.ts +13 -0
- package/dist/src/shared/cli/functions/compute-section-kbid.function.d.ts +15 -0
- package/dist/src/shared/cli/functions/dispatch-command.function.d.ts +3 -1
- package/dist/src/shared/cli/functions/format-mcp-output.function.d.ts +9 -0
- package/dist/src/shared/cli/functions/format-text-output.function.d.ts +9 -0
- package/dist/src/shared/cli/functions/generate-group-help.function.d.ts +11 -0
- package/dist/src/shared/cli/functions/handle-data-command.function.d.ts +16 -0
- package/dist/src/shared/cli/functions/handle-mcp.function.d.ts +15 -0
- package/dist/src/shared/cli/functions/handle-migrate.function.d.ts +15 -0
- package/dist/src/shared/cli/functions/hydrate-search-previews.function.d.ts +14 -0
- package/dist/src/shared/cli/functions/install-default-skills.function.d.ts +12 -0
- package/dist/src/shared/cli/functions/resolve-skill-names.function.d.ts +16 -0
- package/dist/src/shared/cli/functions/run-check.function.d.ts +47 -5
- package/dist/src/shared/cli/functions/run-export.function.d.ts +34 -0
- package/dist/src/shared/cli/functions/run-gc.function.d.ts +6 -0
- package/dist/src/shared/cli/functions/run-learn.function.d.ts +35 -6
- package/dist/src/shared/cli/functions/run-recall.function.d.ts +45 -0
- package/dist/src/shared/cli/functions/run-search.function.d.ts +53 -15
- package/dist/src/shared/cli/functions/version-gate.function.d.ts +15 -0
- package/dist/src/shared/cli/functions/wrap-command.function.d.ts +15 -0
- package/dist/src/shared/cli/index.d.ts +4 -0
- package/dist/src/shared/cli/typings/agent-create-client.interface.d.ts +42 -0
- package/dist/src/shared/cli/typings/agent-get-client.interface.d.ts +36 -0
- package/dist/src/shared/cli/typings/check-client.interface.d.ts +58 -0
- package/dist/src/shared/cli/typings/cli-deps.interface.d.ts +48 -0
- package/dist/src/shared/cli/typings/cli-options.interface.d.ts +15 -0
- package/dist/src/shared/cli/typings/disconnectable-client.interface.d.ts +26 -0
- package/dist/src/shared/cli/typings/dispatch-client.type.d.ts +27 -0
- package/dist/src/shared/cli/typings/learn-client.interface.d.ts +52 -0
- package/dist/src/shared/cli/typings/learn-io.interface.d.ts +5 -0
- package/dist/src/shared/cli/typings/learn-result.model.d.ts +19 -0
- package/dist/src/shared/cli/typings/search-client.interface.d.ts +71 -0
- package/dist/src/shared/cli/typings/search-display.model.d.ts +18 -0
- package/dist/src/shared/embedding/classes/null-embedding-provider.class.d.ts +20 -0
- package/dist/src/shared/embedding/constants/near-duplicate-thresholds.constant.d.ts +15 -0
- package/dist/src/shared/embedding/functions/build-vector-index.function.d.ts +14 -0
- package/dist/src/shared/embedding/functions/cosine-similarity.function.d.ts +10 -0
- package/dist/src/shared/embedding/functions/detect-near-duplicates.function.d.ts +18 -0
- package/dist/src/shared/embedding/functions/jaccard-coefficient.function.d.ts +9 -0
- package/dist/src/shared/embedding/functions/read-vector-index-meta.function.d.ts +10 -0
- package/dist/src/shared/embedding/functions/rrf-fuse.function.d.ts +14 -0
- package/dist/src/shared/embedding/functions/search-vectors.function.d.ts +14 -0
- package/dist/src/shared/embedding/index.d.ts +16 -0
- package/dist/src/shared/embedding/typings/embedding-config.interface.d.ts +20 -0
- package/dist/src/shared/embedding/typings/embedding-provider.interface.d.ts +23 -0
- package/dist/src/shared/embedding/typings/near-duplicate-candidate.model.d.ts +23 -0
- package/dist/src/shared/embedding/typings/near-duplicate-result.model.d.ts +24 -0
- package/dist/src/shared/embedding/typings/vector-index-entry.model.d.ts +12 -0
- package/dist/src/shared/embedding/typings/vector-index-meta.model.d.ts +11 -0
- package/dist/src/shared/embedding/typings/vector-search-result.model.d.ts +7 -0
- package/dist/src/shared/mcp/classes/mcp-server.class.d.ts +8 -0
- package/dist/src/shared/mcp/constants/tool-agent-create.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-agent-delete.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-agent-get.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-agent-list.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-auto-capture-review.constant.d.ts +8 -0
- package/dist/src/shared/mcp/constants/tool-check.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-content.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-export.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-gc.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-learn.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-rebuild.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-recall.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-retrieve.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-search.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-skill-delete.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-skill-get.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-skill-learn.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-skill-list.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-status.constant.d.ts +3 -0
- package/dist/src/shared/mcp/constants/tool-unlearn.constant.d.ts +3 -0
- package/dist/src/shared/mcp/functions/as-boolean-or-undefined.function.d.ts +7 -0
- package/dist/src/shared/mcp/functions/as-string-array-or-undefined.function.d.ts +7 -0
- package/dist/src/shared/mcp/functions/as-string-array.function.d.ts +7 -0
- package/dist/src/shared/mcp/functions/as-string.function.d.ts +8 -0
- package/dist/src/shared/mcp/functions/build-skills-text.function.d.ts +18 -0
- package/dist/src/shared/mcp/functions/handle-agent-prompt.function.d.ts +14 -0
- package/dist/src/shared/mcp/functions/handle-mcp-request.function.d.ts +14 -0
- package/dist/src/shared/mcp/functions/handle-prompt-get.function.d.ts +4 -3
- package/dist/src/shared/mcp/functions/handle-skill-prompt.function.d.ts +16 -0
- package/dist/src/shared/mcp/functions/handle-tool-auto-capture-review.function.d.ts +12 -0
- package/dist/src/shared/mcp/functions/handle-tool-check.function.d.ts +11 -0
- package/dist/src/shared/mcp/functions/handle-tool-content.function.d.ts +12 -0
- package/dist/src/shared/mcp/functions/handle-tool-export.function.d.ts +12 -0
- package/dist/src/shared/mcp/functions/handle-tool-gc.function.d.ts +11 -0
- package/dist/src/shared/mcp/functions/handle-tool-learn.function.d.ts +12 -0
- package/dist/src/shared/mcp/functions/handle-tool-rebuild.function.d.ts +11 -0
- package/dist/src/shared/mcp/functions/handle-tool-retrieve.function.d.ts +12 -0
- package/dist/src/shared/mcp/functions/handle-tool-search.function.d.ts +13 -0
- package/dist/src/shared/mcp/functions/handle-tool-skill-delete.function.d.ts +12 -0
- package/dist/src/shared/mcp/functions/handle-tool-skill-get.function.d.ts +13 -0
- package/dist/src/shared/mcp/functions/handle-tool-skill-learn.function.d.ts +13 -0
- package/dist/src/shared/mcp/functions/handle-tool-skill-list.function.d.ts +11 -0
- package/dist/src/shared/mcp/functions/handle-tool-status.function.d.ts +11 -0
- package/dist/src/shared/mcp/functions/handle-tool-unlearn.function.d.ts +12 -0
- package/dist/src/shared/mcp/functions/parse-agent-meta.function.d.ts +14 -0
- package/dist/src/shared/mcp/functions/parse-skill-arguments.function.d.ts +11 -0
- package/dist/src/shared/mcp/functions/read-agent-meta.function.d.ts +17 -0
- package/dist/src/shared/mcp/functions/resolve-skill-refs.function.d.ts +23 -0
- package/dist/src/shared/mcp/functions/run-startup-health-check.function.d.ts +14 -0
- package/dist/src/shared/mcp/typings/mcp-capabilities.interface.d.ts +16 -0
- package/dist/src/shared/mcp/typings/mcp-client.interface.d.ts +45 -0
- package/dist/src/shared/mcp/typings/mcp-completion.interface.d.ts +43 -0
- package/dist/src/shared/mcp/typings/mcp-content-result.model.d.ts +9 -0
- package/dist/src/shared/mcp/typings/mcp-export-result.model.d.ts +11 -0
- package/dist/src/shared/mcp/typings/mcp-gc-result.model.d.ts +15 -0
- package/dist/src/shared/mcp/typings/mcp-integrity-check-result.model.d.ts +16 -0
- package/dist/src/shared/mcp/typings/mcp-integrity-error.model.d.ts +9 -0
- package/dist/src/shared/mcp/typings/mcp-notification.interface.d.ts +9 -0
- package/dist/src/shared/mcp/typings/mcp-rebuild-result.model.d.ts +9 -0
- package/dist/src/shared/mcp/typings/mcp-request.interface.d.ts +11 -0
- package/dist/src/shared/mcp/typings/mcp-resource-result.interface.d.ts +12 -0
- package/dist/src/shared/mcp/typings/mcp-resource-template.interface.d.ts +11 -0
- package/dist/src/shared/mcp/typings/mcp-response.interface.d.ts +18 -0
- package/dist/src/shared/mcp/typings/mcp-server-info.interface.d.ts +7 -0
- package/dist/src/shared/mcp/typings/mcp-server-state.interface.d.ts +16 -0
- package/dist/src/shared/mcp/typings/mcp-tool-annotations.interface.d.ts +32 -0
- package/dist/src/shared/mcp/typings/mcp-tool-definition.interface.d.ts +15 -0
- package/dist/src/shared/mcp/typings/mcp-tool-result.interface.d.ts +19 -0
- package/dist/src/shared/mcp/typings/mcp-worker-client.interface.d.ts +220 -0
- package/dist/src/shared/mcp/typings/tool-call-result.model.d.ts +17 -0
- package/dist/src/shared/sync/functions/build-import-report.function.d.ts +18 -0
- package/dist/src/shared/sync/functions/parse-export-entry.function.d.ts +11 -0
- package/dist/src/shared/sync/functions/resolve-conflict.function.d.ts +13 -0
- package/dist/src/shared/sync/functions/serialize-export-entry.function.d.ts +8 -0
- package/dist/src/shared/sync/index.d.ts +9 -0
- package/dist/src/shared/sync/typings/conflict-resolution.type.d.ts +8 -0
- package/dist/src/shared/sync/typings/export-entry.interface.d.ts +13 -0
- package/dist/src/shared/sync/typings/export-options.interface.d.ts +9 -0
- package/dist/src/shared/sync/typings/import-options.interface.d.ts +7 -0
- package/dist/src/shared/sync/typings/import-report.interface.d.ts +15 -0
- package/dist/src/shared/wasm-codec/functions/decode-add-section-result.function.d.ts +48 -0
- package/dist/src/shared/wasm-codec/functions/decode-one-recall-result.function.d.ts +14 -0
- package/dist/src/shared/wasm-codec/functions/decode-option-string.function.d.ts +12 -0
- package/dist/src/shared/wasm-codec/functions/decode-recall-document.function.d.ts +14 -0
- package/dist/src/shared/wasm-codec/functions/decode-recall-reference.function.d.ts +14 -0
- package/dist/src/shared/wasm-codec/functions/decode-recall-sibling.function.d.ts +13 -0
- package/dist/src/shared/wasm-codec/functions/decode-scored-results.function.d.ts +58 -0
- package/dist/src/shared/wasm-codec/functions/decode-section-match.function.d.ts +15 -0
- package/dist/src/shared/wasm-codec/functions/decode-section-record-trailing.function.d.ts +14 -0
- package/dist/src/shared/wasm-codec/functions/decode-section-record.function.d.ts +14 -0
- package/dist/src/shared/wasm-codec/functions/decode-section-records.function.d.ts +33 -0
- package/dist/src/shared/wasm-codec/functions/decode-section-type.function.d.ts +13 -0
- package/dist/src/shared/wasm-codec/functions/decode-wasm-list.function.d.ts +17 -0
- package/dist/src/shared/wasm-codec/functions/encode-add-section-params.function.d.ts +52 -0
- package/dist/src/shared/wasm-codec/index.d.ts +2 -0
- package/dist/src/shared/wasm-codec/typings/add-section-input.model.d.ts +45 -0
- package/dist/src/shared/wasm-codec/typings/add-section-result.model.d.ts +27 -0
- package/dist/src/shared/wasm-codec/typings/document-manifest.model.d.ts +19 -0
- package/dist/src/shared/wasm-codec/typings/document-section.model.d.ts +12 -0
- package/dist/src/shared/wasm-codec/typings/item-decoder.type.d.ts +6 -0
- package/dist/src/shared/wasm-codec/typings/near-duplicate.model.d.ts +16 -0
- package/dist/src/shared/wasm-codec/typings/paged-search-result.model.d.ts +21 -0
- package/dist/src/shared/wasm-codec/typings/section-match.model.d.ts +31 -0
- package/dist/src/shared/wasm-codec/typings/section-record-trailing.model.d.ts +38 -0
- package/dist/src/shared/wasm-codec/typings/section-record.model.d.ts +66 -0
- package/dist/src/shared/wasm-codec/typings/section-type-result.model.d.ts +12 -0
- package/dist/src/shared/worker-client/classes/worker-client.class.d.ts +16 -0
- package/dist/src/shared/worker-client/functions/handle-ipc-data.function.d.ts +16 -0
- package/dist/src/shared/worker-client/functions/send-ipc-request.function.d.ts +19 -0
- package/dist/src/shared/worker-client/index.d.ts +1 -1
- package/dist/src/shared/worker-client/typings/add-section-result.model.d.ts +31 -15
- package/dist/src/shared/worker-client/typings/export-result.model.d.ts +14 -0
- package/dist/src/shared/worker-client/typings/gc-result.model.d.ts +6 -0
- package/dist/src/shared/worker-client/typings/json-rpc-response.interface.d.ts +16 -0
- package/dist/src/shared/worker-client/typings/pending-call.interface.d.ts +7 -0
- package/dist/src/shared/worker-client/typings/recall-document.model.d.ts +16 -0
- package/dist/src/shared/worker-client/typings/recall-params.model.d.ts +15 -0
- package/dist/src/shared/worker-client/typings/recall-reference.model.d.ts +32 -0
- package/dist/src/shared/worker-client/typings/recall-sibling.model.d.ts +11 -0
- package/dist/src/shared/worker-client/typings/recall-single-result.model.d.ts +40 -0
- package/dist/src/shared/worker-client/typings/search-result.model.d.ts +12 -0
- package/dist/src/shared/worker-client/typings/section.model.d.ts +16 -0
- package/dist/src/shared/worker-daemon/classes/ipc-error.class.d.ts +17 -0
- package/dist/src/shared/worker-daemon/classes/worker-daemon.class.d.ts +35 -0
- package/dist/src/shared/worker-daemon/constants/wasm-method-map.constant.d.ts +16 -0
- package/dist/src/shared/worker-daemon/functions/build-ipc-error-response.function.d.ts +9 -0
- package/dist/src/shared/worker-daemon/functions/check-catalog-version.function.d.ts +9 -0
- package/dist/src/shared/worker-daemon/functions/check-preconditions.function.d.ts +10 -0
- package/dist/src/shared/worker-daemon/functions/detect-stale-pid.function.d.ts +15 -0
- package/dist/src/shared/worker-daemon/functions/dispatch-request.function.d.ts +35 -0
- package/dist/src/shared/worker-daemon/functions/handle-check-version.function.d.ts +23 -0
- package/dist/src/shared/worker-daemon/functions/handle-config-method.function.d.ts +11 -0
- package/dist/src/shared/worker-daemon/functions/handle-read-ops.function.d.ts +52 -0
- package/dist/src/shared/worker-daemon/functions/handle-write-ops.function.d.ts +44 -0
- package/dist/src/shared/worker-daemon/functions/parse-auto-capture-section.function.d.ts +14 -0
- package/dist/src/shared/worker-daemon/functions/parse-catalog-version.function.d.ts +10 -0
- package/dist/src/shared/worker-daemon/functions/parse-embedding-section.function.d.ts +13 -0
- package/dist/src/shared/worker-daemon/functions/parse-worker-toml.function.d.ts +11 -0
- package/dist/src/shared/worker-daemon/functions/run-startup-integrity-check.function.d.ts +18 -0
- package/dist/src/shared/worker-daemon/functions/scan-near-duplicates.function.d.ts +21 -0
- package/dist/src/shared/worker-daemon/functions/wasm-bridge.function.d.ts +51 -0
- package/dist/src/shared/worker-daemon/functions/wasm-memory-helpers.function.d.ts +22 -0
- package/dist/src/shared/worker-daemon/functions/write-lock.function.d.ts +32 -0
- package/dist/src/shared/worker-daemon/typings/allocator-ref.interface.d.ts +16 -0
- package/dist/src/shared/worker-daemon/typings/daemon-config.interface.d.ts +6 -0
- package/dist/src/shared/worker-daemon/typings/fs-adapter.interface.d.ts +22 -0
- package/dist/src/shared/worker-daemon/typings/handler-context.interface.d.ts +18 -0
- package/dist/src/shared/worker-daemon/typings/memory-ref.interface.d.ts +13 -0
- package/dist/src/shared/worker-daemon/typings/wasm-fn.type.d.ts +2 -0
- package/dist/src/shared/worker-daemon/typings/write-lock.interface.d.ts +15 -0
- package/dist/wasm/fs-database/kbdb_fs_database.d.ts +22 -1
- package/dist/wasm/fs-database/kbdb_fs_database.js +28 -1
- package/dist/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
- package/dist/wasm/fs-database/kbdb_fs_database_bg.wasm.d.ts +1 -0
- package/dist/wasm/kb-worker/kbdb_worker.d.ts +48 -1
- package/dist/wasm/kb-worker/kbdb_worker.js +60 -1
- package/dist/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
- package/dist/wasm/kb-worker/kbdb_worker_bg.wasm.d.ts +2 -0
- package/dist/wasm/query-parser/kbdb_query_parser_bg.wasm +0 -0
- package/dist/worker.mjs +396 -60
- package/dist/worker.mjs.map +4 -4
- package/docs/details/cli.md +102 -15
- package/docs/details/library-api.md +55 -6
- package/docs/details/mcp-server.md +10 -4
- package/docs/details/search-and-ranking.md +63 -5
- package/docs/details/storage.md +2 -0
- package/docs/goals/auto-capture.md +378 -0
- package/docs/goals/benchmarking.md +296 -0
- package/docs/goals/cli.md +255 -14
- package/docs/goals/concurrency.md +259 -0
- package/docs/goals/database.md +244 -17
- package/docs/goals/document.md +1 -1
- package/docs/goals/hybrid-search.md +436 -0
- package/docs/goals/mcp.md +83 -14
- package/docs/goals/query-parser.md +98 -4
- package/docs/goals/query-result.md +177 -10
- package/docs/goals/semantic-dedup.md +229 -0
- package/docs/goals/skills.md +72 -0
- package/docs/goals/sync.md +217 -0
- package/docs/goals/worker-daemon.md +54 -7
- package/docs/modules/rust/fs-database/functions/integrity.md +11 -0
- package/docs/modules/rust/fs-database/functions/section.md +23 -6
- package/docs/modules/rust/fs-database/indexes/vectors.md +110 -0
- package/docs/modules/rust/fs-database/module.md +1 -0
- package/docs/modules/rust/fs-database/types/section.md +27 -1
- package/docs/modules/rust/overview.md +2 -1
- package/docs/modules/rust/query-parser/functions/module.md +2 -2
- package/docs/modules/rust/query-parser/functions/pipeline.md +44 -6
- package/docs/modules/rust/query-parser/module.md +5 -4
- package/docs/modules/rust/query-parser/types/keyphrase.md +11 -0
- package/docs/modules/rust/query-parser/types/module.md +3 -3
- package/docs/modules/typescript/shared/auto-capture/module.md +73 -0
- package/docs/modules/typescript/shared/cli/functions.md +68 -3
- package/docs/modules/typescript/shared/embedding/functions.md +94 -0
- package/docs/modules/typescript/shared/embedding/module.md +71 -0
- package/docs/modules/typescript/shared/embedding/typings.md +122 -0
- package/docs/overview.md +148 -166
- package/docs/release-notes/0.2.0.md +3 -3
- package/docs/release-notes/0.3.0.md +89 -0
- package/docs/release-notes/0.3.1.md +111 -0
- package/docs/release-notes/README.md +2 -0
- package/package.json +1 -1
- package/src/shared/auto-capture/classes/auto-capture-controller.class.ts +62 -0
- package/src/shared/auto-capture/constants/auto-capture-defaults.constant.ts +15 -0
- package/src/shared/auto-capture/functions/build-capture-prompt.function.ts +27 -0
- package/src/shared/auto-capture/functions/evaluate-trigger.function.ts +50 -0
- package/src/shared/auto-capture/index.ts +7 -0
- package/src/shared/auto-capture/typings/auto-capture-config.interface.ts +13 -0
- package/src/shared/auto-capture/typings/auto-capture-state.interface.ts +13 -0
- package/src/shared/auto-capture/typings/auto-capture-trigger.interface.ts +7 -0
- package/src/shared/cli/constants/global-help.constant.ts +73 -0
- package/src/shared/cli/constants/leaf-help.constant.ts +219 -0
- package/src/shared/cli/constants/memory-protocol-body.constant.ts +39 -0
- package/src/shared/cli/constants/query-guidance-body.constant.ts +37 -0
- package/src/shared/cli/constants/subcommand-help.constant.ts +195 -0
- package/src/shared/cli/functions/collect-files.function.ts +55 -0
- package/src/shared/cli/functions/compute-section-kbid.function.ts +49 -0
- package/src/shared/cli/functions/dispatch-command.function.ts +53 -1
- package/src/shared/cli/functions/format-mcp-output.function.ts +41 -0
- package/src/shared/cli/functions/format-output.function.ts +36 -12
- package/src/shared/cli/functions/format-text-output.function.ts +42 -0
- package/src/shared/cli/functions/generate-group-help.function.ts +41 -0
- package/src/shared/cli/functions/generate-help.function.ts +56 -1
- package/src/shared/cli/functions/handle-data-command.function.ts +67 -0
- package/src/shared/cli/functions/handle-mcp.function.ts +56 -0
- package/src/shared/cli/functions/handle-migrate.function.ts +64 -0
- package/src/shared/cli/functions/hydrate-search-previews.function.ts +29 -0
- package/src/shared/cli/functions/install-default-skills.function.ts +296 -0
- package/src/shared/cli/functions/parse-args.function.ts +16 -0
- package/src/shared/cli/functions/resolve-skill-names.function.ts +43 -0
- package/src/shared/cli/functions/run-check.function.ts +87 -6
- package/src/shared/cli/functions/run-export.function.ts +40 -0
- package/src/shared/cli/functions/run-gc.function.ts +6 -0
- package/src/shared/cli/functions/run-init.function.ts +2 -0
- package/src/shared/cli/functions/run-learn.function.ts +68 -16
- package/src/shared/cli/functions/run-recall.function.ts +66 -0
- package/src/shared/cli/functions/run-search.function.ts +60 -15
- package/src/shared/cli/functions/version-gate.function.ts +44 -0
- package/src/shared/cli/functions/wrap-command.function.ts +34 -0
- package/src/shared/cli/index.ts +4 -0
- package/src/shared/cli/typings/agent-create-client.interface.ts +47 -0
- package/src/shared/cli/typings/agent-get-client.interface.ts +39 -0
- package/src/shared/cli/typings/check-client.interface.ts +66 -0
- package/src/shared/cli/typings/cli-deps.interface.ts +54 -0
- package/src/shared/cli/typings/cli-options.interface.ts +15 -0
- package/src/shared/cli/typings/disconnectable-client.interface.ts +29 -0
- package/src/shared/cli/typings/dispatch-client.type.ts +46 -0
- package/src/shared/cli/typings/learn-client.interface.ts +53 -0
- package/src/shared/cli/typings/learn-io.interface.ts +5 -0
- package/src/shared/cli/typings/learn-result.model.ts +16 -0
- package/src/shared/cli/typings/search-client.interface.ts +73 -0
- package/src/shared/cli/typings/search-display.model.ts +18 -0
- package/src/shared/embedding/classes/null-embedding-provider.class.ts +29 -0
- package/src/shared/embedding/constants/near-duplicate-thresholds.constant.ts +17 -0
- package/src/shared/embedding/functions/build-vector-index.function.ts +79 -0
- package/src/shared/embedding/functions/cosine-similarity.function.ts +31 -0
- package/src/shared/embedding/functions/detect-near-duplicates.function.ts +69 -0
- package/src/shared/embedding/functions/jaccard-coefficient.function.ts +26 -0
- package/src/shared/embedding/functions/read-vector-index-meta.function.ts +44 -0
- package/src/shared/embedding/functions/rrf-fuse.function.ts +33 -0
- package/src/shared/embedding/functions/search-vectors.function.ts +59 -0
- package/src/shared/embedding/index.ts +20 -0
- package/src/shared/embedding/typings/embedding-config.interface.ts +23 -0
- package/src/shared/embedding/typings/embedding-provider.interface.ts +25 -0
- package/src/shared/embedding/typings/near-duplicate-candidate.model.ts +25 -0
- package/src/shared/embedding/typings/near-duplicate-result.model.ts +26 -0
- package/src/shared/embedding/typings/vector-index-entry.model.ts +13 -0
- package/src/shared/embedding/typings/vector-index-meta.model.ts +14 -0
- package/src/shared/embedding/typings/vector-search-result.model.ts +8 -0
- package/src/shared/mcp/classes/mcp-server.class.ts +36 -4
- package/src/shared/mcp/constants/tool-agent-create.constant.ts +39 -0
- package/src/shared/mcp/constants/tool-agent-delete.constant.ts +26 -0
- package/src/shared/mcp/constants/tool-agent-get.constant.ts +24 -0
- package/src/shared/mcp/constants/tool-agent-list.constant.ts +18 -0
- package/src/shared/mcp/constants/tool-auto-capture-review.constant.ts +32 -0
- package/src/shared/mcp/constants/tool-check.constant.ts +21 -0
- package/src/shared/mcp/constants/tool-content.constant.ts +29 -0
- package/src/shared/mcp/constants/tool-export.constant.ts +27 -0
- package/src/shared/mcp/constants/tool-gc.constant.ts +21 -0
- package/src/shared/mcp/constants/tool-learn.constant.ts +58 -0
- package/src/shared/mcp/constants/tool-rebuild.constant.ts +21 -0
- package/src/shared/mcp/constants/tool-recall.constant.ts +36 -0
- package/src/shared/mcp/constants/tool-retrieve.constant.ts +31 -0
- package/src/shared/mcp/constants/tool-search.constant.ts +51 -0
- package/src/shared/mcp/constants/tool-skill-delete.constant.ts +24 -0
- package/src/shared/mcp/constants/tool-skill-get.constant.ts +27 -0
- package/src/shared/mcp/constants/tool-skill-learn.constant.ts +37 -0
- package/src/shared/mcp/constants/tool-skill-list.constant.ts +18 -0
- package/src/shared/mcp/constants/tool-status.constant.ts +20 -0
- package/src/shared/mcp/constants/tool-unlearn.constant.ts +25 -0
- package/src/shared/mcp/functions/as-boolean-or-undefined.function.ts +11 -0
- package/src/shared/mcp/functions/as-string-array-or-undefined.function.ts +17 -0
- package/src/shared/mcp/functions/as-string-array.function.ts +15 -0
- package/src/shared/mcp/functions/as-string.function.ts +10 -0
- package/src/shared/mcp/functions/build-skills-text.function.ts +43 -0
- package/src/shared/mcp/functions/create-tool-definitions.function.ts +74 -5
- package/src/shared/mcp/functions/handle-agent-create.function.ts +1 -1
- package/src/shared/mcp/functions/handle-agent-prompt.function.ts +68 -0
- package/src/shared/mcp/functions/handle-mcp-request.function.ts +202 -0
- package/src/shared/mcp/functions/handle-prompt-get.function.ts +18 -12
- package/src/shared/mcp/functions/handle-skill-prompt.function.ts +44 -0
- package/src/shared/mcp/functions/handle-tool-auto-capture-review.function.ts +24 -0
- package/src/shared/mcp/functions/handle-tool-call.function.ts +88 -2
- package/src/shared/mcp/functions/handle-tool-check.function.ts +21 -0
- package/src/shared/mcp/functions/handle-tool-content.function.ts +23 -0
- package/src/shared/mcp/functions/handle-tool-export.function.ts +25 -0
- package/src/shared/mcp/functions/handle-tool-gc.function.ts +21 -0
- package/src/shared/mcp/functions/handle-tool-learn.function.ts +69 -0
- package/src/shared/mcp/functions/handle-tool-rebuild.function.ts +21 -0
- package/src/shared/mcp/functions/handle-tool-retrieve.function.ts +40 -0
- package/src/shared/mcp/functions/handle-tool-search.function.ts +47 -0
- package/src/shared/mcp/functions/handle-tool-skill-delete.function.ts +34 -0
- package/src/shared/mcp/functions/handle-tool-skill-get.function.ts +59 -0
- package/src/shared/mcp/functions/handle-tool-skill-learn.function.ts +61 -0
- package/src/shared/mcp/functions/handle-tool-skill-list.function.ts +39 -0
- package/src/shared/mcp/functions/handle-tool-status.function.ts +21 -0
- package/src/shared/mcp/functions/handle-tool-unlearn.function.ts +24 -0
- package/src/shared/mcp/functions/parse-agent-meta.function.ts +27 -0
- package/src/shared/mcp/functions/parse-skill-arguments.function.ts +36 -0
- package/src/shared/mcp/functions/read-agent-meta.function.ts +41 -0
- package/src/shared/mcp/functions/resolve-skill-refs.function.ts +50 -0
- package/src/shared/mcp/functions/run-startup-health-check.function.ts +34 -0
- package/src/shared/mcp/typings/mcp-capabilities.interface.ts +16 -0
- package/src/shared/mcp/typings/mcp-client.interface.ts +47 -0
- package/src/shared/mcp/typings/mcp-completion.interface.ts +45 -0
- package/src/shared/mcp/typings/mcp-content-result.model.ts +9 -0
- package/src/shared/mcp/typings/mcp-export-result.model.ts +11 -0
- package/src/shared/mcp/typings/mcp-gc-result.model.ts +15 -0
- package/src/shared/mcp/typings/mcp-integrity-check-result.model.ts +17 -0
- package/src/shared/mcp/typings/mcp-integrity-error.model.ts +15 -0
- package/src/shared/mcp/typings/mcp-notification.interface.ts +9 -0
- package/src/shared/mcp/typings/mcp-rebuild-result.model.ts +9 -0
- package/src/shared/mcp/typings/mcp-request.interface.ts +11 -0
- package/src/shared/mcp/typings/mcp-resource-result.interface.ts +12 -0
- package/src/shared/mcp/typings/mcp-resource-template.interface.ts +11 -0
- package/src/shared/mcp/typings/mcp-response.interface.ts +18 -0
- package/src/shared/mcp/typings/mcp-server-info.interface.ts +7 -0
- package/src/shared/mcp/typings/mcp-server-state.interface.ts +17 -0
- package/src/shared/mcp/typings/mcp-tool-annotations.interface.ts +32 -0
- package/src/shared/mcp/typings/mcp-tool-definition.interface.ts +16 -0
- package/src/shared/mcp/typings/mcp-tool-result.interface.ts +19 -0
- package/src/shared/mcp/typings/mcp-worker-client.interface.ts +243 -0
- package/src/shared/mcp/typings/tool-call-result.model.ts +18 -0
- package/src/shared/sync/functions/build-import-report.function.ts +40 -0
- package/src/shared/sync/functions/parse-export-entry.function.ts +45 -0
- package/src/shared/sync/functions/resolve-conflict.function.ts +31 -0
- package/src/shared/sync/functions/serialize-export-entry.function.ts +18 -0
- package/src/shared/sync/index.ts +9 -0
- package/src/shared/sync/typings/conflict-resolution.type.ts +8 -0
- package/src/shared/sync/typings/export-entry.interface.ts +13 -0
- package/src/shared/sync/typings/export-options.interface.ts +9 -0
- package/src/shared/sync/typings/import-options.interface.ts +7 -0
- package/src/shared/sync/typings/import-report.interface.ts +15 -0
- package/src/shared/wasm-codec/functions/decode-add-section-result.function.ts +112 -0
- package/src/shared/wasm-codec/functions/decode-one-recall-result.function.ts +86 -0
- package/src/shared/wasm-codec/functions/decode-option-string.function.ts +24 -0
- package/src/shared/wasm-codec/functions/decode-recall-document.function.ts +59 -0
- package/src/shared/wasm-codec/functions/decode-recall-reference.function.ts +52 -0
- package/src/shared/wasm-codec/functions/decode-recall-sibling.function.ts +43 -0
- package/src/shared/wasm-codec/functions/decode-scored-results.function.ts +86 -0
- package/src/shared/wasm-codec/functions/decode-section-match.function.ts +80 -0
- package/src/shared/wasm-codec/functions/decode-section-record-trailing.function.ts +75 -0
- package/src/shared/wasm-codec/functions/decode-section-record.function.ts +85 -0
- package/src/shared/wasm-codec/functions/decode-section-records.function.ts +87 -0
- package/src/shared/wasm-codec/functions/decode-section-type.function.ts +30 -0
- package/src/shared/wasm-codec/functions/decode-wasm-list.function.ts +31 -0
- package/src/shared/wasm-codec/functions/encode-add-section-params.function.ts +68 -0
- package/src/shared/wasm-codec/index.ts +5 -0
- package/src/shared/wasm-codec/typings/add-section-input.model.ts +45 -0
- package/src/shared/wasm-codec/typings/add-section-result.model.ts +28 -0
- package/src/shared/wasm-codec/typings/document-manifest.model.ts +20 -0
- package/src/shared/wasm-codec/typings/document-section.model.ts +12 -0
- package/src/shared/wasm-codec/typings/item-decoder.type.ts +10 -0
- package/src/shared/wasm-codec/typings/near-duplicate.model.ts +16 -0
- package/src/shared/wasm-codec/typings/paged-search-result.model.ts +22 -0
- package/src/shared/wasm-codec/typings/section-match.model.ts +31 -0
- package/src/shared/wasm-codec/typings/section-record-trailing.model.ts +38 -0
- package/src/shared/wasm-codec/typings/section-record.model.ts +66 -0
- package/src/shared/wasm-codec/typings/section-type-result.model.ts +12 -0
- package/src/shared/worker-client/classes/worker-client.class.ts +19 -0
- package/src/shared/worker-client/functions/handle-ipc-data.function.ts +49 -0
- package/src/shared/worker-client/functions/send-ipc-request.function.ts +39 -0
- package/src/shared/worker-client/index.ts +4 -1
- package/src/shared/worker-client/typings/add-section-result.model.ts +32 -15
- package/src/shared/worker-client/typings/export-result.model.ts +14 -0
- package/src/shared/worker-client/typings/gc-result.model.ts +6 -0
- package/src/shared/worker-client/typings/json-rpc-response.interface.ts +17 -0
- package/src/shared/worker-client/typings/pending-call.interface.ts +7 -0
- package/src/shared/worker-client/typings/recall-document.model.ts +16 -0
- package/src/shared/worker-client/typings/recall-params.model.ts +15 -0
- package/src/shared/worker-client/typings/recall-reference.model.ts +32 -0
- package/src/shared/worker-client/typings/recall-sibling.model.ts +11 -0
- package/src/shared/worker-client/typings/recall-single-result.model.ts +41 -0
- package/src/shared/worker-client/typings/search-result.model.ts +12 -0
- package/src/shared/worker-client/typings/section.model.ts +16 -0
- package/src/shared/worker-daemon/classes/ipc-error.class.ts +22 -0
- package/src/shared/worker-daemon/classes/worker-daemon.class.ts +315 -46
- package/src/shared/worker-daemon/constants/wasm-method-map.constant.ts +69 -0
- package/src/shared/worker-daemon/functions/build-ipc-error-response.function.ts +16 -0
- package/src/shared/worker-daemon/functions/check-catalog-version.function.ts +54 -0
- package/src/shared/worker-daemon/functions/check-preconditions.function.ts +28 -0
- package/src/shared/worker-daemon/functions/create-host-imports.function.ts +19 -4
- package/src/shared/worker-daemon/functions/create-ipc-server.function.ts +5 -1
- package/src/shared/worker-daemon/functions/detect-stale-pid.function.ts +33 -0
- package/src/shared/worker-daemon/functions/dispatch-request.function.ts +190 -0
- package/src/shared/worker-daemon/functions/handle-check-version.function.ts +74 -0
- package/src/shared/worker-daemon/functions/handle-config-method.function.ts +27 -0
- package/src/shared/worker-daemon/functions/handle-read-ops.function.ts +236 -0
- package/src/shared/worker-daemon/functions/handle-write-ops.function.ts +257 -0
- package/src/shared/worker-daemon/functions/parse-auto-capture-section.function.ts +51 -0
- package/src/shared/worker-daemon/functions/parse-catalog-version.function.ts +20 -0
- package/src/shared/worker-daemon/functions/parse-embedding-section.function.ts +38 -0
- package/src/shared/worker-daemon/functions/parse-worker-toml.function.ts +104 -0
- package/src/shared/worker-daemon/functions/run-startup-integrity-check.function.ts +55 -0
- package/src/shared/worker-daemon/functions/scan-near-duplicates.function.ts +92 -0
- package/src/shared/worker-daemon/functions/wasm-bridge.function.ts +144 -0
- package/src/shared/worker-daemon/functions/wasm-memory-helpers.function.ts +41 -0
- package/src/shared/worker-daemon/functions/write-lock.function.ts +49 -0
- package/src/shared/worker-daemon/typings/allocator-ref.interface.ts +16 -0
- package/src/shared/worker-daemon/typings/daemon-config.interface.ts +7 -0
- package/src/shared/worker-daemon/typings/fs-adapter.interface.ts +22 -0
- package/src/shared/worker-daemon/typings/handler-context.interface.ts +19 -0
- package/src/shared/worker-daemon/typings/memory-ref.interface.ts +13 -0
- package/src/shared/worker-daemon/typings/wasm-fn.type.ts +2 -0
- package/src/shared/worker-daemon/typings/write-lock.interface.ts +13 -0
- package/src/wasm/fs-database/kbdb_fs_database.d.ts +22 -1
- package/src/wasm/fs-database/kbdb_fs_database.js +28 -1
- package/src/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
- package/src/wasm/fs-database/kbdb_fs_database_bg.wasm.d.ts +1 -0
- package/src/wasm/kb-worker/kbdb_worker.d.ts +48 -1
- package/src/wasm/kb-worker/kbdb_worker.js +60 -1
- package/src/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
- package/src/wasm/kb-worker/kbdb_worker_bg.wasm.d.ts +2 -0
- package/src/wasm/query-parser/kbdb_query_parser_bg.wasm +0 -0
|
@@ -58,3 +58,14 @@ component and per-field corpus average from
|
|
|
58
58
|
[FieldTokenCounts](../../shared/query/types.md)
|
|
59
59
|
for the per-field token counts used in length
|
|
60
60
|
normalization.
|
|
61
|
+
|
|
62
|
+
```rust
|
|
63
|
+
pub type SynonymMap = HashMap<String, Vec<String>>;
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
`SynonymMap` is a type alias for the bidirectional
|
|
67
|
+
synonym lookup used in tokenization pipeline stage 7.
|
|
68
|
+
It is constructed once via `build_synonym_map()` from
|
|
69
|
+
a curated list of synonym pairs and reused across all
|
|
70
|
+
tokenization calls. The map is immutable after
|
|
71
|
+
construction.
|
|
@@ -9,9 +9,9 @@ tokenization, keyword extraction, and ranking.*
|
|
|
9
9
|
`Ngram`, `NgramType`, `StemResult`. Output types
|
|
10
10
|
from the tokenization pipeline.
|
|
11
11
|
- **[keyphrase](keyphrase.md)** -- `Keyphrase`,
|
|
12
|
-
`WeightedTerm`, `BM25FParams`, `FieldWeights
|
|
13
|
-
Types for keyword extraction
|
|
14
|
-
configuration.
|
|
12
|
+
`WeightedTerm`, `BM25FParams`, `FieldWeights`,
|
|
13
|
+
`SynonymMap`. Types for keyword extraction, ranking
|
|
14
|
+
configuration, and synonym expansion.
|
|
15
15
|
- **[cache](cache.md)** -- `QueryCache`. Short-lived
|
|
16
16
|
cache scoped to a single query or indexing
|
|
17
17
|
operation.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# auto-capture -- MCP Sampling-Based Automatic Knowledge Capture
|
|
2
|
+
|
|
3
|
+
**Source:** `src/shared/auto-capture/`
|
|
4
|
+
|
|
5
|
+
## Responsibility
|
|
6
|
+
|
|
7
|
+
Automatic knowledge capture from AI agent conversations. Uses MCP
|
|
8
|
+
`sampling/createMessage` to ask the host LLM to identify knowledge
|
|
9
|
+
worth storing, then feeds extracted knowledge into kbdb via `learn`.
|
|
10
|
+
Operates as an MCP server-side feature -- the server proactively
|
|
11
|
+
requests captures based on configurable triggers.
|
|
12
|
+
|
|
13
|
+
## Directory Layout
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
src/shared/auto-capture/
|
|
17
|
+
index.ts
|
|
18
|
+
auto-capture.controller.ts
|
|
19
|
+
trigger.ts
|
|
20
|
+
sampling-prompt.ts
|
|
21
|
+
rate-limiter.ts
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Components
|
|
25
|
+
|
|
26
|
+
- **AutoCaptureController** (`auto-capture.controller.ts`) --
|
|
27
|
+
Orchestrates the capture flow. Tracks tool call count, checks
|
|
28
|
+
trigger conditions, invokes sampling, and feeds results to
|
|
29
|
+
`learn`. Stateful per MCP session.
|
|
30
|
+
- **Trigger logic** (`trigger.ts`) -- Evaluates whether a capture
|
|
31
|
+
check should fire. Conditions: (a) after N tool calls (default:
|
|
32
|
+
10), (b) configurable time interval, (c) explicit
|
|
33
|
+
`auto-capture-review` tool invocation. Multiple triggers can be
|
|
34
|
+
active simultaneously.
|
|
35
|
+
- **Sampling prompts** (`sampling-prompt.ts`) -- Prompt templates
|
|
36
|
+
sent via `sampling/createMessage`. The prompt asks the host LLM
|
|
37
|
+
to extract knowledge from the conversation that matches the
|
|
38
|
+
`memory-protocol` skill's storage criteria: facts, decisions,
|
|
39
|
+
rationale, procedures.
|
|
40
|
+
- **Rate limiter** (`rate-limiter.ts`) -- Prevents excessive
|
|
41
|
+
capture attempts. Enforces minimum interval between captures
|
|
42
|
+
(default: 60 s) and maximum captures per session (default: 20).
|
|
43
|
+
|
|
44
|
+
## Configuration
|
|
45
|
+
|
|
46
|
+
Configured via the `[auto_capture]` section of `worker.toml`:
|
|
47
|
+
|
|
48
|
+
```toml
|
|
49
|
+
[auto_capture]
|
|
50
|
+
enabled = false
|
|
51
|
+
trigger_after_tool_calls = 10
|
|
52
|
+
min_interval_seconds = 60
|
|
53
|
+
max_captures_per_session = 20
|
|
54
|
+
dry_run = false
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
When `dry_run = true`, the controller logs what would be captured
|
|
58
|
+
without actually writing to the database. Useful for tuning
|
|
59
|
+
triggers.
|
|
60
|
+
|
|
61
|
+
## Dependency Direction
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
shared/auto-capture/
|
|
65
|
+
└── (no shared module deps -- uses MCP sampling API)
|
|
66
|
+
|
|
67
|
+
shared/mcp/
|
|
68
|
+
└── shared/auto-capture/ (controller lifecycle)
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
The auto-capture module is instantiated by the MCP server module.
|
|
72
|
+
It uses the MCP protocol's sampling capability -- not direct imports
|
|
73
|
+
of other shared modules.
|
|
@@ -68,14 +68,17 @@ async function dispatchCommand(
|
|
|
68
68
|
|
|
69
69
|
`DispatchClient` is the intersection of all per-command
|
|
70
70
|
client interfaces (`SearchClient & LearnClient &
|
|
71
|
-
UnlearnClient &
|
|
72
|
-
GcClient & RebuildClient &
|
|
71
|
+
UnlearnClient & RecallClient & ContentClient &
|
|
72
|
+
CheckClient & GcClient & RebuildClient & ExportClient &
|
|
73
|
+
SkillClient & AgentClient`).
|
|
73
74
|
|
|
74
75
|
| Command | Handler |
|
|
75
76
|
|----------------|----------------------------------|
|
|
76
77
|
| `learn` | `runLearn(client, options, io)` |
|
|
78
|
+
| `export` | `runExport(client, options)` |
|
|
77
79
|
| `unlearn` | `runUnlearn(client, options)` |
|
|
78
80
|
| `search` | `runSearch(client, options)` |
|
|
81
|
+
| `recall` | `runRecall(client, options)` |
|
|
79
82
|
| `content` | `runContent(client, options)` |
|
|
80
83
|
| `check` | `runCheck(client, options)` |
|
|
81
84
|
| `gc` | `runGc(client, options)` |
|
|
@@ -222,8 +225,15 @@ async function runLearn(
|
|
|
222
225
|
- If input is a **text file**: adds that single file.
|
|
223
226
|
`--title` and `--description` are optional.
|
|
224
227
|
- If input is **stdin** (`-`): reads `text/markdown`.
|
|
228
|
+
- `--tags <t,...>` attaches comma-separated tags for
|
|
229
|
+
scoping and filtering.
|
|
230
|
+
- `--replace` enables supersession by source key:
|
|
231
|
+
if a section with the same source key exists, the
|
|
232
|
+
old section is replaced.
|
|
225
233
|
- Returns a `LearnResult[]` with one record per file
|
|
226
|
-
processed.
|
|
234
|
+
processed. Each result includes `superseded` (kbid
|
|
235
|
+
of replaced section or `null`), `warnings` (e.g.
|
|
236
|
+
`"heading_missing"`), and `near_duplicates`.
|
|
227
237
|
|
|
228
238
|
### `runUnlearn`
|
|
229
239
|
|
|
@@ -275,6 +285,36 @@ async function runContent(
|
|
|
275
285
|
Takes identifiers from `options.args`. Calls
|
|
276
286
|
`client.content(ids)`.
|
|
277
287
|
|
|
288
|
+
### `runRecall`
|
|
289
|
+
|
|
290
|
+
**File:** `run-recall.function.ts`
|
|
291
|
+
|
|
292
|
+
Retrieves full content and progressive context for one
|
|
293
|
+
or more sections by kbid.
|
|
294
|
+
|
|
295
|
+
```ts
|
|
296
|
+
async function runRecall(
|
|
297
|
+
client: RecallClient,
|
|
298
|
+
options: CliOptions,
|
|
299
|
+
): Promise<CommandResult>;
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
`RecallClient` interface:
|
|
303
|
+
|
|
304
|
+
```ts
|
|
305
|
+
interface RecallClient {
|
|
306
|
+
recall(
|
|
307
|
+
params: RecallParams,
|
|
308
|
+
): Promise<RecallResult | RecallResult[]>;
|
|
309
|
+
}
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
Takes kbid(s) from `options.args` and depth from
|
|
313
|
+
`options.depth` (default 0, clamped 0-3). When a
|
|
314
|
+
single kbid is provided, returns a `RecallResult`
|
|
315
|
+
JSON object. When multiple kbids are provided, returns
|
|
316
|
+
a `RecallResult[]` JSON array.
|
|
317
|
+
|
|
278
318
|
### `runCheck`
|
|
279
319
|
|
|
280
320
|
**File:** `run-check.function.ts`
|
|
@@ -320,6 +360,30 @@ async function runRebuild(
|
|
|
320
360
|
|
|
321
361
|
Calls `client.rebuildIndexes()`.
|
|
322
362
|
|
|
363
|
+
### `runExport`
|
|
364
|
+
|
|
365
|
+
**File:** `run-export.function.ts`
|
|
366
|
+
|
|
367
|
+
Exports the knowledge base as a self-contained
|
|
368
|
+
directory snapshot for backup or versioning.
|
|
369
|
+
|
|
370
|
+
```ts
|
|
371
|
+
async function runExport(
|
|
372
|
+
client: ExportClient,
|
|
373
|
+
options: CliOptions,
|
|
374
|
+
): Promise<CommandResult>;
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
Copies sections, documents, and catalog (no indexes
|
|
378
|
+
-- they are rebuildable via `rebuild`). The export
|
|
379
|
+
destination defaults to `./kbdb-export/` and can be
|
|
380
|
+
overridden via `options.args[0]`.
|
|
381
|
+
|
|
382
|
+
Output: JSON `{ "path": "...",
|
|
383
|
+
"sections_exported": number,
|
|
384
|
+
"documents_exported": number,
|
|
385
|
+
"elapsed_ms": number }`.
|
|
386
|
+
|
|
323
387
|
### `ensureDb`
|
|
324
388
|
|
|
325
389
|
**File:** `ensure-db.function.ts`
|
|
@@ -608,6 +672,7 @@ src/shared/cli/
|
|
|
608
672
|
├── run-db-init.spec.ts
|
|
609
673
|
├── run-db-migrate.spec.ts
|
|
610
674
|
├── run-learn.spec.ts
|
|
675
|
+
├── run-export.spec.ts
|
|
611
676
|
├── run-unlearn.spec.ts
|
|
612
677
|
├── run-search.spec.ts
|
|
613
678
|
├── run-content.spec.ts
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# embedding/functions -- Embedding Functions
|
|
2
|
+
|
|
3
|
+
**Source:** `src/shared/embedding/functions/`
|
|
4
|
+
|
|
5
|
+
## embed
|
|
6
|
+
|
|
7
|
+
```ts
|
|
8
|
+
embed(
|
|
9
|
+
provider: EmbeddingProvider,
|
|
10
|
+
text: string,
|
|
11
|
+
): Promise<Float32Array>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Computes a single embedding vector for the given text.
|
|
15
|
+
Delegates to the provider's `embed()` method. Returns a
|
|
16
|
+
`Float32Array` of dimensions matching `provider.dimensions()`.
|
|
17
|
+
|
|
18
|
+
Used during `learn` to embed section content and during
|
|
19
|
+
`search` to embed the query string.
|
|
20
|
+
|
|
21
|
+
## batchEmbed
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
batchEmbed(
|
|
25
|
+
provider: EmbeddingProvider,
|
|
26
|
+
texts: string[],
|
|
27
|
+
): Promise<Float32Array[]>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Computes embeddings for multiple texts in a single batch.
|
|
31
|
+
More efficient than calling `embed()` in a loop -- providers
|
|
32
|
+
can batch API calls or parallelize ONNX inference. Used
|
|
33
|
+
during `rebuild` to re-embed all sections.
|
|
34
|
+
|
|
35
|
+
## cosineSimilarity
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
cosineSimilarity(
|
|
39
|
+
a: Float32Array,
|
|
40
|
+
b: Float32Array,
|
|
41
|
+
): number
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Computes the cosine similarity between two vectors. Returns a
|
|
45
|
+
value in [-1, 1], where 1 means identical direction. Used by
|
|
46
|
+
semantic near-duplicate detection (threshold >= 0.92) and by
|
|
47
|
+
vector search ranking.
|
|
48
|
+
|
|
49
|
+
Both vectors must have the same length (same embedding
|
|
50
|
+
dimensions). Throws if lengths differ.
|
|
51
|
+
|
|
52
|
+
## buildVectorIndex
|
|
53
|
+
|
|
54
|
+
```ts
|
|
55
|
+
buildVectorIndex(
|
|
56
|
+
provider: EmbeddingProvider,
|
|
57
|
+
sections: SectionRecord[],
|
|
58
|
+
outPath: string,
|
|
59
|
+
): Promise<VectorIndexMeta>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Builds the vector index file (`vectors.idx`) from all
|
|
63
|
+
sections. Embeds each section's content via `batchEmbed`,
|
|
64
|
+
writes fixed-width records (kbid + vector) to `outPath`, and
|
|
65
|
+
writes `vectors-meta.toml` alongside it with model name,
|
|
66
|
+
dimensions, and record count.
|
|
67
|
+
|
|
68
|
+
Called by `rebuild` when an embedding provider is configured.
|
|
69
|
+
Returns metadata about the built index.
|
|
70
|
+
|
|
71
|
+
## searchVectors
|
|
72
|
+
|
|
73
|
+
```ts
|
|
74
|
+
searchVectors(
|
|
75
|
+
provider: EmbeddingProvider,
|
|
76
|
+
query: string,
|
|
77
|
+
indexPath: string,
|
|
78
|
+
limit: number,
|
|
79
|
+
): Promise<VectorSearchResult[]>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Performs vector similarity search. Embeds the query, reads
|
|
83
|
+
`vectors.idx`, computes cosine similarity against all stored
|
|
84
|
+
vectors, and returns the top `limit` results sorted by
|
|
85
|
+
similarity descending.
|
|
86
|
+
|
|
87
|
+
Each result includes the kbid and similarity score. The
|
|
88
|
+
results are passed to the RRF fusion step alongside lexical
|
|
89
|
+
search results.
|
|
90
|
+
|
|
91
|
+
Note: This is a brute-force linear scan. For corpus sizes
|
|
92
|
+
under 100k sections, this is fast enough (< 50ms). A future
|
|
93
|
+
version may add approximate nearest neighbor (ANN) indexing
|
|
94
|
+
if scale demands it.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# embedding -- Pluggable Embedding Computation
|
|
2
|
+
|
|
3
|
+
**Source:** `src/shared/embedding/`
|
|
4
|
+
|
|
5
|
+
## Responsibility
|
|
6
|
+
|
|
7
|
+
Pluggable embedding computation for hybrid lexical+vector search.
|
|
8
|
+
Provides the `EmbeddingProvider` interface and implementations for
|
|
9
|
+
different backends. Used by the worker daemon to embed sections at
|
|
10
|
+
learn time and to compute query embeddings at search time.
|
|
11
|
+
|
|
12
|
+
## Directory Layout
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
src/shared/embedding/
|
|
16
|
+
index.ts
|
|
17
|
+
functions/
|
|
18
|
+
embed.function.ts
|
|
19
|
+
batch-embed.function.ts
|
|
20
|
+
cosine-similarity.function.ts
|
|
21
|
+
build-vector-index.function.ts
|
|
22
|
+
search-vectors.function.ts
|
|
23
|
+
providers/
|
|
24
|
+
null-embedding.provider.ts
|
|
25
|
+
onnx-embedding.provider.ts
|
|
26
|
+
api-embedding.provider.ts
|
|
27
|
+
typings/
|
|
28
|
+
embedding-provider.typing.ts
|
|
29
|
+
embedding-config.typing.ts
|
|
30
|
+
vector-search-result.typing.ts
|
|
31
|
+
vector-index-meta.typing.ts
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Exports
|
|
35
|
+
|
|
36
|
+
- [Functions](functions.md) -- `embed`, `batchEmbed`,
|
|
37
|
+
`cosineSimilarity`, `buildVectorIndex`, `searchVectors`
|
|
38
|
+
- [Typings](typings.md) -- `EmbeddingProvider`, `EmbeddingConfig`,
|
|
39
|
+
`VectorSearchResult`, `VectorIndexMeta`
|
|
40
|
+
|
|
41
|
+
## Providers
|
|
42
|
+
|
|
43
|
+
Three implementations of the `EmbeddingProvider` interface:
|
|
44
|
+
|
|
45
|
+
- **NullEmbeddingProvider** -- No-op provider used when no embedding
|
|
46
|
+
backend is configured. Returns empty vectors. Allows all
|
|
47
|
+
lexical-only paths to work unchanged.
|
|
48
|
+
- **OnnxEmbeddingProvider** -- Local inference using ONNX Runtime.
|
|
49
|
+
Loads a model from disk (e.g., `all-MiniLM-L6-v2`). Zero network
|
|
50
|
+
calls, fully offline.
|
|
51
|
+
- **ApiEmbeddingProvider** -- Remote inference via HTTP API (OpenAI,
|
|
52
|
+
Anthropic, or compatible endpoints). Configured via `worker.toml`
|
|
53
|
+
with endpoint URL and API key.
|
|
54
|
+
|
|
55
|
+
## Dependency Direction
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
shared/embedding/
|
|
59
|
+
├── shared/hash/ (content hashing for cache keys)
|
|
60
|
+
└── shared/platform/ (file paths for local models)
|
|
61
|
+
|
|
62
|
+
shared/worker-daemon/
|
|
63
|
+
└── shared/embedding/ (init provider at startup)
|
|
64
|
+
|
|
65
|
+
shared/mcp/
|
|
66
|
+
└── (indirect via worker-client)
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
The embedding module is a utility module -- it depends only on other
|
|
70
|
+
utility modules. The worker daemon initializes the provider at startup
|
|
71
|
+
based on `worker.toml` config.
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# embedding/typings -- Embedding Type Definitions
|
|
2
|
+
|
|
3
|
+
*Interfaces and type aliases for the embedding
|
|
4
|
+
module's providers, configuration, and search
|
|
5
|
+
results.*
|
|
6
|
+
|
|
7
|
+
## Source
|
|
8
|
+
|
|
9
|
+
`src/shared/embedding/typings/`
|
|
10
|
+
|
|
11
|
+
## Typings
|
|
12
|
+
|
|
13
|
+
### `EmbeddingProvider`
|
|
14
|
+
|
|
15
|
+
**File:** `embedding-provider.typing.ts`
|
|
16
|
+
|
|
17
|
+
Core abstraction for text embedding. Accepts a batch
|
|
18
|
+
of texts and returns a vector for each. Implemented
|
|
19
|
+
by `NullEmbeddingProvider`, `OnnxEmbeddingProvider`,
|
|
20
|
+
and `ApiEmbeddingProvider`.
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
interface EmbeddingProvider {
|
|
24
|
+
embed(texts: string[]): Promise<Float32Array[]>;
|
|
25
|
+
dimensions(): number;
|
|
26
|
+
modelName(): string;
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
| Member | Description |
|
|
31
|
+
|--------------|-----------------------------------------|
|
|
32
|
+
| `embed` | Produces one embedding vector per input |
|
|
33
|
+
| | text; accepts an array for batching |
|
|
34
|
+
| | efficiency |
|
|
35
|
+
| `dimensions` | Returns the length of each vector |
|
|
36
|
+
| | (e.g. 384 for MiniLM) |
|
|
37
|
+
| `modelName` | Returns a stable identifier stored in |
|
|
38
|
+
| | `vectors-meta.toml`; used to detect |
|
|
39
|
+
| | model changes that require a rebuild |
|
|
40
|
+
|
|
41
|
+
### `EmbeddingConfig`
|
|
42
|
+
|
|
43
|
+
**File:** `embedding-config.typing.ts`
|
|
44
|
+
|
|
45
|
+
Configuration read from the `[embedding]` section
|
|
46
|
+
of `worker.toml`. Determines which `EmbeddingProvider`
|
|
47
|
+
implementation to instantiate at daemon startup.
|
|
48
|
+
|
|
49
|
+
```ts
|
|
50
|
+
interface EmbeddingConfig {
|
|
51
|
+
provider: 'none' | 'onnx' | 'api';
|
|
52
|
+
model?: string;
|
|
53
|
+
apiEndpoint?: string;
|
|
54
|
+
apiKey?: string;
|
|
55
|
+
dimensions?: number;
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
| Property | Description |
|
|
60
|
+
|---------------|------------------------------------------|
|
|
61
|
+
| `provider` | Selects the backend: `'none'` → |
|
|
62
|
+
| | `NullEmbeddingProvider`; `'onnx'` → |
|
|
63
|
+
| | `OnnxEmbeddingProvider`; `'api'` → |
|
|
64
|
+
| | `ApiEmbeddingProvider` |
|
|
65
|
+
| `model` | Path to the local ONNX model file; |
|
|
66
|
+
| | required when `provider` is `'onnx'` |
|
|
67
|
+
| `apiEndpoint` | Remote HTTP API URL; required when |
|
|
68
|
+
| | `provider` is `'api'` |
|
|
69
|
+
| `apiKey` | Bearer token for the remote API; |
|
|
70
|
+
| | required when `provider` is `'api'` |
|
|
71
|
+
| `dimensions` | Vector length; inferred from the model |
|
|
72
|
+
| | when possible; required for API |
|
|
73
|
+
| | providers that do not report dimensions |
|
|
74
|
+
|
|
75
|
+
### `VectorSearchResult`
|
|
76
|
+
|
|
77
|
+
**File:** `vector-search-result.typing.ts`
|
|
78
|
+
|
|
79
|
+
A single result from a vector similarity search.
|
|
80
|
+
Used as input to the RRF fusion step alongside
|
|
81
|
+
lexical search results.
|
|
82
|
+
|
|
83
|
+
```ts
|
|
84
|
+
interface VectorSearchResult {
|
|
85
|
+
kbid: string;
|
|
86
|
+
similarity: number;
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
| Property | Description |
|
|
91
|
+
|--------------|-----------------------------------------|
|
|
92
|
+
| `kbid` | Knowledge-base identifier of the |
|
|
93
|
+
| | matched section |
|
|
94
|
+
| `similarity` | Cosine similarity score in [-1, 1] |
|
|
95
|
+
|
|
96
|
+
### `VectorIndexMeta`
|
|
97
|
+
|
|
98
|
+
**File:** `vector-index-meta.typing.ts`
|
|
99
|
+
|
|
100
|
+
Metadata stored in `vectors-meta.toml` alongside
|
|
101
|
+
`vectors.idx`. Used to detect stale indexes: when
|
|
102
|
+
`model` differs from the current provider's
|
|
103
|
+
`modelName()`, vectors must be rebuilt.
|
|
104
|
+
|
|
105
|
+
```ts
|
|
106
|
+
interface VectorIndexMeta {
|
|
107
|
+
model: string;
|
|
108
|
+
dimensions: number;
|
|
109
|
+
recordCount: number;
|
|
110
|
+
version: number;
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
| Property | Description |
|
|
115
|
+
|---------------|-----------------------------------------|
|
|
116
|
+
| `model` | `modelName()` value at index build time |
|
|
117
|
+
| `dimensions` | Vector length used when building the |
|
|
118
|
+
| | index |
|
|
119
|
+
| `recordCount` | Number of vectors stored in the index |
|
|
120
|
+
| `version` | Format version; currently `1` |
|
|
121
|
+
|
|
122
|
+
No spec -- typings are compile-time only.
|