@shop-os/modelkit 0.3.8 → 0.4.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/CHANGELOG.md +25 -0
- package/README.md +2 -2
- package/dist/catalog.cjs +50 -36
- package/dist/catalog.cjs.map +1 -1
- package/dist/catalog.d.cts +12 -1
- package/dist/catalog.d.ts +12 -1
- package/dist/catalog.js +50 -36
- package/dist/catalog.js.map +1 -1
- package/dist/index.cjs +165 -70
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +13 -2
- package/dist/index.d.ts +13 -2
- package/dist/index.js +165 -70
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/catalog.d.cts
CHANGED
|
@@ -181,6 +181,8 @@ interface VideoToolSubmission {
|
|
|
181
181
|
responseUrl: string;
|
|
182
182
|
cancelUrl: string;
|
|
183
183
|
output: VideoToolOutputSpec;
|
|
184
|
+
/** Epoch ms when the kit submitted the job; the result's usage `latencyMs` is measured from it. */
|
|
185
|
+
submittedAt?: number;
|
|
184
186
|
}
|
|
185
187
|
type VideoToolStatus = "queued" | "running" | "completed";
|
|
186
188
|
interface VideoToolResult {
|
|
@@ -520,6 +522,13 @@ interface UsageEvent {
|
|
|
520
522
|
inputTokens?: number;
|
|
521
523
|
outputTokens?: number;
|
|
522
524
|
reportedCostUsd?: number;
|
|
525
|
+
/**
|
|
526
|
+
* Wall time of the kit call that produced this event, in ms: from dispatch to the
|
|
527
|
+
* provider's final answer (a video's polling included; a multi-step text call's tool
|
|
528
|
+
* steps included). Absent only where the kit never saw the start (a video tool whose
|
|
529
|
+
* submission carries no `submittedAt`).
|
|
530
|
+
*/
|
|
531
|
+
latencyMs?: number;
|
|
523
532
|
raw?: unknown;
|
|
524
533
|
}
|
|
525
534
|
type ProviderKeyName = "openai" | "anthropic" | "google" | "xai" | "perplexity" | "deepseek" | "moonshot" | "minimax" | "ark" | "fal" | "replicate" | "prodia" | "higgsfield" | "cloudflare";
|
|
@@ -1138,7 +1147,9 @@ declare function promptConventions(row: {
|
|
|
1138
1147
|
|
|
1139
1148
|
/** Provider body or the lifted detail (Gemini blockReason, fal body.detail). */
|
|
1140
1149
|
type ProviderErrorBody = string | JsonValue;
|
|
1141
|
-
type ModelKitErrorCode = "unknown_model" | "unsupported_option" | "missing_input" | "content_blocked" | "provider_rejected"
|
|
1150
|
+
type ModelKitErrorCode = "unknown_model" | "unsupported_option" | "missing_input" | "content_blocked" | "provider_rejected"
|
|
1151
|
+
/** The provider account is out of credit or quota (HTTP 402 and its body spellings). Never retried. */
|
|
1152
|
+
| "provider_billing" | "timeout" | "auth" | "network" | "rate_limited";
|
|
1142
1153
|
interface ModelKitErrorInit {
|
|
1143
1154
|
code: ModelKitErrorCode;
|
|
1144
1155
|
message: string;
|
package/dist/catalog.d.ts
CHANGED
|
@@ -181,6 +181,8 @@ interface VideoToolSubmission {
|
|
|
181
181
|
responseUrl: string;
|
|
182
182
|
cancelUrl: string;
|
|
183
183
|
output: VideoToolOutputSpec;
|
|
184
|
+
/** Epoch ms when the kit submitted the job; the result's usage `latencyMs` is measured from it. */
|
|
185
|
+
submittedAt?: number;
|
|
184
186
|
}
|
|
185
187
|
type VideoToolStatus = "queued" | "running" | "completed";
|
|
186
188
|
interface VideoToolResult {
|
|
@@ -520,6 +522,13 @@ interface UsageEvent {
|
|
|
520
522
|
inputTokens?: number;
|
|
521
523
|
outputTokens?: number;
|
|
522
524
|
reportedCostUsd?: number;
|
|
525
|
+
/**
|
|
526
|
+
* Wall time of the kit call that produced this event, in ms: from dispatch to the
|
|
527
|
+
* provider's final answer (a video's polling included; a multi-step text call's tool
|
|
528
|
+
* steps included). Absent only where the kit never saw the start (a video tool whose
|
|
529
|
+
* submission carries no `submittedAt`).
|
|
530
|
+
*/
|
|
531
|
+
latencyMs?: number;
|
|
523
532
|
raw?: unknown;
|
|
524
533
|
}
|
|
525
534
|
type ProviderKeyName = "openai" | "anthropic" | "google" | "xai" | "perplexity" | "deepseek" | "moonshot" | "minimax" | "ark" | "fal" | "replicate" | "prodia" | "higgsfield" | "cloudflare";
|
|
@@ -1138,7 +1147,9 @@ declare function promptConventions(row: {
|
|
|
1138
1147
|
|
|
1139
1148
|
/** Provider body or the lifted detail (Gemini blockReason, fal body.detail). */
|
|
1140
1149
|
type ProviderErrorBody = string | JsonValue;
|
|
1141
|
-
type ModelKitErrorCode = "unknown_model" | "unsupported_option" | "missing_input" | "content_blocked" | "provider_rejected"
|
|
1150
|
+
type ModelKitErrorCode = "unknown_model" | "unsupported_option" | "missing_input" | "content_blocked" | "provider_rejected"
|
|
1151
|
+
/** The provider account is out of credit or quota (HTTP 402 and its body spellings). Never retried. */
|
|
1152
|
+
| "provider_billing" | "timeout" | "auth" | "network" | "rate_limited";
|
|
1142
1153
|
interface ModelKitErrorInit {
|
|
1143
1154
|
code: ModelKitErrorCode;
|
|
1144
1155
|
message: string;
|
package/dist/catalog.js
CHANGED
|
@@ -211,35 +211,43 @@ var IMAGE_MODELS = [
|
|
|
211
211
|
GEMINI_PROMPT_MAX_CHARS,
|
|
212
212
|
NANO_BANANA_2_1_RATIOS
|
|
213
213
|
),
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
214
|
+
// Google retired the -preview endpoints for the GA ids; the catalog ids stay because they
|
|
215
|
+
// are pricing keys and stored model ids.
|
|
216
|
+
{
|
|
217
|
+
...geminiImage(
|
|
218
|
+
"gemini-3-pro-image-preview",
|
|
219
|
+
"Nano Banana Pro",
|
|
220
|
+
["nb-pro"],
|
|
221
|
+
["1K", "2K", "4K"],
|
|
222
|
+
{
|
|
223
|
+
provider: "google",
|
|
224
|
+
description: "Create stunning, production-quality visuals with exceptional realism, detail, and typography. Best for campaigns, e-commerce, product photography, and hero creatives.",
|
|
225
|
+
logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png"
|
|
226
|
+
},
|
|
227
|
+
["cowork", "space_builder"],
|
|
228
|
+
{ images: 14 },
|
|
229
|
+
GEMINI_PROMPT_MAX_CHARS
|
|
230
|
+
),
|
|
231
|
+
providerModelId: "gemini-3-pro-image"
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
...geminiImage(
|
|
235
|
+
"gemini-3.1-flash-image-preview",
|
|
236
|
+
"Nano Banana 2",
|
|
237
|
+
["nb-2"],
|
|
238
|
+
// Flash 3.1 is the only Gemini image model with the 512 tier.
|
|
239
|
+
["512", "1K", "2K", "4K"],
|
|
240
|
+
{
|
|
241
|
+
provider: "google",
|
|
242
|
+
description: "Generate high-quality images at speed. Perfect for brainstorming, concept boards, concept testing, creative exploration, and large batch workflows.",
|
|
243
|
+
logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png"
|
|
244
|
+
},
|
|
245
|
+
["cowork", "space_builder"],
|
|
246
|
+
{ images: 14 },
|
|
247
|
+
GEMINI_PROMPT_MAX_CHARS
|
|
248
|
+
),
|
|
249
|
+
providerModelId: "gemini-3.1-flash-image"
|
|
250
|
+
},
|
|
243
251
|
geminiImage(
|
|
244
252
|
"gemini-3.1-flash-lite-image",
|
|
245
253
|
"Nano Banana Lite",
|
|
@@ -1373,6 +1381,7 @@ var OMNI_PROMPT = { referenceSyntax: "caption", maxChars: 5e4 };
|
|
|
1373
1381
|
var BYTEDANCE_LOGO = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/3bba5d81-4e57-4e71-911b-cdfa05acca2c_compressed.png";
|
|
1374
1382
|
var GOOGLE_LOGO2 = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png";
|
|
1375
1383
|
var VIDEO_MODELS = [
|
|
1384
|
+
// Google shuts down the Veo 3.1 previews and Omni Flash 1.0 on 2026-10-22.
|
|
1376
1385
|
{
|
|
1377
1386
|
id: "veo-3.1",
|
|
1378
1387
|
aliases: [
|
|
@@ -1385,8 +1394,9 @@ var VIDEO_MODELS = [
|
|
|
1385
1394
|
type: "video",
|
|
1386
1395
|
adapter: "google-genai",
|
|
1387
1396
|
providerModelId: "veo-3.1-generate-preview",
|
|
1388
|
-
lifecycle: "
|
|
1389
|
-
|
|
1397
|
+
lifecycle: "deprecated",
|
|
1398
|
+
replacedBy: "gemini-omni-1.1-flash",
|
|
1399
|
+
exposure: [],
|
|
1390
1400
|
constraints: {
|
|
1391
1401
|
aspectRatios: [...OMNI_RATIOS],
|
|
1392
1402
|
resolutions: ["720p", "1080p", "4k"],
|
|
@@ -1421,7 +1431,8 @@ var VIDEO_MODELS = [
|
|
|
1421
1431
|
type: "video",
|
|
1422
1432
|
adapter: "google-genai",
|
|
1423
1433
|
providerModelId: "veo-3.1-fast-generate-preview",
|
|
1424
|
-
lifecycle: "
|
|
1434
|
+
lifecycle: "deprecated",
|
|
1435
|
+
replacedBy: "gemini-omni-1.1-flash",
|
|
1425
1436
|
exposure: [],
|
|
1426
1437
|
constraints: {
|
|
1427
1438
|
aspectRatios: [...OMNI_RATIOS],
|
|
@@ -1451,7 +1462,8 @@ var VIDEO_MODELS = [
|
|
|
1451
1462
|
type: "video",
|
|
1452
1463
|
adapter: "google-genai",
|
|
1453
1464
|
providerModelId: "veo-3.1-lite-generate-preview",
|
|
1454
|
-
lifecycle: "
|
|
1465
|
+
lifecycle: "deprecated",
|
|
1466
|
+
replacedBy: "gemini-omni-1.1-flash",
|
|
1455
1467
|
exposure: [],
|
|
1456
1468
|
constraints: {
|
|
1457
1469
|
aspectRatios: [...OMNI_RATIOS],
|
|
@@ -1482,8 +1494,9 @@ var VIDEO_MODELS = [
|
|
|
1482
1494
|
type: "video",
|
|
1483
1495
|
adapter: "google-genai",
|
|
1484
1496
|
providerModelId: "gemini-omni-flash-preview",
|
|
1485
|
-
lifecycle: "
|
|
1486
|
-
|
|
1497
|
+
lifecycle: "deprecated",
|
|
1498
|
+
replacedBy: "gemini-omni-1.1-flash",
|
|
1499
|
+
exposure: [],
|
|
1487
1500
|
constraints: {
|
|
1488
1501
|
// 1.0 rejects `resolution`; it renders 720p. No defaults: the adapter
|
|
1489
1502
|
// sends ratio and duration only when the caller set them, so a
|
|
@@ -2038,7 +2051,8 @@ var VIDEO_MODELS = [
|
|
|
2038
2051
|
},
|
|
2039
2052
|
defaults: {},
|
|
2040
2053
|
usage: { ...VIDEO_USAGE },
|
|
2041
|
-
|
|
2054
|
+
// Higgsfield bills DoP per generation: a fixed-length clip with no duration knob.
|
|
2055
|
+
pricingKind: "flat",
|
|
2042
2056
|
display: {
|
|
2043
2057
|
provider: "higgsfield",
|
|
2044
2058
|
description: "Higgsfield DOP image-to-video model; animates a required first-frame image from a text prompt with an optional last-frame image and motion controls."
|