@corca-org/ceal-host-linux-arm64 1.0.9 → 1.0.11
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 +2 -2
- package/bin/ceal-host +0 -0
- package/libexec/ceal-host/claude-hook.mjs +564 -205
- package/libexec/ceal-host/claude-invocation-authentication.mjs +588 -201
- package/libexec/ceal-host/claude-producer.mjs +620 -199
- package/libexec/ceal-host/codex-hook.mjs +1071 -576
- package/libexec/ceal-host/codex-invocation-authentication.mjs +770 -376
- package/libexec/ceal-host/codex-producer.mjs +805 -377
- package/libexec/ceal-host/control.mjs +1587 -777
- package/libexec/ceal-host/relay.mjs +1162 -564
- package/package.json +1 -1
- package/share/ceal-host/bundle-manifest.json +12 -12
- package/share/ceal-host/bundle-manifest.sigstore.json +1 -1
|
@@ -61,6 +61,46 @@ var client_wire_contract_default = {
|
|
|
61
61
|
schema_version: "ceal.command_request.v1",
|
|
62
62
|
absolute_transport_max_bytes: 65536
|
|
63
63
|
},
|
|
64
|
+
command_resolution: {
|
|
65
|
+
schema_version: "ceal.gateway_command_resolution.v1",
|
|
66
|
+
authority: {
|
|
67
|
+
anonymous: {
|
|
68
|
+
state: "anonymous",
|
|
69
|
+
fields: [
|
|
70
|
+
"state"
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
authenticated: {
|
|
74
|
+
state: "authenticated",
|
|
75
|
+
fields: [
|
|
76
|
+
"state",
|
|
77
|
+
"principal_kind",
|
|
78
|
+
"organization_ref",
|
|
79
|
+
"instance_ref",
|
|
80
|
+
"access_group_ref",
|
|
81
|
+
"principal_ref",
|
|
82
|
+
"authority_revision_ref"
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
semantic_options: {
|
|
87
|
+
inspection: {
|
|
88
|
+
values: [
|
|
89
|
+
"default",
|
|
90
|
+
"full"
|
|
91
|
+
]
|
|
92
|
+
},
|
|
93
|
+
cache_mode: {
|
|
94
|
+
values: [
|
|
95
|
+
"default",
|
|
96
|
+
"bypass"
|
|
97
|
+
]
|
|
98
|
+
},
|
|
99
|
+
compact: {
|
|
100
|
+
type: "boolean"
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
},
|
|
64
104
|
command_response: {
|
|
65
105
|
schema_version: "ceal.command_response.v1",
|
|
66
106
|
descriptor_field: "verified_artifact",
|
|
@@ -74,12 +114,15 @@ var client_wire_contract_default = {
|
|
|
74
114
|
],
|
|
75
115
|
bare_document_fields: [
|
|
76
116
|
"invocation",
|
|
77
|
-
"required_action_sequence",
|
|
78
117
|
"entrypoints",
|
|
79
118
|
"common_concepts",
|
|
80
119
|
"operations",
|
|
81
120
|
"catalog_revision"
|
|
82
121
|
],
|
|
122
|
+
bare_document_optional_fields: [
|
|
123
|
+
"required_action_sequence",
|
|
124
|
+
"withheld"
|
|
125
|
+
],
|
|
83
126
|
prompt_field: "prompt",
|
|
84
127
|
prompt_schema_version: "ceal.prompt.v1",
|
|
85
128
|
focused_prompt_document_fields: [
|
|
@@ -92,7 +135,7 @@ var client_wire_contract_default = {
|
|
|
92
135
|
"prompt"
|
|
93
136
|
],
|
|
94
137
|
discovery_command: "discovery",
|
|
95
|
-
discovery_manifest_schema_version: "ceal.discovery_manifest.
|
|
138
|
+
discovery_manifest_schema_version: "ceal.discovery_manifest.v2",
|
|
96
139
|
discovery_manifest_document_fields: [
|
|
97
140
|
"discovery_manifest"
|
|
98
141
|
],
|
|
@@ -100,11 +143,29 @@ var client_wire_contract_default = {
|
|
|
100
143
|
bare_document_max_bytes: 65536,
|
|
101
144
|
complete_max_bytes: 66019,
|
|
102
145
|
absolute_transport_max_bytes: 4194304
|
|
146
|
+
},
|
|
147
|
+
resource_stream: {
|
|
148
|
+
path: "/api/ceal/v2/resources",
|
|
149
|
+
request_schema_version: "ceal.resource_stream_request.v1",
|
|
150
|
+
ref_pattern: "^resource:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
|
|
151
|
+
media_type_pattern: "^[a-z0-9][a-z0-9!#$&^_.+-]{0,63}/[a-z0-9][a-z0-9!#$&^_.+-]{0,63}$",
|
|
152
|
+
filename_max_bytes: 512,
|
|
153
|
+
max_bytes: 9007199254740991,
|
|
154
|
+
deadline_ms: 6e5,
|
|
155
|
+
fetch_argv: [
|
|
156
|
+
"resource",
|
|
157
|
+
"fetch"
|
|
158
|
+
],
|
|
159
|
+
ref_flag: "--ref"
|
|
103
160
|
}
|
|
104
161
|
};
|
|
105
162
|
|
|
106
163
|
// packages/ceal-client-protocol/src/client-wire-contract.ts
|
|
107
164
|
var CEAL_CLIENT_WIRE_CONTRACT = Object.freeze(client_wire_contract_default);
|
|
165
|
+
var commandResolution = CEAL_CLIENT_WIRE_CONTRACT.command_resolution;
|
|
166
|
+
var commandResolutionAuthority = commandResolution.authority;
|
|
167
|
+
var commandResolutionSemanticOptions = commandResolution.semantic_options;
|
|
168
|
+
var CEAL_GATEWAY_COMMAND_RESOLUTION_SCHEMA_VERSION = commandResolution.schema_version;
|
|
108
169
|
var artifact = CEAL_CLIENT_WIRE_CONTRACT.artifact_descriptor;
|
|
109
170
|
var request = CEAL_CLIENT_WIRE_CONTRACT.command_request;
|
|
110
171
|
var response = CEAL_CLIENT_WIRE_CONTRACT.command_response;
|
|
@@ -125,6 +186,7 @@ var CEAL_COMMAND_REQUEST_MAX_BYTES = request.absolute_transport_max_bytes;
|
|
|
125
186
|
var CEAL_COMMAND_RESPONSE_BARE_DOCUMENT_MAX_BYTES = response.bare_document_max_bytes;
|
|
126
187
|
var CEAL_COMMAND_RESPONSE_PROMPT_FIELD = response.prompt_field;
|
|
127
188
|
var CEAL_COMMAND_RESPONSE_PROMPT_SCHEMA_VERSION = response.prompt_schema_version;
|
|
189
|
+
var CEAL_COMMAND_RESPONSE_BARE_DOCUMENT_OPTIONAL_FIELDS = Object.freeze([...response.bare_document_optional_fields]);
|
|
128
190
|
var CEAL_COMMAND_RESPONSE_PROMPT_DOCUMENT_FIELDS = Object.freeze([...response.bare_document_fields, response.prompt_field]);
|
|
129
191
|
var CEAL_COMMAND_RESPONSE_FOCUSED_PROMPT_DOCUMENT_FIELDS = Object.freeze([...response.focused_prompt_document_fields]);
|
|
130
192
|
var CEAL_COMMAND_RESPONSE_FOCUSED_PROMPT_CONTINUATION_DOCUMENT_FIELDS = Object.freeze([...response.focused_prompt_continuation_document_fields]);
|
|
@@ -137,10 +199,54 @@ var CEAL_COMMAND_RESPONSE_MAX_BYTES = response.absolute_transport_max_bytes;
|
|
|
137
199
|
function vocabulary(words) {
|
|
138
200
|
return Object.freeze(words);
|
|
139
201
|
}
|
|
202
|
+
function isVocabularyWord(words, value) {
|
|
203
|
+
return words.some((word) => word === value);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
// packages/ceal-client-protocol/src/gateway-response-types.ts
|
|
207
|
+
var CEAL_OPERATION_READINESS_VALUES = vocabulary(["ready", "degraded", "unavailable", "unknown"]);
|
|
208
|
+
var CEAL_TARGET_REQUIREMENTS = vocabulary(["required", "optional", "none"]);
|
|
209
|
+
var CEAL_AUDIT_OUTCOMES = vocabulary(["succeeded", "denied", "failed"]);
|
|
210
|
+
var CEAL_GATEWAY_PROVIDER_STEP_OUTCOMES = vocabulary(["completed", "rejected", "throttled", "failed"]);
|
|
211
|
+
var CEAL_GATEWAY_READ_REUSE_DISPOSITIONS = vocabulary(["response_cache_hit", "corpus_hit", "corpus_hit_after_revalidation", "corpus_partial_provider_supplement", "provider_direct", "provider_continuation", "reuse_unavailable"]);
|
|
212
|
+
var CEAL_GATEWAY_READ_REUSE_UNAVAILABLE_REASONS = vocabulary(["not_reported", "storage_unavailable", "coverage_incomplete", "freshness_refresh_required", "not_reusable", "bypassed"]);
|
|
213
|
+
var CEAL_POLICY_DECISIONS = vocabulary(["allowed", "denied", "not_evaluated"]);
|
|
214
|
+
var CEAL_CONNECTOR_ROUTE_PHASES = vocabulary(["scope_observation", "target_selection", "route_resolution"]);
|
|
215
|
+
var CEAL_CONNECTOR_ROUTE_CAUSES = vocabulary(["provider_throttled", "provider_unavailable", "binding_invalid", "scope_limit_exceeded"]);
|
|
216
|
+
var CEAL_WRITE_SOURCE_KINDS = vocabulary(["authenticated_registered_client", "agent_lease_admission", "provider_authenticated_event"]);
|
|
217
|
+
var CEAL_REFRESH_DELIVERIES = vocabulary(["initial", "recovery", "replay", "terminal_failure", "recovery_unavailable"]);
|
|
218
|
+
var CEAL_CLIENT_OPERATIONS = vocabulary(["handshake", "discover", "call", "readback"]);
|
|
219
|
+
var CEAL_WRITE_IDEMPOTENCY_POSTURES = vocabulary(["required", "optional", "not_required"]);
|
|
220
|
+
var CEAL_WRITE_PROVIDER_READBACK_POSTURES = vocabulary(["required", "best_effort", "not_available"]);
|
|
221
|
+
var CEAL_WRITE_ATTRIBUTIONS = vocabulary(["subject", "requester_event", "connector_integration"]);
|
|
222
|
+
var CEAL_WRITE_RECEIPT_PROVIDER_STATES = vocabulary(["outcome_unknown", "verified", "not_dispatched"]);
|
|
223
|
+
var CEAL_WRITE_RECEIPT_PROVIDER_READBACKS = vocabulary(["outcome_unknown", "verified", "not_applied"]);
|
|
224
|
+
var CEAL_PROTOCOL_VERSION = "1.4.0";
|
|
225
|
+
var CEAL_GATEWAY_ANNOUNCEMENT_SCOPE_STATEMENTS = Object.freeze({
|
|
226
|
+
github_app_installation_repositories: "Repositories in the installed GitHub App installation.",
|
|
227
|
+
slack_public_app_member_channels_only: "Public channels where the installed Slack app is a member, plus direct and multi-person direct messages the requester is a member of, as Slack reports that membership; private channels the administrator has not approved are not declared by this connector.",
|
|
228
|
+
notion_connected_logical_area: "Connected Notion logical area under provider-enforced sharing; descendant inventory is not declared.",
|
|
229
|
+
google_workspace_calendar_read_only: "Approved Calendar availability and event reads only; Calendar mutation is not declared.",
|
|
230
|
+
google_workspace_admitted_drive_target_metadata: "Metadata search for files in the shared drives and directly shared files the Connector reaches and the Organization admits as Targets; file-content read and mutation are not declared.",
|
|
231
|
+
google_workspace_admitted_drive_target_sheet_ranges: "Bounded values reads from Google Sheets in the shared drives and directly shared files the Connector reaches and the Organization admits as Targets; file mutation is not declared.",
|
|
232
|
+
google_workspace_admitted_drive_target_sheet_tabs: "Bounded tab metadata and grid extents from Google Sheets in the shared drives and directly shared files the Connector reaches and the Organization admits as Targets; cell contents and file mutation are not declared.",
|
|
233
|
+
google_workspace_admitted_drive_target_editable_sheet_ranges: "Bounded values updates and clears in editable Google Sheets in the shared drives and directly shared files the Connector reaches and the Organization admits as Targets; Docs, Slides, and other Drive file mutation are not declared."
|
|
234
|
+
});
|
|
235
|
+
var CEAL_OPERATION_ACCESS_SCHEMA_VERSION = "ceal.operation_access.v1";
|
|
236
|
+
var CEAL_CONNECTOR_ROUTE_FAILURE_KEYS = vocabulary(["connector_kind", "phase", "schema_version"]);
|
|
237
|
+
var CEAL_CLASSIFIED_CONNECTOR_ROUTE_FAILURE_KEYS = vocabulary(["cause", ...CEAL_CONNECTOR_ROUTE_FAILURE_KEYS]);
|
|
238
|
+
var CEAL_UNCLASSIFIED_CONNECTOR_ROUTE_FAILURE_KEYS = vocabulary(["connector_kind", "error_class", "phase", "schema_version"]);
|
|
239
|
+
var CEAL_GATEWAY_ORGANIZATION_ROUTE_FACT_CALL_KEYS = Object.freeze([
|
|
240
|
+
"connector_ref",
|
|
241
|
+
"connector_revision",
|
|
242
|
+
"policy_decision_revision"
|
|
243
|
+
]);
|
|
140
244
|
|
|
141
245
|
// packages/ceal-client-protocol/src/operation-contract-types.ts
|
|
142
246
|
var CEAL_JSON_SCHEMA_2020_12 = "https://json-schema.org/draft/2020-12/schema";
|
|
143
247
|
var CEAL_OPERATION_ERROR_SCHEMA_VERSION = "ceal.operation_error.v1";
|
|
248
|
+
var CEAL_OPERATION_WITHHELD_CAUSES = vocabulary(["provider_permission", "access_level", "personal_authorization_required"]);
|
|
249
|
+
var CEAL_RETRY_AFTER_MAX_MS = 60 * 60 * 1e3;
|
|
144
250
|
var CEAL_JSON_SCHEMA_TYPES = vocabulary(["object", "array", "string", "integer", "number", "boolean", "null"]);
|
|
145
251
|
var OBSERVATION_POSTURES = vocabulary(["direct_readback", "approved_no_readback", "operator_mediated", "excluded"]);
|
|
146
252
|
var EFFECT_DOMAINS = vocabulary(["none", "gateway_state", "provider", "external_world"]);
|
|
@@ -176,27 +282,6 @@ var CEAL_OPERATION_APPROVAL_DISPOSITIONS = vocabulary([
|
|
|
176
282
|
"interactive_unavailable"
|
|
177
283
|
]);
|
|
178
284
|
|
|
179
|
-
// packages/ceal-client-protocol/src/gateway-response-types.ts
|
|
180
|
-
var CEAL_CAPABILITY_READINESS_VALUES = vocabulary(["ready", "degraded", "unavailable", "unknown"]);
|
|
181
|
-
var CEAL_TARGET_REQUIREMENTS = vocabulary(["required", "optional", "none"]);
|
|
182
|
-
var CEAL_AUDIT_OUTCOMES = vocabulary(["succeeded", "denied", "failed"]);
|
|
183
|
-
var CEAL_GATEWAY_PROVIDER_STEP_OUTCOMES = vocabulary(["completed", "rejected", "throttled", "failed"]);
|
|
184
|
-
var CEAL_GATEWAY_READ_REUSE_DISPOSITIONS = vocabulary(["response_cache_hit", "corpus_hit", "corpus_hit_after_revalidation", "corpus_partial_provider_supplement", "provider_direct", "provider_continuation", "reuse_unavailable"]);
|
|
185
|
-
var CEAL_GATEWAY_READ_REUSE_UNAVAILABLE_REASONS = vocabulary(["not_reported", "storage_unavailable", "coverage_incomplete", "freshness_refresh_required", "not_reusable", "bypassed"]);
|
|
186
|
-
var CEAL_POLICY_DECISIONS = vocabulary(["allowed", "denied", "not_evaluated"]);
|
|
187
|
-
var CEAL_CONNECTOR_ROUTE_PHASES = vocabulary(["scope_observation", "target_selection", "route_resolution"]);
|
|
188
|
-
var CEAL_CONNECTOR_ROUTE_CAUSES = vocabulary(["provider_throttled", "provider_unavailable", "binding_invalid", "scope_limit_exceeded"]);
|
|
189
|
-
var CEAL_WRITE_SOURCE_KINDS = vocabulary(["authenticated_registered_client", "agent_lease_admission", "provider_authenticated_event"]);
|
|
190
|
-
var CEAL_REFRESH_DELIVERIES = vocabulary(["initial", "recovery", "replay", "terminal_failure", "recovery_unavailable"]);
|
|
191
|
-
var CEAL_CLIENT_OPERATIONS = vocabulary(["handshake", "discover", "call", "readback"]);
|
|
192
|
-
var CEAL_WRITE_IDEMPOTENCY_POSTURES = vocabulary(["required", "optional", "not_required"]);
|
|
193
|
-
var CEAL_WRITE_PROVIDER_READBACK_POSTURES = vocabulary(["required", "best_effort", "not_available"]);
|
|
194
|
-
var CEAL_WRITE_ATTRIBUTIONS = vocabulary(["subject", "requester_event", "connector_integration"]);
|
|
195
|
-
var CEAL_PROTOCOL_VERSION = "1.4.0";
|
|
196
|
-
var CEAL_CONNECTOR_ROUTE_FAILURE_KEYS = vocabulary(["connector_kind", "phase", "schema_version"]);
|
|
197
|
-
var CEAL_CLASSIFIED_CONNECTOR_ROUTE_FAILURE_KEYS = vocabulary(["cause", ...CEAL_CONNECTOR_ROUTE_FAILURE_KEYS]);
|
|
198
|
-
var CEAL_UNCLASSIFIED_CONNECTOR_ROUTE_FAILURE_KEYS = vocabulary(["connector_kind", "error_class", "phase", "schema_version"]);
|
|
199
|
-
|
|
200
285
|
// packages/ceal-client-protocol/src/gateway-validation-primitives.ts
|
|
201
286
|
var CealProtocolValidationError = class extends Error {
|
|
202
287
|
name = "CealProtocolValidationError";
|
|
@@ -213,6 +298,7 @@ var SAFE_CONNECTOR_KIND = new RegExp(`^[a-z][a-z0-9-]{0,${MAX_SAFE_TOKEN_LENGTH
|
|
|
213
298
|
var FORBIDDEN_SECRET_KEY = /^(?:[a-z0-9_]*(?:token|secret|password|credential(?:s)?|private_?key)|api_?key|authorization|bearer|raw_?provider_?payload|provider_?payload)$/iu;
|
|
214
299
|
var FORBIDDEN_AUTHORITY_KEY = /^(?:actor_?ref|owner_?ref|registration_?ref|runner_?ref|auth_?decision|policy_?decision|host_?decision)$/iu;
|
|
215
300
|
var TEXT_ENCODER = new TextEncoder();
|
|
301
|
+
var CEAL_WIRE_SAFE_ARRAY_MAX_ITEMS = 128;
|
|
216
302
|
var CEAL_WIRE_SAFE_TEXT_MAX_BYTES = 8 * 1024;
|
|
217
303
|
function assertSafeJsonValue(value, options, depth = 0, count = { value: 0 }) {
|
|
218
304
|
count.value += 1;
|
|
@@ -232,12 +318,12 @@ function assertSafeJsonString(value, options) {
|
|
|
232
318
|
if (byteLength(value) > CEAL_WIRE_SAFE_TEXT_MAX_BYTES || firstDisallowedControl(value, "multi_line") !== null) invalidByContext(options);
|
|
233
319
|
}
|
|
234
320
|
function assertSafeJsonArray(value, options, depth, count) {
|
|
235
|
-
if (value.length >
|
|
321
|
+
if (value.length > CEAL_WIRE_SAFE_ARRAY_MAX_ITEMS) invalidByContext(options);
|
|
236
322
|
for (const item of value) assertSafeJsonValue(item, options, depth + 1, count);
|
|
237
323
|
}
|
|
238
324
|
function assertSafeJsonRecord(record3, options, depth, count) {
|
|
239
325
|
const entries = Object.entries(record3);
|
|
240
|
-
if (entries.length >
|
|
326
|
+
if (entries.length > CEAL_WIRE_SAFE_ARRAY_MAX_ITEMS) invalidByContext(options);
|
|
241
327
|
const sourceUrlColumn = options.allowHttpsUrl ? compactSourceUrlColumn(record3.fields) : null;
|
|
242
328
|
for (const [key, child] of entries) {
|
|
243
329
|
if (key === "credential_material_included" && child !== false) invalidByContext(options);
|
|
@@ -263,9 +349,9 @@ function compactSourceUrlColumn(fields) {
|
|
|
263
349
|
return index < 0 ? null : index;
|
|
264
350
|
}
|
|
265
351
|
function assertSafeJsonCompactRows(value, sourceUrlColumn, options, depth, count) {
|
|
266
|
-
if (!Array.isArray(value) || value.length >
|
|
352
|
+
if (!Array.isArray(value) || value.length > CEAL_WIRE_SAFE_ARRAY_MAX_ITEMS) invalidByContext(options);
|
|
267
353
|
for (const row of value) {
|
|
268
|
-
if (!Array.isArray(row) || row.length >
|
|
354
|
+
if (!Array.isArray(row) || row.length > CEAL_WIRE_SAFE_ARRAY_MAX_ITEMS) invalidByContext(options);
|
|
269
355
|
for (const [index, cell] of row.entries()) {
|
|
270
356
|
if (index === sourceUrlColumn && (cell === null || isSafeExternalHttpsUrl(cell))) continue;
|
|
271
357
|
assertSafeJsonValue(cell, options, depth + 2, count);
|
|
@@ -298,6 +384,7 @@ function isSafeResultContent(value, key) {
|
|
|
298
384
|
const maximum = key === "text" ? 8192 : 1024;
|
|
299
385
|
return typeof value === "string" && byteLength(value) <= maximum && firstDisallowedControl(value, "multi_line") === null;
|
|
300
386
|
}
|
|
387
|
+
var CEAL_PUBLIC_DISPLAY_NAME_MAX_BYTES = 512;
|
|
301
388
|
function normalizeCealSingleLineText(value) {
|
|
302
389
|
return value.split("").map((character) => hasControlCharacter(character) ? " " : character).join("").trim();
|
|
303
390
|
}
|
|
@@ -406,6 +493,28 @@ function cut(text) {
|
|
|
406
493
|
return text.length <= REFUSAL_VALUE_MAX_CHARS ? text : `${text.slice(0, REFUSAL_VALUE_MAX_CHARS)}...(+${text.length - REFUSAL_VALUE_MAX_CHARS} chars)`;
|
|
407
494
|
}
|
|
408
495
|
|
|
496
|
+
// packages/ceal-client-protocol/src/operation-access-class.ts
|
|
497
|
+
var CEAL_OPERATION_ACCESS_CLASSES = vocabulary(["read", "write"]);
|
|
498
|
+
|
|
499
|
+
// packages/ceal-client-protocol/src/domain-vocabulary.ts
|
|
500
|
+
var CEAL_INTEGRATION_KINDS = vocabulary(["github", "google-workspace", "notion", "slack"]);
|
|
501
|
+
var CEAL_CONNECTOR_STATUSES = vocabulary(["active", "disabled", "disconnected"]);
|
|
502
|
+
var CEAL_CONNECTOR_CUSTODIES = vocabulary(["organization", "personal"]);
|
|
503
|
+
var CEAL_PROVIDER_BOUNDARY_KINDS = vocabulary([
|
|
504
|
+
"github_account",
|
|
505
|
+
"github_organization",
|
|
506
|
+
"google_workspace_domain",
|
|
507
|
+
"notion_workspace",
|
|
508
|
+
"slack_workspace"
|
|
509
|
+
]);
|
|
510
|
+
var CEAL_PROVIDER_BOUNDARY_EVIDENCE = vocabulary(["provider_readback", "operator_stated"]);
|
|
511
|
+
var CEAL_ACCESS_LEVELS = vocabulary(["none", "read", "read_write"]);
|
|
512
|
+
var CEAL_PERSONAL_ACCESS_CEILINGS = vocabulary(["disabled", "read", "read_write"]);
|
|
513
|
+
var CEAL_TARGET_VISIBILITIES = vocabulary(["public", "private"]);
|
|
514
|
+
var CEAL_PRINCIPAL_KINDS = vocabulary(["human", "service", "runtime"]);
|
|
515
|
+
var CEAL_ORGANIZATION_ROLES = vocabulary(["member", "admin"]);
|
|
516
|
+
var LABEL_EXPECTATION = `public-safe display text of at most ${CEAL_PUBLIC_DISPLAY_NAME_MAX_BYTES} bytes`;
|
|
517
|
+
|
|
409
518
|
// packages/ceal-client-protocol/src/safe-json-budget.ts
|
|
410
519
|
var SAFE_JSON_MIN_BYTES_PER_NODE = 4;
|
|
411
520
|
function safeJsonNodeBudgetForBytes(maxBytes) {
|
|
@@ -435,7 +544,9 @@ var CEAL_OPERATION_JSON_SCHEMA_BUDGET = Object.freeze({
|
|
|
435
544
|
});
|
|
436
545
|
|
|
437
546
|
// packages/ceal-client-protocol/src/operation-validation-primitives.ts
|
|
438
|
-
var ISO_TIMESTAMP =
|
|
547
|
+
var ISO_TIMESTAMP = /^(\d{4})-(\d{2})-(\d{2})[Tt](\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,9}))?([Zz]|([+-])(\d{2}):(\d{2}))$/u;
|
|
548
|
+
var CEAL_CALENDAR_DATE_PATTERN_SOURCE = "^\\d{4}-\\d{2}-\\d{2}$";
|
|
549
|
+
var CEAL_CALENDAR_DATE = new RegExp(CEAL_CALENDAR_DATE_PATTERN_SOURCE, "u");
|
|
439
550
|
function isOperationRecord(value) {
|
|
440
551
|
if (value === null || typeof value !== "object" || Array.isArray(value)) return false;
|
|
441
552
|
const prototype = Object.getPrototypeOf(value);
|
|
@@ -447,8 +558,56 @@ function requireOperationRecord(value, message) {
|
|
|
447
558
|
function requireClosedValue(value, members, message) {
|
|
448
559
|
if (typeof value !== "string" || !members.includes(value)) throw new TypeError(message);
|
|
449
560
|
}
|
|
561
|
+
function isCealIsoTimestamp(value) {
|
|
562
|
+
return typeof value === "string" && parseCealIsoTimestamp(value) !== null;
|
|
563
|
+
}
|
|
564
|
+
function parseCealIsoTimestamp(value) {
|
|
565
|
+
const fields = parseCealIsoTimestampFields(value);
|
|
566
|
+
if (fields === null || !validCalendarDate(fields) || !validClockTime(fields) || !validUtcOffset(fields)) return null;
|
|
567
|
+
const epochMilliseconds = cealFieldsEpochMilliseconds(fields);
|
|
568
|
+
if (!Number.isFinite(epochMilliseconds)) return null;
|
|
569
|
+
return {
|
|
570
|
+
epochNanoseconds: BigInt(epochMilliseconds) * 1000000n + BigInt(fields.fraction.padEnd(9, "0") || "0")
|
|
571
|
+
};
|
|
572
|
+
}
|
|
573
|
+
function parseCealIsoTimestampFields(value) {
|
|
574
|
+
const match = ISO_TIMESTAMP.exec(value);
|
|
575
|
+
if (match === null) return null;
|
|
576
|
+
return {
|
|
577
|
+
year: Number(match[1]),
|
|
578
|
+
month: Number(match[2]),
|
|
579
|
+
day: Number(match[3]),
|
|
580
|
+
hour: Number(match[4]),
|
|
581
|
+
minute: Number(match[5]),
|
|
582
|
+
second: Number(match[6]),
|
|
583
|
+
fraction: match[7] ?? "",
|
|
584
|
+
offsetSign: match[9] === void 0 ? 0 : match[9] === "+" ? 1 : -1,
|
|
585
|
+
offsetHour: Number(match[10] ?? 0),
|
|
586
|
+
offsetMinute: Number(match[11] ?? 0)
|
|
587
|
+
};
|
|
588
|
+
}
|
|
589
|
+
function validCalendarDate({ year, month, day }) {
|
|
590
|
+
return month >= 1 && month <= 12 && day >= 1 && day <= daysInMonth(year, month);
|
|
591
|
+
}
|
|
592
|
+
function validClockTime({ hour, minute, second }) {
|
|
593
|
+
return hour <= 23 && minute <= 59 && second <= 59;
|
|
594
|
+
}
|
|
595
|
+
function validUtcOffset({ offsetHour, offsetMinute }) {
|
|
596
|
+
return offsetHour <= 23 && offsetMinute <= 59;
|
|
597
|
+
}
|
|
598
|
+
function cealFieldsEpochMilliseconds(fields) {
|
|
599
|
+
const shiftedYear = fields.year < 100 ? fields.year + 400 : fields.year;
|
|
600
|
+
const cycleMilliseconds = fields.year < 100 ? (400 * 365 + 97) * 24 * 60 * 60 * 1e3 : 0;
|
|
601
|
+
const localMilliseconds = Date.UTC(shiftedYear, fields.month - 1, fields.day, fields.hour, fields.minute, fields.second, 0) - cycleMilliseconds;
|
|
602
|
+
const offsetMilliseconds = fields.offsetSign * (fields.offsetHour * 60 + fields.offsetMinute) * 6e4;
|
|
603
|
+
return localMilliseconds - offsetMilliseconds;
|
|
604
|
+
}
|
|
605
|
+
function daysInMonth(year, month) {
|
|
606
|
+
const leap = year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
|
|
607
|
+
return [31, leap ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month - 1] ?? 0;
|
|
608
|
+
}
|
|
450
609
|
function requireIsoTimestamp(value, message) {
|
|
451
|
-
if (
|
|
610
|
+
if (!isCealIsoTimestamp(value)) throw new TypeError(message);
|
|
452
611
|
}
|
|
453
612
|
|
|
454
613
|
// packages/ceal-client-protocol/src/operation-json-schema.ts
|
|
@@ -470,7 +629,7 @@ var CLIENT_AUDIENCE_SET = new Set(CLIENT_AUDIENCES);
|
|
|
470
629
|
// packages/ceal-client-protocol/src/schema-literals.ts
|
|
471
630
|
var CEAL_SCHEMA_LITERALS = [
|
|
472
631
|
"ceal.activation_transport.v1",
|
|
473
|
-
|
|
632
|
+
CEAL_OPERATION_ACCESS_SCHEMA_VERSION,
|
|
474
633
|
CEAL_OPERATION_CATALOG_SCHEMA_VERSION,
|
|
475
634
|
"ceal.client_refresh_request.v2",
|
|
476
635
|
"ceal.client_refresh_result.v2",
|
|
@@ -493,7 +652,6 @@ var CEAL_SCHEMA_LITERALS = [
|
|
|
493
652
|
"ceal.enrollment_exchange.v1",
|
|
494
653
|
"ceal.enrollment_result.v1",
|
|
495
654
|
"ceal.first_activation_causal_join.v1",
|
|
496
|
-
"ceal.gateway_aggregate_authorization_snapshot.v2",
|
|
497
655
|
"ceal.gateway_announcement_policy.v1",
|
|
498
656
|
"ceal.gateway_audit_call_detail.v1",
|
|
499
657
|
"ceal.gateway_audit_event.v1",
|
|
@@ -501,7 +659,7 @@ var CEAL_SCHEMA_LITERALS = [
|
|
|
501
659
|
"ceal.gateway_authorization_snapshot.v1",
|
|
502
660
|
"ceal.gateway_cache_origin.v1",
|
|
503
661
|
"ceal.gateway_call_result.v1",
|
|
504
|
-
|
|
662
|
+
CEAL_GATEWAY_COMMAND_RESOLUTION_SCHEMA_VERSION,
|
|
505
663
|
"ceal.gateway_connector_route_failure.v1",
|
|
506
664
|
"ceal.gateway_discovery.v3",
|
|
507
665
|
"ceal.gateway_handshake.v1",
|
|
@@ -536,7 +694,7 @@ var CEAL_SCHEMA_LITERALS = [
|
|
|
536
694
|
"ceal.operation_receipt.v1",
|
|
537
695
|
"ceal.operation_result.v1",
|
|
538
696
|
"ceal.operation_result.compact.v1",
|
|
539
|
-
"ceal.local_result_materialization.
|
|
697
|
+
"ceal.local_result_materialization.v2",
|
|
540
698
|
"ceal.local_result_root.v1",
|
|
541
699
|
"ceal.owner_bootstrap_exchange_request.v1",
|
|
542
700
|
"ceal.owner_bootstrap_exchange_result.v1",
|
|
@@ -546,7 +704,8 @@ var CEAL_SCHEMA_LITERALS = [
|
|
|
546
704
|
"ceal.request_cancellation.v1",
|
|
547
705
|
"ceal.request_graph_revision.v1",
|
|
548
706
|
"ceal.request_occurrence_correlation.v1",
|
|
549
|
-
"ceal.request_projection.v1"
|
|
707
|
+
"ceal.request_projection.v1",
|
|
708
|
+
"ceal.write_safety_finding.v1"
|
|
550
709
|
];
|
|
551
710
|
var CEAL_SCHEMA_LITERAL_SET = new Set(CEAL_SCHEMA_LITERALS);
|
|
552
711
|
|
|
@@ -561,21 +720,14 @@ var CEAL_BOUNDED_SERIES_CATALOG = Object.freeze({
|
|
|
561
720
|
thread_run_events: (root) => join(root, "run-events.jsonl"),
|
|
562
721
|
bounded_store_sidecar: (root) => `${root}.jsonl`,
|
|
563
722
|
gateway_audit_archive: (root) => `${root}.jsonl`,
|
|
564
|
-
gateway_capability_audit: (root) => join(root, "capability-audit.jsonl"),
|
|
565
|
-
gateway_retrieval_waste_partition: (root) => `${root}.jsonl`,
|
|
566
|
-
gateway_access_policy_publication: (root) => join(root, "access-policy-publications.jsonl"),
|
|
567
723
|
gateway_access_group_connector_control_audit: (root) => `${root}.audit.jsonl`,
|
|
568
724
|
gateway_access_group_connector_scope_audit: (root) => join(root, "profile-connector-scope-audit.jsonl"),
|
|
569
725
|
gateway_access_group_connector_activity_scope_audit: (root) => join(root, "profile-connector-activity-scope-audit.jsonl"),
|
|
726
|
+
gateway_access_group_connector_calendar_scope_audit: (root) => join(root, "profile-connector-calendar-scope-audit.jsonl"),
|
|
570
727
|
gateway_access_group_connector_readiness_audit: (root) => join(root, "profile-connector-readiness.audit.jsonl"),
|
|
571
728
|
gateway_organization_audit_ledger: (root) => join(root, "organization-ledger.jsonl"),
|
|
572
729
|
gateway_personal_client_audit: (root) => join(root, "audit.jsonl"),
|
|
573
|
-
gateway_personal_client_access_audit: (root) => join(root, "access-audit.jsonl")
|
|
574
|
-
gateway_admin_enrollment: (root) => join(root, "enrollments.jsonl"),
|
|
575
|
-
gateway_admin_login: (root) => join(root, "logins.jsonl"),
|
|
576
|
-
gateway_admin_family: (root) => join(root, "families.jsonl"),
|
|
577
|
-
gateway_admin_refresh_token: (root) => join(root, "refresh-tokens.jsonl"),
|
|
578
|
-
gateway_admin_access_token: (root) => join(root, "access-tokens.jsonl")
|
|
730
|
+
gateway_personal_client_access_audit: (root) => join(root, "access-audit.jsonl")
|
|
579
731
|
});
|
|
580
732
|
|
|
581
733
|
// packages/ceal-client-protocol/src/gateway-installation-activation.ts
|
|
@@ -583,8 +735,20 @@ var CEAL_GATEWAY_INSTALLATION_ACTIVATION_CODE_DATA_CHARACTERS = 32;
|
|
|
583
735
|
var CEAL_GATEWAY_INSTALLATION_ACTIVATION_CODE_CHECK_CHARACTERS = 8;
|
|
584
736
|
var CEAL_GATEWAY_INSTALLATION_ACTIVATION_CODE_COMPACT_CHARACTERS = CEAL_GATEWAY_INSTALLATION_ACTIVATION_CODE_DATA_CHARACTERS + CEAL_GATEWAY_INSTALLATION_ACTIVATION_CODE_CHECK_CHARACTERS;
|
|
585
737
|
|
|
738
|
+
// packages/ceal-client-protocol/src/gateway-entrypoint-commands.ts
|
|
739
|
+
var GATEWAY_ENTRYPOINT_COMMANDS = Object.freeze([
|
|
740
|
+
Object.freeze({ id: "controlPlane", path: Object.freeze(["control-plane"]) }),
|
|
741
|
+
Object.freeze({ id: "originShow", path: Object.freeze(["origin", "show"]) }),
|
|
742
|
+
Object.freeze({ id: "credentialsImport", path: Object.freeze(["credentials", "import"]) }),
|
|
743
|
+
Object.freeze({ id: "initialize", path: Object.freeze(["init"]) })
|
|
744
|
+
]);
|
|
745
|
+
|
|
586
746
|
// packages/ceal-client-protocol/src/host-registration.ts
|
|
587
747
|
var CEAL_HOST_REGISTRATION_RESULT_KEYS = Object.freeze(["credential_generation", "host_access_token", "host_installation_ref", "host_source_ref", "ok", "registration_attempt_ref", "schema_version", "status"]);
|
|
748
|
+
var CEAL_LOWERCASE_UUID_PATTERN = "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}";
|
|
749
|
+
var CEAL_HOST_REGISTRATION_ATTEMPT_REF_PATTERN = new RegExp(`^host-registration-attempt:${CEAL_LOWERCASE_UUID_PATTERN}$`, "u");
|
|
750
|
+
var CEAL_HOST_INSTALLATION_REF_PATTERN = new RegExp(`^host-installation:${CEAL_LOWERCASE_UUID_PATTERN}$`, "u");
|
|
751
|
+
var CEAL_HOST_SOURCE_REF_PATTERN = new RegExp(`^host-source:${CEAL_LOWERCASE_UUID_PATTERN}$`, "u");
|
|
588
752
|
|
|
589
753
|
// packages/ceal-client-protocol/src/agent-session-handoff.ts
|
|
590
754
|
var CEAL_AGENT_ADMISSION_PHASES = vocabulary([
|
|
@@ -616,12 +780,19 @@ var CEAL_AGENT_SERVICE_SESSION_RECORD_KEYS = vocabulary([
|
|
|
616
780
|
var CEAL_AGENT_SESSION_COMMIT_KEYS = vocabulary(["attempt_ref", "expected_session_revision", "session_revision"]);
|
|
617
781
|
|
|
618
782
|
// packages/ceal-client-protocol/src/operation-next-actions.ts
|
|
783
|
+
var CEAL_REPEAT_REQUEST_NEXT_ACTION = "repeat_request";
|
|
784
|
+
var CEAL_INSPECT_RECEIPT_NEXT_ACTION = "inspect_receipt";
|
|
619
785
|
var CALLER_RECOVERABLE_NEXT_ACTION_VALUES = [
|
|
620
786
|
"select_did_you_mean",
|
|
621
787
|
"choose_new_output_path",
|
|
622
788
|
"choose_new_idempotency_key",
|
|
623
789
|
"restart_search",
|
|
624
790
|
"repeat_original_arguments",
|
|
791
|
+
// The occurrence this call addressed is settled and cannot move again -- a
|
|
792
|
+
// denied effect approval, an expired continuation -- so the caller runs the
|
|
793
|
+
// same call again as a new request. The refusal names the re-request; this
|
|
794
|
+
// word is the re-request.
|
|
795
|
+
CEAL_REPEAT_REQUEST_NEXT_ACTION,
|
|
625
796
|
"choose_new_request_identity",
|
|
626
797
|
// A refusal that names the argument (invalid_argument with `property`) tells the caller exactly what to change.
|
|
627
798
|
"correct_argument",
|
|
@@ -640,10 +811,35 @@ var CALLER_RECOVERABLE_NEXT_ACTION_VALUES = [
|
|
|
640
811
|
"use_original_input",
|
|
641
812
|
// The same mismatch on the Request binding rather than the input: the
|
|
642
813
|
// occurrence was admitted under one binding and the replay presents another.
|
|
643
|
-
"use_original_request_binding"
|
|
814
|
+
"use_original_request_binding",
|
|
815
|
+
// The client's own filesystem write was refused -- EACCES, EPERM, or a
|
|
816
|
+
// read-only mount -- which is how an agent sandbox fences writes outside its
|
|
817
|
+
// workspace. The caller reruns the same command with unsandboxed or escalated
|
|
818
|
+
// execution; re-adopting the session cannot help, because the sandbox refuses
|
|
819
|
+
// that write too.
|
|
820
|
+
"rerun_outside_agent_sandbox",
|
|
821
|
+
// The refusal names the one Operation to read next in `describe_command`:
|
|
822
|
+
// an absent Operation id with a sole catalog-ranked candidate, or a known
|
|
823
|
+
// Operation invoked without its input. Describing only reads the verified
|
|
824
|
+
// contract and dispatches nothing, and the caller then retries with the
|
|
825
|
+
// named Operation or input, so it is guidance the scorer counts.
|
|
826
|
+
"describe_operation",
|
|
827
|
+
// The refusal names the caller's own personal connect Operation in
|
|
828
|
+
// `required_action_sequence`: the Operation asked for, or the credential
|
|
829
|
+
// the call ran on, needs a personal connection the caller does not hold
|
|
830
|
+
// (never connected, revoked, or expired). The caller runs that exact
|
|
831
|
+
// Operation, completes the consent it hands back, and retries the same call.
|
|
832
|
+
"connect_personal_account",
|
|
833
|
+
// The provider or Gateway named a bounded wait; the caller waits that long
|
|
834
|
+
// and submits the same read again.
|
|
835
|
+
"retry_after"
|
|
644
836
|
];
|
|
645
837
|
var CEAL_CALLER_RECOVERABLE_NEXT_ACTIONS = Object.freeze(CALLER_RECOVERABLE_NEXT_ACTION_VALUES);
|
|
646
838
|
var NON_REMEDY_NEXT_ACTION_VALUES = [
|
|
839
|
+
// Only an administrator can take the named step -- approving a place for an
|
|
840
|
+
// Operation, granting a withheld capability -- so a non-administrator asks
|
|
841
|
+
// one. The refusal names the administrator step; this word is the ask.
|
|
842
|
+
"ask_admin",
|
|
647
843
|
"await_pending_approval",
|
|
648
844
|
"check_gateway",
|
|
649
845
|
"inspect_context_store",
|
|
@@ -658,9 +854,13 @@ var NON_REMEDY_NEXT_ACTION_VALUES = [
|
|
|
658
854
|
"inspect_local_command",
|
|
659
855
|
"inspect_local_output",
|
|
660
856
|
"inspect_local_route",
|
|
661
|
-
|
|
857
|
+
CEAL_INSPECT_RECEIPT_NEXT_ACTION,
|
|
662
858
|
"inspect_request",
|
|
663
859
|
"none",
|
|
860
|
+
// The provider refused because of its own configuration -- an API not
|
|
861
|
+
// enabled, an app scope missing -- which an operator changes in that
|
|
862
|
+
// provider's console. No caller edit and no retry fixes it.
|
|
863
|
+
"operator_action",
|
|
664
864
|
"recover",
|
|
665
865
|
"reconcile",
|
|
666
866
|
// Reconciliation of one named occurrence, not of the deployment: a legacy
|
|
@@ -668,6 +868,10 @@ var NON_REMEDY_NEXT_ACTION_VALUES = [
|
|
|
668
868
|
// no edit to the call changes that. `reconcile` is the deployment-wide word.
|
|
669
869
|
"reconcile_occurrence",
|
|
670
870
|
"reduce_request_size",
|
|
871
|
+
// The Host's invocation context for this turn is stale or expired at the
|
|
872
|
+
// Gateway. The Host's next turn rebinds it and the same call then succeeds;
|
|
873
|
+
// nothing in the call changes, so it is not a remedy the scorer may count.
|
|
874
|
+
"refresh_host_invocation_context",
|
|
671
875
|
"repair_or_adopt_session",
|
|
672
876
|
"retry",
|
|
673
877
|
// The owner -- a correlation hook, an approval hook -- is not serving right
|
|
@@ -681,10 +885,23 @@ var NON_REMEDY_NEXT_ACTION_VALUES = [
|
|
|
681
885
|
var CEAL_NON_REMEDY_NEXT_ACTIONS = Object.freeze(NON_REMEDY_NEXT_ACTION_VALUES);
|
|
682
886
|
var DECLARED = /* @__PURE__ */ new Set([...CEAL_CALLER_RECOVERABLE_NEXT_ACTIONS, ...CEAL_NON_REMEDY_NEXT_ACTIONS]);
|
|
683
887
|
var RECOVERABLE = new Set(CEAL_CALLER_RECOVERABLE_NEXT_ACTIONS);
|
|
888
|
+
var CEAL_OPERATION_WITHHELD_NEXT_ACTIONS = Object.freeze({
|
|
889
|
+
provider_permission: "ask_admin",
|
|
890
|
+
access_level: "ask_admin",
|
|
891
|
+
personal_authorization_required: "connect_personal_account"
|
|
892
|
+
});
|
|
684
893
|
|
|
685
894
|
// packages/ceal-client-protocol/src/operation-contract-artifact.ts
|
|
686
895
|
var CATALOG_REVISION = new RegExp(CEAL_VERIFIED_ARTIFACT_CATALOG_REVISION_PATTERN, "u");
|
|
687
896
|
var SHA256 = new RegExp(CEAL_VERIFIED_ARTIFACT_DIGEST_PATTERN, "u");
|
|
897
|
+
var CEAL_OPERATION_INVOKE_COMMAND = "invoke";
|
|
898
|
+
var CEAL_OPERATION_INPUT_FLAG = "--input";
|
|
899
|
+
var CEAL_OPERATION_ID_PLACEHOLDER = "<operation-id>";
|
|
900
|
+
var CEAL_OPERATION_INPUT_PLACEHOLDER = "<json-object>";
|
|
901
|
+
var CEAL_MODEL_INVOCATION_ARGUMENTS = [CEAL_OPERATION_INVOKE_COMMAND, CEAL_OPERATION_ID_PLACEHOLDER, CEAL_OPERATION_INPUT_FLAG, shellSingleQuoted(CEAL_OPERATION_INPUT_PLACEHOLDER)].join(" ");
|
|
902
|
+
function shellSingleQuoted(value) {
|
|
903
|
+
return `'${value.replaceAll("'", "'\\''")}'`;
|
|
904
|
+
}
|
|
688
905
|
var CEAL_OPERATION_CONTRACT_REQUIRED_FIELDS = Object.freeze(["input_schema", "result_schema"]);
|
|
689
906
|
var CEAL_OPERATION_CONTRACT_OPTIONAL_FIELDS = Object.freeze(["summary", "input_resolution"]);
|
|
690
907
|
var CEAL_VERIFIED_ARTIFACT_DESCRIPTOR_JSON_SCHEMA = Object.freeze({
|
|
@@ -713,9 +930,178 @@ var CEAL_VERIFIED_ARTIFACT_DESCRIPTOR_JSON_SCHEMA = Object.freeze({
|
|
|
713
930
|
}
|
|
714
931
|
});
|
|
715
932
|
|
|
933
|
+
// packages/ceal-client-protocol/src/bare-document.ts
|
|
934
|
+
var REQUIRED_FIELDS = CEAL_CLIENT_WIRE_CONTRACT.command_response.bare_document_fields;
|
|
935
|
+
var OPTIONAL_FIELDS = CEAL_CLIENT_WIRE_CONTRACT.command_response.bare_document_optional_fields;
|
|
936
|
+
|
|
937
|
+
// packages/ceal-client-protocol/src/leased-consumer-vocabulary.ts
|
|
938
|
+
var CEAL_TERMINAL_DISPOSITIONS = vocabulary(["completed", "failed", "cancelled"]);
|
|
939
|
+
var CEAL_LEASE_DISPOSITIONS = vocabulary([...CEAL_TERMINAL_DISPOSITIONS, "deferred"]);
|
|
940
|
+
var CEAL_AUTOMATIC_FEEDBACK_INTENTS = vocabulary(["initial"]);
|
|
941
|
+
var CEAL_LEASED_MESSAGE_DELIVERY_OPERATION_IDS = vocabulary(["message.send", "message.update", "message.delete"]);
|
|
942
|
+
var CEAL_REPOSITORY_VISIBILITIES = vocabulary(["public", "private", "internal"]);
|
|
943
|
+
var CEAL_RESULT_DELIVERY_OFFERS = vocabulary(["pending", "offered", "transport_lost"]);
|
|
944
|
+
var CEAL_RESULT_DELIVERY_STATES = vocabulary(["unavailable", ...CEAL_RESULT_DELIVERY_OFFERS]);
|
|
945
|
+
var CEAL_PROVIDER_OUTCOMES = vocabulary(["not_attempted", "outcome_unknown", "verified"]);
|
|
946
|
+
var CEAL_ACTIVITY_GAP_CODES = vocabulary([
|
|
947
|
+
"provider_page_budget",
|
|
948
|
+
"call_deadline",
|
|
949
|
+
"related_item_budget",
|
|
950
|
+
"provider_cursor_unavailable",
|
|
951
|
+
"malformed_provider_page",
|
|
952
|
+
"visibility_incomplete",
|
|
953
|
+
"unsupported_event_kind"
|
|
954
|
+
]);
|
|
955
|
+
var CEAL_ACTIVITY_CONNECTOR_KINDS = vocabulary(["slack", "github", "google-calendar", "google-drive", "notion"]);
|
|
956
|
+
var CEAL_ACTIVITY_COVERAGE_STATUSES = vocabulary(["complete_for_target", "continuation_required", "blocked"]);
|
|
957
|
+
var CEAL_ACTIVITY_EVENT_KINDS = vocabulary([
|
|
958
|
+
"slack.message",
|
|
959
|
+
"slack.reply",
|
|
960
|
+
"slack.direct_message",
|
|
961
|
+
"github.commit.authored",
|
|
962
|
+
"github.issue.opened",
|
|
963
|
+
"github.pull_request.opened",
|
|
964
|
+
"github.review.submitted",
|
|
965
|
+
"github.issue_comment.created",
|
|
966
|
+
"github.review_comment.created",
|
|
967
|
+
"calendar.organized",
|
|
968
|
+
"calendar.accepted_invite",
|
|
969
|
+
"calendar.recorded",
|
|
970
|
+
"drive.file.created",
|
|
971
|
+
"drive.file.modified",
|
|
972
|
+
"drive.file.viewed",
|
|
973
|
+
"notion.page.created",
|
|
974
|
+
"notion.page.edited"
|
|
975
|
+
]);
|
|
976
|
+
var CEAL_ACTIVITY_TIMESTAMP_BASES = vocabulary([
|
|
977
|
+
"message_created",
|
|
978
|
+
"commit_authored",
|
|
979
|
+
"resource_created",
|
|
980
|
+
"review_submitted",
|
|
981
|
+
"comment_created",
|
|
982
|
+
"event_start",
|
|
983
|
+
"all_day_start",
|
|
984
|
+
"file_created",
|
|
985
|
+
"file_modified",
|
|
986
|
+
"file_modified_by_me",
|
|
987
|
+
"file_viewed_by_me",
|
|
988
|
+
"page_created",
|
|
989
|
+
"page_last_edited",
|
|
990
|
+
"resource_modified"
|
|
991
|
+
]);
|
|
992
|
+
var CEAL_ACTIVITY_V3_KINDS = vocabulary(["authored", "edited", "messaged", "responded"]);
|
|
993
|
+
var CEAL_RESOURCE_TIME_BASES = vocabulary(["created", "modified", "viewed"]);
|
|
994
|
+
var CEAL_RESOURCE_SEARCH_ORDERS = vocabulary(["relevance", "modified", "viewed", "created"]);
|
|
995
|
+
var CEAL_RESOURCE_SEARCH_DIRECTIONS = vocabulary(["ascending", "descending"]);
|
|
996
|
+
var CEAL_RESOURCE_SEARCH_FILTERS = vocabulary(["query", "modified_since", "kinds", "container_ref", "addressed_to_me", "unread"]);
|
|
997
|
+
var CEAL_ARTIFACT_STAGE_TERMINALS = vocabulary(["chunk_accepted", "artifact_ready", "idempotency_replayed"]);
|
|
998
|
+
var CEAL_READ_ITEM_KINDS = vocabulary(["conversation", "identity", "usergroup", "message", "file", "document"]);
|
|
999
|
+
var CEAL_LEASED_MESSAGE_SEARCH_COMPLETENESS = vocabulary(["complete", "continuation_available", "truncated"]);
|
|
1000
|
+
var CEAL_OPAQUE_HANDLE_KINDS = vocabulary(["target", "message", "thread", "artifact", "document", "object"]);
|
|
1001
|
+
var CEAL_WRITE_OBJECT_KINDS = vocabulary(["document", "comment", "cell_range"]);
|
|
1002
|
+
var CEAL_CONVERSATION_KINDS = vocabulary(["channel", "dm", "group"]);
|
|
1003
|
+
var CEAL_FILE_TYPE_FAMILIES = vocabulary(["all", "image", "pdf"]);
|
|
1004
|
+
var CEAL_GITHUB_ISSUE_STATES = vocabulary(["open", "closed", "all"]);
|
|
1005
|
+
var CEAL_NOTION_UPDATABLE_BLOCK_TYPES = vocabulary([
|
|
1006
|
+
"paragraph",
|
|
1007
|
+
"heading_1",
|
|
1008
|
+
"heading_2",
|
|
1009
|
+
"heading_3",
|
|
1010
|
+
"bulleted_list_item",
|
|
1011
|
+
"numbered_list_item",
|
|
1012
|
+
"to_do",
|
|
1013
|
+
"code"
|
|
1014
|
+
]);
|
|
1015
|
+
var CEAL_NOTION_NEUTRAL_TYPES = vocabulary([
|
|
1016
|
+
"text",
|
|
1017
|
+
"number",
|
|
1018
|
+
"boolean",
|
|
1019
|
+
"date",
|
|
1020
|
+
"select",
|
|
1021
|
+
"multi_select",
|
|
1022
|
+
"people",
|
|
1023
|
+
"url",
|
|
1024
|
+
"email",
|
|
1025
|
+
"phone",
|
|
1026
|
+
"unsupported"
|
|
1027
|
+
]);
|
|
1028
|
+
var CEAL_NOTION_IDENTITY_GAP_REASONS = vocabulary([
|
|
1029
|
+
"identity_unavailable",
|
|
1030
|
+
"identity_stale",
|
|
1031
|
+
"identity_ambiguous",
|
|
1032
|
+
"identity_revoked",
|
|
1033
|
+
"identity_unlinked"
|
|
1034
|
+
]);
|
|
1035
|
+
var CEAL_NOTION_STRING_VALUE_TYPES = vocabulary(["text", "select", "url", "email", "phone"]);
|
|
1036
|
+
var CEAL_UNREAD_REASONS = vocabulary(["blocked", "unavailable", "too_large", "unsupported", "download_failed", "permission_denied"]);
|
|
1037
|
+
var CEAL_PLAN_ITEM_STATUSES = vocabulary(["pending", "active", "completed"]);
|
|
1038
|
+
var CEAL_FINAL_PRESENTATION_INTENTS = vocabulary(["final", "stop", "transient_notice"]);
|
|
1039
|
+
var CEAL_PRESENTATION_INTENTS = vocabulary(["progress", ...CEAL_FINAL_PRESENTATION_INTENTS]);
|
|
1040
|
+
|
|
1041
|
+
// packages/ceal-client-protocol/src/resource-row.ts
|
|
1042
|
+
var RESOURCE_ROW_KEY_RULES = Object.freeze({
|
|
1043
|
+
schema_version: { required: true, timestamp: false },
|
|
1044
|
+
ref: { required: true, timestamp: false },
|
|
1045
|
+
next: { required: true, timestamp: false },
|
|
1046
|
+
kind: { required: true, timestamp: false },
|
|
1047
|
+
title: { required: true, timestamp: false },
|
|
1048
|
+
container_label: { required: true, timestamp: false },
|
|
1049
|
+
container_ref: { required: false, timestamp: false },
|
|
1050
|
+
source: { required: true, timestamp: false },
|
|
1051
|
+
owner: { required: false, timestamp: false },
|
|
1052
|
+
counterparts: { required: false, timestamp: false },
|
|
1053
|
+
created_at: { required: false, timestamp: true },
|
|
1054
|
+
created_at_local: { required: false, timestamp: true },
|
|
1055
|
+
modified_at: { required: false, timestamp: true },
|
|
1056
|
+
modified_at_local: { required: false, timestamp: true },
|
|
1057
|
+
viewed_by_me_at: { required: false, timestamp: true },
|
|
1058
|
+
visibility: { required: false, timestamp: false },
|
|
1059
|
+
start: { required: false, timestamp: false },
|
|
1060
|
+
end: { required: false, timestamp: false },
|
|
1061
|
+
status: { required: false, timestamp: false },
|
|
1062
|
+
snippet: { required: false, timestamp: false },
|
|
1063
|
+
state: { required: true, timestamp: false },
|
|
1064
|
+
timestamp_basis: { required: true, timestamp: false }
|
|
1065
|
+
});
|
|
1066
|
+
var RESOURCE_ROW_REQUIRED_KEYS = Object.entries(RESOURCE_ROW_KEY_RULES).flatMap(([key, rule]) => rule.required ? [key] : []);
|
|
1067
|
+
var RESOURCE_ROW_KEYS = new Set(Object.keys(RESOURCE_ROW_KEY_RULES));
|
|
1068
|
+
var RESOURCE_ROW_TIMESTAMP_KEYS = Object.entries(RESOURCE_ROW_KEY_RULES).flatMap(([key, rule]) => rule.timestamp ? [key] : []);
|
|
1069
|
+
|
|
1070
|
+
// packages/ceal-client-protocol/src/resource-read-result.ts
|
|
1071
|
+
var CEAL_RESOURCE_GET_COVERAGE_NEXT_ACTIONS = vocabulary(["reduce_request_size", "read_resource_again"]);
|
|
1072
|
+
|
|
1073
|
+
// packages/ceal-client-protocol/src/excluded-target-coverage-contract.ts
|
|
1074
|
+
var CEAL_EXCLUDED_TARGET_REASONS = vocabulary(["audience_narrower_than_place", "visibility_unknown"]);
|
|
1075
|
+
|
|
1076
|
+
// packages/ceal-client-protocol/src/excluded-target-coverage.ts
|
|
1077
|
+
var CEAL_EXCLUDED_TARGET_COVERAGE_MAX_ENTRIES = 64;
|
|
1078
|
+
function cealExcludedTargetCoverageJsonSchema() {
|
|
1079
|
+
const target = {
|
|
1080
|
+
target_ref: { type: "string", minLength: 8, maxLength: 134, pattern: "^target:[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$" },
|
|
1081
|
+
connector_kind: { type: "string", minLength: 1, maxLength: 64, pattern: "^[a-z][a-z0-9-]{0,63}$" },
|
|
1082
|
+
label: { type: "string", minLength: 1, maxLength: CEAL_PUBLIC_DISPLAY_NAME_MAX_BYTES },
|
|
1083
|
+
reason: { type: "string", enum: [...CEAL_EXCLUDED_TARGET_REASONS] }
|
|
1084
|
+
};
|
|
1085
|
+
return {
|
|
1086
|
+
type: "array",
|
|
1087
|
+
minItems: 1,
|
|
1088
|
+
maxItems: CEAL_EXCLUDED_TARGET_COVERAGE_MAX_ENTRIES,
|
|
1089
|
+
items: { type: "object", additionalProperties: false, maxProperties: 4, properties: target, required: ["target_ref", "reason"] }
|
|
1090
|
+
};
|
|
1091
|
+
}
|
|
1092
|
+
|
|
1093
|
+
// packages/ceal-client-protocol/src/write-safety-finding.ts
|
|
1094
|
+
var CEAL_WRITE_SAFETY_FINDING_STATUSES = vocabulary(["warning", "unchecked"]);
|
|
1095
|
+
var CEAL_WRITE_SAFETY_AUDIENCES = vocabulary(["workspace", "person", "members", "unknown"]);
|
|
1096
|
+
var CEAL_WRITE_SAFETY_REFERENCE_REASONS = vocabulary(["not_published_to_audience", "audience_access_unknown"]);
|
|
1097
|
+
var CEAL_WRITE_SAFETY_UNCHECKED_REASONS = vocabulary(["authority_unavailable"]);
|
|
1098
|
+
|
|
716
1099
|
// packages/ceal-client-protocol/src/operation-occurrence.ts
|
|
717
1100
|
var MAX_RECEIPT_REVISION = Number.MAX_SAFE_INTEGER - 1;
|
|
718
1101
|
|
|
1102
|
+
// packages/ceal-client-protocol/src/leased-artifact-contract.ts
|
|
1103
|
+
var CEAL_LEASED_CONSUMER_ARTIFACT_CHUNK_MAX_BYTES = 12 * 1024;
|
|
1104
|
+
|
|
719
1105
|
// packages/ceal-client-protocol/src/leased-resource-stream.ts
|
|
720
1106
|
var CEAL_LEASED_CONSUMER_ATTACHMENT_STREAM_MAGIC = new Uint8Array([67, 69, 65, 76, 82, 83, 50, 0]);
|
|
721
1107
|
var CEAL_LEASED_CONSUMER_ATTACHMENT_STREAM_RECORD_PREFIX_BYTES = 8;
|
|
@@ -727,6 +1113,7 @@ var CEAL_ATTACHMENT_UNREAD_REASONS = vocabulary(["blocked", "unavailable", "too_
|
|
|
727
1113
|
// packages/ceal-client-protocol/src/request-validation-primitives.ts
|
|
728
1114
|
import { createHash } from "node:crypto";
|
|
729
1115
|
var DIGEST = /^[a-f0-9]{64}$/u;
|
|
1116
|
+
var CEAL_SHA256_DIGEST_PATTERN = DIGEST.source;
|
|
730
1117
|
function isCealDigest(value) {
|
|
731
1118
|
return typeof value === "string" && DIGEST.test(value);
|
|
732
1119
|
}
|
|
@@ -753,7 +1140,7 @@ var CANCELLATION_STATES = vocabulary(["requested", "cancelled"]);
|
|
|
753
1140
|
var CEAL_REQUEST_KEYS = Object.freeze(["schema_version", "ceal_request_ref", "created_at", "authority", "prompt_ref", "host_session_ref", "host_turn_ref", "host_source_ref"]);
|
|
754
1141
|
var CEAL_REQUEST_JSON_SCHEMA = {
|
|
755
1142
|
type: "object",
|
|
756
|
-
maxProperties:
|
|
1143
|
+
maxProperties: 10,
|
|
757
1144
|
additionalProperties: false,
|
|
758
1145
|
properties: {
|
|
759
1146
|
schema_version: { type: "string", const: CEAL_REQUEST_SCHEMA_VERSION, maxLength: 32 },
|
|
@@ -776,7 +1163,8 @@ var CEAL_REQUEST_JSON_SCHEMA = {
|
|
|
776
1163
|
host_session_ref: { type: "string", minLength: 1, maxLength: 128, pattern: SAFE_REF.source },
|
|
777
1164
|
host_turn_ref: { type: "string", minLength: 1, maxLength: 128, pattern: SAFE_REF.source },
|
|
778
1165
|
host_input_ref: { type: "string", minLength: 1, maxLength: 128, pattern: SAFE_REF.source },
|
|
779
|
-
host_source_ref: { type: "string", minLength: 1, maxLength: 128, pattern: SAFE_REF.source }
|
|
1166
|
+
host_source_ref: { type: "string", minLength: 1, maxLength: 128, pattern: SAFE_REF.source },
|
|
1167
|
+
requester_timezone: { type: "string", minLength: 1, maxLength: 128, description: "IANA timezone observed for the requester on this Request." }
|
|
780
1168
|
},
|
|
781
1169
|
required: CEAL_REQUEST_KEYS
|
|
782
1170
|
};
|
|
@@ -826,21 +1214,26 @@ var REQUEST_NODE_STANDING_OCCURRENCE_SCHEMA = {
|
|
|
826
1214
|
},
|
|
827
1215
|
required: ["schema_version", "node_ref", "operation_id", "correlation_ref", "occurrence_ref", "graph_revision", "graph_revision_digest", "admitted_input_sha256", "reason"]
|
|
828
1216
|
};
|
|
1217
|
+
var REQUEST_EXECUTION_PREPARE_REFUSAL_PROPERTIES = {
|
|
1218
|
+
schema_version: { type: "string", const: CEAL_OPERATION_ERROR_SCHEMA_VERSION, maxLength: 64 },
|
|
1219
|
+
code: REQUEST_ACTION_SAFE_REF_SCHEMA,
|
|
1220
|
+
message: { type: "string", minLength: 1, maxLength: 2048 },
|
|
1221
|
+
property: { type: "string", minLength: 1, maxLength: 256 },
|
|
1222
|
+
next_action: REQUEST_ACTION_SAFE_REF_SCHEMA,
|
|
1223
|
+
retryable: { type: "boolean" },
|
|
1224
|
+
source: { type: "string", enum: ["provider", "gateway"] },
|
|
1225
|
+
retry_after_ms: { type: "integer", minimum: 0, maximum: CEAL_RETRY_AFTER_MAX_MS },
|
|
1226
|
+
excluded_targets: cealExcludedTargetCoverageJsonSchema(),
|
|
1227
|
+
repaired_input: {},
|
|
1228
|
+
unrepaired_pointers: { type: "array", maxItems: 128, items: { type: "string", minLength: 1, maxLength: 256 } },
|
|
1229
|
+
provider_handoff: { type: "string", const: "not_offered", maxLength: 32 },
|
|
1230
|
+
cause: { type: "string", enum: [...CEAL_OPERATION_WITHHELD_CAUSES] }
|
|
1231
|
+
};
|
|
829
1232
|
var REQUEST_EXECUTION_PREPARE_REFUSAL_SCHEMA = {
|
|
830
1233
|
type: "object",
|
|
831
1234
|
additionalProperties: false,
|
|
832
|
-
maxProperties:
|
|
833
|
-
properties:
|
|
834
|
-
schema_version: { type: "string", const: CEAL_OPERATION_ERROR_SCHEMA_VERSION, maxLength: 64 },
|
|
835
|
-
code: REQUEST_ACTION_SAFE_REF_SCHEMA,
|
|
836
|
-
message: { type: "string", minLength: 1, maxLength: 2048 },
|
|
837
|
-
property: { type: "string", minLength: 1, maxLength: 256 },
|
|
838
|
-
next_action: REQUEST_ACTION_SAFE_REF_SCHEMA,
|
|
839
|
-
retryable: { type: "boolean" },
|
|
840
|
-
repaired_input: {},
|
|
841
|
-
unrepaired_pointers: { type: "array", maxItems: 128, items: { type: "string", minLength: 1, maxLength: 256 } },
|
|
842
|
-
provider_handoff: { type: "string", const: "not_offered", maxLength: 32 }
|
|
843
|
-
},
|
|
1235
|
+
maxProperties: Object.keys(REQUEST_EXECUTION_PREPARE_REFUSAL_PROPERTIES).length,
|
|
1236
|
+
properties: REQUEST_EXECUTION_PREPARE_REFUSAL_PROPERTIES,
|
|
844
1237
|
required: ["schema_version", "code", "message", "next_action", "retryable"]
|
|
845
1238
|
};
|
|
846
1239
|
var CEAL_REQUEST_EXECUTION_ORDERS = vocabulary(["graph_dependency", "caller"]);
|
|
@@ -886,9 +1279,9 @@ var CEAL_REQUEST_RUN_BATCH_JSON_SCHEMA = {
|
|
|
886
1279
|
var CEAL_HOST_OBSERVATION_REF_PREFIX = "host-observation:";
|
|
887
1280
|
var HOST_OBSERVATION_PRODUCER = /^[a-z][a-z0-9]{0,31}$/u;
|
|
888
1281
|
var HOST_OBSERVATION_DIGEST = /^[a-f0-9]{8,64}$/u;
|
|
889
|
-
function cealHostObservationRef(producer,
|
|
890
|
-
if (!HOST_OBSERVATION_PRODUCER.test(producer) || !HOST_OBSERVATION_DIGEST.test(
|
|
891
|
-
return `${CEAL_HOST_OBSERVATION_REF_PREFIX}${producer}-${
|
|
1282
|
+
function cealHostObservationRef(producer, digest2) {
|
|
1283
|
+
if (!HOST_OBSERVATION_PRODUCER.test(producer) || !HOST_OBSERVATION_DIGEST.test(digest2)) invalid("Ceal Host observation reference parts are invalid.");
|
|
1284
|
+
return `${CEAL_HOST_OBSERVATION_REF_PREFIX}${producer}-${digest2}`;
|
|
892
1285
|
}
|
|
893
1286
|
function validateCealHostObservationDraft(value) {
|
|
894
1287
|
const record3 = operationRecord(value, "Ceal Host observation draft is invalid.");
|
|
@@ -1044,8 +1437,8 @@ function decodeCealHostInvocationAuthenticationResult(value, now = /* @__PURE__
|
|
|
1044
1437
|
return Object.freeze({ schema_version: CEAL_HOST_INVOCATION_AUTHENTICATION_RESULT_SCHEMA, context_token: value.context_token, expires_at: value.expires_at });
|
|
1045
1438
|
}
|
|
1046
1439
|
function validFutureTimestamp(value, now) {
|
|
1047
|
-
const
|
|
1048
|
-
return Number.isFinite(
|
|
1440
|
+
const timestamp5 = Date.parse(value);
|
|
1441
|
+
return Number.isFinite(timestamp5) && new Date(timestamp5).toISOString() === value && timestamp5 > now.getTime();
|
|
1049
1442
|
}
|
|
1050
1443
|
function exactKeys(value, expected) {
|
|
1051
1444
|
const keys = Object.keys(value);
|
|
@@ -1053,16 +1446,14 @@ function exactKeys(value, expected) {
|
|
|
1053
1446
|
}
|
|
1054
1447
|
|
|
1055
1448
|
// packages/ceal-client-protocol/src/client-result-materialization.ts
|
|
1056
|
-
var
|
|
1057
|
-
var
|
|
1449
|
+
var CEAL_MODEL_VISIBLE_COMMAND_OUTPUT_MAX_BYTES = 32 * 1024;
|
|
1450
|
+
var REQUIRED_FIELDS2 = Object.freeze(["schema_version", "operation_id", "read_argv"]);
|
|
1451
|
+
var FIELDS = /* @__PURE__ */ new Set([...REQUIRED_FIELDS2, "local_result_root"]);
|
|
1058
1452
|
|
|
1059
1453
|
// packages/ceal-client-protocol/src/session-start-affordance.ts
|
|
1060
1454
|
var CEAL_SESSION_ENTRY_INVOCATION = "ceal";
|
|
1061
1455
|
var CEAL_LINK_RESOURCE_PRECEDENCE = `When the user asks to use Ceal or provides a link to information that may be available through installed organizational capabilities, run bare \`${CEAL_SESSION_ENTRY_INVOCATION}\`. The Host supplies the current user prompt without exposing it to the client command, and the Gateway returns the applicable entry in that one response. Treat a supplied link as a candidate Ceal resource rather than a public web-search target. Reach for a generic web fetch or web search only when the Gateway offered nothing.`;
|
|
1062
1456
|
|
|
1063
|
-
// packages/ceal-client-protocol/src/discovery-manifest.ts
|
|
1064
|
-
var CEAL_DISCOVERY_MANIFEST_CONNECTOR_KINDS = vocabulary(["github", "google-workspace", "notion", "slack"]);
|
|
1065
|
-
|
|
1066
1457
|
// packages/ceal-client-protocol/src/conversation-contracts.ts
|
|
1067
1458
|
var CEAL_APPROVAL_POLICY_KINDS = vocabulary(["requester_only", "named_users", "role_based"]);
|
|
1068
1459
|
var CEAL_APPROVAL_TARGET_KINDS = vocabulary([
|
|
@@ -1105,38 +1496,18 @@ var CEAL_GATEWAY_ANNOUNCEMENT_POLICY_NON_CLAIMS = vocabulary([
|
|
|
1105
1496
|
|
|
1106
1497
|
// packages/ceal-client-protocol/src/gateway-discovery-response-validation.ts
|
|
1107
1498
|
var ANNOUNCEMENT_POLICY_CAPABILITY_BINDINGS = Object.freeze({
|
|
1108
|
-
"
|
|
1109
|
-
"
|
|
1110
|
-
"github.issue.get": [{ effect: "read", scopeStatementKind: "github_app_installation_repositories", providerAuthorityKind: "github_app" }],
|
|
1111
|
-
"github.pull_request.get": [{ effect: "read", scopeStatementKind: "github_app_installation_repositories", providerAuthorityKind: "github_app" }],
|
|
1499
|
+
"repository.get": [{ effect: "read", scopeStatementKind: "github_app_installation_repositories", providerAuthorityKind: "github_app" }],
|
|
1500
|
+
"resource.search": [{ effect: "read", scopeStatementKind: "github_app_installation_repositories", providerAuthorityKind: "github_app" }],
|
|
1112
1501
|
"github.workflow_run.get": [{ effect: "read", scopeStatementKind: "github_app_installation_repositories", providerAuthorityKind: "github_app" }],
|
|
1113
1502
|
"message.search": [{ effect: "read", scopeStatementKind: "slack_public_app_member_channels_only", providerAuthorityKind: "slack_app" }],
|
|
1114
|
-
"message.get": [{ effect: "read", scopeStatementKind: "slack_public_app_member_channels_only", providerAuthorityKind: "slack_app" }],
|
|
1115
|
-
"resource.resolve": [
|
|
1116
|
-
{ effect: "read", scopeStatementKind: "slack_public_app_member_channels_only", providerAuthorityKind: "slack_app" },
|
|
1117
|
-
{ effect: "read", scopeStatementKind: "notion_connected_logical_area", providerAuthorityKind: "notion_integration" }
|
|
1118
|
-
],
|
|
1119
|
-
"conversation.thread.get": [{ effect: "read", scopeStatementKind: "slack_public_app_member_channels_only", providerAuthorityKind: "slack_app" }],
|
|
1120
1503
|
"notion.search": [{ effect: "read", scopeStatementKind: "notion_connected_logical_area", providerAuthorityKind: "notion_integration" }],
|
|
1121
|
-
"
|
|
1122
|
-
"
|
|
1123
|
-
"
|
|
1124
|
-
"
|
|
1125
|
-
"
|
|
1126
|
-
"
|
|
1127
|
-
"
|
|
1128
|
-
"sheets.values.update": [{ effect: "write", scopeStatementKind: "google_workspace_ceal_drive_or_direct_share_editable_sheet_ranges", providerAuthorityKind: "google_service_account" }],
|
|
1129
|
-
"sheets.values.clear": [{ effect: "write", scopeStatementKind: "google_workspace_ceal_drive_or_direct_share_editable_sheet_clear_ranges", providerAuthorityKind: "google_service_account" }]
|
|
1130
|
-
});
|
|
1131
|
-
var ANNOUNCEMENT_SCOPE_STATEMENTS = Object.freeze({
|
|
1132
|
-
github_app_installation_repositories: "Repositories in the installed GitHub App installation.",
|
|
1133
|
-
slack_public_app_member_channels_only: "Public channels where the installed Slack app is a member; private channels, direct messages, multi-person direct messages, and requester membership are not declared by this connector.",
|
|
1134
|
-
notion_connected_logical_area: "Connected Notion logical area under provider-enforced sharing; descendant inventory is not declared.",
|
|
1135
|
-
google_workspace_calendar_read_only: "Approved Calendar availability and event reads only; Calendar mutation is not declared.",
|
|
1136
|
-
google_workspace_ceal_drive_or_direct_share_metadata: "Metadata search for files in the organization shared drive named Ceal Drive and files directly shared with the provider application; file-content read and mutation are not declared.",
|
|
1137
|
-
google_workspace_ceal_drive_or_direct_share_sheet_ranges: "Bounded values reads from governed Google Sheets in the organization shared drive named Ceal Drive and directly shared files; file mutation is not declared.",
|
|
1138
|
-
google_workspace_ceal_drive_or_direct_share_editable_sheet_ranges: "Bounded values updates in governed editable Google Sheets in the organization shared drive named Ceal Drive and directly shared files; Docs, Slides, and other Drive file mutation are not declared.",
|
|
1139
|
-
google_workspace_ceal_drive_or_direct_share_editable_sheet_clear_ranges: "Bounded values clears in governed editable Google Sheets in the organization shared drive named Ceal Drive and directly shared files; Docs, Slides, and other Drive file mutation are not declared."
|
|
1504
|
+
"resource.get": [{ effect: "read", scopeStatementKind: "notion_connected_logical_area", providerAuthorityKind: "notion_integration" }],
|
|
1505
|
+
"availability.get": [{ effect: "read", scopeStatementKind: "google_workspace_calendar_read_only", providerAuthorityKind: "google_service_account" }],
|
|
1506
|
+
"event.search": [{ effect: "read", scopeStatementKind: "google_workspace_calendar_read_only", providerAuthorityKind: "google_service_account" }],
|
|
1507
|
+
"file.search": [{ effect: "read", scopeStatementKind: "google_workspace_admitted_drive_target_metadata", providerAuthorityKind: "google_service_account" }],
|
|
1508
|
+
"cell_range.get": [{ effect: "read", scopeStatementKind: "google_workspace_admitted_drive_target_sheet_ranges", providerAuthorityKind: "google_service_account" }],
|
|
1509
|
+
"sheet.list": [{ effect: "read", scopeStatementKind: "google_workspace_admitted_drive_target_sheet_tabs", providerAuthorityKind: "google_service_account" }],
|
|
1510
|
+
"cell_range.update": [{ effect: "write", scopeStatementKind: "google_workspace_admitted_drive_target_editable_sheet_ranges", providerAuthorityKind: "google_service_account" }]
|
|
1140
1511
|
});
|
|
1141
1512
|
|
|
1142
1513
|
// packages/ceal-client-protocol/src/gateway-write-identity.ts
|
|
@@ -1193,90 +1564,6 @@ var ADMIN_LINEAGE_NODE_KINDS = vocabulary(["source_read", "synthesis_preview", "
|
|
|
1193
1564
|
// packages/ceal-client-protocol/src/actor-kind.ts
|
|
1194
1565
|
var CEAL_ACTOR_KINDS = vocabulary(["human", "bot", "app", "unknown"]);
|
|
1195
1566
|
|
|
1196
|
-
// packages/ceal-client-protocol/src/leased-consumer-vocabulary.ts
|
|
1197
|
-
var CEAL_TERMINAL_DISPOSITIONS = vocabulary(["completed", "failed", "cancelled"]);
|
|
1198
|
-
var CEAL_LEASE_DISPOSITIONS = vocabulary([...CEAL_TERMINAL_DISPOSITIONS, "deferred"]);
|
|
1199
|
-
var CEAL_AUTOMATIC_FEEDBACK_INTENTS = vocabulary(["initial"]);
|
|
1200
|
-
var CEAL_LEASED_MESSAGE_DELIVERY_CAPABILITY_IDS = vocabulary(["message.create", "message.update", "message.delete"]);
|
|
1201
|
-
var CEAL_REPOSITORY_VISIBILITIES = vocabulary(["public", "private", "internal"]);
|
|
1202
|
-
var CEAL_RESULT_DELIVERY_OFFERS = vocabulary(["pending", "offered", "transport_lost"]);
|
|
1203
|
-
var CEAL_RESULT_DELIVERY_STATES = vocabulary(["unavailable", ...CEAL_RESULT_DELIVERY_OFFERS]);
|
|
1204
|
-
var CEAL_PROVIDER_OUTCOMES = vocabulary(["not_attempted", "outcome_unknown", "verified"]);
|
|
1205
|
-
var CEAL_ACTIVITY_GAP_CODES = vocabulary([
|
|
1206
|
-
"provider_page_budget",
|
|
1207
|
-
"related_item_budget",
|
|
1208
|
-
"provider_cursor_unavailable",
|
|
1209
|
-
"malformed_provider_page",
|
|
1210
|
-
"visibility_incomplete",
|
|
1211
|
-
"unsupported_event_kind"
|
|
1212
|
-
]);
|
|
1213
|
-
var CEAL_ACTIVITY_COVERAGE_STATUSES = vocabulary(["complete_for_target", "continuation_required", "blocked"]);
|
|
1214
|
-
var CEAL_ACTIVITY_EVENT_KINDS = vocabulary([
|
|
1215
|
-
"slack.message",
|
|
1216
|
-
"slack.reply",
|
|
1217
|
-
"github.commit.authored",
|
|
1218
|
-
"github.issue.opened",
|
|
1219
|
-
"github.pull_request.opened",
|
|
1220
|
-
"github.review.submitted",
|
|
1221
|
-
"github.issue_comment.created",
|
|
1222
|
-
"github.review_comment.created",
|
|
1223
|
-
"calendar.organized",
|
|
1224
|
-
"calendar.accepted_invite",
|
|
1225
|
-
"calendar.recorded"
|
|
1226
|
-
]);
|
|
1227
|
-
var CEAL_ACTIVITY_TIMESTAMP_BASES = vocabulary([
|
|
1228
|
-
"message_created",
|
|
1229
|
-
"commit_authored",
|
|
1230
|
-
"resource_created",
|
|
1231
|
-
"review_submitted",
|
|
1232
|
-
"comment_created",
|
|
1233
|
-
"event_start",
|
|
1234
|
-
"all_day_start"
|
|
1235
|
-
]);
|
|
1236
|
-
var CEAL_ARTIFACT_STAGE_TERMINALS = vocabulary(["chunk_accepted", "artifact_ready", "idempotency_replayed"]);
|
|
1237
|
-
var CEAL_READ_ITEM_KINDS = vocabulary(["conversation", "identity", "usergroup", "message", "file", "document"]);
|
|
1238
|
-
var CEAL_RESOURCE_RESOLVE_KINDS = vocabulary(["conversation", "identity", "usergroup", "permalink"]);
|
|
1239
|
-
var CEAL_OPAQUE_HANDLE_KINDS = vocabulary(["target", "message", "thread", "artifact", "document", "object"]);
|
|
1240
|
-
var CEAL_WRITE_OBJECT_KINDS = vocabulary(["document", "comment", "cell_range"]);
|
|
1241
|
-
var CEAL_CONVERSATION_KINDS = vocabulary(["channel", "dm", "group"]);
|
|
1242
|
-
var CEAL_FILE_TYPE_FAMILIES = vocabulary(["all", "image", "pdf"]);
|
|
1243
|
-
var CEAL_GITHUB_ISSUE_STATES = vocabulary(["open", "closed", "all"]);
|
|
1244
|
-
var CEAL_NOTION_UPDATABLE_BLOCK_TYPES = vocabulary([
|
|
1245
|
-
"paragraph",
|
|
1246
|
-
"heading_1",
|
|
1247
|
-
"heading_2",
|
|
1248
|
-
"heading_3",
|
|
1249
|
-
"bulleted_list_item",
|
|
1250
|
-
"numbered_list_item",
|
|
1251
|
-
"to_do",
|
|
1252
|
-
"code"
|
|
1253
|
-
]);
|
|
1254
|
-
var CEAL_NOTION_NEUTRAL_TYPES = vocabulary([
|
|
1255
|
-
"text",
|
|
1256
|
-
"number",
|
|
1257
|
-
"boolean",
|
|
1258
|
-
"date",
|
|
1259
|
-
"select",
|
|
1260
|
-
"multi_select",
|
|
1261
|
-
"people",
|
|
1262
|
-
"url",
|
|
1263
|
-
"email",
|
|
1264
|
-
"phone",
|
|
1265
|
-
"unsupported"
|
|
1266
|
-
]);
|
|
1267
|
-
var CEAL_NOTION_IDENTITY_GAP_REASONS = vocabulary([
|
|
1268
|
-
"identity_unavailable",
|
|
1269
|
-
"identity_stale",
|
|
1270
|
-
"identity_ambiguous",
|
|
1271
|
-
"identity_revoked",
|
|
1272
|
-
"identity_unlinked"
|
|
1273
|
-
]);
|
|
1274
|
-
var CEAL_NOTION_STRING_VALUE_TYPES = vocabulary(["text", "select", "url", "email", "phone"]);
|
|
1275
|
-
var CEAL_UNREAD_REASONS = vocabulary(["blocked", "unavailable", "too_large", "unsupported", "download_failed", "permission_denied"]);
|
|
1276
|
-
var CEAL_PLAN_ITEM_STATUSES = vocabulary(["pending", "active", "completed"]);
|
|
1277
|
-
var CEAL_FINAL_PRESENTATION_INTENTS = vocabulary(["final", "stop", "transient_notice"]);
|
|
1278
|
-
var CEAL_PRESENTATION_INTENTS = vocabulary(["progress", ...CEAL_FINAL_PRESENTATION_INTENTS]);
|
|
1279
|
-
|
|
1280
1567
|
// packages/ceal-client-protocol/src/personal-client-vocabulary.ts
|
|
1281
1568
|
var CEAL_PERSONAL_CLIENT_BINDING_KEYS = vocabulary([
|
|
1282
1569
|
"access_group_ref",
|
|
@@ -1294,11 +1581,12 @@ var CEAL_REFRESH_FAILURE_CODES = vocabulary([
|
|
|
1294
1581
|
"refresh_replayed",
|
|
1295
1582
|
"refresh_revoked",
|
|
1296
1583
|
"authority_replaced",
|
|
1297
|
-
"refresh_recovery_unavailable"
|
|
1584
|
+
"refresh_recovery_unavailable",
|
|
1585
|
+
"refresh_recovery_expired"
|
|
1298
1586
|
]);
|
|
1299
1587
|
|
|
1300
1588
|
// packages/ceal-client-protocol/src/device-enrollment.ts
|
|
1301
|
-
var CEAL_DEVICE_ENROLLMENT_POLL_FAILURE_CODES = Object.freeze(["unsupported_feature", "recovery_required", "expired"]);
|
|
1589
|
+
var CEAL_DEVICE_ENROLLMENT_POLL_FAILURE_CODES = Object.freeze(["unsupported_feature", "recovery_required", "expired", "denied"]);
|
|
1302
1590
|
var POLL_RESULT_KEYS = Object.freeze(["retry_after_ms", "schema_version", "status"]);
|
|
1303
1591
|
|
|
1304
1592
|
// packages/ceal-client-protocol/src/personal-client-session.ts
|
|
@@ -1310,7 +1598,6 @@ var MAX_ARGUMENT_BYTES = 16 * 1024;
|
|
|
1310
1598
|
var HANDSHAKE_IDENTITY_KEYS = Object.freeze(["membership_ref", "registration_ref", "client_ref", "subject_ref", "instance_ref"]);
|
|
1311
1599
|
var AUDIT_IDENTITY_KEYS = Object.freeze(["event_ref", "membership_ref", "registration_ref", "client_ref", "subject_ref", "instance_ref"]);
|
|
1312
1600
|
var FAILURE_RESPONSE_KEYS = Object.freeze(["error", "ok", "proof_ref_or_unavailable", "protocol_version", "request_id"]);
|
|
1313
|
-
var MAX_RECOVERY_RETRY_AFTER_MS = 60 * 60 * 1e3;
|
|
1314
1601
|
|
|
1315
1602
|
// host/invocation-authentication-client-command.ts
|
|
1316
1603
|
var MAX_DETAIL_CHARACTERS = 240;
|
|
@@ -1321,8 +1608,8 @@ function hostTerminalFailure(error, component) {
|
|
|
1321
1608
|
if (code === "ENOENT") return { code: "host_dependency_unavailable", message: `A command or file the ${component} Host needs is unavailable: ${detail}`, next_action: "Install the missing dependency or restore the missing file, then rerun this command." };
|
|
1322
1609
|
if (code === "EACCES" || code === "EPERM") return { code: "host_permission_denied", message: `The ${component} Host was refused access to a local path: ${detail}`, next_action: "Repair the ownership or mode of the named path, then rerun this command." };
|
|
1323
1610
|
if (code === "ENOSPC") return { code: "host_storage_unavailable", message: `The ${component} Host could not write local state: ${detail}`, next_action: "Free local disk space, then rerun this command." };
|
|
1324
|
-
if (code !== null && HOST_OWNED_CODE.test(code)) return { code, message: `The ${component} Host command failed: ${detail}`, next_action: `Resolve the named failure above; run \`ceal-host doctor
|
|
1325
|
-
return { code: "host_failure_unclassified", message: `The ${component} Host command failed for a cause it cannot classify: ${detail}`, next_action: `Run \`ceal-host doctor
|
|
1611
|
+
if (code !== null && HOST_OWNED_CODE.test(code)) return { code, message: `The ${component} Host command failed: ${detail}`, next_action: `Resolve the named failure above; run \`ceal-host doctor\` only if it reports installed ${component} Host drift.` };
|
|
1612
|
+
return { code: "host_failure_unclassified", message: `The ${component} Host command failed for a cause it cannot classify: ${detail}`, next_action: `Run \`ceal-host doctor\`; if it reports no drift then the ${component} Host configuration is not the cause, and the message above is the only evidence of what is.` };
|
|
1326
1613
|
}
|
|
1327
1614
|
var DOCTOR_FLAGS = Object.freeze({
|
|
1328
1615
|
"--expected-sha256": "expected_sha256",
|
|
@@ -1714,6 +2001,9 @@ var DEFAULT_PORT = {
|
|
|
1714
2001
|
unique_ref: () => `${process.pid}.${crypto.randomUUID()}`
|
|
1715
2002
|
};
|
|
1716
2003
|
|
|
2004
|
+
// host/relay/src/relay-request-binding-store.ts
|
|
2005
|
+
var MAX_STATE_BYTES = 8 * 1024 * 1024;
|
|
2006
|
+
|
|
1717
2007
|
// host/relay/src/relay-quarantine-store.ts
|
|
1718
2008
|
var RELAY_QUARANTINE_MAX_BYTES = 16 * 1024 * 1024;
|
|
1719
2009
|
|
|
@@ -1722,9 +2012,6 @@ var DEFAULT_LIMITS = { global_count: 8192, global_bytes: 64 * 1024 * 1024, produ
|
|
|
1722
2012
|
var RETRY_SECONDS = [1, 2, 4, 8, 16, 32, 60];
|
|
1723
2013
|
var MAX_RETRYABLE_ATTEMPTS = RETRY_SECONDS.length + 10;
|
|
1724
2014
|
|
|
1725
|
-
// host/relay/src/relay-request-binding-store.ts
|
|
1726
|
-
var MAX_STATE_BYTES = 8 * 1024 * 1024;
|
|
1727
|
-
|
|
1728
2015
|
// host/relay/src/relay-ipc.ts
|
|
1729
2016
|
import { createConnection, createServer } from "node:net";
|
|
1730
2017
|
|
|
@@ -1755,13 +2042,56 @@ var HOST_RELAY_CURRENT_PROMPT_RESULT_SCHEMA = "ceal.host_relay_current_prompt_re
|
|
|
1755
2042
|
var HOST_RELAY_IPC_LENGTH_BYTES = Uint32Array.BYTES_PER_ELEMENT;
|
|
1756
2043
|
var HOST_RELAY_ADMISSION_RESPONSE_MAX_BYTES = 4096;
|
|
1757
2044
|
var HOST_RELAY_QUERY_RESPONSE_MAX_BYTES = 8192;
|
|
2045
|
+
var HOST_RELAY_INVOCATION_MINT_REFUSAL_REASONS = vocabulary([
|
|
2046
|
+
"context_stale",
|
|
2047
|
+
"context_expired",
|
|
2048
|
+
"host_source_refused",
|
|
2049
|
+
"host_credential_refused",
|
|
2050
|
+
"gateway_unavailable",
|
|
2051
|
+
"gateway_refused",
|
|
2052
|
+
"gateway_response_invalid",
|
|
2053
|
+
"deadline",
|
|
2054
|
+
"cancelled",
|
|
2055
|
+
"mint_failed",
|
|
2056
|
+
"relay_failed"
|
|
2057
|
+
]);
|
|
2058
|
+
var HOST_RELAY_INVOCATION_MINT_OUTCOMES = vocabulary(["completed", "caller_cancelled", "deadline", "failed", "no_binding"]);
|
|
2059
|
+
var HOST_RELAY_EXCHANGE_FAILURES = vocabulary([
|
|
2060
|
+
"permission_denied",
|
|
2061
|
+
"socket_missing",
|
|
2062
|
+
"connection_refused",
|
|
2063
|
+
"closed_early",
|
|
2064
|
+
"response_invalid",
|
|
2065
|
+
"timed_out",
|
|
2066
|
+
"cancelled",
|
|
2067
|
+
"unavailable"
|
|
2068
|
+
]);
|
|
1758
2069
|
var HostRelayIpcError = class extends Error {
|
|
1759
2070
|
code;
|
|
1760
|
-
|
|
2071
|
+
/** Set only when the client-side socket exchange itself failed. */
|
|
2072
|
+
failure;
|
|
2073
|
+
constructor(code, message = code, failure2) {
|
|
1761
2074
|
super(message);
|
|
1762
2075
|
this.code = code;
|
|
2076
|
+
this.failure = failure2;
|
|
1763
2077
|
}
|
|
1764
2078
|
};
|
|
2079
|
+
function hostRelayExchangeFailure(error) {
|
|
2080
|
+
return error instanceof HostRelayIpcError ? error.failure : void 0;
|
|
2081
|
+
}
|
|
2082
|
+
function socketErrorFailure(error) {
|
|
2083
|
+
switch (errorCode2(error)) {
|
|
2084
|
+
case "EACCES":
|
|
2085
|
+
case "EPERM":
|
|
2086
|
+
return "permission_denied";
|
|
2087
|
+
case "ENOENT":
|
|
2088
|
+
return "socket_missing";
|
|
2089
|
+
case "ECONNREFUSED":
|
|
2090
|
+
return "connection_refused";
|
|
2091
|
+
default:
|
|
2092
|
+
return "unavailable";
|
|
2093
|
+
}
|
|
2094
|
+
}
|
|
1765
2095
|
var HostRelayInvocationContextPort = class {
|
|
1766
2096
|
endpoint;
|
|
1767
2097
|
constructor(endpoint) {
|
|
@@ -1808,7 +2138,7 @@ function exchange(endpoint, encoded, timeoutMs, decode, signal) {
|
|
|
1808
2138
|
const socket = createConnection(endpoint);
|
|
1809
2139
|
let buffer = Buffer.alloc(0);
|
|
1810
2140
|
let settled = false;
|
|
1811
|
-
const aborted = () => finish(new HostRelayIpcError("relay_unavailable", "Host Relay IPC was cancelled."));
|
|
2141
|
+
const aborted = () => finish(new HostRelayIpcError("relay_unavailable", "Host Relay IPC was cancelled.", "cancelled"));
|
|
1812
2142
|
const finish = (error, response2) => {
|
|
1813
2143
|
if (settled) return;
|
|
1814
2144
|
settled = true;
|
|
@@ -1817,13 +2147,16 @@ function exchange(endpoint, encoded, timeoutMs, decode, signal) {
|
|
|
1817
2147
|
if (error !== null) reject2(error);
|
|
1818
2148
|
else if (response2 !== void 0) resolve(response2);
|
|
1819
2149
|
};
|
|
1820
|
-
if (timeoutMs !== void 0) socket.setTimeout(timeoutMs, () => finish(new HostRelayIpcError("relay_unavailable", "Host Relay IPC timed out.")));
|
|
2150
|
+
if (timeoutMs !== void 0) socket.setTimeout(timeoutMs, () => finish(new HostRelayIpcError("relay_unavailable", "Host Relay IPC timed out.", "timed_out")));
|
|
1821
2151
|
if (signal?.aborted === true) {
|
|
1822
2152
|
aborted();
|
|
1823
2153
|
return;
|
|
1824
2154
|
}
|
|
1825
2155
|
signal?.addEventListener("abort", aborted, { once: true });
|
|
1826
|
-
socket.once("error", () =>
|
|
2156
|
+
socket.once("error", (error) => {
|
|
2157
|
+
const failure2 = socketErrorFailure(error);
|
|
2158
|
+
finish(new HostRelayIpcError("relay_unavailable", `Host Relay IPC is unavailable: ${failure2}.`, failure2));
|
|
2159
|
+
});
|
|
1827
2160
|
socket.once("connect", () => socket.write(encoded));
|
|
1828
2161
|
socket.on("data", (chunk) => {
|
|
1829
2162
|
try {
|
|
@@ -1831,11 +2164,11 @@ function exchange(endpoint, encoded, timeoutMs, decode, signal) {
|
|
|
1831
2164
|
const decoded = decode(buffer);
|
|
1832
2165
|
if (decoded !== null) finish(null, decoded);
|
|
1833
2166
|
} catch (error) {
|
|
1834
|
-
finish(error instanceof Error ? error :
|
|
2167
|
+
finish(new HostRelayIpcError("relay_unavailable", error instanceof Error ? error.message : "Host Relay IPC response is invalid.", "response_invalid"));
|
|
1835
2168
|
}
|
|
1836
2169
|
});
|
|
1837
2170
|
socket.once("end", () => {
|
|
1838
|
-
if (!settled) finish(new HostRelayIpcError("relay_unavailable", "Host Relay IPC closed without a response."));
|
|
2171
|
+
if (!settled) finish(new HostRelayIpcError("relay_unavailable", "Host Relay IPC closed without a response.", "closed_early"));
|
|
1839
2172
|
});
|
|
1840
2173
|
});
|
|
1841
2174
|
}
|
|
@@ -1901,6 +2234,7 @@ function validQueryIdentity(value, schema) {
|
|
|
1901
2234
|
function validInvocationContextResponse(value) {
|
|
1902
2235
|
if (!record2(value) || value.schema_version !== HOST_RELAY_INVOCATION_CONTEXT_RESULT_SCHEMA) return false;
|
|
1903
2236
|
if (value.status === "no_binding") return Object.keys(value).length === 2;
|
|
2237
|
+
if (value.status === "refused") return Object.keys(value).length === 3 && isVocabularyWord(HOST_RELAY_INVOCATION_MINT_REFUSAL_REASONS, value.reason);
|
|
1904
2238
|
if (value.status !== "ready" || Object.keys(value).length !== 3) return false;
|
|
1905
2239
|
try {
|
|
1906
2240
|
decodeCealHostInvocationAuthenticationResult(value.result);
|
|
@@ -1934,6 +2268,9 @@ function exactKeys3(value, keys) {
|
|
|
1934
2268
|
function safeRef2(value) {
|
|
1935
2269
|
return typeof value === "string" && /^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/u.test(value);
|
|
1936
2270
|
}
|
|
2271
|
+
function errorCode2(error) {
|
|
2272
|
+
return record2(error) && typeof error.code === "string" ? error.code : null;
|
|
2273
|
+
}
|
|
1937
2274
|
|
|
1938
2275
|
// host/invocation-authentication-command.ts
|
|
1939
2276
|
var HOST_INVOCATION_AUTHENTICATION_COMMAND_PREFIX = ["authenticate", "--client-nonce"];
|
|
@@ -1977,12 +2314,22 @@ async function authenticateHostInvocation(descriptor, input, options) {
|
|
|
1977
2314
|
local_turn_ref: current.identity.host_turn_ref,
|
|
1978
2315
|
client_nonce: request2.client_nonce
|
|
1979
2316
|
};
|
|
1980
|
-
const response2 = await config.mint_invocation_context
|
|
1981
|
-
if (response2.status !== "ready") throw new TypeError(response2.status);
|
|
2317
|
+
const response2 = await mintedResult(config.mint_invocation_context, query);
|
|
1982
2318
|
const rechecked = await store.readInvocationContext(current.identity.host_source_ref, current.identity.host_session_ref, (config.now ?? (() => /* @__PURE__ */ new Date()))());
|
|
1983
2319
|
if (rechecked === null || !sameTurn(current, rechecked)) throw new TypeError("context replaced");
|
|
1984
2320
|
return decodeCealHostInvocationAuthenticationResult(response2.result, now);
|
|
1985
2321
|
}
|
|
2322
|
+
async function mintedResult(mint, query) {
|
|
2323
|
+
let response2;
|
|
2324
|
+
try {
|
|
2325
|
+
response2 = await mint(query);
|
|
2326
|
+
} catch (error) {
|
|
2327
|
+
throw new TypeError(`relay ${hostRelayExchangeFailure(error) ?? "unavailable"}`);
|
|
2328
|
+
}
|
|
2329
|
+
if (response2.status === "refused") throw new TypeError(`mint ${response2.reason}`);
|
|
2330
|
+
if (response2.status !== "ready") throw new TypeError(response2.status);
|
|
2331
|
+
return response2;
|
|
2332
|
+
}
|
|
1986
2333
|
async function currentInvocation(descriptor, config, now) {
|
|
1987
2334
|
const store = descriptor.create_store(config.outbox_dir);
|
|
1988
2335
|
const identity = resolveIdentity(descriptor, config);
|
|
@@ -2025,8 +2372,11 @@ function writeResult(value, sink) {
|
|
|
2025
2372
|
}
|
|
2026
2373
|
|
|
2027
2374
|
// host/producer-service.ts
|
|
2028
|
-
import {
|
|
2029
|
-
|
|
2375
|
+
import { posix as posix3, win32 as win323 } from "node:path";
|
|
2376
|
+
|
|
2377
|
+
// host/runtime-source-paths.ts
|
|
2378
|
+
import { createHash as createHash3 } from "node:crypto";
|
|
2379
|
+
import { posix as posix2, win32 as win322 } from "node:path";
|
|
2030
2380
|
|
|
2031
2381
|
// host/absolute-path.ts
|
|
2032
2382
|
import { posix, win32 } from "node:path";
|
|
@@ -2035,7 +2385,35 @@ function isAbsoluteNormalizedNonRootPath(value, flavor = process.platform, allow
|
|
|
2035
2385
|
return typeof value === "string" && value.length <= 4096 && !value.includes("\0") && pathApi.isAbsolute(value) && pathApi.normalize(value) === value && (allowRoot || pathApi.parse(value).root !== value);
|
|
2036
2386
|
}
|
|
2037
2387
|
|
|
2388
|
+
// host/runtime-source-paths.ts
|
|
2389
|
+
var HOST_SOURCE_ID = /^host-source:([0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12})$/u;
|
|
2390
|
+
function hostSourceUuid(sourceRef) {
|
|
2391
|
+
return HOST_SOURCE_ID.exec(sourceRef)?.[1] ?? null;
|
|
2392
|
+
}
|
|
2393
|
+
function hostRuntimeSourcePaths(stateRoot, sourceRef, platform = process.platform) {
|
|
2394
|
+
const sourceId = hostSourceUuid(sourceRef);
|
|
2395
|
+
if (!isAbsoluteNormalizedNonRootPath(stateRoot, platform) || sourceId === null) throw new TypeError("Host runtime source identity is invalid.");
|
|
2396
|
+
const path = platform === "win32" ? win322 : posix2;
|
|
2397
|
+
const sourcesRoot = path.join(stateRoot, "sources");
|
|
2398
|
+
const sourceRoot = path.join(sourcesRoot, sourceId);
|
|
2399
|
+
const runtimeRoot = path.join(stateRoot, "run");
|
|
2400
|
+
const endpoint = platform === "win32" ? `\\\\.\\pipe\\ceal-host-${createHash3("sha256").update(`${stateRoot}\0${sourceRef}`).digest("hex").slice(0, 24)}` : path.join(runtimeRoot, `${sourceId}.sock`);
|
|
2401
|
+
assertHostRuntimeIpcLength(endpoint, platform);
|
|
2402
|
+
return { sourceId, sourcesRoot, sourceRoot, relayRoot: path.join(sourceRoot, "relay"), codexOutbox: path.join(sourceRoot, "producers", "codex", "outbox"), claudeOutbox: path.join(sourceRoot, "producers", "claude", "outbox"), endpoint, runtimeRoot };
|
|
2403
|
+
}
|
|
2404
|
+
function assertHostRuntimeIpcLength(endpoint, platform) {
|
|
2405
|
+
if (platform === "win32") return;
|
|
2406
|
+
const maximum = platform === "linux" ? 107 : 103;
|
|
2407
|
+
if (Buffer.byteLength(endpoint, "utf8") > maximum) throw Object.assign(new TypeError(`ipc_endpoint_too_long: Host IPC path exceeds ${maximum} bytes; use a shorter Host state root.`), { code: "ipc_endpoint_too_long" });
|
|
2408
|
+
}
|
|
2409
|
+
function assertHostProducerSourcePaths(stateRoot, config, producer, platform = process.platform) {
|
|
2410
|
+
const paths = hostRuntimeSourcePaths(stateRoot, config.host_source_ref, platform);
|
|
2411
|
+
if (config.outbox_dir !== (producer === "codex" ? paths.codexOutbox : paths.claudeOutbox) || config.relay_endpoint !== paths.endpoint) throw new TypeError("Host producer outbox and IPC must belong to its configured source.");
|
|
2412
|
+
}
|
|
2413
|
+
|
|
2038
2414
|
// host/producer-service.ts
|
|
2415
|
+
import { constants } from "node:fs";
|
|
2416
|
+
import { lstat as lstat2, open as open3 } from "node:fs/promises";
|
|
2039
2417
|
var MAX_CONFIG_BYTES = 32 * 1024;
|
|
2040
2418
|
var SAFE_REF4 = /^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/u;
|
|
2041
2419
|
var HOST_PRODUCER_CONFIG_FLAG = "--ceal-host-config";
|
|
@@ -2057,7 +2435,15 @@ function parseHostProducerConfigFlag(args, platform = process.platform) {
|
|
|
2057
2435
|
return parseProducerHostConfigFlag(args, HOST_PRODUCER_CONFIG_FLAG, platform, hostProducerError);
|
|
2058
2436
|
}
|
|
2059
2437
|
async function readHostProducerConfig(descriptor, configPath, platform = process.platform) {
|
|
2060
|
-
|
|
2438
|
+
const config = decodeHostProducerConfigText(descriptor, await readProducerConfigText(configPath, platform, hostProducerError), platform);
|
|
2439
|
+
const path = platform === "win32" ? win323 : posix3;
|
|
2440
|
+
const root = path.resolve(config.outbox_dir, "../../../../..");
|
|
2441
|
+
try {
|
|
2442
|
+
assertHostProducerSourcePaths(root, config, descriptor.producer_id, platform);
|
|
2443
|
+
} catch (error) {
|
|
2444
|
+
throw hostProducerError("invalid_config", error instanceof Error ? error.message : "Host producer source tuple is invalid.");
|
|
2445
|
+
}
|
|
2446
|
+
return config;
|
|
2061
2447
|
}
|
|
2062
2448
|
function decodeHostProducerConfigText(descriptor, text, platform = process.platform) {
|
|
2063
2449
|
const extraPaths = descriptor.extra_paths ?? [];
|
|
@@ -2193,7 +2579,7 @@ function boundedMilliseconds(value) {
|
|
|
2193
2579
|
}
|
|
2194
2580
|
|
|
2195
2581
|
// host/codex/src/codex-decoder.ts
|
|
2196
|
-
import { createHash as
|
|
2582
|
+
import { createHash as createHash4 } from "node:crypto";
|
|
2197
2583
|
|
|
2198
2584
|
// host/codex/src/codex-types.ts
|
|
2199
2585
|
var CODEX_THREAD_ID_ENVIRONMENT = "CODEX_THREAD_ID";
|
|
@@ -2247,7 +2633,7 @@ function turnObservationValue(sessionId, turnRef, status) {
|
|
|
2247
2633
|
return { status, host_session_id_sha256: sha256(sessionId), host_turn_ref: turnRef };
|
|
2248
2634
|
}
|
|
2249
2635
|
function sha256(value) {
|
|
2250
|
-
return
|
|
2636
|
+
return createHash4("sha256").update(value, "utf8").digest("hex");
|
|
2251
2637
|
}
|
|
2252
2638
|
function shortDigest(value) {
|
|
2253
2639
|
return cealRequestSha256(value);
|
|
@@ -2826,7 +3212,7 @@ function storageError(message) {
|
|
|
2826
3212
|
}
|
|
2827
3213
|
|
|
2828
3214
|
// host/codex/src/codex-producer.ts
|
|
2829
|
-
import { createHash as
|
|
3215
|
+
import { createHash as createHash5 } from "node:crypto";
|
|
2830
3216
|
import { mkdir as mkdir3, readFile as readFile2, rename as rename3, writeFile } from "node:fs/promises";
|
|
2831
3217
|
import { join as join4 } from "node:path";
|
|
2832
3218
|
var STATE_SCHEMA = "ceal.codex_producer_state.v1";
|
|
@@ -2928,7 +3314,7 @@ var CodexProducer = class {
|
|
|
2928
3314
|
const directoryIdentity = registration?.cwd ?? envelope.identity.host_session_ref;
|
|
2929
3315
|
drafts.push({ frame_kind: "session_started", payload: compact({
|
|
2930
3316
|
local_session_ref: envelope.identity.host_session_ref,
|
|
2931
|
-
working_directory_ref: `workspace:${
|
|
3317
|
+
working_directory_ref: `workspace:${createHash5("sha256").update(directoryIdentity, "utf8").digest("hex")}`,
|
|
2932
3318
|
model: recordText(session.value, "model"),
|
|
2933
3319
|
host_version: nestedText(session.value, "host_version"),
|
|
2934
3320
|
observations: [session]
|
|
@@ -2957,7 +3343,7 @@ var CodexProducer = class {
|
|
|
2957
3343
|
const value = JSON.parse(await readFile2(this.statePath, "utf8"));
|
|
2958
3344
|
return decodeState(value, this.installationRef, this.epoch);
|
|
2959
3345
|
} catch (error) {
|
|
2960
|
-
if (
|
|
3346
|
+
if (errorCode3(error) !== "ENOENT") throw error;
|
|
2961
3347
|
return { schema_version: STATE_SCHEMA, producer_installation_ref: this.installationRef, producer_epoch: this.epoch, next_sequence: 1, pending: {} };
|
|
2962
3348
|
}
|
|
2963
3349
|
}
|
|
@@ -3008,9 +3394,9 @@ function nonNegativeNumber(value) {
|
|
|
3008
3394
|
return typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : void 0;
|
|
3009
3395
|
}
|
|
3010
3396
|
function safeReasonRef(value) {
|
|
3011
|
-
return SAFE_REF7.test(value) ? value : `reason:${
|
|
3397
|
+
return SAFE_REF7.test(value) ? value : `reason:${createHash5("sha256").update(value, "utf8").digest("hex")}`;
|
|
3012
3398
|
}
|
|
3013
|
-
function
|
|
3399
|
+
function errorCode3(error) {
|
|
3014
3400
|
return typeof error === "object" && error !== null && "code" in error ? String(error.code) : null;
|
|
3015
3401
|
}
|
|
3016
3402
|
function decodeState(value, installationRef, epoch) {
|
|
@@ -3049,19 +3435,15 @@ function isRecord5(value) {
|
|
|
3049
3435
|
}
|
|
3050
3436
|
|
|
3051
3437
|
// host/codex/src/codex-transcript-watcher.ts
|
|
3052
|
-
import { createHash as
|
|
3438
|
+
import { createHash as createHash7 } from "node:crypto";
|
|
3053
3439
|
import { O_NOFOLLOW as O_NOFOLLOW2, O_RDONLY as O_RDONLY3 } from "node:constants";
|
|
3054
3440
|
import { open as open5 } from "node:fs/promises";
|
|
3055
3441
|
|
|
3056
|
-
// host/codex/src/codex-
|
|
3057
|
-
|
|
3058
|
-
function codexSubmissionReference(hostInputRef, event, ordinal) {
|
|
3059
|
-
if (!SAFE_REF8.test(hostInputRef) || !Number.isSafeInteger(ordinal) || ordinal < 0) throw new CodexHostAdapterError("invalid_input", "Codex submission identity is invalid.");
|
|
3060
|
-
return `codex-submission:${cealRequestSha256({ host_input_ref: hostInputRef, event, ordinal })}`;
|
|
3061
|
-
}
|
|
3442
|
+
// host/codex/src/codex-transcript-baseline.ts
|
|
3443
|
+
import { createHash as createHash6 } from "node:crypto";
|
|
3062
3444
|
|
|
3063
3445
|
// host/codex/src/codex-transcript-decoder.ts
|
|
3064
|
-
var
|
|
3446
|
+
var SAFE_REF8 = /^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$/u;
|
|
3065
3447
|
var MAX_PROMPT_BYTES = 64 * 1024;
|
|
3066
3448
|
function decodeCodexTranscriptLine(line) {
|
|
3067
3449
|
let value;
|
|
@@ -3072,37 +3454,37 @@ function decodeCodexTranscriptLine(line) {
|
|
|
3072
3454
|
}
|
|
3073
3455
|
if (!isRecord6(value)) reject("Codex transcript record envelope is malformed.");
|
|
3074
3456
|
const ordinal = safeOrdinal(value.ordinal);
|
|
3075
|
-
const
|
|
3457
|
+
const timestamp5 = safeTimestamp(value.timestamp);
|
|
3076
3458
|
if (!isRecord6(value.payload) || typeof value.type !== "string") reject("Codex transcript record payload is malformed.");
|
|
3077
|
-
if (value.type === "session_meta") return decodeSessionMeta(value.payload, ordinal,
|
|
3078
|
-
if (value.type === "turn_context") return decodeTurnContext(value.payload, ordinal,
|
|
3079
|
-
if (value.type === "event_msg") return decodeEventMessage(value.payload, ordinal,
|
|
3080
|
-
if (value.type === "response_item") return decodeResponseItem(value.payload, ordinal,
|
|
3081
|
-
return { kind: "ignored", ordinal, timestamp:
|
|
3459
|
+
if (value.type === "session_meta") return decodeSessionMeta(value.payload, ordinal, timestamp5);
|
|
3460
|
+
if (value.type === "turn_context") return decodeTurnContext(value.payload, ordinal, timestamp5);
|
|
3461
|
+
if (value.type === "event_msg") return decodeEventMessage(value.payload, ordinal, timestamp5);
|
|
3462
|
+
if (value.type === "response_item") return decodeResponseItem(value.payload, ordinal, timestamp5);
|
|
3463
|
+
return { kind: "ignored", ordinal, timestamp: timestamp5 };
|
|
3082
3464
|
}
|
|
3083
|
-
function decodeTurnContext(payload, ordinal,
|
|
3465
|
+
function decodeTurnContext(payload, ordinal, timestamp5) {
|
|
3084
3466
|
return {
|
|
3085
3467
|
kind: "turn_context",
|
|
3086
3468
|
ordinal,
|
|
3087
|
-
timestamp:
|
|
3469
|
+
timestamp: timestamp5,
|
|
3088
3470
|
turn_id: safeRef4(payload.turn_id, "Codex turn context identity is invalid."),
|
|
3089
3471
|
model: boundedNonEmptyText(payload.model, 256, "Codex turn context model is invalid.")
|
|
3090
3472
|
};
|
|
3091
3473
|
}
|
|
3092
|
-
function decodeSessionMeta(payload, ordinal,
|
|
3474
|
+
function decodeSessionMeta(payload, ordinal, timestamp5) {
|
|
3093
3475
|
const sessionId = safeRef4(payload.id, "Codex transcript session identity is invalid.");
|
|
3094
3476
|
const cliVersion = boundedNonEmptyText(payload.cli_version, 64, "Codex transcript version is invalid.");
|
|
3095
|
-
return { kind: "session_meta", ordinal, timestamp:
|
|
3477
|
+
return { kind: "session_meta", ordinal, timestamp: timestamp5, session_id: sessionId, cli_version: cliVersion };
|
|
3096
3478
|
}
|
|
3097
|
-
function decodeEventMessage(payload, ordinal,
|
|
3479
|
+
function decodeEventMessage(payload, ordinal, timestamp5) {
|
|
3098
3480
|
if (payload.type === "task_started") {
|
|
3099
|
-
return { kind: "task_started", ordinal, timestamp:
|
|
3481
|
+
return { kind: "task_started", ordinal, timestamp: timestamp5, turn_id: safeRef4(payload.turn_id, "Codex task identity is invalid."), started_at: safeNumber(payload.started_at) };
|
|
3100
3482
|
}
|
|
3101
3483
|
if (payload.type === "task_complete") {
|
|
3102
3484
|
return {
|
|
3103
3485
|
kind: "task_complete",
|
|
3104
3486
|
ordinal,
|
|
3105
|
-
timestamp:
|
|
3487
|
+
timestamp: timestamp5,
|
|
3106
3488
|
turn_id: safeRef4(payload.turn_id, "Codex task identity is invalid."),
|
|
3107
3489
|
started_at: safeNumber(payload.started_at),
|
|
3108
3490
|
completed_at: safeNumber(payload.completed_at),
|
|
@@ -3114,7 +3496,7 @@ function decodeEventMessage(payload, ordinal, timestamp4) {
|
|
|
3114
3496
|
return {
|
|
3115
3497
|
kind: "turn_aborted",
|
|
3116
3498
|
ordinal,
|
|
3117
|
-
timestamp:
|
|
3499
|
+
timestamp: timestamp5,
|
|
3118
3500
|
turn_id: safeRef4(payload.turn_id, "Codex task identity is invalid."),
|
|
3119
3501
|
started_at: safeNumber(payload.started_at),
|
|
3120
3502
|
completed_at: safeNumber(payload.completed_at),
|
|
@@ -3122,12 +3504,12 @@ function decodeEventMessage(payload, ordinal, timestamp4) {
|
|
|
3122
3504
|
reason: boundedText(payload.reason, 256, "Codex task abort reason is invalid.")
|
|
3123
3505
|
};
|
|
3124
3506
|
}
|
|
3125
|
-
if (payload.type === "token_count") return decodeTokenCount(payload, ordinal,
|
|
3126
|
-
return { kind: "ignored", ordinal, timestamp:
|
|
3507
|
+
if (payload.type === "token_count") return decodeTokenCount(payload, ordinal, timestamp5);
|
|
3508
|
+
return { kind: "ignored", ordinal, timestamp: timestamp5 };
|
|
3127
3509
|
}
|
|
3128
|
-
function decodeTokenCount(payload, ordinal,
|
|
3129
|
-
if (payload.info === null) return { kind: "token_count", ordinal, timestamp:
|
|
3130
|
-
if (!isRecord6(payload.info)) return { kind: "token_count", ordinal, timestamp:
|
|
3510
|
+
function decodeTokenCount(payload, ordinal, timestamp5) {
|
|
3511
|
+
if (payload.info === null) return { kind: "token_count", ordinal, timestamp: timestamp5 };
|
|
3512
|
+
if (!isRecord6(payload.info)) return { kind: "token_count", ordinal, timestamp: timestamp5, usage_gap_reason: "token_count_shape_not_attributable" };
|
|
3131
3513
|
const lastUsage = optionalTokenUsage(payload.info.last_token_usage);
|
|
3132
3514
|
const totalUsage = optionalTokenUsage(payload.info.total_token_usage);
|
|
3133
3515
|
const gap = lastUsage.status === "invalid" || totalUsage.status === "invalid";
|
|
@@ -3135,7 +3517,7 @@ function decodeTokenCount(payload, ordinal, timestamp4) {
|
|
|
3135
3517
|
return {
|
|
3136
3518
|
kind: "token_count",
|
|
3137
3519
|
ordinal,
|
|
3138
|
-
timestamp:
|
|
3520
|
+
timestamp: timestamp5,
|
|
3139
3521
|
...lastUsage.status === "valid" ? { last_usage: lastUsage.value } : {},
|
|
3140
3522
|
...totalUsage.status === "valid" ? { total_usage: totalUsage.value } : {},
|
|
3141
3523
|
...usageGapReason === void 0 ? {} : { usage_gap_reason: usageGapReason }
|
|
@@ -3163,16 +3545,16 @@ function decodeTokenUsage(value) {
|
|
|
3163
3545
|
if (usage.total_tokens !== usage.input_tokens + usage.output_tokens || usage.cached_input_tokens + usage.cache_write_input_tokens > usage.input_tokens || usage.reasoning_output_tokens > usage.output_tokens) reject("Codex token usage buckets are inconsistent.");
|
|
3164
3546
|
return usage;
|
|
3165
3547
|
}
|
|
3166
|
-
function decodeResponseItem(payload, ordinal,
|
|
3167
|
-
if (payload.type !== "message" || payload.role !== "user") return { kind: "ignored", ordinal, timestamp:
|
|
3548
|
+
function decodeResponseItem(payload, ordinal, timestamp5) {
|
|
3549
|
+
if (payload.type !== "message" || payload.role !== "user") return { kind: "ignored", ordinal, timestamp: timestamp5 };
|
|
3168
3550
|
const metadata = userMessageMetadata(payload.internal_chat_message_metadata_passthrough);
|
|
3169
3551
|
const kinds = metadata.content_item_kinds;
|
|
3170
|
-
if (kinds.length !== 1 || kinds[0] !== "user.text") return { kind: "ignored", ordinal, timestamp:
|
|
3552
|
+
if (kinds.length !== 1 || kinds[0] !== "user.text") return { kind: "ignored", ordinal, timestamp: timestamp5 };
|
|
3171
3553
|
const prompt = userTextContent(payload.content);
|
|
3172
3554
|
return {
|
|
3173
3555
|
kind: "user_text",
|
|
3174
3556
|
ordinal,
|
|
3175
|
-
timestamp:
|
|
3557
|
+
timestamp: timestamp5,
|
|
3176
3558
|
prompt,
|
|
3177
3559
|
message_id: safeRef4(payload.id, "Codex user message identity is invalid."),
|
|
3178
3560
|
turn_id: safeRef4(metadata.turn_id, "Codex user message task identity is invalid.")
|
|
@@ -3207,7 +3589,7 @@ function safeTimestamp(value) {
|
|
|
3207
3589
|
return value;
|
|
3208
3590
|
}
|
|
3209
3591
|
function safeRef4(value, message) {
|
|
3210
|
-
if (typeof value !== "string" || !
|
|
3592
|
+
if (typeof value !== "string" || !SAFE_REF8.test(value)) reject(message);
|
|
3211
3593
|
return value;
|
|
3212
3594
|
}
|
|
3213
3595
|
function boundedText(value, maximum, message) {
|
|
@@ -3228,246 +3610,298 @@ function reject(message) {
|
|
|
3228
3610
|
throw new CodexHostAdapterError("payload_rejected", message);
|
|
3229
3611
|
}
|
|
3230
3612
|
|
|
3231
|
-
//
|
|
3613
|
+
// host/codex/src/codex-transcript-baseline.ts
|
|
3614
|
+
var BASELINE_READ_CHUNK_BYTES = 256 * 1024;
|
|
3615
|
+
var CODEX_TRANSCRIPT_ANCHOR_BYTES = 256;
|
|
3616
|
+
function codexTranscriptInitialCursor(registration, device, inode, now) {
|
|
3617
|
+
return {
|
|
3618
|
+
schema_version: "ceal.codex_transcript_cursor.v1",
|
|
3619
|
+
host_source_ref: registration.host_source_ref,
|
|
3620
|
+
host_session_ref: registration.host_session_ref,
|
|
3621
|
+
transcript_path: registration.transcript_path,
|
|
3622
|
+
device,
|
|
3623
|
+
inode,
|
|
3624
|
+
offset: 0,
|
|
3625
|
+
last_ordinal: 0,
|
|
3626
|
+
anchor_start: 0,
|
|
3627
|
+
anchor_sha256: digest(Buffer.alloc(0)),
|
|
3628
|
+
header_validated: false,
|
|
3629
|
+
status: "active",
|
|
3630
|
+
updated_at: timestamp3(now)
|
|
3631
|
+
};
|
|
3632
|
+
}
|
|
3633
|
+
async function ownedCodexTranscriptFile(handle) {
|
|
3634
|
+
const stats = await handle.stat();
|
|
3635
|
+
assertCodexTranscriptOwner(stats);
|
|
3636
|
+
return { size: stats.size, device: String(stats.dev), inode: String(stats.ino) };
|
|
3637
|
+
}
|
|
3638
|
+
function assertCodexTranscriptOwner(stats) {
|
|
3639
|
+
const uid = typeof process.geteuid === "function" ? process.geteuid() : stats.uid;
|
|
3640
|
+
if (!stats.isFile()) throw new CodexHostAdapterError("storage", `Codex transcript source is not a regular file (${refusalFact("mode", `0o${stats.mode.toString(8)}`, "a regular-file mode (0o100xxx)")}).`);
|
|
3641
|
+
if (stats.uid !== uid) throw new CodexHostAdapterError("storage", `Codex transcript source is owned by another user (${refusalFact("uid", stats.uid, `expected ${uid}`)}).`);
|
|
3642
|
+
}
|
|
3643
|
+
function assertCodexTranscriptHeader(registration, record3) {
|
|
3644
|
+
if (record3.kind !== "session_meta" || record3.session_id !== registration.codex_session_id) throw new CodexHostAdapterError("payload_rejected", `Codex transcript header does not match its SessionStart registration (${refusalFacts([
|
|
3645
|
+
{ name: "kind", value: record3.kind, expected: "session_meta" },
|
|
3646
|
+
{ name: "session_id", value: record3.kind === "session_meta" ? record3.session_id : "unavailable", expected: registration.codex_session_id }
|
|
3647
|
+
])}).`);
|
|
3648
|
+
}
|
|
3649
|
+
function digest(value) {
|
|
3650
|
+
return createHash6("sha256").update(value).digest("hex");
|
|
3651
|
+
}
|
|
3652
|
+
function timestamp3(now) {
|
|
3653
|
+
const value = now();
|
|
3654
|
+
if (!Number.isFinite(value.getTime())) throw new CodexHostAdapterError("storage", "Codex watcher clock is invalid.");
|
|
3655
|
+
return value.toISOString();
|
|
3656
|
+
}
|
|
3657
|
+
|
|
3658
|
+
// host/codex/src/codex-adapter.ts
|
|
3659
|
+
var SAFE_REF9 = /^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/u;
|
|
3660
|
+
function codexSubmissionReference(hostInputRef, event, ordinal) {
|
|
3661
|
+
if (!SAFE_REF9.test(hostInputRef) || !Number.isSafeInteger(ordinal) || ordinal < 0) throw new CodexHostAdapterError("invalid_input", "Codex submission identity is invalid.");
|
|
3662
|
+
return `codex-submission:${cealRequestSha256({ host_input_ref: hostInputRef, event, ordinal })}`;
|
|
3663
|
+
}
|
|
3664
|
+
|
|
3665
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/amazon-bedrock.json
|
|
3232
3666
|
var amazon_bedrock_default = { "bedrock-converse-stream": { "amazon.nova-2-lite-v1:0": { id: "amazon.nova-2-lite-v1:0", name: "Nova 2 Lite", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 0.33, output: 2.75, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4096 }, "amazon.nova-lite-v1:0": { id: "amazon.nova-lite-v1:0", name: "Nova Lite", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text", "image"], cost: { input: 0.06, output: 0.24, cacheRead: 0.015, cacheWrite: 0 }, contextWindow: 3e5, maxTokens: 8192 }, "amazon.nova-micro-v1:0": { id: "amazon.nova-micro-v1:0", name: "Nova Micro", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text"], cost: { input: 0.035, output: 0.14, cacheRead: 875e-5, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 8192 }, "amazon.nova-pro-v1:0": { id: "amazon.nova-pro-v1:0", name: "Nova Pro", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text", "image"], cost: { input: 0.8, output: 3.2, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 3e5, maxTokens: 8192 }, "anthropic.claude-fable-5": { id: "anthropic.claude-fable-5", name: "Claude Fable 5", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { off: null, xhigh: "xhigh", max: "max" } }, "anthropic.claude-haiku-4-5-20251001-v1:0": { id: "anthropic.claude-haiku-4-5-20251001-v1:0", name: "Claude Haiku 4.5", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, contextWindow: 2e5, maxTokens: 64e3, compat: { supportsStrictMode: true } }, "anthropic.claude-opus-4-1-20250805-v1:0": { id: "anthropic.claude-opus-4-1-20250805-v1:0", name: "Claude Opus 4.1", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 15, output: 75, cacheRead: 1.5, cacheWrite: 18.75 }, contextWindow: 2e5, maxTokens: 32e3 }, "anthropic.claude-opus-4-5-20251101-v1:0": { id: "anthropic.claude-opus-4-5-20251101-v1:0", name: "Claude Opus 4.5", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 2e5, maxTokens: 64e3, compat: { supportsStrictMode: true } }, "anthropic.claude-opus-4-6-v1": { id: "anthropic.claude-opus-4-6-v1", name: "Claude Opus 4.6", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { max: "max" } }, "anthropic.claude-opus-4-7": { id: "anthropic.claude-opus-4-7", name: "Claude Opus 4.7", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "anthropic.claude-opus-4-8": { id: "anthropic.claude-opus-4-8", name: "Claude Opus 4.8", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "anthropic.claude-sonnet-4-5-20250929-v1:0": { id: "anthropic.claude-sonnet-4-5-20250929-v1:0", name: "Claude Sonnet 4.5", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 2e5, maxTokens: 64e3, compat: { supportsStrictMode: true } }, "anthropic.claude-sonnet-4-6": { id: "anthropic.claude-sonnet-4-6", name: "Claude Sonnet 4.6", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 1e6, maxTokens: 64e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { max: "max" } }, "anthropic.claude-sonnet-5": { id: "anthropic.claude-sonnet-5", name: "Claude Sonnet 5", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, contextWindow: 1e6, maxTokens: 128e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "au.anthropic.claude-haiku-4-5-20251001-v1:0": { id: "au.anthropic.claude-haiku-4-5-20251001-v1:0", name: "Claude Haiku 4.5 (AU)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, contextWindow: 2e5, maxTokens: 64e3, compat: { supportsStrictMode: true } }, "au.anthropic.claude-opus-4-6-v1": { id: "au.anthropic.claude-opus-4-6-v1", name: "AU Anthropic Claude Opus 4.6", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 16.5, output: 82.5, cacheRead: 1.65, cacheWrite: 20.625 }, contextWindow: 1e6, maxTokens: 128e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { max: "max" } }, "au.anthropic.claude-opus-4-8": { id: "au.anthropic.claude-opus-4-8", name: "Claude Opus 4.8 (AU)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "au.anthropic.claude-opus-5": { id: "au.anthropic.claude-opus-5", name: "Claude Opus 5 (AU)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "au.anthropic.claude-sonnet-4-5-20250929-v1:0": { id: "au.anthropic.claude-sonnet-4-5-20250929-v1:0", name: "Claude Sonnet 4.5 (AU)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 2e5, maxTokens: 64e3, compat: { supportsStrictMode: true } }, "au.anthropic.claude-sonnet-4-6": { id: "au.anthropic.claude-sonnet-4-6", name: "AU Anthropic Claude Sonnet 4.6", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 3.3, output: 16.5, cacheRead: 0.33, cacheWrite: 4.125 }, contextWindow: 1e6, maxTokens: 128e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { max: "max" } }, "au.anthropic.claude-sonnet-5": { id: "au.anthropic.claude-sonnet-5", name: "Claude Sonnet 5 (AU)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, contextWindow: 1e6, maxTokens: 128e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "deepseek.r1-v1:0": { id: "deepseek.r1-v1:0", name: "DeepSeek-R1", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text"], cost: { input: 1.35, output: 5.4, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 32768 }, "deepseek.v3-v1:0": { id: "deepseek.v3-v1:0", name: "DeepSeek-V3.1", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text"], cost: { input: 0.58, output: 1.68, cacheRead: 0, cacheWrite: 0 }, contextWindow: 163840, maxTokens: 81920, compat: { supportsStrictMode: true } }, "deepseek.v3.2": { id: "deepseek.v3.2", name: "DeepSeek-V3.2", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text"], cost: { input: 0.62, output: 1.85, cacheRead: 0, cacheWrite: 0 }, contextWindow: 163840, maxTokens: 81920, compat: { supportsStrictMode: true } }, "eu.anthropic.claude-fable-5": { id: "eu.anthropic.claude-fable-5", name: "Claude Fable 5 (EU)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.eu-central-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 11, output: 55, cacheRead: 1.1, cacheWrite: 13.75 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { off: null, xhigh: "xhigh", max: "max" } }, "eu.anthropic.claude-haiku-4-5-20251001-v1:0": { id: "eu.anthropic.claude-haiku-4-5-20251001-v1:0", name: "Claude Haiku 4.5 (EU)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.eu-central-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 1.1, output: 5.5, cacheRead: 0.11, cacheWrite: 1.375 }, contextWindow: 2e5, maxTokens: 64e3, compat: { supportsStrictMode: true } }, "eu.anthropic.claude-opus-4-5-20251101-v1:0": { id: "eu.anthropic.claude-opus-4-5-20251101-v1:0", name: "Claude Opus 4.5 (EU)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.eu-central-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5.5, output: 27.5, cacheRead: 0.55, cacheWrite: 6.875 }, contextWindow: 2e5, maxTokens: 64e3, compat: { supportsStrictMode: true } }, "eu.anthropic.claude-opus-4-6-v1": { id: "eu.anthropic.claude-opus-4-6-v1", name: "Claude Opus 4.6 (EU)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.eu-central-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5.5, output: 27.5, cacheRead: 0.55, cacheWrite: 6.875 }, contextWindow: 1e6, maxTokens: 128e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { max: "max" } }, "eu.anthropic.claude-opus-4-7": { id: "eu.anthropic.claude-opus-4-7", name: "Claude Opus 4.7 (EU)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.eu-central-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5.5, output: 27.5, cacheRead: 0.55, cacheWrite: 6.875 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "eu.anthropic.claude-opus-4-8": { id: "eu.anthropic.claude-opus-4-8", name: "Claude Opus 4.8 (EU)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.eu-central-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5.5, output: 27.5, cacheRead: 0.55, cacheWrite: 6.875 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "eu.anthropic.claude-opus-5": { id: "eu.anthropic.claude-opus-5", name: "Claude Opus 5 (EU)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.eu-central-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5.5, output: 27.5, cacheRead: 0.55, cacheWrite: 6.875 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "eu.anthropic.claude-sonnet-4-5-20250929-v1:0": { id: "eu.anthropic.claude-sonnet-4-5-20250929-v1:0", name: "Claude Sonnet 4.5 (EU)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.eu-central-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 3.3, output: 16.5, cacheRead: 0.33, cacheWrite: 4.125 }, contextWindow: 2e5, maxTokens: 64e3, compat: { supportsStrictMode: true } }, "eu.anthropic.claude-sonnet-4-6": { id: "eu.anthropic.claude-sonnet-4-6", name: "Claude Sonnet 4.6 (EU)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.eu-central-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 3.3, output: 16.5, cacheRead: 0.33, cacheWrite: 4.125 }, contextWindow: 1e6, maxTokens: 64e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { max: "max" } }, "eu.anthropic.claude-sonnet-5": { id: "eu.anthropic.claude-sonnet-5", name: "Claude Sonnet 5 (EU)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.eu-central-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 2.2, output: 11, cacheRead: 0.22, cacheWrite: 2.75 }, contextWindow: 1e6, maxTokens: 128e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "global.anthropic.claude-fable-5": { id: "global.anthropic.claude-fable-5", name: "Claude Fable 5 (Global)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { off: null, xhigh: "xhigh", max: "max" } }, "global.anthropic.claude-haiku-4-5-20251001-v1:0": { id: "global.anthropic.claude-haiku-4-5-20251001-v1:0", name: "Claude Haiku 4.5 (Global)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, contextWindow: 2e5, maxTokens: 64e3, compat: { supportsStrictMode: true } }, "global.anthropic.claude-opus-4-5-20251101-v1:0": { id: "global.anthropic.claude-opus-4-5-20251101-v1:0", name: "Claude Opus 4.5 (Global)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 2e5, maxTokens: 64e3, compat: { supportsStrictMode: true } }, "global.anthropic.claude-opus-4-6-v1": { id: "global.anthropic.claude-opus-4-6-v1", name: "Claude Opus 4.6 (Global)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { max: "max" } }, "global.anthropic.claude-opus-4-7": { id: "global.anthropic.claude-opus-4-7", name: "Claude Opus 4.7 (Global)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "global.anthropic.claude-opus-4-8": { id: "global.anthropic.claude-opus-4-8", name: "Claude Opus 4.8 (Global)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "global.anthropic.claude-opus-5": { id: "global.anthropic.claude-opus-5", name: "Claude Opus 5 (Global)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "global.anthropic.claude-sonnet-4-5-20250929-v1:0": { id: "global.anthropic.claude-sonnet-4-5-20250929-v1:0", name: "Claude Sonnet 4.5 (Global)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 2e5, maxTokens: 64e3, compat: { supportsStrictMode: true } }, "global.anthropic.claude-sonnet-4-6": { id: "global.anthropic.claude-sonnet-4-6", name: "Claude Sonnet 4.6 (Global)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 1e6, maxTokens: 64e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { max: "max" } }, "global.anthropic.claude-sonnet-5": { id: "global.anthropic.claude-sonnet-5", name: "Claude Sonnet 5 (Global)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, contextWindow: 1e6, maxTokens: 128e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "global.openai.gpt-5.6-luna": { id: "global.openai.gpt-5.6-luna", name: "GPT-5.6 Luna (Global)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 0.22, output: 1.32, cacheRead: 0.022, cacheWrite: 0.275 }, contextWindow: 105e4, maxTokens: 128e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { xhigh: "xhigh" } }, "global.openai.gpt-5.6-sol": { id: "global.openai.gpt-5.6-sol", name: "GPT-5.6 Sol (Global)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5.5, output: 33, cacheRead: 0.55, cacheWrite: 6.875 }, contextWindow: 105e4, maxTokens: 128e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { xhigh: "xhigh" } }, "global.openai.gpt-5.6-terra": { id: "global.openai.gpt-5.6-terra", name: "GPT-5.6 Terra (Global)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 2.2, output: 13.2, cacheRead: 0.22, cacheWrite: 2.75 }, contextWindow: 105e4, maxTokens: 128e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { xhigh: "xhigh" } }, "google.gemma-3-27b-it": { id: "google.gemma-3-27b-it", name: "Google Gemma 3 27B Instruct", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text", "image"], cost: { input: 0.12, output: 0.2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 202752, maxTokens: 8192, compat: { supportsStrictMode: true } }, "google.gemma-3-4b-it": { id: "google.gemma-3-4b-it", name: "Gemma 3 4B IT", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text", "image"], cost: { input: 0.04, output: 0.08, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4096 }, "jp.anthropic.claude-haiku-4-5-20251001-v1:0": { id: "jp.anthropic.claude-haiku-4-5-20251001-v1:0", name: "Claude Haiku 4.5 (JP)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, contextWindow: 2e5, maxTokens: 64e3, compat: { supportsStrictMode: true } }, "jp.anthropic.claude-opus-4-7": { id: "jp.anthropic.claude-opus-4-7", name: "Claude Opus 4.7 (JP)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "jp.anthropic.claude-opus-4-8": { id: "jp.anthropic.claude-opus-4-8", name: "Claude Opus 4.8 (JP)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "jp.anthropic.claude-opus-5": { id: "jp.anthropic.claude-opus-5", name: "Claude Opus 5 (JP)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "jp.anthropic.claude-sonnet-4-5-20250929-v1:0": { id: "jp.anthropic.claude-sonnet-4-5-20250929-v1:0", name: "Claude Sonnet 4.5 (JP)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 2e5, maxTokens: 64e3, compat: { supportsStrictMode: true } }, "jp.anthropic.claude-sonnet-4-6": { id: "jp.anthropic.claude-sonnet-4-6", name: "Claude Sonnet 4.6 (JP)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 1e6, maxTokens: 64e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { max: "max" } }, "jp.anthropic.claude-sonnet-5": { id: "jp.anthropic.claude-sonnet-5", name: "Claude Sonnet 5 (JP)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, contextWindow: 1e6, maxTokens: 128e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "meta.llama3-1-70b-instruct-v1:0": { id: "meta.llama3-1-70b-instruct-v1:0", name: "Llama 3.1 70B Instruct", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text"], cost: { input: 0.72, output: 0.72, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4096 }, "meta.llama3-1-8b-instruct-v1:0": { id: "meta.llama3-1-8b-instruct-v1:0", name: "Llama 3.1 8B Instruct", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text"], cost: { input: 0.22, output: 0.22, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4096 }, "meta.llama3-3-70b-instruct-v1:0": { id: "meta.llama3-3-70b-instruct-v1:0", name: "Llama 3.3 70B Instruct", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text"], cost: { input: 0.72, output: 0.72, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4096 }, "meta.llama4-maverick-17b-instruct-v1:0": { id: "meta.llama4-maverick-17b-instruct-v1:0", name: "Llama 4 Maverick 17B Instruct", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text", "image"], cost: { input: 0.24, output: 0.97, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 16384 }, "meta.llama4-scout-17b-instruct-v1:0": { id: "meta.llama4-scout-17b-instruct-v1:0", name: "Llama 4 Scout 17B Instruct", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text", "image"], cost: { input: 0.17, output: 0.66, cacheRead: 0, cacheWrite: 0 }, contextWindow: 35e5, maxTokens: 16384 }, "minimax.minimax-m2": { id: "minimax.minimax-m2", name: "MiniMax M2", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text"], cost: { input: 0.3, output: 1.2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 204608, maxTokens: 128e3 }, "minimax.minimax-m2.1": { id: "minimax.minimax-m2.1", name: "MiniMax M2.1", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text"], cost: { input: 0.3, output: 1.2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 204800, maxTokens: 131072 }, "minimax.minimax-m2.5": { id: "minimax.minimax-m2.5", name: "MiniMax M2.5", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text"], cost: { input: 0.3, output: 1.2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 196608, maxTokens: 98304 }, "mistral.devstral-2-123b": { id: "mistral.devstral-2-123b", name: "Devstral 2 123B", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text"], cost: { input: 0.4, output: 2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 8192, compat: { supportsStrictMode: true } }, "mistral.magistral-small-2509": { id: "mistral.magistral-small-2509", name: "Magistral Small 1.2", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 0.5, output: 1.5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4e4, compat: { supportsStrictMode: true } }, "mistral.ministral-3-14b-instruct": { id: "mistral.ministral-3-14b-instruct", name: "Ministral 14B 3.0", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text"], cost: { input: 0.2, output: 0.2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4096, compat: { supportsStrictMode: true } }, "mistral.ministral-3-3b-instruct": { id: "mistral.ministral-3-3b-instruct", name: "Ministral 3 3B", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text", "image"], cost: { input: 0.1, output: 0.1, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 8192, compat: { supportsStrictMode: true } }, "mistral.ministral-3-8b-instruct": { id: "mistral.ministral-3-8b-instruct", name: "Ministral 3 8B", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text"], cost: { input: 0.15, output: 0.15, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4096, compat: { supportsStrictMode: true } }, "mistral.mistral-large-3-675b-instruct": { id: "mistral.mistral-large-3-675b-instruct", name: "Mistral Large 3", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text", "image"], cost: { input: 0.5, output: 1.5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 8192, compat: { supportsStrictMode: true } }, "mistral.pixtral-large-2502-v1:0": { id: "mistral.pixtral-large-2502-v1:0", name: "Pixtral Large (25.02)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text", "image"], cost: { input: 2, output: 6, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 8192 }, "mistral.voxtral-mini-3b-2507": { id: "mistral.voxtral-mini-3b-2507", name: "Voxtral Mini 3B 2507", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text"], cost: { input: 0.04, output: 0.04, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4096, compat: { supportsStrictMode: true } }, "mistral.voxtral-small-24b-2507": { id: "mistral.voxtral-small-24b-2507", name: "Voxtral Small 24B 2507", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text"], cost: { input: 0.15, output: 0.35, cacheRead: 0, cacheWrite: 0 }, contextWindow: 32e3, maxTokens: 8192, compat: { supportsStrictMode: true } }, "moonshot.kimi-k2-thinking": { id: "moonshot.kimi-k2-thinking", name: "Kimi K2 Thinking", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text"], cost: { input: 0.6, output: 2.5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262143, maxTokens: 16e3, compat: { supportsStrictMode: true } }, "moonshotai.kimi-k2.5": { id: "moonshotai.kimi-k2.5", name: "Kimi K2.5", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 0.6, output: 3, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262143, maxTokens: 16e3, compat: { supportsStrictMode: true } }, "nvidia.nemotron-nano-12b-v2": { id: "nvidia.nemotron-nano-12b-v2", name: "NVIDIA Nemotron Nano 12B v2 VL BF16", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text", "image"], cost: { input: 0.2, output: 0.6, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4096, compat: { supportsStrictMode: true } }, "nvidia.nemotron-nano-3-30b": { id: "nvidia.nemotron-nano-3-30b", name: "NVIDIA Nemotron Nano 3 30B", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text"], cost: { input: 0.06, output: 0.24, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4096, compat: { supportsStrictMode: true } }, "nvidia.nemotron-nano-9b-v2": { id: "nvidia.nemotron-nano-9b-v2", name: "NVIDIA Nemotron Nano 9B v2", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text"], cost: { input: 0.06, output: 0.23, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4096, compat: { supportsStrictMode: true } }, "nvidia.nemotron-super-3-120b": { id: "nvidia.nemotron-super-3-120b", name: "NVIDIA Nemotron 3 Super 120B A12B", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text"], cost: { input: 0.15, output: 0.65, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 131072, compat: { supportsStrictMode: true } }, "openai.gpt-5.4": { id: "openai.gpt-5.4", name: "GPT-5.4", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 2.75, output: 16.5, cacheRead: 0.275, cacheWrite: 0 }, contextWindow: 272e3, maxTokens: 128e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { xhigh: "xhigh" } }, "openai.gpt-5.5": { id: "openai.gpt-5.5", name: "GPT-5.5", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5.5, output: 33, cacheRead: 0.55, cacheWrite: 0 }, contextWindow: 272e3, maxTokens: 128e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { xhigh: "xhigh" } }, "openai.gpt-5.6-luna": { id: "openai.gpt-5.6-luna", name: "GPT-5.6 Luna", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 0.22, output: 1.32, cacheRead: 0.022, cacheWrite: 0.275 }, contextWindow: 105e4, maxTokens: 128e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { xhigh: "xhigh" } }, "openai.gpt-5.6-sol": { id: "openai.gpt-5.6-sol", name: "GPT-5.6 Sol", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5.5, output: 33, cacheRead: 0.55, cacheWrite: 6.875 }, contextWindow: 105e4, maxTokens: 128e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { xhigh: "xhigh" } }, "openai.gpt-5.6-terra": { id: "openai.gpt-5.6-terra", name: "GPT-5.6 Terra", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 2.2, output: 13.2, cacheRead: 0.22, cacheWrite: 2.75 }, contextWindow: 105e4, maxTokens: 128e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { xhigh: "xhigh" } }, "openai.gpt-oss-120b": { id: "openai.gpt-oss-120b", name: "gpt-oss-120b", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text"], cost: { input: 0.15, output: 0.6, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { supportsStrictMode: true } }, "openai.gpt-oss-120b-1:0": { id: "openai.gpt-oss-120b-1:0", name: "gpt-oss-120b", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text"], cost: { input: 0.15, output: 0.6, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { supportsStrictMode: true } }, "openai.gpt-oss-20b": { id: "openai.gpt-oss-20b", name: "gpt-oss-20b", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text"], cost: { input: 0.07, output: 0.3, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { supportsStrictMode: true } }, "openai.gpt-oss-20b-1:0": { id: "openai.gpt-oss-20b-1:0", name: "gpt-oss-20b", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text"], cost: { input: 0.07, output: 0.3, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { supportsStrictMode: true } }, "openai.gpt-oss-safeguard-120b": { id: "openai.gpt-oss-safeguard-120b", name: "GPT OSS Safeguard 120B", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text"], cost: { input: 0.15, output: 0.6, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { supportsStrictMode: true } }, "openai.gpt-oss-safeguard-20b": { id: "openai.gpt-oss-safeguard-20b", name: "GPT OSS Safeguard 20B", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text"], cost: { input: 0.07, output: 0.2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { supportsStrictMode: true } }, "qwen.qwen3-235b-a22b-2507-v1:0": { id: "qwen.qwen3-235b-a22b-2507-v1:0", name: "Qwen3 235B A22B 2507", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text"], cost: { input: 0.22, output: 0.88, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 131072, compat: { supportsStrictMode: true } }, "qwen.qwen3-32b-v1:0": { id: "qwen.qwen3-32b-v1:0", name: "Qwen3 32B (dense)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text"], cost: { input: 0.15, output: 0.6, cacheRead: 0, cacheWrite: 0 }, contextWindow: 16384, maxTokens: 16384, compat: { supportsStrictMode: true } }, "qwen.qwen3-coder-30b-a3b-v1:0": { id: "qwen.qwen3-coder-30b-a3b-v1:0", name: "Qwen3 Coder 30B A3B Instruct", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text"], cost: { input: 0.15, output: 0.6, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 131072, compat: { supportsStrictMode: true } }, "qwen.qwen3-coder-480b-a35b-v1:0": { id: "qwen.qwen3-coder-480b-a35b-v1:0", name: "Qwen3 Coder 480B A35B Instruct", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text"], cost: { input: 0.22, output: 1.8, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 65536, compat: { supportsStrictMode: true } }, "qwen.qwen3-coder-next": { id: "qwen.qwen3-coder-next", name: "Qwen3 Coder Next", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text"], cost: { input: 0.22, output: 1.8, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 65536, compat: { supportsStrictMode: true } }, "qwen.qwen3-next-80b-a3b": { id: "qwen.qwen3-next-80b-a3b", name: "Qwen/Qwen3-Next-80B-A3B-Instruct", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text"], cost: { input: 0.14, output: 1.4, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262e3, maxTokens: 262e3, compat: { supportsStrictMode: true } }, "qwen.qwen3-vl-235b-a22b": { id: "qwen.qwen3-vl-235b-a22b", name: "Qwen/Qwen3-VL-235B-A22B-Instruct", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text", "image"], cost: { input: 0.3, output: 1.5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262e3, maxTokens: 262e3, compat: { supportsStrictMode: true } }, "us.anthropic.claude-fable-5": { id: "us.anthropic.claude-fable-5", name: "Claude Fable 5 (US)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { off: null, xhigh: "xhigh", max: "max" } }, "us.anthropic.claude-haiku-4-5-20251001-v1:0": { id: "us.anthropic.claude-haiku-4-5-20251001-v1:0", name: "Claude Haiku 4.5 (US)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, contextWindow: 2e5, maxTokens: 64e3, compat: { supportsStrictMode: true } }, "us.anthropic.claude-opus-4-1-20250805-v1:0": { id: "us.anthropic.claude-opus-4-1-20250805-v1:0", name: "Claude Opus 4.1 (US)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 15, output: 75, cacheRead: 1.5, cacheWrite: 18.75 }, contextWindow: 2e5, maxTokens: 32e3 }, "us.anthropic.claude-opus-4-5-20251101-v1:0": { id: "us.anthropic.claude-opus-4-5-20251101-v1:0", name: "Claude Opus 4.5 (US)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 2e5, maxTokens: 64e3, compat: { supportsStrictMode: true } }, "us.anthropic.claude-opus-4-6-v1": { id: "us.anthropic.claude-opus-4-6-v1", name: "Claude Opus 4.6 (US)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { max: "max" } }, "us.anthropic.claude-opus-4-7": { id: "us.anthropic.claude-opus-4-7", name: "Claude Opus 4.7 (US)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "us.anthropic.claude-opus-4-8": { id: "us.anthropic.claude-opus-4-8", name: "Claude Opus 4.8 (US)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "us.anthropic.claude-opus-5": { id: "us.anthropic.claude-opus-5", name: "Claude Opus 5 (US)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "us.anthropic.claude-sonnet-4-5-20250929-v1:0": { id: "us.anthropic.claude-sonnet-4-5-20250929-v1:0", name: "Claude Sonnet 4.5 (US)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 2e5, maxTokens: 64e3, compat: { supportsStrictMode: true } }, "us.anthropic.claude-sonnet-4-6": { id: "us.anthropic.claude-sonnet-4-6", name: "Claude Sonnet 4.6 (US)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 1e6, maxTokens: 64e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { max: "max" } }, "us.anthropic.claude-sonnet-5": { id: "us.anthropic.claude-sonnet-5", name: "Claude Sonnet 5 (US)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, contextWindow: 1e6, maxTokens: 128e3, compat: { supportsStrictMode: true }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "us.deepseek.r1-v1:0": { id: "us.deepseek.r1-v1:0", name: "DeepSeek-R1 (US)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text"], cost: { input: 1.35, output: 5.4, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 32768 }, "us.meta.llama4-maverick-17b-instruct-v1:0": { id: "us.meta.llama4-maverick-17b-instruct-v1:0", name: "Llama 4 Maverick 17B Instruct (US)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text", "image"], cost: { input: 0.24, output: 0.97, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 16384 }, "us.meta.llama4-scout-17b-instruct-v1:0": { id: "us.meta.llama4-scout-17b-instruct-v1:0", name: "Llama 4 Scout 17B Instruct (US)", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: false, input: ["text", "image"], cost: { input: 0.17, output: 0.66, cacheRead: 0, cacheWrite: 0 }, contextWindow: 35e5, maxTokens: 16384 }, "writer.palmyra-x4-v1:0": { id: "writer.palmyra-x4-v1:0", name: "Palmyra X4", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text"], cost: { input: 2.5, output: 10, cacheRead: 0, cacheWrite: 0 }, contextWindow: 122880, maxTokens: 8192 }, "writer.palmyra-x5-v1:0": { id: "writer.palmyra-x5-v1:0", name: "Palmyra X5", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text"], cost: { input: 0.6, output: 6, cacheRead: 0, cacheWrite: 0 }, contextWindow: 104e4, maxTokens: 8192 }, "xai.grok-4.3": { id: "xai.grok-4.3", name: "Grok 4.3", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 2.5, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 131072, compat: { supportsStrictMode: true } }, "xai.grok-4.6": { id: "xai.grok-4.6", name: "Grok 4.6", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text", "image"], cost: { input: 2.2, output: 6.6, cacheRead: 0.55, cacheWrite: 0 }, contextWindow: 5e5, maxTokens: 5e5, compat: { supportsStrictMode: true } }, "zai.glm-4.7": { id: "zai.glm-4.7", name: "GLM-4.7", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text"], cost: { input: 0.6, output: 2.2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 204800, maxTokens: 131072, compat: { supportsStrictMode: true } }, "zai.glm-4.7-flash": { id: "zai.glm-4.7-flash", name: "GLM-4.7-Flash", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text"], cost: { input: 0.07, output: 0.4, cacheRead: 0, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 131072, compat: { supportsStrictMode: true } }, "zai.glm-5": { id: "zai.glm-5", name: "GLM-5", api: "bedrock-converse-stream", provider: "amazon-bedrock", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", reasoning: true, input: ["text"], cost: { input: 1, output: 3.2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 202752, maxTokens: 101376, compat: { supportsStrictMode: true } } } };
|
|
3233
3667
|
|
|
3234
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3668
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/model-catalog.js
|
|
3235
3669
|
function flattenModelCatalog(_provider, groups) {
|
|
3236
3670
|
return Object.assign({}, ...Object.values(groups));
|
|
3237
3671
|
}
|
|
3238
3672
|
|
|
3239
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3673
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.js
|
|
3240
3674
|
var AMAZON_BEDROCK_MODELS = flattenModelCatalog("amazon-bedrock", amazon_bedrock_default);
|
|
3241
3675
|
|
|
3242
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3676
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/ant-ling.json
|
|
3243
3677
|
var ant_ling_default = { "openai-completions": { "Ling-2.6-1T": { id: "Ling-2.6-1T", name: "Ling 2.6 1T", api: "openai-completions", baseUrl: "https://api.ant-ling.com/v1", provider: "ant-ling", reasoning: false, input: ["text"], cost: { input: 0.06, output: 0.25, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 65536, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "ant-ling", supportsLongCacheRetention: false } }, "Ling-2.6-flash": { id: "Ling-2.6-flash", name: "Ling 2.6 Flash", api: "openai-completions", baseUrl: "https://api.ant-ling.com/v1", provider: "ant-ling", reasoning: false, input: ["text"], cost: { input: 0.01, output: 0.02, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 65536, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "ant-ling", supportsLongCacheRetention: false } }, "Ring-2.6-1T": { id: "Ring-2.6-1T", name: "Ring 2.6 1T", api: "openai-completions", baseUrl: "https://api.ant-ling.com/v1", provider: "ant-ling", reasoning: true, input: ["text"], cost: { input: 0.06, output: 0.25, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 65536, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "ant-ling", supportsLongCacheRetention: false }, thinkingLevelMap: { off: null, minimal: null, low: null, medium: null, high: "high", xhigh: "xhigh" } } } };
|
|
3244
3678
|
|
|
3245
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3679
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.models.js
|
|
3246
3680
|
var ANT_LING_MODELS = flattenModelCatalog("ant-ling", ant_ling_default);
|
|
3247
3681
|
|
|
3248
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3682
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/anthropic.json
|
|
3249
3683
|
var anthropic_default = { "anthropic-messages": { "claude-fable-5": { id: "claude-fable-5", name: "Claude Fable 5", api: "anthropic-messages", provider: "anthropic", baseUrl: "https://api.anthropic.com", reasoning: true, input: ["text", "image"], cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { off: null, xhigh: "xhigh", max: "max" }, compat: { forceAdaptiveThinking: true, supportsStrictTools: true, allowedFallbackModels: [{ provider: "anthropic", model: "claude-opus-4-8", cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 } }, { provider: "anthropic", model: "claude-opus-5", cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 } }] } }, "claude-haiku-4-5": { id: "claude-haiku-4-5", name: "Claude Haiku 4.5 (latest)", api: "anthropic-messages", provider: "anthropic", baseUrl: "https://api.anthropic.com", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, contextWindow: 2e5, maxTokens: 64e3, compat: { supportsStrictTools: true } }, "claude-haiku-4-5-20251001": { id: "claude-haiku-4-5-20251001", name: "Claude Haiku 4.5", api: "anthropic-messages", provider: "anthropic", baseUrl: "https://api.anthropic.com", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, contextWindow: 2e5, maxTokens: 64e3, compat: { supportsStrictTools: true } }, "claude-opus-4-5": { id: "claude-opus-4-5", name: "Claude Opus 4.5 (latest)", api: "anthropic-messages", provider: "anthropic", baseUrl: "https://api.anthropic.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 2e5, maxTokens: 64e3, compat: { supportsStrictTools: true } }, "claude-opus-4-5-20251101": { id: "claude-opus-4-5-20251101", name: "Claude Opus 4.5", api: "anthropic-messages", provider: "anthropic", baseUrl: "https://api.anthropic.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 2e5, maxTokens: 64e3, compat: { supportsStrictTools: true } }, "claude-opus-4-6": { id: "claude-opus-4-6", name: "Claude Opus 4.6", api: "anthropic-messages", provider: "anthropic", baseUrl: "https://api.anthropic.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { max: "max" }, compat: { forceAdaptiveThinking: true, supportsStrictTools: true } }, "claude-opus-4-7": { id: "claude-opus-4-7", name: "Claude Opus 4.7", api: "anthropic-messages", provider: "anthropic", baseUrl: "https://api.anthropic.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" }, compat: { forceAdaptiveThinking: true, supportsTemperature: false, supportsStrictTools: true } }, "claude-opus-4-8": { id: "claude-opus-4-8", name: "Claude Opus 4.8", api: "anthropic-messages", provider: "anthropic", baseUrl: "https://api.anthropic.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" }, compat: { forceAdaptiveThinking: true, supportsTemperature: false, supportsStrictTools: true } }, "claude-opus-5": { id: "claude-opus-5", name: "Claude Opus 5", api: "anthropic-messages", provider: "anthropic", baseUrl: "https://api.anthropic.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" }, compat: { forceAdaptiveThinking: true, supportsTemperature: false, supportsStrictTools: true, allowedFallbackModels: [{ provider: "anthropic", model: "claude-opus-4-8", cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 } }] } }, "claude-sonnet-4-5": { id: "claude-sonnet-4-5", name: "Claude Sonnet 4.5 (latest)", api: "anthropic-messages", provider: "anthropic", baseUrl: "https://api.anthropic.com", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 1e6, maxTokens: 64e3, compat: { supportsStrictTools: true } }, "claude-sonnet-4-5-20250929": { id: "claude-sonnet-4-5-20250929", name: "Claude Sonnet 4.5", api: "anthropic-messages", provider: "anthropic", baseUrl: "https://api.anthropic.com", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 1e6, maxTokens: 64e3, compat: { supportsStrictTools: true } }, "claude-sonnet-4-6": { id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6", api: "anthropic-messages", provider: "anthropic", baseUrl: "https://api.anthropic.com", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { max: "max" }, compat: { forceAdaptiveThinking: true, supportsStrictTools: true } }, "claude-sonnet-5": { id: "claude-sonnet-5", name: "Claude Sonnet 5", api: "anthropic-messages", provider: "anthropic", baseUrl: "https://api.anthropic.com", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" }, compat: { forceAdaptiveThinking: true, supportsStrictTools: true } } } };
|
|
3250
3684
|
|
|
3251
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3685
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.models.js
|
|
3252
3686
|
var ANTHROPIC_MODELS = flattenModelCatalog("anthropic", anthropic_default);
|
|
3253
3687
|
|
|
3254
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3688
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/azure-openai-responses.json
|
|
3255
3689
|
var azure_openai_responses_default = { "azure-openai-responses": { "gpt-4": { id: "gpt-4", name: "GPT-4", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: false, input: ["text"], cost: { input: 30, output: 60, cacheRead: 0, cacheWrite: 0 }, contextWindow: 8192, maxTokens: 8192 }, "gpt-4-turbo": { id: "gpt-4-turbo", name: "GPT-4 Turbo", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: false, input: ["text", "image"], cost: { input: 10, output: 30, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4096 }, "gpt-4.1": { id: "gpt-4.1", name: "GPT-4.1", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: false, input: ["text", "image"], cost: { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 }, contextWindow: 1047576, maxTokens: 32768 }, "gpt-4.1-mini": { id: "gpt-4.1-mini", name: "GPT-4.1 mini", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: false, input: ["text", "image"], cost: { input: 0.4, output: 1.6, cacheRead: 0.1, cacheWrite: 0 }, contextWindow: 1047576, maxTokens: 32768 }, "gpt-4.1-nano": { id: "gpt-4.1-nano", name: "GPT-4.1 nano", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: false, input: ["text", "image"], cost: { input: 0.1, output: 0.4, cacheRead: 0.025, cacheWrite: 0 }, contextWindow: 1047576, maxTokens: 32768 }, "gpt-4o": { id: "gpt-4o", name: "GPT-4o", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: false, input: ["text", "image"], cost: { input: 2.5, output: 10, cacheRead: 1.25, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384 }, "gpt-4o-2024-05-13": { id: "gpt-4o-2024-05-13", name: "GPT-4o (2024-05-13)", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: false, input: ["text", "image"], cost: { input: 5, output: 15, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4096 }, "gpt-4o-2024-08-06": { id: "gpt-4o-2024-08-06", name: "GPT-4o (2024-08-06)", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: false, input: ["text", "image"], cost: { input: 2.5, output: 10, cacheRead: 1.25, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384 }, "gpt-4o-2024-11-20": { id: "gpt-4o-2024-11-20", name: "GPT-4o (2024-11-20)", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: false, input: ["text", "image"], cost: { input: 2.5, output: 10, cacheRead: 1.25, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384 }, "gpt-4o-mini": { id: "gpt-4o-mini", name: "GPT-4o mini", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: false, input: ["text", "image"], cost: { input: 0.15, output: 0.6, cacheRead: 0.075, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384 }, "gpt-5": { id: "gpt-5", name: "GPT-5", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5-chat-latest": { id: "gpt-5-chat-latest", name: "GPT-5 Chat Latest", api: "azure-openai-responses", baseUrl: "", provider: "azure-openai-responses", reasoning: false, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, thinkingLevelMap: { off: null }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5-mini": { id: "gpt-5-mini", name: "GPT-5 Mini", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 2, cacheRead: 0.025, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5-nano": { id: "gpt-5-nano", name: "GPT-5 Nano", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 0.05, output: 0.4, cacheRead: 5e-3, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5-pro": { id: "gpt-5-pro", name: "GPT-5 Pro", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 15, output: 120, cacheRead: 0, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.1": { id: "gpt-5.1", name: "GPT-5.1", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.2": { id: "gpt-5.2", name: "GPT-5.2", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, xhigh: "xhigh" }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.2-chat-latest": { id: "gpt-5.2-chat-latest", name: "GPT-5.2 Chat", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, thinkingLevelMap: { off: null, xhigh: "xhigh" }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.2-pro": { id: "gpt-5.2-pro", name: "GPT-5.2 Pro", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 21, output: 168, cacheRead: 0, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, xhigh: "xhigh" }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.3-chat-latest": { id: "gpt-5.3-chat-latest", name: "GPT-5.3 Chat (latest)", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: false, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, thinkingLevelMap: { off: null, xhigh: "xhigh" }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.3-codex": { id: "gpt-5.3-codex", name: "GPT-5.3 Codex", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, xhigh: "xhigh" }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.3-codex-spark": { id: "gpt-5.3-codex-spark", name: "GPT-5.3 Codex Spark", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 32e3, thinkingLevelMap: { off: null, xhigh: "xhigh" }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.4": { id: "gpt-5.4", name: "GPT-5.4", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 2.5, output: 15, cacheRead: 0.25, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { off: null, xhigh: "xhigh" }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.4-mini": { id: "gpt-5.4-mini", name: "GPT-5.4 mini", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 0.75, output: 4.5, cacheRead: 0.075, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, xhigh: "xhigh" }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.4-nano": { id: "gpt-5.4-nano", name: "GPT-5.4 nano", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 1.25, cacheRead: 0.02, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, xhigh: "xhigh" }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.4-pro": { id: "gpt-5.4-pro", name: "GPT-5.4 Pro", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 30, output: 180, cacheRead: 0, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { off: null, xhigh: "xhigh" }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.5": { id: "gpt-5.5", name: "GPT-5.5", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { off: null, xhigh: "xhigh" }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.5-pro": { id: "gpt-5.5-pro", name: "GPT-5.5 Pro", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 30, output: 180, cacheRead: 0, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { off: null, xhigh: "xhigh", minimal: null, low: null }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.6-luna": { id: "gpt-5.6-luna", name: "GPT-5.6 Luna", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 1.2, cacheRead: 0.02, cacheWrite: 0.25 }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { off: null, xhigh: "xhigh", max: "max" }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.6-sol": { id: "gpt-5.6-sol", name: "GPT-5.6 Sol", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { off: null, xhigh: "xhigh", max: "max" }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.6-terra": { id: "gpt-5.6-terra", name: "GPT-5.6 Terra", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 2.5 }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { off: null, xhigh: "xhigh", max: "max" }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-realtime-2.1": { id: "gpt-realtime-2.1", name: "GPT-Realtime-2.1", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 4, output: 24, cacheRead: 0.4, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 32e3 }, o1: { id: "o1", name: "o1", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 15, output: 60, cacheRead: 7.5, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5 }, "o1-pro": { id: "o1-pro", name: "o1-pro", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 150, output: 600, cacheRead: 0, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5 }, o3: { id: "o3", name: "o3", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5 }, "o3-mini": { id: "o3-mini", name: "o3-mini", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text"], cost: { input: 1.1, output: 4.4, cacheRead: 0.55, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5 }, "o3-pro": { id: "o3-pro", name: "o3-pro", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 20, output: 80, cacheRead: 0, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5 }, "o4-mini": { id: "o4-mini", name: "o4-mini", api: "azure-openai-responses", provider: "azure-openai-responses", baseUrl: "", reasoning: true, input: ["text", "image"], cost: { input: 1.1, output: 4.4, cacheRead: 0.275, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5 } } };
|
|
3256
3690
|
|
|
3257
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3691
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.models.js
|
|
3258
3692
|
var AZURE_OPENAI_RESPONSES_MODELS = flattenModelCatalog("azure-openai-responses", azure_openai_responses_default);
|
|
3259
3693
|
|
|
3260
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3694
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/baseten.json
|
|
3261
3695
|
var baseten_default = { "openai-completions": { "deepseek-ai/DeepSeek-V4-Flash-0731": { id: "deepseek-ai/DeepSeek-V4-Flash-0731", name: "DeepSeek V4 Flash 0731", api: "openai-completions", provider: "baseten", baseUrl: "https://inference.baseten.co/v1", reasoning: true, thinkingLevelMap: { off: "none", minimal: "minimal", low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" }, input: ["text"], cost: { input: 0.13, output: 0.26, cacheRead: 0.028, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: true, supportsUsageInStreaming: true, maxTokensField: "max_tokens", supportsStrictMode: true, supportsLongCacheRetention: false, thinkingFormat: "openai" }, contextWindow: 1048576, maxTokens: 384e3 }, "deepseek-ai/DeepSeek-V4-Pro": { id: "deepseek-ai/DeepSeek-V4-Pro", name: "DeepSeek V4 Pro", api: "openai-completions", provider: "baseten", baseUrl: "https://inference.baseten.co/v1", reasoning: true, thinkingLevelMap: { off: "none", minimal: "minimal", low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" }, input: ["text"], cost: { input: 1.74, output: 3.48, cacheRead: 0.145, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: true, supportsUsageInStreaming: true, maxTokensField: "max_tokens", supportsStrictMode: true, supportsLongCacheRetention: false, thinkingFormat: "openai" }, contextWindow: 1048576, maxTokens: 262144 }, "deepseek-ai/DeepSeek-V4-Pro-0813": { id: "deepseek-ai/DeepSeek-V4-Pro-0813", name: "DeepSeek V4 Pro 0813", api: "openai-completions", provider: "baseten", baseUrl: "https://inference.baseten.co/v1", reasoning: true, thinkingLevelMap: { off: "none", minimal: null, low: "low", medium: null, high: "high", xhigh: null, max: "max" }, input: ["text"], cost: { input: 1.32, output: 3.96, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: true, supportsUsageInStreaming: true, maxTokensField: "max_tokens", supportsStrictMode: true, supportsLongCacheRetention: false, thinkingFormat: "openai" }, contextWindow: 1048576, maxTokens: 262144 }, "moonshotai/Kimi-K2.5": { id: "moonshotai/Kimi-K2.5", name: "Kimi K2.5", api: "openai-completions", provider: "baseten", baseUrl: "https://inference.baseten.co/v1", reasoning: true, thinkingLevelMap: { off: "off", minimal: null, low: null, medium: null, high: "high", xhigh: null, max: null }, input: ["text", "image"], cost: { input: 0.6, output: 3, cacheRead: 0.12, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, supportsUsageInStreaming: true, maxTokensField: "max_tokens", supportsStrictMode: true, supportsLongCacheRetention: false, thinkingFormat: "baseten", chatTemplateArgs: { enable_thinking: { $var: "thinking.enabled" } } }, contextWindow: 262e3, maxTokens: 262e3 }, "moonshotai/Kimi-K2.6": { id: "moonshotai/Kimi-K2.6", name: "Kimi K2.6", api: "openai-completions", provider: "baseten", baseUrl: "https://inference.baseten.co/v1", reasoning: true, thinkingLevelMap: { off: "off", minimal: null, low: null, medium: null, high: "high", xhigh: null, max: null }, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, supportsUsageInStreaming: true, maxTokensField: "max_tokens", supportsStrictMode: true, supportsLongCacheRetention: false, thinkingFormat: "baseten", chatTemplateArgs: { enable_thinking: { $var: "thinking.enabled" } } }, contextWindow: 262e3, maxTokens: 262e3 }, "moonshotai/Kimi-K2.7-Code": { id: "moonshotai/Kimi-K2.7-Code", name: "Kimi K2.7 Code", api: "openai-completions", provider: "baseten", baseUrl: "https://inference.baseten.co/v1", reasoning: true, thinkingLevelMap: { off: "off", minimal: null, low: null, medium: null, high: "high", xhigh: null, max: null }, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, supportsUsageInStreaming: true, maxTokensField: "max_tokens", supportsStrictMode: true, supportsLongCacheRetention: false, thinkingFormat: "baseten", chatTemplateArgs: { enable_thinking: { $var: "thinking.enabled" } } }, contextWindow: 262e3, maxTokens: 262e3 }, "moonshotai/Kimi-K3": { id: "moonshotai/Kimi-K3", name: "Kimi K3", api: "openai-completions", provider: "baseten", baseUrl: "https://inference.baseten.co/v1", reasoning: true, thinkingLevelMap: { off: "none", minimal: null, low: "low", medium: null, high: "high", xhigh: null, max: "max" }, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: true, supportsUsageInStreaming: true, maxTokensField: "max_tokens", supportsStrictMode: true, supportsLongCacheRetention: false, thinkingFormat: "openai" }, contextWindow: 1048576, maxTokens: 262144 }, "nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B": { id: "nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B", name: "Nemotron Ultra", api: "openai-completions", provider: "baseten", baseUrl: "https://inference.baseten.co/v1", reasoning: true, thinkingLevelMap: { off: "off", minimal: null, low: null, medium: null, high: "high", xhigh: null, max: null }, input: ["text"], cost: { input: 0.6, output: 2.4, cacheRead: 0.12, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, supportsUsageInStreaming: true, maxTokensField: "max_tokens", supportsStrictMode: true, supportsLongCacheRetention: false, thinkingFormat: "baseten", chatTemplateArgs: { enable_thinking: { $var: "thinking.enabled" } } }, contextWindow: 202800, maxTokens: 202800 }, "nvidia/Nemotron-120B-A12B": { id: "nvidia/Nemotron-120B-A12B", name: "Nemotron Super", api: "openai-completions", provider: "baseten", baseUrl: "https://inference.baseten.co/v1", reasoning: true, thinkingLevelMap: { off: "off", minimal: null, low: null, medium: null, high: "high", xhigh: null, max: null }, input: ["text"], cost: { input: 0.3, output: 0.75, cacheRead: 0.06, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, supportsUsageInStreaming: true, maxTokensField: "max_tokens", supportsStrictMode: true, supportsLongCacheRetention: false, thinkingFormat: "baseten", chatTemplateArgs: { enable_thinking: { $var: "thinking.enabled" } } }, contextWindow: 202800, maxTokens: 202800 }, "openai/gpt-oss-120b": { id: "openai/gpt-oss-120b", name: "OpenAI GPT 120B", api: "openai-completions", provider: "baseten", baseUrl: "https://inference.baseten.co/v1", reasoning: true, thinkingLevelMap: { off: "none", minimal: "minimal", low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" }, input: ["text"], cost: { input: 0.1, output: 0.5, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: true, supportsUsageInStreaming: true, maxTokensField: "max_tokens", supportsStrictMode: true, supportsLongCacheRetention: false, thinkingFormat: "openai" }, contextWindow: 128072, maxTokens: 128072 }, "thinkingmachines/inkling": { id: "thinkingmachines/inkling", name: "Inkling", api: "openai-completions", provider: "baseten", baseUrl: "https://inference.baseten.co/v1", reasoning: true, thinkingLevelMap: { off: "none", minimal: "minimal", low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" }, input: ["text", "image"], cost: { input: 1, output: 4.05, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: true, supportsUsageInStreaming: true, maxTokensField: "max_tokens", supportsStrictMode: true, supportsLongCacheRetention: false, thinkingFormat: "openai" }, contextWindow: 1048576, maxTokens: 32768 }, "thinkingmachines/inkling-small": { id: "thinkingmachines/inkling-small", name: "Inkling Small", api: "openai-completions", provider: "baseten", baseUrl: "https://inference.baseten.co/v1", reasoning: true, thinkingLevelMap: { off: "none", minimal: "minimal", low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" }, input: ["text", "image"], cost: { input: 0.5, output: 1.2, cacheRead: 0.1, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: true, supportsUsageInStreaming: true, maxTokensField: "max_tokens", supportsStrictMode: true, supportsLongCacheRetention: false, thinkingFormat: "openai" }, contextWindow: 1048576, maxTokens: 32768 }, "zai-org/GLM-4.7": { id: "zai-org/GLM-4.7", name: "GLM 4.7", api: "openai-completions", provider: "baseten", baseUrl: "https://inference.baseten.co/v1", reasoning: true, thinkingLevelMap: { off: "off", minimal: null, low: null, medium: null, high: "high", xhigh: null, max: null }, input: ["text"], cost: { input: 0.6, output: 2.2, cacheRead: 0.12, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, supportsUsageInStreaming: true, maxTokensField: "max_tokens", supportsStrictMode: true, supportsLongCacheRetention: false, thinkingFormat: "baseten", chatTemplateArgs: { enable_thinking: { $var: "thinking.enabled" } } }, contextWindow: 2e5, maxTokens: 2e5 }, "zai-org/GLM-5": { id: "zai-org/GLM-5", name: "GLM 5", api: "openai-completions", provider: "baseten", baseUrl: "https://inference.baseten.co/v1", reasoning: true, thinkingLevelMap: { off: "off", minimal: null, low: null, medium: null, high: "high", xhigh: null, max: null }, input: ["text"], cost: { input: 0.95, output: 3.15, cacheRead: 0.2, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, supportsUsageInStreaming: true, maxTokensField: "max_tokens", supportsStrictMode: true, supportsLongCacheRetention: false, thinkingFormat: "baseten", chatTemplateArgs: { enable_thinking: { $var: "thinking.enabled" } } }, contextWindow: 202800, maxTokens: 202800 }, "zai-org/GLM-5.1": { id: "zai-org/GLM-5.1", name: "GLM 5.1", api: "openai-completions", provider: "baseten", baseUrl: "https://inference.baseten.co/v1", reasoning: true, thinkingLevelMap: { off: "off", minimal: null, low: null, medium: null, high: "high", xhigh: null, max: null }, input: ["text"], cost: { input: 1.3, output: 4.3, cacheRead: 0.26, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, supportsUsageInStreaming: true, maxTokensField: "max_tokens", supportsStrictMode: true, supportsLongCacheRetention: false, thinkingFormat: "baseten", chatTemplateArgs: { enable_thinking: { $var: "thinking.enabled" } } }, contextWindow: 202800, maxTokens: 202800 }, "zai-org/GLM-5.2": { id: "zai-org/GLM-5.2", name: "GLM 5.2", api: "openai-completions", provider: "baseten", baseUrl: "https://inference.baseten.co/v1", reasoning: true, thinkingLevelMap: { off: "none", minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" }, input: ["text", "image"], cost: { input: 1.4, output: 4.4, cacheRead: 0.3, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: true, supportsUsageInStreaming: true, maxTokensField: "max_tokens", supportsStrictMode: true, supportsLongCacheRetention: false, thinkingFormat: "baseten", chatTemplateArgs: { enable_thinking: { $var: "thinking.enabled" } } }, contextWindow: 1048576, maxTokens: 262144 }, "zai-org/GLM-5.2-Fast": { id: "zai-org/GLM-5.2-Fast", name: "GLM 5.2 Fast", api: "openai-completions", provider: "baseten", baseUrl: "https://inference.baseten.co/v1", reasoning: true, thinkingLevelMap: { off: "none", minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" }, input: ["text", "image"], cost: { input: 2.1, output: 6.6, cacheRead: 0.21, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: true, supportsUsageInStreaming: true, maxTokensField: "max_tokens", supportsStrictMode: true, supportsLongCacheRetention: false, thinkingFormat: "baseten", chatTemplateArgs: { enable_thinking: { $var: "thinking.enabled" } } }, contextWindow: 1048576, maxTokens: 262144 } } };
|
|
3262
3696
|
|
|
3263
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3697
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/baseten.models.js
|
|
3264
3698
|
var BASETEN_MODELS = flattenModelCatalog("baseten", baseten_default);
|
|
3265
3699
|
|
|
3266
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3700
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/cerebras.json
|
|
3267
3701
|
var cerebras_default = { "openai-completions": { "gemma-4-31b": { id: "gemma-4-31b", name: "Gemma 4 31B IT", api: "openai-completions", provider: "cerebras", baseUrl: "https://api.cerebras.ai/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.99, output: 1.49, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 40960, compat: { supportsStore: false, supportsDeveloperRole: false }, thinkingLevelMap: { off: "none", minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "gpt-oss-120b": { id: "gpt-oss-120b", name: "GPT OSS 120B", api: "openai-completions", provider: "cerebras", baseUrl: "https://api.cerebras.ai/v1", reasoning: true, input: ["text"], cost: { input: 0.35, output: 0.75, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 40960, compat: { supportsStore: false, supportsDeveloperRole: false }, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } } } };
|
|
3268
3702
|
|
|
3269
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3703
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.js
|
|
3270
3704
|
var CEREBRAS_MODELS = flattenModelCatalog("cerebras", cerebras_default);
|
|
3271
3705
|
|
|
3272
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3706
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-ai-gateway.json
|
|
3273
3707
|
var cloudflare_ai_gateway_default = { "anthropic-messages": { "claude-fable-5": { id: "claude-fable-5", name: "Claude Fable 5", api: "anthropic-messages", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic", reasoning: true, input: ["text", "image"], cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 }, contextWindow: 1e6, maxTokens: 128e3, compat: { sendSessionAffinityHeaders: true, forceAdaptiveThinking: true }, thinkingLevelMap: { off: null, xhigh: "xhigh", max: "max" } }, "claude-haiku-4.5": { id: "claude-haiku-4.5", name: "Claude Haiku 4.5 (latest)", api: "anthropic-messages", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, contextWindow: 2e5, maxTokens: 64e3, compat: { sendSessionAffinityHeaders: true } }, "claude-opus-4.5": { id: "claude-opus-4.5", name: "Claude Opus 4.5 (latest)", api: "anthropic-messages", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 2e5, maxTokens: 64e3, compat: { sendSessionAffinityHeaders: true } }, "claude-opus-4.6": { id: "claude-opus-4.6", name: "Claude Opus 4.6", api: "anthropic-messages", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, compat: { sendSessionAffinityHeaders: true, forceAdaptiveThinking: true }, thinkingLevelMap: { max: "max" } }, "claude-opus-4.7": { id: "claude-opus-4.7", name: "Claude Opus 4.7", api: "anthropic-messages", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, compat: { sendSessionAffinityHeaders: true, forceAdaptiveThinking: true, supportsTemperature: false }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "claude-opus-4.8": { id: "claude-opus-4.8", name: "Claude Opus 4.8", api: "anthropic-messages", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, compat: { sendSessionAffinityHeaders: true, forceAdaptiveThinking: true, supportsTemperature: false }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "claude-opus-5": { id: "claude-opus-5", name: "Claude Opus 5", api: "anthropic-messages", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, compat: { sendSessionAffinityHeaders: true, forceAdaptiveThinking: true, supportsTemperature: false }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "claude-sonnet-4.5": { id: "claude-sonnet-4.5", name: "Claude Sonnet 4.5 (latest)", api: "anthropic-messages", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 1e6, maxTokens: 64e3, compat: { sendSessionAffinityHeaders: true } }, "claude-sonnet-4.6": { id: "claude-sonnet-4.6", name: "Claude Sonnet 4.6", api: "anthropic-messages", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 1e6, maxTokens: 128e3, compat: { sendSessionAffinityHeaders: true, forceAdaptiveThinking: true }, thinkingLevelMap: { max: "max" } }, "claude-sonnet-5": { id: "claude-sonnet-5", name: "Claude Sonnet 5", api: "anthropic-messages", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/anthropic", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, contextWindow: 1e6, maxTokens: 128e3, compat: { sendSessionAffinityHeaders: true, forceAdaptiveThinking: true }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } } }, "openai-completions": { "workers-ai/@cf/google/gemma-4-26b-a4b-it": { id: "workers-ai/@cf/google/gemma-4-26b-a4b-it", name: "Gemma 4 26B A4B IT", api: "openai-completions", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat", reasoning: true, input: ["text", "image"], cost: { input: 0.1, output: 0.3, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 16384, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true } }, "workers-ai/@cf/ibm-granite/granite-4.0-h-micro": { id: "workers-ai/@cf/ibm-granite/granite-4.0-h-micro", name: "Granite 4.0 H Micro", api: "openai-completions", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat", reasoning: false, input: ["text"], cost: { input: 0.017, output: 0.112, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131e3, maxTokens: 131e3, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true } }, "workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast": { id: "workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast", name: "Llama 3.3 70B Instruct fp8 Fast", api: "openai-completions", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat", reasoning: false, input: ["text"], cost: { input: 0.293, output: 2.253, cacheRead: 0, cacheWrite: 0 }, contextWindow: 24e3, maxTokens: 24e3, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true } }, "workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct": { id: "workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct", name: "Llama 4 Scout 17B 16E Instruct", api: "openai-completions", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat", reasoning: false, input: ["text", "image"], cost: { input: 0.27, output: 0.85, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131e3, maxTokens: 16384, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true } }, "workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct": { id: "workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct", name: "Mistral Small 3.1 24B Instruct", api: "openai-completions", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat", reasoning: false, input: ["text"], cost: { input: 0.351, output: 0.555, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 128e3, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true } }, "workers-ai/@cf/moonshotai/kimi-k2.6": { id: "workers-ai/@cf/moonshotai/kimi-k2.6", name: "Kimi K2.6", api: "openai-completions", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat", reasoning: true, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 256e3, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true } }, "workers-ai/@cf/moonshotai/kimi-k2.7-code": { id: "workers-ai/@cf/moonshotai/kimi-k2.7-code", name: "Kimi K2.7 Code", api: "openai-completions", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat", reasoning: true, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true } }, "workers-ai/@cf/nvidia/nemotron-3-120b-a12b": { id: "workers-ai/@cf/nvidia/nemotron-3-120b-a12b", name: "Nemotron 3 Super 120B", api: "openai-completions", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat", reasoning: true, input: ["text"], cost: { input: 0.5, output: 1.5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 256e3, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true } }, "workers-ai/@cf/openai/gpt-oss-120b": { id: "workers-ai/@cf/openai/gpt-oss-120b", name: "GPT OSS 120B", api: "openai-completions", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat", reasoning: true, input: ["text"], cost: { input: 0.35, output: 0.75, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true } }, "workers-ai/@cf/openai/gpt-oss-20b": { id: "workers-ai/@cf/openai/gpt-oss-20b", name: "GPT OSS 20B", api: "openai-completions", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat", reasoning: true, input: ["text"], cost: { input: 0.2, output: 0.3, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true } }, "workers-ai/@cf/qwen/qwen3-30b-a3b-fp8": { id: "workers-ai/@cf/qwen/qwen3-30b-a3b-fp8", name: "Qwen3 30B A3b fp8", api: "openai-completions", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat", reasoning: true, input: ["text"], cost: { input: 0.0509, output: 0.335, cacheRead: 0, cacheWrite: 0 }, contextWindow: 32768, maxTokens: 32768, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true } }, "workers-ai/@cf/zai-org/glm-4.7-flash": { id: "workers-ai/@cf/zai-org/glm-4.7-flash", name: "GLM-4.7-Flash", api: "openai-completions", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat", reasoning: true, input: ["text"], cost: { input: 0.0605, output: 0.4, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 131072, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true } }, "workers-ai/@cf/zai-org/glm-5.2": { id: "workers-ai/@cf/zai-org/glm-5.2", name: "Glm 5.2", api: "openai-completions", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/compat", reasoning: true, input: ["text"], cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 256e3, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true } } }, "openai-responses": { "gpt-4": { id: "gpt-4", name: "GPT-4", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: false, input: ["text"], cost: { input: 30, output: 60, cacheRead: 0, cacheWrite: 0 }, contextWindow: 8192, maxTokens: 8192, compat: { supportsStrictMode: true } }, "gpt-4-turbo": { id: "gpt-4-turbo", name: "GPT-4 Turbo", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: false, input: ["text", "image"], cost: { input: 10, output: 30, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4096, compat: { supportsStrictMode: true } }, "gpt-4.1": { id: "gpt-4.1", name: "GPT-4.1", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: false, input: ["text", "image"], cost: { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 }, contextWindow: 1047576, maxTokens: 32768, compat: { supportsStrictMode: true } }, "gpt-4.1-mini": { id: "gpt-4.1-mini", name: "GPT-4.1 mini", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: false, input: ["text", "image"], cost: { input: 0.4, output: 1.6, cacheRead: 0.1, cacheWrite: 0 }, contextWindow: 1047576, maxTokens: 32768, compat: { supportsStrictMode: true } }, "gpt-4.1-nano": { id: "gpt-4.1-nano", name: "GPT-4.1 nano", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: false, input: ["text", "image"], cost: { input: 0.1, output: 0.4, cacheRead: 0.025, cacheWrite: 0 }, contextWindow: 1047576, maxTokens: 32768, compat: { supportsStrictMode: true } }, "gpt-4o": { id: "gpt-4o", name: "GPT-4o", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: false, input: ["text", "image"], cost: { input: 1.25, output: 5, cacheRead: 0.625, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { supportsStrictMode: true } }, "gpt-4o-mini": { id: "gpt-4o-mini", name: "GPT-4o mini", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: false, input: ["text", "image"], cost: { input: 0.075, output: 0.3, cacheRead: 0.0375, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { supportsStrictMode: true } }, "gpt-5": { id: "gpt-5", name: "GPT-5", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: "minimal", low: "low", medium: "medium", high: "high", xhigh: null, max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5-mini": { id: "gpt-5-mini", name: "GPT-5 Mini", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 2, cacheRead: 0.025, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: "minimal", low: "low", medium: "medium", high: "high", xhigh: null, max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5-nano": { id: "gpt-5-nano", name: "GPT-5 Nano", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 0.05, output: 0.4, cacheRead: 5e-3, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: "minimal", low: "low", medium: "medium", high: "high", xhigh: null, max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5-pro": { id: "gpt-5-pro", name: "GPT-5 Pro", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 15, output: 120, cacheRead: 0, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 272e3, thinkingLevelMap: { off: null, minimal: null, low: null, medium: null, high: "high", xhigh: null, max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.1": { id: "gpt-5.1", name: "GPT-5.1", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.2": { id: "gpt-5.2", name: "GPT-5.2", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.2-chat-latest": { id: "gpt-5.2-chat-latest", name: "GPT-5.2 Chat", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, thinkingLevelMap: { off: null, minimal: null, low: null, medium: "medium", high: null, xhigh: "xhigh", max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.2-pro": { id: "gpt-5.2-pro", name: "GPT-5.2 Pro", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 21, output: 168, cacheRead: 0, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: null, medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.3-chat-latest": { id: "gpt-5.3-chat-latest", name: "GPT-5.3 Chat (latest)", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: false, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, thinkingLevelMap: { off: null, xhigh: "xhigh" }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.3-codex": { id: "gpt-5.3-codex", name: "GPT-5.3 Codex", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.3-codex-spark": { id: "gpt-5.3-codex-spark", name: "GPT-5.3 Codex Spark", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 32e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.4": { id: "gpt-5.4", name: "GPT-5.4", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 2.5, output: 15, cacheRead: 0.25, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.4-mini": { id: "gpt-5.4-mini", name: "GPT-5.4 mini", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 0.75, output: 4.5, cacheRead: 0.075, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.4-nano": { id: "gpt-5.4-nano", name: "GPT-5.4 nano", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 1.25, cacheRead: 0.02, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.4-pro": { id: "gpt-5.4-pro", name: "GPT-5.4 Pro", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 30, output: 180, cacheRead: 0, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: null, medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.5": { id: "gpt-5.5", name: "GPT-5.5", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.5-pro": { id: "gpt-5.5-pro", name: "GPT-5.5 Pro", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 30, output: 180, cacheRead: 0, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: null, medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.6": { id: "gpt-5.6", name: "GPT-5.6", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.6-luna": { id: "gpt-5.6-luna", name: "GPT-5.6 Luna", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 1.2, cacheRead: 0.02, cacheWrite: 0.25, tiers: [{ inputTokensAbove: 272e3, input: 0.4, output: 1.8, cacheRead: 0.04, cacheWrite: 0.5 }] }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.6-sol": { id: "gpt-5.6-sol", name: "GPT-5.6 Sol", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.6-terra": { id: "gpt-5.6-terra", name: "GPT-5.6 Terra", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 2.5, tiers: [{ inputTokensAbove: 272e3, input: 4, output: 18, cacheRead: 0.4, cacheWrite: 5 }] }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, o1: { id: "o1", name: "o1", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 15, output: 60, cacheRead: 7.5, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null }, compat: { supportsStrictMode: true } }, "o1-pro": { id: "o1-pro", name: "o1-pro", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 150, output: 600, cacheRead: 0, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null }, compat: { supportsStrictMode: true } }, o3: { id: "o3", name: "o3", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null }, compat: { supportsStrictMode: true } }, "o3-mini": { id: "o3-mini", name: "o3-mini", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text"], cost: { input: 1.1, output: 4.4, cacheRead: 0.55, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null }, compat: { supportsStrictMode: true } }, "o3-pro": { id: "o3-pro", name: "o3-pro", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 20, output: 80, cacheRead: 0, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null }, compat: { supportsStrictMode: true } }, "o4-mini": { id: "o4-mini", name: "o4-mini", api: "openai-responses", provider: "cloudflare-ai-gateway", baseUrl: "https://gateway.ai.cloudflare.com/v1/{CLOUDFLARE_ACCOUNT_ID}/{CLOUDFLARE_GATEWAY_ID}/openai", reasoning: true, input: ["text", "image"], cost: { input: 1.1, output: 4.4, cacheRead: 0.275, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null }, compat: { supportsStrictMode: true } } } };
|
|
3274
3708
|
|
|
3275
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3709
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.js
|
|
3276
3710
|
var CLOUDFLARE_AI_GATEWAY_MODELS = flattenModelCatalog("cloudflare-ai-gateway", cloudflare_ai_gateway_default);
|
|
3277
3711
|
|
|
3278
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3712
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-workers-ai.json
|
|
3279
3713
|
var cloudflare_workers_ai_default = { "openai-completions": { "@cf/deepseek-ai/deepseek-v4-flash-0731": { id: "@cf/deepseek-ai/deepseek-v4-flash-0731", name: "DeepSeek V4 Flash 0731", api: "openai-completions", provider: "cloudflare-workers-ai", baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1", reasoning: true, input: ["text"], cost: { input: 0.44, output: 1.32, cacheRead: 0.014, cacheWrite: 0 }, contextWindow: 1310720, maxTokens: 1048576, compat: { supportsStore: false, supportsDeveloperRole: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true, requiresReasoningContentOnAssistantMessages: true, thinkingFormat: "deepseek" }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", max: "max" } }, "@cf/deepseek-ai/deepseek-v4-pro-0813": { id: "@cf/deepseek-ai/deepseek-v4-pro-0813", name: "DeepSeek V4 Pro 0813", api: "openai-completions", provider: "cloudflare-workers-ai", baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1", reasoning: true, input: ["text"], cost: { input: 1.32, output: 3.96, cacheRead: 0.044, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 1048576, compat: { supportsStore: false, supportsDeveloperRole: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true, requiresReasoningContentOnAssistantMessages: true, thinkingFormat: "deepseek" }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", max: "max" } }, "@cf/google/gemma-4-26b-a4b-it": { id: "@cf/google/gemma-4-26b-a4b-it", name: "Gemma 4 26B A4B IT", api: "openai-completions", provider: "cloudflare-workers-ai", baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.1, output: 0.3, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 16384, compat: { supportsStore: false, supportsDeveloperRole: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true }, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "@cf/ibm-granite/granite-4.0-h-micro": { id: "@cf/ibm-granite/granite-4.0-h-micro", name: "Granite 4.0 H Micro", api: "openai-completions", provider: "cloudflare-workers-ai", baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1", reasoning: false, input: ["text"], cost: { input: 0.017, output: 0.112, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131e3, maxTokens: 131e3, compat: { supportsStore: false, supportsDeveloperRole: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true } }, "@cf/meta/llama-3.3-70b-instruct-fp8-fast": { id: "@cf/meta/llama-3.3-70b-instruct-fp8-fast", name: "Llama 3.3 70B Instruct fp8 Fast", api: "openai-completions", provider: "cloudflare-workers-ai", baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1", reasoning: false, input: ["text"], cost: { input: 0.293, output: 2.253, cacheRead: 0, cacheWrite: 0 }, contextWindow: 24e3, maxTokens: 24e3, compat: { supportsStore: false, supportsDeveloperRole: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true } }, "@cf/meta/llama-4-scout-17b-16e-instruct": { id: "@cf/meta/llama-4-scout-17b-16e-instruct", name: "Llama 4 Scout 17B 16E Instruct", api: "openai-completions", provider: "cloudflare-workers-ai", baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1", reasoning: false, input: ["text", "image"], cost: { input: 0.27, output: 0.85, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131e3, maxTokens: 16384, compat: { supportsStore: false, supportsDeveloperRole: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true } }, "@cf/mistralai/mistral-small-3.1-24b-instruct": { id: "@cf/mistralai/mistral-small-3.1-24b-instruct", name: "Mistral Small 3.1 24B Instruct", api: "openai-completions", provider: "cloudflare-workers-ai", baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1", reasoning: false, input: ["text"], cost: { input: 0.351, output: 0.555, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 128e3, compat: { supportsStore: false, supportsDeveloperRole: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true } }, "@cf/moonshotai/kimi-k2.6": { id: "@cf/moonshotai/kimi-k2.6", name: "Kimi K2.6", api: "openai-completions", provider: "cloudflare-workers-ai", baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 256e3, compat: { supportsStore: false, supportsDeveloperRole: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true }, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "@cf/moonshotai/kimi-k2.7-code": { id: "@cf/moonshotai/kimi-k2.7-code", name: "Kimi K2.7 Code", api: "openai-completions", provider: "cloudflare-workers-ai", baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsStore: false, supportsDeveloperRole: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true }, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "@cf/nvidia/nemotron-3-120b-a12b": { id: "@cf/nvidia/nemotron-3-120b-a12b", name: "Nemotron 3 Super 120B", api: "openai-completions", provider: "cloudflare-workers-ai", baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1", reasoning: true, input: ["text"], cost: { input: 0.5, output: 1.5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 256e3, compat: { supportsStore: false, supportsDeveloperRole: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true }, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "@cf/openai/gpt-oss-120b": { id: "@cf/openai/gpt-oss-120b", name: "GPT OSS 120B", api: "openai-completions", provider: "cloudflare-workers-ai", baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1", reasoning: true, input: ["text"], cost: { input: 0.35, output: 0.75, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { supportsStore: false, supportsDeveloperRole: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true }, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "@cf/openai/gpt-oss-20b": { id: "@cf/openai/gpt-oss-20b", name: "GPT OSS 20B", api: "openai-completions", provider: "cloudflare-workers-ai", baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1", reasoning: true, input: ["text"], cost: { input: 0.2, output: 0.3, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { supportsStore: false, supportsDeveloperRole: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true } }, "@cf/qwen/qwen3-30b-a3b-fp8": { id: "@cf/qwen/qwen3-30b-a3b-fp8", name: "Qwen3 30B A3b fp8", api: "openai-completions", provider: "cloudflare-workers-ai", baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1", reasoning: true, input: ["text"], cost: { input: 0.0509, output: 0.335, cacheRead: 0, cacheWrite: 0 }, contextWindow: 32768, maxTokens: 32768, compat: { supportsStore: false, supportsDeveloperRole: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true } }, "@cf/qwen/qwen3.8-27b": { id: "@cf/qwen/qwen3.8-27b", name: "Qwen3.8 27B", api: "openai-completions", provider: "cloudflare-workers-ai", baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.45, output: 3.2, cacheRead: 0.05, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsStore: false, supportsDeveloperRole: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true }, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: null, xhigh: "xhigh", max: null } }, "@cf/zai-org/glm-4.7-flash": { id: "@cf/zai-org/glm-4.7-flash", name: "GLM-4.7-Flash", api: "openai-completions", provider: "cloudflare-workers-ai", baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1", reasoning: true, input: ["text"], cost: { input: 0.0605, output: 0.4, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 131072, compat: { supportsStore: false, supportsDeveloperRole: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true }, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "@cf/zai-org/glm-5.2": { id: "@cf/zai-org/glm-5.2", name: "Glm 5.2", api: "openai-completions", provider: "cloudflare-workers-ai", baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1", reasoning: true, input: ["text"], cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 256e3, compat: { supportsStore: false, supportsDeveloperRole: false, supportsLongCacheRetention: false, sendSessionAffinityHeaders: true }, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } } } };
|
|
3280
3714
|
|
|
3281
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3715
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.models.js
|
|
3282
3716
|
var CLOUDFLARE_WORKERS_AI_MODELS = flattenModelCatalog("cloudflare-workers-ai", cloudflare_workers_ai_default);
|
|
3283
3717
|
|
|
3284
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3718
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/deepseek.json
|
|
3285
3719
|
var deepseek_default = { "openai-completions": { "deepseek-v4-flash": { id: "deepseek-v4-flash", name: "DeepSeek V4 Flash", api: "openai-completions", baseUrl: "https://api.deepseek.com", provider: "deepseek", reasoning: true, input: ["text"], cost: { input: 0.14, output: 0.28, cacheRead: 28e-4, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 384e3, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens", requiresReasoningContentOnAssistantMessages: true, thinkingFormat: "deepseek" }, thinkingLevelMap: { minimal: null, low: "low", medium: null, high: "high", max: "max" } }, "deepseek-v4-pro": { id: "deepseek-v4-pro", name: "DeepSeek V4 Pro", api: "openai-completions", baseUrl: "https://api.deepseek.com", provider: "deepseek", reasoning: true, input: ["text"], cost: { input: 0.435, output: 0.87, cacheRead: 3625e-6, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 384e3, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens", requiresReasoningContentOnAssistantMessages: true, thinkingFormat: "deepseek" }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", max: "max" } } } };
|
|
3286
3720
|
|
|
3287
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3721
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.models.js
|
|
3288
3722
|
var DEEPSEEK_MODELS = flattenModelCatalog("deepseek", deepseek_default);
|
|
3289
3723
|
|
|
3290
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3724
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/fireworks.json
|
|
3291
3725
|
var fireworks_default = { "anthropic-messages": { "accounts/fireworks/models/deepseek-v4-flash": { id: "accounts/fireworks/models/deepseek-v4-flash", name: "DeepSeek V4 Flash", provider: "fireworks", reasoning: true, input: ["text"], cost: { input: 0.14, output: 0.28, cacheRead: 0.028, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 384e3, api: "anthropic-messages", baseUrl: "https://api.fireworks.ai/inference", compat: { sendSessionAffinityHeaders: true, supportsEagerToolInputStreaming: false, supportsCacheControlOnTools: false, supportsLongCacheRetention: false } }, "accounts/fireworks/models/deepseek-v4-flash-0731": { id: "accounts/fireworks/models/deepseek-v4-flash-0731", name: "DeepSeek V4 Flash 0731", provider: "fireworks", reasoning: true, input: ["text"], cost: { input: 0.14, output: 0.28, cacheRead: 0.028, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 384e3, api: "anthropic-messages", baseUrl: "https://api.fireworks.ai/inference", compat: { sendSessionAffinityHeaders: true, supportsEagerToolInputStreaming: false, supportsCacheControlOnTools: false, supportsLongCacheRetention: false } }, "accounts/fireworks/models/deepseek-v4-pro": { id: "accounts/fireworks/models/deepseek-v4-pro", name: "DeepSeek V4 Pro", provider: "fireworks", reasoning: true, input: ["text"], cost: { input: 1.74, output: 3.48, cacheRead: 0.145, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 384e3, api: "anthropic-messages", baseUrl: "https://api.fireworks.ai/inference", compat: { sendSessionAffinityHeaders: true, supportsEagerToolInputStreaming: false, supportsCacheControlOnTools: false, supportsLongCacheRetention: false } }, "accounts/fireworks/models/deepseek-v4-pro-0813": { id: "accounts/fireworks/models/deepseek-v4-pro-0813", name: "DeepSeek V4 Pro 0813", provider: "fireworks", reasoning: true, input: ["text"], cost: { input: 1.32, output: 3.96, cacheRead: 0.044, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 384e3, api: "anthropic-messages", baseUrl: "https://api.fireworks.ai/inference", compat: { sendSessionAffinityHeaders: true, supportsEagerToolInputStreaming: false, supportsCacheControlOnTools: false, supportsLongCacheRetention: false } }, "accounts/fireworks/models/gpt-oss-120b": { id: "accounts/fireworks/models/gpt-oss-120b", name: "GPT OSS 120B", provider: "fireworks", reasoning: true, input: ["text"], cost: { input: 0.15, output: 0.6, cacheRead: 0.015, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 32768, api: "anthropic-messages", baseUrl: "https://api.fireworks.ai/inference", compat: { sendSessionAffinityHeaders: true, supportsEagerToolInputStreaming: false, supportsCacheControlOnTools: false, supportsLongCacheRetention: false } }, "accounts/fireworks/models/gpt-oss-20b": { id: "accounts/fireworks/models/gpt-oss-20b", name: "GPT OSS 20B", provider: "fireworks", reasoning: true, input: ["text"], cost: { input: 0.07, output: 0.3, cacheRead: 0.035, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 32768, api: "anthropic-messages", baseUrl: "https://api.fireworks.ai/inference", compat: { sendSessionAffinityHeaders: true, supportsEagerToolInputStreaming: false, supportsCacheControlOnTools: false, supportsLongCacheRetention: false } }, "accounts/fireworks/models/inkling": { id: "accounts/fireworks/models/inkling", name: "Inkling", provider: "fireworks", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 4.05, cacheRead: 0.17, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 1048576, api: "anthropic-messages", baseUrl: "https://api.fireworks.ai/inference", compat: { sendSessionAffinityHeaders: true, supportsEagerToolInputStreaming: false, supportsCacheControlOnTools: false, supportsLongCacheRetention: false } }, "accounts/fireworks/models/kimi-k2p6": { id: "accounts/fireworks/models/kimi-k2p6", name: "Kimi K2.6", provider: "fireworks", reasoning: true, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, contextWindow: 262e3, maxTokens: 262e3, api: "anthropic-messages", baseUrl: "https://api.fireworks.ai/inference", compat: { sendSessionAffinityHeaders: true, supportsEagerToolInputStreaming: false, supportsCacheControlOnTools: false, supportsLongCacheRetention: false } }, "accounts/fireworks/models/kimi-k2p7-code": { id: "accounts/fireworks/models/kimi-k2p7-code", name: "Kimi K2.7 Code", provider: "fireworks", reasoning: true, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 }, contextWindow: 262e3, maxTokens: 262e3, api: "anthropic-messages", baseUrl: "https://api.fireworks.ai/inference", compat: { sendSessionAffinityHeaders: true, supportsEagerToolInputStreaming: false, supportsCacheControlOnTools: false, supportsLongCacheRetention: false } }, "accounts/fireworks/models/minimax-m2p7": { id: "accounts/fireworks/models/minimax-m2p7", name: "MiniMax-M2.7", provider: "fireworks", reasoning: true, input: ["text"], cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, contextWindow: 196608, maxTokens: 196608, api: "anthropic-messages", baseUrl: "https://api.fireworks.ai/inference", compat: { sendSessionAffinityHeaders: true, supportsEagerToolInputStreaming: false, supportsCacheControlOnTools: false, supportsLongCacheRetention: false } }, "accounts/fireworks/models/minimax-m3": { id: "accounts/fireworks/models/minimax-m3", name: "MiniMax-M3", provider: "fireworks", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, contextWindow: 512e3, maxTokens: 512e3, api: "anthropic-messages", baseUrl: "https://api.fireworks.ai/inference", compat: { sendSessionAffinityHeaders: true, supportsEagerToolInputStreaming: false, supportsCacheControlOnTools: false, supportsLongCacheRetention: false } }, "accounts/fireworks/models/muse-glimmer-30b": { id: "accounts/fireworks/models/muse-glimmer-30b", name: "Muse Glimmer 30B", provider: "fireworks", reasoning: true, input: ["text", "image"], cost: { input: 0.35, output: 1.5, cacheRead: 0.04, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 131072, api: "anthropic-messages", baseUrl: "https://api.fireworks.ai/inference", compat: { sendSessionAffinityHeaders: true, supportsEagerToolInputStreaming: false, supportsCacheControlOnTools: false, supportsLongCacheRetention: false } }, "accounts/fireworks/models/nemotron-3-ultra-nvfp4": { id: "accounts/fireworks/models/nemotron-3-ultra-nvfp4", name: "Nemotron 3 Ultra 550B A55B", provider: "fireworks", reasoning: true, input: ["text"], cost: { input: 0.6, output: 2.4, cacheRead: 0.119, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 128e3, api: "anthropic-messages", baseUrl: "https://api.fireworks.ai/inference", compat: { sendSessionAffinityHeaders: true, supportsEagerToolInputStreaming: false, supportsCacheControlOnTools: false, supportsLongCacheRetention: false } }, "accounts/fireworks/models/nemotron-lightning-3p5-30b-a3b": { id: "accounts/fireworks/models/nemotron-lightning-3p5-30b-a3b", name: "Nemotron 3.5 Lightning 30B A3B", provider: "fireworks", reasoning: true, input: ["text"], cost: { input: 0.05, output: 0.2, cacheRead: 0.01, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, api: "anthropic-messages", baseUrl: "https://api.fireworks.ai/inference", compat: { sendSessionAffinityHeaders: true, supportsEagerToolInputStreaming: false, supportsCacheControlOnTools: false, supportsLongCacheRetention: false } }, "accounts/fireworks/models/qwen3p7-plus": { id: "accounts/fireworks/models/qwen3p7-plus", name: "Qwen 3.7 Plus", provider: "fireworks", reasoning: true, input: ["text", "image"], cost: { input: 0.4, output: 1.6, cacheRead: 0.08, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 65536, api: "anthropic-messages", baseUrl: "https://api.fireworks.ai/inference", compat: { sendSessionAffinityHeaders: true, supportsEagerToolInputStreaming: false, supportsCacheControlOnTools: false, supportsLongCacheRetention: false } }, "accounts/fireworks/models/qwen3p8-max": { id: "accounts/fireworks/models/qwen3p8-max", name: "Qwen3.8 Max", provider: "fireworks", reasoning: true, input: ["text"], cost: { input: 2, output: 6, cacheRead: 0.25, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 131072, api: "anthropic-messages", baseUrl: "https://api.fireworks.ai/inference", compat: { sendSessionAffinityHeaders: true, supportsEagerToolInputStreaming: false, supportsCacheControlOnTools: false, supportsLongCacheRetention: false } }, "accounts/fireworks/routers/kimi-k2p6-fast": { id: "accounts/fireworks/routers/kimi-k2p6-fast", name: "Kimi K2.6 Fast", provider: "fireworks", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 8, cacheRead: 0.3, cacheWrite: 0 }, contextWindow: 262e3, maxTokens: 262e3, api: "anthropic-messages", baseUrl: "https://api.fireworks.ai/inference", compat: { sendSessionAffinityHeaders: true, supportsEagerToolInputStreaming: false, supportsCacheControlOnTools: false, supportsLongCacheRetention: false } }, "accounts/fireworks/routers/kimi-k2p6-turbo": { id: "accounts/fireworks/routers/kimi-k2p6-turbo", name: "Kimi K2.6 Turbo", provider: "fireworks", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 8, cacheRead: 0.3, cacheWrite: 0 }, contextWindow: 262e3, maxTokens: 262e3, api: "anthropic-messages", baseUrl: "https://api.fireworks.ai/inference", compat: { sendSessionAffinityHeaders: true, supportsEagerToolInputStreaming: false, supportsCacheControlOnTools: false, supportsLongCacheRetention: false } }, "accounts/fireworks/routers/kimi-k2p7-code-fast": { id: "accounts/fireworks/routers/kimi-k2p7-code-fast", name: "Kimi K2.7 Code Fast", provider: "fireworks", reasoning: true, input: ["text", "image"], cost: { input: 1.9, output: 8, cacheRead: 0.38, cacheWrite: 0 }, contextWindow: 262e3, maxTokens: 262e3, api: "anthropic-messages", baseUrl: "https://api.fireworks.ai/inference", compat: { sendSessionAffinityHeaders: true, supportsEagerToolInputStreaming: false, supportsCacheControlOnTools: false, supportsLongCacheRetention: false } } }, "openai-completions": { "accounts/fireworks/models/glm-5p2": { id: "accounts/fireworks/models/glm-5p2", name: "GLM 5.2", provider: "fireworks", reasoning: true, input: ["text"], cost: { input: 1.4, output: 4.4, cacheRead: 0.14, cacheWrite: 0 }, contextWindow: 1048575, maxTokens: 131072, api: "openai-completions", baseUrl: "https://api.fireworks.ai/inference/v1", compat: { supportsStore: false, supportsDeveloperRole: false, sendSessionAffinityHeaders: true, supportsLongCacheRetention: false }, thinkingLevelMap: { off: "none", minimal: null, low: "high", medium: "high", high: "high", xhigh: null, max: "max" } }, "accounts/fireworks/models/kimi-k3": { id: "accounts/fireworks/models/kimi-k3", name: "Kimi K3", provider: "fireworks", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072, api: "openai-completions", baseUrl: "https://api.fireworks.ai/inference/v1", compat: { supportsStore: false, supportsDeveloperRole: false, sendSessionAffinityHeaders: true, supportsLongCacheRetention: false, requiresReasoningContentOnAssistantMessages: true, thinkingFormat: "openai", deferredToolsMode: "kimi" }, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: "max" } }, "accounts/fireworks/routers/glm-5p2-fast": { id: "accounts/fireworks/routers/glm-5p2-fast", name: "GLM 5.2 Fast", provider: "fireworks", reasoning: true, input: ["text"], cost: { input: 2.1, output: 6.6, cacheRead: 0.21, cacheWrite: 0 }, contextWindow: 1048575, maxTokens: 131072, api: "openai-completions", baseUrl: "https://api.fireworks.ai/inference/v1", compat: { supportsStore: false, supportsDeveloperRole: false, sendSessionAffinityHeaders: true, supportsLongCacheRetention: false }, thinkingLevelMap: { off: "none", minimal: null, low: "high", medium: "high", high: "high", xhigh: null, max: "max" } }, "accounts/fireworks/routers/kimi-k3-fast": { id: "accounts/fireworks/routers/kimi-k3-fast", name: "Kimi K3 Fast", provider: "fireworks", reasoning: true, input: ["text", "image"], cost: { input: 4.5, output: 22.5, cacheRead: 0.45, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072, api: "openai-completions", baseUrl: "https://api.fireworks.ai/inference/v1", compat: { supportsStore: false, supportsDeveloperRole: false, sendSessionAffinityHeaders: true, supportsLongCacheRetention: false, requiresReasoningContentOnAssistantMessages: true, thinkingFormat: "openai", deferredToolsMode: "kimi" }, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: "max" } } } };
|
|
3292
3726
|
|
|
3293
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3727
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.models.js
|
|
3294
3728
|
var FIREWORKS_MODELS = flattenModelCatalog("fireworks", fireworks_default);
|
|
3295
3729
|
|
|
3296
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3730
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/github-copilot.json
|
|
3297
3731
|
var github_copilot_default = { "anthropic-messages": { "claude-haiku-4.5": { id: "claude-haiku-4.5", name: "Claude Haiku 4.5 (latest)", api: "anthropic-messages", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, contextWindow: 2e5, maxTokens: 64e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, compat: { supportsEagerToolInputStreaming: false } }, "claude-opus-4.5": { id: "claude-opus-4.5", name: "Claude Opus 4.5 (latest)", api: "anthropic-messages", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 2e5, maxTokens: 32e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" } }, "claude-opus-4.6": { id: "claude-opus-4.6", name: "Claude Opus 4.6", api: "anthropic-messages", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 32e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, thinkingLevelMap: { max: "max" }, compat: { forceAdaptiveThinking: true } }, "claude-opus-4.7": { id: "claude-opus-4.7", name: "Claude Opus 4.7", api: "anthropic-messages", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 32e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, thinkingLevelMap: { xhigh: "xhigh", max: "max", minimal: "low" }, compat: { forceAdaptiveThinking: true, supportsTemperature: false } }, "claude-opus-4.8": { id: "claude-opus-4.8", name: "Claude Opus 4.8", api: "anthropic-messages", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 64e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, thinkingLevelMap: { xhigh: "xhigh", max: "max", minimal: "low" }, compat: { forceAdaptiveThinking: true, supportsTemperature: false } }, "claude-opus-5": { id: "claude-opus-5", name: "Claude Opus 5", api: "anthropic-messages", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 64e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, thinkingLevelMap: { xhigh: "xhigh", max: "max", minimal: "low" }, compat: { forceAdaptiveThinking: true, supportsTemperature: false } }, "claude-sonnet-4": { id: "claude-sonnet-4", name: "Claude Sonnet 4 (latest)", api: "anthropic-messages", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 216e3, maxTokens: 16e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, compat: { supportsEagerToolInputStreaming: false } }, "claude-sonnet-4.5": { id: "claude-sonnet-4.5", name: "Claude Sonnet 4.5 (latest)", api: "anthropic-messages", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 2e5, maxTokens: 32e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, compat: { supportsEagerToolInputStreaming: false } }, "claude-sonnet-4.6": { id: "claude-sonnet-4.6", name: "Claude Sonnet 4.6", api: "anthropic-messages", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 1e6, maxTokens: 32e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, thinkingLevelMap: { max: "max", minimal: "low" }, compat: { forceAdaptiveThinking: true } }, "claude-sonnet-5": { id: "claude-sonnet-5", name: "Claude Sonnet 5", api: "anthropic-messages", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, contextWindow: 1e6, maxTokens: 128e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, thinkingLevelMap: { xhigh: "xhigh", max: "max" }, compat: { forceAdaptiveThinking: true } } }, "openai-completions": { "claude-fable-5": { id: "claude-fable-5", name: "Claude Fable 5", api: "openai-completions", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 }, contextWindow: 1e6, maxTokens: 128e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false }, thinkingLevelMap: { off: null, xhigh: "xhigh", max: "max" } }, "gemini-3.1-pro-preview": { id: "gemini-3.1-pro-preview", name: "Gemini 3.1 Pro Preview", api: "openai-completions", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 0, tiers: [{ inputTokensAbove: 2e5, input: 4, output: 18, cacheRead: 0.4, cacheWrite: 0 }] }, contextWindow: 1e6, maxTokens: 64e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false } }, "gemini-3.5-flash": { id: "gemini-3.5-flash", name: "Gemini 3.5 Flash", api: "openai-completions", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 1.5, output: 9, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 64e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false } }, "gemini-3.6-flash": { id: "gemini-3.6-flash", name: "Gemini 3.6 Flash", api: "openai-completions", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 1.5, output: 7.5, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 64e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false } }, "gemini-3.7-flash": { id: "gemini-3.7-flash", name: "Gemini 3.7 Flash", api: "openai-completions", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 64e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false } }, "gpt-4.1": { id: "gpt-4.1", name: "GPT-4.1", api: "openai-completions", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: false, input: ["text", "image"], cost: { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false } }, "kimi-k2.7-code": { id: "kimi-k2.7-code", name: "Kimi K2.7 Code", api: "openai-completions", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 32e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false } }, "kimi-k3": { id: "kimi-k3", name: "Kimi K3", api: "openai-completions", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false } } }, "openai-responses": { "gpt-5-mini": { id: "gpt-5-mini", name: "GPT-5 Mini", api: "openai-responses", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 2, cacheRead: 0.025, cacheWrite: 0 }, contextWindow: 264e3, maxTokens: 64e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, thinkingLevelMap: { off: null, minimal: "low", low: "low", medium: "medium", high: "high", xhigh: null, max: null }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.2": { id: "gpt-5.2", name: "GPT-5.2", api: "openai-responses", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, thinkingLevelMap: { off: null, minimal: "low", xhigh: "xhigh" }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.2-codex": { id: "gpt-5.2-codex", name: "GPT-5.2 Codex", api: "openai-responses", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, thinkingLevelMap: { off: null, minimal: "low", xhigh: "xhigh" }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.3-codex": { id: "gpt-5.3-codex", name: "GPT-5.3 Codex", api: "openai-responses", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 128e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, thinkingLevelMap: { off: null, minimal: "low", low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.4": { id: "gpt-5.4", name: "GPT-5.4", api: "openai-responses", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 2.5, output: 15, cacheRead: 0.25, cacheWrite: 0, tiers: [{ inputTokensAbove: 272e3, input: 5, output: 22.5, cacheRead: 0.5, cacheWrite: 0 }] }, contextWindow: 1e6, maxTokens: 128e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, thinkingLevelMap: { off: null, minimal: "low", low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.4-mini": { id: "gpt-5.4-mini", name: "GPT-5.4 mini", api: "openai-responses", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 0.75, output: 4.5, cacheRead: 0.075, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, thinkingLevelMap: { off: null, minimal: "low", low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.4-nano": { id: "gpt-5.4-nano", name: "GPT-5.4 nano", api: "openai-responses", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 1.25, cacheRead: 0.02, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, thinkingLevelMap: { off: null, minimal: "low", xhigh: "xhigh" }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.5": { id: "gpt-5.5", name: "GPT-5.5", api: "openai-responses", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 0, tiers: [{ inputTokensAbove: 272e3, input: 10, output: 45, cacheRead: 1, cacheWrite: 0 }] }, contextWindow: 1e6, maxTokens: 128e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, thinkingLevelMap: { off: null, minimal: "low", low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.6-luna": { id: "gpt-5.6-luna", name: "GPT-5.6 Luna", api: "openai-responses", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 1.2, cacheRead: 0.02, cacheWrite: 0, tiers: [{ inputTokensAbove: 2e5, input: 0.4, output: 1.8, cacheRead: 0.04, cacheWrite: 0 }] }, contextWindow: 105e4, maxTokens: 128e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, thinkingLevelMap: { off: null, minimal: "low", low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.6-sol": { id: "gpt-5.6-sol", name: "GPT-5.6 Sol", api: "openai-responses", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 2.5, output: 15, cacheRead: 0.25, cacheWrite: 3.125, tiers: [{ inputTokensAbove: 272e3, input: 5, output: 22.5, cacheRead: 0.5, cacheWrite: 6.25 }] }, contextWindow: 105e4, maxTokens: 128e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, thinkingLevelMap: { off: null, minimal: "low", low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.6-terra": { id: "gpt-5.6-terra", name: "GPT-5.6 Terra", api: "openai-responses", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 0, tiers: [{ inputTokensAbove: 272e3, input: 4, output: 18, cacheRead: 0.4, cacheWrite: 0 }] }, contextWindow: 105e4, maxTokens: 128e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, thinkingLevelMap: { off: null, minimal: "low", low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" }, compat: { supportsOpenAIGrammarTools: true } }, "grok-4.5": { id: "grok-4.5", name: "Grok 4.5", api: "openai-responses", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 6, cacheRead: 0.5, cacheWrite: 0, tiers: [{ inputTokensAbove: 2e5, input: 4, output: 12, cacheRead: 1, cacheWrite: 0 }] }, contextWindow: 5e5, maxTokens: 128e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "grok-4.6": { id: "grok-4.6", name: "Grok 4.6", api: "openai-responses", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 6, cacheRead: 0.5, cacheWrite: 0, tiers: [{ inputTokensAbove: 2e5, input: 4, output: 12, cacheRead: 1, cacheWrite: 0 }] }, contextWindow: 5e5, maxTokens: 128e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null } }, "mai-code-1-flash-picker": { id: "mai-code-1-flash-picker", name: "MAI-Code-1-Flash", api: "openai-responses", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text"], cost: { input: 0.75, output: 4.5, cacheRead: 0.075, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 128e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "mai-code-1.1-flash": { id: "mai-code-1.1-flash", name: "MAI-Code-1.1-Flash", api: "openai-responses", provider: "github-copilot", baseUrl: "https://api.individual.githubcopilot.com", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 1.2, cacheRead: 0.02, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 128e3, headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" }, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } } } };
|
|
3298
3732
|
|
|
3299
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3733
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot.models.js
|
|
3300
3734
|
var GITHUB_COPILOT_MODELS = flattenModelCatalog("github-copilot", github_copilot_default);
|
|
3301
3735
|
|
|
3302
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3736
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/google.json
|
|
3303
3737
|
var google_default = { "google-generative-ai": { "deep-research-max-preview-04-2026": { id: "deep-research-max-preview-04-2026", name: "Deep Research Max Preview (Apr-21-2026)", api: "google-generative-ai", provider: "google", baseUrl: "https://generativelanguage.googleapis.com/v1beta", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 65536 }, "deep-research-preview-04-2026": { id: "deep-research-preview-04-2026", name: "Deep Research Preview (Apr-21-2026)", api: "google-generative-ai", provider: "google", baseUrl: "https://generativelanguage.googleapis.com/v1beta", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 65536 }, "gemini-2.5-computer-use-preview-10-2025": { id: "gemini-2.5-computer-use-preview-10-2025", name: "Gemini 2.5 Computer Use Preview 10-2025", api: "google-generative-ai", provider: "google", baseUrl: "https://generativelanguage.googleapis.com/v1beta", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 65536 }, "gemini-2.5-flash": { id: "gemini-2.5-flash", name: "Gemini 2.5 Flash", api: "google-generative-ai", provider: "google", baseUrl: "https://generativelanguage.googleapis.com/v1beta", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 2.5, cacheRead: 0.03, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536 }, "gemini-2.5-flash-lite": { id: "gemini-2.5-flash-lite", name: "Gemini 2.5 Flash-Lite", api: "google-generative-ai", provider: "google", baseUrl: "https://generativelanguage.googleapis.com/v1beta", reasoning: true, input: ["text", "image"], cost: { input: 0.1, output: 0.4, cacheRead: 0.01, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536 }, "gemini-2.5-pro": { id: "gemini-2.5-pro", name: "Gemini 2.5 Pro", api: "google-generative-ai", provider: "google", baseUrl: "https://generativelanguage.googleapis.com/v1beta", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536 }, "gemini-3-flash-preview": { id: "gemini-3-flash-preview", name: "Gemini 3 Flash Preview", api: "google-generative-ai", provider: "google", baseUrl: "https://generativelanguage.googleapis.com/v1beta", reasoning: true, input: ["text", "image"], cost: { input: 0.5, output: 3, cacheRead: 0.05, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null } }, "gemini-3.1-flash-lite": { id: "gemini-3.1-flash-lite", name: "Gemini 3.1 Flash Lite", api: "google-generative-ai", provider: "google", baseUrl: "https://generativelanguage.googleapis.com/v1beta", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 1.5, cacheRead: 0.025, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null } }, "gemini-3.1-flash-lite-image": { id: "gemini-3.1-flash-lite-image", name: "Nano Banana 2 Lite", api: "google-generative-ai", provider: "google", baseUrl: "https://generativelanguage.googleapis.com/v1beta", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 30, cacheRead: 0, cacheWrite: 0 }, contextWindow: 65536, maxTokens: 65536, thinkingLevelMap: { off: null } }, "gemini-3.1-flash-lite-preview": { id: "gemini-3.1-flash-lite-preview", name: "Gemini 3.1 Flash Lite Preview", api: "google-generative-ai", provider: "google", baseUrl: "https://generativelanguage.googleapis.com/v1beta", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 1.5, cacheRead: 0.025, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null } }, "gemini-3.1-flash-live-preview": { id: "gemini-3.1-flash-live-preview", name: "Gemini 3.1 Flash Live Preview", api: "google-generative-ai", provider: "google", baseUrl: "https://generativelanguage.googleapis.com/v1beta", reasoning: true, input: ["text", "image"], cost: { input: 0.75, output: 4.5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 65536, thinkingLevelMap: { off: null } }, "gemini-3.1-pro-preview": { id: "gemini-3.1-pro-preview", name: "Gemini 3.1 Pro Preview", api: "google-generative-ai", provider: "google", baseUrl: "https://generativelanguage.googleapis.com/v1beta", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null, minimal: null, low: "LOW", medium: null, high: "HIGH" } }, "gemini-3.1-pro-preview-customtools": { id: "gemini-3.1-pro-preview-customtools", name: "Gemini 3.1 Pro Preview Custom Tools", api: "google-generative-ai", provider: "google", baseUrl: "https://generativelanguage.googleapis.com/v1beta", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null, minimal: null, low: "LOW", medium: null, high: "HIGH" } }, "gemini-3.5-flash": { id: "gemini-3.5-flash", name: "Gemini 3.5 Flash", api: "google-generative-ai", provider: "google", baseUrl: "https://generativelanguage.googleapis.com/v1beta", reasoning: true, input: ["text", "image"], cost: { input: 1.5, output: 9, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null } }, "gemini-3.5-flash-lite": { id: "gemini-3.5-flash-lite", name: "Gemini 3.5 Flash Lite", api: "google-generative-ai", provider: "google", baseUrl: "https://generativelanguage.googleapis.com/v1beta", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 2.5, cacheRead: 0.03, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null } }, "gemini-3.6-flash": { id: "gemini-3.6-flash", name: "Gemini 3.6 Flash", api: "google-generative-ai", provider: "google", baseUrl: "https://generativelanguage.googleapis.com/v1beta", reasoning: true, input: ["text", "image"], cost: { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null } }, "gemini-3.7-flash": { id: "gemini-3.7-flash", name: "Gemini 3.7 Flash", api: "google-generative-ai", provider: "google", baseUrl: "https://generativelanguage.googleapis.com/v1beta", reasoning: true, input: ["text", "image"], cost: { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null } }, "gemini-flash-latest": { id: "gemini-flash-latest", name: "Gemini Flash Latest", api: "google-generative-ai", provider: "google", baseUrl: "https://generativelanguage.googleapis.com/v1beta", reasoning: true, input: ["text", "image"], cost: { input: 1.5, output: 9, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null } }, "gemini-flash-lite-latest": { id: "gemini-flash-lite-latest", name: "Gemini Flash-Lite Latest", api: "google-generative-ai", provider: "google", baseUrl: "https://generativelanguage.googleapis.com/v1beta", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 1.5, cacheRead: 0.025, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null } }, "gemini-robotics-er-1.6-preview": { id: "gemini-robotics-er-1.6-preview", name: "Gemini Robotics-ER 1.6 Preview", api: "google-generative-ai", provider: "google", baseUrl: "https://generativelanguage.googleapis.com/v1beta", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 65536 }, "gemma-4-26b-a4b-it": { id: "gemma-4-26b-a4b-it", name: "Gemma 4 26B A4B IT", api: "google-generative-ai", provider: "google", baseUrl: "https://generativelanguage.googleapis.com/v1beta", reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 32768, thinkingLevelMap: { off: null, minimal: "MINIMAL", low: null, medium: null, high: "HIGH" } }, "gemma-4-31b-it": { id: "gemma-4-31b-it", name: "Gemma 4 31B IT", api: "google-generative-ai", provider: "google", baseUrl: "https://generativelanguage.googleapis.com/v1beta", reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 32768, thinkingLevelMap: { off: null, minimal: "MINIMAL", low: null, medium: null, high: "HIGH" } } } };
|
|
3304
3738
|
|
|
3305
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3739
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/google.models.js
|
|
3306
3740
|
var GOOGLE_MODELS = flattenModelCatalog("google", google_default);
|
|
3307
3741
|
|
|
3308
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3742
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/google-vertex.json
|
|
3309
3743
|
var google_vertex_default = { "google-vertex": { "gemini-2.5-flash": { id: "gemini-2.5-flash", name: "Gemini 2.5 Flash", api: "google-vertex", provider: "google-vertex", baseUrl: "https://{location}-aiplatform.googleapis.com", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 2.5, cacheRead: 0.03, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536 }, "gemini-2.5-flash-lite": { id: "gemini-2.5-flash-lite", name: "Gemini 2.5 Flash-Lite", api: "google-vertex", provider: "google-vertex", baseUrl: "https://{location}-aiplatform.googleapis.com", reasoning: true, input: ["text", "image"], cost: { input: 0.1, output: 0.4, cacheRead: 0.01, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536 }, "gemini-2.5-pro": { id: "gemini-2.5-pro", name: "Gemini 2.5 Pro", api: "google-vertex", provider: "google-vertex", baseUrl: "https://{location}-aiplatform.googleapis.com", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536 }, "gemini-3-flash-preview": { id: "gemini-3-flash-preview", name: "Gemini 3 Flash Preview", api: "google-vertex", provider: "google-vertex", baseUrl: "https://{location}-aiplatform.googleapis.com", reasoning: true, input: ["text", "image"], cost: { input: 0.5, output: 3, cacheRead: 0.05, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null } }, "gemini-3.1-flash-lite": { id: "gemini-3.1-flash-lite", name: "Gemini 3.1 Flash Lite", api: "google-vertex", provider: "google-vertex", baseUrl: "https://{location}-aiplatform.googleapis.com", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 1.5, cacheRead: 0.025, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null } }, "gemini-3.1-pro-preview": { id: "gemini-3.1-pro-preview", name: "Gemini 3.1 Pro Preview", api: "google-vertex", provider: "google-vertex", baseUrl: "https://{location}-aiplatform.googleapis.com", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null, minimal: null, low: "LOW", medium: null, high: "HIGH" } }, "gemini-3.1-pro-preview-customtools": { id: "gemini-3.1-pro-preview-customtools", name: "Gemini 3.1 Pro Preview Custom Tools", api: "google-vertex", provider: "google-vertex", baseUrl: "https://{location}-aiplatform.googleapis.com", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null, minimal: null, low: "LOW", medium: null, high: "HIGH" } }, "gemini-3.5-flash": { id: "gemini-3.5-flash", name: "Gemini 3.5 Flash", api: "google-vertex", provider: "google-vertex", baseUrl: "https://{location}-aiplatform.googleapis.com", reasoning: true, input: ["text", "image"], cost: { input: 1.5, output: 9, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null } }, "gemini-3.5-flash-lite": { id: "gemini-3.5-flash-lite", name: "Gemini 3.5 Flash Lite", api: "google-vertex", provider: "google-vertex", baseUrl: "https://{location}-aiplatform.googleapis.com", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 2.5, cacheRead: 0.03, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null } }, "gemini-3.6-flash": { id: "gemini-3.6-flash", name: "Gemini 3.6 Flash", api: "google-vertex", provider: "google-vertex", baseUrl: "https://{location}-aiplatform.googleapis.com", reasoning: true, input: ["text", "image"], cost: { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null } }, "gemini-3.7-flash": { id: "gemini-3.7-flash", name: "Gemini 3.7 Flash", api: "google-vertex", provider: "google-vertex", baseUrl: "https://{location}-aiplatform.googleapis.com", reasoning: true, input: ["text", "image"], cost: { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null } }, "gemini-flash-latest": { id: "gemini-flash-latest", name: "Gemini Flash Latest", api: "google-vertex", provider: "google-vertex", baseUrl: "https://{location}-aiplatform.googleapis.com", reasoning: true, input: ["text", "image"], cost: { input: 1.5, output: 9, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null } }, "gemini-flash-lite-latest": { id: "gemini-flash-lite-latest", name: "Gemini Flash-Lite Latest", api: "google-vertex", provider: "google-vertex", baseUrl: "https://{location}-aiplatform.googleapis.com", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 1.5, cacheRead: 0.025, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null } } } };
|
|
3310
3744
|
|
|
3311
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3745
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.models.js
|
|
3312
3746
|
var GOOGLE_VERTEX_MODELS = flattenModelCatalog("google-vertex", google_vertex_default);
|
|
3313
3747
|
|
|
3314
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3748
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/groq.json
|
|
3315
3749
|
var groq_default = { "openai-completions": { "llama-3.1-8b-instant": { id: "llama-3.1-8b-instant", name: "Llama 3.1 8B", api: "openai-completions", provider: "groq", baseUrl: "https://api.groq.com/openai/v1", reasoning: false, input: ["text"], cost: { input: 0.05, output: 0.08, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 131072 }, "llama-3.3-70b-versatile": { id: "llama-3.3-70b-versatile", name: "Llama 3.3 70B", api: "openai-completions", provider: "groq", baseUrl: "https://api.groq.com/openai/v1", reasoning: false, input: ["text"], cost: { input: 0.59, output: 0.79, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 32768 }, "openai/gpt-oss-120b": { id: "openai/gpt-oss-120b", name: "GPT OSS 120B", api: "openai-completions", provider: "groq", baseUrl: "https://api.groq.com/openai/v1", reasoning: true, input: ["text"], cost: { input: 0.15, output: 0.6, cacheRead: 0.075, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 65536, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "openai/gpt-oss-20b": { id: "openai/gpt-oss-20b", name: "GPT OSS 20B", api: "openai-completions", provider: "groq", baseUrl: "https://api.groq.com/openai/v1", reasoning: true, input: ["text"], cost: { input: 0.075, output: 0.3, cacheRead: 0.0375, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 65536, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "openai/gpt-oss-safeguard-20b": { id: "openai/gpt-oss-safeguard-20b", name: "Safety GPT OSS 20B", api: "openai-completions", provider: "groq", baseUrl: "https://api.groq.com/openai/v1", reasoning: true, input: ["text"], cost: { input: 0.075, output: 0.3, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 65536, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "qwen/qwen3.6-27b": { id: "qwen/qwen3.6-27b", name: "Qwen3.6 27B", api: "openai-completions", provider: "groq", baseUrl: "https://api.groq.com/openai/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.6, output: 3, cacheRead: 0.3, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 16384, thinkingLevelMap: { off: "none", minimal: null, low: null, medium: null, high: "default", xhigh: null, max: null } } } };
|
|
3316
3750
|
|
|
3317
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3751
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/groq.models.js
|
|
3318
3752
|
var GROQ_MODELS = flattenModelCatalog("groq", groq_default);
|
|
3319
3753
|
|
|
3320
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3754
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/huggingface.json
|
|
3321
3755
|
var huggingface_default = { "openai-completions": { "MiniMaxAI/MiniMax-M2": { id: "MiniMaxAI/MiniMax-M2", name: "MiniMax-M2", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.3, output: 1.2, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 204800, maxTokens: 128e3 }, "MiniMaxAI/MiniMax-M2.1": { id: "MiniMaxAI/MiniMax-M2.1", name: "MiniMax-M2.1", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.3, output: 1.2, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 204800, maxTokens: 131072 }, "MiniMaxAI/MiniMax-M2.5": { id: "MiniMaxAI/MiniMax-M2.5", name: "MiniMax-M2.5", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.3, output: 1.2, cacheRead: 0.03, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 204800, maxTokens: 131072 }, "MiniMaxAI/MiniMax-M2.7": { id: "MiniMaxAI/MiniMax-M2.7", name: "MiniMax-M2.7", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 204800, maxTokens: 131072 }, "MiniMaxAI/MiniMax-M3": { id: "MiniMaxAI/MiniMax-M3", name: "MiniMax-M3", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 1.2, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 524288, maxTokens: 128e3 }, "Qwen/Qwen2.5-Coder-32B-Instruct": { id: "Qwen/Qwen2.5-Coder-32B-Instruct", name: "Qwen2.5-Coder-32B-Instruct", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: false, input: ["text"], cost: { input: 0.06, output: 0.2, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 131072, maxTokens: 8192 }, "Qwen/Qwen3-235B-A22B": { id: "Qwen/Qwen3-235B-A22B", name: "Qwen3 235B-A22B", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.2, output: 0.8, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 40960, maxTokens: 16384 }, "Qwen/Qwen3-235B-A22B-Instruct-2507": { id: "Qwen/Qwen3-235B-A22B-Instruct-2507", name: "Qwen3 235B-A22B Instruct 2507", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: false, input: ["text"], cost: { input: 0.855, output: 2.565, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 16384 }, "Qwen/Qwen3-235B-A22B-Thinking-2507": { id: "Qwen/Qwen3-235B-A22B-Thinking-2507", name: "Qwen3-235B-A22B-Thinking-2507", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.3, output: 3, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 131072 }, "Qwen/Qwen3-30B-A3B": { id: "Qwen/Qwen3-30B-A3B", name: "Qwen3 30B A3B", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.12, output: 0.5, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 40960, maxTokens: 16384 }, "Qwen/Qwen3-32B": { id: "Qwen/Qwen3-32B", name: "Qwen3 32B", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.29, output: 0.59, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 131072, maxTokens: 16384 }, "Qwen/Qwen3-Coder-30B-A3B-Instruct": { id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", name: "Qwen3-Coder 30B-A3B Instruct", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: false, input: ["text"], cost: { input: 0.07, output: 0.26, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 65536 }, "Qwen/Qwen3-Coder-480B-A35B-Instruct": { id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", name: "Qwen3-Coder-480B-A35B-Instruct", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: false, input: ["text"], cost: { input: 2, output: 2, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 66536 }, "Qwen/Qwen3-Coder-Next": { id: "Qwen/Qwen3-Coder-Next", name: "Qwen3-Coder-Next", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: false, input: ["text"], cost: { input: 0.2, output: 1.5, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 65536 }, "Qwen/Qwen3-Next-80B-A3B-Instruct": { id: "Qwen/Qwen3-Next-80B-A3B-Instruct", name: "Qwen3-Next-80B-A3B-Instruct", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: false, input: ["text"], cost: { input: 0.25, output: 1, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 66536 }, "Qwen/Qwen3-Next-80B-A3B-Thinking": { id: "Qwen/Qwen3-Next-80B-A3B-Thinking", name: "Qwen3-Next-80B-A3B-Thinking", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: false, input: ["text"], cost: { input: 0.3, output: 2, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 131072 }, "Qwen/Qwen3-VL-235B-A22B-Instruct": { id: "Qwen/Qwen3-VL-235B-A22B-Instruct", name: "Qwen3 VL 235B A22B Instruct", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: false, input: ["text", "image"], cost: { input: 0.3, output: 1.5, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 131072, maxTokens: 32768 }, "Qwen/Qwen3-VL-235B-A22B-Thinking": { id: "Qwen/Qwen3-VL-235B-A22B-Thinking", name: "Qwen3 VL 235B A22B Thinking", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.98, output: 3.95, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 131072, maxTokens: 32768, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "Qwen/Qwen3.5-122B-A10B": { id: "Qwen/Qwen3.5-122B-A10B", name: "Qwen3.5 122B-A10B", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.4, output: 3.2, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 65536 }, "Qwen/Qwen3.5-27B": { id: "Qwen/Qwen3.5-27B", name: "Qwen3.5 27B", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 2.4, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 65536 }, "Qwen/Qwen3.5-35B-A3B": { id: "Qwen/Qwen3.5-35B-A3B", name: "Qwen3.5 35B-A3B", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 2, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 65536 }, "Qwen/Qwen3.5-397B-A17B": { id: "Qwen/Qwen3.5-397B-A17B", name: "Qwen3.5-397B-A17B", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.6, output: 3.6, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 32768, thinkingLevelMap: { off: "none", minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "Qwen/Qwen3.5-9B": { id: "Qwen/Qwen3.5-9B", name: "Qwen3.5 9B", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.17, output: 0.25, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 65536 }, "Qwen/Qwen3.6-27B": { id: "Qwen/Qwen3.6-27B", name: "Qwen3.6 27B", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.47, output: 3.19, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 65536 }, "Qwen/Qwen3.6-35B-A3B": { id: "Qwen/Qwen3.6-35B-A3B", name: "Qwen3.6 35B-A3B", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.15, output: 0.95, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 65536 }, "Qwen/Qwen3.8-2.4T-A95B": { id: "Qwen/Qwen3.8-2.4T-A95B", name: "Qwen3.8 2.4T A95B", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 2.5, output: 6.25, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 131072, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: null, xhigh: "xhigh", max: null } }, "XiaomiMiMo/MiMo-V2-Flash": { id: "XiaomiMiMo/MiMo-V2-Flash", name: "MiMo-V2-Flash", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.1, output: 0.3, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 4096 }, "XiaomiMiMo/MiMo-V2.5": { id: "XiaomiMiMo/MiMo-V2.5", name: "MiMo-V2.5", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.4, output: 2, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 131072, thinkingLevelMap: { off: "none", minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null } }, "XiaomiMiMo/MiMo-V2.5-Pro": { id: "XiaomiMiMo/MiMo-V2.5-Pro", name: "MiMo-V2.5-Pro", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 1, output: 3, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 1048576, maxTokens: 131072, thinkingLevelMap: { off: "none", minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null } }, "deepseek-ai/DeepSeek-R1": { id: "deepseek-ai/DeepSeek-R1", name: "DeepSeek-R1", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.7, output: 2.5, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 64e3, maxTokens: 32768 }, "deepseek-ai/DeepSeek-R1-0528": { id: "deepseek-ai/DeepSeek-R1-0528", name: "DeepSeek-R1-0528", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 3, output: 5, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 163840, maxTokens: 163840 }, "deepseek-ai/DeepSeek-V3": { id: "deepseek-ai/DeepSeek-V3", name: "DeepSeek-V3", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: false, input: ["text"], cost: { input: 0.4, output: 1.3, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 64e3, maxTokens: 8192 }, "deepseek-ai/DeepSeek-V3-0324": { id: "deepseek-ai/DeepSeek-V3-0324", name: "DeepSeek V3 0324", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: false, input: ["text"], cost: { input: 0.27, output: 1.12, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 163840, maxTokens: 163840 }, "deepseek-ai/DeepSeek-V3.1": { id: "deepseek-ai/DeepSeek-V3.1", name: "DeepSeek-V3.1", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.27, output: 1, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 131072, maxTokens: 8192 }, "deepseek-ai/DeepSeek-V3.2": { id: "deepseek-ai/DeepSeek-V3.2", name: "DeepSeek-V3.2", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.28, output: 0.4, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 163840, maxTokens: 65536 }, "deepseek-ai/DeepSeek-V4-Flash": { id: "deepseek-ai/DeepSeek-V4-Flash", name: "DeepSeek V4 Flash", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.14, output: 0.28, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 1048576, maxTokens: 384e3 }, "deepseek-ai/DeepSeek-V4-Flash-0731": { id: "deepseek-ai/DeepSeek-V4-Flash-0731", name: "DeepSeek V4 Flash 0731", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.14, output: 0.28, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 1048576, maxTokens: 384e3, thinkingLevelMap: { off: null, minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" } }, "deepseek-ai/DeepSeek-V4-Pro": { id: "deepseek-ai/DeepSeek-V4-Pro", name: "DeepSeek V4 Pro", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.435, output: 0.87, cacheRead: 3625e-6, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 1048576, maxTokens: 393216, thinkingLevelMap: { off: null, minimal: null, low: null, medium: null, high: "high", xhigh: null, max: null } }, "deepseek-ai/DeepSeek-V4-Pro-0813": { id: "deepseek-ai/DeepSeek-V4-Pro-0813", name: "DeepSeek V4 Pro 0813", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 1.32, output: 3.96, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 1e6, maxTokens: 384e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: null, high: "high", xhigh: null, max: "max" } }, "google/gemma-4-26B-A4B-it": { id: "google/gemma-4-26B-A4B-it", name: "Gemma 4 26B A4B IT", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.13, output: 0.4, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 32768 }, "google/gemma-4-31B-it": { id: "google/gemma-4-31B-it", name: "Gemma 4 31B IT", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.14, output: 0.4, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 32768 }, "meta-llama/Llama-3.1-8B-Instruct": { id: "meta-llama/Llama-3.1-8B-Instruct", name: "Llama-3.1-8B-Instruct", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: false, input: ["text"], cost: { input: 0.06, output: 0.06, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 131072, maxTokens: 4096 }, "meta-llama/Llama-3.3-70B-Instruct": { id: "meta-llama/Llama-3.3-70B-Instruct", name: "Llama-3.3-70B-Instruct", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: false, input: ["text"], cost: { input: 0.59, output: 0.79, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 131072, maxTokens: 4096 }, "moonshotai/Kimi-K2-Instruct": { id: "moonshotai/Kimi-K2-Instruct", name: "Kimi-K2-Instruct", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: false, input: ["text"], cost: { input: 1, output: 3, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 131072, maxTokens: 16384 }, "moonshotai/Kimi-K2-Instruct-0905": { id: "moonshotai/Kimi-K2-Instruct-0905", name: "Kimi-K2-Instruct-0905", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: false, input: ["text"], cost: { input: 1, output: 3, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 16384 }, "moonshotai/Kimi-K2-Thinking": { id: "moonshotai/Kimi-K2-Thinking", name: "Kimi-K2-Thinking", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.6, output: 2.5, cacheRead: 0.15, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 262144 }, "moonshotai/Kimi-K2.5": { id: "moonshotai/Kimi-K2.5", name: "Kimi-K2.5", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.6, output: 3, cacheRead: 0.1, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 262144 }, "moonshotai/Kimi-K2.6": { id: "moonshotai/Kimi-K2.6", name: "Kimi-K2.6", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 262144 }, "moonshotai/Kimi-K2.7-Code": { id: "moonshotai/Kimi-K2.7-Code", name: "Kimi K2.7 Code", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 262144 }, "moonshotai/Kimi-K3": { id: "moonshotai/Kimi-K3", name: "Kimi K3", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 1e6, maxTokens: 131072, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: null, high: "high", xhigh: null, max: "max" } }, "openai/gpt-oss-120b": { id: "openai/gpt-oss-120b", name: "GPT OSS 120B", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.25, output: 0.69, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 131072, maxTokens: 32768, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "openai/gpt-oss-20b": { id: "openai/gpt-oss-20b", name: "GPT OSS 20B", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.1, output: 0.5, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 131072, maxTokens: 32768, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "stepfun-ai/Step-3.5-Flash": { id: "stepfun-ai/Step-3.5-Flash", name: "Step 3.5 Flash", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.1, output: 0.3, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 256e3 }, "stepfun-ai/Step-3.7-Flash": { id: "stepfun-ai/Step-3.7-Flash", name: "Step 3.7 Flash", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 1.15, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 256e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "tencent/Hy3": { id: "tencent/Hy3", name: "Hy3", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.14, output: 0.58, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 64e3, thinkingLevelMap: { off: "none", minimal: null, low: "low", medium: null, high: "high", xhigh: null, max: null } }, "thinkingmachines/Inkling": { id: "thinkingmachines/Inkling", name: "Inkling", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 4.05, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 1048576, maxTokens: 1048576, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "thinkingmachines/Inkling-Small": { id: "thinkingmachines/Inkling-Small", name: "Inkling Small", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.5, output: 1.2, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 524288, maxTokens: 1048576 }, "zai-org/GLM-4.5": { id: "zai-org/GLM-4.5", name: "GLM-4.5", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.6, output: 2.2, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 131072, maxTokens: 98304 }, "zai-org/GLM-4.5-Air": { id: "zai-org/GLM-4.5-Air", name: "GLM-4.5-Air", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.13, output: 0.85, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 131072, maxTokens: 98304 }, "zai-org/GLM-4.5V": { id: "zai-org/GLM-4.5V", name: "GLM-4.5V", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.6, output: 1.8, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 65536, maxTokens: 16384 }, "zai-org/GLM-4.6": { id: "zai-org/GLM-4.6", name: "GLM-4.6", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.55, output: 2.2, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 204800, maxTokens: 131072 }, "zai-org/GLM-4.6V-Flash": { id: "zai-org/GLM-4.6V-Flash", name: "GLM-4.6V-Flash", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 0.9, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 131072, maxTokens: 32768 }, "zai-org/GLM-4.7": { id: "zai-org/GLM-4.7", name: "GLM-4.7", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0.6, output: 2.2, cacheRead: 0.11, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 204800, maxTokens: 131072 }, "zai-org/GLM-4.7-Flash": { id: "zai-org/GLM-4.7-Flash", name: "GLM-4.7-Flash", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 2e5, maxTokens: 128e3 }, "zai-org/GLM-5": { id: "zai-org/GLM-5", name: "GLM-5", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 1, output: 3.2, cacheRead: 0.2, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 202752, maxTokens: 131072 }, "zai-org/GLM-5.1": { id: "zai-org/GLM-5.1", name: "GLM-5.1", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 1, output: 3.2, cacheRead: 0.2, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 202752, maxTokens: 131072 }, "zai-org/GLM-5.2": { id: "zai-org/GLM-5.2", name: "GLM-5.2", api: "openai-completions", provider: "huggingface", baseUrl: "https://router.huggingface.co/v1", reasoning: true, input: ["text"], cost: { input: 1.4, output: 4.4, cacheRead: 0, cacheWrite: 0 }, compat: { supportsDeveloperRole: false }, contextWindow: 262144, maxTokens: 131072 } } };
|
|
3322
3756
|
|
|
3323
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3757
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.models.js
|
|
3324
3758
|
var HUGGINGFACE_MODELS = flattenModelCatalog("huggingface", huggingface_default);
|
|
3325
3759
|
|
|
3326
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3760
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/kimi-coding.json
|
|
3327
3761
|
var kimi_coding_default = { "anthropic-messages": { k3: { id: "k3", name: "Kimi K3", api: "anthropic-messages", provider: "kimi-coding", baseUrl: "https://api.kimi.com/coding", compat: { allowEmptySignature: true, forceAdaptiveThinking: true }, reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: null, high: "high", xhigh: null, max: "max" } }, "k3-256k": { id: "k3-256k", name: "Kimi K3-256K", api: "anthropic-messages", provider: "kimi-coding", baseUrl: "https://api.kimi.com/coding", compat: { forceAdaptiveThinking: true }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 131072, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: null, high: "high", xhigh: null, max: "max" } }, "kimi-for-coding": { id: "kimi-for-coding", name: "Kimi K2.7 Code", api: "anthropic-messages", provider: "kimi-coding", baseUrl: "https://api.kimi.com/coding", compat: { allowEmptySignature: true, forceAdaptiveThinking: true }, reasoning: true, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 32768 }, "kimi-for-coding-highspeed": { id: "kimi-for-coding-highspeed", name: "Kimi For Coding HighSpeed", api: "anthropic-messages", provider: "kimi-coding", baseUrl: "https://api.kimi.com/coding", compat: { forceAdaptiveThinking: true }, reasoning: true, input: ["text", "image"], cost: { input: 1.9, output: 8, cacheRead: 0.38, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 32768 } } };
|
|
3328
3762
|
|
|
3329
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3763
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/kimi-coding.models.js
|
|
3330
3764
|
var KIMI_CODING_MODELS = flattenModelCatalog("kimi-coding", kimi_coding_default);
|
|
3331
3765
|
|
|
3332
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3766
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/minimax.json
|
|
3333
3767
|
var minimax_default = { "anthropic-messages": { "MiniMax-M2.7": { id: "MiniMax-M2.7", name: "MiniMax-M2.7", api: "anthropic-messages", provider: "minimax", baseUrl: "https://api.minimax.io/anthropic", reasoning: true, input: ["text"], cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0.375 }, contextWindow: 204800, maxTokens: 131072 }, "MiniMax-M2.7-highspeed": { id: "MiniMax-M2.7-highspeed", name: "MiniMax-M2.7-highspeed", api: "anthropic-messages", provider: "minimax", baseUrl: "https://api.minimax.io/anthropic", reasoning: true, input: ["text"], cost: { input: 0.6, output: 2.4, cacheRead: 0.06, cacheWrite: 0.375 }, contextWindow: 204800, maxTokens: 131072 }, "MiniMax-M3": { id: "MiniMax-M3", name: "MiniMax-M3", api: "anthropic-messages", provider: "minimax", baseUrl: "https://api.minimax.io/anthropic", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 128e3 } } };
|
|
3334
3768
|
|
|
3335
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3769
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/minimax.models.js
|
|
3336
3770
|
var MINIMAX_MODELS = flattenModelCatalog("minimax", minimax_default);
|
|
3337
3771
|
|
|
3338
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3772
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/minimax-cn.json
|
|
3339
3773
|
var minimax_cn_default = { "anthropic-messages": { "MiniMax-M2.7": { id: "MiniMax-M2.7", name: "MiniMax-M2.7", api: "anthropic-messages", provider: "minimax-cn", baseUrl: "https://api.minimaxi.com/anthropic", reasoning: true, input: ["text"], cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0.375 }, contextWindow: 204800, maxTokens: 131072 }, "MiniMax-M2.7-highspeed": { id: "MiniMax-M2.7-highspeed", name: "MiniMax-M2.7-highspeed", api: "anthropic-messages", provider: "minimax-cn", baseUrl: "https://api.minimaxi.com/anthropic", reasoning: true, input: ["text"], cost: { input: 0.6, output: 2.4, cacheRead: 0.06, cacheWrite: 0.375 }, contextWindow: 204800, maxTokens: 131072 }, "MiniMax-M3": { id: "MiniMax-M3", name: "MiniMax-M3", api: "anthropic-messages", provider: "minimax-cn", baseUrl: "https://api.minimaxi.com/anthropic", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 128e3 } } };
|
|
3340
3774
|
|
|
3341
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3775
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.models.js
|
|
3342
3776
|
var MINIMAX_CN_MODELS = flattenModelCatalog("minimax-cn", minimax_cn_default);
|
|
3343
3777
|
|
|
3344
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3778
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/mistral.json
|
|
3345
3779
|
var mistral_default = { "mistral-conversations": { "codestral-latest": { id: "codestral-latest", name: "Codestral (latest)", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: false, input: ["text"], cost: { input: 0.3, output: 0.9, cacheRead: 0.03, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 4096 }, "devstral-2512": { id: "devstral-2512", name: "Devstral 2", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: false, input: ["text"], cost: { input: 0.4, output: 2, cacheRead: 0.04, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144 }, "devstral-latest": { id: "devstral-latest", name: "Devstral 2", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: false, input: ["text"], cost: { input: 0.4, output: 2, cacheRead: 0.04, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144 }, "devstral-medium-2507": { id: "devstral-medium-2507", name: "Devstral Medium", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: false, input: ["text"], cost: { input: 0.4, output: 2, cacheRead: 0.04, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 128e3 }, "devstral-medium-latest": { id: "devstral-medium-latest", name: "Devstral 2 (latest)", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: false, input: ["text"], cost: { input: 0.4, output: 2, cacheRead: 0.04, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144 }, "devstral-small-2505": { id: "devstral-small-2505", name: "Devstral Small 2505", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: false, input: ["text"], cost: { input: 0.1, output: 0.3, cacheRead: 0.01, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 128e3 }, "devstral-small-2507": { id: "devstral-small-2507", name: "Devstral Small", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: false, input: ["text"], cost: { input: 0.1, output: 0.3, cacheRead: 0.01, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 128e3 }, "labs-devstral-small-2512": { id: "labs-devstral-small-2512", name: "Devstral Small 2", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: false, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 256e3 }, "magistral-medium-latest": { id: "magistral-medium-latest", name: "Magistral Medium (latest)", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: true, input: ["text"], cost: { input: 2, output: 5, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384 }, "magistral-small": { id: "magistral-small", name: "Magistral Small", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: true, input: ["text"], cost: { input: 0.5, output: 1.5, cacheRead: 0.05, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 128e3 }, "ministral-3b-latest": { id: "ministral-3b-latest", name: "Ministral 3B (latest)", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: false, input: ["text"], cost: { input: 0.04, output: 0.04, cacheRead: 4e-3, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 128e3 }, "ministral-8b-latest": { id: "ministral-8b-latest", name: "Ministral 8B (latest)", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: false, input: ["text"], cost: { input: 0.1, output: 0.1, cacheRead: 0.01, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 128e3 }, "mistral-large-2411": { id: "mistral-large-2411", name: "Mistral Large 2.1", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: false, input: ["text"], cost: { input: 2, output: 6, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 16384 }, "mistral-large-2512": { id: "mistral-large-2512", name: "Mistral Large 3", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: false, input: ["text", "image"], cost: { input: 0.5, output: 1.5, cacheRead: 0.05, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144 }, "mistral-large-latest": { id: "mistral-large-latest", name: "Mistral Large (latest)", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: false, input: ["text", "image"], cost: { input: 0.5, output: 1.5, cacheRead: 0.05, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144 }, "mistral-medium-2505": { id: "mistral-medium-2505", name: "Mistral Medium 3", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: false, input: ["text", "image"], cost: { input: 0.4, output: 2, cacheRead: 0.04, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 131072 }, "mistral-medium-2508": { id: "mistral-medium-2508", name: "Mistral Medium 3.1", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: false, input: ["text", "image"], cost: { input: 0.4, output: 2, cacheRead: 0.04, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144 }, "mistral-medium-2604": { id: "mistral-medium-2604", name: "Mistral Medium 3.5", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: true, input: ["text", "image"], cost: { input: 1.5, output: 7.5, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144 }, "mistral-medium-3.5": { id: "mistral-medium-3.5", name: "Mistral Medium 3.5", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: true, input: ["text", "image"], cost: { input: 1.5, output: 7.5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144 }, "mistral-medium-latest": { id: "mistral-medium-latest", name: "Mistral Medium (latest)", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: true, input: ["text", "image"], cost: { input: 1.5, output: 7.5, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144 }, "mistral-nemo": { id: "mistral-nemo", name: "Mistral Nemo", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: false, input: ["text"], cost: { input: 0.15, output: 0.15, cacheRead: 0.015, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 128e3 }, "mistral-small-2506": { id: "mistral-small-2506", name: "Mistral Small 3.2", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: false, input: ["text", "image"], cost: { input: 0.1, output: 0.3, cacheRead: 0.01, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384 }, "mistral-small-2603": { id: "mistral-small-2603", name: "Mistral Small 4", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: true, input: ["text", "image"], cost: { input: 0.15, output: 0.6, cacheRead: 0.015, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 256e3 }, "mistral-small-latest": { id: "mistral-small-latest", name: "Mistral Small (latest)", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: true, input: ["text", "image"], cost: { input: 0.15, output: 0.6, cacheRead: 0.015, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 256e3 }, "open-mistral-7b": { id: "open-mistral-7b", name: "Mistral 7B", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: false, input: ["text"], cost: { input: 0.25, output: 0.25, cacheRead: 0.025, cacheWrite: 0 }, contextWindow: 8e3, maxTokens: 8e3 }, "open-mistral-nemo": { id: "open-mistral-nemo", name: "Open Mistral Nemo", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: false, input: ["text"], cost: { input: 0.15, output: 0.15, cacheRead: 0.015, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 128e3 }, "open-mixtral-8x22b": { id: "open-mixtral-8x22b", name: "Mixtral 8x22B", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: false, input: ["text"], cost: { input: 2, output: 6, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 64e3, maxTokens: 64e3 }, "open-mixtral-8x7b": { id: "open-mixtral-8x7b", name: "Mixtral 8x7B", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: false, input: ["text"], cost: { input: 0.7, output: 0.7, cacheRead: 0.07, cacheWrite: 0 }, contextWindow: 32e3, maxTokens: 32e3 }, "pixtral-12b": { id: "pixtral-12b", name: "Pixtral 12B", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: false, input: ["text", "image"], cost: { input: 0.15, output: 0.15, cacheRead: 0.015, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 128e3 }, "pixtral-large-latest": { id: "pixtral-large-latest", name: "Pixtral Large (latest)", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: false, input: ["text", "image"], cost: { input: 2, output: 6, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 128e3 }, "voxtral-small-latest": { id: "voxtral-small-latest", name: "Voxtral Small (latest)", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", reasoning: false, input: ["text"], cost: { input: 0.1, output: 0.3, cacheRead: 0.01, cacheWrite: 0 }, contextWindow: 32e3, maxTokens: 32e3 } } };
|
|
3346
3780
|
|
|
3347
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3781
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/mistral.models.js
|
|
3348
3782
|
var MISTRAL_MODELS = flattenModelCatalog("mistral", mistral_default);
|
|
3349
3783
|
|
|
3350
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3784
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/moonshotai.json
|
|
3351
3785
|
var moonshotai_default = { "openai-completions": { "kimi-k2-0711-preview": { id: "kimi-k2-0711-preview", name: "Kimi K2 0711", api: "openai-completions", provider: "moonshotai", baseUrl: "https://api.moonshot.ai/v1", reasoning: false, input: ["text"], cost: { input: 0.6, output: 2.5, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 16384, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, thinkingFormat: "deepseek" } }, "kimi-k2-0905-preview": { id: "kimi-k2-0905-preview", name: "Kimi K2 0905", api: "openai-completions", provider: "moonshotai", baseUrl: "https://api.moonshot.ai/v1", reasoning: false, input: ["text"], cost: { input: 0.6, output: 2.5, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, thinkingFormat: "deepseek" } }, "kimi-k2-thinking": { id: "kimi-k2-thinking", name: "Kimi K2 Thinking", api: "openai-completions", provider: "moonshotai", baseUrl: "https://api.moonshot.ai/v1", reasoning: true, input: ["text"], cost: { input: 0.6, output: 2.5, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, thinkingFormat: "deepseek" } }, "kimi-k2-thinking-turbo": { id: "kimi-k2-thinking-turbo", name: "Kimi K2 Thinking Turbo", api: "openai-completions", provider: "moonshotai", baseUrl: "https://api.moonshot.ai/v1", reasoning: true, input: ["text"], cost: { input: 1.15, output: 8, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, thinkingFormat: "deepseek" } }, "kimi-k2-turbo-preview": { id: "kimi-k2-turbo-preview", name: "Kimi K2 Turbo", api: "openai-completions", provider: "moonshotai", baseUrl: "https://api.moonshot.ai/v1", reasoning: false, input: ["text"], cost: { input: 2.4, output: 10, cacheRead: 0.6, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, thinkingFormat: "deepseek" } }, "kimi-k2.5": { id: "kimi-k2.5", name: "Kimi K2.5", api: "openai-completions", provider: "moonshotai", baseUrl: "https://api.moonshot.ai/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.6, output: 3, cacheRead: 0.1, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, thinkingFormat: "deepseek" } }, "kimi-k2.6": { id: "kimi-k2.6", name: "Kimi K2.6", api: "openai-completions", provider: "moonshotai", baseUrl: "https://api.moonshot.ai/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, thinkingFormat: "deepseek" } }, "kimi-k2.7-code": { id: "kimi-k2.7-code", name: "Kimi K2.7 Code", api: "openai-completions", provider: "moonshotai", baseUrl: "https://api.moonshot.ai/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, thinkingFormat: "deepseek" }, thinkingLevelMap: { off: null } }, "kimi-k2.7-code-highspeed": { id: "kimi-k2.7-code-highspeed", name: "Kimi K2.7 Code HighSpeed", api: "openai-completions", provider: "moonshotai", baseUrl: "https://api.moonshot.ai/v1", reasoning: true, input: ["text", "image"], cost: { input: 1.9, output: 8, cacheRead: 0.38, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, thinkingFormat: "deepseek" }, thinkingLevelMap: { off: null } }, "kimi-k3": { id: "kimi-k3", name: "Kimi K3", api: "openai-completions", provider: "moonshotai", baseUrl: "https://api.moonshot.ai/v1", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: true, maxTokensField: "max_tokens", supportsStrictMode: false, thinkingFormat: "openai", requiresReasoningContentOnAssistantMessages: true, deferredToolsMode: "kimi" }, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: null, high: "high", xhigh: null, max: "max" } } } };
|
|
3352
3786
|
|
|
3353
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3787
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai.models.js
|
|
3354
3788
|
var MOONSHOTAI_MODELS = flattenModelCatalog("moonshotai", moonshotai_default);
|
|
3355
3789
|
|
|
3356
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3790
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/moonshotai-cn.json
|
|
3357
3791
|
var moonshotai_cn_default = { "openai-completions": { "kimi-k2-0711-preview": { id: "kimi-k2-0711-preview", name: "Kimi K2 0711", api: "openai-completions", provider: "moonshotai-cn", baseUrl: "https://api.moonshot.cn/v1", reasoning: false, input: ["text"], cost: { input: 0.6, output: 2.5, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 16384, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, thinkingFormat: "deepseek" } }, "kimi-k2-0905-preview": { id: "kimi-k2-0905-preview", name: "Kimi K2 0905", api: "openai-completions", provider: "moonshotai-cn", baseUrl: "https://api.moonshot.cn/v1", reasoning: false, input: ["text"], cost: { input: 0.6, output: 2.5, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, thinkingFormat: "deepseek" } }, "kimi-k2-thinking": { id: "kimi-k2-thinking", name: "Kimi K2 Thinking", api: "openai-completions", provider: "moonshotai-cn", baseUrl: "https://api.moonshot.cn/v1", reasoning: true, input: ["text"], cost: { input: 0.6, output: 2.5, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, thinkingFormat: "deepseek" } }, "kimi-k2-thinking-turbo": { id: "kimi-k2-thinking-turbo", name: "Kimi K2 Thinking Turbo", api: "openai-completions", provider: "moonshotai-cn", baseUrl: "https://api.moonshot.cn/v1", reasoning: true, input: ["text"], cost: { input: 1.15, output: 8, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, thinkingFormat: "deepseek" } }, "kimi-k2-turbo-preview": { id: "kimi-k2-turbo-preview", name: "Kimi K2 Turbo", api: "openai-completions", provider: "moonshotai-cn", baseUrl: "https://api.moonshot.cn/v1", reasoning: false, input: ["text"], cost: { input: 2.4, output: 10, cacheRead: 0.6, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, thinkingFormat: "deepseek" } }, "kimi-k2.5": { id: "kimi-k2.5", name: "Kimi K2.5", api: "openai-completions", provider: "moonshotai-cn", baseUrl: "https://api.moonshot.cn/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.6, output: 3, cacheRead: 0.1, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, thinkingFormat: "deepseek" } }, "kimi-k2.6": { id: "kimi-k2.6", name: "Kimi K2.6", api: "openai-completions", provider: "moonshotai-cn", baseUrl: "https://api.moonshot.cn/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, thinkingFormat: "deepseek" } }, "kimi-k2.7-code": { id: "kimi-k2.7-code", name: "Kimi K2.7 Code", api: "openai-completions", provider: "moonshotai-cn", baseUrl: "https://api.moonshot.cn/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, thinkingFormat: "deepseek" }, thinkingLevelMap: { off: null } }, "kimi-k2.7-code-highspeed": { id: "kimi-k2.7-code-highspeed", name: "Kimi K2.7 Code HighSpeed", api: "openai-completions", provider: "moonshotai-cn", baseUrl: "https://api.moonshot.cn/v1", reasoning: true, input: ["text", "image"], cost: { input: 1.9, output: 8, cacheRead: 0.38, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, thinkingFormat: "deepseek" }, thinkingLevelMap: { off: null } }, "kimi-k3": { id: "kimi-k3", name: "Kimi K3", api: "openai-completions", provider: "moonshotai-cn", baseUrl: "https://api.moonshot.cn/v1", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: true, maxTokensField: "max_tokens", supportsStrictMode: false, thinkingFormat: "openai", requiresReasoningContentOnAssistantMessages: true, deferredToolsMode: "kimi" }, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: null, high: "high", xhigh: null, max: "max" } } } };
|
|
3358
3792
|
|
|
3359
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3793
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/moonshotai-cn.models.js
|
|
3360
3794
|
var MOONSHOTAI_CN_MODELS = flattenModelCatalog("moonshotai-cn", moonshotai_cn_default);
|
|
3361
3795
|
|
|
3362
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3796
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/nvidia.json
|
|
3363
3797
|
var nvidia_default = { "openai-completions": { "deepseek-ai/deepseek-v4-flash-0731": { id: "deepseek-ai/deepseek-v4-flash-0731", name: "DeepSeek V4 Flash 0731", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false, requiresReasoningContentOnAssistantMessages: true, thinkingFormat: "deepseek" }, contextWindow: 1e6, maxTokens: 384e3, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", max: "max" } }, "google/gemma-3-12b-it": { id: "google/gemma-3-12b-it", name: "Gemma 3 12B IT", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: false, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 131072, maxTokens: 16384 }, "google/gemma-3-4b-it": { id: "google/gemma-3-4b-it", name: "Gemma 3 4B IT", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: false, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 131072, maxTokens: 16384 }, "meta/llama-3.1-70b-instruct": { id: "meta/llama-3.1-70b-instruct", name: "Llama 3.1 70b Instruct", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: false, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 128e3, maxTokens: 4096 }, "meta/llama-3.1-8b-instruct": { id: "meta/llama-3.1-8b-instruct", name: "Llama 3.1 8B Instruct", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: false, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 16e3, maxTokens: 4096 }, "meta/llama-3.2-11b-vision-instruct": { id: "meta/llama-3.2-11b-vision-instruct", name: "Llama 3.2 11b Vision Instruct", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: false, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 128e3, maxTokens: 4096 }, "meta/llama-3.2-90b-vision-instruct": { id: "meta/llama-3.2-90b-vision-instruct", name: "Llama-3.2-90B-Vision-Instruct", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: false, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 128e3, maxTokens: 8192 }, "meta/llama-3.3-70b-instruct": { id: "meta/llama-3.3-70b-instruct", name: "Llama 3.3 70b Instruct", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: false, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 128e3, maxTokens: 4096 }, "meta/muse-glimmer-30b": { id: "meta/muse-glimmer-30b", name: "Muse Glimmer 30B", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 131072, maxTokens: 131072 }, "minimaxai/minimax-m3": { id: "minimaxai/minimax-m3", name: "MiniMax-M3", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 1e6, maxTokens: 16384 }, "mistralai/mistral-7b-instruct-v0.3": { id: "mistralai/mistral-7b-instruct-v0.3", name: "Mistral-7B-Instruct-v0.3", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: false, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 65536, maxTokens: 65536 }, "moonshotai/kimi-k2.6": { id: "moonshotai/kimi-k2.6", name: "Kimi K2.6", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 262144, maxTokens: 262144 }, "moonshotai/kimi-k3": { id: "moonshotai/kimi-k3", name: "Kimi K3", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 1048576, maxTokens: 131072 }, "nvidia/cosmos-reason2-8b": { id: "nvidia/cosmos-reason2-8b", name: "Cosmos Reason2 8B", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 131072, maxTokens: 16384 }, "nvidia/llama-3.1-nemotron-70b-instruct": { id: "nvidia/llama-3.1-nemotron-70b-instruct", name: "Llama 3.1 Nemotron 70B Instruct", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: false, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 128e3, maxTokens: 8192 }, "nvidia/llama-3.1-nemotron-nano-8b-v1": { id: "nvidia/llama-3.1-nemotron-nano-8b-v1", name: "Llama 3.1 Nemotron Nano 8B v1", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 131072, maxTokens: 16384 }, "nvidia/llama-3.1-nemotron-nano-vl-8b-v1": { id: "nvidia/llama-3.1-nemotron-nano-vl-8b-v1", name: "Llama 3.1 Nemotron Nano VL 8B v1", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 32768, maxTokens: 16384 }, "nvidia/llama-3.1-nemotron-ultra-253b-v1": { id: "nvidia/llama-3.1-nemotron-ultra-253b-v1", name: "Llama 3.1 Nemotron Ultra 253B", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 128e3, maxTokens: 16384 }, "nvidia/llama-3.3-nemotron-super-49b-v1": { id: "nvidia/llama-3.3-nemotron-super-49b-v1", name: "Llama 3.3 Nemotron Super 49B v1", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 131072, maxTokens: 65536 }, "nvidia/llama-3.3-nemotron-super-49b-v1.5": { id: "nvidia/llama-3.3-nemotron-super-49b-v1.5", name: "Llama 3.3 Nemotron Super 49B v1.5", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 131072, maxTokens: 65536 }, "nvidia/nemotron-3-nano-30b-a3b": { id: "nvidia/nemotron-3-nano-30b-a3b", name: "nemotron-3-nano-30b-a3b", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 131072, maxTokens: 131072 }, "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning": { id: "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning", name: "Nemotron 3 Nano Omni", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 256e3, maxTokens: 65536 }, "nvidia/nemotron-3-super-120b-a12b": { id: "nvidia/nemotron-3-super-120b-a12b", name: "Nemotron 3 Super", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: true, input: ["text"], cost: { input: 0.2, output: 0.8, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 262144, maxTokens: 262144 }, "nvidia/nemotron-3-ultra-550b-a55b": { id: "nvidia/nemotron-3-ultra-550b-a55b", name: "Nemotron 3 Ultra 550B A55B", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: true, input: ["text"], cost: { input: 0.5, output: 2.5, cacheRead: 0.15, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 1e6, maxTokens: 65536 }, "nvidia/nemotron-3.5-lightning-30b-a3b": { id: "nvidia/nemotron-3.5-lightning-30b-a3b", name: "Nemotron 3.5 Lightning 30B A3B", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 262144, maxTokens: 262144 }, "nvidia/nemotron-nano-12b-v2-vl": { id: "nvidia/nemotron-nano-12b-v2-vl", name: "Nemotron Nano 12B v2 VL", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 128e3, maxTokens: 128e3 }, "nvidia/nvidia-nemotron-nano-9b-v2": { id: "nvidia/nvidia-nemotron-nano-9b-v2", name: "nvidia-nemotron-nano-9b-v2", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 131072, maxTokens: 131072 }, "openai/gpt-oss-120b": { id: "openai/gpt-oss-120b", name: "GPT-OSS-120B", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 128e3, maxTokens: 8192 }, "openai/gpt-oss-20b": { id: "openai/gpt-oss-20b", name: "GPT OSS 20B", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 131072, maxTokens: 32768 }, "poolside/laguna-xs-2.1": { id: "poolside/laguna-xs-2.1", name: "Laguna XS 2.1", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 262144, maxTokens: 16384 }, "stepfun-ai/step-3.7-flash": { id: "stepfun-ai/step-3.7-flash", name: "Step 3.7 Flash", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 256e3, maxTokens: 16384 }, "thinkingmachines/inkling": { id: "thinkingmachines/inkling", name: "Inkling", api: "openai-completions", provider: "nvidia", baseUrl: "https://integrate.api.nvidia.com/v1", headers: { "NVCF-POLL-SECONDS": "3600" }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 1048576, maxTokens: 16384 } } };
|
|
3364
3798
|
|
|
3365
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3799
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.js
|
|
3366
3800
|
var NVIDIA_MODELS = flattenModelCatalog("nvidia", nvidia_default);
|
|
3367
3801
|
|
|
3368
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3802
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/openai.json
|
|
3369
3803
|
var openai_default = { "openai-responses": { "gpt-4": { id: "gpt-4", name: "GPT-4", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: false, input: ["text"], cost: { input: 30, output: 60, cacheRead: 0, cacheWrite: 0 }, contextWindow: 8192, maxTokens: 8192, compat: { supportsStrictMode: true } }, "gpt-4-turbo": { id: "gpt-4-turbo", name: "GPT-4 Turbo", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: false, input: ["text", "image"], cost: { input: 10, output: 30, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4096, compat: { supportsStrictMode: true } }, "gpt-4.1": { id: "gpt-4.1", name: "GPT-4.1", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: false, input: ["text", "image"], cost: { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 }, contextWindow: 1047576, maxTokens: 32768, compat: { supportsStrictMode: true } }, "gpt-4.1-mini": { id: "gpt-4.1-mini", name: "GPT-4.1 mini", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: false, input: ["text", "image"], cost: { input: 0.4, output: 1.6, cacheRead: 0.1, cacheWrite: 0 }, contextWindow: 1047576, maxTokens: 32768, compat: { supportsStrictMode: true } }, "gpt-4.1-nano": { id: "gpt-4.1-nano", name: "GPT-4.1 nano", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: false, input: ["text", "image"], cost: { input: 0.1, output: 0.4, cacheRead: 0.025, cacheWrite: 0 }, contextWindow: 1047576, maxTokens: 32768, compat: { supportsStrictMode: true } }, "gpt-4o": { id: "gpt-4o", name: "GPT-4o", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: false, input: ["text", "image"], cost: { input: 2.5, output: 10, cacheRead: 1.25, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { supportsStrictMode: true } }, "gpt-4o-2024-05-13": { id: "gpt-4o-2024-05-13", name: "GPT-4o (2024-05-13)", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: false, input: ["text", "image"], cost: { input: 5, output: 15, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4096, compat: { supportsStrictMode: true } }, "gpt-4o-2024-08-06": { id: "gpt-4o-2024-08-06", name: "GPT-4o (2024-08-06)", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: false, input: ["text", "image"], cost: { input: 2.5, output: 10, cacheRead: 1.25, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { supportsStrictMode: true } }, "gpt-4o-2024-11-20": { id: "gpt-4o-2024-11-20", name: "GPT-4o (2024-11-20)", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: false, input: ["text", "image"], cost: { input: 2.5, output: 10, cacheRead: 1.25, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { supportsStrictMode: true } }, "gpt-4o-mini": { id: "gpt-4o-mini", name: "GPT-4o mini", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: false, input: ["text", "image"], cost: { input: 0.15, output: 0.6, cacheRead: 0.075, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { supportsStrictMode: true } }, "gpt-5": { id: "gpt-5", name: "GPT-5", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: "minimal", low: "low", medium: "medium", high: "high", xhigh: null, max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5-chat-latest": { id: "gpt-5-chat-latest", name: "GPT-5 Chat Latest", api: "openai-responses", baseUrl: "https://api.openai.com/v1", provider: "openai", reasoning: false, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, thinkingLevelMap: { off: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5-mini": { id: "gpt-5-mini", name: "GPT-5 Mini", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 2, cacheRead: 0.025, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: "minimal", low: "low", medium: "medium", high: "high", xhigh: null, max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5-nano": { id: "gpt-5-nano", name: "GPT-5 Nano", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.05, output: 0.4, cacheRead: 5e-3, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: "minimal", low: "low", medium: "medium", high: "high", xhigh: null, max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5-pro": { id: "gpt-5-pro", name: "GPT-5 Pro", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 15, output: 120, cacheRead: 0, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: null, medium: null, high: "high", xhigh: null, max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.1": { id: "gpt-5.1", name: "GPT-5.1", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: "none", minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.2": { id: "gpt-5.2", name: "GPT-5.2", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: "none", minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.2-chat-latest": { id: "gpt-5.2-chat-latest", name: "GPT-5.2 Chat", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, thinkingLevelMap: { off: null, minimal: null, low: null, medium: "medium", high: null, xhigh: "xhigh", max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.2-pro": { id: "gpt-5.2-pro", name: "GPT-5.2 Pro", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 21, output: 168, cacheRead: 0, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: null, medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.3-chat-latest": { id: "gpt-5.3-chat-latest", name: "GPT-5.3 Chat (latest)", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: false, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, thinkingLevelMap: { off: null, xhigh: "xhigh" }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.3-codex": { id: "gpt-5.3-codex", name: "GPT-5.3 Codex", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: "none", minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.3-codex-spark": { id: "gpt-5.3-codex-spark", name: "GPT-5.3 Codex Spark", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 32e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.4": { id: "gpt-5.4", name: "GPT-5.4", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 2.5, output: 15, cacheRead: 0.25, cacheWrite: 0, tiers: [{ inputTokensAbove: 272e3, input: 5, output: 22.5, cacheRead: 0.5, cacheWrite: 0 }] }, contextWindow: 272e3, maxTokens: 128e3, thinkingLevelMap: { off: "none", minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true, supportsAdditionalTools: true, supportsToolSearch: true } }, "gpt-5.4-mini": { id: "gpt-5.4-mini", name: "GPT-5.4 mini", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.75, output: 4.5, cacheRead: 0.075, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: "none", minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true, supportsAdditionalTools: true, supportsToolSearch: true } }, "gpt-5.4-nano": { id: "gpt-5.4-nano", name: "GPT-5.4 nano", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 1.25, cacheRead: 0.02, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: "none", minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.4-pro": { id: "gpt-5.4-pro", name: "GPT-5.4 Pro", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 30, output: 180, cacheRead: 0, cacheWrite: 0, tiers: [{ inputTokensAbove: 272e3, input: 60, output: 270, cacheRead: 0, cacheWrite: 0 }] }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: null, medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true, supportsAdditionalTools: true, supportsToolSearch: true } }, "gpt-5.5": { id: "gpt-5.5", name: "GPT-5.5", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 0, tiers: [{ inputTokensAbove: 272e3, input: 10, output: 45, cacheRead: 1, cacheWrite: 0 }] }, contextWindow: 272e3, maxTokens: 128e3, thinkingLevelMap: { off: "none", minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true, supportsAdditionalTools: true, supportsToolSearch: true } }, "gpt-5.5-pro": { id: "gpt-5.5-pro", name: "GPT-5.5 Pro", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 30, output: 180, cacheRead: 0, cacheWrite: 0, tiers: [{ inputTokensAbove: 272e3, input: 60, output: 270, cacheRead: 0, cacheWrite: 0 }] }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: null, medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true } }, "gpt-5.6-luna": { id: "gpt-5.6-luna", name: "GPT-5.6 Luna", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 1.2, cacheRead: 0.02, cacheWrite: 0.25, tiers: [{ inputTokensAbove: 272e3, input: 0.4, output: 1.8, cacheRead: 0.04, cacheWrite: 0.5 }] }, contextWindow: 272e3, maxTokens: 128e3, thinkingLevelMap: { off: "none", minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true, supportsAdditionalTools: true, supportsToolSearch: true, supportsExplicitPromptCacheMode: true } }, "gpt-5.6-sol": { id: "gpt-5.6-sol", name: "GPT-5.6 Sol", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 6.25, tiers: [{ inputTokensAbove: 272e3, input: 10, output: 45, cacheRead: 1, cacheWrite: 12.5 }] }, contextWindow: 272e3, maxTokens: 128e3, thinkingLevelMap: { off: "none", minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true, supportsAdditionalTools: true, supportsToolSearch: true, supportsExplicitPromptCacheMode: true } }, "gpt-5.6-terra": { id: "gpt-5.6-terra", name: "GPT-5.6 Terra", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 2.5, tiers: [{ inputTokensAbove: 272e3, input: 4, output: 18, cacheRead: 0.4, cacheWrite: 5 }] }, contextWindow: 272e3, maxTokens: 128e3, thinkingLevelMap: { off: "none", minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" }, compat: { supportsStrictMode: true, supportsOpenAIGrammarTools: true, supportsAdditionalTools: true, supportsToolSearch: true, supportsExplicitPromptCacheMode: true } }, "gpt-realtime-2.1": { id: "gpt-realtime-2.1", name: "GPT-Realtime-2.1", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 4, output: 24, cacheRead: 0.4, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 32e3, thinkingLevelMap: { off: null, minimal: "minimal", low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null }, compat: { supportsStrictMode: true } }, o1: { id: "o1", name: "o1", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 15, output: 60, cacheRead: 7.5, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null }, compat: { supportsStrictMode: true } }, "o1-pro": { id: "o1-pro", name: "o1-pro", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 150, output: 600, cacheRead: 0, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null }, compat: { supportsStrictMode: true } }, o3: { id: "o3", name: "o3", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null }, compat: { supportsStrictMode: true } }, "o3-mini": { id: "o3-mini", name: "o3-mini", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text"], cost: { input: 1.1, output: 4.4, cacheRead: 0.55, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null }, compat: { supportsStrictMode: true } }, "o3-pro": { id: "o3-pro", name: "o3-pro", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 20, output: 80, cacheRead: 0, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null }, compat: { supportsStrictMode: true } }, "o4-mini": { id: "o4-mini", name: "o4-mini", api: "openai-responses", provider: "openai", baseUrl: "https://api.openai.com/v1", reasoning: true, input: ["text", "image"], cost: { input: 1.1, output: 4.4, cacheRead: 0.275, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null }, compat: { supportsStrictMode: true } } } };
|
|
3370
3804
|
|
|
3371
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3805
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/openai.models.js
|
|
3372
3806
|
var OPENAI_MODELS = flattenModelCatalog("openai", openai_default);
|
|
3373
3807
|
|
|
3374
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3808
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/openai-codex.json
|
|
3375
3809
|
var openai_codex_default = { "openai-codex-responses": { "gpt-5.3-codex-spark": { id: "gpt-5.3-codex-spark", name: "GPT-5.3 Codex Spark", api: "openai-codex-responses", provider: "openai-codex", baseUrl: "https://chatgpt.com/backend-api", reasoning: true, input: ["text"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", minimal: "low" }, compat: { supportsOpenAIGrammarTools: true } }, "gpt-5.4": { id: "gpt-5.4", name: "GPT-5.4", api: "openai-codex-responses", provider: "openai-codex", baseUrl: "https://chatgpt.com/backend-api", reasoning: true, input: ["text", "image"], cost: { input: 2.5, output: 15, cacheRead: 0.25, cacheWrite: 0, tiers: [{ inputTokensAbove: 272e3, input: 5, output: 22.5, cacheRead: 0.5, cacheWrite: 0 }] }, contextWindow: 272e3, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", minimal: "low" }, compat: { supportsOpenAIGrammarTools: true, supportsToolSearch: true } }, "gpt-5.4-mini": { id: "gpt-5.4-mini", name: "GPT-5.4 mini", api: "openai-codex-responses", provider: "openai-codex", baseUrl: "https://chatgpt.com/backend-api", reasoning: true, input: ["text", "image"], cost: { input: 0.75, output: 4.5, cacheRead: 0.075, cacheWrite: 0 }, contextWindow: 272e3, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", minimal: "low" }, compat: { supportsOpenAIGrammarTools: true, supportsToolSearch: true } }, "gpt-5.5": { id: "gpt-5.5", name: "GPT-5.5", api: "openai-codex-responses", provider: "openai-codex", baseUrl: "https://chatgpt.com/backend-api", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 0, tiers: [{ inputTokensAbove: 272e3, input: 10, output: 45, cacheRead: 1, cacheWrite: 0 }] }, contextWindow: 272e3, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", minimal: "low" }, compat: { supportsOpenAIGrammarTools: true, supportsToolSearch: true } }, "gpt-5.6-luna": { id: "gpt-5.6-luna", name: "GPT-5.6 Luna", api: "openai-codex-responses", provider: "openai-codex", baseUrl: "https://chatgpt.com/backend-api", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 1.2, cacheRead: 0.02, cacheWrite: 0.25, tiers: [{ inputTokensAbove: 272e3, input: 0.4, output: 1.8, cacheRead: 0.04, cacheWrite: 0.5 }] }, contextWindow: 272e3, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max", minimal: "low" }, compat: { supportsOpenAIGrammarTools: true, supportsAdditionalTools: true, supportsToolSearch: true } }, "gpt-5.6-sol": { id: "gpt-5.6-sol", name: "GPT-5.6 Sol", api: "openai-codex-responses", provider: "openai-codex", baseUrl: "https://chatgpt.com/backend-api", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 6.25, tiers: [{ inputTokensAbove: 272e3, input: 10, output: 45, cacheRead: 1, cacheWrite: 12.5 }] }, contextWindow: 272e3, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max", minimal: "low" }, compat: { supportsOpenAIGrammarTools: true, supportsAdditionalTools: true, supportsToolSearch: true } }, "gpt-5.6-terra": { id: "gpt-5.6-terra", name: "GPT-5.6 Terra", api: "openai-codex-responses", provider: "openai-codex", baseUrl: "https://chatgpt.com/backend-api", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 2.5, tiers: [{ inputTokensAbove: 272e3, input: 4, output: 18, cacheRead: 0.4, cacheWrite: 5 }] }, contextWindow: 272e3, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max", minimal: "low" }, compat: { supportsOpenAIGrammarTools: true, supportsAdditionalTools: true, supportsToolSearch: true } } } };
|
|
3376
3810
|
|
|
3377
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3811
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex.models.js
|
|
3378
3812
|
var OPENAI_CODEX_MODELS = flattenModelCatalog("openai-codex", openai_codex_default);
|
|
3379
3813
|
|
|
3380
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3814
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode.json
|
|
3381
3815
|
var opencode_default = { "anthropic-messages": { "claude-fable-5": { id: "claude-fable-5", name: "Claude Fable 5", api: "anthropic-messages", provider: "opencode", baseUrl: "https://opencode.ai/zen", reasoning: true, input: ["text", "image"], cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { off: null, xhigh: "xhigh", max: "max" }, compat: { forceAdaptiveThinking: true } }, "claude-haiku-4-5": { id: "claude-haiku-4-5", name: "Claude Haiku 4.5", api: "anthropic-messages", provider: "opencode", baseUrl: "https://opencode.ai/zen", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, contextWindow: 2e5, maxTokens: 64e3 }, "claude-opus-4-5": { id: "claude-opus-4-5", name: "Claude Opus 4.5", api: "anthropic-messages", provider: "opencode", baseUrl: "https://opencode.ai/zen", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 2e5, maxTokens: 64e3 }, "claude-opus-4-6": { id: "claude-opus-4-6", name: "Claude Opus 4.6", api: "anthropic-messages", provider: "opencode", baseUrl: "https://opencode.ai/zen", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { max: "max" }, compat: { forceAdaptiveThinking: true } }, "claude-opus-4-7": { id: "claude-opus-4-7", name: "Claude Opus 4.7", api: "anthropic-messages", provider: "opencode", baseUrl: "https://opencode.ai/zen", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" }, compat: { forceAdaptiveThinking: true, supportsTemperature: false } }, "claude-opus-4-8": { id: "claude-opus-4-8", name: "Claude Opus 4.8", api: "anthropic-messages", provider: "opencode", baseUrl: "https://opencode.ai/zen", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" }, compat: { forceAdaptiveThinking: true, supportsTemperature: false } }, "claude-opus-5": { id: "claude-opus-5", name: "Claude Opus 5", api: "anthropic-messages", provider: "opencode", baseUrl: "https://opencode.ai/zen", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" }, compat: { forceAdaptiveThinking: true, supportsTemperature: false } }, "claude-sonnet-4": { id: "claude-sonnet-4", name: "Claude Sonnet 4", api: "anthropic-messages", provider: "opencode", baseUrl: "https://opencode.ai/zen", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 2e5, maxTokens: 64e3 }, "claude-sonnet-4-5": { id: "claude-sonnet-4-5", name: "Claude Sonnet 4.5", api: "anthropic-messages", provider: "opencode", baseUrl: "https://opencode.ai/zen", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 2e5, maxTokens: 64e3 }, "claude-sonnet-4-6": { id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6", api: "anthropic-messages", provider: "opencode", baseUrl: "https://opencode.ai/zen", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 1e6, maxTokens: 64e3, thinkingLevelMap: { max: "max" }, compat: { forceAdaptiveThinking: true } }, "claude-sonnet-5": { id: "claude-sonnet-5", name: "Claude Sonnet 5", api: "anthropic-messages", provider: "opencode", baseUrl: "https://opencode.ai/zen", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" }, compat: { forceAdaptiveThinking: true } }, "qwen3.5-plus": { id: "qwen3.5-plus", name: "Qwen3.5 Plus", api: "anthropic-messages", provider: "opencode", baseUrl: "https://opencode.ai/zen", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 1.2, cacheRead: 0.02, cacheWrite: 0.25 }, contextWindow: 262144, maxTokens: 65536 }, "qwen3.6-plus": { id: "qwen3.6-plus", name: "Qwen3.6 Plus", api: "anthropic-messages", provider: "opencode", baseUrl: "https://opencode.ai/zen", reasoning: true, input: ["text", "image"], cost: { input: 0.5, output: 3, cacheRead: 0.05, cacheWrite: 0.625 }, contextWindow: 262144, maxTokens: 65536 } }, "google-generative-ai": { "gemini-3-flash": { id: "gemini-3-flash", name: "Gemini 3 Flash", api: "google-generative-ai", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.5, output: 3, cacheRead: 0.05, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null } }, "gemini-3.1-pro": { id: "gemini-3.1-pro", name: "Gemini 3.1 Pro Preview", api: "google-generative-ai", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null, minimal: null, low: "LOW", medium: null, high: "HIGH" } }, "gemini-3.5-flash": { id: "gemini-3.5-flash", name: "Gemini 3.5 Flash", api: "google-generative-ai", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 1.5, output: 9, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null } }, "gemini-3.5-flash-lite": { id: "gemini-3.5-flash-lite", name: "Gemini 3.5 Flash Lite", api: "google-generative-ai", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 2.5, cacheRead: 0.03, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null } }, "gemini-3.6-flash": { id: "gemini-3.6-flash", name: "Gemini 3.6 Flash", api: "google-generative-ai", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 1.5, output: 7.5, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null } }, "gemini-3.7-flash": { id: "gemini-3.7-flash", name: "Gemini 3.7 Flash", api: "google-generative-ai", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 1.5, output: 7.5, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, thinkingLevelMap: { off: null } } }, "openai-completions": { "big-pickle": { id: "big-pickle", name: "Big Pickle", api: "openai-completions", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 2e5, maxTokens: 32e3 }, "deepseek-v4-flash": { id: "deepseek-v4-flash", name: "DeepSeek V4 Flash", api: "openai-completions", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text"], cost: { input: 0.14, output: 0.28, cacheRead: 0.028, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens", supportsLongCacheRetention: false, requiresReasoningContentOnAssistantMessages: true }, contextWindow: 1e6, maxTokens: 384e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: null, high: "high", xhigh: null, max: "max" } }, "deepseek-v4-pro": { id: "deepseek-v4-pro", name: "DeepSeek V4 Pro", api: "openai-completions", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text"], cost: { input: 1.74, output: 3.84, cacheRead: 0.145, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens", supportsLongCacheRetention: false, requiresReasoningContentOnAssistantMessages: true }, contextWindow: 1e6, maxTokens: 384e3, thinkingLevelMap: { off: null, minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" } }, "glm-5": { id: "glm-5", name: "GLM-5", api: "openai-completions", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text"], cost: { input: 1, output: 3.2, cacheRead: 0.2, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 204800, maxTokens: 131072 }, "glm-5.1": { id: "glm-5.1", name: "GLM-5.1", api: "openai-completions", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text"], cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 204800, maxTokens: 131072 }, "glm-5.2": { id: "glm-5.2", name: "GLM-5.2", api: "openai-completions", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text"], cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 1e6, maxTokens: 131072, thinkingLevelMap: { off: null, minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" } }, "hy3-free": { id: "hy3-free", name: "Hy3 Free", api: "openai-completions", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 19e4, maxTokens: 64e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "kimi-k2.5": { id: "kimi-k2.5", name: "Kimi K2.5", api: "openai-completions", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.6, output: 3, cacheRead: 0.08, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens", supportsLongCacheRetention: false }, contextWindow: 262144, maxTokens: 65536 }, "kimi-k2.6": { id: "kimi-k2.6", name: "Kimi K2.6", api: "openai-completions", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, thinkingFormat: "deepseek", supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsLongCacheRetention: false }, contextWindow: 262144, maxTokens: 65536 }, "kimi-k2.7-code": { id: "kimi-k2.7-code", name: "Kimi K2.7 Code", api: "openai-completions", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 262144, maxTokens: 262144 }, "kimi-k3": { id: "kimi-k3", name: "Kimi K3", api: "openai-completions", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 1048576, maxTokens: 131072, thinkingLevelMap: { off: null, minimal: null, low: null, medium: null, high: null, xhigh: null, max: "max" } }, "mimo-v2.5-free": { id: "mimo-v2.5-free", name: "MiMo V2.5 Free", api: "openai-completions", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 2e5, maxTokens: 32e3 }, "minimax-m2.5": { id: "minimax-m2.5", name: "MiniMax-M2.5", api: "openai-completions", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text"], cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 204800, maxTokens: 131072 }, "minimax-m2.7": { id: "minimax-m2.7", name: "MiniMax-M2.7", api: "openai-completions", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text"], cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens", supportsLongCacheRetention: false }, contextWindow: 204800, maxTokens: 131072 }, "minimax-m3": { id: "minimax-m3", name: "MiniMax-M3", api: "openai-completions", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 512e3, maxTokens: 128e3 }, "nemotron-3-ultra-free": { id: "nemotron-3-ultra-free", name: "Nemotron 3 Ultra Free", api: "openai-completions", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 1e6, maxTokens: 128e3 }, "nemotron-3.5-lightning-free": { id: "nemotron-3.5-lightning-free", name: "Nemotron 3.5 Lightning Free", api: "openai-completions", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 262144, maxTokens: 262144 }, "x-preview-f-free": { id: "x-preview-f-free", name: "Ox Alpha Free (Unlimited)", api: "openai-completions", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 1e6, maxTokens: 131072, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: null, high: "high", xhigh: null, max: "max" } } }, "openai-responses": { "gpt-5": { id: "gpt-5", name: "GPT-5", api: "openai-responses", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 1.07, output: 8.5, cacheRead: 0.107, cacheWrite: 0 }, compat: { sessionAffinityFormat: "openai-nosession", supportsOpenAIGrammarTools: true }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: "minimal", low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "gpt-5-codex": { id: "gpt-5-codex", name: "GPT-5 Codex", api: "openai-responses", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 1.07, output: 8.5, cacheRead: 0.107, cacheWrite: 0 }, compat: { sessionAffinityFormat: "openai-nosession", supportsOpenAIGrammarTools: true }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "gpt-5-nano": { id: "gpt-5-nano", name: "GPT-5 Nano", api: "openai-responses", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.05, output: 0.4, cacheRead: 5e-3, cacheWrite: 0 }, compat: { sessionAffinityFormat: "openai-nosession", supportsOpenAIGrammarTools: true }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: "minimal", low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "gpt-5.1": { id: "gpt-5.1", name: "GPT-5.1", api: "openai-responses", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 1.07, output: 8.5, cacheRead: 0.107, cacheWrite: 0 }, compat: { sessionAffinityFormat: "openai-nosession", supportsOpenAIGrammarTools: true }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "gpt-5.1-codex": { id: "gpt-5.1-codex", name: "GPT-5.1 Codex", api: "openai-responses", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 1.07, output: 8.5, cacheRead: 0.107, cacheWrite: 0 }, compat: { sessionAffinityFormat: "openai-nosession", supportsOpenAIGrammarTools: true }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "gpt-5.1-codex-max": { id: "gpt-5.1-codex-max", name: "GPT-5.1 Codex Max", api: "openai-responses", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, compat: { sessionAffinityFormat: "openai-nosession", supportsOpenAIGrammarTools: true }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null } }, "gpt-5.1-codex-mini": { id: "gpt-5.1-codex-mini", name: "GPT-5.1 Codex Mini", api: "openai-responses", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 2, cacheRead: 0.025, cacheWrite: 0 }, compat: { sessionAffinityFormat: "openai-nosession", supportsOpenAIGrammarTools: true }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "gpt-5.2": { id: "gpt-5.2", name: "GPT-5.2", api: "openai-responses", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, compat: { sessionAffinityFormat: "openai-nosession", supportsOpenAIGrammarTools: true }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null } }, "gpt-5.2-codex": { id: "gpt-5.2-codex", name: "GPT-5.2 Codex", api: "openai-responses", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, compat: { sessionAffinityFormat: "openai-nosession", supportsOpenAIGrammarTools: true }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null } }, "gpt-5.3-codex": { id: "gpt-5.3-codex", name: "GPT-5.3 Codex", api: "openai-responses", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, compat: { sessionAffinityFormat: "openai-nosession", supportsOpenAIGrammarTools: true }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null } }, "gpt-5.4": { id: "gpt-5.4", name: "GPT-5.4", api: "openai-responses", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 2.5, output: 15, cacheRead: 0.25, cacheWrite: 0 }, compat: { sessionAffinityFormat: "openai-nosession", supportsOpenAIGrammarTools: true }, contextWindow: 272e3, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null } }, "gpt-5.4-mini": { id: "gpt-5.4-mini", name: "GPT-5.4 Mini", api: "openai-responses", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.75, output: 4.5, cacheRead: 0.075, cacheWrite: 0 }, compat: { sessionAffinityFormat: "openai-nosession", supportsOpenAIGrammarTools: true }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null } }, "gpt-5.4-nano": { id: "gpt-5.4-nano", name: "GPT-5.4 Nano", api: "openai-responses", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 1.25, cacheRead: 0.02, cacheWrite: 0 }, compat: { sessionAffinityFormat: "openai-nosession", supportsOpenAIGrammarTools: true }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null } }, "gpt-5.4-pro": { id: "gpt-5.4-pro", name: "GPT-5.4 Pro", api: "openai-responses", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 30, output: 180, cacheRead: 30, cacheWrite: 0 }, compat: { sessionAffinityFormat: "openai-nosession", supportsOpenAIGrammarTools: true }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: null, medium: "medium", high: "high", xhigh: "xhigh", max: null } }, "gpt-5.5": { id: "gpt-5.5", name: "GPT-5.5", api: "openai-responses", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 0 }, compat: { sessionAffinityFormat: "openai-nosession", supportsOpenAIGrammarTools: true }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null } }, "gpt-5.5-pro": { id: "gpt-5.5-pro", name: "GPT-5.5 Pro", api: "openai-responses", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 30, output: 180, cacheRead: 30, cacheWrite: 0 }, compat: { sessionAffinityFormat: "openai-nosession", supportsOpenAIGrammarTools: true }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: null, medium: "medium", high: "high", xhigh: "xhigh", max: null } }, "gpt-5.6-luna": { id: "gpt-5.6-luna", name: "GPT-5.6 Luna", api: "openai-responses", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 1.2, cacheRead: 0.02, cacheWrite: 0.25 }, compat: { sessionAffinityFormat: "openai-nosession", supportsOpenAIGrammarTools: true }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" } }, "gpt-5.6-sol": { id: "gpt-5.6-sol", name: "GPT-5.6 Sol (50% Off)", api: "openai-responses", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, compat: { sessionAffinityFormat: "openai-nosession", supportsOpenAIGrammarTools: true }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" } }, "gpt-5.6-terra": { id: "gpt-5.6-terra", name: "GPT-5.6 Terra", api: "openai-responses", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 2.5, output: 15, cacheRead: 0.25, cacheWrite: 3.125 }, compat: { sessionAffinityFormat: "openai-nosession", supportsOpenAIGrammarTools: true }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" } }, "grok-4.5": { id: "grok-4.5", name: "Grok 4.5", api: "openai-responses", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 6, cacheRead: 0.5, cacheWrite: 0 }, compat: { sessionAffinityFormat: "openai-nosession" }, contextWindow: 5e5, maxTokens: 5e5, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "grok-4.6": { id: "grok-4.6", name: "Grok 4.6", api: "openai-responses", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 6, cacheRead: 0.5, cacheWrite: 0 }, compat: { sessionAffinityFormat: "openai-nosession" }, contextWindow: 5e5, maxTokens: 5e5, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null } }, "grok-build-0.1": { id: "grok-build-0.1", name: "Grok Build 0.1", api: "openai-responses", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 2, cacheRead: 0.2, cacheWrite: 0 }, compat: { sessionAffinityFormat: "openai-nosession", supportsReasoningEffort: false }, contextWindow: 256e3, maxTokens: 256e3, thinkingLevelMap: { off: null, minimal: null, low: null, medium: null } }, "muse-spark-1.2": { id: "muse-spark-1.2", name: "Muse Spark 1.2", api: "openai-responses", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 4.25, cacheRead: 0.15, cacheWrite: 0 }, compat: { sessionAffinityFormat: "openai-nosession" }, contextWindow: 1048576, maxTokens: 131072, thinkingLevelMap: { off: null, minimal: "minimal", low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null } }, "muse-spark-1.2-contributor-free": { id: "muse-spark-1.2-contributor-free", name: "Muse Spark 1.2 Free", api: "openai-responses", provider: "opencode", baseUrl: "https://opencode.ai/zen/v1", reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { sessionAffinityFormat: "openai-nosession" }, contextWindow: 1048576, maxTokens: 131072, thinkingLevelMap: { off: null, minimal: "minimal", low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null } } } };
|
|
3382
3816
|
|
|
3383
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3817
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.js
|
|
3384
3818
|
var OPENCODE_MODELS = flattenModelCatalog("opencode", opencode_default);
|
|
3385
3819
|
|
|
3386
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3820
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode-go.json
|
|
3387
3821
|
var opencode_go_default = { "anthropic-messages": { "minimax-m3": { id: "minimax-m3", name: "MiniMax-M3", api: "anthropic-messages", provider: "opencode-go", baseUrl: "https://opencode.ai/zen/go", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 131072 } }, "openai-completions": { "deepseek-v4-flash": { id: "deepseek-v4-flash", name: "DeepSeek V4 Flash", api: "openai-completions", provider: "opencode-go", baseUrl: "https://opencode.ai/zen/go/v1", reasoning: true, input: ["text"], cost: { input: 0.22, output: 0.66, cacheRead: 7e-3, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens", requiresReasoningContentOnAssistantMessages: true, thinkingFormat: "deepseek" }, contextWindow: 1e6, maxTokens: 384e3, thinkingLevelMap: { minimal: null, low: "low", medium: null, high: "high", max: "max" } }, "deepseek-v4-flash-vision-exp": { id: "deepseek-v4-flash-vision-exp", name: "DeepSeek V4 Flash Vision Exp", api: "openai-completions", provider: "opencode-go", baseUrl: "https://opencode.ai/zen/go/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.22, output: 0.66, cacheRead: 7e-3, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens", requiresReasoningContentOnAssistantMessages: true, thinkingFormat: "deepseek" }, contextWindow: 1e6, maxTokens: 384e3, thinkingLevelMap: { minimal: null, low: "low", medium: null, high: "high", max: "max" } }, "deepseek-v4-pro": { id: "deepseek-v4-pro", name: "DeepSeek V4 Pro (New)", api: "openai-completions", provider: "opencode-go", baseUrl: "https://opencode.ai/zen/go/v1", reasoning: true, input: ["text"], cost: { input: 0.66, output: 1.98, cacheRead: 0.022, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens", requiresReasoningContentOnAssistantMessages: true, thinkingFormat: "deepseek" }, contextWindow: 1e6, maxTokens: 384e3, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", max: "max" } }, "glm-5.1": { id: "glm-5.1", name: "GLM-5.1", api: "openai-completions", provider: "opencode-go", baseUrl: "https://opencode.ai/zen/go/v1", reasoning: true, input: ["text"], cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 202752, maxTokens: 32768 }, "glm-5.2": { id: "glm-5.2", name: "GLM-5.2", api: "openai-completions", provider: "opencode-go", baseUrl: "https://opencode.ai/zen/go/v1", reasoning: true, input: ["text"], cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 1e6, maxTokens: 131072, thinkingLevelMap: { off: null, minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" } }, "glm-5.3": { id: "glm-5.3", name: "GLM-5.3", api: "openai-completions", provider: "opencode-go", baseUrl: "https://opencode.ai/zen/go/v1", reasoning: true, input: ["text"], cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 1e6, maxTokens: 131072, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: null, high: "high", xhigh: null, max: "max" } }, hy3: { id: "hy3", name: "Hy3 (8x usage)", api: "openai-completions", provider: "opencode-go", baseUrl: "https://opencode.ai/zen/go/v1", reasoning: true, input: ["text"], cost: { input: 0.0175, output: 0.0725, cacheRead: 4375e-6, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 256e3, maxTokens: 64e3, thinkingLevelMap: { off: "none", minimal: null, low: "low", medium: null, high: "high", xhigh: null, max: null } }, "kimi-k2.6": { id: "kimi-k2.6", name: "Kimi K2.6", api: "openai-completions", provider: "opencode-go", baseUrl: "https://opencode.ai/zen/go/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, thinkingFormat: "deepseek", supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsLongCacheRetention: false }, contextWindow: 262144, maxTokens: 65536, thinkingLevelMap: { minimal: null, low: null, medium: null } }, "kimi-k2.7-code": { id: "kimi-k2.7-code", name: "Kimi K2.7 Code", api: "openai-completions", provider: "opencode-go", baseUrl: "https://opencode.ai/zen/go/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 262144, maxTokens: 262144 }, "kimi-k3": { id: "kimi-k3", name: "Kimi K3", api: "openai-completions", provider: "opencode-go", baseUrl: "https://opencode.ai/zen/go/v1", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 1048576, maxTokens: 131072, thinkingLevelMap: { off: null, minimal: null, low: null, medium: null, high: null, xhigh: null, max: "max" } }, "longcat-2.0": { id: "longcat-2.0", name: "LongCat-2.0", api: "openai-completions", provider: "opencode-go", baseUrl: "https://opencode.ai/zen/go/v1", reasoning: true, input: ["text"], cost: { input: 0.3, output: 1.2, cacheRead: 6e-3, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 1e6, maxTokens: 131072 }, "mimo-v2.5": { id: "mimo-v2.5", name: "MiMo V2.5", api: "openai-completions", provider: "opencode-go", baseUrl: "https://opencode.ai/zen/go/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.14, output: 0.28, cacheRead: 28e-4, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 1e6, maxTokens: 128e3 }, "mimo-v2.5-pro": { id: "mimo-v2.5-pro", name: "MiMo V2.5 Pro", api: "openai-completions", provider: "opencode-go", baseUrl: "https://opencode.ai/zen/go/v1", reasoning: true, input: ["text"], cost: { input: 0.435, output: 0.87, cacheRead: 3625e-6, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 1048576, maxTokens: 128e3 }, "minimax-m2.7": { id: "minimax-m2.7", name: "MiniMax-M2.7", api: "openai-completions", provider: "opencode-go", baseUrl: "https://opencode.ai/zen/go/v1", reasoning: true, input: ["text"], cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 204800, maxTokens: 131072 }, "ox-alpha-free": { id: "ox-alpha-free", name: "Ox Alpha Free (Unlimited)", api: "openai-completions", provider: "opencode-go", baseUrl: "https://opencode.ai/zen/go/v1", reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 1e6, maxTokens: 131072, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: null, high: "high", xhigh: null, max: "max" } }, "qwen3.6-plus": { id: "qwen3.6-plus", name: "Qwen3.6 Plus", api: "openai-completions", provider: "opencode-go", baseUrl: "https://opencode.ai/zen/go/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.5, output: 3, cacheRead: 0.05, cacheWrite: 0.625 }, compat: { supportsStore: false, supportsDeveloperRole: false, thinkingFormat: "qwen", maxTokensField: "max_tokens" }, contextWindow: 1e6, maxTokens: 65536 }, "qwen3.7-max": { id: "qwen3.7-max", name: "Qwen3.7 Max", api: "openai-completions", provider: "opencode-go", baseUrl: "https://opencode.ai/zen/go/v1", reasoning: true, input: ["text"], cost: { input: 2.5, output: 7.5, cacheRead: 0.5, cacheWrite: 3.125 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 1e6, maxTokens: 65536 }, "qwen3.7-plus": { id: "qwen3.7-plus", name: "Qwen3.7 Plus", api: "openai-completions", provider: "opencode-go", baseUrl: "https://opencode.ai/zen/go/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.4, output: 1.6, cacheRead: 0.04, cacheWrite: 0.5 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 1e6, maxTokens: 65536 }, "qwen3.8-max": { id: "qwen3.8-max", name: "Qwen3.8 Max", api: "openai-completions", provider: "opencode-go", baseUrl: "https://opencode.ai/zen/go/v1", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 6, cacheRead: 0.25, cacheWrite: 2.5 }, compat: { supportsStore: false, supportsDeveloperRole: false, maxTokensField: "max_tokens" }, contextWindow: 1e6, maxTokens: 131072 } }, "openai-responses": { "gpt-5.6-luna": { id: "gpt-5.6-luna", name: "GPT-5.6 Luna", api: "openai-responses", provider: "opencode-go", baseUrl: "https://opencode.ai/zen/go/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 1.2, cacheRead: 0.02, cacheWrite: 0.25 }, compat: { sessionAffinityFormat: "openai-nosession" }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" } }, "grok-4.5": { id: "grok-4.5", name: "Grok 4.5", api: "openai-responses", provider: "opencode-go", baseUrl: "https://opencode.ai/zen/go/v1", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 6, cacheRead: 0.5, cacheWrite: 0 }, compat: { sessionAffinityFormat: "openai-nosession" }, contextWindow: 5e5, maxTokens: 5e5, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "muse-spark-1.2-contributor": { id: "muse-spark-1.2-contributor", name: "Muse Spark 1.2 Contributor", api: "openai-responses", provider: "opencode-go", baseUrl: "https://opencode.ai/zen/go/v1", reasoning: true, input: ["text", "image"], cost: { input: 0.1, output: 0.2, cacheRead: 2e-3, cacheWrite: 0 }, compat: { sessionAffinityFormat: "openai-nosession" }, contextWindow: 1048576, maxTokens: 131072, thinkingLevelMap: { off: null, minimal: "minimal", low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null } } } };
|
|
3388
3822
|
|
|
3389
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3823
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.js
|
|
3390
3824
|
var OPENCODE_GO_MODELS = flattenModelCatalog("opencode-go", opencode_go_default);
|
|
3391
3825
|
|
|
3392
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3826
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json
|
|
3393
3827
|
var openrouter_default = { "openai-completions": { "aion-labs/aion-2.0": { id: "aion-labs/aion-2.0", name: "AionLabs: Aion-2.0", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.8, output: 1.6, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "aion-labs/aion-3.0": { id: "aion-labs/aion-3.0", name: "AionLabs: Aion-3.0", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 3, output: 6, cacheRead: 0.75, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "aion-labs/aion-3.0-mini": { id: "aion-labs/aion-3.0-mini", name: "AionLabs: Aion-3.0-Mini", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.7, output: 1.4, cacheRead: 0.18, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "amazon/nova-2-lite-v1": { id: "amazon/nova-2-lite-v1", name: "Amazon: Nova 2 Lite", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 2.5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 65535, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "amazon/nova-lite-v1": { id: "amazon/nova-lite-v1", name: "Amazon: Nova Lite 1.0", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.06, output: 0.24, cacheRead: 0, cacheWrite: 0 }, contextWindow: 3e5, maxTokens: 5120, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "amazon/nova-micro-v1": { id: "amazon/nova-micro-v1", name: "Amazon: Nova Micro 1.0", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.035, output: 0.14, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 5120, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "amazon/nova-premier-v1": { id: "amazon/nova-premier-v1", name: "Amazon: Nova Premier 1.0", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 2.5, output: 12.5, cacheRead: 0.625, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 32e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "amazon/nova-pro-v1": { id: "amazon/nova-pro-v1", name: "Amazon: Nova Pro 1.0", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.8, output: 3.2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 3e5, maxTokens: 5120, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "anthropic/claude-3-haiku": { id: "anthropic/claude-3-haiku", name: "Anthropic: Claude 3 Haiku", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.25, output: 1.25, cacheRead: 0.03, cacheWrite: 0.3 }, contextWindow: 2e5, maxTokens: 4096, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" } }, "anthropic/claude-fable-5": { id: "anthropic/claude-fable-5", name: "Anthropic: Claude Fable 5", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 }, contextWindow: 1e6, maxTokens: 128e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" }, thinkingLevelMap: { off: null, xhigh: "xhigh", max: "max" } }, "anthropic/claude-fable-5:batch": { id: "anthropic/claude-fable-5:batch", name: "Anthropic: Claude Fable 5 (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" }, thinkingLevelMap: { off: null, xhigh: "xhigh", max: "max" } }, "anthropic/claude-haiku-4.5": { id: "anthropic/claude-haiku-4.5", name: "Anthropic: Claude Haiku 4.5", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, contextWindow: 2e5, maxTokens: 64e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" } }, "anthropic/claude-haiku-4.5:batch": { id: "anthropic/claude-haiku-4.5:batch", name: "Anthropic: Claude Haiku 4.5 (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.5, output: 2.5, cacheRead: 0.05, cacheWrite: 0.625 }, contextWindow: 2e5, maxTokens: 64e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" } }, "anthropic/claude-opus-4": { id: "anthropic/claude-opus-4", name: "Anthropic: Claude Opus 4", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 15, output: 75, cacheRead: 1.5, cacheWrite: 18.75 }, contextWindow: 2e5, maxTokens: 32e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" } }, "anthropic/claude-opus-4.1": { id: "anthropic/claude-opus-4.1", name: "Anthropic: Claude Opus 4.1", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 15, output: 75, cacheRead: 1.5, cacheWrite: 18.75 }, contextWindow: 2e5, maxTokens: 32e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" } }, "anthropic/claude-opus-4.1:batch": { id: "anthropic/claude-opus-4.1:batch", name: "Anthropic: Claude Opus 4.1 (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 7.5, output: 37.5, cacheRead: 0.75, cacheWrite: 9.375 }, contextWindow: 2e5, maxTokens: 32e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" } }, "anthropic/claude-opus-4.5": { id: "anthropic/claude-opus-4.5", name: "Anthropic: Claude Opus 4.5", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 2e5, maxTokens: 64e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" } }, "anthropic/claude-opus-4.5:batch": { id: "anthropic/claude-opus-4.5:batch", name: "Anthropic: Claude Opus 4.5 (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 2.5, output: 12.5, cacheRead: 0.25, cacheWrite: 3.125 }, contextWindow: 2e5, maxTokens: 64e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" } }, "anthropic/claude-opus-4.6": { id: "anthropic/claude-opus-4.6", name: "Anthropic: Claude Opus 4.6", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" }, thinkingLevelMap: { max: "max" } }, "anthropic/claude-opus-4.6:batch": { id: "anthropic/claude-opus-4.6:batch", name: "Anthropic: Claude Opus 4.6 (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 2.5, output: 12.5, cacheRead: 0.25, cacheWrite: 3.125 }, contextWindow: 1e6, maxTokens: 128e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" }, thinkingLevelMap: { max: "max" } }, "anthropic/claude-opus-4.7": { id: "anthropic/claude-opus-4.7", name: "Anthropic: Claude Opus 4.7", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "anthropic/claude-opus-4.7-fast": { id: "anthropic/claude-opus-4.7-fast", name: "Anthropic: Claude Opus 4.7 (Fast)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 30, output: 150, cacheRead: 3, cacheWrite: 37.5 }, contextWindow: 1e6, maxTokens: 128e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "anthropic/claude-opus-4.7:batch": { id: "anthropic/claude-opus-4.7:batch", name: "Anthropic: Claude Opus 4.7 (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 2.5, output: 12.5, cacheRead: 0.25, cacheWrite: 3.125 }, contextWindow: 1e6, maxTokens: 128e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "anthropic/claude-opus-4.8": { id: "anthropic/claude-opus-4.8", name: "Anthropic: Claude Opus 4.8", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "anthropic/claude-opus-4.8-fast": { id: "anthropic/claude-opus-4.8-fast", name: "Anthropic: Claude Opus 4.8 (Fast)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 }, contextWindow: 1e6, maxTokens: 128e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "anthropic/claude-opus-4.8:batch": { id: "anthropic/claude-opus-4.8:batch", name: "Anthropic: Claude Opus 4.8 (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 2.5, output: 12.5, cacheRead: 0.25, cacheWrite: 3.125 }, contextWindow: 1e6, maxTokens: 128e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "anthropic/claude-opus-5": { id: "anthropic/claude-opus-5", name: "Claude Opus 5", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "anthropic/claude-opus-5-fast": { id: "anthropic/claude-opus-5-fast", name: "Claude Opus 5 (Fast)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 }, contextWindow: 1e6, maxTokens: 128e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "anthropic/claude-opus-5:batch": { id: "anthropic/claude-opus-5:batch", name: "Claude Opus 5 (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 2.5, output: 12.5, cacheRead: 0.25, cacheWrite: 3.125 }, contextWindow: 1e6, maxTokens: 128e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "anthropic/claude-sonnet-4": { id: "anthropic/claude-sonnet-4", name: "Anthropic: Claude Sonnet 4", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 2e5, maxTokens: 64e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" } }, "anthropic/claude-sonnet-4.5": { id: "anthropic/claude-sonnet-4.5", name: "Anthropic: Claude Sonnet 4.5", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 1e6, maxTokens: 64e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" } }, "anthropic/claude-sonnet-4.5:batch": { id: "anthropic/claude-sonnet-4.5:batch", name: "Anthropic: Claude Sonnet 4.5 (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1.5, output: 7.5, cacheRead: 0.15, cacheWrite: 1.875 }, contextWindow: 1e6, maxTokens: 64e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" } }, "anthropic/claude-sonnet-4.6": { id: "anthropic/claude-sonnet-4.6", name: "Anthropic: Claude Sonnet 4.6", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 1e6, maxTokens: 128e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" }, thinkingLevelMap: { max: "max" } }, "anthropic/claude-sonnet-4.6:batch": { id: "anthropic/claude-sonnet-4.6:batch", name: "Anthropic: Claude Sonnet 4.6 (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1.5, output: 7.5, cacheRead: 0.15, cacheWrite: 1.875 }, contextWindow: 1e6, maxTokens: 128e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" }, thinkingLevelMap: { max: "max" } }, "anthropic/claude-sonnet-5": { id: "anthropic/claude-sonnet-5", name: "Anthropic: Claude Sonnet 5", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, contextWindow: 1e6, maxTokens: 128e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "anthropic/claude-sonnet-5:batch": { id: "anthropic/claude-sonnet-5:batch", name: "Anthropic: Claude Sonnet 5 (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, contextWindow: 1e6, maxTokens: 128e3, compat: { thinkingFormat: "openrouter", cacheControlFormat: "anthropic" }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "arcee-ai/trinity-large-thinking": { id: "arcee-ai/trinity-large-thinking", name: "Arcee AI: Trinity Large Thinking", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.22, output: 0.85, cacheRead: 0.06, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "arcee-ai/virtuoso-large": { id: "arcee-ai/virtuoso-large", name: "Arcee AI: Virtuoso Large", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.75, output: 1.2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 64e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, auto: { id: "auto", name: "Auto", api: "openai-completions", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 2e6, maxTokens: 3e4, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "bytedance-seed/seed-1.6": { id: "bytedance-seed/seed-1.6", name: "ByteDance Seed: Seed 1.6", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "bytedance-seed/seed-1.6-flash": { id: "bytedance-seed/seed-1.6-flash", name: "ByteDance Seed: Seed 1.6 Flash", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.075, output: 0.3, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "bytedance-seed/seed-2-1-turbo": { id: "bytedance-seed/seed-2-1-turbo", name: "ByteDance Seed: Seed 2.1 Turbo", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.5, output: 2.5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "bytedance-seed/seed-2.0-code": { id: "bytedance-seed/seed-2.0-code", name: "ByteDance Seed: Seed-2.0-Code", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.5, output: 3, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "bytedance-seed/seed-2.0-lite": { id: "bytedance-seed/seed-2.0-lite", name: "ByteDance Seed: Seed-2.0-Lite", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "bytedance-seed/seed-2.0-mini": { id: "bytedance-seed/seed-2.0-mini", name: "ByteDance Seed: Seed-2.0-Mini", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.1, output: 0.4, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "cohere/command-r-08-2024": { id: "cohere/command-r-08-2024", name: "Cohere: Command R (08-2024)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.15, output: 0.6, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "cohere/command-r-plus-08-2024": { id: "cohere/command-r-plus-08-2024", name: "Cohere: Command R+ (08-2024)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 2.5, output: 10, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "cohere/north-mini-code:free": { id: "cohere/north-mini-code:free", name: "Cohere: North Mini Code (free)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 64e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "deepseek/deepseek-chat": { id: "deepseek/deepseek-chat", name: "DeepSeek: DeepSeek V3", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.2574, output: 1.0287, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "deepseek/deepseek-chat-v3-0324": { id: "deepseek/deepseek-chat-v3-0324", name: "DeepSeek: DeepSeek V3 0324", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.25, output: 1, cacheRead: 0, cacheWrite: 0 }, contextWindow: 163840, maxTokens: 163840, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "deepseek/deepseek-chat-v3.1": { id: "deepseek/deepseek-chat-v3.1", name: "DeepSeek: DeepSeek V3.1", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.55, output: 1.65, cacheRead: 0.55, cacheWrite: 0 }, contextWindow: 161e3, maxTokens: 161e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "deepseek/deepseek-r1": { id: "deepseek/deepseek-r1", name: "DeepSeek: R1", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.7, output: 2.5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 64e3, maxTokens: 16e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "deepseek/deepseek-r1-0528": { id: "deepseek/deepseek-r1-0528", name: "DeepSeek: R1 0528", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.5, output: 2.15, cacheRead: 0.35, cacheWrite: 0 }, contextWindow: 163840, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "deepseek/deepseek-v3.1-terminus": { id: "deepseek/deepseek-v3.1-terminus", name: "DeepSeek: DeepSeek V3.1 Terminus", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.27, output: 1, cacheRead: 0.135, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "deepseek/deepseek-v3.2": { id: "deepseek/deepseek-v3.2", name: "DeepSeek: DeepSeek V3.2", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.26, output: 0.38, cacheRead: 0.13, cacheWrite: 0 }, contextWindow: 163840, maxTokens: 163840, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "deepseek/deepseek-v3.2-exp": { id: "deepseek/deepseek-v3.2-exp", name: "DeepSeek: DeepSeek V3.2 Exp", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.27, output: 0.41, cacheRead: 0, cacheWrite: 0 }, contextWindow: 163840, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "deepseek/deepseek-v4-flash": { id: "deepseek/deepseek-v4-flash", name: "DeepSeek: DeepSeek V4 Flash 0423", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.0574, output: 0.1148, cacheRead: 0.01148, cacheWrite: 0 }, contextWindow: 1024e3, maxTokens: 384e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter", requiresReasoningContentOnAssistantMessages: true }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", max: null, xhigh: "xhigh" } }, "deepseek/deepseek-v4-flash-0731": { id: "deepseek/deepseek-v4-flash-0731", name: "DeepSeek: DeepSeek V4 Flash 0731", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.14, output: 0.28, cacheRead: 0.028, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter", requiresReasoningContentOnAssistantMessages: true }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", max: null, xhigh: "xhigh" } }, "deepseek/deepseek-v4-flash-vision-exp": { id: "deepseek/deepseek-v4-flash-vision-exp", name: "DeepSeek: DeepSeek V4 Flash Vision Exp", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.22, output: 0.66, cacheRead: 7e-3, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 384e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter", requiresReasoningContentOnAssistantMessages: true }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", max: null, xhigh: "xhigh" } }, "deepseek/deepseek-v4-pro": { id: "deepseek/deepseek-v4-pro", name: "DeepSeek: DeepSeek V4 Pro 0423", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.526176, output: 1.052352, cacheRead: 0.043848, cacheWrite: 0 }, contextWindow: 1024e3, maxTokens: 384e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter", requiresReasoningContentOnAssistantMessages: true }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", max: null, xhigh: "xhigh" } }, "deepseek/deepseek-v4-pro-0813": { id: "deepseek/deepseek-v4-pro-0813", name: "DeepSeek: DeepSeek V4 Pro 0813", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 1.122, output: 3.366, cacheRead: 0.0374, cacheWrite: 0 }, contextWindow: 1048575, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter", requiresReasoningContentOnAssistantMessages: true }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", max: null, xhigh: "xhigh" } }, "dots-studio/dots-3-note-preview:free": { id: "dots-studio/dots-3-note-preview:free", name: "Dots Studio: Dots3-Note Preview (free)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 512e3, maxTokens: 512e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-2.5-flash": { id: "google/gemini-2.5-flash", name: "Google: Gemini 2.5 Flash", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 2.5, cacheRead: 0.03, cacheWrite: 0.083333 }, contextWindow: 1048576, maxTokens: 65535, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-2.5-flash-lite": { id: "google/gemini-2.5-flash-lite", name: "Google: Gemini 2.5 Flash Lite", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.1, output: 0.4, cacheRead: 0.01, cacheWrite: 0.083333 }, contextWindow: 1048576, maxTokens: 65535, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-2.5-flash-lite:batch": { id: "google/gemini-2.5-flash-lite:batch", name: "Google: Gemini 2.5 Flash Lite (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.05, output: 0.2, cacheRead: 0.01, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65535, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-2.5-flash:batch": { id: "google/gemini-2.5-flash:batch", name: "Google: Gemini 2.5 Flash (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.15, output: 1.25, cacheRead: 0.03, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65535, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-2.5-pro": { id: "google/gemini-2.5-pro", name: "Google: Gemini 2.5 Pro", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0.375 }, contextWindow: 1048576, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-2.5-pro-preview": { id: "google/gemini-2.5-pro-preview", name: "Google: Gemini 2.5 Pro Preview 06-05", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0.375 }, contextWindow: 1048576, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-2.5-pro-preview-05-06": { id: "google/gemini-2.5-pro-preview-05-06", name: "Google: Gemini 2.5 Pro Preview 05-06", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0.375 }, contextWindow: 1048576, maxTokens: 65535, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-2.5-pro:batch": { id: "google/gemini-2.5-pro:batch", name: "Google: Gemini 2.5 Pro (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.625, output: 5, cacheRead: 0.125, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-3-flash-preview": { id: "google/gemini-3-flash-preview", name: "Google: Gemini 3 Flash Preview", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.5, output: 3, cacheRead: 0.05, cacheWrite: 0.083333 }, contextWindow: 1048576, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-3-flash-preview:batch": { id: "google/gemini-3-flash-preview:batch", name: "Google: Gemini 3 Flash Preview (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 1.5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-3-pro-image": { id: "google/gemini-3-pro-image", name: "Google: Nano Banana Pro (Gemini 3 Pro Image)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 0.375 }, contextWindow: 65536, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-3.1-flash-lite": { id: "google/gemini-3.1-flash-lite", name: "Google: Gemini 3.1 Flash Lite", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 1.5, cacheRead: 0.025, cacheWrite: 0.083333 }, contextWindow: 1048576, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-3.1-flash-lite-preview": { id: "google/gemini-3.1-flash-lite-preview", name: "Google: Gemini 3.1 Flash Lite Preview", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 1.5, cacheRead: 0.025, cacheWrite: 0.083333 }, contextWindow: 1048576, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-3.1-flash-lite:batch": { id: "google/gemini-3.1-flash-lite:batch", name: "Google: Gemini 3.1 Flash Lite (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.125, output: 0.75, cacheRead: 0.0125, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-3.1-pro-preview": { id: "google/gemini-3.1-pro-preview", name: "Google: Gemini 3.1 Pro Preview", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 0.375 }, contextWindow: 1048576, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-3.1-pro-preview-customtools": { id: "google/gemini-3.1-pro-preview-customtools", name: "Google: Gemini 3.1 Pro Preview Custom Tools", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 0.375 }, contextWindow: 1048576, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-3.1-pro-preview:batch": { id: "google/gemini-3.1-pro-preview:batch", name: "Google: Gemini 3.1 Pro Preview (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 6, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-3.5-flash": { id: "google/gemini-3.5-flash", name: "Google: Gemini 3.5 Flash", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1.5, output: 9, cacheRead: 0.15, cacheWrite: 0.083333 }, contextWindow: 1048576, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-3.5-flash-lite": { id: "google/gemini-3.5-flash-lite", name: "Google: Gemini 3.5 Flash Lite", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 2.5, cacheRead: 0.03, cacheWrite: 0.083333 }, contextWindow: 1048576, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-3.5-flash-lite:batch": { id: "google/gemini-3.5-flash-lite:batch", name: "Google: Gemini 3.5 Flash Lite (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.15, output: 1.25, cacheRead: 0.015, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-3.5-flash:batch": { id: "google/gemini-3.5-flash:batch", name: "Google: Gemini 3.5 Flash (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.75, output: 4.5, cacheRead: 0.075, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-3.6-flash": { id: "google/gemini-3.6-flash", name: "Google: Gemini 3.6 Flash", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0.041667 }, contextWindow: 1048576, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-3.6-flash:batch": { id: "google/gemini-3.6-flash:batch", name: "Google: Gemini 3.6 Flash (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.375, output: 1.875, cacheRead: 0.0375, cacheWrite: 0.041667 }, contextWindow: 1048576, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-3.7-flash": { id: "google/gemini-3.7-flash", name: "Google: Gemini 3.7 Flash", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.375, output: 1.875, cacheRead: 0.0375, cacheWrite: 0.020833 }, contextWindow: 1048576, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemini-3.7-flash:batch": { id: "google/gemini-3.7-flash:batch", name: "Google: Gemini 3.7 Flash (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.1875, output: 0.9375, cacheRead: 0.01875, cacheWrite: 0.020833 }, contextWindow: 1048576, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemma-3-12b-it": { id: "google/gemma-3-12b-it", name: "Google: Gemma 3 12B", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.05, output: 0.15, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 16384, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemma-3-27b-it": { id: "google/gemma-3-27b-it", name: "Google: Gemma 3 27B", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.08, output: 0.45, cacheRead: 0.04, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemma-4-26b-a4b-it": { id: "google/gemma-4-26b-a4b-it", name: "Google: Gemma 4 26B A4B ", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.07, output: 0.34, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 16384, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemma-4-26b-a4b-it:free": { id: "google/gemma-4-26b-a4b-it:free", name: "Google: Gemma 4 26B A4B (free)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemma-4-31b-it": { id: "google/gemma-4-31b-it", name: "Google: Gemma 4 31B", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.1, output: 0.34, cacheRead: 0.1, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "google/gemma-4-31b-it:free": { id: "google/gemma-4-31b-it:free", name: "Google: Gemma 4 31B (free)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "ibm-granite/granite-4.1-8b": { id: "ibm-granite/granite-4.1-8b", name: "IBM: Granite 4.1 8B", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.05, output: 0.1, cacheRead: 0.05, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "inception/mercury-2": { id: "inception/mercury-2", name: "Inception: Mercury 2", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.25, output: 0.75, cacheRead: 0.025, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 5e4, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" }, thinkingLevelMap: { off: null } }, "inclusionai/ling-3.0-flash": { id: "inclusionai/ling-3.0-flash", name: "Ling-3.0-flash", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.021, output: 0.063, cacheRead: 42e-4, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "kwaipilot/kat-coder-air-v2.5": { id: "kwaipilot/kat-coder-air-v2.5", name: "Kwaipilot: KAT-Coder-Air V2.5", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.15, output: 0.6, cacheRead: 0.03, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 8e4, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "kwaipilot/kat-coder-pro-v2": { id: "kwaipilot/kat-coder-pro-v2", name: "Kwaipilot: KAT-Coder-Pro V2", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 8e4, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "kwaipilot/kat-coder-pro-v2.5": { id: "kwaipilot/kat-coder-pro-v2.5", name: "Kwaipilot: KAT-Coder-Pro V2.5", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.74, output: 2.96, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 8e4, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "liquid/lfm-2.5-2.6b:free": { id: "liquid/lfm-2.5-2.6b:free", name: "LiquidAI: LFM2.5-2.6B (free)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 65536, maxTokens: 8192, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "meituan/longcat-2.0": { id: "meituan/longcat-2.0", name: "Meituan: LongCat 2.0", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.3, output: 1.2, cacheRead: 6e-3, cacheWrite: 0 }, contextWindow: 1048756, maxTokens: 262144, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "meta-llama/llama-3.1-70b-instruct": { id: "meta-llama/llama-3.1-70b-instruct", name: "Meta: Llama 3.1 70B Instruct", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.4, output: 0.4, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 16384, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "meta-llama/llama-3.1-8b-instruct": { id: "meta-llama/llama-3.1-8b-instruct", name: "Meta: Llama 3.1 8B Instruct", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.05, output: 0.08, cacheRead: 0.025, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "meta-llama/llama-3.3-70b-instruct": { id: "meta-llama/llama-3.3-70b-instruct", name: "Meta: Llama 3.3 70B Instruct", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.1, output: 0.32, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 16384, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "meta-llama/llama-4-maverick": { id: "meta-llama/llama-4-maverick", name: "Meta: Llama 4 Maverick", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.2, output: 0.8, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 16384, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "meta-llama/llama-4-scout": { id: "meta-llama/llama-4-scout", name: "Meta: Llama 4 Scout", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.1, output: 0.3, cacheRead: 0, cacheWrite: 0 }, contextWindow: 327680, maxTokens: 16384, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "meta/muse-glimmer-30b": { id: "meta/muse-glimmer-30b", name: "Meta: Muse Glimmer 30B", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.35, output: 1.5, cacheRead: 0.04, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "meta/muse-spark-1.1": { id: "meta/muse-spark-1.1", name: "Meta: Muse Spark 1.1", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 4.25, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "meta/muse-spark-1.2": { id: "meta/muse-spark-1.2", name: "Meta: Muse Spark 1.2", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 4.25, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "meta/muse-spark-1.2-contributor": { id: "meta/muse-spark-1.2-contributor", name: "Meta: Muse Spark 1.2 Contributor", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.1, output: 0.2, cacheRead: 2e-3, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "minimax/minimax-m1": { id: "minimax/minimax-m1", name: "MiniMax: MiniMax M1", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.55, output: 2.2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 4e4, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "minimax/minimax-m2": { id: "minimax/minimax-m2", name: "MiniMax: MiniMax M2", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.255, output: 1.02, cacheRead: 0, cacheWrite: 0 }, contextWindow: 204800, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "minimax/minimax-m2.1": { id: "minimax/minimax-m2.1", name: "MiniMax: MiniMax M2.1", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.3, output: 1.2, cacheRead: 0.03, cacheWrite: 0 }, contextWindow: 204800, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "minimax/minimax-m2.5": { id: "minimax/minimax-m2.5", name: "MiniMax: MiniMax M2.5", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.27, output: 1.08, cacheRead: 0.027, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 128e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "minimax/minimax-m2.7": { id: "minimax/minimax-m2.7", name: "MiniMax: MiniMax M2.7", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.24, output: 0.96, cacheRead: 0.048, cacheWrite: 0 }, contextWindow: 196608, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "minimax/minimax-m3": { id: "minimax/minimax-m3", name: "MiniMax: MiniMax M3", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, contextWindow: 524288, maxTokens: 512e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "minimax/minimax-m3:batch": { id: "minimax/minimax-m3:batch", name: "MiniMax: MiniMax M3 (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, contextWindow: 524288, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "mistralai/codestral-2508": { id: "mistralai/codestral-2508", name: "Mistral: Codestral 2508", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.3, output: 0.9, cacheRead: 0.03, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "mistralai/ministral-14b-2512": { id: "mistralai/ministral-14b-2512", name: "Mistral: Ministral 3 14B 2512", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.2, output: 0.2, cacheRead: 0.02, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "mistralai/ministral-3b-2512": { id: "mistralai/ministral-3b-2512", name: "Mistral: Ministral 3 3B 2512", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.1, output: 0.1, cacheRead: 0.01, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "mistralai/ministral-8b-2512": { id: "mistralai/ministral-8b-2512", name: "Mistral: Ministral 3 8B 2512", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.15, output: 0.15, cacheRead: 0.015, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "mistralai/mistral-large": { id: "mistralai/mistral-large", name: "Mistral Large", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 2, output: 6, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "mistralai/mistral-large-2407": { id: "mistralai/mistral-large-2407", name: "Mistral Large 2407", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 2, output: 6, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "mistralai/mistral-large-2512": { id: "mistralai/mistral-large-2512", name: "Mistral: Mistral Large 3 2512", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.5, output: 1.5, cacheRead: 0.05, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "mistralai/mistral-medium-3": { id: "mistralai/mistral-medium-3", name: "Mistral: Mistral Medium 3", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.4, output: 2, cacheRead: 0.04, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "mistralai/mistral-medium-3-5": { id: "mistralai/mistral-medium-3-5", name: "Mistral: Mistral Medium 3.5", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1.5, output: 7.5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "mistralai/mistral-medium-3.1": { id: "mistralai/mistral-medium-3.1", name: "Mistral: Mistral Medium 3.1", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.4, output: 2, cacheRead: 0.04, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "mistralai/mistral-nemo": { id: "mistralai/mistral-nemo", name: "Mistral: Mistral Nemo", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.019, output: 0.03, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 16384, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "mistralai/mistral-saba": { id: "mistralai/mistral-saba", name: "Mistral: Saba", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.2, output: 0.6, cacheRead: 0.02, cacheWrite: 0 }, contextWindow: 32768, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "mistralai/mistral-small-2603": { id: "mistralai/mistral-small-2603", name: "Mistral: Mistral Small 4", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.15, output: 0.6, cacheRead: 0.015, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "mistralai/mistral-small-3.2-24b-instruct": { id: "mistralai/mistral-small-3.2-24b-instruct", name: "Mistral: Mistral Small 3.2 24B", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.075, output: 0.2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "mistralai/mixtral-8x22b-instruct": { id: "mistralai/mixtral-8x22b-instruct", name: "Mistral: Mixtral 8x22B Instruct", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 2, output: 6, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 65536, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "mistralai/voxtral-small-24b-2507": { id: "mistralai/voxtral-small-24b-2507", name: "Mistral: Voxtral Small 24B 2507", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.1, output: 0.3, cacheRead: 0.01, cacheWrite: 0 }, contextWindow: 32e3, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "moonshotai/kimi-k2": { id: "moonshotai/kimi-k2", name: "MoonshotAI: Kimi K2 0711", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.57, output: 2.3, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 100352, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "moonshotai/kimi-k2-0905": { id: "moonshotai/kimi-k2-0905", name: "MoonshotAI: Kimi K2 0905", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.6, output: 2.5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 100352, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "moonshotai/kimi-k2-thinking": { id: "moonshotai/kimi-k2-thinking", name: "MoonshotAI: Kimi K2 Thinking", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.6, output: 2.5, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 100352, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "moonshotai/kimi-k2.5": { id: "moonshotai/kimi-k2.5", name: "MoonshotAI: Kimi K2.5", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.41, output: 2.06, cacheRead: 0.07, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "moonshotai/kimi-k2.6": { id: "moonshotai/kimi-k2.6", name: "MoonshotAI: Kimi K2.6", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter", requiresReasoningContentOnAssistantMessages: true } }, "moonshotai/kimi-k2.7-code": { id: "moonshotai/kimi-k2.7-code", name: "MoonshotAI: Kimi K2.7 Code", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.67, output: 3.4, cacheRead: 0.17, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "moonshotai/kimi-k2.7-code:batch": { id: "moonshotai/kimi-k2.7-code:batch", name: "MoonshotAI: Kimi K2.7 Code (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "moonshotai/kimi-k3": { id: "moonshotai/kimi-k3", name: "MoonshotAI: Kimi K3", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "nex-agi/nex-n2-mini": { id: "nex-agi/nex-n2-mini", name: "Nex AGI: Nex-N2-Mini", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.025, output: 0.1, cacheRead: 25e-4, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "nex-agi/nex-n2-pro": { id: "nex-agi/nex-n2-pro", name: "Nex AGI: Nex-N2-Pro", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 1, cacheRead: 0.025, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "nvidia/nemotron-3-nano-30b-a3b": { id: "nvidia/nemotron-3-nano-30b-a3b", name: "NVIDIA: Nemotron 3 Nano 30B A3B", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.05, output: 0.2, cacheRead: 0.03, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "nvidia/nemotron-3-nano-30b-a3b:free": { id: "nvidia/nemotron-3-nano-30b-a3b:free", name: "NVIDIA: Nemotron 3 Nano 30B A3B (free)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free": { id: "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free", name: "NVIDIA: Nemotron 3 Nano Omni (free)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "nvidia/nemotron-3-super-120b-a12b": { id: "nvidia/nemotron-3-super-120b-a12b", name: "NVIDIA: Nemotron 3 Super", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.085, output: 0.4, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 16384, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "nvidia/nemotron-3-super-120b-a12b:free": { id: "nvidia/nemotron-3-super-120b-a12b:free", name: "NVIDIA: Nemotron 3 Super (free)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "nvidia/nemotron-3-ultra-550b-a55b": { id: "nvidia/nemotron-3-ultra-550b-a55b", name: "NVIDIA: Nemotron 3 Ultra", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.6, output: 3.6, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 512288, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "nvidia/nemotron-3-ultra-550b-a55b:batch": { id: "nvidia/nemotron-3-ultra-550b-a55b:batch", name: "NVIDIA: Nemotron 3 Ultra (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.6, output: 3.6, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 512288, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "nvidia/nemotron-3-ultra-550b-a55b:free": { id: "nvidia/nemotron-3-ultra-550b-a55b:free", name: "NVIDIA: Nemotron 3 Ultra (free)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "nvidia/nemotron-3.5-lightning": { id: "nvidia/nemotron-3.5-lightning", name: "NVIDIA: Nemotron 3.5 Lightning", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.08, output: 0.2, cacheRead: 0.04, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "nvidia/nemotron-3.5-lightning:free": { id: "nvidia/nemotron-3.5-lightning:free", name: "NVIDIA: Nemotron 3.5 Lightning (free)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "nvidia/nemotron-nano-12b-v2-vl:free": { id: "nvidia/nemotron-nano-12b-v2-vl:free", name: "NVIDIA: Nemotron Nano 12B 2 VL (free)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 128e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "nvidia/nemotron-nano-9b-v2:free": { id: "nvidia/nemotron-nano-9b-v2:free", name: "NVIDIA: Nemotron Nano 9B V2 (free)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "openai/gpt-3.5-turbo": { id: "openai/gpt-3.5-turbo", name: "OpenAI: GPT-3.5 Turbo", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.5, output: 1.5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 16385, maxTokens: 4096, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-3.5-turbo-0613": { id: "openai/gpt-3.5-turbo-0613", name: "OpenAI: GPT-3.5 Turbo (older v0613)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 1, output: 2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 4095, maxTokens: 4096, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-3.5-turbo-16k": { id: "openai/gpt-3.5-turbo-16k", name: "OpenAI: GPT-3.5 Turbo 16k", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 3, output: 4, cacheRead: 0, cacheWrite: 0 }, contextWindow: 16385, maxTokens: 4096, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-3.5-turbo:batch": { id: "openai/gpt-3.5-turbo:batch", name: "OpenAI: GPT-3.5 Turbo (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.25, output: 0.75, cacheRead: 0, cacheWrite: 0 }, contextWindow: 16385, maxTokens: 4096, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-4": { id: "openai/gpt-4", name: "OpenAI: GPT-4", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 30, output: 60, cacheRead: 0, cacheWrite: 0 }, contextWindow: 8191, maxTokens: 4096, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-4-turbo": { id: "openai/gpt-4-turbo", name: "OpenAI: GPT-4 Turbo", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 10, output: 30, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4096, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-4-turbo-preview": { id: "openai/gpt-4-turbo-preview", name: "OpenAI: GPT-4 Turbo Preview", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 10, output: 30, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4096, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-4-turbo:batch": { id: "openai/gpt-4-turbo:batch", name: "OpenAI: GPT-4 Turbo (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 5, output: 15, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4096, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-4.1": { id: "openai/gpt-4.1", name: "OpenAI: GPT-4.1", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 }, contextWindow: 1047576, maxTokens: 32768, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-4.1-mini": { id: "openai/gpt-4.1-mini", name: "OpenAI: GPT-4.1 Mini", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.4, output: 1.6, cacheRead: 0.1, cacheWrite: 0 }, contextWindow: 1047576, maxTokens: 32768, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-4.1-mini:batch": { id: "openai/gpt-4.1-mini:batch", name: "OpenAI: GPT-4.1 Mini (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.2, output: 0.8, cacheRead: 0.05, cacheWrite: 0 }, contextWindow: 1047576, maxTokens: 32768, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-4.1-nano": { id: "openai/gpt-4.1-nano", name: "OpenAI: GPT-4.1 Nano", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.1, output: 0.4, cacheRead: 0.025, cacheWrite: 0 }, contextWindow: 1047576, maxTokens: 32768, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-4.1-nano:batch": { id: "openai/gpt-4.1-nano:batch", name: "OpenAI: GPT-4.1 Nano (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.05, output: 0.2, cacheRead: 0.0125, cacheWrite: 0 }, contextWindow: 1047576, maxTokens: 32768, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-4.1:batch": { id: "openai/gpt-4.1:batch", name: "OpenAI: GPT-4.1 (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 1, output: 4, cacheRead: 0.25, cacheWrite: 0 }, contextWindow: 1047576, maxTokens: 32768, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-4o": { id: "openai/gpt-4o", name: "OpenAI: GPT-4o", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 2.5, output: 10, cacheRead: 1.25, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-4o-2024-05-13": { id: "openai/gpt-4o-2024-05-13", name: "OpenAI: GPT-4o (2024-05-13)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 5, output: 15, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4096, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-4o-2024-08-06": { id: "openai/gpt-4o-2024-08-06", name: "OpenAI: GPT-4o (2024-08-06)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 2.5, output: 10, cacheRead: 1.25, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-4o-2024-11-20": { id: "openai/gpt-4o-2024-11-20", name: "OpenAI: GPT-4o (2024-11-20)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 2.5, output: 10, cacheRead: 1.25, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-4o-mini": { id: "openai/gpt-4o-mini", name: "OpenAI: GPT-4o-mini", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.15, output: 0.6, cacheRead: 0.075, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-4o-mini-2024-07-18": { id: "openai/gpt-4o-mini-2024-07-18", name: "OpenAI: GPT-4o-mini (2024-07-18)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.15, output: 0.6, cacheRead: 0.075, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-4o-mini:batch": { id: "openai/gpt-4o-mini:batch", name: "OpenAI: GPT-4o-mini (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.075, output: 0.3, cacheRead: 0.0375, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-4o:batch": { id: "openai/gpt-4o:batch", name: "OpenAI: GPT-4o (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 1.25, output: 5, cacheRead: 0.625, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-5": { id: "openai/gpt-5", name: "OpenAI: GPT-5", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-5-codex:batch": { id: "openai/gpt-5-codex:batch", name: "OpenAI: GPT-5 Codex (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.625, output: 5, cacheRead: 0.0625, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-5-mini": { id: "openai/gpt-5-mini", name: "OpenAI: GPT-5 Mini", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 2, cacheRead: 0.025, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-5-mini:batch": { id: "openai/gpt-5-mini:batch", name: "OpenAI: GPT-5 Mini (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.125, output: 1, cacheRead: 0.0125, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-5-nano": { id: "openai/gpt-5-nano", name: "OpenAI: GPT-5 Nano", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.05, output: 0.4, cacheRead: 5e-3, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-5-nano:batch": { id: "openai/gpt-5-nano:batch", name: "OpenAI: GPT-5 Nano (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.025, output: 0.2, cacheRead: 25e-4, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-5-pro": { id: "openai/gpt-5-pro", name: "OpenAI: GPT-5 Pro", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 15, output: 120, cacheRead: 0, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-5-pro:batch": { id: "openai/gpt-5-pro:batch", name: "OpenAI: GPT-5 Pro (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 7.5, output: 60, cacheRead: 0, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-5.1": { id: "openai/gpt-5.1", name: "OpenAI: GPT-5.1", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-5.1-codex": { id: "openai/gpt-5.1-codex", name: "OpenAI: GPT-5.1-Codex", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0.13, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-5.1-codex-max": { id: "openai/gpt-5.1-codex-max", name: "OpenAI: GPT-5.1-Codex-Max", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-5.1-codex-mini": { id: "openai/gpt-5.1-codex-mini", name: "OpenAI: GPT-5.1-Codex-Mini", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 2, cacheRead: 0.03, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-5.1:batch": { id: "openai/gpt-5.1:batch", name: "OpenAI: GPT-5.1 (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.625, output: 5, cacheRead: 0.0625, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-5.2": { id: "openai/gpt-5.2", name: "OpenAI: GPT-5.2", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.2-chat": { id: "openai/gpt-5.2-chat", name: "OpenAI: GPT-5.2 Chat", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 32e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.2-codex": { id: "openai/gpt-5.2-codex", name: "OpenAI: GPT-5.2-Codex", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.2-pro": { id: "openai/gpt-5.2-pro", name: "OpenAI: GPT-5.2 Pro", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 21, output: 168, cacheRead: 0, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.2-pro:batch": { id: "openai/gpt-5.2-pro:batch", name: "OpenAI: GPT-5.2 Pro (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 10.5, output: 84, cacheRead: 0, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.2:batch": { id: "openai/gpt-5.2:batch", name: "OpenAI: GPT-5.2 (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.875, output: 7, cacheRead: 0.0875, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.3-codex": { id: "openai/gpt-5.3-codex", name: "OpenAI: GPT-5.3-Codex", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.4": { id: "openai/gpt-5.4", name: "OpenAI: GPT-5.4", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 2.5, output: 15, cacheRead: 0.25, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.4-mini": { id: "openai/gpt-5.4-mini", name: "OpenAI: GPT-5.4 Mini", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.75, output: 4.5, cacheRead: 0.075, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.4-mini:batch": { id: "openai/gpt-5.4-mini:batch", name: "OpenAI: GPT-5.4 Mini (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.375, output: 2.25, cacheRead: 0.0375, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.4-nano": { id: "openai/gpt-5.4-nano", name: "OpenAI: GPT-5.4 Nano", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 1.25, cacheRead: 0.02, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.4-nano:batch": { id: "openai/gpt-5.4-nano:batch", name: "OpenAI: GPT-5.4 Nano (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.1, output: 0.625, cacheRead: 0.01, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.4-pro": { id: "openai/gpt-5.4-pro", name: "OpenAI: GPT-5.4 Pro", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 30, output: 180, cacheRead: 0, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.4-pro:batch": { id: "openai/gpt-5.4-pro:batch", name: "OpenAI: GPT-5.4 Pro (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 15, output: 90, cacheRead: 0, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.4:batch": { id: "openai/gpt-5.4:batch", name: "OpenAI: GPT-5.4 (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 7.5, cacheRead: 0.125, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.5": { id: "openai/gpt-5.5", name: "OpenAI: GPT-5.5", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.5-pro": { id: "openai/gpt-5.5-pro", name: "OpenAI: GPT-5.5 Pro", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 30, output: 180, cacheRead: 0, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh", off: null, minimal: null, low: null } }, "openai/gpt-5.5-pro:batch": { id: "openai/gpt-5.5-pro:batch", name: "OpenAI: GPT-5.5 Pro (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 15, output: 90, cacheRead: 0, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.5:batch": { id: "openai/gpt-5.5:batch", name: "OpenAI: GPT-5.5 (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 2.5, output: 15, cacheRead: 0.25, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.6-luna": { id: "openai/gpt-5.6-luna", name: "OpenAI: GPT-5.6 Luna", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 1.2, cacheRead: 0.02, cacheWrite: 0.25 }, contextWindow: 105e4, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "openai/gpt-5.6-luna-pro": { id: "openai/gpt-5.6-luna-pro", name: "OpenAI: GPT-5.6 Luna Pro", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 1.2, cacheRead: 0.02, cacheWrite: 0.25 }, contextWindow: 105e4, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "openai/gpt-5.6-luna-pro:batch": { id: "openai/gpt-5.6-luna-pro:batch", name: "OpenAI: GPT-5.6 Luna Pro (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.1, output: 0.6, cacheRead: 0.01, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "openai/gpt-5.6-luna:batch": { id: "openai/gpt-5.6-luna:batch", name: "OpenAI: GPT-5.6 Luna (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.1, output: 0.6, cacheRead: 0.01, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "openai/gpt-5.6-sol": { id: "openai/gpt-5.6-sol", name: "OpenAI: GPT-5.6 Sol", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, contextWindow: 105e4, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "openai/gpt-5.6-sol-pro": { id: "openai/gpt-5.6-sol-pro", name: "OpenAI: GPT-5.6 Sol Pro", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, contextWindow: 105e4, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "openai/gpt-5.6-sol-pro:batch": { id: "openai/gpt-5.6-sol-pro:batch", name: "OpenAI: GPT-5.6 Sol Pro (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, contextWindow: 105e4, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "openai/gpt-5.6-sol:batch": { id: "openai/gpt-5.6-sol:batch", name: "OpenAI: GPT-5.6 Sol (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, contextWindow: 105e4, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "openai/gpt-5.6-terra": { id: "openai/gpt-5.6-terra", name: "OpenAI: GPT-5.6 Terra", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 2.5 }, contextWindow: 105e4, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "openai/gpt-5.6-terra-pro": { id: "openai/gpt-5.6-terra-pro", name: "OpenAI: GPT-5.6 Terra Pro", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 2.5 }, contextWindow: 105e4, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "openai/gpt-5.6-terra-pro:batch": { id: "openai/gpt-5.6-terra-pro:batch", name: "OpenAI: GPT-5.6 Terra Pro (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 6, cacheRead: 0.1, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "openai/gpt-5.6-terra:batch": { id: "openai/gpt-5.6-terra:batch", name: "OpenAI: GPT-5.6 Terra (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 6, cacheRead: 0.1, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh", max: "max" } }, "openai/gpt-5:batch": { id: "openai/gpt-5:batch", name: "OpenAI: GPT-5 (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.625, output: 5, cacheRead: 0.0625, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-audio": { id: "openai/gpt-audio", name: "OpenAI: GPT Audio", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 2.5, output: 10, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-audio-mini": { id: "openai/gpt-audio-mini", name: "OpenAI: GPT Audio Mini", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.6, output: 2.4, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-chat-latest": { id: "openai/gpt-chat-latest", name: "OpenAI: GPT Chat Latest", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-oss-120b": { id: "openai/gpt-oss-120b", name: "OpenAI: gpt-oss-120b", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.037, output: 0.17, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 131072, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-oss-20b": { id: "openai/gpt-oss-20b", name: "OpenAI: gpt-oss-20b", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.03, output: 0.13, cacheRead: 0.03, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 131072, compat: { thinkingFormat: "openrouter" } }, "openai/gpt-oss-safeguard-20b": { id: "openai/gpt-oss-safeguard-20b", name: "OpenAI: gpt-oss-safeguard-20b", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.075, output: 0.3, cacheRead: 0.0375, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 65536, compat: { thinkingFormat: "openrouter" } }, "openai/o1": { id: "openai/o1", name: "OpenAI: o1", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 15, output: 60, cacheRead: 7.5, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, compat: { thinkingFormat: "openrouter" } }, "openai/o1:batch": { id: "openai/o1:batch", name: "OpenAI: o1 (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 7.5, output: 30, cacheRead: 3.75, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, compat: { thinkingFormat: "openrouter" } }, "openai/o3": { id: "openai/o3", name: "OpenAI: o3", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, compat: { thinkingFormat: "openrouter" } }, "openai/o3-mini": { id: "openai/o3-mini", name: "OpenAI: o3 Mini", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 1.1, output: 4.4, cacheRead: 0.55, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, compat: { thinkingFormat: "openrouter" } }, "openai/o3-mini-high": { id: "openai/o3-mini-high", name: "OpenAI: o3 Mini High", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 1.1, output: 4.4, cacheRead: 0.55, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, compat: { thinkingFormat: "openrouter" } }, "openai/o3-mini-high:batch": { id: "openai/o3-mini-high:batch", name: "OpenAI: o3 Mini High (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.55, output: 2.2, cacheRead: 0.275, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, compat: { thinkingFormat: "openrouter" } }, "openai/o3-mini:batch": { id: "openai/o3-mini:batch", name: "OpenAI: o3 Mini (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.55, output: 2.2, cacheRead: 0.275, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, compat: { thinkingFormat: "openrouter" } }, "openai/o3-pro": { id: "openai/o3-pro", name: "OpenAI: o3 Pro", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 20, output: 80, cacheRead: 0, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, compat: { thinkingFormat: "openrouter" } }, "openai/o3-pro:batch": { id: "openai/o3-pro:batch", name: "OpenAI: o3 Pro (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 10, output: 40, cacheRead: 0, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, compat: { thinkingFormat: "openrouter" } }, "openai/o3:batch": { id: "openai/o3:batch", name: "OpenAI: o3 (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 4, cacheRead: 0.25, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, compat: { thinkingFormat: "openrouter" } }, "openai/o4-mini": { id: "openai/o4-mini", name: "OpenAI: o4 Mini", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1.1, output: 4.4, cacheRead: 0.275, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, compat: { thinkingFormat: "openrouter" } }, "openai/o4-mini-high": { id: "openai/o4-mini-high", name: "OpenAI: o4 Mini High", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1.1, output: 4.4, cacheRead: 0.275, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, compat: { thinkingFormat: "openrouter" } }, "openai/o4-mini-high:batch": { id: "openai/o4-mini-high:batch", name: "OpenAI: o4 Mini High (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.55, output: 2.2, cacheRead: 0.1375, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, compat: { thinkingFormat: "openrouter" } }, "openai/o4-mini:batch": { id: "openai/o4-mini:batch", name: "OpenAI: o4 Mini (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.55, output: 2.2, cacheRead: 0.1375, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5, compat: { thinkingFormat: "openrouter" } }, "openrouter/auto": { id: "openrouter/auto", name: "Auto Router", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: -1e6, output: -1e6, cacheRead: 0, cacheWrite: 0 }, contextWindow: 2e6, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "openrouter/auto-beta": { id: "openrouter/auto-beta", name: "Auto Router (Beta)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: -1e6, output: -1e6, cacheRead: 0, cacheWrite: 0 }, contextWindow: 2e6, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "openrouter/free": { id: "openrouter/free", name: "Free Models Router", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "openrouter/fusion": { id: "openrouter/fusion", name: "OpenRouter: Fusion", api: "openai-completions", provider: "openrouter", baseUrl: "https://openrouter.ai/api/v1", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 3e4, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "poolside/laguna-s-2.1": { id: "poolside/laguna-s-2.1", name: "Poolside: Laguna S 2.1", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.09, output: 0.18, cacheRead: 9e-3, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "poolside/laguna-s-2.1:free": { id: "poolside/laguna-s-2.1:free", name: "Poolside: Laguna S 2.1 (free)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "poolside/laguna-xs-2.1": { id: "poolside/laguna-xs-2.1", name: "Poolside: Laguna XS 2.1", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.06, output: 0.12, cacheRead: 0.03, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "poolside/laguna-xs-2.1:free": { id: "poolside/laguna-xs-2.1:free", name: "Poolside: Laguna XS 2.1 (free)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen-2.5-72b-instruct": { id: "qwen/qwen-2.5-72b-instruct", name: "Qwen2.5 72B Instruct", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.36, output: 0.4, cacheRead: 0, cacheWrite: 0 }, contextWindow: 32768, maxTokens: 16384, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen-2.5-7b-instruct": { id: "qwen/qwen-2.5-7b-instruct", name: "Qwen: Qwen2.5 7B Instruct", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.1, output: 0.2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 32768, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen-plus": { id: "qwen/qwen-plus", name: "Qwen: Qwen-Plus", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.26, output: 0.78, cacheRead: 0.052, cacheWrite: 0.325 }, contextWindow: 1e6, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen-plus-2025-07-28": { id: "qwen/qwen-plus-2025-07-28", name: "Qwen: Qwen Plus 0728", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.26, output: 0.78, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen-plus-2025-07-28:thinking": { id: "qwen/qwen-plus-2025-07-28:thinking", name: "Qwen: Qwen Plus 0728 (thinking)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.26, output: 0.78, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-14b": { id: "qwen/qwen3-14b", name: "Qwen: Qwen3 14B", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.12, output: 0.24, cacheRead: 0, cacheWrite: 0 }, contextWindow: 40960, maxTokens: 16384, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-235b-a22b": { id: "qwen/qwen3-235b-a22b", name: "Qwen: Qwen3 235B A22B", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.455, output: 1.82, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 8192, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-235b-a22b-2507": { id: "qwen/qwen3-235b-a22b-2507", name: "Qwen: Qwen3 235B A22B Instruct 2507", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.09, output: 0.55, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 16384, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-235b-a22b-thinking-2507": { id: "qwen/qwen3-235b-a22b-thinking-2507", name: "Qwen: Qwen3 235B A22B Thinking 2507", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.23, output: 2.3, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-30b-a3b": { id: "qwen/qwen3-30b-a3b", name: "Qwen: Qwen3 30B A3B", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.12, output: 0.5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 40960, maxTokens: 16384, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-30b-a3b-instruct-2507": { id: "qwen/qwen3-30b-a3b-instruct-2507", name: "Qwen: Qwen3 30B A3B Instruct 2507", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.04815, output: 0.19305, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 32e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-30b-a3b-thinking-2507": { id: "qwen/qwen3-30b-a3b-thinking-2507", name: "Qwen: Qwen3 30B A3B Thinking 2507", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.2, output: 2.4, cacheRead: 0, cacheWrite: 0 }, contextWindow: 81920, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-32b": { id: "qwen/qwen3-32b", name: "Qwen: Qwen3 32B", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.08, output: 0.28, cacheRead: 0, cacheWrite: 0 }, contextWindow: 40960, maxTokens: 16384, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-8b": { id: "qwen/qwen3-8b", name: "Qwen: Qwen3 8B", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.117, output: 0.455, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 8192, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-coder": { id: "qwen/qwen3-coder", name: "Qwen: Qwen3 Coder 480B A35B", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.3, output: 1, cacheRead: 0.1, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-coder-30b-a3b-instruct": { id: "qwen/qwen3-coder-30b-a3b-instruct", name: "Qwen: Qwen3 Coder 30B A3B Instruct", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.07, output: 0.28, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-coder-flash": { id: "qwen/qwen3-coder-flash", name: "Qwen: Qwen3 Coder Flash", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.195, output: 0.975, cacheRead: 0.039, cacheWrite: 0.24375 }, contextWindow: 1e6, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-coder-next": { id: "qwen/qwen3-coder-next", name: "Qwen: Qwen3 Coder Next", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.12, output: 0.8, cacheRead: 0.07, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-coder-plus": { id: "qwen/qwen3-coder-plus", name: "Qwen: Qwen3 Coder Plus", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.65, output: 3.25, cacheRead: 0.13, cacheWrite: 0.8125 }, contextWindow: 1e6, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-max": { id: "qwen/qwen3-max", name: "Qwen: Qwen3 Max", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.78, output: 3.9, cacheRead: 0.156, cacheWrite: 0.975 }, contextWindow: 262144, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-max-thinking": { id: "qwen/qwen3-max-thinking", name: "Qwen: Qwen3 Max Thinking", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.78, output: 3.9, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-next-80b-a3b-instruct": { id: "qwen/qwen3-next-80b-a3b-instruct", name: "Qwen: Qwen3 Next 80B A3B Instruct", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.1, output: 1.1, cacheRead: 0.07, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-next-80b-a3b-thinking": { id: "qwen/qwen3-next-80b-a3b-thinking", name: "Qwen: Qwen3 Next 80B A3B Thinking", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.15, output: 1.2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-vl-235b-a22b-instruct": { id: "qwen/qwen3-vl-235b-a22b-instruct", name: "Qwen: Qwen3 VL 235B A22B Instruct", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.21, output: 1.9, cacheRead: 0.1, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-vl-235b-a22b-thinking": { id: "qwen/qwen3-vl-235b-a22b-thinking", name: "Qwen: Qwen3 VL 235B A22B Thinking", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.4, output: 4, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-vl-30b-a3b-instruct": { id: "qwen/qwen3-vl-30b-a3b-instruct", name: "Qwen: Qwen3 VL 30B A3B Instruct", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.13, output: 0.52, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-vl-30b-a3b-thinking": { id: "qwen/qwen3-vl-30b-a3b-thinking", name: "Qwen: Qwen3 VL 30B A3B Thinking", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 2.4, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-vl-32b-instruct": { id: "qwen/qwen3-vl-32b-instruct", name: "Qwen: Qwen3 VL 32B Instruct", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.104, output: 0.416, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-vl-8b-instruct": { id: "qwen/qwen3-vl-8b-instruct", name: "Qwen: Qwen3 VL 8B Instruct", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.117, output: 0.455, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3-vl-8b-thinking": { id: "qwen/qwen3-vl-8b-thinking", name: "Qwen: Qwen3 VL 8B Thinking", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.18, output: 2.1, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3.5-122b-a10b": { id: "qwen/qwen3.5-122b-a10b", name: "Qwen: Qwen3.5-122B-A10B", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.26, output: 2.08, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3.5-27b": { id: "qwen/qwen3.5-27b", name: "Qwen: Qwen3.5-27B", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.195, output: 1.56, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3.5-35b-a3b": { id: "qwen/qwen3.5-35b-a3b", name: "Qwen: Qwen3.5-35B-A3B", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 1.25, cacheRead: 0.25, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3.5-397b-a17b": { id: "qwen/qwen3.5-397b-a17b", name: "Qwen: Qwen3.5 397B A17B", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.5, output: 3.6, cacheRead: 0.3, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3.5-9b": { id: "qwen/qwen3.5-9b", name: "Qwen: Qwen3.5-9B", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.1, output: 0.15, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3.5-flash-02-23": { id: "qwen/qwen3.5-flash-02-23", name: "Qwen: Qwen3.5-Flash", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.065, output: 0.26, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3.5-plus-02-15": { id: "qwen/qwen3.5-plus-02-15", name: "Qwen: Qwen3.5 Plus 2026-02-15", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.26, output: 1.56, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3.5-plus-20260420": { id: "qwen/qwen3.5-plus-20260420", name: "Qwen: Qwen3.5 Plus 2026-04-20", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 1.8, cacheRead: 0, cacheWrite: 0.375 }, contextWindow: 1e6, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3.6-27b": { id: "qwen/qwen3.6-27b", name: "Qwen: Qwen3.6 27B", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.32, output: 3.2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 81920, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3.6-35b-a3b": { id: "qwen/qwen3.6-35b-a3b", name: "Qwen: Qwen3.6 35B A3B", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.14, output: 1, cacheRead: 0.05, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3.6-flash": { id: "qwen/qwen3.6-flash", name: "Qwen: Qwen3.6 Flash", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.1875, output: 1.125, cacheRead: 0, cacheWrite: 0.234375 }, contextWindow: 1e6, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3.6-max-preview": { id: "qwen/qwen3.6-max-preview", name: "Qwen: Qwen3.6 Max Preview", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 1.027, output: 6.162, cacheRead: 0, cacheWrite: 1.28375 }, contextWindow: 262144, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3.6-plus": { id: "qwen/qwen3.6-plus", name: "Qwen: Qwen3.6 Plus", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.325, output: 1.95, cacheRead: 0, cacheWrite: 0.40625 }, contextWindow: 1e6, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3.7-flash": { id: "qwen/qwen3.7-flash", name: "Qwen: Qwen3.7 Flash", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.03, output: 0.13, cacheRead: 6e-3, cacheWrite: 0.038 }, contextWindow: 1e6, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3.7-max": { id: "qwen/qwen3.7-max", name: "Qwen: Qwen3.7 Max", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 1.475, output: 4.425, cacheRead: 0.295, cacheWrite: 1.84375 }, contextWindow: 1e6, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3.7-plus": { id: "qwen/qwen3.7-plus", name: "Qwen: Qwen3.7 Plus", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.32, output: 1.28, cacheRead: 0.064, cacheWrite: 0.4 }, contextWindow: 1e6, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3.8-2.4t-a95b": { id: "qwen/qwen3.8-2.4t-a95b", name: "Qwen: Qwen3.8 2.4T A95B", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 2, output: 6, cacheRead: 0.25, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3.8-27b": { id: "qwen/qwen3.8-27b", name: "Qwen: Qwen3.8 27B", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.4, output: 3, cacheRead: 0.05, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "qwen/qwen3.8-max": { id: "qwen/qwen3.8-max", name: "Qwen: Qwen3.8 Max", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 6, cacheRead: 0.25, cacheWrite: 2.5 }, contextWindow: 1e6, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "rekaai/reka-edge": { id: "rekaai/reka-edge", name: "Reka Edge", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text", "image"], cost: { input: 0.1, output: 0.1, cacheRead: 0, cacheWrite: 0 }, contextWindow: 16384, maxTokens: 16384, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "relace/relace-search": { id: "relace/relace-search", name: "Relace: Relace Search", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 1, output: 3, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 128e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "sakana/fugu-ultra": { id: "sakana/fugu-ultra", name: "Sakana: Fugu Ultra", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 128e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "sakana/sakana-namazu": { id: "sakana/sakana-namazu", name: "Sakana: Sakana Namazu", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "sao10k/l3.1-euryale-70b": { id: "sao10k/l3.1-euryale-70b", name: "Sao10K: Llama 3.1 Euryale 70B v2.2", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.85, output: 0.85, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 16384, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "stealth/ox-alpha": { id: "stealth/ox-alpha", name: "Ox Alpha", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "stepfun/step-3.5-flash": { id: "stepfun/step-3.5-flash", name: "StepFun: Step 3.5 Flash", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.1, output: 0.3, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "stepfun/step-3.7-flash": { id: "stepfun/step-3.7-flash", name: "StepFun: Step 3.7 Flash", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 1.15, cacheRead: 0.04, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 256e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "tencent/hy3": { id: "tencent/hy3", name: "Tencent: Hy3", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.132, output: 0.528, cacheRead: 0.033, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 128e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "tencent/hy3-preview": { id: "tencent/hy3-preview", name: "Tencent: Hy3 preview", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.18, output: 0.6, cacheRead: 0.06, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "thedrummer/unslopnemo-12b": { id: "thedrummer/unslopnemo-12b", name: "TheDrummer: UnslopNemo 12B", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: false, input: ["text"], cost: { input: 0.4, output: 0.4, cacheRead: 0, cacheWrite: 0 }, contextWindow: 32768, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "thinkingmachines/inkling": { id: "thinkingmachines/inkling", name: "Thinking Machines: Inkling", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 4.05, cacheRead: 0.17, cacheWrite: 0 }, contextWindow: 524288, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "thinkingmachines/inkling-small": { id: "thinkingmachines/inkling-small", name: "Thinking Machines: Inkling Small", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.45, output: 1.2, cacheRead: 0.1, cacheWrite: 0 }, contextWindow: 524288, maxTokens: 262144, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "thinkingmachines/inkling-small:free": { id: "thinkingmachines/inkling-small:free", name: "Thinking Machines: Inkling Small (free)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "thinkingmachines/inkling:batch": { id: "thinkingmachines/inkling:batch", name: "Thinking Machines: Inkling (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 4.05, cacheRead: 0.17, cacheWrite: 0 }, contextWindow: 524288, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "thinkingmachines/inkling:free": { id: "thinkingmachines/inkling:free", name: "Thinking Machines: Inkling (free)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "upstage/solar-pro-3": { id: "upstage/solar-pro-3", name: "Upstage: Solar Pro 3", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.15, output: 0.6, cacheRead: 0.015, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "upstage/solar-pro4": { id: "upstage/solar-pro4", name: "Upstage: Solar Pro 4", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.03, output: 0.12, cacheRead: 6e-3, cacheWrite: 0 }, contextWindow: 524288, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "x-ai/grok-4.20": { id: "x-ai/grok-4.20", name: "SpaceXAI: Grok 4.20", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 2.5, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 2e6, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "x-ai/grok-4.3": { id: "x-ai/grok-4.3", name: "SpaceXAI: Grok 4.3", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 2.5, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "x-ai/grok-4.5": { id: "x-ai/grok-4.5", name: "SpaceXAI: Grok 4.5", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 6, cacheRead: 0.3, cacheWrite: 0 }, contextWindow: 5e5, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "x-ai/grok-4.6": { id: "x-ai/grok-4.6", name: "SpaceXAI: Grok 4.6", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 6, cacheRead: 0.5, cacheWrite: 0 }, contextWindow: 5e5, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "x-ai/grok-build-0.1": { id: "x-ai/grok-build-0.1", name: "SpaceXAI: Grok Build 0.1", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 2, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "xiaomi/mimo-v2.5": { id: "xiaomi/mimo-v2.5", name: "Xiaomi: MiMo-V2.5", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.14, output: 0.28, cacheRead: 28e-4, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "xiaomi/mimo-v2.5-pro": { id: "xiaomi/mimo-v2.5-pro", name: "Xiaomi: MiMo-V2.5-Pro", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.435, output: 0.87, cacheRead: 36e-4, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "z-ai/glm-4.5": { id: "z-ai/glm-4.5", name: "Z.ai: GLM 4.5", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.6, output: 2.2, cacheRead: 0.11, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 98304, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "z-ai/glm-4.5-air": { id: "z-ai/glm-4.5-air", name: "Z.ai: GLM 4.5 Air", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.13, output: 0.85, cacheRead: 0.025, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 98304, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "z-ai/glm-4.5v": { id: "z-ai/glm-4.5v", name: "Z.ai: GLM 4.5V", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.6, output: 1.8, cacheRead: 0.11, cacheWrite: 0 }, contextWindow: 65536, maxTokens: 16384, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "z-ai/glm-4.6": { id: "z-ai/glm-4.6", name: "Z.ai: GLM 4.6", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.5, output: 2, cacheRead: 0.1, cacheWrite: 0 }, contextWindow: 202752, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "z-ai/glm-4.6v": { id: "z-ai/glm-4.6v", name: "Z.ai: GLM 4.6V", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 0.9, cacheRead: 0.055, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 32768, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "z-ai/glm-4.7": { id: "z-ai/glm-4.7", name: "Z.ai: GLM 4.7", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.4, output: 1.75, cacheRead: 0.08, cacheWrite: 0 }, contextWindow: 202752, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "z-ai/glm-4.7-flash": { id: "z-ai/glm-4.7-flash", name: "Z.ai: GLM 4.7 Flash", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.06, output: 0.4, cacheRead: 0.01, cacheWrite: 0 }, contextWindow: 202752, maxTokens: 16384, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "z-ai/glm-5": { id: "z-ai/glm-5", name: "Z.ai: GLM 5", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.6, output: 1.9, cacheRead: 0.119, cacheWrite: 0 }, contextWindow: 198e3, maxTokens: 128e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "z-ai/glm-5-turbo": { id: "z-ai/glm-5-turbo", name: "Z.ai: GLM 5 Turbo", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 1.2, output: 4, cacheRead: 0.24, cacheWrite: 0 }, contextWindow: 202752, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "z-ai/glm-5.1": { id: "z-ai/glm-5.1", name: "Z.ai: GLM 5.1", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.966, output: 3.036, cacheRead: 0.1794, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 128e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "z-ai/glm-5.2": { id: "z-ai/glm-5.2", name: "Z.ai: GLM 5.2", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.966, output: 3.036, cacheRead: 0.1932, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" }, thinkingLevelMap: { xhigh: "xhigh" } }, "z-ai/glm-5.2:batch": { id: "z-ai/glm-5.2:batch", name: "Z.ai: GLM 5.2 (batch)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, contextWindow: 1048575, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "z-ai/glm-5.2:free": { id: "z-ai/glm-5.2:free", name: "Z.ai: GLM 5.2 (free)", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 256e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "z-ai/glm-5.3": { id: "z-ai/glm-5.3", name: "Z.ai: GLM 5.3", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "z-ai/glm-5v-turbo": { id: "z-ai/glm-5v-turbo", name: "Z.ai: GLM 5V Turbo", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1.2, output: 4, cacheRead: 0.24, cacheWrite: 0 }, contextWindow: 202752, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "~anthropic/claude-fable-latest": { id: "~anthropic/claude-fable-latest", name: "Anthropic: Claude Fable Latest", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 }, contextWindow: 1e6, maxTokens: 128e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter", cacheControlFormat: "anthropic" } }, "~anthropic/claude-haiku-latest": { id: "~anthropic/claude-haiku-latest", name: "Anthropic Claude Haiku Latest", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, contextWindow: 2e5, maxTokens: 64e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter", cacheControlFormat: "anthropic" } }, "~anthropic/claude-opus-latest": { id: "~anthropic/claude-opus-latest", name: "Anthropic: Claude Opus Latest", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter", cacheControlFormat: "anthropic" } }, "~anthropic/claude-sonnet-latest": { id: "~anthropic/claude-sonnet-latest", name: "Anthropic Claude Sonnet Latest", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, contextWindow: 1e6, maxTokens: 128e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter", cacheControlFormat: "anthropic" } }, "~deepseek/deepseek-v4-flash-latest": { id: "~deepseek/deepseek-v4-flash-latest", name: "DeepSeek V4 Flash Latest", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 0.04, output: 0.08, cacheRead: 8e-3, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 1048576, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter", requiresReasoningContentOnAssistantMessages: true }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", max: null, xhigh: "xhigh" } }, "~google/gemini-flash-latest": { id: "~google/gemini-flash-latest", name: "Google Gemini Flash Latest", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.375, output: 1.875, cacheRead: 0.0375, cacheWrite: 0.020833 }, contextWindow: 1048576, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "~google/gemini-pro-latest": { id: "~google/gemini-pro-latest", name: "Google Gemini Pro Latest", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 0.375 }, contextWindow: 1048576, maxTokens: 65536, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "~moonshotai/kimi-latest": { id: "~moonshotai/kimi-latest", name: "MoonshotAI Kimi Latest", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 2.6, output: 13, cacheRead: 0.29, cacheWrite: 0 }, contextWindow: 974842, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "~openai/gpt-latest": { id: "~openai/gpt-latest", name: "OpenAI GPT Latest", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, contextWindow: 105e4, maxTokens: 128e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "~openai/gpt-mini-latest": { id: "~openai/gpt-mini-latest", name: "OpenAI GPT Mini Latest", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 0.75, output: 4.5, cacheRead: 0.075, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "~x-ai/grok-latest": { id: "~x-ai/grok-latest", name: "xAI: Grok Latest", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 6, cacheRead: 0.5, cacheWrite: 0 }, contextWindow: 5e5, maxTokens: 4096, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } }, "~z-ai/glm-latest": { id: "~z-ai/glm-latest", name: "Z.ai: GLM Latest", api: "openai-completions", baseUrl: "https://openrouter.ai/api/v1", provider: "openrouter", reasoning: true, input: ["text"], cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072, compat: { supportsDeveloperRole: false, thinkingFormat: "openrouter" } } } };
|
|
3394
3828
|
|
|
3395
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3829
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js
|
|
3396
3830
|
var OPENROUTER_MODELS = flattenModelCatalog("openrouter", openrouter_default);
|
|
3397
3831
|
|
|
3398
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3832
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan.json
|
|
3399
3833
|
var qwen_token_plan_default = { "openai-completions": { "MiniMax-M2.5": { id: "MiniMax-M2.5", name: "MiniMax-M2.5", api: "openai-completions", provider: "qwen-token-plan", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: false }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 196608, maxTokens: 32768 }, "deepseek-v3.2": { id: "deepseek-v3.2", name: "DeepSeek V3.2", api: "openai-completions", provider: "qwen-token-plan", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: false }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 65536 }, "deepseek-v4-flash": { id: "deepseek-v4-flash", name: "DeepSeek V4 Flash", api: "openai-completions", provider: "qwen-token-plan", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: true }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 384e3 }, "deepseek-v4-flash-0731": { id: "deepseek-v4-flash-0731", name: "DeepSeek V4 Flash 0731", api: "openai-completions", provider: "qwen-token-plan", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: true }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 384e3 }, "deepseek-v4-pro": { id: "deepseek-v4-pro", name: "DeepSeek V4 Pro", api: "openai-completions", provider: "qwen-token-plan", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: true }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 384e3 }, "deepseek-v4-pro-0813": { id: "deepseek-v4-pro-0813", name: "DeepSeek V4 Pro 0813", api: "openai-completions", provider: "qwen-token-plan", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: true }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 384e3 }, "glm-5": { id: "glm-5", name: "GLM-5", api: "openai-completions", provider: "qwen-token-plan", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: true }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 202752, maxTokens: 16384 }, "glm-5.1": { id: "glm-5.1", name: "GLM-5.1", api: "openai-completions", provider: "qwen-token-plan", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: true }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 202752, maxTokens: 128e3 }, "glm-5.2": { id: "glm-5.2", name: "GLM-5.2", api: "openai-completions", provider: "qwen-token-plan", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: true }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 131072 }, "kimi-k2.5": { id: "kimi-k2.5", name: "Kimi K2.5", api: "openai-completions", provider: "qwen-token-plan", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: false }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 98304 }, "kimi-k2.6": { id: "kimi-k2.6", name: "Kimi K2.6", api: "openai-completions", provider: "qwen-token-plan", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: false }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144 }, "kimi-k2.7-code": { id: "kimi-k2.7-code", name: "Kimi K2.7 Code", api: "openai-completions", provider: "qwen-token-plan", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: false }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144 }, "qwen3.6-flash": { id: "qwen3.6-flash", name: "Qwen3.6 Flash", api: "openai-completions", provider: "qwen-token-plan", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: false }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 65536 }, "qwen3.6-plus": { id: "qwen3.6-plus", name: "Qwen3.6 Plus", api: "openai-completions", provider: "qwen-token-plan", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: false }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 65536 }, "qwen3.7-max": { id: "qwen3.7-max", name: "Qwen3.7 Max", api: "openai-completions", provider: "qwen-token-plan", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: false }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 131072 }, "qwen3.7-plus": { id: "qwen3.7-plus", name: "Qwen3.7 Plus", api: "openai-completions", provider: "qwen-token-plan", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: false }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 65536 }, "qwen3.8-max": { id: "qwen3.8-max", name: "Qwen3.8 Max", api: "openai-completions", provider: "qwen-token-plan", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: true }, thinkingLevelMap: { minimal: null, low: "low", medium: "medium", high: null, xhigh: "xhigh", max: null }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 131072 } } };
|
|
3400
3834
|
|
|
3401
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3835
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan.models.js
|
|
3402
3836
|
var QWEN_TOKEN_PLAN_MODELS = flattenModelCatalog("qwen-token-plan", qwen_token_plan_default);
|
|
3403
3837
|
|
|
3404
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3838
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan-cn.json
|
|
3405
3839
|
var qwen_token_plan_cn_default = { "openai-completions": { "MiniMax-M2.5": { id: "MiniMax-M2.5", name: "MiniMax-M2.5", api: "openai-completions", provider: "qwen-token-plan-cn", baseUrl: "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: false }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 196608, maxTokens: 32768 }, "deepseek-v3.2": { id: "deepseek-v3.2", name: "DeepSeek V3.2", api: "openai-completions", provider: "qwen-token-plan-cn", baseUrl: "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: false }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 65536 }, "deepseek-v4-flash": { id: "deepseek-v4-flash", name: "DeepSeek V4 Flash", api: "openai-completions", provider: "qwen-token-plan-cn", baseUrl: "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: true }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 384e3 }, "deepseek-v4-flash-0731": { id: "deepseek-v4-flash-0731", name: "DeepSeek V4 Flash 0731", api: "openai-completions", provider: "qwen-token-plan-cn", baseUrl: "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: true }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 384e3 }, "deepseek-v4-pro": { id: "deepseek-v4-pro", name: "DeepSeek V4 Pro", api: "openai-completions", provider: "qwen-token-plan-cn", baseUrl: "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: true }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 384e3 }, "deepseek-v4-pro-0813": { id: "deepseek-v4-pro-0813", name: "DeepSeek V4 Pro 0813", api: "openai-completions", provider: "qwen-token-plan-cn", baseUrl: "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: true }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 384e3 }, "glm-5": { id: "glm-5", name: "GLM-5", api: "openai-completions", provider: "qwen-token-plan-cn", baseUrl: "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: true }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 202752, maxTokens: 16384 }, "glm-5.1": { id: "glm-5.1", name: "GLM-5.1", api: "openai-completions", provider: "qwen-token-plan-cn", baseUrl: "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: true }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 202752, maxTokens: 128e3 }, "glm-5.2": { id: "glm-5.2", name: "GLM-5.2", api: "openai-completions", provider: "qwen-token-plan-cn", baseUrl: "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: true }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 131072 }, "kimi-k2.5": { id: "kimi-k2.5", name: "Kimi K2.5", api: "openai-completions", provider: "qwen-token-plan-cn", baseUrl: "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: false }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 98304 }, "kimi-k2.6": { id: "kimi-k2.6", name: "Kimi K2.6", api: "openai-completions", provider: "qwen-token-plan-cn", baseUrl: "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: false }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144 }, "kimi-k2.7-code": { id: "kimi-k2.7-code", name: "Kimi K2.7 Code", api: "openai-completions", provider: "qwen-token-plan-cn", baseUrl: "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: false }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144 }, "qwen3.6-flash": { id: "qwen3.6-flash", name: "Qwen3.6 Flash", api: "openai-completions", provider: "qwen-token-plan-cn", baseUrl: "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: false }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 65536 }, "qwen3.6-plus": { id: "qwen3.6-plus", name: "Qwen3.6 Plus", api: "openai-completions", provider: "qwen-token-plan-cn", baseUrl: "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: false }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 65536 }, "qwen3.7-max": { id: "qwen3.7-max", name: "Qwen3.7 Max", api: "openai-completions", provider: "qwen-token-plan-cn", baseUrl: "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: false }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 131072 }, "qwen3.7-plus": { id: "qwen3.7-plus", name: "Qwen3.7 Plus", api: "openai-completions", provider: "qwen-token-plan-cn", baseUrl: "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: false }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 65536 }, "qwen3.8-max": { id: "qwen3.8-max", name: "Qwen3.8 Max", api: "openai-completions", provider: "qwen-token-plan-cn", baseUrl: "https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: true }, thinkingLevelMap: { minimal: null, low: "low", medium: "medium", high: null, xhigh: "xhigh", max: null }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 131072 } } };
|
|
3406
3840
|
|
|
3407
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3841
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan-cn.models.js
|
|
3408
3842
|
var QWEN_TOKEN_PLAN_CN_MODELS = flattenModelCatalog("qwen-token-plan-cn", qwen_token_plan_cn_default);
|
|
3409
3843
|
|
|
3410
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3844
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan-individual.json
|
|
3411
3845
|
var qwen_token_plan_individual_default = { "openai-completions": { "deepseek-v4-flash-0731": { id: "deepseek-v4-flash-0731", name: "DeepSeek V4 Flash 0731", api: "openai-completions", provider: "qwen-token-plan-individual", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: true }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 384e3 }, "deepseek-v4-pro": { id: "deepseek-v4-pro", name: "DeepSeek V4 Pro", api: "openai-completions", provider: "qwen-token-plan-individual", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: true }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 384e3 }, "deepseek-v4-pro-0813": { id: "deepseek-v4-pro-0813", name: "DeepSeek V4 Pro 0813", api: "openai-completions", provider: "qwen-token-plan-individual", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: true }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 384e3 }, "glm-5.2": { id: "glm-5.2", name: "GLM-5.2", api: "openai-completions", provider: "qwen-token-plan-individual", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: true }, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 131072 }, "qwen3.6-flash": { id: "qwen3.6-flash", name: "Qwen3.6 Flash", api: "openai-completions", provider: "qwen-token-plan-individual", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: false }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 65536 }, "qwen3.7-max": { id: "qwen3.7-max", name: "Qwen3.7 Max", api: "openai-completions", provider: "qwen-token-plan-individual", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: false }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 131072 }, "qwen3.7-plus": { id: "qwen3.7-plus", name: "Qwen3.7 Plus", api: "openai-completions", provider: "qwen-token-plan-individual", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: false }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 65536 }, "qwen3.8-max": { id: "qwen3.8-max", name: "Qwen3.8 Max", api: "openai-completions", provider: "qwen-token-plan-individual", baseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1", compat: { thinkingFormat: "qwen", supportsDeveloperRole: false, supportsStore: false, supportsReasoningEffort: true }, thinkingLevelMap: { minimal: null, low: "low", medium: "medium", high: null, xhigh: "xhigh", max: null }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 131072 } } };
|
|
3412
3846
|
|
|
3413
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3847
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/qwen-token-plan-individual.models.js
|
|
3414
3848
|
var QWEN_TOKEN_PLAN_INDIVIDUAL_MODELS = flattenModelCatalog("qwen-token-plan-individual", qwen_token_plan_individual_default);
|
|
3415
3849
|
|
|
3416
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3850
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/together.json
|
|
3417
3851
|
var together_default = { "openai-completions": { "MiniMaxAI/MiniMax-M2.7": { id: "MiniMaxAI/MiniMax-M2.7", name: "MiniMax-M2.7", api: "openai-completions", provider: "together", baseUrl: "https://api.together.ai/v1", reasoning: true, thinkingLevelMap: { off: null, minimal: null, low: null, medium: null }, input: ["text"], cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 202752, maxTokens: 131072 }, "MiniMaxAI/MiniMax-M3": { id: "MiniMaxAI/MiniMax-M3", name: "MiniMax-M3", api: "openai-completions", provider: "together", baseUrl: "https://api.together.ai/v1", reasoning: true, thinkingLevelMap: { minimal: null, low: null, medium: null }, input: ["text", "image"], cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "together", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 524288, maxTokens: 25e4 }, "Qwen/Qwen2.5-7B-Instruct-Turbo": { id: "Qwen/Qwen2.5-7B-Instruct-Turbo", name: "Qwen 2.5 7B Instruct Turbo", api: "openai-completions", provider: "together", baseUrl: "https://api.together.ai/v1", reasoning: false, input: ["text"], cost: { input: 0.3, output: 0.3, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "together", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 32768, maxTokens: 32768 }, "Qwen/Qwen3.5-9B": { id: "Qwen/Qwen3.5-9B", name: "Qwen3.5 9B", api: "openai-completions", provider: "together", baseUrl: "https://api.together.ai/v1", reasoning: true, thinkingLevelMap: { minimal: null, low: null, medium: null }, input: ["text", "image"], cost: { input: 0.17, output: 0.25, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "together", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 262144, maxTokens: 65536 }, "Qwen/Qwen3.6-Plus": { id: "Qwen/Qwen3.6-Plus", name: "Qwen3.6 Plus", api: "openai-completions", provider: "together", baseUrl: "https://api.together.ai/v1", reasoning: true, thinkingLevelMap: { minimal: null, low: null, medium: null }, input: ["text"], cost: { input: 0.5, output: 3, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "together", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 1e6, maxTokens: 5e5 }, "Qwen/Qwen3.7-Max": { id: "Qwen/Qwen3.7-Max", name: "Qwen3.7 Max", api: "openai-completions", provider: "together", baseUrl: "https://api.together.ai/v1", reasoning: false, input: ["text"], cost: { input: 1.25, output: 3.75, cacheRead: 0.125, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "together", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 1e6, maxTokens: 5e5 }, "deepseek-ai/DeepSeek-V4-Flash-0731": { id: "deepseek-ai/DeepSeek-V4-Flash-0731", name: "DeepSeek V4 Flash 0731", api: "openai-completions", provider: "together", baseUrl: "https://api.together.ai/v1", reasoning: true, thinkingLevelMap: { minimal: null, low: null, medium: null }, input: ["text"], cost: { input: 0.14, output: 0.28, cacheRead: 0.03, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "together", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 1e6, maxTokens: 384e3 }, "deepseek-ai/DeepSeek-V4-Pro": { id: "deepseek-ai/DeepSeek-V4-Pro", name: "DeepSeek V4 Pro", api: "openai-completions", provider: "together", baseUrl: "https://api.together.ai/v1", reasoning: true, thinkingLevelMap: { minimal: null, low: null, medium: null, high: "high", xhigh: null }, input: ["text"], cost: { input: 1.74, output: 3.48, cacheRead: 0.2, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: true, maxTokensField: "max_tokens", thinkingFormat: "together", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 512e3, maxTokens: 384e3 }, "deepseek-ai/DeepSeek-V4-Pro-0813": { id: "deepseek-ai/DeepSeek-V4-Pro-0813", name: "DeepSeek V4 Pro 0813", api: "openai-completions", provider: "together", baseUrl: "https://api.together.ai/v1", reasoning: true, thinkingLevelMap: { minimal: null, low: null, medium: null }, input: ["text"], cost: { input: 1.32, output: 3.96, cacheRead: 0.13, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "together", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 1048576, maxTokens: 384e3 }, "google/gemma-4-31B-it": { id: "google/gemma-4-31B-it", name: "Gemma 4 31B Instruct", api: "openai-completions", provider: "together", baseUrl: "https://api.together.ai/v1", reasoning: true, thinkingLevelMap: { minimal: null, low: null, medium: null }, input: ["text", "image"], cost: { input: 0.39, output: 0.97, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "together", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 262144, maxTokens: 131072 }, "meta-llama/Llama-3.3-70B-Instruct-Turbo": { id: "meta-llama/Llama-3.3-70B-Instruct-Turbo", name: "Llama 3.3 70B", api: "openai-completions", provider: "together", baseUrl: "https://api.together.ai/v1", reasoning: false, input: ["text"], cost: { input: 1.04, output: 1.04, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "together", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 131072, maxTokens: 131072 }, "moonshotai/Kimi-K2.6": { id: "moonshotai/Kimi-K2.6", name: "Kimi K2.6", api: "openai-completions", provider: "together", baseUrl: "https://api.together.ai/v1", reasoning: true, thinkingLevelMap: { minimal: null, low: null, medium: null }, input: ["text", "image"], cost: { input: 1.2, output: 4.5, cacheRead: 0.2, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "together", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 262144, maxTokens: 131e3 }, "moonshotai/Kimi-K2.7-Code": { id: "moonshotai/Kimi-K2.7-Code", name: "Kimi K2.7 Code", api: "openai-completions", provider: "together", baseUrl: "https://api.together.ai/v1", reasoning: true, thinkingLevelMap: { minimal: null, low: null, medium: null }, input: ["text"], cost: { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "together", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 262144, maxTokens: 131072 }, "moonshotai/Kimi-K3": { id: "moonshotai/Kimi-K3", name: "Kimi K3", api: "openai-completions", provider: "together", baseUrl: "https://api.together.ai/v1", reasoning: true, thinkingLevelMap: { minimal: null, low: null, medium: null }, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "together", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 1048576, maxTokens: 131072 }, "nvidia/nemotron-3-ultra-550b-a55b": { id: "nvidia/nemotron-3-ultra-550b-a55b", name: "Nemotron 3 Ultra 550B A55B", api: "openai-completions", provider: "together", baseUrl: "https://api.together.ai/v1", reasoning: true, thinkingLevelMap: { minimal: null, low: null, medium: null }, input: ["text"], cost: { input: 0.6, output: 3.6, cacheRead: 0.2, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "together", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 512300, maxTokens: 512300 }, "openai/gpt-oss-120b": { id: "openai/gpt-oss-120b", name: "GPT OSS 120B", api: "openai-completions", provider: "together", baseUrl: "https://api.together.ai/v1", reasoning: true, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null }, input: ["text"], cost: { input: 0.15, output: 0.6, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: true, maxTokensField: "max_tokens", thinkingFormat: "openai", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 131072, maxTokens: 131072 }, "openai/gpt-oss-20b": { id: "openai/gpt-oss-20b", name: "GPT OSS 20B", api: "openai-completions", provider: "together", baseUrl: "https://api.together.ai/v1", reasoning: true, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null }, input: ["text"], cost: { input: 0.05, output: 0.2, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: true, maxTokensField: "max_tokens", thinkingFormat: "openai", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 131072, maxTokens: 131072 }, "thinkingmachines/Inkling": { id: "thinkingmachines/Inkling", name: "Inkling", api: "openai-completions", provider: "together", baseUrl: "https://api.together.ai/v1", reasoning: true, thinkingLevelMap: { minimal: null, low: null, medium: null }, input: ["text", "image"], cost: { input: 1, output: 4.05, cacheRead: 0.17, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "together", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 524288, maxTokens: 131072 }, "zai-org/GLM-5.2": { id: "zai-org/GLM-5.2", name: "GLM-5.2", api: "openai-completions", provider: "together", baseUrl: "https://api.together.ai/v1", reasoning: true, thinkingLevelMap: { minimal: null, low: null, medium: null }, input: ["text"], cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "together", supportsStrictMode: false, supportsLongCacheRetention: false }, contextWindow: 512e3, maxTokens: 164e3 } } };
|
|
3418
3852
|
|
|
3419
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3853
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/together.models.js
|
|
3420
3854
|
var TOGETHER_MODELS = flattenModelCatalog("together", together_default);
|
|
3421
3855
|
|
|
3422
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3856
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json
|
|
3423
3857
|
var vercel_ai_gateway_default = { "anthropic-messages": { "alibaba/qwen-3-14b": { id: "alibaba/qwen-3-14b", name: "Qwen3-14B", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.12, output: 0.24, cacheRead: 0, cacheWrite: 0 }, contextWindow: 40960, maxTokens: 16384 }, "alibaba/qwen-3-235b": { id: "alibaba/qwen-3-235b", name: "Qwen3 235B A22B", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.22, output: 0.88, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 16384 }, "alibaba/qwen-3-30b": { id: "alibaba/qwen-3-30b", name: "Qwen3-30B-A3B", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.12, output: 0.5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 40960, maxTokens: 16384 }, "alibaba/qwen-3-32b": { id: "alibaba/qwen-3-32b", name: "Qwen 3 32B", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.16, output: 0.64, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 8192 }, "alibaba/qwen-3.6-max-preview": { id: "alibaba/qwen-3.6-max-preview", name: "Qwen 3.6 Max Preview", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 1.3, output: 7.8, cacheRead: 0.26, cacheWrite: 1.625 }, contextWindow: 24e4, maxTokens: 64e3 }, "alibaba/qwen3-235b-a22b-thinking": { id: "alibaba/qwen3-235b-a22b-thinking", name: "Qwen3 VL 235B A22B Thinking", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.4, output: 4, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 32768 }, "alibaba/qwen3-coder": { id: "alibaba/qwen3-coder", name: "Qwen3 Coder 480B A35B Instruct", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text"], cost: { input: 1.5, output: 7.5, cacheRead: 0.3, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 65536 }, "alibaba/qwen3-coder-30b-a3b": { id: "alibaba/qwen3-coder-30b-a3b", name: "Qwen 3 Coder 30B A3B Instruct", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text"], cost: { input: 0.15, output: 0.6, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 8192 }, "alibaba/qwen3-coder-next": { id: "alibaba/qwen3-coder-next", name: "Qwen3 Coder Next", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text"], cost: { input: 0.5, output: 1.2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 256e3 }, "alibaba/qwen3-coder-plus": { id: "alibaba/qwen3-coder-plus", name: "Qwen3 Coder Plus", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text"], cost: { input: 1, output: 5, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 65536 }, "alibaba/qwen3-max": { id: "alibaba/qwen3-max", name: "Qwen3 Max", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text"], cost: { input: 1.2, output: 6, cacheRead: 0.24, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 32768 }, "alibaba/qwen3-max-preview": { id: "alibaba/qwen3-max-preview", name: "Qwen3 Max Preview", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text"], cost: { input: 1.2, output: 6, cacheRead: 0.24, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 32768 }, "alibaba/qwen3-max-thinking": { id: "alibaba/qwen3-max-thinking", name: "Qwen 3 Max Thinking", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 1.2, output: 6, cacheRead: 0.24, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 65536 }, "alibaba/qwen3-next-80b-a3b-instruct": { id: "alibaba/qwen3-next-80b-a3b-instruct", name: "Qwen3 Next 80B A3B Instruct", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text"], cost: { input: 0.15, output: 1.2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 32768 }, "alibaba/qwen3-next-80b-a3b-thinking": { id: "alibaba/qwen3-next-80b-a3b-thinking", name: "Qwen3 Next 80B A3B Thinking", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.15, output: 1.2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 32768 }, "alibaba/qwen3-vl-235b-a22b-instruct": { id: "alibaba/qwen3-vl-235b-a22b-instruct", name: "Qwen3 VL 235B A22B Instruct", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 0.4, output: 1.6, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 129024 }, "alibaba/qwen3-vl-instruct": { id: "alibaba/qwen3-vl-instruct", name: "Qwen3 VL 235B A22B Instruct", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 0.4, output: 1.6, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 129024 }, "alibaba/qwen3-vl-thinking": { id: "alibaba/qwen3-vl-thinking", name: "Qwen3 VL 235B A22B Thinking", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.4, output: 4, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 32768 }, "alibaba/qwen3.5-flash": { id: "alibaba/qwen3.5-flash", name: "Qwen 3.5 Flash", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.1, output: 0.4, cacheRead: 1e-3, cacheWrite: 0.125 }, contextWindow: 1e6, maxTokens: 64e3 }, "alibaba/qwen3.5-plus": { id: "alibaba/qwen3.5-plus", name: "Qwen 3.5 Plus", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.4, output: 2.4, cacheRead: 0.04, cacheWrite: 0.5 }, contextWindow: 1e6, maxTokens: 64e3 }, "alibaba/qwen3.6-27b": { id: "alibaba/qwen3.6-27b", name: "Qwen 3.6 27B", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.6, output: 3.6, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 256e3 }, "alibaba/qwen3.6-plus": { id: "alibaba/qwen3.6-plus", name: "Qwen 3.6 Plus", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.5, output: 3, cacheRead: 0.1, cacheWrite: 0.625 }, contextWindow: 1e6, maxTokens: 64e3 }, "alibaba/qwen3.7-flash": { id: "alibaba/qwen3.7-flash", name: "Qwen 3.7 Flash", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.03, output: 0.13, cacheRead: 6e-3, cacheWrite: 0.038 }, contextWindow: 991e3, maxTokens: 64e3 }, "alibaba/qwen3.7-max": { id: "alibaba/qwen3.7-max", name: "Qwen 3.7 Max", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 2.5, output: 7.5, cacheRead: 0.5, cacheWrite: 3.125 }, contextWindow: 991e3, maxTokens: 64e3 }, "alibaba/qwen3.7-plus": { id: "alibaba/qwen3.7-plus", name: "Qwen 3.7 Plus", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.4, output: 1.6, cacheRead: 0.08, cacheWrite: 0.5 }, contextWindow: 1e6, maxTokens: 64e3 }, "alibaba/qwen3.8-2.4t-a95b": { id: "alibaba/qwen3.8-2.4t-a95b", name: "Qwen3.8 2.4T A95B", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 6, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 131072 }, "alibaba/qwen3.8-27b": { id: "alibaba/qwen3.8-27b", name: "Qwen3.8 27B", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.55, output: 3.3, cacheRead: 0.11, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 131072 }, "alibaba/qwen3.8-max": { id: "alibaba/qwen3.8-max", name: "Qwen 3.8 Max", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 6, cacheRead: 0.25, cacheWrite: 2.5 }, contextWindow: 1e6, maxTokens: 128e3 }, "amazon/nova-2-lite": { id: "amazon/nova-2-lite", name: "Nova 2 Lite", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 2.5, cacheRead: 0.075, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 1e6 }, "amazon/nova-lite": { id: "amazon/nova-lite", name: "Nova Lite", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 0.06, output: 0.24, cacheRead: 0, cacheWrite: 0 }, contextWindow: 3e5, maxTokens: 8192 }, "amazon/nova-micro": { id: "amazon/nova-micro", name: "Nova Micro", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text"], cost: { input: 0.035, output: 0.14, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 8192 }, "amazon/nova-pro": { id: "amazon/nova-pro", name: "Nova Pro", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 0.8, output: 3.2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 3e5, maxTokens: 8192 }, "anthropic/claude-3-haiku": { id: "anthropic/claude-3-haiku", name: "Claude 3 Haiku", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 0.25, output: 1.25, cacheRead: 0.03, cacheWrite: 0.3 }, contextWindow: 2e5, maxTokens: 4096 }, "anthropic/claude-fable-5": { id: "anthropic/claude-fable-5", name: "Claude Fable 5", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { off: null, xhigh: "xhigh", max: "max" }, compat: { forceAdaptiveThinking: true } }, "anthropic/claude-haiku-4.5": { id: "anthropic/claude-haiku-4.5", name: "Claude Haiku 4.5", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 }, contextWindow: 2e5, maxTokens: 64e3 }, "anthropic/claude-opus-4": { id: "anthropic/claude-opus-4", name: "Claude Opus 4", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 15, output: 75, cacheRead: 1.5, cacheWrite: 18.75 }, contextWindow: 2e5, maxTokens: 8192 }, "anthropic/claude-opus-4.5": { id: "anthropic/claude-opus-4.5", name: "Claude Opus 4.5", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 2e5, maxTokens: 64e3 }, "anthropic/claude-opus-4.6": { id: "anthropic/claude-opus-4.6", name: "Claude Opus 4.6", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { max: "max" }, compat: { forceAdaptiveThinking: true } }, "anthropic/claude-opus-4.7": { id: "anthropic/claude-opus-4.7", name: "Claude Opus 4.7", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" }, compat: { forceAdaptiveThinking: true, supportsTemperature: false } }, "anthropic/claude-opus-4.8": { id: "anthropic/claude-opus-4.8", name: "Claude Opus 4.8", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" }, compat: { forceAdaptiveThinking: true, supportsTemperature: false } }, "anthropic/claude-opus-4.8-fast": { id: "anthropic/claude-opus-4.8-fast", name: "Claude Opus 4.8 (Fast)", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" }, compat: { forceAdaptiveThinking: true, supportsTemperature: false } }, "anthropic/claude-opus-5": { id: "anthropic/claude-opus-5", name: "Claude Opus 5", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" }, compat: { forceAdaptiveThinking: true, supportsTemperature: false } }, "anthropic/claude-opus-5-fast": { id: "anthropic/claude-opus-5-fast", name: "Claude Opus 5 (Fast)", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" }, compat: { forceAdaptiveThinking: true, supportsTemperature: false } }, "anthropic/claude-sonnet-4": { id: "anthropic/claude-sonnet-4", name: "Claude Sonnet 4", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 1e6, maxTokens: 8192 }, "anthropic/claude-sonnet-4.5": { id: "anthropic/claude-sonnet-4.5", name: "Claude Sonnet 4.5", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 1e6, maxTokens: 64e3 }, "anthropic/claude-sonnet-4.6": { id: "anthropic/claude-sonnet-4.6", name: "Claude Sonnet 4.6", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { max: "max" }, compat: { forceAdaptiveThinking: true } }, "anthropic/claude-sonnet-5": { id: "anthropic/claude-sonnet-5", name: "Claude Sonnet 5", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", max: "max" }, compat: { forceAdaptiveThinking: true } }, "arcee-ai/trinity-large-thinking": { id: "arcee-ai/trinity-large-thinking", name: "Trinity Large Thinking", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.25, output: 0.9, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262100, maxTokens: 8e4 }, "arcee-ai/trinity-mini": { id: "arcee-ai/trinity-mini", name: "Trinity Mini", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text"], cost: { input: 0.045, output: 0.15, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 131072 }, "bytedance/seed-1.6": { id: "bytedance/seed-1.6", name: "Seed 1.6", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 2, cacheRead: 0.05, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 32e3 }, "bytedance/seed-1.8": { id: "bytedance/seed-1.8", name: "Bytedance Seed 1.8", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 2, cacheRead: 0.05, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 64e3 }, "cohere/command-a": { id: "cohere/command-a", name: "Command A", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text"], cost: { input: 2.5, output: 10, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 8e3 }, "deepseek/deepseek-r1": { id: "deepseek/deepseek-r1", name: "DeepSeek-R1", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 1.35, output: 5.4, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 8192 }, "deepseek/deepseek-v3": { id: "deepseek/deepseek-v3", name: "DeepSeek V3 0324", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text"], cost: { input: 0.27, output: 1.12, cacheRead: 0.135, cacheWrite: 0 }, contextWindow: 163840, maxTokens: 163840 }, "deepseek/deepseek-v3.1": { id: "deepseek/deepseek-v3.1", name: "DeepSeek V3.1", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.25, output: 0.95, cacheRead: 0.13, cacheWrite: 0 }, contextWindow: 163840, maxTokens: 128e3 }, "deepseek/deepseek-v3.1-terminus": { id: "deepseek/deepseek-v3.1-terminus", name: "DeepSeek V3.1 Terminus", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.27, output: 1, cacheRead: 0.135, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 65536 }, "deepseek/deepseek-v3.2": { id: "deepseek/deepseek-v3.2", name: "DeepSeek V3.2", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text"], cost: { input: 0.28, output: 0.42, cacheRead: 0.028, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 8e3 }, "deepseek/deepseek-v3.2-thinking": { id: "deepseek/deepseek-v3.2-thinking", name: "DeepSeek V3.2 Thinking", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text"], cost: { input: 0.62, output: 1.85, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 8e3 }, "deepseek/deepseek-v4-flash": { id: "deepseek/deepseek-v4-flash", name: "DeepSeek V4 Flash", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.13, output: 0.26, cacheRead: 0.028, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 384e3 }, "deepseek/deepseek-v4-flash-0731": { id: "deepseek/deepseek-v4-flash-0731", name: "DeepSeek V4 Flash 0731", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.076, output: 0.153, cacheRead: 0.014, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 384e3 }, "deepseek/deepseek-v4-flash-vision-exp": { id: "deepseek/deepseek-v4-flash-vision-exp", name: "DeepSeek V4 Flash Vision Exp", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.22, output: 0.66, cacheRead: 7e-3, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 384e3 }, "deepseek/deepseek-v4-pro": { id: "deepseek/deepseek-v4-pro", name: "DeepSeek V4 Pro", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 1.74, output: 3.48, cacheRead: 0.14, cacheWrite: 0 }, contextWindow: 1048600, maxTokens: 1048600 }, "deepseek/deepseek-v4-pro-0813": { id: "deepseek/deepseek-v4-pro-0813", name: "DeepSeek V4 Pro 0813", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 1.32, output: 3.96, cacheRead: 0.132, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 384e3 }, "google/gemini-2.5-flash": { id: "google/gemini-2.5-flash", name: "Gemini 2.5 Flash", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 2.5, cacheRead: 0.03, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 65536 }, "google/gemini-2.5-flash-lite": { id: "google/gemini-2.5-flash-lite", name: "Gemini 2.5 Flash Lite", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.1, output: 0.4, cacheRead: 0.01, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536 }, "google/gemini-2.5-pro": { id: "google/gemini-2.5-pro", name: "Gemini 2.5 Pro", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 65536 }, "google/gemini-3-flash": { id: "google/gemini-3-flash", name: "Gemini 3 Flash", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.5, output: 3, cacheRead: 0.05, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 65e3 }, "google/gemini-3.1-flash-lite": { id: "google/gemini-3.1-flash-lite", name: "Gemini 3.1 Flash Lite", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 1.5, cacheRead: 0.03, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 65e3 }, "google/gemini-3.1-pro-preview": { id: "google/gemini-3.1-pro-preview", name: "Gemini 3.1 Pro Preview", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 64e3 }, "google/gemini-3.5-flash": { id: "google/gemini-3.5-flash", name: "Gemini 3.5 Flash", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1.5, output: 9, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 64e3 }, "google/gemini-3.5-flash-lite": { id: "google/gemini-3.5-flash-lite", name: "Gemini 3.5 Flash Lite", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 2.5, cacheRead: 0.03, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 65e3 }, "google/gemini-3.6-flash": { id: "google/gemini-3.6-flash", name: "Gemini 3.6 Flash", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 64e3 }, "google/gemini-3.7-flash": { id: "google/gemini-3.7-flash", name: "Gemini 3.7 Flash", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 65536 }, "google/gemma-4-26b-a4b-it": { id: "google/gemma-4-26b-a4b-it", name: "Google Gemma 4 26B A4B", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.15, output: 0.6, cacheRead: 0.015, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 131072 }, "google/gemma-4-31b-it": { id: "google/gemma-4-31b-it", name: "Gemma 4 31B IT", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.14, output: 0.4, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 131072 }, "inception/mercury-2": { id: "inception/mercury-2", name: "Mercury 2", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.25, output: 0.75, cacheRead: 0.025, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 128e3 }, "inception/mercury-coder-small": { id: "inception/mercury-coder-small", name: "Mercury Coder Small Beta", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text"], cost: { input: 0.25, output: 1, cacheRead: 0, cacheWrite: 0 }, contextWindow: 32e3, maxTokens: 16384 }, "inclusionai/ling-3.0-flash": { id: "inclusionai/ling-3.0-flash", name: "Ling 3.0 Flash", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.06, output: 0.18, cacheRead: 0.012, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 32e3 }, "interfaze/interfaze-beta": { id: "interfaze/interfaze-beta", name: "Interfaze Beta", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1.5, output: 3.5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 32e3 }, "kwaipilot/kat-coder-air-v2.5": { id: "kwaipilot/kat-coder-air-v2.5", name: "Kat Coder Air V2.5", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.15, output: 0.6, cacheRead: 0.03, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 8e4 }, "kwaipilot/kat-coder-pro-v1": { id: "kwaipilot/kat-coder-pro-v1", name: "KAT-Coder-Pro V1", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text"], cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 32e3 }, "kwaipilot/kat-coder-pro-v2": { id: "kwaipilot/kat-coder-pro-v2", name: "Kat Coder Pro V2", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 256e3 }, "kwaipilot/kat-coder-pro-v2.5": { id: "kwaipilot/kat-coder-pro-v2.5", name: "Kat Coder Pro V2.5", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.74, output: 2.96, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 8e4 }, "meta/llama-3.1-70b": { id: "meta/llama-3.1-70b", name: "Llama 3.1 70B Instruct", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text"], cost: { input: 0.72, output: 0.72, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 8192 }, "meta/llama-3.1-8b": { id: "meta/llama-3.1-8b", name: "Llama 3.1 8B Instruct", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text"], cost: { input: 0.22, output: 0.22, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 8192 }, "meta/llama-3.3-70b": { id: "meta/llama-3.3-70b", name: "Llama 3.3 70B Instruct", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text"], cost: { input: 0.72, output: 0.72, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 8192 }, "meta/llama-4-maverick": { id: "meta/llama-4-maverick", name: "Llama 4 Maverick 17B Instruct", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 0.24, output: 0.97, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 8192 }, "meta/llama-4-scout": { id: "meta/llama-4-scout", name: "Llama 4 Scout 17B Instruct", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 0.17, output: 0.66, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 8192 }, "meta/muse-glimmer-30b": { id: "meta/muse-glimmer-30b", name: "Muse Glimmer 30B", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.35, output: 1.5, cacheRead: 0.04, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 131072 }, "meta/muse-spark-1.1": { id: "meta/muse-spark-1.1", name: "Muse Spark 1.1", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 4.25, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 1048576 }, "meta/muse-spark-1.2": { id: "meta/muse-spark-1.2", name: "Muse Spark 1.2", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 4.25, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 1048576 }, "meta/muse-spark-1.2-contributor": { id: "meta/muse-spark-1.2-contributor", name: "Muse Spark 1.2 Contributor", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.1, output: 0.2, cacheRead: 2e-3, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 1048576 }, "minimax/minimax-m2": { id: "minimax/minimax-m2", name: "MiniMax M2", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.3, output: 1.2, cacheRead: 0.03, cacheWrite: 0.375 }, contextWindow: 205e3, maxTokens: 205e3 }, "minimax/minimax-m2.1": { id: "minimax/minimax-m2.1", name: "MiniMax M2.1", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.3, output: 1.2, cacheRead: 0.03, cacheWrite: 0.375 }, contextWindow: 204800, maxTokens: 131072 }, "minimax/minimax-m2.1-lightning": { id: "minimax/minimax-m2.1-lightning", name: "MiniMax M2.1 Lightning", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.3, output: 2.4, cacheRead: 0.03, cacheWrite: 0.375 }, contextWindow: 204800, maxTokens: 131072 }, "minimax/minimax-m2.5": { id: "minimax/minimax-m2.5", name: "MiniMax M2.5", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.3, output: 1.2, cacheRead: 0.03, cacheWrite: 0.375 }, contextWindow: 204800, maxTokens: 131e3 }, "minimax/minimax-m2.5-highspeed": { id: "minimax/minimax-m2.5-highspeed", name: "MiniMax M2.5 High Speed", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.6, output: 2.4, cacheRead: 0.03, cacheWrite: 0.375 }, contextWindow: 204800, maxTokens: 131e3 }, "minimax/minimax-m2.7": { id: "minimax/minimax-m2.7", name: "Minimax M2.7", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0.375 }, contextWindow: 204800, maxTokens: 131e3 }, "minimax/minimax-m2.7-highspeed": { id: "minimax/minimax-m2.7-highspeed", name: "MiniMax M2.7 High Speed", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.6, output: 2.4, cacheRead: 0.06, cacheWrite: 0.375 }, contextWindow: 204800, maxTokens: 131100 }, "minimax/minimax-m3": { id: "minimax/minimax-m3", name: "MiniMax M3", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 1e6 }, "mistral/codestral": { id: "mistral/codestral", name: "Mistral Codestral", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text"], cost: { input: 0.3, output: 0.9, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4e3 }, "mistral/devstral-2": { id: "mistral/devstral-2", name: "Devstral 2", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text"], cost: { input: 0.4, output: 2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 256e3 }, "mistral/devstral-small-2": { id: "mistral/devstral-small-2", name: "Devstral Small 2", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 0.1, output: 0.3, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 256e3 }, "mistral/magistral-medium": { id: "mistral/magistral-medium", name: "Magistral Medium 2509", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 64e3 }, "mistral/magistral-small": { id: "mistral/magistral-small", name: "Magistral Small 2509", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.5, output: 1.5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 64e3 }, "mistral/ministral-14b": { id: "mistral/ministral-14b", name: "Ministral 14B", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 0.2, output: 0.2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 256e3 }, "mistral/ministral-3b": { id: "mistral/ministral-3b", name: "Ministral 3B", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 0.1, output: 0.1, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4e3 }, "mistral/ministral-8b": { id: "mistral/ministral-8b", name: "Ministral 8B", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 0.15, output: 0.15, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4e3 }, "mistral/mistral-large-3": { id: "mistral/mistral-large-3", name: "Mistral Large 3", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 0.5, output: 1.5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 256e3 }, "mistral/mistral-medium": { id: "mistral/mistral-medium", name: "Mistral Medium 3.1", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 0.4, output: 2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 64e3 }, "mistral/mistral-medium-3.5": { id: "mistral/mistral-medium-3.5", name: "Mistral Medium Latest", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1.5, output: 7.5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 256e3 }, "mistral/mistral-nemo": { id: "mistral/mistral-nemo", name: "Mistral Nemo 12B", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 0.15, output: 0.15, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 128e3 }, "mistral/mistral-small": { id: "mistral/mistral-small", name: "Mistral Small", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 0.1, output: 0.3, cacheRead: 0, cacheWrite: 0 }, contextWindow: 32e3, maxTokens: 4e3 }, "mistral/pixtral-12b": { id: "mistral/pixtral-12b", name: "Pixtral 12B 2409", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 0.15, output: 0.15, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4e3 }, "moonshotai/kimi-k2": { id: "moonshotai/kimi-k2", name: "Kimi K2 Instruct", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text"], cost: { input: 0.57, output: 2.3, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 131072 }, "moonshotai/kimi-k2-thinking": { id: "moonshotai/kimi-k2-thinking", name: "Kimi K2 Thinking", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.47, output: 2, cacheRead: 0.141, cacheWrite: 0 }, contextWindow: 216144, maxTokens: 216144 }, "moonshotai/kimi-k2.5": { id: "moonshotai/kimi-k2.5", name: "Kimi K2.5", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.6, output: 3, cacheRead: 0.1, cacheWrite: 0 }, contextWindow: 262114, maxTokens: 262114 }, "moonshotai/kimi-k2.6": { id: "moonshotai/kimi-k2.6", name: "Kimi K2.6", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, contextWindow: 262e3, maxTokens: 262e3 }, "moonshotai/kimi-k2.7-code": { id: "moonshotai/kimi-k2.7-code", name: "Kimi K2.7 Code", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 32768 }, "moonshotai/kimi-k2.7-code-highspeed": { id: "moonshotai/kimi-k2.7-code-highspeed", name: "Kimi K2.7 Code High Speed", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1.9, output: 8, cacheRead: 0.38, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 32768 }, "moonshotai/kimi-k3": { id: "moonshotai/kimi-k3", name: "Kimi K3", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 131072 }, "moonshotai/kimi-k3-fast": { id: "moonshotai/kimi-k3-fast", name: "Kimi K3 Fast", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 4.5, output: 22.5, cacheRead: 0.45, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 131072 }, "nvidia/nemotron-3-nano-30b-a3b": { id: "nvidia/nemotron-3-nano-30b-a3b", name: "Nemotron 3 Nano 30B A3B", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.05, output: 0.24, cacheRead: 0, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144 }, "nvidia/nemotron-3-super-120b-a12b": { id: "nvidia/nemotron-3-super-120b-a12b", name: "NVIDIA Nemotron 3 Super 120B A12B", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.15, output: 0.65, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 32e3 }, "nvidia/nemotron-3-ultra-550b-a55b": { id: "nvidia/nemotron-3-ultra-550b-a55b", name: "Nemotron 3 Ultra", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.6, output: 2.4, cacheRead: 0.12, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 65e3 }, "nvidia/nemotron-3.5-lightning": { id: "nvidia/nemotron-3.5-lightning", name: "Nemotron 3.5 Lightning 30B", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 32768 }, "nvidia/nemotron-3.5-lightning-free": { id: "nvidia/nemotron-3.5-lightning-free", name: "Nemotron 3.5 Lightning 30B (Free)", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 32768 }, "nvidia/nemotron-nano-12b-v2-vl": { id: "nvidia/nemotron-nano-12b-v2-vl", name: "Nvidia Nemotron Nano 12B V2 VL", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 0.6, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 131072 }, "nvidia/nemotron-nano-9b-v2": { id: "nvidia/nemotron-nano-9b-v2", name: "Nvidia Nemotron Nano 9B V2", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.06, output: 0.23, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 131072 }, "openai/gpt-3.5-turbo": { id: "openai/gpt-3.5-turbo", name: "GPT-3.5 Turbo", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text"], cost: { input: 0.5, output: 1.5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 16385, maxTokens: 4096 }, "openai/gpt-4-turbo": { id: "openai/gpt-4-turbo", name: "GPT-4 Turbo", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 10, output: 30, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 4096 }, "openai/gpt-4.1": { id: "openai/gpt-4.1", name: "GPT-4.1", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 }, contextWindow: 1047576, maxTokens: 32768 }, "openai/gpt-4.1-fast": { id: "openai/gpt-4.1-fast", name: "GPT-4.1 (Fast)", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 3.5, output: 14, cacheRead: 0.875, cacheWrite: 0 }, contextWindow: 1047576, maxTokens: 32768 }, "openai/gpt-4.1-mini": { id: "openai/gpt-4.1-mini", name: "GPT-4.1 mini", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 0.4, output: 1.6, cacheRead: 0.1, cacheWrite: 0 }, contextWindow: 1047576, maxTokens: 32768 }, "openai/gpt-4.1-mini-fast": { id: "openai/gpt-4.1-mini-fast", name: "GPT-4.1 mini (Fast)", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 0.7, output: 2.8, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 1047576, maxTokens: 32768 }, "openai/gpt-4.1-nano": { id: "openai/gpt-4.1-nano", name: "GPT-4.1 nano", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 0.1, output: 0.4, cacheRead: 0.025, cacheWrite: 0 }, contextWindow: 1047576, maxTokens: 32768 }, "openai/gpt-4.1-nano-fast": { id: "openai/gpt-4.1-nano-fast", name: "GPT-4.1 nano (Fast)", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 0.2, output: 0.8, cacheRead: 0.05, cacheWrite: 0 }, contextWindow: 1047576, maxTokens: 32768 }, "openai/gpt-4o": { id: "openai/gpt-4o", name: "GPT-4o", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 2.5, output: 10, cacheRead: 1.25, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384 }, "openai/gpt-4o-fast": { id: "openai/gpt-4o-fast", name: "GPT-4o (Fast)", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 4.25, output: 17, cacheRead: 2.125, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384 }, "openai/gpt-4o-mini": { id: "openai/gpt-4o-mini", name: "GPT-4o mini", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 0.15, output: 0.6, cacheRead: 0.075, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384 }, "openai/gpt-4o-mini-fast": { id: "openai/gpt-4o-mini-fast", name: "GPT-4o mini (Fast)", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 0.25, output: 1, cacheRead: 0.125, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 16384 }, "openai/gpt-5": { id: "openai/gpt-5", name: "GPT-5", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3 }, "openai/gpt-5-codex": { id: "openai/gpt-5-codex", name: "GPT-5-Codex", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0.13, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3 }, "openai/gpt-5-fast": { id: "openai/gpt-5-fast", name: "GPT-5 (Fast)", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 2.5, output: 20, cacheRead: 0.25, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3 }, "openai/gpt-5-mini": { id: "openai/gpt-5-mini", name: "GPT-5 mini", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 2, cacheRead: 0.025, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3 }, "openai/gpt-5-mini-fast": { id: "openai/gpt-5-mini-fast", name: "GPT-5 mini (Fast)", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.45, output: 3.6, cacheRead: 0.045, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3 }, "openai/gpt-5-nano": { id: "openai/gpt-5-nano", name: "GPT-5 nano", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.05, output: 0.4, cacheRead: 5e-3, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3 }, "openai/gpt-5-pro": { id: "openai/gpt-5-pro", name: "GPT-5 pro", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 15, output: 120, cacheRead: 0, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 272e3 }, "openai/gpt-5.1-codex": { id: "openai/gpt-5.1-codex", name: "GPT-5.1-Codex", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0.13, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3 }, "openai/gpt-5.1-codex-max": { id: "openai/gpt-5.1-codex-max", name: "GPT 5.1 Codex Max", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3 }, "openai/gpt-5.1-codex-mini": { id: "openai/gpt-5.1-codex-mini", name: "GPT 5.1 Codex Mini", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.25, output: 2, cacheRead: 0.03, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3 }, "openai/gpt-5.1-thinking": { id: "openai/gpt-5.1-thinking", name: "GPT 5.1 Thinking", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3 }, "openai/gpt-5.1-thinking-fast": { id: "openai/gpt-5.1-thinking-fast", name: "GPT 5.1 Thinking (Fast)", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 2.5, output: 20, cacheRead: 0.25, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3 }, "openai/gpt-5.2": { id: "openai/gpt-5.2", name: "GPT 5.2", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.2-codex": { id: "openai/gpt-5.2-codex", name: "GPT 5.2 Codex", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.2-fast": { id: "openai/gpt-5.2-fast", name: "GPT 5.2 (Fast)", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 3.5, output: 28, cacheRead: 0.35, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.2-pro": { id: "openai/gpt-5.2-pro", name: "GPT 5.2 ", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 21, output: 168, cacheRead: 0, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.3-codex": { id: "openai/gpt-5.3-codex", name: "GPT 5.3 Codex", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.3-codex-fast": { id: "openai/gpt-5.3-codex-fast", name: "GPT 5.3 Codex (Fast)", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 3.5, output: 28, cacheRead: 0.35, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.4": { id: "openai/gpt-5.4", name: "GPT 5.4", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 2.5, output: 15, cacheRead: 0.25, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.4-fast": { id: "openai/gpt-5.4-fast", name: "GPT 5.4 (Fast)", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.4-mini": { id: "openai/gpt-5.4-mini", name: "GPT 5.4 Mini", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.75, output: 4.5, cacheRead: 0.075, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.4-mini-fast": { id: "openai/gpt-5.4-mini-fast", name: "GPT 5.4 Mini (Fast)", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1.5, output: 9, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.4-nano": { id: "openai/gpt-5.4-nano", name: "GPT 5.4 Nano", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 1.25, cacheRead: 0.02, cacheWrite: 0 }, contextWindow: 4e5, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.4-pro": { id: "openai/gpt-5.4-pro", name: "GPT 5.4 Pro", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 30, output: 180, cacheRead: 0, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.5": { id: "openai/gpt-5.5", name: "GPT 5.5", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.5-fast": { id: "openai/gpt-5.5-fast", name: "GPT 5.5 (Fast)", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 12.5, output: 75, cacheRead: 1.25, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.5-pro": { id: "openai/gpt-5.5-pro", name: "GPT 5.5 Pro", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 30, output: 180, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh", off: null, minimal: null, low: null } }, "openai/gpt-5.6-luna": { id: "openai/gpt-5.6-luna", name: "GPT 5.6 Luna", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 1.2, cacheRead: 0.02, cacheWrite: 0.25 }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.6-luna-fast": { id: "openai/gpt-5.6-luna-fast", name: "GPT 5.6 Luna (Fast)", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.4, output: 2.4, cacheRead: 0.04, cacheWrite: 0.25 }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.6-sol": { id: "openai/gpt-5.6-sol", name: "GPT 5.6 Sol", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 10, cacheRead: 0.2, cacheWrite: 2.5 }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.6-sol-fast": { id: "openai/gpt-5.6-sol-fast", name: "GPT 5.6 Sol (Fast)", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 4, output: 20, cacheRead: 0.4, cacheWrite: 2.5 }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.6-terra": { id: "openai/gpt-5.6-terra", name: "GPT 5.6 Terra", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 2.5 }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-5.6-terra-fast": { id: "openai/gpt-5.6-terra-fast", name: "GPT 5.6 Terra (Fast)", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 4, output: 24, cacheRead: 0.4, cacheWrite: 2.5 }, contextWindow: 105e4, maxTokens: 128e3, thinkingLevelMap: { xhigh: "xhigh" } }, "openai/gpt-oss-120b": { id: "openai/gpt-oss-120b", name: "GPT OSS 120B", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.1, output: 0.5, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 131072 }, "openai/gpt-oss-20b": { id: "openai/gpt-oss-20b", name: "GPT OSS 20B", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.05, output: 0.2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 8192 }, "openai/gpt-oss-safeguard-20b": { id: "openai/gpt-oss-safeguard-20b", name: "GPT OSS Safeguard 20B", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.075, output: 0.3, cacheRead: 0.037, cacheWrite: 0 }, contextWindow: 131072, maxTokens: 65536 }, "openai/o1": { id: "openai/o1", name: "o1", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 15, output: 60, cacheRead: 7.5, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5 }, "openai/o3": { id: "openai/o3", name: "o3", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5 }, "openai/o3-deep-research": { id: "openai/o3-deep-research", name: "o3-deep-research", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 10, output: 40, cacheRead: 2.5, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5 }, "openai/o3-fast": { id: "openai/o3-fast", name: "o3 (Fast)", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 3.5, output: 14, cacheRead: 0.875, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5 }, "openai/o3-mini": { id: "openai/o3-mini", name: "o3-mini", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 1.1, output: 4.4, cacheRead: 0.55, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5 }, "openai/o3-pro": { id: "openai/o3-pro", name: "o3 Pro", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 20, output: 80, cacheRead: 0, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5 }, "openai/o4-mini": { id: "openai/o4-mini", name: "o4-mini", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1.1, output: 4.4, cacheRead: 0.275, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5 }, "openai/o4-mini-fast": { id: "openai/o4-mini-fast", name: "o4-mini (Fast)", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 1e5 }, "poolside/laguna-s-2.1": { id: "poolside/laguna-s-2.1", name: "Laguna S 2.1", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.1, output: 0.2, cacheRead: 0.01, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 131072 }, "poolside/laguna-s-2.1-free": { id: "poolside/laguna-s-2.1-free", name: "Laguna S 2.1 Free", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 32768 }, "sakana/fugu-ultra": { id: "sakana/fugu-ultra", name: "Fugu Ultra", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 1e6 }, "sakana/namazu": { id: "sakana/namazu", name: "Sakana Namazu", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.15, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 256e3 }, "spacexai/grok-4.1-fast-non-reasoning": { id: "spacexai/grok-4.1-fast-non-reasoning", name: "Grok 4.1 Fast Non-Reasoning", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 0.2, output: 0.5, cacheRead: 0.05, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 1e6 }, "spacexai/grok-4.1-fast-reasoning": { id: "spacexai/grok-4.1-fast-reasoning", name: "Grok 4.1 Fast Reasoning", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 0.5, cacheRead: 0.05, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 1e6 }, "spacexai/grok-4.20-multi-agent": { id: "spacexai/grok-4.20-multi-agent", name: "Grok 4.20 Multi-Agent", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 2.5, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 2e6, maxTokens: 2e6 }, "spacexai/grok-4.20-multi-agent-beta": { id: "spacexai/grok-4.20-multi-agent-beta", name: "Grok 4.20 Multi Agent Beta", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 2.5, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 2e6, maxTokens: 2e6 }, "spacexai/grok-4.20-non-reasoning": { id: "spacexai/grok-4.20-non-reasoning", name: "Grok 4.20 Non-Reasoning", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 1.25, output: 2.5, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 2e6, maxTokens: 2e6 }, "spacexai/grok-4.20-non-reasoning-beta": { id: "spacexai/grok-4.20-non-reasoning-beta", name: "Grok 4.20 Beta Non-Reasoning", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: false, input: ["text", "image"], cost: { input: 1.25, output: 2.5, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 2e6, maxTokens: 2e6 }, "spacexai/grok-4.20-reasoning": { id: "spacexai/grok-4.20-reasoning", name: "Grok 4.20 Reasoning", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 2.5, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 2e6, maxTokens: 2e6 }, "spacexai/grok-4.20-reasoning-beta": { id: "spacexai/grok-4.20-reasoning-beta", name: "Grok 4.20 Beta Reasoning", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 2.5, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 2e6, maxTokens: 2e6 }, "spacexai/grok-4.3": { id: "spacexai/grok-4.3", name: "Grok 4.3", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 2.5, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 1e6 }, "spacexai/grok-4.5": { id: "spacexai/grok-4.5", name: "Grok 4.5", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 6, cacheRead: 0.3, cacheWrite: 0 }, contextWindow: 5e5, maxTokens: 5e5 }, "spacexai/grok-4.6": { id: "spacexai/grok-4.6", name: "Grok 4.6", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 2, output: 6, cacheRead: 0.5, cacheWrite: 0 }, contextWindow: 5e5, maxTokens: 5e5 }, "spacexai/grok-build-0.1": { id: "spacexai/grok-build-0.1", name: "Grok Build 0.1", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 2, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 256e3 }, "stepfun/step-3.5-flash": { id: "stepfun/step-3.5-flash", name: "StepFun 3.5 Flash", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.09, output: 0.3, cacheRead: 0.02, cacheWrite: 0 }, contextWindow: 262114, maxTokens: 262114 }, "stepfun/step-3.7-flash": { id: "stepfun/step-3.7-flash", name: "Step 3.7 Flash", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.2, output: 1.15, cacheRead: 0.04, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 256e3 }, "tencent/hy3": { id: "tencent/hy3", name: "Hy3", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.132, output: 0.528, cacheRead: 0.033, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 128e3 }, "thinkingmachines/inkling": { id: "thinkingmachines/inkling", name: "Inkling", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1, output: 4.05, cacheRead: 0.17, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 256e3 }, "thinkingmachines/inkling-small": { id: "thinkingmachines/inkling-small", name: "Inkling Small", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.5, output: 1.2, cacheRead: 0.1, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 1e6 }, "xiaomi/mimo-v2.5": { id: "xiaomi/mimo-v2.5", name: "MiMo M2.5", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.14, output: 0.28, cacheRead: 28e-4, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 131100 }, "xiaomi/mimo-v2.5-pro": { id: "xiaomi/mimo-v2.5-pro", name: "MiMo V2.5 Pro", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.435, output: 0.87, cacheRead: 36e-4, cacheWrite: 0 }, contextWindow: 105e4, maxTokens: 131e3 }, "zai/glm-4.5": { id: "zai/glm-4.5", name: "GLM 4.5", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.6, output: 2.2, cacheRead: 0.11, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 96e3 }, "zai/glm-4.5-air": { id: "zai/glm-4.5-air", name: "GLM 4.5 Air", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.2, output: 1.1, cacheRead: 0.03, cacheWrite: 0 }, contextWindow: 128e3, maxTokens: 96e3 }, "zai/glm-4.5v": { id: "zai/glm-4.5v", name: "GLM 4.5V", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 0.6, output: 1.8, cacheRead: 0.11, cacheWrite: 0 }, contextWindow: 66e3, maxTokens: 16e3 }, "zai/glm-4.6": { id: "zai/glm-4.6", name: "GLM 4.6", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.6, output: 2.2, cacheRead: 0.11, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 96e3 }, "zai/glm-4.7": { id: "zai/glm-4.7", name: "GLM 4.7", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.6, output: 2.2, cacheRead: 0.12, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 12e4 }, "zai/glm-4.7-flash": { id: "zai/glm-4.7-flash", name: "GLM 4.7 Flash", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.07, output: 0.4, cacheRead: 0, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 131e3 }, "zai/glm-4.7-flashx": { id: "zai/glm-4.7-flashx", name: "GLM 4.7 FlashX", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.06, output: 0.4, cacheRead: 0.01, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 128e3 }, "zai/glm-5": { id: "zai/glm-5", name: "GLM 5", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 1, output: 3.2, cacheRead: 0, cacheWrite: 0 }, contextWindow: 202800, maxTokens: 131100 }, "zai/glm-5-turbo": { id: "zai/glm-5-turbo", name: "GLM 5 Turbo", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 1.2, output: 4, cacheRead: 0.24, cacheWrite: 0 }, contextWindow: 202800, maxTokens: 131100 }, "zai/glm-5.1": { id: "zai/glm-5.1", name: "GLM 5.1", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, contextWindow: 202800, maxTokens: 64e3 }, "zai/glm-5.2": { id: "zai/glm-5.2", name: "GLM 5.2", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 0.8, output: 2.55, cacheRead: 0.16, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 128e3 }, "zai/glm-5.2-fast": { id: "zai/glm-5.2-fast", name: "GLM 5.2 Fast", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 2.1, output: 6.6, cacheRead: 0.21, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 128e3 }, "zai/glm-5.3": { id: "zai/glm-5.3", name: "GLM 5.3", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text"], cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 12800 }, "zai/glm-5v-turbo": { id: "zai/glm-5v-turbo", name: "GLM 5V Turbo", api: "anthropic-messages", baseUrl: "https://ai-gateway.vercel.sh", provider: "vercel-ai-gateway", reasoning: true, input: ["text", "image"], cost: { input: 1.2, output: 4, cacheRead: 0.24, cacheWrite: 0 }, contextWindow: 2e5, maxTokens: 128e3 } } };
|
|
3424
3858
|
|
|
3425
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3859
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js
|
|
3426
3860
|
var VERCEL_AI_GATEWAY_MODELS = flattenModelCatalog("vercel-ai-gateway", vercel_ai_gateway_default);
|
|
3427
3861
|
|
|
3428
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3862
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/xai.json
|
|
3429
3863
|
var xai_default = { "openai-responses": { "grok-4.3": { id: "grok-4.3", name: "Grok 4.3", api: "openai-responses", provider: "xai", baseUrl: "https://api.x.ai/v1", compat: { supportsLongCacheRetention: false }, reasoning: true, input: ["text", "image"], cost: { input: 1.25, output: 2.5, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 1e6, maxTokens: 3e4, thinkingLevelMap: { off: "none", minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "grok-4.5": { id: "grok-4.5", name: "Grok 4.5", api: "openai-responses", provider: "xai", baseUrl: "https://api.x.ai/v1", compat: { supportsLongCacheRetention: false }, reasoning: true, input: ["text", "image"], cost: { input: 2, output: 6, cacheRead: 0.3, cacheWrite: 0 }, contextWindow: 5e5, maxTokens: 5e5, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: null, max: null } }, "grok-4.6": { id: "grok-4.6", name: "Grok 4.6", api: "openai-responses", provider: "xai", baseUrl: "https://api.x.ai/v1", compat: { supportsLongCacheRetention: false }, reasoning: true, input: ["text", "image"], cost: { input: 2, output: 6, cacheRead: 0.5, cacheWrite: 0 }, contextWindow: 5e5, maxTokens: 5e5, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: null } }, "grok-build-0.1": { id: "grok-build-0.1", name: "Grok Build 0.1", api: "openai-responses", provider: "xai", baseUrl: "https://api.x.ai/v1", compat: { supportsLongCacheRetention: false }, reasoning: true, input: ["text", "image"], cost: { input: 1, output: 2, cacheRead: 0.2, cacheWrite: 0 }, contextWindow: 256e3, maxTokens: 256e3, thinkingLevelMap: { off: null, minimal: null } } } };
|
|
3430
3864
|
|
|
3431
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3865
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/xai.models.js
|
|
3432
3866
|
var XAI_MODELS = flattenModelCatalog("xai", xai_default);
|
|
3433
3867
|
|
|
3434
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3868
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi.json
|
|
3435
3869
|
var xiaomi_default = { "openai-completions": { "mimo-v2.5": { id: "mimo-v2.5", name: "MiMo-V2.5", api: "openai-completions", provider: "xiaomi", baseUrl: "https://api.xiaomimimo.com/v1", compat: { requiresReasoningContentOnAssistantMessages: true, thinkingFormat: "deepseek" }, reasoning: true, input: ["text", "image"], cost: { input: 0.14, output: 0.28, cacheRead: 28e-4, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072 }, "mimo-v2.5-pro": { id: "mimo-v2.5-pro", name: "MiMo-V2.5-Pro", api: "openai-completions", provider: "xiaomi", baseUrl: "https://api.xiaomimimo.com/v1", compat: { requiresReasoningContentOnAssistantMessages: true, thinkingFormat: "deepseek" }, reasoning: true, input: ["text"], cost: { input: 0.435, output: 0.87, cacheRead: 36e-4, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072 }, "mimo-v2.5-pro-ultraspeed": { id: "mimo-v2.5-pro-ultraspeed", name: "MiMo-V2.5-Pro-UltraSpeed", api: "openai-completions", provider: "xiaomi", baseUrl: "https://api.xiaomimimo.com/v1", compat: { requiresReasoningContentOnAssistantMessages: true, thinkingFormat: "deepseek" }, reasoning: true, input: ["text"], cost: { input: 1.305, output: 2.61, cacheRead: 0.0108, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072 } } };
|
|
3436
3870
|
|
|
3437
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3871
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.models.js
|
|
3438
3872
|
var XIAOMI_MODELS = flattenModelCatalog("xiaomi", xiaomi_default);
|
|
3439
3873
|
|
|
3440
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3874
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi-token-plan-ams.json
|
|
3441
3875
|
var xiaomi_token_plan_ams_default = { "openai-completions": { "mimo-v2.5": { id: "mimo-v2.5", name: "MiMo-V2.5", api: "openai-completions", provider: "xiaomi-token-plan-ams", baseUrl: "https://token-plan-ams.xiaomimimo.com/v1", compat: { requiresReasoningContentOnAssistantMessages: true, thinkingFormat: "deepseek" }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072 }, "mimo-v2.5-pro": { id: "mimo-v2.5-pro", name: "MiMo-V2.5-Pro", api: "openai-completions", provider: "xiaomi-token-plan-ams", baseUrl: "https://token-plan-ams.xiaomimimo.com/v1", compat: { requiresReasoningContentOnAssistantMessages: true, thinkingFormat: "deepseek" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072 } } };
|
|
3442
3876
|
|
|
3443
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3877
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.js
|
|
3444
3878
|
var XIAOMI_TOKEN_PLAN_AMS_MODELS = flattenModelCatalog("xiaomi-token-plan-ams", xiaomi_token_plan_ams_default);
|
|
3445
3879
|
|
|
3446
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3880
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi-token-plan-cn.json
|
|
3447
3881
|
var xiaomi_token_plan_cn_default = { "openai-completions": { "mimo-v2.5": { id: "mimo-v2.5", name: "MiMo-V2.5", api: "openai-completions", provider: "xiaomi-token-plan-cn", baseUrl: "https://token-plan-cn.xiaomimimo.com/v1", compat: { requiresReasoningContentOnAssistantMessages: true, thinkingFormat: "deepseek" }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072 }, "mimo-v2.5-pro": { id: "mimo-v2.5-pro", name: "MiMo-V2.5-Pro", api: "openai-completions", provider: "xiaomi-token-plan-cn", baseUrl: "https://token-plan-cn.xiaomimimo.com/v1", compat: { requiresReasoningContentOnAssistantMessages: true, thinkingFormat: "deepseek" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072 } } };
|
|
3448
3882
|
|
|
3449
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3883
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.js
|
|
3450
3884
|
var XIAOMI_TOKEN_PLAN_CN_MODELS = flattenModelCatalog("xiaomi-token-plan-cn", xiaomi_token_plan_cn_default);
|
|
3451
3885
|
|
|
3452
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3886
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi-token-plan-sgp.json
|
|
3453
3887
|
var xiaomi_token_plan_sgp_default = { "openai-completions": { "mimo-v2.5": { id: "mimo-v2.5", name: "MiMo-V2.5", api: "openai-completions", provider: "xiaomi-token-plan-sgp", baseUrl: "https://token-plan-sgp.xiaomimimo.com/v1", compat: { requiresReasoningContentOnAssistantMessages: true, thinkingFormat: "deepseek" }, reasoning: true, input: ["text", "image"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072 }, "mimo-v2.5-pro": { id: "mimo-v2.5-pro", name: "MiMo-V2.5-Pro", api: "openai-completions", provider: "xiaomi-token-plan-sgp", baseUrl: "https://token-plan-sgp.xiaomimimo.com/v1", compat: { requiresReasoningContentOnAssistantMessages: true, thinkingFormat: "deepseek" }, reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 1048576, maxTokens: 131072 } } };
|
|
3454
3888
|
|
|
3455
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3889
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.js
|
|
3456
3890
|
var XIAOMI_TOKEN_PLAN_SGP_MODELS = flattenModelCatalog("xiaomi-token-plan-sgp", xiaomi_token_plan_sgp_default);
|
|
3457
3891
|
|
|
3458
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3892
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/zai.json
|
|
3459
3893
|
var zai_default = { "openai-completions": { "glm-4.7": { id: "glm-4.7", name: "GLM-4.7", api: "openai-completions", provider: "zai", baseUrl: "https://api.z.ai/api/coding/paas/v4", reasoning: true, input: ["text"], cost: { input: 0.6, output: 2.2, cacheRead: 0.11, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "zai", zaiToolStream: true }, contextWindow: 204800, maxTokens: 131072 }, "glm-5-turbo": { id: "glm-5-turbo", name: "GLM-5-Turbo", api: "openai-completions", provider: "zai", baseUrl: "https://api.z.ai/api/coding/paas/v4", reasoning: true, input: ["text"], cost: { input: 1.2, output: 4, cacheRead: 0.24, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "zai", zaiToolStream: true }, contextWindow: 2e5, maxTokens: 131072 }, "glm-5.2": { id: "glm-5.2", name: "GLM-5.2", api: "openai-completions", provider: "zai", baseUrl: "https://api.z.ai/api/coding/paas/v4", reasoning: true, thinkingLevelMap: { off: "none", minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" }, input: ["text"], cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: true, maxTokensField: "max_tokens", thinkingFormat: "zai", zaiToolStream: true }, contextWindow: 1e6, maxTokens: 131072 }, "glm-5.2-highspeed": { id: "glm-5.2-highspeed", name: "GLM-5.2 Highspeed", api: "openai-completions", provider: "zai", baseUrl: "https://api.z.ai/api/coding/paas/v4", reasoning: true, thinkingLevelMap: { off: "none", minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" }, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: true, maxTokensField: "max_tokens", thinkingFormat: "zai", zaiToolStream: true }, contextWindow: 1e6, maxTokens: 131072 }, "glm-5.3": { id: "glm-5.3", name: "GLM-5.3", api: "openai-completions", provider: "zai", baseUrl: "https://api.z.ai/api/coding/paas/v4", reasoning: true, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: null, high: "high", xhigh: null, max: "max" }, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: true, maxTokensField: "max_tokens", thinkingFormat: "zai", zaiToolStream: true }, contextWindow: 1e6, maxTokens: 131072 } } };
|
|
3460
3894
|
|
|
3461
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3895
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/zai.models.js
|
|
3462
3896
|
var ZAI_MODELS = flattenModelCatalog("zai", zai_default);
|
|
3463
3897
|
|
|
3464
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3898
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/data/zai-coding-cn.json
|
|
3465
3899
|
var zai_coding_cn_default = { "openai-completions": { "glm-4.6v": { id: "glm-4.6v", name: "GLM-4.6V", api: "openai-completions", provider: "zai-coding-cn", baseUrl: "https://open.bigmodel.cn/api/coding/paas/v4", reasoning: true, input: ["text", "image"], cost: { input: 0.3, output: 0.9, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "zai", zaiToolStream: true }, contextWindow: 128e3, maxTokens: 32768 }, "glm-4.7": { id: "glm-4.7", name: "GLM-4.7", api: "openai-completions", provider: "zai-coding-cn", baseUrl: "https://open.bigmodel.cn/api/coding/paas/v4", reasoning: true, input: ["text"], cost: { input: 0.6, output: 2.2, cacheRead: 0.11, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "zai", zaiToolStream: true }, contextWindow: 204800, maxTokens: 131072 }, "glm-5-turbo": { id: "glm-5-turbo", name: "GLM-5-Turbo", api: "openai-completions", provider: "zai-coding-cn", baseUrl: "https://open.bigmodel.cn/api/coding/paas/v4", reasoning: true, input: ["text"], cost: { input: 1.2, output: 4, cacheRead: 0.24, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "zai", zaiToolStream: true }, contextWindow: 2e5, maxTokens: 131072 }, "glm-5.1": { id: "glm-5.1", name: "GLM-5.1", api: "openai-completions", provider: "zai-coding-cn", baseUrl: "https://open.bigmodel.cn/api/coding/paas/v4", reasoning: true, input: ["text"], cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "zai", zaiToolStream: true }, contextWindow: 2e5, maxTokens: 131072 }, "glm-5.2": { id: "glm-5.2", name: "GLM-5.2", api: "openai-completions", provider: "zai-coding-cn", baseUrl: "https://open.bigmodel.cn/api/coding/paas/v4", reasoning: true, thinkingLevelMap: { off: "none", minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" }, input: ["text"], cost: { input: 1.4, output: 4.4, cacheRead: 0.26, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: true, maxTokensField: "max_tokens", thinkingFormat: "zai", zaiToolStream: true }, contextWindow: 1e6, maxTokens: 131072 }, "glm-5.2-highspeed": { id: "glm-5.2-highspeed", name: "GLM-5.2 Highspeed", api: "openai-completions", provider: "zai-coding-cn", baseUrl: "https://open.bigmodel.cn/api/coding/paas/v4", reasoning: true, thinkingLevelMap: { off: "none", minimal: null, low: null, medium: null, high: "high", xhigh: null, max: "max" }, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: true, maxTokensField: "max_tokens", thinkingFormat: "zai", zaiToolStream: true }, contextWindow: 1e6, maxTokens: 131072 }, "glm-5.3": { id: "glm-5.3", name: "GLM-5.3", api: "openai-completions", provider: "zai-coding-cn", baseUrl: "https://open.bigmodel.cn/api/coding/paas/v4", reasoning: true, thinkingLevelMap: { off: null, minimal: null, low: "low", medium: null, high: "high", xhigh: null, max: "max" }, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: true, maxTokensField: "max_tokens", thinkingFormat: "zai", zaiToolStream: true }, contextWindow: 1e6, maxTokens: 131072 }, "glm-5v-turbo": { id: "glm-5v-turbo", name: "GLM-5V-Turbo", api: "openai-completions", provider: "zai-coding-cn", baseUrl: "https://open.bigmodel.cn/api/coding/paas/v4", reasoning: true, input: ["text", "image"], cost: { input: 1.2, output: 4, cacheRead: 0.24, cacheWrite: 0 }, compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: false, maxTokensField: "max_tokens", thinkingFormat: "zai", zaiToolStream: true }, contextWindow: 2e5, maxTokens: 131072 } } };
|
|
3466
3900
|
|
|
3467
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3901
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.models.js
|
|
3468
3902
|
var ZAI_CODING_CN_MODELS = flattenModelCatalog("zai-coding-cn", zai_coding_cn_default);
|
|
3469
3903
|
|
|
3470
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3904
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/models.generated.js
|
|
3471
3905
|
var MODELS = {
|
|
3472
3906
|
"amazon-bedrock": AMAZON_BEDROCK_MODELS,
|
|
3473
3907
|
"ant-ling": ANT_LING_MODELS,
|
|
@@ -3510,7 +3944,7 @@ var MODELS = {
|
|
|
3510
3944
|
"zai-coding-cn": ZAI_CODING_CN_MODELS
|
|
3511
3945
|
};
|
|
3512
3946
|
|
|
3513
|
-
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.
|
|
3947
|
+
// node_modules/.pnpm/@earendil-works+pi-ai@0.84.3_ws@8.21.3_zod@4.6.5/node_modules/@earendil-works/pi-ai/dist/providers/all.js
|
|
3514
3948
|
function getBuiltinModels(provider) {
|
|
3515
3949
|
const models = MODELS[provider];
|
|
3516
3950
|
return models ? Object.values(models) : [];
|
|
@@ -3565,14 +3999,12 @@ function decimalUsd(value) {
|
|
|
3565
3999
|
|
|
3566
4000
|
// host/codex/src/codex-transcript-watcher.ts
|
|
3567
4001
|
var READ_CHUNK_BYTES = 256 * 1024;
|
|
3568
|
-
var ANCHOR_BYTES = 256;
|
|
3569
4002
|
var TRANSCRIPT_MISSING_REASON = "transcript_missing";
|
|
3570
4003
|
var CodexTranscriptWatcher = class {
|
|
3571
4004
|
store;
|
|
3572
4005
|
outboxRetentionMs;
|
|
3573
4006
|
now;
|
|
3574
4007
|
log;
|
|
3575
|
-
retriedMalformedQuarantines = /* @__PURE__ */ new Set();
|
|
3576
4008
|
producerInstallationRef;
|
|
3577
4009
|
registerCurrentPrompt;
|
|
3578
4010
|
constructor(options) {
|
|
@@ -3604,13 +4036,10 @@ var CodexTranscriptWatcher = class {
|
|
|
3604
4036
|
let handle;
|
|
3605
4037
|
try {
|
|
3606
4038
|
handle = await open5(registration.transcript_path, O_RDONLY3 | O_NOFOLLOW2);
|
|
3607
|
-
const
|
|
3608
|
-
|
|
3609
|
-
const device = String(stats.dev);
|
|
3610
|
-
const inode = String(stats.ino);
|
|
3611
|
-
const preflight = await this.preflight(registration, handle, stats.size, device, inode);
|
|
4039
|
+
const { size, device, inode } = await ownedCodexTranscriptFile(handle);
|
|
4040
|
+
const preflight = await this.preflight(registration, handle, size, device, inode);
|
|
3612
4041
|
if (preflight.cursor === null) return preflight.result;
|
|
3613
|
-
const complete = await readCompleteChunk(handle, preflight.cursor,
|
|
4042
|
+
const complete = await readCompleteChunk(handle, preflight.cursor, size);
|
|
3614
4043
|
if (complete === "empty" || complete === "partial") return { records: 0, enqueued: 0, quarantined: false };
|
|
3615
4044
|
return await this.consumeCompleteChunk(registration, handle, preflight.cursor, complete, device, inode);
|
|
3616
4045
|
} catch (error) {
|
|
@@ -3633,20 +4062,13 @@ var CodexTranscriptWatcher = class {
|
|
|
3633
4062
|
*/
|
|
3634
4063
|
async retireRegistration(registration) {
|
|
3635
4064
|
await this.store.retireTranscriptRegistration(registration);
|
|
3636
|
-
this.retriedMalformedQuarantines.delete(transcriptQuarantineReference(registration));
|
|
3637
4065
|
this.log(`Codex retired a transcript registration: transcript_path=${JSON.stringify(registration.transcript_path)}, reason=${TRANSCRIPT_MISSING_REASON}.`);
|
|
3638
4066
|
return { records: 0, enqueued: 0, quarantined: false };
|
|
3639
4067
|
}
|
|
3640
4068
|
async preflight(registration, handle, size, device, inode) {
|
|
3641
4069
|
const existing = await this.store.readTranscriptCursor(registration);
|
|
3642
|
-
let cursor = existing ??
|
|
3643
|
-
if (cursor.status === "quarantined") {
|
|
3644
|
-
const quarantineRef = transcriptQuarantineReference(registration);
|
|
3645
|
-
if (cursor.reason !== "transcript_malformed" || this.retriedMalformedQuarantines.has(quarantineRef)) return { cursor: null, result: { records: 0, enqueued: 0, quarantined: true } };
|
|
3646
|
-
this.retriedMalformedQuarantines.add(quarantineRef);
|
|
3647
|
-
cursor = { ...cursor, status: "active", reason: void 0, updated_at: timestamp3(this.now) };
|
|
3648
|
-
await this.store.writeTranscriptCursor(cursor);
|
|
3649
|
-
}
|
|
4070
|
+
let cursor = existing ?? codexTranscriptInitialCursor(registration, device, inode, this.now);
|
|
4071
|
+
if (cursor.status === "quarantined") return { cursor: null, result: { records: 0, enqueued: 0, quarantined: true } };
|
|
3650
4072
|
const reason = await cursorFailureReason(registration, handle, cursor, size, device, inode);
|
|
3651
4073
|
if (reason === null) return { cursor, result: { records: 0, enqueued: 0, quarantined: false } };
|
|
3652
4074
|
await this.quarantine(registration, cursor, device, inode, reason);
|
|
@@ -3677,17 +4099,17 @@ var CodexTranscriptWatcher = class {
|
|
|
3677
4099
|
}
|
|
3678
4100
|
async commitCursor(registration, handle, cursor, consumedBytes, device, inode, lastOrdinal, activeTask) {
|
|
3679
4101
|
const offset = cursor.offset + consumedBytes;
|
|
3680
|
-
const anchorStart = Math.max(0, offset -
|
|
4102
|
+
const anchorStart = Math.max(0, offset - CODEX_TRANSCRIPT_ANCHOR_BYTES);
|
|
3681
4103
|
const anchor = Buffer.alloc(offset - anchorStart);
|
|
3682
4104
|
if (anchor.length > 0) await handle.read(anchor, 0, anchor.length, anchorStart);
|
|
3683
|
-
await this.store.writeTranscriptCursor({ schema_version: "ceal.codex_transcript_cursor.v1", host_source_ref: registration.host_source_ref, host_session_ref: registration.host_session_ref, transcript_path: registration.transcript_path, device, inode, offset, last_ordinal: lastOrdinal, anchor_start: anchorStart, anchor_sha256: sha2562(anchor), header_validated: true, ...activeTask === void 0 ? {} : { active_task: activeTask }, status: "active", updated_at:
|
|
4105
|
+
await this.store.writeTranscriptCursor({ schema_version: "ceal.codex_transcript_cursor.v1", host_source_ref: registration.host_source_ref, host_session_ref: registration.host_session_ref, transcript_path: registration.transcript_path, device, inode, offset, last_ordinal: lastOrdinal, anchor_start: anchorStart, anchor_sha256: sha2562(anchor), header_validated: true, ...activeTask === void 0 ? {} : { active_task: activeTask }, status: "active", updated_at: timestamp4(this.now) });
|
|
3684
4106
|
}
|
|
3685
4107
|
async quarantineFailure(registration, handle) {
|
|
3686
4108
|
if (handle === void 0) return;
|
|
3687
4109
|
const stats = await handle.stat().catch(() => null);
|
|
3688
4110
|
if (stats === null) return;
|
|
3689
4111
|
const existing = await this.store.readTranscriptCursor(registration).catch(() => null);
|
|
3690
|
-
await this.quarantine(registration, existing ??
|
|
4112
|
+
await this.quarantine(registration, existing ?? codexTranscriptInitialCursor(registration, String(stats.dev), String(stats.ino), this.now), String(stats.dev), String(stats.ino), "transcript_malformed");
|
|
3691
4113
|
}
|
|
3692
4114
|
async processRecord(registration, activeTask, record3) {
|
|
3693
4115
|
if (record3.kind === "task_started") {
|
|
@@ -3760,8 +4182,7 @@ var CodexTranscriptWatcher = class {
|
|
|
3760
4182
|
return { enqueued: 1 };
|
|
3761
4183
|
}
|
|
3762
4184
|
async quarantine(registration, cursor, device, inode, reason) {
|
|
3763
|
-
const quarantined = { ...cursor, transcript_path: registration.transcript_path, device, inode, status: "quarantined", reason, updated_at:
|
|
3764
|
-
if (reason === "transcript_malformed") this.retriedMalformedQuarantines.add(transcriptQuarantineReference(registration));
|
|
4185
|
+
const quarantined = { ...cursor, transcript_path: registration.transcript_path, device, inode, status: "quarantined", reason, updated_at: timestamp4(this.now) };
|
|
3765
4186
|
await this.store.writeTranscriptCursor(quarantined);
|
|
3766
4187
|
}
|
|
3767
4188
|
};
|
|
@@ -3861,14 +4282,6 @@ function looksLikeStaleRegression(current, previous, last) {
|
|
|
3861
4282
|
function isMissingTranscript(error) {
|
|
3862
4283
|
return typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT";
|
|
3863
4284
|
}
|
|
3864
|
-
function transcriptQuarantineReference(registration) {
|
|
3865
|
-
return `${registration.host_source_ref}\0${registration.host_session_ref}\0${registration.transcript_path}`;
|
|
3866
|
-
}
|
|
3867
|
-
function assertOwnerTranscript(stats) {
|
|
3868
|
-
const uid = typeof process.geteuid === "function" ? process.geteuid() : stats.uid;
|
|
3869
|
-
if (!stats.isFile()) throw new CodexHostAdapterError("storage", `Codex transcript source is not a regular file (${refusalFact("mode", `0o${stats.mode.toString(8)}`, "a regular-file mode (0o100xxx)")}).`);
|
|
3870
|
-
if (stats.uid !== uid) throw new CodexHostAdapterError("storage", `Codex transcript source is owned by another user (${refusalFact("uid", stats.uid, `expected ${uid}`)}).`);
|
|
3871
|
-
}
|
|
3872
4285
|
async function cursorFailureReason(registration, handle, cursor, size, device, inode) {
|
|
3873
4286
|
if (cursor.device !== device || cursor.inode !== inode || cursor.transcript_path !== registration.transcript_path) return "transcript_replaced";
|
|
3874
4287
|
if (size < cursor.offset) return "transcript_truncated";
|
|
@@ -3899,27 +4312,7 @@ async function readCompleteChunk(handle, cursor, size) {
|
|
|
3899
4312
|
}
|
|
3900
4313
|
function assertRecordSequence(registration, cursor, records, lastOrdinal, record3) {
|
|
3901
4314
|
if ((cursor.header_validated || records > 0) && record3.ordinal <= lastOrdinal) throw new CodexHostAdapterError("payload_rejected", `Codex transcript ordinal is not monotonic (${refusalFact("ordinal", record3.ordinal, `greater than ${lastOrdinal}`)}).`);
|
|
3902
|
-
if (!cursor.header_validated && records === 0
|
|
3903
|
-
{ name: "kind", value: record3.kind, expected: "session_meta" },
|
|
3904
|
-
{ name: "session_id", value: record3.kind === "session_meta" ? record3.session_id : "unavailable", expected: registration.codex_session_id }
|
|
3905
|
-
])}).`);
|
|
3906
|
-
}
|
|
3907
|
-
function initialCursor(registration, device, inode, now) {
|
|
3908
|
-
return {
|
|
3909
|
-
schema_version: "ceal.codex_transcript_cursor.v1",
|
|
3910
|
-
host_source_ref: registration.host_source_ref,
|
|
3911
|
-
host_session_ref: registration.host_session_ref,
|
|
3912
|
-
transcript_path: registration.transcript_path,
|
|
3913
|
-
device,
|
|
3914
|
-
inode,
|
|
3915
|
-
offset: 0,
|
|
3916
|
-
last_ordinal: 0,
|
|
3917
|
-
anchor_start: 0,
|
|
3918
|
-
anchor_sha256: sha2562(Buffer.alloc(0)),
|
|
3919
|
-
header_validated: false,
|
|
3920
|
-
status: "active",
|
|
3921
|
-
updated_at: timestamp3(now)
|
|
3922
|
-
};
|
|
4315
|
+
if (!cursor.header_validated && records === 0) assertCodexTranscriptHeader(registration, record3);
|
|
3923
4316
|
}
|
|
3924
4317
|
async function anchorMatches(handle, cursor) {
|
|
3925
4318
|
const buffer = Buffer.alloc(cursor.offset - cursor.anchor_start);
|
|
@@ -3927,18 +4320,18 @@ async function anchorMatches(handle, cursor) {
|
|
|
3927
4320
|
return sha2562(buffer) === cursor.anchor_sha256;
|
|
3928
4321
|
}
|
|
3929
4322
|
function sha2562(value) {
|
|
3930
|
-
return
|
|
4323
|
+
return createHash7("sha256").update(value).digest("hex");
|
|
3931
4324
|
}
|
|
3932
4325
|
function isRecord7(value) {
|
|
3933
4326
|
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
3934
4327
|
}
|
|
3935
|
-
function
|
|
4328
|
+
function timestamp4(now) {
|
|
3936
4329
|
const value = now();
|
|
3937
4330
|
if (!Number.isFinite(value.getTime())) throw new CodexHostAdapterError("storage", "Codex watcher clock is invalid.");
|
|
3938
4331
|
return value.toISOString();
|
|
3939
4332
|
}
|
|
3940
4333
|
function expiration(now, retentionMs) {
|
|
3941
|
-
return new Date(Date.parse(
|
|
4334
|
+
return new Date(Date.parse(timestamp4(now)) + retentionMs).toISOString();
|
|
3942
4335
|
}
|
|
3943
4336
|
|
|
3944
4337
|
// host/codex/src/codex-producer-runtime.ts
|
|
@@ -3954,6 +4347,7 @@ var CODEX_PRODUCER_CONFIG_SCHEMA = "ceal.codex_producer_config.v1";
|
|
|
3954
4347
|
var CODEX_SESSIONS_ROOT = "codex_sessions_root";
|
|
3955
4348
|
var CODEX_PRODUCER_DESCRIPTOR = {
|
|
3956
4349
|
schema: CODEX_PRODUCER_CONFIG_SCHEMA,
|
|
4350
|
+
producer_id: "codex",
|
|
3957
4351
|
extra_paths: [CODEX_SESSIONS_ROOT],
|
|
3958
4352
|
config: (shared, extras) => ({ ...shared, codex_sessions_root: hostProducerExtraPath(extras, CODEX_SESSIONS_ROOT) }),
|
|
3959
4353
|
runtime_options: (config) => Object.freeze({
|