@dikolab/kbdb 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +108 -126
- package/dist/chunk-BJPSPNGX.mjs +223 -0
- package/dist/chunk-BJPSPNGX.mjs.map +7 -0
- package/dist/cli.cjs +956 -319
- package/dist/cli.cjs.map +4 -4
- package/dist/cli.d.ts +9 -0
- package/dist/cli.mjs +840 -321
- package/dist/cli.mjs.map +4 -4
- package/dist/kbdb-worker.cjs +714 -94
- package/dist/kbdb-worker.cjs.map +4 -4
- package/dist/mod.cjs +122 -16
- package/dist/mod.cjs.map +3 -3
- package/dist/mod.d.ts +23 -2
- package/dist/mod.mjs +121 -16
- package/dist/mod.mjs.map +3 -3
- package/dist/src/shared/cli/functions/dispatch-command.function.d.ts +2 -1
- package/dist/src/shared/cli/functions/find-db.function.d.ts +7 -8
- package/dist/src/shared/cli/functions/handle-mcp.function.d.ts +1 -1
- package/dist/src/shared/cli/functions/parse-args.function.d.ts +4 -3
- package/dist/src/shared/cli/functions/resolve-kbid-prefix.function.d.ts +27 -0
- package/dist/src/shared/cli/functions/resolve-raw-db-path.function.d.ts +10 -0
- package/dist/src/shared/cli/functions/run-cli.function.d.ts +3 -1
- package/dist/src/shared/cli/functions/run-content.function.d.ts +8 -3
- package/dist/src/shared/cli/functions/run-import.function.d.ts +27 -0
- package/dist/src/shared/cli/functions/run-recall.function.d.ts +10 -4
- package/dist/src/shared/cli/functions/run-search.function.d.ts +7 -0
- package/dist/src/shared/cli/functions/run-unlearn.function.d.ts +9 -4
- package/dist/src/shared/cli/functions/run-worker-restart.function.d.ts +11 -0
- package/dist/src/shared/cli/functions/run-worker-stop.function.d.ts +11 -0
- package/dist/src/shared/cli/index.d.ts +2 -0
- package/dist/src/shared/cli/typings/cli-deps.interface.d.ts +4 -1
- package/dist/src/shared/cli/typings/cli-options.interface.d.ts +17 -0
- package/dist/src/shared/cli/typings/dispatch-client.type.d.ts +2 -1
- package/dist/src/shared/cli/typings/search-display.model.d.ts +6 -0
- package/dist/src/shared/embedding/classes/api-embedding-provider.class.d.ts +33 -0
- package/dist/src/shared/embedding/classes/onnx-embedding-provider.class.d.ts +33 -0
- package/dist/src/shared/embedding/functions/append-vector-entry.function.d.ts +14 -0
- package/dist/src/shared/embedding/functions/create-embedding-provider.function.d.ts +12 -0
- package/dist/src/shared/embedding/functions/detect-stale-vectors.function.d.ts +16 -0
- package/dist/src/shared/embedding/functions/parse-api-embedding-response.function.d.ts +11 -0
- package/dist/src/shared/embedding/functions/rebuild-vectors.function.d.ts +15 -0
- package/dist/src/shared/embedding/functions/scan-semantic-contradictions.function.d.ts +13 -0
- package/dist/src/shared/embedding/index.d.ts +7 -0
- package/dist/src/shared/embedding/typings/semantic-contradiction.model.d.ts +21 -0
- package/dist/src/shared/embedding/typings/stale-vectors-report.model.d.ts +16 -0
- package/dist/src/shared/mcp/classes/mcp-server.class.d.ts +22 -2
- package/dist/src/shared/mcp/functions/create-mcp-server.function.d.ts +6 -1
- package/dist/src/shared/mcp/functions/has-sampling-capability.function.d.ts +8 -0
- package/dist/src/shared/mcp/functions/run-auto-capture.function.d.ts +26 -0
- package/dist/src/shared/mcp/typings/mcp-client.interface.d.ts +2 -0
- package/dist/src/shared/mcp/typings/mcp-integrity-check-result.model.d.ts +24 -0
- package/dist/src/shared/mcp/typings/mcp-worker-client.interface.d.ts +3 -1
- package/dist/src/shared/version/constants/version.constant.d.ts +1 -1
- package/dist/src/shared/wasm-codec/typings/paged-search-result.model.d.ts +2 -0
- package/dist/src/shared/worker-client/classes/worker-client.class.d.ts +31 -1
- package/dist/src/shared/worker-client/constants/request-timeout.constant.d.ts +2 -0
- package/dist/src/shared/worker-client/constants/retry-defaults.constant.d.ts +2 -0
- package/dist/src/shared/worker-client/functions/get-or-create-client.function.d.ts +20 -0
- package/dist/src/shared/worker-client/functions/retry-on-timeout.function.d.ts +17 -0
- package/dist/src/shared/worker-client/index.d.ts +4 -1
- package/dist/src/shared/worker-client/typings/import-result.model.d.ts +16 -0
- package/dist/src/shared/worker-client/typings/integrity-check-result.model.d.ts +24 -0
- package/dist/src/shared/worker-client/typings/search-params.model.d.ts +4 -0
- package/dist/src/shared/worker-client/typings/search-result.model.d.ts +6 -0
- package/dist/src/shared/worker-client/typings/worker-client-options.interface.d.ts +7 -0
- package/dist/src/shared/worker-daemon/classes/worker-daemon.class.d.ts +5 -0
- package/dist/src/shared/worker-daemon/functions/create-ipc-server.function.d.ts +11 -11
- package/dist/src/shared/worker-daemon/functions/embed-after-learn.function.d.ts +13 -0
- package/dist/src/shared/worker-daemon/functions/handle-hybrid-search.function.d.ts +44 -0
- package/dist/src/shared/worker-daemon/functions/handle-import.function.d.ts +14 -0
- package/dist/src/shared/worker-daemon/functions/handle-read-ops.function.d.ts +7 -1
- package/dist/src/shared/worker-daemon/functions/handle-write-ops.function.d.ts +9 -4
- package/dist/src/shared/worker-daemon/typings/handler-context.interface.d.ts +3 -0
- package/dist/wasm/fs-database/kbdb_fs_database.d.ts +16 -85
- package/dist/wasm/fs-database/kbdb_fs_database.js +16 -85
- package/dist/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
- package/dist/wasm/kb-worker/kbdb_worker.d.ts +20 -115
- package/dist/wasm/kb-worker/kbdb_worker.js +20 -115
- package/dist/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
- package/dist/wasm/query-parser/kbdb_query_parser_bg.wasm +0 -0
- package/dist/worker.d.ts +8 -0
- package/dist/worker.mjs +606 -102
- package/dist/worker.mjs.map +4 -4
- package/docs/details/README.md +4 -0
- package/docs/details/agent-tooling.md +122 -0
- package/docs/details/cli.md +78 -12
- package/docs/details/knowledge-base.md +173 -0
- package/docs/details/library-api.md +42 -2
- package/docs/details/mcp-server.md +39 -8
- package/docs/details/search-and-ranking.md +56 -0
- package/docs/goals/cli.md +110 -34
- package/docs/goals/mcp.md +22 -19
- package/docs/goals/query-parser.md +8 -0
- package/docs/goals/worker-client.md +62 -1
- package/docs/goals/worker-daemon.md +52 -10
- package/docs/modules/typescript/cli.md +1 -1
- package/docs/modules/typescript/shared/cli/functions.md +116 -13
- package/docs/modules/typescript/shared/cli/module.md +33 -20
- package/docs/modules/typescript/shared/cli/typings.md +4 -0
- package/docs/modules/typescript/shared/embedding/functions.md +104 -25
- package/docs/modules/typescript/shared/mcp/module.md +1 -1
- package/docs/modules/typescript/shared/mcp/typings.md +8 -1
- package/docs/modules/typescript/shared/worker-client/module.md +9 -1
- package/docs/modules/typescript/shared/worker-client/typings.md +3 -0
- package/docs/modules/typescript/shared/worker-daemon/module.md +6 -3
- package/docs/overview.md +43 -22
- package/docs/release-notes/0.3.1.md +10 -0
- package/docs/release-notes/0.3.2.md +64 -0
- package/docs/release-notes/0.4.0.md +80 -0
- package/docs/release-notes/README.md +2 -0
- package/mod.ts +33 -15
- package/package.json +11 -10
- package/dist/chunk-JG2UCKLI.mjs +0 -95
- package/dist/chunk-JG2UCKLI.mjs.map +0 -7
- package/src/cli.ts +0 -71
- package/src/shared/auto-capture/classes/auto-capture-controller.class.ts +0 -62
- package/src/shared/auto-capture/constants/auto-capture-defaults.constant.ts +0 -15
- package/src/shared/auto-capture/functions/build-capture-prompt.function.ts +0 -27
- package/src/shared/auto-capture/functions/evaluate-trigger.function.ts +0 -50
- package/src/shared/auto-capture/index.ts +0 -7
- package/src/shared/auto-capture/typings/auto-capture-config.interface.ts +0 -13
- package/src/shared/auto-capture/typings/auto-capture-state.interface.ts +0 -13
- package/src/shared/auto-capture/typings/auto-capture-trigger.interface.ts +0 -7
- package/src/shared/cli/constants/defaults.constant.ts +0 -19
- package/src/shared/cli/constants/global-help.constant.ts +0 -73
- package/src/shared/cli/constants/help-text.constant.ts +0 -4
- package/src/shared/cli/constants/leaf-help.constant.ts +0 -219
- package/src/shared/cli/constants/memory-protocol-body.constant.ts +0 -39
- package/src/shared/cli/constants/query-guidance-body.constant.ts +0 -37
- package/src/shared/cli/constants/subcommand-help.constant.ts +0 -195
- package/src/shared/cli/functions/collect-files.function.ts +0 -55
- package/src/shared/cli/functions/compute-section-kbid.function.ts +0 -49
- package/src/shared/cli/functions/dispatch-command.function.ts +0 -390
- package/src/shared/cli/functions/ensure-db.function.ts +0 -21
- package/src/shared/cli/functions/error-to-message.function.ts +0 -9
- package/src/shared/cli/functions/find-db.function.ts +0 -20
- package/src/shared/cli/functions/format-mcp-output.function.ts +0 -41
- package/src/shared/cli/functions/format-output.function.ts +0 -95
- package/src/shared/cli/functions/format-text-output.function.ts +0 -42
- package/src/shared/cli/functions/generate-group-help.function.ts +0 -41
- package/src/shared/cli/functions/generate-help.function.ts +0 -654
- package/src/shared/cli/functions/handle-data-command.function.ts +0 -67
- package/src/shared/cli/functions/handle-mcp.function.ts +0 -56
- package/src/shared/cli/functions/handle-migrate.function.ts +0 -64
- package/src/shared/cli/functions/hydrate-search-previews.function.ts +0 -29
- package/src/shared/cli/functions/install-default-skills.function.ts +0 -296
- package/src/shared/cli/functions/is-stdin-tty.function.ts +0 -12
- package/src/shared/cli/functions/parse-args.function.ts +0 -156
- package/src/shared/cli/functions/prompt-user.function.ts +0 -36
- package/src/shared/cli/functions/resolve-skill-names.function.ts +0 -43
- package/src/shared/cli/functions/run-agent-create.function.ts +0 -114
- package/src/shared/cli/functions/run-agent-delete.function.ts +0 -47
- package/src/shared/cli/functions/run-agent-get.function.ts +0 -166
- package/src/shared/cli/functions/run-agent-list.function.ts +0 -58
- package/src/shared/cli/functions/run-check.function.ts +0 -159
- package/src/shared/cli/functions/run-cli.function.ts +0 -299
- package/src/shared/cli/functions/run-content.function.ts +0 -47
- package/src/shared/cli/functions/run-db-init.function.ts +0 -44
- package/src/shared/cli/functions/run-db-migrate.function.ts +0 -40
- package/src/shared/cli/functions/run-export.function.ts +0 -40
- package/src/shared/cli/functions/run-gc.function.ts +0 -51
- package/src/shared/cli/functions/run-init.function.ts +0 -93
- package/src/shared/cli/functions/run-learn.function.ts +0 -223
- package/src/shared/cli/functions/run-migrate.function.ts +0 -85
- package/src/shared/cli/functions/run-rebuild.function.ts +0 -47
- package/src/shared/cli/functions/run-recall.function.ts +0 -66
- package/src/shared/cli/functions/run-search.function.ts +0 -133
- package/src/shared/cli/functions/run-skill-delete.function.ts +0 -47
- package/src/shared/cli/functions/run-skill-get.function.ts +0 -90
- package/src/shared/cli/functions/run-skill-learn.function.ts +0 -70
- package/src/shared/cli/functions/run-skill-list.function.ts +0 -74
- package/src/shared/cli/functions/run-status.function.ts +0 -29
- package/src/shared/cli/functions/run-unlearn.function.ts +0 -58
- package/src/shared/cli/functions/version-gate.function.ts +0 -44
- package/src/shared/cli/functions/wrap-command.function.ts +0 -34
- package/src/shared/cli/index.ts +0 -55
- package/src/shared/cli/typings/agent-create-client.interface.ts +0 -47
- package/src/shared/cli/typings/agent-get-client.interface.ts +0 -39
- package/src/shared/cli/typings/check-client.interface.ts +0 -66
- package/src/shared/cli/typings/cli-deps.interface.ts +0 -54
- package/src/shared/cli/typings/cli-options.interface.ts +0 -72
- package/src/shared/cli/typings/command-result.model.ts +0 -15
- package/src/shared/cli/typings/disconnectable-client.interface.ts +0 -29
- package/src/shared/cli/typings/dispatch-client.type.ts +0 -46
- package/src/shared/cli/typings/learn-client.interface.ts +0 -53
- package/src/shared/cli/typings/learn-io.interface.ts +0 -5
- package/src/shared/cli/typings/learn-result.model.ts +0 -27
- package/src/shared/cli/typings/search-client.interface.ts +0 -73
- package/src/shared/cli/typings/search-display.model.ts +0 -54
- package/src/shared/dir-resolver/functions/join-path.function.ts +0 -13
- package/src/shared/dir-resolver/functions/resolve-base-dir.function.ts +0 -25
- package/src/shared/dir-resolver/functions/resolve-wasm-dir.function.ts +0 -5
- package/src/shared/dir-resolver/functions/resolve-worker-script.function.ts +0 -13
- package/src/shared/dir-resolver/index.ts +0 -11
- package/src/shared/dir-resolver/typings/base-dir.interface.ts +0 -4
- package/src/shared/embedding/classes/null-embedding-provider.class.ts +0 -29
- package/src/shared/embedding/constants/near-duplicate-thresholds.constant.ts +0 -17
- package/src/shared/embedding/functions/build-vector-index.function.ts +0 -79
- package/src/shared/embedding/functions/cosine-similarity.function.ts +0 -31
- package/src/shared/embedding/functions/detect-near-duplicates.function.ts +0 -69
- package/src/shared/embedding/functions/jaccard-coefficient.function.ts +0 -26
- package/src/shared/embedding/functions/read-vector-index-meta.function.ts +0 -44
- package/src/shared/embedding/functions/rrf-fuse.function.ts +0 -33
- package/src/shared/embedding/functions/search-vectors.function.ts +0 -59
- package/src/shared/embedding/index.ts +0 -20
- package/src/shared/embedding/typings/embedding-config.interface.ts +0 -23
- package/src/shared/embedding/typings/embedding-provider.interface.ts +0 -25
- package/src/shared/embedding/typings/near-duplicate-candidate.model.ts +0 -25
- package/src/shared/embedding/typings/near-duplicate-result.model.ts +0 -26
- package/src/shared/embedding/typings/vector-index-entry.model.ts +0 -13
- package/src/shared/embedding/typings/vector-index-meta.model.ts +0 -14
- package/src/shared/embedding/typings/vector-search-result.model.ts +0 -8
- package/src/shared/hash/functions/compute-sha256.ts +0 -17
- package/src/shared/hash/index.ts +0 -1
- package/src/shared/mcp/classes/mcp-server.class.ts +0 -480
- package/src/shared/mcp/constants/mcp-error-codes.constant.ts +0 -30
- package/src/shared/mcp/constants/tool-agent-create.constant.ts +0 -39
- package/src/shared/mcp/constants/tool-agent-delete.constant.ts +0 -26
- package/src/shared/mcp/constants/tool-agent-get.constant.ts +0 -24
- package/src/shared/mcp/constants/tool-agent-list.constant.ts +0 -18
- package/src/shared/mcp/constants/tool-auto-capture-review.constant.ts +0 -32
- package/src/shared/mcp/constants/tool-check.constant.ts +0 -21
- package/src/shared/mcp/constants/tool-content.constant.ts +0 -29
- package/src/shared/mcp/constants/tool-export.constant.ts +0 -27
- package/src/shared/mcp/constants/tool-gc.constant.ts +0 -21
- package/src/shared/mcp/constants/tool-learn.constant.ts +0 -58
- package/src/shared/mcp/constants/tool-rebuild.constant.ts +0 -21
- package/src/shared/mcp/constants/tool-recall.constant.ts +0 -36
- package/src/shared/mcp/constants/tool-retrieve.constant.ts +0 -31
- package/src/shared/mcp/constants/tool-search.constant.ts +0 -51
- package/src/shared/mcp/constants/tool-skill-delete.constant.ts +0 -24
- package/src/shared/mcp/constants/tool-skill-get.constant.ts +0 -27
- package/src/shared/mcp/constants/tool-skill-learn.constant.ts +0 -37
- package/src/shared/mcp/constants/tool-skill-list.constant.ts +0 -18
- package/src/shared/mcp/constants/tool-status.constant.ts +0 -20
- package/src/shared/mcp/constants/tool-unlearn.constant.ts +0 -25
- package/src/shared/mcp/functions/as-boolean-or-undefined.function.ts +0 -11
- package/src/shared/mcp/functions/as-string-array-or-undefined.function.ts +0 -17
- package/src/shared/mcp/functions/as-string-array.function.ts +0 -15
- package/src/shared/mcp/functions/as-string.function.ts +0 -10
- package/src/shared/mcp/functions/build-skills-text.function.ts +0 -43
- package/src/shared/mcp/functions/create-mcp-server.function.ts +0 -14
- package/src/shared/mcp/functions/create-prompt-definitions.function.ts +0 -102
- package/src/shared/mcp/functions/create-resource-templates.function.ts +0 -23
- package/src/shared/mcp/functions/create-tool-definitions.function.ts +0 -530
- package/src/shared/mcp/functions/extract-skill-arguments.function.ts +0 -27
- package/src/shared/mcp/functions/handle-agent-create.function.ts +0 -116
- package/src/shared/mcp/functions/handle-agent-delete.function.ts +0 -50
- package/src/shared/mcp/functions/handle-agent-get.function.ts +0 -160
- package/src/shared/mcp/functions/handle-agent-list.function.ts +0 -50
- package/src/shared/mcp/functions/handle-agent-prompt.function.ts +0 -68
- package/src/shared/mcp/functions/handle-completion.function.ts +0 -114
- package/src/shared/mcp/functions/handle-mcp-request.function.ts +0 -202
- package/src/shared/mcp/functions/handle-prompt-get.function.ts +0 -220
- package/src/shared/mcp/functions/handle-recall.function.ts +0 -66
- package/src/shared/mcp/functions/handle-resource-read.function.ts +0 -56
- package/src/shared/mcp/functions/handle-roots-list.function.ts +0 -29
- package/src/shared/mcp/functions/handle-skill-prompt.function.ts +0 -44
- package/src/shared/mcp/functions/handle-tool-auto-capture-review.function.ts +0 -24
- package/src/shared/mcp/functions/handle-tool-call.function.ts +0 -560
- package/src/shared/mcp/functions/handle-tool-check.function.ts +0 -21
- package/src/shared/mcp/functions/handle-tool-content.function.ts +0 -23
- package/src/shared/mcp/functions/handle-tool-export.function.ts +0 -25
- package/src/shared/mcp/functions/handle-tool-gc.function.ts +0 -21
- package/src/shared/mcp/functions/handle-tool-learn.function.ts +0 -69
- package/src/shared/mcp/functions/handle-tool-rebuild.function.ts +0 -21
- package/src/shared/mcp/functions/handle-tool-retrieve.function.ts +0 -40
- package/src/shared/mcp/functions/handle-tool-search.function.ts +0 -47
- package/src/shared/mcp/functions/handle-tool-skill-delete.function.ts +0 -34
- package/src/shared/mcp/functions/handle-tool-skill-get.function.ts +0 -59
- package/src/shared/mcp/functions/handle-tool-skill-learn.function.ts +0 -61
- package/src/shared/mcp/functions/handle-tool-skill-list.function.ts +0 -39
- package/src/shared/mcp/functions/handle-tool-status.function.ts +0 -21
- package/src/shared/mcp/functions/handle-tool-unlearn.function.ts +0 -24
- package/src/shared/mcp/functions/parse-agent-meta.function.ts +0 -27
- package/src/shared/mcp/functions/parse-skill-arguments.function.ts +0 -36
- package/src/shared/mcp/functions/parse-skill-content.function.ts +0 -38
- package/src/shared/mcp/functions/read-agent-meta.function.ts +0 -41
- package/src/shared/mcp/functions/resolve-skill-refs.function.ts +0 -50
- package/src/shared/mcp/functions/run-startup-health-check.function.ts +0 -34
- package/src/shared/mcp/functions/serialize-skill-content.function.ts +0 -12
- package/src/shared/mcp/functions/should-emit-log.function.ts +0 -38
- package/src/shared/mcp/index.ts +0 -28
- package/src/shared/mcp/typings/agent-types.interface.ts +0 -39
- package/src/shared/mcp/typings/log-types.interface.ts +0 -26
- package/src/shared/mcp/typings/mcp-capabilities.interface.ts +0 -16
- package/src/shared/mcp/typings/mcp-client.interface.ts +0 -317
- package/src/shared/mcp/typings/mcp-completion.interface.ts +0 -45
- package/src/shared/mcp/typings/mcp-content-result.model.ts +0 -9
- package/src/shared/mcp/typings/mcp-export-result.model.ts +0 -11
- package/src/shared/mcp/typings/mcp-gc-result.model.ts +0 -15
- package/src/shared/mcp/typings/mcp-integrity-check-result.model.ts +0 -17
- package/src/shared/mcp/typings/mcp-integrity-error.model.ts +0 -15
- package/src/shared/mcp/typings/mcp-notification.interface.ts +0 -9
- package/src/shared/mcp/typings/mcp-rebuild-result.model.ts +0 -9
- package/src/shared/mcp/typings/mcp-request.interface.ts +0 -11
- package/src/shared/mcp/typings/mcp-resource-result.interface.ts +0 -12
- package/src/shared/mcp/typings/mcp-resource-template.interface.ts +0 -11
- package/src/shared/mcp/typings/mcp-response.interface.ts +0 -18
- package/src/shared/mcp/typings/mcp-server-info.interface.ts +0 -7
- package/src/shared/mcp/typings/mcp-server-state.interface.ts +0 -17
- package/src/shared/mcp/typings/mcp-tool-annotations.interface.ts +0 -32
- package/src/shared/mcp/typings/mcp-tool-definition.interface.ts +0 -16
- package/src/shared/mcp/typings/mcp-tool-result.interface.ts +0 -19
- package/src/shared/mcp/typings/mcp-types.interface.ts +0 -158
- package/src/shared/mcp/typings/mcp-worker-client.interface.ts +0 -243
- package/src/shared/mcp/typings/prompt-types.interface.ts +0 -39
- package/src/shared/mcp/typings/remove-section-result.model.ts +0 -10
- package/src/shared/mcp/typings/sampling-types.interface.ts +0 -48
- package/src/shared/mcp/typings/skill-types.interface.ts +0 -29
- package/src/shared/mcp/typings/tool-call-result.model.ts +0 -18
- package/src/shared/mod.ts +0 -1
- package/src/shared/platform/functions/get-ipc-path.function.ts +0 -19
- package/src/shared/platform/functions/get-tmpdir.function.ts +0 -8
- package/src/shared/platform/functions/is-process-alive.function.ts +0 -17
- package/src/shared/platform/index.ts +0 -3
- package/src/shared/runtime/functions/detect-runtime.ts +0 -14
- package/src/shared/runtime/functions/get-args.ts +0 -16
- package/src/shared/runtime/index.ts +0 -3
- package/src/shared/runtime/typings/runtime.ts +0 -2
- package/src/shared/sync/functions/build-import-report.function.ts +0 -40
- package/src/shared/sync/functions/parse-export-entry.function.ts +0 -45
- package/src/shared/sync/functions/resolve-conflict.function.ts +0 -31
- package/src/shared/sync/functions/serialize-export-entry.function.ts +0 -18
- package/src/shared/sync/index.ts +0 -9
- package/src/shared/sync/typings/conflict-resolution.type.ts +0 -8
- package/src/shared/sync/typings/export-entry.interface.ts +0 -13
- package/src/shared/sync/typings/export-options.interface.ts +0 -9
- package/src/shared/sync/typings/import-options.interface.ts +0 -7
- package/src/shared/sync/typings/import-report.interface.ts +0 -15
- package/src/shared/version/constants/version.constant.ts +0 -2
- package/src/shared/version/index.ts +0 -1
- package/src/shared/wasm-codec/functions/decode-add-section-result.function.ts +0 -112
- package/src/shared/wasm-codec/functions/decode-compose-output.function.ts +0 -16
- package/src/shared/wasm-codec/functions/decode-document-manifest-list.function.ts +0 -70
- package/src/shared/wasm-codec/functions/decode-document-manifest.function.ts +0 -87
- package/src/shared/wasm-codec/functions/decode-f32.function.ts +0 -16
- package/src/shared/wasm-codec/functions/decode-key-value-text.function.ts +0 -15
- package/src/shared/wasm-codec/functions/decode-one-recall-result.function.ts +0 -86
- package/src/shared/wasm-codec/functions/decode-option-string.function.ts +0 -24
- package/src/shared/wasm-codec/functions/decode-recall-document.function.ts +0 -59
- package/src/shared/wasm-codec/functions/decode-recall-reference.function.ts +0 -52
- package/src/shared/wasm-codec/functions/decode-recall-result.function.ts +0 -267
- package/src/shared/wasm-codec/functions/decode-recall-sibling.function.ts +0 -43
- package/src/shared/wasm-codec/functions/decode-remove-flag.function.ts +0 -3
- package/src/shared/wasm-codec/functions/decode-scored-results.function.ts +0 -194
- package/src/shared/wasm-codec/functions/decode-section-match.function.ts +0 -80
- package/src/shared/wasm-codec/functions/decode-section-record-list.function.ts +0 -20
- package/src/shared/wasm-codec/functions/decode-section-record-trailing.function.ts +0 -75
- package/src/shared/wasm-codec/functions/decode-section-record.function.ts +0 -85
- package/src/shared/wasm-codec/functions/decode-section-records.function.ts +0 -249
- package/src/shared/wasm-codec/functions/decode-section-type.function.ts +0 -30
- package/src/shared/wasm-codec/functions/decode-string.function.ts +0 -22
- package/src/shared/wasm-codec/functions/decode-u32.function.ts +0 -16
- package/src/shared/wasm-codec/functions/decode-u64.function.ts +0 -16
- package/src/shared/wasm-codec/functions/decode-wasm-list.function.ts +0 -31
- package/src/shared/wasm-codec/functions/encode-add-section-params.function.ts +0 -102
- package/src/shared/wasm-codec/functions/encode-group-params.function.ts +0 -28
- package/src/shared/wasm-codec/functions/encode-identifier-list.function.ts +0 -17
- package/src/shared/wasm-codec/functions/encode-kbid-list.function.ts +0 -17
- package/src/shared/wasm-codec/functions/encode-option-string.function.ts +0 -14
- package/src/shared/wasm-codec/functions/encode-recall-params.function.ts +0 -68
- package/src/shared/wasm-codec/functions/encode-search-params.function.ts +0 -12
- package/src/shared/wasm-codec/functions/encode-section-type.function.ts +0 -18
- package/src/shared/wasm-codec/functions/encode-string.function.ts +0 -9
- package/src/shared/wasm-codec/functions/encode-type-filter-param.function.ts +0 -13
- package/src/shared/wasm-codec/functions/encode-u32.function.ts +0 -5
- package/src/shared/wasm-codec/functions/encode-update-section-params.function.ts +0 -16
- package/src/shared/wasm-codec/index.ts +0 -49
- package/src/shared/wasm-codec/typings/add-section-input.model.ts +0 -45
- package/src/shared/wasm-codec/typings/add-section-result.model.ts +0 -28
- package/src/shared/wasm-codec/typings/document-manifest.model.ts +0 -20
- package/src/shared/wasm-codec/typings/document-section.model.ts +0 -12
- package/src/shared/wasm-codec/typings/item-decoder.type.ts +0 -10
- package/src/shared/wasm-codec/typings/near-duplicate.model.ts +0 -16
- package/src/shared/wasm-codec/typings/paged-search-result.model.ts +0 -22
- package/src/shared/wasm-codec/typings/section-match.model.ts +0 -31
- package/src/shared/wasm-codec/typings/section-record-trailing.model.ts +0 -38
- package/src/shared/wasm-codec/typings/section-record.model.ts +0 -66
- package/src/shared/wasm-codec/typings/section-type-result.model.ts +0 -12
- package/src/shared/worker-client/classes/worker-client.class.ts +0 -466
- package/src/shared/worker-client/functions/compute-context-id.function.ts +0 -18
- package/src/shared/worker-client/functions/create-worker-client.function.ts +0 -70
- package/src/shared/worker-client/functions/discover-daemon.function.ts +0 -47
- package/src/shared/worker-client/functions/handle-ipc-data.function.ts +0 -49
- package/src/shared/worker-client/functions/resolve-db-path.function.ts +0 -21
- package/src/shared/worker-client/functions/send-ipc-request.function.ts +0 -39
- package/src/shared/worker-client/functions/spawn-daemon.function.ts +0 -35
- package/src/shared/worker-client/functions/wait-for-daemon.function.ts +0 -34
- package/src/shared/worker-client/index.ts +0 -44
- package/src/shared/worker-client/typings/add-section-result.model.ts +0 -39
- package/src/shared/worker-client/typings/content-result.model.ts +0 -12
- package/src/shared/worker-client/typings/daemon-info.model.ts +0 -7
- package/src/shared/worker-client/typings/export-result.model.ts +0 -14
- package/src/shared/worker-client/typings/gc-result.model.ts +0 -18
- package/src/shared/worker-client/typings/integrity-check-result.model.ts +0 -43
- package/src/shared/worker-client/typings/json-rpc-response.interface.ts +0 -17
- package/src/shared/worker-client/typings/migrate-result.model.ts +0 -11
- package/src/shared/worker-client/typings/pending-call.interface.ts +0 -7
- package/src/shared/worker-client/typings/rebuild-result.model.ts +0 -12
- package/src/shared/worker-client/typings/recall-document.model.ts +0 -16
- package/src/shared/worker-client/typings/recall-params.model.ts +0 -15
- package/src/shared/worker-client/typings/recall-reference.model.ts +0 -32
- package/src/shared/worker-client/typings/recall-result.model.ts +0 -98
- package/src/shared/worker-client/typings/recall-sibling.model.ts +0 -11
- package/src/shared/worker-client/typings/recall-single-result.model.ts +0 -41
- package/src/shared/worker-client/typings/remove-section-result.model.ts +0 -7
- package/src/shared/worker-client/typings/search-params.model.ts +0 -14
- package/src/shared/worker-client/typings/search-result.model.ts +0 -43
- package/src/shared/worker-client/typings/section.model.ts +0 -43
- package/src/shared/worker-client/typings/status-result.model.ts +0 -14
- package/src/shared/worker-client/typings/version-status.model.ts +0 -28
- package/src/shared/worker-client/typings/worker-client-error.interface.ts +0 -8
- package/src/shared/worker-client/typings/worker-client-options.interface.ts +0 -30
- package/src/shared/worker-daemon/classes/ipc-error.class.ts +0 -22
- package/src/shared/worker-daemon/classes/worker-daemon.class.ts +0 -1291
- package/src/shared/worker-daemon/constants/daemon-defaults.constant.ts +0 -29
- package/src/shared/worker-daemon/constants/wasm-method-map.constant.ts +0 -69
- package/src/shared/worker-daemon/functions/build-ipc-error-response.function.ts +0 -16
- package/src/shared/worker-daemon/functions/check-catalog-version.function.ts +0 -54
- package/src/shared/worker-daemon/functions/check-preconditions.function.ts +0 -28
- package/src/shared/worker-daemon/functions/create-host-imports.function.ts +0 -328
- package/src/shared/worker-daemon/functions/create-ipc-server.function.ts +0 -87
- package/src/shared/worker-daemon/functions/detect-stale-pid.function.ts +0 -33
- package/src/shared/worker-daemon/functions/dispatch-request.function.ts +0 -190
- package/src/shared/worker-daemon/functions/handle-check-version.function.ts +0 -74
- package/src/shared/worker-daemon/functions/handle-config-method.function.ts +0 -27
- package/src/shared/worker-daemon/functions/handle-read-ops.function.ts +0 -236
- package/src/shared/worker-daemon/functions/handle-write-ops.function.ts +0 -257
- package/src/shared/worker-daemon/functions/load-wasm-modules.function.ts +0 -95
- package/src/shared/worker-daemon/functions/parse-auto-capture-section.function.ts +0 -51
- package/src/shared/worker-daemon/functions/parse-catalog-version.function.ts +0 -20
- package/src/shared/worker-daemon/functions/parse-embedding-section.function.ts +0 -38
- package/src/shared/worker-daemon/functions/parse-worker-toml.function.ts +0 -104
- package/src/shared/worker-daemon/functions/read-config.function.ts +0 -83
- package/src/shared/worker-daemon/functions/run-startup-integrity-check.function.ts +0 -55
- package/src/shared/worker-daemon/functions/run-worker.function.ts +0 -57
- package/src/shared/worker-daemon/functions/scan-near-duplicates.function.ts +0 -92
- package/src/shared/worker-daemon/functions/start-daemon.function.ts +0 -74
- package/src/shared/worker-daemon/functions/wasm-bridge.function.ts +0 -144
- package/src/shared/worker-daemon/functions/wasm-memory-helpers.function.ts +0 -41
- package/src/shared/worker-daemon/functions/write-lock.function.ts +0 -49
- package/src/shared/worker-daemon/index.ts +0 -16
- package/src/shared/worker-daemon/typings/allocator-ref.interface.ts +0 -16
- package/src/shared/worker-daemon/typings/daemon-config.interface.ts +0 -20
- package/src/shared/worker-daemon/typings/fs-adapter.interface.ts +0 -22
- package/src/shared/worker-daemon/typings/handler-context.interface.ts +0 -19
- package/src/shared/worker-daemon/typings/ipc-handler.interface.ts +0 -39
- package/src/shared/worker-daemon/typings/memory-ref.interface.ts +0 -13
- package/src/shared/worker-daemon/typings/wasm-fn.type.ts +0 -2
- package/src/shared/worker-daemon/typings/wasm-modules.interface.ts +0 -7
- package/src/shared/worker-daemon/typings/write-lock.interface.ts +0 -13
- package/src/wasm/fs-database/kbdb_fs_database.d.ts +0 -259
- package/src/wasm/fs-database/kbdb_fs_database.js +0 -515
- package/src/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
- package/src/wasm/fs-database/kbdb_fs_database_bg.wasm.d.ts +0 -35
- package/src/wasm/fs-database/package.json +0 -13
- package/src/wasm/kb-worker/kbdb_worker.d.ts +0 -650
- package/src/wasm/kb-worker/kbdb_worker.js +0 -1181
- package/src/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
- package/src/wasm/kb-worker/kbdb_worker_bg.wasm.d.ts +0 -77
- package/src/wasm/kb-worker/package.json +0 -13
- package/src/wasm/query-parser/kbdb_query_parser.d.ts +0 -195
- package/src/wasm/query-parser/kbdb_query_parser.js +0 -403
- package/src/wasm/query-parser/kbdb_query_parser_bg.wasm +0 -0
- package/src/wasm/query-parser/kbdb_query_parser_bg.wasm.d.ts +0 -25
- package/src/wasm/query-parser/package.json +0 -13
- package/src/worker.ts +0 -42
|
@@ -1,223 +0,0 @@
|
|
|
1
|
-
import { readFileSync, readdirSync, statSync } from 'node:fs';
|
|
2
|
-
import { basename, extname, join } from 'node:path';
|
|
3
|
-
import type { CliOptions } from '../typings/cli-options.interface.ts';
|
|
4
|
-
import type { LearnResult } from '../typings/learn-result.model.ts';
|
|
5
|
-
import { SUPPORTED_EXTENSIONS } from '../constants/defaults.constant.ts';
|
|
6
|
-
|
|
7
|
-
/** Enriched add-section result returned by the daemon. */
|
|
8
|
-
interface AddSectionResult {
|
|
9
|
-
/** Knowledge-base identifier assigned to the new section. */
|
|
10
|
-
readonly kbid: string;
|
|
11
|
-
/**
|
|
12
|
-
* Kbid of the section superseded via `--replace`,
|
|
13
|
-
* or `null` / `undefined` when none.
|
|
14
|
-
*/
|
|
15
|
-
readonly superseded?: string | null;
|
|
16
|
-
/**
|
|
17
|
-
* Advisory warning strings (e.g. `"heading_missing"`).
|
|
18
|
-
* May be absent from older daemon versions.
|
|
19
|
-
*/
|
|
20
|
-
readonly warnings?: string[];
|
|
21
|
-
/**
|
|
22
|
-
* Near-duplicate sections with similarity >= 0.85.
|
|
23
|
-
* May be absent from older daemon versions.
|
|
24
|
-
*/
|
|
25
|
-
readonly near_duplicates?: {
|
|
26
|
-
readonly kbid: string;
|
|
27
|
-
readonly similarity: number;
|
|
28
|
-
}[];
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Minimal client interface required by `runLearn`.
|
|
33
|
-
*
|
|
34
|
-
* Decouples the CLI function from the concrete `WorkerClient`
|
|
35
|
-
* implementation, making it straightforward to test with mocks.
|
|
36
|
-
*/
|
|
37
|
-
export interface LearnClient {
|
|
38
|
-
/**
|
|
39
|
-
* Ingests a content section into the knowledge base.
|
|
40
|
-
*
|
|
41
|
-
* @param params - section metadata and raw text content
|
|
42
|
-
* @returns enriched result containing the new kbid plus
|
|
43
|
-
* optional supersession, warnings, and near-duplicate info
|
|
44
|
-
*/
|
|
45
|
-
addSection(params: {
|
|
46
|
-
sectionType: string;
|
|
47
|
-
content: string;
|
|
48
|
-
title?: string;
|
|
49
|
-
description?: string;
|
|
50
|
-
docid?: string;
|
|
51
|
-
tags?: string[];
|
|
52
|
-
replace?: boolean;
|
|
53
|
-
/**
|
|
54
|
-
* Absolute path to the source file. Required for supersession
|
|
55
|
-
* via source key when `replace` is `true`.
|
|
56
|
-
*/
|
|
57
|
-
sourcePath?: string;
|
|
58
|
-
}): Promise<AddSectionResult>;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/** Injectable I/O for testing without real stdin. */
|
|
62
|
-
export interface LearnIO {
|
|
63
|
-
readStdin: () => Promise<string>;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Ingests one or more files or directories listed in `options.args`
|
|
68
|
-
* into the knowledge base via the provided client.
|
|
69
|
-
*
|
|
70
|
-
* Each argument is resolved to a set of supported files. Unsupported
|
|
71
|
-
* extensions, dotfiles, dot-directories, and non-existent paths are
|
|
72
|
-
* silently skipped. The `-` argument reads content from stdin
|
|
73
|
-
* (consumed only once).
|
|
74
|
-
*
|
|
75
|
-
* @param client - learn client to delegate ingestion to
|
|
76
|
-
* @param options - parsed CLI options whose `args` list targets to
|
|
77
|
-
* ingest
|
|
78
|
-
* @param io - injectable I/O (defaults to reading process.stdin)
|
|
79
|
-
* @returns one `LearnResult` per file successfully ingested
|
|
80
|
-
*/
|
|
81
|
-
export async function runLearn(
|
|
82
|
-
client: LearnClient,
|
|
83
|
-
options: CliOptions,
|
|
84
|
-
io?: LearnIO,
|
|
85
|
-
): Promise<LearnResult[]> {
|
|
86
|
-
const results: LearnResult[] = [];
|
|
87
|
-
let stdinConsumed = false;
|
|
88
|
-
const readStdin = io?.readStdin ?? readProcessStdin;
|
|
89
|
-
|
|
90
|
-
for (const target of options.args) {
|
|
91
|
-
if (target === '-') {
|
|
92
|
-
if (stdinConsumed) continue;
|
|
93
|
-
stdinConsumed = true;
|
|
94
|
-
const content = await readStdin();
|
|
95
|
-
const result = await client.addSection({
|
|
96
|
-
sectionType: 'text',
|
|
97
|
-
content,
|
|
98
|
-
title: options.title,
|
|
99
|
-
description: options.description,
|
|
100
|
-
docid: options.docid,
|
|
101
|
-
tags: options.tags,
|
|
102
|
-
replace: options.replace,
|
|
103
|
-
});
|
|
104
|
-
results.push(mapAddSectionResult(result, '-', content.length));
|
|
105
|
-
continue;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
const files = collectFiles(target);
|
|
109
|
-
for (const file of files) {
|
|
110
|
-
const content = readFileSync(file, 'utf-8');
|
|
111
|
-
const result = await client.addSection({
|
|
112
|
-
sectionType: 'text',
|
|
113
|
-
content,
|
|
114
|
-
title: options.title,
|
|
115
|
-
description: options.description,
|
|
116
|
-
docid: options.docid,
|
|
117
|
-
tags: options.tags,
|
|
118
|
-
replace: options.replace,
|
|
119
|
-
sourcePath: file,
|
|
120
|
-
});
|
|
121
|
-
results.push(
|
|
122
|
-
mapAddSectionResult(result, file, content.length),
|
|
123
|
-
);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
return results;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* Maps an `AddSectionResult` to a `LearnResult` record.
|
|
132
|
-
*
|
|
133
|
-
* @param result - raw result from `client.addSection()`
|
|
134
|
-
* @param path - source file path or `'-'` for stdin
|
|
135
|
-
* @param size - UTF-8 character count of the ingested content
|
|
136
|
-
*/
|
|
137
|
-
function mapAddSectionResult(
|
|
138
|
-
result: AddSectionResult,
|
|
139
|
-
path: string,
|
|
140
|
-
size: number,
|
|
141
|
-
): LearnResult {
|
|
142
|
-
return {
|
|
143
|
-
kbid: result.kbid,
|
|
144
|
-
path,
|
|
145
|
-
size,
|
|
146
|
-
skipped: false,
|
|
147
|
-
superseded: result.superseded ?? null,
|
|
148
|
-
warnings: result.warnings ?? [],
|
|
149
|
-
near_duplicates: result.near_duplicates ?? [],
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
function readProcessStdin(): Promise<string> {
|
|
154
|
-
return new Promise<string>((resolve) => {
|
|
155
|
-
const chunks: Buffer[] = [];
|
|
156
|
-
process.stdin.on('data', (chunk: Buffer) => {
|
|
157
|
-
chunks.push(chunk);
|
|
158
|
-
});
|
|
159
|
-
process.stdin.on('end', () => {
|
|
160
|
-
resolve(Buffer.concat(chunks).toString('utf-8'));
|
|
161
|
-
});
|
|
162
|
-
process.stdin.resume();
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
/**
|
|
167
|
-
* Resolves a single target path to a flat list of supported files.
|
|
168
|
-
*
|
|
169
|
-
* Returns an empty array for non-existent or inaccessible paths.
|
|
170
|
-
*
|
|
171
|
-
* @param target - file or directory path to resolve
|
|
172
|
-
*/
|
|
173
|
-
function collectFiles(target: string): string[] {
|
|
174
|
-
try {
|
|
175
|
-
const stat = statSync(target);
|
|
176
|
-
if (stat.isFile()) {
|
|
177
|
-
return isSupportedFile(target) ? [target] : [];
|
|
178
|
-
}
|
|
179
|
-
if (stat.isDirectory()) {
|
|
180
|
-
return scanDirectory(target);
|
|
181
|
-
}
|
|
182
|
-
} catch {
|
|
183
|
-
// Non-existent or inaccessible path -- skip
|
|
184
|
-
}
|
|
185
|
-
return [];
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
/**
|
|
189
|
-
* Recursively scans a directory and returns all supported files,
|
|
190
|
-
* excluding dot-entries at every level.
|
|
191
|
-
*
|
|
192
|
-
* @param dir - absolute or relative directory path to scan
|
|
193
|
-
*/
|
|
194
|
-
function scanDirectory(dir: string): string[] {
|
|
195
|
-
const files: string[] = [];
|
|
196
|
-
for (const entry of readdirSync(dir)) {
|
|
197
|
-
if (entry.startsWith('.')) continue;
|
|
198
|
-
const full = join(dir, entry);
|
|
199
|
-
try {
|
|
200
|
-
const stat = statSync(full);
|
|
201
|
-
if (stat.isDirectory()) {
|
|
202
|
-
files.push(...scanDirectory(full));
|
|
203
|
-
} else if (isSupportedFile(full)) {
|
|
204
|
-
files.push(full);
|
|
205
|
-
}
|
|
206
|
-
} catch {
|
|
207
|
-
// Skip inaccessible entries
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
return files;
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
/**
|
|
214
|
-
* Returns `true` when the file's extension is in
|
|
215
|
-
* `SUPPORTED_EXTENSIONS`.
|
|
216
|
-
*
|
|
217
|
-
* @param path - file path to check
|
|
218
|
-
*/
|
|
219
|
-
function isSupportedFile(path: string): boolean {
|
|
220
|
-
if (basename(path).startsWith('.')) return false;
|
|
221
|
-
const ext = extname(path).toLowerCase();
|
|
222
|
-
return (SUPPORTED_EXTENSIONS as readonly string[]).includes(ext);
|
|
223
|
-
}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { resolve } from 'node:path';
|
|
2
|
-
import type { CliOptions } from '../typings/cli-options.interface.ts';
|
|
3
|
-
import type { MigrateResult } from '../../worker-client/typings/migrate-result.model.ts';
|
|
4
|
-
import type {
|
|
5
|
-
VersionCompatibility,
|
|
6
|
-
VersionStatus,
|
|
7
|
-
} from '../../worker-client/typings/version-status.model.ts';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Result returned by `runMigrate` describing the outcome of the
|
|
11
|
-
* migration attempt.
|
|
12
|
-
*/
|
|
13
|
-
export interface MigrateCommandResult {
|
|
14
|
-
/**
|
|
15
|
-
* The compatibility status returned by the version check.
|
|
16
|
-
* Mirrors `VersionStatus.status`.
|
|
17
|
-
*/
|
|
18
|
-
readonly status: VersionCompatibility;
|
|
19
|
-
/** Full version status from the pre-migration check. */
|
|
20
|
-
readonly versionStatus: VersionStatus;
|
|
21
|
-
/**
|
|
22
|
-
* Migration report when `status` is `'needs_migration'`.
|
|
23
|
-
* `undefined` for `'compatible'` and `'too_new'` outcomes.
|
|
24
|
-
*/
|
|
25
|
-
readonly migrateResult?: MigrateResult;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Minimal client interface required by `runMigrate`.
|
|
30
|
-
*
|
|
31
|
-
* Decouples the CLI function from the concrete `WorkerClient`
|
|
32
|
-
* implementation, making it straightforward to test with mocks.
|
|
33
|
-
*/
|
|
34
|
-
export interface MigrateClient {
|
|
35
|
-
/**
|
|
36
|
-
* Checks the database format version against the WASM engine.
|
|
37
|
-
*
|
|
38
|
-
* @param targetPath - absolute path to the `.kbdb` database root
|
|
39
|
-
*/
|
|
40
|
-
checkVersion(targetPath: string): Promise<VersionStatus>;
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Runs all pending database migrations.
|
|
44
|
-
*
|
|
45
|
-
* @param targetPath - absolute path to the `.kbdb` database root
|
|
46
|
-
*/
|
|
47
|
-
migrateDatabase(targetPath: string): Promise<MigrateResult>;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Checks the database version and runs pending migrations when needed.
|
|
52
|
-
*
|
|
53
|
-
* Resolution order:
|
|
54
|
-
* - `'compatible'`: returns without running migrations
|
|
55
|
-
* - `'needs_migration'`: calls `client.migrateDatabase` and returns
|
|
56
|
-
* the migration report
|
|
57
|
-
* - `'too_new'`: returns without running migrations (caller should
|
|
58
|
-
* print an error and exit non-zero)
|
|
59
|
-
*
|
|
60
|
-
* @param client - migrate client to delegate to
|
|
61
|
-
* @param options - parsed CLI options supplying the optional `dbPath`
|
|
62
|
-
* @returns result containing the version status and optional migration
|
|
63
|
-
* report
|
|
64
|
-
*/
|
|
65
|
-
export async function runMigrate(
|
|
66
|
-
client: MigrateClient,
|
|
67
|
-
options: CliOptions,
|
|
68
|
-
): Promise<MigrateCommandResult> {
|
|
69
|
-
const targetPath = options.dbPath
|
|
70
|
-
? resolve(options.dbPath)
|
|
71
|
-
: process.cwd();
|
|
72
|
-
|
|
73
|
-
const versionStatus = await client.checkVersion(targetPath);
|
|
74
|
-
|
|
75
|
-
if (versionStatus.status === 'needs_migration') {
|
|
76
|
-
const migrateResult = await client.migrateDatabase(targetPath);
|
|
77
|
-
return {
|
|
78
|
-
status: 'needs_migration',
|
|
79
|
-
versionStatus,
|
|
80
|
-
migrateResult,
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
return { status: versionStatus.status, versionStatus };
|
|
85
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import type { CliOptions } from '../typings/cli-options.interface.ts';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Index rebuild report returned by the daemon.
|
|
5
|
-
*/
|
|
6
|
-
interface RebuildResult {
|
|
7
|
-
/** Number of text and code sections that were re-indexed. */
|
|
8
|
-
readonly sections_reindexed: number;
|
|
9
|
-
/** Total number of unique terms written to the rebuilt indexes. */
|
|
10
|
-
readonly terms_indexed: number;
|
|
11
|
-
/** Time taken to complete the rebuild, in milliseconds. */
|
|
12
|
-
readonly elapsed_ms: number;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Minimal client interface required by `runRebuild`.
|
|
17
|
-
*
|
|
18
|
-
* Decouples the CLI function from the concrete `WorkerClient`
|
|
19
|
-
* implementation, making it straightforward to test with mocks.
|
|
20
|
-
*/
|
|
21
|
-
export interface RebuildClient {
|
|
22
|
-
/**
|
|
23
|
-
* Reconstructs all index files from section files and document
|
|
24
|
-
* manifests on disk. Text and code sections are re-tokenized;
|
|
25
|
-
* image sections are skipped.
|
|
26
|
-
*
|
|
27
|
-
* @returns a report of sections and terms re-indexed
|
|
28
|
-
*/
|
|
29
|
-
rebuildIndexes(): Promise<RebuildResult>;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Rebuilds all database indexes and returns the report.
|
|
34
|
-
*
|
|
35
|
-
* Delegates to `client.rebuildIndexes()`. The caller is responsible
|
|
36
|
-
* for printing the result to stdout.
|
|
37
|
-
*
|
|
38
|
-
* @param client - rebuild client to delegate to
|
|
39
|
-
* @param _options - parsed CLI options (unused; reserved for future flags)
|
|
40
|
-
* @returns the index rebuild report from the daemon
|
|
41
|
-
*/
|
|
42
|
-
export async function runRebuild(
|
|
43
|
-
client: RebuildClient,
|
|
44
|
-
_options: CliOptions,
|
|
45
|
-
): Promise<RebuildResult> {
|
|
46
|
-
return client.rebuildIndexes();
|
|
47
|
-
}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import type { CliOptions } from '../typings/cli-options.interface.ts';
|
|
2
|
-
import type { RecallResult } from '../../worker-client/typings/recall-result.model.ts';
|
|
3
|
-
|
|
4
|
-
/** Maximum allowed expansion depth for recall operations. */
|
|
5
|
-
const MAX_RECALL_DEPTH = 3;
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Minimal client interface required by `runRecall`.
|
|
9
|
-
*
|
|
10
|
-
* Decouples the CLI function from the concrete `WorkerClient`
|
|
11
|
-
* implementation, making it straightforward to test with mocks.
|
|
12
|
-
*/
|
|
13
|
-
export interface RecallClient {
|
|
14
|
-
/**
|
|
15
|
-
* Retrieves full content and context for one or more sections
|
|
16
|
-
* by their knowledge-base identifiers.
|
|
17
|
-
*
|
|
18
|
-
* @param params - section identifier(s) and optional expansion
|
|
19
|
-
* depth (0--3)
|
|
20
|
-
* @returns a single `RecallResult` when `kbid` is supplied, or
|
|
21
|
-
* a `RecallResult[]` when `kbids` is supplied
|
|
22
|
-
*/
|
|
23
|
-
recall(params: {
|
|
24
|
-
kbid?: string;
|
|
25
|
-
kbids?: string[];
|
|
26
|
-
depth?: number;
|
|
27
|
-
}): Promise<RecallResult | RecallResult[]>;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Retrieves full content and progressive context for one or more
|
|
32
|
-
* sections by kbid via the provided client.
|
|
33
|
-
*
|
|
34
|
-
* Returns an error result when no kbids are provided in
|
|
35
|
-
* `options.args`. For a single kbid, calls `client.recall` with the
|
|
36
|
-
* `kbid` parameter and returns the single `RecallResult`. For
|
|
37
|
-
* multiple kbids, calls `client.recall` with the `kbids` array.
|
|
38
|
-
*
|
|
39
|
-
* The `depth` option is read from `options.depth`, defaulting to 0
|
|
40
|
-
* and clamped to the range 0--3.
|
|
41
|
-
*
|
|
42
|
-
* @param client - recall client to delegate to
|
|
43
|
-
* @param options - parsed CLI options supplying kbids in `args` and
|
|
44
|
-
* expansion depth in `depth`
|
|
45
|
-
* @returns the `RecallResult` or `RecallResult[]` from the client,
|
|
46
|
-
* or an error object when no kbids are provided
|
|
47
|
-
*/
|
|
48
|
-
export async function runRecall(
|
|
49
|
-
client: RecallClient,
|
|
50
|
-
options: CliOptions,
|
|
51
|
-
): Promise<RecallResult | RecallResult[] | { error: string }> {
|
|
52
|
-
if (options.args.length === 0) {
|
|
53
|
-
return { error: 'no kbid provided' };
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const depth = Math.min(
|
|
57
|
-
MAX_RECALL_DEPTH,
|
|
58
|
-
Math.max(0, options.depth ?? 0),
|
|
59
|
-
);
|
|
60
|
-
|
|
61
|
-
if (options.args.length === 1) {
|
|
62
|
-
return client.recall({ kbid: options.args[0], depth });
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
return client.recall({ kbids: options.args, depth });
|
|
66
|
-
}
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import type { CliOptions } from '../typings/cli-options.interface.ts';
|
|
2
|
-
import type { PagedSearchDisplay } from '../typings/search-display.model.ts';
|
|
3
|
-
|
|
4
|
-
/** A single raw search result item returned by the daemon. */
|
|
5
|
-
interface RawSearchItem {
|
|
6
|
-
/** Knowledge-base identifier of the matched section. */
|
|
7
|
-
readonly kbid: string;
|
|
8
|
-
/** Section heading, or null when untitled. */
|
|
9
|
-
readonly heading: string | null;
|
|
10
|
-
/** MIME type of the section content. */
|
|
11
|
-
readonly type: string;
|
|
12
|
-
/** Document IDs this section belongs to. */
|
|
13
|
-
readonly docids: readonly string[];
|
|
14
|
-
/** Relevance score from the ranking engine. */
|
|
15
|
-
readonly score: number;
|
|
16
|
-
/** KWIC excerpt centered on the highest-scoring matched term. */
|
|
17
|
-
readonly snippet: string;
|
|
18
|
-
/** Query terms that matched within this section. */
|
|
19
|
-
readonly matched_terms: readonly string[];
|
|
20
|
-
/**
|
|
21
|
-
* Fields that contained at least one match.
|
|
22
|
-
* May be absent from older daemon versions.
|
|
23
|
-
*/
|
|
24
|
-
readonly matched_fields?: readonly string[];
|
|
25
|
-
/**
|
|
26
|
-
* Normalised confidence score (0.0-1.0) relative to the top result.
|
|
27
|
-
* May be absent from older daemon versions.
|
|
28
|
-
*/
|
|
29
|
-
readonly confidence?: number;
|
|
30
|
-
/**
|
|
31
|
-
* ISO 8601 creation timestamp of the section.
|
|
32
|
-
* May be absent from older daemon versions.
|
|
33
|
-
*/
|
|
34
|
-
readonly created_at?: string;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/** Raw paginated search response from the daemon. */
|
|
38
|
-
interface RawSearchResponse {
|
|
39
|
-
/** Result items for the current page. */
|
|
40
|
-
readonly items: readonly RawSearchItem[];
|
|
41
|
-
/** Total number of matches across all pages. */
|
|
42
|
-
readonly total: number;
|
|
43
|
-
/** Number of results skipped. */
|
|
44
|
-
readonly offset: number;
|
|
45
|
-
/** Maximum results per page. */
|
|
46
|
-
readonly limit: number;
|
|
47
|
-
/** Whether more results exist beyond this page. */
|
|
48
|
-
readonly has_more: boolean;
|
|
49
|
-
/**
|
|
50
|
-
* When `true`, the engine relaxed the query to produce results.
|
|
51
|
-
* May be absent from older daemon versions.
|
|
52
|
-
*/
|
|
53
|
-
readonly relaxed?: boolean;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Minimal client interface required by `runSearch`.
|
|
58
|
-
*
|
|
59
|
-
* Decouples the CLI function from the concrete `WorkerClient`
|
|
60
|
-
* implementation, making it straightforward to test with mocks.
|
|
61
|
-
*/
|
|
62
|
-
export interface SearchClient {
|
|
63
|
-
/**
|
|
64
|
-
* Searches the knowledge base and returns paginated results.
|
|
65
|
-
*
|
|
66
|
-
* @param params - query, mode, limit, and offset
|
|
67
|
-
*/
|
|
68
|
-
search(params: {
|
|
69
|
-
query: string;
|
|
70
|
-
mode?: string;
|
|
71
|
-
limit?: number;
|
|
72
|
-
offset?: number;
|
|
73
|
-
algo?: string;
|
|
74
|
-
}): Promise<RawSearchResponse>;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Executes a search query via the provided client and maps the
|
|
79
|
-
* daemon results to the `PagedSearchDisplay` format used by the
|
|
80
|
-
* CLI.
|
|
81
|
-
*
|
|
82
|
-
* Returns an empty paged result without calling the client when
|
|
83
|
-
* `options.args` contains no query terms.
|
|
84
|
-
*
|
|
85
|
-
* @param client - search client to delegate to
|
|
86
|
-
* @param options - parsed CLI options supplying query args and
|
|
87
|
-
* search parameters
|
|
88
|
-
*/
|
|
89
|
-
export async function runSearch(
|
|
90
|
-
client: SearchClient,
|
|
91
|
-
options: CliOptions,
|
|
92
|
-
): Promise<PagedSearchDisplay> {
|
|
93
|
-
const query = options.args.join(' ').trim();
|
|
94
|
-
if (!query) {
|
|
95
|
-
return {
|
|
96
|
-
items: [],
|
|
97
|
-
total: 0,
|
|
98
|
-
offset: 0,
|
|
99
|
-
limit: options.limit,
|
|
100
|
-
has_more: false,
|
|
101
|
-
relaxed: false,
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
const results = await client.search({
|
|
106
|
-
query,
|
|
107
|
-
mode: options.mode,
|
|
108
|
-
limit: options.limit,
|
|
109
|
-
offset: options.offset,
|
|
110
|
-
algo: options.algo,
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
return {
|
|
114
|
-
items: results.items.map((r) => ({
|
|
115
|
-
kbid: r.kbid,
|
|
116
|
-
heading: r.heading,
|
|
117
|
-
type: r.type,
|
|
118
|
-
docids: r.docids,
|
|
119
|
-
score: r.score,
|
|
120
|
-
confidence: r.confidence ?? 0,
|
|
121
|
-
snippet: r.snippet,
|
|
122
|
-
matched_terms: r.matched_terms,
|
|
123
|
-
matched_fields: r.matched_fields ?? [],
|
|
124
|
-
created_at: r.created_at ?? '',
|
|
125
|
-
preview: '',
|
|
126
|
-
})),
|
|
127
|
-
total: results.total,
|
|
128
|
-
offset: results.offset,
|
|
129
|
-
limit: results.limit,
|
|
130
|
-
has_more: results.has_more,
|
|
131
|
-
relaxed: results.relaxed ?? false,
|
|
132
|
-
};
|
|
133
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import type { CliOptions } from '../typings/cli-options.interface.ts';
|
|
2
|
-
import type { CommandResult } from '../typings/command-result.model.ts';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Minimal client interface required by `runSkillDelete`.
|
|
6
|
-
*
|
|
7
|
-
* Decouples the CLI function from the concrete `WorkerClient`
|
|
8
|
-
* implementation, making it straightforward to test with mocks.
|
|
9
|
-
*/
|
|
10
|
-
export interface SkillDeleteClient {
|
|
11
|
-
/**
|
|
12
|
-
* Removes a section from the knowledge base.
|
|
13
|
-
*
|
|
14
|
-
* @param kbid - knowledge-base identifier of the section to remove
|
|
15
|
-
* @returns result indicating whether the section was found and removed
|
|
16
|
-
*/
|
|
17
|
-
removeSection(kbid: string): Promise<{ removed: boolean }>;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Deletes a skill section from the knowledge base by its kbid.
|
|
22
|
-
*
|
|
23
|
-
* The kbid must be supplied as the first positional argument. Returns
|
|
24
|
-
* an error result if it is missing.
|
|
25
|
-
*
|
|
26
|
-
* @param client - client used to remove the skill section
|
|
27
|
-
* @param options - parsed CLI options; `args[0]` is the kbid
|
|
28
|
-
* @returns a `CommandResult` with the kbid and removal status
|
|
29
|
-
*/
|
|
30
|
-
export async function runSkillDelete(
|
|
31
|
-
client: SkillDeleteClient,
|
|
32
|
-
options: CliOptions,
|
|
33
|
-
): Promise<CommandResult> {
|
|
34
|
-
const kbid = options.args[0];
|
|
35
|
-
if (!kbid) {
|
|
36
|
-
return { error: 'kbid is required', exitCode: 1 };
|
|
37
|
-
}
|
|
38
|
-
const result = await client.removeSection(kbid);
|
|
39
|
-
return {
|
|
40
|
-
output: JSON.stringify(
|
|
41
|
-
{ kbid, removed: result.removed },
|
|
42
|
-
null,
|
|
43
|
-
2,
|
|
44
|
-
),
|
|
45
|
-
exitCode: 0,
|
|
46
|
-
};
|
|
47
|
-
}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import type { CliOptions } from '../typings/cli-options.interface.ts';
|
|
2
|
-
import type { CommandResult } from '../typings/command-result.model.ts';
|
|
3
|
-
import { parseSkillContent } from '../../mcp/functions/parse-skill-content.function.ts';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Minimal client interface required by `runSkillGet`.
|
|
7
|
-
*
|
|
8
|
-
* Decouples the CLI function from the concrete `WorkerClient`
|
|
9
|
-
* implementation, making it straightforward to test with mocks.
|
|
10
|
-
*/
|
|
11
|
-
export interface SkillGetClient {
|
|
12
|
-
/**
|
|
13
|
-
* Retrieves one or more sections by their knowledge-base IDs.
|
|
14
|
-
*
|
|
15
|
-
* @param kbids - list of knowledge-base identifiers to fetch
|
|
16
|
-
* @returns matching section rows
|
|
17
|
-
*/
|
|
18
|
-
readSections(
|
|
19
|
-
kbids: string[],
|
|
20
|
-
): Promise<{ kbid: string; content: string }[]>;
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Retrieves all sections stored with the given type name.
|
|
24
|
-
*
|
|
25
|
-
* @param sectionType - the type name to filter by
|
|
26
|
-
* @returns matching section rows
|
|
27
|
-
*/
|
|
28
|
-
listByType(
|
|
29
|
-
sectionType: string,
|
|
30
|
-
): Promise<
|
|
31
|
-
{ kbid: string; title: string | null; content: string }[]
|
|
32
|
-
>;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Retrieves a skill definition by name or kbid.
|
|
37
|
-
*
|
|
38
|
-
* Accepts the identifier as the first positional argument or as
|
|
39
|
-
* `options.name`. When the identifier looks like a hex hash
|
|
40
|
-
* (16 or more hex characters) it is tried as a kbid first; if
|
|
41
|
-
* no section is found it falls back to a name lookup. When the
|
|
42
|
-
* identifier is not hex-like it goes directly to name lookup.
|
|
43
|
-
* For name lookups the most recently stored match (last in the
|
|
44
|
-
* array) is returned.
|
|
45
|
-
*
|
|
46
|
-
* @param client - client used to look up the skill section
|
|
47
|
-
* @param options - parsed CLI options; first positional arg or `name`
|
|
48
|
-
* is used as the identifier
|
|
49
|
-
* @returns a `CommandResult` containing the serialized
|
|
50
|
-
* `SkillDefinition` JSON or an error message
|
|
51
|
-
*/
|
|
52
|
-
export async function runSkillGet(
|
|
53
|
-
client: SkillGetClient,
|
|
54
|
-
options: CliOptions,
|
|
55
|
-
): Promise<CommandResult> {
|
|
56
|
-
const identifier = options.args[0] ?? options.name;
|
|
57
|
-
if (!identifier) {
|
|
58
|
-
return {
|
|
59
|
-
error: 'skill name or kbid required',
|
|
60
|
-
exitCode: 1,
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
let content: string | undefined;
|
|
64
|
-
// Try as kbid first when it looks like a hex hash.
|
|
65
|
-
if (/^[0-9a-f]{16,}$/i.test(identifier)) {
|
|
66
|
-
const sections = await client.readSections([identifier]);
|
|
67
|
-
if (sections.length > 0) {
|
|
68
|
-
content = sections[0]?.content;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
// If not found by kbid, try by name.
|
|
72
|
-
if (content === undefined) {
|
|
73
|
-
const records = await client.listByType('skill');
|
|
74
|
-
const match = records.filter((r) => r.title === identifier).pop();
|
|
75
|
-
if (match) {
|
|
76
|
-
content = match.content;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
if (content === undefined) {
|
|
80
|
-
return {
|
|
81
|
-
error: `skill not found: ${identifier}`,
|
|
82
|
-
exitCode: 1,
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
const skill = parseSkillContent(content);
|
|
86
|
-
return {
|
|
87
|
-
output: JSON.stringify(skill, null, 2),
|
|
88
|
-
exitCode: 0,
|
|
89
|
-
};
|
|
90
|
-
}
|