@kindgi/adapter-model-shared 0.1.6 → 0.1.7
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 +3 -1
- package/dist/ai-sdk/provider.d.ts +28 -1
- package/dist/ai-sdk/provider.d.ts.map +1 -1
- package/dist/ai-sdk/provider.js +50 -4
- package/dist/ai-sdk/provider.js.map +1 -1
- package/package.json +2 -2
- package/src/ai-sdk/provider.ts +73 -4
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# `@kindgi/adapter-model-shared`
|
|
2
2
|
|
|
3
|
-
Shared plumbing for Kindgi's model adapters: what every adapter needs to turn a vendor's API into a [`@kindgi/capabilities`](../../capabilities/) `ModelProvider` the same way.
|
|
3
|
+
Shared plumbing for Kindgi's model adapters: what every adapter needs to turn a vendor's API into a [`@kindgi/capabilities`](../../capabilities/) `ModelProvider` the same way. The Azure OpenAI and Amazon Bedrock adapters are built on it.
|
|
4
4
|
|
|
5
5
|
Today's engine for sending the requests is the [AI SDK](https://ai-sdk.dev)'s provider packages (`@ai-sdk/*`), called at the provider-spec level (`doGenerate`). It never uses the `ai` package, its agent loop or Vercel's gateway, so no request goes anywhere but the vendor's own API. The engine sits behind one module, `@kindgi/adapter-model-shared/ai-sdk`, the only entry point whose types are a library's. Swapping it later touches that module and the adapters that hand their models in, nothing else.
|
|
6
6
|
|
|
@@ -48,8 +48,10 @@ Today's engine for sending the requests is the [AI SDK](https://ai-sdk.dev)'s pr
|
|
|
48
48
|
- `metadata`: the registration's `ProviderMetadata`;
|
|
49
49
|
- `languageModel(name, fetch)`: the engine's model for a model name, sending with the `fetch` it's given (each HTTP attempt is counted through it);
|
|
50
50
|
- `providerOptions?(model)`: provider options on every call (Azure: `{ azure: { store: false } }`);
|
|
51
|
+
- `cacheMark?(model)`: for a vendor that caches only the prompt prefixes a request marks, the provider options that mark a prompt message for this model, or `undefined` for none (Bedrock: `{ bedrock: { cachePoint: { type: 'default' } } }` for Claude and Nova). The first system message is marked, and the last message when the call will be sent again (it has tools, or an earlier answer), as the Anthropic adapter places `cache_control`;
|
|
51
52
|
- `cost(model, usage)`: the adapter's cost formula;
|
|
52
53
|
- `attempts?`: HTTP attempts in all on a retryable failure (default 3);
|
|
54
|
+
- `fetch?`: the fetch each attempt goes through, for an endpoint the registration chose: the runtime's (`AdapterFactoryInput.fetch`, which refuses the hosts its deployment forbids). Default: the global `fetch`;
|
|
53
55
|
- `beforeAttempt?(signal)`: run before each HTTP attempt, inside the retries, with the call's abort signal. An adapter signs in here (a token, a key, the runtime's identity) when its library would report a failure as a plain error, and throws a `ModelProviderError`. What it returns is that attempt's own: the adapter's code the library calls during the attempt (a credential provider, a fetch wrapper) reads it with `attemptPrepared()`, and calls running at once never see each other's;
|
|
54
56
|
- `explain?(error)`: a sentence after a failed call's message, where the vendor's words don't say what to check (Bedrock's 403). The kind, status and attempts stay as they are.
|
|
55
57
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LanguageModelV4, SharedV4ProviderOptions } from '@ai-sdk/provider';
|
|
1
|
+
import type { LanguageModelV4, LanguageModelV4Prompt, SharedV4ProviderOptions } from '@ai-sdk/provider';
|
|
2
2
|
import type { ModelInfo, ModelProvider, ProviderMetadata, UsageCounters } from '@kindgi/capabilities';
|
|
3
3
|
import { ModelProviderError } from '../errors.js';
|
|
4
4
|
export interface AiSdkModelProviderOptions {
|
|
@@ -7,10 +7,22 @@ export interface AiSdkModelProviderOptions {
|
|
|
7
7
|
readonly languageModel: (name: string, fetch: typeof globalThis.fetch) => LanguageModelV4;
|
|
8
8
|
/** Provider options on every call (OpenAI: `store: false`). */
|
|
9
9
|
readonly providerOptions?: (model: ModelInfo) => SharedV4ProviderOptions | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* For a vendor that caches only the prompt prefixes a request marks (Bedrock's cache points):
|
|
12
|
+
* the provider options that mark a message, for a model whose prompts get marked, else
|
|
13
|
+
* undefined. Which messages are marked: `withCacheMarks`.
|
|
14
|
+
*/
|
|
15
|
+
readonly cacheMark?: (model: ModelInfo) => SharedV4ProviderOptions | undefined;
|
|
10
16
|
/** Our cost formula for this vendor, from its usage. */
|
|
11
17
|
readonly cost: (model: ModelInfo, usage: UsageCounters) => number;
|
|
12
18
|
/** HTTP attempts in all on a retryable failure (408, 409, 429, 5xx, network). Default 3. */
|
|
13
19
|
readonly attempts?: number;
|
|
20
|
+
/**
|
|
21
|
+
* The fetch each HTTP attempt goes through, counted. For an endpoint the registration
|
|
22
|
+
* chose, the runtime's (`AdapterFactoryInput.fetch`, which refuses the hosts its deployment
|
|
23
|
+
* forbids). Default: the global `fetch`.
|
|
24
|
+
*/
|
|
25
|
+
readonly fetch?: typeof globalThis.fetch;
|
|
14
26
|
/**
|
|
15
27
|
* Run before each HTTP attempt, inside the retries, with the call's abort signal: where an
|
|
16
28
|
* adapter signs in (the runtime's identity, a key) itself, so a failure is typed by the adapter
|
|
@@ -33,4 +45,19 @@ export interface AiSdkModelProviderOptions {
|
|
|
33
45
|
*/
|
|
34
46
|
export declare function attemptPrepared<T>(): T | undefined;
|
|
35
47
|
export declare function createAiSdkModelProvider(options: AiSdkModelProviderOptions): ModelProvider;
|
|
48
|
+
/**
|
|
49
|
+
* The prompt with prompt-cache marks, placed as the Anthropic adapter places `cache_control`
|
|
50
|
+
* (`model-anthropic/src/cache.ts`):
|
|
51
|
+
* - the first system message: the agent's own prompt. The tools render before it, so the
|
|
52
|
+
* marked prefix holds them too. Later system messages (retrieved context) change from turn
|
|
53
|
+
* to turn, so they stay after it;
|
|
54
|
+
* - the last message, when another call will send this prefix again: a call with tools (the
|
|
55
|
+
* next step of a tool loop sends everything again plus the results) or a conversation with an
|
|
56
|
+
* earlier answer (its next turn does). A one-off call leaves it unmarked: its tail is never
|
|
57
|
+
* sent again, so a write would only cost more.
|
|
58
|
+
* Two marks at most, under Bedrock's four per request. A prefix shorter than the model's minimum
|
|
59
|
+
* isn't cached and costs nothing extra (seen live on Claude and Nova on Bedrock, 2026-10-10), so
|
|
60
|
+
* no marks are held back for size. The prompt passed in isn't changed.
|
|
61
|
+
*/
|
|
62
|
+
export declare function withCacheMarks(prompt: LanguageModelV4Prompt, mark: SharedV4ProviderOptions, sentAgain: boolean): LanguageModelV4Prompt;
|
|
36
63
|
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/ai-sdk/provider.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EACV,eAAe,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/ai-sdk/provider.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EACV,eAAe,EAIf,qBAAqB,EAErB,uBAAuB,EACxB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAIV,SAAS,EAET,aAAa,EAEb,gBAAgB,EAChB,aAAa,EACd,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,kBAAkB,EAAsB,MAAM,cAAc,CAAC;AAGtE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,2FAA2F;IAC3F,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,UAAU,CAAC,KAAK,KAAK,eAAe,CAAC;IAC1F,+DAA+D;IAC/D,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,uBAAuB,GAAG,SAAS,CAAC;IACrF;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,uBAAuB,GAAG,SAAS,CAAC;IAC/E,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,KAAK,MAAM,CAAC;IAClE,4FAA4F;IAC5F,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IACzC;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/E;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,MAAM,GAAG,SAAS,CAAC;CACtE;AAKD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,KAAK,CAAC,GAAG,SAAS,CAElD;AAQD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,GAAG,aAAa,CAgJ1F;AA2MD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,qBAAqB,EAC7B,IAAI,EAAE,uBAAuB,EAC7B,SAAS,EAAE,OAAO,GACjB,qBAAqB,CASvB"}
|
package/dist/ai-sdk/provider.js
CHANGED
|
@@ -17,7 +17,7 @@ import { AsyncLocalStorage } from 'node:async_hooks';
|
|
|
17
17
|
import { AISDKError, APICallError, EmptyResponseBodyError, InvalidResponseDataError, JSONParseError, TypeValidationError, } from '@ai-sdk/provider';
|
|
18
18
|
import { samplingFor } from '@kindgi/capabilities';
|
|
19
19
|
import { createAttemptCounter } from '@kindgi/capabilities/attempts';
|
|
20
|
-
import { nameToolsAsSent } from '@kindgi/capabilities/tool-names';
|
|
20
|
+
import { nameToolsAsSent, toolIdsBySentName } from '@kindgi/capabilities/tool-names';
|
|
21
21
|
import { ModelProviderError, modelProviderError } from '../errors.js';
|
|
22
22
|
import { withRetries } from '../retries.js';
|
|
23
23
|
/** Each attempt's `beforeAttempt` result, for the code the library calls during that attempt. */
|
|
@@ -30,12 +30,15 @@ const attemptScope = new AsyncLocalStorage();
|
|
|
30
30
|
export function attemptPrepared() {
|
|
31
31
|
return attemptScope.getStore()?.prepared;
|
|
32
32
|
}
|
|
33
|
+
// A tool id on the wire: dots aren't allowed in tool names. A call's name comes back
|
|
34
|
+
// through the request's own tools (`toolIdsBySentName`), since an id can hold `__`
|
|
35
|
+
// itself (an MCP server names its tools as it likes); `ourName` is the fallback.
|
|
33
36
|
const wireName = (name) => name.replace(/\./g, '__');
|
|
34
37
|
const ourName = (name) => name.replace(/__/g, '.');
|
|
35
38
|
export function createAiSdkModelProvider(options) {
|
|
36
39
|
const { metadata } = options;
|
|
37
40
|
const models = new Map(metadata.models.map((m) => [m.name, m]));
|
|
38
|
-
const counter = createAttemptCounter();
|
|
41
|
+
const counter = createAttemptCounter(options.fetch);
|
|
39
42
|
const built = new Map();
|
|
40
43
|
const lm = (name) => {
|
|
41
44
|
let model = built.get(name);
|
|
@@ -54,11 +57,16 @@ export function createAiSdkModelProvider(options) {
|
|
|
54
57
|
}
|
|
55
58
|
const startedAt = Date.now();
|
|
56
59
|
const toolIds = input.tools?.map((t) => t.name) ?? [];
|
|
60
|
+
const toolIdOf = toolIdsBySentName(toolIds, wireName, ourName);
|
|
57
61
|
const sampling = samplingFor(model, input);
|
|
58
62
|
const maxOutputTokens = input.maxOutputTokens ?? model.maxOutputTokens;
|
|
59
63
|
const extra = options.providerOptions?.(model);
|
|
64
|
+
const prompt = toPrompt(input.messages, { provider: metadata.id, model: input.model }, toolIds);
|
|
65
|
+
const mark = options.cacheMark?.(model);
|
|
60
66
|
const call = {
|
|
61
|
-
prompt:
|
|
67
|
+
prompt: mark === undefined
|
|
68
|
+
? prompt
|
|
69
|
+
: withCacheMarks(prompt, mark, toolIds.length > 0 || continues(input.messages)),
|
|
62
70
|
...(maxOutputTokens !== undefined && { maxOutputTokens }),
|
|
63
71
|
...(sampling.temperature !== undefined && { temperature: sampling.temperature }),
|
|
64
72
|
...(input.tools !== undefined &&
|
|
@@ -107,7 +115,7 @@ export function createAiSdkModelProvider(options) {
|
|
|
107
115
|
if (part.type === 'tool-call' && part.providerExecuted !== true) {
|
|
108
116
|
toolCalls.push({
|
|
109
117
|
id: part.toolCallId,
|
|
110
|
-
name:
|
|
118
|
+
name: toolIdOf(part.toolName),
|
|
111
119
|
arguments: parseJson(part.input),
|
|
112
120
|
});
|
|
113
121
|
}
|
|
@@ -327,6 +335,44 @@ function toPrompt(messages, owner, toolIds) {
|
|
|
327
335
|
}
|
|
328
336
|
return prompt;
|
|
329
337
|
}
|
|
338
|
+
/**
|
|
339
|
+
* The prompt with prompt-cache marks, placed as the Anthropic adapter places `cache_control`
|
|
340
|
+
* (`model-anthropic/src/cache.ts`):
|
|
341
|
+
* - the first system message: the agent's own prompt. The tools render before it, so the
|
|
342
|
+
* marked prefix holds them too. Later system messages (retrieved context) change from turn
|
|
343
|
+
* to turn, so they stay after it;
|
|
344
|
+
* - the last message, when another call will send this prefix again: a call with tools (the
|
|
345
|
+
* next step of a tool loop sends everything again plus the results) or a conversation with an
|
|
346
|
+
* earlier answer (its next turn does). A one-off call leaves it unmarked: its tail is never
|
|
347
|
+
* sent again, so a write would only cost more.
|
|
348
|
+
* Two marks at most, under Bedrock's four per request. A prefix shorter than the model's minimum
|
|
349
|
+
* isn't cached and costs nothing extra (seen live on Claude and Nova on Bedrock, 2026-10-10), so
|
|
350
|
+
* no marks are held back for size. The prompt passed in isn't changed.
|
|
351
|
+
*/
|
|
352
|
+
export function withCacheMarks(prompt, mark, sentAgain) {
|
|
353
|
+
const out = [...prompt];
|
|
354
|
+
const system = out.findIndex((m) => m.role === 'system');
|
|
355
|
+
if (system >= 0)
|
|
356
|
+
out[system] = marked(out[system], mark);
|
|
357
|
+
const last = out.length - 1;
|
|
358
|
+
if (sentAgain && last >= 0 && out[last]?.role !== 'system') {
|
|
359
|
+
out[last] = marked(out[last], mark);
|
|
360
|
+
}
|
|
361
|
+
return out;
|
|
362
|
+
}
|
|
363
|
+
/** Whether a conversation goes on after this call: it has an earlier answer. */
|
|
364
|
+
function continues(messages) {
|
|
365
|
+
return messages.some((m) => m.role === 'assistant');
|
|
366
|
+
}
|
|
367
|
+
/** The message with the mark's options merged into its own, per provider. */
|
|
368
|
+
function marked(message, mark) {
|
|
369
|
+
const own = message.providerOptions ?? {};
|
|
370
|
+
const merged = { ...own };
|
|
371
|
+
for (const [provider, values] of Object.entries(mark)) {
|
|
372
|
+
merged[provider] = { ...own[provider], ...values };
|
|
373
|
+
}
|
|
374
|
+
return { ...message, providerOptions: merged };
|
|
375
|
+
}
|
|
330
376
|
/** The error with the adapter's sentence after its message, when it has one. */
|
|
331
377
|
function explained(error, explain) {
|
|
332
378
|
const sentence = explain?.(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/ai-sdk/provider.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EACL,UAAU,EACV,YAAY,EACZ,sBAAsB,EACtB,wBAAwB,EACxB,cAAc,EACd,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAW1B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAYnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAyB,WAAW,EAAE,MAAM,eAAe,CAAC;AA4BnE,iGAAiG;AACjG,MAAM,YAAY,GAAG,IAAI,iBAAiB,EAAkC,CAAC;AAE7E;;;;GAIG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,YAAY,CAAC,QAAQ,EAAE,EAAE,QAAyB,CAAC;AAC5D,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC7D,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAE3D,MAAM,UAAU,wBAAwB,CAAC,OAAkC;IACzE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC7B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAU,CAAC,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA2B,CAAC;IACjD,MAAM,EAAE,GAAG,CAAC,IAAY,EAAE,EAAE;QAC1B,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACnD,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,KAAK,CAAC,MAAM,CAAC,KAAqB;YAChC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,IAAI,kBAAkB,CAC1B,iBAAiB,EACjB,SAAS,EACT,aAAa,QAAQ,CAAC,EAAE,mBAAmB,KAAK,CAAC,KAAK,GAAG,CAC1D,CAAC;YACJ,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACtD,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3C,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,CAAC;YACvE,MAAM,KAAK,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,IAAI,GAA+B;gBACvC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC;gBACxF,GAAG,CAAC,eAAe,KAAK,SAAS,IAAI,EAAE,eAAe,EAAE,CAAC;gBACzD,GAAG,CAAC,QAAQ,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAChF,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS;oBAC3B,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI;oBACxB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC7B,IAAI,EAAE,UAAmB;wBACzB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;wBACtB,WAAW,EAAE,CAAC,CAAC,WAAW;wBAC1B,WAAW,EAAE,CAAC,CAAC,WAAoB;qBACpC,CAAC,CAAC;oBACH,UAAU,EAAE,EAAE,IAAI,EAAE,MAAe,EAAE;iBACtC,CAAC;gBACJ,GAAG,CAAC,KAAK,CAAC,gBAAgB,KAAK,SAAS,IAAI;oBAC1C,cAAc,EAAE;wBACd,IAAI,EAAE,MAAe;wBACrB,MAAM,EAAE,KAAK,CAAC,gBAAgB,CAAC,MAAe;wBAC9C,IAAI,EAAE,KAAK,CAAC,gBAAgB,CAAC,IAAI;qBAClC;iBACF,CAAC;gBACF,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ;oBAC7B,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1F,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;gBAC1E,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvF,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;aACvD,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CACvC,WAAW,CACT,KAAK,IAAI,EAAE;gBACT,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAClE,OAAO,YAAY,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YAChF,CAAC,EACD;gBACE,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC;gBAC/B,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;gBACrE,QAAQ,EAAE,eAAe;gBACzB,qFAAqF;gBACrF,kFAAkF;gBAClF,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;oBAC1B,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;oBAChC,IAAI,GAAG,KAAK,SAAS,IAAI,OAAO,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;wBACvD,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBACnE,CAAC;oBACD,OAAO,SAAS,CAAC,GAAG,IAAI,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC/E,CAAC;aACF,CACF,CACF,CAAC;YACF,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;YAE7B,MAAM,SAAS,GAAoB,EAAE,CAAC;YACtC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;oBAChE,SAAS,CAAC,IAAI,CAAC;wBACb,EAAE,EAAE,IAAI,CAAC,UAAU;wBACnB,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;wBAC5B,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;qBACjC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAkB,CAAC;gBAC5C,SAAS,CAAC,CAAC,CAAC,GAAG;oBACb,GAAG,KAAK;oBACR,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC;iBACtF,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzF,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpC,MAAM,QAAQ,GAAuB;gBACnC,GAAG,QAAQ,CAAC,QAAQ;gBACpB,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC7B,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE;oBACrB,OAAO,EACL,SAAS,IAAI,CAAC;wBACZ,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;wBACpD,CAAC,CAAC,SAAS,IAAI,CAAC;4BACd,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;4BACnB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;iBAC1B,CAAC,CAAC;aACJ,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC;YAC/C,MAAM,SAAS,GACb,OAAO,CAAC,cAAc,CAAC;gBACvB,OAAO,CAAC,YAAY,CAAC;gBACrB,OAAO,CAAC,kBAAkB,CAAC;gBAC3B,OAAO,CAAC,iBAAiB,CAAC;gBAC1B,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;YACtB,OAAO;gBACL,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE;gBACzF,YAAY,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC;gBACnF,KAAK;gBACL,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;gBACnC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAClC,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;gBACjD,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACvF,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC;gBAChE,GAAG,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC3D,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBACrE,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;aACzC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,SAAS,iBAAiB,CAAC,MAAc;IACvC,IAAI,MAAM,KAAK,UAAU;QAAE,OAAO,MAAM,CAAC;IACzC,IAAI,MAAM,KAAK,eAAe;QAAE,OAAO,KAAK,CAAC;IAC7C,OAAO,MAA8D,CAAC;AACxE,CAAC;AAED,qGAAqG;AACrG,MAAM,mBAAmB,GAAG,gCAAgC,CAAC;AAE7D,SAAS,YAAY,CAAC,MAGrB;IACC,QAAQ,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,gBAAgB;YACnB,OAAO,gBAAgB,CAAC;QAC1B,KAAK,YAAY;YACf,OAAO,UAAU,CAAC;QACpB;YACE,OAAO,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IACjG,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,CAGhB;IACC,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC;IACrC,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC;IACvC,MAAM,SAAS,GAAG,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC;IAC3C,OAAO;QACL,YAAY,EAAE,CAAC,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;QAC9F,gBAAgB,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;QAC3C,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;QACpD,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;QACvD,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AA4BD,SAAS,WAAW,CAAC,KAAiB,EAAE,OAA0C;IAChF,MAAM,KAAK,GAA6B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW;YACxB,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,GAAG,CAAC,CAAC,CAAC,gBAAgB,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC;aACxD,CAAC,CAAC;aACA,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;YACxB,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,GAAG,CAAC,CAAC,CAAC,gBAAgB,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC;aACxD,CAAC,CAAC;aACA,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,gBAAgB,KAAK,IAAI;YAC5D,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,WAAW;gBACjB,EAAE,EAAE,CAAC,CAAC,UAAU;gBAChB,GAAG,CAAC,CAAC,CAAC,gBAAgB,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC;aACxD,CAAC,CAAC;IACP,CAAC;IACD,MAAM,KAAK,GAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;IAC7E,OAAO,UAAU,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;AAC9E,CAAC;AAED,SAAS,WAAW,CAAC,SAA6B,EAAE,KAAiB;IACnE,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAClF,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CACtB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CACrD,CAAC;QACX,OAAO,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,wFAAwF;AACxF,SAAS,QAAQ,CACf,QAAiC,EACjC,KAAiB,EACjB,OAA0B;IAE1B,MAAM,MAAM,GAA6B,EAAE,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC1F,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;YAChC,KAAK,MAAM,CAAC,IAAI,KAAK;gBAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7D,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YACtD,MAAM,OAAO,GAAsE,EAAE,CAAC;YACtF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAU,CAAC,CAAC,CAAC;gBAC3D,yFAAyF;gBACzF,wFAAwF;gBACxF,0FAA0F;gBAC1F,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9E,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;gBAC9C,IAAI,UAAU,GAAG,KAAK,CAAC;gBACvB,MAAM,SAAS,GAAG,GAAG,EAAE;oBACrB,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;wBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;oBACzF,UAAU,GAAG,IAAI,CAAC;gBACpB,CAAC,CAAC;gBACF,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAC5B,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW;wBACxB,OAAO,CAAC,IAAI,CAAC;4BACX,IAAI,EAAE,WAAW;4BACjB,IAAI,EAAE,CAAC,CAAC,IAAI;4BACZ,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;yBAC3C,CAAC,CAAC;yBACA,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,QAAQ,EAAE,CAAC;wBACvC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;4BAC3C,OAAO,CAAC,IAAI,CAAC;gCACX,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,CAAC,CAAC,IAAI;gCACZ,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;6BAC3C,CAAC,CAAC;oBACP,CAAC;yBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;wBAAE,SAAS,EAAE,CAAC;yBACrC,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;wBAChC,IAAI,CAAC,QAAQ;4BAAE,SAAS,EAAE,CAAC;wBAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wBACzB,IAAI,CAAC,KAAK,SAAS;4BACjB,OAAO,CAAC,IAAI,CAAC;gCACX,IAAI,EAAE,WAAW;gCACjB,UAAU,EAAE,CAAC,CAAC,EAAE;gCAChB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;gCAC1B,KAAK,EAAE,CAAC,CAAC,SAAS;gCAClB,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;6BAC3C,CAAC,CAAC;oBACP,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC1E,KAAK,MAAM,CAAC,IAAI,KAAK;oBACnB,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,WAAW;wBACjB,UAAU,EAAE,CAAC,CAAC,EAAE;wBAChB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;wBAC1B,KAAK,EAAE,CAAC,CAAC,SAAS;qBACnB,CAAC,CAAC;YACP,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG;gBACX,IAAI,EAAE,aAAsB;gBAC5B,UAAU,EAAE,EAAE;gBACd,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS;gBACxC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAe,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;aACpD,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACvC,IAAI,IAAI,EAAE,IAAI,KAAK,MAAM;gBAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;gBAC9C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gFAAgF;AAChF,SAAS,SAAS,CAChB,KAAyB,EACzB,OAA6C;IAE7C,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IAC5D,OAAO,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,IAAI,QAAQ,EAAE,EAAE;QACtF,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,KAAK,YAAY,kBAAkB;QAAE,OAAO,KAAK,CAAC;IACtD,IAAI,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,YAAY,kBAAkB,EAAE,CAAC;QAChF,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,YAAY;IACZ,cAAc;IACd,cAAc;IACd,WAAW;IACX,OAAO;IACP,WAAW;IACX,WAAW;IACX,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,yBAAyB;IACzB,sBAAsB;IACtB,yBAAyB;IACzB,mBAAmB;IACnB,kBAAkB;IAClB,oBAAoB;CACrB,CAAC,CAAC;AAEH,kGAAkG;AAClG,SAAS,WAAW,CAAC,KAAc;IACjC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAW,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;QACpE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACZ,MAAM,IAAI,GAAI,CAAwB,CAAC,IAAI,CAAC;QAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACvE,IAAI,CAAC,YAAY,SAAS,IAAI,mCAAmC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;IACjG,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CACxB,KAAc;IAEd,MAAM,IAAI,GAAG,IAAI,GAAG,EAAW,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;QACpE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACZ,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7C,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,KAAK,EACH,oIAAoI;aACvI,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAI,CAAwB,CAAC,IAAI,CAAC;QAC5C,IACE,OAAO,IAAI,KAAK,QAAQ;YACxB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1B,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YACxB,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAC1B,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,oGAAoG;AACpG,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,CACL,wBAAwB,CAAC,UAAU,CAAC,KAAK,CAAC;QAC1C,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC;QAChC,mBAAmB,CAAC,UAAU,CAAC,KAAK,CAAC;QACrC,sBAAsB,CAAC,UAAU,CAAC,KAAK,CAAC,CACzC,CAAC;AACJ,CAAC;AAOD,yEAAyE;AACzE,SAAS,eAAe,CAAC,KAAc;IACrC,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrE,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO;YACL,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;YACvD,KAAK,EAAE,GAAG,CAAC,OAAO;YAClB,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IACD,+FAA+F;IAC/F,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACnE,IAAI,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO;YACL,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;YACnE,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO;YAClD,SAAS,EAAE,KAAK,CAAC,WAAW;YAC5B,GAAG,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC;SAC/E,CAAC;IACJ,CAAC;IACD,sDAAsD;IACtD,IAAI,WAAW,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC1D,0FAA0F;IAC1F,oDAAoD;IACpD,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;IACzE,CAAC;IACD,2FAA2F;IAC3F,uDAAuD;IACvD,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC9F,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AACzD,CAAC"}
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/ai-sdk/provider.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kindgi/adapter-model-shared",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"description": "Shared plumbing for Kindgi's model adapters: retries with counted attempts, typed errors, the reasoning state across a pause, usage onto Kindgi's counters. Today's engine is the AI SDK's provider packages, behind one module.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@ai-sdk/provider": "4.0.25",
|
|
31
|
-
"@kindgi/capabilities": "0.1.
|
|
31
|
+
"@kindgi/capabilities": "0.1.7"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@types/node": "^22.10.5",
|
package/src/ai-sdk/provider.ts
CHANGED
|
@@ -47,7 +47,7 @@ import type {
|
|
|
47
47
|
UsageCounters,
|
|
48
48
|
} from '@kindgi/capabilities';
|
|
49
49
|
import { createAttemptCounter } from '@kindgi/capabilities/attempts';
|
|
50
|
-
import { nameToolsAsSent } from '@kindgi/capabilities/tool-names';
|
|
50
|
+
import { nameToolsAsSent, toolIdsBySentName } from '@kindgi/capabilities/tool-names';
|
|
51
51
|
|
|
52
52
|
import { ModelProviderError, modelProviderError } from '../errors.js';
|
|
53
53
|
import { type RetryableFailure, withRetries } from '../retries.js';
|
|
@@ -58,10 +58,22 @@ export interface AiSdkModelProviderOptions {
|
|
|
58
58
|
readonly languageModel: (name: string, fetch: typeof globalThis.fetch) => LanguageModelV4;
|
|
59
59
|
/** Provider options on every call (OpenAI: `store: false`). */
|
|
60
60
|
readonly providerOptions?: (model: ModelInfo) => SharedV4ProviderOptions | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* For a vendor that caches only the prompt prefixes a request marks (Bedrock's cache points):
|
|
63
|
+
* the provider options that mark a message, for a model whose prompts get marked, else
|
|
64
|
+
* undefined. Which messages are marked: `withCacheMarks`.
|
|
65
|
+
*/
|
|
66
|
+
readonly cacheMark?: (model: ModelInfo) => SharedV4ProviderOptions | undefined;
|
|
61
67
|
/** Our cost formula for this vendor, from its usage. */
|
|
62
68
|
readonly cost: (model: ModelInfo, usage: UsageCounters) => number;
|
|
63
69
|
/** HTTP attempts in all on a retryable failure (408, 409, 429, 5xx, network). Default 3. */
|
|
64
70
|
readonly attempts?: number;
|
|
71
|
+
/**
|
|
72
|
+
* The fetch each HTTP attempt goes through, counted. For an endpoint the registration
|
|
73
|
+
* chose, the runtime's (`AdapterFactoryInput.fetch`, which refuses the hosts its deployment
|
|
74
|
+
* forbids). Default: the global `fetch`.
|
|
75
|
+
*/
|
|
76
|
+
readonly fetch?: typeof globalThis.fetch;
|
|
65
77
|
/**
|
|
66
78
|
* Run before each HTTP attempt, inside the retries, with the call's abort signal: where an
|
|
67
79
|
* adapter signs in (the runtime's identity, a key) itself, so a failure is typed by the adapter
|
|
@@ -90,13 +102,16 @@ export function attemptPrepared<T>(): T | undefined {
|
|
|
90
102
|
return attemptScope.getStore()?.prepared as T | undefined;
|
|
91
103
|
}
|
|
92
104
|
|
|
105
|
+
// A tool id on the wire: dots aren't allowed in tool names. A call's name comes back
|
|
106
|
+
// through the request's own tools (`toolIdsBySentName`), since an id can hold `__`
|
|
107
|
+
// itself (an MCP server names its tools as it likes); `ourName` is the fallback.
|
|
93
108
|
const wireName = (name: string) => name.replace(/\./g, '__');
|
|
94
109
|
const ourName = (name: string) => name.replace(/__/g, '.');
|
|
95
110
|
|
|
96
111
|
export function createAiSdkModelProvider(options: AiSdkModelProviderOptions): ModelProvider {
|
|
97
112
|
const { metadata } = options;
|
|
98
113
|
const models = new Map(metadata.models.map((m) => [m.name, m] as const));
|
|
99
|
-
const counter = createAttemptCounter();
|
|
114
|
+
const counter = createAttemptCounter(options.fetch);
|
|
100
115
|
const built = new Map<string, LanguageModelV4>();
|
|
101
116
|
const lm = (name: string) => {
|
|
102
117
|
let model = built.get(name);
|
|
@@ -120,11 +135,21 @@ export function createAiSdkModelProvider(options: AiSdkModelProviderOptions): Mo
|
|
|
120
135
|
}
|
|
121
136
|
const startedAt = Date.now();
|
|
122
137
|
const toolIds = input.tools?.map((t) => t.name) ?? [];
|
|
138
|
+
const toolIdOf = toolIdsBySentName(toolIds, wireName, ourName);
|
|
123
139
|
const sampling = samplingFor(model, input);
|
|
124
140
|
const maxOutputTokens = input.maxOutputTokens ?? model.maxOutputTokens;
|
|
125
141
|
const extra = options.providerOptions?.(model);
|
|
142
|
+
const prompt = toPrompt(
|
|
143
|
+
input.messages,
|
|
144
|
+
{ provider: metadata.id, model: input.model },
|
|
145
|
+
toolIds,
|
|
146
|
+
);
|
|
147
|
+
const mark = options.cacheMark?.(model);
|
|
126
148
|
const call: LanguageModelV4CallOptions = {
|
|
127
|
-
prompt:
|
|
149
|
+
prompt:
|
|
150
|
+
mark === undefined
|
|
151
|
+
? prompt
|
|
152
|
+
: withCacheMarks(prompt, mark, toolIds.length > 0 || continues(input.messages)),
|
|
128
153
|
...(maxOutputTokens !== undefined && { maxOutputTokens }),
|
|
129
154
|
...(sampling.temperature !== undefined && { temperature: sampling.temperature }),
|
|
130
155
|
...(input.tools !== undefined &&
|
|
@@ -179,7 +204,7 @@ export function createAiSdkModelProvider(options: AiSdkModelProviderOptions): Mo
|
|
|
179
204
|
if (part.type === 'tool-call' && part.providerExecuted !== true) {
|
|
180
205
|
toolCalls.push({
|
|
181
206
|
id: part.toolCallId,
|
|
182
|
-
name:
|
|
207
|
+
name: toolIdOf(part.toolName),
|
|
183
208
|
arguments: parseJson(part.input),
|
|
184
209
|
});
|
|
185
210
|
}
|
|
@@ -430,6 +455,50 @@ function toPrompt(
|
|
|
430
455
|
return prompt;
|
|
431
456
|
}
|
|
432
457
|
|
|
458
|
+
/**
|
|
459
|
+
* The prompt with prompt-cache marks, placed as the Anthropic adapter places `cache_control`
|
|
460
|
+
* (`model-anthropic/src/cache.ts`):
|
|
461
|
+
* - the first system message: the agent's own prompt. The tools render before it, so the
|
|
462
|
+
* marked prefix holds them too. Later system messages (retrieved context) change from turn
|
|
463
|
+
* to turn, so they stay after it;
|
|
464
|
+
* - the last message, when another call will send this prefix again: a call with tools (the
|
|
465
|
+
* next step of a tool loop sends everything again plus the results) or a conversation with an
|
|
466
|
+
* earlier answer (its next turn does). A one-off call leaves it unmarked: its tail is never
|
|
467
|
+
* sent again, so a write would only cost more.
|
|
468
|
+
* Two marks at most, under Bedrock's four per request. A prefix shorter than the model's minimum
|
|
469
|
+
* isn't cached and costs nothing extra (seen live on Claude and Nova on Bedrock, 2026-10-10), so
|
|
470
|
+
* no marks are held back for size. The prompt passed in isn't changed.
|
|
471
|
+
*/
|
|
472
|
+
export function withCacheMarks(
|
|
473
|
+
prompt: LanguageModelV4Prompt,
|
|
474
|
+
mark: SharedV4ProviderOptions,
|
|
475
|
+
sentAgain: boolean,
|
|
476
|
+
): LanguageModelV4Prompt {
|
|
477
|
+
const out = [...prompt];
|
|
478
|
+
const system = out.findIndex((m) => m.role === 'system');
|
|
479
|
+
if (system >= 0) out[system] = marked(out[system] as LanguageModelV4Message, mark);
|
|
480
|
+
const last = out.length - 1;
|
|
481
|
+
if (sentAgain && last >= 0 && out[last]?.role !== 'system') {
|
|
482
|
+
out[last] = marked(out[last] as LanguageModelV4Message, mark);
|
|
483
|
+
}
|
|
484
|
+
return out;
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
/** Whether a conversation goes on after this call: it has an earlier answer. */
|
|
488
|
+
function continues(messages: readonly ModelMessage[]): boolean {
|
|
489
|
+
return messages.some((m) => m.role === 'assistant');
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
/** The message with the mark's options merged into its own, per provider. */
|
|
493
|
+
function marked<M extends LanguageModelV4Message>(message: M, mark: SharedV4ProviderOptions): M {
|
|
494
|
+
const own = message.providerOptions ?? {};
|
|
495
|
+
const merged: Record<string, Record<string, unknown>> = { ...own };
|
|
496
|
+
for (const [provider, values] of Object.entries(mark)) {
|
|
497
|
+
merged[provider] = { ...own[provider], ...values };
|
|
498
|
+
}
|
|
499
|
+
return { ...message, providerOptions: merged as SharedV4ProviderOptions };
|
|
500
|
+
}
|
|
501
|
+
|
|
433
502
|
/** The error with the adapter's sentence after its message, when it has one. */
|
|
434
503
|
function explained(
|
|
435
504
|
error: ModelProviderError,
|