@oxagen/cli 3.0.1-155 → 3.0.1-162
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/oxagen.mjs +132 -15
- package/package.json +1 -1
package/oxagen.mjs
CHANGED
|
@@ -5704,7 +5704,7 @@ function bundleSkillChars(skill) {
|
|
|
5704
5704
|
chars += file.path.length + file.content.length;
|
|
5705
5705
|
return chars;
|
|
5706
5706
|
}
|
|
5707
|
-
var protocolTimestampSchema, machineGroupSchema, TACHO_BATCH_SCHEMA, TACHO_BUNDLE_SCHEMA, TACHO_COMMANDS_SCHEMA, TACHO_ENROLLMENT_CLAIMS_SCHEMA, TACHO_ENROLLMENT_CERTIFICATE_DOMAIN, ENROLLMENT_KEY_SET_SCHEMA, ENROLLMENT_KEY_SET_DOMAIN, TACHO_ENFORCEMENT_TIER_ATTR, TACHO_GATEWAY_TIER, TACHO_GATEWAY_SESSION_HEADER, TACHO_GATEWAY_GENESIS_HEADER, REFUSAL_META_KEY, DECISION_META_KEY, MCP_STREAMABLE_HTTP_ACCEPT, TACHO_METERING_ATTR, TACHO_METERING_OBSERVED, TACHO_MODEL_SESSION_HEADER, TACHO_CREDENTIAL_BASIS_ATTR, TACHO_CREDENTIAL_GATEWAY_BROKERED, TACHO_CREDENTIAL_HARNESS_HELD, TACHO_CREDENTIAL_BASES, TACHO_RUN_TOKEN_ATTR, BUNDLE_FEATURE_GATEWAY_TOOLS, BUNDLE_FEATURE_MODEL_PRICES, BUNDLE_FEATURE_MODEL_ALLOWLIST, BUNDLE_FEATURE_INDEPENDENT_MODELS, BUNDLE_FEATURE_HOOK_FAIL_OPEN, BUNDLE_FEATURE_STEERING_MANIFEST, BUNDLE_FEATURE_STEERING_INCOMPLETE, BUNDLE_FEATURE_STEERING_LOAD, BUNDLE_FEATURE_CONTAINMENT, BUNDLE_FEATURE_DAILY_BUDGET, BUNDLE_FEATURE_STEER_NEXT_STEP, BUNDLE_FEATURE_UNBOUND_REPO, BUNDLE_FEATURE_CEDAR, BUNDLE_FEATURE_CEDAR_TOOLBELT, BUNDLE_FEATURE_SKILLS, BUNDLE_FEATURE_CACHE_KEEP_ALIVE, BUNDLE_FEATURE_WORK_ORDERS, BUNDLE_FEATURE_WORK_ORDER_START, BUNDLE_FEATURE_WORK_ORDER_STAFFING, BUNDLE_FEATURE_MCP_RULE_SETS, BUNDLE_FEATURE_GATEWAY_POLICY, BUNDLE_FEATURE_TENANT_SCOPE, BUNDLE_FEATURE_MEMORY_SCOPE, MEMORY_SCOPE_DIGESTS_MAX, GATEWAY_MIN_TIERS, SENSITIVE_SCREEN_ACTIONS, PROMPT_REDACTION_PATTERNS_MAX, PROMPT_REDACTION_PATTERN_MAX, gatewayPolicySchema, TACHO_BUNDLE_FEATURES, bundleFeaturesSchema, hostEnrollmentIdSchema, MEMBER_PUBLIC_ID, tachoPlatformSchema, tachoHarnessSchema, TACHO_HARNESS_LABELS, TACHO_HARNESS_TIERS, WRAPPED_HARNESSES, CONNECTED_HARNESSES, HARNESS_BINARY, MODEL_HARNESS_ROUTES, MODEL_ROUTED_HARNESSES, BROKERABLE_HARNESSES, BROKERABLE_HARNESS_PROVIDER, TACHO_TIER_SUMMARY, CUSTOM_AGENT_NAME_PATTERN, RESERVED_AGENT_NAMES, tachoHostStatusSchema, tachoBundleModeSchema, tachoCommandSchema, tachoCommandStatusSchema, tachoCommandAckStatusSchema, tachoDeliveryModeSchema, denyGenerationSchema, deliveredCommandSchema, deliveredCommandResponseSchema, WORK_ORDER_ID_PATTERN, WORK_ITEM_ID_PATTERN, workOrderCommandPayloadSchema, WORK_ORDER_CLAIM_PATH, CERTIFICATE_RENEW_PATH, ENROLLMENT_KEYS_PATH, WORK_ORDER_REJECT_PATH, workOrderClaimResponseSchema, workOrderRejectResponseSchema, WORK_CRITERION_CLAIM_PATH, WORK_CRITERION_ID_PATTERN, WORK_HEAD_SHA_PATTERN, WORK_CRITERION_CLAIM_TEXT_MAX, workCriterionClaimResponseSchema, WORK_ORDER_ENV, WORK_ORDER_ATTR, steeringForceSchema, steeringItemKindSchema, steeringCutReasonSchema, steeringHeldLoadSchema, steeringManifestItemSchema, STEERING_MANIFEST_SCHEMA, steeringManifestSchema, steeringManifestFrameSchema, workOrderSteeringReasonSchema, workOrderSteeringItemSchema, workOrderSteeringManifestSchema, cedarIdSchema, cedarPrincipalSchema, cedarToolSchema, cedarBundleSchema, BUNDLE_SKILLS_MAX, BUNDLE_SKILL_FILES_MAX, BUNDLE_SKILLS_CHARS_MAX, BASE64_PATTERN, bundleSkillFileSchema, bundleSkillSchema, policyBundleSchema, enrollmentClaimsSchema, ed25519SignatureSchema, enrollmentCertificateSchema, enrollmentKeySchema, enrollmentKeySetSchema, tachoEventWireSchema, TACHO_MAX_HELD_SESSIONS, daemonHealthSchema, TACHO_MAX_BATCH, TACHO_MAX_BODY_BYTES, TACHO_MAX_REQUEST_BYTES, TACHO_REQUEST_ENVELOPE_BYTES, SANDBOX_GIT_RELAY_PATH, SANDBOX_GITLAB_RELAY_PATH, SANDBOX_GIT_RELAY_MAX_REQUEST_BYTES, SANDBOX_GIT_RELAY_TIMEOUT_MS, tachoBodySchema, tachoBatchSchema, agentDaySpendSchema, controlEnvelopeSchema, ingestResponseSchema, bundleResponseSchema, commandAcknowledgementSchema, commandsResponseSchema, certificateRenewalResponseSchema, enrollmentKeysResponseSchema, enrollmentResponseSchema, tokenEnrollmentResponseSchema;
|
|
5707
|
+
var protocolTimestampSchema, machineGroupSchema, TACHO_BATCH_SCHEMA, TACHO_BUNDLE_SCHEMA, TACHO_COMMANDS_SCHEMA, TACHO_ENROLLMENT_CLAIMS_SCHEMA, TACHO_ENROLLMENT_CERTIFICATE_DOMAIN, ENROLLMENT_KEY_SET_SCHEMA, ENROLLMENT_KEY_SET_DOMAIN, TACHO_ENFORCEMENT_TIER_ATTR, TACHO_GATEWAY_TIER, TACHO_GATEWAY_SESSION_HEADER, TACHO_GATEWAY_GENESIS_HEADER, REFUSAL_META_KEY, DECISION_META_KEY, MCP_STREAMABLE_HTTP_ACCEPT, TACHO_METERING_ATTR, TACHO_METERING_OBSERVED, TACHO_MODEL_SESSION_HEADER, TACHO_CREDENTIAL_BASIS_ATTR, TACHO_CREDENTIAL_GATEWAY_BROKERED, TACHO_CREDENTIAL_HARNESS_HELD, TACHO_CREDENTIAL_BASES, TACHO_RUN_TOKEN_ATTR, BUNDLE_FEATURE_GATEWAY_TOOLS, BUNDLE_FEATURE_MODEL_PRICES, BUNDLE_FEATURE_MODEL_PRICES_LONG_CONTEXT, BUNDLE_FEATURE_MODEL_ALLOWLIST, BUNDLE_FEATURE_INDEPENDENT_MODELS, BUNDLE_FEATURE_HOOK_FAIL_OPEN, BUNDLE_FEATURE_STEERING_MANIFEST, BUNDLE_FEATURE_STEERING_INCOMPLETE, BUNDLE_FEATURE_STEERING_LOAD, BUNDLE_FEATURE_CONTAINMENT, BUNDLE_FEATURE_DAILY_BUDGET, BUNDLE_FEATURE_STEER_NEXT_STEP, BUNDLE_FEATURE_UNBOUND_REPO, BUNDLE_FEATURE_CEDAR, BUNDLE_FEATURE_CEDAR_TOOLBELT, BUNDLE_FEATURE_SKILLS, BUNDLE_FEATURE_CACHE_KEEP_ALIVE, BUNDLE_FEATURE_WORK_ORDERS, BUNDLE_FEATURE_WORK_ORDER_START, BUNDLE_FEATURE_WORK_ORDER_STAFFING, BUNDLE_FEATURE_MCP_RULE_SETS, BUNDLE_FEATURE_GATEWAY_POLICY, BUNDLE_FEATURE_TENANT_SCOPE, BUNDLE_FEATURE_MEMORY_SCOPE, MEMORY_SCOPE_DIGESTS_MAX, GATEWAY_MIN_TIERS, SENSITIVE_SCREEN_ACTIONS, PROMPT_REDACTION_PATTERNS_MAX, PROMPT_REDACTION_PATTERN_MAX, gatewayPolicySchema, TACHO_BUNDLE_FEATURES, bundleFeaturesSchema, hostEnrollmentIdSchema, MEMBER_PUBLIC_ID, tachoPlatformSchema, tachoHarnessSchema, TACHO_HARNESS_LABELS, TACHO_HARNESS_TIERS, WRAPPED_HARNESSES, CONNECTED_HARNESSES, HARNESS_BINARY, MODEL_HARNESS_ROUTES, MODEL_ROUTED_HARNESSES, BROKERABLE_HARNESSES, BROKERABLE_HARNESS_PROVIDER, TACHO_TIER_SUMMARY, CUSTOM_AGENT_NAME_PATTERN, RESERVED_AGENT_NAMES, tachoHostStatusSchema, tachoBundleModeSchema, tachoCommandSchema, tachoCommandStatusSchema, tachoCommandAckStatusSchema, tachoDeliveryModeSchema, denyGenerationSchema, deliveredCommandSchema, deliveredCommandResponseSchema, WORK_ORDER_ID_PATTERN, WORK_ITEM_ID_PATTERN, workOrderCommandPayloadSchema, WORK_ORDER_CLAIM_PATH, CERTIFICATE_RENEW_PATH, ENROLLMENT_KEYS_PATH, WORK_ORDER_REJECT_PATH, workOrderClaimResponseSchema, workOrderRejectResponseSchema, WORK_CRITERION_CLAIM_PATH, WORK_CRITERION_ID_PATTERN, WORK_HEAD_SHA_PATTERN, WORK_CRITERION_CLAIM_TEXT_MAX, workCriterionClaimResponseSchema, WORK_ORDER_ENV, WORK_ORDER_ATTR, steeringForceSchema, steeringItemKindSchema, steeringCutReasonSchema, steeringHeldLoadSchema, steeringManifestItemSchema, STEERING_MANIFEST_SCHEMA, steeringManifestSchema, steeringManifestFrameSchema, workOrderSteeringReasonSchema, workOrderSteeringItemSchema, workOrderSteeringManifestSchema, cedarIdSchema, cedarPrincipalSchema, cedarToolSchema, cedarBundleSchema, BUNDLE_SKILLS_MAX, BUNDLE_SKILL_FILES_MAX, BUNDLE_SKILLS_CHARS_MAX, BASE64_PATTERN, bundleSkillFileSchema, bundleSkillSchema, policyBundleSchema, enrollmentClaimsSchema, ed25519SignatureSchema, enrollmentCertificateSchema, enrollmentKeySchema, enrollmentKeySetSchema, tachoEventWireSchema, TACHO_MAX_HELD_SESSIONS, daemonHealthSchema, TACHO_MAX_BATCH, TACHO_MAX_BODY_BYTES, TACHO_MAX_REQUEST_BYTES, TACHO_REQUEST_ENVELOPE_BYTES, SANDBOX_GIT_RELAY_PATH, SANDBOX_GITLAB_RELAY_PATH, SANDBOX_GIT_RELAY_MAX_REQUEST_BYTES, SANDBOX_GIT_RELAY_TIMEOUT_MS, tachoBodySchema, tachoBatchSchema, agentDaySpendSchema, controlEnvelopeSchema, ingestResponseSchema, bundleResponseSchema, commandAcknowledgementSchema, commandsResponseSchema, certificateRenewalResponseSchema, enrollmentKeysResponseSchema, enrollmentResponseSchema, tokenEnrollmentResponseSchema;
|
|
5708
5708
|
var init_wire = __esm({
|
|
5709
5709
|
"../../packages/tacho/src/wire.ts"() {
|
|
5710
5710
|
"use strict";
|
|
@@ -5746,6 +5746,7 @@ var init_wire = __esm({
|
|
|
5746
5746
|
TACHO_RUN_TOKEN_ATTR = "oxagen.run_token_id";
|
|
5747
5747
|
BUNDLE_FEATURE_GATEWAY_TOOLS = "gateway_tools";
|
|
5748
5748
|
BUNDLE_FEATURE_MODEL_PRICES = "model_prices";
|
|
5749
|
+
BUNDLE_FEATURE_MODEL_PRICES_LONG_CONTEXT = "model_prices_long_context";
|
|
5749
5750
|
BUNDLE_FEATURE_MODEL_ALLOWLIST = "models";
|
|
5750
5751
|
BUNDLE_FEATURE_INDEPENDENT_MODELS = "models_independent";
|
|
5751
5752
|
BUNDLE_FEATURE_HOOK_FAIL_OPEN = "hook_fail_open";
|
|
@@ -5818,7 +5819,8 @@ var init_wire = __esm({
|
|
|
5818
5819
|
BUNDLE_FEATURE_MCP_RULE_SETS,
|
|
5819
5820
|
BUNDLE_FEATURE_GATEWAY_POLICY,
|
|
5820
5821
|
BUNDLE_FEATURE_TENANT_SCOPE,
|
|
5821
|
-
BUNDLE_FEATURE_MEMORY_SCOPE
|
|
5822
|
+
BUNDLE_FEATURE_MEMORY_SCOPE,
|
|
5823
|
+
BUNDLE_FEATURE_MODEL_PRICES_LONG_CONTEXT
|
|
5822
5824
|
];
|
|
5823
5825
|
bundleFeaturesSchema = external_exports.array(external_exports.string().max(64)).max(32);
|
|
5824
5826
|
hostEnrollmentIdSchema = external_exports.string().regex(/^tch_[a-z0-9]{22}$/, "a host enrollment public id");
|
|
@@ -6319,6 +6321,12 @@ var init_wire = __esm({
|
|
|
6319
6321
|
* call it cannot price costs the session budget nothing and is recorded as
|
|
6320
6322
|
* `observed_unpriced`. Emitted only to a host that advertised
|
|
6321
6323
|
* `BUNDLE_FEATURE_MODEL_PRICES`.
|
|
6324
|
+
*
|
|
6325
|
+
* `long_context` holds the rates a call pays once its whole prompt
|
|
6326
|
+
* (uncached input, cache reads and cache writes) is more than
|
|
6327
|
+
* `above_prompt_tokens` tokens, in the same unit. A row without it pays
|
|
6328
|
+
* one rate at every size. Emitted only to a host that also advertised
|
|
6329
|
+
* `BUNDLE_FEATURE_MODEL_PRICES_LONG_CONTEXT`.
|
|
6322
6330
|
*/
|
|
6323
6331
|
model_prices: external_exports.array(
|
|
6324
6332
|
external_exports.object({
|
|
@@ -6328,7 +6336,15 @@ var init_wire = __esm({
|
|
|
6328
6336
|
output: external_exports.number().int().nonnegative(),
|
|
6329
6337
|
cache_read: external_exports.number().int().nonnegative(),
|
|
6330
6338
|
cache_write: external_exports.number().int().nonnegative(),
|
|
6331
|
-
cache_write_1h: external_exports.number().int().nonnegative().optional()
|
|
6339
|
+
cache_write_1h: external_exports.number().int().nonnegative().optional(),
|
|
6340
|
+
long_context: external_exports.object({
|
|
6341
|
+
above_prompt_tokens: external_exports.number().int().positive(),
|
|
6342
|
+
input: external_exports.number().int().nonnegative(),
|
|
6343
|
+
output: external_exports.number().int().nonnegative(),
|
|
6344
|
+
cache_read: external_exports.number().int().nonnegative(),
|
|
6345
|
+
cache_write: external_exports.number().int().nonnegative(),
|
|
6346
|
+
cache_write_1h: external_exports.number().int().nonnegative().optional()
|
|
6347
|
+
}).strict().optional()
|
|
6332
6348
|
}).strict()
|
|
6333
6349
|
).max(1024).optional(),
|
|
6334
6350
|
/**
|
|
@@ -28443,7 +28459,7 @@ import { readFileSync as readFileSync10 } from "node:fs";
|
|
|
28443
28459
|
import { dirname as dirname9, resolve as resolve3 } from "node:path";
|
|
28444
28460
|
import { fileURLToPath } from "node:url";
|
|
28445
28461
|
function readVersion() {
|
|
28446
|
-
if (true) return "3.0.1-
|
|
28462
|
+
if (true) return "3.0.1-162";
|
|
28447
28463
|
try {
|
|
28448
28464
|
const here = dirname9(fileURLToPath(import.meta.url));
|
|
28449
28465
|
const pkg = JSON.parse(
|
|
@@ -55171,6 +55187,10 @@ function resolveModelPriceMatch(prices, provider, model) {
|
|
|
55171
55187
|
function resolveModelPrice(prices, provider, model) {
|
|
55172
55188
|
return resolveModelPriceMatch(prices, provider, model)?.price;
|
|
55173
55189
|
}
|
|
55190
|
+
function ratesForPromptTokens(price, promptTokens) {
|
|
55191
|
+
const long = price.long_context;
|
|
55192
|
+
return long !== void 0 && promptTokens > long.above_prompt_tokens ? long : price;
|
|
55193
|
+
}
|
|
55174
55194
|
function priceObservedUsage(prices, provider, usage2) {
|
|
55175
55195
|
const price = resolveModelPrice(prices, provider, usage2.model);
|
|
55176
55196
|
if (price === void 0) return void 0;
|
|
@@ -55180,7 +55200,8 @@ function priceObservedUsage(prices, provider, usage2) {
|
|
|
55180
55200
|
const cacheWrite = usage2.cacheCreationTokens ?? 0;
|
|
55181
55201
|
const oneHour = Math.min(cacheWrite, usage2.cacheCreation1hTokens ?? 0);
|
|
55182
55202
|
const fiveMinute = cacheWrite - oneHour;
|
|
55183
|
-
const
|
|
55203
|
+
const rates = ratesForPromptTokens(price, input + cacheRead + cacheWrite);
|
|
55204
|
+
const micros = (input * rates.input + output * rates.output + cacheRead * rates.cache_read + fiveMinute * rates.cache_write + oneHour * (rates.cache_write_1h ?? rates.cache_write)) / MILLION;
|
|
55184
55205
|
return Math.round(micros);
|
|
55185
55206
|
}
|
|
55186
55207
|
function callCeilingMicros(prices, provider, model, requestBytes, maxOutputTokens) {
|
|
@@ -55188,12 +55209,14 @@ function callCeilingMicros(prices, provider, model, requestBytes, maxOutputToken
|
|
|
55188
55209
|
if (price === void 0) return 0;
|
|
55189
55210
|
const input = Math.ceil(requestBytes / CEILING_BYTES_PER_TOKEN);
|
|
55190
55211
|
const output = maxOutputTokens ?? DEFAULT_OUTPUT_CEILING_TOKENS;
|
|
55191
|
-
|
|
55212
|
+
const mostPromptTokens = Math.ceil(requestBytes / MIN_BYTES_PER_TOKEN);
|
|
55213
|
+
const rates = ratesForPromptTokens(price, mostPromptTokens);
|
|
55214
|
+
return Math.round((input * rates.input + output * rates.output) / MILLION);
|
|
55192
55215
|
}
|
|
55193
55216
|
function usdToMicros(usd2) {
|
|
55194
55217
|
return Math.round(usd2 * MILLION);
|
|
55195
55218
|
}
|
|
55196
|
-
var MODEL_ID_BOUNDARY, POINT_IN_TIME_STAMP, MILLION, CEILING_BYTES_PER_TOKEN, DEFAULT_OUTPUT_CEILING_TOKENS;
|
|
55219
|
+
var MODEL_ID_BOUNDARY, POINT_IN_TIME_STAMP, MILLION, CEILING_BYTES_PER_TOKEN, MIN_BYTES_PER_TOKEN, DEFAULT_OUTPUT_CEILING_TOKENS;
|
|
55197
55220
|
var init_model_pricing = __esm({
|
|
55198
55221
|
"../../packages/tacho/src/collector/model-pricing.ts"() {
|
|
55199
55222
|
"use strict";
|
|
@@ -55201,6 +55224,7 @@ var init_model_pricing = __esm({
|
|
|
55201
55224
|
POINT_IN_TIME_STAMP = /^(?:latest|\d{4}(?:[-._/]?\d{2}[-._/]?\d{2})?)$/;
|
|
55202
55225
|
MILLION = 1e6;
|
|
55203
55226
|
CEILING_BYTES_PER_TOKEN = 3.5;
|
|
55227
|
+
MIN_BYTES_PER_TOKEN = 1;
|
|
55204
55228
|
DEFAULT_OUTPUT_CEILING_TOKENS = 4096;
|
|
55205
55229
|
}
|
|
55206
55230
|
});
|
|
@@ -70501,7 +70525,7 @@ var init_package = __esm({
|
|
|
70501
70525
|
"package.json"() {
|
|
70502
70526
|
package_default = {
|
|
70503
70527
|
name: "@oxagen/cli",
|
|
70504
|
-
version: "3.0.1-
|
|
70528
|
+
version: "3.0.1-162",
|
|
70505
70529
|
description: "Oxagen governance CLI: spend, source tracking, grounding, credentials, and audit (agentic coding lives in the stella CLI)",
|
|
70506
70530
|
type: "module",
|
|
70507
70531
|
main: "./dist/index.js",
|
|
@@ -71818,6 +71842,20 @@ var init_rate_card = __esm({
|
|
|
71818
71842
|
cacheWritePer1M: 18.75
|
|
71819
71843
|
}
|
|
71820
71844
|
},
|
|
71845
|
+
// Fable 5 holds the family's price. Its own row keeps it off the family
|
|
71846
|
+
// row, and it sorts after the Fable 5.1 rows, which "claude-fable-5" would
|
|
71847
|
+
// otherwise match first.
|
|
71848
|
+
{
|
|
71849
|
+
family: "claude-fable-5",
|
|
71850
|
+
label: "Claude Fable 5",
|
|
71851
|
+
vendor: "anthropic",
|
|
71852
|
+
rate: {
|
|
71853
|
+
inputPer1M: 10,
|
|
71854
|
+
outputPer1M: 50,
|
|
71855
|
+
cachedInputPer1M: 1,
|
|
71856
|
+
cacheWritePer1M: 12.5
|
|
71857
|
+
}
|
|
71858
|
+
},
|
|
71821
71859
|
{
|
|
71822
71860
|
family: "claude-fable",
|
|
71823
71861
|
label: "Claude Fable",
|
|
@@ -71917,6 +71955,30 @@ var init_rate_card = __esm({
|
|
|
71917
71955
|
longContext: HAIKU_5_5_LONG_CONTEXT
|
|
71918
71956
|
}
|
|
71919
71957
|
},
|
|
71958
|
+
// Haiku 4.5 holds the family's price, in both spellings.
|
|
71959
|
+
{
|
|
71960
|
+
family: "claude-haiku-4-5",
|
|
71961
|
+
label: "Claude Haiku 4.5",
|
|
71962
|
+
vendor: "anthropic",
|
|
71963
|
+
rate: {
|
|
71964
|
+
inputPer1M: 1,
|
|
71965
|
+
outputPer1M: 5,
|
|
71966
|
+
cachedInputPer1M: 0.1,
|
|
71967
|
+
cacheWritePer1M: 1.25
|
|
71968
|
+
}
|
|
71969
|
+
},
|
|
71970
|
+
{
|
|
71971
|
+
family: "claude-haiku-4.5",
|
|
71972
|
+
label: "Claude Haiku 4.5",
|
|
71973
|
+
vendor: "anthropic",
|
|
71974
|
+
alias: true,
|
|
71975
|
+
rate: {
|
|
71976
|
+
inputPer1M: 1,
|
|
71977
|
+
outputPer1M: 5,
|
|
71978
|
+
cachedInputPer1M: 0.1,
|
|
71979
|
+
cacheWritePer1M: 1.25
|
|
71980
|
+
}
|
|
71981
|
+
},
|
|
71920
71982
|
{
|
|
71921
71983
|
family: "claude-haiku",
|
|
71922
71984
|
label: "Claude Haiku",
|
|
@@ -72042,7 +72104,7 @@ var init_rate_card = __esm({
|
|
|
72042
72104
|
rate: {
|
|
72043
72105
|
inputPer1M: 1.1,
|
|
72044
72106
|
outputPer1M: 4.4,
|
|
72045
|
-
cachedInputPer1M: 0.
|
|
72107
|
+
cachedInputPer1M: 0.275,
|
|
72046
72108
|
cacheWritePer1M: 1.1
|
|
72047
72109
|
}
|
|
72048
72110
|
},
|
|
@@ -72214,6 +72276,33 @@ var init_rate_card = __esm({
|
|
|
72214
72276
|
cacheWritePer1M: 2
|
|
72215
72277
|
}
|
|
72216
72278
|
},
|
|
72279
|
+
// Gemini 3 Flash and Gemini 3.1 Flash Image at Google's list price
|
|
72280
|
+
// (https://ai.google.dev/gemini-api/docs/pricing, 2026-10-17), with the
|
|
72281
|
+
// image model's cache read from the gateway's model list. Both MUST sort
|
|
72282
|
+
// before the generic "gemini" row. `pricing.ts` cites each price and says
|
|
72283
|
+
// what each row leaves out.
|
|
72284
|
+
{
|
|
72285
|
+
family: "gemini-3-flash",
|
|
72286
|
+
label: "Gemini 3 Flash",
|
|
72287
|
+
vendor: "google",
|
|
72288
|
+
rate: {
|
|
72289
|
+
inputPer1M: 0.5,
|
|
72290
|
+
outputPer1M: 3,
|
|
72291
|
+
cachedInputPer1M: 0.05,
|
|
72292
|
+
cacheWritePer1M: 0.5
|
|
72293
|
+
}
|
|
72294
|
+
},
|
|
72295
|
+
{
|
|
72296
|
+
family: "gemini-3.1-flash-image",
|
|
72297
|
+
label: "Gemini 3.1 Flash Image",
|
|
72298
|
+
vendor: "google",
|
|
72299
|
+
rate: {
|
|
72300
|
+
inputPer1M: 0.5,
|
|
72301
|
+
outputPer1M: 3,
|
|
72302
|
+
cachedInputPer1M: 0.05,
|
|
72303
|
+
cacheWritePer1M: 0.5
|
|
72304
|
+
}
|
|
72305
|
+
},
|
|
72217
72306
|
{
|
|
72218
72307
|
family: "gemini",
|
|
72219
72308
|
label: "Gemini",
|
|
@@ -72224,6 +72313,31 @@ var init_rate_card = __esm({
|
|
|
72224
72313
|
cachedInputPer1M: 0.3125,
|
|
72225
72314
|
cacheWritePer1M: 1.25
|
|
72226
72315
|
}
|
|
72316
|
+
},
|
|
72317
|
+
// Llama 4 Maverick and Mistral Large 3 at the gateway's price
|
|
72318
|
+
// (vercel.com/ai-gateway/models and ai-gateway.vercel.sh/v1/models,
|
|
72319
|
+
// 2026-10-17). `pricing.ts` cites each page.
|
|
72320
|
+
{
|
|
72321
|
+
family: "llama-4-maverick",
|
|
72322
|
+
label: "Llama 4 Maverick",
|
|
72323
|
+
vendor: "meta",
|
|
72324
|
+
rate: {
|
|
72325
|
+
inputPer1M: 0.24,
|
|
72326
|
+
outputPer1M: 0.97,
|
|
72327
|
+
cachedInputPer1M: 0.24,
|
|
72328
|
+
cacheWritePer1M: 0.24
|
|
72329
|
+
}
|
|
72330
|
+
},
|
|
72331
|
+
{
|
|
72332
|
+
family: "mistral-large-3",
|
|
72333
|
+
label: "Mistral Large 3",
|
|
72334
|
+
vendor: "mistral",
|
|
72335
|
+
rate: {
|
|
72336
|
+
inputPer1M: 0.5,
|
|
72337
|
+
outputPer1M: 1.5,
|
|
72338
|
+
cachedInputPer1M: 0.05,
|
|
72339
|
+
cacheWritePer1M: 0.5
|
|
72340
|
+
}
|
|
72227
72341
|
}
|
|
72228
72342
|
];
|
|
72229
72343
|
FALLBACK_RATE = {
|
|
@@ -72692,7 +72806,8 @@ function entryRow(row) {
|
|
|
72692
72806
|
return [
|
|
72693
72807
|
row.provider,
|
|
72694
72808
|
row.model,
|
|
72695
|
-
row.
|
|
72809
|
+
// A long-context row prices only prompts past a size, so it says which.
|
|
72810
|
+
row.abovePromptTokens === void 0 ? row.tokenClass : `${row.tokenClass} (prompts over ${row.abovePromptTokens.toLocaleString("en-US")} tokens)`,
|
|
72696
72811
|
row.region ?? "\u2014",
|
|
72697
72812
|
formatPerMillion(row),
|
|
72698
72813
|
row.source,
|
|
@@ -141735,11 +141850,13 @@ var init_env = __esm({
|
|
|
141735
141850
|
STORAGE_FS_ROOT: external_exports.string().min(1).optional(),
|
|
141736
141851
|
// Vercel AI Gateway — the platform's default AI auth boundary for language
|
|
141737
141852
|
// models. Embeddings do not use it: they go to Voyage on VOYAGE_API_KEY.
|
|
141738
|
-
// The
|
|
141739
|
-
//
|
|
141740
|
-
//
|
|
141741
|
-
//
|
|
141742
|
-
//
|
|
141853
|
+
// The OXAGEN_LLM_FAST/BALANCED/PRECISE settings name the models Oxagen's own
|
|
141854
|
+
// calls run on (titles, drafts, summaries) in `creator/model` form. A stella
|
|
141855
|
+
// turn's model, and a workspace's or a person's default tier, come from the
|
|
141856
|
+
// organization's model tiers instead (#7197). Defaults mirror the registry
|
|
141857
|
+
// staticValues so local dev and tests resolve a model without extra
|
|
141858
|
+
// configuration. ADR-043 removed image and video generation, so text is the
|
|
141859
|
+
// only family left.
|
|
141743
141860
|
AI_GATEWAY_API_KEY: external_exports.string().optional(),
|
|
141744
141861
|
// Which provider serves LANGUAGE models. The gateway is the default and the
|
|
141745
141862
|
// metered path; "openrouter" selects a direct OpenAI-compatible provider for
|
package/package.json
CHANGED