agent-shim 11.32.0 → 11.33.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.
@@ -756,11 +756,66 @@ declare const ProviderSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
756
756
  }, z.core.$strict>>;
757
757
  }, z.core.$strict>], "kind">;
758
758
  type Provider = z.infer<typeof ProviderSchema>;
759
- /**
760
- * A named, reusable configuration profile at `~/.agent-shim/config-profiles/<name>.json`.
761
- *
762
- * `extends` is a flat array of other profiles' *names*, deliberately not a self-referential `z.lazy()` schema: nothing in this shape points back at a profile object, so each file validates in isolation and the extends graph is walked at resolve time. That also means Zod cannot detect a circular `extends` definition — the walker in `src/resolve/extends.ts` carries its own cycle guard.
763
- */
759
+ /** The global `models` block: the virtual models, the tier pointers, the prices and the visibility filter. */
760
+ declare const ModelsConfigSchema: z.ZodObject<{
761
+ virtual: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
762
+ mode: z.ZodEnum<{
763
+ ordered: "ordered";
764
+ "most-allowance": "most-allowance";
765
+ "soonest-reset": "soonest-reset";
766
+ spread: "spread";
767
+ adaptive: "adaptive";
768
+ "lowest-latency": "lowest-latency";
769
+ "highest-success": "highest-success";
770
+ cheapest: "cheapest";
771
+ }>;
772
+ members: z.ZodArray<z.ZodString>;
773
+ }, z.core.$strict>>>;
774
+ tiers: z.ZodOptional<z.ZodObject<{
775
+ fable: z.ZodOptional<z.ZodString>;
776
+ opus: z.ZodOptional<z.ZodString>;
777
+ sonnet: z.ZodOptional<z.ZodString>;
778
+ haiku: z.ZodOptional<z.ZodString>;
779
+ }, z.core.$strict>>;
780
+ prices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
781
+ input: z.ZodNumber;
782
+ output: z.ZodNumber;
783
+ }, z.core.$strict>>>;
784
+ hide: z.ZodOptional<z.ZodArray<z.ZodString>>;
785
+ show: z.ZodOptional<z.ZodArray<z.ZodString>>;
786
+ }, z.core.$strict>;
787
+ type ModelsConfig = z.infer<typeof ModelsConfigSchema>;
788
+ /**
789
+ * The `models` block as a cascade layer writes it: identical to the global block except that any definition may be `null`, which removes what the shallower layers set rather than replacing it. A profile, directory rule or committed `.agent-shim.json` carries this form.
790
+ */
791
+ declare const ModelsLayerSchema: z.ZodObject<{
792
+ virtual: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
793
+ mode: z.ZodEnum<{
794
+ ordered: "ordered";
795
+ "most-allowance": "most-allowance";
796
+ "soonest-reset": "soonest-reset";
797
+ spread: "spread";
798
+ adaptive: "adaptive";
799
+ "lowest-latency": "lowest-latency";
800
+ "highest-success": "highest-success";
801
+ cheapest: "cheapest";
802
+ }>;
803
+ members: z.ZodArray<z.ZodString>;
804
+ }, z.core.$strict>, z.ZodNull]>>>;
805
+ tiers: z.ZodOptional<z.ZodObject<{
806
+ fable: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
807
+ opus: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
808
+ sonnet: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
809
+ haiku: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
810
+ }, z.core.$strict>>;
811
+ prices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
812
+ input: z.ZodNumber;
813
+ output: z.ZodNumber;
814
+ }, z.core.$strict>, z.ZodNull]>>>;
815
+ hide: z.ZodOptional<z.ZodArray<z.ZodString>>;
816
+ show: z.ZodOptional<z.ZodArray<z.ZodString>>;
817
+ }, z.core.$strict>;
818
+ type ModelsLayer = z.infer<typeof ModelsLayerSchema>;
764
819
  declare const ConfigProfileSchema: z.ZodObject<{
765
820
  $schema: z.ZodOptional<z.ZodString>;
766
821
  description: z.ZodOptional<z.ZodString>;
@@ -864,6 +919,33 @@ declare const ConfigProfileSchema: z.ZodObject<{
864
919
  pause: z.ZodOptional<z.ZodBoolean>;
865
920
  explain: z.ZodOptional<z.ZodBoolean>;
866
921
  }, z.core.$strict>>;
922
+ models: z.ZodOptional<z.ZodObject<{
923
+ virtual: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
924
+ mode: z.ZodEnum<{
925
+ ordered: "ordered";
926
+ "most-allowance": "most-allowance";
927
+ "soonest-reset": "soonest-reset";
928
+ spread: "spread";
929
+ adaptive: "adaptive";
930
+ "lowest-latency": "lowest-latency";
931
+ "highest-success": "highest-success";
932
+ cheapest: "cheapest";
933
+ }>;
934
+ members: z.ZodArray<z.ZodString>;
935
+ }, z.core.$strict>, z.ZodNull]>>>;
936
+ tiers: z.ZodOptional<z.ZodObject<{
937
+ fable: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
938
+ opus: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
939
+ sonnet: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
940
+ haiku: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
941
+ }, z.core.$strict>>;
942
+ prices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
943
+ input: z.ZodNumber;
944
+ output: z.ZodNumber;
945
+ }, z.core.$strict>, z.ZodNull]>>>;
946
+ hide: z.ZodOptional<z.ZodArray<z.ZodString>>;
947
+ show: z.ZodOptional<z.ZodArray<z.ZodString>>;
948
+ }, z.core.$strict>>;
867
949
  }, z.core.$strict>;
868
950
  type ConfigProfile = z.infer<typeof ConfigProfileSchema>;
869
951
  /** A pool's own name: the identity alphabet minus `@`, since a pool is never an email address. */
@@ -1047,6 +1129,33 @@ declare const DirectoryRuleSchema: z.ZodObject<{
1047
1129
  key: z.ZodType<trilean.JsonValue, unknown, z.core.$ZodTypeInternals<trilean.JsonValue, unknown>>;
1048
1130
  }, z.core.$strip>], "kind">]>;
1049
1131
  }, z.core.$strict>]>>>;
1132
+ models: z.ZodOptional<z.ZodObject<{
1133
+ virtual: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
1134
+ mode: z.ZodEnum<{
1135
+ ordered: "ordered";
1136
+ "most-allowance": "most-allowance";
1137
+ "soonest-reset": "soonest-reset";
1138
+ spread: "spread";
1139
+ adaptive: "adaptive";
1140
+ "lowest-latency": "lowest-latency";
1141
+ "highest-success": "highest-success";
1142
+ cheapest: "cheapest";
1143
+ }>;
1144
+ members: z.ZodArray<z.ZodString>;
1145
+ }, z.core.$strict>, z.ZodNull]>>>;
1146
+ tiers: z.ZodOptional<z.ZodObject<{
1147
+ fable: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
1148
+ opus: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
1149
+ sonnet: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
1150
+ haiku: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
1151
+ }, z.core.$strict>>;
1152
+ prices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
1153
+ input: z.ZodNumber;
1154
+ output: z.ZodNumber;
1155
+ }, z.core.$strict>, z.ZodNull]>>>;
1156
+ hide: z.ZodOptional<z.ZodArray<z.ZodString>>;
1157
+ show: z.ZodOptional<z.ZodArray<z.ZodString>>;
1158
+ }, z.core.$strict>>;
1050
1159
  $schema: z.ZodOptional<z.ZodString>;
1051
1160
  extends: z.ZodOptional<z.ZodArray<z.ZodString>>;
1052
1161
  categories: z.ZodOptional<z.ZodPipe<z.ZodObject<{
@@ -1229,6 +1338,33 @@ declare const DirectoryRulesSchema: z.ZodObject<{
1229
1338
  key: z.ZodType<trilean.JsonValue, unknown, z.core.$ZodTypeInternals<trilean.JsonValue, unknown>>;
1230
1339
  }, z.core.$strip>], "kind">]>;
1231
1340
  }, z.core.$strict>]>>>;
1341
+ models: z.ZodOptional<z.ZodObject<{
1342
+ virtual: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
1343
+ mode: z.ZodEnum<{
1344
+ ordered: "ordered";
1345
+ "most-allowance": "most-allowance";
1346
+ "soonest-reset": "soonest-reset";
1347
+ spread: "spread";
1348
+ adaptive: "adaptive";
1349
+ "lowest-latency": "lowest-latency";
1350
+ "highest-success": "highest-success";
1351
+ cheapest: "cheapest";
1352
+ }>;
1353
+ members: z.ZodArray<z.ZodString>;
1354
+ }, z.core.$strict>, z.ZodNull]>>>;
1355
+ tiers: z.ZodOptional<z.ZodObject<{
1356
+ fable: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
1357
+ opus: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
1358
+ sonnet: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
1359
+ haiku: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
1360
+ }, z.core.$strict>>;
1361
+ prices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
1362
+ input: z.ZodNumber;
1363
+ output: z.ZodNumber;
1364
+ }, z.core.$strict>, z.ZodNull]>>>;
1365
+ hide: z.ZodOptional<z.ZodArray<z.ZodString>>;
1366
+ show: z.ZodOptional<z.ZodArray<z.ZodString>>;
1367
+ }, z.core.$strict>>;
1232
1368
  $schema: z.ZodOptional<z.ZodString>;
1233
1369
  extends: z.ZodOptional<z.ZodArray<z.ZodString>>;
1234
1370
  categories: z.ZodOptional<z.ZodPipe<z.ZodObject<{
@@ -1412,6 +1548,33 @@ declare const PortableConfigSchema: z.ZodObject<{
1412
1548
  key: z.ZodType<trilean.JsonValue, unknown, z.core.$ZodTypeInternals<trilean.JsonValue, unknown>>;
1413
1549
  }, z.core.$strip>], "kind">]>;
1414
1550
  }, z.core.$strict>]>>>;
1551
+ models: z.ZodOptional<z.ZodObject<{
1552
+ virtual: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
1553
+ mode: z.ZodEnum<{
1554
+ ordered: "ordered";
1555
+ "most-allowance": "most-allowance";
1556
+ "soonest-reset": "soonest-reset";
1557
+ spread: "spread";
1558
+ adaptive: "adaptive";
1559
+ "lowest-latency": "lowest-latency";
1560
+ "highest-success": "highest-success";
1561
+ cheapest: "cheapest";
1562
+ }>;
1563
+ members: z.ZodArray<z.ZodString>;
1564
+ }, z.core.$strict>, z.ZodNull]>>>;
1565
+ tiers: z.ZodOptional<z.ZodObject<{
1566
+ fable: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
1567
+ opus: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
1568
+ sonnet: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
1569
+ haiku: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
1570
+ }, z.core.$strict>>;
1571
+ prices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
1572
+ input: z.ZodNumber;
1573
+ output: z.ZodNumber;
1574
+ }, z.core.$strict>, z.ZodNull]>>>;
1575
+ hide: z.ZodOptional<z.ZodArray<z.ZodString>>;
1576
+ show: z.ZodOptional<z.ZodArray<z.ZodString>>;
1577
+ }, z.core.$strict>>;
1415
1578
  $schema: z.ZodOptional<z.ZodString>;
1416
1579
  extends: z.ZodOptional<z.ZodArray<z.ZodString>>;
1417
1580
  categories: z.ZodOptional<z.ZodPipe<z.ZodObject<{
@@ -1542,6 +1705,7 @@ type HeadroomGlobalConfig = z.infer<typeof HeadroomGlobalConfigSchema>;
1542
1705
  declare const UPDATE_MODES: readonly ["off", "notify", "auto"];
1543
1706
  type UpdateMode = (typeof UPDATE_MODES)[number];
1544
1707
  /** The user-global `~/.agent-shim/config.json`. */
1708
+ /** The selection modes a virtual model can choose its member by; the engine in `src/selection/engine.ts` implements each one. */
1545
1709
  declare const GlobalConfigSchema: z.ZodObject<{
1546
1710
  $schema: z.ZodOptional<z.ZodString>;
1547
1711
  defaultConfigProfile: z.ZodOptional<z.ZodString>;
@@ -1760,6 +1924,33 @@ declare const GlobalConfigSchema: z.ZodObject<{
1760
1924
  compactBeforeLimit: z.ZodOptional<z.ZodBoolean>;
1761
1925
  compactAtUtilisation: z.ZodOptional<z.ZodNumber>;
1762
1926
  }, z.core.$strict>>>;
1927
+ models: z.ZodOptional<z.ZodObject<{
1928
+ virtual: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
1929
+ mode: z.ZodEnum<{
1930
+ ordered: "ordered";
1931
+ "most-allowance": "most-allowance";
1932
+ "soonest-reset": "soonest-reset";
1933
+ spread: "spread";
1934
+ adaptive: "adaptive";
1935
+ "lowest-latency": "lowest-latency";
1936
+ "highest-success": "highest-success";
1937
+ cheapest: "cheapest";
1938
+ }>;
1939
+ members: z.ZodArray<z.ZodString>;
1940
+ }, z.core.$strict>>>;
1941
+ tiers: z.ZodOptional<z.ZodObject<{
1942
+ fable: z.ZodOptional<z.ZodString>;
1943
+ opus: z.ZodOptional<z.ZodString>;
1944
+ sonnet: z.ZodOptional<z.ZodString>;
1945
+ haiku: z.ZodOptional<z.ZodString>;
1946
+ }, z.core.$strict>>;
1947
+ prices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
1948
+ input: z.ZodNumber;
1949
+ output: z.ZodNumber;
1950
+ }, z.core.$strict>>>;
1951
+ hide: z.ZodOptional<z.ZodArray<z.ZodString>>;
1952
+ show: z.ZodOptional<z.ZodArray<z.ZodString>>;
1953
+ }, z.core.$strict>>;
1763
1954
  jobs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
1764
1955
  target: z.ZodUnion<readonly [z.ZodObject<{
1765
1956
  identity: z.ZodString;
@@ -2028,6 +2219,8 @@ interface Layer {
2028
2219
  /** The entries object's own key insertion order, from `src/config/load.ts`. Falls back to `Object.keys(entries)` when absent. */
2029
2220
  readonly entryOrder?: readonly string[];
2030
2221
  readonly launch?: LaunchFlags;
2222
+ /** The models this layer contributes: definitions merge per name with the shallower layers, and a `null` removes what they set. */
2223
+ readonly models?: ModelsLayer;
2031
2224
  }
2032
2225
  /** Facts about one entry under `~/.claude`, relative to `~/.claude` itself. */
2033
2226
  interface EntryFact {
@@ -2129,6 +2322,8 @@ interface FlattenedCascade {
2129
2322
  readonly rules: ReadonlyMap<string, CompiledRule>;
2130
2323
  /** Launch flags, last layer wins per field. */
2131
2324
  readonly launch: LaunchFlags;
2325
+ /** The models block, merged across every layer that carries one: each definition (a virtual model, a tier pointer, a price) is set by the deepest layer that names it, a `null` in a deeper layer removes it, and `hide`/`show` replace wholesale. Absent when no layer carries models at all. */
2326
+ readonly models?: ModelsConfig;
2132
2327
  readonly diagnostics: readonly Diagnostic[];
2133
2328
  }
2134
2329
 
@@ -2233,6 +2428,7 @@ interface CascadeInput {
2233
2428
  readonly entries?: Layer["entries"];
2234
2429
  readonly entryOrder?: readonly string[];
2235
2430
  readonly launch?: Layer["launch"];
2431
+ readonly models?: Layer["models"];
2236
2432
  };
2237
2433
  }
2238
2434
  /** The assembled cascade: an ordered layer sequence plus what the walk itself decided. */
@@ -5308,7 +5504,7 @@ type ClaudeBinaryResolver = (request?: Readonly<ClaudeBinaryRequest>) => Discove
5308
5504
 
5309
5505
  declare const DOCTOR_SEVERITIES: readonly ["pass", "warn", "fail"];
5310
5506
  type DoctorSeverity = (typeof DOCTOR_SEVERITIES)[number];
5311
- declare const DOCTOR_SECTIONS: readonly ["ambient-credential", "binary-discovery", "claude-shim", "path-resolution", "legacy-name", "config-profile", "identity", "sign-in", "pool", "provider", "keychain", "directory-rules", "global-config", "categories-local", "active-identity", "headroom", "frontdoor"];
5507
+ declare const DOCTOR_SECTIONS: readonly ["ambient-credential", "binary-discovery", "claude-shim", "path-resolution", "legacy-name", "config-profile", "identity", "sign-in", "pool", "provider", "keychain", "directory-rules", "global-config", "categories-local", "active-identity", "headroom", "frontdoor", "models"];
5312
5508
  type DoctorSection = (typeof DOCTOR_SECTIONS)[number];
5313
5509
  /** One line of `agent-shim doctor`'s report. `subject` names the identity/profile/rule the finding is about, when the section has more than one of those. */
5314
5510
  interface DoctorFinding {
@@ -5384,6 +5580,8 @@ interface RunDoctorParams {
5384
5580
  readonly providers: readonly DoctorProviderInput[];
5385
5581
  readonly directoryRules: DoctorFileInput;
5386
5582
  readonly globalConfig: DoctorFileInput;
5583
+ /** The parsed `models` block of the global config, when one is defined. Omit to skip the models checks. */
5584
+ readonly models?: ModelsConfig;
5387
5585
  readonly categoriesLocal: DoctorFileInput;
5388
5586
  readonly activeIdentity: DoctorFileInput;
5389
5587
  readonly binaryDiscovery: DoctorBinaryDiscovery;
@@ -5417,13 +5615,6 @@ interface RunDoctorParams {
5417
5615
  readonly listeners?: readonly FrontDoorListenerReading[];
5418
5616
  };
5419
5617
  }
5420
- /**
5421
- * Audits the whole `~/.agent-shim` config graph for internal consistency: every identity, every configuration profile's own `extends` chain, every provider, `directory-rules.json`, `config.json`, `categories.local.json`, `active-identity`, plus real Claude Code binary discoverability and ambient-credential exposure.
5422
- *
5423
- * Deliberately identity/directory-agnostic, unlike `runCheck` — there is no single cascade to resolve `doctor` against, so it never touches settings-exposure (which only means anything relative to one resolved cascade).
5424
- *
5425
- * Every check aggregates rather than throws: a malformed file becomes one `fail` finding for that file, not an aborted report. This is the one place in the codebase that deliberately breaks the "throw a validation error and let it propagate" convention every other command relies on — `doctor`'s whole purpose is to survive a broken file and keep auditing everything else.
5426
- */
5427
5618
  declare function runDoctor(params: RunDoctorParams): DoctorReport;
5428
5619
  /** Renders a full `DoctorReport` as plain text lines, one section header at a time, in the order `agent-shim doctor` prints them. */
5429
5620
  declare function formatDoctorReport(report: DoctorReport): string[];
@@ -5973,6 +6164,33 @@ declare function createConfigApiRouter(deps: ConfigApiDeps): {
5973
6164
  }, zod_v4_core.$strip>], "kind">]>;
5974
6165
  }, zod_v4_core.$strict>]>>>;
5975
6166
  description: zod.ZodOptional<zod.ZodString>;
6167
+ models: zod.ZodOptional<zod.ZodObject<{
6168
+ virtual: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
6169
+ mode: zod.ZodEnum<{
6170
+ ordered: "ordered";
6171
+ "most-allowance": "most-allowance";
6172
+ "soonest-reset": "soonest-reset";
6173
+ spread: "spread";
6174
+ adaptive: "adaptive";
6175
+ "lowest-latency": "lowest-latency";
6176
+ "highest-success": "highest-success";
6177
+ cheapest: "cheapest";
6178
+ }>;
6179
+ members: zod.ZodArray<zod.ZodString>;
6180
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
6181
+ tiers: zod.ZodOptional<zod.ZodObject<{
6182
+ fable: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
6183
+ opus: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
6184
+ sonnet: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
6185
+ haiku: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
6186
+ }, zod_v4_core.$strict>>;
6187
+ prices: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
6188
+ input: zod.ZodNumber;
6189
+ output: zod.ZodNumber;
6190
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
6191
+ hide: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
6192
+ show: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
6193
+ }, zod_v4_core.$strict>>;
5976
6194
  extends: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
5977
6195
  categories: zod.ZodOptional<zod.ZodPipe<zod.ZodObject<{
5978
6196
  all: zod.ZodOptional<zod.ZodBoolean>;
@@ -6098,6 +6316,33 @@ declare function createConfigApiRouter(deps: ConfigApiDeps): {
6098
6316
  }, zod_v4_core.$strip>], "kind">]>;
6099
6317
  }, zod_v4_core.$strict>]>>>;
6100
6318
  description: zod.ZodOptional<zod.ZodString>;
6319
+ models: zod.ZodOptional<zod.ZodObject<{
6320
+ virtual: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
6321
+ mode: zod.ZodEnum<{
6322
+ ordered: "ordered";
6323
+ "most-allowance": "most-allowance";
6324
+ "soonest-reset": "soonest-reset";
6325
+ spread: "spread";
6326
+ adaptive: "adaptive";
6327
+ "lowest-latency": "lowest-latency";
6328
+ "highest-success": "highest-success";
6329
+ cheapest: "cheapest";
6330
+ }>;
6331
+ members: zod.ZodArray<zod.ZodString>;
6332
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
6333
+ tiers: zod.ZodOptional<zod.ZodObject<{
6334
+ fable: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
6335
+ opus: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
6336
+ sonnet: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
6337
+ haiku: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
6338
+ }, zod_v4_core.$strict>>;
6339
+ prices: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
6340
+ input: zod.ZodNumber;
6341
+ output: zod.ZodNumber;
6342
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
6343
+ hide: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
6344
+ show: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
6345
+ }, zod_v4_core.$strict>>;
6101
6346
  extends: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
6102
6347
  categories: zod.ZodOptional<zod.ZodPipe<zod.ZodObject<{
6103
6348
  all: zod.ZodOptional<zod.ZodBoolean>;
@@ -6700,6 +6945,33 @@ declare function createConfigApiRouter(deps: ConfigApiDeps): {
6700
6945
  key: zod.ZodType<trilean.JsonValue, unknown, zod_v4_core.$ZodTypeInternals<trilean.JsonValue, unknown>>;
6701
6946
  }, zod_v4_core.$strip>], "kind">]>;
6702
6947
  }, zod_v4_core.$strict>]>>>;
6948
+ models: zod.ZodOptional<zod.ZodObject<{
6949
+ virtual: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
6950
+ mode: zod.ZodEnum<{
6951
+ ordered: "ordered";
6952
+ "most-allowance": "most-allowance";
6953
+ "soonest-reset": "soonest-reset";
6954
+ spread: "spread";
6955
+ adaptive: "adaptive";
6956
+ "lowest-latency": "lowest-latency";
6957
+ "highest-success": "highest-success";
6958
+ cheapest: "cheapest";
6959
+ }>;
6960
+ members: zod.ZodArray<zod.ZodString>;
6961
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
6962
+ tiers: zod.ZodOptional<zod.ZodObject<{
6963
+ fable: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
6964
+ opus: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
6965
+ sonnet: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
6966
+ haiku: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
6967
+ }, zod_v4_core.$strict>>;
6968
+ prices: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
6969
+ input: zod.ZodNumber;
6970
+ output: zod.ZodNumber;
6971
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
6972
+ hide: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
6973
+ show: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
6974
+ }, zod_v4_core.$strict>>;
6703
6975
  $schema: zod.ZodOptional<zod.ZodString>;
6704
6976
  extends: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
6705
6977
  categories: zod.ZodOptional<zod.ZodPipe<zod.ZodObject<{
@@ -6887,6 +7159,33 @@ declare function createConfigApiRouter(deps: ConfigApiDeps): {
6887
7159
  key: zod.ZodType<trilean.JsonValue, unknown, zod_v4_core.$ZodTypeInternals<trilean.JsonValue, unknown>>;
6888
7160
  }, zod_v4_core.$strip>], "kind">]>;
6889
7161
  }, zod_v4_core.$strict>]>>>;
7162
+ models: zod.ZodOptional<zod.ZodObject<{
7163
+ virtual: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
7164
+ mode: zod.ZodEnum<{
7165
+ ordered: "ordered";
7166
+ "most-allowance": "most-allowance";
7167
+ "soonest-reset": "soonest-reset";
7168
+ spread: "spread";
7169
+ adaptive: "adaptive";
7170
+ "lowest-latency": "lowest-latency";
7171
+ "highest-success": "highest-success";
7172
+ cheapest: "cheapest";
7173
+ }>;
7174
+ members: zod.ZodArray<zod.ZodString>;
7175
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
7176
+ tiers: zod.ZodOptional<zod.ZodObject<{
7177
+ fable: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
7178
+ opus: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
7179
+ sonnet: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
7180
+ haiku: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
7181
+ }, zod_v4_core.$strict>>;
7182
+ prices: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
7183
+ input: zod.ZodNumber;
7184
+ output: zod.ZodNumber;
7185
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
7186
+ hide: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
7187
+ show: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
7188
+ }, zod_v4_core.$strict>>;
6890
7189
  $schema: zod.ZodOptional<zod.ZodString>;
6891
7190
  extends: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
6892
7191
  categories: zod.ZodOptional<zod.ZodPipe<zod.ZodObject<{
@@ -8430,6 +8729,7 @@ declare function createControlApiRouter(deps: ControlApiDeps): {
8430
8729
  "categories-local": "categories-local";
8431
8730
  "active-identity": "active-identity";
8432
8731
  headroom: "headroom";
8732
+ models: "models";
8433
8733
  }>;
8434
8734
  subject: zod.ZodOptional<zod.ZodString>;
8435
8735
  severity: zod.ZodEnum<{
@@ -9004,6 +9304,33 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
9004
9304
  }, zod_v4_core.$strip>], "kind">]>;
9005
9305
  }, zod_v4_core.$strict>]>>>;
9006
9306
  description: zod.ZodOptional<zod.ZodString>;
9307
+ models: zod.ZodOptional<zod.ZodObject<{
9308
+ virtual: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
9309
+ mode: zod.ZodEnum<{
9310
+ ordered: "ordered";
9311
+ "most-allowance": "most-allowance";
9312
+ "soonest-reset": "soonest-reset";
9313
+ spread: "spread";
9314
+ adaptive: "adaptive";
9315
+ "lowest-latency": "lowest-latency";
9316
+ "highest-success": "highest-success";
9317
+ cheapest: "cheapest";
9318
+ }>;
9319
+ members: zod.ZodArray<zod.ZodString>;
9320
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
9321
+ tiers: zod.ZodOptional<zod.ZodObject<{
9322
+ fable: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
9323
+ opus: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
9324
+ sonnet: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
9325
+ haiku: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
9326
+ }, zod_v4_core.$strict>>;
9327
+ prices: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
9328
+ input: zod.ZodNumber;
9329
+ output: zod.ZodNumber;
9330
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
9331
+ hide: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
9332
+ show: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
9333
+ }, zod_v4_core.$strict>>;
9007
9334
  extends: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
9008
9335
  categories: zod.ZodOptional<zod.ZodPipe<zod.ZodObject<{
9009
9336
  all: zod.ZodOptional<zod.ZodBoolean>;
@@ -9129,6 +9456,33 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
9129
9456
  }, zod_v4_core.$strip>], "kind">]>;
9130
9457
  }, zod_v4_core.$strict>]>>>;
9131
9458
  description: zod.ZodOptional<zod.ZodString>;
9459
+ models: zod.ZodOptional<zod.ZodObject<{
9460
+ virtual: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
9461
+ mode: zod.ZodEnum<{
9462
+ ordered: "ordered";
9463
+ "most-allowance": "most-allowance";
9464
+ "soonest-reset": "soonest-reset";
9465
+ spread: "spread";
9466
+ adaptive: "adaptive";
9467
+ "lowest-latency": "lowest-latency";
9468
+ "highest-success": "highest-success";
9469
+ cheapest: "cheapest";
9470
+ }>;
9471
+ members: zod.ZodArray<zod.ZodString>;
9472
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
9473
+ tiers: zod.ZodOptional<zod.ZodObject<{
9474
+ fable: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
9475
+ opus: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
9476
+ sonnet: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
9477
+ haiku: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
9478
+ }, zod_v4_core.$strict>>;
9479
+ prices: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
9480
+ input: zod.ZodNumber;
9481
+ output: zod.ZodNumber;
9482
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
9483
+ hide: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
9484
+ show: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
9485
+ }, zod_v4_core.$strict>>;
9132
9486
  extends: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
9133
9487
  categories: zod.ZodOptional<zod.ZodPipe<zod.ZodObject<{
9134
9488
  all: zod.ZodOptional<zod.ZodBoolean>;
@@ -9731,6 +10085,33 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
9731
10085
  key: zod.ZodType<trilean.JsonValue, unknown, zod_v4_core.$ZodTypeInternals<trilean.JsonValue, unknown>>;
9732
10086
  }, zod_v4_core.$strip>], "kind">]>;
9733
10087
  }, zod_v4_core.$strict>]>>>;
10088
+ models: zod.ZodOptional<zod.ZodObject<{
10089
+ virtual: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
10090
+ mode: zod.ZodEnum<{
10091
+ ordered: "ordered";
10092
+ "most-allowance": "most-allowance";
10093
+ "soonest-reset": "soonest-reset";
10094
+ spread: "spread";
10095
+ adaptive: "adaptive";
10096
+ "lowest-latency": "lowest-latency";
10097
+ "highest-success": "highest-success";
10098
+ cheapest: "cheapest";
10099
+ }>;
10100
+ members: zod.ZodArray<zod.ZodString>;
10101
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
10102
+ tiers: zod.ZodOptional<zod.ZodObject<{
10103
+ fable: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
10104
+ opus: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
10105
+ sonnet: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
10106
+ haiku: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
10107
+ }, zod_v4_core.$strict>>;
10108
+ prices: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
10109
+ input: zod.ZodNumber;
10110
+ output: zod.ZodNumber;
10111
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
10112
+ hide: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
10113
+ show: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
10114
+ }, zod_v4_core.$strict>>;
9734
10115
  $schema: zod.ZodOptional<zod.ZodString>;
9735
10116
  extends: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
9736
10117
  categories: zod.ZodOptional<zod.ZodPipe<zod.ZodObject<{
@@ -9918,6 +10299,33 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
9918
10299
  key: zod.ZodType<trilean.JsonValue, unknown, zod_v4_core.$ZodTypeInternals<trilean.JsonValue, unknown>>;
9919
10300
  }, zod_v4_core.$strip>], "kind">]>;
9920
10301
  }, zod_v4_core.$strict>]>>>;
10302
+ models: zod.ZodOptional<zod.ZodObject<{
10303
+ virtual: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
10304
+ mode: zod.ZodEnum<{
10305
+ ordered: "ordered";
10306
+ "most-allowance": "most-allowance";
10307
+ "soonest-reset": "soonest-reset";
10308
+ spread: "spread";
10309
+ adaptive: "adaptive";
10310
+ "lowest-latency": "lowest-latency";
10311
+ "highest-success": "highest-success";
10312
+ cheapest: "cheapest";
10313
+ }>;
10314
+ members: zod.ZodArray<zod.ZodString>;
10315
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
10316
+ tiers: zod.ZodOptional<zod.ZodObject<{
10317
+ fable: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
10318
+ opus: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
10319
+ sonnet: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
10320
+ haiku: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
10321
+ }, zod_v4_core.$strict>>;
10322
+ prices: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
10323
+ input: zod.ZodNumber;
10324
+ output: zod.ZodNumber;
10325
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
10326
+ hide: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
10327
+ show: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
10328
+ }, zod_v4_core.$strict>>;
9921
10329
  $schema: zod.ZodOptional<zod.ZodString>;
9922
10330
  extends: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
9923
10331
  categories: zod.ZodOptional<zod.ZodPipe<zod.ZodObject<{
@@ -10561,6 +10969,7 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
10561
10969
  "categories-local": "categories-local";
10562
10970
  "active-identity": "active-identity";
10563
10971
  headroom: "headroom";
10972
+ models: "models";
10564
10973
  }>;
10565
10974
  subject: zod.ZodOptional<zod.ZodString>;
10566
10975
  severity: zod.ZodEnum<{
@@ -11146,6 +11555,33 @@ declare const ConfigProfileAddOutputSchema: z.ZodObject<{
11146
11555
  }, z.core.$strip>], "kind">]>;
11147
11556
  }, z.core.$strict>]>>>;
11148
11557
  description: z.ZodOptional<z.ZodString>;
11558
+ models: z.ZodOptional<z.ZodObject<{
11559
+ virtual: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
11560
+ mode: z.ZodEnum<{
11561
+ ordered: "ordered";
11562
+ "most-allowance": "most-allowance";
11563
+ "soonest-reset": "soonest-reset";
11564
+ spread: "spread";
11565
+ adaptive: "adaptive";
11566
+ "lowest-latency": "lowest-latency";
11567
+ "highest-success": "highest-success";
11568
+ cheapest: "cheapest";
11569
+ }>;
11570
+ members: z.ZodArray<z.ZodString>;
11571
+ }, z.core.$strict>, z.ZodNull]>>>;
11572
+ tiers: z.ZodOptional<z.ZodObject<{
11573
+ fable: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
11574
+ opus: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
11575
+ sonnet: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
11576
+ haiku: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
11577
+ }, z.core.$strict>>;
11578
+ prices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
11579
+ input: z.ZodNumber;
11580
+ output: z.ZodNumber;
11581
+ }, z.core.$strict>, z.ZodNull]>>>;
11582
+ hide: z.ZodOptional<z.ZodArray<z.ZodString>>;
11583
+ show: z.ZodOptional<z.ZodArray<z.ZodString>>;
11584
+ }, z.core.$strict>>;
11149
11585
  extends: z.ZodOptional<z.ZodArray<z.ZodString>>;
11150
11586
  categories: z.ZodOptional<z.ZodPipe<z.ZodObject<{
11151
11587
  all: z.ZodOptional<z.ZodBoolean>;
@@ -11273,6 +11709,33 @@ declare const ConfigProfileSetOutputSchema: z.ZodObject<{
11273
11709
  }, z.core.$strip>], "kind">]>;
11274
11710
  }, z.core.$strict>]>>>;
11275
11711
  description: z.ZodOptional<z.ZodString>;
11712
+ models: z.ZodOptional<z.ZodObject<{
11713
+ virtual: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
11714
+ mode: z.ZodEnum<{
11715
+ ordered: "ordered";
11716
+ "most-allowance": "most-allowance";
11717
+ "soonest-reset": "soonest-reset";
11718
+ spread: "spread";
11719
+ adaptive: "adaptive";
11720
+ "lowest-latency": "lowest-latency";
11721
+ "highest-success": "highest-success";
11722
+ cheapest: "cheapest";
11723
+ }>;
11724
+ members: z.ZodArray<z.ZodString>;
11725
+ }, z.core.$strict>, z.ZodNull]>>>;
11726
+ tiers: z.ZodOptional<z.ZodObject<{
11727
+ fable: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
11728
+ opus: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
11729
+ sonnet: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
11730
+ haiku: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
11731
+ }, z.core.$strict>>;
11732
+ prices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
11733
+ input: z.ZodNumber;
11734
+ output: z.ZodNumber;
11735
+ }, z.core.$strict>, z.ZodNull]>>>;
11736
+ hide: z.ZodOptional<z.ZodArray<z.ZodString>>;
11737
+ show: z.ZodOptional<z.ZodArray<z.ZodString>>;
11738
+ }, z.core.$strict>>;
11276
11739
  extends: z.ZodOptional<z.ZodArray<z.ZodString>>;
11277
11740
  categories: z.ZodOptional<z.ZodPipe<z.ZodObject<{
11278
11741
  all: z.ZodOptional<z.ZodBoolean>;
@@ -11877,6 +12340,33 @@ declare const ConfigRuleAddOutputSchema: z.ZodObject<{
11877
12340
  key: z.ZodType<trilean.JsonValue, unknown, z.core.$ZodTypeInternals<trilean.JsonValue, unknown>>;
11878
12341
  }, z.core.$strip>], "kind">]>;
11879
12342
  }, z.core.$strict>]>>>;
12343
+ models: z.ZodOptional<z.ZodObject<{
12344
+ virtual: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
12345
+ mode: z.ZodEnum<{
12346
+ ordered: "ordered";
12347
+ "most-allowance": "most-allowance";
12348
+ "soonest-reset": "soonest-reset";
12349
+ spread: "spread";
12350
+ adaptive: "adaptive";
12351
+ "lowest-latency": "lowest-latency";
12352
+ "highest-success": "highest-success";
12353
+ cheapest: "cheapest";
12354
+ }>;
12355
+ members: z.ZodArray<z.ZodString>;
12356
+ }, z.core.$strict>, z.ZodNull]>>>;
12357
+ tiers: z.ZodOptional<z.ZodObject<{
12358
+ fable: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
12359
+ opus: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
12360
+ sonnet: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
12361
+ haiku: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
12362
+ }, z.core.$strict>>;
12363
+ prices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
12364
+ input: z.ZodNumber;
12365
+ output: z.ZodNumber;
12366
+ }, z.core.$strict>, z.ZodNull]>>>;
12367
+ hide: z.ZodOptional<z.ZodArray<z.ZodString>>;
12368
+ show: z.ZodOptional<z.ZodArray<z.ZodString>>;
12369
+ }, z.core.$strict>>;
11880
12370
  $schema: z.ZodOptional<z.ZodString>;
11881
12371
  extends: z.ZodOptional<z.ZodArray<z.ZodString>>;
11882
12372
  categories: z.ZodOptional<z.ZodPipe<z.ZodObject<{
@@ -12066,6 +12556,33 @@ declare const ConfigRuleSetOutputSchema: z.ZodObject<{
12066
12556
  key: z.ZodType<trilean.JsonValue, unknown, z.core.$ZodTypeInternals<trilean.JsonValue, unknown>>;
12067
12557
  }, z.core.$strip>], "kind">]>;
12068
12558
  }, z.core.$strict>]>>>;
12559
+ models: z.ZodOptional<z.ZodObject<{
12560
+ virtual: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
12561
+ mode: z.ZodEnum<{
12562
+ ordered: "ordered";
12563
+ "most-allowance": "most-allowance";
12564
+ "soonest-reset": "soonest-reset";
12565
+ spread: "spread";
12566
+ adaptive: "adaptive";
12567
+ "lowest-latency": "lowest-latency";
12568
+ "highest-success": "highest-success";
12569
+ cheapest: "cheapest";
12570
+ }>;
12571
+ members: z.ZodArray<z.ZodString>;
12572
+ }, z.core.$strict>, z.ZodNull]>>>;
12573
+ tiers: z.ZodOptional<z.ZodObject<{
12574
+ fable: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
12575
+ opus: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
12576
+ sonnet: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
12577
+ haiku: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
12578
+ }, z.core.$strict>>;
12579
+ prices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
12580
+ input: z.ZodNumber;
12581
+ output: z.ZodNumber;
12582
+ }, z.core.$strict>, z.ZodNull]>>>;
12583
+ hide: z.ZodOptional<z.ZodArray<z.ZodString>>;
12584
+ show: z.ZodOptional<z.ZodArray<z.ZodString>>;
12585
+ }, z.core.$strict>>;
12069
12586
  $schema: z.ZodOptional<z.ZodString>;
12070
12587
  extends: z.ZodOptional<z.ZodArray<z.ZodString>>;
12071
12588
  categories: z.ZodOptional<z.ZodPipe<z.ZodObject<{
@@ -12441,6 +12958,7 @@ declare const DoctorFindingSchema: z.ZodObject<{
12441
12958
  "categories-local": "categories-local";
12442
12959
  "active-identity": "active-identity";
12443
12960
  headroom: "headroom";
12961
+ models: "models";
12444
12962
  }>;
12445
12963
  subject: z.ZodOptional<z.ZodString>;
12446
12964
  severity: z.ZodEnum<{
@@ -12472,6 +12990,7 @@ declare const DoctorRunOutputSchema: z.ZodObject<{
12472
12990
  "categories-local": "categories-local";
12473
12991
  "active-identity": "active-identity";
12474
12992
  headroom: "headroom";
12993
+ models: "models";
12475
12994
  }>;
12476
12995
  subject: z.ZodOptional<z.ZodString>;
12477
12996
  severity: z.ZodEnum<{