@sudobility/shapeshyft_engine 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/CLAUDE.md +27 -0
  2. package/README.md +11 -0
  3. package/dist/config/providers.d.ts +111 -0
  4. package/dist/config/providers.d.ts.map +1 -0
  5. package/dist/config/providers.js +1535 -0
  6. package/dist/config/providers.js.map +1 -0
  7. package/dist/index.d.ts +27 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +27 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/lib/api-helper.d.ts +35 -0
  12. package/dist/lib/api-helper.d.ts.map +1 -0
  13. package/dist/lib/api-helper.js +123 -0
  14. package/dist/lib/api-helper.js.map +1 -0
  15. package/dist/lib/capability-validator.d.ts +36 -0
  16. package/dist/lib/capability-validator.d.ts.map +1 -0
  17. package/dist/lib/capability-validator.js +140 -0
  18. package/dist/lib/capability-validator.js.map +1 -0
  19. package/dist/lib/media-constants.d.ts +55 -0
  20. package/dist/lib/media-constants.d.ts.map +1 -0
  21. package/dist/lib/media-constants.js +166 -0
  22. package/dist/lib/media-constants.js.map +1 -0
  23. package/dist/lib/media-conversion.d.ts +36 -0
  24. package/dist/lib/media-conversion.d.ts.map +1 -0
  25. package/dist/lib/media-conversion.js +87 -0
  26. package/dist/lib/media-conversion.js.map +1 -0
  27. package/dist/lib/media-utils.d.ts +35 -0
  28. package/dist/lib/media-utils.d.ts.map +1 -0
  29. package/dist/lib/media-utils.js +173 -0
  30. package/dist/lib/media-utils.js.map +1 -0
  31. package/dist/lib/output-limit.d.ts +38 -0
  32. package/dist/lib/output-limit.d.ts.map +1 -0
  33. package/dist/lib/output-limit.js +54 -0
  34. package/dist/lib/output-limit.js.map +1 -0
  35. package/dist/lib/prompt-builder.d.ts +94 -0
  36. package/dist/lib/prompt-builder.d.ts.map +1 -0
  37. package/dist/lib/prompt-builder.js +408 -0
  38. package/dist/lib/prompt-builder.js.map +1 -0
  39. package/dist/lib/reserved-fields.d.ts +41 -0
  40. package/dist/lib/reserved-fields.d.ts.map +1 -0
  41. package/dist/lib/reserved-fields.js +47 -0
  42. package/dist/lib/reserved-fields.js.map +1 -0
  43. package/dist/services/llm/anthropic.d.ts +16 -0
  44. package/dist/services/llm/anthropic.d.ts.map +1 -0
  45. package/dist/services/llm/anthropic.js +154 -0
  46. package/dist/services/llm/anthropic.js.map +1 -0
  47. package/dist/services/llm/custom.d.ts +51 -0
  48. package/dist/services/llm/custom.d.ts.map +1 -0
  49. package/dist/services/llm/custom.js +419 -0
  50. package/dist/services/llm/custom.js.map +1 -0
  51. package/dist/services/llm/extract-json.d.ts +17 -0
  52. package/dist/services/llm/extract-json.d.ts.map +1 -0
  53. package/dist/services/llm/extract-json.js +60 -0
  54. package/dist/services/llm/extract-json.js.map +1 -0
  55. package/dist/services/llm/finish-reason.d.ts +21 -0
  56. package/dist/services/llm/finish-reason.d.ts.map +1 -0
  57. package/dist/services/llm/finish-reason.js +55 -0
  58. package/dist/services/llm/finish-reason.js.map +1 -0
  59. package/dist/services/llm/gemini.d.ts +26 -0
  60. package/dist/services/llm/gemini.d.ts.map +1 -0
  61. package/dist/services/llm/gemini.js +178 -0
  62. package/dist/services/llm/gemini.js.map +1 -0
  63. package/dist/services/llm/groq.d.ts +28 -0
  64. package/dist/services/llm/groq.d.ts.map +1 -0
  65. package/dist/services/llm/groq.js +237 -0
  66. package/dist/services/llm/groq.js.map +1 -0
  67. package/dist/services/llm/index.d.ts +19 -0
  68. package/dist/services/llm/index.d.ts.map +1 -0
  69. package/dist/services/llm/index.js +88 -0
  70. package/dist/services/llm/index.js.map +1 -0
  71. package/dist/services/llm/openai.d.ts +101 -0
  72. package/dist/services/llm/openai.d.ts.map +1 -0
  73. package/dist/services/llm/openai.js +561 -0
  74. package/dist/services/llm/openai.js.map +1 -0
  75. package/dist/services/llm/types.d.ts +110 -0
  76. package/dist/services/llm/types.d.ts.map +1 -0
  77. package/dist/services/llm/types.js +16 -0
  78. package/dist/services/llm/types.js.map +1 -0
  79. package/dist/types/index.d.ts +812 -0
  80. package/dist/types/index.d.ts.map +1 -0
  81. package/dist/types/index.js +366 -0
  82. package/dist/types/index.js.map +1 -0
  83. package/package.json +93 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/config/providers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @fileoverview @sudobility/shapeshyft_engine
3
+ * @description Stateless LLM structured-output engine. No database, no HTTP
4
+ * framework, no environment reads -- callers pass configuration in.
5
+ *
6
+ * Domain types live at `@sudobility/shapeshyft_engine/types`, not here, so the
7
+ * two `ProviderConfig` and `PROVIDER_MODELS` declarations (LLM call config vs.
8
+ * provider catalog entry) never collide in one namespace.
9
+ */
10
+ export * from "./services/llm/index.js";
11
+ export { OpenAIProvider } from "./services/llm/openai.js";
12
+ export { AnthropicProvider } from "./services/llm/anthropic.js";
13
+ export { GeminiProvider } from "./services/llm/gemini.js";
14
+ export { GroqProvider } from "./services/llm/groq.js";
15
+ export { CustomLLMProvider } from "./services/llm/custom.js";
16
+ export * from "./services/llm/finish-reason.js";
17
+ export * from "./services/llm/extract-json.js";
18
+ export * from "./config/providers.js";
19
+ export * from "./lib/prompt-builder.js";
20
+ export * from "./lib/api-helper.js";
21
+ export * from "./lib/media-constants.js";
22
+ export * from "./lib/media-utils.js";
23
+ export * from "./lib/media-conversion.js";
24
+ export * from "./lib/capability-validator.js";
25
+ export * from "./lib/reserved-fields.js";
26
+ export * from "./lib/output-limit.js";
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @fileoverview @sudobility/shapeshyft_engine
3
+ * @description Stateless LLM structured-output engine. No database, no HTTP
4
+ * framework, no environment reads -- callers pass configuration in.
5
+ *
6
+ * Domain types live at `@sudobility/shapeshyft_engine/types`, not here, so the
7
+ * two `ProviderConfig` and `PROVIDER_MODELS` declarations (LLM call config vs.
8
+ * provider catalog entry) never collide in one namespace.
9
+ */
10
+ export * from "./services/llm/index.js";
11
+ export { OpenAIProvider } from "./services/llm/openai.js";
12
+ export { AnthropicProvider } from "./services/llm/anthropic.js";
13
+ export { GeminiProvider } from "./services/llm/gemini.js";
14
+ export { GroqProvider } from "./services/llm/groq.js";
15
+ export { CustomLLMProvider } from "./services/llm/custom.js";
16
+ export * from "./services/llm/finish-reason.js";
17
+ export * from "./services/llm/extract-json.js";
18
+ export * from "./config/providers.js";
19
+ export * from "./lib/prompt-builder.js";
20
+ export * from "./lib/api-helper.js";
21
+ export * from "./lib/media-constants.js";
22
+ export * from "./lib/media-utils.js";
23
+ export * from "./lib/media-conversion.js";
24
+ export * from "./lib/capability-validator.js";
25
+ export * from "./lib/reserved-fields.js";
26
+ export * from "./lib/output-limit.js";
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @fileoverview API helper for prompt generation and LLM request construction
3
+ * @description Provides the ApiHelper object with methods for generating
4
+ * human-readable prompts, constructing provider-specific API payloads,
5
+ * and building legacy system/user prompt pairs for LLM calls.
6
+ */
7
+ import type { PromptInput, ApiHelperRequestOutput, ApiHelperRequestInput } from "../types/index.js";
8
+ export type { PromptInput, ApiHelperRequestOutput, ApiHelperRequestInput, } from "../types/index.js";
9
+ export declare const ApiHelper: {
10
+ /**
11
+ * Generate a single, human-readable prompt string.
12
+ * Can be pasted into ChatGPT or other chat apps for testing.
13
+ *
14
+ * @param input - The prompt input parameters
15
+ * @returns A combined prompt string
16
+ */
17
+ prompt(input: PromptInput): string;
18
+ /**
19
+ * Construct provider-specific API request payload.
20
+ * Does NOT call the LLM - just constructs the request payload.
21
+ *
22
+ * @param input - The request input parameters
23
+ * @returns The API payload ready to send to the provider
24
+ */
25
+ request(input: ApiHelperRequestInput): ApiHelperRequestOutput;
26
+ /**
27
+ * Build prompts in the legacy format (system + user) for internal use.
28
+ * Used by the main endpoint when calling the LLM.
29
+ */
30
+ buildLegacyPrompts(input: PromptInput): {
31
+ system: string;
32
+ user: string;
33
+ };
34
+ };
35
+ //# sourceMappingURL=api-helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-helper.d.ts","sourceRoot":"","sources":["../../src/lib/api-helper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAEV,WAAW,EACX,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,mBAAmB,CAAC;AAgB3B,YAAY,EACV,WAAW,EACX,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AA4B3B,eAAO,MAAM,SAAS;IACpB;;;;;;OAMG;kBACW,WAAW,GAAG,MAAM;IA+DlC;;;;;;OAMG;mBACY,qBAAqB,GAAG,sBAAsB;IA4B7D;;;OAGG;8BACuB,WAAW,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;CAUzE,CAAC"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * @fileoverview API helper for prompt generation and LLM request construction
3
+ * @description Provides the ApiHelper object with methods for generating
4
+ * human-readable prompts, constructing provider-specific API payloads,
5
+ * and building legacy system/user prompt pairs for LLM calls.
6
+ */
7
+ import { buildSystemPrompt, buildUserPrompt, generateSchemaExample, schemaToPromptInstructions, isComplexSchema, formatStructuredInput, } from "./prompt-builder.js";
8
+ import { createLLMProvider, PROVIDER_ENDPOINTS, } from "../services/llm/index.js";
9
+ // =============================================================================
10
+ // Helper Functions
11
+ // =============================================================================
12
+ /**
13
+ * Get provider-specific notes for the prompt
14
+ */
15
+ function getProviderNotes(provider) {
16
+ switch (provider) {
17
+ case "openai":
18
+ return "Note: This prompt is optimized for OpenAI models (GPT-4, GPT-4o, etc.)";
19
+ case "anthropic":
20
+ return "Note: This prompt is optimized for Anthropic models (Claude)";
21
+ case "gemini":
22
+ return "Note: This prompt is optimized for Google Gemini models";
23
+ case "lm_studio":
24
+ return "Note: This prompt is designed for custom LLM servers";
25
+ default:
26
+ return "";
27
+ }
28
+ }
29
+ // =============================================================================
30
+ // ApiHelper
31
+ // =============================================================================
32
+ export const ApiHelper = {
33
+ /**
34
+ * Generate a single, human-readable prompt string.
35
+ * Can be pasted into ChatGPT or other chat apps for testing.
36
+ *
37
+ * @param input - The prompt input parameters
38
+ * @returns A combined prompt string
39
+ */
40
+ prompt(input) {
41
+ const parts = [];
42
+ // Provider note
43
+ const providerNote = getProviderNotes(input.provider);
44
+ if (providerNote) {
45
+ parts.push(`<!-- ${providerNote} -->\n`);
46
+ }
47
+ // System/Instructions section
48
+ parts.push("# Instructions\n");
49
+ parts.push("You are a helpful assistant that produces structured data output.");
50
+ // Task instructions
51
+ if (input.instructions) {
52
+ parts.push(`\n## Task\n${input.instructions}`);
53
+ }
54
+ // Additional context
55
+ if (input.context) {
56
+ parts.push(`\n## Context\n${input.context}`);
57
+ }
58
+ // Output schema instructions
59
+ if (input.outputSchema) {
60
+ const schemaInstructions = schemaToPromptInstructions(input.outputSchema);
61
+ parts.push(`\n## Required Output Fields\nYour response must include the following fields:\n${schemaInstructions}`);
62
+ // Add example if schema is complex
63
+ if (isComplexSchema(input.outputSchema)) {
64
+ const example = generateSchemaExample(input.outputSchema);
65
+ parts.push(`\n## Example Output\n\`\`\`json\n${JSON.stringify(example, null, 2)}\n\`\`\``);
66
+ }
67
+ }
68
+ // Response format instruction
69
+ parts.push("\n## Response Format\nRespond with valid JSON only. Do not include any text outside the JSON object.");
70
+ // Input section
71
+ parts.push("\n---\n");
72
+ parts.push("# Input\n");
73
+ if (typeof input.inputData === "object" && input.inputData !== null) {
74
+ parts.push("Process the following data:\n");
75
+ parts.push(formatStructuredInput(input.inputData));
76
+ }
77
+ else {
78
+ parts.push("Process the following data:\n");
79
+ parts.push(JSON.stringify(input.inputData));
80
+ }
81
+ return parts.join("\n");
82
+ },
83
+ /**
84
+ * Construct provider-specific API request payload.
85
+ * Does NOT call the LLM - just constructs the request payload.
86
+ *
87
+ * @param input - The request input parameters
88
+ * @returns The API payload ready to send to the provider
89
+ */
90
+ request(input) {
91
+ const provider = createLLMProvider(input.provider, input.providerConfig);
92
+ // Build prompts in the format expected by buildApiPayload
93
+ // We need to reconstruct system/user prompts from the combined prompt
94
+ // For now, use the combined prompt as the user prompt with a minimal system prompt
95
+ const llmRequest = {
96
+ prompt: input.prompt,
97
+ systemPrompt: "You are a helpful assistant that produces structured data output. Respond with valid JSON only.",
98
+ outputSchema: input.outputSchema,
99
+ model: input.options?.model,
100
+ temperature: input.options?.temperature,
101
+ maxTokens: input.options?.maxTokens,
102
+ };
103
+ const endpointUrl = input.provider === "lm_studio"
104
+ ? input.providerConfig.endpointUrl
105
+ : PROVIDER_ENDPOINTS[input.provider];
106
+ return {
107
+ apiPayload: provider.buildApiPayload(llmRequest),
108
+ endpointUrl,
109
+ provider: input.provider,
110
+ };
111
+ },
112
+ /**
113
+ * Build prompts in the legacy format (system + user) for internal use.
114
+ * Used by the main endpoint when calling the LLM.
115
+ */
116
+ buildLegacyPrompts(input) {
117
+ return {
118
+ system: buildSystemPrompt(input.instructions, input.outputSchema, input.context),
119
+ user: buildUserPrompt(input.inputData, true), // Always structured input
120
+ };
121
+ },
122
+ };
123
+ //# sourceMappingURL=api-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-helper.js","sourceRoot":"","sources":["../../src/lib/api-helper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Model capability validation for multimodal requests.
3
+ */
4
+ import type { MediaContent, LlmProvider } from "../types/index.js";
5
+ export interface ValidationResult {
6
+ valid: boolean;
7
+ errors: string[];
8
+ }
9
+ export interface ValidationContext {
10
+ model: string;
11
+ provider: LlmProvider;
12
+ inputMedia: MediaContent[];
13
+ expectsOutput: {
14
+ image?: boolean;
15
+ audio?: boolean;
16
+ video?: boolean;
17
+ };
18
+ }
19
+ /**
20
+ * Validate that the model supports the requested media capabilities.
21
+ */
22
+ export declare function validateMediaCapabilities(ctx: ValidationContext): ValidationResult;
23
+ /**
24
+ * Validate Whisper-specific requirements.
25
+ * Whisper models require exactly one audio input and no other media types.
26
+ */
27
+ export declare function validateWhisperRequest(model: string, inputMedia: MediaContent[]): ValidationResult;
28
+ /**
29
+ * Check if a model is a transcription model (Whisper).
30
+ */
31
+ export declare function isTranscriptionModel(model: string): boolean;
32
+ /**
33
+ * Check if a model is a generative model (Imagen, Veo).
34
+ */
35
+ export declare function isGenerativeModel(model: string): boolean;
36
+ //# sourceMappingURL=capability-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-validator.d.ts","sourceRoot":"","sources":["../../src/lib/capability-validator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,EAIZ,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAY3B,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,aAAa,EAAE;QACb,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;CACH;AA6BD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,iBAAiB,GACrB,gBAAgB,CA0FlB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,YAAY,EAAE,GACzB,gBAAgB,CA2BlB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKxD"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Model capability validation for multimodal requests.
3
+ */
4
+ import { getModelCapabilities } from "../config/providers.js";
5
+ import { isAllowedMimeType, getSizeLimit, getProviderAudioFormats, } from "./media-constants.js";
6
+ // =============================================================================
7
+ // Helper Functions
8
+ // =============================================================================
9
+ /**
10
+ * Get supported formats for a media type from MediaFormatSupport.
11
+ * Returns empty array if not specified.
12
+ */
13
+ function getMediaFormats(mediaFormats, mediaType) {
14
+ if (!mediaFormats)
15
+ return [];
16
+ switch (mediaType) {
17
+ case "image":
18
+ return mediaFormats.imageFormats ?? [];
19
+ case "audio":
20
+ return mediaFormats.audioFormats ?? [];
21
+ case "video":
22
+ return mediaFormats.videoFormats ?? [];
23
+ }
24
+ }
25
+ // =============================================================================
26
+ // Validation Functions
27
+ // =============================================================================
28
+ /**
29
+ * Validate that the model supports the requested media capabilities.
30
+ */
31
+ export function validateMediaCapabilities(ctx) {
32
+ const caps = getModelCapabilities(ctx.model);
33
+ const errors = [];
34
+ // =========================================================================
35
+ // INPUT VALIDATION
36
+ // =========================================================================
37
+ for (const media of ctx.inputMedia) {
38
+ // 1. Check model supports this media type
39
+ // Only block if capability is explicitly false (known to not support)
40
+ // If undefined (unknown), allow the request and let the provider reject if unsupported
41
+ if (media.type === "image" && caps.visionInput === false) {
42
+ errors.push(`Model ${ctx.model} does not support image input`);
43
+ }
44
+ if (media.type === "audio" && caps.audioInput === false) {
45
+ errors.push(`Model ${ctx.model} does not support audio input`);
46
+ }
47
+ if (media.type === "video" && caps.videoInput === false) {
48
+ errors.push(`Model ${ctx.model} does not support video input`);
49
+ }
50
+ // 2. Check format support (base64 vs url)
51
+ const formats = getMediaFormats(caps.mediaFormats, media.type);
52
+ if (formats.length > 0 &&
53
+ !formats.includes(media.format)) {
54
+ errors.push(`Model ${ctx.model} does not support ${media.format} format for ${media.type}`);
55
+ }
56
+ // 3. Check provider-specific URL restrictions
57
+ if (media.format === "url") {
58
+ if (ctx.provider !== "gemini") {
59
+ errors.push(`URL format only supported for Gemini provider (gs:// URLs)`);
60
+ }
61
+ if (!media.data.startsWith("gs://")) {
62
+ errors.push(`Only gs:// URLs are allowed for Gemini`);
63
+ }
64
+ }
65
+ // 4. Validate MIME type is in global allowlist
66
+ if (!isAllowedMimeType(media.type, media.mimeType)) {
67
+ errors.push(`Unsupported MIME type ${media.mimeType} for ${media.type}`);
68
+ }
69
+ // 5. Provider-specific audio format validation
70
+ if (media.type === "audio") {
71
+ const supportedFormats = getProviderAudioFormats(ctx.provider);
72
+ if (!supportedFormats.includes(media.mimeType)) {
73
+ errors.push(`${ctx.provider} does not support audio format ${media.mimeType}. ` +
74
+ `Supported: ${supportedFormats.join(", ")}`);
75
+ }
76
+ }
77
+ // 6. Size validation for base64
78
+ if (media.format === "base64") {
79
+ const estimatedSize = (media.data.length * 3) / 4;
80
+ const limit = getSizeLimit(media.type);
81
+ if (estimatedSize > limit) {
82
+ errors.push(`${media.type} exceeds ${limit / 1024 / 1024}MB limit`);
83
+ }
84
+ }
85
+ }
86
+ // =========================================================================
87
+ // OUTPUT VALIDATION
88
+ // Only block if capability is explicitly false (known to not support)
89
+ // If undefined (unknown), allow the request and let the provider reject if unsupported
90
+ // =========================================================================
91
+ if (ctx.expectsOutput.image && caps.imageOutput === false) {
92
+ errors.push(`Model ${ctx.model} does not support image generation`);
93
+ }
94
+ if (ctx.expectsOutput.audio && caps.audioOutput === false) {
95
+ errors.push(`Model ${ctx.model} does not support audio generation`);
96
+ }
97
+ if (ctx.expectsOutput.video && caps.videoOutput === false) {
98
+ errors.push(`Model ${ctx.model} does not support video generation`);
99
+ }
100
+ return { valid: errors.length === 0, errors };
101
+ }
102
+ /**
103
+ * Validate Whisper-specific requirements.
104
+ * Whisper models require exactly one audio input and no other media types.
105
+ */
106
+ export function validateWhisperRequest(model, inputMedia) {
107
+ const errors = [];
108
+ // Check if this is a Whisper model
109
+ if (!isTranscriptionModel(model)) {
110
+ return { valid: true, errors: [] };
111
+ }
112
+ // Whisper requires exactly one audio input
113
+ const audioInputs = inputMedia.filter(m => m.type === "audio");
114
+ if (audioInputs.length === 0) {
115
+ errors.push("Whisper models require exactly one audio input");
116
+ }
117
+ if (audioInputs.length > 1) {
118
+ errors.push(`Whisper models accept only one audio input, got ${audioInputs.length}`);
119
+ }
120
+ // Whisper doesn't accept other media types
121
+ const nonAudioInputs = inputMedia.filter(m => m.type !== "audio");
122
+ if (nonAudioInputs.length > 0) {
123
+ errors.push("Whisper models only accept audio input, not images or video");
124
+ }
125
+ return { valid: errors.length === 0, errors };
126
+ }
127
+ /**
128
+ * Check if a model is a transcription model (Whisper).
129
+ */
130
+ export function isTranscriptionModel(model) {
131
+ return model.toLowerCase().includes("whisper");
132
+ }
133
+ /**
134
+ * Check if a model is a generative model (Imagen, Veo).
135
+ */
136
+ export function isGenerativeModel(model) {
137
+ return (model.toLowerCase().includes("imagen") ||
138
+ model.toLowerCase().includes("veo"));
139
+ }
140
+ //# sourceMappingURL=capability-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-validator.js","sourceRoot":"","sources":["../../src/lib/capability-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Media constants for multimodal support.
3
+ * Single source of truth for MIME types, size limits, and validation.
4
+ */
5
+ import type { MediaType, LlmProvider } from "../types/index.js";
6
+ /** Allowed MIME types per media type (directly supported by LLMs) */
7
+ export declare const ALLOWED_MIME_TYPES: Record<MediaType, readonly string[]>;
8
+ /** MIME types that can be converted to supported formats */
9
+ export declare const CONVERTIBLE_MIME_TYPES: Record<MediaType, readonly string[]>;
10
+ /** All accepted MIME types (allowed + convertible) */
11
+ export declare const ACCEPTED_MIME_TYPES: Record<MediaType, readonly string[]>;
12
+ /** OpenAI only supports mp3/wav for audio input */
13
+ export declare const OPENAI_AUDIO_INPUT_MIMES: readonly ["audio/mp3", "audio/mpeg", "audio/wav"];
14
+ /** Gemini supports more audio formats */
15
+ export declare const GEMINI_AUDIO_INPUT_MIMES: readonly ["audio/mp3", "audio/mpeg", "audio/wav", "audio/ogg", "audio/flac"];
16
+ /** Map MIME types to OpenAI format strings */
17
+ export declare const OPENAI_MIME_TO_FORMAT: Record<string, "mp3" | "wav">;
18
+ /**
19
+ * Get provider-specific supported audio formats
20
+ */
21
+ export declare function getProviderAudioFormats(provider: LlmProvider): readonly string[];
22
+ /**
23
+ * Convert MIME type to OpenAI format string.
24
+ * Throws if the format is not supported by OpenAI.
25
+ */
26
+ export declare function getOpenAIAudioFormat(mimeType: string): "mp3" | "wav";
27
+ /** Size limits in bytes per media type */
28
+ export declare const SIZE_LIMITS: Record<MediaType, number>;
29
+ /**
30
+ * Data URL pattern for base64-encoded media.
31
+ * Captures: [1] full MIME type, [2] media category, [3] base64 data
32
+ */
33
+ export declare const DATA_URL_REGEX: RegExp;
34
+ /**
35
+ * Provider-native URL pattern (gs:// for Gemini).
36
+ * SECURITY: Only allow gs:// URLs to prevent SSRF.
37
+ */
38
+ export declare const PROVIDER_URL_REGEX: RegExp;
39
+ /**
40
+ * Check if a MIME type is allowed for a given media type
41
+ */
42
+ export declare function isAllowedMimeType(type: MediaType, mimeType: string): boolean;
43
+ /**
44
+ * Get the size limit for a media type
45
+ */
46
+ export declare function getSizeLimit(type: MediaType): number;
47
+ /**
48
+ * Infer media type from MIME type string
49
+ */
50
+ export declare function inferMediaTypeFromMime(mimeType: string): MediaType | undefined;
51
+ /**
52
+ * Infer MIME type from file extension in URL
53
+ */
54
+ export declare function inferMimeFromUrl(url: string): string | undefined;
55
+ //# sourceMappingURL=media-constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-constants.d.ts","sourceRoot":"","sources":["../../src/lib/media-constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMhE,qEAAqE;AACrE,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAW1D,CAAC;AAEX,4DAA4D;AAC5D,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAW9D,CAAC;AAEX,sDAAsD;AACtD,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAI3D,CAAC;AAMX,mDAAmD;AACnD,eAAO,MAAM,wBAAwB,mDAI3B,CAAC;AAEX,yCAAyC;AACzC,eAAO,MAAM,wBAAwB,8EAM3B,CAAC;AAEX,8CAA8C;AAC9C,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK,CAI/D,CAAC;AAEF;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,WAAW,GACpB,SAAS,MAAM,EAAE,CAUnB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CASpE;AAMD,0CAA0C;AAC1C,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAIxC,CAAC;AAMX;;;GAGG;AACH,eAAO,MAAM,cAAc,QAC0B,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAwB,CAAC;AAMxD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE5E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAEpD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,GACf,SAAS,GAAG,SAAS,CAKvB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAyBhE"}