localclawd 1.0.5 → 1.0.6
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.mjs +718 -399
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -14629,6 +14629,7 @@ var init_exports = __esm(() => {
|
|
|
14629
14629
|
init_array();
|
|
14630
14630
|
init_array_buffer();
|
|
14631
14631
|
init_string();
|
|
14632
|
+
init_contents();
|
|
14632
14633
|
});
|
|
14633
14634
|
|
|
14634
14635
|
// node_modules/get-stream/source/index.js
|
|
@@ -14642,7 +14643,7 @@ var init_source2 = __esm(() => {
|
|
|
14642
14643
|
|
|
14643
14644
|
// node_modules/execa/lib/io/max-buffer.js
|
|
14644
14645
|
var handleMaxBuffer = ({ error: error2, stream, readableObjectMode, lines, encoding, fdNumber }) => {
|
|
14645
|
-
if (!(error2 instanceof
|
|
14646
|
+
if (!(error2 instanceof MaxBufferError)) {
|
|
14646
14647
|
throw error2;
|
|
14647
14648
|
}
|
|
14648
14649
|
if (fdNumber === "all") {
|
|
@@ -14667,7 +14668,7 @@ var handleMaxBuffer = ({ error: error2, stream, readableObjectMode, lines, encod
|
|
|
14667
14668
|
if (ipcOutput.length !== maxBuffer) {
|
|
14668
14669
|
return;
|
|
14669
14670
|
}
|
|
14670
|
-
const error2 = new
|
|
14671
|
+
const error2 = new MaxBufferError;
|
|
14671
14672
|
error2.maxBufferInfo = { fdNumber: "ipc" };
|
|
14672
14673
|
throw error2;
|
|
14673
14674
|
}, getMaxBufferMessage = (error2, maxBuffer) => {
|
|
@@ -18542,7 +18543,7 @@ var execaCoreAsync = (rawFile, rawArguments, rawOptions, createNested) => {
|
|
|
18542
18543
|
timedOut: context2.terminationReason === "timeout",
|
|
18543
18544
|
isCanceled: context2.terminationReason === "cancel" || context2.terminationReason === "gracefulCancel",
|
|
18544
18545
|
isGracefullyCanceled: context2.terminationReason === "gracefulCancel",
|
|
18545
|
-
isMaxBuffer: errorInfo.error instanceof
|
|
18546
|
+
isMaxBuffer: errorInfo.error instanceof MaxBufferError,
|
|
18546
18547
|
isForcefullyTerminated: context2.isForcefullyTerminated,
|
|
18547
18548
|
exitCode,
|
|
18548
18549
|
signal,
|
|
@@ -94396,6 +94397,23 @@ var init_config = __esm(() => {
|
|
|
94396
94397
|
});
|
|
94397
94398
|
|
|
94398
94399
|
// src/utils/model/providers.ts
|
|
94400
|
+
var exports_providers = {};
|
|
94401
|
+
__export(exports_providers, {
|
|
94402
|
+
setSessionLocalLLMConfigOverride: () => setSessionLocalLLMConfigOverride,
|
|
94403
|
+
normalizeLocalLLMConfig: () => normalizeLocalLLMConfig,
|
|
94404
|
+
isLocalLLMProviderEnabled: () => isLocalLLMProviderEnabled,
|
|
94405
|
+
isFirstPartyAnthropicBaseUrl: () => isFirstPartyAnthropicBaseUrl,
|
|
94406
|
+
getSessionLocalLLMConfigOverride: () => getSessionLocalLLMConfigOverride,
|
|
94407
|
+
getLocalLLMProviderLabel: () => getLocalLLMProviderLabel,
|
|
94408
|
+
getLocalLLMProvider: () => getLocalLLMProvider,
|
|
94409
|
+
getLocalLLMModel: () => getLocalLLMModel,
|
|
94410
|
+
getLocalLLMBaseUrl: () => getLocalLLMBaseUrl,
|
|
94411
|
+
getLocalLLMApiKey: () => getLocalLLMApiKey,
|
|
94412
|
+
getDefaultLocalLLMConfig: () => getDefaultLocalLLMConfig,
|
|
94413
|
+
getAPIProviderForStatsig: () => getAPIProviderForStatsig,
|
|
94414
|
+
getAPIProvider: () => getAPIProvider,
|
|
94415
|
+
clearSessionLocalLLMConfigOverride: () => clearSessionLocalLLMConfigOverride
|
|
94416
|
+
});
|
|
94399
94417
|
function getEnvAlias(localKey, legacyKey) {
|
|
94400
94418
|
return process.env[localKey] ?? process.env[legacyKey];
|
|
94401
94419
|
}
|
|
@@ -94444,8 +94462,17 @@ function normalizeLocalLLMConfig(config) {
|
|
|
94444
94462
|
apiKey: config?.apiKey?.trim() || defaults2.apiKey
|
|
94445
94463
|
};
|
|
94446
94464
|
}
|
|
94465
|
+
function setSessionLocalLLMConfigOverride(config) {
|
|
94466
|
+
sessionLocalLLMConfigOverride = config ? normalizeLocalLLMConfig(config) : null;
|
|
94467
|
+
}
|
|
94468
|
+
function clearSessionLocalLLMConfigOverride() {
|
|
94469
|
+
sessionLocalLLMConfigOverride = null;
|
|
94470
|
+
}
|
|
94471
|
+
function getSessionLocalLLMConfigOverride() {
|
|
94472
|
+
return sessionLocalLLMConfigOverride;
|
|
94473
|
+
}
|
|
94447
94474
|
function getLocalLLMProvider() {
|
|
94448
|
-
return getLocalLLMProviderFromEnv() ?? getConfiguredLocalLLMProvider() ?? "vllm";
|
|
94475
|
+
return getLocalLLMProviderFromEnv() ?? sessionLocalLLMConfigOverride?.provider ?? getConfiguredLocalLLMProvider() ?? "vllm";
|
|
94449
94476
|
}
|
|
94450
94477
|
function isLocalLLMProviderEnabled() {
|
|
94451
94478
|
return true;
|
|
@@ -94456,6 +94483,9 @@ function getLocalLLMBaseUrl(provider = getLocalLLMProvider()) {
|
|
|
94456
94483
|
return configuredFromEnv;
|
|
94457
94484
|
}
|
|
94458
94485
|
const defaults2 = getDefaultLocalLLMConfig(provider);
|
|
94486
|
+
if (sessionLocalLLMConfigOverride?.provider === provider) {
|
|
94487
|
+
return sessionLocalLLMConfigOverride.baseUrl;
|
|
94488
|
+
}
|
|
94459
94489
|
const globalConfig = getGlobalConfig();
|
|
94460
94490
|
const configuredProvider = getConfiguredLocalLLMProvider();
|
|
94461
94491
|
if (configuredProvider === provider && globalConfig.localBackendBaseUrl?.trim()) {
|
|
@@ -94469,6 +94499,9 @@ function getLocalLLMApiKey(provider = getLocalLLMProvider()) {
|
|
|
94469
94499
|
return configuredFromEnv;
|
|
94470
94500
|
}
|
|
94471
94501
|
const defaults2 = getDefaultLocalLLMConfig(provider);
|
|
94502
|
+
if (sessionLocalLLMConfigOverride?.provider === provider) {
|
|
94503
|
+
return sessionLocalLLMConfigOverride.apiKey;
|
|
94504
|
+
}
|
|
94472
94505
|
const globalConfig = getGlobalConfig();
|
|
94473
94506
|
const configuredProvider = getConfiguredLocalLLMProvider();
|
|
94474
94507
|
if (configuredProvider === provider) {
|
|
@@ -94482,6 +94515,9 @@ function getLocalLLMModel(provider = getLocalLLMProvider()) {
|
|
|
94482
94515
|
return model;
|
|
94483
94516
|
}
|
|
94484
94517
|
const defaults2 = getDefaultLocalLLMConfig(provider);
|
|
94518
|
+
if (sessionLocalLLMConfigOverride?.provider === provider) {
|
|
94519
|
+
return sessionLocalLLMConfigOverride.model;
|
|
94520
|
+
}
|
|
94485
94521
|
const globalConfig = getGlobalConfig();
|
|
94486
94522
|
const configuredProvider = getConfiguredLocalLLMProvider();
|
|
94487
94523
|
if (configuredProvider === provider && globalConfig.localBackendModel?.trim()) {
|
|
@@ -94514,7 +94550,7 @@ function isFirstPartyAnthropicBaseUrl() {
|
|
|
94514
94550
|
return false;
|
|
94515
94551
|
}
|
|
94516
94552
|
}
|
|
94517
|
-
var LOCAL_LLM_DEFAULTS;
|
|
94553
|
+
var sessionLocalLLMConfigOverride = null, LOCAL_LLM_DEFAULTS;
|
|
94518
94554
|
var init_providers = __esm(() => {
|
|
94519
94555
|
init_config();
|
|
94520
94556
|
init_envUtils();
|
|
@@ -96073,6 +96109,10 @@ function getRuntimeMainLoopModel(params) {
|
|
|
96073
96109
|
return mainLoopModel;
|
|
96074
96110
|
}
|
|
96075
96111
|
function getDefaultMainLoopModelSetting() {
|
|
96112
|
+
const provider = getAPIProvider();
|
|
96113
|
+
if (provider === "local") {
|
|
96114
|
+
return getLocalLLMModel() ?? "qwen2.5-coder-32b-instruct";
|
|
96115
|
+
}
|
|
96076
96116
|
if (process.env.USER_TYPE === "ant") {
|
|
96077
96117
|
return getAntModelOverrideConfig()?.defaultModel ?? getDefaultOpusModel() + "[1m]";
|
|
96078
96118
|
}
|
|
@@ -96391,7 +96431,7 @@ var init_isEqual = __esm(() => {
|
|
|
96391
96431
|
|
|
96392
96432
|
// src/utils/userAgent.ts
|
|
96393
96433
|
function getClaudeCodeUserAgent() {
|
|
96394
|
-
return `claude-code/${"1.0.
|
|
96434
|
+
return `claude-code/${"1.0.6"}`;
|
|
96395
96435
|
}
|
|
96396
96436
|
|
|
96397
96437
|
// src/utils/workloadContext.ts
|
|
@@ -96413,7 +96453,7 @@ function getUserAgent() {
|
|
|
96413
96453
|
const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
|
|
96414
96454
|
const workload = getWorkload();
|
|
96415
96455
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
96416
|
-
return `claude-cli/${"1.0.
|
|
96456
|
+
return `claude-cli/${"1.0.6"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
96417
96457
|
}
|
|
96418
96458
|
function getMCPUserAgent() {
|
|
96419
96459
|
const parts = [];
|
|
@@ -96427,7 +96467,7 @@ function getMCPUserAgent() {
|
|
|
96427
96467
|
parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
|
|
96428
96468
|
}
|
|
96429
96469
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
96430
|
-
return `claude-code/${"1.0.
|
|
96470
|
+
return `claude-code/${"1.0.6"}${suffix}`;
|
|
96431
96471
|
}
|
|
96432
96472
|
function getWebFetchUserAgent() {
|
|
96433
96473
|
return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
|
|
@@ -106248,7 +106288,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
106248
106288
|
if (!isAttributionHeaderEnabled()) {
|
|
106249
106289
|
return "";
|
|
106250
106290
|
}
|
|
106251
|
-
const version = `${"1.0.
|
|
106291
|
+
const version = `${"1.0.6"}.${fingerprint}`;
|
|
106252
106292
|
const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
|
|
106253
106293
|
const cch = "";
|
|
106254
106294
|
const workload = getWorkload();
|
|
@@ -139293,7 +139333,7 @@ var init_metadata = __esm(() => {
|
|
|
139293
139333
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
139294
139334
|
WHITESPACE_REGEX = /\s+/;
|
|
139295
139335
|
getVersionBase = memoize_default(() => {
|
|
139296
|
-
const match = "1.0.
|
|
139336
|
+
const match = "1.0.6".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
139297
139337
|
return match ? match[0] : undefined;
|
|
139298
139338
|
});
|
|
139299
139339
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -139333,9 +139373,9 @@ var init_metadata = __esm(() => {
|
|
|
139333
139373
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
139334
139374
|
isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
|
|
139335
139375
|
isClaudeAiAuth: isClaudeAISubscriber(),
|
|
139336
|
-
version: "1.0.
|
|
139376
|
+
version: "1.0.6",
|
|
139337
139377
|
versionBase: getVersionBase(),
|
|
139338
|
-
buildTime: "2026-04-
|
|
139378
|
+
buildTime: "2026-04-05T19:01:49.000Z",
|
|
139339
139379
|
deploymentEnvironment: env4.detectDeploymentEnvironment(),
|
|
139340
139380
|
...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
|
|
139341
139381
|
githubEventName: process.env.GITHUB_EVENT_NAME,
|
|
@@ -203889,7 +203929,7 @@ function getTelemetryAttributes() {
|
|
|
203889
203929
|
attributes["session.id"] = sessionId;
|
|
203890
203930
|
}
|
|
203891
203931
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
203892
|
-
attributes["app.version"] = "1.0.
|
|
203932
|
+
attributes["app.version"] = "1.0.6";
|
|
203893
203933
|
}
|
|
203894
203934
|
const oauthAccount = getOauthAccountInfo();
|
|
203895
203935
|
if (oauthAccount) {
|
|
@@ -235493,7 +235533,7 @@ function getInstallationEnv() {
|
|
|
235493
235533
|
return;
|
|
235494
235534
|
}
|
|
235495
235535
|
function getClaudeCodeVersion() {
|
|
235496
|
-
return "1.0.
|
|
235536
|
+
return "1.0.6";
|
|
235497
235537
|
}
|
|
235498
235538
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
235499
235539
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -241096,7 +241136,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
241096
241136
|
const client4 = new Client({
|
|
241097
241137
|
name: "claude-code",
|
|
241098
241138
|
title: "Claude Code",
|
|
241099
|
-
version: "1.0.
|
|
241139
|
+
version: "1.0.6",
|
|
241100
241140
|
description: "Anthropic's agentic coding tool",
|
|
241101
241141
|
websiteUrl: PRODUCT_URL
|
|
241102
241142
|
}, {
|
|
@@ -241449,7 +241489,7 @@ var init_client9 = __esm(() => {
|
|
|
241449
241489
|
const client4 = new Client({
|
|
241450
241490
|
name: "claude-code",
|
|
241451
241491
|
title: "Claude Code",
|
|
241452
|
-
version: "1.0.
|
|
241492
|
+
version: "1.0.6",
|
|
241453
241493
|
description: "Anthropic's agentic coding tool",
|
|
241454
241494
|
websiteUrl: PRODUCT_URL
|
|
241455
241495
|
}, {
|
|
@@ -264640,7 +264680,7 @@ var init_user = __esm(() => {
|
|
|
264640
264680
|
deviceId,
|
|
264641
264681
|
sessionId: getSessionId(),
|
|
264642
264682
|
email: getEmail(),
|
|
264643
|
-
appVersion: "1.0.
|
|
264683
|
+
appVersion: "1.0.6",
|
|
264644
264684
|
platform: getHostPlatformForAnalytics(),
|
|
264645
264685
|
organizationUuid,
|
|
264646
264686
|
accountUuid,
|
|
@@ -265964,7 +266004,7 @@ async function initializeBetaTracing(resource) {
|
|
|
265964
266004
|
});
|
|
265965
266005
|
logs.setGlobalLoggerProvider(loggerProvider);
|
|
265966
266006
|
setLoggerProvider(loggerProvider);
|
|
265967
|
-
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.0.
|
|
266007
|
+
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.0.6");
|
|
265968
266008
|
setEventLogger(eventLogger);
|
|
265969
266009
|
process.on("beforeExit", async () => {
|
|
265970
266010
|
await loggerProvider?.forceFlush();
|
|
@@ -266004,7 +266044,7 @@ async function initializeTelemetry() {
|
|
|
266004
266044
|
const platform4 = getPlatform();
|
|
266005
266045
|
const baseAttributes = {
|
|
266006
266046
|
[ATTR_SERVICE_NAME5]: "claude-code",
|
|
266007
|
-
[ATTR_SERVICE_VERSION5]: "1.0.
|
|
266047
|
+
[ATTR_SERVICE_VERSION5]: "1.0.6"
|
|
266008
266048
|
};
|
|
266009
266049
|
if (platform4 === "wsl") {
|
|
266010
266050
|
const wslVersion = getWslVersion();
|
|
@@ -266049,7 +266089,7 @@ async function initializeTelemetry() {
|
|
|
266049
266089
|
} catch {}
|
|
266050
266090
|
};
|
|
266051
266091
|
registerCleanup(shutdownTelemetry2);
|
|
266052
|
-
return meterProvider2.getMeter("com.anthropic.claude_code", "1.0.
|
|
266092
|
+
return meterProvider2.getMeter("com.anthropic.claude_code", "1.0.6");
|
|
266053
266093
|
}
|
|
266054
266094
|
const meterProvider = new MeterProvider5({
|
|
266055
266095
|
resource,
|
|
@@ -266069,7 +266109,7 @@ async function initializeTelemetry() {
|
|
|
266069
266109
|
});
|
|
266070
266110
|
logs.setGlobalLoggerProvider(loggerProvider);
|
|
266071
266111
|
setLoggerProvider(loggerProvider);
|
|
266072
|
-
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.0.
|
|
266112
|
+
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.0.6");
|
|
266073
266113
|
setEventLogger(eventLogger);
|
|
266074
266114
|
logForDebugging("[3P telemetry] Event logger set successfully");
|
|
266075
266115
|
process.on("beforeExit", async () => {
|
|
@@ -266131,7 +266171,7 @@ Current timeout: ${timeoutMs}ms
|
|
|
266131
266171
|
}
|
|
266132
266172
|
};
|
|
266133
266173
|
registerCleanup(shutdownTelemetry);
|
|
266134
|
-
return meterProvider.getMeter("com.anthropic.claude_code", "1.0.
|
|
266174
|
+
return meterProvider.getMeter("com.anthropic.claude_code", "1.0.6");
|
|
266135
266175
|
}
|
|
266136
266176
|
async function flushTelemetry() {
|
|
266137
266177
|
const meterProvider = getMeterProvider();
|
|
@@ -267353,7 +267393,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
267353
267393
|
}
|
|
267354
267394
|
async function getDoctorDiagnostic() {
|
|
267355
267395
|
const installationType = await getCurrentInstallationType();
|
|
267356
|
-
const version = typeof MACRO !== "undefined" ? "1.0.
|
|
267396
|
+
const version = typeof MACRO !== "undefined" ? "1.0.6" : "unknown";
|
|
267357
267397
|
const installationPath = await getInstallationPath();
|
|
267358
267398
|
const invokedBinary = getInvokedBinary();
|
|
267359
267399
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -268295,8 +268335,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
268295
268335
|
const maxVersion = await getMaxVersion();
|
|
268296
268336
|
if (maxVersion && gt(version, maxVersion)) {
|
|
268297
268337
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version} to ${maxVersion}`);
|
|
268298
|
-
if (gte("1.0.
|
|
268299
|
-
logForDebugging(`Native installer: current version ${"1.0.
|
|
268338
|
+
if (gte("1.0.6", maxVersion)) {
|
|
268339
|
+
logForDebugging(`Native installer: current version ${"1.0.6"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
268300
268340
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
268301
268341
|
latency_ms: Date.now() - startTime,
|
|
268302
268342
|
max_version: maxVersion,
|
|
@@ -268307,7 +268347,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
268307
268347
|
version = maxVersion;
|
|
268308
268348
|
}
|
|
268309
268349
|
}
|
|
268310
|
-
if (!forceReinstall && version === "1.0.
|
|
268350
|
+
if (!forceReinstall && version === "1.0.6" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
|
|
268311
268351
|
logForDebugging(`Found ${version} at ${executablePath}, skipping install`);
|
|
268312
268352
|
logEvent("tengu_native_update_complete", {
|
|
268313
268353
|
latency_ms: Date.now() - startTime,
|
|
@@ -321654,6 +321694,9 @@ var init_WebSearchTool = __esm(() => {
|
|
|
321654
321694
|
},
|
|
321655
321695
|
isEnabled() {
|
|
321656
321696
|
const provider = getAPIProvider();
|
|
321697
|
+
if (provider === "local") {
|
|
321698
|
+
return false;
|
|
321699
|
+
}
|
|
321657
321700
|
const model = getMainLoopModel();
|
|
321658
321701
|
if (provider === "firstParty") {
|
|
321659
321702
|
return true;
|
|
@@ -328428,7 +328471,7 @@ var REPLTool2, SuggestBackgroundPRTool2, SleepTool = null, cronTools, RemoteTrig
|
|
|
328428
328471
|
allowedTools = allowedTools.filter((tool) => !REPL_ONLY_TOOLS.has(tool.name));
|
|
328429
328472
|
}
|
|
328430
328473
|
}
|
|
328431
|
-
const isEnabled2 = allowedTools.map((
|
|
328474
|
+
const isEnabled2 = allowedTools.map((tool) => tool.isEnabled());
|
|
328432
328475
|
return allowedTools.filter((_2, i3) => isEnabled2[i3]);
|
|
328433
328476
|
};
|
|
328434
328477
|
var init_tools2 = __esm(() => {
|
|
@@ -339380,7 +339423,7 @@ function getAnthropicEnvMetadata() {
|
|
|
339380
339423
|
function getBuildAgeMinutes() {
|
|
339381
339424
|
if (false)
|
|
339382
339425
|
;
|
|
339383
|
-
const buildTime = new Date("2026-04-
|
|
339426
|
+
const buildTime = new Date("2026-04-05T19:01:49.000Z").getTime();
|
|
339384
339427
|
if (isNaN(buildTime))
|
|
339385
339428
|
return;
|
|
339386
339429
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -363088,7 +363131,7 @@ function Feedback({
|
|
|
363088
363131
|
platform: env4.platform,
|
|
363089
363132
|
gitRepo: envInfo.isGit,
|
|
363090
363133
|
terminal: env4.terminal,
|
|
363091
|
-
version: "1.0.
|
|
363134
|
+
version: "1.0.6",
|
|
363092
363135
|
transcript: normalizeMessagesForAPI(messages),
|
|
363093
363136
|
errors: sanitizedErrors,
|
|
363094
363137
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -363280,7 +363323,7 @@ function Feedback({
|
|
|
363280
363323
|
", ",
|
|
363281
363324
|
env4.terminal,
|
|
363282
363325
|
", v",
|
|
363283
|
-
"1.0.
|
|
363326
|
+
"1.0.6"
|
|
363284
363327
|
]
|
|
363285
363328
|
}, undefined, true, undefined, this)
|
|
363286
363329
|
]
|
|
@@ -363386,7 +363429,7 @@ ${sanitizedDescription}
|
|
|
363386
363429
|
` + `**Environment Info**
|
|
363387
363430
|
` + `- Platform: ${env4.platform}
|
|
363388
363431
|
` + `- Terminal: ${env4.terminal}
|
|
363389
|
-
` + `- Version: ${"1.0.
|
|
363432
|
+
` + `- Version: ${"1.0.6"}
|
|
363390
363433
|
` + `- Feedback ID: ${feedbackId}
|
|
363391
363434
|
` + `
|
|
363392
363435
|
**Errors**
|
|
@@ -366499,7 +366542,7 @@ function buildPrimarySection() {
|
|
|
366499
366542
|
}, undefined, false, undefined, this);
|
|
366500
366543
|
return [{
|
|
366501
366544
|
label: "Version",
|
|
366502
|
-
value: "1.0.
|
|
366545
|
+
value: "1.0.6"
|
|
366503
366546
|
}, {
|
|
366504
366547
|
label: "Session name",
|
|
366505
366548
|
value: nameValue
|
|
@@ -367873,6 +367916,10 @@ var init_ModelPicker = __esm(() => {
|
|
|
367873
367916
|
});
|
|
367874
367917
|
|
|
367875
367918
|
// src/components/LocalBackendSetup.tsx
|
|
367919
|
+
var exports_LocalBackendSetup = {};
|
|
367920
|
+
__export(exports_LocalBackendSetup, {
|
|
367921
|
+
LocalBackendSetup: () => LocalBackendSetup
|
|
367922
|
+
});
|
|
367876
367923
|
function getProviderGuidance(provider) {
|
|
367877
367924
|
switch (provider) {
|
|
367878
367925
|
case "vllm":
|
|
@@ -367900,7 +367947,8 @@ function LocalBackendSetup({
|
|
|
367900
367947
|
onComplete,
|
|
367901
367948
|
onCancel,
|
|
367902
367949
|
title = "Configure your model backend",
|
|
367903
|
-
description = "localclawd speaks to OpenAI-compatible chat completion APIs. Pick a backend, then confirm the endpoint and model to use."
|
|
367950
|
+
description = "localclawd speaks to OpenAI-compatible chat completion APIs. Pick a backend, then confirm the endpoint and model to use.",
|
|
367951
|
+
showSaveGloballyOption = false
|
|
367904
367952
|
}) {
|
|
367905
367953
|
const normalizedInitial = import_react99.useMemo(() => normalizeLocalLLMConfig(initialConfig), [initialConfig]);
|
|
367906
367954
|
const [step, setStep] = import_react99.useState("provider");
|
|
@@ -367950,11 +367998,20 @@ function LocalBackendSetup({
|
|
|
367950
367998
|
setStep("apiKey");
|
|
367951
367999
|
}
|
|
367952
368000
|
function submitApiKey(value) {
|
|
367953
|
-
|
|
368001
|
+
const nextConfig = {
|
|
367954
368002
|
provider,
|
|
367955
368003
|
baseUrl,
|
|
367956
368004
|
model,
|
|
367957
368005
|
apiKey: value.trim()
|
|
368006
|
+
};
|
|
368007
|
+
setApiKey(nextConfig.apiKey);
|
|
368008
|
+
setError(null);
|
|
368009
|
+
if (showSaveGloballyOption) {
|
|
368010
|
+
setStep("saveScope");
|
|
368011
|
+
return;
|
|
368012
|
+
}
|
|
368013
|
+
onComplete(nextConfig, {
|
|
368014
|
+
saveGlobally: true
|
|
367958
368015
|
});
|
|
367959
368016
|
}
|
|
367960
368017
|
const providerLabel = getLocalLLMProviderLabel(provider);
|
|
@@ -368069,6 +368126,41 @@ function LocalBackendSetup({
|
|
|
368069
368126
|
}, undefined, false, undefined, this)
|
|
368070
368127
|
]
|
|
368071
368128
|
}, undefined, true, undefined, this) : null,
|
|
368129
|
+
step === "saveScope" ? /* @__PURE__ */ jsx_dev_runtime171.jsxDEV(jsx_dev_runtime171.Fragment, {
|
|
368130
|
+
children: [
|
|
368131
|
+
/* @__PURE__ */ jsx_dev_runtime171.jsxDEV(ThemedText, {
|
|
368132
|
+
children: "How should localclawd use this backend?"
|
|
368133
|
+
}, undefined, false, undefined, this),
|
|
368134
|
+
/* @__PURE__ */ jsx_dev_runtime171.jsxDEV(ThemedText, {
|
|
368135
|
+
dimColor: true,
|
|
368136
|
+
wrap: "wrap",
|
|
368137
|
+
children: "Save it globally if you want this backend to be the default every time localclawd starts. Choose this launch only if you want a temporary override."
|
|
368138
|
+
}, undefined, false, undefined, this),
|
|
368139
|
+
/* @__PURE__ */ jsx_dev_runtime171.jsxDEV(Select, {
|
|
368140
|
+
options: [
|
|
368141
|
+
{
|
|
368142
|
+
label: "Save as global default (recommended)",
|
|
368143
|
+
value: "global"
|
|
368144
|
+
},
|
|
368145
|
+
{
|
|
368146
|
+
label: "Use only for this launch",
|
|
368147
|
+
value: "session"
|
|
368148
|
+
}
|
|
368149
|
+
],
|
|
368150
|
+
onChange: (value) => {
|
|
368151
|
+
onComplete({
|
|
368152
|
+
provider,
|
|
368153
|
+
baseUrl,
|
|
368154
|
+
model,
|
|
368155
|
+
apiKey
|
|
368156
|
+
}, {
|
|
368157
|
+
saveGlobally: value === "global"
|
|
368158
|
+
});
|
|
368159
|
+
},
|
|
368160
|
+
onCancel: () => setStep("apiKey")
|
|
368161
|
+
}, undefined, false, undefined, this)
|
|
368162
|
+
]
|
|
368163
|
+
}, undefined, true, undefined, this) : null,
|
|
368072
368164
|
error5 ? /* @__PURE__ */ jsx_dev_runtime171.jsxDEV(ThemedText, {
|
|
368073
368165
|
color: "error",
|
|
368074
368166
|
children: error5
|
|
@@ -370564,7 +370656,7 @@ function Config({
|
|
|
370564
370656
|
}
|
|
370565
370657
|
}, undefined, false, undefined, this)
|
|
370566
370658
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime177.jsxDEV(ChannelDowngradeDialog, {
|
|
370567
|
-
currentVersion: "1.0.
|
|
370659
|
+
currentVersion: "1.0.6",
|
|
370568
370660
|
onChoice: (choice) => {
|
|
370569
370661
|
setShowSubmenu(null);
|
|
370570
370662
|
setTabsHidden(false);
|
|
@@ -370576,7 +370668,7 @@ function Config({
|
|
|
370576
370668
|
autoUpdatesChannel: "stable"
|
|
370577
370669
|
};
|
|
370578
370670
|
if (choice === "stay") {
|
|
370579
|
-
newSettings.minimumVersion = "1.0.
|
|
370671
|
+
newSettings.minimumVersion = "1.0.6";
|
|
370580
370672
|
}
|
|
370581
370673
|
updateSettingsForSource("userSettings", newSettings);
|
|
370582
370674
|
setSettingsData((prev_27) => ({
|
|
@@ -379123,7 +379215,7 @@ function HelpV2(t0) {
|
|
|
379123
379215
|
let t6;
|
|
379124
379216
|
if ($3[31] !== tabs) {
|
|
379125
379217
|
t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
|
|
379126
|
-
title: `localclawd v${"1.0.
|
|
379218
|
+
title: `localclawd v${"1.0.6"}`,
|
|
379127
379219
|
color: "professionalBlue",
|
|
379128
379220
|
defaultTab: "general",
|
|
379129
379221
|
children: tabs
|
|
@@ -403281,7 +403373,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
403281
403373
|
return [];
|
|
403282
403374
|
}
|
|
403283
403375
|
}
|
|
403284
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.0.
|
|
403376
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.0.6") {
|
|
403285
403377
|
if (process.env.USER_TYPE === "ant") {
|
|
403286
403378
|
const changelog = MACRO.VERSION_CHANGELOG;
|
|
403287
403379
|
if (changelog) {
|
|
@@ -403308,7 +403400,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.0.5") {
|
|
|
403308
403400
|
releaseNotes
|
|
403309
403401
|
};
|
|
403310
403402
|
}
|
|
403311
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.0.
|
|
403403
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.0.6") {
|
|
403312
403404
|
if (process.env.USER_TYPE === "ant") {
|
|
403313
403405
|
const changelog = MACRO.VERSION_CHANGELOG;
|
|
403314
403406
|
if (changelog) {
|
|
@@ -404475,7 +404567,7 @@ function getRecentActivitySync() {
|
|
|
404475
404567
|
return cachedActivity;
|
|
404476
404568
|
}
|
|
404477
404569
|
function getLogoDisplayData() {
|
|
404478
|
-
const version = process.env.DEMO_VERSION ?? "1.0.
|
|
404570
|
+
const version = process.env.DEMO_VERSION ?? "1.0.6";
|
|
404479
404571
|
const serverUrl = getDirectConnectServerUrl();
|
|
404480
404572
|
const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
|
|
404481
404573
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -405749,7 +405841,7 @@ function LogoV2() {
|
|
|
405749
405841
|
if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
405750
405842
|
t2 = () => {
|
|
405751
405843
|
const currentConfig = getGlobalConfig();
|
|
405752
|
-
if (currentConfig.lastReleaseNotesSeen === "1.0.
|
|
405844
|
+
if (currentConfig.lastReleaseNotesSeen === "1.0.6") {
|
|
405753
405845
|
return;
|
|
405754
405846
|
}
|
|
405755
405847
|
saveGlobalConfig(_temp327);
|
|
@@ -406425,12 +406517,12 @@ function LogoV2() {
|
|
|
406425
406517
|
return t41;
|
|
406426
406518
|
}
|
|
406427
406519
|
function _temp327(current) {
|
|
406428
|
-
if (current.lastReleaseNotesSeen === "1.0.
|
|
406520
|
+
if (current.lastReleaseNotesSeen === "1.0.6") {
|
|
406429
406521
|
return current;
|
|
406430
406522
|
}
|
|
406431
406523
|
return {
|
|
406432
406524
|
...current,
|
|
406433
|
-
lastReleaseNotesSeen: "1.0.
|
|
406525
|
+
lastReleaseNotesSeen: "1.0.6"
|
|
406434
406526
|
};
|
|
406435
406527
|
}
|
|
406436
406528
|
function _temp245(s_0) {
|
|
@@ -432638,7 +432730,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
|
|
|
432638
432730
|
smapsRollup,
|
|
432639
432731
|
platform: process.platform,
|
|
432640
432732
|
nodeVersion: process.version,
|
|
432641
|
-
ccVersion: "1.0.
|
|
432733
|
+
ccVersion: "1.0.6"
|
|
432642
432734
|
};
|
|
432643
432735
|
}
|
|
432644
432736
|
async function performHeapDump(trigger = "manual", dumpNumber = 0) {
|
|
@@ -433223,7 +433315,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
433223
433315
|
var call57 = async () => {
|
|
433224
433316
|
return {
|
|
433225
433317
|
type: "text",
|
|
433226
|
-
value: `${"1.0.
|
|
433318
|
+
value: `${"1.0.6"} (built ${"2026-04-05T19:01:49.000Z"})`
|
|
433227
433319
|
};
|
|
433228
433320
|
}, version, version_default;
|
|
433229
433321
|
var init_version = __esm(() => {
|
|
@@ -442159,7 +442251,7 @@ function generateHtmlReport(data, insights) {
|
|
|
442159
442251
|
</html>`;
|
|
442160
442252
|
}
|
|
442161
442253
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
442162
|
-
const version2 = typeof MACRO !== "undefined" ? "1.0.
|
|
442254
|
+
const version2 = typeof MACRO !== "undefined" ? "1.0.6" : "unknown";
|
|
442163
442255
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
442164
442256
|
const facets_summary = {
|
|
442165
442257
|
total: facets.size,
|
|
@@ -446272,7 +446364,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
446272
446364
|
init_settings2();
|
|
446273
446365
|
init_slowOperations();
|
|
446274
446366
|
init_uuid();
|
|
446275
|
-
VERSION5 = typeof MACRO !== "undefined" ? "1.0.
|
|
446367
|
+
VERSION5 = typeof MACRO !== "undefined" ? "1.0.6" : "unknown";
|
|
446276
446368
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
446277
446369
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
446278
446370
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -447474,7 +447566,7 @@ var init_filesystem = __esm(() => {
|
|
|
447474
447566
|
});
|
|
447475
447567
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
447476
447568
|
const nonce = randomBytes18(16).toString("hex");
|
|
447477
|
-
return join128(getClaudeTempDir(), "bundled-skills", "1.0.
|
|
447569
|
+
return join128(getClaudeTempDir(), "bundled-skills", "1.0.6", nonce);
|
|
447478
447570
|
});
|
|
447479
447571
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
447480
447572
|
});
|
|
@@ -453472,7 +453564,7 @@ function computeFingerprint(messageText, version2) {
|
|
|
453472
453564
|
}
|
|
453473
453565
|
function computeFingerprintFromMessages(messages) {
|
|
453474
453566
|
const firstMessageText = extractFirstMessageText(messages);
|
|
453475
|
-
return computeFingerprint(firstMessageText, "1.0.
|
|
453567
|
+
return computeFingerprint(firstMessageText, "1.0.6");
|
|
453476
453568
|
}
|
|
453477
453569
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
453478
453570
|
var init_fingerprint = () => {};
|
|
@@ -455327,7 +455419,7 @@ async function sideQuery(opts) {
|
|
|
455327
455419
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
455328
455420
|
}
|
|
455329
455421
|
const messageText = extractFirstUserMessageText(messages);
|
|
455330
|
-
const fingerprint = computeFingerprint(messageText, "1.0.
|
|
455422
|
+
const fingerprint = computeFingerprint(messageText, "1.0.6");
|
|
455331
455423
|
const attributionHeader = getAttributionHeader(fingerprint);
|
|
455332
455424
|
const systemBlocks = [
|
|
455333
455425
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -460125,7 +460217,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
460125
460217
|
slash_commands: inputs.commands.filter((c7) => c7.userInvocable !== false).map((c7) => c7.name),
|
|
460126
460218
|
apiKeySource: getAnthropicApiKeyWithSource().source,
|
|
460127
460219
|
betas: getSdkBetas(),
|
|
460128
|
-
claude_code_version: "1.0.
|
|
460220
|
+
claude_code_version: "1.0.6",
|
|
460129
460221
|
output_style: outputStyle2,
|
|
460130
460222
|
agents: inputs.agents.map((agent) => agent.agentType),
|
|
460131
460223
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
|
|
@@ -474704,7 +474796,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
474704
474796
|
function getSemverPart(version2) {
|
|
474705
474797
|
return `${import_semver12.major(version2, { loose: true })}.${import_semver12.minor(version2, { loose: true })}.${import_semver12.patch(version2, { loose: true })}`;
|
|
474706
474798
|
}
|
|
474707
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.0.
|
|
474799
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.0.6") {
|
|
474708
474800
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react227.useState(() => getSemverPart(initialVersion));
|
|
474709
474801
|
if (!updatedVersion) {
|
|
474710
474802
|
return null;
|
|
@@ -474744,7 +474836,7 @@ function AutoUpdater({
|
|
|
474744
474836
|
return;
|
|
474745
474837
|
}
|
|
474746
474838
|
if (false) {}
|
|
474747
|
-
const currentVersion = "1.0.
|
|
474839
|
+
const currentVersion = "1.0.6";
|
|
474748
474840
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
474749
474841
|
let latestVersion = await getLatestVersion(channel);
|
|
474750
474842
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -474955,12 +475047,12 @@ function NativeAutoUpdater({
|
|
|
474955
475047
|
logEvent("tengu_native_auto_updater_start", {});
|
|
474956
475048
|
try {
|
|
474957
475049
|
const maxVersion = await getMaxVersion();
|
|
474958
|
-
if (maxVersion && gt("1.0.
|
|
475050
|
+
if (maxVersion && gt("1.0.6", maxVersion)) {
|
|
474959
475051
|
const msg = await getMaxVersionMessage();
|
|
474960
475052
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
474961
475053
|
}
|
|
474962
475054
|
const result = await installLatest(channel);
|
|
474963
|
-
const currentVersion = "1.0.
|
|
475055
|
+
const currentVersion = "1.0.6";
|
|
474964
475056
|
const latencyMs = Date.now() - startTime;
|
|
474965
475057
|
if (result.lockFailed) {
|
|
474966
475058
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -475095,17 +475187,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
475095
475187
|
const maxVersion = await getMaxVersion();
|
|
475096
475188
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
475097
475189
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
475098
|
-
if (gte("1.0.
|
|
475099
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.0.
|
|
475190
|
+
if (gte("1.0.6", maxVersion)) {
|
|
475191
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.0.6"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
475100
475192
|
setUpdateAvailable(false);
|
|
475101
475193
|
return;
|
|
475102
475194
|
}
|
|
475103
475195
|
latest = maxVersion;
|
|
475104
475196
|
}
|
|
475105
|
-
const hasUpdate = latest && !gte("1.0.
|
|
475197
|
+
const hasUpdate = latest && !gte("1.0.6", latest) && !shouldSkipVersion(latest);
|
|
475106
475198
|
setUpdateAvailable(!!hasUpdate);
|
|
475107
475199
|
if (hasUpdate) {
|
|
475108
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.0.
|
|
475200
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.0.6"} -> ${latest}`);
|
|
475109
475201
|
}
|
|
475110
475202
|
};
|
|
475111
475203
|
$3[0] = t1;
|
|
@@ -475139,7 +475231,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
475139
475231
|
wrap: "truncate",
|
|
475140
475232
|
children: [
|
|
475141
475233
|
"currentVersion: ",
|
|
475142
|
-
"1.0.
|
|
475234
|
+
"1.0.6"
|
|
475143
475235
|
]
|
|
475144
475236
|
}, undefined, true, undefined, this);
|
|
475145
475237
|
$3[3] = verbose;
|
|
@@ -482697,7 +482789,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
482697
482789
|
project_dir: getOriginalCwd(),
|
|
482698
482790
|
added_dirs: addedDirs
|
|
482699
482791
|
},
|
|
482700
|
-
version: "1.0.
|
|
482792
|
+
version: "1.0.6",
|
|
482701
482793
|
output_style: {
|
|
482702
482794
|
name: outputStyleName
|
|
482703
482795
|
},
|
|
@@ -494243,7 +494335,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
|
|
|
494243
494335
|
} catch {}
|
|
494244
494336
|
const data = {
|
|
494245
494337
|
trigger,
|
|
494246
|
-
version: "1.0.
|
|
494338
|
+
version: "1.0.6",
|
|
494247
494339
|
platform: process.platform,
|
|
494248
494340
|
transcript,
|
|
494249
494341
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -505828,7 +505920,7 @@ function WelcomeV2() {
|
|
|
505828
505920
|
dimColor: true,
|
|
505829
505921
|
children: [
|
|
505830
505922
|
"v",
|
|
505831
|
-
"1.0.
|
|
505923
|
+
"1.0.6"
|
|
505832
505924
|
]
|
|
505833
505925
|
}, undefined, true, undefined, this)
|
|
505834
505926
|
]
|
|
@@ -505878,6 +505970,104 @@ var init_WelcomeV2 = __esm(() => {
|
|
|
505878
505970
|
];
|
|
505879
505971
|
});
|
|
505880
505972
|
|
|
505973
|
+
// src/components/StartPage.tsx
|
|
505974
|
+
var exports_StartPage = {};
|
|
505975
|
+
__export(exports_StartPage, {
|
|
505976
|
+
StartPage: () => StartPage
|
|
505977
|
+
});
|
|
505978
|
+
function hasSavedBackendConfig(config2) {
|
|
505979
|
+
return Boolean(config2?.provider && config2?.baseUrl?.trim() && config2?.model?.trim());
|
|
505980
|
+
}
|
|
505981
|
+
function StartPage({ currentConfig, onDone }) {
|
|
505982
|
+
const hasSavedConfig = hasSavedBackendConfig(currentConfig);
|
|
505983
|
+
return /* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedBox_default, {
|
|
505984
|
+
flexDirection: "column",
|
|
505985
|
+
gap: 1,
|
|
505986
|
+
children: [
|
|
505987
|
+
/* @__PURE__ */ jsx_dev_runtime475.jsxDEV(WelcomeV2, {}, undefined, false, undefined, this),
|
|
505988
|
+
/* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedBox_default, {
|
|
505989
|
+
flexDirection: "column",
|
|
505990
|
+
gap: 1,
|
|
505991
|
+
paddingLeft: 1,
|
|
505992
|
+
width: 78,
|
|
505993
|
+
children: [
|
|
505994
|
+
/* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedText, {
|
|
505995
|
+
bold: true,
|
|
505996
|
+
children: "Connect a model backend"
|
|
505997
|
+
}, undefined, false, undefined, this),
|
|
505998
|
+
/* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedText, {
|
|
505999
|
+
dimColor: true,
|
|
506000
|
+
wrap: "wrap",
|
|
506001
|
+
children: "localclawd works with vLLM, Ollama, and other OpenAI-compatible endpoints. Start your model server, then configure the endpoint and model you want to use."
|
|
506002
|
+
}, undefined, false, undefined, this),
|
|
506003
|
+
hasSavedConfig ? /* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedBox_default, {
|
|
506004
|
+
flexDirection: "column",
|
|
506005
|
+
children: [
|
|
506006
|
+
/* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedText, {
|
|
506007
|
+
children: [
|
|
506008
|
+
"Saved default:",
|
|
506009
|
+
" ",
|
|
506010
|
+
/* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedText, {
|
|
506011
|
+
bold: true,
|
|
506012
|
+
children: getLocalLLMProviderLabel(currentConfig.provider)
|
|
506013
|
+
}, undefined, false, undefined, this)
|
|
506014
|
+
]
|
|
506015
|
+
}, undefined, true, undefined, this),
|
|
506016
|
+
/* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedText, {
|
|
506017
|
+
dimColor: true,
|
|
506018
|
+
wrap: "wrap",
|
|
506019
|
+
children: [
|
|
506020
|
+
"Model: ",
|
|
506021
|
+
currentConfig.model
|
|
506022
|
+
]
|
|
506023
|
+
}, undefined, true, undefined, this),
|
|
506024
|
+
/* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedText, {
|
|
506025
|
+
dimColor: true,
|
|
506026
|
+
wrap: "wrap",
|
|
506027
|
+
children: [
|
|
506028
|
+
"Endpoint: ",
|
|
506029
|
+
currentConfig.baseUrl
|
|
506030
|
+
]
|
|
506031
|
+
}, undefined, true, undefined, this)
|
|
506032
|
+
]
|
|
506033
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedText, {
|
|
506034
|
+
dimColor: true,
|
|
506035
|
+
wrap: "wrap",
|
|
506036
|
+
children: "No global backend is saved yet. You can configure one now, or continue and come back later with /provider."
|
|
506037
|
+
}, undefined, false, undefined, this),
|
|
506038
|
+
/* @__PURE__ */ jsx_dev_runtime475.jsxDEV(ThemedText, {
|
|
506039
|
+
dimColor: true,
|
|
506040
|
+
wrap: "wrap",
|
|
506041
|
+
children: "Choose Configure model backend to set a backend for just this launch or save it as your global default. Environment variables still override saved defaults when present."
|
|
506042
|
+
}, undefined, false, undefined, this),
|
|
506043
|
+
/* @__PURE__ */ jsx_dev_runtime475.jsxDEV(Select, {
|
|
506044
|
+
options: [
|
|
506045
|
+
{
|
|
506046
|
+
label: "Continue to dashboard",
|
|
506047
|
+
value: "continue"
|
|
506048
|
+
},
|
|
506049
|
+
{
|
|
506050
|
+
label: "Configure model backend",
|
|
506051
|
+
value: "configure-backend"
|
|
506052
|
+
}
|
|
506053
|
+
],
|
|
506054
|
+
onChange: (value) => onDone(value),
|
|
506055
|
+
onCancel: () => onDone("continue")
|
|
506056
|
+
}, undefined, false, undefined, this)
|
|
506057
|
+
]
|
|
506058
|
+
}, undefined, true, undefined, this)
|
|
506059
|
+
]
|
|
506060
|
+
}, undefined, true, undefined, this);
|
|
506061
|
+
}
|
|
506062
|
+
var jsx_dev_runtime475;
|
|
506063
|
+
var init_StartPage = __esm(() => {
|
|
506064
|
+
init_ink2();
|
|
506065
|
+
init_providers();
|
|
506066
|
+
init_select();
|
|
506067
|
+
init_WelcomeV2();
|
|
506068
|
+
jsx_dev_runtime475 = __toESM(require_jsx_dev_runtime(), 1);
|
|
506069
|
+
});
|
|
506070
|
+
|
|
505881
506071
|
// src/components/ui/OrderedListItem.tsx
|
|
505882
506072
|
function OrderedListItem(t0) {
|
|
505883
506073
|
const $3 = c5(7);
|
|
@@ -505889,7 +506079,7 @@ function OrderedListItem(t0) {
|
|
|
505889
506079
|
} = import_react320.useContext(OrderedListItemContext);
|
|
505890
506080
|
let t1;
|
|
505891
506081
|
if ($3[0] !== marker) {
|
|
505892
|
-
t1 = /* @__PURE__ */
|
|
506082
|
+
t1 = /* @__PURE__ */ jsx_dev_runtime476.jsxDEV(ThemedText, {
|
|
505893
506083
|
dimColor: true,
|
|
505894
506084
|
children: marker
|
|
505895
506085
|
}, undefined, false, undefined, this);
|
|
@@ -505900,7 +506090,7 @@ function OrderedListItem(t0) {
|
|
|
505900
506090
|
}
|
|
505901
506091
|
let t2;
|
|
505902
506092
|
if ($3[2] !== children) {
|
|
505903
|
-
t2 = /* @__PURE__ */
|
|
506093
|
+
t2 = /* @__PURE__ */ jsx_dev_runtime476.jsxDEV(ThemedBox_default, {
|
|
505904
506094
|
flexDirection: "column",
|
|
505905
506095
|
children
|
|
505906
506096
|
}, undefined, false, undefined, this);
|
|
@@ -505911,7 +506101,7 @@ function OrderedListItem(t0) {
|
|
|
505911
506101
|
}
|
|
505912
506102
|
let t3;
|
|
505913
506103
|
if ($3[4] !== t1 || $3[5] !== t2) {
|
|
505914
|
-
t3 = /* @__PURE__ */
|
|
506104
|
+
t3 = /* @__PURE__ */ jsx_dev_runtime476.jsxDEV(ThemedBox_default, {
|
|
505915
506105
|
gap: 1,
|
|
505916
506106
|
children: [
|
|
505917
506107
|
t1,
|
|
@@ -505926,11 +506116,11 @@ function OrderedListItem(t0) {
|
|
|
505926
506116
|
}
|
|
505927
506117
|
return t3;
|
|
505928
506118
|
}
|
|
505929
|
-
var import_react320,
|
|
506119
|
+
var import_react320, jsx_dev_runtime476, OrderedListItemContext;
|
|
505930
506120
|
var init_OrderedListItem = __esm(() => {
|
|
505931
506121
|
init_ink2();
|
|
505932
506122
|
import_react320 = __toESM(require_react(), 1);
|
|
505933
|
-
|
|
506123
|
+
jsx_dev_runtime476 = __toESM(require_jsx_dev_runtime(), 1);
|
|
505934
506124
|
OrderedListItemContext = import_react320.createContext({
|
|
505935
506125
|
marker: ""
|
|
505936
506126
|
});
|
|
@@ -505963,11 +506153,11 @@ function OrderedListComponent(t0) {
|
|
|
505963
506153
|
}
|
|
505964
506154
|
const paddedMarker = `${String(index + 1).padStart(maxMarkerWidth)}.`;
|
|
505965
506155
|
const marker = `${parentMarker}${paddedMarker}`;
|
|
505966
|
-
return /* @__PURE__ */
|
|
506156
|
+
return /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(OrderedListContext.Provider, {
|
|
505967
506157
|
value: {
|
|
505968
506158
|
marker
|
|
505969
506159
|
},
|
|
505970
|
-
children: /* @__PURE__ */
|
|
506160
|
+
children: /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(OrderedListItemContext.Provider, {
|
|
505971
506161
|
value: {
|
|
505972
506162
|
marker
|
|
505973
506163
|
},
|
|
@@ -505991,7 +506181,7 @@ function OrderedListComponent(t0) {
|
|
|
505991
506181
|
}
|
|
505992
506182
|
let t2;
|
|
505993
506183
|
if ($3[7] !== t1) {
|
|
505994
|
-
t2 = /* @__PURE__ */
|
|
506184
|
+
t2 = /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedBox_default, {
|
|
505995
506185
|
flexDirection: "column",
|
|
505996
506186
|
children: t1
|
|
505997
506187
|
}, undefined, false, undefined, this);
|
|
@@ -506002,12 +506192,12 @@ function OrderedListComponent(t0) {
|
|
|
506002
506192
|
}
|
|
506003
506193
|
return t2;
|
|
506004
506194
|
}
|
|
506005
|
-
var import_react321,
|
|
506195
|
+
var import_react321, jsx_dev_runtime477, OrderedListContext, OrderedList;
|
|
506006
506196
|
var init_OrderedList = __esm(() => {
|
|
506007
506197
|
init_ink2();
|
|
506008
506198
|
init_OrderedListItem();
|
|
506009
506199
|
import_react321 = __toESM(require_react(), 1);
|
|
506010
|
-
|
|
506200
|
+
jsx_dev_runtime477 = __toESM(require_jsx_dev_runtime(), 1);
|
|
506011
506201
|
OrderedListContext = import_react321.createContext({
|
|
506012
506202
|
marker: ""
|
|
506013
506203
|
});
|
|
@@ -506020,7 +506210,7 @@ var exports_Onboarding = {};
|
|
|
506020
506210
|
__export(exports_Onboarding, {
|
|
506021
506211
|
Onboarding: () => Onboarding
|
|
506022
506212
|
});
|
|
506023
|
-
function Onboarding({ onDone }) {
|
|
506213
|
+
function Onboarding({ onDone, showWelcome = true }) {
|
|
506024
506214
|
const [currentStepIndex, setCurrentStepIndex] = import_react322.useState(0);
|
|
506025
506215
|
const [theme2, setTheme] = useTheme();
|
|
506026
506216
|
const exitState = useExitOnCtrlCDWithKeybindings();
|
|
@@ -506047,21 +506237,26 @@ function Onboarding({ onDone }) {
|
|
|
506047
506237
|
setTheme(newTheme);
|
|
506048
506238
|
goToNextStep();
|
|
506049
506239
|
}, [goToNextStep, setTheme]);
|
|
506050
|
-
const handleLocalBackendSetup = import_react322.useCallback((config2) => {
|
|
506051
|
-
|
|
506052
|
-
|
|
506053
|
-
|
|
506054
|
-
|
|
506055
|
-
|
|
506056
|
-
|
|
506057
|
-
|
|
506240
|
+
const handleLocalBackendSetup = import_react322.useCallback((config2, options) => {
|
|
506241
|
+
if (options?.saveGlobally === false) {
|
|
506242
|
+
setSessionLocalLLMConfigOverride(config2);
|
|
506243
|
+
} else {
|
|
506244
|
+
clearSessionLocalLLMConfigOverride();
|
|
506245
|
+
saveGlobalConfig((current) => ({
|
|
506246
|
+
...current,
|
|
506247
|
+
localBackendProvider: config2.provider,
|
|
506248
|
+
localBackendBaseUrl: config2.baseUrl,
|
|
506249
|
+
localBackendModel: config2.model,
|
|
506250
|
+
localBackendApiKey: config2.apiKey
|
|
506251
|
+
}));
|
|
506252
|
+
}
|
|
506058
506253
|
goToNextStep();
|
|
506059
506254
|
}, [goToNextStep]);
|
|
506060
506255
|
const steps = import_react322.useMemo(() => {
|
|
506061
506256
|
const config2 = getGlobalConfig();
|
|
506062
|
-
const themeStep = /* @__PURE__ */
|
|
506257
|
+
const themeStep = /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
|
|
506063
506258
|
marginX: 1,
|
|
506064
|
-
children: /* @__PURE__ */
|
|
506259
|
+
children: /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemePicker, {
|
|
506065
506260
|
onThemeSelect: handleThemeSelection,
|
|
506066
506261
|
showIntroText: true,
|
|
506067
506262
|
helpText: "To change this later, run /theme",
|
|
@@ -506069,22 +506264,22 @@ function Onboarding({ onDone }) {
|
|
|
506069
506264
|
skipExitHandling: true
|
|
506070
506265
|
}, undefined, false, undefined, this)
|
|
506071
506266
|
}, undefined, false, undefined, this);
|
|
506072
|
-
const compactContextStep = /* @__PURE__ */
|
|
506267
|
+
const compactContextStep = /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
|
|
506073
506268
|
flexDirection: "column",
|
|
506074
506269
|
gap: 1,
|
|
506075
506270
|
paddingLeft: 1,
|
|
506076
506271
|
width: 70,
|
|
506077
506272
|
children: [
|
|
506078
|
-
/* @__PURE__ */
|
|
506273
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
|
|
506079
506274
|
bold: true,
|
|
506080
506275
|
children: "Choose a compact context window"
|
|
506081
506276
|
}, undefined, false, undefined, this),
|
|
506082
|
-
/* @__PURE__ */
|
|
506277
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
|
|
506083
506278
|
dimColor: true,
|
|
506084
506279
|
wrap: "wrap",
|
|
506085
506280
|
children: "localclawd can compact earlier than the model's full advertised window. This is useful for local models that degrade before hitting their theoretical limit."
|
|
506086
506281
|
}, undefined, false, undefined, this),
|
|
506087
|
-
/* @__PURE__ */
|
|
506282
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(Select, {
|
|
506088
506283
|
options: [
|
|
506089
506284
|
{
|
|
506090
506285
|
label: `${formatCompactContextWindowOption(undefined)} (recommended)`,
|
|
@@ -506105,13 +506300,13 @@ function Onboarding({ onDone }) {
|
|
|
506105
506300
|
},
|
|
506106
506301
|
onCancel: goToNextStep
|
|
506107
506302
|
}, undefined, false, undefined, this),
|
|
506108
|
-
/* @__PURE__ */
|
|
506303
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
|
|
506109
506304
|
dimColor: true,
|
|
506110
506305
|
children: "Change this later in /config under Compact context window."
|
|
506111
506306
|
}, undefined, false, undefined, this)
|
|
506112
506307
|
]
|
|
506113
506308
|
}, undefined, true, undefined, this);
|
|
506114
|
-
const localBackendStep = /* @__PURE__ */
|
|
506309
|
+
const localBackendStep = /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(LocalBackendSetup, {
|
|
506115
506310
|
initialConfig: {
|
|
506116
506311
|
provider: config2.localBackendProvider,
|
|
506117
506312
|
baseUrl: config2.localBackendBaseUrl,
|
|
@@ -506121,51 +506316,52 @@ function Onboarding({ onDone }) {
|
|
|
506121
506316
|
onComplete: handleLocalBackendSetup,
|
|
506122
506317
|
onCancel: goToNextStep,
|
|
506123
506318
|
title: "Choose your local backend",
|
|
506124
|
-
description: "Set the OpenAI-compatible endpoint and model localclawd should use by default. You can point vLLM at a local server, Ollama, or any other compatible host."
|
|
506319
|
+
description: "Set the OpenAI-compatible endpoint and model localclawd should use by default. You can point vLLM at a local server, Ollama, or any other compatible host.",
|
|
506320
|
+
showSaveGloballyOption: true
|
|
506125
506321
|
}, undefined, false, undefined, this);
|
|
506126
|
-
const securityStep = /* @__PURE__ */
|
|
506322
|
+
const securityStep = /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
|
|
506127
506323
|
flexDirection: "column",
|
|
506128
506324
|
gap: 1,
|
|
506129
506325
|
paddingLeft: 1,
|
|
506130
506326
|
children: [
|
|
506131
|
-
/* @__PURE__ */
|
|
506327
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
|
|
506132
506328
|
bold: true,
|
|
506133
506329
|
children: "Security notes:"
|
|
506134
506330
|
}, undefined, false, undefined, this),
|
|
506135
|
-
/* @__PURE__ */
|
|
506331
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
|
|
506136
506332
|
flexDirection: "column",
|
|
506137
506333
|
width: 70,
|
|
506138
|
-
children: /* @__PURE__ */
|
|
506334
|
+
children: /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(OrderedList, {
|
|
506139
506335
|
children: [
|
|
506140
|
-
/* @__PURE__ */
|
|
506336
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(OrderedList.Item, {
|
|
506141
506337
|
children: [
|
|
506142
|
-
/* @__PURE__ */
|
|
506338
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
|
|
506143
506339
|
children: "localclawd can make mistakes"
|
|
506144
506340
|
}, undefined, false, undefined, this),
|
|
506145
|
-
/* @__PURE__ */
|
|
506341
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
|
|
506146
506342
|
dimColor: true,
|
|
506147
506343
|
wrap: "wrap",
|
|
506148
506344
|
children: [
|
|
506149
506345
|
"You should always review localclawd's responses, especially when",
|
|
506150
|
-
/* @__PURE__ */
|
|
506346
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(Newline, {}, undefined, false, undefined, this),
|
|
506151
506347
|
"running code.",
|
|
506152
|
-
/* @__PURE__ */
|
|
506348
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(Newline, {}, undefined, false, undefined, this)
|
|
506153
506349
|
]
|
|
506154
506350
|
}, undefined, true, undefined, this)
|
|
506155
506351
|
]
|
|
506156
506352
|
}, undefined, true, undefined, this),
|
|
506157
|
-
/* @__PURE__ */
|
|
506353
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(OrderedList.Item, {
|
|
506158
506354
|
children: [
|
|
506159
|
-
/* @__PURE__ */
|
|
506355
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
|
|
506160
506356
|
children: "Due to prompt injection risks, only use it with code you trust"
|
|
506161
506357
|
}, undefined, false, undefined, this),
|
|
506162
|
-
/* @__PURE__ */
|
|
506358
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
|
|
506163
506359
|
dimColor: true,
|
|
506164
506360
|
wrap: "wrap",
|
|
506165
506361
|
children: [
|
|
506166
506362
|
"For more details see:",
|
|
506167
|
-
/* @__PURE__ */
|
|
506168
|
-
/* @__PURE__ */
|
|
506363
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(Newline, {}, undefined, false, undefined, this),
|
|
506364
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(Link, {
|
|
506169
506365
|
url: "https://github.com/chromebookwiz/localclawd"
|
|
506170
506366
|
}, undefined, false, undefined, this)
|
|
506171
506367
|
]
|
|
@@ -506175,7 +506371,7 @@ function Onboarding({ onDone }) {
|
|
|
506175
506371
|
]
|
|
506176
506372
|
}, undefined, true, undefined, this)
|
|
506177
506373
|
}, undefined, false, undefined, this),
|
|
506178
|
-
/* @__PURE__ */
|
|
506374
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(PressEnterToContinue, {}, undefined, false, undefined, this)
|
|
506179
506375
|
]
|
|
506180
506376
|
}, undefined, true, undefined, this);
|
|
506181
506377
|
const nextSteps = [
|
|
@@ -506187,30 +506383,30 @@ function Onboarding({ onDone }) {
|
|
|
506187
506383
|
if (shouldOfferTerminalSetup()) {
|
|
506188
506384
|
nextSteps.push({
|
|
506189
506385
|
id: "terminal-setup",
|
|
506190
|
-
component: /* @__PURE__ */
|
|
506386
|
+
component: /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
|
|
506191
506387
|
flexDirection: "column",
|
|
506192
506388
|
gap: 1,
|
|
506193
506389
|
paddingLeft: 1,
|
|
506194
506390
|
children: [
|
|
506195
|
-
/* @__PURE__ */
|
|
506391
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
|
|
506196
506392
|
bold: true,
|
|
506197
506393
|
children: "Use localclawd's terminal setup?"
|
|
506198
506394
|
}, undefined, false, undefined, this),
|
|
506199
|
-
/* @__PURE__ */
|
|
506395
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
|
|
506200
506396
|
flexDirection: "column",
|
|
506201
506397
|
width: 70,
|
|
506202
506398
|
gap: 1,
|
|
506203
506399
|
children: [
|
|
506204
|
-
/* @__PURE__ */
|
|
506400
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
|
|
506205
506401
|
children: [
|
|
506206
506402
|
"For the optimal coding experience, enable the recommended settings",
|
|
506207
|
-
/* @__PURE__ */
|
|
506403
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(Newline, {}, undefined, false, undefined, this),
|
|
506208
506404
|
"for your terminal:",
|
|
506209
506405
|
" ",
|
|
506210
506406
|
env4.terminal === "Apple_Terminal" ? "Option+Enter for newlines and visual bell" : "Shift+Enter for newlines"
|
|
506211
506407
|
]
|
|
506212
506408
|
}, undefined, true, undefined, this),
|
|
506213
|
-
/* @__PURE__ */
|
|
506409
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(Select, {
|
|
506214
506410
|
options: [
|
|
506215
506411
|
{
|
|
506216
506412
|
label: "Yes, use recommended settings",
|
|
@@ -506230,15 +506426,15 @@ function Onboarding({ onDone }) {
|
|
|
506230
506426
|
},
|
|
506231
506427
|
onCancel: goToNextStep
|
|
506232
506428
|
}, undefined, false, undefined, this),
|
|
506233
|
-
/* @__PURE__ */
|
|
506429
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
|
|
506234
506430
|
dimColor: true,
|
|
506235
|
-
children: exitState.pending ? /* @__PURE__ */
|
|
506431
|
+
children: exitState.pending ? /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(jsx_dev_runtime478.Fragment, {
|
|
506236
506432
|
children: [
|
|
506237
506433
|
"Press ",
|
|
506238
506434
|
exitState.keyName,
|
|
506239
506435
|
" again to exit"
|
|
506240
506436
|
]
|
|
506241
|
-
}, undefined, true, undefined, this) : /* @__PURE__ */
|
|
506437
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(jsx_dev_runtime478.Fragment, {
|
|
506242
506438
|
children: "Enter to confirm · Esc to skip"
|
|
506243
506439
|
}, undefined, false, undefined, this)
|
|
506244
506440
|
}, undefined, false, undefined, this)
|
|
@@ -506273,18 +506469,18 @@ function Onboarding({ onDone }) {
|
|
|
506273
506469
|
context: "Confirmation",
|
|
506274
506470
|
isActive: currentStep?.id === "terminal-setup"
|
|
506275
506471
|
});
|
|
506276
|
-
return /* @__PURE__ */
|
|
506472
|
+
return /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
|
|
506277
506473
|
flexDirection: "column",
|
|
506278
506474
|
children: [
|
|
506279
|
-
/* @__PURE__ */
|
|
506280
|
-
/* @__PURE__ */
|
|
506475
|
+
showWelcome ? /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(WelcomeV2, {}, undefined, false, undefined, this) : null,
|
|
506476
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
|
|
506281
506477
|
flexDirection: "column",
|
|
506282
506478
|
marginTop: 1,
|
|
506283
506479
|
children: [
|
|
506284
506480
|
currentStep?.component,
|
|
506285
|
-
exitState.pending ? /* @__PURE__ */
|
|
506481
|
+
exitState.pending ? /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
|
|
506286
506482
|
padding: 1,
|
|
506287
|
-
children: /* @__PURE__ */
|
|
506483
|
+
children: /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
|
|
506288
506484
|
dimColor: true,
|
|
506289
506485
|
children: [
|
|
506290
506486
|
"Press ",
|
|
@@ -506298,7 +506494,7 @@ function Onboarding({ onDone }) {
|
|
|
506298
506494
|
]
|
|
506299
506495
|
}, undefined, true, undefined, this);
|
|
506300
506496
|
}
|
|
506301
|
-
var import_react322,
|
|
506497
|
+
var import_react322, jsx_dev_runtime478;
|
|
506302
506498
|
var init_Onboarding = __esm(() => {
|
|
506303
506499
|
init_terminalSetup();
|
|
506304
506500
|
init_useExitOnCtrlCDWithKeybindings();
|
|
@@ -506307,6 +506503,7 @@ var init_Onboarding = __esm(() => {
|
|
|
506307
506503
|
init_config();
|
|
506308
506504
|
init_context();
|
|
506309
506505
|
init_env();
|
|
506506
|
+
init_providers();
|
|
506310
506507
|
init_select();
|
|
506311
506508
|
init_LocalBackendSetup();
|
|
506312
506509
|
init_WelcomeV2();
|
|
@@ -506314,7 +506511,7 @@ var init_Onboarding = __esm(() => {
|
|
|
506314
506511
|
init_ThemePicker();
|
|
506315
506512
|
init_OrderedList();
|
|
506316
506513
|
import_react322 = __toESM(require_react(), 1);
|
|
506317
|
-
|
|
506514
|
+
jsx_dev_runtime478 = __toESM(require_jsx_dev_runtime(), 1);
|
|
506318
506515
|
});
|
|
506319
506516
|
|
|
506320
506517
|
// src/components/TrustDialog/utils.ts
|
|
@@ -506639,18 +506836,18 @@ function TrustDialog(t0) {
|
|
|
506639
506836
|
let t17;
|
|
506640
506837
|
let t18;
|
|
506641
506838
|
if ($3[20] === Symbol.for("react.memo_cache_sentinel")) {
|
|
506642
|
-
t16 = /* @__PURE__ */
|
|
506839
|
+
t16 = /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(ThemedText, {
|
|
506643
506840
|
bold: true,
|
|
506644
506841
|
children: getFsImplementation().cwd()
|
|
506645
506842
|
}, undefined, false, undefined, this);
|
|
506646
|
-
t17 = /* @__PURE__ */
|
|
506843
|
+
t17 = /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(ThemedText, {
|
|
506647
506844
|
children: [
|
|
506648
506845
|
"Quick safety check: Is this a project you created or one you trust? (Like your own code, a well-known open source project, or work from your team). If not, take a moment to review what",
|
|
506649
506846
|
"'",
|
|
506650
506847
|
"s in this folder first."
|
|
506651
506848
|
]
|
|
506652
506849
|
}, undefined, true, undefined, this);
|
|
506653
|
-
t18 = /* @__PURE__ */
|
|
506850
|
+
t18 = /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(ThemedText, {
|
|
506654
506851
|
children: [
|
|
506655
506852
|
"Claude Code",
|
|
506656
506853
|
"'",
|
|
@@ -506667,9 +506864,9 @@ function TrustDialog(t0) {
|
|
|
506667
506864
|
}
|
|
506668
506865
|
let t19;
|
|
506669
506866
|
if ($3[23] === Symbol.for("react.memo_cache_sentinel")) {
|
|
506670
|
-
t19 = /* @__PURE__ */
|
|
506867
|
+
t19 = /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(ThemedText, {
|
|
506671
506868
|
dimColor: true,
|
|
506672
|
-
children: /* @__PURE__ */
|
|
506869
|
+
children: /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(Link, {
|
|
506673
506870
|
url: "https://code.claude.com/docs/en/security",
|
|
506674
506871
|
children: "Security guide"
|
|
506675
506872
|
}, undefined, false, undefined, this)
|
|
@@ -506693,7 +506890,7 @@ function TrustDialog(t0) {
|
|
|
506693
506890
|
}
|
|
506694
506891
|
let t21;
|
|
506695
506892
|
if ($3[25] !== onChange) {
|
|
506696
|
-
t21 = /* @__PURE__ */
|
|
506893
|
+
t21 = /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(Select, {
|
|
506697
506894
|
options: t20,
|
|
506698
506895
|
onChange: (value_0) => onChange(value_0),
|
|
506699
506896
|
onCancel: () => onChange("exit")
|
|
@@ -506705,15 +506902,15 @@ function TrustDialog(t0) {
|
|
|
506705
506902
|
}
|
|
506706
506903
|
let t22;
|
|
506707
506904
|
if ($3[27] !== exitState.keyName || $3[28] !== exitState.pending) {
|
|
506708
|
-
t22 = /* @__PURE__ */
|
|
506905
|
+
t22 = /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(ThemedText, {
|
|
506709
506906
|
dimColor: true,
|
|
506710
|
-
children: exitState.pending ? /* @__PURE__ */
|
|
506907
|
+
children: exitState.pending ? /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(jsx_dev_runtime479.Fragment, {
|
|
506711
506908
|
children: [
|
|
506712
506909
|
"Press ",
|
|
506713
506910
|
exitState.keyName,
|
|
506714
506911
|
" again to exit"
|
|
506715
506912
|
]
|
|
506716
|
-
}, undefined, true, undefined, this) : /* @__PURE__ */
|
|
506913
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(jsx_dev_runtime479.Fragment, {
|
|
506717
506914
|
children: "Enter to confirm · Esc to cancel"
|
|
506718
506915
|
}, undefined, false, undefined, this)
|
|
506719
506916
|
}, undefined, false, undefined, this);
|
|
@@ -506725,11 +506922,11 @@ function TrustDialog(t0) {
|
|
|
506725
506922
|
}
|
|
506726
506923
|
let t23;
|
|
506727
506924
|
if ($3[30] !== t21 || $3[31] !== t22) {
|
|
506728
|
-
t23 = /* @__PURE__ */
|
|
506925
|
+
t23 = /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(PermissionDialog, {
|
|
506729
506926
|
color: "warning",
|
|
506730
506927
|
titleColor: "warning",
|
|
506731
506928
|
title: "Accessing workspace:",
|
|
506732
|
-
children: /* @__PURE__ */
|
|
506929
|
+
children: /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(ThemedBox_default, {
|
|
506733
506930
|
flexDirection: "column",
|
|
506734
506931
|
gap: 1,
|
|
506735
506932
|
paddingTop: 1,
|
|
@@ -506775,7 +506972,7 @@ function _temp2101(command8) {
|
|
|
506775
506972
|
function _temp303(tool) {
|
|
506776
506973
|
return tool === BASH_TOOL_NAME || tool.startsWith(BASH_TOOL_NAME + "(");
|
|
506777
506974
|
}
|
|
506778
|
-
var import_react323,
|
|
506975
|
+
var import_react323, jsx_dev_runtime479;
|
|
506779
506976
|
var init_TrustDialog = __esm(() => {
|
|
506780
506977
|
init_state();
|
|
506781
506978
|
init_useExitOnCtrlCDWithKeybindings();
|
|
@@ -506790,7 +506987,7 @@ var init_TrustDialog = __esm(() => {
|
|
|
506790
506987
|
init_PermissionDialog();
|
|
506791
506988
|
init_utils14();
|
|
506792
506989
|
import_react323 = __toESM(require_react(), 1);
|
|
506793
|
-
|
|
506990
|
+
jsx_dev_runtime479 = __toESM(require_jsx_dev_runtime(), 1);
|
|
506794
506991
|
});
|
|
506795
506992
|
|
|
506796
506993
|
// src/components/BypassPermissionsModeDialog.tsx
|
|
@@ -506838,21 +507035,21 @@ function BypassPermissionsModeDialog(t0) {
|
|
|
506838
507035
|
const handleEscape = _temp2102;
|
|
506839
507036
|
let t3;
|
|
506840
507037
|
if ($3[3] === Symbol.for("react.memo_cache_sentinel")) {
|
|
506841
|
-
t3 = /* @__PURE__ */
|
|
507038
|
+
t3 = /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(ThemedBox_default, {
|
|
506842
507039
|
flexDirection: "column",
|
|
506843
507040
|
gap: 1,
|
|
506844
507041
|
children: [
|
|
506845
|
-
/* @__PURE__ */
|
|
507042
|
+
/* @__PURE__ */ jsx_dev_runtime480.jsxDEV(ThemedText, {
|
|
506846
507043
|
children: [
|
|
506847
507044
|
"In Bypass Permissions mode, localclawd will not ask for your approval before running potentially dangerous commands.",
|
|
506848
|
-
/* @__PURE__ */
|
|
507045
|
+
/* @__PURE__ */ jsx_dev_runtime480.jsxDEV(Newline, {}, undefined, false, undefined, this),
|
|
506849
507046
|
"This mode should only be used in a sandboxed container/VM that has restricted internet access and can easily be restored if damaged."
|
|
506850
507047
|
]
|
|
506851
507048
|
}, undefined, true, undefined, this),
|
|
506852
|
-
/* @__PURE__ */
|
|
507049
|
+
/* @__PURE__ */ jsx_dev_runtime480.jsxDEV(ThemedText, {
|
|
506853
507050
|
children: "By proceeding, you accept all responsibility for actions taken while running in Bypass Permissions mode."
|
|
506854
507051
|
}, undefined, false, undefined, this),
|
|
506855
|
-
/* @__PURE__ */
|
|
507052
|
+
/* @__PURE__ */ jsx_dev_runtime480.jsxDEV(Link, {
|
|
506856
507053
|
url: "https://github.com/chromebookwiz/localclawd"
|
|
506857
507054
|
}, undefined, false, undefined, this)
|
|
506858
507055
|
]
|
|
@@ -506876,13 +507073,13 @@ function BypassPermissionsModeDialog(t0) {
|
|
|
506876
507073
|
}
|
|
506877
507074
|
let t5;
|
|
506878
507075
|
if ($3[5] !== onChange) {
|
|
506879
|
-
t5 = /* @__PURE__ */
|
|
507076
|
+
t5 = /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(Dialog, {
|
|
506880
507077
|
title: "WARNING: localclawd running in Bypass Permissions mode",
|
|
506881
507078
|
color: "error",
|
|
506882
507079
|
onCancel: handleEscape,
|
|
506883
507080
|
children: [
|
|
506884
507081
|
t3,
|
|
506885
|
-
/* @__PURE__ */
|
|
507082
|
+
/* @__PURE__ */ jsx_dev_runtime480.jsxDEV(Select, {
|
|
506886
507083
|
options: t4,
|
|
506887
507084
|
onChange: (value_0) => onChange(value_0)
|
|
506888
507085
|
}, undefined, false, undefined, this)
|
|
@@ -506901,7 +507098,7 @@ function _temp2102() {
|
|
|
506901
507098
|
function _temp304() {
|
|
506902
507099
|
logEvent("tengu_bypass_permissions_mode_dialog_shown", {});
|
|
506903
507100
|
}
|
|
506904
|
-
var import_react324,
|
|
507101
|
+
var import_react324, jsx_dev_runtime480;
|
|
506905
507102
|
var init_BypassPermissionsModeDialog = __esm(() => {
|
|
506906
507103
|
init_ink2();
|
|
506907
507104
|
init_gracefulShutdown();
|
|
@@ -506909,7 +507106,7 @@ var init_BypassPermissionsModeDialog = __esm(() => {
|
|
|
506909
507106
|
init_CustomSelect();
|
|
506910
507107
|
init_Dialog();
|
|
506911
507108
|
import_react324 = __toESM(require_react(), 1);
|
|
506912
|
-
|
|
507109
|
+
jsx_dev_runtime480 = __toESM(require_jsx_dev_runtime(), 1);
|
|
506913
507110
|
});
|
|
506914
507111
|
|
|
506915
507112
|
// src/components/ClaudeInChromeOnboarding.tsx
|
|
@@ -506954,13 +507151,13 @@ function ClaudeInChromeOnboarding(t0) {
|
|
|
506954
507151
|
use_input_default(t3);
|
|
506955
507152
|
let t4;
|
|
506956
507153
|
if ($3[4] !== isExtensionInstalled) {
|
|
506957
|
-
t4 = !isExtensionInstalled && /* @__PURE__ */
|
|
507154
|
+
t4 = !isExtensionInstalled && /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(jsx_dev_runtime481.Fragment, {
|
|
506958
507155
|
children: [
|
|
506959
|
-
/* @__PURE__ */
|
|
506960
|
-
/* @__PURE__ */
|
|
507156
|
+
/* @__PURE__ */ jsx_dev_runtime481.jsxDEV(Newline, {}, undefined, false, undefined, this),
|
|
507157
|
+
/* @__PURE__ */ jsx_dev_runtime481.jsxDEV(Newline, {}, undefined, false, undefined, this),
|
|
506961
507158
|
"Requires the Chrome extension. Get started at",
|
|
506962
507159
|
" ",
|
|
506963
|
-
/* @__PURE__ */
|
|
507160
|
+
/* @__PURE__ */ jsx_dev_runtime481.jsxDEV(Link, {
|
|
506964
507161
|
url: CHROME_EXTENSION_URL2
|
|
506965
507162
|
}, undefined, false, undefined, this)
|
|
506966
507163
|
]
|
|
@@ -506972,7 +507169,7 @@ function ClaudeInChromeOnboarding(t0) {
|
|
|
506972
507169
|
}
|
|
506973
507170
|
let t5;
|
|
506974
507171
|
if ($3[6] !== t4) {
|
|
506975
|
-
t5 = /* @__PURE__ */
|
|
507172
|
+
t5 = /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(ThemedText, {
|
|
506976
507173
|
children: [
|
|
506977
507174
|
"localclawd in Chrome works with the Chrome extension to let you control your browser directly from localclawd. You can navigate websites, fill forms, capture screenshots, record GIFs, and debug with console logs and network requests.",
|
|
506978
507175
|
t4
|
|
@@ -506985,11 +507182,11 @@ function ClaudeInChromeOnboarding(t0) {
|
|
|
506985
507182
|
}
|
|
506986
507183
|
let t6;
|
|
506987
507184
|
if ($3[8] !== isExtensionInstalled) {
|
|
506988
|
-
t6 = isExtensionInstalled && /* @__PURE__ */
|
|
507185
|
+
t6 = isExtensionInstalled && /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(jsx_dev_runtime481.Fragment, {
|
|
506989
507186
|
children: [
|
|
506990
507187
|
" ",
|
|
506991
507188
|
"(",
|
|
506992
|
-
/* @__PURE__ */
|
|
507189
|
+
/* @__PURE__ */ jsx_dev_runtime481.jsxDEV(Link, {
|
|
506993
507190
|
url: CHROME_PERMISSIONS_URL2
|
|
506994
507191
|
}, undefined, false, undefined, this),
|
|
506995
507192
|
")"
|
|
@@ -507002,7 +507199,7 @@ function ClaudeInChromeOnboarding(t0) {
|
|
|
507002
507199
|
}
|
|
507003
507200
|
let t7;
|
|
507004
507201
|
if ($3[10] !== t6) {
|
|
507005
|
-
t7 = /* @__PURE__ */
|
|
507202
|
+
t7 = /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(ThemedText, {
|
|
507006
507203
|
dimColor: true,
|
|
507007
507204
|
children: [
|
|
507008
507205
|
"Site-level permissions are inherited from the Chrome extension. Manage permissions in the Chrome extension settings to control which sites localclawd can browse, click, and type on",
|
|
@@ -507017,7 +507214,7 @@ function ClaudeInChromeOnboarding(t0) {
|
|
|
507017
507214
|
}
|
|
507018
507215
|
let t8;
|
|
507019
507216
|
if ($3[12] === Symbol.for("react.memo_cache_sentinel")) {
|
|
507020
|
-
t8 = /* @__PURE__ */
|
|
507217
|
+
t8 = /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(ThemedText, {
|
|
507021
507218
|
bold: true,
|
|
507022
507219
|
color: "chromeYellow",
|
|
507023
507220
|
children: "/chrome"
|
|
@@ -507028,7 +507225,7 @@ function ClaudeInChromeOnboarding(t0) {
|
|
|
507028
507225
|
}
|
|
507029
507226
|
let t9;
|
|
507030
507227
|
if ($3[13] === Symbol.for("react.memo_cache_sentinel")) {
|
|
507031
|
-
t9 = /* @__PURE__ */
|
|
507228
|
+
t9 = /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(ThemedText, {
|
|
507032
507229
|
dimColor: true,
|
|
507033
507230
|
children: [
|
|
507034
507231
|
"For more info, use",
|
|
@@ -507036,7 +507233,7 @@ function ClaudeInChromeOnboarding(t0) {
|
|
|
507036
507233
|
t8,
|
|
507037
507234
|
" ",
|
|
507038
507235
|
"or visit ",
|
|
507039
|
-
/* @__PURE__ */
|
|
507236
|
+
/* @__PURE__ */ jsx_dev_runtime481.jsxDEV(Link, {
|
|
507040
507237
|
url: "https://github.com/chromebookwiz/localclawd"
|
|
507041
507238
|
}, undefined, false, undefined, this)
|
|
507042
507239
|
]
|
|
@@ -507047,7 +507244,7 @@ function ClaudeInChromeOnboarding(t0) {
|
|
|
507047
507244
|
}
|
|
507048
507245
|
let t10;
|
|
507049
507246
|
if ($3[14] !== t5 || $3[15] !== t7) {
|
|
507050
|
-
t10 = /* @__PURE__ */
|
|
507247
|
+
t10 = /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(ThemedBox_default, {
|
|
507051
507248
|
flexDirection: "column",
|
|
507052
507249
|
gap: 1,
|
|
507053
507250
|
children: [
|
|
@@ -507064,7 +507261,7 @@ function ClaudeInChromeOnboarding(t0) {
|
|
|
507064
507261
|
}
|
|
507065
507262
|
let t11;
|
|
507066
507263
|
if ($3[17] !== onDone || $3[18] !== t10) {
|
|
507067
|
-
t11 = /* @__PURE__ */
|
|
507264
|
+
t11 = /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(Dialog, {
|
|
507068
507265
|
title: "localclawd in Chrome (Beta)",
|
|
507069
507266
|
onCancel: onDone,
|
|
507070
507267
|
color: "chromeYellow",
|
|
@@ -507084,14 +507281,14 @@ function _temp305(current) {
|
|
|
507084
507281
|
hasCompletedClaudeInChromeOnboarding: true
|
|
507085
507282
|
};
|
|
507086
507283
|
}
|
|
507087
|
-
var import_react325,
|
|
507284
|
+
var import_react325, jsx_dev_runtime481, CHROME_EXTENSION_URL2 = "https://github.com/chromebookwiz/localclawd", CHROME_PERMISSIONS_URL2 = "https://clau.de/chrome/permissions";
|
|
507088
507285
|
var init_ClaudeInChromeOnboarding = __esm(() => {
|
|
507089
507286
|
init_ink2();
|
|
507090
507287
|
init_setup2();
|
|
507091
507288
|
init_config();
|
|
507092
507289
|
init_Dialog();
|
|
507093
507290
|
import_react325 = __toESM(require_react(), 1);
|
|
507094
|
-
|
|
507291
|
+
jsx_dev_runtime481 = __toESM(require_jsx_dev_runtime(), 1);
|
|
507095
507292
|
});
|
|
507096
507293
|
|
|
507097
507294
|
// src/interactiveHelpers.tsx
|
|
@@ -507100,7 +507297,7 @@ function completeOnboarding() {
|
|
|
507100
507297
|
saveGlobalConfig((current) => ({
|
|
507101
507298
|
...current,
|
|
507102
507299
|
hasCompletedOnboarding: true,
|
|
507103
|
-
lastOnboardingVersion: "1.0.
|
|
507300
|
+
lastOnboardingVersion: "1.0.6"
|
|
507104
507301
|
}));
|
|
507105
507302
|
}
|
|
507106
507303
|
function showDialog(root2, renderer) {
|
|
@@ -507121,10 +507318,10 @@ async function exitWithMessage2(root2, message, options) {
|
|
|
507121
507318
|
} = await Promise.resolve().then(() => (init_ink2(), exports_ink));
|
|
507122
507319
|
const color3 = options?.color;
|
|
507123
507320
|
const exitCode = options?.exitCode ?? 1;
|
|
507124
|
-
root2.render(color3 ? /* @__PURE__ */
|
|
507321
|
+
root2.render(color3 ? /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(Text6, {
|
|
507125
507322
|
color: color3,
|
|
507126
507323
|
children: message
|
|
507127
|
-
}, undefined, false, undefined, this) : /* @__PURE__ */
|
|
507324
|
+
}, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(Text6, {
|
|
507128
507325
|
children: message
|
|
507129
507326
|
}, undefined, false, undefined, this));
|
|
507130
507327
|
root2.unmount();
|
|
@@ -507132,9 +507329,9 @@ async function exitWithMessage2(root2, message, options) {
|
|
|
507132
507329
|
process.exit(exitCode);
|
|
507133
507330
|
}
|
|
507134
507331
|
function showSetupDialog(root2, renderer, options) {
|
|
507135
|
-
return showDialog(root2, (done) => /* @__PURE__ */
|
|
507332
|
+
return showDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(AppStateProvider, {
|
|
507136
507333
|
onChangeAppState: options?.onChangeAppState,
|
|
507137
|
-
children: /* @__PURE__ */
|
|
507334
|
+
children: /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(KeybindingSetup, {
|
|
507138
507335
|
children: renderer(done)
|
|
507139
507336
|
}, undefined, false, undefined, this)
|
|
507140
507337
|
}, undefined, false, undefined, this));
|
|
@@ -507150,13 +507347,68 @@ async function showSetupScreens(root2, permissionMode, allowDangerouslySkipPermi
|
|
|
507150
507347
|
return false;
|
|
507151
507348
|
}
|
|
507152
507349
|
const config2 = getGlobalConfig();
|
|
507350
|
+
const {
|
|
507351
|
+
StartPage: StartPage2
|
|
507352
|
+
} = await Promise.resolve().then(() => (init_StartPage(), exports_StartPage));
|
|
507353
|
+
const startAction = await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(StartPage2, {
|
|
507354
|
+
currentConfig: {
|
|
507355
|
+
provider: config2.localBackendProvider,
|
|
507356
|
+
baseUrl: config2.localBackendBaseUrl,
|
|
507357
|
+
model: config2.localBackendModel,
|
|
507358
|
+
apiKey: config2.localBackendApiKey
|
|
507359
|
+
},
|
|
507360
|
+
onDone: done
|
|
507361
|
+
}, undefined, false, undefined, this), {
|
|
507362
|
+
onChangeAppState
|
|
507363
|
+
});
|
|
507364
|
+
if (startAction === "configure-backend") {
|
|
507365
|
+
const {
|
|
507366
|
+
LocalBackendSetup: LocalBackendSetup2
|
|
507367
|
+
} = await Promise.resolve().then(() => (init_LocalBackendSetup(), exports_LocalBackendSetup));
|
|
507368
|
+
const {
|
|
507369
|
+
clearSessionLocalLLMConfigOverride: clearSessionLocalLLMConfigOverride2,
|
|
507370
|
+
setSessionLocalLLMConfigOverride: setSessionLocalLLMConfigOverride2
|
|
507371
|
+
} = await Promise.resolve().then(() => (init_providers(), exports_providers));
|
|
507372
|
+
await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(LocalBackendSetup2, {
|
|
507373
|
+
initialConfig: {
|
|
507374
|
+
provider: config2.localBackendProvider,
|
|
507375
|
+
baseUrl: config2.localBackendBaseUrl,
|
|
507376
|
+
model: config2.localBackendModel,
|
|
507377
|
+
apiKey: config2.localBackendApiKey
|
|
507378
|
+
},
|
|
507379
|
+
onComplete: (nextConfig, options) => {
|
|
507380
|
+
if (options?.saveGlobally === false) {
|
|
507381
|
+
setSessionLocalLLMConfigOverride2(nextConfig);
|
|
507382
|
+
} else {
|
|
507383
|
+
clearSessionLocalLLMConfigOverride2();
|
|
507384
|
+
saveGlobalConfig((current) => ({
|
|
507385
|
+
...current,
|
|
507386
|
+
localBackendProvider: nextConfig.provider,
|
|
507387
|
+
localBackendBaseUrl: nextConfig.baseUrl,
|
|
507388
|
+
localBackendModel: nextConfig.model,
|
|
507389
|
+
localBackendApiKey: nextConfig.apiKey
|
|
507390
|
+
}));
|
|
507391
|
+
}
|
|
507392
|
+
done();
|
|
507393
|
+
},
|
|
507394
|
+
onCancel: () => {
|
|
507395
|
+
done();
|
|
507396
|
+
},
|
|
507397
|
+
title: "Connect your model backend",
|
|
507398
|
+
description: "Choose the OpenAI-compatible endpoint localclawd should talk to. You can save it globally for every run or use it only for this launch.",
|
|
507399
|
+
showSaveGloballyOption: true
|
|
507400
|
+
}, undefined, false, undefined, this), {
|
|
507401
|
+
onChangeAppState
|
|
507402
|
+
});
|
|
507403
|
+
}
|
|
507153
507404
|
let onboardingShown = false;
|
|
507154
507405
|
if (!config2.theme || !config2.hasCompletedOnboarding) {
|
|
507155
507406
|
onboardingShown = true;
|
|
507156
507407
|
const {
|
|
507157
507408
|
Onboarding: Onboarding2
|
|
507158
507409
|
} = await Promise.resolve().then(() => (init_Onboarding(), exports_Onboarding));
|
|
507159
|
-
await showSetupDialog(root2, (done) => /* @__PURE__ */
|
|
507410
|
+
await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(Onboarding2, {
|
|
507411
|
+
showWelcome: false,
|
|
507160
507412
|
onDone: () => {
|
|
507161
507413
|
completeOnboarding();
|
|
507162
507414
|
done();
|
|
@@ -507170,7 +507422,7 @@ async function showSetupScreens(root2, permissionMode, allowDangerouslySkipPermi
|
|
|
507170
507422
|
const {
|
|
507171
507423
|
TrustDialog: TrustDialog2
|
|
507172
507424
|
} = await Promise.resolve().then(() => (init_TrustDialog(), exports_TrustDialog));
|
|
507173
|
-
await showSetupDialog(root2, (done) => /* @__PURE__ */
|
|
507425
|
+
await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(TrustDialog2, {
|
|
507174
507426
|
commands,
|
|
507175
507427
|
onDone: done
|
|
507176
507428
|
}, undefined, false, undefined, this));
|
|
@@ -507190,7 +507442,7 @@ async function showSetupScreens(root2, permissionMode, allowDangerouslySkipPermi
|
|
|
507190
507442
|
const {
|
|
507191
507443
|
ClaudeMdExternalIncludesDialog: ClaudeMdExternalIncludesDialog2
|
|
507192
507444
|
} = await Promise.resolve().then(() => (init_ClaudeMdExternalIncludesDialog(), exports_ClaudeMdExternalIncludesDialog));
|
|
507193
|
-
await showSetupDialog(root2, (done) => /* @__PURE__ */
|
|
507445
|
+
await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ClaudeMdExternalIncludesDialog2, {
|
|
507194
507446
|
onDone: done,
|
|
507195
507447
|
isStandaloneDialog: true,
|
|
507196
507448
|
externalIncludes
|
|
@@ -507205,7 +507457,7 @@ async function showSetupScreens(root2, permissionMode, allowDangerouslySkipPermi
|
|
|
507205
507457
|
const {
|
|
507206
507458
|
GroveDialog: GroveDialog2
|
|
507207
507459
|
} = await Promise.resolve().then(() => (init_Grove(), exports_Grove));
|
|
507208
|
-
const decision = await showSetupDialog(root2, (done) => /* @__PURE__ */
|
|
507460
|
+
const decision = await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(GroveDialog2, {
|
|
507209
507461
|
showIfAlreadyViewed: false,
|
|
507210
507462
|
location: onboardingShown ? "onboarding" : "policy_update_modal",
|
|
507211
507463
|
onDone: done
|
|
@@ -507220,7 +507472,7 @@ async function showSetupScreens(root2, permissionMode, allowDangerouslySkipPermi
|
|
|
507220
507472
|
const {
|
|
507221
507473
|
BypassPermissionsModeDialog: BypassPermissionsModeDialog2
|
|
507222
507474
|
} = await Promise.resolve().then(() => (init_BypassPermissionsModeDialog(), exports_BypassPermissionsModeDialog));
|
|
507223
|
-
await showSetupDialog(root2, (done) => /* @__PURE__ */
|
|
507475
|
+
await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(BypassPermissionsModeDialog2, {
|
|
507224
507476
|
onAccept: done
|
|
507225
507477
|
}, undefined, false, undefined, this));
|
|
507226
507478
|
}
|
|
@@ -507230,7 +507482,7 @@ async function showSetupScreens(root2, permissionMode, allowDangerouslySkipPermi
|
|
|
507230
507482
|
const {
|
|
507231
507483
|
ClaudeInChromeOnboarding: ClaudeInChromeOnboarding2
|
|
507232
507484
|
} = await Promise.resolve().then(() => (init_ClaudeInChromeOnboarding(), exports_ClaudeInChromeOnboarding));
|
|
507233
|
-
await showSetupDialog(root2, (done) => /* @__PURE__ */
|
|
507485
|
+
await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ClaudeInChromeOnboarding2, {
|
|
507234
507486
|
onDone: done
|
|
507235
507487
|
}, undefined, false, undefined, this));
|
|
507236
507488
|
}
|
|
@@ -507285,7 +507537,7 @@ function getRenderContext(exitOnCtrlC) {
|
|
|
507285
507537
|
}
|
|
507286
507538
|
};
|
|
507287
507539
|
}
|
|
507288
|
-
var
|
|
507540
|
+
var jsx_dev_runtime482;
|
|
507289
507541
|
var init_interactiveHelpers = __esm(() => {
|
|
507290
507542
|
init_gracefulShutdown();
|
|
507291
507543
|
init_state();
|
|
@@ -507308,7 +507560,7 @@ var init_interactiveHelpers = __esm(() => {
|
|
|
507308
507560
|
init_renderOptions();
|
|
507309
507561
|
init_allErrors();
|
|
507310
507562
|
init_settings2();
|
|
507311
|
-
|
|
507563
|
+
jsx_dev_runtime482 = __toESM(require_jsx_dev_runtime(), 1);
|
|
507312
507564
|
});
|
|
507313
507565
|
|
|
507314
507566
|
// src/components/InvalidSettingsDialog.tsx
|
|
@@ -507341,7 +507593,7 @@ function InvalidSettingsDialog(t0) {
|
|
|
507341
507593
|
const handleSelect = t1;
|
|
507342
507594
|
let t2;
|
|
507343
507595
|
if ($3[3] !== settingsErrors) {
|
|
507344
|
-
t2 = /* @__PURE__ */
|
|
507596
|
+
t2 = /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ValidationErrorsList, {
|
|
507345
507597
|
errors: settingsErrors
|
|
507346
507598
|
}, undefined, false, undefined, this);
|
|
507347
507599
|
$3[3] = settingsErrors;
|
|
@@ -507351,7 +507603,7 @@ function InvalidSettingsDialog(t0) {
|
|
|
507351
507603
|
}
|
|
507352
507604
|
let t3;
|
|
507353
507605
|
if ($3[5] === Symbol.for("react.memo_cache_sentinel")) {
|
|
507354
|
-
t3 = /* @__PURE__ */
|
|
507606
|
+
t3 = /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
|
|
507355
507607
|
dimColor: true,
|
|
507356
507608
|
children: "Files with errors are skipped entirely, not just the invalid settings."
|
|
507357
507609
|
}, undefined, false, undefined, this);
|
|
@@ -507374,7 +507626,7 @@ function InvalidSettingsDialog(t0) {
|
|
|
507374
507626
|
}
|
|
507375
507627
|
let t5;
|
|
507376
507628
|
if ($3[7] !== handleSelect) {
|
|
507377
|
-
t5 = /* @__PURE__ */
|
|
507629
|
+
t5 = /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(Select, {
|
|
507378
507630
|
options: t4,
|
|
507379
507631
|
onChange: handleSelect
|
|
507380
507632
|
}, undefined, false, undefined, this);
|
|
@@ -507385,7 +507637,7 @@ function InvalidSettingsDialog(t0) {
|
|
|
507385
507637
|
}
|
|
507386
507638
|
let t6;
|
|
507387
507639
|
if ($3[9] !== onExit2 || $3[10] !== t2 || $3[11] !== t5) {
|
|
507388
|
-
t6 = /* @__PURE__ */
|
|
507640
|
+
t6 = /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(Dialog, {
|
|
507389
507641
|
title: "Settings Error",
|
|
507390
507642
|
onCancel: onExit2,
|
|
507391
507643
|
color: "warning",
|
|
@@ -507404,13 +507656,13 @@ function InvalidSettingsDialog(t0) {
|
|
|
507404
507656
|
}
|
|
507405
507657
|
return t6;
|
|
507406
507658
|
}
|
|
507407
|
-
var
|
|
507659
|
+
var jsx_dev_runtime483;
|
|
507408
507660
|
var init_InvalidSettingsDialog = __esm(() => {
|
|
507409
507661
|
init_ink2();
|
|
507410
507662
|
init_CustomSelect();
|
|
507411
507663
|
init_Dialog();
|
|
507412
507664
|
init_ValidationErrorsList();
|
|
507413
|
-
|
|
507665
|
+
jsx_dev_runtime483 = __toESM(require_jsx_dev_runtime(), 1);
|
|
507414
507666
|
});
|
|
507415
507667
|
|
|
507416
507668
|
// src/hooks/useTeleportResume.tsx
|
|
@@ -507567,26 +507819,26 @@ function ResumeTask({
|
|
|
507567
507819
|
loadSessions();
|
|
507568
507820
|
}, [setHasCompletedTeleportErrorFlow, loadSessions]);
|
|
507569
507821
|
if (!hasCompletedTeleportErrorFlow) {
|
|
507570
|
-
return /* @__PURE__ */
|
|
507822
|
+
return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(TeleportError, {
|
|
507571
507823
|
onComplete: handleErrorComplete
|
|
507572
507824
|
}, undefined, false, undefined, this);
|
|
507573
507825
|
}
|
|
507574
507826
|
if (loading) {
|
|
507575
|
-
return /* @__PURE__ */
|
|
507827
|
+
return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507576
507828
|
flexDirection: "column",
|
|
507577
507829
|
padding: 1,
|
|
507578
507830
|
children: [
|
|
507579
|
-
/* @__PURE__ */
|
|
507831
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507580
507832
|
flexDirection: "row",
|
|
507581
507833
|
children: [
|
|
507582
|
-
/* @__PURE__ */
|
|
507583
|
-
/* @__PURE__ */
|
|
507834
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(Spinner, {}, undefined, false, undefined, this),
|
|
507835
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507584
507836
|
bold: true,
|
|
507585
507837
|
children: "Loading localclawd sessions…"
|
|
507586
507838
|
}, undefined, false, undefined, this)
|
|
507587
507839
|
]
|
|
507588
507840
|
}, undefined, true, undefined, this),
|
|
507589
|
-
/* @__PURE__ */
|
|
507841
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507590
507842
|
dimColor: true,
|
|
507591
507843
|
children: retrying ? "Retrying…" : "Fetching your localclawd sessions…"
|
|
507592
507844
|
}, undefined, false, undefined, this)
|
|
@@ -507594,27 +507846,27 @@ function ResumeTask({
|
|
|
507594
507846
|
}, undefined, true, undefined, this);
|
|
507595
507847
|
}
|
|
507596
507848
|
if (loadErrorType) {
|
|
507597
|
-
return /* @__PURE__ */
|
|
507849
|
+
return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507598
507850
|
flexDirection: "column",
|
|
507599
507851
|
padding: 1,
|
|
507600
507852
|
children: [
|
|
507601
|
-
/* @__PURE__ */
|
|
507853
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507602
507854
|
bold: true,
|
|
507603
507855
|
color: "error",
|
|
507604
507856
|
children: "Error loading localclawd sessions"
|
|
507605
507857
|
}, undefined, false, undefined, this),
|
|
507606
507858
|
renderErrorSpecificGuidance(loadErrorType),
|
|
507607
|
-
/* @__PURE__ */
|
|
507859
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507608
507860
|
dimColor: true,
|
|
507609
507861
|
children: [
|
|
507610
507862
|
"Press ",
|
|
507611
|
-
/* @__PURE__ */
|
|
507863
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507612
507864
|
bold: true,
|
|
507613
507865
|
children: "Ctrl+R"
|
|
507614
507866
|
}, undefined, false, undefined, this),
|
|
507615
507867
|
" to retry · Press",
|
|
507616
507868
|
" ",
|
|
507617
|
-
/* @__PURE__ */
|
|
507869
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507618
507870
|
bold: true,
|
|
507619
507871
|
children: escKey
|
|
507620
507872
|
}, undefined, false, undefined, this),
|
|
@@ -507625,15 +507877,15 @@ function ResumeTask({
|
|
|
507625
507877
|
}, undefined, true, undefined, this);
|
|
507626
507878
|
}
|
|
507627
507879
|
if (sessions.length === 0) {
|
|
507628
|
-
return /* @__PURE__ */
|
|
507880
|
+
return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507629
507881
|
flexDirection: "column",
|
|
507630
507882
|
padding: 1,
|
|
507631
507883
|
children: [
|
|
507632
|
-
/* @__PURE__ */
|
|
507884
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507633
507885
|
bold: true,
|
|
507634
507886
|
children: [
|
|
507635
507887
|
"No localclawd sessions found",
|
|
507636
|
-
currentRepo && /* @__PURE__ */
|
|
507888
|
+
currentRepo && /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507637
507889
|
children: [
|
|
507638
507890
|
" for ",
|
|
507639
507891
|
currentRepo
|
|
@@ -507641,13 +507893,13 @@ function ResumeTask({
|
|
|
507641
507893
|
}, undefined, true, undefined, this)
|
|
507642
507894
|
]
|
|
507643
507895
|
}, undefined, true, undefined, this),
|
|
507644
|
-
/* @__PURE__ */
|
|
507896
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507645
507897
|
marginTop: 1,
|
|
507646
|
-
children: /* @__PURE__ */
|
|
507898
|
+
children: /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507647
507899
|
dimColor: true,
|
|
507648
507900
|
children: [
|
|
507649
507901
|
"Press ",
|
|
507650
|
-
/* @__PURE__ */
|
|
507902
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507651
507903
|
bold: true,
|
|
507652
507904
|
children: escKey
|
|
507653
507905
|
}, undefined, false, undefined, this),
|
|
@@ -507678,16 +507930,16 @@ function ResumeTask({
|
|
|
507678
507930
|
const maxVisibleOptions = Math.max(1, isEmbedded ? Math.min(sessions.length, 5, rows - 6 - layoutOverhead) : Math.min(sessions.length, rows - 1 - layoutOverhead));
|
|
507679
507931
|
const maxHeight = maxVisibleOptions + layoutOverhead;
|
|
507680
507932
|
const showScrollPosition = sessions.length > maxVisibleOptions;
|
|
507681
|
-
return /* @__PURE__ */
|
|
507933
|
+
return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507682
507934
|
flexDirection: "column",
|
|
507683
507935
|
padding: 1,
|
|
507684
507936
|
height: maxHeight,
|
|
507685
507937
|
children: [
|
|
507686
|
-
/* @__PURE__ */
|
|
507938
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507687
507939
|
bold: true,
|
|
507688
507940
|
children: [
|
|
507689
507941
|
"Select a session to resume",
|
|
507690
|
-
showScrollPosition && /* @__PURE__ */
|
|
507942
|
+
showScrollPosition && /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507691
507943
|
dimColor: true,
|
|
507692
507944
|
children: [
|
|
507693
507945
|
" ",
|
|
@@ -507698,7 +507950,7 @@ function ResumeTask({
|
|
|
507698
507950
|
")"
|
|
507699
507951
|
]
|
|
507700
507952
|
}, undefined, true, undefined, this),
|
|
507701
|
-
currentRepo && /* @__PURE__ */
|
|
507953
|
+
currentRepo && /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507702
507954
|
dimColor: true,
|
|
507703
507955
|
children: [
|
|
507704
507956
|
" (",
|
|
@@ -507709,14 +507961,14 @@ function ResumeTask({
|
|
|
507709
507961
|
":"
|
|
507710
507962
|
]
|
|
507711
507963
|
}, undefined, true, undefined, this),
|
|
507712
|
-
/* @__PURE__ */
|
|
507964
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507713
507965
|
flexDirection: "column",
|
|
507714
507966
|
marginTop: 1,
|
|
507715
507967
|
flexGrow: 1,
|
|
507716
507968
|
children: [
|
|
507717
|
-
/* @__PURE__ */
|
|
507969
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507718
507970
|
marginLeft: 2,
|
|
507719
|
-
children: /* @__PURE__ */
|
|
507971
|
+
children: /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507720
507972
|
bold: true,
|
|
507721
507973
|
children: [
|
|
507722
507974
|
UPDATED_STRING.padEnd(maxTimeStringLength, " "),
|
|
@@ -507725,7 +507977,7 @@ function ResumeTask({
|
|
|
507725
507977
|
]
|
|
507726
507978
|
}, undefined, true, undefined, this)
|
|
507727
507979
|
}, undefined, false, undefined, this),
|
|
507728
|
-
/* @__PURE__ */
|
|
507980
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(Select, {
|
|
507729
507981
|
visibleOptionCount: maxVisibleOptions,
|
|
507730
507982
|
options,
|
|
507731
507983
|
onChange: (value) => {
|
|
@@ -507743,21 +507995,21 @@ function ResumeTask({
|
|
|
507743
507995
|
}, undefined, false, undefined, this)
|
|
507744
507996
|
]
|
|
507745
507997
|
}, undefined, true, undefined, this),
|
|
507746
|
-
/* @__PURE__ */
|
|
507998
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507747
507999
|
flexDirection: "row",
|
|
507748
|
-
children: /* @__PURE__ */
|
|
508000
|
+
children: /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507749
508001
|
dimColor: true,
|
|
507750
|
-
children: /* @__PURE__ */
|
|
508002
|
+
children: /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(Byline, {
|
|
507751
508003
|
children: [
|
|
507752
|
-
/* @__PURE__ */
|
|
508004
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(KeyboardShortcutHint, {
|
|
507753
508005
|
shortcut: "↑/↓",
|
|
507754
508006
|
action: "select"
|
|
507755
508007
|
}, undefined, false, undefined, this),
|
|
507756
|
-
/* @__PURE__ */
|
|
508008
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(KeyboardShortcutHint, {
|
|
507757
508009
|
shortcut: "Enter",
|
|
507758
508010
|
action: "confirm"
|
|
507759
508011
|
}, undefined, false, undefined, this),
|
|
507760
|
-
/* @__PURE__ */
|
|
508012
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ConfigurableShortcutHint, {
|
|
507761
508013
|
action: "confirm:no",
|
|
507762
508014
|
context: "Confirmation",
|
|
507763
508015
|
fallback: "Esc",
|
|
@@ -507786,28 +508038,28 @@ function determineErrorType(errorMessage4) {
|
|
|
507786
508038
|
function renderErrorSpecificGuidance(errorType) {
|
|
507787
508039
|
switch (errorType) {
|
|
507788
508040
|
case "network":
|
|
507789
|
-
return /* @__PURE__ */
|
|
508041
|
+
return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507790
508042
|
marginY: 1,
|
|
507791
508043
|
flexDirection: "column",
|
|
507792
|
-
children: /* @__PURE__ */
|
|
508044
|
+
children: /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507793
508045
|
dimColor: true,
|
|
507794
508046
|
children: "Check your internet connection"
|
|
507795
508047
|
}, undefined, false, undefined, this)
|
|
507796
508048
|
}, undefined, false, undefined, this);
|
|
507797
508049
|
case "auth":
|
|
507798
|
-
return /* @__PURE__ */
|
|
508050
|
+
return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507799
508051
|
marginY: 1,
|
|
507800
508052
|
flexDirection: "column",
|
|
507801
508053
|
children: [
|
|
507802
|
-
/* @__PURE__ */
|
|
508054
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507803
508055
|
dimColor: true,
|
|
507804
508056
|
children: "Remote web sessions are disabled in this local-first build"
|
|
507805
508057
|
}, undefined, false, undefined, this),
|
|
507806
|
-
/* @__PURE__ */
|
|
508058
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507807
508059
|
dimColor: true,
|
|
507808
508060
|
children: [
|
|
507809
508061
|
"Use ",
|
|
507810
|
-
/* @__PURE__ */
|
|
508062
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507811
508063
|
bold: true,
|
|
507812
508064
|
children: "/provider"
|
|
507813
508065
|
}, undefined, false, undefined, this),
|
|
@@ -507817,26 +508069,26 @@ function renderErrorSpecificGuidance(errorType) {
|
|
|
507817
508069
|
]
|
|
507818
508070
|
}, undefined, true, undefined, this);
|
|
507819
508071
|
case "api":
|
|
507820
|
-
return /* @__PURE__ */
|
|
508072
|
+
return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507821
508073
|
marginY: 1,
|
|
507822
508074
|
flexDirection: "column",
|
|
507823
|
-
children: /* @__PURE__ */
|
|
508075
|
+
children: /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507824
508076
|
dimColor: true,
|
|
507825
508077
|
children: "Sorry, Claude encountered an error"
|
|
507826
508078
|
}, undefined, false, undefined, this)
|
|
507827
508079
|
}, undefined, false, undefined, this);
|
|
507828
508080
|
case "other":
|
|
507829
|
-
return /* @__PURE__ */
|
|
508081
|
+
return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507830
508082
|
marginY: 1,
|
|
507831
508083
|
flexDirection: "row",
|
|
507832
|
-
children: /* @__PURE__ */
|
|
508084
|
+
children: /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507833
508085
|
dimColor: true,
|
|
507834
508086
|
children: "Sorry, Claude Code encountered an error"
|
|
507835
508087
|
}, undefined, false, undefined, this)
|
|
507836
508088
|
}, undefined, false, undefined, this);
|
|
507837
508089
|
}
|
|
507838
508090
|
}
|
|
507839
|
-
var import_react327,
|
|
508091
|
+
var import_react327, jsx_dev_runtime484, UPDATED_STRING = "Updated", SPACE_BETWEEN_TABLE_COLUMNS = " ";
|
|
507840
508092
|
var init_ResumeTask = __esm(() => {
|
|
507841
508093
|
init_useTerminalSize();
|
|
507842
508094
|
init_api();
|
|
@@ -507853,7 +508105,7 @@ var init_ResumeTask = __esm(() => {
|
|
|
507853
508105
|
init_Spinner2();
|
|
507854
508106
|
init_TeleportError();
|
|
507855
508107
|
import_react327 = __toESM(require_react(), 1);
|
|
507856
|
-
|
|
508108
|
+
jsx_dev_runtime484 = __toESM(require_jsx_dev_runtime(), 1);
|
|
507857
508109
|
});
|
|
507858
508110
|
|
|
507859
508111
|
// src/components/TeleportResumeWrapper.tsx
|
|
@@ -507945,11 +508197,11 @@ function TeleportResumeWrapper(t0) {
|
|
|
507945
508197
|
if (isResuming && selectedSession) {
|
|
507946
508198
|
let t82;
|
|
507947
508199
|
if ($3[12] === Symbol.for("react.memo_cache_sentinel")) {
|
|
507948
|
-
t82 = /* @__PURE__ */
|
|
508200
|
+
t82 = /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedBox_default, {
|
|
507949
508201
|
flexDirection: "row",
|
|
507950
508202
|
children: [
|
|
507951
|
-
/* @__PURE__ */
|
|
507952
|
-
/* @__PURE__ */
|
|
508203
|
+
/* @__PURE__ */ jsx_dev_runtime485.jsxDEV(Spinner, {}, undefined, false, undefined, this),
|
|
508204
|
+
/* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
|
|
507953
508205
|
bold: true,
|
|
507954
508206
|
children: "Resuming session…"
|
|
507955
508207
|
}, undefined, false, undefined, this)
|
|
@@ -507961,12 +508213,12 @@ function TeleportResumeWrapper(t0) {
|
|
|
507961
508213
|
}
|
|
507962
508214
|
let t9;
|
|
507963
508215
|
if ($3[13] !== selectedSession.title) {
|
|
507964
|
-
t9 = /* @__PURE__ */
|
|
508216
|
+
t9 = /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedBox_default, {
|
|
507965
508217
|
flexDirection: "column",
|
|
507966
508218
|
padding: 1,
|
|
507967
508219
|
children: [
|
|
507968
508220
|
t82,
|
|
507969
|
-
/* @__PURE__ */
|
|
508221
|
+
/* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
|
|
507970
508222
|
dimColor: true,
|
|
507971
508223
|
children: [
|
|
507972
508224
|
'Loading "',
|
|
@@ -507986,7 +508238,7 @@ function TeleportResumeWrapper(t0) {
|
|
|
507986
508238
|
if (error5 && !onError) {
|
|
507987
508239
|
let t82;
|
|
507988
508240
|
if ($3[15] === Symbol.for("react.memo_cache_sentinel")) {
|
|
507989
|
-
t82 = /* @__PURE__ */
|
|
508241
|
+
t82 = /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
|
|
507990
508242
|
bold: true,
|
|
507991
508243
|
color: "error",
|
|
507992
508244
|
children: "Failed to resume session"
|
|
@@ -507997,7 +508249,7 @@ function TeleportResumeWrapper(t0) {
|
|
|
507997
508249
|
}
|
|
507998
508250
|
let t9;
|
|
507999
508251
|
if ($3[16] !== error5.message) {
|
|
508000
|
-
t9 = /* @__PURE__ */
|
|
508252
|
+
t9 = /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
|
|
508001
508253
|
dimColor: true,
|
|
508002
508254
|
children: error5.message
|
|
508003
508255
|
}, undefined, false, undefined, this);
|
|
@@ -508008,13 +508260,13 @@ function TeleportResumeWrapper(t0) {
|
|
|
508008
508260
|
}
|
|
508009
508261
|
let t10;
|
|
508010
508262
|
if ($3[18] === Symbol.for("react.memo_cache_sentinel")) {
|
|
508011
|
-
t10 = /* @__PURE__ */
|
|
508263
|
+
t10 = /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedBox_default, {
|
|
508012
508264
|
marginTop: 1,
|
|
508013
|
-
children: /* @__PURE__ */
|
|
508265
|
+
children: /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
|
|
508014
508266
|
dimColor: true,
|
|
508015
508267
|
children: [
|
|
508016
508268
|
"Press ",
|
|
508017
|
-
/* @__PURE__ */
|
|
508269
|
+
/* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
|
|
508018
508270
|
bold: true,
|
|
508019
508271
|
children: "Esc"
|
|
508020
508272
|
}, undefined, false, undefined, this),
|
|
@@ -508028,7 +508280,7 @@ function TeleportResumeWrapper(t0) {
|
|
|
508028
508280
|
}
|
|
508029
508281
|
let t11;
|
|
508030
508282
|
if ($3[19] !== t9) {
|
|
508031
|
-
t11 = /* @__PURE__ */
|
|
508283
|
+
t11 = /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedBox_default, {
|
|
508032
508284
|
flexDirection: "column",
|
|
508033
508285
|
padding: 1,
|
|
508034
508286
|
children: [
|
|
@@ -508046,7 +508298,7 @@ function TeleportResumeWrapper(t0) {
|
|
|
508046
508298
|
}
|
|
508047
508299
|
let t8;
|
|
508048
508300
|
if ($3[21] !== handleCancel || $3[22] !== handleSelect || $3[23] !== isEmbedded) {
|
|
508049
|
-
t8 = /* @__PURE__ */
|
|
508301
|
+
t8 = /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ResumeTask, {
|
|
508050
508302
|
onSelect: handleSelect,
|
|
508051
508303
|
onCancel: handleCancel,
|
|
508052
508304
|
isEmbedded
|
|
@@ -508060,7 +508312,7 @@ function TeleportResumeWrapper(t0) {
|
|
|
508060
508312
|
}
|
|
508061
508313
|
return t8;
|
|
508062
508314
|
}
|
|
508063
|
-
var import_react328,
|
|
508315
|
+
var import_react328, jsx_dev_runtime485;
|
|
508064
508316
|
var init_TeleportResumeWrapper = __esm(() => {
|
|
508065
508317
|
init_useTeleportResume();
|
|
508066
508318
|
init_ink2();
|
|
@@ -508068,7 +508320,7 @@ var init_TeleportResumeWrapper = __esm(() => {
|
|
|
508068
508320
|
init_ResumeTask();
|
|
508069
508321
|
init_Spinner2();
|
|
508070
508322
|
import_react328 = __toESM(require_react(), 1);
|
|
508071
|
-
|
|
508323
|
+
jsx_dev_runtime485 = __toESM(require_jsx_dev_runtime(), 1);
|
|
508072
508324
|
});
|
|
508073
508325
|
|
|
508074
508326
|
// src/components/TeleportRepoMismatchDialog.tsx
|
|
@@ -508137,20 +508389,20 @@ function TeleportRepoMismatchDialog(t0) {
|
|
|
508137
508389
|
const options = t2;
|
|
508138
508390
|
let t3;
|
|
508139
508391
|
if ($3[8] !== availablePaths.length || $3[9] !== errorMessage4 || $3[10] !== handleChange4 || $3[11] !== options || $3[12] !== targetRepo || $3[13] !== validating) {
|
|
508140
|
-
t3 = availablePaths.length > 0 ? /* @__PURE__ */
|
|
508392
|
+
t3 = availablePaths.length > 0 ? /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(jsx_dev_runtime486.Fragment, {
|
|
508141
508393
|
children: [
|
|
508142
|
-
/* @__PURE__ */
|
|
508394
|
+
/* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
|
|
508143
508395
|
flexDirection: "column",
|
|
508144
508396
|
gap: 1,
|
|
508145
508397
|
children: [
|
|
508146
|
-
errorMessage4 && /* @__PURE__ */
|
|
508398
|
+
errorMessage4 && /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
|
|
508147
508399
|
color: "error",
|
|
508148
508400
|
children: errorMessage4
|
|
508149
508401
|
}, undefined, false, undefined, this),
|
|
508150
|
-
/* @__PURE__ */
|
|
508402
|
+
/* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
|
|
508151
508403
|
children: [
|
|
508152
508404
|
"Open Claude Code in ",
|
|
508153
|
-
/* @__PURE__ */
|
|
508405
|
+
/* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
|
|
508154
508406
|
bold: true,
|
|
508155
508407
|
children: targetRepo
|
|
508156
508408
|
}, undefined, false, undefined, this),
|
|
@@ -508159,27 +508411,27 @@ function TeleportRepoMismatchDialog(t0) {
|
|
|
508159
508411
|
}, undefined, true, undefined, this)
|
|
508160
508412
|
]
|
|
508161
508413
|
}, undefined, true, undefined, this),
|
|
508162
|
-
validating ? /* @__PURE__ */
|
|
508414
|
+
validating ? /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
|
|
508163
508415
|
children: [
|
|
508164
|
-
/* @__PURE__ */
|
|
508165
|
-
/* @__PURE__ */
|
|
508416
|
+
/* @__PURE__ */ jsx_dev_runtime486.jsxDEV(Spinner, {}, undefined, false, undefined, this),
|
|
508417
|
+
/* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
|
|
508166
508418
|
children: " Validating repository…"
|
|
508167
508419
|
}, undefined, false, undefined, this)
|
|
508168
508420
|
]
|
|
508169
|
-
}, undefined, true, undefined, this) : /* @__PURE__ */
|
|
508421
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(Select, {
|
|
508170
508422
|
options,
|
|
508171
508423
|
onChange: (value_0) => void handleChange4(value_0)
|
|
508172
508424
|
}, undefined, false, undefined, this)
|
|
508173
508425
|
]
|
|
508174
|
-
}, undefined, true, undefined, this) : /* @__PURE__ */
|
|
508426
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
|
|
508175
508427
|
flexDirection: "column",
|
|
508176
508428
|
gap: 1,
|
|
508177
508429
|
children: [
|
|
508178
|
-
errorMessage4 && /* @__PURE__ */
|
|
508430
|
+
errorMessage4 && /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
|
|
508179
508431
|
color: "error",
|
|
508180
508432
|
children: errorMessage4
|
|
508181
508433
|
}, undefined, false, undefined, this),
|
|
508182
|
-
/* @__PURE__ */
|
|
508434
|
+
/* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
|
|
508183
508435
|
dimColor: true,
|
|
508184
508436
|
children: [
|
|
508185
508437
|
"Run claude --teleport from a checkout of ",
|
|
@@ -508200,7 +508452,7 @@ function TeleportRepoMismatchDialog(t0) {
|
|
|
508200
508452
|
}
|
|
508201
508453
|
let t4;
|
|
508202
508454
|
if ($3[15] !== onCancel || $3[16] !== t3) {
|
|
508203
|
-
t4 = /* @__PURE__ */
|
|
508455
|
+
t4 = /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(Dialog, {
|
|
508204
508456
|
title: "Teleport to Repo",
|
|
508205
508457
|
onCancel,
|
|
508206
508458
|
color: "background",
|
|
@@ -508216,10 +508468,10 @@ function TeleportRepoMismatchDialog(t0) {
|
|
|
508216
508468
|
}
|
|
508217
508469
|
function _temp306(path22) {
|
|
508218
508470
|
return {
|
|
508219
|
-
label: /* @__PURE__ */
|
|
508471
|
+
label: /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
|
|
508220
508472
|
children: [
|
|
508221
508473
|
"Use ",
|
|
508222
|
-
/* @__PURE__ */
|
|
508474
|
+
/* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
|
|
508223
508475
|
bold: true,
|
|
508224
508476
|
children: getDisplayPath(path22)
|
|
508225
508477
|
}, undefined, false, undefined, this)
|
|
@@ -508228,7 +508480,7 @@ function _temp306(path22) {
|
|
|
508228
508480
|
value: path22
|
|
508229
508481
|
};
|
|
508230
508482
|
}
|
|
508231
|
-
var import_react329,
|
|
508483
|
+
var import_react329, jsx_dev_runtime486;
|
|
508232
508484
|
var init_TeleportRepoMismatchDialog = __esm(() => {
|
|
508233
508485
|
init_ink2();
|
|
508234
508486
|
init_file();
|
|
@@ -508237,7 +508489,7 @@ var init_TeleportRepoMismatchDialog = __esm(() => {
|
|
|
508237
508489
|
init_Dialog();
|
|
508238
508490
|
init_Spinner2();
|
|
508239
508491
|
import_react329 = __toESM(require_react(), 1);
|
|
508240
|
-
|
|
508492
|
+
jsx_dev_runtime486 = __toESM(require_jsx_dev_runtime(), 1);
|
|
508241
508493
|
});
|
|
508242
508494
|
|
|
508243
508495
|
// src/screens/ResumeConversation.tsx
|
|
@@ -508435,12 +508687,12 @@ function ResumeConversation({
|
|
|
508435
508687
|
}
|
|
508436
508688
|
}
|
|
508437
508689
|
if (crossProjectCommand) {
|
|
508438
|
-
return /* @__PURE__ */
|
|
508690
|
+
return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(CrossProjectMessage, {
|
|
508439
508691
|
command: crossProjectCommand
|
|
508440
508692
|
}, undefined, false, undefined, this);
|
|
508441
508693
|
}
|
|
508442
508694
|
if (resumeData) {
|
|
508443
|
-
return /* @__PURE__ */
|
|
508695
|
+
return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(REPL, {
|
|
508444
508696
|
debug: debug3,
|
|
508445
508697
|
commands,
|
|
508446
508698
|
initialTools,
|
|
@@ -508463,29 +508715,29 @@ function ResumeConversation({
|
|
|
508463
508715
|
}, undefined, false, undefined, this);
|
|
508464
508716
|
}
|
|
508465
508717
|
if (loading) {
|
|
508466
|
-
return /* @__PURE__ */
|
|
508718
|
+
return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
|
|
508467
508719
|
children: [
|
|
508468
|
-
/* @__PURE__ */
|
|
508469
|
-
/* @__PURE__ */
|
|
508720
|
+
/* @__PURE__ */ jsx_dev_runtime487.jsxDEV(Spinner, {}, undefined, false, undefined, this),
|
|
508721
|
+
/* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
|
|
508470
508722
|
children: " Loading conversations…"
|
|
508471
508723
|
}, undefined, false, undefined, this)
|
|
508472
508724
|
]
|
|
508473
508725
|
}, undefined, true, undefined, this);
|
|
508474
508726
|
}
|
|
508475
508727
|
if (resuming) {
|
|
508476
|
-
return /* @__PURE__ */
|
|
508728
|
+
return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
|
|
508477
508729
|
children: [
|
|
508478
|
-
/* @__PURE__ */
|
|
508479
|
-
/* @__PURE__ */
|
|
508730
|
+
/* @__PURE__ */ jsx_dev_runtime487.jsxDEV(Spinner, {}, undefined, false, undefined, this),
|
|
508731
|
+
/* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
|
|
508480
508732
|
children: " Resuming conversation…"
|
|
508481
508733
|
}, undefined, false, undefined, this)
|
|
508482
508734
|
]
|
|
508483
508735
|
}, undefined, true, undefined, this);
|
|
508484
508736
|
}
|
|
508485
508737
|
if (filteredLogs.length === 0) {
|
|
508486
|
-
return /* @__PURE__ */
|
|
508738
|
+
return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(NoConversationsMessage, {}, undefined, false, undefined, this);
|
|
508487
508739
|
}
|
|
508488
|
-
return /* @__PURE__ */
|
|
508740
|
+
return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(LogSelector, {
|
|
508489
508741
|
logs: filteredLogs,
|
|
508490
508742
|
maxHeight: rows,
|
|
508491
508743
|
onCancel,
|
|
@@ -508512,13 +508764,13 @@ function NoConversationsMessage() {
|
|
|
508512
508764
|
useKeybinding("app:interrupt", _temp307, t0);
|
|
508513
508765
|
let t1;
|
|
508514
508766
|
if ($3[1] === Symbol.for("react.memo_cache_sentinel")) {
|
|
508515
|
-
t1 = /* @__PURE__ */
|
|
508767
|
+
t1 = /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
|
|
508516
508768
|
flexDirection: "column",
|
|
508517
508769
|
children: [
|
|
508518
|
-
/* @__PURE__ */
|
|
508770
|
+
/* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
|
|
508519
508771
|
children: "No conversations found to resume."
|
|
508520
508772
|
}, undefined, false, undefined, this),
|
|
508521
|
-
/* @__PURE__ */
|
|
508773
|
+
/* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
|
|
508522
508774
|
dimColor: true,
|
|
508523
508775
|
children: "Press Ctrl+C to exit and start a new conversation."
|
|
508524
508776
|
}, undefined, false, undefined, this)
|
|
@@ -508548,7 +508800,7 @@ function CrossProjectMessage(t0) {
|
|
|
508548
508800
|
import_react330.default.useEffect(_temp357, t1);
|
|
508549
508801
|
let t2;
|
|
508550
508802
|
if ($3[1] === Symbol.for("react.memo_cache_sentinel")) {
|
|
508551
|
-
t2 = /* @__PURE__ */
|
|
508803
|
+
t2 = /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
|
|
508552
508804
|
children: "This conversation is from a different directory."
|
|
508553
508805
|
}, undefined, false, undefined, this);
|
|
508554
508806
|
$3[1] = t2;
|
|
@@ -508557,7 +508809,7 @@ function CrossProjectMessage(t0) {
|
|
|
508557
508809
|
}
|
|
508558
508810
|
let t3;
|
|
508559
508811
|
if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
508560
|
-
t3 = /* @__PURE__ */
|
|
508812
|
+
t3 = /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
|
|
508561
508813
|
children: "To resume, run:"
|
|
508562
508814
|
}, undefined, false, undefined, this);
|
|
508563
508815
|
$3[2] = t3;
|
|
@@ -508566,11 +508818,11 @@ function CrossProjectMessage(t0) {
|
|
|
508566
508818
|
}
|
|
508567
508819
|
let t4;
|
|
508568
508820
|
if ($3[3] !== command8) {
|
|
508569
|
-
t4 = /* @__PURE__ */
|
|
508821
|
+
t4 = /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
|
|
508570
508822
|
flexDirection: "column",
|
|
508571
508823
|
children: [
|
|
508572
508824
|
t3,
|
|
508573
|
-
/* @__PURE__ */
|
|
508825
|
+
/* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
|
|
508574
508826
|
children: [
|
|
508575
508827
|
" ",
|
|
508576
508828
|
command8
|
|
@@ -508585,7 +508837,7 @@ function CrossProjectMessage(t0) {
|
|
|
508585
508837
|
}
|
|
508586
508838
|
let t5;
|
|
508587
508839
|
if ($3[5] === Symbol.for("react.memo_cache_sentinel")) {
|
|
508588
|
-
t5 = /* @__PURE__ */
|
|
508840
|
+
t5 = /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
|
|
508589
508841
|
dimColor: true,
|
|
508590
508842
|
children: "(Command copied to clipboard)"
|
|
508591
508843
|
}, undefined, false, undefined, this);
|
|
@@ -508595,7 +508847,7 @@ function CrossProjectMessage(t0) {
|
|
|
508595
508847
|
}
|
|
508596
508848
|
let t6;
|
|
508597
508849
|
if ($3[6] !== t4) {
|
|
508598
|
-
t6 = /* @__PURE__ */
|
|
508850
|
+
t6 = /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
|
|
508599
508851
|
flexDirection: "column",
|
|
508600
508852
|
gap: 1,
|
|
508601
508853
|
children: [
|
|
@@ -508618,7 +508870,7 @@ function _temp357() {
|
|
|
508618
508870
|
function _temp2103() {
|
|
508619
508871
|
process.exit(0);
|
|
508620
508872
|
}
|
|
508621
|
-
var import_react330,
|
|
508873
|
+
var import_react330, jsx_dev_runtime487;
|
|
508622
508874
|
var init_ResumeConversation = __esm(() => {
|
|
508623
508875
|
init_useTerminalSize();
|
|
508624
508876
|
init_state();
|
|
@@ -508641,7 +508893,7 @@ var init_ResumeConversation = __esm(() => {
|
|
|
508641
508893
|
init_sessionStorage();
|
|
508642
508894
|
init_REPL();
|
|
508643
508895
|
import_react330 = __toESM(require_react(), 1);
|
|
508644
|
-
|
|
508896
|
+
jsx_dev_runtime487 = __toESM(require_jsx_dev_runtime(), 1);
|
|
508645
508897
|
});
|
|
508646
508898
|
|
|
508647
508899
|
// src/dialogLaunchers.tsx
|
|
@@ -508649,7 +508901,7 @@ async function launchInvalidSettingsDialog(root2, props) {
|
|
|
508649
508901
|
const {
|
|
508650
508902
|
InvalidSettingsDialog: InvalidSettingsDialog2
|
|
508651
508903
|
} = await Promise.resolve().then(() => (init_InvalidSettingsDialog(), exports_InvalidSettingsDialog));
|
|
508652
|
-
return showSetupDialog(root2, (done) => /* @__PURE__ */
|
|
508904
|
+
return showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(InvalidSettingsDialog2, {
|
|
508653
508905
|
settingsErrors: props.settingsErrors,
|
|
508654
508906
|
onContinue: done,
|
|
508655
508907
|
onExit: props.onExit
|
|
@@ -508659,7 +508911,7 @@ async function launchTeleportResumeWrapper(root2) {
|
|
|
508659
508911
|
const {
|
|
508660
508912
|
TeleportResumeWrapper: TeleportResumeWrapper2
|
|
508661
508913
|
} = await Promise.resolve().then(() => (init_TeleportResumeWrapper(), exports_TeleportResumeWrapper));
|
|
508662
|
-
return showSetupDialog(root2, (done) => /* @__PURE__ */
|
|
508914
|
+
return showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(TeleportResumeWrapper2, {
|
|
508663
508915
|
onComplete: done,
|
|
508664
508916
|
onCancel: () => done(null),
|
|
508665
508917
|
source: "cliArg"
|
|
@@ -508669,7 +508921,7 @@ async function launchTeleportRepoMismatchDialog(root2, props) {
|
|
|
508669
508921
|
const {
|
|
508670
508922
|
TeleportRepoMismatchDialog: TeleportRepoMismatchDialog2
|
|
508671
508923
|
} = await Promise.resolve().then(() => (init_TeleportRepoMismatchDialog(), exports_TeleportRepoMismatchDialog));
|
|
508672
|
-
return showSetupDialog(root2, (done) => /* @__PURE__ */
|
|
508924
|
+
return showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(TeleportRepoMismatchDialog2, {
|
|
508673
508925
|
targetRepo: props.targetRepo,
|
|
508674
508926
|
initialPaths: props.initialPaths,
|
|
508675
508927
|
onSelectPath: done,
|
|
@@ -508682,23 +508934,23 @@ async function launchResumeChooser(root2, appProps, worktreePathsPromise, resume
|
|
|
508682
508934
|
}, {
|
|
508683
508935
|
App: App3
|
|
508684
508936
|
}] = await Promise.all([worktreePathsPromise, Promise.resolve().then(() => (init_ResumeConversation(), exports_ResumeConversation)), Promise.resolve().then(() => (init_App2(), exports_App))]);
|
|
508685
|
-
await renderAndRun(root2, /* @__PURE__ */
|
|
508937
|
+
await renderAndRun(root2, /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(App3, {
|
|
508686
508938
|
getFpsMetrics: appProps.getFpsMetrics,
|
|
508687
508939
|
stats: appProps.stats,
|
|
508688
508940
|
initialState: appProps.initialState,
|
|
508689
|
-
children: /* @__PURE__ */
|
|
508690
|
-
children: /* @__PURE__ */
|
|
508941
|
+
children: /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(KeybindingSetup, {
|
|
508942
|
+
children: /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ResumeConversation2, {
|
|
508691
508943
|
...resumeProps,
|
|
508692
508944
|
worktreePaths
|
|
508693
508945
|
}, undefined, false, undefined, this)
|
|
508694
508946
|
}, undefined, false, undefined, this)
|
|
508695
508947
|
}, undefined, false, undefined, this));
|
|
508696
508948
|
}
|
|
508697
|
-
var
|
|
508949
|
+
var jsx_dev_runtime488;
|
|
508698
508950
|
var init_dialogLaunchers = __esm(() => {
|
|
508699
508951
|
init_interactiveHelpers();
|
|
508700
508952
|
init_KeybindingProviderSetup();
|
|
508701
|
-
|
|
508953
|
+
jsx_dev_runtime488 = __toESM(require_jsx_dev_runtime(), 1);
|
|
508702
508954
|
});
|
|
508703
508955
|
|
|
508704
508956
|
// src/plugins/bundled/index.ts
|
|
@@ -511146,6 +511398,64 @@ function eagerParseCliFlag(flagName, argv = process.argv) {
|
|
|
511146
511398
|
return;
|
|
511147
511399
|
}
|
|
511148
511400
|
|
|
511401
|
+
// src/utils/startupLoading.ts
|
|
511402
|
+
function canRenderStartupLoadingIndicator() {
|
|
511403
|
+
return process.stderr.isTTY === true && !process.argv.includes("--debug-to-stderr");
|
|
511404
|
+
}
|
|
511405
|
+
function startStartupLoadingIndicator(initialMessage = "Starting localclawd") {
|
|
511406
|
+
if (!canRenderStartupLoadingIndicator()) {
|
|
511407
|
+
return {
|
|
511408
|
+
update() {},
|
|
511409
|
+
stop() {}
|
|
511410
|
+
};
|
|
511411
|
+
}
|
|
511412
|
+
let frameIndex = 0;
|
|
511413
|
+
let message = initialMessage;
|
|
511414
|
+
let stopped = false;
|
|
511415
|
+
const clear2 = () => {
|
|
511416
|
+
writeToStderr(`\r${CURSOR_LEFT}${ERASE_LINE}${SHOW_CURSOR}`);
|
|
511417
|
+
};
|
|
511418
|
+
const render3 = () => {
|
|
511419
|
+
const frame = source_default.blue(FRAMES[frameIndex % FRAMES.length]);
|
|
511420
|
+
const suffix = source_default.dim(" loading...");
|
|
511421
|
+
writeToStderr(`\r${HIDE_CURSOR}${CURSOR_LEFT}${ERASE_LINE}${frame} ${message}${suffix}`);
|
|
511422
|
+
frameIndex += 1;
|
|
511423
|
+
};
|
|
511424
|
+
const onExit2 = () => {
|
|
511425
|
+
if (!stopped) {
|
|
511426
|
+
clear2();
|
|
511427
|
+
}
|
|
511428
|
+
};
|
|
511429
|
+
render3();
|
|
511430
|
+
const interval = setInterval(render3, 80);
|
|
511431
|
+
process.on("exit", onExit2);
|
|
511432
|
+
return {
|
|
511433
|
+
update(nextMessage) {
|
|
511434
|
+
if (stopped) {
|
|
511435
|
+
return;
|
|
511436
|
+
}
|
|
511437
|
+
message = nextMessage;
|
|
511438
|
+
render3();
|
|
511439
|
+
},
|
|
511440
|
+
stop() {
|
|
511441
|
+
if (stopped) {
|
|
511442
|
+
return;
|
|
511443
|
+
}
|
|
511444
|
+
stopped = true;
|
|
511445
|
+
clearInterval(interval);
|
|
511446
|
+
process.off("exit", onExit2);
|
|
511447
|
+
clear2();
|
|
511448
|
+
}
|
|
511449
|
+
};
|
|
511450
|
+
}
|
|
511451
|
+
var FRAMES;
|
|
511452
|
+
var init_startupLoading = __esm(() => {
|
|
511453
|
+
init_source();
|
|
511454
|
+
init_dec();
|
|
511455
|
+
init_csi();
|
|
511456
|
+
FRAMES = ["|", "/", "-", "\\"];
|
|
511457
|
+
});
|
|
511458
|
+
|
|
511149
511459
|
// src/migrations/migrateAutoUpdatesToSettings.ts
|
|
511150
511460
|
function migrateAutoUpdatesToSettings() {
|
|
511151
511461
|
const globalConfig = getGlobalConfig();
|
|
@@ -511535,7 +511845,7 @@ function appendToLog(path22, message) {
|
|
|
511535
511845
|
cwd: getFsImplementation().cwd(),
|
|
511536
511846
|
userType: process.env.USER_TYPE,
|
|
511537
511847
|
sessionId: getSessionId(),
|
|
511538
|
-
version: "1.0.
|
|
511848
|
+
version: "1.0.6"
|
|
511539
511849
|
};
|
|
511540
511850
|
getLogWriter(path22).write(messageWithTimestamp);
|
|
511541
511851
|
}
|
|
@@ -515512,8 +515822,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
515512
515822
|
}
|
|
515513
515823
|
async function checkEnvLessBridgeMinVersion() {
|
|
515514
515824
|
const cfg = await getEnvLessBridgeConfig();
|
|
515515
|
-
if (cfg.min_version && lt("1.0.
|
|
515516
|
-
return `Your version of localclawd (${"1.0.
|
|
515825
|
+
if (cfg.min_version && lt("1.0.6", cfg.min_version)) {
|
|
515826
|
+
return `Your version of localclawd (${"1.0.6"}) is too old for Remote Control.
|
|
515517
515827
|
Version ${cfg.min_version} or higher is required. Run \`localclawd update\` to update.`;
|
|
515518
515828
|
}
|
|
515519
515829
|
return null;
|
|
@@ -515985,7 +516295,7 @@ async function initBridgeCore(params) {
|
|
|
515985
516295
|
const rawApi = createBridgeApiClient({
|
|
515986
516296
|
baseUrl,
|
|
515987
516297
|
getAccessToken,
|
|
515988
|
-
runnerVersion: "1.0.
|
|
516298
|
+
runnerVersion: "1.0.6",
|
|
515989
516299
|
onDebug: logForDebugging,
|
|
515990
516300
|
onAuth401,
|
|
515991
516301
|
getTrustedDeviceToken
|
|
@@ -520797,9 +521107,9 @@ function TeleportProgress(t0) {
|
|
|
520797
521107
|
const t2 = SPINNER_FRAMES3[frame];
|
|
520798
521108
|
let t3;
|
|
520799
521109
|
if ($3[2] !== t2) {
|
|
520800
|
-
t3 = /* @__PURE__ */
|
|
521110
|
+
t3 = /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedBox_default, {
|
|
520801
521111
|
marginBottom: 1,
|
|
520802
|
-
children: /* @__PURE__ */
|
|
521112
|
+
children: /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
|
|
520803
521113
|
bold: true,
|
|
520804
521114
|
color: "claude",
|
|
520805
521115
|
children: [
|
|
@@ -520815,9 +521125,9 @@ function TeleportProgress(t0) {
|
|
|
520815
521125
|
}
|
|
520816
521126
|
let t4;
|
|
520817
521127
|
if ($3[4] !== sessionId) {
|
|
520818
|
-
t4 = sessionId && /* @__PURE__ */
|
|
521128
|
+
t4 = sessionId && /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedBox_default, {
|
|
520819
521129
|
marginBottom: 1,
|
|
520820
|
-
children: /* @__PURE__ */
|
|
521130
|
+
children: /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
|
|
520821
521131
|
dimColor: true,
|
|
520822
521132
|
children: sessionId
|
|
520823
521133
|
}, undefined, false, undefined, this)
|
|
@@ -520847,18 +521157,18 @@ function TeleportProgress(t0) {
|
|
|
520847
521157
|
color3 = undefined;
|
|
520848
521158
|
}
|
|
520849
521159
|
}
|
|
520850
|
-
return /* @__PURE__ */
|
|
521160
|
+
return /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedBox_default, {
|
|
520851
521161
|
flexDirection: "row",
|
|
520852
521162
|
children: [
|
|
520853
|
-
/* @__PURE__ */
|
|
521163
|
+
/* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedBox_default, {
|
|
520854
521164
|
width: 2,
|
|
520855
|
-
children: /* @__PURE__ */
|
|
521165
|
+
children: /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
|
|
520856
521166
|
color: color3,
|
|
520857
521167
|
dimColor: isPending,
|
|
520858
521168
|
children: icon
|
|
520859
521169
|
}, undefined, false, undefined, this)
|
|
520860
521170
|
}, undefined, false, undefined, this),
|
|
520861
|
-
/* @__PURE__ */
|
|
521171
|
+
/* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
|
|
520862
521172
|
dimColor: isPending,
|
|
520863
521173
|
bold: isCurrent,
|
|
520864
521174
|
children: step.label
|
|
@@ -520874,7 +521184,7 @@ function TeleportProgress(t0) {
|
|
|
520874
521184
|
}
|
|
520875
521185
|
let t6;
|
|
520876
521186
|
if ($3[9] !== t5) {
|
|
520877
|
-
t6 = /* @__PURE__ */
|
|
521187
|
+
t6 = /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedBox_default, {
|
|
520878
521188
|
flexDirection: "column",
|
|
520879
521189
|
marginLeft: 2,
|
|
520880
521190
|
children: t5
|
|
@@ -520886,7 +521196,7 @@ function TeleportProgress(t0) {
|
|
|
520886
521196
|
}
|
|
520887
521197
|
let t7;
|
|
520888
521198
|
if ($3[11] !== ref || $3[12] !== t3 || $3[13] !== t4 || $3[14] !== t6) {
|
|
520889
|
-
t7 = /* @__PURE__ */
|
|
521199
|
+
t7 = /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedBox_default, {
|
|
520890
521200
|
ref,
|
|
520891
521201
|
flexDirection: "column",
|
|
520892
521202
|
paddingX: 1,
|
|
@@ -520912,13 +521222,13 @@ async function teleportWithProgress(root2, sessionId) {
|
|
|
520912
521222
|
function TeleportProgressWrapper() {
|
|
520913
521223
|
const [step, _setStep] = import_react331.useState("validating");
|
|
520914
521224
|
setStep = _setStep;
|
|
520915
|
-
return /* @__PURE__ */
|
|
521225
|
+
return /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(TeleportProgress, {
|
|
520916
521226
|
currentStep: step,
|
|
520917
521227
|
sessionId
|
|
520918
521228
|
}, undefined, false, undefined, this);
|
|
520919
521229
|
}
|
|
520920
|
-
root2.render(/* @__PURE__ */
|
|
520921
|
-
children: /* @__PURE__ */
|
|
521230
|
+
root2.render(/* @__PURE__ */ jsx_dev_runtime489.jsxDEV(AppStateProvider, {
|
|
521231
|
+
children: /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(TeleportProgressWrapper, {}, undefined, false, undefined, this)
|
|
520922
521232
|
}, undefined, false, undefined, this));
|
|
520923
521233
|
const result = await teleportResumeCodeSession(sessionId, setStep);
|
|
520924
521234
|
setStep("checking_out");
|
|
@@ -520931,14 +521241,14 @@ async function teleportWithProgress(root2, sessionId) {
|
|
|
520931
521241
|
branchName
|
|
520932
521242
|
};
|
|
520933
521243
|
}
|
|
520934
|
-
var import_react331,
|
|
521244
|
+
var import_react331, jsx_dev_runtime489, SPINNER_FRAMES3, STEPS;
|
|
520935
521245
|
var init_TeleportProgress = __esm(() => {
|
|
520936
521246
|
init_figures();
|
|
520937
521247
|
init_ink2();
|
|
520938
521248
|
init_AppState();
|
|
520939
521249
|
init_teleport();
|
|
520940
521250
|
import_react331 = __toESM(require_react(), 1);
|
|
520941
|
-
|
|
521251
|
+
jsx_dev_runtime489 = __toESM(require_jsx_dev_runtime(), 1);
|
|
520942
521252
|
SPINNER_FRAMES3 = ["◐", "◓", "◑", "◒"];
|
|
520943
521253
|
STEPS = [{
|
|
520944
521254
|
key: "validating",
|
|
@@ -521074,7 +521384,7 @@ No servers were imported.`);
|
|
|
521074
521384
|
const t10 = `Found ${t8} MCP ${t9} in Claude Desktop.`;
|
|
521075
521385
|
let t11;
|
|
521076
521386
|
if ($3[16] !== collisions.length) {
|
|
521077
|
-
t11 = collisions.length > 0 && /* @__PURE__ */
|
|
521387
|
+
t11 = collisions.length > 0 && /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedText, {
|
|
521078
521388
|
color: "warning",
|
|
521079
521389
|
children: "Note: Some servers already exist with the same name. If selected, they will be imported with a numbered suffix."
|
|
521080
521390
|
}, undefined, false, undefined, this);
|
|
@@ -521085,7 +521395,7 @@ No servers were imported.`);
|
|
|
521085
521395
|
}
|
|
521086
521396
|
let t12;
|
|
521087
521397
|
if ($3[18] === Symbol.for("react.memo_cache_sentinel")) {
|
|
521088
|
-
t12 = /* @__PURE__ */
|
|
521398
|
+
t12 = /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedText, {
|
|
521089
521399
|
children: "Please select the servers you want to import:"
|
|
521090
521400
|
}, undefined, false, undefined, this);
|
|
521091
521401
|
$3[18] = t12;
|
|
@@ -521110,7 +521420,7 @@ No servers were imported.`);
|
|
|
521110
521420
|
}
|
|
521111
521421
|
let t15;
|
|
521112
521422
|
if ($3[23] !== handleEscCancel || $3[24] !== onSubmit || $3[25] !== t13 || $3[26] !== t14) {
|
|
521113
|
-
t15 = /* @__PURE__ */
|
|
521423
|
+
t15 = /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(SelectMulti, {
|
|
521114
521424
|
options: t13,
|
|
521115
521425
|
defaultValue: t14,
|
|
521116
521426
|
onSubmit,
|
|
@@ -521127,7 +521437,7 @@ No servers were imported.`);
|
|
|
521127
521437
|
}
|
|
521128
521438
|
let t16;
|
|
521129
521439
|
if ($3[28] !== handleEscCancel || $3[29] !== t10 || $3[30] !== t11 || $3[31] !== t15) {
|
|
521130
|
-
t16 = /* @__PURE__ */
|
|
521440
|
+
t16 = /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(Dialog, {
|
|
521131
521441
|
title: "Import MCP Servers from Claude Desktop",
|
|
521132
521442
|
subtitle: t10,
|
|
521133
521443
|
color: "success",
|
|
@@ -521149,22 +521459,22 @@ No servers were imported.`);
|
|
|
521149
521459
|
}
|
|
521150
521460
|
let t17;
|
|
521151
521461
|
if ($3[33] === Symbol.for("react.memo_cache_sentinel")) {
|
|
521152
|
-
t17 = /* @__PURE__ */
|
|
521462
|
+
t17 = /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedBox_default, {
|
|
521153
521463
|
paddingX: 1,
|
|
521154
|
-
children: /* @__PURE__ */
|
|
521464
|
+
children: /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedText, {
|
|
521155
521465
|
dimColor: true,
|
|
521156
521466
|
italic: true,
|
|
521157
|
-
children: /* @__PURE__ */
|
|
521467
|
+
children: /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(Byline, {
|
|
521158
521468
|
children: [
|
|
521159
|
-
/* @__PURE__ */
|
|
521469
|
+
/* @__PURE__ */ jsx_dev_runtime490.jsxDEV(KeyboardShortcutHint, {
|
|
521160
521470
|
shortcut: "Space",
|
|
521161
521471
|
action: "select"
|
|
521162
521472
|
}, undefined, false, undefined, this),
|
|
521163
|
-
/* @__PURE__ */
|
|
521473
|
+
/* @__PURE__ */ jsx_dev_runtime490.jsxDEV(KeyboardShortcutHint, {
|
|
521164
521474
|
shortcut: "Enter",
|
|
521165
521475
|
action: "confirm"
|
|
521166
521476
|
}, undefined, false, undefined, this),
|
|
521167
|
-
/* @__PURE__ */
|
|
521477
|
+
/* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ConfigurableShortcutHint, {
|
|
521168
521478
|
action: "confirm:no",
|
|
521169
521479
|
context: "Confirmation",
|
|
521170
521480
|
fallback: "Esc",
|
|
@@ -521180,7 +521490,7 @@ No servers were imported.`);
|
|
|
521180
521490
|
}
|
|
521181
521491
|
let t18;
|
|
521182
521492
|
if ($3[34] !== t16) {
|
|
521183
|
-
t18 = /* @__PURE__ */
|
|
521493
|
+
t18 = /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(jsx_dev_runtime490.Fragment, {
|
|
521184
521494
|
children: [
|
|
521185
521495
|
t16,
|
|
521186
521496
|
t17
|
|
@@ -521193,7 +521503,7 @@ No servers were imported.`);
|
|
|
521193
521503
|
}
|
|
521194
521504
|
return t18;
|
|
521195
521505
|
}
|
|
521196
|
-
var import_react332,
|
|
521506
|
+
var import_react332, jsx_dev_runtime490;
|
|
521197
521507
|
var init_MCPServerDesktopImportDialog = __esm(() => {
|
|
521198
521508
|
init_gracefulShutdown();
|
|
521199
521509
|
init_ink2();
|
|
@@ -521205,7 +521515,7 @@ var init_MCPServerDesktopImportDialog = __esm(() => {
|
|
|
521205
521515
|
init_Dialog();
|
|
521206
521516
|
init_KeyboardShortcutHint();
|
|
521207
521517
|
import_react332 = __toESM(require_react(), 1);
|
|
521208
|
-
|
|
521518
|
+
jsx_dev_runtime490 = __toESM(require_jsx_dev_runtime(), 1);
|
|
521209
521519
|
});
|
|
521210
521520
|
|
|
521211
521521
|
// node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
|
|
@@ -521641,7 +521951,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
|
|
|
521641
521951
|
setCwd(cwd3);
|
|
521642
521952
|
const server = new Server({
|
|
521643
521953
|
name: "claude/tengu",
|
|
521644
|
-
version: "1.0.
|
|
521954
|
+
version: "1.0.6"
|
|
521645
521955
|
}, {
|
|
521646
521956
|
capabilities: {
|
|
521647
521957
|
tools: {}
|
|
@@ -522129,9 +522439,9 @@ async function mcpAddFromDesktopHandler(options) {
|
|
|
522129
522439
|
}
|
|
522130
522440
|
const {
|
|
522131
522441
|
unmount
|
|
522132
|
-
} = await render(/* @__PURE__ */
|
|
522133
|
-
children: /* @__PURE__ */
|
|
522134
|
-
children: /* @__PURE__ */
|
|
522442
|
+
} = await render(/* @__PURE__ */ jsx_dev_runtime491.jsxDEV(AppStateProvider, {
|
|
522443
|
+
children: /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(KeybindingSetup, {
|
|
522444
|
+
children: /* @__PURE__ */ jsx_dev_runtime491.jsxDEV(MCPServerDesktopImportDialog, {
|
|
522135
522445
|
servers,
|
|
522136
522446
|
scope,
|
|
522137
522447
|
onDone: () => {
|
|
@@ -522157,7 +522467,7 @@ async function mcpResetChoicesHandler() {
|
|
|
522157
522467
|
cliOk(`All project-scoped (.mcp.json) server approvals and rejections have been reset.
|
|
522158
522468
|
You will be prompted for approval next time you start localclawd.`);
|
|
522159
522469
|
}
|
|
522160
|
-
var
|
|
522470
|
+
var jsx_dev_runtime491;
|
|
522161
522471
|
var init_mcp5 = __esm(() => {
|
|
522162
522472
|
init_p_map();
|
|
522163
522473
|
init_MCPServerDesktopImportDialog();
|
|
@@ -522173,7 +522483,7 @@ var init_mcp5 = __esm(() => {
|
|
|
522173
522483
|
init_gracefulShutdown();
|
|
522174
522484
|
init_json();
|
|
522175
522485
|
init_platform();
|
|
522176
|
-
|
|
522486
|
+
jsx_dev_runtime491 = __toESM(require_jsx_dev_runtime(), 1);
|
|
522177
522487
|
});
|
|
522178
522488
|
|
|
522179
522489
|
// src/cli/handlers/plugins.ts
|
|
@@ -522726,11 +523036,11 @@ function SetupNotes(t0) {
|
|
|
522726
523036
|
}
|
|
522727
523037
|
let t1;
|
|
522728
523038
|
if ($3[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
522729
|
-
t1 = /* @__PURE__ */
|
|
522730
|
-
children: /* @__PURE__ */
|
|
523039
|
+
t1 = /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
523040
|
+
children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522731
523041
|
color: "warning",
|
|
522732
523042
|
children: [
|
|
522733
|
-
/* @__PURE__ */
|
|
523043
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(StatusIcon, {
|
|
522734
523044
|
status: "warning",
|
|
522735
523045
|
withSpace: true
|
|
522736
523046
|
}, undefined, false, undefined, this),
|
|
@@ -522752,7 +523062,7 @@ function SetupNotes(t0) {
|
|
|
522752
523062
|
}
|
|
522753
523063
|
let t3;
|
|
522754
523064
|
if ($3[3] !== t2) {
|
|
522755
|
-
t3 = /* @__PURE__ */
|
|
523065
|
+
t3 = /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522756
523066
|
flexDirection: "column",
|
|
522757
523067
|
gap: 0,
|
|
522758
523068
|
marginBottom: 1,
|
|
@@ -522769,9 +523079,9 @@ function SetupNotes(t0) {
|
|
|
522769
523079
|
return t3;
|
|
522770
523080
|
}
|
|
522771
523081
|
function _temp308(message, index) {
|
|
522772
|
-
return /* @__PURE__ */
|
|
523082
|
+
return /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522773
523083
|
marginLeft: 2,
|
|
522774
|
-
children: /* @__PURE__ */
|
|
523084
|
+
children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522775
523085
|
dimColor: true,
|
|
522776
523086
|
children: [
|
|
522777
523087
|
"• ",
|
|
@@ -522887,19 +523197,19 @@ function Install({
|
|
|
522887
523197
|
});
|
|
522888
523198
|
}
|
|
522889
523199
|
}, [state2, onDone]);
|
|
522890
|
-
return /* @__PURE__ */
|
|
523200
|
+
return /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522891
523201
|
flexDirection: "column",
|
|
522892
523202
|
marginTop: 1,
|
|
522893
523203
|
children: [
|
|
522894
|
-
state2.type === "checking" && /* @__PURE__ */
|
|
523204
|
+
state2.type === "checking" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522895
523205
|
color: "claude",
|
|
522896
523206
|
children: "Checking installation status..."
|
|
522897
523207
|
}, undefined, false, undefined, this),
|
|
522898
|
-
state2.type === "cleaning-npm" && /* @__PURE__ */
|
|
523208
|
+
state2.type === "cleaning-npm" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522899
523209
|
color: "warning",
|
|
522900
523210
|
children: "Cleaning up old npm installations..."
|
|
522901
523211
|
}, undefined, false, undefined, this),
|
|
522902
|
-
state2.type === "installing" && /* @__PURE__ */
|
|
523212
|
+
state2.type === "installing" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522903
523213
|
color: "claude",
|
|
522904
523214
|
children: [
|
|
522905
523215
|
"Installing localclawd native build ",
|
|
@@ -522907,54 +523217,54 @@ function Install({
|
|
|
522907
523217
|
"..."
|
|
522908
523218
|
]
|
|
522909
523219
|
}, undefined, true, undefined, this),
|
|
522910
|
-
state2.type === "setting-up" && /* @__PURE__ */
|
|
523220
|
+
state2.type === "setting-up" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522911
523221
|
color: "claude",
|
|
522912
523222
|
children: "Setting up launcher and shell integration..."
|
|
522913
523223
|
}, undefined, false, undefined, this),
|
|
522914
|
-
state2.type === "set-up" && /* @__PURE__ */
|
|
523224
|
+
state2.type === "set-up" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(SetupNotes, {
|
|
522915
523225
|
messages: state2.messages
|
|
522916
523226
|
}, undefined, false, undefined, this),
|
|
522917
|
-
state2.type === "success" && /* @__PURE__ */
|
|
523227
|
+
state2.type === "success" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522918
523228
|
flexDirection: "column",
|
|
522919
523229
|
gap: 1,
|
|
522920
523230
|
children: [
|
|
522921
|
-
/* @__PURE__ */
|
|
523231
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522922
523232
|
children: [
|
|
522923
|
-
/* @__PURE__ */
|
|
523233
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(StatusIcon, {
|
|
522924
523234
|
status: "success",
|
|
522925
523235
|
withSpace: true
|
|
522926
523236
|
}, undefined, false, undefined, this),
|
|
522927
|
-
/* @__PURE__ */
|
|
523237
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522928
523238
|
color: "success",
|
|
522929
523239
|
bold: true,
|
|
522930
523240
|
children: "localclawd successfully installed!"
|
|
522931
523241
|
}, undefined, false, undefined, this)
|
|
522932
523242
|
]
|
|
522933
523243
|
}, undefined, true, undefined, this),
|
|
522934
|
-
/* @__PURE__ */
|
|
523244
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522935
523245
|
marginLeft: 2,
|
|
522936
523246
|
flexDirection: "column",
|
|
522937
523247
|
gap: 1,
|
|
522938
523248
|
children: [
|
|
522939
|
-
state2.version !== "current" && /* @__PURE__ */
|
|
523249
|
+
state2.version !== "current" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522940
523250
|
children: [
|
|
522941
|
-
/* @__PURE__ */
|
|
523251
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522942
523252
|
dimColor: true,
|
|
522943
523253
|
children: "Version: "
|
|
522944
523254
|
}, undefined, false, undefined, this),
|
|
522945
|
-
/* @__PURE__ */
|
|
523255
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522946
523256
|
color: "claude",
|
|
522947
523257
|
children: state2.version
|
|
522948
523258
|
}, undefined, false, undefined, this)
|
|
522949
523259
|
]
|
|
522950
523260
|
}, undefined, true, undefined, this),
|
|
522951
|
-
/* @__PURE__ */
|
|
523261
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522952
523262
|
children: [
|
|
522953
|
-
/* @__PURE__ */
|
|
523263
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522954
523264
|
dimColor: true,
|
|
522955
523265
|
children: "Location: "
|
|
522956
523266
|
}, undefined, false, undefined, this),
|
|
522957
|
-
/* @__PURE__ */
|
|
523267
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522958
523268
|
color: "text",
|
|
522959
523269
|
children: getInstallationPath2()
|
|
522960
523270
|
}, undefined, false, undefined, this)
|
|
@@ -522962,57 +523272,57 @@ function Install({
|
|
|
522962
523272
|
}, undefined, true, undefined, this)
|
|
522963
523273
|
]
|
|
522964
523274
|
}, undefined, true, undefined, this),
|
|
522965
|
-
/* @__PURE__ */
|
|
523275
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522966
523276
|
marginLeft: 2,
|
|
522967
523277
|
flexDirection: "column",
|
|
522968
523278
|
gap: 1,
|
|
522969
|
-
children: /* @__PURE__ */
|
|
523279
|
+
children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522970
523280
|
marginTop: 1,
|
|
522971
523281
|
children: [
|
|
522972
|
-
/* @__PURE__ */
|
|
523282
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522973
523283
|
dimColor: true,
|
|
522974
523284
|
children: "Next: Run "
|
|
522975
523285
|
}, undefined, false, undefined, this),
|
|
522976
|
-
/* @__PURE__ */
|
|
523286
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522977
523287
|
color: "claude",
|
|
522978
523288
|
bold: true,
|
|
522979
523289
|
children: "localclawd --help"
|
|
522980
523290
|
}, undefined, false, undefined, this),
|
|
522981
|
-
/* @__PURE__ */
|
|
523291
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522982
523292
|
dimColor: true,
|
|
522983
523293
|
children: " to get started"
|
|
522984
523294
|
}, undefined, false, undefined, this)
|
|
522985
523295
|
]
|
|
522986
523296
|
}, undefined, true, undefined, this)
|
|
522987
523297
|
}, undefined, false, undefined, this),
|
|
522988
|
-
state2.setupMessages && /* @__PURE__ */
|
|
523298
|
+
state2.setupMessages && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(SetupNotes, {
|
|
522989
523299
|
messages: state2.setupMessages
|
|
522990
523300
|
}, undefined, false, undefined, this)
|
|
522991
523301
|
]
|
|
522992
523302
|
}, undefined, true, undefined, this),
|
|
522993
|
-
state2.type === "error" && /* @__PURE__ */
|
|
523303
|
+
state2.type === "error" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522994
523304
|
flexDirection: "column",
|
|
522995
523305
|
gap: 1,
|
|
522996
523306
|
children: [
|
|
522997
|
-
/* @__PURE__ */
|
|
523307
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522998
523308
|
children: [
|
|
522999
|
-
/* @__PURE__ */
|
|
523309
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(StatusIcon, {
|
|
523000
523310
|
status: "error",
|
|
523001
523311
|
withSpace: true
|
|
523002
523312
|
}, undefined, false, undefined, this),
|
|
523003
|
-
/* @__PURE__ */
|
|
523313
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
523004
523314
|
color: "error",
|
|
523005
523315
|
children: "Installation failed"
|
|
523006
523316
|
}, undefined, false, undefined, this)
|
|
523007
523317
|
]
|
|
523008
523318
|
}, undefined, true, undefined, this),
|
|
523009
|
-
/* @__PURE__ */
|
|
523319
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
523010
523320
|
color: "error",
|
|
523011
523321
|
children: state2.message
|
|
523012
523322
|
}, undefined, false, undefined, this),
|
|
523013
|
-
/* @__PURE__ */
|
|
523323
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
523014
523324
|
marginTop: 1,
|
|
523015
|
-
children: /* @__PURE__ */
|
|
523325
|
+
children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
523016
523326
|
dimColor: true,
|
|
523017
523327
|
children: "Try running with --force to override checks"
|
|
523018
523328
|
}, undefined, false, undefined, this)
|
|
@@ -523022,7 +523332,7 @@ function Install({
|
|
|
523022
523332
|
]
|
|
523023
523333
|
}, undefined, true, undefined, this);
|
|
523024
523334
|
}
|
|
523025
|
-
var import_react333,
|
|
523335
|
+
var import_react333, jsx_dev_runtime492, install;
|
|
523026
523336
|
var init_install = __esm(() => {
|
|
523027
523337
|
init_StatusIcon();
|
|
523028
523338
|
init_ink2();
|
|
@@ -523032,7 +523342,7 @@ var init_install = __esm(() => {
|
|
|
523032
523342
|
init_nativeInstaller();
|
|
523033
523343
|
init_settings2();
|
|
523034
523344
|
import_react333 = __toESM(require_react(), 1);
|
|
523035
|
-
|
|
523345
|
+
jsx_dev_runtime492 = __toESM(require_jsx_dev_runtime(), 1);
|
|
523036
523346
|
install = {
|
|
523037
523347
|
type: "local-jsx",
|
|
523038
523348
|
name: "install",
|
|
@@ -523044,7 +523354,7 @@ var init_install = __esm(() => {
|
|
|
523044
523354
|
const target = nonFlagArgs[0];
|
|
523045
523355
|
const {
|
|
523046
523356
|
unmount
|
|
523047
|
-
} = await render(/* @__PURE__ */
|
|
523357
|
+
} = await render(/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(Install, {
|
|
523048
523358
|
onDone: (result, options) => {
|
|
523049
523359
|
unmount();
|
|
523050
523360
|
onDone(result, options);
|
|
@@ -523071,28 +523381,28 @@ async function setupTokenHandler(root2) {
|
|
|
523071
523381
|
ConsoleOAuthFlow: ConsoleOAuthFlow2
|
|
523072
523382
|
} = await Promise.resolve().then(() => (init_ConsoleOAuthFlow(), exports_ConsoleOAuthFlow));
|
|
523073
523383
|
await new Promise((resolve40) => {
|
|
523074
|
-
root2.render(/* @__PURE__ */
|
|
523384
|
+
root2.render(/* @__PURE__ */ jsx_dev_runtime493.jsxDEV(AppStateProvider, {
|
|
523075
523385
|
onChangeAppState,
|
|
523076
|
-
children: /* @__PURE__ */
|
|
523077
|
-
children: /* @__PURE__ */
|
|
523386
|
+
children: /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(KeybindingSetup, {
|
|
523387
|
+
children: /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedBox_default, {
|
|
523078
523388
|
flexDirection: "column",
|
|
523079
523389
|
gap: 1,
|
|
523080
523390
|
children: [
|
|
523081
|
-
/* @__PURE__ */
|
|
523082
|
-
showAuthWarning && /* @__PURE__ */
|
|
523391
|
+
/* @__PURE__ */ jsx_dev_runtime493.jsxDEV(WelcomeV2, {}, undefined, false, undefined, this),
|
|
523392
|
+
showAuthWarning && /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedBox_default, {
|
|
523083
523393
|
flexDirection: "column",
|
|
523084
523394
|
children: [
|
|
523085
|
-
/* @__PURE__ */
|
|
523395
|
+
/* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedText, {
|
|
523086
523396
|
color: "warning",
|
|
523087
523397
|
children: "Warning: You already have authentication configured via environment variable or API key helper."
|
|
523088
523398
|
}, undefined, false, undefined, this),
|
|
523089
|
-
/* @__PURE__ */
|
|
523399
|
+
/* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedText, {
|
|
523090
523400
|
color: "warning",
|
|
523091
523401
|
children: "The setup-token command will create a new OAuth token which you can use instead."
|
|
523092
523402
|
}, undefined, false, undefined, this)
|
|
523093
523403
|
]
|
|
523094
523404
|
}, undefined, true, undefined, this),
|
|
523095
|
-
/* @__PURE__ */
|
|
523405
|
+
/* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ConsoleOAuthFlow2, {
|
|
523096
523406
|
onDone: () => {
|
|
523097
523407
|
resolve40();
|
|
523098
523408
|
},
|
|
@@ -523115,9 +523425,9 @@ function DoctorWithPlugins(t0) {
|
|
|
523115
523425
|
useManagePlugins();
|
|
523116
523426
|
let t1;
|
|
523117
523427
|
if ($3[0] !== onDone) {
|
|
523118
|
-
t1 = /* @__PURE__ */
|
|
523428
|
+
t1 = /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(import_react334.default.Suspense, {
|
|
523119
523429
|
fallback: null,
|
|
523120
|
-
children: /* @__PURE__ */
|
|
523430
|
+
children: /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(DoctorLazy, {
|
|
523121
523431
|
onDone
|
|
523122
523432
|
}, undefined, false, undefined, this)
|
|
523123
523433
|
}, undefined, false, undefined, this);
|
|
@@ -523131,12 +523441,12 @@ function DoctorWithPlugins(t0) {
|
|
|
523131
523441
|
async function doctorHandler(root2) {
|
|
523132
523442
|
logEvent("tengu_doctor_command", {});
|
|
523133
523443
|
await new Promise((resolve40) => {
|
|
523134
|
-
root2.render(/* @__PURE__ */
|
|
523135
|
-
children: /* @__PURE__ */
|
|
523136
|
-
children: /* @__PURE__ */
|
|
523444
|
+
root2.render(/* @__PURE__ */ jsx_dev_runtime493.jsxDEV(AppStateProvider, {
|
|
523445
|
+
children: /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(KeybindingSetup, {
|
|
523446
|
+
children: /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(MCPConnectionManager, {
|
|
523137
523447
|
dynamicMcpConfig: undefined,
|
|
523138
523448
|
isStrictMcpConfig: false,
|
|
523139
|
-
children: /* @__PURE__ */
|
|
523449
|
+
children: /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(DoctorWithPlugins, {
|
|
523140
523450
|
onDone: () => {
|
|
523141
523451
|
resolve40();
|
|
523142
523452
|
}
|
|
@@ -523168,7 +523478,7 @@ async function installHandler(target, options) {
|
|
|
523168
523478
|
}, {}, args);
|
|
523169
523479
|
});
|
|
523170
523480
|
}
|
|
523171
|
-
var import_react334,
|
|
523481
|
+
var import_react334, jsx_dev_runtime493, DoctorLazy;
|
|
523172
523482
|
var init_util = __esm(() => {
|
|
523173
523483
|
init_WelcomeV2();
|
|
523174
523484
|
init_useManagePlugins();
|
|
@@ -523179,7 +523489,7 @@ var init_util = __esm(() => {
|
|
|
523179
523489
|
init_onChangeAppState();
|
|
523180
523490
|
init_auth2();
|
|
523181
523491
|
import_react334 = __toESM(require_react(), 1);
|
|
523182
|
-
|
|
523492
|
+
jsx_dev_runtime493 = __toESM(require_jsx_dev_runtime(), 1);
|
|
523183
523493
|
DoctorLazy = import_react334.default.lazy(() => Promise.resolve().then(() => (init_Doctor(), exports_Doctor)).then((m2) => ({
|
|
523184
523494
|
default: m2.Doctor
|
|
523185
523495
|
})));
|
|
@@ -523246,7 +523556,7 @@ __export(exports_update, {
|
|
|
523246
523556
|
});
|
|
523247
523557
|
async function update() {
|
|
523248
523558
|
logEvent("tengu_update_check", {});
|
|
523249
|
-
writeToStdout(`Current version: ${"1.0.
|
|
523559
|
+
writeToStdout(`Current version: ${"1.0.6"}
|
|
523250
523560
|
`);
|
|
523251
523561
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
523252
523562
|
writeToStdout(`Checking for updates to ${channel} version...
|
|
@@ -523321,8 +523631,8 @@ async function update() {
|
|
|
523321
523631
|
writeToStdout(`localclawd is managed by Homebrew.
|
|
523322
523632
|
`);
|
|
523323
523633
|
const latest = await getLatestVersion(channel);
|
|
523324
|
-
if (latest && !gte("1.0.
|
|
523325
|
-
writeToStdout(`Update available: ${"1.0.
|
|
523634
|
+
if (latest && !gte("1.0.6", latest)) {
|
|
523635
|
+
writeToStdout(`Update available: ${"1.0.6"} → ${latest}
|
|
523326
523636
|
`);
|
|
523327
523637
|
writeToStdout(`
|
|
523328
523638
|
`);
|
|
@@ -523338,8 +523648,8 @@ async function update() {
|
|
|
523338
523648
|
writeToStdout(`localclawd is managed by winget.
|
|
523339
523649
|
`);
|
|
523340
523650
|
const latest = await getLatestVersion(channel);
|
|
523341
|
-
if (latest && !gte("1.0.
|
|
523342
|
-
writeToStdout(`Update available: ${"1.0.
|
|
523651
|
+
if (latest && !gte("1.0.6", latest)) {
|
|
523652
|
+
writeToStdout(`Update available: ${"1.0.6"} → ${latest}
|
|
523343
523653
|
`);
|
|
523344
523654
|
writeToStdout(`
|
|
523345
523655
|
`);
|
|
@@ -523353,8 +523663,8 @@ async function update() {
|
|
|
523353
523663
|
writeToStdout(`localclawd is managed by apk.
|
|
523354
523664
|
`);
|
|
523355
523665
|
const latest = await getLatestVersion(channel);
|
|
523356
|
-
if (latest && !gte("1.0.
|
|
523357
|
-
writeToStdout(`Update available: ${"1.0.
|
|
523666
|
+
if (latest && !gte("1.0.6", latest)) {
|
|
523667
|
+
writeToStdout(`Update available: ${"1.0.6"} → ${latest}
|
|
523358
523668
|
`);
|
|
523359
523669
|
writeToStdout(`
|
|
523360
523670
|
`);
|
|
@@ -523419,11 +523729,11 @@ async function update() {
|
|
|
523419
523729
|
`);
|
|
523420
523730
|
await gracefulShutdown(1);
|
|
523421
523731
|
}
|
|
523422
|
-
if (result.latestVersion === "1.0.
|
|
523423
|
-
writeToStdout(source_default.green(`localclawd is up to date (${"1.0.
|
|
523732
|
+
if (result.latestVersion === "1.0.6") {
|
|
523733
|
+
writeToStdout(source_default.green(`localclawd is up to date (${"1.0.6"})`) + `
|
|
523424
523734
|
`);
|
|
523425
523735
|
} else {
|
|
523426
|
-
writeToStdout(source_default.green(`Successfully updated from ${"1.0.
|
|
523736
|
+
writeToStdout(source_default.green(`Successfully updated from ${"1.0.6"} to version ${result.latestVersion}`) + `
|
|
523427
523737
|
`);
|
|
523428
523738
|
await regenerateCompletionCache();
|
|
523429
523739
|
}
|
|
@@ -523483,12 +523793,12 @@ async function update() {
|
|
|
523483
523793
|
`);
|
|
523484
523794
|
await gracefulShutdown(1);
|
|
523485
523795
|
}
|
|
523486
|
-
if (latestVersion === "1.0.
|
|
523487
|
-
writeToStdout(source_default.green(`localclawd is up to date (${"1.0.
|
|
523796
|
+
if (latestVersion === "1.0.6") {
|
|
523797
|
+
writeToStdout(source_default.green(`localclawd is up to date (${"1.0.6"})`) + `
|
|
523488
523798
|
`);
|
|
523489
523799
|
await gracefulShutdown(0);
|
|
523490
523800
|
}
|
|
523491
|
-
writeToStdout(`New version available: ${latestVersion} (current: ${"1.0.
|
|
523801
|
+
writeToStdout(`New version available: ${latestVersion} (current: ${"1.0.6"})
|
|
523492
523802
|
`);
|
|
523493
523803
|
writeToStdout(`Installing update...
|
|
523494
523804
|
`);
|
|
@@ -523533,7 +523843,7 @@ async function update() {
|
|
|
523533
523843
|
logForDebugging(`update: Installation status: ${status2}`);
|
|
523534
523844
|
switch (status2) {
|
|
523535
523845
|
case "success":
|
|
523536
|
-
writeToStdout(source_default.green(`Successfully updated from ${"1.0.
|
|
523846
|
+
writeToStdout(source_default.green(`Successfully updated from ${"1.0.6"} to version ${latestVersion}`) + `
|
|
523537
523847
|
`);
|
|
523538
523848
|
await regenerateCompletionCache();
|
|
523539
523849
|
break;
|
|
@@ -524143,6 +524453,7 @@ ${getTmuxInstallInstructions2()}
|
|
|
524143
524453
|
}
|
|
524144
524454
|
}
|
|
524145
524455
|
const isNonInteractiveSession = getIsNonInteractiveSession();
|
|
524456
|
+
const startupLoadingIndicator = !isNonInteractiveSession ? startStartupLoadingIndicator("Loading model and MCP configuration") : null;
|
|
524146
524457
|
if (fallbackModel && options.model && fallbackModel === options.model) {
|
|
524147
524458
|
process.stderr.write(source_default.red(`Error: Fallback model cannot be the same as the main model. Please specify a different model for --fallback-model.
|
|
524148
524459
|
`));
|
|
@@ -524388,7 +524699,6 @@ ${hint}` : hint;
|
|
|
524388
524699
|
}
|
|
524389
524700
|
return allowed;
|
|
524390
524701
|
}) : Promise.resolve({});
|
|
524391
|
-
logForDebugging("[STARTUP] Loading MCP configs...");
|
|
524392
524702
|
const mcpConfigStart = Date.now();
|
|
524393
524703
|
let mcpConfigResolvedMs;
|
|
524394
524704
|
const mcpConfigPromise = (strictMcpConfig || isBareMode() ? Promise.resolve({
|
|
@@ -524398,38 +524708,46 @@ ${hint}` : hint;
|
|
|
524398
524708
|
return result;
|
|
524399
524709
|
});
|
|
524400
524710
|
if (inputFormat && inputFormat !== "text" && inputFormat !== "stream-json") {
|
|
524711
|
+
startupLoadingIndicator?.stop();
|
|
524401
524712
|
console.error(`Error: Invalid input format "${inputFormat}".`);
|
|
524402
524713
|
process.exit(1);
|
|
524403
524714
|
}
|
|
524404
524715
|
if (inputFormat === "stream-json" && outputFormat !== "stream-json") {
|
|
524716
|
+
startupLoadingIndicator?.stop();
|
|
524405
524717
|
console.error(`Error: --input-format=stream-json requires output-format=stream-json.`);
|
|
524406
524718
|
process.exit(1);
|
|
524407
524719
|
}
|
|
524408
524720
|
if (sdkUrl) {
|
|
524409
524721
|
if (inputFormat !== "stream-json" || outputFormat !== "stream-json") {
|
|
524722
|
+
startupLoadingIndicator?.stop();
|
|
524410
524723
|
console.error(`Error: --sdk-url requires both --input-format=stream-json and --output-format=stream-json.`);
|
|
524411
524724
|
process.exit(1);
|
|
524412
524725
|
}
|
|
524413
524726
|
}
|
|
524414
524727
|
if (options.replayUserMessages) {
|
|
524415
524728
|
if (inputFormat !== "stream-json" || outputFormat !== "stream-json") {
|
|
524729
|
+
startupLoadingIndicator?.stop();
|
|
524416
524730
|
console.error(`Error: --replay-user-messages requires both --input-format=stream-json and --output-format=stream-json.`);
|
|
524417
524731
|
process.exit(1);
|
|
524418
524732
|
}
|
|
524419
524733
|
}
|
|
524420
524734
|
if (effectiveIncludePartialMessages) {
|
|
524421
524735
|
if (!isNonInteractiveSession || outputFormat !== "stream-json") {
|
|
524736
|
+
startupLoadingIndicator?.stop();
|
|
524422
524737
|
writeToStderr(`Error: --include-partial-messages requires --print and --output-format=stream-json.`);
|
|
524423
524738
|
process.exit(1);
|
|
524424
524739
|
}
|
|
524425
524740
|
}
|
|
524426
524741
|
if (options.sessionPersistence === false && !isNonInteractiveSession) {
|
|
524742
|
+
startupLoadingIndicator?.stop();
|
|
524427
524743
|
writeToStderr(`Error: --no-session-persistence can only be used with --print mode.`);
|
|
524428
524744
|
process.exit(1);
|
|
524429
524745
|
}
|
|
524430
524746
|
const effectivePrompt = prompt || "";
|
|
524747
|
+
startupLoadingIndicator?.update("Reading startup input");
|
|
524431
524748
|
let inputPrompt = await getInputPrompt(effectivePrompt, inputFormat ?? "text");
|
|
524432
524749
|
profileCheckpoint("action_after_input_prompt");
|
|
524750
|
+
startupLoadingIndicator?.update("Checking available tools");
|
|
524433
524751
|
maybeActivateProactive(options);
|
|
524434
524752
|
let tools = getTools(toolPermissionContext);
|
|
524435
524753
|
if (false) {}
|
|
@@ -524455,7 +524773,7 @@ ${hint}` : hint;
|
|
|
524455
524773
|
}
|
|
524456
524774
|
}
|
|
524457
524775
|
profileCheckpoint("action_before_setup");
|
|
524458
|
-
|
|
524776
|
+
startupLoadingIndicator?.update("Preparing workspace");
|
|
524459
524777
|
const setupStart = Date.now();
|
|
524460
524778
|
const {
|
|
524461
524779
|
setup: setup2
|
|
@@ -524472,7 +524790,6 @@ ${hint}` : hint;
|
|
|
524472
524790
|
commandsPromise?.catch(() => {});
|
|
524473
524791
|
agentDefsPromise?.catch(() => {});
|
|
524474
524792
|
await setupPromise;
|
|
524475
|
-
logForDebugging(`[STARTUP] setup() completed in ${Date.now() - setupStart}ms`);
|
|
524476
524793
|
profileCheckpoint("action_after_setup");
|
|
524477
524794
|
let effectiveReplayUserMessages = !!options.replayUserMessages;
|
|
524478
524795
|
if (false) {}
|
|
@@ -524491,10 +524808,9 @@ ${hint}` : hint;
|
|
|
524491
524808
|
const userSpecifiedModel = options.model === "default" ? getDefaultMainLoopModel() : options.model;
|
|
524492
524809
|
const userSpecifiedFallbackModel = fallbackModel === "default" ? getDefaultMainLoopModel() : fallbackModel;
|
|
524493
524810
|
const currentCwd2 = worktreeEnabled ? getCwd() : preSetupCwd;
|
|
524494
|
-
|
|
524811
|
+
startupLoadingIndicator?.update("Loading commands and agents");
|
|
524495
524812
|
const commandsStart = Date.now();
|
|
524496
524813
|
const [commands, agentDefinitionsResult] = await Promise.all([commandsPromise ?? getCommands(currentCwd2), agentDefsPromise ?? getAgentDefinitionsWithOverrides(currentCwd2)]);
|
|
524497
|
-
logForDebugging(`[STARTUP] Commands and agents loaded in ${Date.now() - commandsStart}ms`);
|
|
524498
524814
|
profileCheckpoint("action_commands_loaded");
|
|
524499
524815
|
let cliAgents = [];
|
|
524500
524816
|
if (agentsJson) {
|
|
@@ -524562,12 +524878,14 @@ ${inputPrompt}` : mainThreadAgentDefinition.initialPrompt;
|
|
|
524562
524878
|
if (advisorOption) {
|
|
524563
524879
|
logForDebugging(`[AdvisorTool] --advisor ${advisorOption}`);
|
|
524564
524880
|
if (!modelSupportsAdvisor(resolvedInitialModel)) {
|
|
524881
|
+
startupLoadingIndicator?.stop();
|
|
524565
524882
|
process.stderr.write(source_default.red(`Error: The model "${resolvedInitialModel}" does not support the advisor tool.
|
|
524566
524883
|
`));
|
|
524567
524884
|
process.exit(1);
|
|
524568
524885
|
}
|
|
524569
524886
|
const normalizedAdvisorModel = normalizeModelStringForAPI(parseUserSpecifiedModel(advisorOption));
|
|
524570
524887
|
if (!isValidAdvisorModel(normalizedAdvisorModel)) {
|
|
524888
|
+
startupLoadingIndicator?.stop();
|
|
524571
524889
|
process.stderr.write(source_default.red(`Error: The model "${advisorOption}" cannot be used as an advisor.
|
|
524572
524890
|
`));
|
|
524573
524891
|
process.exit(1);
|
|
@@ -524614,6 +524932,7 @@ ${customInstructions}` : customInstructions;
|
|
|
524614
524932
|
let getFpsMetrics;
|
|
524615
524933
|
let stats2;
|
|
524616
524934
|
if (!isNonInteractiveSession) {
|
|
524935
|
+
startupLoadingIndicator?.update("Launching dashboard");
|
|
524617
524936
|
const ctx = getRenderContext(false);
|
|
524618
524937
|
getFpsMetrics = ctx.getFpsMetrics;
|
|
524619
524938
|
stats2 = ctx.stats;
|
|
@@ -524621,15 +524940,14 @@ ${customInstructions}` : customInstructions;
|
|
|
524621
524940
|
const {
|
|
524622
524941
|
createRoot: createRoot3
|
|
524623
524942
|
} = await Promise.resolve().then(() => (init_ink2(), exports_ink));
|
|
524943
|
+
startupLoadingIndicator?.stop();
|
|
524624
524944
|
root2 = await createRoot3(ctx.renderOptions);
|
|
524625
524945
|
logEvent("tengu_timer", {
|
|
524626
524946
|
event: "startup",
|
|
524627
524947
|
durationMs: Math.round(process.uptime() * 1000)
|
|
524628
524948
|
});
|
|
524629
|
-
logForDebugging("[STARTUP] Running showSetupScreens()...");
|
|
524630
524949
|
const setupScreensStart = Date.now();
|
|
524631
524950
|
const onboardingShown = await showSetupScreens(root2, permissionMode, allowDangerouslySkipPermissions, commands, enableClaudeInChrome, devChannels);
|
|
524632
|
-
logForDebugging(`[STARTUP] showSetupScreens() completed in ${Date.now() - setupScreensStart}ms`);
|
|
524633
524951
|
if (false) {}
|
|
524634
524952
|
if (false) {}
|
|
524635
524953
|
if (onboardingShown && prompt?.trim().toLowerCase() === "/login") {
|
|
@@ -524775,7 +525093,7 @@ ${customInstructions}` : customInstructions;
|
|
|
524775
525093
|
}
|
|
524776
525094
|
}
|
|
524777
525095
|
logForDiagnosticsNoPII("info", "started", {
|
|
524778
|
-
version: "1.0.
|
|
525096
|
+
version: "1.0.6",
|
|
524779
525097
|
is_native_binary: isInBundledMode()
|
|
524780
525098
|
});
|
|
524781
525099
|
registerCleanup(async () => {
|
|
@@ -525559,7 +525877,7 @@ Usage: localclawd --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
525559
525877
|
pendingHookMessages
|
|
525560
525878
|
}, renderAndRun);
|
|
525561
525879
|
}
|
|
525562
|
-
}).version("1.0.
|
|
525880
|
+
}).version("1.0.6 (localClawd)", "-v, --version", "Output the version number");
|
|
525563
525881
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
525564
525882
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
525565
525883
|
if (canUserConfigureAdvisor()) {
|
|
@@ -526016,6 +526334,7 @@ var init_main3 = __esm(() => {
|
|
|
526016
526334
|
init_Shell();
|
|
526017
526335
|
init_sessionRestore();
|
|
526018
526336
|
init_constants2();
|
|
526337
|
+
init_startupLoading();
|
|
526019
526338
|
init_stringUtils();
|
|
526020
526339
|
init_state();
|
|
526021
526340
|
init_migrateAutoUpdatesToSettings();
|
|
@@ -526066,7 +526385,7 @@ if (false) {}
|
|
|
526066
526385
|
async function main2() {
|
|
526067
526386
|
const args = process.argv.slice(2);
|
|
526068
526387
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
526069
|
-
console.log(`${"1.0.
|
|
526388
|
+
console.log(`${"1.0.6"} (localclawd)`);
|
|
526070
526389
|
return;
|
|
526071
526390
|
}
|
|
526072
526391
|
const {
|
|
@@ -526150,4 +526469,4 @@ async function main2() {
|
|
|
526150
526469
|
}
|
|
526151
526470
|
main2();
|
|
526152
526471
|
|
|
526153
|
-
//# debugId=
|
|
526472
|
+
//# debugId=53D85FDAF878BEF864756E2164756E21
|