claude-use 11.27.0 → 11.28.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/README.md +2 -0
- package/dist/cli.cjs +160 -48
- package/dist/index.cjs +125 -22
- package/dist/index.mjs +125 -22
- package/dist/types/index.d.ts +74 -6
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -285,7 +285,11 @@ var init_schema = __esm({
|
|
|
285
285
|
headroom: import_zod.z.boolean().optional(),
|
|
286
286
|
trackUsage: import_zod.z.boolean().optional(),
|
|
287
287
|
/** The exact Claude Code version to run, as it is named in Claude Code's versions directory (`2.1.220`). A pin that is not installed fails the launch; it never falls back to the highest version. */
|
|
288
|
-
claudeVersion: import_zod.z.string().regex(NUMERIC_DOTTED_VERSION_RE, "must be an exact dotted-numeric Claude Code version such as 2.1.220").optional()
|
|
288
|
+
claudeVersion: import_zod.z.string().regex(NUMERIC_DOTTED_VERSION_RE, "must be an exact dotted-numeric Claude Code version such as 2.1.220").optional(),
|
|
289
|
+
/** How long the launcher waits after its own output before it starts claude, so that output can be read before Claude Code takes over the terminal (`5s`, `500ms`). Applies only when a terminal is watching. */
|
|
290
|
+
delay: import_zod.z.string().regex(DURATION_RE, "must be a duration such as 5s or 500ms").optional(),
|
|
291
|
+
/** Whether the launcher waits for a key press after its own output before it starts claude. Takes the place of `delay` when both are set. Applies only when a terminal is watching. */
|
|
292
|
+
pause: import_zod.z.boolean().optional()
|
|
289
293
|
});
|
|
290
294
|
CREDENTIAL_TARGETS = ["bearer", "apiKey", "oauthToken"];
|
|
291
295
|
PROVIDER_CREDENTIAL_TARGETS = ["bearer", "apiKey"];
|
|
@@ -1388,6 +1392,12 @@ function flattenLayers(layers, options) {
|
|
|
1388
1392
|
if (layer.launch.claudeVersion !== void 0) {
|
|
1389
1393
|
launch.claudeVersion = layer.launch.claudeVersion;
|
|
1390
1394
|
}
|
|
1395
|
+
if (layer.launch.delay !== void 0) {
|
|
1396
|
+
launch.delay = layer.launch.delay;
|
|
1397
|
+
}
|
|
1398
|
+
if (layer.launch.pause !== void 0) {
|
|
1399
|
+
launch.pause = layer.launch.pause;
|
|
1400
|
+
}
|
|
1391
1401
|
}
|
|
1392
1402
|
if (layer.entries === void 0) {
|
|
1393
1403
|
continue;
|
|
@@ -2964,7 +2974,7 @@ var init_package = __esm({
|
|
|
2964
2974
|
"package.json"() {
|
|
2965
2975
|
package_default = {
|
|
2966
2976
|
name: "claude-use",
|
|
2967
|
-
version: "11.
|
|
2977
|
+
version: "11.28.0",
|
|
2968
2978
|
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.",
|
|
2969
2979
|
license: "MIT",
|
|
2970
2980
|
author: "Joseph Mearman <joseph@mearman.co.uk>",
|
|
@@ -4402,7 +4412,7 @@ function realResolveClaudeBinary(isOwnBinary) {
|
|
|
4402
4412
|
function realInstalledClaudeVersions() {
|
|
4403
4413
|
return installedVersions(listVersionsDir(defaultVersionsDir()));
|
|
4404
4414
|
}
|
|
4405
|
-
var import_node_child_process2, import_node_crypto8, import_node_fs2, import_node_os2, import_node_path14, import_node_sea, realFsPort, OWNER_ONLY_DIR_MODE, OWNER_ONLY_FILE_MODE, PERMISSION_BITS, realFarmFs, INT32_BYTE_LENGTH, PS_TIMEOUT_MS, realRunPort, MACOS_GUI_SESSION_MANAGER, realCredentialPort, SOCKET_PERMISSION_BITS, realHeadroomSocketTrust, realSpawnPort, realProcPort, realLogPort, EXECUTE_BITS_MASK, WINDOWS_DEFAULT_PATHEXT;
|
|
4415
|
+
var import_node_child_process2, import_node_crypto8, import_node_fs2, import_node_os2, import_node_path14, import_node_sea, realFsPort, OWNER_ONLY_DIR_MODE, OWNER_ONLY_FILE_MODE, PERMISSION_BITS, realFarmFs, INT32_BYTE_LENGTH, KEY_POLL_MS, CTRL_C_BYTE, realHoldPort, PS_TIMEOUT_MS, realRunPort, MACOS_GUI_SESSION_MANAGER, realCredentialPort, SOCKET_PERMISSION_BITS, realHeadroomSocketTrust, realSpawnPort, realProcPort, realLogPort, EXECUTE_BITS_MASK, WINDOWS_DEFAULT_PATHEXT;
|
|
4406
4416
|
var init_realPorts = __esm({
|
|
4407
4417
|
"src/realPorts.ts"() {
|
|
4408
4418
|
"use strict";
|
|
@@ -4551,6 +4561,31 @@ var init_realPorts = __esm({
|
|
|
4551
4561
|
}
|
|
4552
4562
|
};
|
|
4553
4563
|
INT32_BYTE_LENGTH = 4;
|
|
4564
|
+
KEY_POLL_MS = 25;
|
|
4565
|
+
CTRL_C_BYTE = 3;
|
|
4566
|
+
realHoldPort = {
|
|
4567
|
+
attended: () => process.stdin.isTTY && process.stdout.isTTY,
|
|
4568
|
+
sleep: realSleepSync,
|
|
4569
|
+
waitForKey: () => {
|
|
4570
|
+
process.stdin.setRawMode(true);
|
|
4571
|
+
try {
|
|
4572
|
+
const buffer = Buffer.alloc(1);
|
|
4573
|
+
for (; ; ) {
|
|
4574
|
+
try {
|
|
4575
|
+
const read = import_node_fs2.default.readSync(process.stdin.fd, buffer, 0, buffer.length, null);
|
|
4576
|
+
return read > 0 && buffer[0] === CTRL_C_BYTE ? "interrupt" : "key";
|
|
4577
|
+
} catch (error) {
|
|
4578
|
+
if (!(error instanceof Error && "code" in error && error.code === "EAGAIN")) {
|
|
4579
|
+
throw error;
|
|
4580
|
+
}
|
|
4581
|
+
realSleepSync(KEY_POLL_MS);
|
|
4582
|
+
}
|
|
4583
|
+
}
|
|
4584
|
+
} finally {
|
|
4585
|
+
process.stdin.setRawMode(false);
|
|
4586
|
+
}
|
|
4587
|
+
}
|
|
4588
|
+
};
|
|
4554
4589
|
PS_TIMEOUT_MS = 2e3;
|
|
4555
4590
|
realRunPort = {
|
|
4556
4591
|
run(command, args) {
|
|
@@ -7391,6 +7426,7 @@ function parseLauncherArgv(argv) {
|
|
|
7391
7426
|
let configProfile;
|
|
7392
7427
|
let provider;
|
|
7393
7428
|
let claudeVersion;
|
|
7429
|
+
let delay;
|
|
7394
7430
|
const booleans = {};
|
|
7395
7431
|
const categoryFlags = [];
|
|
7396
7432
|
const shareFlags = [];
|
|
@@ -7448,6 +7484,9 @@ function parseLauncherArgv(argv) {
|
|
|
7448
7484
|
case "--claude-version":
|
|
7449
7485
|
claudeVersion = value;
|
|
7450
7486
|
break;
|
|
7487
|
+
case "--delay":
|
|
7488
|
+
delay = value;
|
|
7489
|
+
break;
|
|
7451
7490
|
case "--category":
|
|
7452
7491
|
categoryFlags.push(value);
|
|
7453
7492
|
break;
|
|
@@ -7470,6 +7509,7 @@ function parseLauncherArgv(argv) {
|
|
|
7470
7509
|
...configProfile === void 0 ? {} : { configProfile },
|
|
7471
7510
|
...provider === void 0 ? {} : { provider },
|
|
7472
7511
|
...claudeVersion === void 0 ? {} : { claudeVersion },
|
|
7512
|
+
...delay === void 0 ? {} : { delay },
|
|
7473
7513
|
...native ? { native: true } : {},
|
|
7474
7514
|
...booleans,
|
|
7475
7515
|
categoryFlags,
|
|
@@ -7493,13 +7533,14 @@ var init_argv = __esm({
|
|
|
7493
7533
|
positional;
|
|
7494
7534
|
flag;
|
|
7495
7535
|
};
|
|
7496
|
-
VALUED_FLAGS = ["--identity", "--config-profile", "--provider", "--claude-version", "--category", "--share", "--hide"];
|
|
7536
|
+
VALUED_FLAGS = ["--identity", "--config-profile", "--provider", "--claude-version", "--delay", "--category", "--share", "--hide"];
|
|
7497
7537
|
BOOLEAN_FLAGS = [
|
|
7498
7538
|
{ flag: "--headroom", key: "headroom" },
|
|
7499
7539
|
{ flag: "--track-usage", key: "trackUsage" },
|
|
7500
7540
|
{ flag: "--skip-permissions", key: "skipPermissions" },
|
|
7501
7541
|
{ flag: "--remote-control", key: "remoteControl" },
|
|
7502
|
-
{ flag: "--wait", key: "wait" }
|
|
7542
|
+
{ flag: "--wait", key: "wait" },
|
|
7543
|
+
{ flag: "--pause", key: "pause" }
|
|
7503
7544
|
];
|
|
7504
7545
|
LAUNCHER_FLAG_NAMES = [
|
|
7505
7546
|
...VALUED_FLAGS,
|
|
@@ -7686,9 +7727,23 @@ function resolveLaunchFlags(params) {
|
|
|
7686
7727
|
skipPermissions: params.flags?.skipPermissions ?? parseEnvBool("AGENT_SHIM_SKIP_PERMISSIONS", params.env.AGENT_SHIM_SKIP_PERMISSIONS) ?? params.cascade?.skipPermissions ?? false,
|
|
7687
7728
|
remoteControl: params.flags?.remoteControl ?? parseEnvBool("AGENT_SHIM_REMOTE_CONTROL", params.env.AGENT_SHIM_REMOTE_CONTROL) ?? params.cascade?.remoteControl ?? false,
|
|
7688
7729
|
headroom: params.flags?.headroom ?? parseEnvBool("AGENT_SHIM_HEADROOM", params.env.AGENT_SHIM_HEADROOM) ?? params.cascade?.headroom ?? false,
|
|
7689
|
-
trackUsage: params.flags?.trackUsage ?? parseEnvBool("AGENT_SHIM_TRACK_USAGE", params.env.AGENT_SHIM_TRACK_USAGE) ?? params.cascade?.trackUsage ?? true
|
|
7730
|
+
trackUsage: params.flags?.trackUsage ?? parseEnvBool("AGENT_SHIM_TRACK_USAGE", params.env.AGENT_SHIM_TRACK_USAGE) ?? params.cascade?.trackUsage ?? true,
|
|
7731
|
+
pause: params.flags?.pause ?? parseEnvBool("AGENT_SHIM_PAUSE", params.env.AGENT_SHIM_PAUSE) ?? params.cascade?.pause ?? false,
|
|
7732
|
+
delayMs: resolveDelayMs(params)
|
|
7690
7733
|
};
|
|
7691
7734
|
}
|
|
7735
|
+
function resolveDelayMs(params) {
|
|
7736
|
+
const fromEnv = params.env.AGENT_SHIM_DELAY === "" ? void 0 : params.env.AGENT_SHIM_DELAY;
|
|
7737
|
+
const [literal, source] = params.flags?.delay !== void 0 ? [params.flags.delay, "--delay"] : fromEnv !== void 0 ? [fromEnv, "AGENT_SHIM_DELAY"] : [params.cascade?.delay, "launch.delay"];
|
|
7738
|
+
if (literal === void 0) {
|
|
7739
|
+
return 0;
|
|
7740
|
+
}
|
|
7741
|
+
try {
|
|
7742
|
+
return parseDuration(literal);
|
|
7743
|
+
} catch (error) {
|
|
7744
|
+
throw new UsageError(`${source}: ${error instanceof Error ? error.message : String(error)}`);
|
|
7745
|
+
}
|
|
7746
|
+
}
|
|
7692
7747
|
function buildFlagArgs(flags) {
|
|
7693
7748
|
const args = [];
|
|
7694
7749
|
if (flags.skipPermissions) {
|
|
@@ -7761,6 +7816,8 @@ var init_flags = __esm({
|
|
|
7761
7816
|
"use strict";
|
|
7762
7817
|
import_node_path36 = __toESM(require("node:path"), 1);
|
|
7763
7818
|
init_envBool();
|
|
7819
|
+
init_cliError();
|
|
7820
|
+
init_conditions();
|
|
7764
7821
|
init_credential();
|
|
7765
7822
|
init_headers();
|
|
7766
7823
|
init_capability();
|
|
@@ -7981,6 +8038,31 @@ var init_diagnostics = __esm({
|
|
|
7981
8038
|
}
|
|
7982
8039
|
});
|
|
7983
8040
|
|
|
8041
|
+
// src/launcher/hold.ts
|
|
8042
|
+
function describeDelay(ms) {
|
|
8043
|
+
return ms % MS_PER_SECOND7 === 0 ? `${String(ms / MS_PER_SECOND7)}s` : `${String(ms)}ms`;
|
|
8044
|
+
}
|
|
8045
|
+
function holdBeforeLaunch(hold, port, log) {
|
|
8046
|
+
if (port === void 0 || !port.attended() || !hold.pause && hold.delayMs <= 0) {
|
|
8047
|
+
return "go";
|
|
8048
|
+
}
|
|
8049
|
+
if (hold.pause) {
|
|
8050
|
+
log.info("agent-shim: paused before launch; press any key to start, or Ctrl-C to cancel");
|
|
8051
|
+
return port.waitForKey() === "interrupt" ? "cancelled" : "go";
|
|
8052
|
+
}
|
|
8053
|
+
log.info(`agent-shim: starting in ${describeDelay(hold.delayMs)}`);
|
|
8054
|
+
port.sleep(hold.delayMs);
|
|
8055
|
+
return "go";
|
|
8056
|
+
}
|
|
8057
|
+
var LAUNCH_CANCELLED_EXIT, MS_PER_SECOND7;
|
|
8058
|
+
var init_hold = __esm({
|
|
8059
|
+
"src/launcher/hold.ts"() {
|
|
8060
|
+
"use strict";
|
|
8061
|
+
LAUNCH_CANCELLED_EXIT = 130;
|
|
8062
|
+
MS_PER_SECOND7 = 1e3;
|
|
8063
|
+
}
|
|
8064
|
+
});
|
|
8065
|
+
|
|
7984
8066
|
// src/antigravity/cloudUpstream.ts
|
|
7985
8067
|
var init_cloudUpstream = __esm({
|
|
7986
8068
|
"src/antigravity/cloudUpstream.ts"() {
|
|
@@ -8161,7 +8243,7 @@ function filterCatalogue(models, catalogue) {
|
|
|
8161
8243
|
const excluded = catalogue.exclude === void 0 ? void 0 : (0, import_picomatch4.default)(catalogue.exclude, { dot: true });
|
|
8162
8244
|
return models.filter((model) => included?.(model.id) !== false && excluded?.(model.id) !== true);
|
|
8163
8245
|
}
|
|
8164
|
-
var import_node_path38, import_picomatch4, import_zod30, DEFAULT_CANDIDATE_URLS,
|
|
8246
|
+
var import_node_path38, import_picomatch4, import_zod30, DEFAULT_CANDIDATE_URLS, MS_PER_SECOND8, SECONDS_PER_HOUR2, HOURS_PER_DAY5, MS_PER_HOUR5, HOURS_BETWEEN_RETRIES, CATALOGUE_MAX_AGE_MS, CATALOGUE_RETRY_MS, CATALOGUE_REQUEST_SECONDS, CATALOGUE_REQUEST_TIMEOUT_MS, CATALOGUE_REFRESH_TIMEOUT_MS, CatalogueModelSchema, CatalogueCacheSchema;
|
|
8165
8247
|
var init_providerCatalogue = __esm({
|
|
8166
8248
|
"src/providerCatalogue.ts"() {
|
|
8167
8249
|
"use strict";
|
|
@@ -8169,15 +8251,15 @@ var init_providerCatalogue = __esm({
|
|
|
8169
8251
|
import_picomatch4 = __toESM(require("picomatch"), 1);
|
|
8170
8252
|
import_zod30 = require("zod");
|
|
8171
8253
|
DEFAULT_CANDIDATE_URLS = 2;
|
|
8172
|
-
|
|
8254
|
+
MS_PER_SECOND8 = 1e3;
|
|
8173
8255
|
SECONDS_PER_HOUR2 = 3600;
|
|
8174
8256
|
HOURS_PER_DAY5 = 24;
|
|
8175
|
-
MS_PER_HOUR5 = SECONDS_PER_HOUR2 *
|
|
8257
|
+
MS_PER_HOUR5 = SECONDS_PER_HOUR2 * MS_PER_SECOND8;
|
|
8176
8258
|
HOURS_BETWEEN_RETRIES = 1;
|
|
8177
8259
|
CATALOGUE_MAX_AGE_MS = HOURS_PER_DAY5 * MS_PER_HOUR5;
|
|
8178
8260
|
CATALOGUE_RETRY_MS = HOURS_BETWEEN_RETRIES * MS_PER_HOUR5;
|
|
8179
8261
|
CATALOGUE_REQUEST_SECONDS = 10;
|
|
8180
|
-
CATALOGUE_REQUEST_TIMEOUT_MS = CATALOGUE_REQUEST_SECONDS *
|
|
8262
|
+
CATALOGUE_REQUEST_TIMEOUT_MS = CATALOGUE_REQUEST_SECONDS * MS_PER_SECOND8;
|
|
8181
8263
|
CATALOGUE_REFRESH_TIMEOUT_MS = DEFAULT_CANDIDATE_URLS * CATALOGUE_REQUEST_TIMEOUT_MS;
|
|
8182
8264
|
CatalogueModelSchema = import_zod30.z.strictObject({ id: import_zod30.z.string().min(1), name: import_zod30.z.string().min(1).optional() });
|
|
8183
8265
|
CatalogueCacheSchema = import_zod30.z.strictObject({ fetchedAt: import_zod30.z.number(), url: import_zod30.z.string().min(1), models: import_zod30.z.array(CatalogueModelSchema) });
|
|
@@ -8699,7 +8781,9 @@ function decideLaunch(params, readOnly) {
|
|
|
8699
8781
|
...parsedArgv.skipPermissions === void 0 ? {} : { skipPermissions: parsedArgv.skipPermissions },
|
|
8700
8782
|
...parsedArgv.remoteControl === void 0 ? {} : { remoteControl: parsedArgv.remoteControl },
|
|
8701
8783
|
...parsedArgv.headroom === void 0 ? {} : { headroom: parsedArgv.headroom },
|
|
8702
|
-
...parsedArgv.trackUsage === void 0 ? {} : { trackUsage: parsedArgv.trackUsage }
|
|
8784
|
+
...parsedArgv.trackUsage === void 0 ? {} : { trackUsage: parsedArgv.trackUsage },
|
|
8785
|
+
...parsedArgv.pause === void 0 ? {} : { pause: parsedArgv.pause },
|
|
8786
|
+
...parsedArgv.delay === void 0 ? {} : { delay: parsedArgv.delay }
|
|
8703
8787
|
}
|
|
8704
8788
|
});
|
|
8705
8789
|
const loginlessProvider = requestedFlags.remoteControl && selectedProvider !== void 0 && farmIdentity !== void 0 && params.hasStoredLogin?.(farmIdentity) === false ? { identity: farmIdentity, provider: selectedProvider.name } : void 0;
|
|
@@ -8844,7 +8928,8 @@ function prepareLaunch(params) {
|
|
|
8844
8928
|
registered();
|
|
8845
8929
|
}
|
|
8846
8930
|
};
|
|
8847
|
-
|
|
8931
|
+
const hold = () => holdBeforeLaunch({ delayMs: resolvedFlags.delayMs, pause: resolvedFlags.pause }, params.hold, log);
|
|
8932
|
+
return { bin: decided.bin, args: finalArgv, env: finalEnv, sessionId, release, markChildStarted: updateCheck.markChildStarted, hold, decision };
|
|
8848
8933
|
}
|
|
8849
8934
|
function resolveLaunch(params) {
|
|
8850
8935
|
const decided = decideLaunch(params, true);
|
|
@@ -8877,6 +8962,9 @@ function resolveLaunch(params) {
|
|
|
8877
8962
|
}
|
|
8878
8963
|
function runLaunchPlan(plan, spawn3) {
|
|
8879
8964
|
try {
|
|
8965
|
+
if (plan.hold() === "cancelled") {
|
|
8966
|
+
return LAUNCH_CANCELLED_EXIT;
|
|
8967
|
+
}
|
|
8880
8968
|
plan.markChildStarted();
|
|
8881
8969
|
const result = spawn3.spawnSync(plan.bin, plan.args, { stdio: "inherit", env: plan.env });
|
|
8882
8970
|
if (result.error !== void 0) {
|
|
@@ -8907,6 +8995,7 @@ var init_launcher = __esm({
|
|
|
8907
8995
|
init_extraFlags();
|
|
8908
8996
|
init_claudeSession();
|
|
8909
8997
|
init_diagnostics();
|
|
8998
|
+
init_hold();
|
|
8910
8999
|
init_modelPicker();
|
|
8911
9000
|
init_providerCatalogue();
|
|
8912
9001
|
init_pool();
|
|
@@ -9112,6 +9201,7 @@ function realPrepareLaunchParams(paths, options) {
|
|
|
9112
9201
|
headroom: realHeadroomPort(paths, { spawnDaemon: options.spawnDaemon, cwd: farm.runtime.cwd }),
|
|
9113
9202
|
frontdoor: realFrontDoorPort(paths, options.spawnDaemon),
|
|
9114
9203
|
credentials: { ...realCredentialPort, cache: realCredentialCacheEnv(paths) },
|
|
9204
|
+
hold: realHoldPort,
|
|
9115
9205
|
hasStoredLogin: (identity) => identitySignIn(realFarmFs, { platform: process.platform, run: realRunPort }, { farmRoot: import_node_path42.default.join(paths.identitiesDir, identity), hasCredentialBlock: false }).state !== "signed-out",
|
|
9116
9206
|
...farm.directoryIdentity === void 0 ? {} : { directoryPinnedIdentity: farm.directoryIdentity },
|
|
9117
9207
|
...farm.directoryConfigProfile === void 0 ? {} : { directoryRuleConfigProfile: farm.directoryConfigProfile },
|
|
@@ -9390,14 +9480,14 @@ var init_identityClaude = __esm({
|
|
|
9390
9480
|
});
|
|
9391
9481
|
|
|
9392
9482
|
// src/usage/providerQuota.ts
|
|
9393
|
-
var import_zod31,
|
|
9483
|
+
var import_zod31, MS_PER_SECOND9, SECONDS_PER_HOUR3, HOURS_PER_DAY6, DAYS_PER_MONTH, ZAI_HOST, ZAI_QUOTA_URL, ZAI_UNIT_HOURS, ZAI_UNIT_MONTHS, ZAI_UNIT_MS, ZaiLimitSchema, ZaiResponseSchema, OPENROUTER_HOST, OPENROUTER_KEY_URL, OPENROUTER_CREDITS_URL, MS_PER_DAY3, OpenRouterKeySchema, OpenRouterCreditsSchema, ANTIGRAVITY_HOST, ANTIGRAVITY_QUOTA_URL, ANTIGRAVITY_USER_URL, FIVE_HOURS2, DAYS_PER_WEEK2, FIVE_HOURS_MS, WEEK_MS, AntigravityBucketSchema, AntigravitySummarySchema, GoogleTokenInfoSchema, AntigravityUserSchema;
|
|
9394
9484
|
var init_providerQuota = __esm({
|
|
9395
9485
|
"src/usage/providerQuota.ts"() {
|
|
9396
9486
|
"use strict";
|
|
9397
9487
|
import_zod31 = require("zod");
|
|
9398
9488
|
init_cloudUpstream();
|
|
9399
9489
|
init_schema2();
|
|
9400
|
-
|
|
9490
|
+
MS_PER_SECOND9 = 1e3;
|
|
9401
9491
|
SECONDS_PER_HOUR3 = 3600;
|
|
9402
9492
|
HOURS_PER_DAY6 = 24;
|
|
9403
9493
|
DAYS_PER_MONTH = 30;
|
|
@@ -9406,8 +9496,8 @@ var init_providerQuota = __esm({
|
|
|
9406
9496
|
ZAI_UNIT_HOURS = 3;
|
|
9407
9497
|
ZAI_UNIT_MONTHS = 5;
|
|
9408
9498
|
ZAI_UNIT_MS = /* @__PURE__ */ new Map([
|
|
9409
|
-
[ZAI_UNIT_HOURS, SECONDS_PER_HOUR3 *
|
|
9410
|
-
[ZAI_UNIT_MONTHS, DAYS_PER_MONTH * HOURS_PER_DAY6 * SECONDS_PER_HOUR3 *
|
|
9499
|
+
[ZAI_UNIT_HOURS, SECONDS_PER_HOUR3 * MS_PER_SECOND9],
|
|
9500
|
+
[ZAI_UNIT_MONTHS, DAYS_PER_MONTH * HOURS_PER_DAY6 * SECONDS_PER_HOUR3 * MS_PER_SECOND9]
|
|
9411
9501
|
]);
|
|
9412
9502
|
ZaiLimitSchema = import_zod31.z.object({
|
|
9413
9503
|
type: import_zod31.z.string(),
|
|
@@ -9427,7 +9517,7 @@ var init_providerQuota = __esm({
|
|
|
9427
9517
|
OPENROUTER_HOST = "openrouter.ai";
|
|
9428
9518
|
OPENROUTER_KEY_URL = `https://${OPENROUTER_HOST}/api/v1/key`;
|
|
9429
9519
|
OPENROUTER_CREDITS_URL = `https://${OPENROUTER_HOST}/api/v1/credits`;
|
|
9430
|
-
MS_PER_DAY3 = HOURS_PER_DAY6 * SECONDS_PER_HOUR3 *
|
|
9520
|
+
MS_PER_DAY3 = HOURS_PER_DAY6 * SECONDS_PER_HOUR3 * MS_PER_SECOND9;
|
|
9431
9521
|
OpenRouterKeySchema = import_zod31.z.object({
|
|
9432
9522
|
data: import_zod31.z.object({
|
|
9433
9523
|
limit: import_zod31.z.number().nonnegative().nullable(),
|
|
@@ -9443,8 +9533,8 @@ var init_providerQuota = __esm({
|
|
|
9443
9533
|
ANTIGRAVITY_USER_URL = `https://${ANTIGRAVITY_HOST}/v1internal:loadCodeAssist`;
|
|
9444
9534
|
FIVE_HOURS2 = 5;
|
|
9445
9535
|
DAYS_PER_WEEK2 = 7;
|
|
9446
|
-
FIVE_HOURS_MS = FIVE_HOURS2 * SECONDS_PER_HOUR3 *
|
|
9447
|
-
WEEK_MS = DAYS_PER_WEEK2 * HOURS_PER_DAY6 * SECONDS_PER_HOUR3 *
|
|
9536
|
+
FIVE_HOURS_MS = FIVE_HOURS2 * SECONDS_PER_HOUR3 * MS_PER_SECOND9;
|
|
9537
|
+
WEEK_MS = DAYS_PER_WEEK2 * HOURS_PER_DAY6 * SECONDS_PER_HOUR3 * MS_PER_SECOND9;
|
|
9448
9538
|
AntigravityBucketSchema = import_zod31.z.object({
|
|
9449
9539
|
bucketId: import_zod31.z.string(),
|
|
9450
9540
|
remainingFraction: import_zod31.z.number().optional(),
|
|
@@ -13747,6 +13837,12 @@ function applyProfileChange(paths, name, change) {
|
|
|
13747
13837
|
if (change.launchClaudeVersion !== void 0) {
|
|
13748
13838
|
launchPatch.claudeVersion = change.launchClaudeVersion === false ? void 0 : change.launchClaudeVersion;
|
|
13749
13839
|
}
|
|
13840
|
+
if (change.launchDelay !== void 0) {
|
|
13841
|
+
launchPatch.delay = change.launchDelay === false ? void 0 : change.launchDelay;
|
|
13842
|
+
}
|
|
13843
|
+
if (change.launchPause !== void 0) {
|
|
13844
|
+
launchPatch.pause = change.launchPause;
|
|
13845
|
+
}
|
|
13750
13846
|
if (Object.keys(launchPatch).length > 0) {
|
|
13751
13847
|
setProfileLaunchFlags(paths, name, launchPatch);
|
|
13752
13848
|
touched = true;
|
|
@@ -15962,7 +16058,9 @@ var ConfigProfileSetInputSchema = import_zod24.z.strictObject({
|
|
|
15962
16058
|
headroom: import_zod24.z.boolean().optional(),
|
|
15963
16059
|
trackUsage: import_zod24.z.boolean().optional(),
|
|
15964
16060
|
provider: import_zod24.z.union([import_zod24.z.string().min(1), import_zod24.z.literal(false)]).optional(),
|
|
15965
|
-
claudeVersion: import_zod24.z.union([import_zod24.z.string().min(1), import_zod24.z.literal(false)]).optional()
|
|
16061
|
+
claudeVersion: import_zod24.z.union([import_zod24.z.string().min(1), import_zod24.z.literal(false)]).optional(),
|
|
16062
|
+
delay: import_zod24.z.union([import_zod24.z.string().regex(DURATION_RE), import_zod24.z.literal(false)]).optional(),
|
|
16063
|
+
pause: import_zod24.z.boolean().optional()
|
|
15966
16064
|
}).optional()
|
|
15967
16065
|
});
|
|
15968
16066
|
var ConfigProfileSetOutputSchema = storedMutationOutput("profile", "updated", ProfileValueSchema);
|
|
@@ -16172,7 +16270,9 @@ function createConfigApiRouter(deps) {
|
|
|
16172
16270
|
...launch?.headroom === void 0 ? {} : { launchHeadroom: launch.headroom },
|
|
16173
16271
|
...launch?.trackUsage === void 0 ? {} : { launchTrackUsage: launch.trackUsage },
|
|
16174
16272
|
...launch?.provider === void 0 ? {} : { launchProvider: launch.provider },
|
|
16175
|
-
...launch?.claudeVersion === void 0 ? {} : { launchClaudeVersion: launch.claudeVersion }
|
|
16273
|
+
...launch?.claudeVersion === void 0 ? {} : { launchClaudeVersion: launch.claudeVersion },
|
|
16274
|
+
...launch?.delay === void 0 ? {} : { launchDelay: launch.delay },
|
|
16275
|
+
...launch?.pause === void 0 ? {} : { launchPause: launch.pause }
|
|
16176
16276
|
});
|
|
16177
16277
|
return { action: "updated", kind: "profile", name: input.name, value: profileValue(input.name, paths) };
|
|
16178
16278
|
})
|
|
@@ -16480,7 +16580,10 @@ var LaunchFlagsSchema = import_zod26.z.strictObject({
|
|
|
16480
16580
|
skipPermissions: import_zod26.z.boolean(),
|
|
16481
16581
|
remoteControl: import_zod26.z.boolean(),
|
|
16482
16582
|
headroom: import_zod26.z.boolean(),
|
|
16483
|
-
trackUsage: import_zod26.z.boolean()
|
|
16583
|
+
trackUsage: import_zod26.z.boolean(),
|
|
16584
|
+
pause: import_zod26.z.boolean(),
|
|
16585
|
+
/** How long the launch waits after its own output before it starts claude, in milliseconds. */
|
|
16586
|
+
delayMs: import_zod26.z.number()
|
|
16484
16587
|
});
|
|
16485
16588
|
var LaunchResolveOutputSchema = import_zod26.z.strictObject({
|
|
16486
16589
|
decision: LaunchDecisionSchema,
|