@agentsky/sky 2.12.0 → 2.13.0

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.
@@ -724,8 +724,8 @@ function defineLazy(object2, key, getter) {
724
724
  configurable: true
725
725
  });
726
726
  }
727
- function objectClone(obj) {
728
- return Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj));
727
+ function objectClone(obj2) {
728
+ return Object.create(Object.getPrototypeOf(obj2), Object.getOwnPropertyDescriptors(obj2));
729
729
  }
730
730
  function assignProp(target, prop, value) {
731
731
  Object.defineProperty(target, prop, {
@@ -746,10 +746,10 @@ function mergeDefs(...defs) {
746
746
  function cloneDef(schema) {
747
747
  return mergeDefs(schema._zod.def);
748
748
  }
749
- function getElementAtPath(obj, path) {
749
+ function getElementAtPath(obj2, path) {
750
750
  if (!path)
751
- return obj;
752
- return path.reduce((acc, key) => acc?.[key], obj);
751
+ return obj2;
752
+ return path.reduce((acc, key) => acc?.[key], obj2);
753
753
  }
754
754
  function promiseAllObject(promisesObj) {
755
755
  const keys = Object.keys(promisesObj);
@@ -764,14 +764,14 @@ function promiseAllObject(promisesObj) {
764
764
  }
765
765
  function randomString(length = 10) {
766
766
  const chars = "abcdefghijklmnopqrstuvwxyz";
767
- let str = "";
767
+ let str2 = "";
768
768
  for (let i = 0; i < length; i++) {
769
- str += chars[Math.floor(Math.random() * chars.length)];
769
+ str2 += chars[Math.floor(Math.random() * chars.length)];
770
770
  }
771
- return str;
771
+ return str2;
772
772
  }
773
- function esc(str) {
774
- return JSON.stringify(str);
773
+ function esc(str2) {
774
+ return JSON.stringify(str2);
775
775
  }
776
776
  function slugify(input2) {
777
777
  return input2.toLowerCase().trim().replace(/[^\w\s-]/g, "").replace(/[\s_-]+/g, "-").replace(/^-+|-+$/g, "");
@@ -885,8 +885,8 @@ var primitiveTypes = /* @__PURE__ */ new Set([
885
885
  "symbol",
886
886
  "undefined"
887
887
  ]);
888
- function escapeRegex(str) {
889
- return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
888
+ function escapeRegex(str2) {
889
+ return str2.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
890
890
  }
891
891
  function clone(inst, def, params) {
892
892
  const cl = new inst._zod.constr(def ?? inst._zod.def);
@@ -1207,13 +1207,13 @@ function getSizableOrigin(input2) {
1207
1207
  return "unknown";
1208
1208
  }
1209
1209
  var highSurrogate = /[\uD800-\uDBFF]/;
1210
- function codePointLength(str) {
1211
- const units = str.length;
1212
- if (!highSurrogate.test(str))
1210
+ function codePointLength(str2) {
1211
+ const units = str2.length;
1212
+ if (!highSurrogate.test(str2))
1213
1213
  return units;
1214
1214
  let count = units;
1215
1215
  for (let i = 0; i < units - 1; i++) {
1216
- if ((str.charCodeAt(i) & 64512) === 55296 && (str.charCodeAt(i + 1) & 64512) === 56320) {
1216
+ if ((str2.charCodeAt(i) & 64512) === 55296 && (str2.charCodeAt(i + 1) & 64512) === 56320) {
1217
1217
  count--;
1218
1218
  i++;
1219
1219
  }
@@ -1240,9 +1240,9 @@ function parsedType(data) {
1240
1240
  if (Array.isArray(data)) {
1241
1241
  return "array";
1242
1242
  }
1243
- const obj = data;
1244
- if (obj && Object.getPrototypeOf(obj) !== Object.prototype && "constructor" in obj && obj.constructor) {
1245
- return obj.constructor.name;
1243
+ const obj2 = data;
1244
+ if (obj2 && Object.getPrototypeOf(obj2) !== Object.prototype && "constructor" in obj2 && obj2.constructor) {
1245
+ return obj2.constructor.name;
1246
1246
  }
1247
1247
  }
1248
1248
  }
@@ -1260,8 +1260,8 @@ function issue(...args) {
1260
1260
  }
1261
1261
  return { ...iss };
1262
1262
  }
1263
- function cleanEnum(obj) {
1264
- return Object.entries(obj).filter(([k, _]) => {
1263
+ function cleanEnum(obj2) {
1264
+ return Object.entries(obj2).filter(([k, _]) => {
1265
1265
  return Number.isNaN(Number.parseInt(k, 10));
1266
1266
  }).map((el) => el[1]);
1267
1267
  }
@@ -1574,15 +1574,15 @@ var $ZodError = $constructor("$ZodError", initializer);
1574
1574
  var $ZodRealError = $constructor("$ZodError", initializer, void 0, {
1575
1575
  Parent: Error
1576
1576
  });
1577
- function node(obj, key, make) {
1578
- if (!Object.prototype.hasOwnProperty.call(obj, key)) {
1577
+ function node(obj2, key, make) {
1578
+ if (!Object.prototype.hasOwnProperty.call(obj2, key)) {
1579
1579
  if (key === "__proto__") {
1580
- Object.defineProperty(obj, key, { value: make(), writable: true, enumerable: true, configurable: true });
1580
+ Object.defineProperty(obj2, key, { value: make(), writable: true, enumerable: true, configurable: true });
1581
1581
  } else {
1582
- obj[key] = make();
1582
+ obj2[key] = make();
1583
1583
  }
1584
1584
  }
1585
- return obj[key];
1585
+ return obj2[key];
1586
1586
  }
1587
1587
  function flattenError(error61, mapper = (issue2) => issue2.message) {
1588
1588
  const fieldErrors = {};
@@ -19723,6 +19723,100 @@ function redactTraceText(text, maxBytes = TRACE_CONTENT_MAX_BYTES) {
19723
19723
  return { ...cut(redacted.text, maxBytes), redactions };
19724
19724
  }
19725
19725
 
19726
+ // ../../packages/spec/src/session-source.ts
19727
+ var str = (value) => typeof value === "string" ? value.trim() : "";
19728
+ var obj = (value) => value && typeof value === "object" && !Array.isArray(value) ? value : null;
19729
+ var num = (value) => typeof value === "number" && Number.isFinite(value) && value > 0 ? value : 0;
19730
+ function publicRemote(url2) {
19731
+ return url2.replace(/^[^@/]+@(?=[^/]+:)/, "").replace(/\/\/[^@/]+@/, "//");
19732
+ }
19733
+ var SessionSourceCollector = class {
19734
+ modelCounts = /* @__PURE__ */ new Map();
19735
+ efforts = /* @__PURE__ */ new Set();
19736
+ seenMessages = /* @__PURE__ */ new Set();
19737
+ summed = { input_tokens: 0, output_tokens: 0, cache_read_tokens: 0, cache_write_tokens: 0, reasoning_tokens: 0 };
19738
+ cumulative = null;
19739
+ meta = {};
19740
+ push(raw) {
19741
+ const record2 = obj(raw);
19742
+ if (!record2) return;
19743
+ const type = str(record2.type);
19744
+ if (type === "session_meta") return this.codexMeta(obj(record2.payload) ?? {}, str(record2.timestamp));
19745
+ if (type === "turn_context") {
19746
+ const payload = obj(record2.payload) ?? {};
19747
+ this.model(str(payload.model));
19748
+ this.effort(str(payload.effort) || str(payload.reasoning_effort));
19749
+ return;
19750
+ }
19751
+ if (type === "event_msg") {
19752
+ const payload = obj(record2.payload) ?? {};
19753
+ if (payload.type !== "token_count") return;
19754
+ const info = obj(payload.info);
19755
+ const total = obj(info?.total_token_usage);
19756
+ if (total) this.cumulative = { input_tokens: num(total.input_tokens), output_tokens: num(total.output_tokens), cache_read_tokens: num(total.cached_input_tokens), reasoning_tokens: num(total.reasoning_output_tokens) };
19757
+ this.model(str(info?.model) || str(payload.model));
19758
+ return;
19759
+ }
19760
+ if (type === "response_item") return this.time(str(record2.timestamp));
19761
+ if (type === "user" || type === "assistant") return this.claudeLine(record2, type);
19762
+ }
19763
+ result() {
19764
+ const models = [...this.modelCounts.entries()].sort((a, b) => b[1] - a[1]).map(([model]) => model);
19765
+ const usage = Object.fromEntries(Object.entries(this.cumulative ?? this.summed).filter(([, value]) => num(value) > 0));
19766
+ return {
19767
+ ...this.meta,
19768
+ ...models.length ? { models } : {},
19769
+ ...this.efforts.size ? { effort: [...this.efforts].join(", ") } : {},
19770
+ ...Object.keys(usage).length ? { usage } : {}
19771
+ };
19772
+ }
19773
+ codexMeta(payload, timestamp) {
19774
+ this.meta.harness_version ||= str(payload.cli_version) || void 0;
19775
+ this.meta.client ||= str(payload.originator) || void 0;
19776
+ this.meta.model_provider ||= str(payload.model_provider) || void 0;
19777
+ this.meta.cwd ||= str(payload.cwd) || void 0;
19778
+ const git = obj(payload.git);
19779
+ if (git && !this.meta.git) {
19780
+ const branch = str(git.branch), commit = str(git.commit_hash), remote = publicRemote(str(git.repository_url));
19781
+ if (branch || commit || remote) this.meta.git = { ...branch ? { branch } : {}, ...commit ? { commit } : {}, ...remote ? { remote } : {} };
19782
+ }
19783
+ this.time(str(payload.timestamp) || timestamp);
19784
+ }
19785
+ claudeLine(record2, type) {
19786
+ const message = obj(record2.message);
19787
+ if (type === "assistant" && message) {
19788
+ this.model(str(message.model));
19789
+ const usage = obj(message.usage), id = str(message.id);
19790
+ if (usage && (!id || !this.seenMessages.has(id))) {
19791
+ if (id) this.seenMessages.add(id);
19792
+ this.summed.input_tokens += num(usage.input_tokens);
19793
+ this.summed.output_tokens += num(usage.output_tokens);
19794
+ this.summed.cache_read_tokens += num(usage.cache_read_input_tokens);
19795
+ this.summed.cache_write_tokens += num(usage.cache_creation_input_tokens);
19796
+ }
19797
+ }
19798
+ if (record2.isSidechain === true) return;
19799
+ if (str(record2.version)) this.meta.harness_version = str(record2.version);
19800
+ this.meta.client ||= str(record2.entrypoint) || void 0;
19801
+ this.effort(str(record2.effort));
19802
+ this.meta.cwd ||= str(record2.cwd) || void 0;
19803
+ const branch = str(record2.gitBranch);
19804
+ if (branch && branch !== "HEAD" && !this.meta.git?.branch) this.meta.git = { ...this.meta.git, branch };
19805
+ this.time(str(record2.timestamp));
19806
+ }
19807
+ model(model) {
19808
+ if (model && !/^<.*>$/.test(model)) this.modelCounts.set(model, (this.modelCounts.get(model) ?? 0) + 1);
19809
+ }
19810
+ effort(effort) {
19811
+ if (effort) this.efforts.add(effort);
19812
+ }
19813
+ time(timestamp) {
19814
+ if (!timestamp || Number.isNaN(Date.parse(timestamp))) return;
19815
+ this.meta.started_at ||= timestamp;
19816
+ this.meta.ended_at = timestamp;
19817
+ }
19818
+ };
19819
+
19726
19820
  // ../../packages/spec/src/acp-catalog.ts
19727
19821
  var ACP_AGENTS = {
19728
19822
  "agoragentic_acp": {
@@ -19757,7 +19851,7 @@ var ACP_AGENTS = {
19757
19851
  "registryId": "cline",
19758
19852
  "label": "Cline",
19759
19853
  "description": "Autonomous coding agent CLI - capable of creating/editing files, running commands, using the browser, and more",
19760
- "version": "3.0.70",
19854
+ "version": "3.0.73",
19761
19855
  "website": "https://cline.bot/cli",
19762
19856
  "tools": [
19763
19857
  { "id": "browser", "kind": "fetch", "title": "Headless browser", "requires": { "packages": { "apt": ["chromium"] } } },
@@ -19840,7 +19934,7 @@ var ACP_AGENTS = {
19840
19934
  "registryId": "fast-agent",
19841
19935
  "label": "fast-agent",
19842
19936
  "description": "Code and build agents with comprehensive multi-provider support",
19843
- "version": "0.10.43",
19937
+ "version": "0.10.46",
19844
19938
  "website": "https://fast-agent.ai"
19845
19939
  },
19846
19940
  "gemini": {
@@ -19882,7 +19976,7 @@ var ACP_AGENTS = {
19882
19976
  "registryId": "grok-build",
19883
19977
  "label": "Grok Build",
19884
19978
  "description": "xAI's coding agent and CLI",
19885
- "version": "1.0.50",
19979
+ "version": "1.0.62",
19886
19980
  "website": "https://x.ai/cli"
19887
19981
  },
19888
19982
  "harn": {
@@ -19903,7 +19997,7 @@ var ACP_AGENTS = {
19903
19997
  "registryId": "kilo",
19904
19998
  "label": "Kilo",
19905
19999
  "description": "The open source coding agent",
19906
- "version": "7.8.8",
20000
+ "version": "7.8.12",
19907
20001
  "website": "https://kilo.ai/"
19908
20002
  },
19909
20003
  "kimchi": {
@@ -19917,7 +20011,7 @@ var ACP_AGENTS = {
19917
20011
  "registryId": "minimax-code",
19918
20012
  "label": "MiniMax Code",
19919
20013
  "description": "MiniMax Code is an AI coding agent with Agent Client Protocol support.",
19920
- "version": "0.6.5",
20014
+ "version": "0.6.12",
19921
20015
  "website": "https://agent.minimax.io"
19922
20016
  },
19923
20017
  "minion_code": {
@@ -19966,7 +20060,7 @@ var ACP_AGENTS = {
19966
20060
  "registryId": "sigit",
19967
20061
  "label": "siGit Code",
19968
20062
  "description": "Local-first coding agent. Runs entirely on your machine with optional on-device LLM inference via Onde.",
19969
- "version": "1.6.5",
20063
+ "version": "1.7.2",
19970
20064
  "website": "https://github.com/getsigit/sigit"
19971
20065
  },
19972
20066
  "stakpak": {
@@ -19994,7 +20088,7 @@ var ACP_AGENTS = {
19994
20088
  "registryId": "docker-cagent",
19995
20089
  "label": "Docker Agent",
19996
20090
  "description": "Docker's agent runtime configured through an agent YAML file.",
19997
- "version": "1.150.0",
20091
+ "version": "1.151.0",
19998
20092
  "website": "https://docs.docker.com/ai/docker-agent/features/acp/"
19999
20093
  },
20000
20094
  "kiro": {
@@ -20078,7 +20172,7 @@ var ACP_PLATFORM_MODELS = {
20078
20172
  muse_code: ["muse-spark-1.2", "muse-spark-1.3", "muse-wonder-1.0"],
20079
20173
  grok_build: ["grok-4.7", "grok-4.6", "deepseek-v4-pro", "deepseek-flash", "gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.6-luna", "gpt-6-astra", "glm-5.3", "glm-5.3-flash", "kimi-k3", "kimi-k2.7-code"],
20080
20174
  kilo: ["deepseek-v4-pro", "deepseek-flash", "gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.6-luna", "gpt-6-astra", "glm-5.3", "glm-5.3-flash", "kimi-k3", "kimi-k2.7-code", "grok-4.7", "grok-4.6", "claude-opus-5", "claude-fable-5-1", "claude-sonnet-5-5", "claude-sonnet-5", "claude-haiku-5-5", "claude-haiku-4-5"],
20081
- minimax_code: ["minimax-m3", "deepseek-v4-pro", "deepseek-flash", "gpt-5.6-terra", "gpt-6-astra", "claude-fable-5-1", "claude-sonnet-5-5", "claude-sonnet-5", "claude-haiku-5-5", "claude-haiku-4-5", "glm-5.3", "glm-5.3-flash", "kimi-k3", "kimi-k2.7-code", "grok-4.7", "grok-4.6", "gpt-6.1-sol", "gpt-6-sol", "gpt-6-luna", "gpt-5.6-sol", "claude-opus-5", "claude-opus-5-5", "gpt-5.5", "claude-fable-5", "claude-opus-4-8", "claude-sonnet-4-6", "deepseek-v4-flash"],
20175
+ minimax_code: ["minimax-m3", "minimax-m3.1-flash", "deepseek-v4-pro", "deepseek-flash", "gpt-5.6-terra", "gpt-6-astra", "claude-fable-5-1", "claude-sonnet-5-5", "claude-sonnet-5", "claude-haiku-5-5", "claude-haiku-4-5", "glm-5.3", "glm-5.3-flash", "kimi-k3", "kimi-k2.7-code", "grok-4.7", "grok-4.6", "gpt-6.1-sol", "gpt-6-sol", "gpt-6-luna", "gpt-5.6-sol", "claude-opus-5", "claude-opus-5-5", "gpt-5.5", "claude-fable-5", "claude-opus-4-8", "claude-sonnet-4-6", "deepseek-v4-flash"],
20082
20176
  minion_code: ["deepseek-v4-pro"],
20083
20177
  mistral_vibe: ["deepseek-v4-pro", "deepseek-flash", "glm-5.3", "glm-5.3-flash", "grok-4.7", "grok-4.6"],
20084
20178
  openhands: ["deepseek-v4-pro", "deepseek-flash", "glm-5.3", "glm-5.3-flash", "kimi-k3", "kimi-k2.7-code", "grok-4.6", "claude-opus-5", "claude-fable-5-1", "claude-sonnet-5", "claude-haiku-4-5"],
@@ -20089,7 +20183,860 @@ var ACP_PLATFORM_MODELS = {
20089
20183
  };
20090
20184
 
20091
20185
  // ../../packages/spec/src/catalog-models.ts
20092
- var CATALOG_MODELS = [];
20186
+ var CATALOG_MODELS = [
20187
+ {
20188
+ "id": "deepseek/deepseek-v4.1-flash-1017",
20189
+ "openRouterId": "deepseek/deepseek-v4.1-flash-1017",
20190
+ "label": "DeepSeek V4.1 Flash 1017",
20191
+ "maker": "DeepSeek",
20192
+ "contextLength": 1048576,
20193
+ "maxOutputTokens": 393216,
20194
+ "tiers": [
20195
+ {
20196
+ "maxPromptTokens": 1048576,
20197
+ "input": 0.121853,
20198
+ "output": 0.58025,
20199
+ "cachedInput": 0.011605
20200
+ }
20201
+ ],
20202
+ "maxPrice": {
20203
+ "prompt": 0.08,
20204
+ "completion": 0.5
20205
+ },
20206
+ "quantizations": [
20207
+ "fp8",
20208
+ "fp16",
20209
+ "bf16",
20210
+ "fp32",
20211
+ "unknown"
20212
+ ]
20213
+ },
20214
+ {
20215
+ "id": "stepfun/step-5-preview",
20216
+ "openRouterId": "stepfun/step-5-preview",
20217
+ "label": "Step 5 Preview",
20218
+ "maker": "StepFun",
20219
+ "contextLength": 1e6,
20220
+ "maxOutputTokens": 64e3,
20221
+ "tiers": [
20222
+ {
20223
+ "maxPromptTokens": 1e6,
20224
+ "input": 1.1605,
20225
+ "output": 3.13335,
20226
+ "cachedInput": 0.11605
20227
+ }
20228
+ ],
20229
+ "maxPrice": {
20230
+ "prompt": 1,
20231
+ "completion": 2.7
20232
+ },
20233
+ "quantizations": [
20234
+ "fp8",
20235
+ "fp16",
20236
+ "bf16",
20237
+ "fp32",
20238
+ "unknown"
20239
+ ]
20240
+ },
20241
+ {
20242
+ "id": "xiaomi/mimo-v2.6-flash",
20243
+ "openRouterId": "xiaomi/mimo-v2.6-flash",
20244
+ "label": "MiMo-V2.6-Flash",
20245
+ "maker": "Xiaomi",
20246
+ "contextLength": 1048576,
20247
+ "maxOutputTokens": 131072,
20248
+ "tiers": [
20249
+ {
20250
+ "maxPromptTokens": 1048576,
20251
+ "input": 0.16247,
20252
+ "output": 0.32494,
20253
+ "cachedInput": 3482e-6
20254
+ }
20255
+ ],
20256
+ "maxPrice": {
20257
+ "prompt": 0.14,
20258
+ "completion": 0.28
20259
+ },
20260
+ "quantizations": [
20261
+ "fp8",
20262
+ "fp16",
20263
+ "bf16",
20264
+ "fp32",
20265
+ "unknown"
20266
+ ]
20267
+ },
20268
+ {
20269
+ "id": "tencent/hy4-preview",
20270
+ "openRouterId": "tencent/hy4-preview",
20271
+ "label": "Hy4 preview",
20272
+ "maker": "Tencent",
20273
+ "contextLength": 1048576,
20274
+ "maxOutputTokens": 64e3,
20275
+ "tiers": [
20276
+ {
20277
+ "maxPromptTokens": 1048576,
20278
+ "input": 0.967857,
20279
+ "output": 2.902411,
20280
+ "cachedInput": 0.048741
20281
+ }
20282
+ ],
20283
+ "maxPrice": {
20284
+ "prompt": 0.834,
20285
+ "completion": 2.501
20286
+ },
20287
+ "quantizations": [
20288
+ "fp8",
20289
+ "fp16",
20290
+ "bf16",
20291
+ "fp32",
20292
+ "unknown"
20293
+ ]
20294
+ },
20295
+ {
20296
+ "id": "deepseek/deepseek-v4-flash-0731",
20297
+ "openRouterId": "deepseek/deepseek-v4-flash-0731",
20298
+ "label": "DeepSeek V4 Flash 0731",
20299
+ "maker": "DeepSeek",
20300
+ "contextLength": 1048576,
20301
+ "maxOutputTokens": 943718,
20302
+ "tiers": [
20303
+ {
20304
+ "maxPromptTokens": 1048576,
20305
+ "input": 0.150865,
20306
+ "output": 0.30173,
20307
+ "cachedInput": 0.034119
20308
+ }
20309
+ ],
20310
+ "maxPrice": {
20311
+ "prompt": 0.13,
20312
+ "completion": 0.26
20313
+ },
20314
+ "quantizations": [
20315
+ "fp8",
20316
+ "fp16",
20317
+ "bf16",
20318
+ "fp32",
20319
+ "unknown"
20320
+ ]
20321
+ },
20322
+ {
20323
+ "id": "tencent/hy3",
20324
+ "openRouterId": "tencent/hy3",
20325
+ "label": "Hy3",
20326
+ "maker": "Tencent",
20327
+ "contextLength": 262144,
20328
+ "maxOutputTokens": 128e3,
20329
+ "tiers": [
20330
+ {
20331
+ "maxPromptTokens": 262144,
20332
+ "input": 0.16247,
20333
+ "output": 0.67309,
20334
+ "cachedInput": 0.040618
20335
+ }
20336
+ ],
20337
+ "maxPrice": {
20338
+ "prompt": 0.14,
20339
+ "completion": 0.58
20340
+ },
20341
+ "quantizations": [
20342
+ "fp8",
20343
+ "fp16",
20344
+ "bf16",
20345
+ "fp32",
20346
+ "unknown"
20347
+ ]
20348
+ },
20349
+ {
20350
+ "id": "nvidia/nemotron-3-ultra-550b-a55b",
20351
+ "openRouterId": "nvidia/nemotron-3-ultra-550b-a55b",
20352
+ "label": "Nemotron 3 Ultra",
20353
+ "maker": "NVIDIA",
20354
+ "contextLength": 202800,
20355
+ "maxOutputTokens": 182520,
20356
+ "tiers": [
20357
+ {
20358
+ "maxPromptTokens": 202800,
20359
+ "input": 0.725313,
20360
+ "output": 3.626563,
20361
+ "cachedInput": 0.217595
20362
+ }
20363
+ ],
20364
+ "maxPrice": {
20365
+ "prompt": 0.625,
20366
+ "completion": 3.125
20367
+ },
20368
+ "quantizations": [
20369
+ "fp8",
20370
+ "fp16",
20371
+ "bf16",
20372
+ "fp32",
20373
+ "unknown"
20374
+ ]
20375
+ },
20376
+ {
20377
+ "id": "google/gemini-3-flash-preview",
20378
+ "openRouterId": "google/gemini-3-flash-preview",
20379
+ "label": "Gemini 3 Flash Preview",
20380
+ "maker": "Google",
20381
+ "contextLength": 1048576,
20382
+ "maxOutputTokens": 65536,
20383
+ "tiers": [
20384
+ {
20385
+ "maxPromptTokens": 1048576,
20386
+ "input": 0.58025,
20387
+ "output": 3.4815,
20388
+ "cachedInput": 0.058025,
20389
+ "cacheWrite": 0.35
20390
+ }
20391
+ ],
20392
+ "maxPrice": {
20393
+ "prompt": 0.5,
20394
+ "completion": 3
20395
+ },
20396
+ "quantizations": [
20397
+ "fp8",
20398
+ "fp16",
20399
+ "bf16",
20400
+ "fp32",
20401
+ "unknown"
20402
+ ]
20403
+ },
20404
+ {
20405
+ "id": "google/gemini-3.6-flash",
20406
+ "openRouterId": "google/gemini-3.6-flash",
20407
+ "label": "Gemini 3.6 Flash",
20408
+ "maker": "Google",
20409
+ "contextLength": 1048576,
20410
+ "maxOutputTokens": 65536,
20411
+ "tiers": [
20412
+ {
20413
+ "maxPromptTokens": 1048576,
20414
+ "input": 0.870375,
20415
+ "output": 4.351875,
20416
+ "cachedInput": 0.087038,
20417
+ "cacheWrite": 0.048355
20418
+ }
20419
+ ],
20420
+ "maxPrice": {
20421
+ "prompt": 0.75,
20422
+ "completion": 3.75
20423
+ },
20424
+ "quantizations": [
20425
+ "fp8",
20426
+ "fp16",
20427
+ "bf16",
20428
+ "fp32",
20429
+ "unknown"
20430
+ ]
20431
+ },
20432
+ {
20433
+ "id": "google/gemini-3.7-flash",
20434
+ "openRouterId": "google/gemini-3.7-flash",
20435
+ "label": "Gemini 3.7 Flash",
20436
+ "maker": "Google",
20437
+ "contextLength": 1048576,
20438
+ "maxOutputTokens": 65536,
20439
+ "tiers": [
20440
+ {
20441
+ "maxPromptTokens": 1048576,
20442
+ "input": 0.870375,
20443
+ "output": 4.351875,
20444
+ "cachedInput": 0.087038,
20445
+ "cacheWrite": 0.048355
20446
+ }
20447
+ ],
20448
+ "maxPrice": {
20449
+ "prompt": 0.75,
20450
+ "completion": 3.75
20451
+ },
20452
+ "quantizations": [
20453
+ "fp8",
20454
+ "fp16",
20455
+ "bf16",
20456
+ "fp32",
20457
+ "unknown"
20458
+ ]
20459
+ },
20460
+ {
20461
+ "id": "moonshotai/kimi-k2.6",
20462
+ "openRouterId": "moonshotai/kimi-k2.6",
20463
+ "label": "Kimi K2.6",
20464
+ "maker": "MoonshotAI",
20465
+ "contextLength": 262144,
20466
+ "maxOutputTokens": 235929,
20467
+ "tiers": [
20468
+ {
20469
+ "maxPromptTokens": 262144,
20470
+ "input": 0.893585,
20471
+ "output": 3.9457,
20472
+ "cachedInput": 0.16247
20473
+ }
20474
+ ],
20475
+ "maxPrice": {
20476
+ "prompt": 0.77,
20477
+ "completion": 3.4
20478
+ },
20479
+ "quantizations": [
20480
+ "fp8",
20481
+ "fp16",
20482
+ "bf16",
20483
+ "fp32",
20484
+ "unknown"
20485
+ ]
20486
+ },
20487
+ {
20488
+ "id": "openai/gpt-4.1",
20489
+ "openRouterId": "openai/gpt-4.1",
20490
+ "label": "GPT-4.1",
20491
+ "maker": "OpenAI",
20492
+ "contextLength": 1047576,
20493
+ "maxOutputTokens": 32768,
20494
+ "tiers": [
20495
+ {
20496
+ "maxPromptTokens": 1047576,
20497
+ "input": 2.321,
20498
+ "output": 9.284,
20499
+ "cachedInput": 0.58025
20500
+ }
20501
+ ],
20502
+ "maxPrice": {
20503
+ "prompt": 2,
20504
+ "completion": 8
20505
+ },
20506
+ "quantizations": [
20507
+ "fp8",
20508
+ "fp16",
20509
+ "bf16",
20510
+ "fp32",
20511
+ "unknown"
20512
+ ]
20513
+ },
20514
+ {
20515
+ "id": "openai/gpt-5.4",
20516
+ "openRouterId": "openai/gpt-5.4",
20517
+ "label": "GPT-5.4",
20518
+ "maker": "OpenAI",
20519
+ "contextLength": 105e4,
20520
+ "maxOutputTokens": 128e3,
20521
+ "tiers": [
20522
+ {
20523
+ "maxPromptTokens": 271999,
20524
+ "input": 3.191375,
20525
+ "output": 19.14825,
20526
+ "cachedInput": 0.319138
20527
+ },
20528
+ {
20529
+ "maxPromptTokens": 105e4,
20530
+ "input": 5.8025,
20531
+ "output": 26.11125,
20532
+ "cachedInput": 0.58025
20533
+ }
20534
+ ],
20535
+ "maxPrice": {
20536
+ "prompt": 2.75,
20537
+ "completion": 16.5
20538
+ },
20539
+ "quantizations": [
20540
+ "fp8",
20541
+ "fp16",
20542
+ "bf16",
20543
+ "fp32",
20544
+ "unknown"
20545
+ ]
20546
+ },
20547
+ {
20548
+ "id": "qwen/qwen-plus",
20549
+ "openRouterId": "qwen/qwen-plus",
20550
+ "label": "Qwen Plus",
20551
+ "maker": "Qwen",
20552
+ "contextLength": 997952,
20553
+ "maxOutputTokens": 32768,
20554
+ "tiers": [
20555
+ {
20556
+ "maxPromptTokens": 255999,
20557
+ "input": 0.30173,
20558
+ "output": 0.90519,
20559
+ "cachedInput": 0.060346,
20560
+ "cacheWrite": 0.377163
20561
+ },
20562
+ {
20563
+ "maxPromptTokens": 1e6,
20564
+ "input": 0.90519,
20565
+ "output": 2.71557,
20566
+ "cachedInput": 0.181038,
20567
+ "cacheWrite": 1.131488
20568
+ }
20569
+ ],
20570
+ "maxPrice": {
20571
+ "prompt": 0.26,
20572
+ "completion": 0.78
20573
+ },
20574
+ "quantizations": [
20575
+ "fp8",
20576
+ "fp16",
20577
+ "bf16",
20578
+ "fp32",
20579
+ "unknown"
20580
+ ]
20581
+ },
20582
+ {
20583
+ "id": "qwen/qwen3-coder-flash",
20584
+ "openRouterId": "qwen/qwen3-coder-flash",
20585
+ "label": "Qwen3 Coder Flash",
20586
+ "maker": "Qwen",
20587
+ "contextLength": 997952,
20588
+ "maxOutputTokens": 65536,
20589
+ "tiers": [
20590
+ {
20591
+ "maxPromptTokens": 31999,
20592
+ "input": 0.226298,
20593
+ "output": 1.131488,
20594
+ "cachedInput": 0.04526,
20595
+ "cacheWrite": 0.282873
20596
+ },
20597
+ {
20598
+ "maxPromptTokens": 127999,
20599
+ "input": 0.377163,
20600
+ "output": 1.885813,
20601
+ "cachedInput": 0.075433,
20602
+ "cacheWrite": 0.471454
20603
+ },
20604
+ {
20605
+ "maxPromptTokens": 1e6,
20606
+ "input": 0.60346,
20607
+ "output": 3.0173,
20608
+ "cachedInput": 0.120692,
20609
+ "cacheWrite": 0.754325
20610
+ }
20611
+ ],
20612
+ "maxPrice": {
20613
+ "prompt": 0.195,
20614
+ "completion": 0.975
20615
+ },
20616
+ "quantizations": [
20617
+ "fp8",
20618
+ "fp16",
20619
+ "bf16",
20620
+ "fp32",
20621
+ "unknown"
20622
+ ]
20623
+ },
20624
+ {
20625
+ "id": "qwen/qwen3.5-flash",
20626
+ "openRouterId": "qwen/qwen3.5-flash-02-23",
20627
+ "label": "Qwen3.5 Flash",
20628
+ "maker": "Qwen",
20629
+ "contextLength": 991808,
20630
+ "maxOutputTokens": 65536,
20631
+ "tiers": [
20632
+ {
20633
+ "maxPromptTokens": 1e6,
20634
+ "input": 0.075433,
20635
+ "output": 0.30173
20636
+ }
20637
+ ],
20638
+ "maxPrice": {
20639
+ "prompt": 0.065,
20640
+ "completion": 0.26
20641
+ },
20642
+ "quantizations": [
20643
+ "fp8",
20644
+ "fp16",
20645
+ "bf16",
20646
+ "fp32",
20647
+ "unknown"
20648
+ ]
20649
+ },
20650
+ {
20651
+ "id": "qwen/qwen3.6-flash",
20652
+ "openRouterId": "qwen/qwen3.6-flash",
20653
+ "label": "Qwen3.6 Flash",
20654
+ "maker": "Qwen",
20655
+ "contextLength": 1e6,
20656
+ "maxOutputTokens": 65536,
20657
+ "tiers": [
20658
+ {
20659
+ "maxPromptTokens": 255999,
20660
+ "input": 0.217595,
20661
+ "output": 1.305563,
20662
+ "cacheWrite": 0.271993
20663
+ },
20664
+ {
20665
+ "maxPromptTokens": 1e6,
20666
+ "input": 0.870375,
20667
+ "output": 3.4815,
20668
+ "cacheWrite": 1.08797
20669
+ }
20670
+ ],
20671
+ "maxPrice": {
20672
+ "prompt": 0.1875,
20673
+ "completion": 1.125
20674
+ },
20675
+ "quantizations": [
20676
+ "fp8",
20677
+ "fp16",
20678
+ "bf16",
20679
+ "fp32",
20680
+ "unknown"
20681
+ ]
20682
+ },
20683
+ {
20684
+ "id": "qwen/qwen3.7-max",
20685
+ "openRouterId": "qwen/qwen3.7-max",
20686
+ "label": "Qwen3.7 Max",
20687
+ "maker": "Qwen",
20688
+ "contextLength": 991808,
20689
+ "maxOutputTokens": 131072,
20690
+ "tiers": [
20691
+ {
20692
+ "maxPromptTokens": 1e6,
20693
+ "input": 1.75,
20694
+ "output": 5.25,
20695
+ "cachedInput": 1.75,
20696
+ "cacheWrite": 2.139673
20697
+ }
20698
+ ],
20699
+ "maxPrice": {
20700
+ "prompt": 1.475,
20701
+ "completion": 4.425
20702
+ },
20703
+ "quantizations": [
20704
+ "fp8",
20705
+ "fp16",
20706
+ "bf16",
20707
+ "fp32",
20708
+ "unknown"
20709
+ ]
20710
+ },
20711
+ {
20712
+ "id": "qwen/qwen3.8-max",
20713
+ "openRouterId": "qwen/qwen3.8-max-0902",
20714
+ "label": "Qwen3.8 Max",
20715
+ "maker": "Qwen",
20716
+ "contextLength": 1e6,
20717
+ "maxOutputTokens": 131072,
20718
+ "tiers": [
20719
+ {
20720
+ "maxPromptTokens": 1e6,
20721
+ "input": 2.321,
20722
+ "output": 6.963,
20723
+ "cachedInput": 0.290125,
20724
+ "cacheWrite": 2.90125
20725
+ }
20726
+ ],
20727
+ "maxPrice": {
20728
+ "prompt": 2,
20729
+ "completion": 6
20730
+ },
20731
+ "quantizations": [
20732
+ "fp8",
20733
+ "fp16",
20734
+ "bf16",
20735
+ "fp32",
20736
+ "unknown"
20737
+ ]
20738
+ },
20739
+ {
20740
+ "id": "xai/grok-build-0.1",
20741
+ "openRouterId": "x-ai/grok-build-0.1",
20742
+ "label": "Grok Build 0.1",
20743
+ "maker": "SpaceXAI",
20744
+ "contextLength": 256e3,
20745
+ "maxOutputTokens": 230400,
20746
+ "tiers": [
20747
+ {
20748
+ "maxPromptTokens": 199999,
20749
+ "input": 1.1605,
20750
+ "output": 2.321,
20751
+ "cachedInput": 0.2321
20752
+ },
20753
+ {
20754
+ "maxPromptTokens": 256e3,
20755
+ "input": 2.321,
20756
+ "output": 4.642,
20757
+ "cachedInput": 0.4642
20758
+ }
20759
+ ],
20760
+ "maxPrice": {
20761
+ "prompt": 1,
20762
+ "completion": 2
20763
+ },
20764
+ "quantizations": [
20765
+ "fp8",
20766
+ "fp16",
20767
+ "bf16",
20768
+ "fp32",
20769
+ "unknown"
20770
+ ]
20771
+ },
20772
+ {
20773
+ "id": "zai/glm-4.5-air",
20774
+ "openRouterId": "z-ai/glm-4.5-air",
20775
+ "label": "GLM-4.5 Air",
20776
+ "maker": "Z.ai",
20777
+ "contextLength": 128e3,
20778
+ "maxOutputTokens": 98304,
20779
+ "tiers": [
20780
+ {
20781
+ "maxPromptTokens": 131072,
20782
+ "input": 0.2321,
20783
+ "output": 1.27655,
20784
+ "cachedInput": 0.034815
20785
+ }
20786
+ ],
20787
+ "maxPrice": {
20788
+ "prompt": 0.2,
20789
+ "completion": 1.1
20790
+ },
20791
+ "quantizations": [
20792
+ "fp8",
20793
+ "fp16",
20794
+ "bf16",
20795
+ "fp32",
20796
+ "unknown"
20797
+ ]
20798
+ },
20799
+ {
20800
+ "id": "zai/glm-4.5v",
20801
+ "openRouterId": "z-ai/glm-4.5v",
20802
+ "label": "GLM-4.5V",
20803
+ "maker": "Z.ai",
20804
+ "contextLength": 65536,
20805
+ "maxOutputTokens": 16384,
20806
+ "tiers": [
20807
+ {
20808
+ "maxPromptTokens": 65536,
20809
+ "input": 0.6963,
20810
+ "output": 2.0889,
20811
+ "cachedInput": 0.127655
20812
+ }
20813
+ ],
20814
+ "maxPrice": {
20815
+ "prompt": 0.6,
20816
+ "completion": 1.8
20817
+ },
20818
+ "quantizations": [
20819
+ "fp8",
20820
+ "fp16",
20821
+ "bf16",
20822
+ "fp32",
20823
+ "unknown"
20824
+ ]
20825
+ },
20826
+ {
20827
+ "id": "zai/glm-4.7",
20828
+ "openRouterId": "z-ai/glm-4.7",
20829
+ "label": "GLM-4.7",
20830
+ "maker": "Z.ai",
20831
+ "contextLength": 2e5,
20832
+ "maxOutputTokens": 131072,
20833
+ "tiers": [
20834
+ {
20835
+ "maxPromptTokens": 204800,
20836
+ "input": 0.6963,
20837
+ "output": 2.5531,
20838
+ "cachedInput": 0.11489
20839
+ }
20840
+ ],
20841
+ "maxPrice": {
20842
+ "prompt": 0.6,
20843
+ "completion": 2.2
20844
+ },
20845
+ "quantizations": [
20846
+ "fp8",
20847
+ "fp16",
20848
+ "bf16",
20849
+ "fp32",
20850
+ "unknown"
20851
+ ]
20852
+ },
20853
+ {
20854
+ "id": "zai/glm-5",
20855
+ "openRouterId": "z-ai/glm-5",
20856
+ "label": "GLM-5",
20857
+ "maker": "Z.ai",
20858
+ "contextLength": 2e5,
20859
+ "maxOutputTokens": 131072,
20860
+ "tiers": [
20861
+ {
20862
+ "maxPromptTokens": 198e3,
20863
+ "input": 0.81235,
20864
+ "output": 2.59952,
20865
+ "cachedInput": 0.16247
20866
+ }
20867
+ ],
20868
+ "maxPrice": {
20869
+ "prompt": 0.7,
20870
+ "completion": 2.24
20871
+ },
20872
+ "quantizations": [
20873
+ "fp8",
20874
+ "fp16",
20875
+ "bf16",
20876
+ "fp32",
20877
+ "unknown"
20878
+ ]
20879
+ },
20880
+ {
20881
+ "id": "zai/glm-5-turbo",
20882
+ "openRouterId": "z-ai/glm-5-turbo",
20883
+ "label": "GLM-5 Turbo",
20884
+ "maker": "Z.ai",
20885
+ "contextLength": 2e5,
20886
+ "maxOutputTokens": 131072,
20887
+ "tiers": [
20888
+ {
20889
+ "maxPromptTokens": 202752,
20890
+ "input": 1.3926,
20891
+ "output": 4.642,
20892
+ "cachedInput": 0.27852
20893
+ }
20894
+ ],
20895
+ "maxPrice": {
20896
+ "prompt": 1.2,
20897
+ "completion": 4
20898
+ },
20899
+ "quantizations": [
20900
+ "fp8",
20901
+ "fp16",
20902
+ "bf16",
20903
+ "fp32",
20904
+ "unknown"
20905
+ ]
20906
+ },
20907
+ {
20908
+ "id": "zai/glm-5.1",
20909
+ "openRouterId": "z-ai/glm-5.1",
20910
+ "label": "GLM-5.1",
20911
+ "maker": "Z.ai",
20912
+ "contextLength": 2e5,
20913
+ "maxOutputTokens": 131072,
20914
+ "tiers": [
20915
+ {
20916
+ "maxPromptTokens": 2e5,
20917
+ "input": 1.380995,
20918
+ "output": 4.34027,
20919
+ "cachedInput": 0.6963
20920
+ }
20921
+ ],
20922
+ "maxPrice": {
20923
+ "prompt": 1.19,
20924
+ "completion": 3.74
20925
+ },
20926
+ "quantizations": [
20927
+ "fp8",
20928
+ "fp16",
20929
+ "bf16",
20930
+ "fp32",
20931
+ "unknown"
20932
+ ]
20933
+ },
20934
+ {
20935
+ "id": "zai/glm-5.2",
20936
+ "openRouterId": "z-ai/glm-5.2",
20937
+ "label": "GLM-5.2",
20938
+ "maker": "Z.ai",
20939
+ "contextLength": 1e6,
20940
+ "maxOutputTokens": 131072,
20941
+ "tiers": [
20942
+ {
20943
+ "maxPromptTokens": 1048576,
20944
+ "input": 0.98,
20945
+ "output": 3.08,
20946
+ "cachedInput": 0.182
20947
+ }
20948
+ ],
20949
+ "maxPrice": {
20950
+ "prompt": 0.7,
20951
+ "completion": 2.2
20952
+ },
20953
+ "quantizations": [
20954
+ "fp8",
20955
+ "fp16",
20956
+ "bf16",
20957
+ "fp32",
20958
+ "unknown"
20959
+ ]
20960
+ },
20961
+ {
20962
+ "id": "meta/muse-spark-open",
20963
+ "openRouterId": "meta/muse-spark-open",
20964
+ "label": "Muse Spark Open",
20965
+ "maker": "Meta",
20966
+ "contextLength": 1048576,
20967
+ "maxOutputTokens": 943718,
20968
+ "tiers": [
20969
+ {
20970
+ "maxPromptTokens": 1048576,
20971
+ "input": 1.450625,
20972
+ "output": 4.932125,
20973
+ "cachedInput": 0.174075
20974
+ }
20975
+ ],
20976
+ "maxPrice": {
20977
+ "prompt": 1.25,
20978
+ "completion": 4.25
20979
+ },
20980
+ "quantizations": [
20981
+ "fp8",
20982
+ "fp16",
20983
+ "bf16",
20984
+ "fp32",
20985
+ "unknown"
20986
+ ]
20987
+ },
20988
+ {
20989
+ "id": "nvidia/nemotron-3.5-super-vl",
20990
+ "openRouterId": "nvidia/nemotron-3.5-super-vl",
20991
+ "label": "Nemotron 3.5 Super VL",
20992
+ "maker": "NVIDIA",
20993
+ "contextLength": 262144,
20994
+ "maxOutputTokens": 235929,
20995
+ "tiers": [
20996
+ {
20997
+ "maxPromptTokens": 262144,
20998
+ "input": 0.174075,
20999
+ "output": 0.58025,
21000
+ "cachedInput": 0.09284
21001
+ }
21002
+ ],
21003
+ "maxPrice": {
21004
+ "prompt": 0.15,
21005
+ "completion": 0.5
21006
+ },
21007
+ "quantizations": [
21008
+ "fp8",
21009
+ "fp16",
21010
+ "bf16",
21011
+ "fp32",
21012
+ "unknown"
21013
+ ]
21014
+ },
21015
+ {
21016
+ "id": "minimax/minimax-m3.1-flash",
21017
+ "openRouterId": "minimax/minimax-m3.1-flash",
21018
+ "supplier": {
21019
+ "family": "minimax",
21020
+ "model": "MiniMax-M3.1-Flash"
21021
+ },
21022
+ "label": "MiniMax M3.1 Flash",
21023
+ "maker": "MiniMax",
21024
+ "contextLength": 1e6,
21025
+ "maxOutputTokens": 524288,
21026
+ "tiers": [
21027
+ {
21028
+ "maxPromptTokens": 1e6,
21029
+ "input": 0.15,
21030
+ "output": 0.6,
21031
+ "cachedInput": 0.015
21032
+ }
21033
+ ],
21034
+ "maxPrice": {
21035
+ "prompt": 0.15,
21036
+ "completion": 0.6
21037
+ }
21038
+ }
21039
+ ];
20093
21040
 
20094
21041
  // ../../packages/spec/src/acp-setup.ts
20095
21042
  var ACP_ACCOUNT_PROFILES = {
@@ -21848,6 +22795,9 @@ var usageReportSchema = external_exports.object({
21848
22795
  /** Echo of the pod's AGENT_LLM_PROVIDER env (pod reports) or the routed
21849
22796
  * provider family (gateway reports); never guessed. */
21850
22797
  provider: external_exports.string().max(100).nullish(),
22798
+ /** The supplier that actually served the call (gateway reports only), e.g.
22799
+ * `subscription-pool` or `socheap` for the `socheap-anthropic` family. */
22800
+ supplier: external_exports.string().max(100).nullish(),
21851
22801
  basis: external_exports.enum(["provider", "estimated"]).default("provider"),
21852
22802
  interrupted: external_exports.boolean().default(false),
21853
22803
  durationMs: external_exports.number().int().min(0).nullish(),
@@ -22524,8 +23474,8 @@ var spendCapPolicyConfigSchema = external_exports.object({
22524
23474
  message: "warnUsdMicros must be less than hardCapUsdMicros"
22525
23475
  });
22526
23476
  var callCountPolicyConfigSchema = external_exports.object({ limitPerSession: external_exports.number().int().min(1).max(1e5) }).strict();
22527
- var capabilityPolicyConfigSchema = external_exports.record(external_exports.string(), external_exports.enum(POLICY_ACTIONS)).superRefine((obj, ctx) => {
22528
- for (const [k, action] of Object.entries(obj)) {
23477
+ var capabilityPolicyConfigSchema = external_exports.record(external_exports.string(), external_exports.enum(POLICY_ACTIONS)).superRefine((obj2, ctx) => {
23478
+ for (const [k, action] of Object.entries(obj2)) {
22529
23479
  if (PLATFORM_CAPABILITY_IDS.includes(k)) {
22530
23480
  if (action === "ask") ctx.addIssue({ code: "custom", message: `${k} accepts allow or deny`, path: [k] });
22531
23481
  } else if (!CAPABILITY_IDS.includes(k)) {
@@ -22691,6 +23641,8 @@ export {
22691
23641
  redactLine,
22692
23642
  TRACE_CONTENT_SCOPES,
22693
23643
  redactTraceText,
23644
+ publicRemote,
23645
+ SessionSourceCollector,
22694
23646
  AGENT_TYPES,
22695
23647
  supersededBy,
22696
23648
  defaultLlm,