@midscene/core 1.12.3-beta-20260902081623.0 → 1.12.3
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/dist/es/agent/utils.mjs +1 -1
- package/dist/es/ai-model/models/doubao.mjs +95 -0
- package/dist/es/ai-model/models/doubao.mjs.map +1 -0
- package/dist/es/ai-model/models/registry.mjs +1 -1
- package/dist/es/ai-model/models/registry.mjs.map +1 -1
- package/dist/es/report-html-template.mjs +1 -1
- package/dist/es/utils.mjs +1 -1
- package/dist/lib/agent/utils.js +1 -1
- package/dist/lib/ai-model/models/doubao.js +132 -0
- package/dist/lib/ai-model/models/doubao.js.map +1 -0
- package/dist/lib/ai-model/models/registry.js +2 -2
- package/dist/lib/ai-model/models/registry.js.map +1 -1
- package/dist/lib/report-html-template.js +1 -1
- package/dist/lib/utils.js +1 -1
- package/dist/types/ai-model/models/doubao.d.ts +7 -0
- package/package.json +2 -2
- package/dist/es/ai-model/models/doubao/action-output-parser.mjs +0 -62
- package/dist/es/ai-model/models/doubao/action-output-parser.mjs.map +0 -1
- package/dist/es/ai-model/models/doubao/action-space.mjs +0 -103
- package/dist/es/ai-model/models/doubao/action-space.mjs.map +0 -1
- package/dist/es/ai-model/models/doubao/adapter.mjs +0 -76
- package/dist/es/ai-model/models/doubao/adapter.mjs.map +0 -1
- package/dist/es/ai-model/models/doubao/area-protocol.mjs +0 -80
- package/dist/es/ai-model/models/doubao/area-protocol.mjs.map +0 -1
- package/dist/es/ai-model/models/doubao/constants.mjs +0 -6
- package/dist/es/ai-model/models/doubao/constants.mjs.map +0 -1
- package/dist/es/ai-model/models/doubao/element-protocol.mjs +0 -34
- package/dist/es/ai-model/models/doubao/element-protocol.mjs.map +0 -1
- package/dist/es/ai-model/models/doubao/insight-protocol.mjs +0 -62
- package/dist/es/ai-model/models/doubao/insight-protocol.mjs.map +0 -1
- package/dist/es/ai-model/models/doubao/locate-output-parser.mjs +0 -63
- package/dist/es/ai-model/models/doubao/locate-output-parser.mjs.map +0 -1
- package/dist/es/ai-model/models/doubao/locate-shared.mjs +0 -53
- package/dist/es/ai-model/models/doubao/locate-shared.mjs.map +0 -1
- package/dist/es/ai-model/models/doubao/planning-protocol.mjs +0 -47
- package/dist/es/ai-model/models/doubao/planning-protocol.mjs.map +0 -1
- package/dist/es/ai-model/models/doubao/tool-call-parser.mjs +0 -27
- package/dist/es/ai-model/models/doubao/tool-call-parser.mjs.map +0 -1
- package/dist/es/ai-model/models/doubao/tool-call-serializer.mjs +0 -51
- package/dist/es/ai-model/models/doubao/tool-call-serializer.mjs.map +0 -1
- package/dist/es/ai-model/models/doubao/xml.mjs +0 -9
- package/dist/es/ai-model/models/doubao/xml.mjs.map +0 -1
- package/dist/lib/ai-model/models/doubao/action-output-parser.js +0 -99
- package/dist/lib/ai-model/models/doubao/action-output-parser.js.map +0 -1
- package/dist/lib/ai-model/models/doubao/action-space.js +0 -140
- package/dist/lib/ai-model/models/doubao/action-space.js.map +0 -1
- package/dist/lib/ai-model/models/doubao/adapter.js +0 -110
- package/dist/lib/ai-model/models/doubao/adapter.js.map +0 -1
- package/dist/lib/ai-model/models/doubao/area-protocol.js +0 -114
- package/dist/lib/ai-model/models/doubao/area-protocol.js.map +0 -1
- package/dist/lib/ai-model/models/doubao/constants.js +0 -46
- package/dist/lib/ai-model/models/doubao/constants.js.map +0 -1
- package/dist/lib/ai-model/models/doubao/element-protocol.js +0 -68
- package/dist/lib/ai-model/models/doubao/element-protocol.js.map +0 -1
- package/dist/lib/ai-model/models/doubao/insight-protocol.js +0 -96
- package/dist/lib/ai-model/models/doubao/insight-protocol.js.map +0 -1
- package/dist/lib/ai-model/models/doubao/locate-output-parser.js +0 -100
- package/dist/lib/ai-model/models/doubao/locate-output-parser.js.map +0 -1
- package/dist/lib/ai-model/models/doubao/locate-shared.js +0 -93
- package/dist/lib/ai-model/models/doubao/locate-shared.js.map +0 -1
- package/dist/lib/ai-model/models/doubao/planning-protocol.js +0 -81
- package/dist/lib/ai-model/models/doubao/planning-protocol.js.map +0 -1
- package/dist/lib/ai-model/models/doubao/tool-call-parser.js +0 -64
- package/dist/lib/ai-model/models/doubao/tool-call-parser.js.map +0 -1
- package/dist/lib/ai-model/models/doubao/tool-call-serializer.js +0 -88
- package/dist/lib/ai-model/models/doubao/tool-call-serializer.js.map +0 -1
- package/dist/lib/ai-model/models/doubao/xml.js +0 -49
- package/dist/lib/ai-model/models/doubao/xml.js.map +0 -1
- package/dist/types/ai-model/models/doubao/action-output-parser.d.ts +0 -5
- package/dist/types/ai-model/models/doubao/action-space.d.ts +0 -27
- package/dist/types/ai-model/models/doubao/adapter.d.ts +0 -5
- package/dist/types/ai-model/models/doubao/area-protocol.d.ts +0 -2
- package/dist/types/ai-model/models/doubao/constants.d.ts +0 -3
- package/dist/types/ai-model/models/doubao/element-protocol.d.ts +0 -2
- package/dist/types/ai-model/models/doubao/insight-protocol.d.ts +0 -2
- package/dist/types/ai-model/models/doubao/locate-output-parser.d.ts +0 -3
- package/dist/types/ai-model/models/doubao/locate-shared.d.ts +0 -10
- package/dist/types/ai-model/models/doubao/planning-protocol.d.ts +0 -2
- package/dist/types/ai-model/models/doubao/tool-call-parser.d.ts +0 -11
- package/dist/types/ai-model/models/doubao/tool-call-serializer.d.ts +0 -12
- package/dist/types/ai-model/models/doubao/xml.d.ts +0 -3
package/dist/es/agent/utils.mjs
CHANGED
|
@@ -154,7 +154,7 @@ async function matchElementFromCache(context, cacheEntry, cachePrompt, cacheable
|
|
|
154
154
|
return;
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
|
-
const getMidsceneVersion = ()=>"1.12.3
|
|
157
|
+
const getMidsceneVersion = ()=>"1.12.3";
|
|
158
158
|
const parsePrompt = (prompt)=>{
|
|
159
159
|
if ('string' == typeof prompt) return {
|
|
160
160
|
textPrompt: prompt,
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { parseModelResponseJson } from "../shared/json.mjs";
|
|
2
|
+
import { createLocateResultValue, unwrapCoordinateListLikeInput } from "../shared/model-locate-result/index.mjs";
|
|
3
|
+
const doubaoBboxCoordinatesMeta = {
|
|
4
|
+
shape: 'bbox',
|
|
5
|
+
order: 'xy',
|
|
6
|
+
normalizedBy: 1000
|
|
7
|
+
};
|
|
8
|
+
const doubaoPointCoordinatesMeta = {
|
|
9
|
+
shape: 'point',
|
|
10
|
+
order: 'xy',
|
|
11
|
+
normalizedBy: 1000
|
|
12
|
+
};
|
|
13
|
+
const coordinateSequencePattern = /(?:^|[^a-zA-Z0-9])(\d+(?:[^a-zA-Z0-9]+\d+)+)(?=$|[^a-zA-Z0-9])/g;
|
|
14
|
+
function isFourFiniteNumberArray(input) {
|
|
15
|
+
return Array.isArray(input) && 4 === input.length && input.every((value)=>'number' == typeof value && Number.isFinite(value));
|
|
16
|
+
}
|
|
17
|
+
function parseNumbersFromUnexpectedBboxStructure(input) {
|
|
18
|
+
const serialized = JSON.stringify(input);
|
|
19
|
+
if (!serialized) return [];
|
|
20
|
+
const sequences = Array.from(serialized.matchAll(coordinateSequencePattern), (match)=>match[1].match(/\d+/g)?.map(Number) ?? []);
|
|
21
|
+
const longestLength = Math.max(0, ...sequences.map((sequence)=>sequence.length));
|
|
22
|
+
const longestSequences = sequences.filter((sequence)=>sequence.length === longestLength);
|
|
23
|
+
if (1 !== longestSequences.length) return [];
|
|
24
|
+
return longestSequences[0];
|
|
25
|
+
}
|
|
26
|
+
function parseDoubaoRawLocateValue(input) {
|
|
27
|
+
const bbox = unwrapCoordinateListLikeInput(input);
|
|
28
|
+
const bboxList = isFourFiniteNumberArray(bbox) ? bbox : parseNumbersFromUnexpectedBboxStructure(bbox);
|
|
29
|
+
if (4 === bboxList.length || 5 === bboxList.length) return createLocateResultValue(doubaoBboxCoordinatesMeta, [
|
|
30
|
+
bboxList[0],
|
|
31
|
+
bboxList[1],
|
|
32
|
+
bboxList[2],
|
|
33
|
+
bboxList[3]
|
|
34
|
+
]);
|
|
35
|
+
if (6 === bboxList.length || 2 === bboxList.length || 3 === bboxList.length || 7 === bboxList.length) return createLocateResultValue(doubaoPointCoordinatesMeta, [
|
|
36
|
+
bboxList[0],
|
|
37
|
+
bboxList[1]
|
|
38
|
+
]);
|
|
39
|
+
if (8 === bboxList.length) return createLocateResultValue(doubaoBboxCoordinatesMeta, [
|
|
40
|
+
bboxList[0],
|
|
41
|
+
bboxList[1],
|
|
42
|
+
bboxList[4],
|
|
43
|
+
bboxList[5]
|
|
44
|
+
]);
|
|
45
|
+
const msg = `invalid bbox data for doubao-vision mode: ${JSON.stringify(bbox)} `;
|
|
46
|
+
throw new Error(msg);
|
|
47
|
+
}
|
|
48
|
+
const buildDoubaoChatCompletionParams = (input)=>{
|
|
49
|
+
const { midsceneDefaults, userConfig } = input;
|
|
50
|
+
const { reasoningEnabled, reasoningEffort } = userConfig;
|
|
51
|
+
const commonOverrideConfig = {};
|
|
52
|
+
if (void 0 !== userConfig.temperature) commonOverrideConfig.temperature = userConfig.temperature;
|
|
53
|
+
if ('none' !== userConfig.responseFormat && input.expectedJsonObjectResponse) commonOverrideConfig.response_format = {
|
|
54
|
+
type: 'json_object'
|
|
55
|
+
};
|
|
56
|
+
const modelSpecificConfig = {};
|
|
57
|
+
if ('default' !== reasoningEnabled) {
|
|
58
|
+
modelSpecificConfig.thinking = {
|
|
59
|
+
type: reasoningEnabled ?? false ? 'enabled' : 'disabled'
|
|
60
|
+
};
|
|
61
|
+
if (reasoningEffort) modelSpecificConfig.reasoning_effort = reasoningEffort;
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
config: {
|
|
65
|
+
...midsceneDefaults,
|
|
66
|
+
...commonOverrideConfig,
|
|
67
|
+
...modelSpecificConfig
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
const doubaoVisionAdapter = {
|
|
72
|
+
jsonParser: parseModelResponseJson,
|
|
73
|
+
chatCompletion: {
|
|
74
|
+
unsupportedUserConfig: [
|
|
75
|
+
'reasoningBudget'
|
|
76
|
+
],
|
|
77
|
+
buildChatCompletionParams: buildDoubaoChatCompletionParams,
|
|
78
|
+
useReasoningAsContentFallback: true
|
|
79
|
+
},
|
|
80
|
+
locate: {
|
|
81
|
+
element: {
|
|
82
|
+
resultFormat: {
|
|
83
|
+
coordinates: doubaoBboxCoordinatesMeta,
|
|
84
|
+
parseRawLocateValue: parseDoubaoRawLocateValue
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
const doubaoAdapters = {
|
|
90
|
+
'doubao-vision': doubaoVisionAdapter,
|
|
91
|
+
'doubao-seed': doubaoVisionAdapter
|
|
92
|
+
};
|
|
93
|
+
export { doubaoAdapters, parseDoubaoRawLocateValue };
|
|
94
|
+
|
|
95
|
+
//# sourceMappingURL=doubao.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-model/models/doubao.mjs","sources":["../../../../src/ai-model/models/doubao.ts"],"sourcesContent":["import type { TModelFamily } from '@midscene/shared/env';\nimport type {\n ChatCompletionCallContext,\n ChatCompletionParamsResult,\n ModelAdapterDefinition,\n} from '../model-adapter/types';\nimport { parseModelResponseJson } from '../shared/json';\nimport {\n type LocateResultValue,\n createLocateResultValue,\n unwrapCoordinateListLikeInput,\n} from '../shared/model-locate-result';\n\nconst doubaoBboxCoordinatesMeta = {\n shape: 'bbox',\n order: 'xy',\n normalizedBy: 1000,\n} as const;\nconst doubaoPointCoordinatesMeta = {\n shape: 'point',\n order: 'xy',\n normalizedBy: 1000,\n} as const;\n\n/**\n * Finds a sequence of numbers separated by punctuation or whitespace in a\n * string. Separators cannot be letters, which prevents extracting the `2` in\n * a mixed alphanumeric token such as `bbox_2d` as a coordinate.\n */\nconst coordinateSequencePattern =\n /(?:^|[^a-zA-Z0-9])(\\d+(?:[^a-zA-Z0-9]+\\d+)+)(?=$|[^a-zA-Z0-9])/g;\n\nfunction isFourFiniteNumberArray(input: unknown): input is number[] {\n return (\n Array.isArray(input) &&\n input.length === 4 &&\n input.every((value) => typeof value === 'number' && Number.isFinite(value))\n );\n}\n\nfunction parseNumbersFromUnexpectedBboxStructure(input: unknown): number[] {\n const serialized = JSON.stringify(input);\n if (!serialized) {\n return [];\n }\n\n const sequences = Array.from(\n serialized.matchAll(coordinateSequencePattern),\n (match) => match[1].match(/\\d+/g)?.map(Number) ?? [],\n );\n const longestLength = Math.max(\n 0,\n ...sequences.map((sequence) => sequence.length),\n );\n const longestSequences = sequences.filter(\n (sequence) => sequence.length === longestLength,\n );\n\n if (longestSequences.length !== 1) {\n return [];\n }\n\n return longestSequences[0];\n}\n\nexport function parseDoubaoRawLocateValue(input: unknown): LocateResultValue {\n const bbox = unwrapCoordinateListLikeInput(input as any);\n const bboxList = isFourFiniteNumberArray(bbox)\n ? bbox\n : parseNumbersFromUnexpectedBboxStructure(bbox);\n\n if (bboxList.length === 4 || bboxList.length === 5) {\n return createLocateResultValue(doubaoBboxCoordinatesMeta, [\n bboxList[0],\n bboxList[1],\n bboxList[2],\n bboxList[3],\n ]);\n }\n\n if (\n bboxList.length === 6 ||\n bboxList.length === 2 ||\n bboxList.length === 3 ||\n bboxList.length === 7\n ) {\n return createLocateResultValue(doubaoPointCoordinatesMeta, [\n bboxList[0],\n bboxList[1],\n ]);\n }\n\n if (bboxList.length === 8) {\n return createLocateResultValue(doubaoBboxCoordinatesMeta, [\n bboxList[0],\n bboxList[1],\n bboxList[4],\n bboxList[5],\n ]);\n }\n\n const msg = `invalid bbox data for doubao-vision mode: ${JSON.stringify(bbox)} `;\n throw new Error(msg);\n}\n\nconst buildDoubaoChatCompletionParams = (\n input: ChatCompletionCallContext,\n): ChatCompletionParamsResult => {\n const { midsceneDefaults, userConfig } = input;\n const { reasoningEnabled, reasoningEffort } = userConfig;\n const commonOverrideConfig: Record<string, unknown> = {};\n\n if (userConfig.temperature !== undefined) {\n commonOverrideConfig.temperature = userConfig.temperature;\n }\n\n // Doubao Chat Completions JSON mode:\n // https://docs.volcengine.com/docs/82379/1568221?lang=zh\n if (\n userConfig.responseFormat !== 'none' &&\n input.expectedJsonObjectResponse\n ) {\n commonOverrideConfig.response_format = { type: 'json_object' };\n }\n\n const modelSpecificConfig: Record<string, unknown> = {};\n\n if (reasoningEnabled !== 'default') {\n modelSpecificConfig.thinking = {\n type: (reasoningEnabled ?? false) ? 'enabled' : 'disabled',\n };\n if (reasoningEffort) {\n modelSpecificConfig.reasoning_effort = reasoningEffort;\n }\n }\n\n return {\n config: {\n ...midsceneDefaults,\n ...commonOverrideConfig,\n ...modelSpecificConfig,\n },\n };\n};\n\nconst doubaoVisionAdapter: ModelAdapterDefinition = {\n jsonParser: parseModelResponseJson,\n chatCompletion: {\n unsupportedUserConfig: ['reasoningBudget'],\n buildChatCompletionParams: buildDoubaoChatCompletionParams,\n useReasoningAsContentFallback: true,\n },\n locate: {\n element: {\n resultFormat: {\n coordinates: doubaoBboxCoordinatesMeta,\n parseRawLocateValue: parseDoubaoRawLocateValue,\n },\n },\n },\n};\n\nexport const doubaoAdapters = {\n 'doubao-vision': doubaoVisionAdapter,\n 'doubao-seed': doubaoVisionAdapter,\n} satisfies Pick<\n Record<TModelFamily, ModelAdapterDefinition>,\n 'doubao-vision' | 'doubao-seed'\n>;\n"],"names":["doubaoBboxCoordinatesMeta","doubaoPointCoordinatesMeta","coordinateSequencePattern","isFourFiniteNumberArray","input","Array","value","Number","parseNumbersFromUnexpectedBboxStructure","serialized","JSON","sequences","match","longestLength","Math","sequence","longestSequences","parseDoubaoRawLocateValue","bbox","unwrapCoordinateListLikeInput","bboxList","createLocateResultValue","msg","Error","buildDoubaoChatCompletionParams","midsceneDefaults","userConfig","reasoningEnabled","reasoningEffort","commonOverrideConfig","undefined","modelSpecificConfig","doubaoVisionAdapter","parseModelResponseJson","doubaoAdapters"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { ResolvedModelAdapter } from "../model-adapter/resolve.mjs";
|
|
|
3
3
|
import { autoGlmAdapters } from "./auto-glm/adapter.mjs";
|
|
4
4
|
import { deepSeekAdapters } from "./deepseek/adapter.mjs";
|
|
5
5
|
import { defaultOpenAICompatibleAdapterConfig } from "./default.mjs";
|
|
6
|
-
import { doubaoAdapters } from "./doubao
|
|
6
|
+
import { doubaoAdapters } from "./doubao.mjs";
|
|
7
7
|
import { geminiAdapters } from "./gemini.mjs";
|
|
8
8
|
import { glmAdapters } from "./glm.mjs";
|
|
9
9
|
import { gptAdapters } from "./gpt.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-model/models/registry.mjs","sources":["../../../../src/ai-model/models/registry.ts"],"sourcesContent":["import type { IModelConfig, TModelFamily } from '@midscene/shared/env';\nimport { getDebug } from '@midscene/shared/logger';\nimport { ResolvedModelAdapter } from '../model-adapter/resolve';\nimport type {\n ModelAdapter,\n ModelAdapterDefinition,\n ModelRuntime,\n} from '../model-adapter/types';\nimport { autoGlmAdapters } from './auto-glm/adapter';\nimport { deepSeekAdapters } from './deepseek/adapter';\nimport { defaultOpenAICompatibleAdapterConfig } from './default';\nimport { doubaoAdapters } from './doubao
|
|
1
|
+
{"version":3,"file":"ai-model/models/registry.mjs","sources":["../../../../src/ai-model/models/registry.ts"],"sourcesContent":["import type { IModelConfig, TModelFamily } from '@midscene/shared/env';\nimport { getDebug } from '@midscene/shared/logger';\nimport { ResolvedModelAdapter } from '../model-adapter/resolve';\nimport type {\n ModelAdapter,\n ModelAdapterDefinition,\n ModelRuntime,\n} from '../model-adapter/types';\nimport { autoGlmAdapters } from './auto-glm/adapter';\nimport { deepSeekAdapters } from './deepseek/adapter';\nimport { defaultOpenAICompatibleAdapterConfig } from './default';\nimport { doubaoAdapters } from './doubao';\nimport { geminiAdapters } from './gemini';\nimport { glmAdapters } from './glm';\nimport { gptAdapters } from './gpt';\nimport { kimiAdapters } from './kimi';\nimport { mimoAdapters } from './mimo';\nimport { qwenAdapters } from './qwen';\nimport { uiTarsAdapters } from './ui-tars/adapter';\n\nexport const MODEL_ADAPTER_CONFIGS = {\n ...qwenAdapters,\n ...deepSeekAdapters,\n ...doubaoAdapters,\n ...geminiAdapters,\n ...uiTarsAdapters,\n ...glmAdapters,\n ...autoGlmAdapters,\n ...gptAdapters,\n ...kimiAdapters,\n ...mimoAdapters,\n} satisfies Record<TModelFamily, ModelAdapterDefinition>;\n\ntype ModelAdapterCacheKey = TModelFamily | 'default';\n\nconst modelAdapterCache = new Map<ModelAdapterCacheKey, ModelAdapter>();\nconst debugModelAdapter = getDebug('ai:model-adapter');\n\nfunction debugAdapterUnsupportedUserConfig(\n modelFamily: ModelAdapterCacheKey,\n adapter: ModelAdapter,\n): void {\n if (adapter.chatCompletion.unsupportedUserConfig.length === 0) {\n return;\n }\n\n debugModelAdapter(\n `model adapter \"${modelFamily}\" unsupportedUserConfig: ${JSON.stringify(\n adapter.chatCompletion.unsupportedUserConfig,\n )}`,\n );\n}\n\nexport function getModelAdapter(modelFamily?: TModelFamily): ModelAdapter {\n const cacheKey: ModelAdapterCacheKey = modelFamily ?? 'default';\n let adapter = modelAdapterCache.get(cacheKey);\n if (adapter) {\n return adapter;\n }\n\n const config = modelFamily\n ? MODEL_ADAPTER_CONFIGS[modelFamily]\n : defaultOpenAICompatibleAdapterConfig;\n if (!config) {\n throw new Error(\n `No model adapter registered for modelFamily: ${modelFamily}`,\n );\n }\n\n adapter = new ResolvedModelAdapter(config, cacheKey);\n modelAdapterCache.set(cacheKey, adapter);\n debugAdapterUnsupportedUserConfig(cacheKey, adapter);\n\n return adapter;\n}\n\nexport function getModelRuntime(config: IModelConfig): ModelRuntime {\n return {\n config,\n adapter: getModelAdapter(config.modelFamily),\n };\n}\n"],"names":["MODEL_ADAPTER_CONFIGS","qwenAdapters","deepSeekAdapters","doubaoAdapters","geminiAdapters","uiTarsAdapters","glmAdapters","autoGlmAdapters","gptAdapters","kimiAdapters","mimoAdapters","modelAdapterCache","Map","debugModelAdapter","getDebug","debugAdapterUnsupportedUserConfig","modelFamily","adapter","JSON","getModelAdapter","cacheKey","config","defaultOpenAICompatibleAdapterConfig","Error","ResolvedModelAdapter","getModelRuntime"],"mappings":";;;;;;;;;;;;;AAoBO,MAAMA,wBAAwB;IACnC,GAAGC,YAAY;IACf,GAAGC,gBAAgB;IACnB,GAAGC,cAAc;IACjB,GAAGC,cAAc;IACjB,GAAGC,cAAc;IACjB,GAAGC,WAAW;IACd,GAAGC,eAAe;IAClB,GAAGC,WAAW;IACd,GAAGC,YAAY;IACf,GAAGC,YAAY;AACjB;AAIA,MAAMC,oBAAoB,IAAIC;AAC9B,MAAMC,oBAAoBC,SAAS;AAEnC,SAASC,kCACPC,WAAiC,EACjCC,OAAqB;IAErB,IAAIA,AAAwD,MAAxDA,QAAQ,cAAc,CAAC,qBAAqB,CAAC,MAAM,EACrD;IAGFJ,kBACE,CAAC,eAAe,EAAEG,YAAY,yBAAyB,EAAEE,KAAK,SAAS,CACrED,QAAQ,cAAc,CAAC,qBAAqB,GAC3C;AAEP;AAEO,SAASE,gBAAgBH,WAA0B;IACxD,MAAMI,WAAiCJ,eAAe;IACtD,IAAIC,UAAUN,kBAAkB,GAAG,CAACS;IACpC,IAAIH,SACF,OAAOA;IAGT,MAAMI,SAASL,cACXhB,qBAAqB,CAACgB,YAAY,GAClCM;IACJ,IAAI,CAACD,QACH,MAAM,IAAIE,MACR,CAAC,6CAA6C,EAAEP,aAAa;IAIjEC,UAAU,IAAIO,qBAAqBH,QAAQD;IAC3CT,kBAAkB,GAAG,CAACS,UAAUH;IAChCF,kCAAkCK,UAAUH;IAE5C,OAAOA;AACT;AAEO,SAASQ,gBAAgBJ,MAAoB;IAClD,OAAO;QACLA;QACA,SAASF,gBAAgBE,OAAO,WAAW;IAC7C;AACF"}
|