claude-use 11.37.0 → 11.39.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 CHANGED
@@ -33898,6 +33898,7 @@ function buildLayoutPaths(root) {
33898
33898
  usageJobsFile: import_node_path20.default.join(root, "usage", "jobs.json"),
33899
33899
  jobLogsDir: import_node_path20.default.join(root, "logs", "jobs"),
33900
33900
  superviseDir: import_node_path20.default.join(root, "supervise"),
33901
+ modelMovesDir: import_node_path20.default.join(root, "model-moves"),
33901
33902
  mcpPermissionsFile: import_node_path20.default.join(root, "mcp", "permissions.json")
33902
33903
  };
33903
33904
  }
@@ -34635,7 +34636,7 @@ var init_package = __esm({
34635
34636
  "package.json"() {
34636
34637
  package_default = {
34637
34638
  name: "claude-use",
34638
- version: "11.37.0",
34639
+ version: "11.39.0",
34639
34640
  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.",
34640
34641
  license: "MIT",
34641
34642
  author: "Joseph Mearman <joseph@mearman.co.uk>",
@@ -62892,7 +62893,7 @@ var init_selfIdentity = __esm({
62892
62893
  // src/frontdoor/trust.ts
62893
62894
  function resolveTrustBundle(params) {
62894
62895
  const { caCertFile, bundlesDir, variable, inherited, fs: fs26 } = params;
62895
- if (inherited === void 0 || inherited === "" || import_node_path36.default.resolve(inherited) === import_node_path36.default.resolve(caCertFile)) {
62896
+ if (inherited === void 0 || inherited === "" || import_node_path37.default.resolve(inherited) === import_node_path37.default.resolve(caCertFile)) {
62896
62897
  return { path: caCertFile };
62897
62898
  }
62898
62899
  const caPem = fs26.readFileUtf8(caCertFile);
@@ -62910,19 +62911,19 @@ function resolveTrustBundle(params) {
62910
62911
  }
62911
62912
  const combined = `${inheritedPem.trimEnd()}
62912
62913
  ${caPem}`;
62913
- const bundle = import_node_path36.default.join(bundlesDir, `${(0, import_node_crypto12.createHash)("sha256").update(combined).digest("hex").slice(0, BUNDLE_NAME_HEX_DIGITS)}.pem`);
62914
+ const bundle = import_node_path37.default.join(bundlesDir, `${(0, import_node_crypto12.createHash)("sha256").update(combined).digest("hex").slice(0, BUNDLE_NAME_HEX_DIGITS)}.pem`);
62914
62915
  if (!fs26.exists(bundle)) {
62915
62916
  fs26.mkdirp(bundlesDir);
62916
62917
  fs26.writeFileAtomic(bundle, combined);
62917
62918
  }
62918
62919
  return { path: bundle };
62919
62920
  }
62920
- var import_node_crypto12, import_node_path36, BUNDLE_NAME_HEX_DIGITS;
62921
+ var import_node_crypto12, import_node_path37, BUNDLE_NAME_HEX_DIGITS;
62921
62922
  var init_trust = __esm({
62922
62923
  "src/frontdoor/trust.ts"() {
62923
62924
  "use strict";
62924
62925
  import_node_crypto12 = require("node:crypto");
62925
- import_node_path36 = __toESM(require("node:path"), 1);
62926
+ import_node_path37 = __toESM(require("node:path"), 1);
62926
62927
  BUNDLE_NAME_HEX_DIGITS = 16;
62927
62928
  }
62928
62929
  });
@@ -63114,10 +63115,10 @@ async function downloadAndInstall(ports, asset, target) {
63114
63115
  const tempDir = ports.fs.mkdtemp();
63115
63116
  try {
63116
63117
  const assetUrl = `${DOWNLOAD_BASE_URL}/${asset}`;
63117
- ports.fs.writeFileBytes(import_node_path37.default.join(tempDir, asset), await mustDownload(ports.http, assetUrl));
63118
- ports.fs.writeFileUtf8(import_node_path37.default.join(tempDir, `${asset}.sha256`), Buffer.from(await mustDownload(ports.http, `${assetUrl}.sha256`)).toString("utf8"));
63119
- const downloaded = ports.fs.readFileBytes(import_node_path37.default.join(tempDir, asset));
63120
- const sidecar = ports.fs.readFileUtf8(import_node_path37.default.join(tempDir, `${asset}.sha256`));
63118
+ ports.fs.writeFileBytes(import_node_path38.default.join(tempDir, asset), await mustDownload(ports.http, assetUrl));
63119
+ ports.fs.writeFileUtf8(import_node_path38.default.join(tempDir, `${asset}.sha256`), Buffer.from(await mustDownload(ports.http, `${assetUrl}.sha256`)).toString("utf8"));
63120
+ const downloaded = ports.fs.readFileBytes(import_node_path38.default.join(tempDir, asset));
63121
+ const sidecar = ports.fs.readFileUtf8(import_node_path38.default.join(tempDir, `${asset}.sha256`));
63121
63122
  if (downloaded === void 0 || sidecar === void 0) {
63122
63123
  throw new UpdateDownloadError(`the downloaded files for ${asset} are missing from ${tempDir}`);
63123
63124
  }
@@ -63126,7 +63127,7 @@ async function downloadAndInstall(ports, asset, target) {
63126
63127
  if (expected === void 0 || expected !== actual) {
63127
63128
  throw new UpdateDownloadError(`checksum mismatch for ${asset} (expected ${expected ?? "(none)"}, got ${actual})`);
63128
63129
  }
63129
- const tempBinary = import_node_path37.default.join(import_node_path37.default.dirname(target), `.${import_node_path37.default.basename(target)}.${String(process.pid)}.${(0, import_node_crypto13.randomUUID)()}.tmp`);
63130
+ const tempBinary = import_node_path38.default.join(import_node_path38.default.dirname(target), `.${import_node_path38.default.basename(target)}.${String(process.pid)}.${(0, import_node_crypto13.randomUUID)()}.tmp`);
63130
63131
  ports.fs.writeFileBytes(tempBinary, downloaded);
63131
63132
  try {
63132
63133
  ports.fs.chmod(tempBinary, EXECUTABLE_MODE);
@@ -63173,12 +63174,12 @@ async function runSelfUpdate(ports, options) {
63173
63174
  }
63174
63175
  return { current: options.currentVersion, latest, action: "updated" };
63175
63176
  }
63176
- var import_node_crypto13, import_node_path37, LATEST_RELEASE_URL, DOWNLOAD_BASE_URL, MACOS_X64_NOTE, BREW_PREFIXES, EXECUTABLE_MODE, UpdateChannelError, UpdateConflictError, UpdateDownloadError;
63177
+ var import_node_crypto13, import_node_path38, LATEST_RELEASE_URL, DOWNLOAD_BASE_URL, MACOS_X64_NOTE, BREW_PREFIXES, EXECUTABLE_MODE, UpdateChannelError, UpdateConflictError, UpdateDownloadError;
63177
63178
  var init_update = __esm({
63178
63179
  "src/update/update.ts"() {
63179
63180
  "use strict";
63180
63181
  import_node_crypto13 = require("node:crypto");
63181
- import_node_path37 = __toESM(require("node:path"), 1);
63182
+ import_node_path38 = __toESM(require("node:path"), 1);
63182
63183
  init_cliError();
63183
63184
  LATEST_RELEASE_URL = "https://github.com/ExaDev/agent-shim/releases/latest";
63184
63185
  DOWNLOAD_BASE_URL = "https://github.com/ExaDev/agent-shim/releases/latest/download";
@@ -63349,13 +63350,13 @@ function agentShimCliPath(distDir = typeof __AGENT_SHIM_DIST_DIR__ === "string"
63349
63350
  if (distDir === void 0) {
63350
63351
  throw new OwnCliPathUnknownError();
63351
63352
  }
63352
- return import_node_path39.default.join(distDir, OWN_CLI_FILE_NAME);
63353
+ return import_node_path40.default.join(distDir, OWN_CLI_FILE_NAME);
63353
63354
  }
63354
- var import_node_path39, OWN_CLI_FILE_NAME, OwnCliPathUnknownError;
63355
+ var import_node_path40, OWN_CLI_FILE_NAME, OwnCliPathUnknownError;
63355
63356
  var init_ownCli = __esm({
63356
63357
  "src/ownCli.ts"() {
63357
63358
  "use strict";
63358
- import_node_path39 = __toESM(require("node:path"), 1);
63359
+ import_node_path40 = __toESM(require("node:path"), 1);
63359
63360
  init_cliError();
63360
63361
  OWN_CLI_FILE_NAME = "cli.cjs";
63361
63362
  OwnCliPathUnknownError = class extends CliError {
@@ -63743,7 +63744,7 @@ function buildEnv(params) {
63743
63744
  const parentCustomHeaders = params.baseEnv.ANTHROPIC_CUSTOM_HEADERS;
63744
63745
  let providerCustomHeaders;
63745
63746
  if (!params.configDirEscapeHatch && params.resolvedIdentityName !== void 0) {
63746
- env.CLAUDE_CONFIG_DIR = import_node_path40.default.join(params.identitiesDir, params.resolvedIdentityName);
63747
+ env.CLAUDE_CONFIG_DIR = import_node_path41.default.join(params.identitiesDir, params.resolvedIdentityName);
63747
63748
  }
63748
63749
  if (params.provider !== void 0) {
63749
63750
  const providerEnv = params.provider.definition.kind !== void 0 && params.provider.definition.kind !== "http" ? {} : params.provider.definition.env ?? {};
@@ -63788,11 +63789,11 @@ function buildEnv(params) {
63788
63789
  }
63789
63790
  return env;
63790
63791
  }
63791
- var import_node_path40, LOOPBACK_HOSTS, PROVIDER_SESSION_PLACEHOLDER;
63792
+ var import_node_path41, LOOPBACK_HOSTS, PROVIDER_SESSION_PLACEHOLDER;
63792
63793
  var init_flags = __esm({
63793
63794
  "src/launcher/flags.ts"() {
63794
63795
  "use strict";
63795
- import_node_path40 = __toESM(require("node:path"), 1);
63796
+ import_node_path41 = __toESM(require("node:path"), 1);
63796
63797
  init_envBool();
63797
63798
  init_cliError();
63798
63799
  init_conditions();
@@ -63880,7 +63881,7 @@ function newestTranscript(fs26, projectDir) {
63880
63881
  if (!name.endsWith(".jsonl")) {
63881
63882
  continue;
63882
63883
  }
63883
- const candidate = import_node_path41.default.join(projectDir, name);
63884
+ const candidate = import_node_path42.default.join(projectDir, name);
63884
63885
  const stat = fs26.lstat(candidate);
63885
63886
  if (stat?.kind === "file" && stat.mtimeMs > newestMs) {
63886
63887
  newestMs = stat.mtimeMs;
@@ -63890,24 +63891,24 @@ function newestTranscript(fs26, projectDir) {
63890
63891
  return newest;
63891
63892
  }
63892
63893
  function latestConversationId(fs26, params) {
63893
- const file2 = newestTranscript(fs26, import_node_path41.default.join(params.claudeHome, "projects", projectDirNameOf(params.cwd)));
63894
- return file2 === void 0 ? void 0 : import_node_path41.default.basename(file2, ".jsonl");
63894
+ const file2 = newestTranscript(fs26, import_node_path42.default.join(params.claudeHome, "projects", projectDirNameOf(params.cwd)));
63895
+ return file2 === void 0 ? void 0 : import_node_path42.default.basename(file2, ".jsonl");
63895
63896
  }
63896
63897
  function resumedContextTokens(fs26, params) {
63897
63898
  const target = resumeTargetOf(params.passthrough);
63898
63899
  if (target === void 0) {
63899
63900
  return void 0;
63900
63901
  }
63901
- const projectDir = import_node_path41.default.join(params.claudeHome, "projects", projectDirNameOf(params.cwd));
63902
- const file2 = target.kind === "id" ? import_node_path41.default.join(projectDir, `${target.id}.jsonl`) : newestTranscript(fs26, projectDir);
63902
+ const projectDir = import_node_path42.default.join(params.claudeHome, "projects", projectDirNameOf(params.cwd));
63903
+ const file2 = target.kind === "id" ? import_node_path42.default.join(projectDir, `${target.id}.jsonl`) : newestTranscript(fs26, projectDir);
63903
63904
  const text2 = file2 === void 0 ? void 0 : fs26.readFileUtf8(file2);
63904
63905
  return text2 === void 0 ? void 0 : contextTokensOfTranscript(text2);
63905
63906
  }
63906
- var import_node_path41;
63907
+ var import_node_path42;
63907
63908
  var init_resumeContext = __esm({
63908
63909
  "src/usage/resumeContext.ts"() {
63909
63910
  "use strict";
63910
- import_node_path41 = __toESM(require("node:path"), 1);
63911
+ import_node_path42 = __toESM(require("node:path"), 1);
63911
63912
  }
63912
63913
  });
63913
63914
 
@@ -63940,7 +63941,28 @@ function hasSettingsArgument(passthrough) {
63940
63941
  return (end === -1 ? passthrough : passthrough.slice(0, end)).some((token) => token === "--settings" || token.startsWith("--settings="));
63941
63942
  }
63942
63943
  function withSupervision(passthrough, supervised) {
63943
- return supervised.conversation === "as-given" ? passthrough : withConversation(passthrough, supervised.conversation, supervised.sessionId);
63944
+ if (supervised.conversation === "as-given") {
63945
+ return passthrough;
63946
+ }
63947
+ const conversed = withConversation(passthrough, supervised.conversation, supervised.sessionId);
63948
+ if (supervised.model === void 0) {
63949
+ return conversed;
63950
+ }
63951
+ const end = conversed.indexOf(TERMINATOR2);
63952
+ const head = end === -1 ? conversed : conversed.slice(0, end);
63953
+ const tail = end === -1 ? [] : conversed.slice(end);
63954
+ const kept = [];
63955
+ for (let index = 0; index < head.length; index += 1) {
63956
+ const token = head[index];
63957
+ if (token === "--model") {
63958
+ index += 1;
63959
+ continue;
63960
+ }
63961
+ if (token !== void 0 && !token.startsWith("--model=")) {
63962
+ kept.push(token);
63963
+ }
63964
+ }
63965
+ return [...kept, "--model", supervised.model, ...tail];
63944
63966
  }
63945
63967
  function withLauncherSettings(passthrough, settings2) {
63946
63968
  if (settings2 === void 0) {
@@ -65269,7 +65291,7 @@ var init_translate2 = __esm({
65269
65291
 
65270
65292
  // src/providerCatalogue.ts
65271
65293
  function catalogueCachePath(paths, name) {
65272
- return import_node_path42.default.join(paths.catalogueDir, `${name}.json`);
65294
+ return import_node_path43.default.join(paths.catalogueDir, `${name}.json`);
65273
65295
  }
65274
65296
  function parseCatalogueCache(text2) {
65275
65297
  if (text2 === void 0) {
@@ -65345,11 +65367,11 @@ async function fetchCatalogue(params) {
65345
65367
  }
65346
65368
  throw new CatalogueFetchError(`no catalogue from ${outcomes.join("; ")}`);
65347
65369
  }
65348
- var import_node_path42, import_picomatch3, DEFAULT_CANDIDATE_URLS, MS_PER_SECOND8, SECONDS_PER_HOUR3, HOURS_PER_DAY4, MS_PER_HOUR3, HOURS_BETWEEN_RETRIES, HTTP_OK, HTTP_MULTIPLE_CHOICES, CATALOGUE_MAX_AGE_MS, CATALOGUE_RETRY_MS, CATALOGUE_REQUEST_SECONDS, CATALOGUE_REQUEST_TIMEOUT_MS, CATALOGUE_REFRESH_TIMEOUT_MS, CatalogueModelSchema, CatalogueCacheSchema, CatalogueFetchError;
65370
+ var import_node_path43, import_picomatch3, DEFAULT_CANDIDATE_URLS, MS_PER_SECOND8, SECONDS_PER_HOUR3, HOURS_PER_DAY4, MS_PER_HOUR3, HOURS_BETWEEN_RETRIES, HTTP_OK, HTTP_MULTIPLE_CHOICES, CATALOGUE_MAX_AGE_MS, CATALOGUE_RETRY_MS, CATALOGUE_REQUEST_SECONDS, CATALOGUE_REQUEST_TIMEOUT_MS, CATALOGUE_REFRESH_TIMEOUT_MS, CatalogueModelSchema, CatalogueCacheSchema, CatalogueFetchError;
65349
65371
  var init_providerCatalogue = __esm({
65350
65372
  "src/providerCatalogue.ts"() {
65351
65373
  "use strict";
65352
- import_node_path42 = __toESM(require("node:path"), 1);
65374
+ import_node_path43 = __toESM(require("node:path"), 1);
65353
65375
  import_picomatch3 = __toESM(require_picomatch2(), 1);
65354
65376
  init_zod();
65355
65377
  DEFAULT_CANDIDATE_URLS = 2;
@@ -65489,10 +65511,10 @@ function routedModelRows(models, providers) {
65489
65511
  return [...virtual, ...concrete.filter((row) => visible(row.model))];
65490
65512
  }
65491
65513
  function modelPickerSettings(provider, catalogue = []) {
65492
- return modelPickerSettingsFromRows(providerModelRows(provider, catalogue));
65514
+ return modelPickerSettingsFromRows(providerModelRows(provider, catalogue), true);
65493
65515
  }
65494
- function modelPickerSettingsFromRows(options) {
65495
- return options.length === 0 ? void 0 : JSON.stringify({ modelPicker: { options, replaceBuiltInOptions: true } });
65516
+ function modelPickerSettingsFromRows(options, replaceBuiltInOptions) {
65517
+ return options.length === 0 ? void 0 : JSON.stringify({ modelPicker: { options, replaceBuiltInOptions } });
65496
65518
  }
65497
65519
  var CONTEXT_MARKER_1M2, TIER_BEHAVES_AS, TIER_ENV_VARIABLES;
65498
65520
  var init_modelPicker = __esm({
@@ -65941,7 +65963,7 @@ function decideLaunch(params, readOnly) {
65941
65963
  identityDefaultConfigProfile: loadedIdentity?.config.defaultConfigProfile,
65942
65964
  globalDefaultConfigProfile: params.globalDefaultConfigProfile
65943
65965
  });
65944
- if (configProfileDecision.name !== void 0 && params.allowMissingConfigProfile !== true && fs26.readConfigFile(import_node_path43.default.join(paths.configProfilesDir, `${configProfileDecision.name}.json`)) === void 0) {
65966
+ if (configProfileDecision.name !== void 0 && params.allowMissingConfigProfile !== true && fs26.readConfigFile(import_node_path44.default.join(paths.configProfilesDir, `${configProfileDecision.name}.json`)) === void 0) {
65945
65967
  log.error(
65946
65968
  `agent-shim: no configuration profile named "${configProfileDecision.name}" (selected via ${configProfileDecision.source}). Run \`agent-shim profile add ${configProfileDecision.name}\` first.`
65947
65969
  );
@@ -66048,7 +66070,7 @@ function decideLaunch(params, readOnly) {
66048
66070
  const flags = loginlessProvider === void 0 ? requestedFlags : { ...requestedFlags, remoteControl: false };
66049
66071
  const catalogue = selectedProvider === void 0 ? void 0 : parseCatalogueCache(params.fs.readFileUtf8(catalogueCachePath(paths, selectedProvider.name)));
66050
66072
  const routesByName = flags.routeByName || selectedProvider !== void 0 && isRouterProvider(selectedProvider.definition);
66051
- const pickerSettings = routesByName ? modelPickerSettingsFromRows(routedModelRows(readModels(paths) ?? {}, listProviders(paths).map((entry) => [entry.name, entry.provider]))) : selectedProvider === void 0 ? void 0 : modelPickerSettings(selectedProvider.definition, catalogue?.models);
66073
+ const pickerSettings = routesByName ? modelPickerSettingsFromRows(routedModelRows(readModels(paths) ?? {}, listProviders(paths).map((entry) => [entry.name, entry.provider])), selectedProvider !== void 0) : selectedProvider === void 0 ? void 0 : modelPickerSettings(selectedProvider.definition, catalogue?.models);
66052
66074
  const callerSettings = hasSettingsArgument(parsedArgv.rest);
66053
66075
  if (pickerSettings !== void 0 && callerSettings) {
66054
66076
  notes.push("--settings was passed, so /model keeps Claude Code's own model names");
@@ -66059,7 +66081,7 @@ function decideLaunch(params, readOnly) {
66059
66081
  extraFlags: splitExtraFlags(env.CLAUDE_EXTRA_FLAGS),
66060
66082
  passthrough: withLauncherSettings(params.supervised === void 0 ? parsedArgv.rest : withSupervision(parsedArgv.rest, params.supervised), launcherSettings)
66061
66083
  });
66062
- const configDir = configDirEscapeHatchApplies || identityDecision.name === void 0 ? env.CLAUDE_CONFIG_DIR : import_node_path43.default.join(paths.identitiesDir, identityDecision.name);
66084
+ const configDir = configDirEscapeHatchApplies || identityDecision.name === void 0 ? env.CLAUDE_CONFIG_DIR : import_node_path44.default.join(paths.identitiesDir, identityDecision.name);
66063
66085
  const decision = {
66064
66086
  identitySource: identityDecision.source,
66065
66087
  configDirEscapeHatch: identityDecision.configDirEscapeHatch,
@@ -66110,7 +66132,7 @@ function prepareLaunch(params) {
66110
66132
  let warnings = [];
66111
66133
  const updateCheck = runLaunchUpdateCheck({
66112
66134
  mode: params.updateMode ?? "off",
66113
- checkPath: import_node_path43.default.join(paths.root, "update.check"),
66135
+ checkPath: import_node_path44.default.join(paths.root, "update.check"),
66114
66136
  currentVersion: package_default.version,
66115
66137
  port: params.update
66116
66138
  });
@@ -66252,12 +66274,12 @@ function runLaunchPlan(plan, spawn8) {
66252
66274
  function runLauncher(params) {
66253
66275
  params.proc.exit(runLaunchPlan(prepareLaunch(params), params.spawn));
66254
66276
  }
66255
- var import_node_crypto18, import_node_path43;
66277
+ var import_node_crypto18, import_node_path44;
66256
66278
  var init_launcher = __esm({
66257
66279
  "src/launcher.ts"() {
66258
66280
  "use strict";
66259
66281
  import_node_crypto18 = require("node:crypto");
66260
- import_node_path43 = __toESM(require("node:path"), 1);
66282
+ import_node_path44 = __toESM(require("node:path"), 1);
66261
66283
  init_package();
66262
66284
  init_envBool();
66263
66285
  init_argv();
@@ -66348,7 +66370,7 @@ function realPrepareLaunchParams(paths, options) {
66348
66370
  frontdoor: realFrontDoorPort(paths, options.spawnDaemon),
66349
66371
  credentials: { ...realCredentialPort, cache: realCredentialCacheEnv(paths) },
66350
66372
  hold: realHoldPort,
66351
- hasStoredLogin: (identity) => identitySignIn(realFarmFs, { platform: process.platform, run: realRunPort }, { farmRoot: import_node_path44.default.join(paths.identitiesDir, identity), hasCredentialBlock: false }).state !== "signed-out",
66373
+ hasStoredLogin: (identity) => identitySignIn(realFarmFs, { platform: process.platform, run: realRunPort }, { farmRoot: import_node_path45.default.join(paths.identitiesDir, identity), hasCredentialBlock: false }).state !== "signed-out",
66352
66374
  ...farm.directoryIdentity === void 0 ? {} : { directoryPinnedIdentity: farm.directoryIdentity },
66353
66375
  ...farm.directoryConfigProfile === void 0 ? {} : { directoryRuleConfigProfile: farm.directoryConfigProfile },
66354
66376
  ...farm.globalDefaultConfigProfile === void 0 ? {} : { globalDefaultConfigProfile: farm.globalDefaultConfigProfile },
@@ -66386,12 +66408,12 @@ function resolveClaudeLaunch(options) {
66386
66408
  };
66387
66409
  return { resolution: resolveLaunch(realPrepareLaunchParams(paths, { proc, log, spawnDaemon, farm: buildFarmRuntime(paths, options.cwd) })), warnings };
66388
66410
  }
66389
- var import_node_os9, import_node_path44, import_node_crypto19, LaunchRefusedError;
66411
+ var import_node_os9, import_node_path45, import_node_crypto19, LaunchRefusedError;
66390
66412
  var init_launchWiring = __esm({
66391
66413
  "src/launchWiring.ts"() {
66392
66414
  "use strict";
66393
66415
  import_node_os9 = __toESM(require("node:os"), 1);
66394
- import_node_path44 = __toESM(require("node:path"), 1);
66416
+ import_node_path45 = __toESM(require("node:path"), 1);
66395
66417
  import_node_crypto19 = require("node:crypto");
66396
66418
  init_cliError();
66397
66419
  init_claudeShim();
@@ -81043,7 +81065,7 @@ async function jGe(e14, t10, n10, r10) {
81043
81065
  if (d.length === 0) return [];
81044
81066
  return iv(Buffer.from(gZ(d)), { limit: r10.limit, offset: r10.offset }, l, c10);
81045
81067
  }
81046
- var import_node_module, import_crypto, import_crypto2, import_path, import_node_fs15, import_node_process4, import_fs, import_os, import_path2, yy, import_fs2, import_promises, import_path3, import_readline, import_promises2, import_path4, import_os2, import_path5, Se, import_promises3, xe, import_promises4, import_fs3, import_promises5, import_os3, import_path6, import_promises6, import_os4, import_node_path45, import_node_os10, import_node_process5, import_path7, import_events, import_fs4, import_promises7, import_path8, import_child_process, import_util9, import_child_process2, import_fs5, import_path9, import_path10, import_crypto3, import_fs6, import_path11, import_promises8, import_path12, import_path13, import_promises9, import_path14, import_path15, import_fs7, import_promises10, import_path16, import_crypto4, import_path17, import_async_hooks, import_fs8, import_promises11, import_crypto5, import_fs9, import_promises12, import_path18, import_promises13, import_path19, import_crypto6, import_path20, import_path21, import_path22, import_path23, import_promises14, import_fs10, import_promises15, import_path24, import_util10, import_path25, import_os5, import_path26, import_path27, import_path28, import_path29, import_path30, import_net, import_os6, import_child_process3, import_fs11, import_child_process4, import_crypto7, import_promises16, import_module, import_os7, import_path31, import_url, import_events2, import_child_process5, import_fs12, import_readline2, import_string_decoder, import_fs13, import_promises17, import_os8, import_path32, import_crypto8, import_os9, import_fs14, import_path33, import_crypto9, import_fs15, import_promises18, import_path34, IZ, DZ, v_, LZ, OT, NZ, UZ, kT, X, FZ, dr, HZ, jZ, BZ, ot, st, ed, Kv, Te, Me, Oo, nd, hF, Xv, Qv, rd, LF, or, WF, ZF, sA, XF, od, sd, hg, id, Sg, Oz, fA, $z, Wz, Zz, s$, a$, d$, f$, g$, _$, E$, v$, T$, O$, I$, L$, wg, z$, j$, G$, V$, yA, SA, rH, lH, uH, _H, EH, EA, RH, TH, kH, DH, NH, zH, jH, GH, VH, ZH, JH, ej, nj, ij, cj, uj, CA, bj, Aj, wj, PT, KZ, GZ, VGe, VZ, MT, wr, jo, JZ, XZ, NT, UT, FT, zT, Bo, $T, HT, jT, BT, a4, sp, l4, c4, vt, u4, Nt, KT, d4, p4, uc, GT, m4, g4, WT, _4, y4, VT, Dn, Et, b4, C4, v4, A4, ra, x4, ip, qT, ZT, w4, O4, ro, P4, I4, D4, L4, M4, N4, U4, YT, JT, Sn, H4, Ko, j4, oo, XT, QT, G4, W4, V4, ew, Z4, Y4, tw, X4, nw, R_, rw, ow, Go, sw, iw, aw, lw, ei, aY, cw, Or, cY, uw, dw, lp, pw, cp, mY, gY, up, _Y, aa, fw, la, EY, bY, CY, vY, AY, RY, xY, TY, wY, OY, kY, PY, IY, mw, x_, gw, ca, MY, et, dp, hw, pp, zY, $Y, _w, HY, ua, yw, wt, KY, T_, Sw, WY, VY, qY, so, mp, Ew, vw, bw, YY, Cw, JY, XY, kr, QY, e9, Wo, n9, da, o9, s9, i9, a9, l9, c9, u9, d9, p9, f9, m9, g9, h9, _9, y9, S9, E9, b9, C9, v9, A9, R9, x9, T9, Qe, Aw, pa, hp, Rw, dc, k9, w_, P9, Pr, xw, I9, fa, D9, L9, _p, N9, ma, yp, z9, Tw, $9, H9, ww, Vo, Ir, pc, W9, V9, q9, Ow, Y9, Sp, J9, Ep, X9, qo, Q9, bp, kw, eJ, Pw, Iw, Dw, Lw, tJ, nJ, rJ, oJ, sJ, ti, io, iJ, Mw, Nw, Cp, aJ, Uw, Fw, ga, pr, uJ, Fe, $w, O_, k_, I_, ha, Bw, D_, qw, Vw, N_, U_, yJ, _a3, Yo, Zw, bJ, Rp, Yw, vJ, AJ, Jw, xp, Xw, Tp, Qw, kJ, ya, IJ, DJ, Sa, MJ, fc, NJ, eO, FJ, zJ, $J, tO, Ea, jJ, nO, rO, sO, iO, Vn, GJ, Ln, Jo, aO, lO, cO, wp, XJ, QJ, uO, ba, dO, pO, fO, Dr, ao, mO, Ca, gO, z_, $_, H_, j_, B_, K_, G_, W_, V_, q_, Z_, _O, Y_, J_, yO, X_, c3, Q_, ey, ty, ny, ry, oy, sy, iy, ay, ly, cy, we, SO, en, d3, Pp, vO, g3, gy, wO, S3, BO, KO, Ip, Dp, v3, GO, WO, F9e, IO, A3, hy, x3, NO, I3, Ay, Ry, D3, xy, L3, bc, xa, Ty, wy, Oy, ky, XO, Py, Iy, Dy, Ly, My, Ny, Uy, Fy, zy, nk, rk, d3e, p3e, f3e, m3e, g3e, U3, jp, jy, ik, By, Ky, lk, $3, uk, ck, G3, W3, V3, it, Y3, J3, hk, tXe, Q3, kt, We, gX, Ta, SX, mr, Yp, Jp, eS, nS, yXe, IX, DX, rS, ka, oS, Ok, kk, HX, jX, ef, bXe, Uk, Mr, wc, Fk, Pa, OXe, kXe, iS, PXe, IXe, DXe, GX, YX, JX, XX, QX, e6, t6, Yk, n6, r6, o6, s6, i6, a6, l6, c6, Vk, uS, lf, dS, Qk, eP, uf, os10, qXe, ZXe, h6, tP, df, _6, y6, S6, E6, b6, Jn, gr, nP, rP, Dc, pS, oP, gS, lP, C6, mS, lS, sP, w6, O6, dP, k6, YXe, JXe, P6, I6, pf, L6, fP, XXe, QXe, M6, SS, z6, $6, j6, bP, CP, G6, Lc, si, Z6, ES, bS, X6, Q6, e5, t5, n5, u5, r5, o5, s5, i5, a5, l5, c5, u52, d5, p5, f5, m5, g5, h5, _5, y5, S5, E5, b5, C5, v5, A5, R5, x5, T5, w5, O5, k5, P5, I5, D5, L5, M5, N5, U5, F5, z5, $5, H5, j5, B5, K5, G5, W5, V5, q5, Z5, Y5, J5, X5, Q5, e8, t8, n8, r8, o8, s8, i8, a8, l8, c8, u8, d8, CS, p8, f8, m8, g8, h8, _8, y8, S8, E8, b8, C8, v8, A8, R8, x8, T8, w8, O8, k8, P8, I8, D8, L8, M8, N8, U8, F8, z8, $8, H8, j8, B8, K8, G8, W8, V8, q8, Z8, Y8, J8, X8, Q8, e7, t7, n7, r7, o7, s7, i7, a7, l7, c7, u7, d7, p7, f7, m7, g7, h7, _7, y7, S7, E7, b7, C7, TP, v7, L6e, RP, A7, x7, kP, ff, U6e, F6e, Ua, z6e, $6e, H6e, j6e, PP, IP, vS, DP, w7, LP, O7, k7, P7, AS, RS, xS, I7, MP, NP, D7, G6e, L7, W6e, M7, N7, UP, V6e, U7, F7, z7, $7, H7, j7, B7, q6e, is, wS, Fa, K7, G7, W7, i5e, X7, Q7, HP, $P, BP, tQ, WP, VP, JP, _Q, QP, eI, xQ, Uc, DS, $a, wQ, OQ, kQ, PQ, IQ, DQ, LQ, MQ, NQ, UQ, FQ, zQ, $Q, HQ, jQ, BQ, KQ, GQ, WQ, VQ, qQ, ZQ, YQ, JQ, XQ, QQ, eee, tee, nee, ree, oee, see, iee, aee, lee, cee, uee, dee, pee, fee, mee, gee, hee, _ee, yee, See, Eee, bee, Cee, vee, Aee, Ree, xee, Tee, wee, Oee, kee, Pee, Iee, Dee, Lee, Mee, Nee, Uee, Fee, zee, $ee, Hee, jee, Bee, Kee, Gee, Wee, Vee, qee, Zee, Yee, Jee, Xee, Qee, ete, tte, nte, rte, ote, ste, ite, ate, lte, cte, ute, dte, pte, fte, mte, gte, hte, _te, yte, Ste, Ete, bte, Cte, vte, Ate, Rte, xte, Tte, wte, Ote, kte, Pte, Ite, Dte, Lte, Mte, Nte, Ute, Fte, zte, $te, Hte, jte, Bte, Kte, Gte, Wte, Vte, qte, Zte, Yte, Jte, Xte, Qte, ene, tne, nne, rne, one, sne, ine, ane, lne, cne, une, dne, pne, fne, mne, gne, hne, _ne, yne, Sne, Ene, bne, Cne, vne, Ane, Rne, xne, Tne, wne, One, kne, Pne, Ine, Dne, Lne, Mne, Nne, Une, Fne, zne, $ne, Hne, jne, Bne, Kne, Gne, Wne, Vne, qne, Zne, Yne, Jne, Xne, Qne, ere, tre, nre, rre, ore, sre, ire, are, lre, cre, ure, dre, pre, fre, mre, gre, hre, _re, yre, Sre, Ere, bre, Cre, vre, Are, Rre, xre, Tre, wre, Ore, kre, Pre, Ire, Dre, Lre, Mre, Nre, Ure, Fre, zre, $re, Hre, jre, Bre, Kre, Gre, Wre, Vre, qre, Zre, Yre, Jre, Xre, Qre, eoe, toe, noe, roe, ooe, soe, ioe, aoe, loe, coe, uoe, doe, poe, foe, moe, goe, hoe, _oe, yoe, Soe, Eoe, boe, Coe, voe, Aoe, Roe, xoe, Toe, woe, Ooe, koe, Poe, Ioe, Doe, Loe, Moe, Noe, Uoe, Foe, zoe, $oe, Hoe, joe, Boe, Koe, Goe, Woe, Voe, qoe, Zoe, Yoe, Joe, Xoe, Qoe, ese, tse, nse, rse, ose, sse, ise, ase, lse, cse, use, dse, pse, fse, mse, gse, hse, _se, yse, Sse, Ese, LS, bse, Cse, vse, Ase, Rse, xse, Tse, wse, Ose, kse, Pse, Ise, Dse, Lse, Mse, Nse, Use, Fse, zse, $se, Hse, jse, Bse, Kse, Gse, Wse, Vse, qse, Zse, Yse, Jse, Xse, Qse, eie, tie, nie, rie, oie, sie, iie, aie, lie, cie, uie, die, pie, fie, mie, gie, hie, _ie, yie, Sie, Eie, bie, Cie, vie, Aie, Rie, xie, Tie, wie, Oie, kie, Pie, Iie, Die, Lie, Mie, Nie, Uie, Fie, zie, $ie, Hie, jie, Bie, Kie, Gie, Wie, Vie, qie, Zie, Yie, Jie, Xie, Qie, eae, tae, nae, rae, oae, sae, iae, aae, lae, cae, uae, dae, pae, fae, mae, gae, hae, _ae, yae, Sae, Eae, bae, Cae, vae, Aae, Rae, xae, Tae, wae, Oae, kae, Pae, Iae, Dae, Lae, Mae, Nae, Uae, Fae, zae, $ae, Hae, jae, Bae, Kae, Gae, Wae, Vae, qae, Zae, Yae, Jae, Xae, Qae, ele, tle, nle, rle, ole, sle, ile, ale, lle, cle, ule, dle, ple, fle, mle, gle, hle, _le, yle, Sle, Ele, ble, Cle, vle, Ale, Rle, xle, Tle, wle, Ole, kle, Ple, Ile, Dle, Lle, Mle, Nle, Ule, Fle, zle, $le, Hle, jle, Ble, Kle, Gle, Wle, Vle, qle, Zle, Yle, Jle, MS, Xle, Qle, ece, tce, nce, rce, oce, sce, ice, ace, lce, cce, uce, dce, pce, fce, mce, gce, hce, _ce, yce, Sce, Ece, bce, Cce, vce, Ace, Rce, xce, Tce, wce, Oce, kce, Pce, Ice, Dce, Lce, Mce, Nce, Uce, Fce, zce, $ce, Hce, jce, Bce, Kce, Gce, Wce, Vce, qce, Zce, Yce, Jce, Xce, Qce, eue, tue, nue, rue, oue, sue, iue, aue, lue, cue, uue, due, pue, fue, mue, gue, hue, _ue, yue, Sue, Eue, bue, Cue, vue, Aue, Rue, xue, Tue, wue, Oue, kue, Pue, Iue, Due, Lue, Mue, Nue, Uue, Fue, zue, $ue, Hue, jue, Bue, Kue, Gue, Wue, Vue, que, Zue, Yue, Jue, Xue, Que, ede, tde, nde, rde, ode, sde, ide, ade, lde, cde, ude, dde, pde, fde, mde, gde, hde, _de, yde, Sde, Ede, bde, Cde, vde, Ade, Rde, xde, Tde, wde, Ode, kde, Pde, Ide, Dde, Lde, Mde, Nde, Ude, Fde, zde, $de, Hde, jde, Bde, Kde, Gde, Wde, Vde, qde, Zde, Yde, Jde, Xde, Qde, epe, tpe, npe, rpe, ope, spe, ipe, ape, lpe, cpe, upe, dpe, ppe, fpe, mpe, gpe, hpe, _pe, ype, Spe, Epe, bpe, Cpe, vpe, Ape, Rpe, xpe, Tpe, wpe, Ope, kpe, Ppe, Ipe, Dpe, Lpe, Mpe, Npe, Upe, Fpe, zpe, $pe, Hpe, jpe, Bpe, Kpe, Gpe, Wpe, Vpe, qpe, Zpe, Ype, Jpe, Xpe, Qpe, efe, tfe, nfe, rfe, ofe, sfe, ife, afe, lfe, cfe, ufe, dfe, pfe, ffe, mfe, gfe, hfe, _fe, yfe, Sfe, Efe, bfe, Cfe, vfe, Afe, Rfe, xfe, Tfe, wfe, Ofe, kfe, Pfe, Ife, Dfe, Lfe, Mfe, Nfe, Ufe, Ffe, zfe, $fe, Hfe, jfe, Bfe, Kfe, Gfe, Wfe, Vfe, qfe, Zfe, Yfe, Jfe, Xfe, Qfe, eme, tme, nme, rme, ome, sme, ime, ame, lme, cme, ume, dme, pme, fme, mme, gme, hme, _me, yme, Sme, Eme, bme, Cme, vme, Ame, Rme, xme, Tme, wme, Ome, kme, Pme, Ime, Dme, Lme, Mme, Nme, Ume, Fme, zme, $me, Hme, jme, Bme, Kme, Gme, Wme, Vme, qme, Zme, Yme, Jme, NS, Xme, Qme, ege, tge, nge, rge, oge, sge, ige, age, lge, cge, uge, dge, pge, fge, mge, gge, hge, _ge, yge, Sge, Ege, bge, Cge, vge, Age, Rge, xge, Tge, wge, Oge, kge, Pge, Ige, Dge, Lge, Mge, Nge, Uge, Fge, zge, $ge, Hge, US, jge, Bge, Kge, Gge, Wge, Vge, qge, Zge, Yge, Jge, Xge, Qge, ehe, the, nhe, rhe, ohe, she, ihe, ahe, lhe, che, uhe, dhe, phe, fhe, mhe, ghe, hhe, _he, yhe, She, Ehe, bhe, Che, vhe, Ahe, Rhe, xhe, The, whe, Ohe, khe, Phe, Ihe, Dhe, Lhe, Mhe, Nhe, FS, rI, oI, Uhe, Fhe, zhe, $he, Hhe, jhe, Bhe, Khe, Ghe, Whe, Vhe, qhe, Zhe, Yhe, Jhe, Xhe, Qhe, e_e, t_e, n_e, r_e, o_e, s_e, i_e, a_e, l_e, c_e, u_e, d_e, p_e, f_e, m_e, g_e, h_e, __e, y_e, S_e, E_e, b_e, C_e, v_e, A_e, R_e, x_e, T_e, w_e, O_e, k_e, P_e, I_e, D_e, L_e, M_e, N_e, U_e, F_e, z_e, $_e, H_e, j_e, B_e, K_e, G_e, W_e, V_e, q_e, Z_e, Y_e, J_e, Q_e, Xn, eye, F8e, tye, z8e, nye, iI, rye, oye, lI, cye, uye, dye, _ye, on, vye, Aye, dI, C7e, v7e, ho, kI, PI, Dye, Sf, Lye, jc, Mye, Nye, LI, NI, Fye, VS, zye, $ye, x7e, zI, YS, KI, GI, VI, Hye, qS, ls, Kye, Gye, oD, nE, sD, So, Yc, vn, Zye, oE, sE, iD, aD, wf, Jc, Xc, kf, Qc, Pf, eu, fi, tu, mi, lD, cD, uD, dD, pD, fD, mD, gD, hD, _D, yD, SD, ED, bD, vD, AD, cE, RD, Xye, TD, wD, OD, kD, PD, uE, ID, DD, LD, MD, FD, If, nu, zD, $D, HD, jD, BD, zt, dE, Df, pE, fE, KD, GD, WD, VD, qD, ru, ZD, YD, JD, XD, QD, eL, tL, mE, yr, He, rL, ou, Je, yE, SE, EE, fL, mL, tSe, bE, CE, vE, AE, RE, xE, TE, wE, gL, hL, _L, yL, OE, sSe, kE, PE, IE, DE, LE, ME, NE, Nf, UE, FE, zE, $E, HE, jE, BE, cSe, gE, KE, vL, Uf, GE, WE, VE, qE, ZE, YE, Ff, JE, XE, QE, eb, tb, nb, zf, AL, rb, ob, sb, TL, ab, RL, xL, $f, Hf, dSe, fSe, OL, kL, Sr, FL, ML, zL, lu, hSe, iC, aC, lC, HL, jL, cC, uC, BL, dC, KL, pC, GL, fC, mC, WL, VL, qL, ZL, gC, YL, hC, JL, XL, _C, yC, SC, EC, QL, sC, bC, CC, vC, AC, RC, xC, TC, wC, OC, tM, qf, kC, $L, rM, ASe, Fn, oM, sM, iM, aM, lM, cM, uM, dM, pM, fM, mM, gM, Be, SM, LC, ct, MC, EM, bM, CM, pEe, fEe, Yf, mEe, gEe, hEe, _Ee, yEe, SEe, EEe, bEe, CEe, vEe, AEe, REe, xEe, TEe, wEe, OEe, NC, kEe, vM, PEe, IEe, DEe, LEe, MEe, fu, AM, NEe, UEe, IC, DC, FEe, zEe, qa, TM, HEe, jEe, KEe, wM, em, mu, qEe, ZEe, JEe, OM, Qn, kM, LM, nbe, rbe, abe, lbe, cbe, rm, pbe, At, hbe, BC, BM, Zet, WM, VM, qM, ZM, Cbe, vbe, YM, Abe, Rbe, JM, xbe, Tbe, QM, Ibe, eN, Lbe, nN, Mbe, Nbe, sm, rN, iN, Fbe, aN, $be, jbe, Kbe, Gbe, yu, lN, uN, dN, Xbe, KM, Qbe, eCe, tCe, oCe, iCe, _N, yN, wN, Ytt, ON, OCe, DCe, LN, $Ce, HCe, Cu, BCe, MN, VCe, QCe, ive, uve, VN, pve, fve, _rt, gve, Sve, nv, tv, GN, tU, Fve, Hve, iU, tAe, sAe, iAe, aAe, cAe, Ie, bU, Q, vo, F, zn, fAe, ms, mAe, _m, nn, he, Xa, an, lv, cv, Si, wu, se, br, CU, Oe, gAe, hAe, _Ae, yAe, SAe, EAe, bAe, CAe, vAe, uv, AAe, RAe, xAe, TAe, wAe, OAe, vU, kAe, Ro, el, tl, ym, ku, Sm, Pu, Iu, Em, Ei, xo, bm, Fr, ft, Du, Ao, pv, Lu, To, Cm, vm, nl, Ou, Mu, Nu, bi, Uu, rl, $r, zr, gs, Fu, zu, Am, fv, Rm, $u, wot, H, Oot, kot, Pot, Iot, Dot, Lot, Mot, Not, Uot, Fot, zot, $ot, Hot, jot, xU, Bot, Kot, Got, Wot, Vot, qot, Zot, Yot, Jot, Xot, Qot, est, tst, nst, rst, ost, sst, ist, ast, FAe, zAe, gv, OU, Ss, km, Mt, kU, PU, kst, HAe, jAe, hv, $n, Hu, IU, Yt, tr, nr, Jt, Pm, DU, _v, LU, MU, yv, ju, le, Sv, NU, Pst, Ist, Im, BAe, Dm, KAe, Bu, ol, UU, GAe, WAe, VAe, qAe, ZAe, YAe, Ev, JAe, XAe, bv, Lm, QAe, eRe, Mm, tRe, Ku, Gu, nRe, Wu, sl, rRe, Vu, Nm, Um, Fm, Dst, zm, $m, Hm, FU, zU, $U, Cv, HU, qu, il, jU, oRe, jm, sRe, Bm, iRe, vv, aRe, Km, lRe, cRe, uRe, dRe, pRe, fRe, mRe, gRe, hRe, _Re, Gm, yRe, SRe, Wm, Av, Rv, xv, ERe, bRe, CRe, Tv, vRe, ARe, RRe, xRe, TRe, BU, Vm, wRe, qm, Lst, ORe, al, kRe, Mst, Zu, PRe, wv, IRe, DRe, LRe, MRe, NRe, URe, FRe, Om, zRe, $Re, HRe, Yu, Ov, jRe, BRe, KRe, GRe, WRe, VRe, qRe, ZRe, YRe, JRe, XRe, QRe, exe, txe, nxe, rxe, oxe, sxe, ll, ixe, axe, lxe, Zm, cxe, uxe, dxe, kv, pxe, Nst, Ust, Fst, zst, $st, Hst, ae, WU, qU, VU, ZU, YU, Ym, e0, fxe, mxe, Dv, Cr, gxe, Ju, d0, h0, _0, v0, A0, Sxe, Exe, Mv, Cxe, Fv, Oj, kj, PA, IA, DA, Lj, Dj, aLe, NA, FA, uLe, dd, fLe, Po, SLe, ELe, zA, bLe, xLe, TLe, wLe, OLe, kLe, $j, qj, ILe, DLe, LLe, MLe, Ce, NLe, Wg, Oi, VA, Do, Jj, Xj, Qj, eB, tB, nB, qA, ZA, jA, Bj, jLe, BLe, GLe, rB, BA, Gg, GA, WA, VLe, qLe, Kj, Hs, sB, QLe, YA, iB, uB, eMe, dB, pB, fB, mB, tMe, XA, aB, QA, gB, hB, _B, yB, jn, lMe, SB, dMe, bB, mMe, fd, RB, hMe, Rr, TB, SMe, EMe, Pl, wB, Vg, AMe, Il, RMe, xMe, qg, OB, wMe, OMe, kB, eo, Dl, Zg, DB, NMe, FB, WMe, VMe, $B, HB, jB, BB, Ml, GB, nR, WB, Jg, KB, eNe, Bs, VB, gd, Nl, Xg, tNe, YB, qB, Pi, rK, iK, pNe, hd, _d, to, yd, nh, uK, aK, _Ne, lK, cK, Sd, Ul, rh, oh, dK, CNe, pK, sh, fK, RNe, xNe, TNe, mK, wNe, ONe, ih, Ed, lr, gK, hK, yK, SK, EK, ah, bK, FNe, CK, zNe, $Ne, HNe, vK, BNe, lh, AK, RK, xK, VNe, dn, TK, wK, OK, kK, PK, QNe, eUe, IK, DK, rUe, LK, MK, NK, UK, iUe, aUe, lUe, cUe, uUe, dUe, pUe, fUe, mUe, gUe, hUe, _Ue, yUe, SUe, EUe, bUe, CUe, vUe, AUe, FK, xUe, zK, $K, wUe, HK, OUe, jK, BK, PUe, KK, IUe, DUe, LUe, GK, MUe, NUe, UUe, FUe, WK, zUe, $Ue, HUe, VK, jUe, BUe, KUe, GUe, WUe, VUe, qUe, ZUe, YUe, JUe, XUe, QUe, e0e, t0e, n0e, r0e, Xe, qK, ZK, YK, JK, a0e, l0e, uh, XK, QK, e1, n1, r1, dh, m0e, g0e, h0e, _0e, bd, o1, S0e, Fl, s1, b0e, i1, Di, a1, l1, c1, u1, d1, p1, f1, P0e, I0e, m1, D0e, g1, h1, _1, vyt, U0e, y1, Ayt, iR, F0e, z0e, $0e, Gs, zl, fh, E1, b1, H0e, j0e, B0e, K0e, mh, $l, gh, Ws, aR, hh, _h, G0e, W0e, lR, R1, x1, V0e, uR, k1, P1, I1, D1, L1, Y0e, dR, J0e, Fyt, pR, X0e, fR, mR, Q0e, zyt, eFe, gR, hR, _R, $yt, M1, yR, N1, U1, tFe, nFe, rFe, oFe, iFe, Mi, cFe, $1, Wyt, Vyt, H1, j1, B1, K1, uFe, G1, W1, V1, q1, dFe, pFe, SR, fFe, eSt, tSt, mFe, jl, Vs, gFe, Y1, hFe, _Fe, X1, Q1, eG, yFe, SFe, tG, EFe, bFe, CFe, vFe, bR, CR, RFe, xFe, vR, TFe, Eh, nSt, Cd, wFe, OFe, aSt, rG, PFe, IFe, _St, oG, sG, bSt, CSt, HFe, jFe, $St, BFe, KFe, HSt, JSt, XSt, lG, OR, VFe, YFe, uG, eze, nze, gG, vd, vh, kR, zi, sze, yG, ize, yEt, Ad, $i, bG, Kn, AEt, REt, xEt, aze, AG, wG, $R, dze, $G, pze, fze, mze, gze, hze, BR, HG, jG, fbt, yze, Sze, Eze, Gn, ji, kG, PG, NR, UR, KR, GG, Cze, vze, Rze, GR, xze, Tze, xh, WR, Oze, kze, mbt, Pze, Ize, Dze, Lze, Mze, Nze, qG, Uze, Fze, zze, $ze, ZG, Hze, IG, jze, Bze, YG, Kze, Gze, DG, Wze, Vze, JG, qze, Zze, Yze, Jze, QG, Xze, Qze, e$e, t$e, r$e, o$e, s$e, i$e, a$e, eW, nW, c$e, m$e, xd, VR, gbt, hbt, _bt, h$e, qR, Th, MR, aW, _$e, S$e, lW, E$e, b$e, C$e, v$e, A$e, x$e, w$e, O$e, k$e, P$e, I$e, N$e, ybt, FR, Sbt, U$e, MG, Td, Ebt, bbt, uW, z$e, $$e, H$e, Cbt, j$e, B$e, vbt, Abt, K$e, Rbt, Oh, kh, G$e, YR, Ph, W$e, Ih, Mbt, Nbt, Ubt, Dh, V$e, Z$e, tx, EW, Id, Fh, X$e, xCt, Q$e, eHe, ix, ax, lx, cx, zh, $h, MW, tHe, nHe, aHe, uHe, dHe, Zs, pHe, CW, vW, AW, Nh, UW, fHe, mHe, gHe, hHe, _He, yHe, SHe, EHe, pn, dx, nx, Mh, Bi, AHe, TCt, xHe, Pd, RW, THe, xW, wHe, OHe, Hh, kHe, TW, fx, Bh, Ki, KW, Gl, PHe, Kh, kW, Wl, NHe, Ld, UHe, tV, rV, jHe, XHe, cvt, tje, fV, mV, sje, aje, _V, yV, pje, zvt, $vt, gje, yje, Sje, Kvt, Gvt, eAt, RV, Eje, bje, mAt, Cje, gAt, xV, wV, OV, Js, Lje, FV, Yh, Jh, Md, Tx, zV, $V, HV, Xh, jV, cr, KV, Mo, Fje, zje, yRt, jje, Gje, Vje, sBe, YV, e22, o_, gBe, t2, s_, kx, o2, LBe, UBe, $x, Vi, R2, KBe, GBe, Dx, ZBe, k2, n_, l2, sKe, lKe, z2, bKe, RKe, ec, W2, H2, xKe, wKe, PKe, IKe, $Ke, X2, HKe, jKe, BKe, KKe, VKe, eTt, qKe, tTt, nTt, ZKe, rTt, YKe, oTt, JKe, Wx, XKe, iTt, eq, tq, QKe, nq, rq, e1e, t1e, oq, sq, n1e, r1e, aTt, lTt, c1e, Zx, cq, u1e, uq, a_, d1e, Xx, nc, S1e, c_, mq, gq, Qx, hq, _q, E1e, Sq, u_, rc, d_, b1e, bq, Uo, Cq, vq, A1e, Yd, Jd, R1e, x1e, Aq, gn, T1e, w1e, O1e, Xs, k1e, P1e, xq, Pwt, I1e, Oq, kq, Pq, D1e, L1e, Iq, M1e, N1e, nT, U1e, p_, rT, Dq, oT, iT, F1e, Uq, aT, jq, K1e, Gq, yOt, sGe, cGe, uGe, yGe;
81068
+ var import_node_module, import_crypto, import_crypto2, import_path, import_node_fs15, import_node_process4, import_fs, import_os, import_path2, yy, import_fs2, import_promises, import_path3, import_readline, import_promises2, import_path4, import_os2, import_path5, Se, import_promises3, xe, import_promises4, import_fs3, import_promises5, import_os3, import_path6, import_promises6, import_os4, import_node_path46, import_node_os10, import_node_process5, import_path7, import_events, import_fs4, import_promises7, import_path8, import_child_process, import_util9, import_child_process2, import_fs5, import_path9, import_path10, import_crypto3, import_fs6, import_path11, import_promises8, import_path12, import_path13, import_promises9, import_path14, import_path15, import_fs7, import_promises10, import_path16, import_crypto4, import_path17, import_async_hooks, import_fs8, import_promises11, import_crypto5, import_fs9, import_promises12, import_path18, import_promises13, import_path19, import_crypto6, import_path20, import_path21, import_path22, import_path23, import_promises14, import_fs10, import_promises15, import_path24, import_util10, import_path25, import_os5, import_path26, import_path27, import_path28, import_path29, import_path30, import_net, import_os6, import_child_process3, import_fs11, import_child_process4, import_crypto7, import_promises16, import_module, import_os7, import_path31, import_url, import_events2, import_child_process5, import_fs12, import_readline2, import_string_decoder, import_fs13, import_promises17, import_os8, import_path32, import_crypto8, import_os9, import_fs14, import_path33, import_crypto9, import_fs15, import_promises18, import_path34, IZ, DZ, v_, LZ, OT, NZ, UZ, kT, X, FZ, dr, HZ, jZ, BZ, ot, st, ed, Kv, Te, Me, Oo, nd, hF, Xv, Qv, rd, LF, or, WF, ZF, sA, XF, od, sd, hg, id, Sg, Oz, fA, $z, Wz, Zz, s$, a$, d$, f$, g$, _$, E$, v$, T$, O$, I$, L$, wg, z$, j$, G$, V$, yA, SA, rH, lH, uH, _H, EH, EA, RH, TH, kH, DH, NH, zH, jH, GH, VH, ZH, JH, ej, nj, ij, cj, uj, CA, bj, Aj, wj, PT, KZ, GZ, VGe, VZ, MT, wr, jo, JZ, XZ, NT, UT, FT, zT, Bo, $T, HT, jT, BT, a4, sp, l4, c4, vt, u4, Nt, KT, d4, p4, uc, GT, m4, g4, WT, _4, y4, VT, Dn, Et, b4, C4, v4, A4, ra, x4, ip, qT, ZT, w4, O4, ro, P4, I4, D4, L4, M4, N4, U4, YT, JT, Sn, H4, Ko, j4, oo, XT, QT, G4, W4, V4, ew, Z4, Y4, tw, X4, nw, R_, rw, ow, Go, sw, iw, aw, lw, ei, aY, cw, Or, cY, uw, dw, lp, pw, cp, mY, gY, up, _Y, aa, fw, la, EY, bY, CY, vY, AY, RY, xY, TY, wY, OY, kY, PY, IY, mw, x_, gw, ca, MY, et, dp, hw, pp, zY, $Y, _w, HY, ua, yw, wt, KY, T_, Sw, WY, VY, qY, so, mp, Ew, vw, bw, YY, Cw, JY, XY, kr, QY, e9, Wo, n9, da, o9, s9, i9, a9, l9, c9, u9, d9, p9, f9, m9, g9, h9, _9, y9, S9, E9, b9, C9, v9, A9, R9, x9, T9, Qe, Aw, pa, hp, Rw, dc, k9, w_, P9, Pr, xw, I9, fa, D9, L9, _p, N9, ma, yp, z9, Tw, $9, H9, ww, Vo, Ir, pc, W9, V9, q9, Ow, Y9, Sp, J9, Ep, X9, qo, Q9, bp, kw, eJ, Pw, Iw, Dw, Lw, tJ, nJ, rJ, oJ, sJ, ti, io, iJ, Mw, Nw, Cp, aJ, Uw, Fw, ga, pr, uJ, Fe, $w, O_, k_, I_, ha, Bw, D_, qw, Vw, N_, U_, yJ, _a3, Yo, Zw, bJ, Rp, Yw, vJ, AJ, Jw, xp, Xw, Tp, Qw, kJ, ya, IJ, DJ, Sa, MJ, fc, NJ, eO, FJ, zJ, $J, tO, Ea, jJ, nO, rO, sO, iO, Vn, GJ, Ln, Jo, aO, lO, cO, wp, XJ, QJ, uO, ba, dO, pO, fO, Dr, ao, mO, Ca, gO, z_, $_, H_, j_, B_, K_, G_, W_, V_, q_, Z_, _O, Y_, J_, yO, X_, c3, Q_, ey, ty, ny, ry, oy, sy, iy, ay, ly, cy, we, SO, en, d3, Pp, vO, g3, gy, wO, S3, BO, KO, Ip, Dp, v3, GO, WO, F9e, IO, A3, hy, x3, NO, I3, Ay, Ry, D3, xy, L3, bc, xa, Ty, wy, Oy, ky, XO, Py, Iy, Dy, Ly, My, Ny, Uy, Fy, zy, nk, rk, d3e, p3e, f3e, m3e, g3e, U3, jp, jy, ik, By, Ky, lk, $3, uk, ck, G3, W3, V3, it, Y3, J3, hk, tXe, Q3, kt, We, gX, Ta, SX, mr, Yp, Jp, eS, nS, yXe, IX, DX, rS, ka, oS, Ok, kk, HX, jX, ef, bXe, Uk, Mr, wc, Fk, Pa, OXe, kXe, iS, PXe, IXe, DXe, GX, YX, JX, XX, QX, e6, t6, Yk, n6, r6, o6, s6, i6, a6, l6, c6, Vk, uS, lf, dS, Qk, eP, uf, os10, qXe, ZXe, h6, tP, df, _6, y6, S6, E6, b6, Jn, gr, nP, rP, Dc, pS, oP, gS, lP, C6, mS, lS, sP, w6, O6, dP, k6, YXe, JXe, P6, I6, pf, L6, fP, XXe, QXe, M6, SS, z6, $6, j6, bP, CP, G6, Lc, si, Z6, ES, bS, X6, Q6, e5, t5, n5, u5, r5, o5, s5, i5, a5, l5, c5, u52, d5, p5, f5, m5, g5, h5, _5, y5, S5, E5, b5, C5, v5, A5, R5, x5, T5, w5, O5, k5, P5, I5, D5, L5, M5, N5, U5, F5, z5, $5, H5, j5, B5, K5, G5, W5, V5, q5, Z5, Y5, J5, X5, Q5, e8, t8, n8, r8, o8, s8, i8, a8, l8, c8, u8, d8, CS, p8, f8, m8, g8, h8, _8, y8, S8, E8, b8, C8, v8, A8, R8, x8, T8, w8, O8, k8, P8, I8, D8, L8, M8, N8, U8, F8, z8, $8, H8, j8, B8, K8, G8, W8, V8, q8, Z8, Y8, J8, X8, Q8, e7, t7, n7, r7, o7, s7, i7, a7, l7, c7, u7, d7, p7, f7, m7, g7, h7, _7, y7, S7, E7, b7, C7, TP, v7, L6e, RP, A7, x7, kP, ff, U6e, F6e, Ua, z6e, $6e, H6e, j6e, PP, IP, vS, DP, w7, LP, O7, k7, P7, AS, RS, xS, I7, MP, NP, D7, G6e, L7, W6e, M7, N7, UP, V6e, U7, F7, z7, $7, H7, j7, B7, q6e, is, wS, Fa, K7, G7, W7, i5e, X7, Q7, HP, $P, BP, tQ, WP, VP, JP, _Q, QP, eI, xQ, Uc, DS, $a, wQ, OQ, kQ, PQ, IQ, DQ, LQ, MQ, NQ, UQ, FQ, zQ, $Q, HQ, jQ, BQ, KQ, GQ, WQ, VQ, qQ, ZQ, YQ, JQ, XQ, QQ, eee, tee, nee, ree, oee, see, iee, aee, lee, cee, uee, dee, pee, fee, mee, gee, hee, _ee, yee, See, Eee, bee, Cee, vee, Aee, Ree, xee, Tee, wee, Oee, kee, Pee, Iee, Dee, Lee, Mee, Nee, Uee, Fee, zee, $ee, Hee, jee, Bee, Kee, Gee, Wee, Vee, qee, Zee, Yee, Jee, Xee, Qee, ete, tte, nte, rte, ote, ste, ite, ate, lte, cte, ute, dte, pte, fte, mte, gte, hte, _te, yte, Ste, Ete, bte, Cte, vte, Ate, Rte, xte, Tte, wte, Ote, kte, Pte, Ite, Dte, Lte, Mte, Nte, Ute, Fte, zte, $te, Hte, jte, Bte, Kte, Gte, Wte, Vte, qte, Zte, Yte, Jte, Xte, Qte, ene, tne, nne, rne, one, sne, ine, ane, lne, cne, une, dne, pne, fne, mne, gne, hne, _ne, yne, Sne, Ene, bne, Cne, vne, Ane, Rne, xne, Tne, wne, One, kne, Pne, Ine, Dne, Lne, Mne, Nne, Une, Fne, zne, $ne, Hne, jne, Bne, Kne, Gne, Wne, Vne, qne, Zne, Yne, Jne, Xne, Qne, ere, tre, nre, rre, ore, sre, ire, are, lre, cre, ure, dre, pre, fre, mre, gre, hre, _re, yre, Sre, Ere, bre, Cre, vre, Are, Rre, xre, Tre, wre, Ore, kre, Pre, Ire, Dre, Lre, Mre, Nre, Ure, Fre, zre, $re, Hre, jre, Bre, Kre, Gre, Wre, Vre, qre, Zre, Yre, Jre, Xre, Qre, eoe, toe, noe, roe, ooe, soe, ioe, aoe, loe, coe, uoe, doe, poe, foe, moe, goe, hoe, _oe, yoe, Soe, Eoe, boe, Coe, voe, Aoe, Roe, xoe, Toe, woe, Ooe, koe, Poe, Ioe, Doe, Loe, Moe, Noe, Uoe, Foe, zoe, $oe, Hoe, joe, Boe, Koe, Goe, Woe, Voe, qoe, Zoe, Yoe, Joe, Xoe, Qoe, ese, tse, nse, rse, ose, sse, ise, ase, lse, cse, use, dse, pse, fse, mse, gse, hse, _se, yse, Sse, Ese, LS, bse, Cse, vse, Ase, Rse, xse, Tse, wse, Ose, kse, Pse, Ise, Dse, Lse, Mse, Nse, Use, Fse, zse, $se, Hse, jse, Bse, Kse, Gse, Wse, Vse, qse, Zse, Yse, Jse, Xse, Qse, eie, tie, nie, rie, oie, sie, iie, aie, lie, cie, uie, die, pie, fie, mie, gie, hie, _ie, yie, Sie, Eie, bie, Cie, vie, Aie, Rie, xie, Tie, wie, Oie, kie, Pie, Iie, Die, Lie, Mie, Nie, Uie, Fie, zie, $ie, Hie, jie, Bie, Kie, Gie, Wie, Vie, qie, Zie, Yie, Jie, Xie, Qie, eae, tae, nae, rae, oae, sae, iae, aae, lae, cae, uae, dae, pae, fae, mae, gae, hae, _ae, yae, Sae, Eae, bae, Cae, vae, Aae, Rae, xae, Tae, wae, Oae, kae, Pae, Iae, Dae, Lae, Mae, Nae, Uae, Fae, zae, $ae, Hae, jae, Bae, Kae, Gae, Wae, Vae, qae, Zae, Yae, Jae, Xae, Qae, ele, tle, nle, rle, ole, sle, ile, ale, lle, cle, ule, dle, ple, fle, mle, gle, hle, _le, yle, Sle, Ele, ble, Cle, vle, Ale, Rle, xle, Tle, wle, Ole, kle, Ple, Ile, Dle, Lle, Mle, Nle, Ule, Fle, zle, $le, Hle, jle, Ble, Kle, Gle, Wle, Vle, qle, Zle, Yle, Jle, MS, Xle, Qle, ece, tce, nce, rce, oce, sce, ice, ace, lce, cce, uce, dce, pce, fce, mce, gce, hce, _ce, yce, Sce, Ece, bce, Cce, vce, Ace, Rce, xce, Tce, wce, Oce, kce, Pce, Ice, Dce, Lce, Mce, Nce, Uce, Fce, zce, $ce, Hce, jce, Bce, Kce, Gce, Wce, Vce, qce, Zce, Yce, Jce, Xce, Qce, eue, tue, nue, rue, oue, sue, iue, aue, lue, cue, uue, due, pue, fue, mue, gue, hue, _ue, yue, Sue, Eue, bue, Cue, vue, Aue, Rue, xue, Tue, wue, Oue, kue, Pue, Iue, Due, Lue, Mue, Nue, Uue, Fue, zue, $ue, Hue, jue, Bue, Kue, Gue, Wue, Vue, que, Zue, Yue, Jue, Xue, Que, ede, tde, nde, rde, ode, sde, ide, ade, lde, cde, ude, dde, pde, fde, mde, gde, hde, _de, yde, Sde, Ede, bde, Cde, vde, Ade, Rde, xde, Tde, wde, Ode, kde, Pde, Ide, Dde, Lde, Mde, Nde, Ude, Fde, zde, $de, Hde, jde, Bde, Kde, Gde, Wde, Vde, qde, Zde, Yde, Jde, Xde, Qde, epe, tpe, npe, rpe, ope, spe, ipe, ape, lpe, cpe, upe, dpe, ppe, fpe, mpe, gpe, hpe, _pe, ype, Spe, Epe, bpe, Cpe, vpe, Ape, Rpe, xpe, Tpe, wpe, Ope, kpe, Ppe, Ipe, Dpe, Lpe, Mpe, Npe, Upe, Fpe, zpe, $pe, Hpe, jpe, Bpe, Kpe, Gpe, Wpe, Vpe, qpe, Zpe, Ype, Jpe, Xpe, Qpe, efe, tfe, nfe, rfe, ofe, sfe, ife, afe, lfe, cfe, ufe, dfe, pfe, ffe, mfe, gfe, hfe, _fe, yfe, Sfe, Efe, bfe, Cfe, vfe, Afe, Rfe, xfe, Tfe, wfe, Ofe, kfe, Pfe, Ife, Dfe, Lfe, Mfe, Nfe, Ufe, Ffe, zfe, $fe, Hfe, jfe, Bfe, Kfe, Gfe, Wfe, Vfe, qfe, Zfe, Yfe, Jfe, Xfe, Qfe, eme, tme, nme, rme, ome, sme, ime, ame, lme, cme, ume, dme, pme, fme, mme, gme, hme, _me, yme, Sme, Eme, bme, Cme, vme, Ame, Rme, xme, Tme, wme, Ome, kme, Pme, Ime, Dme, Lme, Mme, Nme, Ume, Fme, zme, $me, Hme, jme, Bme, Kme, Gme, Wme, Vme, qme, Zme, Yme, Jme, NS, Xme, Qme, ege, tge, nge, rge, oge, sge, ige, age, lge, cge, uge, dge, pge, fge, mge, gge, hge, _ge, yge, Sge, Ege, bge, Cge, vge, Age, Rge, xge, Tge, wge, Oge, kge, Pge, Ige, Dge, Lge, Mge, Nge, Uge, Fge, zge, $ge, Hge, US, jge, Bge, Kge, Gge, Wge, Vge, qge, Zge, Yge, Jge, Xge, Qge, ehe, the, nhe, rhe, ohe, she, ihe, ahe, lhe, che, uhe, dhe, phe, fhe, mhe, ghe, hhe, _he, yhe, She, Ehe, bhe, Che, vhe, Ahe, Rhe, xhe, The, whe, Ohe, khe, Phe, Ihe, Dhe, Lhe, Mhe, Nhe, FS, rI, oI, Uhe, Fhe, zhe, $he, Hhe, jhe, Bhe, Khe, Ghe, Whe, Vhe, qhe, Zhe, Yhe, Jhe, Xhe, Qhe, e_e, t_e, n_e, r_e, o_e, s_e, i_e, a_e, l_e, c_e, u_e, d_e, p_e, f_e, m_e, g_e, h_e, __e, y_e, S_e, E_e, b_e, C_e, v_e, A_e, R_e, x_e, T_e, w_e, O_e, k_e, P_e, I_e, D_e, L_e, M_e, N_e, U_e, F_e, z_e, $_e, H_e, j_e, B_e, K_e, G_e, W_e, V_e, q_e, Z_e, Y_e, J_e, Q_e, Xn, eye, F8e, tye, z8e, nye, iI, rye, oye, lI, cye, uye, dye, _ye, on, vye, Aye, dI, C7e, v7e, ho, kI, PI, Dye, Sf, Lye, jc, Mye, Nye, LI, NI, Fye, VS, zye, $ye, x7e, zI, YS, KI, GI, VI, Hye, qS, ls, Kye, Gye, oD, nE, sD, So, Yc, vn, Zye, oE, sE, iD, aD, wf, Jc, Xc, kf, Qc, Pf, eu, fi, tu, mi, lD, cD, uD, dD, pD, fD, mD, gD, hD, _D, yD, SD, ED, bD, vD, AD, cE, RD, Xye, TD, wD, OD, kD, PD, uE, ID, DD, LD, MD, FD, If, nu, zD, $D, HD, jD, BD, zt, dE, Df, pE, fE, KD, GD, WD, VD, qD, ru, ZD, YD, JD, XD, QD, eL, tL, mE, yr, He, rL, ou, Je, yE, SE, EE, fL, mL, tSe, bE, CE, vE, AE, RE, xE, TE, wE, gL, hL, _L, yL, OE, sSe, kE, PE, IE, DE, LE, ME, NE, Nf, UE, FE, zE, $E, HE, jE, BE, cSe, gE, KE, vL, Uf, GE, WE, VE, qE, ZE, YE, Ff, JE, XE, QE, eb, tb, nb, zf, AL, rb, ob, sb, TL, ab, RL, xL, $f, Hf, dSe, fSe, OL, kL, Sr, FL, ML, zL, lu, hSe, iC, aC, lC, HL, jL, cC, uC, BL, dC, KL, pC, GL, fC, mC, WL, VL, qL, ZL, gC, YL, hC, JL, XL, _C, yC, SC, EC, QL, sC, bC, CC, vC, AC, RC, xC, TC, wC, OC, tM, qf, kC, $L, rM, ASe, Fn, oM, sM, iM, aM, lM, cM, uM, dM, pM, fM, mM, gM, Be, SM, LC, ct, MC, EM, bM, CM, pEe, fEe, Yf, mEe, gEe, hEe, _Ee, yEe, SEe, EEe, bEe, CEe, vEe, AEe, REe, xEe, TEe, wEe, OEe, NC, kEe, vM, PEe, IEe, DEe, LEe, MEe, fu, AM, NEe, UEe, IC, DC, FEe, zEe, qa, TM, HEe, jEe, KEe, wM, em, mu, qEe, ZEe, JEe, OM, Qn, kM, LM, nbe, rbe, abe, lbe, cbe, rm, pbe, At, hbe, BC, BM, Zet, WM, VM, qM, ZM, Cbe, vbe, YM, Abe, Rbe, JM, xbe, Tbe, QM, Ibe, eN, Lbe, nN, Mbe, Nbe, sm, rN, iN, Fbe, aN, $be, jbe, Kbe, Gbe, yu, lN, uN, dN, Xbe, KM, Qbe, eCe, tCe, oCe, iCe, _N, yN, wN, Ytt, ON, OCe, DCe, LN, $Ce, HCe, Cu, BCe, MN, VCe, QCe, ive, uve, VN, pve, fve, _rt, gve, Sve, nv, tv, GN, tU, Fve, Hve, iU, tAe, sAe, iAe, aAe, cAe, Ie, bU, Q, vo, F, zn, fAe, ms, mAe, _m, nn, he, Xa, an, lv, cv, Si, wu, se, br, CU, Oe, gAe, hAe, _Ae, yAe, SAe, EAe, bAe, CAe, vAe, uv, AAe, RAe, xAe, TAe, wAe, OAe, vU, kAe, Ro, el, tl, ym, ku, Sm, Pu, Iu, Em, Ei, xo, bm, Fr, ft, Du, Ao, pv, Lu, To, Cm, vm, nl, Ou, Mu, Nu, bi, Uu, rl, $r, zr, gs, Fu, zu, Am, fv, Rm, $u, wot, H, Oot, kot, Pot, Iot, Dot, Lot, Mot, Not, Uot, Fot, zot, $ot, Hot, jot, xU, Bot, Kot, Got, Wot, Vot, qot, Zot, Yot, Jot, Xot, Qot, est, tst, nst, rst, ost, sst, ist, ast, FAe, zAe, gv, OU, Ss, km, Mt, kU, PU, kst, HAe, jAe, hv, $n, Hu, IU, Yt, tr, nr, Jt, Pm, DU, _v, LU, MU, yv, ju, le, Sv, NU, Pst, Ist, Im, BAe, Dm, KAe, Bu, ol, UU, GAe, WAe, VAe, qAe, ZAe, YAe, Ev, JAe, XAe, bv, Lm, QAe, eRe, Mm, tRe, Ku, Gu, nRe, Wu, sl, rRe, Vu, Nm, Um, Fm, Dst, zm, $m, Hm, FU, zU, $U, Cv, HU, qu, il, jU, oRe, jm, sRe, Bm, iRe, vv, aRe, Km, lRe, cRe, uRe, dRe, pRe, fRe, mRe, gRe, hRe, _Re, Gm, yRe, SRe, Wm, Av, Rv, xv, ERe, bRe, CRe, Tv, vRe, ARe, RRe, xRe, TRe, BU, Vm, wRe, qm, Lst, ORe, al, kRe, Mst, Zu, PRe, wv, IRe, DRe, LRe, MRe, NRe, URe, FRe, Om, zRe, $Re, HRe, Yu, Ov, jRe, BRe, KRe, GRe, WRe, VRe, qRe, ZRe, YRe, JRe, XRe, QRe, exe, txe, nxe, rxe, oxe, sxe, ll, ixe, axe, lxe, Zm, cxe, uxe, dxe, kv, pxe, Nst, Ust, Fst, zst, $st, Hst, ae, WU, qU, VU, ZU, YU, Ym, e0, fxe, mxe, Dv, Cr, gxe, Ju, d0, h0, _0, v0, A0, Sxe, Exe, Mv, Cxe, Fv, Oj, kj, PA, IA, DA, Lj, Dj, aLe, NA, FA, uLe, dd, fLe, Po, SLe, ELe, zA, bLe, xLe, TLe, wLe, OLe, kLe, $j, qj, ILe, DLe, LLe, MLe, Ce, NLe, Wg, Oi, VA, Do, Jj, Xj, Qj, eB, tB, nB, qA, ZA, jA, Bj, jLe, BLe, GLe, rB, BA, Gg, GA, WA, VLe, qLe, Kj, Hs, sB, QLe, YA, iB, uB, eMe, dB, pB, fB, mB, tMe, XA, aB, QA, gB, hB, _B, yB, jn, lMe, SB, dMe, bB, mMe, fd, RB, hMe, Rr, TB, SMe, EMe, Pl, wB, Vg, AMe, Il, RMe, xMe, qg, OB, wMe, OMe, kB, eo, Dl, Zg, DB, NMe, FB, WMe, VMe, $B, HB, jB, BB, Ml, GB, nR, WB, Jg, KB, eNe, Bs, VB, gd, Nl, Xg, tNe, YB, qB, Pi, rK, iK, pNe, hd, _d, to, yd, nh, uK, aK, _Ne, lK, cK, Sd, Ul, rh, oh, dK, CNe, pK, sh, fK, RNe, xNe, TNe, mK, wNe, ONe, ih, Ed, lr, gK, hK, yK, SK, EK, ah, bK, FNe, CK, zNe, $Ne, HNe, vK, BNe, lh, AK, RK, xK, VNe, dn, TK, wK, OK, kK, PK, QNe, eUe, IK, DK, rUe, LK, MK, NK, UK, iUe, aUe, lUe, cUe, uUe, dUe, pUe, fUe, mUe, gUe, hUe, _Ue, yUe, SUe, EUe, bUe, CUe, vUe, AUe, FK, xUe, zK, $K, wUe, HK, OUe, jK, BK, PUe, KK, IUe, DUe, LUe, GK, MUe, NUe, UUe, FUe, WK, zUe, $Ue, HUe, VK, jUe, BUe, KUe, GUe, WUe, VUe, qUe, ZUe, YUe, JUe, XUe, QUe, e0e, t0e, n0e, r0e, Xe, qK, ZK, YK, JK, a0e, l0e, uh, XK, QK, e1, n1, r1, dh, m0e, g0e, h0e, _0e, bd, o1, S0e, Fl, s1, b0e, i1, Di, a1, l1, c1, u1, d1, p1, f1, P0e, I0e, m1, D0e, g1, h1, _1, vyt, U0e, y1, Ayt, iR, F0e, z0e, $0e, Gs, zl, fh, E1, b1, H0e, j0e, B0e, K0e, mh, $l, gh, Ws, aR, hh, _h, G0e, W0e, lR, R1, x1, V0e, uR, k1, P1, I1, D1, L1, Y0e, dR, J0e, Fyt, pR, X0e, fR, mR, Q0e, zyt, eFe, gR, hR, _R, $yt, M1, yR, N1, U1, tFe, nFe, rFe, oFe, iFe, Mi, cFe, $1, Wyt, Vyt, H1, j1, B1, K1, uFe, G1, W1, V1, q1, dFe, pFe, SR, fFe, eSt, tSt, mFe, jl, Vs, gFe, Y1, hFe, _Fe, X1, Q1, eG, yFe, SFe, tG, EFe, bFe, CFe, vFe, bR, CR, RFe, xFe, vR, TFe, Eh, nSt, Cd, wFe, OFe, aSt, rG, PFe, IFe, _St, oG, sG, bSt, CSt, HFe, jFe, $St, BFe, KFe, HSt, JSt, XSt, lG, OR, VFe, YFe, uG, eze, nze, gG, vd, vh, kR, zi, sze, yG, ize, yEt, Ad, $i, bG, Kn, AEt, REt, xEt, aze, AG, wG, $R, dze, $G, pze, fze, mze, gze, hze, BR, HG, jG, fbt, yze, Sze, Eze, Gn, ji, kG, PG, NR, UR, KR, GG, Cze, vze, Rze, GR, xze, Tze, xh, WR, Oze, kze, mbt, Pze, Ize, Dze, Lze, Mze, Nze, qG, Uze, Fze, zze, $ze, ZG, Hze, IG, jze, Bze, YG, Kze, Gze, DG, Wze, Vze, JG, qze, Zze, Yze, Jze, QG, Xze, Qze, e$e, t$e, r$e, o$e, s$e, i$e, a$e, eW, nW, c$e, m$e, xd, VR, gbt, hbt, _bt, h$e, qR, Th, MR, aW, _$e, S$e, lW, E$e, b$e, C$e, v$e, A$e, x$e, w$e, O$e, k$e, P$e, I$e, N$e, ybt, FR, Sbt, U$e, MG, Td, Ebt, bbt, uW, z$e, $$e, H$e, Cbt, j$e, B$e, vbt, Abt, K$e, Rbt, Oh, kh, G$e, YR, Ph, W$e, Ih, Mbt, Nbt, Ubt, Dh, V$e, Z$e, tx, EW, Id, Fh, X$e, xCt, Q$e, eHe, ix, ax, lx, cx, zh, $h, MW, tHe, nHe, aHe, uHe, dHe, Zs, pHe, CW, vW, AW, Nh, UW, fHe, mHe, gHe, hHe, _He, yHe, SHe, EHe, pn, dx, nx, Mh, Bi, AHe, TCt, xHe, Pd, RW, THe, xW, wHe, OHe, Hh, kHe, TW, fx, Bh, Ki, KW, Gl, PHe, Kh, kW, Wl, NHe, Ld, UHe, tV, rV, jHe, XHe, cvt, tje, fV, mV, sje, aje, _V, yV, pje, zvt, $vt, gje, yje, Sje, Kvt, Gvt, eAt, RV, Eje, bje, mAt, Cje, gAt, xV, wV, OV, Js, Lje, FV, Yh, Jh, Md, Tx, zV, $V, HV, Xh, jV, cr, KV, Mo, Fje, zje, yRt, jje, Gje, Vje, sBe, YV, e22, o_, gBe, t2, s_, kx, o2, LBe, UBe, $x, Vi, R2, KBe, GBe, Dx, ZBe, k2, n_, l2, sKe, lKe, z2, bKe, RKe, ec, W2, H2, xKe, wKe, PKe, IKe, $Ke, X2, HKe, jKe, BKe, KKe, VKe, eTt, qKe, tTt, nTt, ZKe, rTt, YKe, oTt, JKe, Wx, XKe, iTt, eq, tq, QKe, nq, rq, e1e, t1e, oq, sq, n1e, r1e, aTt, lTt, c1e, Zx, cq, u1e, uq, a_, d1e, Xx, nc, S1e, c_, mq, gq, Qx, hq, _q, E1e, Sq, u_, rc, d_, b1e, bq, Uo, Cq, vq, A1e, Yd, Jd, R1e, x1e, Aq, gn, T1e, w1e, O1e, Xs, k1e, P1e, xq, Pwt, I1e, Oq, kq, Pq, D1e, L1e, Iq, M1e, N1e, nT, U1e, p_, rT, Dq, oT, iT, F1e, Uq, aT, jq, K1e, Gq, yOt, sGe, cGe, uGe, yGe;
81047
81069
  var init_sdk = __esm({
81048
81070
  "node_modules/.pnpm/@anthropic-ai+claude-agent-sdk@0.3.292_@anthropic-ai+sdk@0.131.0_zod@4.6.5__@modelconte_9caa915130557974815a7ac66b010e49/node_modules/@anthropic-ai/claude-agent-sdk/sdk.mjs"() {
81049
81071
  import_node_module = require("node:module");
@@ -81074,7 +81096,7 @@ var init_sdk = __esm({
81074
81096
  import_path6 = require("path");
81075
81097
  import_promises6 = require("fs/promises");
81076
81098
  import_os4 = require("os");
81077
- import_node_path45 = __toESM(require("node:path"), 1);
81099
+ import_node_path46 = __toESM(require("node:path"), 1);
81078
81100
  import_node_os10 = __toESM(require("node:os"), 1);
81079
81101
  import_node_process5 = __toESM(require("node:process"), 1);
81080
81102
  import_path7 = require("path");
@@ -89525,16 +89547,16 @@ var init_sdk = __esm({
89525
89547
  wS = import_node_os10.default.tmpdir();
89526
89548
  ({ env: Fa } = import_node_process5.default);
89527
89549
  K7 = (e14) => {
89528
- let t10 = import_node_path45.default.join(is, "Library");
89529
- return { data: import_node_path45.default.join(t10, "Application Support", e14), config: import_node_path45.default.join(t10, "Preferences", e14), cache: import_node_path45.default.join(t10, "Caches", e14), log: import_node_path45.default.join(t10, "Logs", e14), temp: import_node_path45.default.join(wS, e14) };
89550
+ let t10 = import_node_path46.default.join(is, "Library");
89551
+ return { data: import_node_path46.default.join(t10, "Application Support", e14), config: import_node_path46.default.join(t10, "Preferences", e14), cache: import_node_path46.default.join(t10, "Caches", e14), log: import_node_path46.default.join(t10, "Logs", e14), temp: import_node_path46.default.join(wS, e14) };
89530
89552
  };
89531
89553
  G7 = (e14) => {
89532
- let t10 = Fa.APPDATA || import_node_path45.default.join(is, "AppData", "Roaming"), n10 = Fa.LOCALAPPDATA || import_node_path45.default.join(is, "AppData", "Local");
89533
- return { data: import_node_path45.default.join(n10, e14, "Data"), config: import_node_path45.default.join(t10, e14, "Config"), cache: import_node_path45.default.join(n10, e14, "Cache"), log: import_node_path45.default.join(n10, e14, "Log"), temp: import_node_path45.default.join(wS, e14) };
89554
+ let t10 = Fa.APPDATA || import_node_path46.default.join(is, "AppData", "Roaming"), n10 = Fa.LOCALAPPDATA || import_node_path46.default.join(is, "AppData", "Local");
89555
+ return { data: import_node_path46.default.join(n10, e14, "Data"), config: import_node_path46.default.join(t10, e14, "Config"), cache: import_node_path46.default.join(n10, e14, "Cache"), log: import_node_path46.default.join(n10, e14, "Log"), temp: import_node_path46.default.join(wS, e14) };
89534
89556
  };
89535
89557
  W7 = (e14) => {
89536
- let t10 = import_node_path45.default.basename(is);
89537
- return { data: import_node_path45.default.join(Fa.XDG_DATA_HOME || import_node_path45.default.join(is, ".local", "share"), e14), config: import_node_path45.default.join(Fa.XDG_CONFIG_HOME || import_node_path45.default.join(is, ".config"), e14), cache: import_node_path45.default.join(Fa.XDG_CACHE_HOME || import_node_path45.default.join(is, ".cache"), e14), log: import_node_path45.default.join(Fa.XDG_STATE_HOME || import_node_path45.default.join(is, ".local", "state"), e14), temp: import_node_path45.default.join(wS, t10, e14) };
89558
+ let t10 = import_node_path46.default.basename(is);
89559
+ return { data: import_node_path46.default.join(Fa.XDG_DATA_HOME || import_node_path46.default.join(is, ".local", "share"), e14), config: import_node_path46.default.join(Fa.XDG_CONFIG_HOME || import_node_path46.default.join(is, ".config"), e14), cache: import_node_path46.default.join(Fa.XDG_CACHE_HOME || import_node_path46.default.join(is, ".cache"), e14), log: import_node_path46.default.join(Fa.XDG_STATE_HOME || import_node_path46.default.join(is, ".local", "state"), e14), temp: import_node_path46.default.join(wS, t10, e14) };
89538
89560
  };
89539
89561
  i5e = OS("claude-cli");
89540
89562
  X7 = 100;
@@ -115106,7 +115128,7 @@ function registerCodexCommand(program2, deps) {
115106
115128
 
115107
115129
  // src/frontdoor/commands.ts
115108
115130
  var import_node_crypto25 = require("node:crypto");
115109
- var import_node_path53 = __toESM(require("node:path"), 1);
115131
+ var import_node_path54 = __toESM(require("node:path"), 1);
115110
115132
  var import_node_fs19 = __toESM(require("node:fs"), 1);
115111
115133
  init_commandDeps();
115112
115134
  init_configProfilesStore();
@@ -115599,10 +115621,153 @@ function showSession(fs26, identitiesDir, identities, query, onlyIdentity) {
115599
115621
  // src/frontdoor/commands.ts
115600
115622
  init_realPorts();
115601
115623
 
115624
+ // src/supervise/registry.ts
115625
+ var import_node_path36 = __toESM(require("node:path"), 1);
115626
+ init_zod();
115627
+ var SupervisedSessionSchema = external_exports.strictObject({
115628
+ /** The launcher's process id, which is what tells a live entry from one a crashed launcher left behind. */
115629
+ pid: external_exports.number().int().positive(),
115630
+ sessionId: external_exports.string().min(1),
115631
+ pool: external_exports.string().min(1),
115632
+ /** The identity the session is running as now. */
115633
+ identity: external_exports.string().min(1),
115634
+ cwd: external_exports.string().min(1),
115635
+ /** When the session began running as `identity`: its launch, or the move that brought it there. */
115636
+ since: external_exports.iso.datetime(),
115637
+ /** The size in tokens of the context the session carried onto `identity` when it moved there; absent for a launch, which carries none. */
115638
+ carriedTokens: external_exports.number().int().nonnegative().optional()
115639
+ });
115640
+ var SessionStateSchema = external_exports.strictObject({
115641
+ /** `busy` from the moment a prompt is submitted until the turn ends, `idle` from then until the next prompt: the only times the child can be stopped without losing a turn. */
115642
+ mark: external_exports.enum(["busy", "idle"]),
115643
+ /** The size in tokens of the context as of the last turn that ended; absent until one has. */
115644
+ contextTokens: external_exports.number().int().nonnegative().optional(),
115645
+ /** Whether the session was compacted during its stay on the member it runs on now. Set by the supervisor, kept by later marks, and cleared when the session moves. */
115646
+ compacted: external_exports.boolean().optional(),
115647
+ at: external_exports.iso.datetime()
115648
+ });
115649
+ function superviseDirOf(paths, pool) {
115650
+ return import_node_path36.default.join(paths.superviseDir, pool);
115651
+ }
115652
+ function sessionsDirOf(paths, pool) {
115653
+ return import_node_path36.default.join(superviseDirOf(paths, pool), "sessions");
115654
+ }
115655
+ function sessionFileOf(paths, pool, sessionId) {
115656
+ return import_node_path36.default.join(sessionsDirOf(paths, pool), `${sessionId}.json`);
115657
+ }
115658
+ function stateDirOf(paths, pool) {
115659
+ return import_node_path36.default.join(superviseDirOf(paths, pool), "state");
115660
+ }
115661
+ function sessionStatePath(paths, pool, sessionId) {
115662
+ return import_node_path36.default.join(stateDirOf(paths, pool), `${sessionId}.json`);
115663
+ }
115664
+ function writeSessionState(fs26, paths, pool, sessionId, state) {
115665
+ fs26.mkdirPrivate(stateDirOf(paths, pool));
115666
+ fs26.writeFilePrivate(sessionStatePath(paths, pool, sessionId), `${JSON.stringify(SessionStateSchema.parse(state))}
115667
+ `);
115668
+ }
115669
+ function readSessionState(fs26, paths, pool, sessionId) {
115670
+ const raw = fs26.readFileUtf8(sessionStatePath(paths, pool, sessionId));
115671
+ if (raw === void 0) {
115672
+ return void 0;
115673
+ }
115674
+ try {
115675
+ const parsed = SessionStateSchema.safeParse(JSON.parse(raw));
115676
+ return parsed.success ? parsed.data : void 0;
115677
+ } catch {
115678
+ return void 0;
115679
+ }
115680
+ }
115681
+ function registerSupervised(fs26, paths, session) {
115682
+ fs26.mkdirPrivate(sessionsDirOf(paths, session.pool));
115683
+ fs26.writeFilePrivate(sessionFileOf(paths, session.pool, session.sessionId), `${JSON.stringify(SupervisedSessionSchema.parse(session))}
115684
+ `);
115685
+ }
115686
+ function unregisterSupervised(fs26, paths, pool, sessionId) {
115687
+ fs26.removeRecursive(sessionFileOf(paths, pool, sessionId));
115688
+ fs26.removeRecursive(sessionStatePath(paths, pool, sessionId));
115689
+ }
115690
+ function liveSupervised(fs26, paths, pool, isRunning) {
115691
+ const live = [];
115692
+ for (const name of fs26.readdir(sessionsDirOf(paths, pool))) {
115693
+ const file2 = import_node_path36.default.join(sessionsDirOf(paths, pool), name);
115694
+ const raw = fs26.readFileUtf8(file2);
115695
+ if (raw === void 0) {
115696
+ continue;
115697
+ }
115698
+ let parsed;
115699
+ try {
115700
+ parsed = SupervisedSessionSchema.safeParse(JSON.parse(raw));
115701
+ } catch {
115702
+ fs26.removeRecursive(file2);
115703
+ continue;
115704
+ }
115705
+ if (parsed.success && isRunning(parsed.data.pid)) {
115706
+ live.push(parsed.data);
115707
+ } else {
115708
+ fs26.removeRecursive(file2);
115709
+ }
115710
+ }
115711
+ return live;
115712
+ }
115713
+ function committedContextTokens(sessions, records) {
115714
+ const committed = {};
115715
+ for (const session of sessions) {
115716
+ if (session.carriedTokens === void 0) {
115717
+ continue;
115718
+ }
115719
+ const sinceMs = Date.parse(session.since);
115720
+ const written = records.some((record2) => record2.sessionId === session.sessionId && record2.identity === session.identity && Date.parse(record2.at) >= sinceMs);
115721
+ if (!written) {
115722
+ committed[session.identity] = (committed[session.identity] ?? 0) + session.carriedTokens;
115723
+ }
115724
+ }
115725
+ return committed;
115726
+ }
115727
+ var ModelMoveRequestSchema = external_exports.strictObject({
115728
+ /** The session the request is for: the id its supervisor registered it under. */
115729
+ sessionId: external_exports.string().min(1),
115730
+ /** The identity the model runs under, as the `acct:` member names it. */
115731
+ to: external_exports.string().min(1),
115732
+ /** The model to resume with, the part after the identity in the `acct:` member. */
115733
+ model: external_exports.string().min(1),
115734
+ /** When the door wrote the request, so a supervisor can tell a fresh request from one left behind. */
115735
+ at: external_exports.iso.datetime()
115736
+ });
115737
+ function writeModelMove(fs26, paths, request7) {
115738
+ fs26.mkdirPrivate(paths.modelMovesDir);
115739
+ fs26.writeFilePrivate(import_node_path36.default.join(paths.modelMovesDir, `${request7.sessionId}.json`), `${JSON.stringify(ModelMoveRequestSchema.parse(request7))}
115740
+ `);
115741
+ }
115742
+ function readModelMove(fs26, paths, sessionId) {
115743
+ const raw = fs26.readFileUtf8(import_node_path36.default.join(paths.modelMovesDir, `${sessionId}.json`));
115744
+ if (raw === void 0) {
115745
+ return void 0;
115746
+ }
115747
+ try {
115748
+ return ModelMoveRequestSchema.parse(JSON.parse(raw));
115749
+ } catch {
115750
+ return void 0;
115751
+ }
115752
+ }
115753
+ function removeModelMove(fs26, paths, sessionId) {
115754
+ fs26.removeRecursive(import_node_path36.default.join(paths.modelMovesDir, `${sessionId}.json`));
115755
+ }
115756
+ function supervisedSessionOf(fs26, paths, sessionId, isRunning) {
115757
+ for (const pool of fs26.readdir(paths.superviseDir)) {
115758
+ const sessions = liveSupervised(fs26, paths, pool, isRunning);
115759
+ const found = sessions.find((session) => session.sessionId === sessionId);
115760
+ if (found !== void 0) {
115761
+ return found;
115762
+ }
115763
+ }
115764
+ return void 0;
115765
+ }
115766
+
115602
115767
  // src/update/commands.ts
115603
115768
  var import_node_fs14 = __toESM(require("node:fs"), 1);
115604
115769
  var import_node_os7 = __toESM(require("node:os"), 1);
115605
- var import_node_path38 = __toESM(require("node:path"), 1);
115770
+ var import_node_path39 = __toESM(require("node:path"), 1);
115606
115771
  init_package();
115607
115772
  init_commandDeps();
115608
115773
  init_configProfilesStore();
@@ -115706,7 +115871,7 @@ var realUpdatePorts = {
115706
115871
  chmod: (filePath, mode) => {
115707
115872
  import_node_fs14.default.chmodSync(filePath, mode);
115708
115873
  },
115709
- mkdtemp: () => import_node_fs14.default.mkdtempSync(import_node_path38.default.join(import_node_os7.default.tmpdir(), "agent-shim-update-")),
115874
+ mkdtemp: () => import_node_fs14.default.mkdtempSync(import_node_path39.default.join(import_node_os7.default.tmpdir(), "agent-shim-update-")),
115710
115875
  rmRecursive: (targetPath) => {
115711
115876
  import_node_fs14.default.rmSync(targetPath, { recursive: true, force: true });
115712
115877
  }
@@ -115727,7 +115892,7 @@ function selfUpdateOptions(paths, checkOnly) {
115727
115892
  platform: process.platform,
115728
115893
  arch: process.arch,
115729
115894
  executablePath: realOwnExecutablePath(),
115730
- lockPath: import_node_path38.default.join(paths.root, "update.lock"),
115895
+ lockPath: import_node_path39.default.join(paths.root, "update.lock"),
115731
115896
  checkOnly,
115732
115897
  pid: process.pid
115733
115898
  };
@@ -115996,7 +116161,7 @@ function createRealWindowOpener(params) {
115996
116161
  init_conditions();
115997
116162
 
115998
116163
  // src/usage/handledStamps.ts
115999
- var import_node_path46 = __toESM(require("node:path"), 1);
116164
+ var import_node_path47 = __toESM(require("node:path"), 1);
116000
116165
  init_zod();
116001
116166
  var STAMPS_SCHEMA_VERSION = 1;
116002
116167
  var StampsFileSchema = external_exports.strictObject({
@@ -116019,7 +116184,7 @@ function readHandled(fs26, file2) {
116019
116184
  }
116020
116185
  function writeHandled(fs26, file2, handled) {
116021
116186
  const next = { schemaVersion: STAMPS_SCHEMA_VERSION, handled: Object.fromEntries(Object.entries(handled).map(([key, at2]) => [key, new Date(at2).toISOString()])) };
116022
- fs26.mkdirPrivate(import_node_path46.default.dirname(file2));
116187
+ fs26.mkdirPrivate(import_node_path47.default.dirname(file2));
116023
116188
  fs26.writeFilePrivate(file2, `${JSON.stringify(next, null, 2)}
116024
116189
  `);
116025
116190
  }
@@ -116759,14 +116924,14 @@ init_state();
116759
116924
 
116760
116925
  // src/frontdoor/supervisor.ts
116761
116926
  init_processRole();
116762
- var import_node_path47 = __toESM(require("node:path"), 1);
116927
+ var import_node_path48 = __toESM(require("node:path"), 1);
116763
116928
  init_state();
116764
116929
  function watchedInstallEntry(resolvedOwnExecutablePath, siblingExists) {
116765
- const parsed = import_node_path47.default.parse(resolvedOwnExecutablePath);
116930
+ const parsed = import_node_path48.default.parse(resolvedOwnExecutablePath);
116766
116931
  if (parsed.name === "agent-shim") {
116767
116932
  return resolvedOwnExecutablePath;
116768
116933
  }
116769
- const sibling = import_node_path47.default.join(parsed.dir, `agent-shim${parsed.ext}`);
116934
+ const sibling = import_node_path48.default.join(parsed.dir, `agent-shim${parsed.ext}`);
116770
116935
  return siblingExists(sibling) ? sibling : resolvedOwnExecutablePath;
116771
116936
  }
116772
116937
  var AWAIT_PID_POLL_MS = 50;
@@ -119369,7 +119534,7 @@ init_claudeShim();
119369
119534
  init_store();
119370
119535
  init_realPorts();
119371
119536
  var import_node_fs18 = __toESM(require("node:fs"), 1);
119372
- var import_node_path48 = __toESM(require("node:path"), 1);
119537
+ var import_node_path49 = __toESM(require("node:path"), 1);
119373
119538
  init_signIn();
119374
119539
  init_load();
119375
119540
  init_unrecognisedKeys();
@@ -119660,7 +119825,7 @@ function tcpPortEraRecord(raw) {
119660
119825
  return (has("port") || has("lastPort")) && !has("socketPath");
119661
119826
  }
119662
119827
  function pushPathResolution(push, resolution) {
119663
- const ownDir = import_node_path48.default.dirname(resolution.ownExecutablePath);
119828
+ const ownDir = import_node_path49.default.dirname(resolution.ownExecutablePath);
119664
119829
  switch (resolution.agentShim.status) {
119665
119830
  case "ok":
119666
119831
  push("path-resolution", "pass", `\`agent-shim\` on PATH resolves to this running executable, ${resolution.ownExecutablePath}.`, "agent-shim");
@@ -119764,14 +119929,14 @@ function pushProvider(push, entry, cacheEnv, signIn) {
119764
119929
  }
119765
119930
  function pushLegacyName(push, params) {
119766
119931
  const legacyVariables = Object.keys(params.env).filter((name) => name.startsWith(LEGACY_ENV_PREFIX) && params.env[name] !== void 0).sort();
119767
- if (legacyVariables.length === 0 && import_node_path48.default.basename(params.rootPath) !== LEGACY_HOME_DIRNAME) {
119932
+ if (legacyVariables.length === 0 && import_node_path49.default.basename(params.rootPath) !== LEGACY_HOME_DIRNAME) {
119768
119933
  push("legacy-name", "pass", "Nothing here still uses the former `claude-use` name.");
119769
119934
  return;
119770
119935
  }
119771
119936
  for (const name of legacyVariables) {
119772
119937
  push("legacy-name", "warn", `${name} is the former name of ${name.replace(LEGACY_ENV_PREFIX, ENV_PREFIX)}. Rename it; the old name still works but is only a fallback.`, name);
119773
119938
  }
119774
- if (import_node_path48.default.basename(params.rootPath) === LEGACY_HOME_DIRNAME) {
119939
+ if (import_node_path49.default.basename(params.rootPath) === LEGACY_HOME_DIRNAME) {
119775
119940
  push(
119776
119941
  "legacy-name",
119777
119942
  "warn",
@@ -120170,18 +120335,18 @@ function collectDoctorReport(params) {
120170
120335
  const { paths } = params;
120171
120336
  const identityNames = import_node_fs18.default.existsSync(paths.identitiesDir) ? import_node_fs18.default.readdirSync(paths.identitiesDir, { withFileTypes: true }).filter((entry) => entry.isDirectory() && isIdentityDirectoryName(entry.name)).map((entry) => entry.name).sort() : [];
120172
120337
  const identities = identityNames.map((name) => {
120173
- const farmRoot = import_node_path48.default.join(paths.identitiesDir, name);
120174
- const identityPath = import_node_path48.default.join(farmRoot, "identity.json");
120338
+ const farmRoot = import_node_path49.default.join(paths.identitiesDir, name);
120339
+ const identityPath = import_node_path49.default.join(farmRoot, "identity.json");
120175
120340
  return { name, path: identityPath, raw: realFsPort.readFileUtf8(identityPath), farmRoot, credentialsFilePresent: import_node_fs18.default.existsSync(credentialsFilePath(farmRoot)) };
120176
120341
  });
120177
120342
  const profileNames = import_node_fs18.default.existsSync(paths.configProfilesDir) ? import_node_fs18.default.readdirSync(paths.configProfilesDir, { withFileTypes: true }).filter((entry) => entry.isFile() && entry.name.endsWith(".json")).map((entry) => entry.name.slice(0, -".json".length)).sort() : [];
120178
120343
  const configProfiles = profileNames.map((name) => {
120179
- const profilePath = import_node_path48.default.join(paths.configProfilesDir, `${name}.json`);
120344
+ const profilePath = import_node_path49.default.join(paths.configProfilesDir, `${name}.json`);
120180
120345
  return { name, path: profilePath, raw: realFsPort.readFileUtf8(profilePath) };
120181
120346
  });
120182
120347
  const providerNames = import_node_fs18.default.existsSync(paths.providersDir) ? import_node_fs18.default.readdirSync(paths.providersDir, { withFileTypes: true }).filter((entry) => entry.isFile() && entry.name.endsWith(".json")).map((entry) => entry.name.slice(0, -".json".length)).sort() : [];
120183
120348
  const providers = providerNames.map((name) => {
120184
- const providerPath = import_node_path48.default.join(paths.providersDir, `${name}.json`);
120349
+ const providerPath = import_node_path49.default.join(paths.providersDir, `${name}.json`);
120185
120350
  return { name, path: providerPath, raw: realFsPort.readFileUtf8(providerPath) };
120186
120351
  });
120187
120352
  const ownExecutablePath = realOwnExecutablePath();
@@ -120193,12 +120358,12 @@ function collectDoctorReport(params) {
120193
120358
  binaryDiscovery = { ok: false, message: error63 instanceof Error ? error63.message : String(error63) };
120194
120359
  }
120195
120360
  const shimState = readJson(paths.claudeShimFile, ClaudeShimStateSchema);
120196
- const pathDirs = (params.env.PATH ?? "").split(import_node_path48.default.delimiter).filter((dir) => dir !== "");
120361
+ const pathDirs = (params.env.PATH ?? "").split(import_node_path49.default.delimiter).filter((dir) => dir !== "");
120197
120362
  const claudeShimShadow = shimState === void 0 ? void 0 : refinePathShadow(
120198
120363
  findPathShadow({
120199
120364
  pathDirs,
120200
- targetDir: import_node_path48.default.dirname(shimState.targetPath),
120201
- targetFilename: import_node_path48.default.basename(shimState.targetPath),
120365
+ targetDir: import_node_path49.default.dirname(shimState.targetPath),
120366
+ targetFilename: import_node_path49.default.basename(shimState.targetPath),
120202
120367
  findExecutableInDir
120203
120368
  }),
120204
120369
  shimState.targetPath,
@@ -120232,7 +120397,7 @@ function collectDoctorReport(params) {
120232
120397
  agentShim: refinePathShadow(
120233
120398
  findPathShadow({
120234
120399
  pathDirs,
120235
- targetDir: import_node_path48.default.dirname(ownExecutablePath),
120400
+ targetDir: import_node_path49.default.dirname(ownExecutablePath),
120236
120401
  targetFilename: commandFilename(ownExecutablePath, "agent-shim"),
120237
120402
  findExecutableInDir
120238
120403
  }),
@@ -125768,7 +125933,7 @@ var ResetRowSchema = external_exports.strictObject({
125768
125933
  var ResetScheduleSchema = external_exports.strictObject({ resets: external_exports.readonly(external_exports.array(ResetRowSchema)) });
125769
125934
 
125770
125935
  // src/frontdoor/controlSchemas.ts
125771
- var import_node_path49 = __toESM(require("node:path"), 1);
125936
+ var import_node_path50 = __toESM(require("node:path"), 1);
125772
125937
  init_zod();
125773
125938
  init_schema2();
125774
125939
 
@@ -125980,11 +126145,11 @@ var FrontDoorSessionsOutputSchema = external_exports.strictObject({ sessions: ex
125980
126145
  var CheckRunInputSchema = external_exports.strictObject({
125981
126146
  path: external_exports.string().min(1),
125982
126147
  identity: external_exports.string().min(1).optional()
125983
- }).refine((input2) => import_node_path49.default.isAbsolute(input2.path), { message: "path must be absolute: the door cannot resolve a relative path against the caller's working directory" });
126148
+ }).refine((input2) => import_node_path50.default.isAbsolute(input2.path), { message: "path must be absolute: the door cannot resolve a relative path against the caller's working directory" });
125984
126149
  var PoolPickInputSchema = external_exports.strictObject({
125985
126150
  pool: external_exports.string().min(1),
125986
126151
  path: external_exports.string().min(1)
125987
- }).refine((input2) => import_node_path49.default.isAbsolute(input2.path), { message: "path must be absolute: the door cannot resolve a relative path against the caller's working directory" });
126152
+ }).refine((input2) => import_node_path50.default.isAbsolute(input2.path), { message: "path must be absolute: the door cannot resolve a relative path against the caller's working directory" });
125988
126153
  var DoctorFindingSchema = external_exports.strictObject({
125989
126154
  section: external_exports.enum(DOCTOR_SECTIONS),
125990
126155
  subject: external_exports.string().optional(),
@@ -128826,7 +128991,7 @@ function createLifecycleApiRouter(deps) {
128826
128991
  init_cliError();
128827
128992
 
128828
128993
  // src/frontdoor/launchSchemas.ts
128829
- var import_node_path50 = __toESM(require("node:path"), 1);
128994
+ var import_node_path51 = __toESM(require("node:path"), 1);
128830
128995
  init_zod();
128831
128996
  init_claudeVersion();
128832
128997
  init_identity();
@@ -128836,7 +129001,7 @@ var LaunchResolveInputSchema = external_exports.strictObject({
128836
129001
  argv: external_exports.readonly(external_exports.array(external_exports.string())).optional(),
128837
129002
  /** The launch's inherited environment. Absent means an empty one: the door's own environment is never a substitute for the caller's, so a caller that wants `AGENT_SHIM_*` switches or a `CLAUDE_CONFIG_DIR` considered names them here. Values are read, never reported. */
128838
129003
  env: external_exports.record(external_exports.string(), external_exports.string()).optional()
128839
- }).refine((input2) => import_node_path50.default.isAbsolute(input2.path), { message: "path must be absolute: the door cannot resolve a relative path against the caller's working directory" });
129004
+ }).refine((input2) => import_node_path51.default.isAbsolute(input2.path), { message: "path must be absolute: the door cannot resolve a relative path against the caller's working directory" });
128840
129005
  var LaunchPoolDecisionSchema = external_exports.strictObject({
128841
129006
  name: external_exports.string(),
128842
129007
  reasons: external_exports.readonly(external_exports.array(external_exports.string())),
@@ -131264,6 +131429,17 @@ function resolveModelTarget(model, models, includeUnqualified) {
131264
131429
  }
131265
131430
  return first.includes("/") ? first.split("/")[0] : resolveModelTarget(first, models, true);
131266
131431
  }
131432
+ function resolveAccountTarget(model, models) {
131433
+ if (model.startsWith("acct:")) {
131434
+ const ref = model.slice("acct:".length);
131435
+ const [identity, ...rest] = ref.split("/");
131436
+ const named = rest.join("/");
131437
+ return identity === void 0 || named === "" ? void 0 : { identity, model: named };
131438
+ }
131439
+ const virtual = models?.virtual?.[model];
131440
+ const first = virtual?.members.find((member) => member.startsWith("acct:"));
131441
+ return first === void 0 ? void 0 : resolveAccountTarget(first, void 0);
131442
+ }
131267
131443
  function createProviderRouteResolver(deps) {
131268
131444
  const oauthRoute = createPassthroughRoute("anthropic", { baseUrl: `https://${CONNECT_INTERCEPT_HOST}:${String(HTTPS_PORT)}`, stripPrefix: void 0, headroomUpstream: void 0 });
131269
131445
  const antigravityQuotaSources = /* @__PURE__ */ new Map();
@@ -131427,19 +131603,30 @@ function createProviderRouteResolver(deps) {
131427
131603
  routes = void 0;
131428
131604
  isRouter = false;
131429
131605
  }
131430
- const routesByName = isRouter || current.session.routeByName && providerName !== void 0;
131606
+ const routesByName = (isRouter || current.session.routeByName) && !isRcSelfHostPath(path65);
131431
131607
  if (routesByName) {
131432
131608
  const scan2 = await scanRequestHead(current, false);
131433
131609
  if (scan2.replayed !== void 0) {
131434
131610
  replay = scan2.replayed;
131435
131611
  }
131436
- const target = scan2.model === void 0 || providerName === void 0 ? void 0 : resolveModelTarget(scan2.model, deps.models?.(), isRouter || current.session.routeByName);
131612
+ const account = scan2.model === void 0 ? void 0 : resolveAccountTarget(scan2.model, deps.models?.());
131613
+ if (account !== void 0) {
131614
+ const sessionId = current.session.sessionId ?? "";
131615
+ const moved = sessionId !== "" && (deps.accountMoves?.(sessionId, account.identity, account.model) ?? false);
131616
+ return {
131617
+ ok: false,
131618
+ status: HTTP_STATUS.badRequest,
131619
+ message: moved ? `model "${account.model}" runs under identity "${account.identity}"; this session is being moved there and will resume with it` : `model "${account.model}" runs under identity "${account.identity}", which needs a relaunch this session cannot make; start it there with: claude @${account.identity} --resume`
131620
+ };
131621
+ }
131622
+ const target = scan2.model === void 0 ? void 0 : resolveModelTarget(scan2.model, deps.models?.(), isRouter || current.session.routeByName && providerName !== void 0);
131437
131623
  if (target === providerName) {
131438
131624
  const resolution = resolve2(current);
131439
131625
  return resolution.ok && replay !== void 0 ? { ok: true, route: servingRewritten(resolution.route, { ...replay, url: current.url }), request: { ...replay, url: current.url } } : resolution.ok ? serveScoped(resolution) : resolution;
131440
131626
  }
131441
131627
  if (target !== void 0) {
131442
- const rest2 = path65.slice(`${PROVIDER_PATH_PREFIX}${encodeURIComponent(providerName ?? "")}`.length);
131628
+ const scopedPrefix = providerName === void 0 ? void 0 : `${PROVIDER_PATH_PREFIX}${encodeURIComponent(providerName)}`;
131629
+ const rest2 = scopedPrefix !== void 0 && path65.startsWith(scopedPrefix) ? path65.slice(scopedPrefix.length) : path65;
131443
131630
  const query2 = current.url.includes("?") ? current.url.slice(current.url.indexOf("?")) : "";
131444
131631
  const carried = scan2.replayed ?? current;
131445
131632
  current = { ...current, url: `${PROVIDER_PATH_PREFIX}${encodeURIComponent(target)}${rest2}${query2}`, body: carried.body, headers: carried.headers };
@@ -131597,7 +131784,7 @@ function createRcLiveUsage(deps) {
131597
131784
  }
131598
131785
 
131599
131786
  // src/frontdoor/rcSelfHostMint.ts
131600
- var import_node_path51 = __toESM(require("node:path"), 1);
131787
+ var import_node_path52 = __toESM(require("node:path"), 1);
131601
131788
  init_account();
131602
131789
 
131603
131790
  // src/frontdoor/rcSelfHostLocal.ts
@@ -131727,7 +131914,7 @@ function readJsonObject(fs26, file2) {
131727
131914
  return isRecord16(parsed) ? parsed : void 0;
131728
131915
  }
131729
131916
  function readRcSelfHostRecord(fs26, frontdoorDir) {
131730
- const parsed = readJsonObject(fs26, import_node_path51.default.join(frontdoorDir, RC_SELF_HOST_RECORD_DIR, RC_SELF_HOST_RECORD_FILE));
131917
+ const parsed = readJsonObject(fs26, import_node_path52.default.join(frontdoorDir, RC_SELF_HOST_RECORD_DIR, RC_SELF_HOST_RECORD_FILE));
131731
131918
  if (parsed === void 0) {
131732
131919
  return void 0;
131733
131920
  }
@@ -131741,11 +131928,11 @@ function mintRcSelfHostCredential(deps) {
131741
131928
  if (!isIdentityName(deps.identity)) {
131742
131929
  throw new Error(`"${deps.identity}" is not a valid identity name.`);
131743
131930
  }
131744
- const identityDir = import_node_path51.default.join(deps.identitiesDir, deps.identity);
131745
- const credentialsFile = import_node_path51.default.join(identityDir, CREDENTIALS_FILE2);
131746
- const claudeJsonFile = import_node_path51.default.join(identityDir, CLAUDE_JSON2);
131747
- const recordDir = import_node_path51.default.join(deps.frontdoorDir, RC_SELF_HOST_RECORD_DIR);
131748
- const recordFile = import_node_path51.default.join(recordDir, RC_SELF_HOST_RECORD_FILE);
131931
+ const identityDir = import_node_path52.default.join(deps.identitiesDir, deps.identity);
131932
+ const credentialsFile = import_node_path52.default.join(identityDir, CREDENTIALS_FILE2);
131933
+ const claudeJsonFile = import_node_path52.default.join(identityDir, CLAUDE_JSON2);
131934
+ const recordDir = import_node_path52.default.join(deps.frontdoorDir, RC_SELF_HOST_RECORD_DIR);
131935
+ const recordFile = import_node_path52.default.join(recordDir, RC_SELF_HOST_RECORD_FILE);
131749
131936
  const previousRecord = readRcSelfHostRecord(deps.fs, deps.frontdoorDir);
131750
131937
  const existingCredentials = readJsonObject(deps.fs, credentialsFile);
131751
131938
  const existingOauth = isRecord16(existingCredentials?.claudeAiOauth) ? existingCredentials.claudeAiOauth : void 0;
@@ -131761,7 +131948,7 @@ function mintRcSelfHostCredential(deps) {
131761
131948
  const organizationUuid = deps.newUuid();
131762
131949
  const accountUuid = deps.newUuid();
131763
131950
  const mintedAt = new Date(deps.now()).toISOString();
131764
- deps.fs.mkdirPrivate(import_node_path51.default.dirname(credentialsFile));
131951
+ deps.fs.mkdirPrivate(import_node_path52.default.dirname(credentialsFile));
131765
131952
  deps.fs.writeFilePrivate(credentialsFile, `${JSON.stringify({ ...existingCredentials, claudeAiOauth: { accessToken, refreshToken, expiresAt: null, scopes: [...RC_SELF_HOST_SCOPE_LIST], subscriptionType: SELF_HOST_SUBSCRIPTION_TYPE, rateLimitTier: null } }, null, 2)}
131766
131953
  `);
131767
131954
  const claudeJson = readJsonObject(deps.fs, claudeJsonFile) ?? {};
@@ -132148,7 +132335,7 @@ function registerRcCommand(frontdoor, paths) {
132148
132335
  }
132149
132336
 
132150
132337
  // src/frontdoor/rcCredentialStore.ts
132151
- var import_node_path52 = __toESM(require("node:path"), 1);
132338
+ var import_node_path53 = __toESM(require("node:path"), 1);
132152
132339
  function isSafeSessionId(sessionId) {
132153
132340
  return /^[A-Za-z0-9_-]+$/.test(sessionId);
132154
132341
  }
@@ -132174,7 +132361,7 @@ function sequenceNumOfJson(value2) {
132174
132361
  }
132175
132362
  function createRcCredentialStore(fs26, dir) {
132176
132363
  fs26.mkdirPrivate(dir);
132177
- const fileFor = (sessionId) => import_node_path52.default.join(dir, `${sessionId}.json`);
132364
+ const fileFor = (sessionId) => import_node_path53.default.join(dir, `${sessionId}.json`);
132178
132365
  const readParsed = (sessionId) => {
132179
132366
  const raw = fs26.readFileUtf8(fileFor(sessionId));
132180
132367
  if (raw === void 0) {
@@ -134673,6 +134860,14 @@ function realFrontDoorSupervisorPorts(paths) {
134673
134860
  env: process.env,
134674
134861
  credentials: { ...realCredentialPort, cache: realCredentialCacheEnv(paths) },
134675
134862
  usageSnapshotOf: (identity) => identity === void 0 ? void 0 : routingSnapshots.get(identity) ?? readUsageSnapshot(realFarmFs, paths.usageSnapshotsDir, identity),
134863
+ // An `acct:` model member is served by relaunch: the door leaves a move request for the session's supervisor (found across every pool's registry, since the door does not know which pool launched the session) and answers the request with what is happening. A session nothing supervises gets the message naming the command to run instead.
134864
+ accountMoves: (sessionId, to2, model) => {
134865
+ if (supervisedSessionOf(realFarmFs, paths, sessionId, realIsProcessRunning) === void 0) {
134866
+ return false;
134867
+ }
134868
+ writeModelMove(realFarmFs, paths, { sessionId, to: to2, model, at: (/* @__PURE__ */ new Date()).toISOString() });
134869
+ return true;
134870
+ },
134676
134871
  ...rcSelfHostSurface === void 0 ? {} : { rcSelfHostRoute: rcSelfHostSurface.route }
134677
134872
  }),
134678
134873
  rcTracker,
@@ -134928,7 +135123,7 @@ function realFrontDoorSupervisorPorts(paths) {
134928
135123
  const leafFor = createLeafCache(loadCa(), () => /* @__PURE__ */ new Date());
134929
135124
  const capture = captureFromEnv(process.env, paths.logsDir);
134930
135125
  if (capture !== void 0) {
134931
- log(`capture enabled, recording CONNECT targets and piped exchanges to ${import_node_path53.default.join(paths.logsDir, "frontdoor-capture.jsonl")}`);
135126
+ log(`capture enabled, recording CONNECT targets and piped exchanges to ${import_node_path54.default.join(paths.logsDir, "frontdoor-capture.jsonl")}`);
134932
135127
  }
134933
135128
  if (rcSelfHostSurface !== void 0) {
134934
135129
  log("self-hosted Remote Control surface on: the door serves the CCR session family itself, and its own client-half dials its own transparent surface");
@@ -135074,7 +135269,7 @@ function registerFrontDoorCommand(program2, deps) {
135074
135269
  // src/statusline/commands.ts
135075
135270
  var import_node_child_process7 = require("node:child_process");
135076
135271
  var import_node_os12 = __toESM(require("node:os"), 1);
135077
- var import_node_path55 = __toESM(require("node:path"), 1);
135272
+ var import_node_path56 = __toESM(require("node:path"), 1);
135078
135273
  init_commandDeps();
135079
135274
  init_providersStore();
135080
135275
  init_realPorts();
@@ -135082,13 +135277,13 @@ init_account();
135082
135277
  init_read();
135083
135278
 
135084
135279
  // src/statusline/client.ts
135085
- var import_node_path54 = __toESM(require("node:path"), 1);
135280
+ var import_node_path55 = __toESM(require("node:path"), 1);
135086
135281
  function isAntigravityPayload(payload) {
135087
135282
  return typeof payload === "object" && payload !== null && "product" in payload && payload.product === "antigravity";
135088
135283
  }
135089
135284
  var ANTIGRAVITY_SETTINGS_SEGMENTS = [".gemini", "antigravity-cli", "settings.json"];
135090
135285
  function antigravityStacksWithDefault(fs26, homeDir) {
135091
- const raw = fs26.readFileUtf8(import_node_path54.default.join(homeDir, ...ANTIGRAVITY_SETTINGS_SEGMENTS));
135286
+ const raw = fs26.readFileUtf8(import_node_path55.default.join(homeDir, ...ANTIGRAVITY_SETTINGS_SEGMENTS));
135092
135287
  if (raw === void 0) {
135093
135288
  return false;
135094
135289
  }
@@ -135801,7 +135996,7 @@ function registerStatuslineCommand(program2, deps) {
135801
135996
  } else {
135802
135997
  const configDir = process.env.CLAUDE_CONFIG_DIR;
135803
135998
  try {
135804
- account = readAccountMetadataFile(realFarmFs, configDir === void 0 || configDir === "" ? import_node_path55.default.join(import_node_os12.default.homedir(), ".claude.json") : import_node_path55.default.join(configDir, ".claude.json"));
135999
+ account = readAccountMetadataFile(realFarmFs, configDir === void 0 || configDir === "" ? import_node_path56.default.join(import_node_os12.default.homedir(), ".claude.json") : import_node_path56.default.join(configDir, ".claude.json"));
135805
136000
  } catch {
135806
136001
  account = void 0;
135807
136002
  }
@@ -145594,7 +145789,7 @@ async function serveMcp(mcp, transport, options = {}) {
145594
145789
 
145595
145790
  // src/mcp/permissions.ts
145596
145791
  var import_node_fs20 = __toESM(require("node:fs"), 1);
145597
- var import_node_path56 = __toESM(require("node:path"), 1);
145792
+ var import_node_path57 = __toESM(require("node:path"), 1);
145598
145793
  init_zod();
145599
145794
  init_store();
145600
145795
  var StoredMcpPermissionsSchema = external_exports.strictObject({
@@ -145616,10 +145811,10 @@ function effectiveMcpPermissions(flags, stored) {
145616
145811
  return { writes: flags.writes || stored.writes, remoteControl: flags.remoteControl || stored.remoteControl, history: flags.history || stored.history };
145617
145812
  }
145618
145813
  function watchMcpPermissions(paths, onChange) {
145619
- const directory = import_node_path56.default.dirname(paths.mcpPermissionsFile);
145814
+ const directory = import_node_path57.default.dirname(paths.mcpPermissionsFile);
145620
145815
  import_node_fs20.default.mkdirSync(directory, { recursive: true });
145621
145816
  const watcher = import_node_fs20.default.watch(directory, (_event, filename) => {
145622
- if (filename === null || filename === import_node_path56.default.basename(paths.mcpPermissionsFile)) {
145817
+ if (filename === null || filename === import_node_path57.default.basename(paths.mcpPermissionsFile)) {
145623
145818
  onChange();
145624
145819
  }
145625
145820
  });
@@ -145933,16 +146128,16 @@ init_credentialCache();
145933
146128
 
145934
146129
  // src/identityToken.ts
145935
146130
  var import_node_fs21 = __toESM(require("node:fs"), 1);
145936
- var import_node_path57 = __toESM(require("node:path"), 1);
146131
+ var import_node_path58 = __toESM(require("node:path"), 1);
145937
146132
  init_cliError();
145938
146133
  var TOKEN_FILE_MODE = 384;
145939
146134
  var TOKEN_DIR_MODE = 448;
145940
146135
  var OAUTH_TOKEN_RE = /^sk-ant-oat\d+-[A-Za-z0-9_-]+$/;
145941
146136
  function identityTokenDir(paths) {
145942
- return import_node_path57.default.join(paths.root, "credentials");
146137
+ return import_node_path58.default.join(paths.root, "credentials");
145943
146138
  }
145944
146139
  function identityTokenPath(paths, identityName) {
145945
- return import_node_path57.default.join(identityTokenDir(paths), `${identityName}.token`);
146140
+ return import_node_path58.default.join(identityTokenDir(paths), `${identityName}.token`);
145946
146141
  }
145947
146142
  function storeIdentityToken(paths, identityName, raw) {
145948
146143
  const token = raw.trim();
@@ -145953,7 +146148,7 @@ function storeIdentityToken(paths, identityName, raw) {
145953
146148
  import_node_fs21.default.mkdirSync(dir, { recursive: true, mode: TOKEN_DIR_MODE });
145954
146149
  import_node_fs21.default.chmodSync(dir, TOKEN_DIR_MODE);
145955
146150
  const target = identityTokenPath(paths, identityName);
145956
- const temp = import_node_path57.default.join(dir, `.${identityName}.${String(process.pid)}.tmp`);
146151
+ const temp = import_node_path58.default.join(dir, `.${identityName}.${String(process.pid)}.tmp`);
145957
146152
  import_node_fs21.default.writeFileSync(temp, `${token}
145958
146153
  `, { mode: TOKEN_FILE_MODE });
145959
146154
  import_node_fs21.default.renameSync(temp, target);
@@ -146124,7 +146319,7 @@ function registerDoctorCommand(program2, deps) {
146124
146319
  // src/headroom/commands.ts
146125
146320
  var import_node_fs22 = __toESM(require("node:fs"), 1);
146126
146321
  var import_node_http5 = __toESM(require("node:http"), 1);
146127
- var import_node_path58 = __toESM(require("node:path"), 1);
146322
+ var import_node_path59 = __toESM(require("node:path"), 1);
146128
146323
  var import_node_child_process9 = require("node:child_process");
146129
146324
  init_commandDeps();
146130
146325
  init_configProfilesStore();
@@ -146314,12 +146509,12 @@ function readInstalledHeadroomCommit() {
146314
146509
  if (toolDir.status !== 0) {
146315
146510
  return void 0;
146316
146511
  }
146317
- const libDir = import_node_path58.default.join(toolDir.stdout.trim(), HEADROOM_TOOL_NAME, "lib");
146512
+ const libDir = import_node_path59.default.join(toolDir.stdout.trim(), HEADROOM_TOOL_NAME, "lib");
146318
146513
  for (const python of realFarmFs.readdir(libDir)) {
146319
- const sitePackages = import_node_path58.default.join(libDir, python, "site-packages");
146514
+ const sitePackages = import_node_path59.default.join(libDir, python, "site-packages");
146320
146515
  for (const entry of realFarmFs.readdir(sitePackages)) {
146321
146516
  if (entry.startsWith("headroom_ai-") && entry.endsWith(".dist-info")) {
146322
- const directUrl = realFarmFs.readFileUtf8(import_node_path58.default.join(sitePackages, entry, "direct_url.json"));
146517
+ const directUrl = realFarmFs.readFileUtf8(import_node_path59.default.join(sitePackages, entry, "direct_url.json"));
146323
146518
  return directUrl === void 0 ? void 0 : parseInstalledCommit(directUrl);
146324
146519
  }
146325
146520
  }
@@ -146469,112 +146664,6 @@ init_realPorts();
146469
146664
 
146470
146665
  // src/supervise/marks.ts
146471
146666
  init_resumeContext();
146472
-
146473
- // src/supervise/registry.ts
146474
- var import_node_path59 = __toESM(require("node:path"), 1);
146475
- init_zod();
146476
- var SupervisedSessionSchema = external_exports.strictObject({
146477
- /** The launcher's process id, which is what tells a live entry from one a crashed launcher left behind. */
146478
- pid: external_exports.number().int().positive(),
146479
- sessionId: external_exports.string().min(1),
146480
- pool: external_exports.string().min(1),
146481
- /** The identity the session is running as now. */
146482
- identity: external_exports.string().min(1),
146483
- cwd: external_exports.string().min(1),
146484
- /** When the session began running as `identity`: its launch, or the move that brought it there. */
146485
- since: external_exports.iso.datetime(),
146486
- /** The size in tokens of the context the session carried onto `identity` when it moved there; absent for a launch, which carries none. */
146487
- carriedTokens: external_exports.number().int().nonnegative().optional()
146488
- });
146489
- var SessionStateSchema = external_exports.strictObject({
146490
- /** `busy` from the moment a prompt is submitted until the turn ends, `idle` from then until the next prompt: the only times the child can be stopped without losing a turn. */
146491
- mark: external_exports.enum(["busy", "idle"]),
146492
- /** The size in tokens of the context as of the last turn that ended; absent until one has. */
146493
- contextTokens: external_exports.number().int().nonnegative().optional(),
146494
- /** Whether the session was compacted during its stay on the member it runs on now. Set by the supervisor, kept by later marks, and cleared when the session moves. */
146495
- compacted: external_exports.boolean().optional(),
146496
- at: external_exports.iso.datetime()
146497
- });
146498
- function superviseDirOf(paths, pool) {
146499
- return import_node_path59.default.join(paths.superviseDir, pool);
146500
- }
146501
- function sessionsDirOf(paths, pool) {
146502
- return import_node_path59.default.join(superviseDirOf(paths, pool), "sessions");
146503
- }
146504
- function sessionFileOf(paths, pool, sessionId) {
146505
- return import_node_path59.default.join(sessionsDirOf(paths, pool), `${sessionId}.json`);
146506
- }
146507
- function stateDirOf(paths, pool) {
146508
- return import_node_path59.default.join(superviseDirOf(paths, pool), "state");
146509
- }
146510
- function sessionStatePath(paths, pool, sessionId) {
146511
- return import_node_path59.default.join(stateDirOf(paths, pool), `${sessionId}.json`);
146512
- }
146513
- function writeSessionState(fs26, paths, pool, sessionId, state) {
146514
- fs26.mkdirPrivate(stateDirOf(paths, pool));
146515
- fs26.writeFilePrivate(sessionStatePath(paths, pool, sessionId), `${JSON.stringify(SessionStateSchema.parse(state))}
146516
- `);
146517
- }
146518
- function readSessionState(fs26, paths, pool, sessionId) {
146519
- const raw = fs26.readFileUtf8(sessionStatePath(paths, pool, sessionId));
146520
- if (raw === void 0) {
146521
- return void 0;
146522
- }
146523
- try {
146524
- const parsed = SessionStateSchema.safeParse(JSON.parse(raw));
146525
- return parsed.success ? parsed.data : void 0;
146526
- } catch {
146527
- return void 0;
146528
- }
146529
- }
146530
- function registerSupervised(fs26, paths, session) {
146531
- fs26.mkdirPrivate(sessionsDirOf(paths, session.pool));
146532
- fs26.writeFilePrivate(sessionFileOf(paths, session.pool, session.sessionId), `${JSON.stringify(SupervisedSessionSchema.parse(session))}
146533
- `);
146534
- }
146535
- function unregisterSupervised(fs26, paths, pool, sessionId) {
146536
- fs26.removeRecursive(sessionFileOf(paths, pool, sessionId));
146537
- fs26.removeRecursive(sessionStatePath(paths, pool, sessionId));
146538
- }
146539
- function liveSupervised(fs26, paths, pool, isRunning) {
146540
- const live = [];
146541
- for (const name of fs26.readdir(sessionsDirOf(paths, pool))) {
146542
- const file2 = import_node_path59.default.join(sessionsDirOf(paths, pool), name);
146543
- const raw = fs26.readFileUtf8(file2);
146544
- if (raw === void 0) {
146545
- continue;
146546
- }
146547
- let parsed;
146548
- try {
146549
- parsed = SupervisedSessionSchema.safeParse(JSON.parse(raw));
146550
- } catch {
146551
- fs26.removeRecursive(file2);
146552
- continue;
146553
- }
146554
- if (parsed.success && isRunning(parsed.data.pid)) {
146555
- live.push(parsed.data);
146556
- } else {
146557
- fs26.removeRecursive(file2);
146558
- }
146559
- }
146560
- return live;
146561
- }
146562
- function committedContextTokens(sessions, records) {
146563
- const committed = {};
146564
- for (const session of sessions) {
146565
- if (session.carriedTokens === void 0) {
146566
- continue;
146567
- }
146568
- const sinceMs = Date.parse(session.since);
146569
- const written = records.some((record2) => record2.sessionId === session.sessionId && record2.identity === session.identity && Date.parse(record2.at) >= sinceMs);
146570
- if (!written) {
146571
- committed[session.identity] = (committed[session.identity] ?? 0) + session.carriedTokens;
146572
- }
146573
- }
146574
- return committed;
146575
- }
146576
-
146577
- // src/supervise/marks.ts
146578
146667
  var MARK_HOOK_TIMEOUT_SECONDS = 10;
146579
146668
  var SUPERVISE_MARK_COMMAND = "__supervise-mark";
146580
146669
  function shellQuote(value2) {
@@ -148409,6 +148498,45 @@ function createMover(deps) {
148409
148498
  }
148410
148499
  };
148411
148500
  }
148501
+ function createIdentityMover(deps) {
148502
+ const { paths, farmFs, pool } = deps;
148503
+ return (request7) => {
148504
+ let lock;
148505
+ try {
148506
+ lock = acquireIdentityLock({ identity: "move", dir: superviseDirOf(paths, pool), fs: farmFs, nowMs: deps.now, pid: deps.pid, isRunning: deps.isRunning, sleep: deps.sleep });
148507
+ } catch (error63) {
148508
+ if (error63 instanceof IdentityLockBusyError) {
148509
+ return { kind: "stay", reason: error63.message };
148510
+ }
148511
+ throw error63;
148512
+ }
148513
+ try {
148514
+ if (farmFs.readFileUtf8(import_node_path63.default.join(paths.identitiesDir, request7.to, "identity.json")) === void 0) {
148515
+ return { kind: "stay", reason: `no identity "${request7.to}"` };
148516
+ }
148517
+ if (request7.to === request7.from) {
148518
+ return { kind: "stay", reason: `the model already runs under this session's identity` };
148519
+ }
148520
+ const transcript = import_node_path63.default.join(paths.identitiesDir, request7.to, "projects", projectDirNameOf(deps.cwd), `${request7.sessionId}.jsonl`);
148521
+ if (farmFs.lstat(transcript)?.kind !== "file") {
148522
+ return { kind: "stay", reason: `${request7.to} does not share this conversation's history, so it could not resume it` };
148523
+ }
148524
+ const nowMs = deps.now();
148525
+ registerSupervised(farmFs, paths, {
148526
+ pid: deps.pid,
148527
+ sessionId: request7.sessionId,
148528
+ pool,
148529
+ identity: request7.to,
148530
+ cwd: deps.cwd,
148531
+ since: new Date(nowMs).toISOString(),
148532
+ ...request7.contextTokens === void 0 ? {} : { carriedTokens: request7.contextTokens }
148533
+ });
148534
+ return { kind: "move", to: request7.to, explanation: `the picked model runs under ${request7.to}` };
148535
+ } finally {
148536
+ lock.release();
148537
+ }
148538
+ };
148539
+ }
148412
148540
 
148413
148541
  // src/supervise/realPorts.ts
148414
148542
  var import_node_child_process10 = require("node:child_process");
@@ -148559,6 +148687,17 @@ async function runChild2(deps, plan, identity, canCompact) {
148559
148687
  if (isLeaving()) {
148560
148688
  break;
148561
148689
  }
148690
+ const move = deps.claimModelMove(plan.sessionId);
148691
+ if (move !== void 0) {
148692
+ const outcome = deps.decideRemodel({ sessionId: plan.sessionId, from: identity, to: move.to });
148693
+ if (outcome.kind === "move") {
148694
+ state.leaving = true;
148695
+ depart({ kind: "remodel", to: outcome.to, model: move.model });
148696
+ } else {
148697
+ deps.log.warn(`agent-shim: session ${plan.sessionId} picked a model under ${move.to}, but stays on ${identity}: ${outcome.reason}`);
148698
+ }
148699
+ continue;
148700
+ }
148562
148701
  const hit = deps.quotaHit(identity, plan.sessionId, startedMs);
148563
148702
  if (hit !== void 0) {
148564
148703
  if (!state.declined) {
@@ -148584,14 +148723,18 @@ async function runChild2(deps, plan, identity, canCompact) {
148584
148723
  const stopWatching = deps.watchChanges(identity, () => {
148585
148724
  void check2();
148586
148725
  });
148726
+ const stopWatchingMoves = deps.watchModelMoves?.(() => {
148727
+ void check2();
148728
+ });
148587
148729
  try {
148588
148730
  const first = await Promise.race([child.exit.then((result2) => ({ kind: "exited", result: result2 })), departing]);
148589
148731
  stopWatching();
148732
+ stopWatchingMoves?.();
148590
148733
  if (first.kind === "exited") {
148591
148734
  return first;
148592
148735
  }
148593
148736
  deps.log.info(
148594
- first.kind === "move" ? `agent-shim: ${identity} is out of quota; resuming session ${plan.sessionId} under ${first.to} (${first.explanation})` : `agent-shim: ${first.reason}; compacting the ${String(first.contextTokens)}-token context of session ${plan.sessionId} on ${identity}`
148737
+ first.kind === "move" ? `agent-shim: ${identity} is out of quota; resuming session ${plan.sessionId} under ${first.to} (${first.explanation})` : first.kind === "remodel" ? `agent-shim: resuming session ${plan.sessionId} under ${first.to} with ${first.model}, which only runs there` : `agent-shim: ${first.reason}; compacting the ${String(first.contextTokens)}-token context of session ${plan.sessionId} on ${identity}`
148595
148738
  );
148596
148739
  const result = await stopChild(deps, child);
148597
148740
  if (state.terminating) {
@@ -148603,6 +148746,7 @@ async function runChild2(deps, plan, identity, canCompact) {
148603
148746
  return first;
148604
148747
  } finally {
148605
148748
  stopWatching();
148749
+ stopWatchingMoves?.();
148606
148750
  for (const stop of stopHandlers) {
148607
148751
  stop();
148608
148752
  }
@@ -148682,7 +148826,7 @@ async function supervise(deps, first) {
148682
148826
  launch = { ...base, conversation: "resume", member: identity };
148683
148827
  continue;
148684
148828
  }
148685
- launch = { ...base, conversation: "resume", member: outcome.to };
148829
+ launch = { ...base, conversation: "resume", member: outcome.to, ...outcome.kind === "remodel" ? { model: outcome.model } : {} };
148686
148830
  const compactedOnOld = compactedHere;
148687
148831
  compactedHere = false;
148688
148832
  if (compaction !== void 0) {
@@ -148752,6 +148896,20 @@ async function runSupervised(params) {
148752
148896
  pickMember: resolvePoolLaunch,
148753
148897
  log
148754
148898
  });
148899
+ const identityMover = createIdentityMover({
148900
+ paths,
148901
+ fs: realFsPort,
148902
+ farmFs: realFarmFs,
148903
+ pool,
148904
+ pools: params.pools,
148905
+ cwd: farm.cwd,
148906
+ pid: farm.lock.pid,
148907
+ now: farm.now,
148908
+ isRunning: farm.lock.isRunning,
148909
+ sleep: farm.lock.sleep,
148910
+ pickMember: resolvePoolLaunch,
148911
+ log
148912
+ });
148755
148913
  return await supervise(
148756
148914
  {
148757
148915
  pool,
@@ -148777,6 +148935,16 @@ async function runSupervised(params) {
148777
148935
  return mover(request7);
148778
148936
  },
148779
148937
  contextTokens: (sessionId) => resumedContextTokens(farm.fs, { claudeHome: farm.claudeHome, cwd: farm.cwd, passthrough: ["--resume", sessionId] }),
148938
+ claimModelMove: (sessionId) => {
148939
+ const request7 = readModelMove(realFarmFs, paths, sessionId);
148940
+ if (request7 === void 0) {
148941
+ return void 0;
148942
+ }
148943
+ removeModelMove(realFarmFs, paths, sessionId);
148944
+ return { to: request7.to, model: request7.model };
148945
+ },
148946
+ decideRemodel: (request7) => identityMover({ sessionId: request7.sessionId, from: request7.from, to: request7.to, contextTokens: void 0 }),
148947
+ watchModelMoves: (onChange) => realWatchDirectory(paths.modelMovesDir, () => true, "the model-move requests", log)(onChange),
148780
148948
  ...compaction === void 0 ? {} : { compaction },
148781
148949
  register: (session) => {
148782
148950
  registerSupervised(realFarmFs, paths, session);