@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.
- package/CLAUDE.md +27 -0
- package/README.md +11 -0
- package/dist/config/providers.d.ts +111 -0
- package/dist/config/providers.d.ts.map +1 -0
- package/dist/config/providers.js +1535 -0
- package/dist/config/providers.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api-helper.d.ts +35 -0
- package/dist/lib/api-helper.d.ts.map +1 -0
- package/dist/lib/api-helper.js +123 -0
- package/dist/lib/api-helper.js.map +1 -0
- package/dist/lib/capability-validator.d.ts +36 -0
- package/dist/lib/capability-validator.d.ts.map +1 -0
- package/dist/lib/capability-validator.js +140 -0
- package/dist/lib/capability-validator.js.map +1 -0
- package/dist/lib/media-constants.d.ts +55 -0
- package/dist/lib/media-constants.d.ts.map +1 -0
- package/dist/lib/media-constants.js +166 -0
- package/dist/lib/media-constants.js.map +1 -0
- package/dist/lib/media-conversion.d.ts +36 -0
- package/dist/lib/media-conversion.d.ts.map +1 -0
- package/dist/lib/media-conversion.js +87 -0
- package/dist/lib/media-conversion.js.map +1 -0
- package/dist/lib/media-utils.d.ts +35 -0
- package/dist/lib/media-utils.d.ts.map +1 -0
- package/dist/lib/media-utils.js +173 -0
- package/dist/lib/media-utils.js.map +1 -0
- package/dist/lib/output-limit.d.ts +38 -0
- package/dist/lib/output-limit.d.ts.map +1 -0
- package/dist/lib/output-limit.js +54 -0
- package/dist/lib/output-limit.js.map +1 -0
- package/dist/lib/prompt-builder.d.ts +94 -0
- package/dist/lib/prompt-builder.d.ts.map +1 -0
- package/dist/lib/prompt-builder.js +408 -0
- package/dist/lib/prompt-builder.js.map +1 -0
- package/dist/lib/reserved-fields.d.ts +41 -0
- package/dist/lib/reserved-fields.d.ts.map +1 -0
- package/dist/lib/reserved-fields.js +47 -0
- package/dist/lib/reserved-fields.js.map +1 -0
- package/dist/services/llm/anthropic.d.ts +16 -0
- package/dist/services/llm/anthropic.d.ts.map +1 -0
- package/dist/services/llm/anthropic.js +154 -0
- package/dist/services/llm/anthropic.js.map +1 -0
- package/dist/services/llm/custom.d.ts +51 -0
- package/dist/services/llm/custom.d.ts.map +1 -0
- package/dist/services/llm/custom.js +419 -0
- package/dist/services/llm/custom.js.map +1 -0
- package/dist/services/llm/extract-json.d.ts +17 -0
- package/dist/services/llm/extract-json.d.ts.map +1 -0
- package/dist/services/llm/extract-json.js +60 -0
- package/dist/services/llm/extract-json.js.map +1 -0
- package/dist/services/llm/finish-reason.d.ts +21 -0
- package/dist/services/llm/finish-reason.d.ts.map +1 -0
- package/dist/services/llm/finish-reason.js +55 -0
- package/dist/services/llm/finish-reason.js.map +1 -0
- package/dist/services/llm/gemini.d.ts +26 -0
- package/dist/services/llm/gemini.d.ts.map +1 -0
- package/dist/services/llm/gemini.js +178 -0
- package/dist/services/llm/gemini.js.map +1 -0
- package/dist/services/llm/groq.d.ts +28 -0
- package/dist/services/llm/groq.d.ts.map +1 -0
- package/dist/services/llm/groq.js +237 -0
- package/dist/services/llm/groq.js.map +1 -0
- package/dist/services/llm/index.d.ts +19 -0
- package/dist/services/llm/index.d.ts.map +1 -0
- package/dist/services/llm/index.js +88 -0
- package/dist/services/llm/index.js.map +1 -0
- package/dist/services/llm/openai.d.ts +101 -0
- package/dist/services/llm/openai.d.ts.map +1 -0
- package/dist/services/llm/openai.js +561 -0
- package/dist/services/llm/openai.js.map +1 -0
- package/dist/services/llm/types.d.ts +110 -0
- package/dist/services/llm/types.d.ts.map +1 -0
- package/dist/services/llm/types.js +16 -0
- package/dist/services/llm/types.js.map +1 -0
- package/dist/types/index.d.ts +812 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +366 -0
- package/dist/types/index.js.map +1 -0
- 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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"}
|
package/dist/index.d.ts
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.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"}
|