@aeye/ai 0.3.8 → 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.
package/README.md CHANGED
@@ -623,6 +623,32 @@ const ai = AI.with()
623
623
  });
624
624
  ```
625
625
 
626
+ ### Strict Mode
627
+
628
+ Tool and Prompt schemas can ride the LLM's grammar-constrained strict mode for guaranteed type-safe output. Mechanics — descriptors, dialects, schema rewriting — live in [`@aeye/core`](../core/README.md#strict-mode). What `@aeye/ai` adds: model selection respects the `strict` flag (selection filters to strict-capable models when `strict: true`, scores them higher when `strict: <number>`).
629
+
630
+ Splat the curated `strictSupport` overrides from `@aeye/models` so model selection knows which models actually support strict — without it, every model defaults to lenient even when the underlying API supports strict:
631
+
632
+ ```typescript
633
+ import { models, strictSupport } from '@aeye/models';
634
+
635
+ const ai = AI.with()
636
+ .providers({ openai })
637
+ .create({
638
+ models,
639
+ modelOverrides: [...strictSupport],
640
+ });
641
+ ```
642
+
643
+ `strictSupport` is a `ModelOverride[]` you can combine with your own overrides:
644
+
645
+ ```typescript
646
+ modelOverrides: [
647
+ ...strictSupport,
648
+ { modelPattern: /gpt-4/, overrides: { tier: 'flagship' } },
649
+ ],
650
+ ```
651
+
626
652
  ### Custom Providers
627
653
 
628
654
  Extend an existing provider or implement the `Provider<TConfig>` interface from `@aeye/core`:
package/aeye-ai.md ADDED
@@ -0,0 +1,219 @@
1
+ # @aeye/ai
2
+
3
+ > Multi-provider AI library: a single typed instance that selects models, runs chat/image/speech/transcribe/embed requests, tracks cost, and binds tools/prompts/agents — built on `@aeye/core`.
4
+
5
+ ## When to use it
6
+
7
+ Use `@aeye/ai` as the main entry point of an aeye application. You create one `AI` instance, register one or more provider packages (`@aeye/openai`, `@aeye/aws`, `@aeye/openrouter`, `@aeye/replicate`, or a custom `Provider`), and then call typed APIs. The instance handles automatic model selection by capability/cost/speed, per-call context + metadata injection, lifecycle hooks (budgets, logging), and cost estimation.
8
+
9
+ - Use `@aeye/ai` for: provider-agnostic chat/embeddings/images/speech, model selection, cost tracking, and AI-bound `tool`/`prompt`/`agent` components.
10
+ - Use `@aeye/core` directly for: the underlying `Tool`/`Prompt`/`Agent` classes, `Request`/`Response`/`Chunk`/`Message` types, and strict-mode descriptors (`@aeye/ai` re-exports the request/response types you need).
11
+
12
+ ## Installation & import
13
+
14
+ ```bash
15
+ npm install @aeye/ai @aeye/core
16
+ npm install @aeye/openai openai # or @aeye/aws, @aeye/openrouter, @aeye/replicate
17
+ npm install @aeye/models # optional: curated model table + strict overrides
18
+ ```
19
+
20
+ There is **one** export path. Everything is imported from the package root — there are no subpath exports.
21
+
22
+ ```typescript
23
+ import {
24
+ AI, ModelRegistry, getProviderCapabilities, resolveStrictFormat,
25
+ isModelInfo, detectTier,
26
+ // types:
27
+ type Provider, type ModelInfo, type ModelOverride, type ModelSource,
28
+ type ModelHandler, type AIConfig, type AIHooks, type ModelCapability,
29
+ } from '@aeye/ai';
30
+ ```
31
+
32
+ ## Core concepts
33
+
34
+ - **AI instance** (`AI<T>`): central object. Holds `config`, `registry`, the API surfaces, `providers`, `components`, and `hooks`.
35
+ - **Providers**: objects implementing the `Provider<TConfig>` interface. Each implements only the methods for the capabilities it supports (`createExecutor`/`createStreamer` for chat, `embed`, `speech`, `transcribe`, `generateImage`, etc.). Capabilities are auto-detected from which methods exist.
36
+ - **Context** (`TContext`): your app data threaded through every call. Resolved by merging `defaultContext` → `providedContext(ctx)` → per-call required context → `{ ai }`. Fields satisfied by defaults/provided are not required at call time.
37
+ - **Metadata** (`TMetadata` + `AIBaseMetadata`): controls model selection (`model`, `required`/`optional` capabilities, `requiredParameters`, `providers.allow/deny`, `pricing`/`contextWindow`/`outputTokens`/`metrics` constraints, `weights`, `weightProfile`, `tier`) plus your custom fields. Merged like context.
38
+ - **Registry** (`ModelRegistry`): stores `ModelInfo` records keyed by both `id` and `provider/id`, applies overrides, scores and selects models.
39
+ - **APIs**: `chat`, `image.{generate,edit,analyze}`, `speech`, `transcribe`, `embed`, `models`. Each request API has `get()` (await) and `stream()` (async iterable); **`embed` has only `get()`**. Selection/hooks/cost logic is shared via `BaseAPI`.
40
+ - **Components**: `ai.tool()`, `ai.prompt()`, `ai.agent()` wrap the `@aeye/core` classes and auto-inject the executor/streamer/context.
41
+
42
+ ## Creating an instance
43
+
44
+ `AI.with<TContext, TMetadata>().providers(providers).create(config)` — a 3-step fluent builder that infers the full type container `T`. Both generics default to `{}`.
45
+
46
+ ```typescript
47
+ import { AI } from '@aeye/ai';
48
+ import { OpenAIProvider } from '@aeye/openai';
49
+
50
+ interface AppContext { userId: string; user?: User }
51
+
52
+ const openai = new OpenAIProvider({ apiKey: process.env.OPENAI_API_KEY! });
53
+
54
+ const ai = AI.with<AppContext>()
55
+ .providers({ openai }) // keys become provider identifiers ('openai')
56
+ .create({
57
+ providedContext: async (ctx) => ({ user: await getUser(ctx.userId) }),
58
+ defaultWeights: { cost: 0.5, speed: 0.3, accuracy: 0.2 },
59
+ });
60
+ ```
61
+
62
+ Constructing `new AI(config)` directly is also valid but loses inference; prefer the builder.
63
+
64
+ ### Key `AIConfig` fields
65
+
66
+ | Field | Purpose |
67
+ |-------|---------|
68
+ | `providers` | Required. `Record<string, Provider>`. |
69
+ | `defaultContext` / `providedContext` | Static + async-resolved context. |
70
+ | `defaultMetadata` / `providedMetadata` | Static + async-resolved metadata. |
71
+ | `models` | `ModelInfo[]` registered up front (e.g. from `@aeye/models`). |
72
+ | `modelOverrides` | `ModelOverride[]` patched onto matching models (by `provider`/`modelId`/`modelPattern`). |
73
+ | `modelHandlers` | Per-model custom implementations (`ModelHandler`). |
74
+ | `modelSources` | External `ModelSource[]` fetched on `models.refresh()`. |
75
+ | `defaultWeights` / `weightProfiles` | Default and named scoring weights. |
76
+ | `defaultCostPerMillionTokens` | Fallback price for unknown models (default `5.0`). |
77
+ | `tokens` | Token-estimation divisors per content type. |
78
+
79
+ ## Using the request APIs
80
+
81
+ All request APIs follow `api.get(request, ctx?)` / `api.stream(request, ctx?)`. The second arg is the **required context** (only the fields not satisfied by defaults/provided), and may carry `metadata` and `signal`.
82
+
83
+ ```typescript
84
+ // Chat (await)
85
+ const res = await ai.chat.get(
86
+ { messages: [{ role: 'user', content: 'What is TypeScript?' }], temperature: 0.7, maxTokens: 512 },
87
+ { userId: 'u1' }
88
+ );
89
+ console.log(res.content, res.usage?.cost, res.finishReason);
90
+
91
+ // Chat (stream)
92
+ for await (const chunk of ai.chat.stream({ messages: [{ role: 'user', content: 'Count to 5' }] }, { userId: 'u1' })) {
93
+ if (chunk.content) process.stdout.write(chunk.content);
94
+ }
95
+ ```
96
+
97
+ Vision/audio capabilities are auto-required from message content (an `image` part adds `'vision'`, an `audio` part adds `'hearing'`); `reason`, `responseFormat`, and `tools` add the matching capabilities/parameters during selection.
98
+
99
+ ```typescript
100
+ // Embeddings (get only)
101
+ const e = await ai.embed.get({ texts: ['hello', 'world'], dimensions: 1536 });
102
+ e.embeddings.forEach(({ embedding, index }) => console.log(index, embedding.length));
103
+
104
+ // Images
105
+ await ai.image.generate.get({ prompt: 'a cat astronaut', n: 1, size: '1024x1024', quality: 'high' });
106
+ await ai.image.edit.get({ prompt: 'add a sunset', image: buf, mask: maskBuf, size: '1024x1024' });
107
+ await ai.image.analyze.get({ prompt: 'describe this', images: ['https://...jpg'] }); // routes through a vision chat model
108
+
109
+ // Speech / Transcription
110
+ const speech = await ai.speech.get({ text: 'Hello there', voice: 'alloy', speed: 1.0 });
111
+ const text = await ai.transcribe.get({ audio: audioBuf, language: 'en' });
112
+ ```
113
+
114
+ Request/response shapes are exported types: `Request`/`Response`/`Chunk`/`Message` (re-exported from core), plus `EmbeddingRequest`/`EmbeddingResponse`, `ImageGenerationRequest`/`ImageEditRequest`/`ImageGenerationResponse`/`ImageGenerationChunk`, `ImageAnalyzeRequest`, `SpeechRequest`/`SpeechResponse`, `TranscriptionRequest`/`TranscriptionResponse`/`TranscriptionChunk`.
115
+
116
+ ## Model selection & the Models API
117
+
118
+ When `request.model` / `metadata.model` is set, that model is used directly. Otherwise the registry scores **applicable** models (those passing required capabilities, provider allow/deny, and range constraints) using weighted `cost`/`speed`/`accuracy`/`contextWindow` (weights resolve as `metadata.weights` → `metadata.weightProfile` → config `defaultWeights` → `{ cost:0.5, speed:0.3, accuracy:0.2 }`). Optional capabilities/parameters act as preference multipliers, not filters.
119
+
120
+ ```typescript
121
+ ai.models.list(providedOnly?) // all (or only provider-backed) ModelInfo[]
122
+ ai.models.get('gpt-4o' | 'openai/gpt-4o') // ModelInfo | undefined
123
+ ai.models.search({ required: ['chat','structured'], weights: { cost: 0.6, speed: 0.4 } }) // ScoredModel[]
124
+ ai.models.select(criteria) // SelectedModel | undefined
125
+ await ai.models.refresh() // re-fetch from providers + modelSources
126
+ ```
127
+
128
+ `ModelCapability` = `'chat' | 'tools' | 'vision' | 'json' | 'structured' | 'streaming' | 'reasoning' | 'image' | 'audio' | 'hearing' | 'embedding' | 'zdr' | 'toolsStrict'`. `ModelTier` = `'flagship' | 'efficient' | 'legacy' | 'experimental'`.
129
+
130
+ ## Tools, prompts & agents
131
+
132
+ `ai.tool()`, `ai.prompt()`, `ai.agent()` return enhanced `@aeye/core` `Tool`/`Prompt`/`Agent` instances with the AI executor/streamer/context auto-wired (you don't pass `types`). Every created component is pushed to `ai.components`.
133
+
134
+ ```typescript
135
+ import z from 'zod';
136
+
137
+ const searchKnowledge = ai.tool({
138
+ name: 'searchKnowledge',
139
+ description: 'Search the knowledge base',
140
+ schema: z.object({ query: z.string(), limit: z.number().optional() }),
141
+ call: async ({ query, limit = 5 }, _refs, ctx) => ({ results: await search(query, limit) }),
142
+ });
143
+
144
+ const assistant = ai.prompt({
145
+ name: 'assistant',
146
+ description: 'Answers using the knowledge base',
147
+ content: 'Use searchKnowledge then answer.\n\nQuestion: {{question}}',
148
+ input: (i: { question: string }) => ({ question: i.question }),
149
+ tools: [searchKnowledge],
150
+ schema: z.object({ answer: z.string(), sources: z.array(z.string()) }),
151
+ });
152
+
153
+ const result = await assistant.get('result', { question: 'How does X work?' }, { userId: 'u1' });
154
+ for await (const t of assistant.get('streamContent', { question: '...' })) process.stdout.write(t);
155
+
156
+ // Or run any component with context injected:
157
+ const out = await ai.run(assistant, { question: '...' }, { userId: 'u1' });
158
+ ```
159
+
160
+ `ai.agent({ name, description, refs, call })` composes other components; `call(input, [..refs], ctx)` receives the resolved refs tuple and the full AI context.
161
+
162
+ `ai.tool()` and `ai.prompt()` forward a trailing **`TDecoded`** generic to the underlying core `Tool`/`Prompt`, so a custom `parse` (which replaces Zod — see the [structured-output](../docs/guides/structured-output.md) / [tool-calling](../docs/guides/tool-calling.md) guides) has its **return type surface through the wrapper**: `call`/`validate` receive the decoded value, not the wire params/output. Absent a custom `parse`, `TDecoded` defaults to the wire type.
163
+
164
+ ## Provider & core integration
165
+
166
+ - **Provider packages** export classes implementing the core `Provider` interface, e.g. `new OpenAIProvider({ apiKey })`, `new OpenRouterProvider({ apiKey })`, `new AWSProvider(...)`, `new ReplicateProvider(...)`. You map them under arbitrary keys in `.providers({ ... })`; the key is the provider identifier used in `metadata.providers.allow/deny`, model IDs (`provider/model`), and `ai.providers`.
167
+ - **`@aeye/models`** provides a curated `models` array and a `strictSupport` `ModelOverride[]`. Splat both so selection knows real pricing/capabilities and which models truly support strict tool/output mode:
168
+
169
+ ```typescript
170
+ import { models, strictSupport } from '@aeye/models';
171
+ const ai = AI.with().providers({ openai }).create({ models, modelOverrides: [...strictSupport] });
172
+ ```
173
+ - **`@aeye/core`** supplies the building blocks `@aeye/ai` re-exports (`Request`, `Response`, `Chunk`, `Message`, `Usage`, `Executor`, `Streamer`, `ToolInput`, `PromptInput`, `AgentInput`, `Component*`). Strict-mode descriptor mechanics live in core; `@aeye/ai` only wires the `strict` flag into selection (`true` → required `toolsStrict`, numeric/omitted → optional preference). Custom format families are registered in core via `registerDescriptor`.
174
+
175
+ ### Hooks
176
+
177
+ Attach with `.withHooks(...)` (returns `this`) or via `config.hooks`-style assignment. Hooks run around every request:
178
+
179
+ ```typescript
180
+ ai.withHooks({
181
+ beforeModelSelection: async (ctx, request, metadata) => metadata, // adjust criteria
182
+ onModelSelected: async (ctx, request, selected) => {/* return to override */},
183
+ beforeRequest: async (ctx, request, selected, estimatedUsage, estimatedCost) => {
184
+ if (ctx.user && estimatedCost > ctx.user.budget) throw new Error('over budget'); // throw to cancel
185
+ },
186
+ afterRequest: async (ctx, request, response, complete, selected, usage, cost) => {/* track */},
187
+ onError: (type, message, error, ctx, request) => console.error(type, message),
188
+ });
189
+ ```
190
+
191
+ ## Extending instances
192
+
193
+ `ai.extend<TExtraContext, TExtraMetadata>(config?)` returns a new `AI` sharing providers/config, with merged defaults and additively-merged `models`/`modelOverrides`/`modelHandlers`. Useful for feature-scoped context.
194
+
195
+ ```typescript
196
+ const chatAI = ai.extend<{ chatId: string }>({ defaultContext: {} });
197
+ ```
198
+
199
+ ## Other exports
200
+
201
+ - `ModelRegistry` — the registry class (`getModel`, `registerModel(s)`, `listModels`, `providedModels`, `searchModels`, `selectModel`, `getProvider`, `getProviderCapabilities`, `getStrictFormat`, `refresh`). Accessible as `ai.registry`.
202
+ - `getProviderCapabilities(provider)` → `Set<ModelCapability>` inferred from provider methods.
203
+ - `resolveStrictFormat(model)` → strict dialect family or `undefined` (checks `strictFormat`, then `provider`, then `id` prefix).
204
+ - `isModelInfo(input)` — type guard distinguishing a full `ModelInfo` from a model reference.
205
+ - `detectTier(name)`, `detectCapabilitiesFromModality(modality, id)`, `detectZDRFromModeration(isModerated)` — heuristics used as fallbacks during refresh.
206
+ - `ai.stats()` → `LibraryStats` (model counts, cumulative requests, average cost/latency).
207
+
208
+ ## Gotchas
209
+
210
+ - **`embed` has no `stream()`** — only `embed.get()`. Image/speech "streaming" may fall back to a single chunk if the provider lacks a true streamer (the base API converts executor↔streamer automatically).
211
+ - **Capabilities are per-provider AND per-model.** A required capability must be supported by both the model (`ModelInfo.capabilities`) and the provider (auto-detected from its methods), or the model is filtered out. Missing the right provider method → "No compatible model found".
212
+ - **Models registered under two keys** (`id` and `provider/id`); colliding registrations are merged, not replaced. Use `provider/model` IDs to disambiguate across providers.
213
+ - **`refresh()` clears and re-fetches** all models. Models passed via `config.models` are preserved because they are also added as an internal `'config'` model source.
214
+ - **Pricing is per 1M tokens** (image output pricing is per-image by quality/size; `perRequest` is a flat add-on). `estimate*Usage` is heuristic (char-count divisors), not a real tokenizer — treat estimated cost as approximate.
215
+ - **Selection without registered models fails** — with no `models`/`modelSources`/provider `listModels`, only an explicit `metadata.model` will resolve. Call `models.refresh()` or pass `config.models` first.
216
+ - **`strict: true` is a hard filter**; numeric or omitted `strict` is only a scoring preference. Without `@aeye/models` `strictSupport` overrides (or explicit `strictFormat`), models default to lenient even if the API supports strict.
217
+ - **Builder generics carry no runtime data** — `AI.with<Ctx, Meta>()` only types the instance; actual defaults come from `.create(config)`.
218
+ </content>
219
+ </invoke>
package/dist/ai.d.ts CHANGED
@@ -13,8 +13,8 @@ import { SpeechAPI } from './apis/speech';
13
13
  import { TranscribeAPI } from './apis/transcribe';
14
14
  import { ModelRegistry } from './registry';
15
15
  import type { AgentInput, AIBaseMetadata, AIBaseTypes, AIConfig, AIConfigOf, AIContext, AIContextOptional, AIContextRequired, AIContextUser, AIHooks, AIMetadata, AIMetadataRequired, AIMetadataUser, AIProviderNames, AIProviders, AITypesInfer, ComponentFor, ComponentInput, ComponentOutput, Context, LibraryStats, Message, ModelInfo, ModelOverride, PromptInput, Providers, Request, SelectedModelFor, ToolInput, Usage } from './types';
16
- type AIToolInput<T extends AIBaseTypes, TName extends string = string, TParams extends object = {}, TOutput = unknown, TRefs extends Tuple<ComponentFor<T>> = []> = Omit<ToolInput<AIContext<T>, AIMetadata<T>, TName, TParams, TOutput, TRefs>, 'types'>;
17
- type AIPromptInput<T extends AIBaseTypes, TName extends string = string, TInput extends object = {}, TOutput extends object | string = string, TTools extends Tuple<ToolCompatible<AIContextRequired<T>, AIMetadataRequired<T>>> = []> = Omit<PromptInput<AIContext<T>, AIMetadata<T>, TName, TInput, TOutput, TTools>, 'types' | 'retool'> & {
16
+ type AIToolInput<T extends AIBaseTypes, TName extends string = string, TParams extends object = {}, TOutput = unknown, TRefs extends Tuple<ComponentFor<T>> = [], TDecoded extends unknown = TParams> = Omit<ToolInput<AIContext<T>, AIMetadata<T>, TName, TParams, TOutput, TRefs, TDecoded>, 'types'>;
17
+ type AIPromptInput<T extends AIBaseTypes, TName extends string = string, TInput extends object = {}, TOutput extends object | string = string, TTools extends Tuple<ToolCompatible<AIContextRequired<T>, AIMetadataRequired<T>>> = [], TDecoded extends unknown = TOutput> = Omit<PromptInput<AIContext<T>, AIMetadata<T>, TName, TInput, TOutput, TTools, TDecoded>, 'types' | 'retool'> & {
18
18
  retool?: Fn<RetoolResult<AIContextRequired<T>, AIMetadataRequired<T>, TTools>, [TInput | undefined, Context<T>]>;
19
19
  };
20
20
  type AIAgentInput<T extends AIBaseTypes, TName extends string = string, TInput extends object = {}, TOutput = unknown, TRefs extends Tuple<ComponentFor<T>> = []> = Omit<AgentInput<AIContext<T>, AIMetadata<T>, TName, TInput, TOutput, TRefs>, 'types'>;
@@ -167,11 +167,11 @@ export declare class AI<T extends AIBaseTypes> {
167
167
  * @param options - Prompt configuration options.
168
168
  * @returns - An enhanced prompt instance.
169
169
  */
170
- prompt<TName extends string = string, TInput extends object = {}, TOutput extends object | string = string, TTools extends Tuple<ToolCompatible<AIContextRequired<T>, AIMetadataRequired<T>>> = []>(options: AIPromptInput<T, TName, TInput, TOutput, TTools>): Prompt<Partial<Omit<import("./types").AIBaseContext<T>, "ai">> & Omit<import("./types").Relax<T["Context"], T["DefaultContext"] & T["ProvidedContext"]>, keyof import("./types").AIBaseContext<AIBaseTypes>> extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never, AIBaseMetadata<AIProviders<T>> & Omit<import("./types").Relax<T["Metadata"], T["DefaultMetadata"] & T["ProvidedMetadata"]>, keyof import("./types").AIMetadataAny> extends infer T_2 ? { [K_1 in keyof T_2]: T_2[K_1]; } : never, TName, TInput, TOutput, TTools>;
170
+ prompt<TName extends string = string, TInput extends object = {}, TOutput extends object | string = string, TTools extends Tuple<ToolCompatible<AIContextRequired<T>, AIMetadataRequired<T>>> = [], TDecoded extends unknown = TOutput>(options: AIPromptInput<T, TName, TInput, TOutput, TTools, TDecoded>): Prompt<Partial<Omit<import("./types").AIBaseContext<T>, "ai">> & Omit<import("./types").Relax<T["Context"], T["DefaultContext"] & T["ProvidedContext"]>, keyof import("./types").AIBaseContext<AIBaseTypes>> extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never, AIBaseMetadata<AIProviders<T>> & Omit<import("./types").Relax<T["Metadata"], T["DefaultMetadata"] & T["ProvidedMetadata"]>, keyof import("./types").AIMetadataAny> extends infer T_2 ? { [K_1 in keyof T_2]: T_2[K_1]; } : never, TName, TInput, TOutput, TTools, TDecoded>;
171
171
  /**
172
172
  * Create an enhanced tool bound to this AI instance
173
173
  */
174
- tool<TName extends string = string, TParams extends object = {}, TOutput = unknown, TRefs extends Tuple<ComponentFor<T>> = []>(options: AIToolInput<T, TName, TParams, TOutput, TRefs>): Tool<Partial<Omit<import("./types").AIBaseContext<T>, "ai">> & Omit<import("./types").Relax<T["Context"], T["DefaultContext"] & T["ProvidedContext"]>, keyof import("./types").AIBaseContext<AIBaseTypes>> extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never, AIBaseMetadata<AIProviders<T>> & Omit<import("./types").Relax<T["Metadata"], T["DefaultMetadata"] & T["ProvidedMetadata"]>, keyof import("./types").AIMetadataAny> extends infer T_2 ? { [K_1 in keyof T_2]: T_2[K_1]; } : never, TName, TParams, Promise<TOutput>, TRefs>;
174
+ tool<TName extends string = string, TParams extends object = {}, TOutput = unknown, TRefs extends Tuple<ComponentFor<T>> = [], TDecoded extends unknown = TParams>(options: AIToolInput<T, TName, TParams, TOutput, TRefs, TDecoded>): Tool<Partial<Omit<import("./types").AIBaseContext<T>, "ai">> & Omit<import("./types").Relax<T["Context"], T["DefaultContext"] & T["ProvidedContext"]>, keyof import("./types").AIBaseContext<AIBaseTypes>> extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never, AIBaseMetadata<AIProviders<T>> & Omit<import("./types").Relax<T["Metadata"], T["DefaultMetadata"] & T["ProvidedMetadata"]>, keyof import("./types").AIMetadataAny> extends infer T_2 ? { [K_1 in keyof T_2]: T_2[K_1]; } : never, TName, TParams, Promise<TOutput>, TRefs, TDecoded>;
175
175
  /**
176
176
  * Create an enhanced agent bound to this AI instance
177
177
  */
package/dist/ai.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAmB,KAAK,EAAU,MAAM,EAAE,EAAE,EAAc,kBAAkB,EAAE,MAAM,EAAa,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACtK,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,WAAW,EACX,QAAQ,EACR,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,OAAO,EACP,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,eAAe,EACf,OAAO,EAEP,YAAY,EACZ,OAAO,EACP,SAAS,EACT,aAAa,EACb,WAAW,EACX,SAAS,EACT,OAAO,EACP,gBAAgB,EAEhB,SAAS,EACT,KAAK,EACN,MAAM,SAAS,CAAC;AAIjB,KAAK,WAAW,CACd,CAAC,SAAS,WAAW,EACrB,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,OAAO,SAAS,MAAM,GAAG,EAAE,EAC3B,OAAO,GAAG,OAAO,EACjB,KAAK,SAAS,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EACzC,QAAQ,SAAS,OAAO,GAAG,OAAO,IAChC,IAAI,CAAC,SAAS,CAChB,SAAS,CAAC,CAAC,CAAC,EACZ,UAAU,CAAC,CAAC,CAAC,EACb,KAAK,EACL,OAAO,EACP,OAAO,EAEP,KAAK,EACL,QAAQ,CACT,EAAE,OAAO,CAAC,CAAC;AAEZ,KAAK,aAAa,CAChB,CAAC,SAAS,WAAW,EACrB,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,MAAM,SAAS,MAAM,GAAG,EAAE,EAC1B,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACxC,MAAM,SAAS,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EACtF,QAAQ,SAAS,OAAO,GAAG,OAAO,IAChC,IAAI,CAAC,WAAW,CAClB,SAAS,CAAC,CAAC,CAAC,EACZ,UAAU,CAAC,CAAC,CAAC,EACb,KAAK,EACL,MAAM,EACN,OAAO,EAEP,MAAM,EACN,QAAQ,CACT,EAAE,OAAO,GAAG,QAAQ,CAAC,GAAG;IACvB,MAAM,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAClH,CAAC;AAEF,KAAK,YAAY,CACf,CAAC,SAAS,WAAW,EACrB,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,MAAM,SAAS,MAAM,GAAG,EAAE,EAC1B,OAAO,GAAG,OAAO,EACjB,KAAK,SAAS,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IACvC,IAAI,CAAC,UAAU,CACjB,SAAS,CAAC,CAAC,CAAC,EACZ,UAAU,CAAC,CAAC,CAAC,EACb,KAAK,EACL,MAAM,EACN,OAAO,EAEP,KAAK,CACN,EAAE,OAAO,CAAC,CAAC;AAEZ;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,EAAE,CAAC,CAAC,SAAS,WAAW;IAEnC,SAAgB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtC,SAAgB,QAAQ,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAGxD,SAAgB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACjC,SAAgB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACnC,SAAgB,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACrC,SAAgB,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAC7C,SAAgB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACnC,SAAgB,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAGlD,SAAgB,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1C,SAAgB,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAM;IAC5C,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAGzB,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,sBAAsB,CAAa;IAG3C,SAAgB,MAAM,EAAE,MAAM,CAAC,kBAAkB,EAAE;QACjD,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IAEH;;OAEG;WACW,IAAI,CAAC,QAAQ,SAAS,aAAa,GAAG,EAAE,EAAE,SAAS,SAAS,cAAc,GAAG,EAAE;oBAE7E,UAAU,SAAS,SAAS,aAAa,UAAU;qBAElD,OAAO,SAAS,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,UAC3E,OAAO;;;gBAYb,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IA6EjC;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAKlC;;;;;;;OAOG;IACG,YAAY,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAgB5E;;;;;;;OAOG;IACG,gBAAgB,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAoB9E;;;;;;;OAOG;IACG,aAAa,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAiBpF;;;;;;;;OAQG;IACH,aAAa,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IA8HrF;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,SAAS;IAIrE;;;;;OAKG;IACH,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK;IAuG7C;;;OAGG;IACH,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK;IAW7C;;;;OAIG;IACH,aAAa,CACX,KAAK,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EACpC,KAAK,EAAE,KAAK,GACX,MAAM;IAoGT;;;;;;OAMG;IACH,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO;IAmBnE;;;;;;OAMG;IACG,GAAG,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EACjC,SAAS,EAAE,CAAC,EACZ,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,EACxB,GAAG,CAAC,GAAG,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC7B,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAS9B;;;;;;;;;OASG;IACH,MAAM,CACJ,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,MAAM,SAAS,MAAM,GAAG,EAAE,EAC1B,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACxC,MAAM,SAAS,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EACtF,QAAQ,SAAS,OAAO,GAAG,OAAO,EAElC,OAAO,EAAE,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC;IAwFrE;;OAEG;IACH,IAAI,CACF,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,OAAO,SAAS,MAAM,GAAG,EAAE,EAC3B,OAAO,GAAG,OAAO,EACjB,KAAK,SAAS,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EACzC,QAAQ,SAAS,OAAO,GAAG,OAAO,EAElC,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;IA0DnE;;OAEG;IACH,KAAK,CACH,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,MAAM,SAAS,MAAM,GAAG,EAAE,EAC1B,OAAO,GAAG,OAAO,EACjB,KAAK,SAAS,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAEzC,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;IAuCzD;;;;;;;;;;;;;;OAcG;IACH,MAAM,CACJ,gBAAgB,SAAS,MAAM,GAAG,EAAE,EACpC,iBAAiB,SAAS,MAAM,GAAG,EAAE,EAErC,MAAM,CAAC,EAAE,OAAO,CAAC,QAAQ,CACvB,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC,EACtC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC,EACxC,WAAW,CAAC,CAAC,CAAC,CACf,CAAC;IA8DJ;;;;;;;OAOG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAMjD;;OAEG;IACH,KAAK,IAAI,YAAY;CA+BtB"}
package/dist/ai.js CHANGED
@@ -608,7 +608,7 @@ export class AI {
608
608
  * @returns - An enhanced prompt instance.
609
609
  */
610
610
  prompt(options) {
611
- const { input, schema, config, reconfig, retool, validate, applicable, metadataFn, ...rest } = options;
611
+ const { input, schema, config, reconfig, retool, parse, validate, applicable, metadataFn, ...rest } = options;
612
612
  const hydrateFn = (optionWithInjection, getOptionWithoutInjection) => {
613
613
  return typeof optionWithInjection === 'function'
614
614
  ? getOptionWithoutInjection(resolveFn(optionWithInjection))
@@ -637,6 +637,9 @@ export class AI {
637
637
  metadataFn: hydrateFn(metadataFn, (r) => (async (input, ctxPartial) => {
638
638
  return r(input, await getContext(ctxPartial));
639
639
  })),
640
+ parse: hydrateFn(parse, (r) => (async (raw, ctxPartial) => {
641
+ return r(raw, await getContext(ctxPartial));
642
+ })),
640
643
  validate: hydrateFn(validate, (r) => (async (output, ctxPartial) => {
641
644
  return r(output, await getContext(ctxPartial));
642
645
  })),
@@ -669,7 +672,7 @@ export class AI {
669
672
  * Create an enhanced tool bound to this AI instance
670
673
  */
671
674
  tool(options) {
672
- const { input, schema, call, validate, applicable, ...rest } = options;
675
+ const { input, schema, call, parse, validate, applicable, ...rest } = options;
673
676
  const hydrateFn = (optionWithInjection, getOptionWithoutInjection) => {
674
677
  return typeof optionWithInjection === 'function'
675
678
  ? getOptionWithoutInjection(resolveFn(optionWithInjection))
@@ -698,6 +701,9 @@ export class AI {
698
701
  call: hydrateFn(call, (r) => async (params, refs, ctxPartial) => {
699
702
  return r(params, refs, await getContext(ctxPartial));
700
703
  }),
704
+ parse: hydrateFn(parse, (r) => (async (raw, ctxPartial) => {
705
+ return r(raw, await getContext(ctxPartial));
706
+ })),
701
707
  validate: hydrateFn(validate, (r) => (async (params, ctxPartial) => {
702
708
  return r(params, await getContext(ctxPartial));
703
709
  })),
package/dist/ai.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ai.js","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"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"}
@@ -113,6 +113,20 @@ export declare abstract class BaseAPI<T extends AIBaseTypes, TRequest extends Ba
113
113
  * Subclasses can override to specify which handler method to use
114
114
  */
115
115
  protected abstract getHandlerStreamMethod<TRuntimeContext extends AIContext<T>>(handler?: ModelHandlerFor<T>): ((request: TRequest, ctx: TRuntimeContext) => AsyncIterable<TChunk>) | undefined;
116
+ /**
117
+ * Get optional (preferred) capabilities for model selection.
118
+ *
119
+ * Default implementation returns just what the caller provided. Subclasses
120
+ * override to auto-derive preferences from request shape — e.g. ChatAPI
121
+ * adds `'toolsStrict'` when any tool has `strict: true`. Optional entries
122
+ * never filter models out; they bias selection scoring toward capable models.
123
+ */
124
+ protected getOptionalCapabilities(provided: ModelCapability[], request: TRequest, forStreaming: boolean): ModelCapability[];
125
+ /**
126
+ * Get optional (preferred) parameters for model selection. Same role as
127
+ * `getOptionalCapabilities` but for parameter-level matching.
128
+ */
129
+ protected getOptionalParameters(provided: ModelParameter[], request: TRequest, forStreaming: boolean): ModelParameter[];
116
130
  /**
117
131
  * Get required capabilities for streaming (default: adds 'streaming')
118
132
  * @param provided - Additional capabilities provided by caller
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/apis/base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAmB,SAAS,EAAE,WAAW,EAAE,YAAY,EAAY,MAAM,YAAY,CAAC;AAC7F,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,iBAAiB,EAGjB,eAAe,EACf,eAAe,EACf,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,KAAK,EACN,MAAM,UAAU,CAAC;AAElB;;;;;;;;;;GAUG;AACH,8BAAsB,OAAO,CAC3B,CAAC,SAAS,WAAW,EACrB,QAAQ,SAAS,WAAW,GAAG,WAAW,EAC1C,SAAS,SAAS,YAAY,GAAG,YAAY,EAC7C,MAAM,SAAS,SAAS,GAAG,SAAS;IAExB,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;gBAAT,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAE/B;;;;;;OAMG;IACG,WAAW,CAAC,eAAe,SAAS,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAwE5J;;;;OAIG;IACG,GAAG,CAAC,eAAe,SAAS,iBAAiB,CAAC,CAAC,CAAC,EACpD,OAAO,EAAE,QAAQ,EACjB,GAAG,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC,eAAe,CAAC,CAAC,GAC1C,OAAO,CAAC,SAAS,CAAC;IA8DrB;;;;OAIG;IACI,MAAM,CAAC,eAAe,SAAS,iBAAiB,CAAC,CAAC,CAAC,EACxD,OAAO,EAAE,QAAQ,EACjB,GAAG,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC,eAAe,CAAC,CAAC,GAC1C,aAAa,CAAC,MAAM,CAAC;IA8ExB;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,GAAG,eAAe,EAAE;IAEpI;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,GAAG,cAAc,EAAE;IAEhI;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,MAAM;IAEjD;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM;IAExE;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM;IAE3E;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,SAAS,SAAS,CAAC,CAAC,CAAC,EACpE,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC7B,GAAG,EAAE,eAAe,GACnB,OAAO,CAAC,SAAS,CAAC;IAErB;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,eAAe,SAAS,SAAS,CAAC,CAAC,CAAC,EAC1E,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC7B,GAAG,EAAE,eAAe,GACnB,aAAa,CAAC,MAAM,CAAC;IAExB;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE;IAE9F;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,SAAS;IAE5F;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO;IAE9E;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO;IAE9E;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,eAAe,SAAS,SAAS,CAAC,CAAC,CAAC,EACzE,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAC3B,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS;IAEhF;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC,eAAe,SAAS,SAAS,CAAC,CAAC,CAAC,EAC5E,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAC3B,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,KAAK,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS;IAMnF;;;;OAIG;IACH,SAAS,CAAC,mCAAmC,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,QAAQ,GAAG,eAAe,EAAE;IAIhH;;;OAGG;IACH,SAAS,CAAC,gCAAgC,IAAI,MAAM;IAIpD;;;;;OAKG;IACH,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,KAAK;IAIvF;;;;;;OAMG;IACH,SAAS,CAAC,mBAAmB,CAC3B,cAAc,EAAE,KAAK,EACrB,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC5B,MAAM;IAKT;;;;;;OAMG;IACH,SAAS,CAAC,qBAAqB,CAC7B,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC7B,cAAc,EAAE,KAAK,GACpB,MAAM;IAWT;;;;;OAKG;IACH,SAAS,CAAC,mBAAmB,CAC3B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC5B,MAAM;IAST;;;;;OAKG;IACH,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,GAAG,KAAK;IASzE;;;;;;OAMG;cACa,0BAA0B,CAAC,eAAe,SAAS,SAAS,CAAC,CAAC,CAAC,EAC7E,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC7B,GAAG,EAAE,eAAe,EACpB,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAC3B,OAAO,CAAC,SAAS,CAAC;IAoCrB;;;;;;OAMG;cACc,yBAAyB,CAAC,eAAe,SAAS,SAAS,CAAC,CAAC,CAAC,EAC7E,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC7B,GAAG,EAAE,eAAe,EACpB,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAC3B,aAAa,CAAC,MAAM,CAAC;CAmCzB"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/apis/base.ts"],"names":[],"mappings":"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"}
package/dist/apis/base.js CHANGED
@@ -73,11 +73,20 @@ export class BaseAPI {
73
73
  }
74
74
  else {
75
75
  // No model specified - use selection system
76
- // Build metadata with required capabilities and parameters
76
+ // Build metadata with required + optional capabilities and parameters.
77
+ // Optional entries are *preferences* (registry scores them with up to
78
+ // 2x for capabilities, 1.5x for parameters) — they bias selection
79
+ // toward capable models without filtering anyone out. Required entries
80
+ // are hard filters. ChatAPI promotes per-tool/per-prompt `strict`
81
+ // requests into the right tier here (true → required, number →
82
+ // optional preference); see `getRequiredCapabilities` and
83
+ // `getOptionalCapabilities` in chat.ts.
77
84
  const metadataRequired = {
78
85
  ...ctx.metadata,
79
86
  required: this.getRequiredCapabilities(ctx.metadata?.required || [], request, forStreaming),
87
+ optional: this.getOptionalCapabilities(ctx.metadata?.optional || [], request, forStreaming),
80
88
  requiredParameters: this.getRequiredParameters(ctx.metadata?.requiredParameters || [], request, forStreaming),
89
+ optionalParameters: this.getOptionalParameters(ctx.metadata?.optionalParameters || [], request, forStreaming),
81
90
  };
82
91
  // Build metadata from what used passed in context
83
92
  const metadata = await this.ai.buildMetadata(metadataRequired);
@@ -155,10 +164,14 @@ export class BaseAPI {
155
164
  if (!selected) {
156
165
  throw new Error(this.getNoModelFoundErrorForStreaming());
157
166
  }
158
- // Inject selected model into context for provider access
167
+ // Inject the FULL selected ModelInfo (symmetric with the non-streaming
168
+ // get() path ~line 158). Previously streaming passed only `.id`, so
169
+ // `pickModelInfo` couldn't resolve capabilities and structured-output
170
+ // strict mode was silently dropped for streaming. Opt out of strict per
171
+ // request via the component's `strict` policy, not by starving this.
159
172
  fullCtx.metadata = {
160
173
  ...fullCtx.metadata,
161
- model: selected.model.id,
174
+ model: selected.model,
162
175
  };
163
176
  // Run onModelSelected hook
164
177
  const finalSelected = hooks.onModelSelected
@@ -203,6 +216,24 @@ export class BaseAPI {
203
216
  // ============================================================================
204
217
  // OPTIONAL OVERRIDES (default implementations provided)
205
218
  // ============================================================================
219
+ /**
220
+ * Get optional (preferred) capabilities for model selection.
221
+ *
222
+ * Default implementation returns just what the caller provided. Subclasses
223
+ * override to auto-derive preferences from request shape — e.g. ChatAPI
224
+ * adds `'toolsStrict'` when any tool has `strict: true`. Optional entries
225
+ * never filter models out; they bias selection scoring toward capable models.
226
+ */
227
+ getOptionalCapabilities(provided, request, forStreaming) {
228
+ return [...provided];
229
+ }
230
+ /**
231
+ * Get optional (preferred) parameters for model selection. Same role as
232
+ * `getOptionalCapabilities` but for parameter-level matching.
233
+ */
234
+ getOptionalParameters(provided, request, forStreaming) {
235
+ return [...provided];
236
+ }
206
237
  /**
207
238
  * Get required capabilities for streaming (default: adds 'streaming')
208
239
  * @param provided - Additional capabilities provided by caller