@shop-os/modelkit 0.2.3 → 0.2.5
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/CHANGELOG.md +10 -0
- package/dist/catalog.cjs +37 -15
- package/dist/catalog.cjs.map +1 -1
- package/dist/catalog.d.cts +14 -1
- package/dist/catalog.d.ts +14 -1
- package/dist/catalog.js +37 -15
- package/dist/catalog.js.map +1 -1
- package/dist/index.cjs +38 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +14 -1
- package/dist/index.d.ts +14 -1
- package/dist/index.js +36 -14
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -45,6 +45,7 @@ __export(index_exports, {
|
|
|
45
45
|
arkAdapter: () => arkAdapter,
|
|
46
46
|
aspectRatioToSize: () => aspectRatioToSize,
|
|
47
47
|
classifyHttpError: () => classifyHttpError,
|
|
48
|
+
compareCatalogOrder: () => compareCatalogOrder,
|
|
48
49
|
createDefaultModelKit: () => createDefaultModelKit,
|
|
49
50
|
createModelKit: () => createModelKit,
|
|
50
51
|
describe: () => describe,
|
|
@@ -82,6 +83,7 @@ __export(index_exports, {
|
|
|
82
83
|
resolveVideoOptions: () => resolveVideoOptions,
|
|
83
84
|
shouldRetry: () => shouldRetry,
|
|
84
85
|
sleep: () => sleep,
|
|
86
|
+
sortCatalogRows: () => sortCatalogRows,
|
|
85
87
|
streamObject: () => streamObject,
|
|
86
88
|
streamText: () => streamText,
|
|
87
89
|
textUsageEvent: () => textUsageEvent,
|
|
@@ -118,6 +120,22 @@ function isModelKitError(err) {
|
|
|
118
120
|
return err instanceof ModelKitError;
|
|
119
121
|
}
|
|
120
122
|
|
|
123
|
+
// src/catalog/order.ts
|
|
124
|
+
function compareCatalogOrder(a, b) {
|
|
125
|
+
const sa = a.display?.sortOrder;
|
|
126
|
+
const sb = b.display?.sortOrder;
|
|
127
|
+
if (sa !== void 0 && sb !== void 0 && sa !== sb) return sb - sa;
|
|
128
|
+
if (sa !== void 0 && sb === void 0) return -1;
|
|
129
|
+
if (sa === void 0 && sb !== void 0) return 1;
|
|
130
|
+
return compareText(a.label.toLowerCase(), b.label.toLowerCase()) || compareText(a.id, b.id);
|
|
131
|
+
}
|
|
132
|
+
function compareText(a, b) {
|
|
133
|
+
return a < b ? -1 : a > b ? 1 : 0;
|
|
134
|
+
}
|
|
135
|
+
function sortCatalogRows(rows) {
|
|
136
|
+
return [...rows].sort(compareCatalogOrder);
|
|
137
|
+
}
|
|
138
|
+
|
|
121
139
|
// src/catalog/registry.ts
|
|
122
140
|
var Catalog = class _Catalog {
|
|
123
141
|
byId = /* @__PURE__ */ new Map();
|
|
@@ -174,11 +192,12 @@ var Catalog = class _Catalog {
|
|
|
174
192
|
}
|
|
175
193
|
return model;
|
|
176
194
|
}
|
|
195
|
+
/** Rows in picker order: `display.sortOrder` descending, then label. See `compareCatalogOrder`. */
|
|
177
196
|
list(filter = {}) {
|
|
178
197
|
const lifecycles = filter.lifecycle ?? ["active"];
|
|
179
198
|
return [...this.byId.values()].filter(
|
|
180
199
|
(m) => (filter.type ? m.type === filter.type : true) && lifecycles.includes(m.lifecycle)
|
|
181
|
-
);
|
|
200
|
+
).sort(compareCatalogOrder);
|
|
182
201
|
}
|
|
183
202
|
/** Merge rows by id. Used for catalogOverride. */
|
|
184
203
|
withOverrides(rows) {
|
|
@@ -355,7 +374,6 @@ var IMAGE_MODELS = [
|
|
|
355
374
|
pricingKind: "image_size",
|
|
356
375
|
display: {
|
|
357
376
|
provider: "openai",
|
|
358
|
-
sortOrder: 20,
|
|
359
377
|
description: "OpenAI's most capable GPT Image 2.5 tier, built for editing precision; takes text and image input and outputs images in low, medium, high, xhigh, or max quality."
|
|
360
378
|
}
|
|
361
379
|
},
|
|
@@ -390,7 +408,6 @@ var IMAGE_MODELS = [
|
|
|
390
408
|
pricingKind: "image_size",
|
|
391
409
|
display: {
|
|
392
410
|
provider: "openai",
|
|
393
|
-
sortOrder: 10,
|
|
394
411
|
description: "OpenAI's fastest GPT Image 2.5 tier for high-quality everyday image generation and editing; takes text and image input and outputs images."
|
|
395
412
|
}
|
|
396
413
|
},
|
|
@@ -2148,13 +2165,14 @@ function toEnvelope(data) {
|
|
|
2148
2165
|
if (data.revision !== void 0) envelope.revision = data.revision;
|
|
2149
2166
|
return envelope;
|
|
2150
2167
|
}
|
|
2168
|
+
function describeError(err) {
|
|
2169
|
+
return err instanceof Error ? err.message : String(err);
|
|
2170
|
+
}
|
|
2151
2171
|
function logPrimed(logger, result) {
|
|
2152
|
-
const
|
|
2153
|
-
logger.info(
|
|
2154
|
-
origin
|
|
2155
|
-
|
|
2156
|
-
revision: loggedRevision
|
|
2157
|
-
});
|
|
2172
|
+
const revision = result.revision === void 0 ? "" : ` revision=${result.revision}`;
|
|
2173
|
+
logger.info(
|
|
2174
|
+
`[modelkit] catalog primed origin=${result.origin} rowCount=${result.rowCount}${revision}`
|
|
2175
|
+
);
|
|
2158
2176
|
}
|
|
2159
2177
|
async function fetchRemote(source, logger) {
|
|
2160
2178
|
const fetchImpl = source.fetch ?? globalThis.fetch;
|
|
@@ -2178,7 +2196,7 @@ async function writeCache(source, logger, rows, rev) {
|
|
|
2178
2196
|
try {
|
|
2179
2197
|
await source.cache.set(JSON.stringify({ rows, revision: rev }));
|
|
2180
2198
|
} catch (err) {
|
|
2181
|
-
logger.warn(
|
|
2199
|
+
logger.warn(`[modelkit] catalog cache write failed: ${describeError(err)}`);
|
|
2182
2200
|
}
|
|
2183
2201
|
}
|
|
2184
2202
|
async function prime(source, logger) {
|
|
@@ -2199,8 +2217,8 @@ async function prime(source, logger) {
|
|
|
2199
2217
|
logPrimed(logger, result);
|
|
2200
2218
|
return result;
|
|
2201
2219
|
} catch (err) {
|
|
2202
|
-
logger.warn(
|
|
2203
|
-
const error =
|
|
2220
|
+
logger.warn(`[modelkit] catalog remote failed, trying cache: ${describeError(err)}`);
|
|
2221
|
+
const error = describeError(err);
|
|
2204
2222
|
try {
|
|
2205
2223
|
const cached = await source.cache?.get();
|
|
2206
2224
|
if (!cached) throw new Error("no cached catalog");
|
|
@@ -2219,7 +2237,9 @@ async function prime(source, logger) {
|
|
|
2219
2237
|
logPrimed(logger, result);
|
|
2220
2238
|
return result;
|
|
2221
2239
|
} catch (cacheErr) {
|
|
2222
|
-
logger.warn(
|
|
2240
|
+
logger.warn(
|
|
2241
|
+
`[modelkit] catalog cache failed, using snapshot: ${describeError(cacheErr)}`
|
|
2242
|
+
);
|
|
2223
2243
|
liveCatalog.replace([...MODELS]);
|
|
2224
2244
|
liveState.origin = "snapshot";
|
|
2225
2245
|
liveState.revision = void 0;
|
|
@@ -2242,7 +2262,9 @@ async function refresh(source, logger) {
|
|
|
2242
2262
|
liveState.revision = fetched.revision;
|
|
2243
2263
|
await writeCache(source, logger, fetched.rows, fetched.revision);
|
|
2244
2264
|
} catch (err) {
|
|
2245
|
-
logger.warn(
|
|
2265
|
+
logger.warn(
|
|
2266
|
+
`[modelkit] catalog refresh failed, keeping current rows: ${describeError(err)}`
|
|
2267
|
+
);
|
|
2246
2268
|
}
|
|
2247
2269
|
}
|
|
2248
2270
|
function primeCatalog(source) {
|
|
@@ -7418,6 +7440,7 @@ var describe = (modelId) => createDefaultModelKit().describe(modelId);
|
|
|
7418
7440
|
arkAdapter,
|
|
7419
7441
|
aspectRatioToSize,
|
|
7420
7442
|
classifyHttpError,
|
|
7443
|
+
compareCatalogOrder,
|
|
7421
7444
|
createDefaultModelKit,
|
|
7422
7445
|
createModelKit,
|
|
7423
7446
|
describe,
|
|
@@ -7455,6 +7478,7 @@ var describe = (modelId) => createDefaultModelKit().describe(modelId);
|
|
|
7455
7478
|
resolveVideoOptions,
|
|
7456
7479
|
shouldRetry,
|
|
7457
7480
|
sleep,
|
|
7481
|
+
sortCatalogRows,
|
|
7458
7482
|
streamObject,
|
|
7459
7483
|
streamText,
|
|
7460
7484
|
textUsageEvent,
|