@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,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview LLM provider type definitions
|
|
3
|
+
* @description Core types for the LLM provider system including request/response
|
|
4
|
+
* types, the provider interface, and cost estimation re-exports.
|
|
5
|
+
*/
|
|
6
|
+
import type { FinishReason, JsonSchema, LlmProvider, MediaContent, GeneratedMedia } from "../../types/index.js";
|
|
7
|
+
export type { MediaContent, GeneratedMedia, LlmProvider };
|
|
8
|
+
export { estimateCost, formatCost, formatCostPerMillion, } from "../../types/index.js";
|
|
9
|
+
export type { ModelPricing } from "../../types/index.js";
|
|
10
|
+
export { getModelPricing } from "../../config/providers.js";
|
|
11
|
+
/**
|
|
12
|
+
* Base request fields shared by all variants
|
|
13
|
+
*/
|
|
14
|
+
interface LLMRequestBase {
|
|
15
|
+
prompt: string;
|
|
16
|
+
systemPrompt?: string;
|
|
17
|
+
outputSchema: JsonSchema;
|
|
18
|
+
model?: string;
|
|
19
|
+
temperature?: number;
|
|
20
|
+
maxTokens?: number;
|
|
21
|
+
/** Input media (images, audio, video) */
|
|
22
|
+
media?: MediaContent[];
|
|
23
|
+
/** What media types this endpoint generates */
|
|
24
|
+
expectsMediaOutput?: {
|
|
25
|
+
image?: boolean;
|
|
26
|
+
audio?: boolean;
|
|
27
|
+
video?: boolean;
|
|
28
|
+
};
|
|
29
|
+
/** Enable web search (OpenAI Responses API) */
|
|
30
|
+
webSearch?: boolean;
|
|
31
|
+
/** For Whisper: model to use for structured extraction from transcription */
|
|
32
|
+
extractionModel?: string;
|
|
33
|
+
/** For Whisper: API key for the extraction model's provider */
|
|
34
|
+
extractionApiKey?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Request variant when outputMediaFormat is "url" - entityId is REQUIRED
|
|
38
|
+
*/
|
|
39
|
+
interface LLMRequestWithUrlOutput extends LLMRequestBase {
|
|
40
|
+
outputMediaFormat: "url";
|
|
41
|
+
entityId: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Request variant when outputMediaFormat is "base64" or undefined - entityId is optional
|
|
45
|
+
*/
|
|
46
|
+
interface LLMRequestWithBase64Output extends LLMRequestBase {
|
|
47
|
+
outputMediaFormat?: "base64";
|
|
48
|
+
entityId?: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Discriminated union ensures entityId is required when outputMediaFormat === "url"
|
|
52
|
+
*/
|
|
53
|
+
export type LLMRequest = LLMRequestWithUrlOutput | LLMRequestWithBase64Output;
|
|
54
|
+
/**
|
|
55
|
+
* Type guard for URL output requests
|
|
56
|
+
*/
|
|
57
|
+
export declare function requiresEntityId(request: LLMRequest): request is LLMRequestWithUrlOutput;
|
|
58
|
+
/**
|
|
59
|
+
* Response from an LLM provider
|
|
60
|
+
*/
|
|
61
|
+
export interface LLMResponse {
|
|
62
|
+
content: unknown;
|
|
63
|
+
rawResponse: string;
|
|
64
|
+
usage: {
|
|
65
|
+
promptTokens: number;
|
|
66
|
+
completionTokens: number;
|
|
67
|
+
totalTokens: number;
|
|
68
|
+
};
|
|
69
|
+
model: string;
|
|
70
|
+
provider: LlmProvider;
|
|
71
|
+
latencyMs: number;
|
|
72
|
+
/**
|
|
73
|
+
* Why the model stopped, normalized across providers. `"length"` means the
|
|
74
|
+
* output ceiling was hit and `content` is truncated. Undefined when the
|
|
75
|
+
* provider reported nothing usable.
|
|
76
|
+
*/
|
|
77
|
+
finishReason?: FinishReason;
|
|
78
|
+
/** Generated media (images, audio, video) from generative models */
|
|
79
|
+
generatedMedia?: GeneratedMedia[];
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Provider configuration
|
|
83
|
+
*/
|
|
84
|
+
export interface ProviderConfig {
|
|
85
|
+
apiKey?: string;
|
|
86
|
+
endpointUrl?: string;
|
|
87
|
+
model?: string;
|
|
88
|
+
/**
|
|
89
|
+
* Wall-clock ceiling for one provider call, in milliseconds. Only the custom
|
|
90
|
+
* (LM Studio) provider honours it today; its default is ten minutes. The
|
|
91
|
+
* caller supplies it -- in the API shells, from LM_STUDIO_TIMEOUT_MS.
|
|
92
|
+
*/
|
|
93
|
+
timeoutMs?: number;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* LLM Provider interface
|
|
97
|
+
*/
|
|
98
|
+
export interface ILLMProvider {
|
|
99
|
+
readonly providerName: LlmProvider;
|
|
100
|
+
/**
|
|
101
|
+
* Generate a structured response from the LLM
|
|
102
|
+
*/
|
|
103
|
+
generate(request: LLMRequest): Promise<LLMResponse>;
|
|
104
|
+
/**
|
|
105
|
+
* Build the API payload without calling the LLM
|
|
106
|
+
* Used for Type 3 and Type 4 endpoints
|
|
107
|
+
*/
|
|
108
|
+
buildApiPayload(request: LLMRequest): Record<string, unknown>;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/llm/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,cAAc,EACf,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC;AAG1D,OAAO,EACL,YAAY,EACZ,UAAU,EACV,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAM5D;;GAEG;AACH,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,UAAU,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,+CAA+C;IAC/C,kBAAkB,CAAC,EAAE;QACnB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,+CAA+C;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,UAAU,uBAAwB,SAAQ,cAAc;IACtD,iBAAiB,EAAE,KAAK,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,UAAU,0BAA2B,SAAQ,cAAc;IACzD,iBAAiB,CAAC,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,uBAAuB,GAAG,0BAA0B,CAAC;AAE9E;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,UAAU,GAClB,OAAO,IAAI,uBAAuB,CAEpC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,WAAW,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,oEAAoE;IACpE,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC;IAEnC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEpD;;;OAGG;IACH,eAAe,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/D"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview LLM provider type definitions
|
|
3
|
+
* @description Core types for the LLM provider system including request/response
|
|
4
|
+
* types, the provider interface, and cost estimation re-exports.
|
|
5
|
+
*/
|
|
6
|
+
// Re-export cost estimation functions from types package
|
|
7
|
+
export { estimateCost, formatCost, formatCostPerMillion, } from "../../types/index.js";
|
|
8
|
+
// Re-export getModelPricing from local providers config (data is now server-side)
|
|
9
|
+
export { getModelPricing } from "../../config/providers.js";
|
|
10
|
+
/**
|
|
11
|
+
* Type guard for URL output requests
|
|
12
|
+
*/
|
|
13
|
+
export function requiresEntityId(request) {
|
|
14
|
+
return request.outputMediaFormat === "url";
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/llm/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,yDAAyD;AACzD,OAAO,EACL,YAAY,EACZ,UAAU,EACV,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAG9B,kFAAkF;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAqD5D;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAmB;IAEnB,OAAO,OAAO,CAAC,iBAAiB,KAAK,KAAK,CAAC;AAC7C,CAAC"}
|