@juspay/neurolink 9.64.0 → 9.65.1
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 +12 -0
- package/README.md +18 -17
- package/dist/adapters/providerImageAdapter.js +29 -1
- package/dist/adapters/replicate/auth.d.ts +19 -0
- package/dist/adapters/replicate/auth.js +32 -0
- package/dist/adapters/replicate/predictionLifecycle.d.ts +46 -0
- package/dist/adapters/replicate/predictionLifecycle.js +283 -0
- package/dist/adapters/video/klingVideoHandler.d.ts +37 -0
- package/dist/adapters/video/klingVideoHandler.js +305 -0
- package/dist/adapters/video/replicateVideoHandler.d.ts +29 -0
- package/dist/adapters/video/replicateVideoHandler.js +157 -0
- package/dist/adapters/video/runwayVideoHandler.d.ts +32 -0
- package/dist/adapters/video/runwayVideoHandler.js +316 -0
- package/dist/adapters/video/vertexVideoHandler.d.ts +19 -1
- package/dist/adapters/video/vertexVideoHandler.js +33 -9
- package/dist/agent/directTools.js +11 -3
- package/dist/autoresearch/runner.js +8 -2
- package/dist/avatar/index.d.ts +13 -0
- package/dist/avatar/index.js +13 -0
- package/dist/avatar/providers/DIDAvatar.d.ts +49 -0
- package/dist/avatar/providers/DIDAvatar.js +501 -0
- package/dist/avatar/providers/HeyGenAvatar.d.ts +30 -0
- package/dist/avatar/providers/HeyGenAvatar.js +337 -0
- package/dist/avatar/providers/ReplicateAvatar.d.ts +36 -0
- package/dist/avatar/providers/ReplicateAvatar.js +267 -0
- package/dist/browser/neurolink.min.js +624 -601
- package/dist/cli/commands/mcp.js +29 -0
- package/dist/cli/commands/proxy.js +24 -5
- package/dist/cli/factories/commandFactory.d.ts +11 -1
- package/dist/cli/factories/commandFactory.js +291 -38
- package/dist/constants/contextWindows.js +101 -0
- package/dist/constants/enums.d.ts +273 -2
- package/dist/constants/enums.js +290 -1
- package/dist/constants/videoErrors.d.ts +4 -0
- package/dist/constants/videoErrors.js +4 -0
- package/dist/core/baseProvider.d.ts +22 -2
- package/dist/core/baseProvider.js +217 -11
- package/dist/core/constants.d.ts +12 -0
- package/dist/core/constants.js +72 -1
- package/dist/evaluation/index.d.ts +2 -0
- package/dist/evaluation/index.js +4 -0
- package/dist/factories/providerFactory.js +7 -1
- package/dist/factories/providerRegistry.js +202 -5
- package/dist/features/ppt/contentPlanner.js +42 -14
- package/dist/index.d.ts +9 -1
- package/dist/index.js +16 -1
- package/dist/lib/adapters/providerImageAdapter.js +29 -1
- package/dist/lib/adapters/replicate/auth.d.ts +19 -0
- package/dist/lib/adapters/replicate/auth.js +33 -0
- package/dist/lib/adapters/replicate/predictionLifecycle.d.ts +46 -0
- package/dist/lib/adapters/replicate/predictionLifecycle.js +284 -0
- package/dist/lib/adapters/video/klingVideoHandler.d.ts +37 -0
- package/dist/lib/adapters/video/klingVideoHandler.js +306 -0
- package/dist/lib/adapters/video/replicateVideoHandler.d.ts +29 -0
- package/dist/lib/adapters/video/replicateVideoHandler.js +158 -0
- package/dist/lib/adapters/video/runwayVideoHandler.d.ts +32 -0
- package/dist/lib/adapters/video/runwayVideoHandler.js +317 -0
- package/dist/lib/adapters/video/vertexVideoHandler.d.ts +19 -1
- package/dist/lib/adapters/video/vertexVideoHandler.js +33 -9
- package/dist/lib/agent/directTools.js +11 -3
- package/dist/lib/autoresearch/runner.js +8 -2
- package/dist/lib/avatar/index.d.ts +13 -0
- package/dist/lib/avatar/index.js +14 -0
- package/dist/lib/avatar/providers/DIDAvatar.d.ts +49 -0
- package/dist/lib/avatar/providers/DIDAvatar.js +502 -0
- package/dist/lib/avatar/providers/HeyGenAvatar.d.ts +30 -0
- package/dist/lib/avatar/providers/HeyGenAvatar.js +338 -0
- package/dist/lib/avatar/providers/ReplicateAvatar.d.ts +36 -0
- package/dist/lib/avatar/providers/ReplicateAvatar.js +268 -0
- package/dist/lib/constants/contextWindows.js +101 -0
- package/dist/lib/constants/enums.d.ts +273 -2
- package/dist/lib/constants/enums.js +290 -1
- package/dist/lib/constants/videoErrors.d.ts +4 -0
- package/dist/lib/constants/videoErrors.js +4 -0
- package/dist/lib/core/baseProvider.d.ts +22 -2
- package/dist/lib/core/baseProvider.js +217 -11
- package/dist/lib/core/constants.d.ts +12 -0
- package/dist/lib/core/constants.js +72 -1
- package/dist/lib/evaluation/index.d.ts +2 -0
- package/dist/lib/evaluation/index.js +4 -0
- package/dist/lib/factories/providerFactory.js +7 -1
- package/dist/lib/factories/providerRegistry.js +202 -5
- package/dist/lib/features/ppt/contentPlanner.js +42 -14
- package/dist/lib/index.d.ts +9 -1
- package/dist/lib/index.js +16 -1
- package/dist/lib/middleware/builtin/lifecycle.js +39 -9
- package/dist/lib/music/index.d.ts +13 -0
- package/dist/lib/music/index.js +14 -0
- package/dist/lib/music/providers/BeatovenMusic.d.ts +31 -0
- package/dist/lib/music/providers/BeatovenMusic.js +334 -0
- package/dist/lib/music/providers/ElevenLabsMusic.d.ts +30 -0
- package/dist/lib/music/providers/ElevenLabsMusic.js +169 -0
- package/dist/lib/music/providers/LyriaMusic.d.ts +29 -0
- package/dist/lib/music/providers/LyriaMusic.js +173 -0
- package/dist/lib/music/providers/ReplicateMusic.d.ts +31 -0
- package/dist/lib/music/providers/ReplicateMusic.js +262 -0
- package/dist/lib/neurolink.d.ts +30 -0
- package/dist/lib/neurolink.js +323 -77
- package/dist/lib/providers/amazonBedrock.d.ts +10 -0
- package/dist/lib/providers/amazonBedrock.js +94 -39
- package/dist/lib/providers/anthropic.js +55 -7
- package/dist/lib/providers/anthropicBaseProvider.js +1 -1
- package/dist/lib/providers/azureOpenai.js +66 -17
- package/dist/lib/providers/cloudflare.d.ts +35 -0
- package/dist/lib/providers/cloudflare.js +174 -0
- package/dist/lib/providers/cohere.d.ts +52 -0
- package/dist/lib/providers/cohere.js +253 -0
- package/dist/lib/providers/deepseek.js +72 -17
- package/dist/lib/providers/fireworks.d.ts +33 -0
- package/dist/lib/providers/fireworks.js +164 -0
- package/dist/lib/providers/googleAiStudio.js +126 -10
- package/dist/lib/providers/googleNativeGemini3.d.ts +26 -6
- package/dist/lib/providers/googleNativeGemini3.js +276 -29
- package/dist/lib/providers/googleVertex.js +639 -181
- package/dist/lib/providers/groq.d.ts +33 -0
- package/dist/lib/providers/groq.js +181 -0
- package/dist/lib/providers/huggingFace.js +9 -8
- package/dist/lib/providers/ideogram.d.ts +34 -0
- package/dist/lib/providers/ideogram.js +184 -0
- package/dist/lib/providers/index.d.ts +13 -0
- package/dist/lib/providers/index.js +13 -0
- package/dist/lib/providers/jina.d.ts +59 -0
- package/dist/lib/providers/jina.js +218 -0
- package/dist/lib/providers/llamaCpp.js +14 -46
- package/dist/lib/providers/lmStudio.js +14 -47
- package/dist/lib/providers/mistral.js +7 -7
- package/dist/lib/providers/nvidiaNim.js +160 -19
- package/dist/lib/providers/ollama.js +7 -7
- package/dist/lib/providers/openAI.d.ts +22 -1
- package/dist/lib/providers/openAI.js +181 -0
- package/dist/lib/providers/openRouter.js +35 -23
- package/dist/lib/providers/openaiCompatible.js +9 -8
- package/dist/lib/providers/perplexity.d.ts +33 -0
- package/dist/lib/providers/perplexity.js +179 -0
- package/dist/lib/providers/recraft.d.ts +34 -0
- package/dist/lib/providers/recraft.js +197 -0
- package/dist/lib/providers/replicate.d.ts +75 -0
- package/dist/lib/providers/replicate.js +403 -0
- package/dist/lib/providers/stability.d.ts +37 -0
- package/dist/lib/providers/stability.js +191 -0
- package/dist/lib/providers/togetherAi.d.ts +33 -0
- package/dist/lib/providers/togetherAi.js +176 -0
- package/dist/lib/providers/voyage.d.ts +47 -0
- package/dist/lib/providers/voyage.js +177 -0
- package/dist/lib/providers/xai.d.ts +33 -0
- package/dist/lib/providers/xai.js +172 -0
- package/dist/lib/telemetry/index.d.ts +1 -1
- package/dist/lib/telemetry/index.js +1 -1
- package/dist/lib/telemetry/tracers.d.ts +19 -0
- package/dist/lib/telemetry/tracers.js +19 -0
- package/dist/lib/telemetry/withSpan.d.ts +35 -0
- package/dist/lib/telemetry/withSpan.js +103 -0
- package/dist/lib/types/avatar.d.ts +143 -0
- package/dist/lib/types/avatar.js +20 -0
- package/dist/lib/types/cli.d.ts +6 -0
- package/dist/lib/types/conversation.d.ts +16 -0
- package/dist/lib/types/generate.d.ts +62 -5
- package/dist/lib/types/index.d.ts +5 -0
- package/dist/lib/types/index.js +7 -0
- package/dist/lib/types/middleware.d.ts +27 -0
- package/dist/lib/types/multimodal.d.ts +35 -2
- package/dist/lib/types/music.d.ts +165 -0
- package/dist/lib/types/music.js +21 -0
- package/dist/lib/types/providers.d.ts +144 -1
- package/dist/lib/types/replicate.d.ts +67 -0
- package/dist/lib/types/replicate.js +10 -0
- package/dist/lib/types/safeFetch.d.ts +15 -0
- package/dist/lib/types/safeFetch.js +7 -0
- package/dist/lib/types/stream.d.ts +2 -1
- package/dist/lib/types/tools.d.ts +13 -0
- package/dist/lib/types/video.d.ts +89 -0
- package/dist/lib/types/video.js +15 -0
- package/dist/lib/utils/avatarProcessor.d.ts +68 -0
- package/dist/lib/utils/avatarProcessor.js +172 -0
- package/dist/lib/utils/cloneOptions.d.ts +36 -0
- package/dist/lib/utils/cloneOptions.js +62 -0
- package/dist/lib/utils/lifecycleCallbacks.d.ts +51 -8
- package/dist/lib/utils/lifecycleCallbacks.js +82 -26
- package/dist/lib/utils/lifecycleTimeout.d.ts +25 -0
- package/dist/lib/utils/lifecycleTimeout.js +39 -0
- package/dist/lib/utils/logSanitize.d.ts +49 -0
- package/dist/lib/utils/logSanitize.js +170 -0
- package/dist/lib/utils/loggingFetch.d.ts +29 -0
- package/dist/lib/utils/loggingFetch.js +60 -0
- package/dist/lib/utils/messageBuilder.js +43 -25
- package/dist/lib/utils/modelChoices.js +236 -3
- package/dist/lib/utils/musicProcessor.d.ts +67 -0
- package/dist/lib/utils/musicProcessor.js +189 -0
- package/dist/lib/utils/optionsConversion.js +3 -2
- package/dist/lib/utils/parameterValidation.js +14 -4
- package/dist/lib/utils/pricing.js +193 -0
- package/dist/lib/utils/providerConfig.d.ts +55 -0
- package/dist/lib/utils/providerConfig.js +224 -0
- package/dist/lib/utils/safeFetch.d.ts +26 -0
- package/dist/lib/utils/safeFetch.js +83 -0
- package/dist/lib/utils/sizeGuard.d.ts +34 -0
- package/dist/lib/utils/sizeGuard.js +45 -0
- package/dist/lib/utils/ssrfGuard.d.ts +52 -0
- package/dist/lib/utils/ssrfGuard.js +411 -0
- package/dist/lib/utils/videoProcessor.d.ts +60 -0
- package/dist/lib/utils/videoProcessor.js +201 -0
- package/dist/lib/voice/providers/FishAudioTTS.d.ts +27 -0
- package/dist/lib/voice/providers/FishAudioTTS.js +183 -0
- package/dist/lib/workflow/core/ensembleExecutor.js +26 -9
- package/dist/middleware/builtin/lifecycle.js +39 -9
- package/dist/music/index.d.ts +13 -0
- package/dist/music/index.js +13 -0
- package/dist/music/providers/BeatovenMusic.d.ts +31 -0
- package/dist/music/providers/BeatovenMusic.js +333 -0
- package/dist/music/providers/ElevenLabsMusic.d.ts +30 -0
- package/dist/music/providers/ElevenLabsMusic.js +168 -0
- package/dist/music/providers/LyriaMusic.d.ts +29 -0
- package/dist/music/providers/LyriaMusic.js +172 -0
- package/dist/music/providers/ReplicateMusic.d.ts +31 -0
- package/dist/music/providers/ReplicateMusic.js +261 -0
- package/dist/neurolink.d.ts +30 -0
- package/dist/neurolink.js +323 -77
- package/dist/providers/amazonBedrock.d.ts +10 -0
- package/dist/providers/amazonBedrock.js +94 -39
- package/dist/providers/anthropic.js +55 -7
- package/dist/providers/anthropicBaseProvider.js +1 -1
- package/dist/providers/azureOpenai.js +66 -17
- package/dist/providers/cloudflare.d.ts +35 -0
- package/dist/providers/cloudflare.js +173 -0
- package/dist/providers/cohere.d.ts +52 -0
- package/dist/providers/cohere.js +252 -0
- package/dist/providers/deepseek.js +72 -17
- package/dist/providers/fireworks.d.ts +33 -0
- package/dist/providers/fireworks.js +163 -0
- package/dist/providers/googleAiStudio.js +126 -10
- package/dist/providers/googleNativeGemini3.d.ts +26 -6
- package/dist/providers/googleNativeGemini3.js +276 -29
- package/dist/providers/googleVertex.js +639 -181
- package/dist/providers/groq.d.ts +33 -0
- package/dist/providers/groq.js +180 -0
- package/dist/providers/huggingFace.js +9 -8
- package/dist/providers/ideogram.d.ts +34 -0
- package/dist/providers/ideogram.js +183 -0
- package/dist/providers/index.d.ts +13 -0
- package/dist/providers/index.js +13 -0
- package/dist/providers/jina.d.ts +59 -0
- package/dist/providers/jina.js +217 -0
- package/dist/providers/llamaCpp.js +14 -46
- package/dist/providers/lmStudio.js +14 -47
- package/dist/providers/mistral.js +7 -7
- package/dist/providers/nvidiaNim.js +160 -19
- package/dist/providers/ollama.js +7 -7
- package/dist/providers/openAI.d.ts +22 -1
- package/dist/providers/openAI.js +181 -0
- package/dist/providers/openRouter.js +35 -23
- package/dist/providers/openaiCompatible.js +9 -8
- package/dist/providers/perplexity.d.ts +33 -0
- package/dist/providers/perplexity.js +178 -0
- package/dist/providers/recraft.d.ts +34 -0
- package/dist/providers/recraft.js +196 -0
- package/dist/providers/replicate.d.ts +75 -0
- package/dist/providers/replicate.js +402 -0
- package/dist/providers/stability.d.ts +37 -0
- package/dist/providers/stability.js +190 -0
- package/dist/providers/togetherAi.d.ts +33 -0
- package/dist/providers/togetherAi.js +175 -0
- package/dist/providers/voyage.d.ts +47 -0
- package/dist/providers/voyage.js +176 -0
- package/dist/providers/xai.d.ts +33 -0
- package/dist/providers/xai.js +171 -0
- package/dist/telemetry/index.d.ts +1 -1
- package/dist/telemetry/index.js +1 -1
- package/dist/telemetry/tracers.d.ts +19 -0
- package/dist/telemetry/tracers.js +19 -0
- package/dist/telemetry/withSpan.d.ts +35 -0
- package/dist/telemetry/withSpan.js +103 -0
- package/dist/types/avatar.d.ts +143 -0
- package/dist/types/avatar.js +19 -0
- package/dist/types/cli.d.ts +6 -0
- package/dist/types/conversation.d.ts +16 -0
- package/dist/types/generate.d.ts +62 -5
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.js +7 -0
- package/dist/types/middleware.d.ts +27 -0
- package/dist/types/multimodal.d.ts +35 -2
- package/dist/types/music.d.ts +165 -0
- package/dist/types/music.js +20 -0
- package/dist/types/providers.d.ts +144 -1
- package/dist/types/replicate.d.ts +67 -0
- package/dist/types/replicate.js +9 -0
- package/dist/types/safeFetch.d.ts +15 -0
- package/dist/types/safeFetch.js +6 -0
- package/dist/types/stream.d.ts +2 -1
- package/dist/types/tools.d.ts +13 -0
- package/dist/types/video.d.ts +89 -0
- package/dist/types/video.js +14 -0
- package/dist/utils/avatarProcessor.d.ts +68 -0
- package/dist/utils/avatarProcessor.js +171 -0
- package/dist/utils/cloneOptions.d.ts +36 -0
- package/dist/utils/cloneOptions.js +61 -0
- package/dist/utils/lifecycleCallbacks.d.ts +51 -8
- package/dist/utils/lifecycleCallbacks.js +82 -26
- package/dist/utils/lifecycleTimeout.d.ts +25 -0
- package/dist/utils/lifecycleTimeout.js +38 -0
- package/dist/utils/logSanitize.d.ts +49 -0
- package/dist/utils/logSanitize.js +169 -0
- package/dist/utils/loggingFetch.d.ts +29 -0
- package/dist/utils/loggingFetch.js +59 -0
- package/dist/utils/messageBuilder.js +43 -25
- package/dist/utils/modelChoices.js +236 -3
- package/dist/utils/musicProcessor.d.ts +67 -0
- package/dist/utils/musicProcessor.js +188 -0
- package/dist/utils/optionsConversion.js +3 -2
- package/dist/utils/parameterValidation.js +14 -4
- package/dist/utils/pricing.js +193 -0
- package/dist/utils/providerConfig.d.ts +55 -0
- package/dist/utils/providerConfig.js +224 -0
- package/dist/utils/safeFetch.d.ts +26 -0
- package/dist/utils/safeFetch.js +82 -0
- package/dist/utils/sizeGuard.d.ts +34 -0
- package/dist/utils/sizeGuard.js +44 -0
- package/dist/utils/ssrfGuard.d.ts +52 -0
- package/dist/utils/ssrfGuard.js +410 -0
- package/dist/utils/videoProcessor.d.ts +60 -0
- package/dist/utils/videoProcessor.js +200 -0
- package/dist/voice/providers/FishAudioTTS.d.ts +27 -0
- package/dist/voice/providers/FishAudioTTS.js +182 -0
- package/dist/workflow/core/ensembleExecutor.js +26 -9
- package/package.json +32 -5
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ProviderFactory } from "./providerFactory.js";
|
|
2
2
|
import { logger } from "../utils/logger.js";
|
|
3
|
-
import { AIProviderName, GoogleAIModels, OpenAIModels, AnthropicModels, VertexModels, MistralModels, OllamaModels, LiteLLMModels, HuggingFaceModels, DeepSeekModels, NvidiaNimModels, } from "../constants/enums.js";
|
|
3
|
+
import { AIProviderName, GoogleAIModels, OpenAIModels, AnthropicModels, VertexModels, MistralModels, OllamaModels, LiteLLMModels, HuggingFaceModels, DeepSeekModels, NvidiaNimModels, OpenRouterModels, XaiModels, GroqModels, CohereModels, TogetherAIModels, FireworksModels, PerplexityModels, CloudflareModels, VoyageModels, JinaModels, StabilityModels, IdeogramModels, RecraftModels, ReplicateModels, } from "../constants/enums.js";
|
|
4
4
|
/**
|
|
5
5
|
* Provider Registry - registers all providers with the factory
|
|
6
6
|
* This is where we migrate providers one by one to the new pattern
|
|
@@ -136,10 +136,12 @@ export class ProviderRegistry {
|
|
|
136
136
|
const { OpenRouterProvider } = await import("../providers/openRouter.js");
|
|
137
137
|
return new OpenRouterProvider(modelName, sdk, undefined, openrouterCreds);
|
|
138
138
|
},
|
|
139
|
-
//
|
|
140
|
-
//
|
|
141
|
-
//
|
|
142
|
-
|
|
139
|
+
// OpenRouter retired `anthropic/claude-3-5-sonnet` in late 2025 — see
|
|
140
|
+
// src/lib/providers/openRouter.ts and src/lib/utils/modelChoices.ts
|
|
141
|
+
// for the rationale. Keep the three defaults aligned at the new
|
|
142
|
+
// model (claude-sonnet-4.5) so the registry doesn't override the
|
|
143
|
+
// provider's getDefault.
|
|
144
|
+
process.env.OPENROUTER_MODEL || OpenRouterModels.CLAUDE_SONNET_4_5, ["openrouter", "or"]);
|
|
143
145
|
// Register Amazon SageMaker provider
|
|
144
146
|
ProviderFactory.registerProvider(AIProviderName.SAGEMAKER, async (modelName, _providerName, _sdk, region, credentials) => {
|
|
145
147
|
const sagemakerCreds = credentials;
|
|
@@ -170,6 +172,86 @@ export class ProviderRegistry {
|
|
|
170
172
|
const { LlamaCppProvider } = await import("../providers/llamaCpp.js");
|
|
171
173
|
return new LlamaCppProvider(modelName, sdk, undefined, llamaCppCreds);
|
|
172
174
|
}, process.env.LLAMACPP_MODEL || undefined, ["llamacpp", "llama.cpp", "llama-cpp"]);
|
|
175
|
+
// Register xAI Grok provider
|
|
176
|
+
ProviderFactory.registerProvider(AIProviderName.XAI, async (modelName, _providerName, sdk, _region, credentials) => {
|
|
177
|
+
const xaiCreds = credentials;
|
|
178
|
+
const { XaiProvider } = await import("../providers/xai.js");
|
|
179
|
+
return new XaiProvider(modelName, sdk, undefined, xaiCreds);
|
|
180
|
+
}, process.env.XAI_MODEL || XaiModels.GROK_3, ["xai", "grok"]);
|
|
181
|
+
// Register Groq provider
|
|
182
|
+
ProviderFactory.registerProvider(AIProviderName.GROQ, async (modelName, _providerName, sdk, _region, credentials) => {
|
|
183
|
+
const groqCreds = credentials;
|
|
184
|
+
const { GroqProvider } = await import("../providers/groq.js");
|
|
185
|
+
return new GroqProvider(modelName, sdk, undefined, groqCreds);
|
|
186
|
+
}, process.env.GROQ_MODEL || GroqModels.LLAMA_3_3_70B_VERSATILE, ["groq"]);
|
|
187
|
+
// Register Cohere provider
|
|
188
|
+
ProviderFactory.registerProvider(AIProviderName.COHERE, async (modelName, _providerName, sdk, _region, credentials) => {
|
|
189
|
+
const cohereCreds = credentials;
|
|
190
|
+
const { CohereProvider } = await import("../providers/cohere.js");
|
|
191
|
+
return new CohereProvider(modelName, sdk, undefined, cohereCreds);
|
|
192
|
+
}, process.env.COHERE_MODEL || CohereModels.COMMAND_R_PLUS, ["cohere"]);
|
|
193
|
+
// Register Together AI provider
|
|
194
|
+
ProviderFactory.registerProvider(AIProviderName.TOGETHER_AI, async (modelName, _providerName, sdk, _region, credentials) => {
|
|
195
|
+
const togetherCreds = credentials;
|
|
196
|
+
const { TogetherAIProvider } = await import("../providers/togetherAi.js");
|
|
197
|
+
return new TogetherAIProvider(modelName, sdk, undefined, togetherCreds);
|
|
198
|
+
}, process.env.TOGETHER_MODEL ||
|
|
199
|
+
TogetherAIModels.LLAMA_3_3_70B_INSTRUCT_TURBO, ["together-ai", "together"]);
|
|
200
|
+
// Register Fireworks AI provider
|
|
201
|
+
ProviderFactory.registerProvider(AIProviderName.FIREWORKS, async (modelName, _providerName, sdk, _region, credentials) => {
|
|
202
|
+
const fireworksCreds = credentials;
|
|
203
|
+
const { FireworksProvider } = await import("../providers/fireworks.js");
|
|
204
|
+
return new FireworksProvider(modelName, sdk, undefined, fireworksCreds);
|
|
205
|
+
}, process.env.FIREWORKS_MODEL || FireworksModels.DEEPSEEK_V4_PRO, ["fireworks"]);
|
|
206
|
+
// Register Perplexity provider
|
|
207
|
+
ProviderFactory.registerProvider(AIProviderName.PERPLEXITY, async (modelName, _providerName, sdk, _region, credentials) => {
|
|
208
|
+
const perplexityCreds = credentials;
|
|
209
|
+
const { PerplexityProvider } = await import("../providers/perplexity.js");
|
|
210
|
+
return new PerplexityProvider(modelName, sdk, undefined, perplexityCreds);
|
|
211
|
+
}, process.env.PERPLEXITY_MODEL || PerplexityModels.SONAR, ["perplexity", "pplx"]);
|
|
212
|
+
// Register Cloudflare Workers AI provider
|
|
213
|
+
ProviderFactory.registerProvider(AIProviderName.CLOUDFLARE, async (modelName, _providerName, sdk, _region, credentials) => {
|
|
214
|
+
const cloudflareCreds = credentials;
|
|
215
|
+
const { CloudflareProvider } = await import("../providers/cloudflare.js");
|
|
216
|
+
return new CloudflareProvider(modelName, sdk, undefined, cloudflareCreds);
|
|
217
|
+
}, process.env.CLOUDFLARE_MODEL || CloudflareModels.LLAMA_3_3_70B_FAST, ["cloudflare", "workers-ai", "cf-ai"]);
|
|
218
|
+
// Register Voyage AI embeddings provider
|
|
219
|
+
ProviderFactory.registerProvider(AIProviderName.VOYAGE, async (modelName, _providerName, sdk, _region, credentials) => {
|
|
220
|
+
const voyageCreds = credentials;
|
|
221
|
+
const { VoyageProvider } = await import("../providers/voyage.js");
|
|
222
|
+
return new VoyageProvider(modelName, sdk, undefined, voyageCreds);
|
|
223
|
+
}, process.env.VOYAGE_MODEL || VoyageModels.VOYAGE_3_5, ["voyage", "voyage-ai"]);
|
|
224
|
+
// Register Jina AI embeddings + reranking provider
|
|
225
|
+
ProviderFactory.registerProvider(AIProviderName.JINA, async (modelName, _providerName, sdk, _region, credentials) => {
|
|
226
|
+
const jinaCreds = credentials;
|
|
227
|
+
const { JinaProvider } = await import("../providers/jina.js");
|
|
228
|
+
return new JinaProvider(modelName, sdk, undefined, jinaCreds);
|
|
229
|
+
}, process.env.JINA_MODEL || JinaModels.JINA_EMBEDDINGS_V3, ["jina", "jina-ai"]);
|
|
230
|
+
// Register Stability AI image-gen provider
|
|
231
|
+
ProviderFactory.registerProvider(AIProviderName.STABILITY, async (modelName, _providerName, sdk, _region, credentials) => {
|
|
232
|
+
const stabilityCreds = credentials;
|
|
233
|
+
const { StabilityProvider } = await import("../providers/stability.js");
|
|
234
|
+
return new StabilityProvider(modelName, sdk, undefined, stabilityCreds);
|
|
235
|
+
}, process.env.STABILITY_MODEL || StabilityModels.STABLE_IMAGE_ULTRA, ["stability", "stability-ai", "sd"]);
|
|
236
|
+
// Register Ideogram image-gen provider
|
|
237
|
+
ProviderFactory.registerProvider(AIProviderName.IDEOGRAM, async (modelName, _providerName, sdk, _region, credentials) => {
|
|
238
|
+
const ideogramCreds = credentials;
|
|
239
|
+
const { IdeogramProvider } = await import("../providers/ideogram.js");
|
|
240
|
+
return new IdeogramProvider(modelName, sdk, undefined, ideogramCreds);
|
|
241
|
+
}, process.env.IDEOGRAM_MODEL || IdeogramModels.IDEOGRAM_V3, ["ideogram"]);
|
|
242
|
+
// Register Replicate LLM provider (multi-modal — also serves video /
|
|
243
|
+
// avatar / music handlers via dedicated processors registered below)
|
|
244
|
+
ProviderFactory.registerProvider(AIProviderName.REPLICATE, async (modelName, _providerName, sdk, _region, credentials) => {
|
|
245
|
+
const replicateCreds = credentials;
|
|
246
|
+
const { ReplicateProvider } = await import("../providers/replicate.js");
|
|
247
|
+
return new ReplicateProvider(modelName, sdk, undefined, replicateCreds);
|
|
248
|
+
}, process.env.REPLICATE_MODEL || ReplicateModels.LLAMA_3_70B_INSTRUCT, ["replicate"]);
|
|
249
|
+
// Register Recraft image-gen provider
|
|
250
|
+
ProviderFactory.registerProvider(AIProviderName.RECRAFT, async (modelName, _providerName, sdk, _region, credentials) => {
|
|
251
|
+
const recraftCreds = credentials;
|
|
252
|
+
const { RecraftProvider } = await import("../providers/recraft.js");
|
|
253
|
+
return new RecraftProvider(modelName, sdk, undefined, recraftCreds);
|
|
254
|
+
}, process.env.RECRAFT_MODEL || RecraftModels.RECRAFT_V3, ["recraft"]);
|
|
173
255
|
logger.debug("All AI providers registered successfully");
|
|
174
256
|
// ===== TTS HANDLER REGISTRATION =====
|
|
175
257
|
try {
|
|
@@ -307,6 +389,121 @@ export class ProviderRegistry {
|
|
|
307
389
|
: String(realtimeError),
|
|
308
390
|
});
|
|
309
391
|
}
|
|
392
|
+
// ===== VIDEO HANDLER REGISTRATION =====
|
|
393
|
+
try {
|
|
394
|
+
const { VideoProcessor } = await import("../utils/videoProcessor.js");
|
|
395
|
+
try {
|
|
396
|
+
const { VertexVideoHandler } = await import("../adapters/video/vertexVideoHandler.js");
|
|
397
|
+
VideoProcessor.registerHandler("vertex", new VertexVideoHandler());
|
|
398
|
+
}
|
|
399
|
+
catch (err) {
|
|
400
|
+
logger.debug(`[ProviderRegistry] vertex video registration skipped: ${err instanceof Error ? err.message : String(err)}`);
|
|
401
|
+
}
|
|
402
|
+
try {
|
|
403
|
+
const { KlingVideoHandler } = await import("../adapters/video/klingVideoHandler.js");
|
|
404
|
+
VideoProcessor.registerHandler("kling", new KlingVideoHandler());
|
|
405
|
+
}
|
|
406
|
+
catch (err) {
|
|
407
|
+
logger.debug(`[ProviderRegistry] kling video registration skipped: ${err instanceof Error ? err.message : String(err)}`);
|
|
408
|
+
}
|
|
409
|
+
try {
|
|
410
|
+
const { RunwayVideoHandler } = await import("../adapters/video/runwayVideoHandler.js");
|
|
411
|
+
VideoProcessor.registerHandler("runway", new RunwayVideoHandler());
|
|
412
|
+
}
|
|
413
|
+
catch (err) {
|
|
414
|
+
logger.debug(`[ProviderRegistry] runway video registration skipped: ${err instanceof Error ? err.message : String(err)}`);
|
|
415
|
+
}
|
|
416
|
+
try {
|
|
417
|
+
const { ReplicateVideoHandler } = await import("../adapters/video/replicateVideoHandler.js");
|
|
418
|
+
VideoProcessor.registerHandler("replicate", new ReplicateVideoHandler());
|
|
419
|
+
}
|
|
420
|
+
catch (err) {
|
|
421
|
+
logger.debug(`[ProviderRegistry] replicate video registration skipped: ${err instanceof Error ? err.message : String(err)}`);
|
|
422
|
+
}
|
|
423
|
+
logger.debug("Video handlers registered");
|
|
424
|
+
}
|
|
425
|
+
catch (err) {
|
|
426
|
+
logger.warn(`[ProviderRegistry] video registration block failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
427
|
+
}
|
|
428
|
+
// ===== AVATAR HANDLER REGISTRATION =====
|
|
429
|
+
try {
|
|
430
|
+
const { AvatarProcessor } = await import("../utils/avatarProcessor.js");
|
|
431
|
+
try {
|
|
432
|
+
const { DIDAvatar } = await import("../avatar/providers/DIDAvatar.js");
|
|
433
|
+
AvatarProcessor.registerHandler("d-id", new DIDAvatar());
|
|
434
|
+
}
|
|
435
|
+
catch (err) {
|
|
436
|
+
logger.debug(`[ProviderRegistry] d-id avatar registration skipped: ${err instanceof Error ? err.message : String(err)}`);
|
|
437
|
+
}
|
|
438
|
+
try {
|
|
439
|
+
const { ReplicateAvatar } = await import("../avatar/providers/ReplicateAvatar.js");
|
|
440
|
+
const replicateAvatar = new ReplicateAvatar();
|
|
441
|
+
AvatarProcessor.registerHandler("replicate", replicateAvatar);
|
|
442
|
+
AvatarProcessor.registerHandler("musetalk", replicateAvatar);
|
|
443
|
+
}
|
|
444
|
+
catch (err) {
|
|
445
|
+
logger.debug(`[ProviderRegistry] replicate avatar registration skipped: ${err instanceof Error ? err.message : String(err)}`);
|
|
446
|
+
}
|
|
447
|
+
try {
|
|
448
|
+
const { HeyGenAvatar } = await import("../avatar/providers/HeyGenAvatar.js");
|
|
449
|
+
AvatarProcessor.registerHandler("heygen", new HeyGenAvatar());
|
|
450
|
+
}
|
|
451
|
+
catch (err) {
|
|
452
|
+
logger.debug(`[ProviderRegistry] heygen avatar registration skipped: ${err instanceof Error ? err.message : String(err)}`);
|
|
453
|
+
}
|
|
454
|
+
logger.debug("Avatar handlers registered");
|
|
455
|
+
}
|
|
456
|
+
catch (avatarError) {
|
|
457
|
+
logger.warn("Failed to register Avatar handlers - Avatar functionality will be unavailable", {
|
|
458
|
+
error: avatarError instanceof Error
|
|
459
|
+
? avatarError.message
|
|
460
|
+
: String(avatarError),
|
|
461
|
+
});
|
|
462
|
+
}
|
|
463
|
+
// ===== MUSIC HANDLER REGISTRATION =====
|
|
464
|
+
try {
|
|
465
|
+
const { MusicProcessor } = await import("../utils/musicProcessor.js");
|
|
466
|
+
try {
|
|
467
|
+
const { BeatovenMusic } = await import("../music/providers/BeatovenMusic.js");
|
|
468
|
+
MusicProcessor.registerHandler("beatoven", new BeatovenMusic());
|
|
469
|
+
}
|
|
470
|
+
catch (err) {
|
|
471
|
+
logger.debug(`[ProviderRegistry] beatoven music registration skipped: ${err instanceof Error ? err.message : String(err)}`);
|
|
472
|
+
}
|
|
473
|
+
try {
|
|
474
|
+
const { ReplicateMusic } = await import("../music/providers/ReplicateMusic.js");
|
|
475
|
+
const replicateMusic = new ReplicateMusic();
|
|
476
|
+
MusicProcessor.registerHandler("replicate", replicateMusic);
|
|
477
|
+
MusicProcessor.registerHandler("musicgen", replicateMusic);
|
|
478
|
+
}
|
|
479
|
+
catch (err) {
|
|
480
|
+
logger.debug(`[ProviderRegistry] replicate music registration skipped: ${err instanceof Error ? err.message : String(err)}`);
|
|
481
|
+
}
|
|
482
|
+
try {
|
|
483
|
+
const { ElevenLabsMusic } = await import("../music/providers/ElevenLabsMusic.js");
|
|
484
|
+
const elevenLabsMusic = new ElevenLabsMusic();
|
|
485
|
+
MusicProcessor.registerHandler("elevenlabs-music", elevenLabsMusic);
|
|
486
|
+
MusicProcessor.registerHandler("elevenlabs-sound", elevenLabsMusic);
|
|
487
|
+
}
|
|
488
|
+
catch (err) {
|
|
489
|
+
logger.debug(`[ProviderRegistry] elevenlabs-music registration skipped: ${err instanceof Error ? err.message : String(err)}`);
|
|
490
|
+
}
|
|
491
|
+
try {
|
|
492
|
+
const { LyriaMusic } = await import("../music/providers/LyriaMusic.js");
|
|
493
|
+
MusicProcessor.registerHandler("lyria", new LyriaMusic());
|
|
494
|
+
}
|
|
495
|
+
catch (err) {
|
|
496
|
+
logger.debug(`[ProviderRegistry] lyria music registration skipped: ${err instanceof Error ? err.message : String(err)}`);
|
|
497
|
+
}
|
|
498
|
+
logger.debug("Music handlers registered");
|
|
499
|
+
}
|
|
500
|
+
catch (musicError) {
|
|
501
|
+
logger.warn("Failed to register Music handlers - Music functionality will be unavailable", {
|
|
502
|
+
error: musicError instanceof Error
|
|
503
|
+
? musicError.message
|
|
504
|
+
: String(musicError),
|
|
505
|
+
});
|
|
506
|
+
}
|
|
310
507
|
// Mark registered ONLY after all blocks (AI + voice) attempted, so a
|
|
311
508
|
// subsequent registerAllProviders() call does not short-circuit when an
|
|
312
509
|
// optional handler block silently failed.
|
|
@@ -374,25 +374,53 @@ function validateContentPlan(plan, expectedSlides) {
|
|
|
374
374
|
}
|
|
375
375
|
/**
|
|
376
376
|
* Parse AI response to extract JSON
|
|
377
|
-
* Handles markdown code blocks
|
|
377
|
+
* Handles markdown code blocks (anywhere in the response), preambles like
|
|
378
|
+
* "Here is the JSON:", and raw JSON.
|
|
378
379
|
*/
|
|
379
380
|
function parseAIResponse(content) {
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
381
|
+
const trimmed = content.trim();
|
|
382
|
+
const candidates = [];
|
|
383
|
+
// 1) Extract first ```json ... ``` block from anywhere in the response.
|
|
384
|
+
const fenceBlock = trimmed.match(/```(?:json)?\s*\n?([\s\S]*?)\n?```/);
|
|
385
|
+
if (fenceBlock && fenceBlock[1]) {
|
|
386
|
+
candidates.push(fenceBlock[1].trim());
|
|
386
387
|
}
|
|
387
|
-
|
|
388
|
-
|
|
388
|
+
// 2) Strict leading-fence strip (legacy behaviour).
|
|
389
|
+
if (trimmed.startsWith("```")) {
|
|
390
|
+
candidates.push(trimmed.replace(/^```(?:json)?\s*\n?/, "").replace(/\n?```\s*$/, ""));
|
|
389
391
|
}
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
392
|
+
// 3) Slice from first '{' or '[' to its matching close — handles preambles
|
|
393
|
+
// like "Here is the presentation plan:\n{ ... }".
|
|
394
|
+
const firstObj = trimmed.indexOf("{");
|
|
395
|
+
const firstArr = trimmed.indexOf("[");
|
|
396
|
+
const firstStruct = firstObj === -1
|
|
397
|
+
? firstArr
|
|
398
|
+
: firstArr === -1
|
|
399
|
+
? firstObj
|
|
400
|
+
: Math.min(firstObj, firstArr);
|
|
401
|
+
if (firstStruct > 0) {
|
|
402
|
+
const openChar = trimmed[firstStruct];
|
|
403
|
+
const closeChar = openChar === "{" ? "}" : "]";
|
|
404
|
+
const lastClose = trimmed.lastIndexOf(closeChar);
|
|
405
|
+
if (lastClose > firstStruct) {
|
|
406
|
+
candidates.push(trimmed.slice(firstStruct, lastClose + 1));
|
|
407
|
+
}
|
|
395
408
|
}
|
|
409
|
+
// 4) Raw input as last resort.
|
|
410
|
+
candidates.push(trimmed);
|
|
411
|
+
const errors = [];
|
|
412
|
+
for (const candidate of candidates) {
|
|
413
|
+
try {
|
|
414
|
+
return JSON.parse(candidate);
|
|
415
|
+
}
|
|
416
|
+
catch (err) {
|
|
417
|
+
errors.push(err instanceof Error ? err.message : String(err));
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
throw new PPTError(`Failed to parse AI response as JSON: ${errors[errors.length - 1]}`, PPT_ERROR_CODES.INVALID_AI_RESPONSE, {
|
|
421
|
+
contentPreview: content.substring(0, 500),
|
|
422
|
+
parseError: errors.join(" | "),
|
|
423
|
+
});
|
|
396
424
|
}
|
|
397
425
|
// ============================================================================
|
|
398
426
|
// MAIN CONTENT PLANNING FUNCTION
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -45,6 +45,14 @@ export { isAbortError } from "./utils/errorHandling.js";
|
|
|
45
45
|
export { calculateCost, hasPricing } from "./utils/pricing.js";
|
|
46
46
|
export { getAvailableProviders, getBestProvider, isValidProvider, } from "./utils/providerUtils.js";
|
|
47
47
|
export { TTSProcessor } from "./utils/ttsProcessor.js";
|
|
48
|
+
export { TTS_ERROR_CODES, TTSError } from "./utils/ttsProcessor.js";
|
|
49
|
+
export { VideoProcessor } from "./utils/videoProcessor.js";
|
|
50
|
+
export { VIDEO_ERROR_CODES, VideoError } from "./utils/videoProcessor.js";
|
|
51
|
+
export { AvatarProcessor } from "./utils/avatarProcessor.js";
|
|
52
|
+
export { AVATAR_ERROR_CODES, AvatarError } from "./utils/avatarProcessor.js";
|
|
53
|
+
export { MusicProcessor } from "./utils/musicProcessor.js";
|
|
54
|
+
export { MUSIC_ERROR_CODES, MusicError } from "./utils/musicProcessor.js";
|
|
55
|
+
export { ProviderRegistry } from "./factories/providerRegistry.js";
|
|
48
56
|
import { NeuroLink } from "./neurolink.js";
|
|
49
57
|
export { NeuroLink };
|
|
50
58
|
export { buildObservabilityConfigFromEnv } from "./utils/observabilityHelpers.js";
|
|
@@ -239,7 +247,7 @@ export declare function getTelemetryStatus(): Promise<{
|
|
|
239
247
|
* });
|
|
240
248
|
* ```
|
|
241
249
|
*/
|
|
242
|
-
export { Evaluator, EvaluationAggregator, EvaluatorFactory, getEvaluatorFactory, getEvaluatorRegistry, evaluationErrors, isRetryableEvaluationError, isEvaluationError, createEvaluationFailedError, createParseError, createStrategyNotFoundError, createProviderError, createMaxRetriesExceededError, createBatchEvaluationError, createConfigurationError, contextToErrorContext, createLangfuseAdapter, createMockLangfuseClient, startLangfuseAdapter, createConsoleLoggerHook, createMetricsCollectorHook, ObservabilityHooks, observabilityHooks, pipelineToSpanAttributes, scorerToSpanAttributes, createAndInitializePipeline, createPipeline, EvaluationPipeline, PipelineBuilder, Pipelines, CODE_GENERATION_PIPELINE, COMPREHENSIVE_PIPELINE, CUSTOMER_SUPPORT_PIPELINE, getPreset, getPresetNames, MINIMAL_PIPELINE, QUALITY_PIPELINE, RAG_PIPELINE, SAFETY_PIPELINE, SUMMARIZATION_PIPELINE, BatchStrategy, createBatchStrategy, evaluateBatch, streamBatchEvaluation, createSamplingStrategy, DEFAULT_SAMPLING_CONFIG, SamplingStrategies, SamplingStrategy, createMetricsCollector, globalMetricsCollector, MetricsCollector, createReportGenerator, ReportGenerator, Reports, BaseScorer, DEFAULT_SCORE_SCALE as EVAL_DEFAULT_SCORE_SCALE, composeScorers, createConditionalScorer, createFunctionScorer, createInvertedScorer, createKeywordScorer, createRegexScorer, createScorerMetadata, createSimpleLengthScorer, AnswerRelevancyScorer, createAnswerRelevancyScorer, BaseLLMScorer, DEFAULT_LLM_SCORER_CONFIG, BiasDetectionScorer, createBiasDetectionScorer, ContextPrecisionScorer, createContextPrecisionScorer, ContextRelevancyScorer, createContextRelevancyScorer, createFaithfulnessScorer, FaithfulnessScorer, createHallucinationScorer, HallucinationScorer, createPromptAlignmentScorer, PromptAlignmentScorer, createSummarizationScorer, SummarizationScorer, createToneConsistencyScorer, ToneConsistencyScorer, createToxicityScorer, ToxicityScorer, BaseRuleScorer, DEFAULT_RULE_SCORER_CONFIG, createContentSimilarityScorer, createFormatScorer, FormatScorerPresets, createKeywordCoverageScorer, createLengthScorer, LengthScorerPresets, ScorerBuilder, Scorers, ScorerRegistry, } from "./evaluation/index.js";
|
|
250
|
+
export { Evaluator, EvaluationAggregator, EvaluatorFactory, getEvaluatorFactory, getEvaluatorRegistry, evaluationErrors, isRetryableEvaluationError, isEvaluationError, createEvaluationFailedError, createParseError, createStrategyNotFoundError, createProviderError, createMaxRetriesExceededError, createBatchEvaluationError, createConfigurationError, contextToErrorContext, createLangfuseAdapter, createMockLangfuseClient, startLangfuseAdapter, createConsoleLoggerHook, createMetricsCollectorHook, ObservabilityHooks, observabilityHooks, pipelineToSpanAttributes, scorerToSpanAttributes, createAndInitializePipeline, createPipeline, EvaluationPipeline, PipelineBuilder, Pipelines, CODE_GENERATION_PIPELINE, COMPREHENSIVE_PIPELINE, CUSTOMER_SUPPORT_PIPELINE, getPreset, getPresetNames, MINIMAL_PIPELINE, QUALITY_PIPELINE, RAG_PIPELINE, SAFETY_PIPELINE, SUMMARIZATION_PIPELINE, BatchStrategy, createBatchStrategy, evaluateBatch, streamBatchEvaluation, createSamplingStrategy, DEFAULT_SAMPLING_CONFIG, SamplingStrategies, SamplingStrategy, createMetricsCollector, globalMetricsCollector, MetricsCollector, createReportGenerator, ReportGenerator, Reports, BaseScorer, DEFAULT_SCORE_SCALE as EVAL_DEFAULT_SCORE_SCALE, composeScorers, createConditionalScorer, createFunctionScorer, createInvertedScorer, createKeywordScorer, createRegexScorer, createScorerMetadata, createSimpleLengthScorer, AnswerRelevancyScorer, createAnswerRelevancyScorer, BaseLLMScorer, DEFAULT_LLM_SCORER_CONFIG, BiasDetectionScorer, createBiasDetectionScorer, ContextPrecisionScorer, createContextPrecisionScorer, ContextRelevancyScorer, createContextRelevancyScorer, createFaithfulnessScorer, FaithfulnessScorer, createHallucinationScorer, HallucinationScorer, createPromptAlignmentScorer, PromptAlignmentScorer, createSummarizationScorer, SummarizationScorer, createToneConsistencyScorer, ToneConsistencyScorer, createToxicityScorer, ToxicityScorer, BaseRuleScorer, DEFAULT_RULE_SCORER_CONFIG, createContentSimilarityScorer, createFormatScorer, FormatScorerPresets, createKeywordCoverageScorer, createLengthScorer, LengthScorerPresets, ScorerBuilder, Scorers, ScorerRegistry, RAGASEvaluator, RetryManager, } from "./evaluation/index.js";
|
|
243
251
|
/**
|
|
244
252
|
* Legacy generateText function for backward compatibility.
|
|
245
253
|
*
|
package/dist/lib/index.js
CHANGED
|
@@ -71,6 +71,19 @@ export { calculateCost, hasPricing } from "./utils/pricing.js";
|
|
|
71
71
|
export { getAvailableProviders, getBestProvider, isValidProvider, } from "./utils/providerUtils.js";
|
|
72
72
|
// TTS utilities
|
|
73
73
|
export { TTSProcessor } from "./utils/ttsProcessor.js";
|
|
74
|
+
export { TTS_ERROR_CODES, TTSError } from "./utils/ttsProcessor.js";
|
|
75
|
+
// Video utilities
|
|
76
|
+
export { VideoProcessor } from "./utils/videoProcessor.js";
|
|
77
|
+
export { VIDEO_ERROR_CODES, VideoError } from "./utils/videoProcessor.js";
|
|
78
|
+
// Avatar / lip-sync utilities
|
|
79
|
+
export { AvatarProcessor } from "./utils/avatarProcessor.js";
|
|
80
|
+
export { AVATAR_ERROR_CODES, AvatarError } from "./utils/avatarProcessor.js";
|
|
81
|
+
// Music utilities
|
|
82
|
+
export { MusicProcessor } from "./utils/musicProcessor.js";
|
|
83
|
+
export { MUSIC_ERROR_CODES, MusicError } from "./utils/musicProcessor.js";
|
|
84
|
+
// Provider registry (for tests, advanced consumers, and tools that need to
|
|
85
|
+
// invoke registerAllProviders() outside of constructing a NeuroLink instance)
|
|
86
|
+
export { ProviderRegistry } from "./factories/providerRegistry.js";
|
|
74
87
|
// Main NeuroLink wrapper class and diagnostic types
|
|
75
88
|
import { NeuroLink } from "./neurolink.js";
|
|
76
89
|
export { NeuroLink };
|
|
@@ -386,7 +399,9 @@ AnswerRelevancyScorer, createAnswerRelevancyScorer, BaseLLMScorer, DEFAULT_LLM_S
|
|
|
386
399
|
// Scorers - Rule-based
|
|
387
400
|
BaseRuleScorer, DEFAULT_RULE_SCORER_CONFIG, createContentSimilarityScorer, createFormatScorer, FormatScorerPresets, createKeywordCoverageScorer, createLengthScorer, LengthScorerPresets,
|
|
388
401
|
// Scorers - Builder & Registry
|
|
389
|
-
ScorerBuilder, Scorers, ScorerRegistry,
|
|
402
|
+
ScorerBuilder, Scorers, ScorerRegistry,
|
|
403
|
+
// RAGAS evaluator + retry manager (legacy + still-supported classes).
|
|
404
|
+
RAGASEvaluator, RetryManager, } from "./evaluation/index.js";
|
|
390
405
|
// ============================================================================
|
|
391
406
|
// BACKWARD COMPATIBILITY: Legacy generateText Function Exports
|
|
392
407
|
// ============================================================================
|
|
@@ -10,6 +10,31 @@
|
|
|
10
10
|
import { logger } from "../../utils/logger.js";
|
|
11
11
|
import { isRecoverableError } from "../../utils/errorHandling.js";
|
|
12
12
|
import { fireOnErrorOnce } from "../../utils/lifecycleCallbacks.js";
|
|
13
|
+
/**
|
|
14
|
+
* Normalize a thrown value to an `Error` while preserving structured
|
|
15
|
+
* fields (`code`, `status`, `statusCode`, `retryAfter`, `details`,
|
|
16
|
+
* `cause`, etc.) that downstream retry logic and SDK callers depend on.
|
|
17
|
+
*
|
|
18
|
+
* Previously the lifecycle middleware did
|
|
19
|
+
* `error instanceof Error ? error : new Error(String(error))`, which
|
|
20
|
+
* silently dropped every custom property on non-Error throws — so a
|
|
21
|
+
* provider's `{ code: "RATE_LIMITED", retryAfter: 30 }` rejection
|
|
22
|
+
* surfaced to consumers as a bare `Error("[object Object]")`.
|
|
23
|
+
*/
|
|
24
|
+
function normalizeToError(error) {
|
|
25
|
+
if (error instanceof Error) {
|
|
26
|
+
return error;
|
|
27
|
+
}
|
|
28
|
+
if (typeof error === "object" && error !== null) {
|
|
29
|
+
const obj = error;
|
|
30
|
+
const msg = typeof obj.message === "string" ? obj.message : String(error);
|
|
31
|
+
// Object.assign keeps Error's prototype chain (including the
|
|
32
|
+
// captured stack from this synthetic Error's construction) while
|
|
33
|
+
// copying enumerable fields from the original throw.
|
|
34
|
+
return Object.assign(new Error(msg), obj);
|
|
35
|
+
}
|
|
36
|
+
return new Error(String(error));
|
|
37
|
+
}
|
|
13
38
|
export function createLifecycleMiddleware(config = {}) {
|
|
14
39
|
const metadata = {
|
|
15
40
|
id: "lifecycle",
|
|
@@ -51,13 +76,18 @@ export function createLifecycleMiddleware(config = {}) {
|
|
|
51
76
|
return result;
|
|
52
77
|
}
|
|
53
78
|
catch (error) {
|
|
54
|
-
const err =
|
|
55
|
-
fireOnErrorOnce
|
|
79
|
+
const err = normalizeToError(error);
|
|
80
|
+
// fireOnErrorOnce stamps a Symbol on `err` so the SDK-level catch
|
|
81
|
+
// in neurolink.ts (and baseProvider.handleProviderError) skips
|
|
82
|
+
// its own onError fire for the same logical failure.
|
|
83
|
+
fireOnErrorOnce(config.onError, err, {
|
|
56
84
|
error: err,
|
|
57
85
|
duration: Date.now() - startTime,
|
|
58
86
|
recoverable: isRecoverableError(err),
|
|
59
87
|
});
|
|
60
|
-
|
|
88
|
+
// Rethrow the normalized err (not the raw `error`) so the
|
|
89
|
+
// fired-mark and any preserved structured fields propagate.
|
|
90
|
+
throw err;
|
|
61
91
|
}
|
|
62
92
|
},
|
|
63
93
|
wrapStream: async ({ doStream, }) => {
|
|
@@ -93,13 +123,13 @@ export function createLifecycleMiddleware(config = {}) {
|
|
|
93
123
|
controller.enqueue(chunk);
|
|
94
124
|
}
|
|
95
125
|
catch (error) {
|
|
96
|
-
const err =
|
|
97
|
-
fireOnErrorOnce(config.onError,
|
|
126
|
+
const err = normalizeToError(error);
|
|
127
|
+
fireOnErrorOnce(config.onError, err, {
|
|
98
128
|
error: err,
|
|
99
129
|
duration: Date.now() - startTime,
|
|
100
130
|
recoverable: isRecoverableError(err),
|
|
101
131
|
});
|
|
102
|
-
throw
|
|
132
|
+
throw err;
|
|
103
133
|
}
|
|
104
134
|
},
|
|
105
135
|
flush() {
|
|
@@ -125,13 +155,13 @@ export function createLifecycleMiddleware(config = {}) {
|
|
|
125
155
|
};
|
|
126
156
|
}
|
|
127
157
|
catch (error) {
|
|
128
|
-
const err =
|
|
129
|
-
fireOnErrorOnce(config.onError,
|
|
158
|
+
const err = normalizeToError(error);
|
|
159
|
+
fireOnErrorOnce(config.onError, err, {
|
|
130
160
|
error: err,
|
|
131
161
|
duration: Date.now() - startTime,
|
|
132
162
|
recoverable: isRecoverableError(err),
|
|
133
163
|
});
|
|
134
|
-
throw
|
|
164
|
+
throw err;
|
|
135
165
|
}
|
|
136
166
|
},
|
|
137
167
|
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Music Module — Music Generation Integration for NeuroLink
|
|
3
|
+
*
|
|
4
|
+
* Provides music-generation capability across providers (Beatoven,
|
|
5
|
+
* ElevenLabs Music, Lyria, Replicate-hosted MusicGen / Riffusion).
|
|
6
|
+
*
|
|
7
|
+
* Use `MusicProcessor.generate(provider, options)` to dispatch to the
|
|
8
|
+
* registered handler for `provider`.
|
|
9
|
+
*
|
|
10
|
+
* @module music
|
|
11
|
+
*/
|
|
12
|
+
export { MUSIC_ERROR_CODES, MusicError, MusicProcessor, } from "../utils/musicProcessor.js";
|
|
13
|
+
export { BeatovenMusic, BeatovenMusic as BeatovenMusicHandler, } from "./providers/BeatovenMusic.js";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Music Module — Music Generation Integration for NeuroLink
|
|
3
|
+
*
|
|
4
|
+
* Provides music-generation capability across providers (Beatoven,
|
|
5
|
+
* ElevenLabs Music, Lyria, Replicate-hosted MusicGen / Riffusion).
|
|
6
|
+
*
|
|
7
|
+
* Use `MusicProcessor.generate(provider, options)` to dispatch to the
|
|
8
|
+
* registered handler for `provider`.
|
|
9
|
+
*
|
|
10
|
+
* @module music
|
|
11
|
+
*/
|
|
12
|
+
export { MUSIC_ERROR_CODES, MusicError, MusicProcessor, } from "../utils/musicProcessor.js";
|
|
13
|
+
export { BeatovenMusic, BeatovenMusic as BeatovenMusicHandler, } from "./providers/BeatovenMusic.js";
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Beatoven.ai Music Generation Handler
|
|
3
|
+
*
|
|
4
|
+
* Async track-composition API. Submits a compose-track request, polls the
|
|
5
|
+
* task status, and downloads the resulting audio.
|
|
6
|
+
*
|
|
7
|
+
* @module music/providers/BeatovenMusic
|
|
8
|
+
* @see https://www.beatoven.ai/api-docs
|
|
9
|
+
*/
|
|
10
|
+
import type { MusicAudioFormat, MusicHandler, MusicOptions, MusicResult } from "../../types/index.js";
|
|
11
|
+
/**
|
|
12
|
+
* Beatoven.ai Music Generation Handler.
|
|
13
|
+
*
|
|
14
|
+
* Beatoven is a royalty-free music generation API tuned for
|
|
15
|
+
* background / cinematic / brand music. Tracks are composed
|
|
16
|
+
* asynchronously: submit a prompt, poll the task, then download.
|
|
17
|
+
*/
|
|
18
|
+
export declare class BeatovenMusic implements MusicHandler {
|
|
19
|
+
readonly maxDurationSeconds = 300;
|
|
20
|
+
readonly supportedFormats: readonly MusicAudioFormat[];
|
|
21
|
+
readonly supportedGenres: readonly string[];
|
|
22
|
+
private readonly apiKey;
|
|
23
|
+
private readonly baseUrl;
|
|
24
|
+
constructor(apiKey?: string);
|
|
25
|
+
isConfigured(): boolean;
|
|
26
|
+
generate(options: MusicOptions): Promise<MusicResult>;
|
|
27
|
+
private submitCompose;
|
|
28
|
+
private pollUntilComposed;
|
|
29
|
+
private fetchTaskStatus;
|
|
30
|
+
private downloadTrack;
|
|
31
|
+
}
|