ai-database 2.1.1 → 2.3.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/CHANGELOG.md +47 -1
- package/README.md +1063 -186
- package/dist/actions.d.ts +2 -2
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +1 -1
- package/dist/actions.js.map +1 -1
- package/dist/ai-promise-db.d.ts +52 -23
- package/dist/ai-promise-db.d.ts.map +1 -1
- package/dist/ai-promise-db.js +185 -164
- package/dist/ai-promise-db.js.map +1 -1
- package/dist/authorization.d.ts.map +1 -1
- package/dist/authorization.js +38 -30
- package/dist/authorization.js.map +1 -1
- package/dist/cascade-orchestrator.d.ts +404 -0
- package/dist/cascade-orchestrator.d.ts.map +1 -0
- package/dist/cascade-orchestrator.js +828 -0
- package/dist/cascade-orchestrator.js.map +1 -0
- package/dist/cascade-write-strategy.d.ts +584 -0
- package/dist/cascade-write-strategy.d.ts.map +1 -0
- package/dist/cascade-write-strategy.js +590 -0
- package/dist/cascade-write-strategy.js.map +1 -0
- package/dist/ch-adapter.d.ts +358 -0
- package/dist/ch-adapter.d.ts.map +1 -0
- package/dist/ch-adapter.js +929 -0
- package/dist/ch-adapter.js.map +1 -0
- package/dist/client/index.d.ts +42 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +43 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client.d.ts +266 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +81 -0
- package/dist/client.js.map +1 -0
- package/dist/constants.d.ts +64 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +52 -2
- package/dist/constants.js.map +1 -1
- package/dist/dataloader.d.ts +99 -0
- package/dist/dataloader.d.ts.map +1 -0
- package/dist/dataloader.js +225 -0
- package/dist/dataloader.js.map +1 -0
- package/dist/db-provider-port.d.ts +501 -0
- package/dist/db-provider-port.d.ts.map +1 -0
- package/dist/db-provider-port.js +113 -0
- package/dist/db-provider-port.js.map +1 -0
- package/dist/digital-objects-provider.d.ts +49 -0
- package/dist/digital-objects-provider.d.ts.map +1 -0
- package/dist/digital-objects-provider.js +55 -0
- package/dist/digital-objects-provider.js.map +1 -0
- package/dist/do-sqlite-adapter.d.ts +402 -0
- package/dist/do-sqlite-adapter.d.ts.map +1 -0
- package/dist/do-sqlite-adapter.js +745 -0
- package/dist/do-sqlite-adapter.js.map +1 -0
- package/dist/docs-rels/custom-types.d.ts +134 -0
- package/dist/docs-rels/custom-types.d.ts.map +1 -0
- package/dist/docs-rels/custom-types.js +70 -0
- package/dist/docs-rels/custom-types.js.map +1 -0
- package/dist/docs-rels/index.d.ts +16 -0
- package/dist/docs-rels/index.d.ts.map +1 -0
- package/dist/docs-rels/index.js +16 -0
- package/dist/docs-rels/index.js.map +1 -0
- package/dist/docs-rels/migrations/index.d.ts +30 -0
- package/dist/docs-rels/migrations/index.d.ts.map +1 -0
- package/dist/docs-rels/migrations/index.js +128 -0
- package/dist/docs-rels/migrations/index.js.map +1 -0
- package/dist/docs-rels/schema.d.ts +2961 -0
- package/dist/docs-rels/schema.d.ts.map +1 -0
- package/dist/docs-rels/schema.js +244 -0
- package/dist/docs-rels/schema.js.map +1 -0
- package/dist/durable-clickhouse.d.ts.map +1 -1
- package/dist/durable-clickhouse.js +16 -13
- package/dist/durable-clickhouse.js.map +1 -1
- package/dist/durable-promise.d.ts.map +1 -1
- package/dist/durable-promise.js +34 -15
- package/dist/durable-promise.js.map +1 -1
- package/dist/errors.d.ts +127 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +210 -0
- package/dist/errors.js.map +1 -0
- package/dist/eventbridge.d.ts +117 -0
- package/dist/eventbridge.d.ts.map +1 -0
- package/dist/eventbridge.js +238 -0
- package/dist/eventbridge.js.map +1 -0
- package/dist/events.d.ts +2 -2
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +1 -1
- package/dist/events.js.map +1 -1
- package/dist/execution-queue.d.ts.map +1 -1
- package/dist/execution-queue.js +4 -5
- package/dist/execution-queue.js.map +1 -1
- package/dist/index.d.ts +37 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +112 -6
- package/dist/index.js.map +1 -1
- package/dist/linguistic.d.ts +3 -108
- package/dist/linguistic.d.ts.map +1 -1
- package/dist/linguistic.js +3 -372
- package/dist/linguistic.js.map +1 -1
- package/dist/logger.d.ts +132 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +137 -0
- package/dist/logger.js.map +1 -0
- package/dist/memory-provider.d.ts +129 -0
- package/dist/memory-provider.d.ts.map +1 -1
- package/dist/memory-provider.js +592 -257
- package/dist/memory-provider.js.map +1 -1
- package/dist/pg-adapter.d.ts +424 -0
- package/dist/pg-adapter.d.ts.map +1 -0
- package/dist/pg-adapter.js +921 -0
- package/dist/pg-adapter.js.map +1 -0
- package/dist/pipelines-iceberg-emitter.d.ts +327 -0
- package/dist/pipelines-iceberg-emitter.d.ts.map +1 -0
- package/dist/pipelines-iceberg-emitter.js +351 -0
- package/dist/pipelines-iceberg-emitter.js.map +1 -0
- package/dist/provider-capabilities.d.ts +146 -0
- package/dist/provider-capabilities.d.ts.map +1 -0
- package/dist/provider-capabilities.js +214 -0
- package/dist/provider-capabilities.js.map +1 -0
- package/dist/rdb-provider-adapter.d.ts +195 -0
- package/dist/rdb-provider-adapter.d.ts.map +1 -0
- package/dist/rdb-provider-adapter.js +291 -0
- package/dist/rdb-provider-adapter.js.map +1 -0
- package/dist/schema/cascade.d.ts +49 -10
- package/dist/schema/cascade.d.ts.map +1 -1
- package/dist/schema/cascade.js +491 -273
- package/dist/schema/cascade.js.map +1 -1
- package/dist/schema/definition-caches.d.ts +24 -0
- package/dist/schema/definition-caches.d.ts.map +1 -0
- package/dist/schema/definition-caches.js +26 -0
- package/dist/schema/definition-caches.js.map +1 -0
- package/dist/schema/dependency-graph.d.ts +45 -0
- package/dist/schema/dependency-graph.d.ts.map +1 -0
- package/dist/schema/dependency-graph.js +47 -0
- package/dist/schema/dependency-graph.js.map +1 -0
- package/dist/schema/diff.d.ts +103 -0
- package/dist/schema/diff.d.ts.map +1 -0
- package/dist/schema/diff.js +329 -0
- package/dist/schema/diff.js.map +1 -0
- package/dist/schema/entity-operations.d.ts +99 -0
- package/dist/schema/entity-operations.d.ts.map +1 -0
- package/dist/schema/entity-operations.js +818 -0
- package/dist/schema/entity-operations.js.map +1 -0
- package/dist/schema/generation-context.d.ts +202 -0
- package/dist/schema/generation-context.d.ts.map +1 -0
- package/dist/schema/generation-context.js +393 -0
- package/dist/schema/generation-context.js.map +1 -0
- package/dist/schema/index.d.ts +32 -34
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +462 -519
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/migration.d.ts +205 -0
- package/dist/schema/migration.d.ts.map +1 -0
- package/dist/schema/migration.js +327 -0
- package/dist/schema/migration.js.map +1 -0
- package/dist/schema/nl-query-generator.d.ts +68 -0
- package/dist/schema/nl-query-generator.d.ts.map +1 -0
- package/dist/schema/nl-query-generator.js +362 -0
- package/dist/schema/nl-query-generator.js.map +1 -0
- package/dist/schema/nl-query.d.ts +65 -0
- package/dist/schema/nl-query.d.ts.map +1 -0
- package/dist/schema/nl-query.js +178 -0
- package/dist/schema/nl-query.js.map +1 -0
- package/dist/schema/parse.d.ts.map +1 -1
- package/dist/schema/parse.js +152 -89
- package/dist/schema/parse.js.map +1 -1
- package/dist/schema/provider.d.ts +38 -0
- package/dist/schema/provider.d.ts.map +1 -1
- package/dist/schema/provider.js +15 -7
- package/dist/schema/provider.js.map +1 -1
- package/dist/schema/resolve.d.ts +46 -5
- package/dist/schema/resolve.d.ts.map +1 -1
- package/dist/schema/resolve.js +334 -117
- package/dist/schema/resolve.js.map +1 -1
- package/dist/schema/search-utils.d.ts +76 -0
- package/dist/schema/search-utils.d.ts.map +1 -0
- package/dist/schema/search-utils.js +86 -0
- package/dist/schema/search-utils.js.map +1 -0
- package/dist/schema/seed.d.ts +53 -0
- package/dist/schema/seed.d.ts.map +1 -0
- package/dist/schema/seed.js +94 -0
- package/dist/schema/seed.js.map +1 -0
- package/dist/schema/semantic.d.ts +11 -0
- package/dist/schema/semantic.d.ts.map +1 -1
- package/dist/schema/semantic.js +262 -68
- package/dist/schema/semantic.js.map +1 -1
- package/dist/schema/sub-apis.d.ts +52 -0
- package/dist/schema/sub-apis.d.ts.map +1 -0
- package/dist/schema/sub-apis.js +216 -0
- package/dist/schema/sub-apis.js.map +1 -0
- package/dist/schema/system-entities.d.ts +42 -0
- package/dist/schema/system-entities.d.ts.map +1 -0
- package/dist/schema/system-entities.js +101 -0
- package/dist/schema/system-entities.js.map +1 -0
- package/dist/schema/types.d.ts +91 -9
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/union-fallback.d.ts +219 -0
- package/dist/schema/union-fallback.d.ts.map +1 -0
- package/dist/schema/union-fallback.js +331 -0
- package/dist/schema/union-fallback.js.map +1 -0
- package/dist/schema/value-generators/ai.d.ts +54 -0
- package/dist/schema/value-generators/ai.d.ts.map +1 -0
- package/dist/schema/value-generators/ai.js +136 -0
- package/dist/schema/value-generators/ai.js.map +1 -0
- package/dist/schema/value-generators/index.d.ts +126 -0
- package/dist/schema/value-generators/index.d.ts.map +1 -0
- package/dist/schema/value-generators/index.js +219 -0
- package/dist/schema/value-generators/index.js.map +1 -0
- package/dist/schema/value-generators/placeholder.d.ts +52 -0
- package/dist/schema/value-generators/placeholder.d.ts.map +1 -0
- package/dist/schema/value-generators/placeholder.js +328 -0
- package/dist/schema/value-generators/placeholder.js.map +1 -0
- package/dist/schema/value-generators/types.d.ts +116 -0
- package/dist/schema/value-generators/types.d.ts.map +1 -0
- package/dist/schema/value-generators/types.js +11 -0
- package/dist/schema/value-generators/types.js.map +1 -0
- package/dist/schema/verb-derivation.d.ts +167 -0
- package/dist/schema/verb-derivation.d.ts.map +1 -0
- package/dist/schema/verb-derivation.js +281 -0
- package/dist/schema/verb-derivation.js.map +1 -0
- package/dist/schema/version.d.ts +111 -0
- package/dist/schema/version.d.ts.map +1 -0
- package/dist/schema/version.js +190 -0
- package/dist/schema/version.js.map +1 -0
- package/dist/schema.d.ts +1095 -23
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +2854 -38
- package/dist/schema.js.map +1 -1
- package/dist/semantic-vectors.d.ts +39 -0
- package/dist/semantic-vectors.d.ts.map +1 -0
- package/dist/semantic-vectors.js +334 -0
- package/dist/semantic-vectors.js.map +1 -0
- package/dist/semantic.d.ts +29 -1
- package/dist/semantic.d.ts.map +1 -1
- package/dist/semantic.js +26 -16
- package/dist/semantic.js.map +1 -1
- package/dist/telemetry.d.ts +128 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +305 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/tests.d.ts.map +1 -1
- package/dist/tests.js +30 -22
- package/dist/tests.js.map +1 -1
- package/dist/type-guards.d.ts +212 -0
- package/dist/type-guards.d.ts.map +1 -0
- package/dist/type-guards.js +318 -0
- package/dist/type-guards.js.map +1 -0
- package/dist/types.d.ts +33 -245
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +62 -72
- package/dist/types.js.map +1 -1
- package/dist/validation.d.ts +165 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +639 -0
- package/dist/validation.js.map +1 -0
- package/dist/worker/db-provider.d.ts +168 -0
- package/dist/worker/db-provider.d.ts.map +1 -0
- package/dist/worker/db-provider.js +277 -0
- package/dist/worker/db-provider.js.map +1 -0
- package/dist/worker/index.d.ts +35 -0
- package/dist/worker/index.d.ts.map +1 -0
- package/dist/worker/index.js +37 -0
- package/dist/worker/index.js.map +1 -0
- package/dist/worker.d.ts +779 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +2786 -0
- package/dist/worker.js.map +1 -0
- package/package.json +38 -8
- package/src/docs-rels/migrations/0001-init.sql +125 -0
package/dist/semantic.d.ts
CHANGED
|
@@ -115,6 +115,7 @@ export declare function cosineSimilarity(a: number[], b: number[]): number;
|
|
|
115
115
|
export declare function computeRRF(ftsRank: number, semanticRank: number, k?: number, ftsWeight?: number, semanticWeight?: number): number;
|
|
116
116
|
/**
|
|
117
117
|
* In-memory storage for embeddings (shared with MemoryProvider via artifacts)
|
|
118
|
+
* @internal
|
|
118
119
|
*/
|
|
119
120
|
interface EmbeddingStore {
|
|
120
121
|
getEmbedding(type: string, id: string): Promise<number[] | null>;
|
|
@@ -124,13 +125,40 @@ interface EmbeddingStore {
|
|
|
124
125
|
embedding: number[];
|
|
125
126
|
}>>;
|
|
126
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* Options for creating a semantic provider
|
|
130
|
+
* @internal
|
|
131
|
+
*/
|
|
132
|
+
export interface SemanticProviderOptions {
|
|
133
|
+
/**
|
|
134
|
+
* The number of dimensions for embeddings.
|
|
135
|
+
*
|
|
136
|
+
* Common values:
|
|
137
|
+
* - 384: sentence-transformers (default)
|
|
138
|
+
* - 1536: OpenAI ada-002, text-embedding-3-small
|
|
139
|
+
* - 3072: OpenAI text-embedding-3-large
|
|
140
|
+
* - 1024: Cohere embed-english-v3.0
|
|
141
|
+
* - 4096: Voyage AI large models
|
|
142
|
+
*
|
|
143
|
+
* @default 384
|
|
144
|
+
*/
|
|
145
|
+
embeddingDimensions?: number;
|
|
146
|
+
}
|
|
127
147
|
/**
|
|
128
148
|
* Create a mock semantic provider for testing
|
|
129
149
|
*
|
|
130
150
|
* Uses deterministic embeddings based on text content to enable
|
|
131
151
|
* meaningful semantic search in tests.
|
|
152
|
+
*
|
|
153
|
+
* @deprecated Import from 'ai-database/test/utils' or '../test/utils/mock-semantic.js' instead.
|
|
154
|
+
* This export will be removed in a future version.
|
|
155
|
+
*
|
|
156
|
+
* @internal This function is intended for testing only and should not be used in production code.
|
|
157
|
+
*
|
|
158
|
+
* @param store - The embedding store for persistence
|
|
159
|
+
* @param options - Configuration options including embeddingDimensions
|
|
132
160
|
*/
|
|
133
|
-
export declare function createMockSemanticProvider(store: EmbeddingStore): SemanticProvider;
|
|
161
|
+
export declare function createMockSemanticProvider(store: EmbeddingStore, options?: SemanticProviderOptions): SemanticProvider;
|
|
134
162
|
/**
|
|
135
163
|
* Extract embeddable text from entity data
|
|
136
164
|
*
|
package/dist/semantic.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic.d.ts","sourceRoot":"","sources":["../src/semantic.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAEtC;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAEhD;;OAEG;IACH,MAAM,CACJ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAA;IAElC;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,gBAAgB;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,kBAAkB;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,OAAO;IAC7C,sBAAsB;IACtB,MAAM,EAAE,CAAC,CAAA;IACT,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,YAAY,EAAE,MAAM,CAAA;IACpB,sCAAsC;IACtC,aAAa,EAAE,MAAM,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,KAAK,CAAA;CAC5C;
|
|
1
|
+
{"version":3,"file":"semantic.d.ts","sourceRoot":"","sources":["../src/semantic.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAEtC;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAEhD;;OAEG;IACH,MAAM,CACJ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAA;IAElC;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,gBAAgB;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,kBAAkB;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,OAAO;IAC7C,sBAAsB;IACtB,MAAM,EAAE,CAAC,CAAA;IACT,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,YAAY,EAAE,MAAM,CAAA;IACpB,sCAAsC;IACtC,aAAa,EAAE,MAAM,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,KAAK,CAAA;CAC5C;AAsMD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAoBjE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,CAAC,GAAE,MAAW,EACd,SAAS,GAAE,MAAY,EACvB,cAAc,GAAE,MAAY,GAC3B,MAAM,CAIR;AAMD;;;GAGG;AACH,UAAU,cAAc;IACtB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAA;IAChE,YAAY,CACV,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC,CAAA;CACpF;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;;;;;;;;OAWG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,cAAc,EACrB,OAAO,CAAC,EAAE,uBAAuB,GAChC,gBAAgB,CA+ClB;AAMD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,CAAC,EAAE,MAAM,EAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAuCpC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGxD;AAMD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,MAAM,CAAC,EAAE,gBAAgB,GACxB,MAAM,EAAE,GAAG,IAAI,CAsBjB;AAMD;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG;IACrC,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG;IACnC,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAA;IAChB,6DAA6D;IAC7D,aAAa,EAAE,MAAM,CAAA;IACrB,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAA;CACf,CAAA"}
|
package/dist/semantic.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @packageDocumentation
|
|
8
8
|
*/
|
|
9
|
-
import { EMBEDDING_DIMENSIONS } from './constants.js';
|
|
9
|
+
import { DEFAULT_EMBEDDING_DIMENSIONS, EMBEDDING_DIMENSIONS } from './constants.js';
|
|
10
10
|
// =============================================================================
|
|
11
11
|
// Deterministic Mock Embedding Provider
|
|
12
12
|
// =============================================================================
|
|
@@ -102,7 +102,7 @@ function simpleHash(str) {
|
|
|
102
102
|
let hash = 0;
|
|
103
103
|
for (let i = 0; i < str.length; i++) {
|
|
104
104
|
const char = str.charCodeAt(i);
|
|
105
|
-
hash = (
|
|
105
|
+
hash = (hash << 5) - hash + char;
|
|
106
106
|
hash = hash & hash; // Convert to 32-bit integer
|
|
107
107
|
}
|
|
108
108
|
return Math.abs(hash);
|
|
@@ -122,7 +122,7 @@ function tokenize(text) {
|
|
|
122
122
|
.toLowerCase()
|
|
123
123
|
.replace(/[^\w\s]/g, ' ')
|
|
124
124
|
.split(/\s+/)
|
|
125
|
-
.filter(w => w.length > 0);
|
|
125
|
+
.filter((w) => w.length > 0);
|
|
126
126
|
}
|
|
127
127
|
/**
|
|
128
128
|
* Get semantic vector for a word
|
|
@@ -141,12 +141,15 @@ function getWordVector(word) {
|
|
|
141
141
|
*
|
|
142
142
|
* Uses semantic word vectors to create meaningful embeddings
|
|
143
143
|
* where similar concepts have higher cosine similarity.
|
|
144
|
+
*
|
|
145
|
+
* @param text - The text to generate an embedding for
|
|
146
|
+
* @param dimensions - The number of dimensions for the embedding (default: DEFAULT_EMBEDDING_DIMENSIONS)
|
|
144
147
|
*/
|
|
145
|
-
function generateEmbedding(text) {
|
|
148
|
+
function generateEmbedding(text, dimensions = DEFAULT_EMBEDDING_DIMENSIONS) {
|
|
146
149
|
const words = tokenize(text);
|
|
147
150
|
if (words.length === 0) {
|
|
148
151
|
// Empty text - return zero vector with small noise
|
|
149
|
-
return Array.from({ length:
|
|
152
|
+
return Array.from({ length: dimensions }, (_, i) => seededRandom(0, i) * 0.01);
|
|
150
153
|
}
|
|
151
154
|
// Aggregate word vectors
|
|
152
155
|
const aggregated = [0, 0, 0, 0];
|
|
@@ -158,11 +161,11 @@ function generateEmbedding(text) {
|
|
|
158
161
|
}
|
|
159
162
|
// Normalize aggregated vector
|
|
160
163
|
const norm = Math.sqrt(aggregated.reduce((sum, v) => sum + v * v, 0));
|
|
161
|
-
const normalized = aggregated.map(v => v / (norm || 1));
|
|
164
|
+
const normalized = aggregated.map((v) => v / (norm || 1));
|
|
162
165
|
// Expand to full embedding dimensions using deterministic expansion
|
|
163
166
|
const textHash = simpleHash(text);
|
|
164
|
-
const embedding = new Array(
|
|
165
|
-
for (let i = 0; i <
|
|
167
|
+
const embedding = new Array(dimensions);
|
|
168
|
+
for (let i = 0; i < dimensions; i++) {
|
|
166
169
|
// Combine semantic vector with hash-based expansion
|
|
167
170
|
const baseIndex = i % 4;
|
|
168
171
|
const base = normalized[baseIndex];
|
|
@@ -216,23 +219,30 @@ export function computeRRF(ftsRank, semanticRank, k = 60, ftsWeight = 0.5, seman
|
|
|
216
219
|
*
|
|
217
220
|
* Uses deterministic embeddings based on text content to enable
|
|
218
221
|
* meaningful semantic search in tests.
|
|
222
|
+
*
|
|
223
|
+
* @deprecated Import from 'ai-database/test/utils' or '../test/utils/mock-semantic.js' instead.
|
|
224
|
+
* This export will be removed in a future version.
|
|
225
|
+
*
|
|
226
|
+
* @internal This function is intended for testing only and should not be used in production code.
|
|
227
|
+
*
|
|
228
|
+
* @param store - The embedding store for persistence
|
|
229
|
+
* @param options - Configuration options including embeddingDimensions
|
|
219
230
|
*/
|
|
220
|
-
export function createMockSemanticProvider(store) {
|
|
231
|
+
export function createMockSemanticProvider(store, options) {
|
|
232
|
+
const dimensions = options?.embeddingDimensions ?? DEFAULT_EMBEDDING_DIMENSIONS;
|
|
221
233
|
return {
|
|
222
|
-
dimensions
|
|
234
|
+
dimensions,
|
|
223
235
|
async embed(text) {
|
|
224
|
-
return generateEmbedding(text);
|
|
236
|
+
return generateEmbedding(text, dimensions);
|
|
225
237
|
},
|
|
226
238
|
async embedBatch(texts) {
|
|
227
|
-
return texts.map(text => generateEmbedding(text));
|
|
239
|
+
return texts.map((text) => generateEmbedding(text, dimensions));
|
|
228
240
|
},
|
|
229
241
|
async search(type, query, options) {
|
|
230
242
|
const threshold = options?.threshold ?? 0;
|
|
231
243
|
const limit = options?.limit ?? 10;
|
|
232
244
|
// Get query embedding
|
|
233
|
-
const queryEmbedding = typeof query === 'string'
|
|
234
|
-
? generateEmbedding(query)
|
|
235
|
-
: query;
|
|
245
|
+
const queryEmbedding = typeof query === 'string' ? generateEmbedding(query, dimensions) : query;
|
|
236
246
|
// Get all embeddings for this type
|
|
237
247
|
const embeddings = await store.getAllEmbeddings(type);
|
|
238
248
|
// Calculate similarities and rank
|
|
@@ -287,7 +297,7 @@ export function extractEmbeddableText(data, fields) {
|
|
|
287
297
|
}
|
|
288
298
|
else if (Array.isArray(value)) {
|
|
289
299
|
// Handle string arrays (like tags)
|
|
290
|
-
const stringValues = value.filter(v => typeof v === 'string');
|
|
300
|
+
const stringValues = value.filter((v) => typeof v === 'string');
|
|
291
301
|
if (stringValues.length > 0) {
|
|
292
302
|
textParts.push(stringValues.join(' '));
|
|
293
303
|
embeddedFields.push(key);
|
package/dist/semantic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic.js","sourceRoot":"","sources":["../src/semantic.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"semantic.js","sourceRoot":"","sources":["../src/semantic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenTelemetry Integration for ai-database
|
|
3
|
+
*
|
|
4
|
+
* Provides instrumented wrappers and telemetry utilities for database operations.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { DB } from 'ai-database'
|
|
9
|
+
* import { withDatabaseTelemetry, instrumentDB } from 'ai-database/telemetry'
|
|
10
|
+
*
|
|
11
|
+
* // Enable telemetry globally
|
|
12
|
+
* withDatabaseTelemetry({ provider: createConsoleTelemetryProvider() }, async () => {
|
|
13
|
+
* const { db } = DB({ Lead: { name: 'string' } })
|
|
14
|
+
* const leads = await db.Lead.list()
|
|
15
|
+
* })
|
|
16
|
+
*
|
|
17
|
+
* // Or instrument a DB instance
|
|
18
|
+
* const { db } = DB({ Lead: { name: 'string' } })
|
|
19
|
+
* const tracedDb = instrumentDB(db)
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @packageDocumentation
|
|
23
|
+
*/
|
|
24
|
+
import { type Tracer, type Meter, type Logger, type Span, type SpanAttributes, type TelemetryProvider, type Counter, type Histogram } from '@org.ai/types';
|
|
25
|
+
/**
|
|
26
|
+
* Get the tracer for ai-database
|
|
27
|
+
*/
|
|
28
|
+
export declare function getDatabaseTracer(): Tracer;
|
|
29
|
+
/**
|
|
30
|
+
* Get the meter for ai-database
|
|
31
|
+
*/
|
|
32
|
+
export declare function getDatabaseMeter(): Meter;
|
|
33
|
+
/**
|
|
34
|
+
* Get the logger for ai-database
|
|
35
|
+
*/
|
|
36
|
+
export declare function getDatabaseLogger(): Logger;
|
|
37
|
+
/**
|
|
38
|
+
* Create database-specific metrics
|
|
39
|
+
*/
|
|
40
|
+
export declare function createDatabaseMetrics(meter: Meter): {
|
|
41
|
+
queryDuration: Histogram;
|
|
42
|
+
queryTotal: Counter;
|
|
43
|
+
queryErrors: Counter;
|
|
44
|
+
entityOps: Counter;
|
|
45
|
+
cacheHits: Counter;
|
|
46
|
+
cacheMisses: Counter;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Get database metrics for the package
|
|
50
|
+
*/
|
|
51
|
+
export declare function getDatabaseMetrics(): {
|
|
52
|
+
queryDuration: Histogram;
|
|
53
|
+
queryTotal: Counter;
|
|
54
|
+
queryErrors: Counter;
|
|
55
|
+
entityOps: Counter;
|
|
56
|
+
cacheHits: Counter;
|
|
57
|
+
cacheMisses: Counter;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Reset cached telemetry instances
|
|
61
|
+
*/
|
|
62
|
+
export declare function resetTelemetry(): void;
|
|
63
|
+
/**
|
|
64
|
+
* Options for withDatabaseTelemetry
|
|
65
|
+
*/
|
|
66
|
+
export interface WithDatabaseTelemetryOptions {
|
|
67
|
+
/** Telemetry provider to use */
|
|
68
|
+
provider?: TelemetryProvider;
|
|
69
|
+
/** Database system name */
|
|
70
|
+
dbSystem?: string;
|
|
71
|
+
/** Database name */
|
|
72
|
+
dbName?: string;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Execute a function with database telemetry enabled
|
|
76
|
+
*/
|
|
77
|
+
export declare function withDatabaseTelemetry<T>(options: WithDatabaseTelemetryOptions, fn: () => Promise<T>): Promise<T>;
|
|
78
|
+
/**
|
|
79
|
+
* Database operation types
|
|
80
|
+
*/
|
|
81
|
+
export type DBOperation = 'get' | 'list' | 'create' | 'update' | 'delete' | 'search' | 'query' | 'batch';
|
|
82
|
+
/**
|
|
83
|
+
* Record a database query
|
|
84
|
+
*/
|
|
85
|
+
export declare function recordDBQuery(params: {
|
|
86
|
+
operation: DBOperation;
|
|
87
|
+
entity?: string;
|
|
88
|
+
durationMs: number;
|
|
89
|
+
success: boolean;
|
|
90
|
+
rowCount?: number;
|
|
91
|
+
}): void;
|
|
92
|
+
/**
|
|
93
|
+
* Record a cache hit/miss
|
|
94
|
+
*/
|
|
95
|
+
export declare function recordCacheAccess(hit: boolean, entity?: string): void;
|
|
96
|
+
/**
|
|
97
|
+
* Create a traced database operation
|
|
98
|
+
*/
|
|
99
|
+
export declare function tracedDBOperation<TArgs extends unknown[], TResult>(operation: DBOperation, entity: string, fn: (...args: TArgs) => Promise<TResult>, options?: {
|
|
100
|
+
getStatement?: (...args: TArgs) => string;
|
|
101
|
+
}): (...args: TArgs) => Promise<TResult>;
|
|
102
|
+
/**
|
|
103
|
+
* Wrap entity operations with telemetry
|
|
104
|
+
*/
|
|
105
|
+
export declare function instrumentEntityOperations<T extends Record<string, (...args: any[]) => any>>(entityName: string, operations: T): T;
|
|
106
|
+
/**
|
|
107
|
+
* Instrument a DB instance with telemetry
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```ts
|
|
111
|
+
* const { db } = DB({ Lead: { name: 'string' } })
|
|
112
|
+
* const tracedDb = instrumentDB(db)
|
|
113
|
+
*
|
|
114
|
+
* // All operations are now traced
|
|
115
|
+
* const leads = await tracedDb.Lead.list()
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
export declare function instrumentDB<T extends Record<string, any>>(db: T): T;
|
|
119
|
+
/**
|
|
120
|
+
* Start a span for a database operation
|
|
121
|
+
*/
|
|
122
|
+
export declare function startDBSpan(operation: DBOperation, entity: string, attributes?: SpanAttributes): Span;
|
|
123
|
+
/**
|
|
124
|
+
* Execute code within a database span
|
|
125
|
+
*/
|
|
126
|
+
export declare function withDBSpan<T>(operation: DBOperation, entity: string, fn: (span: Span) => Promise<T>, attributes?: SpanAttributes): Promise<T>;
|
|
127
|
+
export { type Tracer, type Meter, type Logger, type Span, type SpanAttributes, type TelemetryProvider, type Counter, type Histogram, getTracer, getMeter, getLogger, setTelemetryProvider, getTelemetryProvider, SemanticAttributes, MetricNames, createHandlerMetrics, } from '@org.ai/types';
|
|
128
|
+
//# sourceMappingURL=telemetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenTelemetry Integration for ai-database
|
|
3
|
+
*
|
|
4
|
+
* Provides instrumented wrappers and telemetry utilities for database operations.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { DB } from 'ai-database'
|
|
9
|
+
* import { withDatabaseTelemetry, instrumentDB } from 'ai-database/telemetry'
|
|
10
|
+
*
|
|
11
|
+
* // Enable telemetry globally
|
|
12
|
+
* withDatabaseTelemetry({ provider: createConsoleTelemetryProvider() }, async () => {
|
|
13
|
+
* const { db } = DB({ Lead: { name: 'string' } })
|
|
14
|
+
* const leads = await db.Lead.list()
|
|
15
|
+
* })
|
|
16
|
+
*
|
|
17
|
+
* // Or instrument a DB instance
|
|
18
|
+
* const { db } = DB({ Lead: { name: 'string' } })
|
|
19
|
+
* const tracedDb = instrumentDB(db)
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @packageDocumentation
|
|
23
|
+
*/
|
|
24
|
+
import { getTracer, getMeter, getLogger, setTelemetryProvider, getTelemetryProvider, createHandlerMetrics, SemanticAttributes, MetricNames, } from '@org.ai/types';
|
|
25
|
+
// Package info
|
|
26
|
+
const PACKAGE_NAME = 'ai-database';
|
|
27
|
+
const PACKAGE_VERSION = '2.1.4';
|
|
28
|
+
// ============================================================================
|
|
29
|
+
// Package-level Telemetry
|
|
30
|
+
// ============================================================================
|
|
31
|
+
let packageTracer;
|
|
32
|
+
let packageMeter;
|
|
33
|
+
let packageLogger;
|
|
34
|
+
let dbMetrics;
|
|
35
|
+
/**
|
|
36
|
+
* Get the tracer for ai-database
|
|
37
|
+
*/
|
|
38
|
+
export function getDatabaseTracer() {
|
|
39
|
+
if (!packageTracer) {
|
|
40
|
+
packageTracer = getTracer(PACKAGE_NAME, PACKAGE_VERSION);
|
|
41
|
+
}
|
|
42
|
+
return packageTracer;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get the meter for ai-database
|
|
46
|
+
*/
|
|
47
|
+
export function getDatabaseMeter() {
|
|
48
|
+
if (!packageMeter) {
|
|
49
|
+
packageMeter = getMeter(PACKAGE_NAME, PACKAGE_VERSION);
|
|
50
|
+
}
|
|
51
|
+
return packageMeter;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Get the logger for ai-database
|
|
55
|
+
*/
|
|
56
|
+
export function getDatabaseLogger() {
|
|
57
|
+
if (!packageLogger) {
|
|
58
|
+
packageLogger = getLogger(PACKAGE_NAME);
|
|
59
|
+
}
|
|
60
|
+
return packageLogger;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Create database-specific metrics
|
|
64
|
+
*/
|
|
65
|
+
export function createDatabaseMetrics(meter) {
|
|
66
|
+
return {
|
|
67
|
+
queryDuration: meter.createHistogram(MetricNames.DB_QUERY_DURATION, 'Duration of database queries', 'ms'),
|
|
68
|
+
queryTotal: meter.createCounter(MetricNames.DB_QUERY_TOTAL, 'Total number of database queries'),
|
|
69
|
+
queryErrors: meter.createCounter(MetricNames.DB_QUERY_ERRORS, 'Number of failed database queries'),
|
|
70
|
+
entityOps: meter.createCounter('db.entity.operations', 'Entity operations by type'),
|
|
71
|
+
cacheHits: meter.createCounter('db.cache.hits', 'Number of cache hits'),
|
|
72
|
+
cacheMisses: meter.createCounter('db.cache.misses', 'Number of cache misses'),
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get database metrics for the package
|
|
77
|
+
*/
|
|
78
|
+
export function getDatabaseMetrics() {
|
|
79
|
+
if (!dbMetrics) {
|
|
80
|
+
dbMetrics = createDatabaseMetrics(getDatabaseMeter());
|
|
81
|
+
}
|
|
82
|
+
return dbMetrics;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Reset cached telemetry instances
|
|
86
|
+
*/
|
|
87
|
+
export function resetTelemetry() {
|
|
88
|
+
packageTracer = undefined;
|
|
89
|
+
packageMeter = undefined;
|
|
90
|
+
packageLogger = undefined;
|
|
91
|
+
dbMetrics = undefined;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Execute a function with database telemetry enabled
|
|
95
|
+
*/
|
|
96
|
+
export async function withDatabaseTelemetry(options, fn) {
|
|
97
|
+
const previousProvider = getTelemetryProvider();
|
|
98
|
+
if (options.provider) {
|
|
99
|
+
setTelemetryProvider(options.provider);
|
|
100
|
+
resetTelemetry();
|
|
101
|
+
}
|
|
102
|
+
try {
|
|
103
|
+
return await fn();
|
|
104
|
+
}
|
|
105
|
+
finally {
|
|
106
|
+
if (options.provider) {
|
|
107
|
+
setTelemetryProvider(previousProvider);
|
|
108
|
+
resetTelemetry();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Record a database query
|
|
114
|
+
*/
|
|
115
|
+
export function recordDBQuery(params) {
|
|
116
|
+
const metrics = getDatabaseMetrics();
|
|
117
|
+
const labels = {
|
|
118
|
+
operation: params.operation,
|
|
119
|
+
entity: params.entity || 'unknown',
|
|
120
|
+
status: params.success ? 'success' : 'error',
|
|
121
|
+
};
|
|
122
|
+
metrics.queryTotal.add(1, labels);
|
|
123
|
+
metrics.queryDuration.record(params.durationMs, labels);
|
|
124
|
+
if (!params.success) {
|
|
125
|
+
metrics.queryErrors.add(1, labels);
|
|
126
|
+
}
|
|
127
|
+
if (params.entity) {
|
|
128
|
+
metrics.entityOps.add(1, { entity: params.entity, operation: params.operation });
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Record a cache hit/miss
|
|
133
|
+
*/
|
|
134
|
+
export function recordCacheAccess(hit, entity) {
|
|
135
|
+
const metrics = getDatabaseMetrics();
|
|
136
|
+
const labels = { entity: entity || 'unknown' };
|
|
137
|
+
if (hit) {
|
|
138
|
+
metrics.cacheHits.add(1, labels);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
metrics.cacheMisses.add(1, labels);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Create a traced database operation
|
|
146
|
+
*/
|
|
147
|
+
export function tracedDBOperation(operation, entity, fn, options = {}) {
|
|
148
|
+
return async (...args) => {
|
|
149
|
+
const tracer = getDatabaseTracer();
|
|
150
|
+
const logger = getDatabaseLogger();
|
|
151
|
+
const startTime = Date.now();
|
|
152
|
+
const attributes = {
|
|
153
|
+
[SemanticAttributes.DB_SYSTEM]: 'ai-database',
|
|
154
|
+
[SemanticAttributes.DB_OPERATION]: operation,
|
|
155
|
+
'db.entity': entity,
|
|
156
|
+
};
|
|
157
|
+
if (options.getStatement) {
|
|
158
|
+
attributes[SemanticAttributes.DB_STATEMENT] = options.getStatement(...args);
|
|
159
|
+
}
|
|
160
|
+
return tracer.withSpan(`db.${operation}`, { kind: 'client', attributes }, async (span) => {
|
|
161
|
+
logger.debug(`DB ${operation} on ${entity}`, { operation, entity });
|
|
162
|
+
try {
|
|
163
|
+
const result = await fn(...args);
|
|
164
|
+
const durationMs = Date.now() - startTime;
|
|
165
|
+
recordDBQuery({
|
|
166
|
+
operation,
|
|
167
|
+
entity,
|
|
168
|
+
durationMs,
|
|
169
|
+
success: true,
|
|
170
|
+
...(Array.isArray(result) ? { rowCount: result.length } : {}),
|
|
171
|
+
});
|
|
172
|
+
span.setStatus('ok');
|
|
173
|
+
logger.debug(`DB ${operation} on ${entity} completed`, {
|
|
174
|
+
durationMs,
|
|
175
|
+
rowCount: Array.isArray(result) ? result.length : undefined,
|
|
176
|
+
});
|
|
177
|
+
return result;
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
const durationMs = Date.now() - startTime;
|
|
181
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
182
|
+
recordDBQuery({
|
|
183
|
+
operation,
|
|
184
|
+
entity,
|
|
185
|
+
durationMs,
|
|
186
|
+
success: false,
|
|
187
|
+
});
|
|
188
|
+
span.setStatus('error', message);
|
|
189
|
+
logger.error(`DB ${operation} on ${entity} failed`, error instanceof Error ? error : undefined, { durationMs });
|
|
190
|
+
throw error;
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
// ============================================================================
|
|
196
|
+
// Entity Operations Instrumentation
|
|
197
|
+
// ============================================================================
|
|
198
|
+
/**
|
|
199
|
+
* Wrap entity operations with telemetry
|
|
200
|
+
*/
|
|
201
|
+
export function instrumentEntityOperations(entityName, operations) {
|
|
202
|
+
const instrumented = {};
|
|
203
|
+
for (const [opName, opFn] of Object.entries(operations)) {
|
|
204
|
+
if (typeof opFn === 'function') {
|
|
205
|
+
const operation = mapOperationName(opName);
|
|
206
|
+
instrumented[opName] = tracedDBOperation(operation, entityName, opFn);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return instrumented;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Map method names to operation types
|
|
213
|
+
*/
|
|
214
|
+
function mapOperationName(methodName) {
|
|
215
|
+
const mapping = {
|
|
216
|
+
get: 'get',
|
|
217
|
+
find: 'get',
|
|
218
|
+
list: 'list',
|
|
219
|
+
all: 'list',
|
|
220
|
+
create: 'create',
|
|
221
|
+
insert: 'create',
|
|
222
|
+
update: 'update',
|
|
223
|
+
patch: 'update',
|
|
224
|
+
delete: 'delete',
|
|
225
|
+
remove: 'delete',
|
|
226
|
+
search: 'search',
|
|
227
|
+
query: 'query',
|
|
228
|
+
batch: 'batch',
|
|
229
|
+
batchCreate: 'batch',
|
|
230
|
+
batchUpdate: 'batch',
|
|
231
|
+
batchDelete: 'batch',
|
|
232
|
+
};
|
|
233
|
+
return mapping[methodName] || 'query';
|
|
234
|
+
}
|
|
235
|
+
// ============================================================================
|
|
236
|
+
// DB Wrapper Instrumentation
|
|
237
|
+
// ============================================================================
|
|
238
|
+
/**
|
|
239
|
+
* Instrument a DB instance with telemetry
|
|
240
|
+
*
|
|
241
|
+
* @example
|
|
242
|
+
* ```ts
|
|
243
|
+
* const { db } = DB({ Lead: { name: 'string' } })
|
|
244
|
+
* const tracedDb = instrumentDB(db)
|
|
245
|
+
*
|
|
246
|
+
* // All operations are now traced
|
|
247
|
+
* const leads = await tracedDb.Lead.list()
|
|
248
|
+
* ```
|
|
249
|
+
*/
|
|
250
|
+
export function instrumentDB(db) {
|
|
251
|
+
const instrumented = {};
|
|
252
|
+
for (const [entityName, entityOps] of Object.entries(db)) {
|
|
253
|
+
if (typeof entityOps === 'object' && entityOps !== null) {
|
|
254
|
+
instrumented[entityName] = instrumentEntityOperations(entityName, entityOps);
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
instrumented[entityName] = entityOps;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
return instrumented;
|
|
261
|
+
}
|
|
262
|
+
// ============================================================================
|
|
263
|
+
// Span Helpers
|
|
264
|
+
// ============================================================================
|
|
265
|
+
/**
|
|
266
|
+
* Start a span for a database operation
|
|
267
|
+
*/
|
|
268
|
+
export function startDBSpan(operation, entity, attributes) {
|
|
269
|
+
const tracer = getDatabaseTracer();
|
|
270
|
+
return tracer.startSpan(`db.${operation}`, {
|
|
271
|
+
kind: 'client',
|
|
272
|
+
attributes: {
|
|
273
|
+
[SemanticAttributes.DB_SYSTEM]: 'ai-database',
|
|
274
|
+
[SemanticAttributes.DB_OPERATION]: operation,
|
|
275
|
+
'db.entity': entity,
|
|
276
|
+
...attributes,
|
|
277
|
+
},
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Execute code within a database span
|
|
282
|
+
*/
|
|
283
|
+
export async function withDBSpan(operation, entity, fn, attributes) {
|
|
284
|
+
const tracer = getDatabaseTracer();
|
|
285
|
+
return tracer.withSpan(`db.${operation}`, {
|
|
286
|
+
kind: 'client',
|
|
287
|
+
attributes: {
|
|
288
|
+
[SemanticAttributes.DB_SYSTEM]: 'ai-database',
|
|
289
|
+
[SemanticAttributes.DB_OPERATION]: operation,
|
|
290
|
+
'db.entity': entity,
|
|
291
|
+
...attributes,
|
|
292
|
+
},
|
|
293
|
+
}, fn);
|
|
294
|
+
}
|
|
295
|
+
// ============================================================================
|
|
296
|
+
// Re-exports from @org.ai/types
|
|
297
|
+
// ============================================================================
|
|
298
|
+
export {
|
|
299
|
+
// Global functions
|
|
300
|
+
getTracer, getMeter, getLogger, setTelemetryProvider, getTelemetryProvider,
|
|
301
|
+
// Constants
|
|
302
|
+
SemanticAttributes, MetricNames,
|
|
303
|
+
// Utilities
|
|
304
|
+
createHandlerMetrics, } from '@org.ai/types';
|
|
305
|
+
//# sourceMappingURL=telemetry.js.map
|