@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.
Files changed (2) hide show
  1. package/oxagen.mjs +132 -15
  2. 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-155";
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 micros = (input * price.input + output * price.output + cacheRead * price.cache_read + fiveMinute * price.cache_write + oneHour * (price.cache_write_1h ?? price.cache_write)) / MILLION;
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
- return Math.round((input * price.input + output * price.output) / MILLION);
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-155",
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.28,
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.tokenClass,
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 OXAGEN_LLM_* tiers are white-labeled model handles ("Oxagen
141739
- // Fast/Balanced/Precise") resolving to concrete model ids in `creator/model`
141740
- // form. Defaults mirror the registry staticValues so local dev and tests
141741
- // resolve a tier without extra configuration. ADR-043 removed image and video
141742
- // generation, so text is the only tier family left.
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxagen/cli",
3
- "version": "3.0.1-155",
3
+ "version": "3.0.1-162",
4
4
  "description": "Oxagen governance CLI: spend, source tracking, grounding, credentials, and audit (agentic coding lives in the stella CLI)",
5
5
  "type": "module",
6
6
  "bin": {