@cyanheads/mcp-ts-core 0.12.7 → 0.12.8
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/AGENTS.md +8 -3
- package/CLAUDE.md +8 -3
- package/README.md +11 -4
- package/changelog/0.12.x/0.12.8.md +55 -0
- package/dist/config/index.d.ts +3 -34
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +4 -26
- package/dist/config/index.js.map +1 -1
- package/dist/core/app.d.ts +0 -8
- package/dist/core/app.d.ts.map +1 -1
- package/dist/core/app.js +0 -7
- package/dist/core/app.js.map +1 -1
- package/dist/core/serverManifest.d.ts +0 -7
- package/dist/core/serverManifest.d.ts.map +1 -1
- package/dist/core/serverManifest.js +1 -13
- package/dist/core/serverManifest.js.map +1 -1
- package/dist/linter/rules/enrichment-rules.js +2 -2
- package/dist/linter/rules/enrichment-rules.js.map +1 -1
- package/dist/linter/rules/format-parity-rules.d.ts.map +1 -1
- package/dist/linter/rules/format-parity-rules.js +14 -36
- package/dist/linter/rules/format-parity-rules.js.map +1 -1
- package/dist/linter/rules/prompt-rules.d.ts +1 -1
- package/dist/linter/rules/prompt-rules.d.ts.map +1 -1
- package/dist/linter/rules/prompt-rules.js +2 -19
- package/dist/linter/rules/prompt-rules.js.map +1 -1
- package/dist/linter/rules/resource-rules.d.ts +1 -1
- package/dist/linter/rules/resource-rules.d.ts.map +1 -1
- package/dist/linter/rules/resource-rules.js +9 -39
- package/dist/linter/rules/resource-rules.js.map +1 -1
- package/dist/linter/rules/schema-rules.d.ts +22 -2
- package/dist/linter/rules/schema-rules.d.ts.map +1 -1
- package/dist/linter/rules/schema-rules.js +28 -5
- package/dist/linter/rules/schema-rules.js.map +1 -1
- package/dist/linter/rules/tool-rules.d.ts +1 -1
- package/dist/linter/rules/tool-rules.d.ts.map +1 -1
- package/dist/linter/rules/tool-rules.js +13 -41
- package/dist/linter/rules/tool-rules.js.map +1 -1
- package/dist/linter/validate.d.ts.map +1 -1
- package/dist/linter/validate.js +22 -42
- package/dist/linter/validate.js.map +1 -1
- package/dist/mcp-server/apps/appBuilders.d.ts.map +1 -1
- package/dist/mcp-server/apps/appBuilders.js +2 -16
- package/dist/mcp-server/apps/appBuilders.js.map +1 -1
- package/dist/mcp-server/handlerContext.d.ts +66 -0
- package/dist/mcp-server/handlerContext.d.ts.map +1 -0
- package/dist/mcp-server/handlerContext.js +71 -0
- package/dist/mcp-server/handlerContext.js.map +1 -0
- package/dist/mcp-server/inputRequired.d.ts +7 -1
- package/dist/mcp-server/inputRequired.d.ts.map +1 -1
- package/dist/mcp-server/inputRequired.js +10 -3
- package/dist/mcp-server/inputRequired.js.map +1 -1
- package/dist/mcp-server/resources/resource-registration.d.ts +2 -2
- package/dist/mcp-server/resources/resource-registration.d.ts.map +1 -1
- package/dist/mcp-server/resources/resource-registration.js.map +1 -1
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts +14 -43
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts.map +1 -1
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.js +11 -50
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.js.map +1 -1
- package/dist/mcp-server/tools/tool-registration.d.ts +5 -9
- package/dist/mcp-server/tools/tool-registration.d.ts.map +1 -1
- package/dist/mcp-server/tools/tool-registration.js +9 -11
- package/dist/mcp-server/tools/tool-registration.js.map +1 -1
- package/dist/mcp-server/tools/utils/schemaShape.d.ts +21 -0
- package/dist/mcp-server/tools/utils/schemaShape.d.ts.map +1 -1
- package/dist/mcp-server/tools/utils/schemaShape.js +8 -6
- package/dist/mcp-server/tools/utils/schemaShape.js.map +1 -1
- package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts +15 -43
- package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -1
- package/dist/mcp-server/tools/utils/toolHandlerFactory.js +31 -72
- package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -1
- package/dist/mcp-server/transports/http/httpErrorHandler.d.ts.map +1 -1
- package/dist/mcp-server/transports/http/httpErrorHandler.js +2 -1
- package/dist/mcp-server/transports/http/httpErrorHandler.js.map +1 -1
- package/dist/mcp-server/transports/http/landing-page/handler.d.ts.map +1 -1
- package/dist/mcp-server/transports/http/landing-page/handler.js +2 -1
- package/dist/mcp-server/transports/http/landing-page/handler.js.map +1 -1
- package/dist/mcp-server/transports/http/protectedResourceMetadata.d.ts.map +1 -1
- package/dist/mcp-server/transports/http/protectedResourceMetadata.js +2 -1
- package/dist/mcp-server/transports/http/protectedResourceMetadata.js.map +1 -1
- package/dist/mcp-server/transports/http/publicOrigin.d.ts +11 -0
- package/dist/mcp-server/transports/http/publicOrigin.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/publicOrigin.js +13 -0
- package/dist/mcp-server/transports/http/publicOrigin.js.map +1 -0
- package/dist/mcp-server/transports/http/serverCard.d.ts.map +1 -1
- package/dist/mcp-server/transports/http/serverCard.js +2 -1
- package/dist/mcp-server/transports/http/serverCard.js.map +1 -1
- package/dist/mcp-server/transports/http/sessionIdUtils.d.ts +4 -0
- package/dist/mcp-server/transports/http/sessionIdUtils.d.ts.map +1 -1
- package/dist/mcp-server/transports/http/sessionIdUtils.js +3 -13
- package/dist/mcp-server/transports/http/sessionIdUtils.js.map +1 -1
- package/dist/mcp-server/transports/manager.d.ts +0 -3
- package/dist/mcp-server/transports/manager.d.ts.map +1 -1
- package/dist/mcp-server/transports/manager.js +0 -7
- package/dist/mcp-server/transports/manager.js.map +1 -1
- package/dist/services/canvas/core/CanvasRegistry.d.ts +14 -0
- package/dist/services/canvas/core/CanvasRegistry.d.ts.map +1 -1
- package/dist/services/canvas/core/CanvasRegistry.js +3 -2
- package/dist/services/canvas/core/CanvasRegistry.js.map +1 -1
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.d.ts +16 -0
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.d.ts.map +1 -1
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.js +78 -103
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.js.map +1 -1
- package/dist/services/graph/core/GraphService.d.ts +3 -3
- package/dist/services/graph/core/GraphService.js +3 -3
- package/dist/services/graph/types.d.ts +2 -79
- package/dist/services/graph/types.d.ts.map +1 -1
- package/dist/services/graph/types.js +2 -2
- package/dist/services/index.d.ts +1 -2
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +0 -1
- package/dist/services/index.js.map +1 -1
- package/dist/services/mirror/sqlite/handle.d.ts.map +1 -1
- package/dist/services/mirror/sqlite/handle.js +22 -36
- package/dist/services/mirror/sqlite/handle.js.map +1 -1
- package/dist/services/speech/core/ISpeechProvider.d.ts +0 -24
- package/dist/services/speech/core/ISpeechProvider.d.ts.map +1 -1
- package/dist/services/speech/core/ISpeechProvider.js +1 -28
- package/dist/services/speech/core/ISpeechProvider.js.map +1 -1
- package/dist/services/speech/core/SpeechService.d.ts.map +1 -1
- package/dist/services/speech/core/SpeechService.js +5 -8
- package/dist/services/speech/core/SpeechService.js.map +1 -1
- package/dist/services/speech/providers/elevenlabs.provider.d.ts.map +1 -1
- package/dist/services/speech/providers/elevenlabs.provider.js +1 -0
- package/dist/services/speech/providers/elevenlabs.provider.js.map +1 -1
- package/dist/services/speech/types.d.ts +2 -19
- package/dist/services/speech/types.d.ts.map +1 -1
- package/dist/storage/core/providerHelpers.d.ts +52 -0
- package/dist/storage/core/providerHelpers.d.ts.map +1 -0
- package/dist/storage/core/providerHelpers.js +96 -0
- package/dist/storage/core/providerHelpers.js.map +1 -0
- package/dist/storage/providers/cloudflare/d1Provider.d.ts.map +1 -1
- package/dist/storage/providers/cloudflare/d1Provider.js +1 -4
- package/dist/storage/providers/cloudflare/d1Provider.js.map +1 -1
- package/dist/storage/providers/cloudflare/kvProvider.d.ts.map +1 -1
- package/dist/storage/providers/cloudflare/kvProvider.js +4 -31
- package/dist/storage/providers/cloudflare/kvProvider.js.map +1 -1
- package/dist/storage/providers/cloudflare/r2Provider.d.ts +1 -1
- package/dist/storage/providers/cloudflare/r2Provider.d.ts.map +1 -1
- package/dist/storage/providers/cloudflare/r2Provider.js +8 -48
- package/dist/storage/providers/cloudflare/r2Provider.js.map +1 -1
- package/dist/storage/providers/fileSystem/fileSystemProvider.d.ts +1 -1
- package/dist/storage/providers/fileSystem/fileSystemProvider.d.ts.map +1 -1
- package/dist/storage/providers/fileSystem/fileSystemProvider.js +17 -86
- package/dist/storage/providers/fileSystem/fileSystemProvider.js.map +1 -1
- package/dist/storage/providers/inMemory/inMemoryProvider.d.ts.map +1 -1
- package/dist/storage/providers/inMemory/inMemoryProvider.js +5 -38
- package/dist/storage/providers/inMemory/inMemoryProvider.js.map +1 -1
- package/dist/storage/providers/supabase/supabaseProvider.d.ts.map +1 -1
- package/dist/storage/providers/supabase/supabaseProvider.js +1 -4
- package/dist/storage/providers/supabase/supabaseProvider.js.map +1 -1
- package/dist/testing/fuzz.d.ts.map +1 -1
- package/dist/testing/fuzz.js +17 -31
- package/dist/testing/fuzz.js.map +1 -1
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +4 -26
- package/dist/testing/index.js.map +1 -1
- package/dist/utils/internal/error-handler/types.d.ts +0 -4
- package/dist/utils/internal/error-handler/types.d.ts.map +1 -1
- package/dist/utils/internal/logger.d.ts.map +1 -1
- package/dist/utils/internal/logger.js +2 -16
- package/dist/utils/internal/logger.js.map +1 -1
- package/dist/utils/internal/performance.d.ts +8 -31
- package/dist/utils/internal/performance.d.ts.map +1 -1
- package/dist/utils/internal/performance.js +173 -295
- package/dist/utils/internal/performance.js.map +1 -1
- package/dist/utils/security/idGenerator.d.ts.map +1 -1
- package/dist/utils/security/idGenerator.js +24 -43
- package/dist/utils/security/idGenerator.js.map +1 -1
- package/dist/utils/security/sanitization.d.ts +0 -7
- package/dist/utils/security/sanitization.d.ts.map +1 -1
- package/dist/utils/security/sanitization.js +4 -31
- package/dist/utils/security/sanitization.js.map +1 -1
- package/dist/utils/security/sensitiveFields.d.ts +14 -0
- package/dist/utils/security/sensitiveFields.d.ts.map +1 -0
- package/dist/utils/security/sensitiveFields.js +31 -0
- package/dist/utils/security/sensitiveFields.js.map +1 -0
- package/dist/utils/telemetry/trace.d.ts +8 -10
- package/dist/utils/telemetry/trace.d.ts.map +1 -1
- package/dist/utils/telemetry/trace.js +19 -18
- package/dist/utils/telemetry/trace.js.map +1 -1
- package/dist/utils/types/guards.d.ts +0 -102
- package/dist/utils/types/guards.d.ts.map +1 -1
- package/dist/utils/types/guards.js +0 -114
- package/dist/utils/types/guards.js.map +1 -1
- package/package.json +6 -6
- package/skills/add-provider/SKILL.md +18 -4
- package/skills/api-config/SKILL.md +4 -18
- package/skills/api-services/SKILL.md +1 -1
- package/skills/api-services/references/speech.md +1 -2
- package/skills/api-telemetry/SKILL.md +2 -2
- package/skills/api-utils/SKILL.md +2 -2
- package/skills/code-simplifier/SKILL.md +47 -20
- package/skills/field-test/SKILL.md +93 -14
- package/skills/git-wrapup/SKILL.md +64 -27
- package/skills/orchestrations/SKILL.md +17 -6
- package/skills/orchestrations/workflows/field-test-fix.md +6 -4
- package/skills/orchestrations/workflows/fix-wrapup-release.md +6 -4
- package/skills/orchestrations/workflows/greenfield-build.md +2 -2
- package/skills/orchestrations/workflows/maintenance-release.md +4 -2
- package/skills/release-and-publish/SKILL.md +101 -23
- package/skills/release-pr-review/SKILL.md +147 -0
- package/templates/AGENTS.md +4 -2
- package/templates/CLAUDE.md +4 -2
- package/dist/mcp-server/transports/ITransport.d.ts +0 -15
- package/dist/mcp-server/transports/ITransport.d.ts.map +0 -1
- package/dist/mcp-server/transports/ITransport.js +0 -2
- package/dist/mcp-server/transports/ITransport.js.map +0 -1
- package/dist/services/llm/types.d.ts +0 -16
- package/dist/services/llm/types.d.ts.map +0 -1
- package/dist/services/llm/types.js +0 -9
- package/dist/services/llm/types.js.map +0 -1
- package/dist/utils/internal/health.d.ts +0 -60
- package/dist/utils/internal/health.d.ts.map +0 -1
- package/dist/utils/internal/health.js +0 -46
- package/dist/utils/internal/health.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @fileoverview Type definitions for the graph service layer.
|
|
3
|
-
* Re-exports core graph primitives from IGraphProvider and defines
|
|
4
|
-
* service-level
|
|
3
|
+
* Re-exports core graph primitives from IGraphProvider and defines the
|
|
4
|
+
* service-level statistics type.
|
|
5
5
|
* @module src/services/graph/types
|
|
6
6
|
*/
|
|
7
7
|
export {};
|
package/dist/services/index.d.ts
CHANGED
|
@@ -4,11 +4,10 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export { GraphService } from './graph/core/GraphService.js';
|
|
6
6
|
export type { IGraphProvider } from './graph/core/IGraphProvider.js';
|
|
7
|
-
export type { Edge, GraphPath,
|
|
7
|
+
export type { Edge, GraphPath, GraphStats, PathOptions, RelateOptions, TraversalDirection, TraversalOptions, TraversalResult, Vertex, } from './graph/types.js';
|
|
8
8
|
export type { ILlmProvider, OpenRouterChatParams } from './llm/core/ILlmProvider.js';
|
|
9
9
|
export { type OpenRouterClientOptions, OpenRouterProvider, } from './llm/providers/openrouter.provider.js';
|
|
10
10
|
export type { ISpeechProvider } from './speech/core/ISpeechProvider.js';
|
|
11
|
-
export { supportsSTT, supportsTTS } from './speech/core/ISpeechProvider.js';
|
|
12
11
|
export { createSpeechProvider, SpeechService } from './speech/core/SpeechService.js';
|
|
13
12
|
export { ElevenLabsProvider } from './speech/providers/elevenlabs.provider.js';
|
|
14
13
|
export { WhisperProvider } from './speech/providers/whisper.provider.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,YAAY,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,YAAY,EACV,IAAI,EACJ,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,YAAY,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,YAAY,EACV,IAAI,EACJ,SAAS,EACT,UAAU,EACV,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,MAAM,GACP,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EACL,KAAK,uBAAuB,EAC5B,kBAAkB,GACnB,MAAM,wCAAwC,CAAC;AAEhD,YAAY,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,YAAY,EACV,WAAW,EACX,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,EACL,aAAa,EACb,aAAa,GACd,MAAM,mBAAmB,CAAC"}
|
package/dist/services/index.js
CHANGED
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
// Graph
|
|
6
6
|
export { GraphService } from './graph/core/GraphService.js';
|
|
7
7
|
export { OpenRouterProvider, } from './llm/providers/openrouter.provider.js';
|
|
8
|
-
export { supportsSTT, supportsTTS } from './speech/core/ISpeechProvider.js';
|
|
9
8
|
export { createSpeechProvider, SpeechService } from './speech/core/SpeechService.js';
|
|
10
9
|
export { ElevenLabsProvider } from './speech/providers/elevenlabs.provider.js';
|
|
11
10
|
export { WhisperProvider } from './speech/providers/whisper.provider.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,QAAQ;AACR,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,QAAQ;AACR,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAe5D,OAAO,EAEL,kBAAkB,GACnB,MAAM,wCAAwC,CAAC;AAGhD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle.d.ts","sourceRoot":"","sources":["../../../../src/services/mirror/sqlite/handle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,4FAA4F;AAC5F,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAE9C;;;GAGG;AACH,MAAM,WAAW,eAAe,CAAC,IAAI,GAAG,OAAO;IAC7C,GAAG,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;IACnC,GAAG,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,GAAG,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACnF;AAED,oFAAoF;AACpF,MAAM,WAAW,YAAY;IAC3B,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,IAAI,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAC5D,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;CAChC;AAED,4CAA4C;AAC5C,MAAM,WAAW,iBAAiB;IAChC,0FAA0F;IAC1F,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"handle.d.ts","sourceRoot":"","sources":["../../../../src/services/mirror/sqlite/handle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,4FAA4F;AAC5F,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAE9C;;;GAGG;AACH,MAAM,WAAW,eAAe,CAAC,IAAI,GAAG,OAAO;IAC7C,GAAG,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;IACnC,GAAG,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,GAAG,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACnF;AAED,oFAAoF;AACpF,MAAM,WAAW,YAAY;IAC3B,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,IAAI,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAC5D,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;CAChC;AAED,4CAA4C;AAC5C,MAAM,WAAW,iBAAiB;IAChC,0FAA0F;IAC1F,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAoDD;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,YAAY,CAAC,CAuBvB"}
|
|
@@ -21,6 +21,26 @@ import { runtimeCaps } from '../../../utils/internal/runtime.js';
|
|
|
21
21
|
*/
|
|
22
22
|
const BUN_SQLITE_SPECIFIER = 'bun:sqlite';
|
|
23
23
|
const BETTER_SQLITE3_SPECIFIER = 'better-sqlite3';
|
|
24
|
+
/** Adapts a driver to the runtime-neutral {@link SqliteHandle}. */
|
|
25
|
+
function wrapDriver(db) {
|
|
26
|
+
return {
|
|
27
|
+
close: () => {
|
|
28
|
+
db.close();
|
|
29
|
+
},
|
|
30
|
+
exec: (sql) => {
|
|
31
|
+
db.exec(sql);
|
|
32
|
+
},
|
|
33
|
+
prepare: (sql) => {
|
|
34
|
+
const stmt = db.prepare(sql);
|
|
35
|
+
return {
|
|
36
|
+
all: (...params) => stmt.all(...params),
|
|
37
|
+
get: (...params) => stmt.get(...params),
|
|
38
|
+
run: (...params) => stmt.run(...params),
|
|
39
|
+
};
|
|
40
|
+
},
|
|
41
|
+
transaction: (fn) => db.transaction(fn)(),
|
|
42
|
+
};
|
|
43
|
+
}
|
|
24
44
|
/**
|
|
25
45
|
* Open (or create) a SQLite database at `path`, picking the driver for the
|
|
26
46
|
* current runtime. Creates the parent directory, enables WAL, and sets
|
|
@@ -55,24 +75,7 @@ export async function openSqliteHandle(path, options = {}) {
|
|
|
55
75
|
/* istanbul ignore next -- Bun-only driver; the test suite runs Vitest workers under Node */
|
|
56
76
|
async function openBunHandle(path) {
|
|
57
77
|
const mod = (await import(BUN_SQLITE_SPECIFIER));
|
|
58
|
-
|
|
59
|
-
return {
|
|
60
|
-
close: () => {
|
|
61
|
-
db.close();
|
|
62
|
-
},
|
|
63
|
-
exec: (sql) => {
|
|
64
|
-
db.exec(sql);
|
|
65
|
-
},
|
|
66
|
-
prepare: (sql) => {
|
|
67
|
-
const stmt = db.prepare(sql);
|
|
68
|
-
return {
|
|
69
|
-
all: (...params) => stmt.all(...params),
|
|
70
|
-
get: (...params) => stmt.get(...params),
|
|
71
|
-
run: (...params) => stmt.run(...params),
|
|
72
|
-
};
|
|
73
|
-
},
|
|
74
|
-
transaction: (fn) => db.transaction(fn)(),
|
|
75
|
-
};
|
|
78
|
+
return wrapDriver(new mod.Database(path, { create: true }));
|
|
76
79
|
}
|
|
77
80
|
async function openBetterSqlite3Handle(path) {
|
|
78
81
|
let mod;
|
|
@@ -83,23 +86,6 @@ async function openBetterSqlite3Handle(path) {
|
|
|
83
86
|
/* istanbul ignore next -- missing-dep path; better-sqlite3 is installed in the test env */
|
|
84
87
|
throw configurationError('Install "better-sqlite3" to use the SQLite mirror store on Node: bun add better-sqlite3', { path }, { cause: err });
|
|
85
88
|
}
|
|
86
|
-
|
|
87
|
-
return {
|
|
88
|
-
close: () => {
|
|
89
|
-
db.close();
|
|
90
|
-
},
|
|
91
|
-
exec: (sql) => {
|
|
92
|
-
db.exec(sql);
|
|
93
|
-
},
|
|
94
|
-
prepare: (sql) => {
|
|
95
|
-
const stmt = db.prepare(sql);
|
|
96
|
-
return {
|
|
97
|
-
all: (...params) => stmt.all(...params),
|
|
98
|
-
get: (...params) => stmt.get(...params),
|
|
99
|
-
run: (...params) => stmt.run(...params),
|
|
100
|
-
};
|
|
101
|
-
},
|
|
102
|
-
transaction: (fn) => db.transaction(fn)(),
|
|
103
|
-
};
|
|
89
|
+
return wrapDriver(new mod.default(path));
|
|
104
90
|
}
|
|
105
91
|
//# sourceMappingURL=handle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle.js","sourceRoot":"","sources":["../../../../src/services/mirror/sqlite/handle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AA6B1D;;;;;GAKG;AACH,MAAM,oBAAoB,GAAW,YAAY,CAAC;AAClD,MAAM,wBAAwB,GAAW,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"handle.js","sourceRoot":"","sources":["../../../../src/services/mirror/sqlite/handle.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,28 +65,4 @@ export interface ISpeechProvider {
|
|
|
65
65
|
*/
|
|
66
66
|
textToSpeech(options: TextToSpeechOptions): Promise<TextToSpeechResult>;
|
|
67
67
|
}
|
|
68
|
-
/**
|
|
69
|
-
* Type guard — returns `true` if the provider supports text-to-speech synthesis.
|
|
70
|
-
*
|
|
71
|
-
* @param provider - Any `ISpeechProvider` instance.
|
|
72
|
-
* @returns `true` when `provider.supportsTTS` is set, narrowing the type for callers.
|
|
73
|
-
*
|
|
74
|
-
* @example
|
|
75
|
-
* if (supportsTTS(provider)) {
|
|
76
|
-
* const result = await provider.textToSpeech({ text: 'Hello' });
|
|
77
|
-
* }
|
|
78
|
-
*/
|
|
79
|
-
export declare function supportsTTS(provider: ISpeechProvider): provider is ISpeechProvider;
|
|
80
|
-
/**
|
|
81
|
-
* Type guard — returns `true` if the provider supports speech-to-text transcription.
|
|
82
|
-
*
|
|
83
|
-
* @param provider - Any `ISpeechProvider` instance.
|
|
84
|
-
* @returns `true` when `provider.supportsSTT` is set, narrowing the type for callers.
|
|
85
|
-
*
|
|
86
|
-
* @example
|
|
87
|
-
* if (supportsSTT(provider)) {
|
|
88
|
-
* const result = await provider.speechToText({ audio: buffer });
|
|
89
|
-
* }
|
|
90
|
-
*/
|
|
91
|
-
export declare function supportsSTT(provider: ISpeechProvider): provider is ISpeechProvider;
|
|
92
68
|
//# sourceMappingURL=ISpeechProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ISpeechProvider.d.ts","sourceRoot":"","sources":["../../../../src/services/speech/core/ISpeechProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,EACN,MAAM,aAAa,CAAC;AAErB;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;OAOG;IACH,SAAS,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAE9B;;;;;;;OAOG;IACH,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;;;;;;OASG;IACH,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAExE;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAE9B;;;;;;;;;OASG;IACH,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACzE
|
|
1
|
+
{"version":3,"file":"ISpeechProvider.d.ts","sourceRoot":"","sources":["../../../../src/services/speech/core/ISpeechProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,EACN,MAAM,aAAa,CAAC;AAErB;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;OAOG;IACH,SAAS,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAE9B;;;;;;;OAOG;IACH,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;;;;;;OASG;IACH,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAExE;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAE9B;;;;;;;;;OASG;IACH,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACzE"}
|
|
@@ -3,32 +3,5 @@
|
|
|
3
3
|
* Provides the contract for Text-to-Speech (TTS) and Speech-to-Text (STT) operations.
|
|
4
4
|
* @module src/services/speech/core/ISpeechProvider
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
* Type guard — returns `true` if the provider supports text-to-speech synthesis.
|
|
8
|
-
*
|
|
9
|
-
* @param provider - Any `ISpeechProvider` instance.
|
|
10
|
-
* @returns `true` when `provider.supportsTTS` is set, narrowing the type for callers.
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* if (supportsTTS(provider)) {
|
|
14
|
-
* const result = await provider.textToSpeech({ text: 'Hello' });
|
|
15
|
-
* }
|
|
16
|
-
*/
|
|
17
|
-
export function supportsTTS(provider) {
|
|
18
|
-
return provider.supportsTTS;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Type guard — returns `true` if the provider supports speech-to-text transcription.
|
|
22
|
-
*
|
|
23
|
-
* @param provider - Any `ISpeechProvider` instance.
|
|
24
|
-
* @returns `true` when `provider.supportsSTT` is set, narrowing the type for callers.
|
|
25
|
-
*
|
|
26
|
-
* @example
|
|
27
|
-
* if (supportsSTT(provider)) {
|
|
28
|
-
* const result = await provider.speechToText({ audio: buffer });
|
|
29
|
-
* }
|
|
30
|
-
*/
|
|
31
|
-
export function supportsSTT(provider) {
|
|
32
|
-
return provider.supportsSTT;
|
|
33
|
-
}
|
|
6
|
+
export {};
|
|
34
7
|
//# sourceMappingURL=ISpeechProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ISpeechProvider.js","sourceRoot":"","sources":["../../../../src/services/speech/core/ISpeechProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG
|
|
1
|
+
{"version":3,"file":"ISpeechProvider.js","sourceRoot":"","sources":["../../../../src/services/speech/core/ISpeechProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpeechService.d.ts","sourceRoot":"","sources":["../../../../src/services/speech/core/SpeechService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"SpeechService.d.ts","sourceRoot":"","sources":["../../../../src/services/speech/core/SpeechService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,eAAe,CAelF;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAAC,CAAkB;IACtC,OAAO,CAAC,WAAW,CAAC,CAAkB;IAEtC;;;;;;;;OAQG;IACH,YAAY,SAAS,CAAC,EAAE,oBAAoB,EAAE,SAAS,CAAC,EAAE,oBAAoB,EAkB7E;IAED;;;;;OAKG;IACH,cAAc,IAAI,eAAe,CAKhC;IAED;;;;;OAKG;IACH,cAAc,IAAI,eAAe,CAKhC;IAED;;;;OAIG;IACH,MAAM,IAAI,OAAO,CAEhB;IAED;;;;OAIG;IACH,MAAM,IAAI,OAAO,CAEhB;IAED;;;;;;OAMG;IACG,WAAW,IAAI,OAAO,CAAC;QAC3B,GAAG,EAAE,OAAO,CAAC;QACb,GAAG,EAAE,OAAO,CAAC;KACd,CAAC,CAMD;CACF"}
|
|
@@ -29,8 +29,6 @@ export function createSpeechProvider(config) {
|
|
|
29
29
|
return new ElevenLabsProvider(config);
|
|
30
30
|
case 'openai-whisper':
|
|
31
31
|
return new WhisperProvider(config);
|
|
32
|
-
case 'mock':
|
|
33
|
-
throw invalidParams('Mock provider not yet implemented');
|
|
34
32
|
default: {
|
|
35
33
|
const _exhaustive = config.provider;
|
|
36
34
|
throw invalidParams(`Unknown speech provider: ${String(_exhaustive)}`);
|
|
@@ -124,12 +122,11 @@ export class SpeechService {
|
|
|
124
122
|
* Never rejects — individual provider errors are caught internally.
|
|
125
123
|
*/
|
|
126
124
|
async healthCheck() {
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
};
|
|
125
|
+
const [tts, stt] = await Promise.all([
|
|
126
|
+
this.ttsProvider?.healthCheck() ?? false,
|
|
127
|
+
this.sttProvider?.healthCheck() ?? false,
|
|
128
|
+
]);
|
|
129
|
+
return { tts, stt };
|
|
133
130
|
}
|
|
134
131
|
}
|
|
135
132
|
//# sourceMappingURL=SpeechService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpeechService.js","sourceRoot":"","sources":["../../../../src/services/speech/core/SpeechService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAInE;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAA4B;IAC/D,MAAM,CAAC,KAAK,CAAC,6BAA6B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE7D,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,YAAY;YACf,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAExC,KAAK,gBAAgB;YACnB,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;QAErC,
|
|
1
|
+
{"version":3,"file":"SpeechService.js","sourceRoot":"","sources":["../../../../src/services/speech/core/SpeechService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAInE;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAA4B;IAC/D,MAAM,CAAC,KAAK,CAAC,6BAA6B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE7D,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,YAAY;YACf,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAExC,KAAK,gBAAgB;YACnB,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;QAErC,SAAS,CAAC;YACR,MAAM,WAAW,GAAU,MAAM,CAAC,QAAQ,CAAC;YAC3C,MAAM,aAAa,CAAC,4BAA4B,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,aAAa;IAChB,WAAW,CAAmB;IAC9B,WAAW,CAAmB;IAEtC;;;;;;;;OAQG;IACH,YAAY,SAAgC,EAAE,SAAgC;QAC5E,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,WAAW,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACnD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;gBAClC,MAAM,CAAC,OAAO,CAAC,gBAAgB,SAAS,CAAC,QAAQ,kCAAkC,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,WAAW,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACnD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;gBAClC,MAAM,CAAC,OAAO,CAAC,gBAAgB,SAAS,CAAC,QAAQ,kCAAkC,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QAED,MAAM,CAAC,IAAI,CACT,mCAAmC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,MAAM,SAAS,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,MAAM,EAAE,CAC/G,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,cAAc,CAAC,4BAA4B,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,cAAc,CAAC,4BAA4B,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,WAAW,EAAE,WAAW,IAAI,KAAK,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,WAAW,EAAE,WAAW,IAAI,KAAK,CAAC;IAChD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,WAAW;QAIf,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,KAAK;YACxC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,KAAK;SACzC,CAAC,CAAC;QACH,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elevenlabs.provider.d.ts","sourceRoot":"","sources":["../../../../src/services/speech/providers/elevenlabs.provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoBH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,EACN,MAAM,aAAa,CAAC;AAsBrB;;;;;;;;GAQG;AACH,qBAAa,kBAAmB,YAAW,eAAe;IACxD,SAAgB,IAAI,gBAAgB;IACpC,SAAgB,WAAW,QAAQ;IACnC,SAAgB,WAAW,SAAS;IAEpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC;;;;;;OAMG;IACH,YAAY,MAAM,EAAE,oBAAoB,EAcvC;IAED;;;;;;;;;;;;;OAaG;IACG,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"elevenlabs.provider.d.ts","sourceRoot":"","sources":["../../../../src/services/speech/providers/elevenlabs.provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoBH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,EACN,MAAM,aAAa,CAAC;AAsBrB;;;;;;;;GAQG;AACH,qBAAa,kBAAmB,YAAW,eAAe;IACxD,SAAgB,IAAI,gBAAgB;IACpC,SAAgB,WAAW,QAAQ;IACnC,SAAgB,WAAW,SAAS;IAEpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC;;;;;;OAMG;IACH,YAAY,MAAM,EAAE,oBAAoB,EAcvC;IAED;;;;;;;;;;;;;OAaG;IACG,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAoG5E;IAED;;;;;OAKG;IACH,YAAY,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAKvE;IAED;;;;;;;;OAQG;IACG,SAAS,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAqDlC;IAED;;;;;;;OAOG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAgBpC;CACF"}
|
|
@@ -87,6 +87,7 @@ export class ElevenLabsProvider {
|
|
|
87
87
|
similarity_boost: options.voice?.similarityBoost ?? 0.75,
|
|
88
88
|
style: options.voice?.style ?? 0.0,
|
|
89
89
|
use_speaker_boost: true,
|
|
90
|
+
...(options.voice?.speed !== undefined && { speed: options.voice.speed }),
|
|
90
91
|
};
|
|
91
92
|
const requestBody = {
|
|
92
93
|
text: options.text,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elevenlabs.provider.js","sourceRoot":"","sources":["../../../../src/services/speech/providers/elevenlabs.provider.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"elevenlabs.provider.js","sourceRoot":"","sources":["../../../../src/services/speech/providers/elevenlabs.provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,11 +18,9 @@ export type AudioFormat = 'mp3' | 'wav' | 'ogg' | 'flac' | 'pcm' | 'webm';
|
|
|
18
18
|
* Voice settings for text-to-speech synthesis.
|
|
19
19
|
*/
|
|
20
20
|
export interface VoiceSettings {
|
|
21
|
-
/** Voice pitch (-20.0 to 20.0, where 0 is normal) */
|
|
22
|
-
pitch?: number;
|
|
23
21
|
/** Similarity boost (0.0 to 1.0, provider-specific) */
|
|
24
22
|
similarityBoost?: number;
|
|
25
|
-
/** Speech rate
|
|
23
|
+
/** Speech rate (ElevenLabs accepts 0.7 to 1.2, where 1.0 is normal) */
|
|
26
24
|
speed?: number;
|
|
27
25
|
/** Stability setting (0.0 to 1.0, provider-specific) */
|
|
28
26
|
stability?: number;
|
|
@@ -30,8 +28,6 @@ export interface VoiceSettings {
|
|
|
30
28
|
style?: number;
|
|
31
29
|
/** Voice ID or name (provider-specific) */
|
|
32
30
|
voiceId?: string;
|
|
33
|
-
/** Volume level (0.0 to 1.0) */
|
|
34
|
-
volume?: number;
|
|
35
31
|
}
|
|
36
32
|
/**
|
|
37
33
|
* Options for text-to-speech synthesis.
|
|
@@ -43,10 +39,6 @@ export interface TextToSpeechOptions {
|
|
|
43
39
|
traceId?: string;
|
|
44
40
|
tenantId?: string;
|
|
45
41
|
};
|
|
46
|
-
/** Output audio format */
|
|
47
|
-
format?: AudioFormat;
|
|
48
|
-
/** Language code (e.g., 'en-US', 'es-ES') */
|
|
49
|
-
language?: string;
|
|
50
42
|
/** Model ID (provider-specific) */
|
|
51
43
|
modelId?: string;
|
|
52
44
|
/** Text to convert to speech */
|
|
@@ -98,8 +90,6 @@ export interface SpeechToTextOptions {
|
|
|
98
90
|
* Word-level timestamp information.
|
|
99
91
|
*/
|
|
100
92
|
export interface WordTimestamp {
|
|
101
|
-
/** Confidence score (0.0 to 1.0) */
|
|
102
|
-
confidence?: number;
|
|
103
93
|
/** End time in seconds */
|
|
104
94
|
end: number;
|
|
105
95
|
/** Start time in seconds */
|
|
@@ -111,8 +101,6 @@ export interface WordTimestamp {
|
|
|
111
101
|
* Result from speech-to-text transcription.
|
|
112
102
|
*/
|
|
113
103
|
export interface SpeechToTextResult {
|
|
114
|
-
/** Overall confidence score (0.0 to 1.0) */
|
|
115
|
-
confidence?: number;
|
|
116
104
|
/** Duration in seconds */
|
|
117
105
|
duration?: number;
|
|
118
106
|
/** Detected language code */
|
|
@@ -136,8 +124,6 @@ export interface Voice {
|
|
|
136
124
|
gender?: 'male' | 'female' | 'neutral';
|
|
137
125
|
/** Voice ID */
|
|
138
126
|
id: string;
|
|
139
|
-
/** Language codes supported */
|
|
140
|
-
languages?: string[];
|
|
141
127
|
/** Provider-specific metadata */
|
|
142
128
|
metadata?: Record<string, unknown>;
|
|
143
129
|
/** Voice name */
|
|
@@ -158,15 +144,12 @@ export interface SpeechProviderConfig {
|
|
|
158
144
|
defaultModelId?: string;
|
|
159
145
|
/** Default voice ID for TTS when none is specified per-request */
|
|
160
146
|
defaultVoiceId?: string;
|
|
161
|
-
/** Additional provider-specific options passed through as-is */
|
|
162
|
-
options?: Record<string, unknown>;
|
|
163
147
|
/**
|
|
164
148
|
* Provider implementation to use.
|
|
165
149
|
* - `'elevenlabs'` — ElevenLabs TTS (no STT)
|
|
166
150
|
* - `'openai-whisper'` — OpenAI Whisper STT (no TTS)
|
|
167
|
-
* - `'mock'` — Not yet implemented; throws on instantiation
|
|
168
151
|
*/
|
|
169
|
-
provider: 'elevenlabs' | 'openai-whisper'
|
|
152
|
+
provider: 'elevenlabs' | 'openai-whisper';
|
|
170
153
|
/** Request timeout in milliseconds (provider defaults vary) */
|
|
171
154
|
timeout?: number;
|
|
172
155
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/speech/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/speech/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Building blocks shared by storage providers whose backend has
|
|
3
|
+
* no native batch, TTL, or page primitive: batch operations as parallel
|
|
4
|
+
* fan-out over the single-key methods, the TTL envelope the blob-style
|
|
5
|
+
* providers store, one page of a sorted key list, and the SQL `LIKE` escape.
|
|
6
|
+
* @module src/storage/core/providerHelpers
|
|
7
|
+
*/
|
|
8
|
+
import type { StorageOptions } from './IStorageProvider.js';
|
|
9
|
+
/** `getMany` as a parallel `get` per key; keys that resolve to `null` are omitted. */
|
|
10
|
+
export declare function getManyViaGet<T>(keys: readonly string[], get: (key: string) => Promise<T | null>): Promise<Map<string, T>>;
|
|
11
|
+
/** `setMany` as a parallel `set` per entry. */
|
|
12
|
+
export declare function setManyViaSet(entries: ReadonlyMap<string, unknown>, set: (key: string, value: unknown) => Promise<void>): Promise<void>;
|
|
13
|
+
/** `deleteMany` as a parallel `delete` per key; returns how many reported a deletion. */
|
|
14
|
+
export declare function deleteManyViaDelete(keys: readonly string[], del: (key: string) => Promise<boolean>): Promise<number>;
|
|
15
|
+
/**
|
|
16
|
+
* The document a blob-style provider (R2, filesystem) stores: the value plus
|
|
17
|
+
* the framework marker that carries its expiry, since the backend has no TTL
|
|
18
|
+
* of its own.
|
|
19
|
+
*/
|
|
20
|
+
export interface StorageEnvelope {
|
|
21
|
+
__mcp: {
|
|
22
|
+
v: 1;
|
|
23
|
+
expiresAt?: number;
|
|
24
|
+
};
|
|
25
|
+
value: unknown;
|
|
26
|
+
}
|
|
27
|
+
/** Wraps `value` for storage; `options.ttl` (seconds, `0` included) sets `expiresAt`. */
|
|
28
|
+
export declare function encodeEnvelope(value: unknown, options?: StorageOptions): StorageEnvelope;
|
|
29
|
+
export type DecodedEnvelope<T> = {
|
|
30
|
+
kind: 'value';
|
|
31
|
+
value: T;
|
|
32
|
+
} | {
|
|
33
|
+
kind: 'expired';
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Parses a stored document. A document without the marker is a value stored
|
|
37
|
+
* before envelopes existed and is returned as-is. Throws `SyntaxError` on
|
|
38
|
+
* invalid JSON so the provider can attach its own key context.
|
|
39
|
+
*/
|
|
40
|
+
export declare function decodeEnvelope<T>(raw: string): DecodedEnvelope<T>;
|
|
41
|
+
/**
|
|
42
|
+
* One page of an already-sorted key list: the `limit` keys after `lastKey`
|
|
43
|
+
* (the decoded cursor), or after where that key would sort when it was
|
|
44
|
+
* deleted between pages, plus the cursor for the page that follows.
|
|
45
|
+
*/
|
|
46
|
+
export declare function paginateSortedKeys(sortedKeys: readonly string[], tenantId: string, lastKey: string | undefined, limit: number): {
|
|
47
|
+
keys: string[];
|
|
48
|
+
nextCursor: string | undefined;
|
|
49
|
+
};
|
|
50
|
+
/** Escapes SQL `LIKE` wildcard characters (`%`, `_`, and the escape itself) in a prefix. */
|
|
51
|
+
export declare function escapeLikePattern(prefix: string): string;
|
|
52
|
+
//# sourceMappingURL=providerHelpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providerHelpers.d.ts","sourceRoot":"","sources":["../../../src/storage/core/providerHelpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAOzE,sFAAsF;AACtF,wBAAsB,aAAa,CAAC,CAAC,EACnC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GACtC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CASzB;AAED,+CAA+C;AAC/C,wBAAsB,aAAa,CACjC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,GAClD,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,yFAAyF;AACzF,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GACrC,OAAO,CAAC,MAAM,CAAC,CAIjB;AAMD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE;QAAE,CAAC,EAAE,CAAC,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,eAAe,CAMxF;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAEnF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CASjE;AAMD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,MAAM,GACZ;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAkBpD;AAMD,4FAA4F;AAC5F,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAExD"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Building blocks shared by storage providers whose backend has
|
|
3
|
+
* no native batch, TTL, or page primitive: batch operations as parallel
|
|
4
|
+
* fan-out over the single-key methods, the TTL envelope the blob-style
|
|
5
|
+
* providers store, one page of a sorted key list, and the SQL `LIKE` escape.
|
|
6
|
+
* @module src/storage/core/providerHelpers
|
|
7
|
+
*/
|
|
8
|
+
import { encodeCursor } from './storageValidation.js';
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
// Batch operations over single-key methods
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
/** `getMany` as a parallel `get` per key; keys that resolve to `null` are omitted. */
|
|
13
|
+
export async function getManyViaGet(keys, get) {
|
|
14
|
+
const results = new Map();
|
|
15
|
+
if (keys.length === 0)
|
|
16
|
+
return results;
|
|
17
|
+
const values = await Promise.all(keys.map((key) => get(key)));
|
|
18
|
+
keys.forEach((key, i) => {
|
|
19
|
+
const value = values[i];
|
|
20
|
+
if (value !== null && value !== undefined)
|
|
21
|
+
results.set(key, value);
|
|
22
|
+
});
|
|
23
|
+
return results;
|
|
24
|
+
}
|
|
25
|
+
/** `setMany` as a parallel `set` per entry. */
|
|
26
|
+
export async function setManyViaSet(entries, set) {
|
|
27
|
+
if (entries.size === 0)
|
|
28
|
+
return;
|
|
29
|
+
await Promise.all(Array.from(entries, ([key, value]) => set(key, value)));
|
|
30
|
+
}
|
|
31
|
+
/** `deleteMany` as a parallel `delete` per key; returns how many reported a deletion. */
|
|
32
|
+
export async function deleteManyViaDelete(keys, del) {
|
|
33
|
+
if (keys.length === 0)
|
|
34
|
+
return 0;
|
|
35
|
+
const results = await Promise.all(keys.map((key) => del(key)));
|
|
36
|
+
return results.filter(Boolean).length;
|
|
37
|
+
}
|
|
38
|
+
/** Wraps `value` for storage; `options.ttl` (seconds, `0` included) sets `expiresAt`. */
|
|
39
|
+
export function encodeEnvelope(value, options) {
|
|
40
|
+
const expiresAt = options?.ttl !== undefined ? Date.now() + options.ttl * 1000 : undefined;
|
|
41
|
+
return {
|
|
42
|
+
__mcp: { v: 1, ...(expiresAt !== undefined && { expiresAt }) },
|
|
43
|
+
value,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Parses a stored document. A document without the marker is a value stored
|
|
48
|
+
* before envelopes existed and is returned as-is. Throws `SyntaxError` on
|
|
49
|
+
* invalid JSON so the provider can attach its own key context.
|
|
50
|
+
*/
|
|
51
|
+
export function decodeEnvelope(raw) {
|
|
52
|
+
const parsed = JSON.parse(raw);
|
|
53
|
+
if (parsed && typeof parsed === 'object' && '__mcp' in parsed) {
|
|
54
|
+
const envelope = parsed;
|
|
55
|
+
const expiresAt = envelope.__mcp?.expiresAt;
|
|
56
|
+
if (expiresAt && Date.now() > expiresAt)
|
|
57
|
+
return { kind: 'expired' };
|
|
58
|
+
return { kind: 'value', value: envelope.value };
|
|
59
|
+
}
|
|
60
|
+
return { kind: 'value', value: parsed };
|
|
61
|
+
}
|
|
62
|
+
// ---------------------------------------------------------------------------
|
|
63
|
+
// Cursor pagination over a sorted key list
|
|
64
|
+
// ---------------------------------------------------------------------------
|
|
65
|
+
/**
|
|
66
|
+
* One page of an already-sorted key list: the `limit` keys after `lastKey`
|
|
67
|
+
* (the decoded cursor), or after where that key would sort when it was
|
|
68
|
+
* deleted between pages, plus the cursor for the page that follows.
|
|
69
|
+
*/
|
|
70
|
+
export function paginateSortedKeys(sortedKeys, tenantId, lastKey, limit) {
|
|
71
|
+
let startIndex = 0;
|
|
72
|
+
if (lastKey !== undefined) {
|
|
73
|
+
const cursorIndex = sortedKeys.indexOf(lastKey);
|
|
74
|
+
if (cursorIndex !== -1) {
|
|
75
|
+
startIndex = cursorIndex + 1;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
const insertionPoint = sortedKeys.findIndex((k) => k > lastKey);
|
|
79
|
+
startIndex = insertionPoint === -1 ? sortedKeys.length : insertionPoint;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const keys = sortedKeys.slice(startIndex, startIndex + limit);
|
|
83
|
+
const last = keys.at(-1);
|
|
84
|
+
const nextCursor = startIndex + limit < sortedKeys.length && last !== undefined
|
|
85
|
+
? encodeCursor(last, tenantId)
|
|
86
|
+
: undefined;
|
|
87
|
+
return { keys, nextCursor };
|
|
88
|
+
}
|
|
89
|
+
// ---------------------------------------------------------------------------
|
|
90
|
+
// SQL
|
|
91
|
+
// ---------------------------------------------------------------------------
|
|
92
|
+
/** Escapes SQL `LIKE` wildcard characters (`%`, `_`, and the escape itself) in a prefix. */
|
|
93
|
+
export function escapeLikePattern(prefix) {
|
|
94
|
+
return prefix.replace(/[%_\\]/g, '\\$&');
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=providerHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providerHelpers.js","sourceRoot":"","sources":["../../../src/storage/core/providerHelpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d1Provider.d.ts","sourceRoot":"","sources":["../../../../src/storage/providers/cloudflare/d1Provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,cAAc,EACf,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"d1Provider.d.ts","sourceRoot":"","sources":["../../../../src/storage/providers/cloudflare/d1Provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,cAAc,EACf,MAAM,oCAAoC,CAAC;AAW5C,OAAO,EAAE,KAAK,cAAc,EAAa,MAAM,oCAAoC,CAAC;AAIpF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,UAAW,YAAW,gBAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAa;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAmC;IAE1E,YAAY,EAAE,EAAE,UAAU,EAAE,SAAS,SAAa,EAWjD;IAED;;OAEG;IACH,OAAO,CAAC,MAAM;IAId;;OAEG;IACH,OAAO,CAAC,SAAS;IAKjB;;;OAGG;IACG,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CA6CtF;IAED;;;OAGG;IACG,GAAG,CACP,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC,CA4Bf;IAED;;;OAGG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CA4BrF;IAED;;;OAGG;IACG,IAAI,CACR,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,UAAU,CAAC,CA8ErB;IAED;;;;OAIG;IACG,OAAO,CAAC,CAAC,EACb,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAoDzB;IAED;;;;OAIG;IACG,OAAO,CACX,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC,CAsCf;IAED;;;;OAIG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAmC3F;IAED;;;;OAIG;IACG,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBtE;CACF"}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
+
import { escapeLikePattern } from '../../core/providerHelpers.js';
|
|
1
2
|
import { decodeCursor, encodeCursor } from '../../core/storageValidation.js';
|
|
2
3
|
import { configurationError, invalidParams, JsonRpcErrorCode, McpError, } from '../../../types-global/errors.js';
|
|
3
4
|
import { ErrorHandler } from '../../../utils/internal/error-handler/errorHandler.js';
|
|
4
5
|
import { logger } from '../../../utils/internal/logger.js';
|
|
5
6
|
import { withExtra } from '../../../utils/internal/requestContext.js';
|
|
6
7
|
const DEFAULT_LIST_LIMIT = 1000;
|
|
7
|
-
/** Escapes SQL LIKE wildcard characters (`%` and `_`) in a prefix string. */
|
|
8
|
-
function escapeLikePattern(prefix) {
|
|
9
|
-
return prefix.replace(/[%_\\]/g, '\\$&');
|
|
10
|
-
}
|
|
11
8
|
/**
|
|
12
9
|
* Cloudflare D1 storage provider implementation.
|
|
13
10
|
*
|