@mariozechner/pi-ai 0.67.3 → 0.67.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/dist/models.d.ts +1 -1
- package/dist/models.d.ts.map +1 -1
- package/dist/models.generated.d.ts +206 -2
- package/dist/models.generated.d.ts.map +1 -1
- package/dist/models.generated.js +224 -20
- package/dist/models.generated.js.map +1 -1
- package/dist/models.js +5 -2
- package/dist/models.js.map +1 -1
- package/dist/providers/amazon-bedrock.d.ts.map +1 -1
- package/dist/providers/amazon-bedrock.js +10 -2
- package/dist/providers/amazon-bedrock.js.map +1 -1
- package/dist/providers/anthropic.d.ts +3 -2
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +19 -10
- package/dist/providers/anthropic.js.map +1 -1
- package/package.json +3 -3
package/dist/models.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export declare function calculateCost<TApi extends Api>(model: Model<TApi>, usag
|
|
|
12
12
|
*
|
|
13
13
|
* Supported today:
|
|
14
14
|
* - GPT-5.2 / GPT-5.3 / GPT-5.4 model families
|
|
15
|
-
* - Opus 4.6 models (xhigh maps to adaptive effort "max" on Anthropic-compatible providers)
|
|
15
|
+
* - Opus 4.6+ models (xhigh maps to adaptive effort "max" on Anthropic-compatible providers)
|
|
16
16
|
*/
|
|
17
17
|
export declare function supportsXhigh<TApi extends Api>(model: Model<TApi>): boolean;
|
|
18
18
|
/**
|
package/dist/models.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAanE,KAAK,QAAQ,CACZ,SAAS,SAAS,aAAa,EAC/B,QAAQ,SAAS,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,IAC9C,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS;IAAE,GAAG,EAAE,MAAM,IAAI,CAAA;CAAE,GAAG,CAAC,IAAI,SAAS,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;AAEjH,wBAAgB,QAAQ,CAAC,SAAS,SAAS,aAAa,EAAE,QAAQ,SAAS,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,EAC1G,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,QAAQ,GACf,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAGtC;AAED,wBAAgB,YAAY,IAAI,aAAa,EAAE,CAE9C;AAED,wBAAgB,SAAS,CAAC,SAAS,SAAS,aAAa,EACxD,QAAQ,EAAE,SAAS,GACjB,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAGhE;AAED,wBAAgB,aAAa,CAAC,IAAI,SAAS,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAO/F;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,SAAS,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAanE,KAAK,QAAQ,CACZ,SAAS,SAAS,aAAa,EAC/B,QAAQ,SAAS,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,IAC9C,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS;IAAE,GAAG,EAAE,MAAM,IAAI,CAAA;CAAE,GAAG,CAAC,IAAI,SAAS,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;AAEjH,wBAAgB,QAAQ,CAAC,SAAS,SAAS,aAAa,EAAE,QAAQ,SAAS,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,EAC1G,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,QAAQ,GACf,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAGtC;AAED,wBAAgB,YAAY,IAAI,aAAa,EAAE,CAE9C;AAED,wBAAgB,SAAS,CAAC,SAAS,SAAS,aAAa,EACxD,QAAQ,EAAE,SAAS,GACjB,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAGhE;AAED,wBAAgB,aAAa,CAAC,IAAI,SAAS,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAO/F;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,SAAS,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAe3E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,SAAS,GAAG,EAC9C,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,EACjC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,GAC/B,OAAO,CAGT","sourcesContent":["import { MODELS } from \"./models.generated.js\";\nimport type { Api, KnownProvider, Model, Usage } from \"./types.js\";\n\nconst modelRegistry: Map<string, Map<string, Model<Api>>> = new Map();\n\n// Initialize registry from MODELS on module load\nfor (const [provider, models] of Object.entries(MODELS)) {\n\tconst providerModels = new Map<string, Model<Api>>();\n\tfor (const [id, model] of Object.entries(models)) {\n\t\tproviderModels.set(id, model as Model<Api>);\n\t}\n\tmodelRegistry.set(provider, providerModels);\n}\n\ntype ModelApi<\n\tTProvider extends KnownProvider,\n\tTModelId extends keyof (typeof MODELS)[TProvider],\n> = (typeof MODELS)[TProvider][TModelId] extends { api: infer TApi } ? (TApi extends Api ? TApi : never) : never;\n\nexport function getModel<TProvider extends KnownProvider, TModelId extends keyof (typeof MODELS)[TProvider]>(\n\tprovider: TProvider,\n\tmodelId: TModelId,\n): Model<ModelApi<TProvider, TModelId>> {\n\tconst providerModels = modelRegistry.get(provider);\n\treturn providerModels?.get(modelId as string) as Model<ModelApi<TProvider, TModelId>>;\n}\n\nexport function getProviders(): KnownProvider[] {\n\treturn Array.from(modelRegistry.keys()) as KnownProvider[];\n}\n\nexport function getModels<TProvider extends KnownProvider>(\n\tprovider: TProvider,\n): Model<ModelApi<TProvider, keyof (typeof MODELS)[TProvider]>>[] {\n\tconst models = modelRegistry.get(provider);\n\treturn models ? (Array.from(models.values()) as Model<ModelApi<TProvider, keyof (typeof MODELS)[TProvider]>>[]) : [];\n}\n\nexport function calculateCost<TApi extends Api>(model: Model<TApi>, usage: Usage): Usage[\"cost\"] {\n\tusage.cost.input = (model.cost.input / 1000000) * usage.input;\n\tusage.cost.output = (model.cost.output / 1000000) * usage.output;\n\tusage.cost.cacheRead = (model.cost.cacheRead / 1000000) * usage.cacheRead;\n\tusage.cost.cacheWrite = (model.cost.cacheWrite / 1000000) * usage.cacheWrite;\n\tusage.cost.total = usage.cost.input + usage.cost.output + usage.cost.cacheRead + usage.cost.cacheWrite;\n\treturn usage.cost;\n}\n\n/**\n * Check if a model supports xhigh thinking level.\n *\n * Supported today:\n * - GPT-5.2 / GPT-5.3 / GPT-5.4 model families\n * - Opus 4.6+ models (xhigh maps to adaptive effort \"max\" on Anthropic-compatible providers)\n */\nexport function supportsXhigh<TApi extends Api>(model: Model<TApi>): boolean {\n\tif (model.id.includes(\"gpt-5.2\") || model.id.includes(\"gpt-5.3\") || model.id.includes(\"gpt-5.4\")) {\n\t\treturn true;\n\t}\n\n\tif (\n\t\tmodel.id.includes(\"opus-4-6\") ||\n\t\tmodel.id.includes(\"opus-4.6\") ||\n\t\tmodel.id.includes(\"opus-4-7\") ||\n\t\tmodel.id.includes(\"opus-4.7\")\n\t) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\n/**\n * Check if two models are equal by comparing both their id and provider.\n * Returns false if either model is null or undefined.\n */\nexport function modelsAreEqual<TApi extends Api>(\n\ta: Model<TApi> | null | undefined,\n\tb: Model<TApi> | null | undefined,\n): boolean {\n\tif (!a || !b) return false;\n\treturn a.id === b.id && a.provider === b.provider;\n}\n"]}
|
|
@@ -255,6 +255,23 @@ export declare const MODELS: {
|
|
|
255
255
|
contextWindow: number;
|
|
256
256
|
maxTokens: number;
|
|
257
257
|
};
|
|
258
|
+
readonly "anthropic.claude-opus-4-7": {
|
|
259
|
+
id: string;
|
|
260
|
+
name: string;
|
|
261
|
+
api: "bedrock-converse-stream";
|
|
262
|
+
provider: string;
|
|
263
|
+
baseUrl: string;
|
|
264
|
+
reasoning: true;
|
|
265
|
+
input: ("image" | "text")[];
|
|
266
|
+
cost: {
|
|
267
|
+
input: number;
|
|
268
|
+
output: number;
|
|
269
|
+
cacheRead: number;
|
|
270
|
+
cacheWrite: number;
|
|
271
|
+
};
|
|
272
|
+
contextWindow: number;
|
|
273
|
+
maxTokens: number;
|
|
274
|
+
};
|
|
258
275
|
readonly "anthropic.claude-sonnet-4-20250514-v1:0": {
|
|
259
276
|
id: string;
|
|
260
277
|
name: string;
|
|
@@ -408,6 +425,23 @@ export declare const MODELS: {
|
|
|
408
425
|
contextWindow: number;
|
|
409
426
|
maxTokens: number;
|
|
410
427
|
};
|
|
428
|
+
readonly "eu.anthropic.claude-opus-4-7": {
|
|
429
|
+
id: string;
|
|
430
|
+
name: string;
|
|
431
|
+
api: "bedrock-converse-stream";
|
|
432
|
+
provider: string;
|
|
433
|
+
baseUrl: string;
|
|
434
|
+
reasoning: true;
|
|
435
|
+
input: ("image" | "text")[];
|
|
436
|
+
cost: {
|
|
437
|
+
input: number;
|
|
438
|
+
output: number;
|
|
439
|
+
cacheRead: number;
|
|
440
|
+
cacheWrite: number;
|
|
441
|
+
};
|
|
442
|
+
contextWindow: number;
|
|
443
|
+
maxTokens: number;
|
|
444
|
+
};
|
|
411
445
|
readonly "eu.anthropic.claude-sonnet-4-20250514-v1:0": {
|
|
412
446
|
id: string;
|
|
413
447
|
name: string;
|
|
@@ -510,6 +544,23 @@ export declare const MODELS: {
|
|
|
510
544
|
contextWindow: number;
|
|
511
545
|
maxTokens: number;
|
|
512
546
|
};
|
|
547
|
+
readonly "global.anthropic.claude-opus-4-7": {
|
|
548
|
+
id: string;
|
|
549
|
+
name: string;
|
|
550
|
+
api: "bedrock-converse-stream";
|
|
551
|
+
provider: string;
|
|
552
|
+
baseUrl: string;
|
|
553
|
+
reasoning: true;
|
|
554
|
+
input: ("image" | "text")[];
|
|
555
|
+
cost: {
|
|
556
|
+
input: number;
|
|
557
|
+
output: number;
|
|
558
|
+
cacheRead: number;
|
|
559
|
+
cacheWrite: number;
|
|
560
|
+
};
|
|
561
|
+
contextWindow: number;
|
|
562
|
+
maxTokens: number;
|
|
563
|
+
};
|
|
513
564
|
readonly "global.anthropic.claude-sonnet-4-20250514-v1:0": {
|
|
514
565
|
id: string;
|
|
515
566
|
name: string;
|
|
@@ -1343,6 +1394,23 @@ export declare const MODELS: {
|
|
|
1343
1394
|
contextWindow: number;
|
|
1344
1395
|
maxTokens: number;
|
|
1345
1396
|
};
|
|
1397
|
+
readonly "us.anthropic.claude-opus-4-7": {
|
|
1398
|
+
id: string;
|
|
1399
|
+
name: string;
|
|
1400
|
+
api: "bedrock-converse-stream";
|
|
1401
|
+
provider: string;
|
|
1402
|
+
baseUrl: string;
|
|
1403
|
+
reasoning: true;
|
|
1404
|
+
input: ("image" | "text")[];
|
|
1405
|
+
cost: {
|
|
1406
|
+
input: number;
|
|
1407
|
+
output: number;
|
|
1408
|
+
cacheRead: number;
|
|
1409
|
+
cacheWrite: number;
|
|
1410
|
+
};
|
|
1411
|
+
contextWindow: number;
|
|
1412
|
+
maxTokens: number;
|
|
1413
|
+
};
|
|
1346
1414
|
readonly "us.anthropic.claude-sonnet-4-20250514-v1:0": {
|
|
1347
1415
|
id: string;
|
|
1348
1416
|
name: string;
|
|
@@ -1770,6 +1838,23 @@ export declare const MODELS: {
|
|
|
1770
1838
|
contextWindow: number;
|
|
1771
1839
|
maxTokens: number;
|
|
1772
1840
|
};
|
|
1841
|
+
readonly "claude-opus-4-7": {
|
|
1842
|
+
id: string;
|
|
1843
|
+
name: string;
|
|
1844
|
+
api: "anthropic-messages";
|
|
1845
|
+
provider: string;
|
|
1846
|
+
baseUrl: string;
|
|
1847
|
+
reasoning: true;
|
|
1848
|
+
input: ("image" | "text")[];
|
|
1849
|
+
cost: {
|
|
1850
|
+
input: number;
|
|
1851
|
+
output: number;
|
|
1852
|
+
cacheRead: number;
|
|
1853
|
+
cacheWrite: number;
|
|
1854
|
+
};
|
|
1855
|
+
contextWindow: number;
|
|
1856
|
+
maxTokens: number;
|
|
1857
|
+
};
|
|
1773
1858
|
readonly "claude-sonnet-4-0": {
|
|
1774
1859
|
id: string;
|
|
1775
1860
|
name: string;
|
|
@@ -4868,7 +4953,7 @@ export declare const MODELS: {
|
|
|
4868
4953
|
};
|
|
4869
4954
|
};
|
|
4870
4955
|
readonly "kimi-coding": {
|
|
4871
|
-
readonly
|
|
4956
|
+
readonly "kimi-for-coding": {
|
|
4872
4957
|
id: string;
|
|
4873
4958
|
name: string;
|
|
4874
4959
|
api: "anthropic-messages";
|
|
@@ -6376,6 +6461,23 @@ export declare const MODELS: {
|
|
|
6376
6461
|
contextWindow: number;
|
|
6377
6462
|
maxTokens: number;
|
|
6378
6463
|
};
|
|
6464
|
+
readonly "claude-opus-4-7": {
|
|
6465
|
+
id: string;
|
|
6466
|
+
name: string;
|
|
6467
|
+
api: "anthropic-messages";
|
|
6468
|
+
provider: string;
|
|
6469
|
+
baseUrl: string;
|
|
6470
|
+
reasoning: true;
|
|
6471
|
+
input: ("image" | "text")[];
|
|
6472
|
+
cost: {
|
|
6473
|
+
input: number;
|
|
6474
|
+
output: number;
|
|
6475
|
+
cacheRead: number;
|
|
6476
|
+
cacheWrite: number;
|
|
6477
|
+
};
|
|
6478
|
+
contextWindow: number;
|
|
6479
|
+
maxTokens: number;
|
|
6480
|
+
};
|
|
6379
6481
|
readonly "claude-sonnet-4": {
|
|
6380
6482
|
id: string;
|
|
6381
6483
|
name: string;
|
|
@@ -6801,6 +6903,40 @@ export declare const MODELS: {
|
|
|
6801
6903
|
contextWindow: number;
|
|
6802
6904
|
maxTokens: number;
|
|
6803
6905
|
};
|
|
6906
|
+
readonly "qwen3.5-plus": {
|
|
6907
|
+
id: string;
|
|
6908
|
+
name: string;
|
|
6909
|
+
api: "openai-completions";
|
|
6910
|
+
provider: string;
|
|
6911
|
+
baseUrl: string;
|
|
6912
|
+
reasoning: true;
|
|
6913
|
+
input: ("image" | "text")[];
|
|
6914
|
+
cost: {
|
|
6915
|
+
input: number;
|
|
6916
|
+
output: number;
|
|
6917
|
+
cacheRead: number;
|
|
6918
|
+
cacheWrite: number;
|
|
6919
|
+
};
|
|
6920
|
+
contextWindow: number;
|
|
6921
|
+
maxTokens: number;
|
|
6922
|
+
};
|
|
6923
|
+
readonly "qwen3.6-plus": {
|
|
6924
|
+
id: string;
|
|
6925
|
+
name: string;
|
|
6926
|
+
api: "openai-completions";
|
|
6927
|
+
provider: string;
|
|
6928
|
+
baseUrl: string;
|
|
6929
|
+
reasoning: true;
|
|
6930
|
+
input: ("image" | "text")[];
|
|
6931
|
+
cost: {
|
|
6932
|
+
input: number;
|
|
6933
|
+
output: number;
|
|
6934
|
+
cacheRead: number;
|
|
6935
|
+
cacheWrite: number;
|
|
6936
|
+
};
|
|
6937
|
+
contextWindow: number;
|
|
6938
|
+
maxTokens: number;
|
|
6939
|
+
};
|
|
6804
6940
|
};
|
|
6805
6941
|
readonly "opencode-go": {
|
|
6806
6942
|
readonly "glm-5": {
|
|
@@ -6922,6 +7058,40 @@ export declare const MODELS: {
|
|
|
6922
7058
|
contextWindow: number;
|
|
6923
7059
|
maxTokens: number;
|
|
6924
7060
|
};
|
|
7061
|
+
readonly "qwen3.5-plus": {
|
|
7062
|
+
id: string;
|
|
7063
|
+
name: string;
|
|
7064
|
+
api: "openai-completions";
|
|
7065
|
+
provider: string;
|
|
7066
|
+
baseUrl: string;
|
|
7067
|
+
reasoning: true;
|
|
7068
|
+
input: ("image" | "text")[];
|
|
7069
|
+
cost: {
|
|
7070
|
+
input: number;
|
|
7071
|
+
output: number;
|
|
7072
|
+
cacheRead: number;
|
|
7073
|
+
cacheWrite: number;
|
|
7074
|
+
};
|
|
7075
|
+
contextWindow: number;
|
|
7076
|
+
maxTokens: number;
|
|
7077
|
+
};
|
|
7078
|
+
readonly "qwen3.6-plus": {
|
|
7079
|
+
id: string;
|
|
7080
|
+
name: string;
|
|
7081
|
+
api: "openai-completions";
|
|
7082
|
+
provider: string;
|
|
7083
|
+
baseUrl: string;
|
|
7084
|
+
reasoning: true;
|
|
7085
|
+
input: ("image" | "text")[];
|
|
7086
|
+
cost: {
|
|
7087
|
+
input: number;
|
|
7088
|
+
output: number;
|
|
7089
|
+
cacheRead: number;
|
|
7090
|
+
cacheWrite: number;
|
|
7091
|
+
};
|
|
7092
|
+
contextWindow: number;
|
|
7093
|
+
maxTokens: number;
|
|
7094
|
+
};
|
|
6925
7095
|
};
|
|
6926
7096
|
readonly openrouter: {
|
|
6927
7097
|
readonly "ai21/jamba-large-1.7": {
|
|
@@ -7230,6 +7400,23 @@ export declare const MODELS: {
|
|
|
7230
7400
|
contextWindow: number;
|
|
7231
7401
|
maxTokens: number;
|
|
7232
7402
|
};
|
|
7403
|
+
readonly "anthropic/claude-opus-4.7": {
|
|
7404
|
+
id: string;
|
|
7405
|
+
name: string;
|
|
7406
|
+
api: "openai-completions";
|
|
7407
|
+
provider: string;
|
|
7408
|
+
baseUrl: string;
|
|
7409
|
+
reasoning: true;
|
|
7410
|
+
input: ("image" | "text")[];
|
|
7411
|
+
cost: {
|
|
7412
|
+
input: number;
|
|
7413
|
+
output: number;
|
|
7414
|
+
cacheRead: number;
|
|
7415
|
+
cacheWrite: number;
|
|
7416
|
+
};
|
|
7417
|
+
contextWindow: number;
|
|
7418
|
+
maxTokens: number;
|
|
7419
|
+
};
|
|
7233
7420
|
readonly "anthropic/claude-sonnet-4": {
|
|
7234
7421
|
id: string;
|
|
7235
7422
|
name: string;
|
|
@@ -11567,6 +11754,23 @@ export declare const MODELS: {
|
|
|
11567
11754
|
contextWindow: number;
|
|
11568
11755
|
maxTokens: number;
|
|
11569
11756
|
};
|
|
11757
|
+
readonly "anthropic/claude-opus-4.7": {
|
|
11758
|
+
id: string;
|
|
11759
|
+
name: string;
|
|
11760
|
+
api: "anthropic-messages";
|
|
11761
|
+
provider: string;
|
|
11762
|
+
baseUrl: string;
|
|
11763
|
+
reasoning: true;
|
|
11764
|
+
input: ("image" | "text")[];
|
|
11765
|
+
cost: {
|
|
11766
|
+
input: number;
|
|
11767
|
+
output: number;
|
|
11768
|
+
cacheRead: number;
|
|
11769
|
+
cacheWrite: number;
|
|
11770
|
+
};
|
|
11771
|
+
contextWindow: number;
|
|
11772
|
+
maxTokens: number;
|
|
11773
|
+
};
|
|
11570
11774
|
readonly "anthropic/claude-sonnet-4": {
|
|
11571
11775
|
id: string;
|
|
11572
11776
|
name: string;
|
|
@@ -13733,7 +13937,7 @@ export declare const MODELS: {
|
|
|
13733
13937
|
provider: string;
|
|
13734
13938
|
baseUrl: string;
|
|
13735
13939
|
reasoning: true;
|
|
13736
|
-
input: "text"[];
|
|
13940
|
+
input: ("image" | "text")[];
|
|
13737
13941
|
cost: {
|
|
13738
13942
|
input: number;
|
|
13739
13943
|
output: number;
|