@aeye/ai 0.3.7 → 0.3.9

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.
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/apis/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/apis/base.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,21 @@ export declare class ChatAPI<T extends AIBaseTypes> extends BaseAPI<T, Request,
48
48
  constructor(ai: AI<T>);
49
49
  protected getRequiredCapabilities(provided: ModelCapability[], request: Request, forStreaming: boolean): ModelCapability[];
50
50
  protected getRequiredParameters(provided: ModelParameter[], request: Request, forStreaming: boolean): ModelParameter[];
51
+ /**
52
+ * Optional (preferred) capabilities. Adds `'toolsStrict'` when any tool
53
+ * is requesting strict at numeric priority (or default-omitted, which is
54
+ * treated as priority `1`). Hard `strict: true` is handled in the
55
+ * required path; `strict: false` adds nothing.
56
+ *
57
+ * Optional preferences score strict-tool-capable models higher without
58
+ * filtering anyone out, matching the best-effort philosophy.
59
+ */
60
+ protected getOptionalCapabilities(provided: ModelCapability[], request: Request, forStreaming: boolean): ModelCapability[];
61
+ /**
62
+ * Optional (preferred) parameters. Same logic as
63
+ * `getOptionalCapabilities` but at the parameter level.
64
+ */
65
+ protected getOptionalParameters(provided: ModelParameter[], request: Request, forStreaming: boolean): ModelParameter[];
51
66
  protected getNoModelFoundError(): string;
52
67
  protected getErrorType(operation: 'request' | 'stream'): string;
53
68
  protected getErrorMessage(operation: 'request' | 'stream'): string;
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/apis/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/apis/chat.ts"],"names":[],"mappings":"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"}
package/dist/apis/chat.js CHANGED
@@ -36,6 +36,20 @@
36
36
  */
37
37
  import { getChunksFromResponse, getResponseFromChunks } from '@aeye/core';
38
38
  import { BaseAPI } from './base';
39
+ import { applySchemaDeliveryFallback } from './schema-fallback';
40
+ /**
41
+ * Returns true when a `strict` field expresses a numeric (best-effort)
42
+ * preference rather than a hard `true` / `false`. Default-omitted (undefined)
43
+ * is treated as `1` per the v2 default policy in tool/prompt JSDoc, so it
44
+ * also counts as numeric preference here.
45
+ */
46
+ function isNumericStrictPreference(strict) {
47
+ if (strict === undefined)
48
+ return true; // default 1
49
+ if (typeof strict === 'number')
50
+ return strict > 0;
51
+ return false; // true and false are non-preferences for this purpose
52
+ }
39
53
  /**
40
54
  * ChatAPI provides methods for chat completions with automatic model selection.
41
55
  * Inherits get() and stream() methods from BaseAPI.
@@ -87,6 +101,15 @@ export class ChatAPI extends BaseAPI {
87
101
  // Check if request uses tools
88
102
  if (request.tools && request.tools.length > 0) {
89
103
  capabilities.add('tools');
104
+ // Tri-state strict: any tool with `strict === true` is a HARD
105
+ // requirement that the chosen model support strict tools. Numeric
106
+ // priority is handled in `getOptionalCapabilities` (preference, not
107
+ // filter). Default-omitted strict (treated as `1` downstream) is
108
+ // *not* a hard requirement — selection still succeeds against
109
+ // models without strict-family declarations.
110
+ if (request.tools.some(t => t.strict === true)) {
111
+ capabilities.add('toolsStrict');
112
+ }
90
113
  }
91
114
  }
92
115
  return Array.from(capabilities);
@@ -134,6 +157,36 @@ export class ChatAPI extends BaseAPI {
134
157
  }
135
158
  return Array.from(params);
136
159
  }
160
+ /**
161
+ * Optional (preferred) capabilities. Adds `'toolsStrict'` when any tool
162
+ * is requesting strict at numeric priority (or default-omitted, which is
163
+ * treated as priority `1`). Hard `strict: true` is handled in the
164
+ * required path; `strict: false` adds nothing.
165
+ *
166
+ * Optional preferences score strict-tool-capable models higher without
167
+ * filtering anyone out, matching the best-effort philosophy.
168
+ */
169
+ getOptionalCapabilities(provided, request, forStreaming) {
170
+ const optional = new Set(provided);
171
+ if ((request.tools?.length ?? 0) > 0) {
172
+ const wantsStrictPreference = request.tools.some(t => isNumericStrictPreference(t.strict));
173
+ if (wantsStrictPreference) {
174
+ optional.add('toolsStrict');
175
+ }
176
+ }
177
+ return Array.from(optional);
178
+ }
179
+ /**
180
+ * Optional (preferred) parameters. Same logic as
181
+ * `getOptionalCapabilities` but at the parameter level.
182
+ */
183
+ getOptionalParameters(provided, request, forStreaming) {
184
+ const params = new Set(provided);
185
+ if (request.tools?.some(t => isNumericStrictPreference(t.strict))) {
186
+ params.add('toolsStrict');
187
+ }
188
+ return Array.from(params);
189
+ }
137
190
  getNoModelFoundError() {
138
191
  return 'No compatible model found for criteria';
139
192
  }
@@ -150,6 +203,10 @@ export class ChatAPI extends BaseAPI {
150
203
  if (!selected.provider.createExecutor) {
151
204
  throw new Error(`Provider ${selected.provider.name} does not support chat requests`);
152
205
  }
206
+ // Provider-agnostic schema-delivery fallback: if the selected model's
207
+ // dialect can't express the structured schema (or delivery is forced to
208
+ // prompt), drop `response_format` and deliver the schema as prompt text.
209
+ applySchemaDeliveryFallback(request, selected.model);
153
210
  const executor = selected.provider.createExecutor(selected.providerConfig);
154
211
  return await executor(request, ctx, ctx.metadata);
155
212
  }
@@ -157,6 +214,8 @@ export class ChatAPI extends BaseAPI {
157
214
  if (!selected.provider.createStreamer) {
158
215
  throw new Error(`Provider ${selected.provider.name} does not support chat streaming`);
159
216
  }
217
+ // Provider-agnostic schema-delivery fallback (see executeRequest).
218
+ applySchemaDeliveryFallback(request, selected.model);
160
219
  const streamer = selected.provider.createStreamer(selected.providerConfig);
161
220
  return yield* streamer(request, ctx, ctx.metadata);
162
221
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/apis/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/apis/chat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
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.
11
+ *
12
+ * Provider-agnostic: called from the ai request-build (see `ChatAPI`) after the
13
+ * model is resolved, BEFORE any provider converts the request to its wire form.
14
+ * The descriptor is resolved from the model's dialect
15
+ * (`resolveStrictFormat` → `getDescriptor`), independent of whether the chosen
16
+ * provider bothers to emit that dialect strictly — because feasibility is a
17
+ * property of the target model, not our request encoder.
18
+ */
19
+ import { type Request } from '@aeye/core';
20
+ import type { ModelInfo } from '../types';
21
+ /**
22
+ * Apply the automatic schema-delivery fallback to `request` in place.
23
+ *
24
+ * When the request carries a structured (schema-valued) `responseFormat` and
25
+ * either `schemaDelivery === 'prompt'` OR (`'auto'` AND the selected model's
26
+ * dialect can't express the schema), the wire schema is DROPPED
27
+ * (`request.responseFormat` cleared so no provider emits `response_format`) and
28
+ * the schema is appended to the messages as prompt text. `schemaDelivery ===
29
+ * 'structured'` forces structured output (no-op here). No-op for text/json
30
+ * response formats.
31
+ *
32
+ * Idempotent: dropping the wire schema makes the trigger condition false on
33
+ * subsequent calls, and the schema-text append is guarded per request object.
34
+ */
35
+ export declare function applySchemaDeliveryFallback(request: Request, model: ModelInfo | undefined): void;
36
+ //# 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;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAOL,KAAK,OAAO,EACb,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAmC1C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,CA4BhG"}
@@ -0,0 +1,92 @@
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.
11
+ *
12
+ * Provider-agnostic: called from the ai request-build (see `ChatAPI`) after the
13
+ * model is resolved, BEFORE any provider converts the request to its wire form.
14
+ * The descriptor is resolved from the model's dialect
15
+ * (`resolveStrictFormat` → `getDescriptor`), independent of whether the chosen
16
+ * provider bothers to emit that dialect strictly — because feasibility is a
17
+ * property of the target model, not our request encoder.
18
+ */
19
+ import { canExpress, getDescriptor, getJsonFallbackInstruction, LENIENT, toJSONSchema, } from '@aeye/core';
20
+ import { resolveStrictFormat } from '../registry';
21
+ /**
22
+ * Tracks requests whose schema text has already been appended, so a Prompt
23
+ * that re-issues the SAME request object across its retry / dynamic-resolve
24
+ * iterations doesn't accumulate duplicate schema blocks in the messages.
25
+ */
26
+ const schemaTextAppended = new WeakSet();
27
+ /**
28
+ * Render a Zod schema as fenced JSON-Schema prompt text. Uses the LENIENT
29
+ * dialect so the model sees the true conceptual shape (unions as `anyOf`,
30
+ * open records, etc.) rather than a strict-mode rewrite it would then have to
31
+ * reproduce.
32
+ */
33
+ function renderSchemaText(schema, instruction) {
34
+ const json = JSON.stringify(toJSONSchema(schema, LENIENT), null, 2);
35
+ return `\n\nThe response must be a JSON object conforming to this schema:\n\`\`\`json\n${json}\n\`\`\`\n\n${instruction}`;
36
+ }
37
+ /**
38
+ * Append schema `text` to the request's prompt. Prefers extending the first
39
+ * system message (keeps the schema inside the instructions, avoids trailing
40
+ * duplicate-role issues across providers); if there is no string-content
41
+ * system message, inserts one at the front.
42
+ */
43
+ function appendSchemaText(request, text) {
44
+ const system = request.messages.find((m) => m.role === 'system');
45
+ if (system && typeof system.content === 'string') {
46
+ system.content = system.content + text;
47
+ }
48
+ else {
49
+ request.messages.unshift({ role: 'system', content: text.replace(/^\n+/, '') });
50
+ }
51
+ }
52
+ /**
53
+ * Apply the automatic schema-delivery fallback to `request` in place.
54
+ *
55
+ * When the request carries a structured (schema-valued) `responseFormat` and
56
+ * either `schemaDelivery === 'prompt'` OR (`'auto'` AND the selected model's
57
+ * dialect can't express the schema), the wire schema is DROPPED
58
+ * (`request.responseFormat` cleared so no provider emits `response_format`) and
59
+ * the schema is appended to the messages as prompt text. `schemaDelivery ===
60
+ * 'structured'` forces structured output (no-op here). No-op for text/json
61
+ * response formats.
62
+ *
63
+ * Idempotent: dropping the wire schema makes the trigger condition false on
64
+ * subsequent calls, and the schema-text append is guarded per request object.
65
+ */
66
+ export function applySchemaDeliveryFallback(request, model) {
67
+ const rf = request.responseFormat;
68
+ if (!rf || typeof rf !== 'object')
69
+ return; // only structured schemas
70
+ const delivery = rf.schemaDelivery ?? 'auto';
71
+ if (delivery === 'structured')
72
+ return; // forced structured — leave as-is
73
+ // Resolve the descriptor for the TARGET MODEL's dialect. `resolveStrictFormat`
74
+ // returning undefined means an unknown dialect — assume it can express the
75
+ // schema (matches today's lenient behavior) unless delivery is forced.
76
+ const family = model ? resolveStrictFormat(model) : undefined;
77
+ const descriptor = family ? getDescriptor(family, true) : LENIENT;
78
+ const shouldFallback = delivery === 'prompt' || !canExpress(rf.type, descriptor);
79
+ if (!shouldFallback)
80
+ return;
81
+ const schema = rf.type;
82
+ // Drop the wire schema so NO provider sends `response_format` and the
83
+ // Prompt's parse path (which keeps its own `schema`) runs on the model's
84
+ // text JSON with no descriptor pinned (so `decodeWire` is correctly skipped).
85
+ request.responseFormat = undefined;
86
+ // Append the schema text exactly once per request object.
87
+ if (schemaTextAppended.has(request))
88
+ return;
89
+ schemaTextAppended.add(request);
90
+ appendSchemaText(request, renderSchemaText(schema, getJsonFallbackInstruction(descriptor)));
91
+ }
92
+ //# 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;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,UAAU,EACV,aAAa,EACb,0BAA0B,EAC1B,OAAO,EACP,YAAY,GAGb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGlD;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAW,CAAC;AAElD;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,MAA0C,EAAE,WAAmB;IACvF,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACpE,OAAO,kFAAkF,IAAI,eAAe,WAAW,EAAE,CAAC;AAC5H,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,OAAgB,EAAE,IAAY;IACtD,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC/E,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,2BAA2B,CAAC,OAAgB,EAAE,KAA4B;IACxF,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAClC,IAAI,CAAC,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ;QAAE,OAAO,CAAC,0BAA0B;IAErE,MAAM,QAAQ,GAAG,EAAE,CAAC,cAAc,IAAI,MAAM,CAAC;IAC7C,IAAI,QAAQ,KAAK,YAAY;QAAE,OAAO,CAAC,kCAAkC;IAEzE,+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;IAElE,MAAM,cAAc,GAAG,QAAQ,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACjF,IAAI,CAAC,cAAc;QAAE,OAAO;IAE5B,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC;IAEvB,sEAAsE;IACtE,yEAAyE;IACzE,8EAA8E;IAC9E,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAEnC,0DAA0D;IAC1D,IAAI,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO;IAC5C,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEhC,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,0BAA0B,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9F,CAAC"}
package/dist/index.d.ts CHANGED
@@ -4,12 +4,14 @@
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';
12
13
  export * from './apis/chat';
14
+ export * from './apis/schema-fallback';
13
15
  export * from './apis/embed';
14
16
  export * from './apis/image';
15
17
  export * from './apis/speech';
@@ -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,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -4,12 +4,14 @@
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';
12
13
  export * from './apis/chat';
14
+ export * from './apis/schema-fallback';
13
15
  export * from './apis/embed';
14
16
  export * from './apis/image';
15
17
  export * from './apis/speech';
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,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
@@ -4,7 +4,31 @@
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 } 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;
8
32
  /**
9
33
  * Determines which capabilities a provider supports based on its defined methods.
10
34
  * Treats streaming and non-streaming methods as equivalent for capability detection.
@@ -125,6 +149,20 @@ export declare class ModelRegistry<TProviders extends Providers, TProviderKey ex
125
149
  * @returns Set of capabilities the provider supports, or undefined if provider not found
126
150
  */
127
151
  getProviderCapabilities(name: TProviderKey): Set<ModelCapability> | undefined;
152
+ /**
153
+ * Resolve the `FormatDescriptor` to use when sending a strict-flagged
154
+ * request to a given model.
155
+ *
156
+ * Returns `LENIENT` when the request is non-strict or when
157
+ * `resolveStrictFormat` can't determine a family for the model — strict
158
+ * is best-effort, the provider always gets *some* valid descriptor.
159
+ *
160
+ * Tools and structured output share the same dialect (per-model), so this
161
+ * helper takes no `kind` argument. Whether tools-strict or output-strict
162
+ * is actually engaged is gated by the `'toolsStrict'` and `'structured'`
163
+ * capabilities respectively, not by this helper.
164
+ */
165
+ getStrictFormat(model: ModelInfo<TProviderKey>, requested: boolean): FormatDescriptor;
128
166
  /**
129
167
  * Check if a model is applicable given the criteria.
130
168
  * Returns null if not applicable, or an object with matched capabilities if applicable.
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
package/dist/registry.js CHANGED
@@ -4,9 +4,48 @@
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 { getModel } from '@aeye/core';
7
+ import { getDescriptor, getModel, hasDescriptorFamily, LENIENT } from '@aeye/core';
8
8
  import { detectTier } from './modelDetection';
9
9
  // ============================================================================
10
+ // Strict-format resolution
11
+ // ============================================================================
12
+ /**
13
+ * Resolve a model's strict-mode JSON-Schema dialect via three-step fallback:
14
+ *
15
+ * 1. Explicit `model.strictFormat` if it's a registered family
16
+ * (`'openai'` / `'anthropic'` / `'google'` ship by default; custom
17
+ * families registered via `registerDescriptor` in `@aeye/core` work
18
+ * here too). A literal `'none'` overrides the fallback chain and
19
+ * returns `undefined`.
20
+ * 2. `model.provider` if it matches a registered family (covers direct
21
+ * provider setups: `provider: 'openai'` → `'openai'`).
22
+ * 3. The `[family]/...` prefix of `model.id` (covers OpenRouter and
23
+ * similar routing layers: `id: 'openai/gpt-4o'` → `'openai'`).
24
+ *
25
+ * Returns `undefined` when none of the above apply — provider falls back
26
+ * to LENIENT silently. Used by registry `applyOverrides` to auto-derive
27
+ * the `'toolsStrict'` capability and by providers to pick a descriptor at
28
+ * request build time.
29
+ */
30
+ export function resolveStrictFormat(model) {
31
+ if (model.strictFormat === 'none')
32
+ return undefined;
33
+ if (model.strictFormat)
34
+ return model.strictFormat;
35
+ if (hasDescriptorFamily(model.provider))
36
+ return model.provider;
37
+ const slashIdx = model.id.indexOf('/');
38
+ if (slashIdx > 0) {
39
+ // OpenRouter marks floating "-latest" aliases with a leading `~`
40
+ // (e.g. `~anthropic/claude-sonnet-latest`). Strip it so the family
41
+ // prefix still resolves to the right descriptor.
42
+ const prefix = model.id.slice(0, slashIdx).replace(/^~/, '');
43
+ if (hasDescriptorFamily(prefix))
44
+ return prefix;
45
+ }
46
+ return undefined;
47
+ }
48
+ // ============================================================================
10
49
  // Generic Constraint Helpers
11
50
  // ============================================================================
12
51
  /**
@@ -389,7 +428,19 @@ export class ModelRegistry {
389
428
  * List models for which we have providers
390
429
  */
391
430
  providedModels() {
392
- return this.listModels().filter(model => this.providers.has(model.provider));
431
+ const seen = new Set();
432
+ return this.listModels().filter(model => {
433
+ if (!this.providers.has(model.provider)) {
434
+ return false;
435
+ }
436
+ // Create unique key based on provider and model ID
437
+ const uniqueKey = `${model.provider}/${model.id}`;
438
+ if (seen.has(uniqueKey)) {
439
+ return false;
440
+ }
441
+ seen.add(uniqueKey);
442
+ return true;
443
+ });
393
444
  }
394
445
  /**
395
446
  * Search and score models based on criteria
@@ -542,6 +593,27 @@ export class ModelRegistry {
542
593
  getProviderCapabilities(name) {
543
594
  return this.providerCapabilities.get(name);
544
595
  }
596
+ /**
597
+ * Resolve the `FormatDescriptor` to use when sending a strict-flagged
598
+ * request to a given model.
599
+ *
600
+ * Returns `LENIENT` when the request is non-strict or when
601
+ * `resolveStrictFormat` can't determine a family for the model — strict
602
+ * is best-effort, the provider always gets *some* valid descriptor.
603
+ *
604
+ * Tools and structured output share the same dialect (per-model), so this
605
+ * helper takes no `kind` argument. Whether tools-strict or output-strict
606
+ * is actually engaged is gated by the `'toolsStrict'` and `'structured'`
607
+ * capabilities respectively, not by this helper.
608
+ */
609
+ getStrictFormat(model, requested) {
610
+ if (!requested)
611
+ return LENIENT;
612
+ const family = resolveStrictFormat(model);
613
+ if (!family)
614
+ return LENIENT;
615
+ return getDescriptor(family, true);
616
+ }
545
617
  /**
546
618
  * Check if a model is applicable given the criteria.
547
619
  * Returns null if not applicable, or an object with matched capabilities if applicable.
@@ -796,6 +868,24 @@ export class ModelRegistry {
796
868
  metadata: { ...result.metadata, ...override.overrides.metadata },
797
869
  };
798
870
  }
871
+ // Capability is opt-IN, driven by the explicit `strictFormat` field —
872
+ // the curated table (or a scraper) lists models that ACTUALLY support
873
+ // strict. The fallback chain in `resolveStrictFormat` is only consulted
874
+ // at request-build time to pick the dialect, not to gate support.
875
+ //
876
+ // - `strictFormat: 'openai' | 'anthropic' | 'google'` adds 'toolsStrict'.
877
+ // - `strictFormat: 'none'` removes 'toolsStrict' if some upstream source
878
+ // (e.g. a scraper) had set it incorrectly.
879
+ // - `strictFormat: undefined` leaves capabilities untouched.
880
+ if (result.strictFormat === 'none') {
881
+ if (result.capabilities.has('toolsStrict')) {
882
+ result.capabilities = new Set(result.capabilities);
883
+ result.capabilities.delete('toolsStrict');
884
+ }
885
+ }
886
+ else if (result.strictFormat) {
887
+ result.capabilities = new Set([...result.capabilities, 'toolsStrict']);
888
+ }
799
889
  return result;
800
890
  }
801
891
  /**
@@ -825,6 +915,9 @@ export class ModelRegistry {
825
915
  maxOutputTokens: source.maxOutputTokens ?? base.maxOutputTokens,
826
916
  metrics: mergedMetrics,
827
917
  metadata: mergedMetadata,
918
+ supportedParameters: source.supportedParameters ?? base.supportedParameters,
919
+ tokenizer: source.tokenizer ?? base.tokenizer,
920
+ strictFormat: source.strictFormat ?? base.strictFormat,
828
921
  };
829
922
  }
830
923
  /**
@@ -864,16 +957,22 @@ export class ModelRegistry {
864
957
  for (const modelInfo of modelInfos) {
865
958
  // Create key for looking up source info
866
959
  const key = `${providerName}/${modelInfo.id}`;
867
- // Create base model with defaults
960
+ // Create base model with defaults. Spread first so all fields the
961
+ // provider declared (including future-added ones like
962
+ // `strictFormat`, `supportedParameters`, `tokenizer`) reach the
963
+ // registry; then override with the canonical defaults below.
868
964
  let fullModel = {
965
+ ...modelInfo,
869
966
  id: modelInfo.id,
870
967
  provider: providerName,
871
968
  name: modelInfo.name || modelInfo.id,
872
969
  capabilities: modelInfo.capabilities || new Set(['chat', 'streaming']),
873
970
  tier: modelInfo.tier || detectTier(modelInfo.name || modelInfo.id),
874
971
  pricing: modelInfo.pricing || {
875
- inputTokensPer1M: this.defaultCostPerMillionTokens,
876
- outputTokensPer1M: this.defaultCostPerMillionTokens * 2,
972
+ text: {
973
+ input: this.defaultCostPerMillionTokens,
974
+ output: this.defaultCostPerMillionTokens * 2,
975
+ },
877
976
  },
878
977
  contextWindow: modelInfo.contextWindow || 8192,
879
978
  maxOutputTokens: modelInfo.maxOutputTokens,