@jmanuelcorral/openteam 0.17.0 → 0.17.1
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/.opencode/openteam.example.json +7 -2
- package/README.es.md +4 -3
- package/README.md +4 -3
- package/dist/certificates/graph-release-certificate.json +2 -2
- package/dist/certificates/graph-shadow-certificate.json +2 -2
- package/dist/cli/setupAdapters.d.ts.map +1 -1
- package/dist/cli.js +258 -38
- package/dist/commands/doctor.d.ts +12 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/setup.d.ts +62 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/config/errors.d.ts.map +1 -1
- package/dist/config/schema.d.ts +3 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +192 -32
- package/dist/local/lemonade.d.ts +5 -1
- package/dist/local/lemonade.d.ts.map +1 -1
- package/dist/local/slotPool.d.ts +58 -0
- package/dist/local/slotPool.d.ts.map +1 -0
- package/dist/local/types.d.ts +19 -0
- package/dist/local/types.d.ts.map +1 -1
- package/dist/orchestrator/coordinator.d.ts.map +1 -1
- package/dist/orchestrator/runtimeSelection.d.ts +7 -1
- package/dist/orchestrator/runtimeSelection.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/commands/setup.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ModelCapabilityProfile } from "../capabilities/types";
|
|
2
2
|
import { type OpenTeamConfig, type PrivacyMode, type RouterMode } from "../config/schema";
|
|
3
|
-
import type { LocalRuntimeId, LocalRuntimeKind } from "../local/types";
|
|
3
|
+
import type { LocalModelInfo, LocalRuntimeId, LocalRuntimeKind } from "../local/types";
|
|
4
4
|
import type { CliResult } from "./dispatch";
|
|
5
5
|
import { type FrontierChoice as FrontierChoiceType } from "./frontierCatalog";
|
|
6
6
|
/** Nombre del paquete npm del plugin, declarado en el opencode.json generado. */
|
|
@@ -89,6 +89,17 @@ export type DetectedRuntime = {
|
|
|
89
89
|
baseURL: string;
|
|
90
90
|
reachable: boolean;
|
|
91
91
|
models: string[];
|
|
92
|
+
/**
|
|
93
|
+
* Richer per-model facts when the adapter reports them: which models are
|
|
94
|
+
* RESIDENT (as opposed to merely downloaded) and how many concurrent slots
|
|
95
|
+
* each serves.
|
|
96
|
+
*
|
|
97
|
+
* A parallel field rather than a change to `models`, so every existing
|
|
98
|
+
* construction site stays valid and a runtime that cannot report load state
|
|
99
|
+
* keeps behaving exactly as before. Absent means "not reported", which is a
|
|
100
|
+
* different claim from "nothing is loaded".
|
|
101
|
+
*/
|
|
102
|
+
modelInfo?: LocalModelInfo[];
|
|
92
103
|
error?: string;
|
|
93
104
|
};
|
|
94
105
|
export type RuntimeChoice = {
|
|
@@ -125,6 +136,16 @@ export type RuntimeChoice = {
|
|
|
125
136
|
* to override.
|
|
126
137
|
*/
|
|
127
138
|
maxConcurrency?: number;
|
|
139
|
+
/**
|
|
140
|
+
* Per-model slot counts REPORTED by the runtime, keyed by model id.
|
|
141
|
+
*
|
|
142
|
+
* Measured, never elicited: a single Lemonade host was observed serving a
|
|
143
|
+
* coder model at `--parallel 3` and a thinking model at `--parallel 1`
|
|
144
|
+
* simultaneously, so no single number the user could type is correct for both.
|
|
145
|
+
* Absent when the runtime reports nothing, which keeps the generated config
|
|
146
|
+
* byte-identical for the runtimes that cannot report slots.
|
|
147
|
+
*/
|
|
148
|
+
modelConcurrency?: Record<string, number>;
|
|
128
149
|
/**
|
|
129
150
|
* Model this instance serves for reasoning-heavy roles (#210 follow-up).
|
|
130
151
|
* Optional on the answer: `buildOpenTeamConfig` omits it when it equals
|
|
@@ -257,6 +278,27 @@ export declare const RUNTIME_NONE = "__none__";
|
|
|
257
278
|
export declare const RUNTIME_LOCATION_LOCAL = "__local__";
|
|
258
279
|
/** Runtime local en otra máquina de la red (se introduce la URL). */
|
|
259
280
|
export declare const RUNTIME_LOCATION_REMOTE = "__remote__";
|
|
281
|
+
/**
|
|
282
|
+
* Orders the models offered by the wizard and labels each with what the runtime
|
|
283
|
+
* actually reported about it.
|
|
284
|
+
*
|
|
285
|
+
* Reported-loaded models come FIRST, because a runtime like Lemonade enumerates
|
|
286
|
+
* every DOWNLOADED model — nine on the measured host, only two of them resident
|
|
287
|
+
* — and burying the two usable ones in that list is the defect this fixes.
|
|
288
|
+
* Unloaded models stay SELECTABLE rather than hidden: Lemonade loads a model on
|
|
289
|
+
* demand, so hiding them would remove a working choice. Ordering is stable
|
|
290
|
+
* within each group so the list never reshuffles between runs.
|
|
291
|
+
*
|
|
292
|
+
* When the runtime reported no load state at all, the original order and bare
|
|
293
|
+
* labels are preserved — an unknown state is never rendered as "not loaded".
|
|
294
|
+
* Pure.
|
|
295
|
+
*/
|
|
296
|
+
export declare function orderModelChoices(models: readonly string[], modelInfo: readonly LocalModelInfo[] | undefined): {
|
|
297
|
+
value: string;
|
|
298
|
+
label: string;
|
|
299
|
+
}[];
|
|
300
|
+
/** First reported-loaded model, or the first model at all. Pure. */
|
|
301
|
+
export declare function preferredModelID(models: readonly string[], modelInfo: readonly LocalModelInfo[] | undefined): string | undefined;
|
|
260
302
|
/**
|
|
261
303
|
* Normaliza una URL de runtime remoto: añade esquema http:// si falta y asume
|
|
262
304
|
* el path del endpoint OpenAI-compatible cuando no se indica ruta. El sufijo se
|
|
@@ -265,5 +307,24 @@ export declare const RUNTIME_LOCATION_REMOTE = "__remote__";
|
|
|
265
307
|
* runtime. Pure.
|
|
266
308
|
*/
|
|
267
309
|
export declare function normalizeRemoteBaseURL(raw: string, defaultBaseURL?: string): string;
|
|
310
|
+
/**
|
|
311
|
+
* Per-model slot counts the runtime itself reported, restricted to the models
|
|
312
|
+
* this instance will actually dispatch to.
|
|
313
|
+
*
|
|
314
|
+
* Measured rather than elicited: on a live Lemonade host the coder model served
|
|
315
|
+
* `--parallel 3` and the thinking model `--parallel 1` at the same time, so no
|
|
316
|
+
* single number a user could type would be correct for both. Returns `undefined`
|
|
317
|
+
* when the runtime reported nothing, which keeps the generated config identical
|
|
318
|
+
* to before for every runtime that cannot report slots. Pure.
|
|
319
|
+
*/
|
|
320
|
+
export declare function reportedModelSlots(modelInfo: readonly LocalModelInfo[] | undefined, usedModelIDs: readonly string[]): Record<string, number> | undefined;
|
|
321
|
+
/**
|
|
322
|
+
* Human summary and runtime-wide fallback derived from reported per-model slots,
|
|
323
|
+
* or `undefined` when nothing was reported. Pure.
|
|
324
|
+
*/
|
|
325
|
+
export declare function reportedSlotSummary(reported: Record<string, number> | undefined): {
|
|
326
|
+
summary: string;
|
|
327
|
+
max: number;
|
|
328
|
+
} | undefined;
|
|
268
329
|
export declare function runSetup(deps: SetupDeps): Promise<CliResult>;
|
|
269
330
|
//# sourceMappingURL=setup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAMpE,OAAO,EAOL,KAAK,cAAc,EAEnB,KAAK,WAAW,EAChB,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/config/errors.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,WAAW,CAAC;AAIlC,eAAO,MAAM,yBAAyB,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/config/errors.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,WAAW,CAAC;AAIlC,eAAO,MAAM,yBAAyB,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAgHzE,CAAC;AAgIL,KAAK,6BAA6B,GAAG;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IAClE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACxC,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,6BAAkC,GAC1C,MAAM,CA0BR;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKxD"}
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -145,6 +145,7 @@ export declare const LocalRuntimeSchema: z.ZodObject<{
|
|
|
145
145
|
modelID: z.ZodString;
|
|
146
146
|
}, z.core.$strict>;
|
|
147
147
|
maxConcurrency: z.ZodOptional<z.ZodNumber>;
|
|
148
|
+
modelConcurrency: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
148
149
|
reservedInteractiveSlots: z.ZodOptional<z.ZodNumber>;
|
|
149
150
|
thinkingModel: z.ZodOptional<z.ZodString>;
|
|
150
151
|
coderModel: z.ZodOptional<z.ZodString>;
|
|
@@ -339,6 +340,7 @@ export declare const OpenTeamConfigObjectSchema: z.ZodObject<{
|
|
|
339
340
|
modelID: z.ZodString;
|
|
340
341
|
}, z.core.$strict>;
|
|
341
342
|
maxConcurrency: z.ZodOptional<z.ZodNumber>;
|
|
343
|
+
modelConcurrency: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
342
344
|
reservedInteractiveSlots: z.ZodOptional<z.ZodNumber>;
|
|
343
345
|
thinkingModel: z.ZodOptional<z.ZodString>;
|
|
344
346
|
coderModel: z.ZodOptional<z.ZodString>;
|
|
@@ -496,6 +498,7 @@ export declare const OpenTeamConfigSchema: z.ZodObject<{
|
|
|
496
498
|
modelID: z.ZodString;
|
|
497
499
|
}, z.core.$strict>;
|
|
498
500
|
maxConcurrency: z.ZodOptional<z.ZodNumber>;
|
|
501
|
+
modelConcurrency: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
499
502
|
reservedInteractiveSlots: z.ZodOptional<z.ZodNumber>;
|
|
500
503
|
thinkingModel: z.ZodOptional<z.ZodString>;
|
|
501
504
|
coderModel: z.ZodOptional<z.ZodString>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,uBAAuB,CAAC;AAG/B,eAAO,MAAM,cAAc;;;kBAKhB,CAAC;AAEZ,eAAO,MAAM,gBAAgB;;;;EAA6C,CAAC;AAC3E,eAAO,MAAM,iBAAiB;;;;EAI5B,CAAC;AACH,eAAO,MAAM,kBAAkB;;;EAA6B,CAAC;AAE7D;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;EAAsC,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB;;;EAAmC,CAAC;AAElE;;;GAGG;AAEH;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,wCAAwC,CAAC;AAChF,eAAO,MAAM,2BAA2B,6CACI,CAAC;AAE7C,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;kBA4DnB,CAAC;AAEZ,eAAO,MAAM,iBAAiB;;;EAAqC,CAAC;AAEpE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;mBAiD5B,CAAC;AAEL;;GAEG;AAEH;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,0CACL,CAAC;AAE1C,eAAO,MAAM,mBAAmB;;;;;mBAa5B,CAAC;AAyFL;;;;;;;;;;GAUG;AACH,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAE/C,eAAO,MAAM,sBAAsB;;;;;EAKjC,CAAC;AAEH,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,MAAM,EAEX,KAAK,YAAY,EAGlB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,KAAK,EACV,OAAO,EAEP,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAGL,KAAK,cAAc,EAGpB,MAAM,2BAA2B,CAAC;AAOnC,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -429,6 +429,7 @@ var LocalRuntimeSchema = z2.object({
|
|
|
429
429
|
discovery: z2.enum(["cli", "sdk", "manual"]).optional(),
|
|
430
430
|
defaultModel: ModelRefSchema,
|
|
431
431
|
maxConcurrency: z2.number().int().positive().optional(),
|
|
432
|
+
modelConcurrency: z2.record(z2.string().min(1), z2.number().int().positive()).optional(),
|
|
432
433
|
reservedInteractiveSlots: z2.number().int().nonnegative().optional(),
|
|
433
434
|
thinkingModel: z2.string().min(1).optional(),
|
|
434
435
|
coderModel: z2.string().min(1).optional()
|
|
@@ -448,12 +449,6 @@ function localRuntimeKind(runtime) {
|
|
|
448
449
|
function effectiveMaxConcurrency(runtime) {
|
|
449
450
|
return runtime.maxConcurrency ?? DEFAULT_LOCAL_MAX_CONCURRENCY;
|
|
450
451
|
}
|
|
451
|
-
function effectiveReservedInteractiveSlots(runtime) {
|
|
452
|
-
if (runtime.reservedInteractiveSlots !== undefined) {
|
|
453
|
-
return runtime.reservedInteractiveSlots;
|
|
454
|
-
}
|
|
455
|
-
return effectiveMaxConcurrency(runtime) >= 2 ? 1 : 0;
|
|
456
|
-
}
|
|
457
452
|
var MemoryScopeSchema = z2.enum(["project", "user"]);
|
|
458
453
|
var MemoryExtractionModeSchema = z2.enum([
|
|
459
454
|
"local",
|
|
@@ -2754,6 +2749,7 @@ var KNOWN_CONFIG_KEYS_BY_PATH = new Map([
|
|
|
2754
2749
|
"discovery",
|
|
2755
2750
|
"defaultModel",
|
|
2756
2751
|
"maxConcurrency",
|
|
2752
|
+
"modelConcurrency",
|
|
2757
2753
|
"reservedInteractiveSlots",
|
|
2758
2754
|
"thinkingModel",
|
|
2759
2755
|
"coderModel"
|
|
@@ -5514,24 +5510,141 @@ function ensureFoundryV1BaseURL(endpoint) {
|
|
|
5514
5510
|
}
|
|
5515
5511
|
|
|
5516
5512
|
// src/local/lemonade.ts
|
|
5517
|
-
var LEMONADE_DEFAULT_BASE_URL = "http://localhost:
|
|
5513
|
+
var LEMONADE_DEFAULT_BASE_URL = "http://localhost:13305/api/v1";
|
|
5514
|
+
var NON_TEXT_LABELS = new Set([
|
|
5515
|
+
"image",
|
|
5516
|
+
"tts",
|
|
5517
|
+
"transcription",
|
|
5518
|
+
"embedding",
|
|
5519
|
+
"reranking"
|
|
5520
|
+
]);
|
|
5521
|
+
var PARALLEL_ARG = /(?:^|\s)(?:--parallel|-np)[\s=]+(\d+)(?!\d)/;
|
|
5518
5522
|
function createLemonadeAdapter() {
|
|
5523
|
+
const listModels = async (options) => {
|
|
5524
|
+
const baseURL = normalizeBaseURL(options.baseURL ?? LEMONADE_DEFAULT_BASE_URL);
|
|
5525
|
+
const downloaded = await listLemonadeModels(baseURL, options.fetch);
|
|
5526
|
+
const loaded = await readLoadedModels(baseURL, options.fetch);
|
|
5527
|
+
return enrichWithLoadState(downloaded, loaded);
|
|
5528
|
+
};
|
|
5519
5529
|
return {
|
|
5520
5530
|
id: "lemonade",
|
|
5521
5531
|
defaultBaseURL: LEMONADE_DEFAULT_BASE_URL,
|
|
5522
|
-
listModels
|
|
5523
|
-
|
|
5524
|
-
|
|
5525
|
-
|
|
5526
|
-
|
|
5527
|
-
|
|
5528
|
-
|
|
5529
|
-
|
|
5530
|
-
|
|
5531
|
-
|
|
5532
|
+
listModels,
|
|
5533
|
+
async probe(options) {
|
|
5534
|
+
const baseURL = normalizeBaseURL(options.baseURL ?? LEMONADE_DEFAULT_BASE_URL);
|
|
5535
|
+
try {
|
|
5536
|
+
return {
|
|
5537
|
+
id: "lemonade",
|
|
5538
|
+
baseURL,
|
|
5539
|
+
reachable: true,
|
|
5540
|
+
models: await listModels({ ...options, baseURL }),
|
|
5541
|
+
probedAt: options.probedAt
|
|
5542
|
+
};
|
|
5543
|
+
} catch (error) {
|
|
5544
|
+
return unavailableSnapshot({
|
|
5545
|
+
id: "lemonade",
|
|
5546
|
+
baseURL,
|
|
5547
|
+
probedAt: options.probedAt,
|
|
5548
|
+
error
|
|
5549
|
+
});
|
|
5550
|
+
}
|
|
5532
5551
|
}
|
|
5533
5552
|
};
|
|
5534
5553
|
}
|
|
5554
|
+
async function listLemonadeModels(baseURL, fetch) {
|
|
5555
|
+
const response = await fetch(`${baseURL}/models`, {
|
|
5556
|
+
method: "GET",
|
|
5557
|
+
headers: { accept: "application/json" }
|
|
5558
|
+
});
|
|
5559
|
+
if (!response.ok) {
|
|
5560
|
+
throw new Error(`GET /models failed with HTTP ${response.status}`);
|
|
5561
|
+
}
|
|
5562
|
+
let payload;
|
|
5563
|
+
try {
|
|
5564
|
+
payload = await response.json();
|
|
5565
|
+
} catch (error) {
|
|
5566
|
+
throw new Error(`Malformed JSON from /models: ${errorMessage(error)}`);
|
|
5567
|
+
}
|
|
5568
|
+
const nonText = readNonTextModelIDs(payload);
|
|
5569
|
+
return parseOpenAIModels(payload).filter((model) => !nonText.has(model.modelID));
|
|
5570
|
+
}
|
|
5571
|
+
function readNonTextModelIDs(payload) {
|
|
5572
|
+
const ids = new Set;
|
|
5573
|
+
if (!isObject2(payload) || !Array.isArray(payload.data)) {
|
|
5574
|
+
return ids;
|
|
5575
|
+
}
|
|
5576
|
+
for (const entry of payload.data) {
|
|
5577
|
+
if (!isObject2(entry) || typeof entry.id !== "string") {
|
|
5578
|
+
continue;
|
|
5579
|
+
}
|
|
5580
|
+
if (isNonTextModel(entry)) {
|
|
5581
|
+
ids.add(entry.id);
|
|
5582
|
+
}
|
|
5583
|
+
}
|
|
5584
|
+
return ids;
|
|
5585
|
+
}
|
|
5586
|
+
function isNonTextModel(entry) {
|
|
5587
|
+
if (!Array.isArray(entry.labels)) {
|
|
5588
|
+
return false;
|
|
5589
|
+
}
|
|
5590
|
+
return entry.labels.some((label) => typeof label === "string" && NON_TEXT_LABELS.has(label));
|
|
5591
|
+
}
|
|
5592
|
+
async function readLoadedModels(baseURL, fetch) {
|
|
5593
|
+
let payload;
|
|
5594
|
+
try {
|
|
5595
|
+
const response = await fetch(`${baseURL}/health`, {
|
|
5596
|
+
method: "GET",
|
|
5597
|
+
headers: { accept: "application/json" }
|
|
5598
|
+
});
|
|
5599
|
+
if (!response.ok) {
|
|
5600
|
+
return;
|
|
5601
|
+
}
|
|
5602
|
+
payload = await response.json();
|
|
5603
|
+
} catch {
|
|
5604
|
+
return;
|
|
5605
|
+
}
|
|
5606
|
+
if (!isObject2(payload) || !Array.isArray(payload.all_models_loaded)) {
|
|
5607
|
+
return;
|
|
5608
|
+
}
|
|
5609
|
+
const loaded = new Map;
|
|
5610
|
+
for (const entry of payload.all_models_loaded) {
|
|
5611
|
+
if (!isObject2(entry) || typeof entry.model_name !== "string") {
|
|
5612
|
+
continue;
|
|
5613
|
+
}
|
|
5614
|
+
if (entry.loaded === false) {
|
|
5615
|
+
continue;
|
|
5616
|
+
}
|
|
5617
|
+
loaded.set(entry.model_name, { slots: readSlotCount(entry) });
|
|
5618
|
+
}
|
|
5619
|
+
return loaded;
|
|
5620
|
+
}
|
|
5621
|
+
function readSlotCount(entry) {
|
|
5622
|
+
const options = entry.recipe_options;
|
|
5623
|
+
if (!isObject2(options) || typeof options.llamacpp_args !== "string") {
|
|
5624
|
+
return;
|
|
5625
|
+
}
|
|
5626
|
+
const match = PARALLEL_ARG.exec(options.llamacpp_args);
|
|
5627
|
+
if (match === null) {
|
|
5628
|
+
return;
|
|
5629
|
+
}
|
|
5630
|
+
const parsed = Number.parseInt(match[1], 10);
|
|
5631
|
+
return Number.isInteger(parsed) && parsed > 0 ? parsed : undefined;
|
|
5632
|
+
}
|
|
5633
|
+
function enrichWithLoadState(models, loaded) {
|
|
5634
|
+
if (loaded === undefined) {
|
|
5635
|
+
return [...models];
|
|
5636
|
+
}
|
|
5637
|
+
return models.map((model) => {
|
|
5638
|
+
const hit = loaded.get(model.modelID);
|
|
5639
|
+
if (hit === undefined) {
|
|
5640
|
+
return { ...model, loaded: false };
|
|
5641
|
+
}
|
|
5642
|
+
return hit.slots === undefined ? { ...model, loaded: true } : { ...model, loaded: true, slots: hit.slots };
|
|
5643
|
+
});
|
|
5644
|
+
}
|
|
5645
|
+
function isObject2(value) {
|
|
5646
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
5647
|
+
}
|
|
5535
5648
|
|
|
5536
5649
|
// src/local/lmstudio.ts
|
|
5537
5650
|
var LMSTUDIO_DEFAULT_BASE_URL = "http://localhost:1234/v1";
|
|
@@ -5641,6 +5754,37 @@ function reachableRuntimeIds(snapshots) {
|
|
|
5641
5754
|
return ids;
|
|
5642
5755
|
}
|
|
5643
5756
|
|
|
5757
|
+
// src/local/slotPool.ts
|
|
5758
|
+
var POOL_SEPARATOR = "::";
|
|
5759
|
+
function slotPoolKey(runtime, modelID) {
|
|
5760
|
+
if (modelID === undefined) {
|
|
5761
|
+
return runtime.id;
|
|
5762
|
+
}
|
|
5763
|
+
const declared = runtime.modelConcurrency?.[modelID];
|
|
5764
|
+
return declared === undefined ? runtime.id : `${runtime.id}${POOL_SEPARATOR}${modelID}`;
|
|
5765
|
+
}
|
|
5766
|
+
function slotPoolRuntimeID(key) {
|
|
5767
|
+
const index = key.indexOf(POOL_SEPARATOR);
|
|
5768
|
+
return index === -1 ? key : key.slice(0, index);
|
|
5769
|
+
}
|
|
5770
|
+
function slotPoolModelID(key) {
|
|
5771
|
+
const index = key.indexOf(POOL_SEPARATOR);
|
|
5772
|
+
return index === -1 ? undefined : key.slice(index + POOL_SEPARATOR.length);
|
|
5773
|
+
}
|
|
5774
|
+
function slotPoolCapacity(runtime, modelID) {
|
|
5775
|
+
const declared = modelID === undefined ? undefined : runtime.modelConcurrency?.[modelID];
|
|
5776
|
+
return declared ?? effectiveMaxConcurrency(runtime);
|
|
5777
|
+
}
|
|
5778
|
+
function slotPoolReservedInteractive(runtime, modelID) {
|
|
5779
|
+
if (runtime.reservedInteractiveSlots !== undefined) {
|
|
5780
|
+
return runtime.reservedInteractiveSlots;
|
|
5781
|
+
}
|
|
5782
|
+
return slotPoolCapacity(runtime, modelID) >= 2 ? 1 : 0;
|
|
5783
|
+
}
|
|
5784
|
+
function unknownPoolCapacity() {
|
|
5785
|
+
return DEFAULT_LOCAL_MAX_CONCURRENCY;
|
|
5786
|
+
}
|
|
5787
|
+
|
|
5644
5788
|
// src/orchestrator/coordinator.ts
|
|
5645
5789
|
import { z as z17 } from "zod";
|
|
5646
5790
|
|
|
@@ -6181,7 +6325,7 @@ var TRUNCATED_REASON_SUFFIX = "…[truncated]";
|
|
|
6181
6325
|
var MAX_SERIALIZED_ARRAY_ITEMS = 20;
|
|
6182
6326
|
var MAX_SERIALIZED_OBJECT_PROPERTIES = 25;
|
|
6183
6327
|
var MAX_SERIALIZED_DEPTH = 4;
|
|
6184
|
-
function
|
|
6328
|
+
function isObject3(value) {
|
|
6185
6329
|
return typeof value === "object" && value !== null;
|
|
6186
6330
|
}
|
|
6187
6331
|
function isError(value) {
|
|
@@ -6211,7 +6355,7 @@ function stringProperty(value, key) {
|
|
|
6211
6355
|
}
|
|
6212
6356
|
function nestedMessage(value, key) {
|
|
6213
6357
|
const container = safeGet(value, key);
|
|
6214
|
-
if (!
|
|
6358
|
+
if (!isObject3(container)) {
|
|
6215
6359
|
return;
|
|
6216
6360
|
}
|
|
6217
6361
|
const message = stringProperty(container, "message");
|
|
@@ -6295,7 +6439,7 @@ function errorReason(error) {
|
|
|
6295
6439
|
return message;
|
|
6296
6440
|
}
|
|
6297
6441
|
}
|
|
6298
|
-
if (
|
|
6442
|
+
if (isObject3(error)) {
|
|
6299
6443
|
const message = stringProperty(error, "message");
|
|
6300
6444
|
if (message !== undefined) {
|
|
6301
6445
|
return message;
|
|
@@ -6802,18 +6946,19 @@ async function runRoleTaskWithCorrelation(input, deps, correlation, batch) {
|
|
|
6802
6946
|
if (runtimeId !== undefined && deps.runtimeLimiter !== undefined) {
|
|
6803
6947
|
const limiter = deps.runtimeLimiter;
|
|
6804
6948
|
const priority = priorityForRole(role);
|
|
6805
|
-
|
|
6949
|
+
const poolKey = slotPoolKey(configuredRuntime(runtimeId, input.config) ?? { id: runtimeId }, decision2.selected.modelID);
|
|
6950
|
+
release = limiter.tryAcquire(poolKey, priority);
|
|
6806
6951
|
let waitedMs = 0;
|
|
6807
6952
|
if (release === undefined) {
|
|
6808
|
-
const acquisition = await limiter.acquire(
|
|
6953
|
+
const acquisition = await limiter.acquire(poolKey, priority);
|
|
6809
6954
|
release = acquisition.release;
|
|
6810
6955
|
waitedMs = acquisition.waitedMs;
|
|
6811
6956
|
}
|
|
6812
6957
|
queueObservation = {
|
|
6813
6958
|
runtimeId,
|
|
6814
6959
|
waitedMs,
|
|
6815
|
-
activeCount: limiter.activeCount(
|
|
6816
|
-
queuedCount: limiter.queuedCount(
|
|
6960
|
+
activeCount: limiter.activeCount(poolKey),
|
|
6961
|
+
queuedCount: limiter.queuedCount(poolKey)
|
|
6817
6962
|
};
|
|
6818
6963
|
}
|
|
6819
6964
|
try {
|
|
@@ -8289,6 +8434,14 @@ function runtimeLine(snapshot, runtime) {
|
|
|
8289
8434
|
const slots = declared === undefined ? ` · ${DEFAULT_LOCAL_MAX_CONCURRENCY} slot(s) (default)` : ` · ${declared} slot(s) (declared)`;
|
|
8290
8435
|
return ` ${mark} ${snapshot.id.padEnd(14)} ${snapshot.baseURL || "(no baseURL)"} — ${detail}${slots}`;
|
|
8291
8436
|
}
|
|
8437
|
+
function runtimeModelSlotsLine(runtime) {
|
|
8438
|
+
const entries = Object.entries(runtime?.modelConcurrency ?? {});
|
|
8439
|
+
if (entries.length === 0) {
|
|
8440
|
+
return;
|
|
8441
|
+
}
|
|
8442
|
+
const detail = entries.map(([modelID, slots]) => `${modelID} ${slots} slot(s)`).join(" · ");
|
|
8443
|
+
return ` ↳ per-model slots: ${detail}`;
|
|
8444
|
+
}
|
|
8292
8445
|
function isNetworkRuntime(baseURL) {
|
|
8293
8446
|
if (baseURL.length === 0) {
|
|
8294
8447
|
return false;
|
|
@@ -8544,6 +8697,10 @@ function renderDoctor(input) {
|
|
|
8544
8697
|
if (classLine !== undefined) {
|
|
8545
8698
|
lines.push(classLine);
|
|
8546
8699
|
}
|
|
8700
|
+
const modelSlots = runtimeModelSlotsLine(runtime);
|
|
8701
|
+
if (modelSlots !== undefined) {
|
|
8702
|
+
lines.push(modelSlots);
|
|
8703
|
+
}
|
|
8547
8704
|
}
|
|
8548
8705
|
}
|
|
8549
8706
|
for (const snapshot of input.snapshots) {
|
|
@@ -13556,7 +13713,7 @@ var createOtlpSpanExporter = (connection, config) => {
|
|
|
13556
13713
|
// package.json
|
|
13557
13714
|
var package_default = {
|
|
13558
13715
|
name: "@jmanuelcorral/openteam",
|
|
13559
|
-
version: "0.17.
|
|
13716
|
+
version: "0.17.1",
|
|
13560
13717
|
packageManager: "bun@1.3.14",
|
|
13561
13718
|
description: "Cost-aware, local-first routing plugin for opencode with cheapest-capable frontier fallback and multi-agent orchestration.",
|
|
13562
13719
|
license: "MIT",
|
|
@@ -14312,15 +14469,18 @@ var server = async (ctx, rawOptions) => {
|
|
|
14312
14469
|
const snapshots = await registry.probe(config.local.runtimes.filter((runtime) => runtime.enabled));
|
|
14313
14470
|
return reachableRuntimeIds(snapshots);
|
|
14314
14471
|
};
|
|
14315
|
-
const runtimeById = (
|
|
14472
|
+
const runtimeById = (key2) => {
|
|
14473
|
+
const runtimeId = slotPoolRuntimeID(key2);
|
|
14474
|
+
return config.local.runtimes.find((runtime) => runtime.id === runtimeId);
|
|
14475
|
+
};
|
|
14316
14476
|
const runtimeLimiter = createRuntimeConcurrencyLimiter({
|
|
14317
|
-
capacityFor: (
|
|
14318
|
-
const runtime = runtimeById(
|
|
14319
|
-
return runtime === undefined ?
|
|
14477
|
+
capacityFor: (key2) => {
|
|
14478
|
+
const runtime = runtimeById(key2);
|
|
14479
|
+
return runtime === undefined ? unknownPoolCapacity() : slotPoolCapacity(runtime, slotPoolModelID(key2));
|
|
14320
14480
|
},
|
|
14321
|
-
reservedInteractiveFor: (
|
|
14322
|
-
const runtime = runtimeById(
|
|
14323
|
-
return runtime === undefined ? 0 :
|
|
14481
|
+
reservedInteractiveFor: (key2) => {
|
|
14482
|
+
const runtime = runtimeById(key2);
|
|
14483
|
+
return runtime === undefined ? 0 : slotPoolReservedInteractive(runtime, slotPoolModelID(key2));
|
|
14324
14484
|
},
|
|
14325
14485
|
now
|
|
14326
14486
|
});
|
package/dist/local/lemonade.d.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import type { RuntimeAdapter } from "./types";
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Lemonade Server's documented default port is 13305, not 8000 — verified
|
|
4
|
+
* against both the project's configuration reference and a live 11.7.0 host.
|
|
5
|
+
*/
|
|
6
|
+
export declare const LEMONADE_DEFAULT_BASE_URL = "http://localhost:13305/api/v1";
|
|
3
7
|
export declare function createLemonadeAdapter(): RuntimeAdapter;
|
|
4
8
|
//# sourceMappingURL=lemonade.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lemonade.d.ts","sourceRoot":"","sources":["../../src/local/lemonade.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lemonade.d.ts","sourceRoot":"","sources":["../../src/local/lemonade.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAIV,cAAc,EAGf,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,eAAO,MAAM,yBAAyB,kCAAkC,CAAC;AA6BzE,wBAAgB,qBAAqB,IAAI,cAAc,CA0CtD"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { effectiveReservedInteractiveSlots, type LocalRuntime } from "../config/schema";
|
|
2
|
+
import type { LocalRuntimeId } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* Key identifying the concurrency pool a generation competes in.
|
|
5
|
+
*
|
|
6
|
+
* Concurrency slots are a property of the LOADED MODEL, not of the server: on a
|
|
7
|
+
* real Lemonade 11.7.0 host measured with two resident models, the coder model
|
|
8
|
+
* served `--parallel 3` while the thinking model served `--parallel 1` — one
|
|
9
|
+
* box, two different capacities. Modelling that as a single server-wide cap lets
|
|
10
|
+
* the orchestrator dispatch four concurrent thinking generations, three of which
|
|
11
|
+
* then queue inside the server where openteam can neither see nor prioritise
|
|
12
|
+
* them.
|
|
13
|
+
*
|
|
14
|
+
* The pool is therefore per model — but ONLY for models the runtime explicitly
|
|
15
|
+
* declares a slot count for. A runtime with no `modelConcurrency` keeps exactly
|
|
16
|
+
* one pool keyed by its bare instance id, so no existing config silently gains
|
|
17
|
+
* capacity by happening to run two models at once. That back-compat property is
|
|
18
|
+
* the reason this returns the bare id rather than always composing a key.
|
|
19
|
+
*
|
|
20
|
+
* Pure.
|
|
21
|
+
*/
|
|
22
|
+
export declare function slotPoolKey(runtime: Pick<LocalRuntime, "id" | "modelConcurrency">, modelID: string | undefined): string;
|
|
23
|
+
/**
|
|
24
|
+
* The runtime instance id carried by a slot-pool key, whether the key is a bare
|
|
25
|
+
* runtime id or a composite one. Pure.
|
|
26
|
+
*/
|
|
27
|
+
export declare function slotPoolRuntimeID(key: string): LocalRuntimeId;
|
|
28
|
+
/**
|
|
29
|
+
* The model id carried by a composite slot-pool key, or `undefined` for a bare
|
|
30
|
+
* runtime key (a runtime-wide shared pool). Pure.
|
|
31
|
+
*/
|
|
32
|
+
export declare function slotPoolModelID(key: string): string | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* Capacity of the pool a model competes in: the runtime's declared per-model
|
|
35
|
+
* slot count when it has one, otherwise the runtime-wide
|
|
36
|
+
* {@link effectiveMaxConcurrency}. Pure.
|
|
37
|
+
*/
|
|
38
|
+
export declare function slotPoolCapacity(runtime: Pick<LocalRuntime, "maxConcurrency" | "modelConcurrency">, modelID: string | undefined): number;
|
|
39
|
+
/**
|
|
40
|
+
* Interactive-reserved slots for the pool a model competes in.
|
|
41
|
+
*
|
|
42
|
+
* An explicit `reservedInteractiveSlots` is honoured verbatim for every pool of
|
|
43
|
+
* the runtime. Otherwise the same rule as
|
|
44
|
+
* {@link effectiveReservedInteractiveSlots} is applied to the POOL's capacity
|
|
45
|
+
* rather than the server's: a 3-slot coder pool reserves 1 and leaves 2 for
|
|
46
|
+
* workers, while a 1-slot thinking pool reserves 0 so its only slot is not
|
|
47
|
+
* withheld from every worker forever. Pure.
|
|
48
|
+
*/
|
|
49
|
+
export declare function slotPoolReservedInteractive(runtime: Pick<LocalRuntime, "maxConcurrency" | "modelConcurrency" | "reservedInteractiveSlots">, modelID: string | undefined): number;
|
|
50
|
+
/**
|
|
51
|
+
* Capacity for a pool key when the runtime it names is not configured. Mirrors
|
|
52
|
+
* the pre-existing unknown-runtime fallback so an unresolvable key never gets
|
|
53
|
+
* unbounded capacity. Pure.
|
|
54
|
+
*/
|
|
55
|
+
export declare function unknownPoolCapacity(): number;
|
|
56
|
+
/** Re-exported so callers resolving pools do not also import the schema module. */
|
|
57
|
+
export { effectiveReservedInteractiveSlots };
|
|
58
|
+
//# sourceMappingURL=slotPool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slotPool.d.ts","sourceRoot":"","sources":["../../src/local/slotPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,iCAAiC,EACjC,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAW9C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,kBAAkB,CAAC,EACtD,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,MAAM,CAQR;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAG7D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG/D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,gBAAgB,GAAG,kBAAkB,CAAC,EAClE,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,MAAM,CAIR;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,IAAI,CACX,YAAY,EACZ,gBAAgB,GAAG,kBAAkB,GAAG,0BAA0B,CACnE,EACD,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,MAAM,CAKR;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,mFAAmF;AACnF,OAAO,EAAE,iCAAiC,EAAE,CAAC"}
|
package/dist/local/types.d.ts
CHANGED
|
@@ -17,6 +17,25 @@ export type LocalModelInfo = {
|
|
|
17
17
|
modelID: string;
|
|
18
18
|
supportsTools: boolean | "unknown";
|
|
19
19
|
contextWindow?: number;
|
|
20
|
+
/**
|
|
21
|
+
* Whether the runtime currently has this model RESIDENT and serving, as
|
|
22
|
+
* opposed to merely downloaded to disk.
|
|
23
|
+
*
|
|
24
|
+
* `undefined` means the runtime did not report load state (an adapter that
|
|
25
|
+
* cannot tell, or a server too old to expose it) — deliberately distinct from
|
|
26
|
+
* `false`, so a caller never presents "not loaded" when the truth is "not
|
|
27
|
+
* known". Optional, so the adapters that cannot report it are unchanged.
|
|
28
|
+
*/
|
|
29
|
+
loaded?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Concurrent generation slots THIS model serves, when the runtime reports it.
|
|
32
|
+
*
|
|
33
|
+
* Per model rather than per server because that is how the runtimes actually
|
|
34
|
+
* behave: a single Lemonade host was measured serving one model at
|
|
35
|
+
* `--parallel 3` and another at `--parallel 1` simultaneously. `undefined`
|
|
36
|
+
* when the runtime does not report it — never guessed.
|
|
37
|
+
*/
|
|
38
|
+
slots?: number;
|
|
20
39
|
};
|
|
21
40
|
export type LocalRuntimeSnapshot = {
|
|
22
41
|
id: LocalRuntimeId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/local/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,UAAU,GACV,eAAe,GACf,UAAU,CAAC;AAEf;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/local/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,UAAU,GACV,eAAe,GACf,UAAU,CAAC;AAEf;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,EAAE,EAAE,cAAc,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC;AAErC,MAAM,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC;AAEjC,MAAM,MAAM,sBAAsB,GAC9B,MAAM,GACN;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAEjE,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAErE,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,wBAAwB,GAAG;IAC3D,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,gBAAgB,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACzE,KAAK,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACpE,CAAC"}
|