@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,50 +0,0 @@
|
|
|
1
|
-
import type { McpWorkerClient } from '../typings/mcp-client.interface.ts';
|
|
2
|
-
|
|
3
|
-
/** Shape of a content item in an MCP tool call response. */
|
|
4
|
-
interface ToolContent {
|
|
5
|
-
/** Content type identifier, typically `'text'`. */
|
|
6
|
-
readonly type: string;
|
|
7
|
-
/** The text payload. */
|
|
8
|
-
readonly text: string;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
/** Result returned by the agent-delete tool handler. */
|
|
12
|
-
interface ToolCallResult {
|
|
13
|
-
/** One or more content items describing the result. */
|
|
14
|
-
readonly content: ToolContent[];
|
|
15
|
-
/** Set to `true` when the tool encountered an error. */
|
|
16
|
-
readonly isError?: boolean;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Handles the `agent:delete` MCP tool call.
|
|
21
|
-
*
|
|
22
|
-
* Removes the document grouping identified by `docid`. The skill
|
|
23
|
-
* sections referenced by the agent are not deleted; only the grouping
|
|
24
|
-
* record is removed.
|
|
25
|
-
*
|
|
26
|
-
* @param client - the worker client used to execute operations
|
|
27
|
-
* @param args - tool arguments; must include a `docid` string
|
|
28
|
-
* @returns content items confirming removal, or an error item
|
|
29
|
-
*/
|
|
30
|
-
export async function handleAgentDelete(
|
|
31
|
-
client: McpWorkerClient,
|
|
32
|
-
args: Record<string, unknown>,
|
|
33
|
-
): Promise<ToolCallResult> {
|
|
34
|
-
const docid = typeof args['docid'] === 'string' ? args['docid'] : '';
|
|
35
|
-
if (!docid) {
|
|
36
|
-
return {
|
|
37
|
-
content: [{ type: 'text', text: 'docid is required' }],
|
|
38
|
-
isError: true,
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
await client.removeGrouping(docid);
|
|
42
|
-
return {
|
|
43
|
-
content: [
|
|
44
|
-
{
|
|
45
|
-
type: 'text',
|
|
46
|
-
text: JSON.stringify({ docid, removed: true }),
|
|
47
|
-
},
|
|
48
|
-
],
|
|
49
|
-
};
|
|
50
|
-
}
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
import type { McpWorkerClient } from '../typings/mcp-client.interface.ts';
|
|
2
|
-
import type { AgentDefinition } from '../typings/agent-types.interface.ts';
|
|
3
|
-
|
|
4
|
-
/** Shape of a content item in an MCP tool call response. */
|
|
5
|
-
interface ToolContent {
|
|
6
|
-
/** Content type identifier, typically `'text'`. */
|
|
7
|
-
readonly type: string;
|
|
8
|
-
/** The text payload. */
|
|
9
|
-
readonly text: string;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
/** Result returned by the agent-get tool handler. */
|
|
13
|
-
interface ToolCallResult {
|
|
14
|
-
/** One or more content items describing the result. */
|
|
15
|
-
readonly content: ToolContent[];
|
|
16
|
-
/** Set to `true` when the tool encountered an error. */
|
|
17
|
-
readonly isError?: boolean;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/** Parsed shape of an agent document section list entry. */
|
|
21
|
-
interface DocumentSection {
|
|
22
|
-
/** Knowledge-base identifier of the section. */
|
|
23
|
-
readonly kbid: string;
|
|
24
|
-
/** Zero-based position of the section within the document. */
|
|
25
|
-
readonly position: number;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/** Parsed shape of a retrieved agent document. */
|
|
29
|
-
interface AgentDocument {
|
|
30
|
-
/** Document identifier. */
|
|
31
|
-
readonly docid: string;
|
|
32
|
-
/** Document title used as agent name fallback. */
|
|
33
|
-
readonly title: string;
|
|
34
|
-
/** Ordered list of sections in the document. */
|
|
35
|
-
readonly sections: DocumentSection[];
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Reads the metadata JSON stored in the first section of an agent
|
|
40
|
-
* document and extracts `name`, `description`, and `persona`.
|
|
41
|
-
*/
|
|
42
|
-
async function readAgentMeta(
|
|
43
|
-
client: McpWorkerClient,
|
|
44
|
-
metaKbid: string,
|
|
45
|
-
fallbackName: string,
|
|
46
|
-
): Promise<{ name: string; description: string; persona: string }> {
|
|
47
|
-
const metaSections = await client.readSections([metaKbid]);
|
|
48
|
-
const first = metaSections.at(0);
|
|
49
|
-
if (!first) {
|
|
50
|
-
return { name: fallbackName, description: '', persona: '' };
|
|
51
|
-
}
|
|
52
|
-
try {
|
|
53
|
-
const meta = JSON.parse(first.content) as Record<string, unknown>;
|
|
54
|
-
return {
|
|
55
|
-
name:
|
|
56
|
-
typeof meta['name'] === 'string'
|
|
57
|
-
? meta['name']
|
|
58
|
-
: fallbackName,
|
|
59
|
-
description:
|
|
60
|
-
typeof meta['description'] === 'string'
|
|
61
|
-
? meta['description']
|
|
62
|
-
: '',
|
|
63
|
-
persona:
|
|
64
|
-
typeof meta['persona'] === 'string' ? meta['persona'] : '',
|
|
65
|
-
};
|
|
66
|
-
} catch {
|
|
67
|
-
return { name: fallbackName, description: '', persona: '' };
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Resolves skill names for a list of section references by reading
|
|
73
|
-
* each section's JSON content and extracting the `name` field.
|
|
74
|
-
* Returns `null` for skill references where the section no longer
|
|
75
|
-
* exists (dangling references).
|
|
76
|
-
*/
|
|
77
|
-
async function resolveSkillRefs(
|
|
78
|
-
client: McpWorkerClient,
|
|
79
|
-
skillRefs: DocumentSection[],
|
|
80
|
-
): Promise<{ kbid: string; name: string | null; position: number }[]> {
|
|
81
|
-
if (skillRefs.length === 0) {
|
|
82
|
-
return [];
|
|
83
|
-
}
|
|
84
|
-
const skillKbids = skillRefs.map((s) => s.kbid);
|
|
85
|
-
const skillSections = await client.readSections(skillKbids);
|
|
86
|
-
const sectionMap = new Map(skillSections.map((s) => [s.kbid, s]));
|
|
87
|
-
return skillRefs.map((ref) => {
|
|
88
|
-
const sec = sectionMap.get(ref.kbid);
|
|
89
|
-
if (!sec) {
|
|
90
|
-
return { kbid: ref.kbid, name: null, position: ref.position };
|
|
91
|
-
}
|
|
92
|
-
try {
|
|
93
|
-
const parsed = JSON.parse(sec.content) as Record<
|
|
94
|
-
string,
|
|
95
|
-
unknown
|
|
96
|
-
>;
|
|
97
|
-
const skillName =
|
|
98
|
-
typeof parsed['name'] === 'string' ? parsed['name'] : null;
|
|
99
|
-
return {
|
|
100
|
-
kbid: ref.kbid,
|
|
101
|
-
name: skillName,
|
|
102
|
-
position: ref.position,
|
|
103
|
-
};
|
|
104
|
-
} catch {
|
|
105
|
-
return { kbid: ref.kbid, name: null, position: ref.position };
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Handles the `agent:get` MCP tool call.
|
|
112
|
-
*
|
|
113
|
-
* Retrieves an agent document by its `docid`, reads the metadata
|
|
114
|
-
* section and skill references, and returns a full `AgentDefinition`.
|
|
115
|
-
* Dangling skill references (sections that no longer exist) appear
|
|
116
|
-
* with `name: null` in the skills list.
|
|
117
|
-
*
|
|
118
|
-
* @param client - the worker client used to execute operations
|
|
119
|
-
* @param args - tool arguments; must include a `docid` string
|
|
120
|
-
* @returns content items containing the serialised `AgentDefinition`
|
|
121
|
-
*/
|
|
122
|
-
export async function handleAgentGet(
|
|
123
|
-
client: McpWorkerClient,
|
|
124
|
-
args: Record<string, unknown>,
|
|
125
|
-
): Promise<ToolCallResult> {
|
|
126
|
-
const docid = typeof args['docid'] === 'string' ? args['docid'] : '';
|
|
127
|
-
if (!docid) {
|
|
128
|
-
return {
|
|
129
|
-
content: [{ type: 'text', text: 'docid is required' }],
|
|
130
|
-
isError: true,
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
const doc = (await client.retrieveDocument(docid)) as AgentDocument;
|
|
135
|
-
const metaKbid = doc.sections[0]?.kbid;
|
|
136
|
-
const skillRefs = doc.sections.slice(1);
|
|
137
|
-
|
|
138
|
-
const { name, description, persona } = metaKbid
|
|
139
|
-
? await readAgentMeta(client, metaKbid, doc.title)
|
|
140
|
-
: { name: doc.title, description: '', persona: '' };
|
|
141
|
-
|
|
142
|
-
const skills = await resolveSkillRefs(client, skillRefs);
|
|
143
|
-
|
|
144
|
-
const agent: AgentDefinition = {
|
|
145
|
-
docid,
|
|
146
|
-
name,
|
|
147
|
-
description,
|
|
148
|
-
persona,
|
|
149
|
-
skills,
|
|
150
|
-
};
|
|
151
|
-
|
|
152
|
-
return {
|
|
153
|
-
content: [
|
|
154
|
-
{
|
|
155
|
-
type: 'text',
|
|
156
|
-
text: JSON.stringify(agent, null, 2),
|
|
157
|
-
},
|
|
158
|
-
],
|
|
159
|
-
};
|
|
160
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import type { McpWorkerClient } from '../typings/mcp-client.interface.ts';
|
|
2
|
-
|
|
3
|
-
/** Shape of a content item in an MCP tool call response. */
|
|
4
|
-
interface ToolContent {
|
|
5
|
-
/** Content type identifier, typically `'text'`. */
|
|
6
|
-
readonly type: string;
|
|
7
|
-
/** The text payload. */
|
|
8
|
-
readonly text: string;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
/** Result returned by the agent-list tool handler. */
|
|
12
|
-
interface ToolCallResult {
|
|
13
|
-
/** One or more content items describing the result. */
|
|
14
|
-
readonly content: ToolContent[];
|
|
15
|
-
/** Set to `true` when the tool encountered an error. */
|
|
16
|
-
readonly isError?: boolean;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Handles the `agent:list` MCP tool call.
|
|
21
|
-
*
|
|
22
|
-
* Retrieves all documents with `doc_type: 'agent'` and returns a
|
|
23
|
-
* summary list containing each agent's document identifier, name,
|
|
24
|
-
* and skill count.
|
|
25
|
-
*
|
|
26
|
-
* The `skillCount` is `Math.max(0, sections.length - 1)` because
|
|
27
|
-
* the first section of an agent document always holds the metadata
|
|
28
|
-
* JSON and does not count as a skill reference.
|
|
29
|
-
*
|
|
30
|
-
* @param client - the worker client used to execute operations
|
|
31
|
-
* @returns content items with the serialised agent list
|
|
32
|
-
*/
|
|
33
|
-
export async function handleAgentList(
|
|
34
|
-
client: McpWorkerClient,
|
|
35
|
-
): Promise<ToolCallResult> {
|
|
36
|
-
const docs = await client.listDocumentsByType('agent');
|
|
37
|
-
const items = docs.map((d) => ({
|
|
38
|
-
docid: d.docid,
|
|
39
|
-
name: d.title,
|
|
40
|
-
skillCount: Math.max(0, d.sections.length - 1),
|
|
41
|
-
}));
|
|
42
|
-
return {
|
|
43
|
-
content: [
|
|
44
|
-
{
|
|
45
|
-
type: 'text',
|
|
46
|
-
text: JSON.stringify(items, null, 2),
|
|
47
|
-
},
|
|
48
|
-
],
|
|
49
|
-
};
|
|
50
|
-
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import type { McpWorkerClient } from '../typings/mcp-client.interface.ts';
|
|
2
|
-
import type { McpPromptMessage } from '../typings/prompt-types.interface.ts';
|
|
3
|
-
import { parseAgentMeta } from './parse-agent-meta.function.ts';
|
|
4
|
-
import { buildSkillsText } from './build-skills-text.function.ts';
|
|
5
|
-
|
|
6
|
-
/** Minimal agent document shape returned by retrieveDocument. */
|
|
7
|
-
interface AgentDocument {
|
|
8
|
-
/** Document identifier. */
|
|
9
|
-
readonly docid: string;
|
|
10
|
-
/** Document title. */
|
|
11
|
-
readonly title: string;
|
|
12
|
-
/** Ordered section references. */
|
|
13
|
-
readonly sections: readonly {
|
|
14
|
-
readonly kbid: string;
|
|
15
|
-
readonly position: number;
|
|
16
|
-
}[];
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Handles an MCP `prompts/get` request for an agent prompt.
|
|
21
|
-
*
|
|
22
|
-
* Reads the agent document, extracts its persona from the metadata
|
|
23
|
-
* section, then reads all skill sections and composes the response.
|
|
24
|
-
* Returns an assistant message with the persona and, when skills
|
|
25
|
-
* exist, a user message listing them.
|
|
26
|
-
*
|
|
27
|
-
* @param name - prompt name with `agent:` prefix
|
|
28
|
-
* @param client - worker client used to access the knowledge base
|
|
29
|
-
*/
|
|
30
|
-
export async function handleAgentPrompt(
|
|
31
|
-
name: string,
|
|
32
|
-
client: McpWorkerClient,
|
|
33
|
-
): Promise<McpPromptMessage[]> {
|
|
34
|
-
const docid = name.slice(6);
|
|
35
|
-
const doc = (await client.retrieveDocument(docid)) as AgentDocument;
|
|
36
|
-
const metaSection = doc.sections.at(0);
|
|
37
|
-
const skillRefs = doc.sections.slice(1);
|
|
38
|
-
|
|
39
|
-
let persona = '';
|
|
40
|
-
if (metaSection !== undefined) {
|
|
41
|
-
const metaSections = await client.readSections([
|
|
42
|
-
metaSection.kbid,
|
|
43
|
-
]);
|
|
44
|
-
const metaContent = metaSections.at(0);
|
|
45
|
-
if (metaContent !== undefined) {
|
|
46
|
-
persona = parseAgentMeta(metaContent.content).persona;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
const messages: McpPromptMessage[] = [
|
|
51
|
-
{ role: 'assistant', content: { type: 'text', text: persona } },
|
|
52
|
-
];
|
|
53
|
-
|
|
54
|
-
if (skillRefs.length === 0) return messages;
|
|
55
|
-
|
|
56
|
-
const skillKbids = skillRefs.map((s) => s.kbid);
|
|
57
|
-
const skillSections = await client.readSections(skillKbids);
|
|
58
|
-
const skillsText = buildSkillsText(skillSections);
|
|
59
|
-
|
|
60
|
-
if (skillsText !== null) {
|
|
61
|
-
messages.push({
|
|
62
|
-
role: 'user',
|
|
63
|
-
content: { type: 'text', text: skillsText },
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return messages;
|
|
68
|
-
}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import type { McpWorkerClient } from '../typings/mcp-client.interface.ts';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Discriminated reference used in MCP completion requests.
|
|
5
|
-
* Identifies whether the completion target is a prompt or a resource.
|
|
6
|
-
*/
|
|
7
|
-
export interface McpCompletionRef {
|
|
8
|
-
/**
|
|
9
|
-
* The reference type: `'ref/prompt'` for named prompts (skills
|
|
10
|
-
* and agents) or `'ref/resource'` for resource URIs.
|
|
11
|
-
*/
|
|
12
|
-
readonly type: 'ref/prompt' | 'ref/resource';
|
|
13
|
-
/** Prompt name, present when `type` is `'ref/prompt'`. */
|
|
14
|
-
readonly name?: string;
|
|
15
|
-
/** Resource URI, present when `type` is `'ref/resource'`. */
|
|
16
|
-
readonly uri?: string;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Completion argument supplied by the client, describing which
|
|
21
|
-
* argument is being completed and the current partial value.
|
|
22
|
-
*/
|
|
23
|
-
export interface McpCompletionArgument {
|
|
24
|
-
/** The argument name being completed. */
|
|
25
|
-
readonly name: string;
|
|
26
|
-
/** The partial value typed so far; used for prefix filtering. */
|
|
27
|
-
readonly value: string;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Result returned by `handleCompletion`, containing the list of
|
|
32
|
-
* matching completion values and pagination metadata.
|
|
33
|
-
*/
|
|
34
|
-
export interface McpCompletionResult {
|
|
35
|
-
/** Completion payload. */
|
|
36
|
-
readonly completion: {
|
|
37
|
-
/** Matching completion strings for the given prefix. */
|
|
38
|
-
readonly values: string[];
|
|
39
|
-
/**
|
|
40
|
-
* Whether more results are available beyond what is returned.
|
|
41
|
-
* Always `false` in this implementation.
|
|
42
|
-
*/
|
|
43
|
-
readonly hasMore: boolean;
|
|
44
|
-
/** Total number of values returned. */
|
|
45
|
-
readonly total: number;
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Handles an MCP `completion/complete` request.
|
|
51
|
-
*
|
|
52
|
-
* For `ref/prompt` references, builds a list of all skill titles and
|
|
53
|
-
* agent titles (prefixed with `agent:`) and filters by the supplied
|
|
54
|
-
* argument value prefix. For `ref/resource` references, returns an
|
|
55
|
-
* empty result — resource completion is not implemented.
|
|
56
|
-
*
|
|
57
|
-
* @param ref - discriminated reference identifying the completion target
|
|
58
|
-
* @param argument - current argument name and partial value
|
|
59
|
-
* @param client - worker client used to fetch skills and agents
|
|
60
|
-
* @returns matching completion values with pagination metadata
|
|
61
|
-
*/
|
|
62
|
-
export async function handleCompletion(
|
|
63
|
-
ref: McpCompletionRef,
|
|
64
|
-
argument: McpCompletionArgument,
|
|
65
|
-
client: McpWorkerClient,
|
|
66
|
-
): Promise<McpCompletionResult> {
|
|
67
|
-
if (ref.type !== 'ref/prompt') {
|
|
68
|
-
return { completion: { values: [], hasMore: false, total: 0 } };
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
const [skills, agents] = await Promise.all([
|
|
72
|
-
client.listByType('skill'),
|
|
73
|
-
client.listDocumentsByType('agent'),
|
|
74
|
-
]);
|
|
75
|
-
|
|
76
|
-
const names: string[] = [];
|
|
77
|
-
|
|
78
|
-
for (const skill of skills) {
|
|
79
|
-
if (skill.title !== null) {
|
|
80
|
-
names.push(skill.title);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
for (const agent of agents) {
|
|
85
|
-
names.push(`agent:${agent.title}`);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
const prefix = argument.value;
|
|
89
|
-
|
|
90
|
-
function matchesPrefix(candidate: string): boolean {
|
|
91
|
-
if (prefix.length === 0) {
|
|
92
|
-
return true;
|
|
93
|
-
}
|
|
94
|
-
if (candidate.startsWith(prefix)) {
|
|
95
|
-
return true;
|
|
96
|
-
}
|
|
97
|
-
// For agent-prefixed names, also match against the title portion.
|
|
98
|
-
const AGENT_PREFIX = 'agent:';
|
|
99
|
-
if (candidate.startsWith(AGENT_PREFIX)) {
|
|
100
|
-
return candidate.slice(AGENT_PREFIX.length).startsWith(prefix);
|
|
101
|
-
}
|
|
102
|
-
return false;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
const values = names.filter(matchesPrefix);
|
|
106
|
-
|
|
107
|
-
return {
|
|
108
|
-
completion: {
|
|
109
|
-
values,
|
|
110
|
-
hasMore: false,
|
|
111
|
-
total: values.length,
|
|
112
|
-
},
|
|
113
|
-
};
|
|
114
|
-
}
|
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
import type { McpWorkerClient } from '../typings/mcp-client.interface.ts';
|
|
2
|
-
import type {
|
|
3
|
-
McpRequest,
|
|
4
|
-
McpResponse,
|
|
5
|
-
} from '../typings/mcp-types.interface.ts';
|
|
6
|
-
import type { McpLogLevel } from '../typings/log-types.interface.ts';
|
|
7
|
-
import type {
|
|
8
|
-
McpCompletionRef,
|
|
9
|
-
McpCompletionArgument,
|
|
10
|
-
} from '../typings/mcp-completion.interface.ts';
|
|
11
|
-
import type { McpServerState } from '../typings/mcp-server-state.interface.ts';
|
|
12
|
-
import { createToolDefinitions } from './create-tool-definitions.function.ts';
|
|
13
|
-
import { createResourceTemplates } from './create-resource-templates.function.ts';
|
|
14
|
-
import { handleToolCall } from './handle-tool-call.function.ts';
|
|
15
|
-
import { handleResourceRead } from './handle-resource-read.function.ts';
|
|
16
|
-
import { createPromptDefinitions } from './create-prompt-definitions.function.ts';
|
|
17
|
-
import { handlePromptGet } from './handle-prompt-get.function.ts';
|
|
18
|
-
import { handleCompletion } from './handle-completion.function.ts';
|
|
19
|
-
import { handleRootsList } from './handle-roots-list.function.ts';
|
|
20
|
-
import {
|
|
21
|
-
METHOD_NOT_FOUND,
|
|
22
|
-
RESOURCE_NOT_FOUND,
|
|
23
|
-
} from '../constants/mcp-error-codes.constant.ts';
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Routes an MCP JSON-RPC request to the appropriate handler and
|
|
27
|
-
* returns the JSON-RPC response. Mutates `state` for methods that
|
|
28
|
-
* update server-side configuration (logging level, subscriptions,
|
|
29
|
-
* capabilities).
|
|
30
|
-
*
|
|
31
|
-
* @param request - the parsed MCP request
|
|
32
|
-
* @param client - worker client for knowledge-base operations
|
|
33
|
-
* @param state - mutable server state shared with `McpServer`
|
|
34
|
-
*/
|
|
35
|
-
export async function handleMcpRequest(
|
|
36
|
-
request: McpRequest,
|
|
37
|
-
client: McpWorkerClient,
|
|
38
|
-
state: McpServerState,
|
|
39
|
-
): Promise<McpResponse> {
|
|
40
|
-
const id = request.id as number | string;
|
|
41
|
-
|
|
42
|
-
switch (request.method) {
|
|
43
|
-
case 'initialize': {
|
|
44
|
-
const params = request.params ?? {};
|
|
45
|
-
const caps = params['capabilities'];
|
|
46
|
-
state.hostCapabilities = caps
|
|
47
|
-
? (caps as Record<string, unknown>)
|
|
48
|
-
: null;
|
|
49
|
-
return {
|
|
50
|
-
jsonrpc: '2.0',
|
|
51
|
-
id,
|
|
52
|
-
result: {
|
|
53
|
-
protocolVersion: '2025-11-25',
|
|
54
|
-
serverInfo: { name: 'kbdb', version: '0.1.0' },
|
|
55
|
-
capabilities: {
|
|
56
|
-
tools: {},
|
|
57
|
-
resources: { subscribe: true },
|
|
58
|
-
prompts: {},
|
|
59
|
-
logging: {},
|
|
60
|
-
completions: {},
|
|
61
|
-
},
|
|
62
|
-
},
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
case 'ping':
|
|
67
|
-
return { jsonrpc: '2.0', id, result: {} };
|
|
68
|
-
|
|
69
|
-
case 'tools/list':
|
|
70
|
-
return {
|
|
71
|
-
jsonrpc: '2.0',
|
|
72
|
-
id,
|
|
73
|
-
result: { tools: createToolDefinitions() },
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
case 'resources/list':
|
|
77
|
-
return { jsonrpc: '2.0', id, result: { resources: [] } };
|
|
78
|
-
|
|
79
|
-
case 'resources/templates/list':
|
|
80
|
-
return {
|
|
81
|
-
jsonrpc: '2.0',
|
|
82
|
-
id,
|
|
83
|
-
result: { resourceTemplates: createResourceTemplates() },
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
case 'tools/call': {
|
|
87
|
-
const params = request.params ?? {};
|
|
88
|
-
const rawName = params['name'];
|
|
89
|
-
const name = typeof rawName === 'string' ? rawName : '';
|
|
90
|
-
const args = (params['arguments'] ?? {}) as Record<
|
|
91
|
-
string,
|
|
92
|
-
unknown
|
|
93
|
-
>;
|
|
94
|
-
const result = await handleToolCall(client, name, args);
|
|
95
|
-
return { jsonrpc: '2.0', id, result };
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
case 'resources/read': {
|
|
99
|
-
const params = request.params ?? {};
|
|
100
|
-
const rawUri = params['uri'];
|
|
101
|
-
const uri = typeof rawUri === 'string' ? rawUri : '';
|
|
102
|
-
try {
|
|
103
|
-
const result = await handleResourceRead(client, uri);
|
|
104
|
-
return { jsonrpc: '2.0', id, result };
|
|
105
|
-
} catch (err) {
|
|
106
|
-
return {
|
|
107
|
-
jsonrpc: '2.0',
|
|
108
|
-
id,
|
|
109
|
-
error: {
|
|
110
|
-
code: RESOURCE_NOT_FOUND,
|
|
111
|
-
message:
|
|
112
|
-
err instanceof Error ? err.message : String(err),
|
|
113
|
-
},
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
case 'prompts/list': {
|
|
119
|
-
const skills = await client.listByType('skill');
|
|
120
|
-
const agents = await client.listDocumentsByType('agent');
|
|
121
|
-
const prompts = createPromptDefinitions(skills, agents);
|
|
122
|
-
return { jsonrpc: '2.0', id, result: { prompts } };
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
case 'prompts/get': {
|
|
126
|
-
const params = request.params ?? {};
|
|
127
|
-
const name =
|
|
128
|
-
typeof params['name'] === 'string' ? params['name'] : '';
|
|
129
|
-
const promptArgs = (params['arguments'] ?? {}) as Record<
|
|
130
|
-
string,
|
|
131
|
-
string
|
|
132
|
-
>;
|
|
133
|
-
try {
|
|
134
|
-
const messages = await handlePromptGet(
|
|
135
|
-
name,
|
|
136
|
-
promptArgs,
|
|
137
|
-
client,
|
|
138
|
-
);
|
|
139
|
-
return { jsonrpc: '2.0', id, result: { messages } };
|
|
140
|
-
} catch (err) {
|
|
141
|
-
return {
|
|
142
|
-
jsonrpc: '2.0',
|
|
143
|
-
id,
|
|
144
|
-
error: {
|
|
145
|
-
code: RESOURCE_NOT_FOUND,
|
|
146
|
-
message:
|
|
147
|
-
err instanceof Error ? err.message : String(err),
|
|
148
|
-
},
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
case 'completion/complete': {
|
|
154
|
-
const params = request.params ?? {};
|
|
155
|
-
const ref = params['ref'] as McpCompletionRef;
|
|
156
|
-
const argument = (params['argument'] ?? {
|
|
157
|
-
name: '',
|
|
158
|
-
value: '',
|
|
159
|
-
}) as McpCompletionArgument;
|
|
160
|
-
const result = await handleCompletion(ref, argument, client);
|
|
161
|
-
return { jsonrpc: '2.0', id, result };
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
case 'roots/list': {
|
|
165
|
-
const roots = handleRootsList(state.contextPath);
|
|
166
|
-
return { jsonrpc: '2.0', id, result: { roots } };
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
case 'logging/setLevel': {
|
|
170
|
-
const params = request.params ?? {};
|
|
171
|
-
const level = params['level'] as McpLogLevel | undefined;
|
|
172
|
-
state.logLevel = level ?? null;
|
|
173
|
-
return { jsonrpc: '2.0', id, result: {} };
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
case 'resources/subscribe': {
|
|
177
|
-
const params = request.params ?? {};
|
|
178
|
-
const uri =
|
|
179
|
-
typeof params['uri'] === 'string' ? params['uri'] : '';
|
|
180
|
-
state.subscriptions.add(uri);
|
|
181
|
-
return { jsonrpc: '2.0', id, result: {} };
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
case 'resources/unsubscribe': {
|
|
185
|
-
const params = request.params ?? {};
|
|
186
|
-
const uri =
|
|
187
|
-
typeof params['uri'] === 'string' ? params['uri'] : '';
|
|
188
|
-
state.subscriptions.delete(uri);
|
|
189
|
-
return { jsonrpc: '2.0', id, result: {} };
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
default:
|
|
193
|
-
return {
|
|
194
|
-
jsonrpc: '2.0',
|
|
195
|
-
id,
|
|
196
|
-
error: {
|
|
197
|
-
code: METHOD_NOT_FOUND,
|
|
198
|
-
message: `Method not found: ` + request.method,
|
|
199
|
-
},
|
|
200
|
-
};
|
|
201
|
-
}
|
|
202
|
-
}
|