@agentsky/sky 2.7.3 → 2.9.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.
@@ -545,7 +545,7 @@ __export(core_exports2, {
545
545
  parseAsync: () => parseAsync,
546
546
  parseURLObject: () => parseURLObject,
547
547
  prettifyError: () => prettifyError,
548
- process: () => process,
548
+ process: () => process2,
549
549
  regexes: () => regexes_exports,
550
550
  registry: () => registry,
551
551
  safeDecode: () => safeDecode,
@@ -15149,7 +15149,7 @@ function handleUnrepresentable(schema, ctx, json2, params, message) {
15149
15149
  Object.assign(json2, result);
15150
15150
  return true;
15151
15151
  }
15152
- function process(schema, ctx, _params = { path: [], schemaPath: [] }) {
15152
+ function process2(schema, ctx, _params = { path: [], schemaPath: [] }) {
15153
15153
  var _a3;
15154
15154
  const def = schema._zod.def;
15155
15155
  const seen = ctx.seen.get(schema);
@@ -15188,7 +15188,7 @@ function process(schema, ctx, _params = { path: [], schemaPath: [] }) {
15188
15188
  if (parent) {
15189
15189
  if (!result.ref)
15190
15190
  result.ref = parent;
15191
- process(parent, ctx, params);
15191
+ process2(parent, ctx, params);
15192
15192
  ctx.seen.get(parent).isParent = true;
15193
15193
  }
15194
15194
  }
@@ -15623,14 +15623,14 @@ function isTransforming(_schema, _ctx) {
15623
15623
  }
15624
15624
  var createToJSONSchemaMethod = (schema, processors = {}) => (params) => {
15625
15625
  const ctx = initializeContext({ ...params, processors });
15626
- process(schema, ctx);
15626
+ process2(schema, ctx);
15627
15627
  extractDefs(ctx, schema);
15628
15628
  return finalize(ctx, schema);
15629
15629
  };
15630
15630
  var createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) => {
15631
15631
  const { libraryOptions, target } = params ?? {};
15632
15632
  const ctx = initializeContext({ ...libraryOptions ?? {}, target, io, processors });
15633
- process(schema, ctx);
15633
+ process2(schema, ctx);
15634
15634
  extractDefs(ctx, schema);
15635
15635
  return finalize(ctx, schema);
15636
15636
  };
@@ -15862,7 +15862,7 @@ var arrayProcessor = (schema, ctx, _json, params) => {
15862
15862
  if (typeof maximum === "number")
15863
15863
  json2.maxItems = maximum;
15864
15864
  json2.type = "array";
15865
- json2.items = process(def.element, ctx, {
15865
+ json2.items = process2(def.element, ctx, {
15866
15866
  ...params,
15867
15867
  path: [...params.path, "items"]
15868
15868
  });
@@ -15888,7 +15888,7 @@ var objectProcessor = (schema, ctx, _json, params) => {
15888
15888
  json2.type = "object";
15889
15889
  json2.properties = {};
15890
15890
  for (const key in shape) {
15891
- assignProp(json2.properties, key, process(shape[key], ctx, {
15891
+ assignProp(json2.properties, key, process2(shape[key], ctx, {
15892
15892
  ...params,
15893
15893
  path: [...params.path, "properties", key]
15894
15894
  }));
@@ -15911,7 +15911,7 @@ var objectProcessor = (schema, ctx, _json, params) => {
15911
15911
  if (ctx.io === "output")
15912
15912
  json2.additionalProperties = false;
15913
15913
  } else if (def.catchall) {
15914
- json2.additionalProperties = process(def.catchall, ctx, {
15914
+ json2.additionalProperties = process2(def.catchall, ctx, {
15915
15915
  ...params,
15916
15916
  path: [...params.path, "additionalProperties"]
15917
15917
  });
@@ -15920,7 +15920,7 @@ var objectProcessor = (schema, ctx, _json, params) => {
15920
15920
  var unionProcessor = (schema, ctx, json2, params) => {
15921
15921
  const def = schema._zod.def;
15922
15922
  const isExclusive = def.inclusive === false;
15923
- const options = def.options.map((x, i) => process(x, ctx, {
15923
+ const options = def.options.map((x, i) => process2(x, ctx, {
15924
15924
  ...params,
15925
15925
  path: [...params.path, isExclusive ? "oneOf" : "anyOf", i]
15926
15926
  }));
@@ -15932,11 +15932,11 @@ var unionProcessor = (schema, ctx, json2, params) => {
15932
15932
  };
15933
15933
  var intersectionProcessor = (schema, ctx, json2, params) => {
15934
15934
  const def = schema._zod.def;
15935
- const a = process(def.left, ctx, {
15935
+ const a = process2(def.left, ctx, {
15936
15936
  ...params,
15937
15937
  path: [...params.path, "allOf", 0]
15938
15938
  });
15939
- const b = process(def.right, ctx, {
15939
+ const b = process2(def.right, ctx, {
15940
15940
  ...params,
15941
15941
  path: [...params.path, "allOf", 1]
15942
15942
  });
@@ -15954,11 +15954,11 @@ var tupleProcessor = (schema, ctx, _json, params) => {
15954
15954
  json2.type = "array";
15955
15955
  const prefixPath = ctx.target === "draft-2020-12" ? "prefixItems" : "items";
15956
15956
  const restPath = ctx.target === "draft-2020-12" ? "items" : ctx.target === "openapi-3.0" ? "items" : "additionalItems";
15957
- const prefixItems = def.items.map((x, i) => process(x, ctx, {
15957
+ const prefixItems = def.items.map((x, i) => process2(x, ctx, {
15958
15958
  ...params,
15959
15959
  path: [...params.path, prefixPath, i]
15960
15960
  }));
15961
- const rest = def.rest ? process(def.rest, ctx, {
15961
+ const rest = def.rest ? process2(def.rest, ctx, {
15962
15962
  ...params,
15963
15963
  path: [...params.path, restPath, ...ctx.target === "openapi-3.0" ? [def.items.length] : []]
15964
15964
  }) : null;
@@ -16083,7 +16083,7 @@ var recordProcessor = (schema, ctx, _json, params) => {
16083
16083
  const keyBag = keyType._zod.bag;
16084
16084
  const patterns = keyBag?.patterns;
16085
16085
  if (def.mode === "loose" && patterns && patterns.size > 0) {
16086
- const valueSchema = process(def.valueType, ctx, {
16086
+ const valueSchema = process2(def.valueType, ctx, {
16087
16087
  ...params,
16088
16088
  path: [...params.path, "patternProperties", "*"]
16089
16089
  });
@@ -16093,7 +16093,7 @@ var recordProcessor = (schema, ctx, _json, params) => {
16093
16093
  }
16094
16094
  } else {
16095
16095
  if (ctx.target === "draft-07" || ctx.target === "draft-2020-12") {
16096
- json2.propertyNames = process(def.keyType, ctx, {
16096
+ json2.propertyNames = process2(def.keyType, ctx, {
16097
16097
  ...params,
16098
16098
  path: [...params.path, "propertyNames"]
16099
16099
  });
@@ -16105,7 +16105,7 @@ var recordProcessor = (schema, ctx, _json, params) => {
16105
16105
  }
16106
16106
  pending.push(schema);
16107
16107
  }
16108
- json2.additionalProperties = process(def.valueType, ctx, {
16108
+ json2.additionalProperties = process2(def.valueType, ctx, {
16109
16109
  ...params,
16110
16110
  path: [...params.path, "additionalProperties"]
16111
16111
  });
@@ -16121,7 +16121,7 @@ var recordProcessor = (schema, ctx, _json, params) => {
16121
16121
  };
16122
16122
  var nullableProcessor = (schema, ctx, json2, params) => {
16123
16123
  const def = schema._zod.def;
16124
- const inner = process(def.innerType, ctx, params);
16124
+ const inner = process2(def.innerType, ctx, params);
16125
16125
  const seen = ctx.seen.get(schema);
16126
16126
  if (ctx.target === "openapi-3.0") {
16127
16127
  seen.ref = def.innerType;
@@ -16132,7 +16132,7 @@ var nullableProcessor = (schema, ctx, json2, params) => {
16132
16132
  };
16133
16133
  var nonoptionalProcessor = (schema, ctx, _json, params) => {
16134
16134
  const def = schema._zod.def;
16135
- process(def.innerType, ctx, params);
16135
+ process2(def.innerType, ctx, params);
16136
16136
  const seen = ctx.seen.get(schema);
16137
16137
  seen.ref = def.innerType;
16138
16138
  };
@@ -16152,7 +16152,7 @@ function serializeDefaultValue(value, schema, ctx, json2, params) {
16152
16152
  }
16153
16153
  var defaultProcessor = (schema, ctx, json2, params) => {
16154
16154
  const def = schema._zod.def;
16155
- process(def.innerType, ctx, params);
16155
+ process2(def.innerType, ctx, params);
16156
16156
  const seen = ctx.seen.get(schema);
16157
16157
  seen.ref = def.innerType;
16158
16158
  const value = serializeDefaultValue(def.defaultValue, schema, ctx, json2, params);
@@ -16161,7 +16161,7 @@ var defaultProcessor = (schema, ctx, json2, params) => {
16161
16161
  };
16162
16162
  var prefaultProcessor = (schema, ctx, json2, params) => {
16163
16163
  const def = schema._zod.def;
16164
- process(def.innerType, ctx, params);
16164
+ process2(def.innerType, ctx, params);
16165
16165
  const seen = ctx.seen.get(schema);
16166
16166
  seen.ref = def.innerType;
16167
16167
  if (ctx.io !== "input")
@@ -16172,7 +16172,7 @@ var prefaultProcessor = (schema, ctx, json2, params) => {
16172
16172
  };
16173
16173
  var catchProcessor = (schema, ctx, json2, params) => {
16174
16174
  const def = schema._zod.def;
16175
- process(def.innerType, ctx, params);
16175
+ process2(def.innerType, ctx, params);
16176
16176
  const seen = ctx.seen.get(schema);
16177
16177
  seen.ref = def.innerType;
16178
16178
  let catchValue;
@@ -16188,32 +16188,32 @@ var pipeProcessor = (schema, ctx, _json, params) => {
16188
16188
  const def = schema._zod.def;
16189
16189
  const inIsTransform = def.in._zod.traits.has("$ZodTransform");
16190
16190
  const innerType = ctx.io === "input" ? inIsTransform ? def.out : def.in : def.out;
16191
- process(innerType, ctx, params);
16191
+ process2(innerType, ctx, params);
16192
16192
  const seen = ctx.seen.get(schema);
16193
16193
  seen.ref = innerType;
16194
16194
  };
16195
16195
  var readonlyProcessor = (schema, ctx, json2, params) => {
16196
16196
  const def = schema._zod.def;
16197
- process(def.innerType, ctx, params);
16197
+ process2(def.innerType, ctx, params);
16198
16198
  const seen = ctx.seen.get(schema);
16199
16199
  seen.ref = def.innerType;
16200
16200
  json2.readOnly = true;
16201
16201
  };
16202
16202
  var promiseProcessor = (schema, ctx, _json, params) => {
16203
16203
  const def = schema._zod.def;
16204
- process(def.innerType, ctx, params);
16204
+ process2(def.innerType, ctx, params);
16205
16205
  const seen = ctx.seen.get(schema);
16206
16206
  seen.ref = def.innerType;
16207
16207
  };
16208
16208
  var optionalProcessor = (schema, ctx, _json, params) => {
16209
16209
  const def = schema._zod.def;
16210
- process(def.innerType, ctx, params);
16210
+ process2(def.innerType, ctx, params);
16211
16211
  const seen = ctx.seen.get(schema);
16212
16212
  seen.ref = def.innerType;
16213
16213
  };
16214
16214
  var lazyProcessor = (schema, ctx, _json, params) => {
16215
16215
  const innerType = schema._zod.innerType;
16216
- process(innerType, ctx, params);
16216
+ process2(innerType, ctx, params);
16217
16217
  const seen = ctx.seen.get(schema);
16218
16218
  seen.ref = innerType;
16219
16219
  };
@@ -16265,7 +16265,7 @@ function toJSONSchema(input2, params) {
16265
16265
  const defs = {};
16266
16266
  for (const entry of registry2._idmap.entries()) {
16267
16267
  const [_, schema] = entry;
16268
- process(schema, ctx2);
16268
+ process2(schema, ctx2);
16269
16269
  }
16270
16270
  const schemas = {};
16271
16271
  const external = {
@@ -16288,7 +16288,7 @@ function toJSONSchema(input2, params) {
16288
16288
  return { schemas };
16289
16289
  }
16290
16290
  const ctx = initializeContext({ ...params, processors: allProcessors });
16291
- process(input2, ctx);
16291
+ process2(input2, ctx);
16292
16292
  extractDefs(ctx, input2);
16293
16293
  return finalize(ctx, input2);
16294
16294
  }
@@ -16347,7 +16347,7 @@ var JSONSchemaGenerator = class {
16347
16347
  * This must be called before emit().
16348
16348
  */
16349
16349
  process(schema, _params = { path: [], schemaPath: [] }) {
16350
- return process(schema, this.ctx, _params);
16350
+ return process2(schema, this.ctx, _params);
16351
16351
  }
16352
16352
  /**
16353
16353
  * Emit the final JSON Schema after processing.
@@ -19024,10 +19024,10 @@ var REASONING_EFFORTS = {
19024
19024
  sigit: null,
19025
19025
  stakpak: null,
19026
19026
  vtcode: null,
19027
- agentpool: null,
19028
19027
  code_assistant: null,
19029
19028
  docker_cagent: null,
19030
19029
  kiro: null,
19030
+ muse_code: null,
19031
19031
  openhands: null,
19032
19032
  hermes: ["none", "minimal", "low", "medium", "high", "xhigh", "max", "ultra"],
19033
19033
  claude_code: ["low", "medium", "high", "xhigh", "max"],
@@ -19196,7 +19196,7 @@ var ACP_AGENTS = {
19196
19196
  "registryId": "antigravity-acp",
19197
19197
  "label": "Google Antigravity",
19198
19198
  "description": "Google\u2019s AI coding agent",
19199
- "version": "1.1.1",
19199
+ "version": "1.3.0",
19200
19200
  "website": "https://antigravity.google/docs/ide/extensions"
19201
19201
  },
19202
19202
  "goose": {
@@ -19311,13 +19311,6 @@ var ACP_AGENTS = {
19311
19311
  "version": "0.96.14",
19312
19312
  "website": "https://github.com/vinhnx/VTCode/blob/main/docs/guides/zed-acp.md"
19313
19313
  },
19314
- "agentpool": {
19315
- "registryId": "agentpool",
19316
- "label": "AgentPool",
19317
- "description": "Agent pools configured through YAML and served over ACP.",
19318
- "version": "2.9.18",
19319
- "website": "https://phil65.github.io/agentpool/"
19320
- },
19321
19314
  "code_assistant": {
19322
19315
  "registryId": "code-assistant",
19323
19316
  "label": "Code Assistant",
@@ -19339,6 +19332,13 @@ var ACP_AGENTS = {
19339
19332
  "version": "2.22.0",
19340
19333
  "website": "https://kiro.dev/docs/cli/acp/"
19341
19334
  },
19335
+ "muse_code": {
19336
+ "registryId": "muse-code",
19337
+ "label": "Muse Code",
19338
+ "description": "Meta's coding agent and CLI",
19339
+ "version": "1.4.3",
19340
+ "website": "https://dev.meta.ai/docs/muse-code/"
19341
+ },
19342
19342
  "openhands": {
19343
19343
  "registryId": "openhands",
19344
19344
  "label": "OpenHands",
@@ -19384,11 +19384,11 @@ var ACP_AGENT_TYPES = [
19384
19384
  "sigit",
19385
19385
  "stakpak",
19386
19386
  "vtcode",
19387
- "agentpool",
19388
19387
  "code_assistant",
19389
19388
  "docker_cagent",
19390
19389
  "kiro",
19391
- "openhands"
19390
+ "openhands",
19391
+ "muse_code"
19392
19392
  ];
19393
19393
  function isAcpAgentType(value) {
19394
19394
  return Object.hasOwn(ACP_AGENTS, value);
@@ -19396,7 +19396,6 @@ function isAcpAgentType(value) {
19396
19396
 
19397
19397
  // ../../packages/spec/src/acp-platform.ts
19398
19398
  var ACP_PLATFORM_MODELS = {
19399
- agentpool: ["deepseek-v4-pro", "deepseek-flash", "gpt-5.6-sol", "gpt-6-astra", "glm-5.3", "glm-5.3-flash", "kimi-k3", "kimi-k2.7-code", "grok-4.6", "claude-fable-5-1", "claude-sonnet-5", "claude-haiku-4-5"],
19400
19399
  cline: ["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.6"],
19401
19400
  code_assistant: ["deepseek-v4-pro", "deepseek-flash", "gpt-5.6-sol", "gpt-5.6-luna", "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"],
19402
19401
  crow_cli: ["deepseek-v4-pro"],
@@ -20113,7 +20112,7 @@ var ACP_ACCOUNT_PROFILES = {
20113
20112
  },
20114
20113
  "antigravity_acp": {
20115
20114
  "name": "Google Antigravity",
20116
- "version": "1.1.1",
20115
+ "version": "1.3.0",
20117
20116
  "status": "documented",
20118
20117
  "setupModes": [
20119
20118
  {
@@ -20149,8 +20148,8 @@ var ACP_ACCOUNT_PROFILES = {
20149
20148
  }
20150
20149
  ],
20151
20150
  "notes": [
20152
- "The pinned ACP binary was initialized locally on Linux ARM64. Its authentication error documents this exact settings path and GEMINI_API_KEY input. Real provider authentication has not been tested.",
20153
- "The pinned binary requires IPv6 loopback (::1). Local initialization passed after enabling IPv6 loopback; sandbox-provider compatibility remains unverified."
20151
+ "The pinned ACP 1.3.0 binary passed local Linux ARM64 initialization and a real Gemini API-key acceptance: two paid turns, a native file-tool round trip, same-session resume, and memory recall.",
20152
+ "The pinned binary requires IPv6 loopback (::1). Local initialization and authenticated acceptance passed after enabling IPv6 loopback; sandbox-provider compatibility still requires release-template evidence."
20154
20153
  ],
20155
20154
  "sources": [
20156
20155
  "https://antigravity.google/docs/ide/extensions",
@@ -20491,43 +20490,6 @@ var ACP_ACCOUNT_PROFILES = {
20491
20490
  "https://github.com/mistralai/mistral-vibe/blob/main/README.md"
20492
20491
  ]
20493
20492
  },
20494
- "nova": {
20495
- "name": "Nova",
20496
- "version": "1.1.38",
20497
- "status": "documented",
20498
- "setupModes": [
20499
- {
20500
- "id": "anthropic",
20501
- "label": "Anthropic",
20502
- "fields": [
20503
- {
20504
- "key": "ANTHROPIC_API_KEY",
20505
- "label": "Anthropic API key",
20506
- "kind": "secret",
20507
- "required": true,
20508
- "source": "https://www.npmjs.com/package/@compass-ai/nova/v/1.1.38"
20509
- },
20510
- {
20511
- "key": "COMPASS_MODEL",
20512
- "label": "Model",
20513
- "kind": "string",
20514
- "required": true,
20515
- "source": "https://www.npmjs.com/package/@compass-ai/nova/v/1.1.38"
20516
- }
20517
- ],
20518
- "source": "https://www.npmjs.com/package/@compass-ai/nova/v/1.1.38",
20519
- "instructions": "Use a model from Nova\u2019s documentation. Nova may require first-time consent before it can run."
20520
- }
20521
- ],
20522
- "files": [],
20523
- "notes": [
20524
- "Provider environment configuration is documented. Authenticated ACP startup and first-run consent behavior require runtime verification."
20525
- ],
20526
- "sources": [
20527
- "https://github.com/Compass-Agentic-Platform/nova",
20528
- "https://www.npmjs.com/package/@compass-ai/nova/v/1.1.38"
20529
- ]
20530
- },
20531
20493
  "poolside": {
20532
20494
  "name": "Poolside",
20533
20495
  "version": "1.0.16",
@@ -20707,52 +20669,6 @@ var ACP_ACCOUNT_PROFILES = {
20707
20669
  "https://raw.githubusercontent.com/vinhnx/VTCode/main/docs/config/CONFIG_FIELD_REFERENCE.md"
20708
20670
  ]
20709
20671
  },
20710
- "agentpool": {
20711
- "name": "AgentPool",
20712
- "version": "2.9.18",
20713
- "status": "documented",
20714
- "setupModes": [
20715
- {
20716
- "id": "configuration",
20717
- "label": "Native configuration",
20718
- "fields": [
20719
- {
20720
- "key": "file:.config/agentpool/agentpool.yml",
20721
- "label": "AgentPool agents and provider configuration",
20722
- "kind": "yaml",
20723
- "required": true,
20724
- "file": ".config/agentpool/agentpool.yml",
20725
- "source": "https://pypi.org/project/agentpool/2.9.18/"
20726
- },
20727
- {
20728
- "key": "provider_environment",
20729
- "label": "Provider environment JSON",
20730
- "kind": "json",
20731
- "required": false,
20732
- "source": "https://github.com/phil65/agentpool",
20733
- "environment": true
20734
- }
20735
- ],
20736
- "source": "https://pypi.org/project/agentpool/2.9.18/",
20737
- "instructions": "Import the agents and model configuration. If your selected provider uses environment credentials, include its documented variables as a JSON object of string values."
20738
- }
20739
- ],
20740
- "files": [
20741
- {
20742
- "path": ".config/agentpool/agentpool.yml",
20743
- "format": "yaml",
20744
- "required": true,
20745
- "source": "https://pypi.org/project/agentpool/2.9.18/"
20746
- }
20747
- ],
20748
- "notes": [
20749
- "The pinned 2.9.18 wheel confirms the native default path and explicit serve-acp config argument. The supplied YAML must select the intended agent and model."
20750
- ],
20751
- "sources": [
20752
- "https://github.com/phil65/agentpool",
20753
- "https://pypi.org/project/agentpool/2.9.18/"
20754
- ]
20755
- },
20756
20672
  "blackbox": {
20757
20673
  "name": "Blackbox AI",
20758
20674
  "version": null,
@@ -20891,6 +20807,35 @@ var ACP_ACCOUNT_PROFILES = {
20891
20807
  "https://kiro.dev/docs/getting-started/authentication/"
20892
20808
  ]
20893
20809
  },
20810
+ "muse_code": {
20811
+ "name": "Muse Code",
20812
+ "version": "1.4.3",
20813
+ "status": "documented",
20814
+ "setupModes": [
20815
+ {
20816
+ "id": "api_key",
20817
+ "label": "API key",
20818
+ "fields": [
20819
+ {
20820
+ "key": "META_API_KEY",
20821
+ "label": "Meta API key",
20822
+ "kind": "secret",
20823
+ "required": true,
20824
+ "source": "https://dev.meta.ai/docs/muse-code/"
20825
+ }
20826
+ ],
20827
+ "source": "https://dev.meta.ai/docs/muse-code/"
20828
+ }
20829
+ ],
20830
+ "files": [],
20831
+ "notes": [
20832
+ "Muse Code runs through a community ACP adapter in front of Meta's own host binary. An authenticated turn has not been exercised."
20833
+ ],
20834
+ "sources": [
20835
+ "https://dev.meta.ai/docs/muse-code/",
20836
+ "https://github.com/bex-co/muse-code-acp"
20837
+ ]
20838
+ },
20894
20839
  "openhands": {
20895
20840
  "name": "OpenHands",
20896
20841
  "version": "1.16.0",
@@ -21137,6 +21082,13 @@ var MAX_FILESYSTEM_COMPONENT_BYTES = 255;
21137
21082
  var MAX_STAGED_COMPONENT_BYTES = MAX_FILESYSTEM_COMPONENT_BYTES - 13;
21138
21083
 
21139
21084
  // ../../packages/spec/src/usage.ts
21085
+ var rateLimitWindowSchema = external_exports.object({
21086
+ /** The vendor's window name: `five_hour`, `seven_day`, `primary`, ... */
21087
+ window: external_exports.string().min(1).max(64),
21088
+ usedPercent: external_exports.number().min(0).max(100),
21089
+ resetsAt: external_exports.iso.datetime({ offset: true }).nullish(),
21090
+ windowMinutes: external_exports.number().int().positive().nullish()
21091
+ });
21140
21092
  var usageReportSchema = external_exports.object({
21141
21093
  idempotencyKey: external_exports.string().min(1).max(128),
21142
21094
  /** "turn" = pod self-report (one per turn); "model-gateway" = RFC-0071
@@ -21159,6 +21111,8 @@ var usageReportSchema = external_exports.object({
21159
21111
  basis: external_exports.enum(["provider", "estimated"]).default("provider"),
21160
21112
  interrupted: external_exports.boolean().default(false),
21161
21113
  durationMs: external_exports.number().int().min(0).nullish(),
21114
+ /** Plan allowance windows observed during a subscription turn (pod reports only). */
21115
+ rateLimits: external_exports.array(rateLimitWindowSchema).max(16).optional(),
21162
21116
  /** Supplier request start, set by the trusted model gateway. */
21163
21117
  occurredAt: external_exports.iso.datetime({ offset: true }).nullish(),
21164
21118
  /** Trusted product origin captured by the model gateway at call start. */
@@ -21174,6 +21128,17 @@ var usageReportSchema = external_exports.object({
21174
21128
  usageRaw: external_exports.unknown().nullish()
21175
21129
  });
21176
21130
 
21131
+ // ../../packages/spec/src/subscription-limits.ts
21132
+ var observedWindowSchema = rateLimitWindowSchema.extend({
21133
+ /** When this window was last reported; windows are reported one at a time. */
21134
+ observedAt: external_exports.iso.datetime({ offset: true })
21135
+ });
21136
+ var observedLimitsSchema = external_exports.object({
21137
+ observedAt: external_exports.iso.datetime({ offset: true }),
21138
+ windows: external_exports.array(observedWindowSchema).max(16)
21139
+ });
21140
+ var WEEK_MINUTES = 7 * 24 * 60;
21141
+
21177
21142
  // ../../packages/spec/src/connection-support.ts
21178
21143
  var CHANNEL_IDS = ["slack", "telegram", "whatsapp", "imessage", "discord", "lark", "teams", "x", "email", "gchat", "line", "buzz"];
21179
21144
  var connectionSupportSchema = external_exports.object({
@@ -21182,7 +21147,7 @@ var connectionSupportSchema = external_exports.object({
21182
21147
  }).strict();
21183
21148
 
21184
21149
  // ../../packages/spec/src/question.ts
21185
- var QUESTION_REQUEST_KINDS = ["connect_app"];
21150
+ var QUESTION_REQUEST_KINDS = ["connect_app", "connect_account", "spend"];
21186
21151
  var questionSchema = external_exports.object({
21187
21152
  requestId: external_exports.string().min(1),
21188
21153
  question: external_exports.string().trim().min(1),
@@ -21208,7 +21173,7 @@ var questionSchema = external_exports.object({
21208
21173
  /** What the platform is asking for when the question is one of its own
21209
21174
  * requests rather than an agent's free question. Absent on an ordinary question. */
21210
21175
  kind: external_exports.enum(QUESTION_REQUEST_KINDS).optional(),
21211
- /** What the request is about: the app to connect, for `connect_app`. */
21176
+ /** What the request is about: the app to connect for `connect_app`, the vendor for `connect_account`, the agent's handle for `spend`. */
21212
21177
  subject: external_exports.string().trim().min(1).max(200).optional()
21213
21178
  }).superRefine((value, context) => {
21214
21179
  if (new Set(value.options.map((option) => option.id)).size !== value.options.length) {
@@ -21868,6 +21833,24 @@ function isFilePayload(node2) {
21868
21833
  return typeof node2.data === "string" && node2.data !== "" && (typeof node2.media_type === "string" || typeof node2.mime_type === "string" || node2.type === "import.resource" || node2.type === "base64");
21869
21834
  }
21870
21835
 
21836
+ // ../../packages/spec/src/code-review.ts
21837
+ var codeReviewTargetSchema = external_exports.string().trim().max(2048).transform((value, ctx) => {
21838
+ try {
21839
+ const url2 = new URL(value);
21840
+ const match = /^\/([\w.-]+)\/([\w.-]+)\/pull\/([1-9]\d*)(?:\/.*)?$/.exec(url2.pathname);
21841
+ if (url2.protocol !== "https:" || url2.hostname !== "github.com" || url2.port || url2.username || url2.password || !match || !Number.isSafeInteger(Number(match[3]))) throw new Error();
21842
+ return { owner: match[1], repo: match[2], number: Number(match[3]), url: `https://github.com/${match[1]}/${match[2]}/pull/${match[3]}` };
21843
+ } catch {
21844
+ ctx.addIssue({ code: "custom", message: "Enter a GitHub pull request URL." });
21845
+ return external_exports.NEVER;
21846
+ }
21847
+ });
21848
+ var codeReviewRequestSchema = external_exports.discriminatedUnion("action", [
21849
+ external_exports.object({ action: external_exports.literal("read"), url: codeReviewTargetSchema }).strict(),
21850
+ external_exports.object({ action: external_exports.literal("open"), url: codeReviewTargetSchema }).strict(),
21851
+ external_exports.object({ action: external_exports.literal("review"), url: codeReviewTargetSchema, head: external_exports.string().regex(/^[a-f0-9]{40}$/i), body: external_exports.string().trim().max(65536), event: external_exports.enum(["COMMENT", "APPROVE", "REQUEST_CHANGES"]) }).strict().refine((request) => request.event === "APPROVE" || request.body.length > 0, { path: ["body"], message: "Add a review comment." })
21852
+ ]);
21853
+
21871
21854
  // ../../packages/spec/src/index.ts
21872
21855
  var NATIVE_AGENT_TYPES = [
21873
21856
  "hermes",
@@ -21935,6 +21918,7 @@ var GATEWAY_CAPABILITY_IDS = [
21935
21918
  "wan.image"
21936
21919
  ];
21937
21920
  var CAPABILITY_IDS = [...LEGACY_CAPABILITY_IDS, ...GATEWAY_CAPABILITY_IDS];
21921
+ var PLATFORM_CAPABILITY_IDS = ["platform.orchestration"];
21938
21922
  var allowedLlms = {
21939
21923
  jev: ["typesafe/jev-1.13"],
21940
21924
  agoragentic_acp: ["harness-default"],
@@ -21973,10 +21957,10 @@ var allowedLlms = {
21973
21957
  sigit: [...ACP_PLATFORM_MODELS.sigit, "harness-default"],
21974
21958
  stakpak: [...ACP_PLATFORM_MODELS.stakpak, "harness-default"],
21975
21959
  vtcode: [...ACP_PLATFORM_MODELS.vtcode, "harness-default"],
21976
- agentpool: [...ACP_PLATFORM_MODELS.agentpool, "harness-default"],
21977
21960
  code_assistant: [...ACP_PLATFORM_MODELS.code_assistant, "harness-default"],
21978
21961
  docker_cagent: [...ACP_PLATFORM_MODELS.docker_cagent, "harness-default"],
21979
21962
  kiro: ["harness-default"],
21963
+ muse_code: ["harness-default"],
21980
21964
  openhands: [...ACP_PLATFORM_MODELS.openhands, "harness-default"],
21981
21965
  hermes: [
21982
21966
  "deepseek-v4-pro",
@@ -22024,6 +22008,16 @@ var allowedLlms = {
22024
22008
  "gpt-6-astra",
22025
22009
  "deepseek-v4-pro",
22026
22010
  "deepseek-flash",
22011
+ "claude-opus-5-5",
22012
+ "claude-opus-5",
22013
+ "claude-fable-5-1",
22014
+ "claude-sonnet-5",
22015
+ "claude-haiku-4-5",
22016
+ "kimi-k3",
22017
+ "kimi-k2.7-code",
22018
+ "glm-5.3",
22019
+ "glm-5.3-flash",
22020
+ "grok-4.6",
22027
22021
  "gpt-5.5",
22028
22022
  "deepseek-v4-flash"
22029
22023
  ],
@@ -22032,6 +22026,9 @@ var allowedLlms = {
22032
22026
  "gpt-5.6-terra",
22033
22027
  "gpt-5.6-luna",
22034
22028
  "gpt-6-astra",
22029
+ "gpt-6.1-sol",
22030
+ "gpt-6-sol",
22031
+ "gpt-6-luna",
22035
22032
  "deepseek-v4-pro",
22036
22033
  "deepseek-flash",
22037
22034
  "gemini-3.8-flash",
@@ -22055,6 +22052,10 @@ var allowedLlms = {
22055
22052
  "gpt-5.6-terra",
22056
22053
  "gpt-5.6-luna",
22057
22054
  "gpt-6-astra",
22055
+ "gpt-6.1-sol",
22056
+ "gpt-6-sol",
22057
+ "gpt-6-luna",
22058
+ "gemini-3.8-flash",
22058
22059
  "deepseek-v4-pro",
22059
22060
  "deepseek-flash",
22060
22061
  "glm-5.3",
@@ -22093,6 +22094,9 @@ var allowedLlms = {
22093
22094
  "gpt-5.6-terra",
22094
22095
  "gpt-5.6-luna",
22095
22096
  "gpt-6-astra",
22097
+ "gpt-6.1-sol",
22098
+ "gpt-6-sol",
22099
+ "gpt-6-luna",
22096
22100
  "glm-5.3",
22097
22101
  "glm-5.3-flash",
22098
22102
  "grok-4.6",
@@ -22110,6 +22114,9 @@ var allowedLlms = {
22110
22114
  "gpt-5.6-terra",
22111
22115
  "gpt-5.6-luna",
22112
22116
  "gpt-6-astra",
22117
+ "gpt-6.1-sol",
22118
+ "gpt-6-sol",
22119
+ "gpt-6-luna",
22113
22120
  "deepseek-v4-pro",
22114
22121
  "deepseek-flash",
22115
22122
  "glm-5.3",
@@ -22163,6 +22170,7 @@ var CHATGPT_PLAN_MODELS = /* @__PURE__ */ new Set([
22163
22170
  "gpt-5.6-luna",
22164
22171
  "gpt-5.5"
22165
22172
  ]);
22173
+ var CHATGPT_PLAN_HARNESSES = /* @__PURE__ */ new Set(["codex", "pi", "hermes", "opencode", "openclaw"]);
22166
22174
  var CLAUDE_PLAN_MODELS = /* @__PURE__ */ new Set([
22167
22175
  "claude-opus-5",
22168
22176
  "claude-fable-5-1",
@@ -22174,22 +22182,25 @@ var CLAUDE_PLAN_MODELS = /* @__PURE__ */ new Set([
22174
22182
  ]);
22175
22183
  function modelSubscriptionProviderFor(agentType, llm) {
22176
22184
  if (agentType === "claude_code" && CLAUDE_PLAN_MODELS.has(llm)) return "anthropic";
22177
- if (agentType === "codex" && CHATGPT_PLAN_MODELS.has(llm)) return "openai";
22185
+ if (CHATGPT_PLAN_HARNESSES.has(agentType) && CHATGPT_PLAN_MODELS.has(llm)) return "openai";
22178
22186
  if (agentType === "cursor" && llm === "harness-default") return "cursor";
22179
22187
  if (agentType === "grok_build" && llm === "harness-default") return "xai";
22188
+ if (agentType === "muse_code" && llm === "harness-default") return "meta";
22180
22189
  return null;
22181
22190
  }
22182
22191
  var MODEL_SUBSCRIPTION_PROVIDER_NAME = {
22183
22192
  anthropic: "Claude",
22184
22193
  openai: "ChatGPT",
22185
22194
  cursor: "Cursor",
22186
- xai: "Grok"
22195
+ xai: "Grok",
22196
+ meta: "Muse"
22187
22197
  };
22188
22198
  var MODEL_SUBSCRIPTION_PLAN_PHRASE = {
22189
22199
  anthropic: "Claude subscription",
22190
22200
  openai: "ChatGPT plan",
22191
22201
  cursor: "Cursor plan",
22192
- xai: "Grok subscription"
22202
+ xai: "Grok subscription",
22203
+ meta: "Muse subscription"
22193
22204
  };
22194
22205
  var AGENT_TYPE_META = {
22195
22206
  ...Object.fromEntries(ACP_AGENT_TYPES.map((agentType) => [agentType, {
@@ -22211,7 +22222,7 @@ var AGENT_TYPE_META = {
22211
22222
  },
22212
22223
  codex: {
22213
22224
  label: "Codex",
22214
- blurb: "OpenAI's coding agent. Uses GPT models."
22225
+ blurb: "OpenAI's coding agent. Works with GPT, Claude, DeepSeek, Kimi, GLM and Grok."
22215
22226
  },
22216
22227
  openclaw: {
22217
22228
  label: "OpenClaw",
@@ -22362,8 +22373,10 @@ var spendCapPolicyConfigSchema = external_exports.object({
22362
22373
  });
22363
22374
  var callCountPolicyConfigSchema = external_exports.object({ limitPerSession: external_exports.number().int().min(1).max(1e5) }).strict();
22364
22375
  var capabilityPolicyConfigSchema = external_exports.record(external_exports.string(), external_exports.enum(POLICY_ACTIONS)).superRefine((obj, ctx) => {
22365
- for (const k of Object.keys(obj)) {
22366
- if (!CAPABILITY_IDS.includes(k)) {
22376
+ for (const [k, action] of Object.entries(obj)) {
22377
+ if (PLATFORM_CAPABILITY_IDS.includes(k)) {
22378
+ if (action === "ask") ctx.addIssue({ code: "custom", message: `${k} accepts allow or deny`, path: [k] });
22379
+ } else if (!CAPABILITY_IDS.includes(k)) {
22367
22380
  ctx.addIssue({ code: "custom", message: `unknown capability id: ${k}`, path: [k] });
22368
22381
  }
22369
22382
  }