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 +380 -212
- package/dist/index.cjs +28 -6
- package/dist/index.mjs +28 -6
- package/dist/types/index.d.ts +444 -440
- package/package.json +1 -1
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.
|
|
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 === "" ||
|
|
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 =
|
|
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,
|
|
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
|
-
|
|
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(
|
|
63118
|
-
ports.fs.writeFileUtf8(
|
|
63119
|
-
const downloaded = ports.fs.readFileBytes(
|
|
63120
|
-
const sidecar = ports.fs.readFileUtf8(
|
|
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 =
|
|
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,
|
|
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
|
-
|
|
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
|
|
63353
|
+
return import_node_path40.default.join(distDir, OWN_CLI_FILE_NAME);
|
|
63353
63354
|
}
|
|
63354
|
-
var
|
|
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
|
-
|
|
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 =
|
|
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
|
|
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
|
-
|
|
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 =
|
|
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,
|
|
63894
|
-
return file2 === void 0 ? void 0 :
|
|
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 =
|
|
63902
|
-
const file2 = target.kind === "id" ?
|
|
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
|
|
63907
|
+
var import_node_path42;
|
|
63907
63908
|
var init_resumeContext = __esm({
|
|
63908
63909
|
"src/usage/resumeContext.ts"() {
|
|
63909
63910
|
"use strict";
|
|
63910
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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(
|
|
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 :
|
|
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:
|
|
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,
|
|
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
|
-
|
|
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:
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
89529
|
-
return { data:
|
|
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 ||
|
|
89533
|
-
return { data:
|
|
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 =
|
|
89537
|
-
return { data:
|
|
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
|
|
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
|
|
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(
|
|
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:
|
|
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
|
|
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(
|
|
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
|
|
116927
|
+
var import_node_path48 = __toESM(require("node:path"), 1);
|
|
116763
116928
|
init_state();
|
|
116764
116929
|
function watchedInstallEntry(resolvedOwnExecutablePath, siblingExists) {
|
|
116765
|
-
const parsed =
|
|
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 =
|
|
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
|
|
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 =
|
|
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 &&
|
|
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 (
|
|
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 =
|
|
120174
|
-
const identityPath =
|
|
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 =
|
|
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 =
|
|
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(
|
|
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:
|
|
120201
|
-
targetFilename:
|
|
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:
|
|
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
|
|
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) =>
|
|
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) =>
|
|
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
|
|
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) =>
|
|
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 &&
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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 =
|
|
131745
|
-
const credentialsFile =
|
|
131746
|
-
const claudeJsonFile =
|
|
131747
|
-
const recordDir =
|
|
131748
|
-
const recordFile =
|
|
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(
|
|
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
|
|
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) =>
|
|
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 ${
|
|
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
|
|
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
|
|
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(
|
|
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 === "" ?
|
|
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
|
|
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 =
|
|
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 ===
|
|
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
|
|
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
|
|
146137
|
+
return import_node_path58.default.join(paths.root, "credentials");
|
|
145943
146138
|
}
|
|
145944
146139
|
function identityTokenPath(paths, identityName) {
|
|
145945
|
-
return
|
|
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 =
|
|
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
|
|
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 =
|
|
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 =
|
|
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(
|
|
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);
|