@just-every/ensemble 0.2.248 → 0.2.250
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 +32 -0
- package/dist/cjs/index.cjs +6 -2
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/model_providers/openai_compatible.cjs +57 -0
- package/dist/cjs/model_providers/openai_compatible.d.ts +22 -0
- package/dist/cjs/model_providers/openai_compatible.d.ts.map +1 -0
- package/dist/cjs/model_providers/openai_compatible.js.map +1 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/cjs/utils/external_models.cjs +11 -5
- package/dist/cjs/utils/external_models.d.ts.map +1 -1
- package/dist/cjs/utils/external_models.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/model_providers/openai_compatible.d.ts +22 -0
- package/dist/model_providers/openai_compatible.d.ts.map +1 -0
- package/dist/model_providers/openai_compatible.js +51 -0
- package/dist/model_providers/openai_compatible.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/external_models.d.ts.map +1 -1
- package/dist/utils/external_models.js +11 -5
- package/dist/utils/external_models.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -113,6 +113,38 @@ console.log('Validation Result:', {
|
|
|
113
113
|
});
|
|
114
114
|
```
|
|
115
115
|
|
|
116
|
+
### Custom OpenAI-Compatible Endpoints
|
|
117
|
+
|
|
118
|
+
Register local or self-hosted OpenAI-compatible chat-completions endpoints before making requests. For LM Studio, `http://127.0.0.1:1234` is normalized to `http://127.0.0.1:1234/v1`.
|
|
119
|
+
|
|
120
|
+
```typescript
|
|
121
|
+
import { ensembleRequest, registerOpenAICompatibleModel } from '@just-every/ensemble';
|
|
122
|
+
|
|
123
|
+
registerOpenAICompatibleModel({
|
|
124
|
+
id: 'google/gemma-4-12b',
|
|
125
|
+
endpoint: 'http://127.0.0.1:1234',
|
|
126
|
+
cost: {
|
|
127
|
+
input_per_million: 0,
|
|
128
|
+
output_per_million: 0,
|
|
129
|
+
},
|
|
130
|
+
features: {
|
|
131
|
+
context_length: 32768,
|
|
132
|
+
max_output_tokens: 4096,
|
|
133
|
+
tool_use: false,
|
|
134
|
+
},
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
for await (const event of ensembleRequest([{ type: 'message', role: 'user', content: 'Hello from local Gemma.' }], {
|
|
138
|
+
model: 'google/gemma-4-12b',
|
|
139
|
+
})) {
|
|
140
|
+
if (event.type === 'message_complete') {
|
|
141
|
+
console.log(event.content);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Local endpoints that do not require authentication use a placeholder API key internally because the OpenAI SDK requires a non-empty value. Pass `apiKey` when your endpoint enforces authentication. The optional `cost` field uses the same per-million token pricing shape as built-in models, and defaults to zero-cost tracking when omitted.
|
|
147
|
+
|
|
116
148
|
## Documentation
|
|
117
149
|
|
|
118
150
|
- [Request Lifecycle & Failures](docs/retry-behavior.md) - Outer request status, retries, timeouts, verification, and failure handling
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -14,8 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
18
|
-
exports.ensembleResult = exports.ensembleLiveText = exports.ensembleLiveAudio = exports.ensembleLive = exports.createAudioStreamFromMediaStream = exports.ensembleListen = exports.ensembleVoice = exports.ensembleImage = exports.ensembleEmbed = exports.ensembleRequest = exports.quotaTracker = exports.costTracker = exports.updateModelClasses = exports.getAllModelClasses = exports.resetModelClass = exports.setModelClassRandom = exports.removeModelFromClass = exports.addModelToClass = exports.setModelClassModels = exports.overrideModelClass = exports.getModelClassNames = exports.getModelClass = exports.exportAgent = exports.agentToolCache = exports.getAgentSpecificTools = exports.cloneAgent = exports.Agent = exports.mergeHistoryThread = exports.truncateLargeValues = exports.verifyOutput = exports.write_source = exports.read_source = exports.hasExpansionTools = exports.getSummaryTools = exports.getSummaryCacheStats = exports.clearSummaryCache = exports.getTruncationMessage = void 0;
|
|
17
|
+
exports.prepareToolArguments = exports.agentHasStatusTracking = exports.timeoutPromise = exports.handleToolCall = exports.executeToolWithLifecycle = exports.runSequential = exports.SequentialQueue = exports.sequentialQueue = exports.RunningToolTracker = exports.runningToolTracker = exports.ConfigurationError = exports.ModelNotFoundError = exports.QuotaExceededError = exports.PauseAbortError = exports.AbortError = exports.ToolExecutionError = exports.ProviderError = exports.EnsembleError = exports.generateFootnotes = exports.formatCitation = exports.createCitationTracker = exports.detectImageType = exports.isValidBase64 = exports.hasEventHandler = exports.emitEvent = exports.setEventHandler = exports.getEventController = exports.waitWhilePaused = exports.resume = exports.pause = exports.isPaused = exports.getPauseController = exports.AudioStreamPlayer = exports.createToolFunction = exports.findModel = exports.MODEL_CLASSES = exports.MODEL_REGISTRY = exports.normalizeOpenAICompatibleEndpoint = exports.registerOpenAICompatibleModel = exports.OpenAICompatibleProvider = exports.isExternalModel = exports.getExternalProvider = exports.getExternalModel = exports.registerExternalModel = exports.canRunAgent = exports.isProviderKeyValid = exports.getModelFromClass = exports.getModelFromAgent = exports.getProviderFromModel = exports.getModelProvider = void 0;
|
|
18
|
+
exports.ensembleResult = exports.ensembleLiveText = exports.ensembleLiveAudio = exports.ensembleLive = exports.createAudioStreamFromMediaStream = exports.ensembleListen = exports.ensembleVoice = exports.ensembleImage = exports.ensembleEmbed = exports.ensembleRequest = exports.quotaTracker = exports.costTracker = exports.updateModelClasses = exports.getAllModelClasses = exports.resetModelClass = exports.setModelClassRandom = exports.removeModelFromClass = exports.addModelToClass = exports.setModelClassModels = exports.overrideModelClass = exports.getModelClassNames = exports.getModelClass = exports.exportAgent = exports.agentToolCache = exports.getAgentSpecificTools = exports.cloneAgent = exports.Agent = exports.mergeHistoryThread = exports.truncateLargeValues = exports.verifyOutput = exports.write_source = exports.read_source = exports.hasExpansionTools = exports.getSummaryTools = exports.getSummaryCacheStats = exports.clearSummaryCache = exports.getTruncationMessage = exports.shouldSummarizeResult = exports.processToolResult = exports.createSummary = void 0;
|
|
19
19
|
__exportStar(require("./types/types.cjs"), exports);
|
|
20
20
|
var model_provider_js_1 = require("./model_providers/model_provider.cjs");
|
|
21
21
|
Object.defineProperty(exports, "getModelProvider", { enumerable: true, get: function () { return model_provider_js_1.getModelProvider; } });
|
|
@@ -30,6 +30,10 @@ Object.defineProperty(exports, "registerExternalModel", { enumerable: true, get:
|
|
|
30
30
|
Object.defineProperty(exports, "getExternalModel", { enumerable: true, get: function () { return external_models_js_1.getExternalModel; } });
|
|
31
31
|
Object.defineProperty(exports, "getExternalProvider", { enumerable: true, get: function () { return external_models_js_1.getExternalProvider; } });
|
|
32
32
|
Object.defineProperty(exports, "isExternalModel", { enumerable: true, get: function () { return external_models_js_1.isExternalModel; } });
|
|
33
|
+
var openai_compatible_js_1 = require("./model_providers/openai_compatible.cjs");
|
|
34
|
+
Object.defineProperty(exports, "OpenAICompatibleProvider", { enumerable: true, get: function () { return openai_compatible_js_1.OpenAICompatibleProvider; } });
|
|
35
|
+
Object.defineProperty(exports, "registerOpenAICompatibleModel", { enumerable: true, get: function () { return openai_compatible_js_1.registerOpenAICompatibleModel; } });
|
|
36
|
+
Object.defineProperty(exports, "normalizeOpenAICompatibleEndpoint", { enumerable: true, get: function () { return openai_compatible_js_1.normalizeOpenAICompatibleEndpoint; } });
|
|
33
37
|
var model_data_js_1 = require("./data/model_data.cjs");
|
|
34
38
|
Object.defineProperty(exports, "MODEL_REGISTRY", { enumerable: true, get: function () { return model_data_js_1.MODEL_REGISTRY; } });
|
|
35
39
|
Object.defineProperty(exports, "MODEL_CLASSES", { enumerable: true, get: function () { return model_data_js_1.MODEL_CLASSES; } });
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from "./types/types.cjs";
|
|
|
2
2
|
export { getModelProvider, getProviderFromModel, getModelFromAgent, getModelFromClass, isProviderKeyValid, canRunAgent, ModelProvider, } from "./model_providers/model_provider.cjs";
|
|
3
3
|
export * from "./utils/message_history.cjs";
|
|
4
4
|
export { registerExternalModel, getExternalModel, getExternalProvider, isExternalModel, } from "./utils/external_models.cjs";
|
|
5
|
+
export { OpenAICompatibleProvider, registerOpenAICompatibleModel, normalizeOpenAICompatibleEndpoint, type OpenAICompatibleModelOptions, } from "./model_providers/openai_compatible.cjs";
|
|
5
6
|
export { MODEL_REGISTRY, MODEL_CLASSES, findModel } from "./data/model_data.cjs";
|
|
6
7
|
export type { ModelProviderID, ModelUsage, TieredPrice, TimeBasedPrice, ModelEntry } from "./data/model_data.cjs";
|
|
7
8
|
export * from "./utils/delta_buffer.cjs";
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EACH,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,aAAa,GAChB,MAAM,qCAAqC,CAAC;AAG7C,cAAc,4BAA4B,CAAC;AAG3C,OAAO,EACH,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAClB,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,mDAAiC;AAGjC,yEAQ6C;AAPzC,qHAAA,gBAAgB,OAAA;AAChB,yHAAA,oBAAoB,OAAA;AACpB,sHAAA,iBAAiB,OAAA;AACjB,sHAAA,iBAAiB,OAAA;AACjB,uHAAA,kBAAkB,OAAA;AAClB,gHAAA,WAAW,OAAA;AAKf,6DAA2C;AAG3C,iEAKoC;AAJhC,2HAAA,qBAAqB,OAAA;AACrB,sHAAA,gBAAgB,OAAA;AAChB,yHAAA,mBAAmB,OAAA;AACnB,qHAAA,eAAe,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OpenAICompatibleProvider = void 0;
|
|
4
|
+
exports.normalizeOpenAICompatibleEndpoint = normalizeOpenAICompatibleEndpoint;
|
|
5
|
+
exports.registerOpenAICompatibleModel = registerOpenAICompatibleModel;
|
|
6
|
+
const external_models_js_1 = require("../utils/external_models.cjs");
|
|
7
|
+
const openai_chat_js_1 = require("./openai_chat.cjs");
|
|
8
|
+
const DEFAULT_LOCAL_API_KEY = 'not-needed';
|
|
9
|
+
const DEFAULT_OPENAI_COMPATIBLE_FEATURES = {
|
|
10
|
+
context_length: 128000,
|
|
11
|
+
input_modality: ['text'],
|
|
12
|
+
output_modality: ['text'],
|
|
13
|
+
tool_use: false,
|
|
14
|
+
streaming: true,
|
|
15
|
+
json_output: true,
|
|
16
|
+
max_output_tokens: 8192,
|
|
17
|
+
};
|
|
18
|
+
function normalizeOpenAICompatibleEndpoint(endpoint) {
|
|
19
|
+
if (!endpoint || endpoint.trim().length === 0) {
|
|
20
|
+
throw new Error('OpenAI-compatible endpoint is required.');
|
|
21
|
+
}
|
|
22
|
+
const url = new URL(endpoint);
|
|
23
|
+
if (url.pathname === '' || url.pathname === '/') {
|
|
24
|
+
url.pathname = '/v1';
|
|
25
|
+
}
|
|
26
|
+
url.pathname = url.pathname.replace(/\/+$/, '');
|
|
27
|
+
return url.toString().replace(/\/+$/, '');
|
|
28
|
+
}
|
|
29
|
+
class OpenAICompatibleProvider extends openai_chat_js_1.OpenAIChat {
|
|
30
|
+
endpoint;
|
|
31
|
+
constructor(options) {
|
|
32
|
+
const endpoint = normalizeOpenAICompatibleEndpoint(options.endpoint);
|
|
33
|
+
const providerId = (options.providerId || `openai-compatible:${options.id}`);
|
|
34
|
+
super(providerId, options.apiKey || DEFAULT_LOCAL_API_KEY, endpoint, options.defaultHeaders, options.commonParams);
|
|
35
|
+
this.endpoint = endpoint;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.OpenAICompatibleProvider = OpenAICompatibleProvider;
|
|
39
|
+
function registerOpenAICompatibleModel(options) {
|
|
40
|
+
const provider = new OpenAICompatibleProvider(options);
|
|
41
|
+
const providerId = (options.providerId || `openai-compatible:${options.id}`);
|
|
42
|
+
const model = {
|
|
43
|
+
id: options.id,
|
|
44
|
+
aliases: options.aliases,
|
|
45
|
+
provider: providerId,
|
|
46
|
+
cost: options.cost,
|
|
47
|
+
features: {
|
|
48
|
+
...DEFAULT_OPENAI_COMPATIBLE_FEATURES,
|
|
49
|
+
...options.features,
|
|
50
|
+
},
|
|
51
|
+
class: options.class,
|
|
52
|
+
description: options.description || `OpenAI-compatible model at ${provider.endpoint}`,
|
|
53
|
+
};
|
|
54
|
+
(0, external_models_js_1.registerExternalModel)(model, provider);
|
|
55
|
+
return provider;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=openai_compatible.js.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ModelCost, ModelFeatures } from "../types/types.cjs";
|
|
2
|
+
import { OpenAIChat } from "./openai_chat.cjs";
|
|
3
|
+
export interface OpenAICompatibleModelOptions {
|
|
4
|
+
id: string;
|
|
5
|
+
endpoint: string;
|
|
6
|
+
apiKey?: string;
|
|
7
|
+
providerId?: string;
|
|
8
|
+
aliases?: string[];
|
|
9
|
+
cost?: ModelCost;
|
|
10
|
+
features?: ModelFeatures;
|
|
11
|
+
class?: string;
|
|
12
|
+
description?: string;
|
|
13
|
+
defaultHeaders?: Record<string, string | null | undefined>;
|
|
14
|
+
commonParams?: Record<string, unknown>;
|
|
15
|
+
}
|
|
16
|
+
export declare function normalizeOpenAICompatibleEndpoint(endpoint: string): string;
|
|
17
|
+
export declare class OpenAICompatibleProvider extends OpenAIChat {
|
|
18
|
+
readonly endpoint: string;
|
|
19
|
+
constructor(options: OpenAICompatibleModelOptions);
|
|
20
|
+
}
|
|
21
|
+
export declare function registerOpenAICompatibleModel(options: OpenAICompatibleModelOptions): OpenAICompatibleProvider;
|
|
22
|
+
//# sourceMappingURL=openai_compatible.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai_compatible.d.ts","sourceRoot":"","sources":["../../../model_providers/openai_compatible.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAc,aAAa,EAAmB,MAAM,mBAAmB,CAAC;AAE1F,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAc9C,MAAM,WAAW,4BAA4B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAW1E;AAED,qBAAa,wBAAyB,SAAQ,UAAU;IACpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,OAAO,EAAE,4BAA4B;CAcpD;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,4BAA4B,GAAG,wBAAwB,CAkB7G"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai_compatible.js","sourceRoot":"","sources":["../../../model_providers/openai_compatible.ts"],"names":[],"mappings":";;;AAuCA,8EAWC;AAqBD,sEAkBC;AA/ED,oEAAoE;AACpE,qDAA8C;AAE9C,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAE3C,MAAM,kCAAkC,GAAkB;IACtD,cAAc,EAAE,MAAM;IACtB,cAAc,EAAE,CAAC,MAAM,CAAC;IACxB,eAAe,EAAE,CAAC,MAAM,CAAC;IACzB,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,iBAAiB,EAAE,IAAI;CAC1B,CAAC;AAgBF,SAAgB,iCAAiC,CAAC,QAAgB;IAC9D,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;QAC9C,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;IACzB,CAAC;IACD,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,MAAa,wBAAyB,SAAQ,2BAAU;IAC3C,QAAQ,CAAS;IAE1B,YAAY,OAAqC;QAC7C,MAAM,QAAQ,GAAG,iCAAiC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,qBAAqB,OAAO,CAAC,EAAE,EAAE,CAAoB,CAAC;QAEhG,KAAK,CACD,UAAU,EACV,OAAO,CAAC,MAAM,IAAI,qBAAqB,EACvC,QAAQ,EACR,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,YAAY,CACvB,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;CACJ;AAjBD,4DAiBC;AAED,SAAgB,6BAA6B,CAAC,OAAqC;IAC/E,MAAM,QAAQ,GAAG,IAAI,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,qBAAqB,OAAO,CAAC,EAAE,EAAE,CAAoB,CAAC;IAChG,MAAM,KAAK,GAAe;QACtB,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ,EAAE;YACN,GAAG,kCAAkC;YACrC,GAAG,OAAO,CAAC,QAAQ;SACtB;QACD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,8BAA8B,QAAQ,CAAC,QAAQ,EAAE;KACxF,CAAC;IAEF,IAAA,0CAAqB,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACvC,OAAO,QAAQ,CAAC;AACpB,CAAC"}
|