@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/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/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
|
// ============================================================================
|
|
@@ -281,7 +281,7 @@ const VISION_CAPABILITIES = {
|
|
|
281
281
|
openrouter: [
|
|
282
282
|
// OpenRouter provides access to vision-capable models from multiple providers
|
|
283
283
|
// Anthropic Claude models (via OpenRouter)
|
|
284
|
-
"anthropic/claude-3-
|
|
284
|
+
"anthropic/claude-3.7-sonnet",
|
|
285
285
|
"anthropic/claude-3-5-haiku",
|
|
286
286
|
"anthropic/claude-3-opus",
|
|
287
287
|
"anthropic/claude-3-sonnet",
|
|
@@ -474,6 +474,34 @@ const VISION_CAPABILITIES = {
|
|
|
474
474
|
"qwen2-vl",
|
|
475
475
|
"phi-3-vision",
|
|
476
476
|
],
|
|
477
|
+
// xAI: only grok-2-vision is multimodal today
|
|
478
|
+
xai: ["grok-2-vision-latest"],
|
|
479
|
+
// Groq: vision models are explicit "*-vision-preview" variants
|
|
480
|
+
groq: ["llama-3.2-90b-vision-preview", "llama-3.2-11b-vision-preview"],
|
|
481
|
+
// Cohere: command-r* are text-only (no vision); empty list
|
|
482
|
+
cohere: [],
|
|
483
|
+
// Together AI: text-only by default; add vision variants if/when used.
|
|
484
|
+
"together-ai": [],
|
|
485
|
+
// Fireworks: vision via Phi-3-Vision and Llama 3.2 vision variants.
|
|
486
|
+
fireworks: [
|
|
487
|
+
"accounts/fireworks/models/phi-3-vision-128k-instruct",
|
|
488
|
+
"accounts/fireworks/models/llama-v3p2-90b-vision-instruct",
|
|
489
|
+
"accounts/fireworks/models/llama-v3p2-11b-vision-instruct",
|
|
490
|
+
],
|
|
491
|
+
// Perplexity Sonar — text-only with web grounding.
|
|
492
|
+
perplexity: [],
|
|
493
|
+
// Cloudflare: explicit vision variants only.
|
|
494
|
+
cloudflare: ["@cf/meta/llama-3.2-11b-vision-instruct"],
|
|
495
|
+
// Replicate: vision capability depends on the specific model id.
|
|
496
|
+
replicate: ["llava", "llama-3.2-vision", "moondream", "qwen2-vl"],
|
|
497
|
+
// Voyage / Jina — embedding-only, not multimodal in this sense.
|
|
498
|
+
voyage: [],
|
|
499
|
+
jina: [],
|
|
500
|
+
// Stability / Ideogram / Recraft — image-OUTPUT, not image-INPUT.
|
|
501
|
+
// VISION_CAPABILITIES tracks reference-image input support.
|
|
502
|
+
stability: [],
|
|
503
|
+
ideogram: [],
|
|
504
|
+
recraft: [],
|
|
477
505
|
};
|
|
478
506
|
/**
|
|
479
507
|
* Provider Image Adapter - Smart routing and formatting
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Replicate Auth Helper
|
|
3
|
+
*
|
|
4
|
+
* Resolves the Replicate API token + base URL from per-call overrides,
|
|
5
|
+
* instance credentials, or env vars. Used by every Replicate-backed
|
|
6
|
+
* handler (LLM, video, avatar, music) so the auth chain is centralised.
|
|
7
|
+
*
|
|
8
|
+
* @module adapters/replicate/auth
|
|
9
|
+
*/
|
|
10
|
+
import type { ReplicateAuth } from "../../types/index.js";
|
|
11
|
+
/**
|
|
12
|
+
* Resolve Replicate auth from override → env vars.
|
|
13
|
+
*
|
|
14
|
+
* Returns `null` when `REPLICATE_API_TOKEN` is missing AND no override is
|
|
15
|
+
* provided. Handlers' `isConfigured()` check `auth !== null`.
|
|
16
|
+
*
|
|
17
|
+
* @param override - per-call or instance-level credentials slice
|
|
18
|
+
*/
|
|
19
|
+
export declare function getReplicateAuth(override?: Partial<ReplicateAuth>): ReplicateAuth | null;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Replicate Auth Helper
|
|
3
|
+
*
|
|
4
|
+
* Resolves the Replicate API token + base URL from per-call overrides,
|
|
5
|
+
* instance credentials, or env vars. Used by every Replicate-backed
|
|
6
|
+
* handler (LLM, video, avatar, music) so the auth chain is centralised.
|
|
7
|
+
*
|
|
8
|
+
* @module adapters/replicate/auth
|
|
9
|
+
*/
|
|
10
|
+
const DEFAULT_BASE_URL = "https://api.replicate.com";
|
|
11
|
+
/**
|
|
12
|
+
* Resolve Replicate auth from override → env vars.
|
|
13
|
+
*
|
|
14
|
+
* Returns `null` when `REPLICATE_API_TOKEN` is missing AND no override is
|
|
15
|
+
* provided. Handlers' `isConfigured()` check `auth !== null`.
|
|
16
|
+
*
|
|
17
|
+
* @param override - per-call or instance-level credentials slice
|
|
18
|
+
*/
|
|
19
|
+
export function getReplicateAuth(override) {
|
|
20
|
+
const apiToken = (override?.apiToken ??
|
|
21
|
+
process.env.REPLICATE_API_TOKEN ??
|
|
22
|
+
"").trim();
|
|
23
|
+
if (!apiToken) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
apiToken,
|
|
28
|
+
baseUrl: (override?.baseUrl ??
|
|
29
|
+
process.env.REPLICATE_BASE_URL ??
|
|
30
|
+
DEFAULT_BASE_URL).replace(/\/$/, ""),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Replicate Prediction Lifecycle
|
|
3
|
+
*
|
|
4
|
+
* Shared async-job helpers used by every Replicate-backed handler. Submits
|
|
5
|
+
* a prediction, polls until terminal status, downloads the binary output.
|
|
6
|
+
*
|
|
7
|
+
* Usage pattern (for handlers — LLM, video, avatar, music):
|
|
8
|
+
*
|
|
9
|
+
* const auth = getReplicateAuth(credentials);
|
|
10
|
+
* if (!auth) throw new XxxError({ code: PROVIDER_NOT_CONFIGURED, ... });
|
|
11
|
+
* const prediction = await predict(auth, { model, input });
|
|
12
|
+
* const buffer = await downloadPredictionOutput(prediction);
|
|
13
|
+
*
|
|
14
|
+
* @module adapters/replicate/predictionLifecycle
|
|
15
|
+
*/
|
|
16
|
+
import type { ReplicateAuth, ReplicateCreatePredictionInput, ReplicatePollOptions, ReplicatePrediction } from "../../types/index.js";
|
|
17
|
+
/**
|
|
18
|
+
* Submit a Replicate prediction. Uses `Prefer: wait=60` so quick
|
|
19
|
+
* predictions complete in the initial POST and skip polling entirely.
|
|
20
|
+
*/
|
|
21
|
+
export declare function createPrediction(auth: ReplicateAuth, input: ReplicateCreatePredictionInput): Promise<ReplicatePrediction>;
|
|
22
|
+
/**
|
|
23
|
+
* Poll a Replicate prediction until it reaches a terminal status
|
|
24
|
+
* (succeeded / failed / canceled) or the total timeout elapses.
|
|
25
|
+
*/
|
|
26
|
+
export declare function pollPrediction(auth: ReplicateAuth, predictionId: string, options?: ReplicatePollOptions): Promise<ReplicatePrediction>;
|
|
27
|
+
/**
|
|
28
|
+
* Submit + poll. Combines `createPrediction` + `pollPrediction`.
|
|
29
|
+
*
|
|
30
|
+
* Uses `Prefer: wait=60` in the submit call so short jobs complete in the
|
|
31
|
+
* initial POST and bypass polling entirely.
|
|
32
|
+
*/
|
|
33
|
+
export declare function predict(auth: ReplicateAuth, input: ReplicateCreatePredictionInput, options?: ReplicatePollOptions): Promise<ReplicatePrediction>;
|
|
34
|
+
/**
|
|
35
|
+
* Download a Replicate prediction's binary output.
|
|
36
|
+
*
|
|
37
|
+
* Replicate models return either a single URL string or an array of URL
|
|
38
|
+
* strings (multi-output models). For models that return base64 directly,
|
|
39
|
+
* use a model-specific helper instead.
|
|
40
|
+
*
|
|
41
|
+
* @param prediction The completed prediction to download.
|
|
42
|
+
* @param maxBytes Maximum bytes allowed. Defaults to {@link MAX_VIDEO_BYTES}
|
|
43
|
+
* (256 MiB). Pass {@link MAX_AUDIO_BYTES} for music/TTS
|
|
44
|
+
* outputs or {@link MAX_IMAGE_BYTES} for image outputs.
|
|
45
|
+
*/
|
|
46
|
+
export declare function downloadPredictionOutput(prediction: ReplicatePrediction, maxBytes?: number): Promise<Buffer>;
|