claude-use 11.17.1 → 11.18.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.
- package/dist/cli.cjs +43 -12
- package/dist/index.cjs +6 -4
- package/dist/index.mjs +6 -4
- package/dist/types/index.d.ts +2 -0
- package/package.json +1 -1
package/dist/cli.cjs
CHANGED
|
@@ -27012,10 +27012,10 @@ var init_schema = __esm({
|
|
|
27012
27012
|
ANTIGRAVITY_DEFAULT_MODE = "cloud";
|
|
27013
27013
|
ANTIGRAVITY_DEFAULT_MODEL = "gemini-3.8-flash-high";
|
|
27014
27014
|
ANTIGRAVITY_DEFAULT_TIER_MODELS = Object.freeze({
|
|
27015
|
-
fable: ["
|
|
27015
|
+
fable: ["gemini-4-argon-high", "claude-opus-5-5-high", "gemini-3.8-flash-high"],
|
|
27016
27016
|
opus: ["claude-opus-5-5-high", "gemini-4-argon-high", "gemini-3.8-flash-high"],
|
|
27017
27017
|
sonnet: ["claude-sonnet-5-5-medium", "gemini-4-argon-medium", "gemini-3.8-flash-medium"],
|
|
27018
|
-
haiku: ["gemini-3.8-flash-low", "gemini-4-argon-low", "
|
|
27018
|
+
haiku: ["gemini-3.8-flash-low", "gemini-4-argon-low", "claude-sonnet-5-5-low"]
|
|
27019
27019
|
});
|
|
27020
27020
|
ANTIGRAVITY_DEFAULT_EFFORT = "low";
|
|
27021
27021
|
AntigravityModelTargetSchema = external_exports.union([external_exports.string().min(1), external_exports.array(external_exports.string().min(1)).min(1)]);
|
|
@@ -27026,6 +27026,8 @@ var init_schema = __esm({
|
|
|
27026
27026
|
defaultModel: external_exports.string().min(1).optional(),
|
|
27027
27027
|
/** Model name mapping. A key naming a tier (`fable`, `opus`, `sonnet`, `haiku`) overrides that tier's shipped model and is matched by substring of the requested name in `ANTIGRAVITY_TIERS` order; any other key is an alias, matched against the whole requested name case-insensitively, so `/model <alias>` selects its backend model. An alias outranks every other rule, including the pass-through of backend names. A value is one model or an ordered list of candidates: the request goes to the first whose quota windows are not spent, and when every candidate is spent, to the one whose binding window lifts soonest. */
|
|
27028
27028
|
models: external_exports.record(external_exports.string().min(1), AntigravityModelTargetSchema).optional(),
|
|
27029
|
+
/** When every candidate of the tier a request names has no quota left, serve it from the next tier down, and onward through the lower tiers, instead of failing with the quota limit. Applies to a name that selects a tier (`/model fable`), not to an alias or a backend model name. Defaults to false. */
|
|
27030
|
+
degradeDownTiers: external_exports.boolean().optional(),
|
|
27029
27031
|
/** The reasoning effort used when the request's own effort is not one the backend accepts. */
|
|
27030
27032
|
effort: external_exports.enum(ANTIGRAVITY_EFFORTS).optional(),
|
|
27031
27033
|
/** Cloud-specific settings (for `mode: "cloud"`). */
|
|
@@ -34089,7 +34091,7 @@ var init_package = __esm({
|
|
|
34089
34091
|
"package.json"() {
|
|
34090
34092
|
package_default = {
|
|
34091
34093
|
name: "claude-use",
|
|
34092
|
-
version: "11.
|
|
34094
|
+
version: "11.18.0",
|
|
34093
34095
|
description: "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
|
|
34094
34096
|
license: "MIT",
|
|
34095
34097
|
author: "Joseph Mearman <joseph@mearman.co.uk>",
|
|
@@ -35768,7 +35770,7 @@ function isEmptyCodexConfig(config2) {
|
|
|
35768
35770
|
return config2 === void 0 || config2.defaultModel === void 0 && config2.effort === void 0 && config2.login === void 0 && (config2.models === void 0 || Object.keys(config2.models).length === 0);
|
|
35769
35771
|
}
|
|
35770
35772
|
function isEmptyAntigravityConfig(config2) {
|
|
35771
|
-
return config2 === void 0 || config2.mode === void 0 && config2.defaultModel === void 0 && config2.effort === void 0 && config2.cloud === void 0 && config2.local === void 0 && (config2.models === void 0 || Object.keys(config2.models).length === 0);
|
|
35773
|
+
return config2 === void 0 || config2.mode === void 0 && config2.defaultModel === void 0 && config2.effort === void 0 && config2.degradeDownTiers === void 0 && config2.cloud === void 0 && config2.local === void 0 && (config2.models === void 0 || Object.keys(config2.models).length === 0);
|
|
35772
35774
|
}
|
|
35773
35775
|
function addProvider(paths, name, input2) {
|
|
35774
35776
|
if (providerExists(paths, name)) {
|
|
@@ -128059,6 +128061,7 @@ function resolveAntigravityConfig(config2) {
|
|
|
128059
128061
|
defaultModel: config2?.defaultModel ?? ANTIGRAVITY_DEFAULT_MODEL,
|
|
128060
128062
|
models: { fable: tierModel("fable"), opus: tierModel("opus"), sonnet: tierModel("sonnet"), haiku: tierModel("haiku") },
|
|
128061
128063
|
aliases,
|
|
128064
|
+
degradeDownTiers: config2?.degradeDownTiers ?? false,
|
|
128062
128065
|
effort: config2?.effort ?? ANTIGRAVITY_DEFAULT_EFFORT,
|
|
128063
128066
|
cloud: {
|
|
128064
128067
|
endpoint: config2?.cloud?.endpoint,
|
|
@@ -128077,18 +128080,25 @@ var BACKEND_CLAUDE_NAME = /^claude-.+-(?:low|medium|high|thinking)$/;
|
|
|
128077
128080
|
function isBackendModelName(name) {
|
|
128078
128081
|
return BACKEND_FAMILY_PREFIXES.some((prefix) => name.startsWith(prefix)) || BACKEND_CLAUDE_NAME.test(name);
|
|
128079
128082
|
}
|
|
128080
|
-
function
|
|
128083
|
+
function resolveName(requested, config2) {
|
|
128081
128084
|
const stripped = requested.toLowerCase().endsWith(CONTEXT_MARKER_1M) ? requested.slice(0, -CONTEXT_MARKER_1M.length) : requested;
|
|
128082
128085
|
const lower = stripped.toLowerCase();
|
|
128083
128086
|
const alias = config2.aliases.get(lower);
|
|
128084
128087
|
if (alias !== void 0) {
|
|
128085
|
-
return alias;
|
|
128088
|
+
return { candidates: alias, tier: void 0 };
|
|
128086
128089
|
}
|
|
128087
128090
|
if (isBackendModelName(stripped)) {
|
|
128088
|
-
return [stripped];
|
|
128091
|
+
return { candidates: [stripped], tier: void 0 };
|
|
128089
128092
|
}
|
|
128090
128093
|
const tier = ANTIGRAVITY_TIERS.find((candidate) => lower.includes(candidate));
|
|
128091
|
-
return tier === void 0 ? [config2.defaultModel] : config2.models[tier];
|
|
128094
|
+
return tier === void 0 ? { candidates: [config2.defaultModel], tier: void 0 } : { candidates: config2.models[tier], tier };
|
|
128095
|
+
}
|
|
128096
|
+
function candidateStages(requested, config2) {
|
|
128097
|
+
const { candidates, tier } = resolveName(requested, config2);
|
|
128098
|
+
if (!config2.degradeDownTiers || tier === void 0) {
|
|
128099
|
+
return [candidates];
|
|
128100
|
+
}
|
|
128101
|
+
return ANTIGRAVITY_TIERS.slice(ANTIGRAVITY_TIERS.indexOf(tier)).map((name) => config2.models[name]);
|
|
128092
128102
|
}
|
|
128093
128103
|
function chooseCandidate(candidates, routing) {
|
|
128094
128104
|
const first = candidates[0];
|
|
@@ -128290,10 +128300,29 @@ function completeEffortSuffix(model, request7, config2) {
|
|
|
128290
128300
|
const suffixed = `${model}-${effortSuffixOf(level)}`;
|
|
128291
128301
|
return configured.some((entry) => entry === suffixed || splitEffortSuffix(entry)?.base === model) ? suffixed : model;
|
|
128292
128302
|
}
|
|
128303
|
+
function chooseAcrossStages(stages, routing) {
|
|
128304
|
+
const own2 = stages[0];
|
|
128305
|
+
if (own2 === void 0) {
|
|
128306
|
+
throw new Error("A request resolves to at least one candidate list");
|
|
128307
|
+
}
|
|
128308
|
+
if (routing === void 0) {
|
|
128309
|
+
return chooseCandidate(own2, void 0);
|
|
128310
|
+
}
|
|
128311
|
+
for (const [index, stage] of stages.entries()) {
|
|
128312
|
+
const picked = chooseCandidate(stage, index === 0 ? routing : { quota: routing.quota, nowMs: routing.nowMs });
|
|
128313
|
+
if (antigravityQuotaExhaustion(routing.quota, picked, routing.nowMs) === void 0) {
|
|
128314
|
+
return picked;
|
|
128315
|
+
}
|
|
128316
|
+
}
|
|
128317
|
+
return chooseCandidate(own2, routing);
|
|
128318
|
+
}
|
|
128293
128319
|
function translateRequest2(request7, config2, routing) {
|
|
128294
128320
|
const toolNames = /* @__PURE__ */ new Map();
|
|
128295
128321
|
const toolIdToName = /* @__PURE__ */ new Map();
|
|
128296
|
-
const model =
|
|
128322
|
+
const model = chooseAcrossStages(
|
|
128323
|
+
candidateStages(request7.model ?? "", config2).map((stage) => stage.map((candidate) => completeEffortSuffix(candidate, request7, config2))),
|
|
128324
|
+
routing
|
|
128325
|
+
);
|
|
128297
128326
|
const thinkingBudget = mapEffort2(request7, config2);
|
|
128298
128327
|
const systemInstruction = systemToInstruction(request7.system);
|
|
128299
128328
|
const contents = messagesToGeminiContents(request7.messages, toolNames, toolIdToName);
|
|
@@ -145064,7 +145093,7 @@ function toProviderView(name, provider) {
|
|
|
145064
145093
|
};
|
|
145065
145094
|
}
|
|
145066
145095
|
function antigravityConfigFromOptions(options) {
|
|
145067
|
-
if (options.antigravityMode === void 0 && options.antigravityDefaultModel === void 0 && options.antigravityModel === void 0 && options.antigravityEffort === void 0 && options.antigravityEndpoint === void 0 && options.antigravityProjectId === void 0 && options.antigravityLocation === void 0 && options.antigravityCommand === void 0 && options.antigravitySocket === void 0) {
|
|
145096
|
+
if (options.antigravityMode === void 0 && options.antigravityDefaultModel === void 0 && options.antigravityModel === void 0 && options.antigravityEffort === void 0 && options.antigravityDegradeDownTiers === void 0 && options.antigravityEndpoint === void 0 && options.antigravityProjectId === void 0 && options.antigravityLocation === void 0 && options.antigravityCommand === void 0 && options.antigravitySocket === void 0) {
|
|
145068
145097
|
return void 0;
|
|
145069
145098
|
}
|
|
145070
145099
|
const cloud = options.antigravityEndpoint !== void 0 || options.antigravityProjectId !== void 0 || options.antigravityLocation !== void 0 ? {
|
|
@@ -145081,6 +145110,7 @@ function antigravityConfigFromOptions(options) {
|
|
|
145081
145110
|
...options.antigravityDefaultModel === void 0 ? {} : { defaultModel: options.antigravityDefaultModel },
|
|
145082
145111
|
...options.antigravityModel === void 0 ? {} : { models: Object.fromEntries(Object.entries(options.antigravityModel).map(([name, target]) => [name, target.includes(",") ? target.split(",") : target])) },
|
|
145083
145112
|
...options.antigravityEffort === void 0 ? {} : { effort: options.antigravityEffort },
|
|
145113
|
+
...options.antigravityDegradeDownTiers === void 0 ? {} : { degradeDownTiers: options.antigravityDegradeDownTiers },
|
|
145084
145114
|
...cloud === void 0 ? {} : { cloud },
|
|
145085
145115
|
...local === void 0 ? {} : { local }
|
|
145086
145116
|
};
|
|
@@ -145121,7 +145151,7 @@ function registerProviderCommand(program2, deps) {
|
|
|
145121
145151
|
new Option("--credential-target <target>", "Where the token goes: bearer sets ANTHROPIC_AUTH_TOKEN (default), apiKey sets ANTHROPIC_API_KEY.").choices(
|
|
145122
145152
|
PROVIDER_CREDENTIAL_TARGETS
|
|
145123
145153
|
)
|
|
145124
|
-
).option("--env <KEY=VALUE>", "Extra environment entry for the child (repeatable).", collectStringPair).option("--codex-default-model <model>", "Codex providers: the codex model a request maps to when no tier matches.").option("--codex-model <tier=model>", "Codex providers: the codex model one tier (fable, opus, sonnet or haiku) maps to (repeatable).", collectStringPair).addOption(new Option("--codex-effort <effort>", "Codex providers: the reasoning effort when a request asks for none the backend accepts.").choices(CODEX_EFFORTS)).addOption(new Option("--codex-login <login>", "Codex providers: which login the upstream call uses, the Codex CLI's own login or a Sign in with ChatGPT grant from `agent-shim codex login`.").choices(CODEX_LOGINS)).addOption(new Option("--antigravity-mode <mode>", "Antigravity providers: cloud (direct Gemini/Vertex) or local (ACP daemon).").choices(ANTIGRAVITY_MODES)).option("--antigravity-default-model <model>", "Antigravity providers: the model a request maps to when no tier matches.").option("--antigravity-model <tier=model>", "Antigravity providers: the model a tier (fable, opus, sonnet or haiku, matched by substring) or an alias (any other name, matched whole, selectable with /model) maps to; a comma-separated list routes by available quota, first unspent first (repeatable).", collectStringPair).addOption(new Option("--antigravity-effort <effort>", "Antigravity providers: reasoning effort.").choices(ANTIGRAVITY_EFFORTS)).option("--antigravity-endpoint <url>", "Antigravity cloud providers: custom API endpoint URL.").option("--antigravity-project-id <id>", "Antigravity cloud providers: Google Cloud project ID (for Vertex AI).").option("--antigravity-location <loc>", "Antigravity cloud providers: Google Cloud location (for Vertex AI).").option("--antigravity-command <cmd...>", "Antigravity local providers: command to spawn ACP server.", collectRepeated).option("--antigravity-socket <path>", "Antigravity local providers: path to existing Unix domain socket.").option("--json", "Print the result as JSON.").action((name, options) => {
|
|
145154
|
+
).option("--env <KEY=VALUE>", "Extra environment entry for the child (repeatable).", collectStringPair).option("--codex-default-model <model>", "Codex providers: the codex model a request maps to when no tier matches.").option("--codex-model <tier=model>", "Codex providers: the codex model one tier (fable, opus, sonnet or haiku) maps to (repeatable).", collectStringPair).addOption(new Option("--codex-effort <effort>", "Codex providers: the reasoning effort when a request asks for none the backend accepts.").choices(CODEX_EFFORTS)).addOption(new Option("--codex-login <login>", "Codex providers: which login the upstream call uses, the Codex CLI's own login or a Sign in with ChatGPT grant from `agent-shim codex login`.").choices(CODEX_LOGINS)).addOption(new Option("--antigravity-mode <mode>", "Antigravity providers: cloud (direct Gemini/Vertex) or local (ACP daemon).").choices(ANTIGRAVITY_MODES)).option("--antigravity-default-model <model>", "Antigravity providers: the model a request maps to when no tier matches.").option("--antigravity-model <tier=model>", "Antigravity providers: the model a tier (fable, opus, sonnet or haiku, matched by substring) or an alias (any other name, matched whole, selectable with /model) maps to; a comma-separated list routes by available quota, first unspent first (repeatable).", collectStringPair).addOption(new Option("--antigravity-effort <effort>", "Antigravity providers: reasoning effort.").choices(ANTIGRAVITY_EFFORTS)).option("--antigravity-degrade-down-tiers", "Antigravity providers: when every candidate of a tier has no quota left, serve the request from the tiers below it instead of failing.").option("--no-antigravity-degrade-down-tiers", "Antigravity providers: fail with the quota limit when a tier has no quota left (the default).").option("--antigravity-endpoint <url>", "Antigravity cloud providers: custom API endpoint URL.").option("--antigravity-project-id <id>", "Antigravity cloud providers: Google Cloud project ID (for Vertex AI).").option("--antigravity-location <loc>", "Antigravity cloud providers: Google Cloud location (for Vertex AI).").option("--antigravity-command <cmd...>", "Antigravity local providers: command to spawn ACP server.", collectRepeated).option("--antigravity-socket <path>", "Antigravity local providers: path to existing Unix domain socket.").option("--json", "Print the result as JSON.").action((name, options) => {
|
|
145125
145155
|
const codex = codexConfigFromOptions(options);
|
|
145126
145156
|
const antigravity = antigravityConfigFromOptions(options);
|
|
145127
145157
|
const created = addProvider(paths, name, {
|
|
@@ -145157,7 +145187,7 @@ function registerProviderCommand(program2, deps) {
|
|
|
145157
145187
|
new Option("--credential-target <target>", "Where the token goes: bearer sets ANTHROPIC_AUTH_TOKEN, apiKey sets ANTHROPIC_API_KEY.").choices(
|
|
145158
145188
|
PROVIDER_CREDENTIAL_TARGETS
|
|
145159
145189
|
)
|
|
145160
|
-
).option("--env <KEY=VALUE>", "Add or replace an environment entry for the child (repeatable).", collectStringPair).option("--unset-env <KEY>", "Remove an environment entry (repeatable).", collectRepeated).option("--codex-default-model <model>", "Codex providers: replace the model a request maps to when no tier matches.").option("--codex-model <tier=model>", "Codex providers: set the codex model one tier maps to (repeatable; other tiers are kept).", collectStringPair).addOption(new Option("--codex-effort <effort>", "Codex providers: replace the default reasoning effort.").choices(CODEX_EFFORTS)).addOption(new Option("--codex-login <login>", "Codex providers: replace which login the upstream call uses.").choices(CODEX_LOGINS)).addOption(new Option("--antigravity-mode <mode>", "Antigravity providers: cloud (direct Gemini/Vertex) or local (ACP daemon).").choices(ANTIGRAVITY_MODES)).option("--antigravity-default-model <model>", "Antigravity providers: the model a request maps to when no tier matches.").option("--antigravity-model <tier=model>", "Antigravity providers: set the model one tier maps to (repeatable; other tiers are kept).", collectStringPair).addOption(new Option("--antigravity-effort <effort>", "Antigravity providers: reasoning effort.").choices(ANTIGRAVITY_EFFORTS)).option("--antigravity-endpoint <url>", "Antigravity cloud providers: custom API endpoint URL.").option("--antigravity-project-id <id>", "Antigravity cloud providers: Google Cloud project ID (for Vertex AI).").option("--antigravity-location <loc>", "Antigravity cloud providers: Google Cloud location (for Vertex AI).").option("--antigravity-command <cmd...>", "Antigravity local providers: command to spawn ACP server.", collectRepeated).option("--antigravity-socket <path>", "Antigravity local providers: path to existing Unix domain socket.");
|
|
145190
|
+
).option("--env <KEY=VALUE>", "Add or replace an environment entry for the child (repeatable).", collectStringPair).option("--unset-env <KEY>", "Remove an environment entry (repeatable).", collectRepeated).option("--codex-default-model <model>", "Codex providers: replace the model a request maps to when no tier matches.").option("--codex-model <tier=model>", "Codex providers: set the codex model one tier maps to (repeatable; other tiers are kept).", collectStringPair).addOption(new Option("--codex-effort <effort>", "Codex providers: replace the default reasoning effort.").choices(CODEX_EFFORTS)).addOption(new Option("--codex-login <login>", "Codex providers: replace which login the upstream call uses.").choices(CODEX_LOGINS)).addOption(new Option("--antigravity-mode <mode>", "Antigravity providers: cloud (direct Gemini/Vertex) or local (ACP daemon).").choices(ANTIGRAVITY_MODES)).option("--antigravity-default-model <model>", "Antigravity providers: the model a request maps to when no tier matches.").option("--antigravity-model <tier=model>", "Antigravity providers: set the model one tier maps to (repeatable; other tiers are kept).", collectStringPair).addOption(new Option("--antigravity-effort <effort>", "Antigravity providers: reasoning effort.").choices(ANTIGRAVITY_EFFORTS)).option("--antigravity-degrade-down-tiers", "Antigravity providers: when every candidate of a tier has no quota left, serve the request from the tiers below it instead of failing.").option("--no-antigravity-degrade-down-tiers", "Antigravity providers: fail with the quota limit when a tier has no quota left (the default).").option("--antigravity-endpoint <url>", "Antigravity cloud providers: custom API endpoint URL.").option("--antigravity-project-id <id>", "Antigravity cloud providers: Google Cloud project ID (for Vertex AI).").option("--antigravity-location <loc>", "Antigravity cloud providers: Google Cloud location (for Vertex AI).").option("--antigravity-command <cmd...>", "Antigravity local providers: command to spawn ACP server.", collectRepeated).option("--antigravity-socket <path>", "Antigravity local providers: path to existing Unix domain socket.");
|
|
145161
145191
|
addCredentialCacheOptions(providerSet);
|
|
145162
145192
|
withExamples(
|
|
145163
145193
|
providerSet.option("--json", "Print the result as JSON.").action((name, allOptions) => {
|
|
@@ -145237,6 +145267,7 @@ function registerProviderCommand(program2, deps) {
|
|
|
145237
145267
|
console.log(`Antigravity aliases: ${[...config2.aliases].map(([alias, model]) => `${alias}=${model.join(" > ")}`).join(", ")}`);
|
|
145238
145268
|
}
|
|
145239
145269
|
console.log(`Antigravity effort: ${config2.effort}`);
|
|
145270
|
+
console.log(`Antigravity degrade down tiers: ${config2.degradeDownTiers ? "on" : "off"}`);
|
|
145240
145271
|
console.log(`Endpoint: ${describeProviderEndpoint(found)}`);
|
|
145241
145272
|
} else {
|
|
145242
145273
|
console.log(`Base URL: ${found.baseUrl}`);
|
package/dist/index.cjs
CHANGED
|
@@ -346,10 +346,10 @@ var init_schema = __esm({
|
|
|
346
346
|
ANTIGRAVITY_EFFORTS = ["none", "low", "medium", "high", "xhigh", "max"];
|
|
347
347
|
ANTIGRAVITY_DEFAULT_MODE = "cloud";
|
|
348
348
|
ANTIGRAVITY_DEFAULT_TIER_MODELS = Object.freeze({
|
|
349
|
-
fable: ["
|
|
349
|
+
fable: ["gemini-4-argon-high", "claude-opus-5-5-high", "gemini-3.8-flash-high"],
|
|
350
350
|
opus: ["claude-opus-5-5-high", "gemini-4-argon-high", "gemini-3.8-flash-high"],
|
|
351
351
|
sonnet: ["claude-sonnet-5-5-medium", "gemini-4-argon-medium", "gemini-3.8-flash-medium"],
|
|
352
|
-
haiku: ["gemini-3.8-flash-low", "gemini-4-argon-low", "
|
|
352
|
+
haiku: ["gemini-3.8-flash-low", "gemini-4-argon-low", "claude-sonnet-5-5-low"]
|
|
353
353
|
});
|
|
354
354
|
AntigravityModelTargetSchema = import_zod.z.union([import_zod.z.string().min(1), import_zod.z.array(import_zod.z.string().min(1)).min(1)]);
|
|
355
355
|
AntigravityProviderConfigSchema = import_zod.z.strictObject({
|
|
@@ -359,6 +359,8 @@ var init_schema = __esm({
|
|
|
359
359
|
defaultModel: import_zod.z.string().min(1).optional(),
|
|
360
360
|
/** Model name mapping. A key naming a tier (`fable`, `opus`, `sonnet`, `haiku`) overrides that tier's shipped model and is matched by substring of the requested name in `ANTIGRAVITY_TIERS` order; any other key is an alias, matched against the whole requested name case-insensitively, so `/model <alias>` selects its backend model. An alias outranks every other rule, including the pass-through of backend names. A value is one model or an ordered list of candidates: the request goes to the first whose quota windows are not spent, and when every candidate is spent, to the one whose binding window lifts soonest. */
|
|
361
361
|
models: import_zod.z.record(import_zod.z.string().min(1), AntigravityModelTargetSchema).optional(),
|
|
362
|
+
/** When every candidate of the tier a request names has no quota left, serve it from the next tier down, and onward through the lower tiers, instead of failing with the quota limit. Applies to a name that selects a tier (`/model fable`), not to an alias or a backend model name. Defaults to false. */
|
|
363
|
+
degradeDownTiers: import_zod.z.boolean().optional(),
|
|
362
364
|
/** The reasoning effort used when the request's own effort is not one the backend accepts. */
|
|
363
365
|
effort: import_zod.z.enum(ANTIGRAVITY_EFFORTS).optional(),
|
|
364
366
|
/** Cloud-specific settings (for `mode: "cloud"`). */
|
|
@@ -2837,7 +2839,7 @@ var init_package = __esm({
|
|
|
2837
2839
|
"package.json"() {
|
|
2838
2840
|
package_default = {
|
|
2839
2841
|
name: "claude-use",
|
|
2840
|
-
version: "11.
|
|
2842
|
+
version: "11.18.0",
|
|
2841
2843
|
description: "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
|
|
2842
2844
|
license: "MIT",
|
|
2843
2845
|
author: "Joseph Mearman <joseph@mearman.co.uk>",
|
|
@@ -6431,7 +6433,7 @@ function isEmptyCodexConfig(config) {
|
|
|
6431
6433
|
return config === void 0 || config.defaultModel === void 0 && config.effort === void 0 && config.login === void 0 && (config.models === void 0 || Object.keys(config.models).length === 0);
|
|
6432
6434
|
}
|
|
6433
6435
|
function isEmptyAntigravityConfig(config) {
|
|
6434
|
-
return config === void 0 || config.mode === void 0 && config.defaultModel === void 0 && config.effort === void 0 && config.cloud === void 0 && config.local === void 0 && (config.models === void 0 || Object.keys(config.models).length === 0);
|
|
6436
|
+
return config === void 0 || config.mode === void 0 && config.defaultModel === void 0 && config.effort === void 0 && config.degradeDownTiers === void 0 && config.cloud === void 0 && config.local === void 0 && (config.models === void 0 || Object.keys(config.models).length === 0);
|
|
6435
6437
|
}
|
|
6436
6438
|
function addProvider(paths, name, input) {
|
|
6437
6439
|
if (providerExists(paths, name)) {
|
package/dist/index.mjs
CHANGED
|
@@ -324,10 +324,10 @@ var init_schema = __esm({
|
|
|
324
324
|
ANTIGRAVITY_EFFORTS = ["none", "low", "medium", "high", "xhigh", "max"];
|
|
325
325
|
ANTIGRAVITY_DEFAULT_MODE = "cloud";
|
|
326
326
|
ANTIGRAVITY_DEFAULT_TIER_MODELS = Object.freeze({
|
|
327
|
-
fable: ["
|
|
327
|
+
fable: ["gemini-4-argon-high", "claude-opus-5-5-high", "gemini-3.8-flash-high"],
|
|
328
328
|
opus: ["claude-opus-5-5-high", "gemini-4-argon-high", "gemini-3.8-flash-high"],
|
|
329
329
|
sonnet: ["claude-sonnet-5-5-medium", "gemini-4-argon-medium", "gemini-3.8-flash-medium"],
|
|
330
|
-
haiku: ["gemini-3.8-flash-low", "gemini-4-argon-low", "
|
|
330
|
+
haiku: ["gemini-3.8-flash-low", "gemini-4-argon-low", "claude-sonnet-5-5-low"]
|
|
331
331
|
});
|
|
332
332
|
AntigravityModelTargetSchema = z.union([z.string().min(1), z.array(z.string().min(1)).min(1)]);
|
|
333
333
|
AntigravityProviderConfigSchema = z.strictObject({
|
|
@@ -337,6 +337,8 @@ var init_schema = __esm({
|
|
|
337
337
|
defaultModel: z.string().min(1).optional(),
|
|
338
338
|
/** Model name mapping. A key naming a tier (`fable`, `opus`, `sonnet`, `haiku`) overrides that tier's shipped model and is matched by substring of the requested name in `ANTIGRAVITY_TIERS` order; any other key is an alias, matched against the whole requested name case-insensitively, so `/model <alias>` selects its backend model. An alias outranks every other rule, including the pass-through of backend names. A value is one model or an ordered list of candidates: the request goes to the first whose quota windows are not spent, and when every candidate is spent, to the one whose binding window lifts soonest. */
|
|
339
339
|
models: z.record(z.string().min(1), AntigravityModelTargetSchema).optional(),
|
|
340
|
+
/** When every candidate of the tier a request names has no quota left, serve it from the next tier down, and onward through the lower tiers, instead of failing with the quota limit. Applies to a name that selects a tier (`/model fable`), not to an alias or a backend model name. Defaults to false. */
|
|
341
|
+
degradeDownTiers: z.boolean().optional(),
|
|
340
342
|
/** The reasoning effort used when the request's own effort is not one the backend accepts. */
|
|
341
343
|
effort: z.enum(ANTIGRAVITY_EFFORTS).optional(),
|
|
342
344
|
/** Cloud-specific settings (for `mode: "cloud"`). */
|
|
@@ -2813,7 +2815,7 @@ var init_package = __esm({
|
|
|
2813
2815
|
"package.json"() {
|
|
2814
2816
|
package_default = {
|
|
2815
2817
|
name: "claude-use",
|
|
2816
|
-
version: "11.
|
|
2818
|
+
version: "11.18.0",
|
|
2817
2819
|
description: "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
|
|
2818
2820
|
license: "MIT",
|
|
2819
2821
|
author: "Joseph Mearman <joseph@mearman.co.uk>",
|
|
@@ -6406,7 +6408,7 @@ function isEmptyCodexConfig(config) {
|
|
|
6406
6408
|
return config === void 0 || config.defaultModel === void 0 && config.effort === void 0 && config.login === void 0 && (config.models === void 0 || Object.keys(config.models).length === 0);
|
|
6407
6409
|
}
|
|
6408
6410
|
function isEmptyAntigravityConfig(config) {
|
|
6409
|
-
return config === void 0 || config.mode === void 0 && config.defaultModel === void 0 && config.effort === void 0 && config.cloud === void 0 && config.local === void 0 && (config.models === void 0 || Object.keys(config.models).length === 0);
|
|
6411
|
+
return config === void 0 || config.mode === void 0 && config.defaultModel === void 0 && config.effort === void 0 && config.degradeDownTiers === void 0 && config.cloud === void 0 && config.local === void 0 && (config.models === void 0 || Object.keys(config.models).length === 0);
|
|
6410
6412
|
}
|
|
6411
6413
|
function addProvider(paths, name, input) {
|
|
6412
6414
|
if (providerExists(paths, name)) {
|
package/dist/types/index.d.ts
CHANGED
|
@@ -391,6 +391,7 @@ declare const AntigravityProviderConfigSchema: z.ZodObject<{
|
|
|
391
391
|
}>>;
|
|
392
392
|
defaultModel: z.ZodOptional<z.ZodString>;
|
|
393
393
|
models: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
|
|
394
|
+
degradeDownTiers: z.ZodOptional<z.ZodBoolean>;
|
|
394
395
|
effort: z.ZodOptional<z.ZodEnum<{
|
|
395
396
|
none: "none";
|
|
396
397
|
max: "max";
|
|
@@ -657,6 +658,7 @@ declare const ProviderSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
657
658
|
}>>;
|
|
658
659
|
defaultModel: z.ZodOptional<z.ZodString>;
|
|
659
660
|
models: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
|
|
661
|
+
degradeDownTiers: z.ZodOptional<z.ZodBoolean>;
|
|
660
662
|
effort: z.ZodOptional<z.ZodEnum<{
|
|
661
663
|
none: "none";
|
|
662
664
|
max: "max";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-use",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.18.0",
|
|
4
4
|
"description": "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Joseph Mearman <joseph@mearman.co.uk>",
|