@umituz/web-ai 1.0.4 → 1.0.6

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/dist/index.d.cts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { C as ChatMessage, F as FinishReason, G as GenerationResult, P as ProviderHealth, S as StreamCallbacks, a as StructuredGeneration, b as StructuredTextRequest, T as TextRequest, c as TextTier, d as TokenUsage } from './index-fXjxTR5W.cjs';
2
2
  export { A as AIError, a as AIErrorMetadata, b as AIErrorType, b as GroqErrorType, T as TEXT_TIERS, c as TierModelMap, U as USER_FRIENDLY_ERROR_MESSAGES, i as isTextTier, m as mergeTierOverrides, r as resolveModel } from './index-DKHNcMbl.cjs';
3
- export { AIErrorBody, ApiKeyValidationRule, CompositeExecutor, DEFAULT_API_KEY_RULE, DEFAULT_ERROR_CLASSIFICATION_RULE, DEFAULT_HTTP_STATUS_RULE, DEFAULT_RETRY_BACKOFF_MULTIPLIER, DEFAULT_RETRY_INITIAL_DELAY_MS, DEFAULT_RETRY_JITTER_FACTOR, DEFAULT_RETRY_MAX_ATTEMPTS, DEFAULT_RETRY_MAX_DELAY_MS, DebounceManager, DebounceOptions, DedupeExecutor, DedupeExecutorOptions, ErrorClassificationRule, GroqError, GroqErrorMetadata, HttpStatusClassificationRule, IRequestExecutor, JSON_CODE_BLOCK_PATTERN, JSON_OBJECT_PATTERN, JsonResponseParser, LoggedError, NormalizedSseChunk, QueueExecutor, RetryExecutor, SSE_BRIDGE_EVENTS, SSE_DONE_MARKER, SSE_PREFIX, SseDeltaExtractor, SseResponseOptions, StreamingParserCallbacks, StreamingResponseParser, StructuredPromptBuilder, ThrottleManager, ThrottleOptions, asObjectArray, asRecord, asStringArray, asTrimmedOptionalString, buildCacheKey, buildHttpStatusFallback, clampScore, classifyHttpStatus, createSseResponse, debounce, debounceManager, describeAIErrorType, extractErrorMessageFromJsonBody, extractErrorMessageFromResponse, extractJsonArray, extractJsonCandidate, extractJsonFromCodeFence, extractJsonObject, extractSseDataPayload, formatErrorForLogging, isAuthErrorType, isRetryableErrorType, isSseDataLine, isSseDoneMarker, isValidApiKey, normalizeSseChunk, oneOfCatalog, repairCommonJsonDefects, resolveUserFriendlyErrorMessage, resolveUserFriendlyMessage, splitSseLines, throttle, throttleManager, validateApiKey } from './core/index.cjs';
3
+ export { AIErrorBody, ApiKeyValidationRule, CompositeExecutor, DEFAULT_API_KEY_RULE, DEFAULT_ERROR_CLASSIFICATION_RULE, DEFAULT_HTTP_STATUS_RULE, DEFAULT_RETRY_BACKOFF_MULTIPLIER, DEFAULT_RETRY_INITIAL_DELAY_MS, DEFAULT_RETRY_JITTER_FACTOR, DEFAULT_RETRY_MAX_ATTEMPTS, DEFAULT_RETRY_MAX_DELAY_MS, DebounceManager, DebounceOptions, DedupeExecutor, DedupeExecutorOptions, ErrorClassificationRule, GroqError, GroqErrorMetadata, HttpStatusClassificationRule, IRequestExecutor, JSON_CODE_BLOCK_PATTERN, JSON_OBJECT_PATTERN, JsonResponseParser, LoggedError, NormalizedSseChunk, QueueExecutor, RetryExecutor, SSE_BRIDGE_EVENTS, SSE_DONE_MARKER, SSE_PREFIX, SseDeltaExtractor, SseResponseOptions, StreamingParserCallbacks, StreamingResponseParser, StructuredPromptBuilder, ThrottleManager, ThrottleOptions, asObjectArray, asRecord, asStringArray, asTrimmedOptionalString, buildCacheKey, buildHttpStatusFallback, clampScore, classifyHttpStatus, createSseResponse, debounce, debounceManager, defaultSseDeltaExtractor, describeAIErrorType, extractErrorMessageFromJsonBody, extractErrorMessageFromResponse, extractJsonArray, extractJsonCandidate, extractJsonFromCodeFence, extractJsonObject, extractSseDataPayload, formatErrorForLogging, isAuthErrorType, isRetryableErrorType, isSseDataLine, isSseDoneMarker, isValidApiKey, normalizeSseChunk, oneOfCatalog, repairCommonJsonDefects, resolveUserFriendlyErrorMessage, resolveUserFriendlyMessage, splitSseLines, throttle, throttleManager, validateApiKey } from './core/index.cjs';
4
4
  export { C as CacheManager, a as CacheOptions, b as CacheStats, c as cacheManager } from './cache-manager-Df9LLYGA.cjs';
5
5
  export { Q as QueueOptions, R as RequestDeduplicator, a as RequestQueue, b as RetryManager, c as RetryOptions, r as requestDeduplicator, d as requestQueue, e as retryManager, w as withRetry } from './request-deduplicator.util-NDo0_n1y.cjs';
6
6
  export { A as AnyProvider, C as CostEstimateRequest, I as IAIProvider, a as IMediaProvider, b as IProviderBase, c as ITextGenerator, d as ITextProvider, P as ProviderCapability, e as ProviderFactory, f as ProviderFactoryConfig, T as TextGenerationOptions, g as createProviderFactory, i as isMediaProvider, h as isTextProvider } from './provider.factory-DyfJtR8M.cjs';
@@ -11,5 +11,5 @@ export { C as ChatConfig, a as ChatConversation, b as ChatMessageSender, c as Ch
11
11
  export { ChatIdGenerator, chatIdGenerator, messageFormatter } from './chat/index.cjs';
12
12
  export { B as BlogGenerationRequest, a as BlogType, C as CONTENT_WIZARD_STEPS, b as ContentCalendarEntry, c as ContentTone, d as ContentType, e as ContentWizardData, f as ContentWizardStep, g as ContentWizardType, E as Emotion, G as GeneratedBlog, h as GeneratedSocialContent, i as GeneratedVideoScript, I as IMAGE_WIZARD_STEPS, j as ImageWizardData, k as ImageWizardStep, P as PLATFORM_SPECS, l as PlatformSpecs, S as Sentiment, m as SocialContentRequest, n as SocialPlatform, V as VIDEO_WIZARD_STEPS, o as ValidationResult, p as VideoGenerationType, q as VideoScriptRequest, r as VideoWizardData, s as VideoWizardStep, W as WizardConfig, t as WizardData, u as WizardStep, v as buildContentRequest, w as buildImageRequest, x as buildVideoRequest } from './index-BulSkB2L.cjs';
13
13
  export { A as ABTestComparison, a as ABTestPrediction, b as ABTestRequest, c as ABTestVariant, d as AIErrorCode, e as ASPECT_RATIO_OPTIONS, f as AspectRatio, C as ContentAnalysisRequest, g as ContentAnalysisResult, G as ContentGenerationResult, h as CreditCost, i as GENERATION_COSTS, j as GenerationMetadata, k as GenerationProgress, l as GenerationStatus, m as GenerationType, I as IMAGE_QUALITY_OPTIONS, n as ImageGenerationInput, o as ImageQuality, K as KeywordAnalysis, M as MOTION_OPTIONS, P as ProviderQuotaExhaustedError, p as ProviderUnavailableError, S as SEOOptimizationRequest, q as SEOOptimizationResult, r as SEOScoreBreakdown, s as STYLE_PRESETS, t as SentimentAnalysisResult, V as VIDEO_DURATION_OPTIONS_SECONDS, u as VIDEO_QUALITY_OPTIONS, v as VideoGenerationInput, w as VideoQuality, x as calculateCreditCost } from './AIErrors-DjZXUiLT.cjs';
14
- export { A as ABTestService, a as AIContentService, b as ASPECT_RATIO_VALUES, c as AnalysisService, B as BlogService, C as ContentCalendarService, G as GenerationExecutor, I as IAIContentService, d as IMAGE_QUALITY_VALUES, e as ImagePromptService, M as MediaGenerationService, P as PromptBuilder, S as SeoService, f as SocialService, V as VIDEO_DURATION_OPTIONS, g as VIDEO_QUALITY_VALUES, h as VideoScriptService, i as getDimensionsForAspectRatio, j as getRecommendedQuality } from './PromptBuilder-DIUZlfV6.cjs';
14
+ export { A as ABTestService, a as AIContentService, b as ASPECT_RATIO_VALUES, c as AnalysisService, B as BlogService, C as ContentCalendarService, G as GenerationExecutor, I as IAIContentService, d as IMAGE_QUALITY_VALUES, e as ImagePromptService, M as MediaGenerationService, P as PromptBuilder, Q as QueueConfig, R as RequestPriority, S as SeoService, f as SocialService, V as VIDEO_DURATION_OPTIONS, g as VIDEO_QUALITY_VALUES, h as VideoScriptService, i as batchRequest, j as extractJSON, k as getDimensionsForAspectRatio, l as getRecommendedQuality, m as isValidJSON, p as parseAIResponse, s as safeJSONParse } from './requestQueue-CkJ6Xc9K.cjs';
15
15
  import './ProviderConfig-DIFa9nmG.cjs';
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { C as ChatMessage, F as FinishReason, G as GenerationResult, P as ProviderHealth, S as StreamCallbacks, a as StructuredGeneration, b as StructuredTextRequest, T as TextRequest, c as TextTier, d as TokenUsage } from './index-fXjxTR5W.js';
2
2
  export { A as AIError, a as AIErrorMetadata, b as AIErrorType, b as GroqErrorType, T as TEXT_TIERS, c as TierModelMap, U as USER_FRIENDLY_ERROR_MESSAGES, i as isTextTier, m as mergeTierOverrides, r as resolveModel } from './index-DIHz8_OJ.js';
3
- export { AIErrorBody, ApiKeyValidationRule, CompositeExecutor, DEFAULT_API_KEY_RULE, DEFAULT_ERROR_CLASSIFICATION_RULE, DEFAULT_HTTP_STATUS_RULE, DEFAULT_RETRY_BACKOFF_MULTIPLIER, DEFAULT_RETRY_INITIAL_DELAY_MS, DEFAULT_RETRY_JITTER_FACTOR, DEFAULT_RETRY_MAX_ATTEMPTS, DEFAULT_RETRY_MAX_DELAY_MS, DebounceManager, DebounceOptions, DedupeExecutor, DedupeExecutorOptions, ErrorClassificationRule, GroqError, GroqErrorMetadata, HttpStatusClassificationRule, IRequestExecutor, JSON_CODE_BLOCK_PATTERN, JSON_OBJECT_PATTERN, JsonResponseParser, LoggedError, NormalizedSseChunk, QueueExecutor, RetryExecutor, SSE_BRIDGE_EVENTS, SSE_DONE_MARKER, SSE_PREFIX, SseDeltaExtractor, SseResponseOptions, StreamingParserCallbacks, StreamingResponseParser, StructuredPromptBuilder, ThrottleManager, ThrottleOptions, asObjectArray, asRecord, asStringArray, asTrimmedOptionalString, buildCacheKey, buildHttpStatusFallback, clampScore, classifyHttpStatus, createSseResponse, debounce, debounceManager, describeAIErrorType, extractErrorMessageFromJsonBody, extractErrorMessageFromResponse, extractJsonArray, extractJsonCandidate, extractJsonFromCodeFence, extractJsonObject, extractSseDataPayload, formatErrorForLogging, isAuthErrorType, isRetryableErrorType, isSseDataLine, isSseDoneMarker, isValidApiKey, normalizeSseChunk, oneOfCatalog, repairCommonJsonDefects, resolveUserFriendlyErrorMessage, resolveUserFriendlyMessage, splitSseLines, throttle, throttleManager, validateApiKey } from './core/index.js';
3
+ export { AIErrorBody, ApiKeyValidationRule, CompositeExecutor, DEFAULT_API_KEY_RULE, DEFAULT_ERROR_CLASSIFICATION_RULE, DEFAULT_HTTP_STATUS_RULE, DEFAULT_RETRY_BACKOFF_MULTIPLIER, DEFAULT_RETRY_INITIAL_DELAY_MS, DEFAULT_RETRY_JITTER_FACTOR, DEFAULT_RETRY_MAX_ATTEMPTS, DEFAULT_RETRY_MAX_DELAY_MS, DebounceManager, DebounceOptions, DedupeExecutor, DedupeExecutorOptions, ErrorClassificationRule, GroqError, GroqErrorMetadata, HttpStatusClassificationRule, IRequestExecutor, JSON_CODE_BLOCK_PATTERN, JSON_OBJECT_PATTERN, JsonResponseParser, LoggedError, NormalizedSseChunk, QueueExecutor, RetryExecutor, SSE_BRIDGE_EVENTS, SSE_DONE_MARKER, SSE_PREFIX, SseDeltaExtractor, SseResponseOptions, StreamingParserCallbacks, StreamingResponseParser, StructuredPromptBuilder, ThrottleManager, ThrottleOptions, asObjectArray, asRecord, asStringArray, asTrimmedOptionalString, buildCacheKey, buildHttpStatusFallback, clampScore, classifyHttpStatus, createSseResponse, debounce, debounceManager, defaultSseDeltaExtractor, describeAIErrorType, extractErrorMessageFromJsonBody, extractErrorMessageFromResponse, extractJsonArray, extractJsonCandidate, extractJsonFromCodeFence, extractJsonObject, extractSseDataPayload, formatErrorForLogging, isAuthErrorType, isRetryableErrorType, isSseDataLine, isSseDoneMarker, isValidApiKey, normalizeSseChunk, oneOfCatalog, repairCommonJsonDefects, resolveUserFriendlyErrorMessage, resolveUserFriendlyMessage, splitSseLines, throttle, throttleManager, validateApiKey } from './core/index.js';
4
4
  export { C as CacheManager, a as CacheOptions, b as CacheStats, c as cacheManager } from './cache-manager-Df9LLYGA.js';
5
5
  export { Q as QueueOptions, R as RequestDeduplicator, a as RequestQueue, b as RetryManager, c as RetryOptions, r as requestDeduplicator, d as requestQueue, e as retryManager, w as withRetry } from './request-deduplicator.util-NDo0_n1y.js';
6
6
  export { A as AnyProvider, C as CostEstimateRequest, I as IAIProvider, a as IMediaProvider, b as IProviderBase, c as ITextGenerator, d as ITextProvider, P as ProviderCapability, e as ProviderFactory, f as ProviderFactoryConfig, T as TextGenerationOptions, g as createProviderFactory, i as isMediaProvider, h as isTextProvider } from './provider.factory-BwPnqSEU.js';
@@ -11,5 +11,5 @@ export { C as ChatConfig, a as ChatConversation, b as ChatMessageSender, c as Ch
11
11
  export { ChatIdGenerator, chatIdGenerator, messageFormatter } from './chat/index.js';
12
12
  export { B as BlogGenerationRequest, a as BlogType, C as CONTENT_WIZARD_STEPS, b as ContentCalendarEntry, c as ContentTone, d as ContentType, e as ContentWizardData, f as ContentWizardStep, g as ContentWizardType, E as Emotion, G as GeneratedBlog, h as GeneratedSocialContent, i as GeneratedVideoScript, I as IMAGE_WIZARD_STEPS, j as ImageWizardData, k as ImageWizardStep, P as PLATFORM_SPECS, l as PlatformSpecs, S as Sentiment, m as SocialContentRequest, n as SocialPlatform, V as VIDEO_WIZARD_STEPS, o as ValidationResult, p as VideoGenerationType, q as VideoScriptRequest, r as VideoWizardData, s as VideoWizardStep, W as WizardConfig, t as WizardData, u as WizardStep, v as buildContentRequest, w as buildImageRequest, x as buildVideoRequest } from './index-BUVULo3h.js';
13
13
  export { A as ABTestComparison, a as ABTestPrediction, b as ABTestRequest, c as ABTestVariant, d as AIErrorCode, e as ASPECT_RATIO_OPTIONS, f as AspectRatio, C as ContentAnalysisRequest, g as ContentAnalysisResult, G as ContentGenerationResult, h as CreditCost, i as GENERATION_COSTS, j as GenerationMetadata, k as GenerationProgress, l as GenerationStatus, m as GenerationType, I as IMAGE_QUALITY_OPTIONS, n as ImageGenerationInput, o as ImageQuality, K as KeywordAnalysis, M as MOTION_OPTIONS, P as ProviderQuotaExhaustedError, p as ProviderUnavailableError, S as SEOOptimizationRequest, q as SEOOptimizationResult, r as SEOScoreBreakdown, s as STYLE_PRESETS, t as SentimentAnalysisResult, V as VIDEO_DURATION_OPTIONS_SECONDS, u as VIDEO_QUALITY_OPTIONS, v as VideoGenerationInput, w as VideoQuality, x as calculateCreditCost } from './AIErrors-CLjXRty-.js';
14
- export { A as ABTestService, a as AIContentService, b as ASPECT_RATIO_VALUES, c as AnalysisService, B as BlogService, C as ContentCalendarService, G as GenerationExecutor, I as IAIContentService, d as IMAGE_QUALITY_VALUES, e as ImagePromptService, M as MediaGenerationService, P as PromptBuilder, S as SeoService, f as SocialService, V as VIDEO_DURATION_OPTIONS, g as VIDEO_QUALITY_VALUES, h as VideoScriptService, i as getDimensionsForAspectRatio, j as getRecommendedQuality } from './PromptBuilder-B5Lm1znm.js';
14
+ export { A as ABTestService, a as AIContentService, b as ASPECT_RATIO_VALUES, c as AnalysisService, B as BlogService, C as ContentCalendarService, G as GenerationExecutor, I as IAIContentService, d as IMAGE_QUALITY_VALUES, e as ImagePromptService, M as MediaGenerationService, P as PromptBuilder, Q as QueueConfig, R as RequestPriority, S as SeoService, f as SocialService, V as VIDEO_DURATION_OPTIONS, g as VIDEO_QUALITY_VALUES, h as VideoScriptService, i as batchRequest, j as extractJSON, k as getDimensionsForAspectRatio, l as getRecommendedQuality, m as isValidJSON, p as parseAIResponse, s as safeJSONParse } from './requestQueue-CvxWxC-z.js';
15
15
  import './ProviderConfig-DIFa9nmG.js';
package/dist/index.js CHANGED
@@ -996,9 +996,22 @@ var SSE_BRIDGE_EVENTS = {
996
996
  done: "done",
997
997
  error: "error"
998
998
  };
999
+ function defaultSseDeltaExtractor(payload) {
1000
+ try {
1001
+ const parsed = JSON.parse(payload);
1002
+ const content = parsed.choices?.[0]?.delta?.content;
1003
+ if (typeof content === "string" && content.length > 0) return content;
1004
+ if (typeof parsed.delta?.text === "string" && parsed.delta.text.length > 0) return parsed.delta.text;
1005
+ if (typeof parsed.text === "string" && parsed.text.length > 0) return parsed.text;
1006
+ return null;
1007
+ } catch {
1008
+ return null;
1009
+ }
1010
+ }
999
1011
  function createSseResponse(openUpstream, options) {
1000
1012
  const encoder = new TextEncoder();
1001
1013
  const decoder = new TextDecoder();
1014
+ const extractDelta = options.extractDelta ?? defaultSseDeltaExtractor;
1002
1015
  const stream = new ReadableStream({
1003
1016
  async start(controller) {
1004
1017
  let closed = false;
@@ -1030,7 +1043,7 @@ data: ${JSON.stringify(data)}
1030
1043
  if (!isSseDataLine(trimmed)) return false;
1031
1044
  const payload = extractSseDataPayload(trimmed);
1032
1045
  if (isSseDoneMarker(payload)) return true;
1033
- const text = options.extractDelta(payload);
1046
+ const text = extractDelta(payload);
1034
1047
  if (text) {
1035
1048
  delivered = true;
1036
1049
  emit(SSE_BRIDGE_EVENTS.delta, { text });
@@ -5109,6 +5122,15 @@ var BlogService = class {
5109
5122
  };
5110
5123
  }
5111
5124
  };
5125
+
5126
+ // src/content/infrastructure/utils/requestQueue.ts
5127
+ var RequestPriority = /* @__PURE__ */ ((RequestPriority2) => {
5128
+ RequestPriority2[RequestPriority2["LOW"] = 0] = "LOW";
5129
+ RequestPriority2[RequestPriority2["NORMAL"] = 1] = "NORMAL";
5130
+ RequestPriority2[RequestPriority2["HIGH"] = 2] = "HIGH";
5131
+ RequestPriority2[RequestPriority2["URGENT"] = 3] = "URGENT";
5132
+ return RequestPriority2;
5133
+ })(RequestPriority || {});
5112
5134
  async function batchRequest(requests, options = {}) {
5113
5135
  const {
5114
5136
  concurrency = 3,
@@ -5592,7 +5614,10 @@ function safeJSONParse(text, fallback, onError) {
5592
5614
  const positionMatch = error.message.match(/position (\d+)/);
5593
5615
  const position = positionMatch ? parseInt(positionMatch[1], 10) : -1;
5594
5616
  if (position > 0) {
5595
- text.substring(Math.max(0, position - 50), position + 50);
5617
+ const context = text.substring(Math.max(0, position - 50), position + 50);
5618
+ onError?.(`JSON parse error at position ${position}: "${context}"`);
5619
+ } else {
5620
+ onError?.(`JSON parse error: ${error.message}`);
5596
5621
  }
5597
5622
  }
5598
5623
  return fallback;
@@ -5619,9 +5644,23 @@ function extractJSON(text) {
5619
5644
  function parseAIResponse(response, fallback, onError) {
5620
5645
  const json = extractJSON(response);
5621
5646
  if (!json) {
5647
+ onError?.("No JSON payload found in response");
5622
5648
  return fallback;
5623
5649
  }
5624
- return safeJSONParse(json, fallback);
5650
+ return safeJSONParse(json, fallback, onError);
5651
+ }
5652
+ function isValidJSON(text) {
5653
+ const trimmed = text.trim();
5654
+ if (trimmed.length === 0) return false;
5655
+ if (!(trimmed.startsWith("{") && trimmed.endsWith("}") || trimmed.startsWith("[") && trimmed.endsWith("]"))) {
5656
+ return false;
5657
+ }
5658
+ try {
5659
+ JSON.parse(trimmed);
5660
+ return true;
5661
+ } catch {
5662
+ return false;
5663
+ }
5625
5664
  }
5626
5665
 
5627
5666
  // src/content/application/services/GenerationExecutor.ts
@@ -5682,7 +5721,48 @@ function toAIProviderConfig(config) {
5682
5721
  ...pruna ? { pruna } : {}
5683
5722
  };
5684
5723
  }
5685
- var buildServices = (configOrGenerator) => {
5724
+ var buildServices = (configOrGenerator, model, customGenerator) => {
5725
+ if (customGenerator) {
5726
+ const executor2 = new GenerationExecutor(customGenerator);
5727
+ const emptyFactory = new ProviderFactory({
5728
+ priority: [],
5729
+ fallbackEnabled: false
5730
+ });
5731
+ return {
5732
+ providerFactory: emptyFactory,
5733
+ blogService: new BlogService(executor2),
5734
+ socialService: new SocialService(executor2),
5735
+ videoScriptService: new VideoScriptService(executor2),
5736
+ analysisService: new AnalysisService(executor2),
5737
+ seoService: new SeoService(executor2),
5738
+ abTestService: new ABTestService(executor2),
5739
+ imagePromptService: new ImagePromptService(executor2),
5740
+ contentCalendarService: new ContentCalendarService(executor2),
5741
+ mediaGenerationService: new MediaGenerationService(emptyFactory)
5742
+ };
5743
+ }
5744
+ if (typeof configOrGenerator === "string") {
5745
+ const aiConfig = {
5746
+ anthropic: {
5747
+ apiKey: configOrGenerator,
5748
+ ...model ? { models: { balanced: model } } : {}
5749
+ }
5750
+ };
5751
+ const factory2 = createAI(aiConfig);
5752
+ const executor2 = new GenerationExecutor(factory2);
5753
+ return {
5754
+ providerFactory: factory2,
5755
+ blogService: new BlogService(executor2),
5756
+ socialService: new SocialService(executor2),
5757
+ videoScriptService: new VideoScriptService(executor2),
5758
+ analysisService: new AnalysisService(executor2),
5759
+ seoService: new SeoService(executor2),
5760
+ abTestService: new ABTestService(executor2),
5761
+ imagePromptService: new ImagePromptService(executor2),
5762
+ contentCalendarService: new ContentCalendarService(executor2),
5763
+ mediaGenerationService: new MediaGenerationService(factory2)
5764
+ };
5765
+ }
5686
5766
  if (isTextGenerator(configOrGenerator)) {
5687
5767
  const executor2 = new GenerationExecutor(configOrGenerator);
5688
5768
  const emptyFactory = new ProviderFactory({
@@ -5728,8 +5808,8 @@ var AIContentService = class {
5728
5808
  imagePromptService;
5729
5809
  contentCalendarService;
5730
5810
  mediaGenerationService;
5731
- constructor(configOrGenerator) {
5732
- const bundle = buildServices(configOrGenerator);
5811
+ constructor(configOrGenerator, model, textGenerator) {
5812
+ const bundle = buildServices(configOrGenerator, model, textGenerator);
5733
5813
  this.providerFactory = bundle.providerFactory;
5734
5814
  this.blogService = bundle.blogService;
5735
5815
  this.socialService = bundle.socialService;
@@ -6030,6 +6110,6 @@ function buildVideoRequest(data) {
6030
6110
  }
6031
6111
  }
6032
6112
 
6033
- export { ABTestService, AIContentService, AIError, AIErrorType, ANTHROPIC_API_VERSION, ANTHROPIC_DEFAULT_MAX_TOKENS, ANTHROPIC_MODELS, ANTHROPIC_TIERS, API_ENDPOINTS, ASPECT_RATIO_OPTIONS, ASPECT_RATIO_VALUES, AnalysisService, AnthropicHttpTransport, AnthropicProvider, AnthropicRequestBuilder, AuthenticationError, BaseProvider as BaseAIProvider, BaseProvider, BlogService, CONTENT_WIZARD_STEPS, CacheManager, CancellationError, ChatIdGenerator, ChatService, CompositeExecutor, ContentCalendarService, DEFAULT_API_KEY_RULE, DEFAULT_BASE_URL, DEFAULT_ERROR_CLASSIFICATION_RULE, DEFAULT_GENERATION_CONFIG, DEFAULT_HTTP_STATUS_RULE, DEFAULT_MODELS, DEFAULT_PROMPT_STRATEGY, DEFAULT_RETRY_BACKOFF_MULTIPLIER, DEFAULT_RETRY_INITIAL_DELAY_MS, DEFAULT_RETRY_JITTER_FACTOR, DEFAULT_RETRY_MAX_ATTEMPTS, DEFAULT_RETRY_MAX_DELAY_MS, DebounceManager, DedupeExecutor, FalProvider, GEMINI_TIERS, CREDIT_COSTS as GENERATION_COSTS, GROQ_MODELS, GROQ_TIERS, GeminiProvider, GenerationExecutor, GenerationFailedError, GroqChatRequestBuilder, GroqConfigStore, GroqError, AIErrorType as GroqErrorType, GroqHttpClient, GroqHttpTransport, GroqProvider, IMAGE_QUALITY_OPTIONS, IMAGE_QUALITY_VALUES, IMAGE_WIZARD_STEPS, ImagePromptService, JSON_CODE_BLOCK_PATTERN, JSON_OBJECT_PATTERN, JsonResponseParser, MOTION_OPTIONS, MediaGenerationService, PromptBuilder, ProviderError, ProviderFactory, ProviderQuotaExhaustedError, ProviderUnavailableError, PrunaProvider, QueueExecutor, RequestDeduplicator, RequestQueue, RetryExecutor, RetryManager, SSE_BRIDGE_EVENTS, SSE_DONE_MARKER, SSE_PREFIX, STYLE_PRESETS, SeoService, SocialService, StreamingResponseParser, StructuredPromptBuilder, TEXT_TIERS, TIMEOUTS, TextGenerationService, ThrottleManager, TimeoutError, USER_FRIENDLY_ERROR_MESSAGES, VIDEO_DURATION_OPTIONS, VIDEO_DURATION_OPTIONS_SECONDS, VIDEO_QUALITY_OPTIONS, VIDEO_QUALITY_VALUES, VIDEO_WIZARD_STEPS, ValidationError2 as ValidationError, VideoScriptService, asObjectArray, asRecord, asStringArray, asTrimmedOptionalString, buildCacheKey, buildContentRequest, buildHttpStatusFallback, buildImageRequest, buildVideoRequest, cacheManager, calculateContentCreditCost as calculateCreditCost, chatIdGenerator, clampScore, classifyHttpStatus, configureProvider, consumeAnthropicStream, consumeGroqStream, createAI, createAssistantMessage, createFalProvider, createGeminiProvider, createGroqProvider, createMessage, createProviderFactory, createPrunaProvider, createSseResponse, createSystemMessage, createUserMessage, debounce, debounceManager, defaultEffortForModel, describeAIErrorType, extractContentFromSsePayload, extractErrorMessageFromJsonBody, extractErrorMessageFromResponse, extractJsonArray, extractJsonCandidate, extractJsonFromCodeFence, extractJsonObject, extractSseDataPayload, extractTextFromMessages, extractTokenUsage, formatErrorForLogging, formatMessagesForDisplay, generateImageThenVideo, generate as generatePruna, generateWithPruna, getDimensionsForAspectRatio, getProvider, getRecommendedQuality, isAuthErrorType, isMediaProvider, isRetryableErrorType, isSseDataLine, isSseDoneMarker, isTextProvider, isTextTier, isValidApiKey, mapAnthropicStopReason, mergeTierOverrides, messageFormatter, normalizeSseChunk, oneOfCatalog, pollForResult, promptToMessages, repairCommonJsonDefects, requestDeduplicator, requestQueue, requestStructuredJson, resetProvider, resolveModel, resolveUserFriendlyErrorMessage, resolveUserFriendlyMessage, retryManager, splitSseLines, submitPrediction, throttle, throttleManager, toGroqMessages, uploadImage, validateApiKey, withRetry };
6113
+ export { ABTestService, AIContentService, AIError, AIErrorType, ANTHROPIC_API_VERSION, ANTHROPIC_DEFAULT_MAX_TOKENS, ANTHROPIC_MODELS, ANTHROPIC_TIERS, API_ENDPOINTS, ASPECT_RATIO_OPTIONS, ASPECT_RATIO_VALUES, AnalysisService, AnthropicHttpTransport, AnthropicProvider, AnthropicRequestBuilder, AuthenticationError, BaseProvider as BaseAIProvider, BaseProvider, BlogService, CONTENT_WIZARD_STEPS, CacheManager, CancellationError, ChatIdGenerator, ChatService, CompositeExecutor, ContentCalendarService, DEFAULT_API_KEY_RULE, DEFAULT_BASE_URL, DEFAULT_ERROR_CLASSIFICATION_RULE, DEFAULT_GENERATION_CONFIG, DEFAULT_HTTP_STATUS_RULE, DEFAULT_MODELS, DEFAULT_PROMPT_STRATEGY, DEFAULT_RETRY_BACKOFF_MULTIPLIER, DEFAULT_RETRY_INITIAL_DELAY_MS, DEFAULT_RETRY_JITTER_FACTOR, DEFAULT_RETRY_MAX_ATTEMPTS, DEFAULT_RETRY_MAX_DELAY_MS, DebounceManager, DedupeExecutor, FalProvider, GEMINI_TIERS, CREDIT_COSTS as GENERATION_COSTS, GROQ_MODELS, GROQ_TIERS, GeminiProvider, GenerationExecutor, GenerationFailedError, GroqChatRequestBuilder, GroqConfigStore, GroqError, AIErrorType as GroqErrorType, GroqHttpClient, GroqHttpTransport, GroqProvider, IMAGE_QUALITY_OPTIONS, IMAGE_QUALITY_VALUES, IMAGE_WIZARD_STEPS, ImagePromptService, JSON_CODE_BLOCK_PATTERN, JSON_OBJECT_PATTERN, JsonResponseParser, MOTION_OPTIONS, MediaGenerationService, PromptBuilder, ProviderError, ProviderFactory, ProviderQuotaExhaustedError, ProviderUnavailableError, PrunaProvider, QueueExecutor, RequestDeduplicator, RequestPriority, RequestQueue, RetryExecutor, RetryManager, SSE_BRIDGE_EVENTS, SSE_DONE_MARKER, SSE_PREFIX, STYLE_PRESETS, SeoService, SocialService, StreamingResponseParser, StructuredPromptBuilder, TEXT_TIERS, TIMEOUTS, TextGenerationService, ThrottleManager, TimeoutError, USER_FRIENDLY_ERROR_MESSAGES, VIDEO_DURATION_OPTIONS, VIDEO_DURATION_OPTIONS_SECONDS, VIDEO_QUALITY_OPTIONS, VIDEO_QUALITY_VALUES, VIDEO_WIZARD_STEPS, ValidationError2 as ValidationError, VideoScriptService, asObjectArray, asRecord, asStringArray, asTrimmedOptionalString, batchRequest, buildCacheKey, buildContentRequest, buildHttpStatusFallback, buildImageRequest, buildVideoRequest, cacheManager, calculateContentCreditCost as calculateCreditCost, chatIdGenerator, clampScore, classifyHttpStatus, configureProvider, consumeAnthropicStream, consumeGroqStream, createAI, createAssistantMessage, createFalProvider, createGeminiProvider, createGroqProvider, createMessage, createProviderFactory, createPrunaProvider, createSseResponse, createSystemMessage, createUserMessage, debounce, debounceManager, defaultEffortForModel, defaultSseDeltaExtractor, describeAIErrorType, extractContentFromSsePayload, extractErrorMessageFromJsonBody, extractErrorMessageFromResponse, extractJSON, extractJsonArray, extractJsonCandidate, extractJsonFromCodeFence, extractJsonObject, extractSseDataPayload, extractTextFromMessages, extractTokenUsage, formatErrorForLogging, formatMessagesForDisplay, generateImageThenVideo, generate as generatePruna, generateWithPruna, getDimensionsForAspectRatio, getProvider, getRecommendedQuality, isAuthErrorType, isMediaProvider, isRetryableErrorType, isSseDataLine, isSseDoneMarker, isTextProvider, isTextTier, isValidApiKey, isValidJSON, mapAnthropicStopReason, mergeTierOverrides, messageFormatter, normalizeSseChunk, oneOfCatalog, parseAIResponse, pollForResult, promptToMessages, repairCommonJsonDefects, requestDeduplicator, requestQueue, requestStructuredJson, resetProvider, resolveModel, resolveUserFriendlyErrorMessage, resolveUserFriendlyMessage, retryManager, safeJSONParse, splitSseLines, submitPrediction, throttle, throttleManager, toGroqMessages, uploadImage, validateApiKey, withRetry };
6034
6114
  //# sourceMappingURL=index.js.map
6035
6115
  //# sourceMappingURL=index.js.map