@aeye/ai 0.3.8 → 0.4.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/README.md +105 -1
- package/aeye-ai.md +219 -0
- package/dist/ai.d.ts +11 -5
- package/dist/ai.d.ts.map +1 -1
- package/dist/ai.js +57 -78
- package/dist/ai.js.map +1 -1
- package/dist/apis/base.d.ts +14 -0
- package/dist/apis/base.d.ts.map +1 -1
- package/dist/apis/base.js +34 -3
- package/dist/apis/base.js.map +1 -1
- package/dist/apis/batch.d.ts +74 -0
- package/dist/apis/batch.d.ts.map +1 -0
- package/dist/apis/batch.js +127 -0
- package/dist/apis/batch.js.map +1 -0
- package/dist/apis/chat.d.ts +15 -0
- package/dist/apis/chat.d.ts.map +1 -1
- package/dist/apis/chat.js +112 -33
- package/dist/apis/chat.js.map +1 -1
- package/dist/apis/decide.d.ts +33 -0
- package/dist/apis/decide.d.ts.map +1 -0
- package/dist/apis/decide.js +52 -0
- package/dist/apis/decide.js.map +1 -0
- package/dist/apis/embed.d.ts +4 -11
- package/dist/apis/embed.d.ts.map +1 -1
- package/dist/apis/embed.js +5 -32
- package/dist/apis/embed.js.map +1 -1
- package/dist/apis/get.d.ts +18 -0
- package/dist/apis/get.d.ts.map +1 -0
- package/dist/apis/get.js +30 -0
- package/dist/apis/get.js.map +1 -0
- package/dist/apis/image.d.ts +2 -2
- package/dist/apis/image.d.ts.map +1 -1
- package/dist/apis/image.js +45 -40
- package/dist/apis/image.js.map +1 -1
- package/dist/apis/rerank.d.ts +24 -0
- package/dist/apis/rerank.d.ts.map +1 -0
- package/dist/apis/rerank.js +40 -0
- package/dist/apis/rerank.js.map +1 -0
- package/dist/apis/schema-fallback.d.ts +31 -0
- package/dist/apis/schema-fallback.d.ts.map +1 -0
- package/dist/apis/schema-fallback.js +43 -0
- package/dist/apis/schema-fallback.js.map +1 -0
- package/dist/common.d.ts +20 -2
- package/dist/common.d.ts.map +1 -1
- package/dist/common.js +36 -0
- package/dist/common.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/registry.d.ts +67 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +147 -2
- package/dist/registry.js.map +1 -1
- package/dist/types.d.ts +198 -40
- package/dist/types.d.ts.map +1 -1
- package/package.json +67 -66
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../src/apis/get.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,8BAAsB,MAAM,CAC1B,CAAC,SAAS,WAAW,EACrB,QAAQ,SAAS,WAAW,EAC5B,SAAS,SAAS,YAAY,CAC9B,SAAQ,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC;IAC9C,SAAS,CAAC,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,QAAQ,GAAG,cAAc,EAAE;cAI/E,oBAAoB,IAAI,aAAa,CAAC,KAAK,CAAC;IAI7D,SAAS,CAAC,gBAAgB,IAAI,KAAK;IAInC,SAAS,CAAC,gBAAgB,IAAI,KAAK;IAInC,SAAS,CAAC,sBAAsB,IAAI,SAAS;IAI7C,SAAS,CAAC,mBAAmB,IAAI,OAAO;IAIxC,OAAO,CAAC,WAAW;CAGpB"}
|
package/dist/apis/get.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get API
|
|
3
|
+
*
|
|
4
|
+
* Base for APIs that answer with one response and never stream.
|
|
5
|
+
*/
|
|
6
|
+
import { BaseAPI } from './base';
|
|
7
|
+
export class GetAPI extends BaseAPI {
|
|
8
|
+
getRequiredParameters(provided, request) {
|
|
9
|
+
return provided;
|
|
10
|
+
}
|
|
11
|
+
async *executeStreamRequest() {
|
|
12
|
+
this.noStreaming();
|
|
13
|
+
}
|
|
14
|
+
responseToChunks() {
|
|
15
|
+
return this.noStreaming();
|
|
16
|
+
}
|
|
17
|
+
chunksToResponse() {
|
|
18
|
+
return this.noStreaming();
|
|
19
|
+
}
|
|
20
|
+
getHandlerStreamMethod() {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
hasProviderStreamer() {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
noStreaming() {
|
|
27
|
+
throw new Error(`${this.getErrorMessage('request')}: streaming is not supported`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=get.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/apis/get.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,MAAM,OAAgB,MAIpB,SAAQ,OAAsC;IACpC,qBAAqB,CAAC,QAA0B,EAAE,OAAiB;QAC3E,OAAO,QAAQ,CAAC;IAClB,CAAC;IAES,KAAK,CAAC,CAAC,oBAAoB;QACnC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,gBAAgB;QACxB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAES,gBAAgB;QACxB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAES,sBAAsB;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IAES,mBAAmB;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,WAAW;QACjB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;IACpF,CAAC;CACF"}
|
package/dist/apis/image.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ declare class ImageGenerateAPI<T extends AIBaseTypes> extends BaseAPI<T, ImageGe
|
|
|
14
14
|
protected getNoModelFoundError(): string;
|
|
15
15
|
protected getErrorType(operation: 'request' | 'stream'): string;
|
|
16
16
|
protected getErrorMessage(operation: 'request' | 'stream'): string;
|
|
17
|
-
protected estimateRequestUsage(request: ImageGenerationRequest): Usage;
|
|
17
|
+
protected estimateRequestUsage(request: ImageGenerationRequest, selected: SelectedModelFor<T>): Usage;
|
|
18
18
|
protected executeRequest(request: ImageGenerationRequest, selected: SelectedModelFor<T>, ctx: AIContext<T>): Promise<ImageGenerationResponse>;
|
|
19
19
|
protected executeStreamRequest(request: ImageGenerationRequest, selected: SelectedModelFor<T>, ctx: AIContext<T>): AsyncIterable<ImageGenerationChunk>;
|
|
20
20
|
protected responseToChunks(response: ImageGenerationResponse): ImageGenerationChunk[];
|
|
@@ -32,7 +32,7 @@ declare class ImageEditAPI<T extends AIBaseTypes> extends BaseAPI<T, ImageEditRe
|
|
|
32
32
|
protected getNoModelFoundError(): string;
|
|
33
33
|
protected getErrorType(operation: 'request' | 'stream'): string;
|
|
34
34
|
protected getErrorMessage(operation: 'request' | 'stream'): string;
|
|
35
|
-
protected estimateRequestUsage(request: ImageEditRequest): Usage;
|
|
35
|
+
protected estimateRequestUsage(request: ImageEditRequest, selected: SelectedModelFor<T>): Usage;
|
|
36
36
|
protected executeRequest(request: ImageEditRequest, selected: SelectedModelFor<T>, ctx: AIContext<T>): Promise<ImageGenerationResponse>;
|
|
37
37
|
protected executeStreamRequest(request: ImageEditRequest, selected: SelectedModelFor<T>, ctx: AIContext<T>): AsyncIterable<ImageGenerationChunk>;
|
|
38
38
|
protected responseToChunks(response: ImageGenerationResponse): ImageGenerationChunk[];
|
package/dist/apis/image.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/apis/image.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAgD,UAAU,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,KAAK,EACL,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/apis/image.ts"],"names":[],"mappings":"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"}
|
package/dist/apis/image.js
CHANGED
|
@@ -5,6 +5,47 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { getChunksFromResponse, getResponseFromChunks } from '@aeye/core';
|
|
7
7
|
import { BaseAPI } from './base';
|
|
8
|
+
/**
|
|
9
|
+
* Output tokens for one 1024×1024 image by quality, from OpenAI's published
|
|
10
|
+
* GPT Image table; newer models vary, so estimates scale these by area.
|
|
11
|
+
*/
|
|
12
|
+
const IMAGE_TOKENS = {
|
|
13
|
+
auto: 1056,
|
|
14
|
+
low: 272,
|
|
15
|
+
medium: 1056,
|
|
16
|
+
high: 4160,
|
|
17
|
+
xhigh: 4160,
|
|
18
|
+
max: 4160,
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Estimates the usage of producing images: prompt tokens, a rough count per
|
|
22
|
+
* input image, and one priced output per image — as output tokens for models
|
|
23
|
+
* priced per token, and by quality and size otherwise. Without a requested
|
|
24
|
+
* quality the model's first priced quality stands in, so the estimate hits a
|
|
25
|
+
* real price entry.
|
|
26
|
+
*
|
|
27
|
+
* @param request - The generation or edit request.
|
|
28
|
+
* @param model - The model producing the images.
|
|
29
|
+
* @param inputImages - How many images the request sends.
|
|
30
|
+
*/
|
|
31
|
+
function estimateImageUsage(request, model, inputImages) {
|
|
32
|
+
const [width, height] = (request.size || '1024x1024').split('x').map(Number);
|
|
33
|
+
const count = request.n || 1;
|
|
34
|
+
return {
|
|
35
|
+
text: { input: Math.ceil(request.prompt.length / 4) },
|
|
36
|
+
image: {
|
|
37
|
+
input: inputImages ? inputImages * 1000 : undefined,
|
|
38
|
+
tokens: model.pricing.image?.tokens
|
|
39
|
+
? Math.round(IMAGE_TOKENS[request.quality ?? 'auto'] * (width * height) / (1024 * 1024) * count)
|
|
40
|
+
: undefined,
|
|
41
|
+
output: [{
|
|
42
|
+
quality: request.quality ?? model.pricing.image?.output?.[0]?.quality ?? 'medium',
|
|
43
|
+
size: { width, height },
|
|
44
|
+
count,
|
|
45
|
+
}],
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
}
|
|
8
49
|
// ============================================================================
|
|
9
50
|
// Image Generate API
|
|
10
51
|
// ============================================================================
|
|
@@ -47,25 +88,8 @@ class ImageGenerateAPI extends BaseAPI {
|
|
|
47
88
|
? 'Image generation failed'
|
|
48
89
|
: 'Image generation streaming failed';
|
|
49
90
|
}
|
|
50
|
-
estimateRequestUsage(request) {
|
|
51
|
-
|
|
52
|
-
const [width, height] = (request.size || '1024x1024').split('x').map(Number);
|
|
53
|
-
const quality = request.quality || 'standard';
|
|
54
|
-
const count = request.n || 1;
|
|
55
|
-
// Prompt tokens (text input)
|
|
56
|
-
const promptTokens = Math.ceil(request.prompt.length / 4);
|
|
57
|
-
return {
|
|
58
|
-
text: {
|
|
59
|
-
input: promptTokens
|
|
60
|
-
},
|
|
61
|
-
image: {
|
|
62
|
-
output: [{
|
|
63
|
-
quality,
|
|
64
|
-
size: { width, height },
|
|
65
|
-
count
|
|
66
|
-
}]
|
|
67
|
-
}
|
|
68
|
-
};
|
|
91
|
+
estimateRequestUsage(request, selected) {
|
|
92
|
+
return estimateImageUsage(request, selected.model, 0);
|
|
69
93
|
}
|
|
70
94
|
async executeRequest(request, selected, ctx) {
|
|
71
95
|
return await selected.provider.generateImage(request, ctx, selected.providerConfig);
|
|
@@ -144,27 +168,8 @@ class ImageEditAPI extends BaseAPI {
|
|
|
144
168
|
? 'Image editing failed'
|
|
145
169
|
: 'Image editing streaming failed';
|
|
146
170
|
}
|
|
147
|
-
estimateRequestUsage(request) {
|
|
148
|
-
|
|
149
|
-
const [width, height] = (request.size || '1024x1024').split('x').map(Number);
|
|
150
|
-
const count = request.n || 1;
|
|
151
|
-
// Prompt tokens (text input)
|
|
152
|
-
const promptTokens = Math.ceil(request.prompt.length / 4);
|
|
153
|
-
// Estimate input image tokens (assuming standard quality)
|
|
154
|
-
const imageInputTokens = 1000; // Rough estimate for input image processing
|
|
155
|
-
return {
|
|
156
|
-
text: {
|
|
157
|
-
input: promptTokens
|
|
158
|
-
},
|
|
159
|
-
image: {
|
|
160
|
-
input: imageInputTokens,
|
|
161
|
-
output: [{
|
|
162
|
-
quality: 'standard',
|
|
163
|
-
size: { width, height },
|
|
164
|
-
count
|
|
165
|
-
}]
|
|
166
|
-
}
|
|
167
|
-
};
|
|
171
|
+
estimateRequestUsage(request, selected) {
|
|
172
|
+
return estimateImageUsage(request, selected.model, 1 + (request.references?.length ?? 0));
|
|
168
173
|
}
|
|
169
174
|
async executeRequest(request, selected, ctx) {
|
|
170
175
|
return await selected.provider.editImage(request, ctx, selected.providerConfig);
|
package/dist/apis/image.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.js","sourceRoot":"","sources":["../../src/apis/image.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAc,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"image.js","sourceRoot":"","sources":["../../src/apis/image.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rerank API
|
|
3
|
+
*
|
|
4
|
+
* Orders documents by relevance to a query, typically the candidates a
|
|
5
|
+
* search or embedding lookup found.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const { results } = await ai.rerank.get({ query: 'capital of France', documents });
|
|
10
|
+
* const best = documents[results[0].index];
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
import type { AIBaseTypes, AIContext, ModelCapability, ModelHandlerFor, RerankRequest, RerankResponse, SelectedModelFor } from '../types';
|
|
14
|
+
import { GetAPI } from './get';
|
|
15
|
+
export declare class RerankAPI<T extends AIBaseTypes> extends GetAPI<T, RerankRequest, RerankResponse> {
|
|
16
|
+
protected getRequiredCapabilities(provided: ModelCapability[]): ModelCapability[];
|
|
17
|
+
protected getNoModelFoundError(): string;
|
|
18
|
+
protected getErrorType(): string;
|
|
19
|
+
protected getErrorMessage(): string;
|
|
20
|
+
protected executeRequest(request: RerankRequest, selected: SelectedModelFor<T>, ctx: AIContext<T>): Promise<RerankResponse>;
|
|
21
|
+
protected getHandlerGetMethod(handler?: ModelHandlerFor<T>): ((request: RerankRequest, ctx: AIContext<T>) => Promise<RerankResponse>) | undefined;
|
|
22
|
+
protected hasProviderExecutor(selected: SelectedModelFor<T>): boolean;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=rerank.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rerank.d.ts","sourceRoot":"","sources":["../../src/apis/rerank.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,eAAe,EACf,eAAe,EACf,aAAa,EACb,cAAc,EACd,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,qBAAa,SAAS,CAAC,CAAC,SAAS,WAAW,CAAE,SAAQ,MAAM,CAAC,CAAC,EAAE,aAAa,EAAE,cAAc,CAAC;IAC5F,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE;IAIjF,SAAS,CAAC,oBAAoB,IAAI,MAAM;IAIxC,SAAS,CAAC,YAAY,IAAI,MAAM;IAIhC,SAAS,CAAC,eAAe,IAAI,MAAM;IAInC,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAO3H,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,SAAS;IAIjJ,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO;CAGtE"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rerank API
|
|
3
|
+
*
|
|
4
|
+
* Orders documents by relevance to a query, typically the candidates a
|
|
5
|
+
* search or embedding lookup found.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const { results } = await ai.rerank.get({ query: 'capital of France', documents });
|
|
10
|
+
* const best = documents[results[0].index];
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
import { GetAPI } from './get';
|
|
14
|
+
export class RerankAPI extends GetAPI {
|
|
15
|
+
getRequiredCapabilities(provided) {
|
|
16
|
+
return ['rerank', ...provided];
|
|
17
|
+
}
|
|
18
|
+
getNoModelFoundError() {
|
|
19
|
+
return 'No compatible model found for reranking';
|
|
20
|
+
}
|
|
21
|
+
getErrorType() {
|
|
22
|
+
return 'rerank-failed';
|
|
23
|
+
}
|
|
24
|
+
getErrorMessage() {
|
|
25
|
+
return 'Reranking failed';
|
|
26
|
+
}
|
|
27
|
+
executeRequest(request, selected, ctx) {
|
|
28
|
+
if (!selected.provider.rerank) {
|
|
29
|
+
throw new Error(`Provider ${selected.provider.name} does not support reranking`);
|
|
30
|
+
}
|
|
31
|
+
return selected.provider.rerank(request, ctx, selected.providerConfig);
|
|
32
|
+
}
|
|
33
|
+
getHandlerGetMethod(handler) {
|
|
34
|
+
return handler?.rerank?.get;
|
|
35
|
+
}
|
|
36
|
+
hasProviderExecutor(selected) {
|
|
37
|
+
return !!selected.provider.rerank;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=rerank.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rerank.js","sourceRoot":"","sources":["../../src/apis/rerank.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAWH,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,MAAM,OAAO,SAAiC,SAAQ,MAAwC;IAClF,uBAAuB,CAAC,QAA2B;QAC3D,OAAO,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC;IACjC,CAAC;IAES,oBAAoB;QAC5B,OAAO,yCAAyC,CAAC;IACnD,CAAC;IAES,YAAY;QACpB,OAAO,eAAe,CAAC;IACzB,CAAC;IAES,eAAe;QACvB,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAES,cAAc,CAAC,OAAsB,EAAE,QAA6B,EAAE,GAAiB;QAC/F,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,CAAC,QAAQ,CAAC,IAAI,6BAA6B,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;IACzE,CAAC;IAES,mBAAmB,CAAC,OAA4B;QACxD,OAAO,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC;IAC9B,CAAC;IAES,mBAAmB,CAAC,QAA6B;QACzD,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;IACpC,CAAC;CACF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Automatic schema-delivery fallback.
|
|
3
|
+
*
|
|
4
|
+
* Some models' structured-output endpoints can't express every JSON Schema:
|
|
5
|
+
* Gemini, for instance, rejects `anyOf`/`$defs` schemas with an HTTP 400. When
|
|
6
|
+
* a Prompt/Tool schema can't be expressed as structured output for the selected
|
|
7
|
+
* model's descriptor, this helper transparently DROPS the wire schema
|
|
8
|
+
* (`response_format`) and delivers the schema to the model as PROMPT TEXT
|
|
9
|
+
* instead — steering it to emit a raw JSON object that the Prompt's existing
|
|
10
|
+
* extract-and-`parse`/Zod path then validates. A schema delivered as `json` or
|
|
11
|
+
* `prompt` goes the same way (see `deliverSchema`).
|
|
12
|
+
*
|
|
13
|
+
* Provider-agnostic: called from the ai request-build (see `ChatAPI`) after the
|
|
14
|
+
* model is resolved, BEFORE any provider converts the request to its wire form.
|
|
15
|
+
* The descriptor is resolved from the model's dialect
|
|
16
|
+
* (`resolveStrictFormat` → `getDescriptor`), independent of whether the chosen
|
|
17
|
+
* provider bothers to emit that dialect strictly — because feasibility is a
|
|
18
|
+
* property of the target model, not our request encoder.
|
|
19
|
+
*/
|
|
20
|
+
import { type Request } from '@aeye/core';
|
|
21
|
+
import type { ModelInfo } from '../types';
|
|
22
|
+
/**
|
|
23
|
+
* The request to send under its schema delivery. A structured schema goes
|
|
24
|
+
* into the prompt as text when its delivery is `'prompt'`, or `'auto'` and
|
|
25
|
+
* the selected model's dialect can't express it; as text plus JSON mode when
|
|
26
|
+
* its delivery is `'json'`. `'structured'` and expressible `'auto'` schemas
|
|
27
|
+
* stay on the wire. The request itself isn't changed, so a Prompt can send it
|
|
28
|
+
* again under another delivery.
|
|
29
|
+
*/
|
|
30
|
+
export declare function applySchemaDeliveryFallback(request: Request, model: ModelInfo | undefined): Request;
|
|
31
|
+
//# sourceMappingURL=schema-fallback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-fallback.d.ts","sourceRoot":"","sources":["../../src/apis/schema-fallback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAKL,KAAK,OAAO,EACb,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAcnG"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Automatic schema-delivery fallback.
|
|
3
|
+
*
|
|
4
|
+
* Some models' structured-output endpoints can't express every JSON Schema:
|
|
5
|
+
* Gemini, for instance, rejects `anyOf`/`$defs` schemas with an HTTP 400. When
|
|
6
|
+
* a Prompt/Tool schema can't be expressed as structured output for the selected
|
|
7
|
+
* model's descriptor, this helper transparently DROPS the wire schema
|
|
8
|
+
* (`response_format`) and delivers the schema to the model as PROMPT TEXT
|
|
9
|
+
* instead — steering it to emit a raw JSON object that the Prompt's existing
|
|
10
|
+
* extract-and-`parse`/Zod path then validates. A schema delivered as `json` or
|
|
11
|
+
* `prompt` goes the same way (see `deliverSchema`).
|
|
12
|
+
*
|
|
13
|
+
* Provider-agnostic: called from the ai request-build (see `ChatAPI`) after the
|
|
14
|
+
* model is resolved, BEFORE any provider converts the request to its wire form.
|
|
15
|
+
* The descriptor is resolved from the model's dialect
|
|
16
|
+
* (`resolveStrictFormat` → `getDescriptor`), independent of whether the chosen
|
|
17
|
+
* provider bothers to emit that dialect strictly — because feasibility is a
|
|
18
|
+
* property of the target model, not our request encoder.
|
|
19
|
+
*/
|
|
20
|
+
import { canExpress, deliverSchema, getDescriptor, LENIENT, } from '@aeye/core';
|
|
21
|
+
import { resolveStrictFormat } from '../registry';
|
|
22
|
+
/**
|
|
23
|
+
* The request to send under its schema delivery. A structured schema goes
|
|
24
|
+
* into the prompt as text when its delivery is `'prompt'`, or `'auto'` and
|
|
25
|
+
* the selected model's dialect can't express it; as text plus JSON mode when
|
|
26
|
+
* its delivery is `'json'`. `'structured'` and expressible `'auto'` schemas
|
|
27
|
+
* stay on the wire. The request itself isn't changed, so a Prompt can send it
|
|
28
|
+
* again under another delivery.
|
|
29
|
+
*/
|
|
30
|
+
export function applySchemaDeliveryFallback(request, model) {
|
|
31
|
+
const format = request.responseFormat;
|
|
32
|
+
if (typeof format !== 'object') {
|
|
33
|
+
return request;
|
|
34
|
+
}
|
|
35
|
+
// Resolve the descriptor for the TARGET MODEL's dialect. `resolveStrictFormat`
|
|
36
|
+
// returning undefined means an unknown dialect — assume it can express the
|
|
37
|
+
// schema (matches today's lenient behavior) unless delivery is forced.
|
|
38
|
+
const family = model ? resolveStrictFormat(model) : undefined;
|
|
39
|
+
const descriptor = family ? getDescriptor(family, true) : LENIENT;
|
|
40
|
+
const inexpressible = (format.schemaDelivery ?? 'auto') === 'auto' && !canExpress(format.type, descriptor);
|
|
41
|
+
return deliverSchema(request, descriptor, inexpressible ? 'prompt' : undefined);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=schema-fallback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-fallback.js","sourceRoot":"","sources":["../../src/apis/schema-fallback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACL,UAAU,EACV,aAAa,EACb,aAAa,EACb,OAAO,GAER,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGlD;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CAAC,OAAgB,EAAE,KAA4B;IACxF,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IACtC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,+EAA+E;IAC/E,2EAA2E;IAC3E,uEAAuE;IACvE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAClE,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,KAAK,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAE3G,OAAO,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAClF,CAAC"}
|
package/dist/common.d.ts
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
import { ModelInput } from "@aeye/core";
|
|
2
|
-
import { ModelInfo } from "./types";
|
|
1
|
+
import { MessageContentType, ModelInput, OutputModality, ReasoningEffort } from "@aeye/core";
|
|
2
|
+
import { ModelCapability, ModelInfo } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* The capability a model needs to read each kind of message content.
|
|
5
|
+
*/
|
|
6
|
+
export declare const INPUT_CAPABILITIES: Partial<Record<MessageContentType, ModelCapability>>;
|
|
7
|
+
/**
|
|
8
|
+
* The capability a chat model needs to produce each output modality beyond text.
|
|
9
|
+
*/
|
|
10
|
+
export declare const OUTPUT_CAPABILITIES: Partial<Record<OutputModality, ModelCapability>>;
|
|
3
11
|
/**
|
|
4
12
|
* Type guard to check if a ModelInput is a ModelInfo object.
|
|
5
13
|
*
|
|
@@ -7,4 +15,14 @@ import { ModelInfo } from "./types";
|
|
|
7
15
|
* @returns True if the input is a ModelInfo object, false otherwise.
|
|
8
16
|
*/
|
|
9
17
|
export declare function isModelInfo<TProvider extends string = string>(input: ModelInput): input is ModelInfo<TProvider>;
|
|
18
|
+
/**
|
|
19
|
+
* The accepted reasoning effort closest to the one asked for, preferring the
|
|
20
|
+
* lower on a tie, and `none` only when asked for or alone accepted. Returns
|
|
21
|
+
* the effort unchanged when acceptance is unknown.
|
|
22
|
+
*
|
|
23
|
+
* @param effort - The effort asked for.
|
|
24
|
+
* @param accepted - The efforts the model accepts, lowest to highest.
|
|
25
|
+
* @returns The effort to send.
|
|
26
|
+
*/
|
|
27
|
+
export declare function clampReasoningEffort(effort: ReasoningEffort, accepted?: readonly ReasoningEffort[]): ReasoningEffort;
|
|
10
28
|
//# sourceMappingURL=common.d.ts.map
|
package/dist/common.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,cAAc,EAAqB,eAAe,EAAE,MAAM,YAAY,CAAC;AAChH,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAKnF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,CAGhF,CAAC;AAEF;;;;;EAKE;AACF,wBAAgB,WAAW,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,KAAK,IAAI,SAAS,CAAC,SAAS,CAAC,CAS/G;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE,SAAS,eAAe,EAAE,GAAG,eAAe,CASpH"}
|
package/dist/common.js
CHANGED
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
import { REASONING_EFFORTS } from "@aeye/core";
|
|
2
|
+
/**
|
|
3
|
+
* The capability a model needs to read each kind of message content.
|
|
4
|
+
*/
|
|
5
|
+
export const INPUT_CAPABILITIES = {
|
|
6
|
+
image: 'vision',
|
|
7
|
+
file: 'files',
|
|
8
|
+
audio: 'hearing',
|
|
9
|
+
video: 'videoInput',
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* The capability a chat model needs to produce each output modality beyond text.
|
|
13
|
+
*/
|
|
14
|
+
export const OUTPUT_CAPABILITIES = {
|
|
15
|
+
image: 'image',
|
|
16
|
+
audio: 'audio',
|
|
17
|
+
};
|
|
1
18
|
/**
|
|
2
19
|
* Type guard to check if a ModelInput is a ModelInfo object.
|
|
3
20
|
*
|
|
@@ -14,4 +31,23 @@ export function isModelInfo(input) {
|
|
|
14
31
|
&& ('pricing' in input)
|
|
15
32
|
&& ('contextWindow' in input);
|
|
16
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* The accepted reasoning effort closest to the one asked for, preferring the
|
|
36
|
+
* lower on a tie, and `none` only when asked for or alone accepted. Returns
|
|
37
|
+
* the effort unchanged when acceptance is unknown.
|
|
38
|
+
*
|
|
39
|
+
* @param effort - The effort asked for.
|
|
40
|
+
* @param accepted - The efforts the model accepts, lowest to highest.
|
|
41
|
+
* @returns The effort to send.
|
|
42
|
+
*/
|
|
43
|
+
export function clampReasoningEffort(effort, accepted) {
|
|
44
|
+
if (!accepted?.length || accepted.includes(effort)) {
|
|
45
|
+
return effort;
|
|
46
|
+
}
|
|
47
|
+
// Reasoning asked for stays on
|
|
48
|
+
const reasoning = accepted.filter(e => e !== 'none');
|
|
49
|
+
const candidates = effort === 'none' || !reasoning.length ? accepted : reasoning;
|
|
50
|
+
const distance = (e) => Math.abs(REASONING_EFFORTS.indexOf(e) - REASONING_EFFORTS.indexOf(effort));
|
|
51
|
+
return candidates.reduce((best, e) => distance(e) < distance(best) ? e : best);
|
|
52
|
+
}
|
|
17
53
|
//# sourceMappingURL=common.js.map
|
package/dist/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkD,iBAAiB,EAAmB,MAAM,YAAY,CAAC;AAGhH;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAyD;IACtF,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,YAAY;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAqD;IACnF,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;CACf,CAAC;AAEF;;;;;EAKE;AACF,MAAM,UAAU,WAAW,CAAoC,KAAiB;IAC9E,OAAO,OAAO,KAAK,KAAK,QAAQ;WAC3B,CAAC,IAAI,IAAI,KAAK,CAAC;WACf,CAAC,UAAU,IAAI,KAAK,CAAC;WACrB,CAAC,MAAM,IAAI,KAAK,CAAC;WACjB,CAAC,cAAc,IAAI,KAAK,CAAC;WACzB,CAAC,MAAM,IAAI,KAAK,CAAC;WACjB,CAAC,SAAS,IAAI,KAAK,CAAC;WACpB,CAAC,eAAe,IAAI,KAAK,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAuB,EAAE,QAAqC;IACjG,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,+BAA+B;IAC/B,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,MAAM,KAAK,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,MAAM,QAAQ,GAAG,CAAC,CAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACpH,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACjF,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,13 +4,19 @@
|
|
|
4
4
|
* Main export file for the class-based AI library.
|
|
5
5
|
*/
|
|
6
6
|
export * from './types';
|
|
7
|
+
export * from './common';
|
|
7
8
|
export * from './modelDetection';
|
|
8
9
|
export * from './ai';
|
|
9
10
|
export * from './registry';
|
|
10
11
|
export * from './apis/models';
|
|
11
12
|
export * from './apis/base';
|
|
13
|
+
export * from './apis/batch';
|
|
12
14
|
export * from './apis/chat';
|
|
15
|
+
export * from './apis/schema-fallback';
|
|
13
16
|
export * from './apis/embed';
|
|
17
|
+
export * from './apis/get';
|
|
18
|
+
export * from './apis/rerank';
|
|
19
|
+
export * from './apis/decide';
|
|
14
20
|
export * from './apis/image';
|
|
15
21
|
export * from './apis/speech';
|
|
16
22
|
export * from './apis/transcribe';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,MAAM,CAAC;AACrB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,MAAM,CAAC;AACrB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,13 +4,19 @@
|
|
|
4
4
|
* Main export file for the class-based AI library.
|
|
5
5
|
*/
|
|
6
6
|
export * from './types';
|
|
7
|
+
export * from './common';
|
|
7
8
|
export * from './modelDetection';
|
|
8
9
|
export * from './ai';
|
|
9
10
|
export * from './registry';
|
|
10
11
|
export * from './apis/models';
|
|
11
12
|
export * from './apis/base';
|
|
13
|
+
export * from './apis/batch';
|
|
12
14
|
export * from './apis/chat';
|
|
15
|
+
export * from './apis/schema-fallback';
|
|
13
16
|
export * from './apis/embed';
|
|
17
|
+
export * from './apis/get';
|
|
18
|
+
export * from './apis/rerank';
|
|
19
|
+
export * from './apis/decide';
|
|
14
20
|
export * from './apis/image';
|
|
15
21
|
export * from './apis/speech';
|
|
16
22
|
export * from './apis/transcribe';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,MAAM,CAAC;AACrB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,MAAM,CAAC;AACrB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
|
package/dist/registry.d.ts
CHANGED
|
@@ -4,7 +4,60 @@
|
|
|
4
4
|
* Centralized model management with provider ordering and adapter registration.
|
|
5
5
|
* Provider order ensures deterministic model resolution: first provider to return a model ID wins.
|
|
6
6
|
*/
|
|
7
|
+
import { type DescriptorFamily, type FormatDescriptor, SchemaBudget, type ToolDefinition } from '@aeye/core';
|
|
7
8
|
import type { AIBaseMetadata, ModelCapability, ModelHandler, ModelInfo, ModelOverride, ModelSelectionWeights, ModelSource, Provider, Providers, ScoredModel, SelectedModel } from './types';
|
|
9
|
+
/**
|
|
10
|
+
* Resolve a model's strict-mode JSON-Schema dialect via three-step fallback:
|
|
11
|
+
*
|
|
12
|
+
* 1. Explicit `model.strictFormat` if it's a registered family
|
|
13
|
+
* (`'openai'` / `'anthropic'` / `'google'` ship by default; custom
|
|
14
|
+
* families registered via `registerDescriptor` in `@aeye/core` work
|
|
15
|
+
* here too). A literal `'none'` overrides the fallback chain and
|
|
16
|
+
* returns `undefined`.
|
|
17
|
+
* 2. `model.provider` if it matches a registered family (covers direct
|
|
18
|
+
* provider setups: `provider: 'openai'` → `'openai'`).
|
|
19
|
+
* 3. The `[family]/...` prefix of `model.id` (covers OpenRouter and
|
|
20
|
+
* similar routing layers: `id: 'openai/gpt-4o'` → `'openai'`).
|
|
21
|
+
*
|
|
22
|
+
* Returns `undefined` when none of the above apply — provider falls back
|
|
23
|
+
* to LENIENT silently. Used by registry `applyOverrides` to auto-derive
|
|
24
|
+
* the `'toolsStrict'` capability and by providers to pick a descriptor at
|
|
25
|
+
* request build time.
|
|
26
|
+
*/
|
|
27
|
+
export declare function resolveStrictFormat(model: {
|
|
28
|
+
id: string;
|
|
29
|
+
provider: string;
|
|
30
|
+
strictFormat?: DescriptorFamily | 'none';
|
|
31
|
+
}): DescriptorFamily | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Build a SchemaBudget over the model's tool and structured-output dialects.
|
|
34
|
+
* Anthropic-style per-request limits apply across BOTH tool schemas and the
|
|
35
|
+
* output schema, so a provider shares one budget between them, but each kind
|
|
36
|
+
* keeps its own descriptor: a model with strict output and no strict tools
|
|
37
|
+
* must not send `strict: true` tools.
|
|
38
|
+
*
|
|
39
|
+
* Strict mode engages only when the model's resolved family is one the
|
|
40
|
+
* provider speaks (`families`) AND the model has the corresponding capability
|
|
41
|
+
* (`'toolsStrict'` for tools, `'structured'` for output). Otherwise the
|
|
42
|
+
* family's non-strict descriptor applies, which keeps the dialect's own
|
|
43
|
+
* constraints (Gemini rejects LENIENT's recursive `$defs/Any`) even when only
|
|
44
|
+
* the model id is known. Families the provider doesn't speak fall back to
|
|
45
|
+
* LENIENT, so the wire never receives a dialect the API doesn't understand.
|
|
46
|
+
*
|
|
47
|
+
* @param model The full model, or just its id and provider when selection
|
|
48
|
+
* didn't supply one
|
|
49
|
+
* @param families The strict descriptor families the provider speaks
|
|
50
|
+
*/
|
|
51
|
+
export declare function buildSchemaBudget(model: Pick<ModelInfo, 'id' | 'provider' | 'strictFormat'> & {
|
|
52
|
+
capabilities?: ModelInfo['capabilities'];
|
|
53
|
+
}, families: ReadonlySet<DescriptorFamily>): SchemaBudget;
|
|
54
|
+
/**
|
|
55
|
+
* Allocate per-tool descriptors in descending-priority order, so the
|
|
56
|
+
* most-wanted strict tools consume the budget first, then return them in
|
|
57
|
+
* declaration order. Records each chosen id on `tools[i].descriptor` for the
|
|
58
|
+
* Prompt's validation roundtrip.
|
|
59
|
+
*/
|
|
60
|
+
export declare function allocateToolDescriptors(tools: ToolDefinition[], budget: SchemaBudget): FormatDescriptor[];
|
|
8
61
|
/**
|
|
9
62
|
* Determines which capabilities a provider supports based on its defined methods.
|
|
10
63
|
* Treats streaming and non-streaming methods as equivalent for capability detection.
|
|
@@ -125,6 +178,20 @@ export declare class ModelRegistry<TProviders extends Providers, TProviderKey ex
|
|
|
125
178
|
* @returns Set of capabilities the provider supports, or undefined if provider not found
|
|
126
179
|
*/
|
|
127
180
|
getProviderCapabilities(name: TProviderKey): Set<ModelCapability> | undefined;
|
|
181
|
+
/**
|
|
182
|
+
* Resolve the `FormatDescriptor` to use when sending a strict-flagged
|
|
183
|
+
* request to a given model.
|
|
184
|
+
*
|
|
185
|
+
* Returns `LENIENT` when the request is non-strict or when
|
|
186
|
+
* `resolveStrictFormat` can't determine a family for the model — strict
|
|
187
|
+
* is best-effort, the provider always gets *some* valid descriptor.
|
|
188
|
+
*
|
|
189
|
+
* Tools and structured output share the same dialect (per-model), so this
|
|
190
|
+
* helper takes no `kind` argument. Whether tools-strict or output-strict
|
|
191
|
+
* is actually engaged is gated by the `'toolsStrict'` and `'structured'`
|
|
192
|
+
* capabilities respectively, not by this helper.
|
|
193
|
+
*/
|
|
194
|
+
getStrictFormat(model: ModelInfo<TProviderKey>, requested: boolean): FormatDescriptor;
|
|
128
195
|
/**
|
|
129
196
|
* Check if a model is applicable given the criteria.
|
|
130
197
|
* Returns null if not applicable, or an object with matched capabilities if applicable.
|