@debian777/kairos-mcp 3.0.1-beta.14
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/LICENSE +22 -0
- package/README.md +108 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/cli/api-client.d.ts +31 -0
- package/dist/cli/api-client.d.ts.map +1 -0
- package/dist/cli/api-client.js +110 -0
- package/dist/cli/api-client.js.map +1 -0
- package/dist/cli/commands/attest.d.ts +6 -0
- package/dist/cli/commands/attest.d.ts.map +1 -0
- package/dist/cli/commands/attest.js +52 -0
- package/dist/cli/commands/attest.js.map +1 -0
- package/dist/cli/commands/begin.d.ts +6 -0
- package/dist/cli/commands/begin.d.ts.map +1 -0
- package/dist/cli/commands/begin.js +32 -0
- package/dist/cli/commands/begin.js.map +1 -0
- package/dist/cli/commands/delete.d.ts +6 -0
- package/dist/cli/commands/delete.d.ts.map +1 -0
- package/dist/cli/commands/delete.js +32 -0
- package/dist/cli/commands/delete.js.map +1 -0
- package/dist/cli/commands/mint.d.ts +6 -0
- package/dist/cli/commands/mint.d.ts.map +1 -0
- package/dist/cli/commands/mint.js +48 -0
- package/dist/cli/commands/mint.js.map +1 -0
- package/dist/cli/commands/next.d.ts +6 -0
- package/dist/cli/commands/next.d.ts.map +1 -0
- package/dist/cli/commands/next.js +89 -0
- package/dist/cli/commands/next.js.map +1 -0
- package/dist/cli/commands/search.d.ts +6 -0
- package/dist/cli/commands/search.d.ts.map +1 -0
- package/dist/cli/commands/search.js +32 -0
- package/dist/cli/commands/search.js.map +1 -0
- package/dist/cli/commands/update.d.ts +6 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/commands/update.js +72 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/config.d.ts +9 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +14 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/index.d.ts +6 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +40 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/output.d.ts +10 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/output.js +20 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/config.d.ts +58 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +165 -0
- package/dist/config.js.map +1 -0
- package/dist/embed-docs/mem/00000000-0000-0000-0000-000000002001.md +324 -0
- package/dist/embed-docs/mem/00000000-0000-0000-0000-000000002002.md +48 -0
- package/dist/http/bearer-validate.d.ts +14 -0
- package/dist/http/bearer-validate.d.ts.map +1 -0
- package/dist/http/bearer-validate.js +111 -0
- package/dist/http/bearer-validate.js.map +1 -0
- package/dist/http/http-api-attest.d.ts +7 -0
- package/dist/http/http-api-attest.d.ts.map +1 -0
- package/dist/http/http-api-attest.js +103 -0
- package/dist/http/http-api-attest.js.map +1 -0
- package/dist/http/http-api-begin-step.d.ts +8 -0
- package/dist/http/http-api-begin-step.d.ts.map +1 -0
- package/dist/http/http-api-begin-step.js +108 -0
- package/dist/http/http-api-begin-step.js.map +1 -0
- package/dist/http/http-api-begin.d.ts +8 -0
- package/dist/http/http-api-begin.d.ts.map +1 -0
- package/dist/http/http-api-begin.js +167 -0
- package/dist/http/http-api-begin.js.map +1 -0
- package/dist/http/http-api-delete.d.ts +9 -0
- package/dist/http/http-api-delete.d.ts.map +1 -0
- package/dist/http/http-api-delete.js +67 -0
- package/dist/http/http-api-delete.js.map +1 -0
- package/dist/http/http-api-dump.d.ts +8 -0
- package/dist/http/http-api-dump.d.ts.map +1 -0
- package/dist/http/http-api-dump.js +34 -0
- package/dist/http/http-api-dump.js.map +1 -0
- package/dist/http/http-api-mint.d.ts +9 -0
- package/dist/http/http-api-mint.d.ts.map +1 -0
- package/dist/http/http-api-mint.js +100 -0
- package/dist/http/http-api-mint.js.map +1 -0
- package/dist/http/http-api-next.d.ts +9 -0
- package/dist/http/http-api-next.d.ts.map +1 -0
- package/dist/http/http-api-next.js +237 -0
- package/dist/http/http-api-next.js.map +1 -0
- package/dist/http/http-api-routes.d.ts +13 -0
- package/dist/http/http-api-routes.d.ts.map +1 -0
- package/dist/http/http-api-routes.js +28 -0
- package/dist/http/http-api-routes.js.map +1 -0
- package/dist/http/http-api-snapshot.d.ts +4 -0
- package/dist/http/http-api-snapshot.d.ts.map +1 -0
- package/dist/http/http-api-snapshot.js +36 -0
- package/dist/http/http-api-snapshot.js.map +1 -0
- package/dist/http/http-api-update.d.ts +9 -0
- package/dist/http/http-api-update.d.ts.map +1 -0
- package/dist/http/http-api-update.js +105 -0
- package/dist/http/http-api-update.js.map +1 -0
- package/dist/http/http-auth-callback.d.ts +6 -0
- package/dist/http/http-auth-callback.d.ts.map +1 -0
- package/dist/http/http-auth-callback.js +183 -0
- package/dist/http/http-auth-callback.js.map +1 -0
- package/dist/http/http-auth-middleware.d.ts +30 -0
- package/dist/http/http-auth-middleware.d.ts.map +1 -0
- package/dist/http/http-auth-middleware.js +224 -0
- package/dist/http/http-auth-middleware.js.map +1 -0
- package/dist/http/http-error-handlers.d.ts +7 -0
- package/dist/http/http-error-handlers.d.ts.map +1 -0
- package/dist/http/http-error-handlers.js +35 -0
- package/dist/http/http-error-handlers.js.map +1 -0
- package/dist/http/http-health-routes.d.ts +9 -0
- package/dist/http/http-health-routes.d.ts.map +1 -0
- package/dist/http/http-health-routes.js +117 -0
- package/dist/http/http-health-routes.js.map +1 -0
- package/dist/http/http-mcp-handler.d.ts +8 -0
- package/dist/http/http-mcp-handler.d.ts.map +1 -0
- package/dist/http/http-mcp-handler.js +136 -0
- package/dist/http/http-mcp-handler.js.map +1 -0
- package/dist/http/http-metrics-middleware.d.ts +7 -0
- package/dist/http/http-metrics-middleware.d.ts.map +1 -0
- package/dist/http/http-metrics-middleware.js +56 -0
- package/dist/http/http-metrics-middleware.js.map +1 -0
- package/dist/http/http-server-config.d.ts +11 -0
- package/dist/http/http-server-config.d.ts.map +1 -0
- package/dist/http/http-server-config.js +15 -0
- package/dist/http/http-server-config.js.map +1 -0
- package/dist/http/http-server-startup.d.ts +9 -0
- package/dist/http/http-server-startup.d.ts.map +1 -0
- package/dist/http/http-server-startup.js +26 -0
- package/dist/http/http-server-startup.js.map +1 -0
- package/dist/http/http-server.d.ts +4 -0
- package/dist/http/http-server.d.ts.map +1 -0
- package/dist/http/http-server.js +39 -0
- package/dist/http/http-server.js.map +1 -0
- package/dist/http/http-well-known.d.ts +13 -0
- package/dist/http/http-well-known.d.ts.map +1 -0
- package/dist/http/http-well-known.js +32 -0
- package/dist/http/http-well-known.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +100 -0
- package/dist/index.js.map +1 -0
- package/dist/metrics-server.d.ts +14 -0
- package/dist/metrics-server.d.ts.map +1 -0
- package/dist/metrics-server.js +41 -0
- package/dist/metrics-server.js.map +1 -0
- package/dist/resources/docs-resources.d.ts +2 -0
- package/dist/resources/docs-resources.d.ts.map +1 -0
- package/dist/resources/docs-resources.js +47 -0
- package/dist/resources/docs-resources.js.map +1 -0
- package/dist/resources/embedded-mcp-resources.d.ts +73 -0
- package/dist/resources/embedded-mcp-resources.d.ts.map +1 -0
- package/dist/resources/embedded-mcp-resources.js +132 -0
- package/dist/resources/embedded-mcp-resources.js.map +1 -0
- package/dist/resources/mem-resources-boot.d.ts +10 -0
- package/dist/resources/mem-resources-boot.d.ts.map +1 -0
- package/dist/resources/mem-resources-boot.js +164 -0
- package/dist/resources/mem-resources-boot.js.map +1 -0
- package/dist/resources/prompt-resources.d.ts +5 -0
- package/dist/resources/prompt-resources.d.ts.map +1 -0
- package/dist/resources/prompt-resources.js +42 -0
- package/dist/resources/prompt-resources.js.map +1 -0
- package/dist/resources/resource-bootstrap.d.ts +7 -0
- package/dist/resources/resource-bootstrap.d.ts.map +1 -0
- package/dist/resources/resource-bootstrap.js +33 -0
- package/dist/resources/resource-bootstrap.js.map +1 -0
- package/dist/server.d.ts +4 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +79 -0
- package/dist/server.js.map +1 -0
- package/dist/services/chain-utils.d.ts +22 -0
- package/dist/services/chain-utils.d.ts.map +1 -0
- package/dist/services/chain-utils.js +95 -0
- package/dist/services/chain-utils.js.map +1 -0
- package/dist/services/code-block-processor.d.ts +40 -0
- package/dist/services/code-block-processor.d.ts.map +1 -0
- package/dist/services/code-block-processor.js +169 -0
- package/dist/services/code-block-processor.js.map +1 -0
- package/dist/services/embedding/config.d.ts +5 -0
- package/dist/services/embedding/config.d.ts.map +1 -0
- package/dist/services/embedding/config.js +13 -0
- package/dist/services/embedding/config.js.map +1 -0
- package/dist/services/embedding/providers.d.ts +5 -0
- package/dist/services/embedding/providers.d.ts.map +1 -0
- package/dist/services/embedding/providers.js +141 -0
- package/dist/services/embedding/providers.js.map +1 -0
- package/dist/services/embedding/service.d.ts +39 -0
- package/dist/services/embedding/service.d.ts.map +1 -0
- package/dist/services/embedding/service.js +302 -0
- package/dist/services/embedding/service.js.map +1 -0
- package/dist/services/embedding/types.d.ts +17 -0
- package/dist/services/embedding/types.d.ts.map +1 -0
- package/dist/services/embedding/types.js +2 -0
- package/dist/services/embedding/types.js.map +1 -0
- package/dist/services/id-generator.d.ts +63 -0
- package/dist/services/id-generator.d.ts.map +1 -0
- package/dist/services/id-generator.js +101 -0
- package/dist/services/id-generator.js.map +1 -0
- package/dist/services/key-value-store-factory.d.ts +7 -0
- package/dist/services/key-value-store-factory.d.ts.map +1 -0
- package/dist/services/key-value-store-factory.js +15 -0
- package/dist/services/key-value-store-factory.js.map +1 -0
- package/dist/services/key-value-store.d.ts +24 -0
- package/dist/services/key-value-store.d.ts.map +1 -0
- package/dist/services/key-value-store.js +6 -0
- package/dist/services/key-value-store.js.map +1 -0
- package/dist/services/memory/chain-builder-proof.d.ts +18 -0
- package/dist/services/memory/chain-builder-proof.d.ts.map +1 -0
- package/dist/services/memory/chain-builder-proof.js +78 -0
- package/dist/services/memory/chain-builder-proof.js.map +1 -0
- package/dist/services/memory/chain-builder.d.ts +4 -0
- package/dist/services/memory/chain-builder.d.ts.map +1 -0
- package/dist/services/memory/chain-builder.js +185 -0
- package/dist/services/memory/chain-builder.js.map +1 -0
- package/dist/services/memory/store-chain-default-handler.d.ts +9 -0
- package/dist/services/memory/store-chain-default-handler.d.ts.map +1 -0
- package/dist/services/memory/store-chain-default-handler.js +118 -0
- package/dist/services/memory/store-chain-default-handler.js.map +1 -0
- package/dist/services/memory/store-chain-header-handler.d.ts +8 -0
- package/dist/services/memory/store-chain-header-handler.d.ts.map +1 -0
- package/dist/services/memory/store-chain-header-handler.js +98 -0
- package/dist/services/memory/store-chain-header-handler.js.map +1 -0
- package/dist/services/memory/store-chain-helpers.d.ts +27 -0
- package/dist/services/memory/store-chain-helpers.d.ts.map +1 -0
- package/dist/services/memory/store-chain-helpers.js +102 -0
- package/dist/services/memory/store-chain-helpers.js.map +1 -0
- package/dist/services/memory/store-chain.d.ts +15 -0
- package/dist/services/memory/store-chain.d.ts.map +1 -0
- package/dist/services/memory/store-chain.js +56 -0
- package/dist/services/memory/store-chain.js.map +1 -0
- package/dist/services/memory/store-init.d.ts +3 -0
- package/dist/services/memory/store-init.d.ts.map +1 -0
- package/dist/services/memory/store-init.js +127 -0
- package/dist/services/memory/store-init.js.map +1 -0
- package/dist/services/memory/store-methods.d.ts +35 -0
- package/dist/services/memory/store-methods.d.ts.map +1 -0
- package/dist/services/memory/store-methods.js +308 -0
- package/dist/services/memory/store-methods.js.map +1 -0
- package/dist/services/memory/store.d.ts +36 -0
- package/dist/services/memory/store.d.ts.map +1 -0
- package/dist/services/memory/store.js +119 -0
- package/dist/services/memory/store.js.map +1 -0
- package/dist/services/memory-store.d.ts +33 -0
- package/dist/services/memory-store.d.ts.map +1 -0
- package/dist/services/memory-store.js +158 -0
- package/dist/services/memory-store.js.map +1 -0
- package/dist/services/metrics/agent-metrics.d.ts +12 -0
- package/dist/services/metrics/agent-metrics.d.ts.map +1 -0
- package/dist/services/metrics/agent-metrics.js +34 -0
- package/dist/services/metrics/agent-metrics.js.map +1 -0
- package/dist/services/metrics/embedding-metrics.d.ts +12 -0
- package/dist/services/metrics/embedding-metrics.d.ts.map +1 -0
- package/dist/services/metrics/embedding-metrics.js +41 -0
- package/dist/services/metrics/embedding-metrics.js.map +1 -0
- package/dist/services/metrics/http-metrics.d.ts +12 -0
- package/dist/services/metrics/http-metrics.d.ts.map +1 -0
- package/dist/services/metrics/http-metrics.js +41 -0
- package/dist/services/metrics/http-metrics.js.map +1 -0
- package/dist/services/metrics/mcp-metrics.d.ts +16 -0
- package/dist/services/metrics/mcp-metrics.d.ts.map +1 -0
- package/dist/services/metrics/mcp-metrics.js +55 -0
- package/dist/services/metrics/mcp-metrics.js.map +1 -0
- package/dist/services/metrics/memory-metrics.d.ts +10 -0
- package/dist/services/metrics/memory-metrics.d.ts.map +1 -0
- package/dist/services/metrics/memory-metrics.js +28 -0
- package/dist/services/metrics/memory-metrics.js.map +1 -0
- package/dist/services/metrics/qdrant-metrics.d.ts +11 -0
- package/dist/services/metrics/qdrant-metrics.d.ts.map +1 -0
- package/dist/services/metrics/qdrant-metrics.js +35 -0
- package/dist/services/metrics/qdrant-metrics.js.map +1 -0
- package/dist/services/metrics/registry.d.ts +9 -0
- package/dist/services/metrics/registry.d.ts.map +1 -0
- package/dist/services/metrics/registry.js +19 -0
- package/dist/services/metrics/registry.js.map +1 -0
- package/dist/services/metrics/system-metrics.d.ts +10 -0
- package/dist/services/metrics/system-metrics.d.ts.map +1 -0
- package/dist/services/metrics/system-metrics.js +35 -0
- package/dist/services/metrics/system-metrics.js.map +1 -0
- package/dist/services/proof-of-work-store.d.ts +66 -0
- package/dist/services/proof-of-work-store.d.ts.map +1 -0
- package/dist/services/proof-of-work-store.js +141 -0
- package/dist/services/proof-of-work-store.js.map +1 -0
- package/dist/services/qdrant/connection.d.ts +24 -0
- package/dist/services/qdrant/connection.d.ts.map +1 -0
- package/dist/services/qdrant/connection.js +126 -0
- package/dist/services/qdrant/connection.js.map +1 -0
- package/dist/services/qdrant/index.d.ts +3 -0
- package/dist/services/qdrant/index.d.ts.map +1 -0
- package/dist/services/qdrant/index.js +4 -0
- package/dist/services/qdrant/index.js.map +1 -0
- package/dist/services/qdrant/initialization.d.ts +25 -0
- package/dist/services/qdrant/initialization.d.ts.map +1 -0
- package/dist/services/qdrant/initialization.js +170 -0
- package/dist/services/qdrant/initialization.js.map +1 -0
- package/dist/services/qdrant/listing.d.ts +26 -0
- package/dist/services/qdrant/listing.d.ts.map +1 -0
- package/dist/services/qdrant/listing.js +88 -0
- package/dist/services/qdrant/listing.js.map +1 -0
- package/dist/services/qdrant/memory-retrieval.d.ts +14 -0
- package/dist/services/qdrant/memory-retrieval.d.ts.map +1 -0
- package/dist/services/qdrant/memory-retrieval.js +110 -0
- package/dist/services/qdrant/memory-retrieval.js.map +1 -0
- package/dist/services/qdrant/memory-store.d.ts +16 -0
- package/dist/services/qdrant/memory-store.d.ts.map +1 -0
- package/dist/services/qdrant/memory-store.js +108 -0
- package/dist/services/qdrant/memory-store.js.map +1 -0
- package/dist/services/qdrant/memory-updates.d.ts +8 -0
- package/dist/services/qdrant/memory-updates.d.ts.map +1 -0
- package/dist/services/qdrant/memory-updates.js +206 -0
- package/dist/services/qdrant/memory-updates.js.map +1 -0
- package/dist/services/qdrant/protocol.d.ts +16 -0
- package/dist/services/qdrant/protocol.d.ts.map +1 -0
- package/dist/services/qdrant/protocol.js +48 -0
- package/dist/services/qdrant/protocol.js.map +1 -0
- package/dist/services/qdrant/quality.d.ts +14 -0
- package/dist/services/qdrant/quality.d.ts.map +1 -0
- package/dist/services/qdrant/quality.js +101 -0
- package/dist/services/qdrant/quality.js.map +1 -0
- package/dist/services/qdrant/resources.d.ts +7 -0
- package/dist/services/qdrant/resources.d.ts.map +1 -0
- package/dist/services/qdrant/resources.js +108 -0
- package/dist/services/qdrant/resources.js.map +1 -0
- package/dist/services/qdrant/search.d.ts +22 -0
- package/dist/services/qdrant/search.d.ts.map +1 -0
- package/dist/services/qdrant/search.js +75 -0
- package/dist/services/qdrant/search.js.map +1 -0
- package/dist/services/qdrant/service.d.ts +90 -0
- package/dist/services/qdrant/service.d.ts.map +1 -0
- package/dist/services/qdrant/service.js +95 -0
- package/dist/services/qdrant/service.js.map +1 -0
- package/dist/services/qdrant/snapshots.d.ts +19 -0
- package/dist/services/qdrant/snapshots.d.ts.map +1 -0
- package/dist/services/qdrant/snapshots.js +130 -0
- package/dist/services/qdrant/snapshots.js.map +1 -0
- package/dist/services/qdrant/types.d.ts +39 -0
- package/dist/services/qdrant/types.d.ts.map +1 -0
- package/dist/services/qdrant/types.js +2 -0
- package/dist/services/qdrant/types.js.map +1 -0
- package/dist/services/qdrant/utils.d.ts +20 -0
- package/dist/services/qdrant/utils.d.ts.map +1 -0
- package/dist/services/qdrant/utils.js +121 -0
- package/dist/services/qdrant/utils.js.map +1 -0
- package/dist/services/redis-cache.d.ts +43 -0
- package/dist/services/redis-cache.d.ts.map +1 -0
- package/dist/services/redis-cache.js +214 -0
- package/dist/services/redis-cache.js.map +1 -0
- package/dist/services/redis.d.ts +43 -0
- package/dist/services/redis.d.ts.map +1 -0
- package/dist/services/redis.js +234 -0
- package/dist/services/redis.js.map +1 -0
- package/dist/services/stats/bonuses.d.ts +28 -0
- package/dist/services/stats/bonuses.d.ts.map +1 -0
- package/dist/services/stats/bonuses.js +96 -0
- package/dist/services/stats/bonuses.js.map +1 -0
- package/dist/services/stats/healer.d.ts +6 -0
- package/dist/services/stats/healer.d.ts.map +1 -0
- package/dist/services/stats/healer.js +24 -0
- package/dist/services/stats/healer.js.map +1 -0
- package/dist/services/stats/model-stats.d.ts +53 -0
- package/dist/services/stats/model-stats.d.ts.map +1 -0
- package/dist/services/stats/model-stats.js +238 -0
- package/dist/services/stats/model-stats.js.map +1 -0
- package/dist/services/stats/protocol.d.ts +11 -0
- package/dist/services/stats/protocol.d.ts.map +1 -0
- package/dist/services/stats/protocol.js +55 -0
- package/dist/services/stats/protocol.js.map +1 -0
- package/dist/services/stats/scoring.d.ts +19 -0
- package/dist/services/stats/scoring.d.ts.map +1 -0
- package/dist/services/stats/scoring.js +102 -0
- package/dist/services/stats/scoring.js.map +1 -0
- package/dist/services/stats/types.d.ts +39 -0
- package/dist/services/stats/types.d.ts.map +1 -0
- package/dist/services/stats/types.js +8 -0
- package/dist/services/stats/types.js.map +1 -0
- package/dist/tools/kairos_attest.d.ts +7 -0
- package/dist/tools/kairos_attest.d.ts.map +1 -0
- package/dist/tools/kairos_attest.js +179 -0
- package/dist/tools/kairos_attest.js.map +1 -0
- package/dist/tools/kairos_begin.d.ts +9 -0
- package/dist/tools/kairos_begin.d.ts.map +1 -0
- package/dist/tools/kairos_begin.js +149 -0
- package/dist/tools/kairos_begin.js.map +1 -0
- package/dist/tools/kairos_begin_schema.d.ts +48 -0
- package/dist/tools/kairos_begin_schema.d.ts.map +1 -0
- package/dist/tools/kairos_begin_schema.js +48 -0
- package/dist/tools/kairos_begin_schema.js.map +1 -0
- package/dist/tools/kairos_delete.d.ts +2 -0
- package/dist/tools/kairos_delete.d.ts.map +1 -0
- package/dist/tools/kairos_delete.js +113 -0
- package/dist/tools/kairos_delete.js.map +1 -0
- package/dist/tools/kairos_dump.d.ts +14 -0
- package/dist/tools/kairos_dump.d.ts.map +1 -0
- package/dist/tools/kairos_dump.js +148 -0
- package/dist/tools/kairos_dump.js.map +1 -0
- package/dist/tools/kairos_mint.d.ts +7 -0
- package/dist/tools/kairos_mint.d.ts.map +1 -0
- package/dist/tools/kairos_mint.js +233 -0
- package/dist/tools/kairos_mint.js.map +1 -0
- package/dist/tools/kairos_next-missing-proof-payload.d.ts +24 -0
- package/dist/tools/kairos_next-missing-proof-payload.d.ts.map +1 -0
- package/dist/tools/kairos_next-missing-proof-payload.js +32 -0
- package/dist/tools/kairos_next-missing-proof-payload.js.map +1 -0
- package/dist/tools/kairos_next-pow-helpers.d.ts +57 -0
- package/dist/tools/kairos_next-pow-helpers.d.ts.map +1 -0
- package/dist/tools/kairos_next-pow-helpers.js +271 -0
- package/dist/tools/kairos_next-pow-helpers.js.map +1 -0
- package/dist/tools/kairos_next-previous-step.d.ts +36 -0
- package/dist/tools/kairos_next-previous-step.d.ts.map +1 -0
- package/dist/tools/kairos_next-previous-step.js +121 -0
- package/dist/tools/kairos_next-previous-step.js.map +1 -0
- package/dist/tools/kairos_next.d.ts +12 -0
- package/dist/tools/kairos_next.d.ts.map +1 -0
- package/dist/tools/kairos_next.js +285 -0
- package/dist/tools/kairos_next.js.map +1 -0
- package/dist/tools/kairos_next_schema.d.ts +80 -0
- package/dist/tools/kairos_next_schema.d.ts.map +1 -0
- package/dist/tools/kairos_next_schema.js +82 -0
- package/dist/tools/kairos_next_schema.js.map +1 -0
- package/dist/tools/kairos_search.d.ts +15 -0
- package/dist/tools/kairos_search.d.ts.map +1 -0
- package/dist/tools/kairos_search.js +262 -0
- package/dist/tools/kairos_search.js.map +1 -0
- package/dist/tools/kairos_spaces.d.ts +10 -0
- package/dist/tools/kairos_spaces.d.ts.map +1 -0
- package/dist/tools/kairos_spaces.js +129 -0
- package/dist/tools/kairos_spaces.js.map +1 -0
- package/dist/tools/kairos_update.d.ts +2 -0
- package/dist/tools/kairos_update.d.ts.map +1 -0
- package/dist/tools/kairos_update.js +158 -0
- package/dist/tools/kairos_update.js.map +1 -0
- package/dist/types/index.d.ts +60 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +21 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/memory.d.ts +38 -0
- package/dist/types/memory.d.ts.map +1 -0
- package/dist/types/memory.js +2 -0
- package/dist/types/memory.js.map +1 -0
- package/dist/utils/build-version.d.ts +15 -0
- package/dist/utils/build-version.d.ts.map +1 -0
- package/dist/utils/build-version.js +46 -0
- package/dist/utils/build-version.js.map +1 -0
- package/dist/utils/global-error-handlers.d.ts +7 -0
- package/dist/utils/global-error-handlers.d.ts.map +1 -0
- package/dist/utils/global-error-handlers.js +61 -0
- package/dist/utils/global-error-handlers.js.map +1 -0
- package/dist/utils/log-core.d.ts +11 -0
- package/dist/utils/log-core.d.ts.map +1 -0
- package/dist/utils/log-core.js +78 -0
- package/dist/utils/log-core.js.map +1 -0
- package/dist/utils/logger.d.ts +22 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +63 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/memory-body.d.ts +6 -0
- package/dist/utils/memory-body.d.ts.map +1 -0
- package/dist/utils/memory-body.js +21 -0
- package/dist/utils/memory-body.js.map +1 -0
- package/dist/utils/memory-store-utils.d.ts +14 -0
- package/dist/utils/memory-store-utils.d.ts.map +1 -0
- package/dist/utils/memory-store-utils.js +83 -0
- package/dist/utils/memory-store-utils.js.map +1 -0
- package/dist/utils/qdrant-collection-utils.d.ts +11 -0
- package/dist/utils/qdrant-collection-utils.d.ts.map +1 -0
- package/dist/utils/qdrant-collection-utils.js +62 -0
- package/dist/utils/qdrant-collection-utils.js.map +1 -0
- package/dist/utils/qdrant-query-utils.d.ts +6 -0
- package/dist/utils/qdrant-query-utils.d.ts.map +1 -0
- package/dist/utils/qdrant-query-utils.js +23 -0
- package/dist/utils/qdrant-query-utils.js.map +1 -0
- package/dist/utils/qdrant-utils.d.ts +5 -0
- package/dist/utils/qdrant-utils.d.ts.map +1 -0
- package/dist/utils/qdrant-utils.js +5 -0
- package/dist/utils/qdrant-utils.js.map +1 -0
- package/dist/utils/qdrant-vector-management.d.ts +25 -0
- package/dist/utils/qdrant-vector-management.d.ts.map +1 -0
- package/dist/utils/qdrant-vector-management.js +284 -0
- package/dist/utils/qdrant-vector-management.js.map +1 -0
- package/dist/utils/qdrant-vector-types.d.ts +35 -0
- package/dist/utils/qdrant-vector-types.d.ts.map +1 -0
- package/dist/utils/qdrant-vector-types.js +42 -0
- package/dist/utils/qdrant-vector-types.js.map +1 -0
- package/dist/utils/space-display.d.ts +11 -0
- package/dist/utils/space-display.d.ts.map +1 -0
- package/dist/utils/space-display.js +25 -0
- package/dist/utils/space-display.js.map +1 -0
- package/dist/utils/space-filter.d.ts +15 -0
- package/dist/utils/space-filter.d.ts.map +1 -0
- package/dist/utils/space-filter.js +18 -0
- package/dist/utils/space-filter.js.map +1 -0
- package/dist/utils/structured-logger.d.ts +41 -0
- package/dist/utils/structured-logger.d.ts.map +1 -0
- package/dist/utils/structured-logger.js +133 -0
- package/dist/utils/structured-logger.js.map +1 -0
- package/dist/utils/tenant-context.d.ts +67 -0
- package/dist/utils/tenant-context.d.ts.map +1 -0
- package/dist/utils/tenant-context.js +154 -0
- package/dist/utils/tenant-context.js.map +1 -0
- package/dist/utils/uri-builder.d.ts +37 -0
- package/dist/utils/uri-builder.d.ts.map +1 -0
- package/dist/utils/uri-builder.js +60 -0
- package/dist/utils/uri-builder.js.map +1 -0
- package/package.json +121 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { QdrantClient } from '@qdrant/js-client-rest';
|
|
2
|
+
import { VectorDescriptorMap } from './qdrant-vector-types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Create a Qdrant collection with standard vector configuration
|
|
5
|
+
*/
|
|
6
|
+
export declare function createQdrantCollection(client: QdrantClient, collectionName: string, vectors?: VectorDescriptorMap): Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* Get the current vector size of an existing collection
|
|
9
|
+
*/
|
|
10
|
+
export declare function getCollectionVectorConfig(client: QdrantClient, collectionName: string): Promise<VectorDescriptorMap | number | null>;
|
|
11
|
+
//# sourceMappingURL=qdrant-collection-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qdrant-collection-utils.d.ts","sourceRoot":"","sources":["../../src/utils/qdrant-collection-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAwB,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAErF;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BvI;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,MAAM,GAAG,IAAI,CAAC,CAqB1I"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { getVectorDescriptors } from './qdrant-vector-types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Create a Qdrant collection with standard vector configuration
|
|
4
|
+
*/
|
|
5
|
+
export async function createQdrantCollection(client, collectionName, vectors) {
|
|
6
|
+
// If caller provided explicit vector descriptors, use them, otherwise generate defaults
|
|
7
|
+
const vecs = vectors || getVectorDescriptors();
|
|
8
|
+
// Normalize to Qdrant expected shape: either single vector or named vectors
|
|
9
|
+
let vectorConfig;
|
|
10
|
+
const keys = Object.keys(vecs);
|
|
11
|
+
if (keys.length === 1 && keys[0] === 'oai') {
|
|
12
|
+
// Backwards compatibility: single vector under root
|
|
13
|
+
const oaiVec = vecs['oai'];
|
|
14
|
+
if (oaiVec) {
|
|
15
|
+
vectorConfig = { size: oaiVec.size, distance: oaiVec.distance || 'Cosine', on_disk: oaiVec.on_disk };
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
// Named vectors
|
|
20
|
+
vectorConfig = {};
|
|
21
|
+
Object.entries(vecs).forEach(([k, v]) => {
|
|
22
|
+
vectorConfig[k] = { size: v.size, distance: v.distance || 'Cosine', on_disk: v.on_disk };
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
await client.createCollection(collectionName, {
|
|
26
|
+
vectors: vectorConfig,
|
|
27
|
+
quantization_config: {
|
|
28
|
+
scalar: {
|
|
29
|
+
type: "int8",
|
|
30
|
+
always_ram: true,
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Get the current vector size of an existing collection
|
|
37
|
+
*/
|
|
38
|
+
export async function getCollectionVectorConfig(client, collectionName) {
|
|
39
|
+
try {
|
|
40
|
+
const collectionInfo = await client.getCollection(collectionName);
|
|
41
|
+
const vectors = collectionInfo.config?.params?.vectors;
|
|
42
|
+
if (!vectors)
|
|
43
|
+
return null;
|
|
44
|
+
// If named vectors exist, parse named map
|
|
45
|
+
if (typeof vectors === 'object' && !('size' in vectors)) {
|
|
46
|
+
const out = {};
|
|
47
|
+
Object.entries(vectors).forEach(([k, v]) => {
|
|
48
|
+
out[k] = { size: v.size, distance: v.distance || 'Cosine', on_disk: v.on_disk };
|
|
49
|
+
});
|
|
50
|
+
return out;
|
|
51
|
+
}
|
|
52
|
+
if (typeof vectors === 'object' && 'size' in vectors) {
|
|
53
|
+
// Single vector configured (legacy)
|
|
54
|
+
return vectors.size;
|
|
55
|
+
}
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=qdrant-collection-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qdrant-collection-utils.js","sourceRoot":"","sources":["../../src/utils/qdrant-collection-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAuB,MAAM,0BAA0B,CAAC;AAErF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,MAAoB,EAAE,cAAsB,EAAE,OAA6B;IACtH,wFAAwF;IACxF,MAAM,IAAI,GAAG,OAAO,IAAI,oBAAoB,EAAE,CAAC;IAC/C,4EAA4E;IAC5E,IAAI,YAAiB,CAAC;IACtB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QAC3C,oDAAoD;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,MAAM,EAAE,CAAC;YACX,YAAY,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QACvG,CAAC;IACH,CAAC;SAAM,CAAC;QACN,gBAAgB;QAChB,YAAY,GAAG,EAAS,CAAC;QACzB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YACtC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3F,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE;QAC5C,OAAO,EAAE,YAAY;QACrB,mBAAmB,EAAE;YACnB,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM;gBACZ,UAAU,EAAE,IAAI;aACjB;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,MAAoB,EAAE,cAAsB;IAC1F,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;QACvD,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,0CAA0C;QAC1C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,EAAE,CAAC;YACxD,MAAM,GAAG,GAAwB,EAAE,CAAC;YACpC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAgB,EAAE,EAAE;gBACxD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YAClF,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,CAAC;QACb,CAAC;QACD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YACrD,oCAAoC;YACpC,OAAQ,OAAe,CAAC,IAAI,CAAC;QAC/B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { QdrantClient } from '@qdrant/js-client-rest';
|
|
2
|
+
/**
|
|
3
|
+
* Count points that have the specified named vector present (non-null)
|
|
4
|
+
*/
|
|
5
|
+
export declare function countPointsWithVector(client: QdrantClient, collectionName: string, vectorName: string): Promise<number>;
|
|
6
|
+
//# sourceMappingURL=qdrant-query-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qdrant-query-utils.d.ts","sourceRoot":"","sources":["../../src/utils/qdrant-query-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAItD;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAe7H"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { getSpaceContext } from './tenant-context.js';
|
|
2
|
+
import { buildSpaceFilter } from './space-filter.js';
|
|
3
|
+
/**
|
|
4
|
+
* Count points that have the specified named vector present (non-null)
|
|
5
|
+
*/
|
|
6
|
+
export async function countPointsWithVector(client, collectionName, vectorName) {
|
|
7
|
+
const filter = buildSpaceFilter(getSpaceContext().allowedSpaceIds);
|
|
8
|
+
let offset = undefined;
|
|
9
|
+
let count = 0;
|
|
10
|
+
do {
|
|
11
|
+
const page = await client.scroll(collectionName, { filter, with_payload: false, with_vector: [vectorName], limit: 256, offset });
|
|
12
|
+
if (!page?.points || page.points.length === 0)
|
|
13
|
+
break;
|
|
14
|
+
for (const p of page.points) {
|
|
15
|
+
if (p?.vector && p.vector[vectorName]) {
|
|
16
|
+
count += 1;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
offset = page.next_page_offset;
|
|
20
|
+
} while (offset);
|
|
21
|
+
return count;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=qdrant-query-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qdrant-query-utils.js","sourceRoot":"","sources":["../../src/utils/qdrant-query-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAAoB,EAAE,cAAsB,EAAE,UAAkB;IAC1G,MAAM,MAAM,GAAG,gBAAgB,CAAC,eAAe,EAAE,CAAC,eAAe,CAAC,CAAC;IACnE,IAAI,MAAM,GAAQ,SAAS,CAAC;IAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,GAAG,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAS,CAAC,CAAC;QACxI,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM;QACrD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,EAAE,MAAM,IAAK,CAAC,CAAC,MAAc,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/C,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;QACH,CAAC;QACD,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC,QAAQ,MAAM,EAAE;IACjB,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qdrant-utils.d.ts","sourceRoot":"","sources":["../../src/utils/qdrant-utils.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qdrant-utils.js","sourceRoot":"","sources":["../../src/utils/qdrant-utils.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { QdrantClient } from '@qdrant/js-client-rest';
|
|
2
|
+
import { VectorDescriptorMap } from './qdrant-vector-types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Add named vectors to an existing collection by updating its config.
|
|
5
|
+
* This uses client.updateCollection and will fail if the server does not support the operation.
|
|
6
|
+
*/
|
|
7
|
+
export declare function addVectorsToCollection(client: QdrantClient, collectionName: string, vectors: VectorDescriptorMap): Promise<void>;
|
|
8
|
+
/**
|
|
9
|
+
* Migrate points from one named vector to another by re-embedding content.
|
|
10
|
+
* Assumes the new vector space is already added to the collection.
|
|
11
|
+
* @param client Qdrant client
|
|
12
|
+
* @param collectionName Collection name
|
|
13
|
+
* @param fromVectorName Source vector name (e.g., 'vs1024')
|
|
14
|
+
* @param toVectorName Target vector name (e.g., 'vs1536')
|
|
15
|
+
* @param embeddingService Service to generate new embeddings
|
|
16
|
+
* @param batchSize Batch size for migration (default 64)
|
|
17
|
+
*/
|
|
18
|
+
export declare function migrateVectorSpace(client: QdrantClient, collectionName: string, fromVectorName: string, toVectorName: string, embeddingService: any, // EmbeddingService
|
|
19
|
+
batchSize?: number): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Remove a named vector from the collection after migration.
|
|
22
|
+
* Note: Qdrant may not support removing vectors once added; this is a placeholder.
|
|
23
|
+
*/
|
|
24
|
+
export declare function removeVectorFromCollection(client: QdrantClient, collectionName: string, vectorName: string): Promise<void>;
|
|
25
|
+
//# sourceMappingURL=qdrant-vector-management.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qdrant-vector-management.d.ts","sourceRoot":"","sources":["../../src/utils/qdrant-vector-management.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAM/D;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqGtI;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,GAAG,EAAE,mBAAmB;AAC1C,SAAS,GAAE,MAAW,GACrB,OAAO,CAAC,IAAI,CAAC,CAqEf;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6FhI"}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import { logger } from './logger.js';
|
|
2
|
+
import { createQdrantCollection } from './qdrant-collection-utils.js';
|
|
3
|
+
import { KAIROS_APP_SPACE_ID } from '../config.js';
|
|
4
|
+
import { getSpaceContext } from '../utils/tenant-context.js';
|
|
5
|
+
import { buildSpaceFilter } from '../utils/space-filter.js';
|
|
6
|
+
/**
|
|
7
|
+
* Add named vectors to an existing collection by updating its config.
|
|
8
|
+
* This uses client.updateCollection and will fail if the server does not support the operation.
|
|
9
|
+
*/
|
|
10
|
+
export async function addVectorsToCollection(client, collectionName, vectors) {
|
|
11
|
+
logger.info(`addVectorsToCollection: Attempting to add vectors [${Object.keys(vectors).join(', ')}] to collection ${collectionName}`);
|
|
12
|
+
try {
|
|
13
|
+
const updateCtx = { vectors: {} };
|
|
14
|
+
Object.entries(vectors).forEach(([k, v]) => {
|
|
15
|
+
updateCtx.vectors[k] = { size: v.size, distance: v.distance || 'Cosine', on_disk: v.on_disk };
|
|
16
|
+
});
|
|
17
|
+
// Attempt to call Qdrant updateCollection if available
|
|
18
|
+
if (typeof client.updateCollection === 'function') {
|
|
19
|
+
await client.updateCollection(collectionName, { vectors: updateCtx.vectors });
|
|
20
|
+
logger.info(`addVectorsToCollection: updateCollection called successfully for ${collectionName} -> added ${Object.keys(updateCtx.vectors).join(',')}`);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
// Try fallback: for older JS client versions, may not support updateCollection
|
|
24
|
+
throw new Error('Qdrant client does not support updateCollection; please recreate collection with named vectors');
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
// If updateCollection fails because server doesn't allow adding new vector names, we need a safer migration path
|
|
29
|
+
const msg = err?.data?.status?.error || err?.message || String(err);
|
|
30
|
+
logger.warn(`addVectorsToCollection: updateCollection failed: ${msg}`);
|
|
31
|
+
// Heuristic: detect "Not existing vector name" error and attempt safe recreate + restore
|
|
32
|
+
if (String(msg).includes('Not existing vector name') || String(msg).includes('Not existing named vector')) {
|
|
33
|
+
logger.info(`addVectorsToCollection: detected inability to add vector via updateCollection, starting recreation-based migration for ${collectionName} to add vectors [${Object.keys(vectors).join(', ')}]`);
|
|
34
|
+
// Step 1: Gather existing points via scroll in batches
|
|
35
|
+
const allPoints = [];
|
|
36
|
+
const filter = buildSpaceFilter(getSpaceContext().allowedSpaceIds);
|
|
37
|
+
let offset = undefined;
|
|
38
|
+
do {
|
|
39
|
+
const page = await client.scroll(collectionName, {
|
|
40
|
+
filter,
|
|
41
|
+
with_payload: true,
|
|
42
|
+
with_vector: true,
|
|
43
|
+
limit: 256,
|
|
44
|
+
offset
|
|
45
|
+
});
|
|
46
|
+
if (!page?.points || page.points.length === 0)
|
|
47
|
+
break;
|
|
48
|
+
for (const p of page.points) {
|
|
49
|
+
allPoints.push({ id: p.id, payload: p.payload, vector: p.vector });
|
|
50
|
+
}
|
|
51
|
+
offset = page.next_page_offset;
|
|
52
|
+
} while (offset);
|
|
53
|
+
logger.info(`addVectorsToCollection: fetched ${allPoints.length} points from ${collectionName} for recreation`);
|
|
54
|
+
// Step 2: Recreate collection with merged vector set (existing vectors + requested)
|
|
55
|
+
// Gather existing vector descriptors so we can merge them
|
|
56
|
+
let mergedVectors = {};
|
|
57
|
+
try {
|
|
58
|
+
const existingCollectionInfo = await client.getCollection(collectionName);
|
|
59
|
+
const existingVectors = existingCollectionInfo.config?.params?.vectors;
|
|
60
|
+
if (existingVectors) {
|
|
61
|
+
if (typeof existingVectors === 'object' && !existingVectors?.size) {
|
|
62
|
+
Object.entries(existingVectors).forEach(([k, v]) => {
|
|
63
|
+
mergedVectors[k] = { size: v.size, distance: v.distance || 'Cosine', on_disk: v.on_disk };
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
else if (typeof existingVectors === 'object' && existingVectors.size) {
|
|
67
|
+
// legacy single-vector
|
|
68
|
+
const ev = existingVectors;
|
|
69
|
+
mergedVectors[`vs${ev.size}`] = { size: ev.size, distance: ev.distance || 'Cosine', on_disk: ev.on_disk };
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch (infoErr) {
|
|
74
|
+
// ignore; best-effort merge
|
|
75
|
+
logger.warn(`addVectorsToCollection: could not read existing collection info for ${collectionName}: ${String(infoErr)}`);
|
|
76
|
+
}
|
|
77
|
+
mergedVectors = { ...mergedVectors, ...vectors };
|
|
78
|
+
// We simply delete and recreate the collection with the desired vectors
|
|
79
|
+
try {
|
|
80
|
+
await client.deleteCollection(collectionName);
|
|
81
|
+
// small pause to ensure deletion is processed
|
|
82
|
+
await new Promise(resolve => setTimeout(resolve, 500));
|
|
83
|
+
}
|
|
84
|
+
catch (delErr) {
|
|
85
|
+
logger.warn(`addVectorsToCollection: failed to delete collection ${collectionName}: ${String(delErr)}; attempting to proceed`);
|
|
86
|
+
}
|
|
87
|
+
await createQdrantCollection(client, collectionName, mergedVectors);
|
|
88
|
+
logger.info(`addVectorsToCollection: recreated collection ${collectionName} with new vectors: ${Object.keys(mergedVectors).join(',')}`);
|
|
89
|
+
// Step 3: Re-insert points in batches to prevent memory pressure
|
|
90
|
+
const BATCH_SIZE = 256;
|
|
91
|
+
logger.info(`addVectorsToCollection: starting restore of ${allPoints.length} points to collection ${collectionName} (batchSize=${BATCH_SIZE})`);
|
|
92
|
+
let restored = 0;
|
|
93
|
+
for (let i = 0; i < allPoints.length; i += BATCH_SIZE) {
|
|
94
|
+
const batch = allPoints.slice(i, i + BATCH_SIZE).map(pt => ({
|
|
95
|
+
id: pt.id,
|
|
96
|
+
vector: pt.vector,
|
|
97
|
+
payload: { ...pt.payload, space_id: pt.payload?.space_id ?? KAIROS_APP_SPACE_ID }
|
|
98
|
+
}));
|
|
99
|
+
try {
|
|
100
|
+
await client.upsert(collectionName, { points: batch });
|
|
101
|
+
restored += batch.length;
|
|
102
|
+
logger.info(`addVectorsToCollection: upserted ${batch.length} restored points to ${collectionName} (restored total=${restored})`);
|
|
103
|
+
}
|
|
104
|
+
catch (upErr) {
|
|
105
|
+
// If we fail here, try to continue and log
|
|
106
|
+
logger.error(`addVectorsToCollection: failed upserting batch during recreation: ${String(upErr)}`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
logger.info(`addVectorsToCollection: restore complete, collection ${collectionName} now contains ${restored} points (attempted ${allPoints.length})`);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
throw err;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Migrate points from one named vector to another by re-embedding content.
|
|
117
|
+
* Assumes the new vector space is already added to the collection.
|
|
118
|
+
* @param client Qdrant client
|
|
119
|
+
* @param collectionName Collection name
|
|
120
|
+
* @param fromVectorName Source vector name (e.g., 'vs1024')
|
|
121
|
+
* @param toVectorName Target vector name (e.g., 'vs1536')
|
|
122
|
+
* @param embeddingService Service to generate new embeddings
|
|
123
|
+
* @param batchSize Batch size for migration (default 64)
|
|
124
|
+
*/
|
|
125
|
+
export async function migrateVectorSpace(client, collectionName, fromVectorName, toVectorName, embeddingService, // EmbeddingService
|
|
126
|
+
batchSize = 64) {
|
|
127
|
+
let offset = undefined;
|
|
128
|
+
let migrated = 0;
|
|
129
|
+
let failed = 0;
|
|
130
|
+
logger.info(`migrateVectorSpace: Starting migration from ${fromVectorName} to ${toVectorName} in collection ${collectionName} - status=START`);
|
|
131
|
+
const filter = buildSpaceFilter(getSpaceContext().allowedSpaceIds);
|
|
132
|
+
do {
|
|
133
|
+
// Scroll points with the old vector
|
|
134
|
+
const page = await client.scroll(collectionName, {
|
|
135
|
+
filter,
|
|
136
|
+
with_payload: true,
|
|
137
|
+
with_vector: [fromVectorName], // Only fetch the old vector
|
|
138
|
+
limit: batchSize,
|
|
139
|
+
offset
|
|
140
|
+
});
|
|
141
|
+
if (!page.points || page.points.length === 0)
|
|
142
|
+
break;
|
|
143
|
+
const updates = [];
|
|
144
|
+
for (const point of page.points) {
|
|
145
|
+
const payload = point.payload;
|
|
146
|
+
// Re-embed the content to get new vector
|
|
147
|
+
const textToEmbed = [
|
|
148
|
+
payload.description_full || '',
|
|
149
|
+
payload.label || '',
|
|
150
|
+
payload.text || '',
|
|
151
|
+
`Tags: ${(payload.tags || []).join(', ')}`
|
|
152
|
+
].filter(t => t.trim()).join('\n');
|
|
153
|
+
if (!textToEmbed.trim()) {
|
|
154
|
+
logger.warn(`Point ${point.id} has no embeddable content, skipping`);
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
let newVector = null;
|
|
158
|
+
try {
|
|
159
|
+
const embeddingResult = await embeddingService.generateEmbedding(textToEmbed);
|
|
160
|
+
newVector = embeddingResult.embedding;
|
|
161
|
+
}
|
|
162
|
+
catch (embedErr) {
|
|
163
|
+
failed += 1;
|
|
164
|
+
logger.warn(`migrateVectorSpace: failed to generate embedding for point ${point.id}; skipping; reason=${String(embedErr)}`);
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
// Prepare update: set new vector, keep payload
|
|
168
|
+
updates.push({
|
|
169
|
+
id: point.id,
|
|
170
|
+
vector: { [toVectorName]: newVector },
|
|
171
|
+
payload // Keep existing payload
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
if (updates.length > 0) {
|
|
175
|
+
try {
|
|
176
|
+
await client.upsert(collectionName, { points: updates });
|
|
177
|
+
migrated += updates.length;
|
|
178
|
+
logger.info(`migrateVectorSpace: Migrated ${updates.length} points in current batch, total migrated: ${migrated}`);
|
|
179
|
+
}
|
|
180
|
+
catch (upErr) {
|
|
181
|
+
// If upsert fails, log and attempt to continue
|
|
182
|
+
logger.error(`migrateVectorSpace: failed to upsert migrated vectors batch: ${String(upErr)}; migrated so far: ${migrated}`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
offset = page.next_page_offset;
|
|
186
|
+
} while (offset);
|
|
187
|
+
logger.info(`migrateVectorSpace: Migration complete for ${collectionName}: migrated=${migrated}, failed=${failed}, from=${fromVectorName}, to=${toVectorName} - status=COMPLETE`);
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Remove a named vector from the collection after migration.
|
|
191
|
+
* Note: Qdrant may not support removing vectors once added; this is a placeholder.
|
|
192
|
+
*/
|
|
193
|
+
export async function removeVectorFromCollection(client, collectionName, vectorName) {
|
|
194
|
+
logger.info(`removeVectorFromCollection: Attempting to remove vector '${vectorName}' from collection '${collectionName}'`);
|
|
195
|
+
// Recreate the collection without the given vectorName by gathering all points, removing the vector field,
|
|
196
|
+
// and recreating the collection with a merged vector map that excludes the vectorName.
|
|
197
|
+
try {
|
|
198
|
+
const collectionInfo = await client.getCollection(collectionName);
|
|
199
|
+
const vectors = collectionInfo.config?.params?.vectors;
|
|
200
|
+
if (!vectors) {
|
|
201
|
+
logger.warn(`removeVectorFromCollection: No vector config found for ${collectionName}; nothing to remove`);
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
// Convert to descriptor map
|
|
205
|
+
const existingVectors = {};
|
|
206
|
+
if (typeof vectors === 'object' && !vectors.size) {
|
|
207
|
+
Object.entries(vectors).forEach(([k, v]) => {
|
|
208
|
+
existingVectors[k] = { size: v.size, distance: v.distance || 'Cosine', on_disk: v.on_disk };
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
else if (typeof vectors === 'object' && vectors.size) {
|
|
212
|
+
// Single root vector; cannot remove unless recreating collection & leaving no vectors which is invalid
|
|
213
|
+
const ev = vectors;
|
|
214
|
+
existingVectors[`vs${ev.size}`] = { size: ev.size, distance: ev.distance || 'Cosine', on_disk: ev.on_disk };
|
|
215
|
+
}
|
|
216
|
+
if (!(vectorName in existingVectors)) {
|
|
217
|
+
logger.info(`removeVectorFromCollection: vector '${vectorName}' not present in collection '${collectionName}', nothing to remove`);
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
// Build new vector map excluding the vectorName
|
|
221
|
+
const newVectors = {};
|
|
222
|
+
Object.entries(existingVectors).forEach(([k, v]) => {
|
|
223
|
+
if (k !== vectorName)
|
|
224
|
+
newVectors[k] = v;
|
|
225
|
+
});
|
|
226
|
+
if (Object.keys(newVectors).length === 0) {
|
|
227
|
+
logger.error(`removeVectorFromCollection: Cannot remove vector '${vectorName}' as it would leave collection '${collectionName}' without any vectors`);
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
// Gather all points and strip the vectorName from all points
|
|
231
|
+
const filter = buildSpaceFilter(getSpaceContext().allowedSpaceIds);
|
|
232
|
+
const allPoints = [];
|
|
233
|
+
let offset = undefined;
|
|
234
|
+
do {
|
|
235
|
+
const page = await client.scroll(collectionName, { filter, with_payload: true, with_vector: true, limit: 256, offset });
|
|
236
|
+
if (!page?.points || page.points.length === 0)
|
|
237
|
+
break;
|
|
238
|
+
for (const p of page.points) {
|
|
239
|
+
const vec = p.vector || {};
|
|
240
|
+
// Copy all vector fields except the removed one
|
|
241
|
+
const newVectorFields = {};
|
|
242
|
+
Object.entries(vec).forEach(([vn, v]) => {
|
|
243
|
+
if (vn !== vectorName)
|
|
244
|
+
newVectorFields[vn] = v;
|
|
245
|
+
});
|
|
246
|
+
allPoints.push({ id: p.id, vector: newVectorFields, payload: p.payload });
|
|
247
|
+
}
|
|
248
|
+
offset = page.next_page_offset;
|
|
249
|
+
} while (offset);
|
|
250
|
+
logger.info(`removeVectorFromCollection: Fetched ${allPoints.length} points from ${collectionName} to recreate without ${vectorName}`);
|
|
251
|
+
// Delete, recreate with new vectors, and upsert points (without the removed vector)
|
|
252
|
+
try {
|
|
253
|
+
await client.deleteCollection(collectionName);
|
|
254
|
+
await new Promise(resolve => setTimeout(resolve, 500));
|
|
255
|
+
}
|
|
256
|
+
catch (delErr) {
|
|
257
|
+
logger.warn(`removeVectorFromCollection: failed to delete collection ${collectionName}: ${String(delErr)}; attempting to proceed`);
|
|
258
|
+
}
|
|
259
|
+
await createQdrantCollection(client, collectionName, newVectors);
|
|
260
|
+
logger.info(`removeVectorFromCollection: recreated collection ${collectionName} without vector ${vectorName}; new vectors: ${Object.keys(newVectors).join(',')}`);
|
|
261
|
+
const BATCH_SIZE = 256;
|
|
262
|
+
let restored = 0;
|
|
263
|
+
for (let i = 0; i < allPoints.length; i += BATCH_SIZE) {
|
|
264
|
+
const batch = allPoints.slice(i, i + BATCH_SIZE).map(p => ({
|
|
265
|
+
id: p.id,
|
|
266
|
+
vector: p.vector,
|
|
267
|
+
payload: { ...p.payload, space_id: p.payload?.space_id ?? KAIROS_APP_SPACE_ID }
|
|
268
|
+
}));
|
|
269
|
+
try {
|
|
270
|
+
await client.upsert(collectionName, { points: batch });
|
|
271
|
+
restored += batch.length;
|
|
272
|
+
logger.info(`removeVectorFromCollection: upserted ${batch.length} restored points into ${collectionName} (restored=${restored})`);
|
|
273
|
+
}
|
|
274
|
+
catch (upErr) {
|
|
275
|
+
logger.error(`removeVectorFromCollection: upsert failed during recreation: ${String(upErr)}`);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
logger.info(`removeVectorFromCollection: Completed removal of ${vectorName} on ${collectionName} - restored points=${restored}`);
|
|
279
|
+
}
|
|
280
|
+
catch (err) {
|
|
281
|
+
logger.error(`removeVectorFromCollection: removal failed for ${vectorName} on ${collectionName}: ${String(err)}`);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
//# sourceMappingURL=qdrant-vector-management.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qdrant-vector-management.js","sourceRoot":"","sources":["../../src/utils/qdrant-vector-management.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get the vector size from environment variable EMBEDDING_DIMENSION
|
|
3
|
+
*/
|
|
4
|
+
export type VectorDescriptor = {
|
|
5
|
+
size: number;
|
|
6
|
+
distance?: 'Cosine' | 'Euclid' | 'Dot';
|
|
7
|
+
on_disk?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export type VectorDescriptorMap = Record<string, VectorDescriptor>;
|
|
10
|
+
/**
|
|
11
|
+
* Get the vector size for the default provider (OpenAI) from environment variable EMBEDDING_DIMENSION
|
|
12
|
+
* Backwards compatible helper for single-vector deployments.
|
|
13
|
+
*/
|
|
14
|
+
export declare function getVectorSize(): number;
|
|
15
|
+
/**
|
|
16
|
+
* Build a named vector configuration object from environment variables.
|
|
17
|
+
* Uses "vs{DIMENSION}" naming to support migration between dimensions.
|
|
18
|
+
* Only one vector space active at a time, but supports migration from old to new.
|
|
19
|
+
*/
|
|
20
|
+
export declare function getVectorDescriptors(): VectorDescriptorMap;
|
|
21
|
+
/**
|
|
22
|
+
* Resolve a potential 'current' alias for Qdrant collection names.
|
|
23
|
+
*
|
|
24
|
+
* Usage:
|
|
25
|
+
* - If callers pass the literal alias 'current' (or an env var resolves to it),
|
|
26
|
+
* this function returns the real collection name derived from:
|
|
27
|
+
* 1) process.env['QDRANT_COLLECTION_CURRENT']
|
|
28
|
+
* 2) process.env['QDRANT_COLLECTION'] (fallback)
|
|
29
|
+
* 3) the provided collection string (final fallback)
|
|
30
|
+
*
|
|
31
|
+
* This allows code to use the stable alias 'current' while the actual
|
|
32
|
+
* target collection can be changed via environment without touching code.
|
|
33
|
+
*/
|
|
34
|
+
export declare function resolveCollectionAlias(collectionName: string): string;
|
|
35
|
+
//# sourceMappingURL=qdrant-vector-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qdrant-vector-types.d.ts","sourceRoot":"","sources":["../../src/utils/qdrant-vector-types.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAC3G,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAEnE;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,mBAAmB,CAK1D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAOrE"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { getEmbeddingDimension, QDRANT_COLLECTION_CURRENT, getQdrantCollection } from '../config.js';
|
|
2
|
+
/**
|
|
3
|
+
* Get the vector size for the default provider (OpenAI) from environment variable EMBEDDING_DIMENSION
|
|
4
|
+
* Backwards compatible helper for single-vector deployments.
|
|
5
|
+
*/
|
|
6
|
+
export function getVectorSize() {
|
|
7
|
+
return getEmbeddingDimension();
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Build a named vector configuration object from environment variables.
|
|
11
|
+
* Uses "vs{DIMENSION}" naming to support migration between dimensions.
|
|
12
|
+
* Only one vector space active at a time, but supports migration from old to new.
|
|
13
|
+
*/
|
|
14
|
+
export function getVectorDescriptors() {
|
|
15
|
+
const dim = getEmbeddingDimension(1536);
|
|
16
|
+
const map = {};
|
|
17
|
+
map[`vs${dim}`] = { size: dim, distance: 'Cosine', on_disk: true };
|
|
18
|
+
return map;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Resolve a potential 'current' alias for Qdrant collection names.
|
|
22
|
+
*
|
|
23
|
+
* Usage:
|
|
24
|
+
* - If callers pass the literal alias 'current' (or an env var resolves to it),
|
|
25
|
+
* this function returns the real collection name derived from:
|
|
26
|
+
* 1) process.env['QDRANT_COLLECTION_CURRENT']
|
|
27
|
+
* 2) process.env['QDRANT_COLLECTION'] (fallback)
|
|
28
|
+
* 3) the provided collection string (final fallback)
|
|
29
|
+
*
|
|
30
|
+
* This allows code to use the stable alias 'current' while the actual
|
|
31
|
+
* target collection can be changed via environment without touching code.
|
|
32
|
+
*/
|
|
33
|
+
export function resolveCollectionAlias(collectionName) {
|
|
34
|
+
if (!collectionName)
|
|
35
|
+
return collectionName;
|
|
36
|
+
if (collectionName === 'current') {
|
|
37
|
+
// Priority: explicit current mapping, then legacy QDRANT_COLLECTION, then alias itself
|
|
38
|
+
return QDRANT_COLLECTION_CURRENT || getQdrantCollection();
|
|
39
|
+
}
|
|
40
|
+
return collectionName;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=qdrant-vector-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qdrant-vector-types.js","sourceRoot":"","sources":["../../src/utils/qdrant-vector-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAQrG;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,qBAAqB,EAAE,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,GAAG,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,GAAG,GAAwB,EAAE,CAAC;IACpC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACnE,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,sBAAsB,CAAC,cAAsB;IAC3D,IAAI,CAAC,cAAc;QAAE,OAAO,cAAc,CAAC;IAC3C,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,uFAAuF;QACvF,OAAO,yBAAyB,IAAI,mBAAmB,EAAE,CAAC;IAC5D,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Human-readable names for space IDs. Frontend (tools, responses) uses names; backend uses ids.
|
|
3
|
+
*/
|
|
4
|
+
/** Display label for the app space (embedded mem docs). */
|
|
5
|
+
export declare const KAIROS_APP_SPACE_DISPLAY_NAME = "Kairos app";
|
|
6
|
+
/**
|
|
7
|
+
* Map a space_id to a human-readable name for tool outputs and agent-facing responses.
|
|
8
|
+
* user:realm:sub → "Personal"; group:realm:ref → "Group: ref"; space:kairos-app → "Kairos app".
|
|
9
|
+
*/
|
|
10
|
+
export declare function spaceIdToDisplayName(spaceId: string): string;
|
|
11
|
+
//# sourceMappingURL=space-display.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"space-display.d.ts","sourceRoot":"","sources":["../../src/utils/space-display.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,2DAA2D;AAC3D,eAAO,MAAM,6BAA6B,eAAe,CAAC;AAE1D;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQ5D"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Human-readable names for space IDs. Frontend (tools, responses) uses names; backend uses ids.
|
|
3
|
+
*/
|
|
4
|
+
import { KAIROS_APP_SPACE_ID } from '../config.js';
|
|
5
|
+
/** Display label for the app space (embedded mem docs). */
|
|
6
|
+
export const KAIROS_APP_SPACE_DISPLAY_NAME = 'Kairos app';
|
|
7
|
+
/**
|
|
8
|
+
* Map a space_id to a human-readable name for tool outputs and agent-facing responses.
|
|
9
|
+
* user:realm:sub → "Personal"; group:realm:ref → "Group: ref"; space:kairos-app → "Kairos app".
|
|
10
|
+
*/
|
|
11
|
+
export function spaceIdToDisplayName(spaceId) {
|
|
12
|
+
if (!spaceId || typeof spaceId !== 'string')
|
|
13
|
+
return 'Unknown';
|
|
14
|
+
if (spaceId === KAIROS_APP_SPACE_ID)
|
|
15
|
+
return KAIROS_APP_SPACE_DISPLAY_NAME;
|
|
16
|
+
const parts = spaceId.split(':');
|
|
17
|
+
if (parts[0] === 'user')
|
|
18
|
+
return 'Personal';
|
|
19
|
+
if (parts[0] === 'group' && parts.length >= 3)
|
|
20
|
+
return `Group: ${parts[2]}`;
|
|
21
|
+
if (parts[0] === 'space' && parts.length >= 2)
|
|
22
|
+
return parts.slice(1).join(':') || spaceId;
|
|
23
|
+
return spaceId;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=space-display.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"space-display.js","sourceRoot":"","sources":["../../src/utils/space-display.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,2DAA2D;AAC3D,MAAM,CAAC,MAAM,6BAA6B,GAAG,YAAY,CAAC;AAE1D;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC9D,IAAI,OAAO,KAAK,mBAAmB;QAAE,OAAO,6BAA6B,CAAC;IAC1E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM;QAAE,OAAO,UAAU,CAAC;IAC3C,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,UAAU,KAAK,CAAC,CAAC,CAAE,EAAE,CAAC;IAC5E,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC;IAC1F,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build Qdrant filter for space isolation. Merges space_id constraint with optional existing filter.
|
|
3
|
+
*/
|
|
4
|
+
/** Qdrant filter shape (must array of conditions). */
|
|
5
|
+
export interface QdrantFilterMust {
|
|
6
|
+
must?: Array<Record<string, unknown>>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Build a filter that restricts results to points whose space_id is in allowedSpaceIds.
|
|
10
|
+
* Merges with existingFilter.must so callers can add domain, chain.id, etc.
|
|
11
|
+
*/
|
|
12
|
+
export declare function buildSpaceFilter(allowedSpaceIds: string[], existingFilter?: QdrantFilterMust): {
|
|
13
|
+
must: Array<Record<string, unknown>>;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=space-filter.d.ts.map
|