claude-use 11.32.0 → 11.34.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.
@@ -278,6 +278,7 @@ declare const LaunchSchema: z.ZodObject<{
278
278
  claudeVersion: z.ZodOptional<z.ZodString>;
279
279
  delay: z.ZodOptional<z.ZodString>;
280
280
  pause: z.ZodOptional<z.ZodBoolean>;
281
+ routeByName: z.ZodOptional<z.ZodBoolean>;
281
282
  explain: z.ZodOptional<z.ZodBoolean>;
282
283
  }, z.core.$strict>;
283
284
  type LaunchFlags = z.infer<typeof LaunchSchema>;
@@ -383,7 +384,7 @@ declare const CredentialSchema: z.ZodObject<{
383
384
  }, z.core.$strict>;
384
385
  type Credential = z.infer<typeof CredentialSchema>;
385
386
  /** The kinds of provider: `http` is an Anthropic Messages endpoint at a fixed `baseUrl` (the default when `kind` is absent), and `codex` is ChatGPT's Codex backend reached through agent-shim's own supervised translation daemon. */
386
- declare const PROVIDER_KINDS: readonly ["http", "codex", "antigravity"];
387
+ declare const PROVIDER_KINDS: readonly ["http", "codex", "antigravity", "router"];
387
388
  /**
388
389
  * How an Antigravity provider translates Claude Code's requests and connects to its backend.
389
390
  */
@@ -754,13 +755,72 @@ declare const ProviderSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
754
755
  socketPath: z.ZodOptional<z.ZodString>;
755
756
  }, z.core.$strict>>;
756
757
  }, z.core.$strict>>;
758
+ }, z.core.$strict>, z.ZodObject<{
759
+ $schema: z.ZodOptional<z.ZodString>;
760
+ kind: z.ZodLiteral<"router">;
761
+ displayName: z.ZodString;
757
762
  }, z.core.$strict>], "kind">;
758
763
  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
- */
764
+ /** The global `models` block: the virtual models, the tier pointers, the prices and the visibility filter. */
765
+ declare const ModelsConfigSchema: z.ZodObject<{
766
+ virtual: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
767
+ mode: z.ZodEnum<{
768
+ ordered: "ordered";
769
+ "most-allowance": "most-allowance";
770
+ "soonest-reset": "soonest-reset";
771
+ spread: "spread";
772
+ adaptive: "adaptive";
773
+ "lowest-latency": "lowest-latency";
774
+ "highest-success": "highest-success";
775
+ cheapest: "cheapest";
776
+ }>;
777
+ members: z.ZodArray<z.ZodString>;
778
+ }, z.core.$strict>>>;
779
+ tiers: z.ZodOptional<z.ZodObject<{
780
+ fable: z.ZodOptional<z.ZodString>;
781
+ opus: z.ZodOptional<z.ZodString>;
782
+ sonnet: z.ZodOptional<z.ZodString>;
783
+ haiku: z.ZodOptional<z.ZodString>;
784
+ }, z.core.$strict>>;
785
+ prices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
786
+ input: z.ZodNumber;
787
+ output: z.ZodNumber;
788
+ }, z.core.$strict>>>;
789
+ hide: z.ZodOptional<z.ZodArray<z.ZodString>>;
790
+ show: z.ZodOptional<z.ZodArray<z.ZodString>>;
791
+ }, z.core.$strict>;
792
+ type ModelsConfig = z.infer<typeof ModelsConfigSchema>;
793
+ /**
794
+ * 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.
795
+ */
796
+ declare const ModelsLayerSchema: z.ZodObject<{
797
+ virtual: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
798
+ mode: z.ZodEnum<{
799
+ ordered: "ordered";
800
+ "most-allowance": "most-allowance";
801
+ "soonest-reset": "soonest-reset";
802
+ spread: "spread";
803
+ adaptive: "adaptive";
804
+ "lowest-latency": "lowest-latency";
805
+ "highest-success": "highest-success";
806
+ cheapest: "cheapest";
807
+ }>;
808
+ members: z.ZodArray<z.ZodString>;
809
+ }, z.core.$strict>, z.ZodNull]>>>;
810
+ tiers: z.ZodOptional<z.ZodObject<{
811
+ fable: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
812
+ opus: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
813
+ sonnet: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
814
+ haiku: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
815
+ }, z.core.$strict>>;
816
+ prices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
817
+ input: z.ZodNumber;
818
+ output: z.ZodNumber;
819
+ }, z.core.$strict>, z.ZodNull]>>>;
820
+ hide: z.ZodOptional<z.ZodArray<z.ZodString>>;
821
+ show: z.ZodOptional<z.ZodArray<z.ZodString>>;
822
+ }, z.core.$strict>;
823
+ type ModelsLayer = z.infer<typeof ModelsLayerSchema>;
764
824
  declare const ConfigProfileSchema: z.ZodObject<{
765
825
  $schema: z.ZodOptional<z.ZodString>;
766
826
  description: z.ZodOptional<z.ZodString>;
@@ -862,8 +922,36 @@ declare const ConfigProfileSchema: z.ZodObject<{
862
922
  claudeVersion: z.ZodOptional<z.ZodString>;
863
923
  delay: z.ZodOptional<z.ZodString>;
864
924
  pause: z.ZodOptional<z.ZodBoolean>;
925
+ routeByName: z.ZodOptional<z.ZodBoolean>;
865
926
  explain: z.ZodOptional<z.ZodBoolean>;
866
927
  }, z.core.$strict>>;
928
+ models: z.ZodOptional<z.ZodObject<{
929
+ virtual: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
930
+ mode: z.ZodEnum<{
931
+ ordered: "ordered";
932
+ "most-allowance": "most-allowance";
933
+ "soonest-reset": "soonest-reset";
934
+ spread: "spread";
935
+ adaptive: "adaptive";
936
+ "lowest-latency": "lowest-latency";
937
+ "highest-success": "highest-success";
938
+ cheapest: "cheapest";
939
+ }>;
940
+ members: z.ZodArray<z.ZodString>;
941
+ }, z.core.$strict>, z.ZodNull]>>>;
942
+ tiers: z.ZodOptional<z.ZodObject<{
943
+ fable: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
944
+ opus: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
945
+ sonnet: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
946
+ haiku: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
947
+ }, z.core.$strict>>;
948
+ prices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
949
+ input: z.ZodNumber;
950
+ output: z.ZodNumber;
951
+ }, z.core.$strict>, z.ZodNull]>>>;
952
+ hide: z.ZodOptional<z.ZodArray<z.ZodString>>;
953
+ show: z.ZodOptional<z.ZodArray<z.ZodString>>;
954
+ }, z.core.$strict>>;
867
955
  }, z.core.$strict>;
868
956
  type ConfigProfile = z.infer<typeof ConfigProfileSchema>;
869
957
  /** A pool's own name: the identity alphabet minus `@`, since a pool is never an email address. */
@@ -1047,6 +1135,33 @@ declare const DirectoryRuleSchema: z.ZodObject<{
1047
1135
  key: z.ZodType<trilean.JsonValue, unknown, z.core.$ZodTypeInternals<trilean.JsonValue, unknown>>;
1048
1136
  }, z.core.$strip>], "kind">]>;
1049
1137
  }, z.core.$strict>]>>>;
1138
+ models: z.ZodOptional<z.ZodObject<{
1139
+ virtual: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
1140
+ mode: z.ZodEnum<{
1141
+ ordered: "ordered";
1142
+ "most-allowance": "most-allowance";
1143
+ "soonest-reset": "soonest-reset";
1144
+ spread: "spread";
1145
+ adaptive: "adaptive";
1146
+ "lowest-latency": "lowest-latency";
1147
+ "highest-success": "highest-success";
1148
+ cheapest: "cheapest";
1149
+ }>;
1150
+ members: z.ZodArray<z.ZodString>;
1151
+ }, z.core.$strict>, z.ZodNull]>>>;
1152
+ tiers: z.ZodOptional<z.ZodObject<{
1153
+ fable: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
1154
+ opus: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
1155
+ sonnet: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
1156
+ haiku: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
1157
+ }, z.core.$strict>>;
1158
+ prices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
1159
+ input: z.ZodNumber;
1160
+ output: z.ZodNumber;
1161
+ }, z.core.$strict>, z.ZodNull]>>>;
1162
+ hide: z.ZodOptional<z.ZodArray<z.ZodString>>;
1163
+ show: z.ZodOptional<z.ZodArray<z.ZodString>>;
1164
+ }, z.core.$strict>>;
1050
1165
  $schema: z.ZodOptional<z.ZodString>;
1051
1166
  extends: z.ZodOptional<z.ZodArray<z.ZodString>>;
1052
1167
  categories: z.ZodOptional<z.ZodPipe<z.ZodObject<{
@@ -1071,6 +1186,7 @@ declare const DirectoryRuleSchema: z.ZodObject<{
1071
1186
  claudeVersion: z.ZodOptional<z.ZodString>;
1072
1187
  delay: z.ZodOptional<z.ZodString>;
1073
1188
  pause: z.ZodOptional<z.ZodBoolean>;
1189
+ routeByName: z.ZodOptional<z.ZodBoolean>;
1074
1190
  explain: z.ZodOptional<z.ZodBoolean>;
1075
1191
  }, z.core.$strict>>;
1076
1192
  path: z.ZodString;
@@ -1229,6 +1345,33 @@ declare const DirectoryRulesSchema: z.ZodObject<{
1229
1345
  key: z.ZodType<trilean.JsonValue, unknown, z.core.$ZodTypeInternals<trilean.JsonValue, unknown>>;
1230
1346
  }, z.core.$strip>], "kind">]>;
1231
1347
  }, z.core.$strict>]>>>;
1348
+ models: z.ZodOptional<z.ZodObject<{
1349
+ virtual: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
1350
+ mode: z.ZodEnum<{
1351
+ ordered: "ordered";
1352
+ "most-allowance": "most-allowance";
1353
+ "soonest-reset": "soonest-reset";
1354
+ spread: "spread";
1355
+ adaptive: "adaptive";
1356
+ "lowest-latency": "lowest-latency";
1357
+ "highest-success": "highest-success";
1358
+ cheapest: "cheapest";
1359
+ }>;
1360
+ members: z.ZodArray<z.ZodString>;
1361
+ }, z.core.$strict>, z.ZodNull]>>>;
1362
+ tiers: z.ZodOptional<z.ZodObject<{
1363
+ fable: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
1364
+ opus: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
1365
+ sonnet: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
1366
+ haiku: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
1367
+ }, z.core.$strict>>;
1368
+ prices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
1369
+ input: z.ZodNumber;
1370
+ output: z.ZodNumber;
1371
+ }, z.core.$strict>, z.ZodNull]>>>;
1372
+ hide: z.ZodOptional<z.ZodArray<z.ZodString>>;
1373
+ show: z.ZodOptional<z.ZodArray<z.ZodString>>;
1374
+ }, z.core.$strict>>;
1232
1375
  $schema: z.ZodOptional<z.ZodString>;
1233
1376
  extends: z.ZodOptional<z.ZodArray<z.ZodString>>;
1234
1377
  categories: z.ZodOptional<z.ZodPipe<z.ZodObject<{
@@ -1253,6 +1396,7 @@ declare const DirectoryRulesSchema: z.ZodObject<{
1253
1396
  claudeVersion: z.ZodOptional<z.ZodString>;
1254
1397
  delay: z.ZodOptional<z.ZodString>;
1255
1398
  pause: z.ZodOptional<z.ZodBoolean>;
1399
+ routeByName: z.ZodOptional<z.ZodBoolean>;
1256
1400
  explain: z.ZodOptional<z.ZodBoolean>;
1257
1401
  }, z.core.$strict>>;
1258
1402
  path: z.ZodString;
@@ -1412,6 +1556,33 @@ declare const PortableConfigSchema: z.ZodObject<{
1412
1556
  key: z.ZodType<trilean.JsonValue, unknown, z.core.$ZodTypeInternals<trilean.JsonValue, unknown>>;
1413
1557
  }, z.core.$strip>], "kind">]>;
1414
1558
  }, z.core.$strict>]>>>;
1559
+ models: z.ZodOptional<z.ZodObject<{
1560
+ virtual: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
1561
+ mode: z.ZodEnum<{
1562
+ ordered: "ordered";
1563
+ "most-allowance": "most-allowance";
1564
+ "soonest-reset": "soonest-reset";
1565
+ spread: "spread";
1566
+ adaptive: "adaptive";
1567
+ "lowest-latency": "lowest-latency";
1568
+ "highest-success": "highest-success";
1569
+ cheapest: "cheapest";
1570
+ }>;
1571
+ members: z.ZodArray<z.ZodString>;
1572
+ }, z.core.$strict>, z.ZodNull]>>>;
1573
+ tiers: z.ZodOptional<z.ZodObject<{
1574
+ fable: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
1575
+ opus: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
1576
+ sonnet: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
1577
+ haiku: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
1578
+ }, z.core.$strict>>;
1579
+ prices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
1580
+ input: z.ZodNumber;
1581
+ output: z.ZodNumber;
1582
+ }, z.core.$strict>, z.ZodNull]>>>;
1583
+ hide: z.ZodOptional<z.ZodArray<z.ZodString>>;
1584
+ show: z.ZodOptional<z.ZodArray<z.ZodString>>;
1585
+ }, z.core.$strict>>;
1415
1586
  $schema: z.ZodOptional<z.ZodString>;
1416
1587
  extends: z.ZodOptional<z.ZodArray<z.ZodString>>;
1417
1588
  categories: z.ZodOptional<z.ZodPipe<z.ZodObject<{
@@ -1436,6 +1607,7 @@ declare const PortableConfigSchema: z.ZodObject<{
1436
1607
  claudeVersion: z.ZodOptional<z.ZodString>;
1437
1608
  delay: z.ZodOptional<z.ZodString>;
1438
1609
  pause: z.ZodOptional<z.ZodBoolean>;
1610
+ routeByName: z.ZodOptional<z.ZodBoolean>;
1439
1611
  explain: z.ZodOptional<z.ZodBoolean>;
1440
1612
  }, z.core.$strict>>;
1441
1613
  configProfile: z.ZodOptional<z.ZodString>;
@@ -1542,6 +1714,7 @@ type HeadroomGlobalConfig = z.infer<typeof HeadroomGlobalConfigSchema>;
1542
1714
  declare const UPDATE_MODES: readonly ["off", "notify", "auto"];
1543
1715
  type UpdateMode = (typeof UPDATE_MODES)[number];
1544
1716
  /** The user-global `~/.agent-shim/config.json`. */
1717
+ /** The selection modes a virtual model can choose its member by; the engine in `src/selection/engine.ts` implements each one. */
1545
1718
  declare const GlobalConfigSchema: z.ZodObject<{
1546
1719
  $schema: z.ZodOptional<z.ZodString>;
1547
1720
  defaultConfigProfile: z.ZodOptional<z.ZodString>;
@@ -1643,6 +1816,7 @@ declare const GlobalConfigSchema: z.ZodObject<{
1643
1816
  claudeVersion: z.ZodOptional<z.ZodString>;
1644
1817
  delay: z.ZodOptional<z.ZodString>;
1645
1818
  pause: z.ZodOptional<z.ZodBoolean>;
1819
+ routeByName: z.ZodOptional<z.ZodBoolean>;
1646
1820
  explain: z.ZodOptional<z.ZodBoolean>;
1647
1821
  }, z.core.$strict>>;
1648
1822
  headroom: z.ZodOptional<z.ZodObject<{
@@ -1760,6 +1934,33 @@ declare const GlobalConfigSchema: z.ZodObject<{
1760
1934
  compactBeforeLimit: z.ZodOptional<z.ZodBoolean>;
1761
1935
  compactAtUtilisation: z.ZodOptional<z.ZodNumber>;
1762
1936
  }, z.core.$strict>>>;
1937
+ models: z.ZodOptional<z.ZodObject<{
1938
+ virtual: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
1939
+ mode: z.ZodEnum<{
1940
+ ordered: "ordered";
1941
+ "most-allowance": "most-allowance";
1942
+ "soonest-reset": "soonest-reset";
1943
+ spread: "spread";
1944
+ adaptive: "adaptive";
1945
+ "lowest-latency": "lowest-latency";
1946
+ "highest-success": "highest-success";
1947
+ cheapest: "cheapest";
1948
+ }>;
1949
+ members: z.ZodArray<z.ZodString>;
1950
+ }, z.core.$strict>>>;
1951
+ tiers: z.ZodOptional<z.ZodObject<{
1952
+ fable: z.ZodOptional<z.ZodString>;
1953
+ opus: z.ZodOptional<z.ZodString>;
1954
+ sonnet: z.ZodOptional<z.ZodString>;
1955
+ haiku: z.ZodOptional<z.ZodString>;
1956
+ }, z.core.$strict>>;
1957
+ prices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
1958
+ input: z.ZodNumber;
1959
+ output: z.ZodNumber;
1960
+ }, z.core.$strict>>>;
1961
+ hide: z.ZodOptional<z.ZodArray<z.ZodString>>;
1962
+ show: z.ZodOptional<z.ZodArray<z.ZodString>>;
1963
+ }, z.core.$strict>>;
1763
1964
  jobs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
1764
1965
  target: z.ZodUnion<readonly [z.ZodObject<{
1765
1966
  identity: z.ZodString;
@@ -2028,6 +2229,8 @@ interface Layer {
2028
2229
  /** The entries object's own key insertion order, from `src/config/load.ts`. Falls back to `Object.keys(entries)` when absent. */
2029
2230
  readonly entryOrder?: readonly string[];
2030
2231
  readonly launch?: LaunchFlags;
2232
+ /** The models this layer contributes: definitions merge per name with the shallower layers, and a `null` removes what they set. */
2233
+ readonly models?: ModelsLayer;
2031
2234
  }
2032
2235
  /** Facts about one entry under `~/.claude`, relative to `~/.claude` itself. */
2033
2236
  interface EntryFact {
@@ -2129,6 +2332,8 @@ interface FlattenedCascade {
2129
2332
  readonly rules: ReadonlyMap<string, CompiledRule>;
2130
2333
  /** Launch flags, last layer wins per field. */
2131
2334
  readonly launch: LaunchFlags;
2335
+ /** 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. */
2336
+ readonly models?: ModelsConfig;
2132
2337
  readonly diagnostics: readonly Diagnostic[];
2133
2338
  }
2134
2339
 
@@ -2233,6 +2438,7 @@ interface CascadeInput {
2233
2438
  readonly entries?: Layer["entries"];
2234
2439
  readonly entryOrder?: readonly string[];
2235
2440
  readonly launch?: Layer["launch"];
2441
+ readonly models?: Layer["models"];
2236
2442
  };
2237
2443
  }
2238
2444
  /** The assembled cascade: an ordered layer sequence plus what the walk itself decided. */
@@ -4540,7 +4746,7 @@ declare const CheckReportJsonSchema: z.ZodObject<{
4540
4746
  }>;
4541
4747
  provider: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
4542
4748
  name: z.ZodString;
4543
- credential: z.ZodObject<{
4749
+ credential: z.ZodOptional<z.ZodObject<{
4544
4750
  target: z.ZodEnum<{
4545
4751
  apiKey: "apiKey";
4546
4752
  bearer: "bearer";
@@ -4572,7 +4778,7 @@ declare const CheckReportJsonSchema: z.ZodObject<{
4572
4778
  keychain: "keychain";
4573
4779
  }>>;
4574
4780
  }, z.core.$strict>>;
4575
- }, z.core.$strict>;
4781
+ }, z.core.$strict>>;
4576
4782
  cached: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
4577
4783
  store: z.ZodEnum<{
4578
4784
  file: "file";
@@ -4980,7 +5186,7 @@ interface CredentialReport {
4980
5186
  /** The selected provider's usable block (with what its cache holds), or why it could not be used; the two never appear together, exactly as `CheckProviderInput` states it. */
4981
5187
  readonly provider?: {
4982
5188
  readonly name: string;
4983
- readonly credential: CredentialSummary;
5189
+ readonly credential?: CredentialSummary;
4984
5190
  readonly cached?: CachedCredentialState;
4985
5191
  readonly problem?: never;
4986
5192
  } | {
@@ -5308,7 +5514,7 @@ type ClaudeBinaryResolver = (request?: Readonly<ClaudeBinaryRequest>) => Discove
5308
5514
 
5309
5515
  declare const DOCTOR_SEVERITIES: readonly ["pass", "warn", "fail"];
5310
5516
  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"];
5517
+ 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
5518
  type DoctorSection = (typeof DOCTOR_SECTIONS)[number];
5313
5519
  /** 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
5520
  interface DoctorFinding {
@@ -5384,6 +5590,8 @@ interface RunDoctorParams {
5384
5590
  readonly providers: readonly DoctorProviderInput[];
5385
5591
  readonly directoryRules: DoctorFileInput;
5386
5592
  readonly globalConfig: DoctorFileInput;
5593
+ /** The parsed `models` block of the global config, when one is defined. Omit to skip the models checks. */
5594
+ readonly models?: ModelsConfig;
5387
5595
  readonly categoriesLocal: DoctorFileInput;
5388
5596
  readonly activeIdentity: DoctorFileInput;
5389
5597
  readonly binaryDiscovery: DoctorBinaryDiscovery;
@@ -5417,13 +5625,6 @@ interface RunDoctorParams {
5417
5625
  readonly listeners?: readonly FrontDoorListenerReading[];
5418
5626
  };
5419
5627
  }
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
5628
  declare function runDoctor(params: RunDoctorParams): DoctorReport;
5428
5629
  /** Renders a full `DoctorReport` as plain text lines, one section header at a time, in the order `agent-shim doctor` prints them. */
5429
5630
  declare function formatDoctorReport(report: DoctorReport): string[];
@@ -5973,6 +6174,33 @@ declare function createConfigApiRouter(deps: ConfigApiDeps): {
5973
6174
  }, zod_v4_core.$strip>], "kind">]>;
5974
6175
  }, zod_v4_core.$strict>]>>>;
5975
6176
  description: zod.ZodOptional<zod.ZodString>;
6177
+ models: zod.ZodOptional<zod.ZodObject<{
6178
+ virtual: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
6179
+ mode: zod.ZodEnum<{
6180
+ ordered: "ordered";
6181
+ "most-allowance": "most-allowance";
6182
+ "soonest-reset": "soonest-reset";
6183
+ spread: "spread";
6184
+ adaptive: "adaptive";
6185
+ "lowest-latency": "lowest-latency";
6186
+ "highest-success": "highest-success";
6187
+ cheapest: "cheapest";
6188
+ }>;
6189
+ members: zod.ZodArray<zod.ZodString>;
6190
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
6191
+ tiers: zod.ZodOptional<zod.ZodObject<{
6192
+ fable: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
6193
+ opus: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
6194
+ sonnet: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
6195
+ haiku: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
6196
+ }, zod_v4_core.$strict>>;
6197
+ prices: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
6198
+ input: zod.ZodNumber;
6199
+ output: zod.ZodNumber;
6200
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
6201
+ hide: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
6202
+ show: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
6203
+ }, zod_v4_core.$strict>>;
5976
6204
  extends: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
5977
6205
  categories: zod.ZodOptional<zod.ZodPipe<zod.ZodObject<{
5978
6206
  all: zod.ZodOptional<zod.ZodBoolean>;
@@ -5996,6 +6224,7 @@ declare function createConfigApiRouter(deps: ConfigApiDeps): {
5996
6224
  claudeVersion: zod.ZodOptional<zod.ZodString>;
5997
6225
  delay: zod.ZodOptional<zod.ZodString>;
5998
6226
  pause: zod.ZodOptional<zod.ZodBoolean>;
6227
+ routeByName: zod.ZodOptional<zod.ZodBoolean>;
5999
6228
  explain: zod.ZodOptional<zod.ZodBoolean>;
6000
6229
  }, zod_v4_core.$strict>>;
6001
6230
  }, zod_v4_core.$strict>;
@@ -6098,6 +6327,33 @@ declare function createConfigApiRouter(deps: ConfigApiDeps): {
6098
6327
  }, zod_v4_core.$strip>], "kind">]>;
6099
6328
  }, zod_v4_core.$strict>]>>>;
6100
6329
  description: zod.ZodOptional<zod.ZodString>;
6330
+ models: zod.ZodOptional<zod.ZodObject<{
6331
+ virtual: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
6332
+ mode: zod.ZodEnum<{
6333
+ ordered: "ordered";
6334
+ "most-allowance": "most-allowance";
6335
+ "soonest-reset": "soonest-reset";
6336
+ spread: "spread";
6337
+ adaptive: "adaptive";
6338
+ "lowest-latency": "lowest-latency";
6339
+ "highest-success": "highest-success";
6340
+ cheapest: "cheapest";
6341
+ }>;
6342
+ members: zod.ZodArray<zod.ZodString>;
6343
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
6344
+ tiers: zod.ZodOptional<zod.ZodObject<{
6345
+ fable: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
6346
+ opus: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
6347
+ sonnet: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
6348
+ haiku: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
6349
+ }, zod_v4_core.$strict>>;
6350
+ prices: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
6351
+ input: zod.ZodNumber;
6352
+ output: zod.ZodNumber;
6353
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
6354
+ hide: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
6355
+ show: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
6356
+ }, zod_v4_core.$strict>>;
6101
6357
  extends: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
6102
6358
  categories: zod.ZodOptional<zod.ZodPipe<zod.ZodObject<{
6103
6359
  all: zod.ZodOptional<zod.ZodBoolean>;
@@ -6121,6 +6377,7 @@ declare function createConfigApiRouter(deps: ConfigApiDeps): {
6121
6377
  claudeVersion: zod.ZodOptional<zod.ZodString>;
6122
6378
  delay: zod.ZodOptional<zod.ZodString>;
6123
6379
  pause: zod.ZodOptional<zod.ZodBoolean>;
6380
+ routeByName: zod.ZodOptional<zod.ZodBoolean>;
6124
6381
  explain: zod.ZodOptional<zod.ZodBoolean>;
6125
6382
  }, zod_v4_core.$strict>>;
6126
6383
  }, zod_v4_core.$strict>;
@@ -6363,6 +6620,7 @@ declare function createConfigApiRouter(deps: ConfigApiDeps): {
6363
6620
  http: "http";
6364
6621
  codex: "codex";
6365
6622
  antigravity: "antigravity";
6623
+ router: "router";
6366
6624
  }>>;
6367
6625
  displayName: zod.ZodString;
6368
6626
  baseUrl: zod.ZodOptional<zod.ZodString>;
@@ -6426,6 +6684,7 @@ declare function createConfigApiRouter(deps: ConfigApiDeps): {
6426
6684
  http: "http";
6427
6685
  codex: "codex";
6428
6686
  antigravity: "antigravity";
6687
+ router: "router";
6429
6688
  }>;
6430
6689
  displayName: zod.ZodString;
6431
6690
  baseUrl: zod.ZodOptional<zod.ZodString>;
@@ -6448,7 +6707,7 @@ declare function createConfigApiRouter(deps: ConfigApiDeps): {
6448
6707
  "chatgpt-sign-in": "chatgpt-sign-in";
6449
6708
  }>>;
6450
6709
  }, zod_v4_core.$strict>>;
6451
- credential: zod.ZodObject<{
6710
+ credential: zod.ZodOptional<zod.ZodObject<{
6452
6711
  target: zod.ZodEnum<{
6453
6712
  apiKey: "apiKey";
6454
6713
  bearer: "bearer";
@@ -6480,7 +6739,7 @@ declare function createConfigApiRouter(deps: ConfigApiDeps): {
6480
6739
  keychain: "keychain";
6481
6740
  }>>;
6482
6741
  }, zod_v4_core.$strict>>;
6483
- }, zod_v4_core.$strict>;
6742
+ }, zod_v4_core.$strict>>;
6484
6743
  env: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodString>>;
6485
6744
  }, zod_v4_core.$strict>;
6486
6745
  }, zod_v4_core.$strict>, MergedErrorMap<$ErrorMap, TErrorMap>>;
@@ -6548,6 +6807,7 @@ declare function createConfigApiRouter(deps: ConfigApiDeps): {
6548
6807
  http: "http";
6549
6808
  codex: "codex";
6550
6809
  antigravity: "antigravity";
6810
+ router: "router";
6551
6811
  }>;
6552
6812
  displayName: zod.ZodString;
6553
6813
  baseUrl: zod.ZodOptional<zod.ZodString>;
@@ -6570,7 +6830,7 @@ declare function createConfigApiRouter(deps: ConfigApiDeps): {
6570
6830
  "chatgpt-sign-in": "chatgpt-sign-in";
6571
6831
  }>>;
6572
6832
  }, zod_v4_core.$strict>>;
6573
- credential: zod.ZodObject<{
6833
+ credential: zod.ZodOptional<zod.ZodObject<{
6574
6834
  target: zod.ZodEnum<{
6575
6835
  apiKey: "apiKey";
6576
6836
  bearer: "bearer";
@@ -6602,7 +6862,7 @@ declare function createConfigApiRouter(deps: ConfigApiDeps): {
6602
6862
  keychain: "keychain";
6603
6863
  }>>;
6604
6864
  }, zod_v4_core.$strict>>;
6605
- }, zod_v4_core.$strict>;
6865
+ }, zod_v4_core.$strict>>;
6606
6866
  env: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodString>>;
6607
6867
  }, zod_v4_core.$strict>;
6608
6868
  }, zod_v4_core.$strict>, MergedErrorMap<$ErrorMap, TErrorMap>>;
@@ -6700,6 +6960,33 @@ declare function createConfigApiRouter(deps: ConfigApiDeps): {
6700
6960
  key: zod.ZodType<trilean.JsonValue, unknown, zod_v4_core.$ZodTypeInternals<trilean.JsonValue, unknown>>;
6701
6961
  }, zod_v4_core.$strip>], "kind">]>;
6702
6962
  }, zod_v4_core.$strict>]>>>;
6963
+ models: zod.ZodOptional<zod.ZodObject<{
6964
+ virtual: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
6965
+ mode: zod.ZodEnum<{
6966
+ ordered: "ordered";
6967
+ "most-allowance": "most-allowance";
6968
+ "soonest-reset": "soonest-reset";
6969
+ spread: "spread";
6970
+ adaptive: "adaptive";
6971
+ "lowest-latency": "lowest-latency";
6972
+ "highest-success": "highest-success";
6973
+ cheapest: "cheapest";
6974
+ }>;
6975
+ members: zod.ZodArray<zod.ZodString>;
6976
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
6977
+ tiers: zod.ZodOptional<zod.ZodObject<{
6978
+ fable: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
6979
+ opus: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
6980
+ sonnet: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
6981
+ haiku: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
6982
+ }, zod_v4_core.$strict>>;
6983
+ prices: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
6984
+ input: zod.ZodNumber;
6985
+ output: zod.ZodNumber;
6986
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
6987
+ hide: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
6988
+ show: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
6989
+ }, zod_v4_core.$strict>>;
6703
6990
  $schema: zod.ZodOptional<zod.ZodString>;
6704
6991
  extends: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
6705
6992
  categories: zod.ZodOptional<zod.ZodPipe<zod.ZodObject<{
@@ -6724,6 +7011,7 @@ declare function createConfigApiRouter(deps: ConfigApiDeps): {
6724
7011
  claudeVersion: zod.ZodOptional<zod.ZodString>;
6725
7012
  delay: zod.ZodOptional<zod.ZodString>;
6726
7013
  pause: zod.ZodOptional<zod.ZodBoolean>;
7014
+ routeByName: zod.ZodOptional<zod.ZodBoolean>;
6727
7015
  explain: zod.ZodOptional<zod.ZodBoolean>;
6728
7016
  }, zod_v4_core.$strict>>;
6729
7017
  path: zod.ZodString;
@@ -6887,6 +7175,33 @@ declare function createConfigApiRouter(deps: ConfigApiDeps): {
6887
7175
  key: zod.ZodType<trilean.JsonValue, unknown, zod_v4_core.$ZodTypeInternals<trilean.JsonValue, unknown>>;
6888
7176
  }, zod_v4_core.$strip>], "kind">]>;
6889
7177
  }, zod_v4_core.$strict>]>>>;
7178
+ models: zod.ZodOptional<zod.ZodObject<{
7179
+ virtual: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
7180
+ mode: zod.ZodEnum<{
7181
+ ordered: "ordered";
7182
+ "most-allowance": "most-allowance";
7183
+ "soonest-reset": "soonest-reset";
7184
+ spread: "spread";
7185
+ adaptive: "adaptive";
7186
+ "lowest-latency": "lowest-latency";
7187
+ "highest-success": "highest-success";
7188
+ cheapest: "cheapest";
7189
+ }>;
7190
+ members: zod.ZodArray<zod.ZodString>;
7191
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
7192
+ tiers: zod.ZodOptional<zod.ZodObject<{
7193
+ fable: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
7194
+ opus: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
7195
+ sonnet: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
7196
+ haiku: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
7197
+ }, zod_v4_core.$strict>>;
7198
+ prices: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
7199
+ input: zod.ZodNumber;
7200
+ output: zod.ZodNumber;
7201
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
7202
+ hide: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
7203
+ show: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
7204
+ }, zod_v4_core.$strict>>;
6890
7205
  $schema: zod.ZodOptional<zod.ZodString>;
6891
7206
  extends: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
6892
7207
  categories: zod.ZodOptional<zod.ZodPipe<zod.ZodObject<{
@@ -6911,6 +7226,7 @@ declare function createConfigApiRouter(deps: ConfigApiDeps): {
6911
7226
  claudeVersion: zod.ZodOptional<zod.ZodString>;
6912
7227
  delay: zod.ZodOptional<zod.ZodString>;
6913
7228
  pause: zod.ZodOptional<zod.ZodBoolean>;
7229
+ routeByName: zod.ZodOptional<zod.ZodBoolean>;
6914
7230
  explain: zod.ZodOptional<zod.ZodBoolean>;
6915
7231
  }, zod_v4_core.$strict>>;
6916
7232
  path: zod.ZodString;
@@ -8272,7 +8588,7 @@ declare function createControlApiRouter(deps: ControlApiDeps): {
8272
8588
  }>;
8273
8589
  provider: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodObject<{
8274
8590
  name: zod.ZodString;
8275
- credential: zod.ZodObject<{
8591
+ credential: zod.ZodOptional<zod.ZodObject<{
8276
8592
  target: zod.ZodEnum<{
8277
8593
  apiKey: "apiKey";
8278
8594
  bearer: "bearer";
@@ -8304,7 +8620,7 @@ declare function createControlApiRouter(deps: ControlApiDeps): {
8304
8620
  keychain: "keychain";
8305
8621
  }>>;
8306
8622
  }, zod_v4_core.$strict>>;
8307
- }, zod_v4_core.$strict>;
8623
+ }, zod_v4_core.$strict>>;
8308
8624
  cached: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodObject<{
8309
8625
  store: zod.ZodEnum<{
8310
8626
  file: "file";
@@ -8430,6 +8746,7 @@ declare function createControlApiRouter(deps: ControlApiDeps): {
8430
8746
  "categories-local": "categories-local";
8431
8747
  "active-identity": "active-identity";
8432
8748
  headroom: "headroom";
8749
+ models: "models";
8433
8750
  }>;
8434
8751
  subject: zod.ZodOptional<zod.ZodString>;
8435
8752
  severity: zod.ZodEnum<{
@@ -9004,6 +9321,33 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
9004
9321
  }, zod_v4_core.$strip>], "kind">]>;
9005
9322
  }, zod_v4_core.$strict>]>>>;
9006
9323
  description: zod.ZodOptional<zod.ZodString>;
9324
+ models: zod.ZodOptional<zod.ZodObject<{
9325
+ virtual: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
9326
+ mode: zod.ZodEnum<{
9327
+ ordered: "ordered";
9328
+ "most-allowance": "most-allowance";
9329
+ "soonest-reset": "soonest-reset";
9330
+ spread: "spread";
9331
+ adaptive: "adaptive";
9332
+ "lowest-latency": "lowest-latency";
9333
+ "highest-success": "highest-success";
9334
+ cheapest: "cheapest";
9335
+ }>;
9336
+ members: zod.ZodArray<zod.ZodString>;
9337
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
9338
+ tiers: zod.ZodOptional<zod.ZodObject<{
9339
+ fable: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
9340
+ opus: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
9341
+ sonnet: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
9342
+ haiku: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
9343
+ }, zod_v4_core.$strict>>;
9344
+ prices: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
9345
+ input: zod.ZodNumber;
9346
+ output: zod.ZodNumber;
9347
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
9348
+ hide: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
9349
+ show: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
9350
+ }, zod_v4_core.$strict>>;
9007
9351
  extends: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
9008
9352
  categories: zod.ZodOptional<zod.ZodPipe<zod.ZodObject<{
9009
9353
  all: zod.ZodOptional<zod.ZodBoolean>;
@@ -9027,6 +9371,7 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
9027
9371
  claudeVersion: zod.ZodOptional<zod.ZodString>;
9028
9372
  delay: zod.ZodOptional<zod.ZodString>;
9029
9373
  pause: zod.ZodOptional<zod.ZodBoolean>;
9374
+ routeByName: zod.ZodOptional<zod.ZodBoolean>;
9030
9375
  explain: zod.ZodOptional<zod.ZodBoolean>;
9031
9376
  }, zod_v4_core.$strict>>;
9032
9377
  }, zod_v4_core.$strict>;
@@ -9129,6 +9474,33 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
9129
9474
  }, zod_v4_core.$strip>], "kind">]>;
9130
9475
  }, zod_v4_core.$strict>]>>>;
9131
9476
  description: zod.ZodOptional<zod.ZodString>;
9477
+ models: zod.ZodOptional<zod.ZodObject<{
9478
+ virtual: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
9479
+ mode: zod.ZodEnum<{
9480
+ ordered: "ordered";
9481
+ "most-allowance": "most-allowance";
9482
+ "soonest-reset": "soonest-reset";
9483
+ spread: "spread";
9484
+ adaptive: "adaptive";
9485
+ "lowest-latency": "lowest-latency";
9486
+ "highest-success": "highest-success";
9487
+ cheapest: "cheapest";
9488
+ }>;
9489
+ members: zod.ZodArray<zod.ZodString>;
9490
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
9491
+ tiers: zod.ZodOptional<zod.ZodObject<{
9492
+ fable: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
9493
+ opus: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
9494
+ sonnet: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
9495
+ haiku: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
9496
+ }, zod_v4_core.$strict>>;
9497
+ prices: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
9498
+ input: zod.ZodNumber;
9499
+ output: zod.ZodNumber;
9500
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
9501
+ hide: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
9502
+ show: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
9503
+ }, zod_v4_core.$strict>>;
9132
9504
  extends: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
9133
9505
  categories: zod.ZodOptional<zod.ZodPipe<zod.ZodObject<{
9134
9506
  all: zod.ZodOptional<zod.ZodBoolean>;
@@ -9152,6 +9524,7 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
9152
9524
  claudeVersion: zod.ZodOptional<zod.ZodString>;
9153
9525
  delay: zod.ZodOptional<zod.ZodString>;
9154
9526
  pause: zod.ZodOptional<zod.ZodBoolean>;
9527
+ routeByName: zod.ZodOptional<zod.ZodBoolean>;
9155
9528
  explain: zod.ZodOptional<zod.ZodBoolean>;
9156
9529
  }, zod_v4_core.$strict>>;
9157
9530
  }, zod_v4_core.$strict>;
@@ -9394,6 +9767,7 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
9394
9767
  http: "http";
9395
9768
  codex: "codex";
9396
9769
  antigravity: "antigravity";
9770
+ router: "router";
9397
9771
  }>>;
9398
9772
  displayName: zod.ZodString;
9399
9773
  baseUrl: zod.ZodOptional<zod.ZodString>;
@@ -9457,6 +9831,7 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
9457
9831
  http: "http";
9458
9832
  codex: "codex";
9459
9833
  antigravity: "antigravity";
9834
+ router: "router";
9460
9835
  }>;
9461
9836
  displayName: zod.ZodString;
9462
9837
  baseUrl: zod.ZodOptional<zod.ZodString>;
@@ -9479,7 +9854,7 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
9479
9854
  "chatgpt-sign-in": "chatgpt-sign-in";
9480
9855
  }>>;
9481
9856
  }, zod_v4_core.$strict>>;
9482
- credential: zod.ZodObject<{
9857
+ credential: zod.ZodOptional<zod.ZodObject<{
9483
9858
  target: zod.ZodEnum<{
9484
9859
  apiKey: "apiKey";
9485
9860
  bearer: "bearer";
@@ -9511,7 +9886,7 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
9511
9886
  keychain: "keychain";
9512
9887
  }>>;
9513
9888
  }, zod_v4_core.$strict>>;
9514
- }, zod_v4_core.$strict>;
9889
+ }, zod_v4_core.$strict>>;
9515
9890
  env: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodString>>;
9516
9891
  }, zod_v4_core.$strict>;
9517
9892
  }, zod_v4_core.$strict>, MergedErrorMap<$ErrorMap, TErrorMap>>;
@@ -9579,6 +9954,7 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
9579
9954
  http: "http";
9580
9955
  codex: "codex";
9581
9956
  antigravity: "antigravity";
9957
+ router: "router";
9582
9958
  }>;
9583
9959
  displayName: zod.ZodString;
9584
9960
  baseUrl: zod.ZodOptional<zod.ZodString>;
@@ -9601,7 +9977,7 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
9601
9977
  "chatgpt-sign-in": "chatgpt-sign-in";
9602
9978
  }>>;
9603
9979
  }, zod_v4_core.$strict>>;
9604
- credential: zod.ZodObject<{
9980
+ credential: zod.ZodOptional<zod.ZodObject<{
9605
9981
  target: zod.ZodEnum<{
9606
9982
  apiKey: "apiKey";
9607
9983
  bearer: "bearer";
@@ -9633,7 +10009,7 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
9633
10009
  keychain: "keychain";
9634
10010
  }>>;
9635
10011
  }, zod_v4_core.$strict>>;
9636
- }, zod_v4_core.$strict>;
10012
+ }, zod_v4_core.$strict>>;
9637
10013
  env: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodString>>;
9638
10014
  }, zod_v4_core.$strict>;
9639
10015
  }, zod_v4_core.$strict>, MergedErrorMap<$ErrorMap, TErrorMap>>;
@@ -9731,6 +10107,33 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
9731
10107
  key: zod.ZodType<trilean.JsonValue, unknown, zod_v4_core.$ZodTypeInternals<trilean.JsonValue, unknown>>;
9732
10108
  }, zod_v4_core.$strip>], "kind">]>;
9733
10109
  }, zod_v4_core.$strict>]>>>;
10110
+ models: zod.ZodOptional<zod.ZodObject<{
10111
+ virtual: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
10112
+ mode: zod.ZodEnum<{
10113
+ ordered: "ordered";
10114
+ "most-allowance": "most-allowance";
10115
+ "soonest-reset": "soonest-reset";
10116
+ spread: "spread";
10117
+ adaptive: "adaptive";
10118
+ "lowest-latency": "lowest-latency";
10119
+ "highest-success": "highest-success";
10120
+ cheapest: "cheapest";
10121
+ }>;
10122
+ members: zod.ZodArray<zod.ZodString>;
10123
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
10124
+ tiers: zod.ZodOptional<zod.ZodObject<{
10125
+ fable: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
10126
+ opus: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
10127
+ sonnet: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
10128
+ haiku: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
10129
+ }, zod_v4_core.$strict>>;
10130
+ prices: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
10131
+ input: zod.ZodNumber;
10132
+ output: zod.ZodNumber;
10133
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
10134
+ hide: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
10135
+ show: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
10136
+ }, zod_v4_core.$strict>>;
9734
10137
  $schema: zod.ZodOptional<zod.ZodString>;
9735
10138
  extends: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
9736
10139
  categories: zod.ZodOptional<zod.ZodPipe<zod.ZodObject<{
@@ -9755,6 +10158,7 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
9755
10158
  claudeVersion: zod.ZodOptional<zod.ZodString>;
9756
10159
  delay: zod.ZodOptional<zod.ZodString>;
9757
10160
  pause: zod.ZodOptional<zod.ZodBoolean>;
10161
+ routeByName: zod.ZodOptional<zod.ZodBoolean>;
9758
10162
  explain: zod.ZodOptional<zod.ZodBoolean>;
9759
10163
  }, zod_v4_core.$strict>>;
9760
10164
  path: zod.ZodString;
@@ -9918,6 +10322,33 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
9918
10322
  key: zod.ZodType<trilean.JsonValue, unknown, zod_v4_core.$ZodTypeInternals<trilean.JsonValue, unknown>>;
9919
10323
  }, zod_v4_core.$strip>], "kind">]>;
9920
10324
  }, zod_v4_core.$strict>]>>>;
10325
+ models: zod.ZodOptional<zod.ZodObject<{
10326
+ virtual: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
10327
+ mode: zod.ZodEnum<{
10328
+ ordered: "ordered";
10329
+ "most-allowance": "most-allowance";
10330
+ "soonest-reset": "soonest-reset";
10331
+ spread: "spread";
10332
+ adaptive: "adaptive";
10333
+ "lowest-latency": "lowest-latency";
10334
+ "highest-success": "highest-success";
10335
+ cheapest: "cheapest";
10336
+ }>;
10337
+ members: zod.ZodArray<zod.ZodString>;
10338
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
10339
+ tiers: zod.ZodOptional<zod.ZodObject<{
10340
+ fable: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
10341
+ opus: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
10342
+ sonnet: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
10343
+ haiku: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodString, zod.ZodNull]>>;
10344
+ }, zod_v4_core.$strict>>;
10345
+ prices: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnion<readonly [zod.ZodObject<{
10346
+ input: zod.ZodNumber;
10347
+ output: zod.ZodNumber;
10348
+ }, zod_v4_core.$strict>, zod.ZodNull]>>>;
10349
+ hide: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
10350
+ show: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
10351
+ }, zod_v4_core.$strict>>;
9921
10352
  $schema: zod.ZodOptional<zod.ZodString>;
9922
10353
  extends: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
9923
10354
  categories: zod.ZodOptional<zod.ZodPipe<zod.ZodObject<{
@@ -9942,6 +10373,7 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
9942
10373
  claudeVersion: zod.ZodOptional<zod.ZodString>;
9943
10374
  delay: zod.ZodOptional<zod.ZodString>;
9944
10375
  pause: zod.ZodOptional<zod.ZodBoolean>;
10376
+ routeByName: zod.ZodOptional<zod.ZodBoolean>;
9945
10377
  explain: zod.ZodOptional<zod.ZodBoolean>;
9946
10378
  }, zod_v4_core.$strict>>;
9947
10379
  path: zod.ZodString;
@@ -10403,7 +10835,7 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
10403
10835
  }>;
10404
10836
  provider: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodObject<{
10405
10837
  name: zod.ZodString;
10406
- credential: zod.ZodObject<{
10838
+ credential: zod.ZodOptional<zod.ZodObject<{
10407
10839
  target: zod.ZodEnum<{
10408
10840
  apiKey: "apiKey";
10409
10841
  bearer: "bearer";
@@ -10435,7 +10867,7 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
10435
10867
  keychain: "keychain";
10436
10868
  }>>;
10437
10869
  }, zod_v4_core.$strict>>;
10438
- }, zod_v4_core.$strict>;
10870
+ }, zod_v4_core.$strict>>;
10439
10871
  cached: zod.ZodOptional<zod.ZodUnion<readonly [zod.ZodObject<{
10440
10872
  store: zod.ZodEnum<{
10441
10873
  file: "file";
@@ -10561,6 +10993,7 @@ declare function createDoorApiRouter(deps: DoorApiDeps): {
10561
10993
  "categories-local": "categories-local";
10562
10994
  "active-identity": "active-identity";
10563
10995
  headroom: "headroom";
10996
+ models: "models";
10564
10997
  }>;
10565
10998
  subject: zod.ZodOptional<zod.ZodString>;
10566
10999
  severity: zod.ZodEnum<{
@@ -11146,6 +11579,33 @@ declare const ConfigProfileAddOutputSchema: z.ZodObject<{
11146
11579
  }, z.core.$strip>], "kind">]>;
11147
11580
  }, z.core.$strict>]>>>;
11148
11581
  description: z.ZodOptional<z.ZodString>;
11582
+ models: z.ZodOptional<z.ZodObject<{
11583
+ virtual: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
11584
+ mode: z.ZodEnum<{
11585
+ ordered: "ordered";
11586
+ "most-allowance": "most-allowance";
11587
+ "soonest-reset": "soonest-reset";
11588
+ spread: "spread";
11589
+ adaptive: "adaptive";
11590
+ "lowest-latency": "lowest-latency";
11591
+ "highest-success": "highest-success";
11592
+ cheapest: "cheapest";
11593
+ }>;
11594
+ members: z.ZodArray<z.ZodString>;
11595
+ }, z.core.$strict>, z.ZodNull]>>>;
11596
+ tiers: z.ZodOptional<z.ZodObject<{
11597
+ fable: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
11598
+ opus: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
11599
+ sonnet: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
11600
+ haiku: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
11601
+ }, z.core.$strict>>;
11602
+ prices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
11603
+ input: z.ZodNumber;
11604
+ output: z.ZodNumber;
11605
+ }, z.core.$strict>, z.ZodNull]>>>;
11606
+ hide: z.ZodOptional<z.ZodArray<z.ZodString>>;
11607
+ show: z.ZodOptional<z.ZodArray<z.ZodString>>;
11608
+ }, z.core.$strict>>;
11149
11609
  extends: z.ZodOptional<z.ZodArray<z.ZodString>>;
11150
11610
  categories: z.ZodOptional<z.ZodPipe<z.ZodObject<{
11151
11611
  all: z.ZodOptional<z.ZodBoolean>;
@@ -11169,6 +11629,7 @@ declare const ConfigProfileAddOutputSchema: z.ZodObject<{
11169
11629
  claudeVersion: z.ZodOptional<z.ZodString>;
11170
11630
  delay: z.ZodOptional<z.ZodString>;
11171
11631
  pause: z.ZodOptional<z.ZodBoolean>;
11632
+ routeByName: z.ZodOptional<z.ZodBoolean>;
11172
11633
  explain: z.ZodOptional<z.ZodBoolean>;
11173
11634
  }, z.core.$strict>>;
11174
11635
  }, z.core.$strict>;
@@ -11273,6 +11734,33 @@ declare const ConfigProfileSetOutputSchema: z.ZodObject<{
11273
11734
  }, z.core.$strip>], "kind">]>;
11274
11735
  }, z.core.$strict>]>>>;
11275
11736
  description: z.ZodOptional<z.ZodString>;
11737
+ models: z.ZodOptional<z.ZodObject<{
11738
+ virtual: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
11739
+ mode: z.ZodEnum<{
11740
+ ordered: "ordered";
11741
+ "most-allowance": "most-allowance";
11742
+ "soonest-reset": "soonest-reset";
11743
+ spread: "spread";
11744
+ adaptive: "adaptive";
11745
+ "lowest-latency": "lowest-latency";
11746
+ "highest-success": "highest-success";
11747
+ cheapest: "cheapest";
11748
+ }>;
11749
+ members: z.ZodArray<z.ZodString>;
11750
+ }, z.core.$strict>, z.ZodNull]>>>;
11751
+ tiers: z.ZodOptional<z.ZodObject<{
11752
+ fable: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
11753
+ opus: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
11754
+ sonnet: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
11755
+ haiku: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
11756
+ }, z.core.$strict>>;
11757
+ prices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
11758
+ input: z.ZodNumber;
11759
+ output: z.ZodNumber;
11760
+ }, z.core.$strict>, z.ZodNull]>>>;
11761
+ hide: z.ZodOptional<z.ZodArray<z.ZodString>>;
11762
+ show: z.ZodOptional<z.ZodArray<z.ZodString>>;
11763
+ }, z.core.$strict>>;
11276
11764
  extends: z.ZodOptional<z.ZodArray<z.ZodString>>;
11277
11765
  categories: z.ZodOptional<z.ZodPipe<z.ZodObject<{
11278
11766
  all: z.ZodOptional<z.ZodBoolean>;
@@ -11296,6 +11784,7 @@ declare const ConfigProfileSetOutputSchema: z.ZodObject<{
11296
11784
  claudeVersion: z.ZodOptional<z.ZodString>;
11297
11785
  delay: z.ZodOptional<z.ZodString>;
11298
11786
  pause: z.ZodOptional<z.ZodBoolean>;
11787
+ routeByName: z.ZodOptional<z.ZodBoolean>;
11299
11788
  explain: z.ZodOptional<z.ZodBoolean>;
11300
11789
  }, z.core.$strict>>;
11301
11790
  }, z.core.$strict>;
@@ -11536,6 +12025,7 @@ declare const ConfigProviderAddInputSchema: z.ZodObject<{
11536
12025
  http: "http";
11537
12026
  codex: "codex";
11538
12027
  antigravity: "antigravity";
12028
+ router: "router";
11539
12029
  }>>;
11540
12030
  displayName: z.ZodString;
11541
12031
  baseUrl: z.ZodOptional<z.ZodString>;
@@ -11600,6 +12090,7 @@ declare const ConfigProviderAddOutputSchema: z.ZodObject<{
11600
12090
  http: "http";
11601
12091
  codex: "codex";
11602
12092
  antigravity: "antigravity";
12093
+ router: "router";
11603
12094
  }>;
11604
12095
  displayName: z.ZodString;
11605
12096
  baseUrl: z.ZodOptional<z.ZodString>;
@@ -11622,7 +12113,7 @@ declare const ConfigProviderAddOutputSchema: z.ZodObject<{
11622
12113
  "chatgpt-sign-in": "chatgpt-sign-in";
11623
12114
  }>>;
11624
12115
  }, z.core.$strict>>;
11625
- credential: z.ZodObject<{
12116
+ credential: z.ZodOptional<z.ZodObject<{
11626
12117
  target: z.ZodEnum<{
11627
12118
  apiKey: "apiKey";
11628
12119
  bearer: "bearer";
@@ -11654,7 +12145,7 @@ declare const ConfigProviderAddOutputSchema: z.ZodObject<{
11654
12145
  keychain: "keychain";
11655
12146
  }>>;
11656
12147
  }, z.core.$strict>>;
11657
- }, z.core.$strict>;
12148
+ }, z.core.$strict>>;
11658
12149
  env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
11659
12150
  }, z.core.$strict>;
11660
12151
  }, z.core.$strict>;
@@ -11724,6 +12215,7 @@ declare const ConfigProviderSetOutputSchema: z.ZodObject<{
11724
12215
  http: "http";
11725
12216
  codex: "codex";
11726
12217
  antigravity: "antigravity";
12218
+ router: "router";
11727
12219
  }>;
11728
12220
  displayName: z.ZodString;
11729
12221
  baseUrl: z.ZodOptional<z.ZodString>;
@@ -11746,7 +12238,7 @@ declare const ConfigProviderSetOutputSchema: z.ZodObject<{
11746
12238
  "chatgpt-sign-in": "chatgpt-sign-in";
11747
12239
  }>>;
11748
12240
  }, z.core.$strict>>;
11749
- credential: z.ZodObject<{
12241
+ credential: z.ZodOptional<z.ZodObject<{
11750
12242
  target: z.ZodEnum<{
11751
12243
  apiKey: "apiKey";
11752
12244
  bearer: "bearer";
@@ -11778,7 +12270,7 @@ declare const ConfigProviderSetOutputSchema: z.ZodObject<{
11778
12270
  keychain: "keychain";
11779
12271
  }>>;
11780
12272
  }, z.core.$strict>>;
11781
- }, z.core.$strict>;
12273
+ }, z.core.$strict>>;
11782
12274
  env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
11783
12275
  }, z.core.$strict>;
11784
12276
  }, z.core.$strict>;
@@ -11877,6 +12369,33 @@ declare const ConfigRuleAddOutputSchema: z.ZodObject<{
11877
12369
  key: z.ZodType<trilean.JsonValue, unknown, z.core.$ZodTypeInternals<trilean.JsonValue, unknown>>;
11878
12370
  }, z.core.$strip>], "kind">]>;
11879
12371
  }, z.core.$strict>]>>>;
12372
+ models: z.ZodOptional<z.ZodObject<{
12373
+ virtual: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
12374
+ mode: z.ZodEnum<{
12375
+ ordered: "ordered";
12376
+ "most-allowance": "most-allowance";
12377
+ "soonest-reset": "soonest-reset";
12378
+ spread: "spread";
12379
+ adaptive: "adaptive";
12380
+ "lowest-latency": "lowest-latency";
12381
+ "highest-success": "highest-success";
12382
+ cheapest: "cheapest";
12383
+ }>;
12384
+ members: z.ZodArray<z.ZodString>;
12385
+ }, z.core.$strict>, z.ZodNull]>>>;
12386
+ tiers: z.ZodOptional<z.ZodObject<{
12387
+ fable: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
12388
+ opus: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
12389
+ sonnet: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
12390
+ haiku: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
12391
+ }, z.core.$strict>>;
12392
+ prices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
12393
+ input: z.ZodNumber;
12394
+ output: z.ZodNumber;
12395
+ }, z.core.$strict>, z.ZodNull]>>>;
12396
+ hide: z.ZodOptional<z.ZodArray<z.ZodString>>;
12397
+ show: z.ZodOptional<z.ZodArray<z.ZodString>>;
12398
+ }, z.core.$strict>>;
11880
12399
  $schema: z.ZodOptional<z.ZodString>;
11881
12400
  extends: z.ZodOptional<z.ZodArray<z.ZodString>>;
11882
12401
  categories: z.ZodOptional<z.ZodPipe<z.ZodObject<{
@@ -11901,6 +12420,7 @@ declare const ConfigRuleAddOutputSchema: z.ZodObject<{
11901
12420
  claudeVersion: z.ZodOptional<z.ZodString>;
11902
12421
  delay: z.ZodOptional<z.ZodString>;
11903
12422
  pause: z.ZodOptional<z.ZodBoolean>;
12423
+ routeByName: z.ZodOptional<z.ZodBoolean>;
11904
12424
  explain: z.ZodOptional<z.ZodBoolean>;
11905
12425
  }, z.core.$strict>>;
11906
12426
  path: z.ZodString;
@@ -12066,6 +12586,33 @@ declare const ConfigRuleSetOutputSchema: z.ZodObject<{
12066
12586
  key: z.ZodType<trilean.JsonValue, unknown, z.core.$ZodTypeInternals<trilean.JsonValue, unknown>>;
12067
12587
  }, z.core.$strip>], "kind">]>;
12068
12588
  }, z.core.$strict>]>>>;
12589
+ models: z.ZodOptional<z.ZodObject<{
12590
+ virtual: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
12591
+ mode: z.ZodEnum<{
12592
+ ordered: "ordered";
12593
+ "most-allowance": "most-allowance";
12594
+ "soonest-reset": "soonest-reset";
12595
+ spread: "spread";
12596
+ adaptive: "adaptive";
12597
+ "lowest-latency": "lowest-latency";
12598
+ "highest-success": "highest-success";
12599
+ cheapest: "cheapest";
12600
+ }>;
12601
+ members: z.ZodArray<z.ZodString>;
12602
+ }, z.core.$strict>, z.ZodNull]>>>;
12603
+ tiers: z.ZodOptional<z.ZodObject<{
12604
+ fable: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
12605
+ opus: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
12606
+ sonnet: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
12607
+ haiku: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
12608
+ }, z.core.$strict>>;
12609
+ prices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
12610
+ input: z.ZodNumber;
12611
+ output: z.ZodNumber;
12612
+ }, z.core.$strict>, z.ZodNull]>>>;
12613
+ hide: z.ZodOptional<z.ZodArray<z.ZodString>>;
12614
+ show: z.ZodOptional<z.ZodArray<z.ZodString>>;
12615
+ }, z.core.$strict>>;
12069
12616
  $schema: z.ZodOptional<z.ZodString>;
12070
12617
  extends: z.ZodOptional<z.ZodArray<z.ZodString>>;
12071
12618
  categories: z.ZodOptional<z.ZodPipe<z.ZodObject<{
@@ -12090,6 +12637,7 @@ declare const ConfigRuleSetOutputSchema: z.ZodObject<{
12090
12637
  claudeVersion: z.ZodOptional<z.ZodString>;
12091
12638
  delay: z.ZodOptional<z.ZodString>;
12092
12639
  pause: z.ZodOptional<z.ZodBoolean>;
12640
+ routeByName: z.ZodOptional<z.ZodBoolean>;
12093
12641
  explain: z.ZodOptional<z.ZodBoolean>;
12094
12642
  }, z.core.$strict>>;
12095
12643
  path: z.ZodString;
@@ -12441,6 +12989,7 @@ declare const DoctorFindingSchema: z.ZodObject<{
12441
12989
  "categories-local": "categories-local";
12442
12990
  "active-identity": "active-identity";
12443
12991
  headroom: "headroom";
12992
+ models: "models";
12444
12993
  }>;
12445
12994
  subject: z.ZodOptional<z.ZodString>;
12446
12995
  severity: z.ZodEnum<{
@@ -12472,6 +13021,7 @@ declare const DoctorRunOutputSchema: z.ZodObject<{
12472
13021
  "categories-local": "categories-local";
12473
13022
  "active-identity": "active-identity";
12474
13023
  headroom: "headroom";
13024
+ models: "models";
12475
13025
  }>;
12476
13026
  subject: z.ZodOptional<z.ZodString>;
12477
13027
  severity: z.ZodEnum<{