localclawd 1.0.4 → 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/README.md +2 -1
- package/dist/cli.mjs +1124 -517
- 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(() => {
|
|
@@ -337535,29 +337578,134 @@ var init_readFileInRange = __esm(() => {
|
|
|
337535
337578
|
function parseTags(raw) {
|
|
337536
337579
|
if (!raw)
|
|
337537
337580
|
return [];
|
|
337538
|
-
if (Array.isArray(raw))
|
|
337581
|
+
if (Array.isArray(raw))
|
|
337539
337582
|
return raw.filter((t) => typeof t === "string").map((t) => t.trim().toLowerCase()).filter(Boolean);
|
|
337540
|
-
|
|
337541
|
-
if (typeof raw === "string") {
|
|
337583
|
+
if (typeof raw === "string")
|
|
337542
337584
|
return raw.split(/[,\s]+/).map((t) => t.trim().toLowerCase()).filter(Boolean);
|
|
337543
|
-
}
|
|
337544
337585
|
return [];
|
|
337545
337586
|
}
|
|
337546
337587
|
function extractQueryTags(query2) {
|
|
337547
|
-
return query2.toLowerCase().replace(/[^a-z0-9\s_-]/g, " ").split(/\s+/).map((t) => t.trim()).filter((t) => t.length >= 2 && !STOP_WORDS.has(t)).slice(0,
|
|
337588
|
+
return query2.toLowerCase().replace(/[^a-z0-9\s_-]/g, " ").split(/\s+/).map((t) => t.trim()).filter((t) => t.length >= 2 && !STOP_WORDS.has(t)).slice(0, 24);
|
|
337589
|
+
}
|
|
337590
|
+
function gradeOf(blade) {
|
|
337591
|
+
let k2 = 0;
|
|
337592
|
+
let b3 = blade;
|
|
337593
|
+
while (b3) {
|
|
337594
|
+
k2 += b3 & 1;
|
|
337595
|
+
b3 >>>= 1;
|
|
337596
|
+
}
|
|
337597
|
+
return k2;
|
|
337598
|
+
}
|
|
337599
|
+
function revSign(grade) {
|
|
337600
|
+
return grade * (grade - 1) / 2 % 2 === 0 ? 1 : -1;
|
|
337601
|
+
}
|
|
337602
|
+
function mvGeometricInner(A, B2) {
|
|
337603
|
+
let sum = 0;
|
|
337604
|
+
for (const [blade, coeff] of A) {
|
|
337605
|
+
const bCoeff = B2.get(blade);
|
|
337606
|
+
if (bCoeff === undefined)
|
|
337607
|
+
continue;
|
|
337608
|
+
const grade = gradeOf(blade);
|
|
337609
|
+
sum += revSign(grade) * coeff * bCoeff;
|
|
337610
|
+
}
|
|
337611
|
+
return sum;
|
|
337612
|
+
}
|
|
337613
|
+
function mvNormSquared(M3) {
|
|
337614
|
+
let sum = 0;
|
|
337615
|
+
for (const [blade, coeff] of M3) {
|
|
337616
|
+
const grade = gradeOf(blade);
|
|
337617
|
+
sum += Math.abs(revSign(grade)) * coeff * coeff;
|
|
337618
|
+
}
|
|
337619
|
+
return sum;
|
|
337548
337620
|
}
|
|
337549
|
-
function
|
|
337550
|
-
|
|
337621
|
+
function mvCosineSimilarity(A, B2) {
|
|
337622
|
+
const normA = Math.sqrt(mvNormSquared(A));
|
|
337623
|
+
const normB = Math.sqrt(mvNormSquared(B2));
|
|
337624
|
+
if (normA === 0 || normB === 0)
|
|
337551
337625
|
return 0;
|
|
337552
|
-
|
|
337553
|
-
|
|
337554
|
-
|
|
337555
|
-
|
|
337556
|
-
|
|
337557
|
-
|
|
337626
|
+
return Math.max(-1, Math.min(1, mvGeometricInner(A, B2) / (normA * normB)));
|
|
337627
|
+
}
|
|
337628
|
+
function buildTagVocabulary(memories) {
|
|
337629
|
+
const freq = new Map;
|
|
337630
|
+
for (const m2 of memories)
|
|
337631
|
+
for (const t of m2.tags)
|
|
337632
|
+
freq.set(t, (freq.get(t) ?? 0) + 1);
|
|
337633
|
+
const sorted = [...freq.entries()].sort((a2, b3) => b3[1] - a2[1]);
|
|
337634
|
+
const vocab = new Map;
|
|
337635
|
+
for (let i3 = 0;i3 < Math.min(sorted.length, MAX_DIM); i3++)
|
|
337636
|
+
vocab.set(sorted[i3][0], i3);
|
|
337637
|
+
return vocab;
|
|
337638
|
+
}
|
|
337639
|
+
function buildIdfWeights(memories, vocab) {
|
|
337640
|
+
const N2 = memories.length;
|
|
337641
|
+
const df = new Map;
|
|
337642
|
+
for (const m2 of memories) {
|
|
337643
|
+
const seen = new Set;
|
|
337644
|
+
for (const t of m2.tags) {
|
|
337645
|
+
const idx = vocab.get(t);
|
|
337646
|
+
if (idx !== undefined && !seen.has(idx)) {
|
|
337647
|
+
seen.add(idx);
|
|
337648
|
+
df.set(idx, (df.get(idx) ?? 0) + 1);
|
|
337649
|
+
}
|
|
337650
|
+
}
|
|
337558
337651
|
}
|
|
337559
|
-
const
|
|
337560
|
-
|
|
337652
|
+
const weights = new Map;
|
|
337653
|
+
for (const [bit, count3] of df)
|
|
337654
|
+
weights.set(bit, Math.log(1 + N2 / count3));
|
|
337655
|
+
return weights;
|
|
337656
|
+
}
|
|
337657
|
+
function tagsToMultivector(tags, vocab, idfWeights, coocIndex, maxCoocPerMemory) {
|
|
337658
|
+
const mv = new Map;
|
|
337659
|
+
const n2 = tags.length;
|
|
337660
|
+
if (n2 > 0)
|
|
337661
|
+
mv.set(0, 1 / Math.sqrt(n2));
|
|
337662
|
+
const bits2 = [];
|
|
337663
|
+
for (const t of tags) {
|
|
337664
|
+
const idx = vocab.get(t);
|
|
337665
|
+
if (idx === undefined)
|
|
337666
|
+
continue;
|
|
337667
|
+
const blade = 1 << idx;
|
|
337668
|
+
const w2 = idfWeights.get(idx) ?? 1;
|
|
337669
|
+
mv.set(blade, (mv.get(blade) ?? 0) + w2);
|
|
337670
|
+
bits2.push(idx);
|
|
337671
|
+
}
|
|
337672
|
+
for (let a2 = 0;a2 < bits2.length; a2++) {
|
|
337673
|
+
for (let b3 = a2 + 1;b3 < bits2.length; b3++) {
|
|
337674
|
+
const ta = [...vocab.entries()].find(([, v2]) => v2 === bits2[a2])?.[0];
|
|
337675
|
+
const tb = [...vocab.entries()].find(([, v2]) => v2 === bits2[b3])?.[0];
|
|
337676
|
+
if (!ta || !tb)
|
|
337677
|
+
continue;
|
|
337678
|
+
const coCount = coocIndex.get(ta)?.get(tb) ?? 0;
|
|
337679
|
+
if (coCount === 0)
|
|
337680
|
+
continue;
|
|
337681
|
+
const w_a = idfWeights.get(bits2[a2]) ?? 1;
|
|
337682
|
+
const w_b = idfWeights.get(bits2[b3]) ?? 1;
|
|
337683
|
+
const blade = 1 << bits2[a2] | 1 << bits2[b3];
|
|
337684
|
+
const coStrength = Math.sqrt(coCount / (maxCoocPerMemory || 1));
|
|
337685
|
+
mv.set(blade, (mv.get(blade) ?? 0) + Math.sqrt(w_a * w_b) * coStrength);
|
|
337686
|
+
}
|
|
337687
|
+
}
|
|
337688
|
+
return mv;
|
|
337689
|
+
}
|
|
337690
|
+
function fcaNeighborhoodScore(queryTags, memoryTags) {
|
|
337691
|
+
if (queryTags.length === 0)
|
|
337692
|
+
return 0;
|
|
337693
|
+
const memSet = new Set(memoryTags);
|
|
337694
|
+
let covered = 0;
|
|
337695
|
+
for (const qt of queryTags)
|
|
337696
|
+
if (memSet.has(qt))
|
|
337697
|
+
covered++;
|
|
337698
|
+
const ratio = covered / queryTags.length;
|
|
337699
|
+
return ratio * ratio;
|
|
337700
|
+
}
|
|
337701
|
+
function rotorDecay(ageMs, halfLifeMs = HALF_LIFE_MS, nowMs = Date.now()) {
|
|
337702
|
+
const lambda = Math.LN2 / halfLifeMs;
|
|
337703
|
+
const baseDecay = Math.exp(-lambda * Math.max(0, ageMs));
|
|
337704
|
+
const currentPhase = nowMs % ANNUAL_PERIOD_MS / ANNUAL_PERIOD_MS;
|
|
337705
|
+
const memPhase = (nowMs - ageMs) % ANNUAL_PERIOD_MS / ANNUAL_PERIOD_MS;
|
|
337706
|
+
const phaseDiff = currentPhase - memPhase;
|
|
337707
|
+
const periodicBoost = 1 + ROTOR_AMPLITUDE * Math.cos(2 * Math.PI * phaseDiff);
|
|
337708
|
+
return baseDecay * periodicBoost;
|
|
337561
337709
|
}
|
|
337562
337710
|
function buildCooccurrenceIndex(memories) {
|
|
337563
337711
|
const index = new Map;
|
|
@@ -337569,46 +337717,41 @@ function buildCooccurrenceIndex(memories) {
|
|
|
337569
337717
|
};
|
|
337570
337718
|
for (const mem of memories) {
|
|
337571
337719
|
const tags = mem.tags;
|
|
337572
|
-
for (let i3 = 0;i3 < tags.length; i3++)
|
|
337720
|
+
for (let i3 = 0;i3 < tags.length; i3++)
|
|
337573
337721
|
for (let j2 = i3 + 1;j2 < tags.length; j2++) {
|
|
337574
337722
|
bump(tags[i3], tags[j2]);
|
|
337575
337723
|
bump(tags[j2], tags[i3]);
|
|
337576
337724
|
}
|
|
337577
|
-
}
|
|
337578
337725
|
}
|
|
337579
337726
|
return index;
|
|
337580
337727
|
}
|
|
337581
|
-
function
|
|
337582
|
-
|
|
337583
|
-
|
|
337584
|
-
|
|
337585
|
-
|
|
337586
|
-
|
|
337587
|
-
|
|
337588
|
-
|
|
337589
|
-
|
|
337590
|
-
|
|
337591
|
-
|
|
337592
|
-
|
|
337593
|
-
score += Math.log1p(coCount);
|
|
337594
|
-
}
|
|
337595
|
-
}
|
|
337596
|
-
}
|
|
337597
|
-
const maxPossible = queryTags.length * memoryTags.length * Math.log1p(1);
|
|
337598
|
-
return maxPossible === 0 ? 0 : Math.min(1, score / maxPossible);
|
|
337599
|
-
}
|
|
337600
|
-
function latticeRelevanceScore(queryTags, memory, index, nowMs = Date.now()) {
|
|
337601
|
-
const jaccard = jaccardSimilarity(queryTags, memory.tags);
|
|
337602
|
-
const cooc = cooccurrenceBonus(queryTags, memory.tags, index);
|
|
337728
|
+
function maxCoocCount(index) {
|
|
337729
|
+
let max2 = 1;
|
|
337730
|
+
for (const row of index.values())
|
|
337731
|
+
for (const v2 of row.values())
|
|
337732
|
+
if (v2 > max2)
|
|
337733
|
+
max2 = v2;
|
|
337734
|
+
return max2;
|
|
337735
|
+
}
|
|
337736
|
+
function geometricLatticeScore(queryMv, queryTags, memory, vocab, idfWeights, coocIndex, maxCooc, nowMs) {
|
|
337737
|
+
const memMv = tagsToMultivector(memory.tags, vocab, idfWeights, coocIndex, maxCooc);
|
|
337738
|
+
const geoSim = Math.max(0, mvCosineSimilarity(queryMv, memMv));
|
|
337739
|
+
const fcaScore = fcaNeighborhoodScore(queryTags, memory.tags);
|
|
337603
337740
|
const ageMs = Math.max(0, nowMs - memory.mtimeMs);
|
|
337604
|
-
const
|
|
337605
|
-
|
|
337606
|
-
return JACCARD_WEIGHT * jaccard + COOCCURRENCE_WEIGHT * cooc + RECENCY_WEIGHT * recency;
|
|
337741
|
+
const temporal = rotorDecay(ageMs, HALF_LIFE_MS, nowMs);
|
|
337742
|
+
return GEO_WEIGHT * geoSim + FCA_WEIGHT * fcaScore + TEMPORAL_WEIGHT * temporal;
|
|
337607
337743
|
}
|
|
337608
|
-
function rankByLatticeRelevance(queryTags, memories,
|
|
337744
|
+
function rankByLatticeRelevance(queryTags, memories, _index, nowMs = Date.now()) {
|
|
337745
|
+
if (memories.length === 0)
|
|
337746
|
+
return [];
|
|
337747
|
+
const vocab = buildTagVocabulary(memories);
|
|
337748
|
+
const idfWeights = buildIdfWeights(memories, vocab);
|
|
337749
|
+
const coocIndex = buildCooccurrenceIndex(memories);
|
|
337750
|
+
const maxCooc = maxCoocCount(coocIndex);
|
|
337751
|
+
const queryMv = tagsToMultivector(queryTags, vocab, idfWeights, coocIndex, maxCooc);
|
|
337609
337752
|
return memories.map((mem) => ({
|
|
337610
337753
|
...mem,
|
|
337611
|
-
latticeScore:
|
|
337754
|
+
latticeScore: geometricLatticeScore(queryMv, queryTags, mem, vocab, idfWeights, coocIndex, maxCooc, nowMs)
|
|
337612
337755
|
})).sort((a2, b3) => b3.latticeScore - a2.latticeScore);
|
|
337613
337756
|
}
|
|
337614
337757
|
function topLatticeMemories(query2, memories, topN = 5) {
|
|
@@ -337617,7 +337760,7 @@ function topLatticeMemories(query2, memories, topN = 5) {
|
|
|
337617
337760
|
const ranked = rankByLatticeRelevance(queryTags, memories, index);
|
|
337618
337761
|
return ranked.filter((m2) => m2.latticeScore > 0).slice(0, topN);
|
|
337619
337762
|
}
|
|
337620
|
-
var STOP_WORDS,
|
|
337763
|
+
var STOP_WORDS, MAX_DIM = 20, HALF_LIFE_MS, ANNUAL_PERIOD_MS, ROTOR_AMPLITUDE = 0.08, GEO_WEIGHT = 0.6, FCA_WEIGHT = 0.28, TEMPORAL_WEIGHT = 0.12;
|
|
337621
337764
|
var init_lattice = __esm(() => {
|
|
337622
337765
|
STOP_WORDS = new Set([
|
|
337623
337766
|
"a",
|
|
@@ -337679,8 +337822,24 @@ var init_lattice = __esm(() => {
|
|
|
337679
337822
|
"me",
|
|
337680
337823
|
"him",
|
|
337681
337824
|
"us",
|
|
337682
|
-
"them"
|
|
337825
|
+
"them",
|
|
337826
|
+
"not",
|
|
337827
|
+
"no",
|
|
337828
|
+
"if",
|
|
337829
|
+
"then",
|
|
337830
|
+
"so",
|
|
337831
|
+
"up",
|
|
337832
|
+
"out",
|
|
337833
|
+
"about",
|
|
337834
|
+
"into",
|
|
337835
|
+
"over",
|
|
337836
|
+
"after",
|
|
337837
|
+
"from",
|
|
337838
|
+
"get",
|
|
337839
|
+
"use"
|
|
337683
337840
|
]);
|
|
337841
|
+
HALF_LIFE_MS = 30 * 24 * 60 * 60 * 1000;
|
|
337842
|
+
ANNUAL_PERIOD_MS = 365.25 * 24 * 60 * 60 * 1000;
|
|
337684
337843
|
});
|
|
337685
337844
|
|
|
337686
337845
|
// src/memdir/memoryTypes.ts
|
|
@@ -339264,7 +339423,7 @@ function getAnthropicEnvMetadata() {
|
|
|
339264
339423
|
function getBuildAgeMinutes() {
|
|
339265
339424
|
if (false)
|
|
339266
339425
|
;
|
|
339267
|
-
const buildTime = new Date("2026-04-
|
|
339426
|
+
const buildTime = new Date("2026-04-05T19:01:49.000Z").getTime();
|
|
339268
339427
|
if (isNaN(buildTime))
|
|
339269
339428
|
return;
|
|
339270
339429
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -362972,7 +363131,7 @@ function Feedback({
|
|
|
362972
363131
|
platform: env4.platform,
|
|
362973
363132
|
gitRepo: envInfo.isGit,
|
|
362974
363133
|
terminal: env4.terminal,
|
|
362975
|
-
version: "1.0.
|
|
363134
|
+
version: "1.0.6",
|
|
362976
363135
|
transcript: normalizeMessagesForAPI(messages),
|
|
362977
363136
|
errors: sanitizedErrors,
|
|
362978
363137
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -363164,7 +363323,7 @@ function Feedback({
|
|
|
363164
363323
|
", ",
|
|
363165
363324
|
env4.terminal,
|
|
363166
363325
|
", v",
|
|
363167
|
-
"1.0.
|
|
363326
|
+
"1.0.6"
|
|
363168
363327
|
]
|
|
363169
363328
|
}, undefined, true, undefined, this)
|
|
363170
363329
|
]
|
|
@@ -363270,7 +363429,7 @@ ${sanitizedDescription}
|
|
|
363270
363429
|
` + `**Environment Info**
|
|
363271
363430
|
` + `- Platform: ${env4.platform}
|
|
363272
363431
|
` + `- Terminal: ${env4.terminal}
|
|
363273
|
-
` + `- Version: ${"1.0.
|
|
363432
|
+
` + `- Version: ${"1.0.6"}
|
|
363274
363433
|
` + `- Feedback ID: ${feedbackId}
|
|
363275
363434
|
` + `
|
|
363276
363435
|
**Errors**
|
|
@@ -366383,7 +366542,7 @@ function buildPrimarySection() {
|
|
|
366383
366542
|
}, undefined, false, undefined, this);
|
|
366384
366543
|
return [{
|
|
366385
366544
|
label: "Version",
|
|
366386
|
-
value: "1.0.
|
|
366545
|
+
value: "1.0.6"
|
|
366387
366546
|
}, {
|
|
366388
366547
|
label: "Session name",
|
|
366389
366548
|
value: nameValue
|
|
@@ -367757,6 +367916,10 @@ var init_ModelPicker = __esm(() => {
|
|
|
367757
367916
|
});
|
|
367758
367917
|
|
|
367759
367918
|
// src/components/LocalBackendSetup.tsx
|
|
367919
|
+
var exports_LocalBackendSetup = {};
|
|
367920
|
+
__export(exports_LocalBackendSetup, {
|
|
367921
|
+
LocalBackendSetup: () => LocalBackendSetup
|
|
367922
|
+
});
|
|
367760
367923
|
function getProviderGuidance(provider) {
|
|
367761
367924
|
switch (provider) {
|
|
367762
367925
|
case "vllm":
|
|
@@ -367784,7 +367947,8 @@ function LocalBackendSetup({
|
|
|
367784
367947
|
onComplete,
|
|
367785
367948
|
onCancel,
|
|
367786
367949
|
title = "Configure your model backend",
|
|
367787
|
-
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
|
|
367788
367952
|
}) {
|
|
367789
367953
|
const normalizedInitial = import_react99.useMemo(() => normalizeLocalLLMConfig(initialConfig), [initialConfig]);
|
|
367790
367954
|
const [step, setStep] = import_react99.useState("provider");
|
|
@@ -367834,11 +367998,20 @@ function LocalBackendSetup({
|
|
|
367834
367998
|
setStep("apiKey");
|
|
367835
367999
|
}
|
|
367836
368000
|
function submitApiKey(value) {
|
|
367837
|
-
|
|
368001
|
+
const nextConfig = {
|
|
367838
368002
|
provider,
|
|
367839
368003
|
baseUrl,
|
|
367840
368004
|
model,
|
|
367841
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
|
|
367842
368015
|
});
|
|
367843
368016
|
}
|
|
367844
368017
|
const providerLabel = getLocalLLMProviderLabel(provider);
|
|
@@ -367953,6 +368126,41 @@ function LocalBackendSetup({
|
|
|
367953
368126
|
}, undefined, false, undefined, this)
|
|
367954
368127
|
]
|
|
367955
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,
|
|
367956
368164
|
error5 ? /* @__PURE__ */ jsx_dev_runtime171.jsxDEV(ThemedText, {
|
|
367957
368165
|
color: "error",
|
|
367958
368166
|
children: error5
|
|
@@ -370448,7 +370656,7 @@ function Config({
|
|
|
370448
370656
|
}
|
|
370449
370657
|
}, undefined, false, undefined, this)
|
|
370450
370658
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime177.jsxDEV(ChannelDowngradeDialog, {
|
|
370451
|
-
currentVersion: "1.0.
|
|
370659
|
+
currentVersion: "1.0.6",
|
|
370452
370660
|
onChoice: (choice) => {
|
|
370453
370661
|
setShowSubmenu(null);
|
|
370454
370662
|
setTabsHidden(false);
|
|
@@ -370460,7 +370668,7 @@ function Config({
|
|
|
370460
370668
|
autoUpdatesChannel: "stable"
|
|
370461
370669
|
};
|
|
370462
370670
|
if (choice === "stay") {
|
|
370463
|
-
newSettings.minimumVersion = "1.0.
|
|
370671
|
+
newSettings.minimumVersion = "1.0.6";
|
|
370464
370672
|
}
|
|
370465
370673
|
updateSettingsForSource("userSettings", newSettings);
|
|
370466
370674
|
setSettingsData((prev_27) => ({
|
|
@@ -376934,14 +377142,84 @@ var exports_keepgoing = {};
|
|
|
376934
377142
|
__export(exports_keepgoing, {
|
|
376935
377143
|
call: () => call19
|
|
376936
377144
|
});
|
|
377145
|
+
function resetSession(focus) {
|
|
377146
|
+
sessionRound = 0;
|
|
377147
|
+
sessionFocus = focus;
|
|
377148
|
+
}
|
|
377149
|
+
function incrementRound() {
|
|
377150
|
+
sessionRound += 1;
|
|
377151
|
+
return sessionRound;
|
|
377152
|
+
}
|
|
377153
|
+
function parseMaxRounds(args) {
|
|
377154
|
+
const parts = args.trim().split(/\s+/);
|
|
377155
|
+
let maxRounds = DEFAULT_MAX_ROUNDS;
|
|
377156
|
+
const focusParts = [];
|
|
377157
|
+
for (const part of parts) {
|
|
377158
|
+
if (part === "unlimited" || part === "0") {
|
|
377159
|
+
maxRounds = Infinity;
|
|
377160
|
+
} else if (/^\d+$/.test(part)) {
|
|
377161
|
+
maxRounds = parseInt(part, 10);
|
|
377162
|
+
} else if (part) {
|
|
377163
|
+
focusParts.push(part);
|
|
377164
|
+
}
|
|
377165
|
+
}
|
|
377166
|
+
return { maxRounds, focus: focusParts.join(" ") };
|
|
377167
|
+
}
|
|
377168
|
+
function detectStopSignal(text) {
|
|
377169
|
+
for (const { pattern, label } of STOP_PATTERNS)
|
|
377170
|
+
if (pattern.test(text))
|
|
377171
|
+
return label;
|
|
377172
|
+
return null;
|
|
377173
|
+
}
|
|
377174
|
+
function buildContinuationPrompt(round2, maxRounds, focus) {
|
|
377175
|
+
const roundInfo = isFinite(maxRounds) ? `Round ${round2} of ${maxRounds}` : `Round ${round2} (unlimited)`;
|
|
377176
|
+
const focusLine = focus ? `
|
|
377177
|
+
Current focus: ${focus}
|
|
377178
|
+
` : "";
|
|
377179
|
+
return `[KEEP GOING — AUTONOMOUS OPERATION — ${roundInfo}]
|
|
377180
|
+
${focusLine}
|
|
377181
|
+
You are in full autonomous mode. Work continuously until all tasks are done.
|
|
377182
|
+
|
|
377183
|
+
━━━ CAPABILITIES ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
377184
|
+
You have access to ALL tools:
|
|
377185
|
+
• Read, Write, Edit, MultiEdit — file operations
|
|
377186
|
+
• Bash — run commands, builds, tests, git
|
|
377187
|
+
• Glob, Grep — search codebase
|
|
377188
|
+
• WebFetch, WebSearch — internet access
|
|
377189
|
+
• Agent — SPAWN SUBAGENTS for parallel/complex work
|
|
377190
|
+
• TodoCreate, TodoUpdate — task tracking
|
|
377191
|
+
|
|
377192
|
+
SPAWN SUBAGENTS when:
|
|
377193
|
+
→ A sub-task is independent of current work (run in parallel)
|
|
377194
|
+
→ A task is complex enough to benefit from a fresh context
|
|
377195
|
+
→ You need specialized work done concurrently (e.g., research + implement)
|
|
377196
|
+
|
|
377197
|
+
━━━ AUTONOMOUS RULES ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
377198
|
+
1. DO NOT ask for confirmation between steps — proceed immediately
|
|
377199
|
+
2. After completing a major milestone, state: "Completed: <what was done>"
|
|
377200
|
+
3. After significant changes, run tests/builds to verify correctness
|
|
377201
|
+
4. Use git commits after each logical unit of work
|
|
377202
|
+
5. If you encounter a blocker you cannot resolve autonomously, emit:
|
|
377203
|
+
NEEDS INPUT: <specific question>
|
|
377204
|
+
Then stop and wait — do NOT guess or assume critical details
|
|
377205
|
+
6. When ALL work is truly complete, emit:
|
|
377206
|
+
TASK COMPLETE: <one-sentence summary of everything accomplished>
|
|
377207
|
+
|
|
377208
|
+
━━━ CONTINUE NOW ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
377209
|
+
Pick up exactly where you left off. Do not re-explain what was already done.
|
|
377210
|
+
Proceed directly with the next action.`;
|
|
377211
|
+
}
|
|
376937
377212
|
function KeepGoingBanner({
|
|
376938
|
-
|
|
377213
|
+
round: round2,
|
|
377214
|
+
maxRounds,
|
|
377215
|
+
focus,
|
|
376939
377216
|
onReady
|
|
376940
377217
|
}) {
|
|
376941
377218
|
React57.useEffect(() => {
|
|
376942
377219
|
const id = setTimeout(onReady, 0);
|
|
376943
377220
|
return () => clearTimeout(id);
|
|
376944
377221
|
}, [onReady]);
|
|
377222
|
+
const roundDisplay = isFinite(maxRounds) ? `${round2}/${maxRounds}` : `${round2}/∞`;
|
|
376945
377223
|
return /* @__PURE__ */ jsx_dev_runtime198.jsxDEV(ThemedBox_default, {
|
|
376946
377224
|
flexDirection: "column",
|
|
376947
377225
|
marginTop: 1,
|
|
@@ -376949,77 +377227,122 @@ function KeepGoingBanner({
|
|
|
376949
377227
|
/* @__PURE__ */ jsx_dev_runtime198.jsxDEV(ThemedText, {
|
|
376950
377228
|
bold: true,
|
|
376951
377229
|
color: "cyan",
|
|
376952
|
-
children:
|
|
377230
|
+
children: `◆ Keep Going [round ${roundDisplay}]`
|
|
376953
377231
|
}, undefined, false, undefined, this),
|
|
376954
|
-
|
|
377232
|
+
focus ? /* @__PURE__ */ jsx_dev_runtime198.jsxDEV(ThemedText, {
|
|
376955
377233
|
dimColor: true,
|
|
376956
|
-
|
|
377234
|
+
color: "cyan",
|
|
377235
|
+
children: ` ↳ Focus: ${focus}`
|
|
376957
377236
|
}, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime198.jsxDEV(ThemedText, {
|
|
376958
377237
|
dimColor: true,
|
|
376959
|
-
children: " Press Ctrl+C or type to intervene at any time"
|
|
377238
|
+
children: " ↳ Press Ctrl+C or type to intervene at any time"
|
|
377239
|
+
}, undefined, false, undefined, this)
|
|
377240
|
+
]
|
|
377241
|
+
}, undefined, true, undefined, this);
|
|
377242
|
+
}
|
|
377243
|
+
function KeepGoingDone({
|
|
377244
|
+
round: round2,
|
|
377245
|
+
reason,
|
|
377246
|
+
onReady
|
|
377247
|
+
}) {
|
|
377248
|
+
React57.useEffect(() => {
|
|
377249
|
+
const id = setTimeout(onReady, 0);
|
|
377250
|
+
return () => clearTimeout(id);
|
|
377251
|
+
}, [onReady]);
|
|
377252
|
+
return /* @__PURE__ */ jsx_dev_runtime198.jsxDEV(ThemedBox_default, {
|
|
377253
|
+
flexDirection: "column",
|
|
377254
|
+
marginTop: 1,
|
|
377255
|
+
children: [
|
|
377256
|
+
/* @__PURE__ */ jsx_dev_runtime198.jsxDEV(ThemedText, {
|
|
377257
|
+
bold: true,
|
|
377258
|
+
color: "green",
|
|
377259
|
+
children: `◆ Keep Going — stopped after ${round2} rounds`
|
|
376960
377260
|
}, undefined, false, undefined, this),
|
|
376961
377261
|
/* @__PURE__ */ jsx_dev_runtime198.jsxDEV(ThemedText, {
|
|
376962
377262
|
dimColor: true,
|
|
376963
|
-
children: `
|
|
377263
|
+
children: ` Reason: ${reason}`
|
|
376964
377264
|
}, undefined, false, undefined, this)
|
|
376965
377265
|
]
|
|
376966
377266
|
}, undefined, true, undefined, this);
|
|
376967
377267
|
}
|
|
376968
|
-
function
|
|
376969
|
-
|
|
377268
|
+
function KeepGoingCapReached({
|
|
377269
|
+
round: round2,
|
|
377270
|
+
maxRounds,
|
|
377271
|
+
focus,
|
|
376970
377272
|
onReady
|
|
376971
377273
|
}) {
|
|
376972
377274
|
React57.useEffect(() => {
|
|
376973
377275
|
const id = setTimeout(onReady, 0);
|
|
376974
377276
|
return () => clearTimeout(id);
|
|
376975
377277
|
}, [onReady]);
|
|
377278
|
+
const resumeCmd = focus ? `/keepgoing ${focus}` : "/keepgoing";
|
|
376976
377279
|
return /* @__PURE__ */ jsx_dev_runtime198.jsxDEV(ThemedBox_default, {
|
|
377280
|
+
flexDirection: "column",
|
|
376977
377281
|
marginTop: 1,
|
|
376978
|
-
children:
|
|
376979
|
-
|
|
376980
|
-
|
|
376981
|
-
|
|
376982
|
-
|
|
376983
|
-
|
|
377282
|
+
children: [
|
|
377283
|
+
/* @__PURE__ */ jsx_dev_runtime198.jsxDEV(ThemedText, {
|
|
377284
|
+
bold: true,
|
|
377285
|
+
color: "yellow",
|
|
377286
|
+
children: `◆ Keep Going — round cap reached (${round2}/${maxRounds})`
|
|
377287
|
+
}, undefined, false, undefined, this),
|
|
377288
|
+
/* @__PURE__ */ jsx_dev_runtime198.jsxDEV(ThemedText, {
|
|
377289
|
+
dimColor: true,
|
|
377290
|
+
children: ` Type ${resumeCmd} to continue for another ${maxRounds} rounds.`
|
|
377291
|
+
}, undefined, false, undefined, this)
|
|
377292
|
+
]
|
|
377293
|
+
}, undefined, true, undefined, this);
|
|
376984
377294
|
}
|
|
376985
|
-
var React57, jsx_dev_runtime198,
|
|
376986
|
-
|
|
376987
|
-
|
|
376988
|
-
|
|
376989
|
-
|
|
376990
|
-
|
|
376991
|
-
TASK COMPLETE: <one-sentence summary>
|
|
376992
|
-
- If you are blocked and need user input, respond with:
|
|
376993
|
-
NEEDS INPUT: <what you need>
|
|
376994
|
-
- If you are unsure what the task is, ask briefly.
|
|
376995
|
-
|
|
376996
|
-
Begin.`, call19 = async (onDone, context8, args) => {
|
|
376997
|
-
const extraFocus = args?.trim() ?? "";
|
|
377295
|
+
var React57, jsx_dev_runtime198, sessionRound = 0, sessionFocus = "", DEFAULT_MAX_ROUNDS = 50, STOP_PATTERNS, call19 = async (onDone, context8, args) => {
|
|
377296
|
+
const rawArgs = args?.trim() ?? "";
|
|
377297
|
+
const { maxRounds, focus } = parseMaxRounds(rawArgs);
|
|
377298
|
+
if (sessionRound === 0 || focus && focus !== sessionFocus) {
|
|
377299
|
+
resetSession(focus);
|
|
377300
|
+
}
|
|
376998
377301
|
let stopReason = null;
|
|
376999
377302
|
context8.setMessages((prev) => {
|
|
377000
|
-
|
|
377001
|
-
|
|
377002
|
-
|
|
377303
|
+
if (prev.length === 0)
|
|
377304
|
+
return prev;
|
|
377305
|
+
for (let i3 = prev.length - 1;i3 >= 0; i3--) {
|
|
377306
|
+
const msg = prev[i3];
|
|
377307
|
+
if (msg.role !== "assistant")
|
|
377308
|
+
continue;
|
|
377309
|
+
const blocks = Array.isArray(msg.content) ? msg.content : [];
|
|
377003
377310
|
const text = blocks.filter((b3) => b3.type === "text").map((b3) => b3.text ?? "").join(`
|
|
377004
377311
|
`);
|
|
377005
|
-
|
|
377006
|
-
|
|
377007
|
-
} else if (text.includes("NEEDS INPUT:")) {
|
|
377008
|
-
stopReason = "paused — model needs input";
|
|
377009
|
-
}
|
|
377312
|
+
stopReason = detectStopSignal(text);
|
|
377313
|
+
break;
|
|
377010
377314
|
}
|
|
377011
377315
|
return prev;
|
|
377012
377316
|
});
|
|
377013
377317
|
if (stopReason !== null) {
|
|
377318
|
+
const finalRound = sessionRound;
|
|
377319
|
+
resetSession("");
|
|
377014
377320
|
return /* @__PURE__ */ jsx_dev_runtime198.jsxDEV(KeepGoingDone, {
|
|
377015
|
-
|
|
377016
|
-
|
|
377321
|
+
round: finalRound,
|
|
377322
|
+
reason: stopReason,
|
|
377323
|
+
onReady: () => onDone(undefined)
|
|
377017
377324
|
}, undefined, false, undefined, this);
|
|
377018
377325
|
}
|
|
377019
|
-
const
|
|
377020
|
-
|
|
377021
|
-
|
|
377022
|
-
|
|
377326
|
+
const round2 = incrementRound();
|
|
377327
|
+
if (isFinite(maxRounds) && round2 > maxRounds) {
|
|
377328
|
+
const finalRound = sessionRound;
|
|
377329
|
+
resetSession("");
|
|
377330
|
+
return /* @__PURE__ */ jsx_dev_runtime198.jsxDEV(KeepGoingCapReached, {
|
|
377331
|
+
round: finalRound,
|
|
377332
|
+
maxRounds,
|
|
377333
|
+
focus,
|
|
377334
|
+
onReady: () => onDone(undefined)
|
|
377335
|
+
}, undefined, false, undefined, this);
|
|
377336
|
+
}
|
|
377337
|
+
const prompt = buildContinuationPrompt(round2, maxRounds, focus);
|
|
377338
|
+
const nextArgs = [];
|
|
377339
|
+
if (!isFinite(maxRounds))
|
|
377340
|
+
nextArgs.push("unlimited");
|
|
377341
|
+
else if (maxRounds !== DEFAULT_MAX_ROUNDS)
|
|
377342
|
+
nextArgs.push(String(maxRounds));
|
|
377343
|
+
if (focus)
|
|
377344
|
+
nextArgs.push(focus);
|
|
377345
|
+
const nextCmd = `/keepgoing${nextArgs.length ? " " + nextArgs.join(" ") : ""}`;
|
|
377023
377346
|
const handleReady = () => {
|
|
377024
377347
|
onDone(undefined, {
|
|
377025
377348
|
display: "system",
|
|
@@ -377030,7 +377353,9 @@ Focus specifically on: ${extraFocus}` : "");
|
|
|
377030
377353
|
});
|
|
377031
377354
|
};
|
|
377032
377355
|
return /* @__PURE__ */ jsx_dev_runtime198.jsxDEV(KeepGoingBanner, {
|
|
377033
|
-
|
|
377356
|
+
round: round2,
|
|
377357
|
+
maxRounds,
|
|
377358
|
+
focus,
|
|
377034
377359
|
onReady: handleReady
|
|
377035
377360
|
}, undefined, false, undefined, this);
|
|
377036
377361
|
};
|
|
@@ -377038,6 +377363,13 @@ var init_keepgoing = __esm(() => {
|
|
|
377038
377363
|
init_ink2();
|
|
377039
377364
|
React57 = __toESM(require_react(), 1);
|
|
377040
377365
|
jsx_dev_runtime198 = __toESM(require_jsx_dev_runtime(), 1);
|
|
377366
|
+
STOP_PATTERNS = [
|
|
377367
|
+
{ pattern: /TASK[_ ]COMPLETE:/i, label: "task complete" },
|
|
377368
|
+
{ pattern: /NEEDS[_ ]INPUT:/i, label: "paused — needs input" },
|
|
377369
|
+
{ pattern: /\bFINISHED\b/, label: "finished" },
|
|
377370
|
+
{ pattern: /ALL[_ ]DONE\b/i, label: "all done" },
|
|
377371
|
+
{ pattern: /WORK[_ ]COMPLETE:/i, label: "work complete" }
|
|
377372
|
+
];
|
|
377041
377373
|
});
|
|
377042
377374
|
|
|
377043
377375
|
// src/commands/keepgoing/index.ts
|
|
@@ -377076,16 +377408,26 @@ function ThinkHarderBanner({ onReady }) {
|
|
|
377076
377408
|
/* @__PURE__ */ jsx_dev_runtime199.jsxDEV(ThemedText, {
|
|
377077
377409
|
bold: true,
|
|
377078
377410
|
color: "magenta",
|
|
377079
|
-
children: "◆ Think Harder
|
|
377411
|
+
children: "◆ Think Harder — 3-iteration refinement pipeline ACTIVE"
|
|
377080
377412
|
}, undefined, false, undefined, this),
|
|
377081
|
-
/* @__PURE__ */ jsx_dev_runtime199.jsxDEV(
|
|
377082
|
-
|
|
377083
|
-
|
|
377084
|
-
|
|
377085
|
-
|
|
377086
|
-
|
|
377087
|
-
|
|
377088
|
-
|
|
377413
|
+
/* @__PURE__ */ jsx_dev_runtime199.jsxDEV(ThemedBox_default, {
|
|
377414
|
+
flexDirection: "column",
|
|
377415
|
+
marginLeft: 2,
|
|
377416
|
+
children: [
|
|
377417
|
+
/* @__PURE__ */ jsx_dev_runtime199.jsxDEV(ThemedText, {
|
|
377418
|
+
dimColor: true,
|
|
377419
|
+
children: "Phase 1 DRAFT → Phase 2 CRITIQUE → Phase 3 REFINE → Phase 4 VERIFY → Write"
|
|
377420
|
+
}, undefined, false, undefined, this),
|
|
377421
|
+
/* @__PURE__ */ jsx_dev_runtime199.jsxDEV(ThemedText, {
|
|
377422
|
+
dimColor: true,
|
|
377423
|
+
children: "Each code change must pass all four phases before being saved."
|
|
377424
|
+
}, undefined, false, undefined, this),
|
|
377425
|
+
/* @__PURE__ */ jsx_dev_runtime199.jsxDEV(ThemedText, {
|
|
377426
|
+
dimColor: true,
|
|
377427
|
+
children: "Use /thinknormal to return to default."
|
|
377428
|
+
}, undefined, false, undefined, this)
|
|
377429
|
+
]
|
|
377430
|
+
}, undefined, true, undefined, this)
|
|
377089
377431
|
]
|
|
377090
377432
|
}, undefined, true, undefined, this);
|
|
377091
377433
|
}
|
|
@@ -377105,31 +377447,69 @@ function ThinkNormalBanner({ onReady }) {
|
|
|
377105
377447
|
}, undefined, false, undefined, this),
|
|
377106
377448
|
/* @__PURE__ */ jsx_dev_runtime199.jsxDEV(ThemedText, {
|
|
377107
377449
|
dimColor: true,
|
|
377108
|
-
children: " Default pipeline
|
|
377450
|
+
children: " Default pipeline. Lattice memory is fallback-only."
|
|
377109
377451
|
}, undefined, false, undefined, this)
|
|
377110
377452
|
]
|
|
377111
377453
|
}, undefined, true, undefined, this);
|
|
377112
377454
|
}
|
|
377113
|
-
var React58, jsx_dev_runtime199, isThinkHarderMode = false, THINKHARDER_PROMPT = `[
|
|
377114
|
-
|
|
377115
|
-
|
|
377116
|
-
|
|
377117
|
-
|
|
377118
|
-
|
|
377119
|
-
|
|
377120
|
-
|
|
377121
|
-
|
|
377122
|
-
|
|
377123
|
-
|
|
377124
|
-
|
|
377125
|
-
|
|
377126
|
-
|
|
377127
|
-
|
|
377128
|
-
|
|
377129
|
-
|
|
377130
|
-
|
|
377131
|
-
|
|
377132
|
-
|
|
377455
|
+
var React58, jsx_dev_runtime199, isThinkHarderMode = false, THINKHARDER_PROMPT = `[THINK HARDER — 3-ITERATION REFINEMENT PIPELINE ACTIVE]
|
|
377456
|
+
|
|
377457
|
+
Every code change or file edit must pass through all four phases before
|
|
377458
|
+
being written to disk. Do NOT call Edit, Write, or Bash with new code until
|
|
377459
|
+
Phase 4 is complete.
|
|
377460
|
+
|
|
377461
|
+
══════════════════════════════════════════════════════════
|
|
377462
|
+
PHASE 1 — DRAFT
|
|
377463
|
+
══════════════════════════════════════════════════════════
|
|
377464
|
+
Write the initial implementation in full inside a code block.
|
|
377465
|
+
Think aloud: describe your approach, key decisions, and any tradeoffs.
|
|
377466
|
+
Do NOT call any write tool yet.
|
|
377467
|
+
|
|
377468
|
+
══════════════════════════════════════════════════════════
|
|
377469
|
+
PHASE 2 — CRITIQUE (self-review)
|
|
377470
|
+
══════════════════════════════════════════════════════════
|
|
377471
|
+
Critically review your draft. For each issue found, write:
|
|
377472
|
+
✗ [CATEGORY] Description of the issue
|
|
377473
|
+
|
|
377474
|
+
Categories: CORRECTNESS | EDGE CASE | PERFORMANCE | SECURITY |
|
|
377475
|
+
STYLE | NAMING | MISSING LOGIC | TYPE SAFETY
|
|
377476
|
+
|
|
377477
|
+
If the draft is perfect (rare), write: ✓ No issues found — proceeding.
|
|
377478
|
+
|
|
377479
|
+
══════════════════════════════════════════════════════════
|
|
377480
|
+
PHASE 3 — REFINE
|
|
377481
|
+
══════════════════════════════════════════════════════════
|
|
377482
|
+
Apply every fix from Phase 2. For each fix:
|
|
377483
|
+
→ [CATEGORY] What you changed and why
|
|
377484
|
+
|
|
377485
|
+
Write the complete refined implementation inside a code block.
|
|
377486
|
+
|
|
377487
|
+
══════════════════════════════════════════════════════════
|
|
377488
|
+
PHASE 4 — VERIFY (final gate)
|
|
377489
|
+
══════════════════════════════════════════════════════════
|
|
377490
|
+
For each issue listed in Phase 2, confirm:
|
|
377491
|
+
✓ [CATEGORY] Resolved: description of fix applied
|
|
377492
|
+
|
|
377493
|
+
Only after ALL issues are marked ✓ may you call Edit/Write/Bash to
|
|
377494
|
+
persist the code. If new issues are discovered during verification,
|
|
377495
|
+
loop back to Phase 3.
|
|
377496
|
+
|
|
377497
|
+
══════════════════════════════════════════════════════════
|
|
377498
|
+
ADDITIONAL RULES
|
|
377499
|
+
══════════════════════════════════════════════════════════
|
|
377500
|
+
• READ every file before editing it — never guess current contents.
|
|
377501
|
+
• CHECK memory files at the start of each new task for relevant context.
|
|
377502
|
+
• After writing a change, verify it by reading the file back.
|
|
377503
|
+
• Prefer small, focused edits over large sweeping rewrites.
|
|
377504
|
+
• Explain each non-trivial decision briefly for the user.
|
|
377505
|
+
|
|
377506
|
+
Begin Phase 1 now.`, THINKNORMAL_PROMPT = `[THINK HARDER DEACTIVATED — default pipeline restored]
|
|
377507
|
+
|
|
377508
|
+
Resume standard operation:
|
|
377509
|
+
• Normal tool use and response pipeline apply.
|
|
377510
|
+
• Lattice memory scoring is available as a fallback only (not invoked by default).
|
|
377511
|
+
• You may write code without the 3-phase refinement cycle, though careful
|
|
377512
|
+
reasoning is always encouraged.`, call20 = async (onDone, _context, _args) => {
|
|
377133
377513
|
setThinkHarderMode(true);
|
|
377134
377514
|
return /* @__PURE__ */ jsx_dev_runtime199.jsxDEV(ThinkHarderBanner, {
|
|
377135
377515
|
onReady: () => onDone(undefined, {
|
|
@@ -378835,7 +379215,7 @@ function HelpV2(t0) {
|
|
|
378835
379215
|
let t6;
|
|
378836
379216
|
if ($3[31] !== tabs) {
|
|
378837
379217
|
t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
|
|
378838
|
-
title: `localclawd v${"1.0.
|
|
379218
|
+
title: `localclawd v${"1.0.6"}`,
|
|
378839
379219
|
color: "professionalBlue",
|
|
378840
379220
|
defaultTab: "general",
|
|
378841
379221
|
children: tabs
|
|
@@ -402993,7 +403373,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
402993
403373
|
return [];
|
|
402994
403374
|
}
|
|
402995
403375
|
}
|
|
402996
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.0.
|
|
403376
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.0.6") {
|
|
402997
403377
|
if (process.env.USER_TYPE === "ant") {
|
|
402998
403378
|
const changelog = MACRO.VERSION_CHANGELOG;
|
|
402999
403379
|
if (changelog) {
|
|
@@ -403020,7 +403400,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.0.4") {
|
|
|
403020
403400
|
releaseNotes
|
|
403021
403401
|
};
|
|
403022
403402
|
}
|
|
403023
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.0.
|
|
403403
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.0.6") {
|
|
403024
403404
|
if (process.env.USER_TYPE === "ant") {
|
|
403025
403405
|
const changelog = MACRO.VERSION_CHANGELOG;
|
|
403026
403406
|
if (changelog) {
|
|
@@ -404187,7 +404567,7 @@ function getRecentActivitySync() {
|
|
|
404187
404567
|
return cachedActivity;
|
|
404188
404568
|
}
|
|
404189
404569
|
function getLogoDisplayData() {
|
|
404190
|
-
const version = process.env.DEMO_VERSION ?? "1.0.
|
|
404570
|
+
const version = process.env.DEMO_VERSION ?? "1.0.6";
|
|
404191
404571
|
const serverUrl = getDirectConnectServerUrl();
|
|
404192
404572
|
const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
|
|
404193
404573
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -405461,7 +405841,7 @@ function LogoV2() {
|
|
|
405461
405841
|
if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
405462
405842
|
t2 = () => {
|
|
405463
405843
|
const currentConfig = getGlobalConfig();
|
|
405464
|
-
if (currentConfig.lastReleaseNotesSeen === "1.0.
|
|
405844
|
+
if (currentConfig.lastReleaseNotesSeen === "1.0.6") {
|
|
405465
405845
|
return;
|
|
405466
405846
|
}
|
|
405467
405847
|
saveGlobalConfig(_temp327);
|
|
@@ -406137,12 +406517,12 @@ function LogoV2() {
|
|
|
406137
406517
|
return t41;
|
|
406138
406518
|
}
|
|
406139
406519
|
function _temp327(current) {
|
|
406140
|
-
if (current.lastReleaseNotesSeen === "1.0.
|
|
406520
|
+
if (current.lastReleaseNotesSeen === "1.0.6") {
|
|
406141
406521
|
return current;
|
|
406142
406522
|
}
|
|
406143
406523
|
return {
|
|
406144
406524
|
...current,
|
|
406145
|
-
lastReleaseNotesSeen: "1.0.
|
|
406525
|
+
lastReleaseNotesSeen: "1.0.6"
|
|
406146
406526
|
};
|
|
406147
406527
|
}
|
|
406148
406528
|
function _temp245(s_0) {
|
|
@@ -432350,7 +432730,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
|
|
|
432350
432730
|
smapsRollup,
|
|
432351
432731
|
platform: process.platform,
|
|
432352
432732
|
nodeVersion: process.version,
|
|
432353
|
-
ccVersion: "1.0.
|
|
432733
|
+
ccVersion: "1.0.6"
|
|
432354
432734
|
};
|
|
432355
432735
|
}
|
|
432356
432736
|
async function performHeapDump(trigger = "manual", dumpNumber = 0) {
|
|
@@ -432935,7 +433315,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
432935
433315
|
var call57 = async () => {
|
|
432936
433316
|
return {
|
|
432937
433317
|
type: "text",
|
|
432938
|
-
value: `${"1.0.
|
|
433318
|
+
value: `${"1.0.6"} (built ${"2026-04-05T19:01:49.000Z"})`
|
|
432939
433319
|
};
|
|
432940
433320
|
}, version, version_default;
|
|
432941
433321
|
var init_version = __esm(() => {
|
|
@@ -441871,7 +442251,7 @@ function generateHtmlReport(data, insights) {
|
|
|
441871
442251
|
</html>`;
|
|
441872
442252
|
}
|
|
441873
442253
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
441874
|
-
const version2 = typeof MACRO !== "undefined" ? "1.0.
|
|
442254
|
+
const version2 = typeof MACRO !== "undefined" ? "1.0.6" : "unknown";
|
|
441875
442255
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
441876
442256
|
const facets_summary = {
|
|
441877
442257
|
total: facets.size,
|
|
@@ -445984,7 +446364,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
445984
446364
|
init_settings2();
|
|
445985
446365
|
init_slowOperations();
|
|
445986
446366
|
init_uuid();
|
|
445987
|
-
VERSION5 = typeof MACRO !== "undefined" ? "1.0.
|
|
446367
|
+
VERSION5 = typeof MACRO !== "undefined" ? "1.0.6" : "unknown";
|
|
445988
446368
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
445989
446369
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
445990
446370
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -447186,7 +447566,7 @@ var init_filesystem = __esm(() => {
|
|
|
447186
447566
|
});
|
|
447187
447567
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
447188
447568
|
const nonce = randomBytes18(16).toString("hex");
|
|
447189
|
-
return join128(getClaudeTempDir(), "bundled-skills", "1.0.
|
|
447569
|
+
return join128(getClaudeTempDir(), "bundled-skills", "1.0.6", nonce);
|
|
447190
447570
|
});
|
|
447191
447571
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
447192
447572
|
});
|
|
@@ -453184,7 +453564,7 @@ function computeFingerprint(messageText, version2) {
|
|
|
453184
453564
|
}
|
|
453185
453565
|
function computeFingerprintFromMessages(messages) {
|
|
453186
453566
|
const firstMessageText = extractFirstMessageText(messages);
|
|
453187
|
-
return computeFingerprint(firstMessageText, "1.0.
|
|
453567
|
+
return computeFingerprint(firstMessageText, "1.0.6");
|
|
453188
453568
|
}
|
|
453189
453569
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
453190
453570
|
var init_fingerprint = () => {};
|
|
@@ -455039,7 +455419,7 @@ async function sideQuery(opts) {
|
|
|
455039
455419
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
455040
455420
|
}
|
|
455041
455421
|
const messageText = extractFirstUserMessageText(messages);
|
|
455042
|
-
const fingerprint = computeFingerprint(messageText, "1.0.
|
|
455422
|
+
const fingerprint = computeFingerprint(messageText, "1.0.6");
|
|
455043
455423
|
const attributionHeader = getAttributionHeader(fingerprint);
|
|
455044
455424
|
const systemBlocks = [
|
|
455045
455425
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -459837,7 +460217,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
459837
460217
|
slash_commands: inputs.commands.filter((c7) => c7.userInvocable !== false).map((c7) => c7.name),
|
|
459838
460218
|
apiKeySource: getAnthropicApiKeyWithSource().source,
|
|
459839
460219
|
betas: getSdkBetas(),
|
|
459840
|
-
claude_code_version: "1.0.
|
|
460220
|
+
claude_code_version: "1.0.6",
|
|
459841
460221
|
output_style: outputStyle2,
|
|
459842
460222
|
agents: inputs.agents.map((agent) => agent.agentType),
|
|
459843
460223
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
|
|
@@ -474416,7 +474796,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
474416
474796
|
function getSemverPart(version2) {
|
|
474417
474797
|
return `${import_semver12.major(version2, { loose: true })}.${import_semver12.minor(version2, { loose: true })}.${import_semver12.patch(version2, { loose: true })}`;
|
|
474418
474798
|
}
|
|
474419
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.0.
|
|
474799
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.0.6") {
|
|
474420
474800
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react227.useState(() => getSemverPart(initialVersion));
|
|
474421
474801
|
if (!updatedVersion) {
|
|
474422
474802
|
return null;
|
|
@@ -474456,7 +474836,7 @@ function AutoUpdater({
|
|
|
474456
474836
|
return;
|
|
474457
474837
|
}
|
|
474458
474838
|
if (false) {}
|
|
474459
|
-
const currentVersion = "1.0.
|
|
474839
|
+
const currentVersion = "1.0.6";
|
|
474460
474840
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
474461
474841
|
let latestVersion = await getLatestVersion(channel);
|
|
474462
474842
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -474667,12 +475047,12 @@ function NativeAutoUpdater({
|
|
|
474667
475047
|
logEvent("tengu_native_auto_updater_start", {});
|
|
474668
475048
|
try {
|
|
474669
475049
|
const maxVersion = await getMaxVersion();
|
|
474670
|
-
if (maxVersion && gt("1.0.
|
|
475050
|
+
if (maxVersion && gt("1.0.6", maxVersion)) {
|
|
474671
475051
|
const msg = await getMaxVersionMessage();
|
|
474672
475052
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
474673
475053
|
}
|
|
474674
475054
|
const result = await installLatest(channel);
|
|
474675
|
-
const currentVersion = "1.0.
|
|
475055
|
+
const currentVersion = "1.0.6";
|
|
474676
475056
|
const latencyMs = Date.now() - startTime;
|
|
474677
475057
|
if (result.lockFailed) {
|
|
474678
475058
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -474807,17 +475187,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
474807
475187
|
const maxVersion = await getMaxVersion();
|
|
474808
475188
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
474809
475189
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
474810
|
-
if (gte("1.0.
|
|
474811
|
-
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`);
|
|
474812
475192
|
setUpdateAvailable(false);
|
|
474813
475193
|
return;
|
|
474814
475194
|
}
|
|
474815
475195
|
latest = maxVersion;
|
|
474816
475196
|
}
|
|
474817
|
-
const hasUpdate = latest && !gte("1.0.
|
|
475197
|
+
const hasUpdate = latest && !gte("1.0.6", latest) && !shouldSkipVersion(latest);
|
|
474818
475198
|
setUpdateAvailable(!!hasUpdate);
|
|
474819
475199
|
if (hasUpdate) {
|
|
474820
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.0.
|
|
475200
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.0.6"} -> ${latest}`);
|
|
474821
475201
|
}
|
|
474822
475202
|
};
|
|
474823
475203
|
$3[0] = t1;
|
|
@@ -474851,7 +475231,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
474851
475231
|
wrap: "truncate",
|
|
474852
475232
|
children: [
|
|
474853
475233
|
"currentVersion: ",
|
|
474854
|
-
"1.0.
|
|
475234
|
+
"1.0.6"
|
|
474855
475235
|
]
|
|
474856
475236
|
}, undefined, true, undefined, this);
|
|
474857
475237
|
$3[3] = verbose;
|
|
@@ -482409,7 +482789,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
482409
482789
|
project_dir: getOriginalCwd(),
|
|
482410
482790
|
added_dirs: addedDirs
|
|
482411
482791
|
},
|
|
482412
|
-
version: "1.0.
|
|
482792
|
+
version: "1.0.6",
|
|
482413
482793
|
output_style: {
|
|
482414
482794
|
name: outputStyleName
|
|
482415
482795
|
},
|
|
@@ -493955,7 +494335,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
|
|
|
493955
494335
|
} catch {}
|
|
493956
494336
|
const data = {
|
|
493957
494337
|
trigger,
|
|
493958
|
-
version: "1.0.
|
|
494338
|
+
version: "1.0.6",
|
|
493959
494339
|
platform: process.platform,
|
|
493960
494340
|
transcript,
|
|
493961
494341
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -505540,7 +505920,7 @@ function WelcomeV2() {
|
|
|
505540
505920
|
dimColor: true,
|
|
505541
505921
|
children: [
|
|
505542
505922
|
"v",
|
|
505543
|
-
"1.0.
|
|
505923
|
+
"1.0.6"
|
|
505544
505924
|
]
|
|
505545
505925
|
}, undefined, true, undefined, this)
|
|
505546
505926
|
]
|
|
@@ -505590,6 +505970,104 @@ var init_WelcomeV2 = __esm(() => {
|
|
|
505590
505970
|
];
|
|
505591
505971
|
});
|
|
505592
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
|
+
|
|
505593
506071
|
// src/components/ui/OrderedListItem.tsx
|
|
505594
506072
|
function OrderedListItem(t0) {
|
|
505595
506073
|
const $3 = c5(7);
|
|
@@ -505601,7 +506079,7 @@ function OrderedListItem(t0) {
|
|
|
505601
506079
|
} = import_react320.useContext(OrderedListItemContext);
|
|
505602
506080
|
let t1;
|
|
505603
506081
|
if ($3[0] !== marker) {
|
|
505604
|
-
t1 = /* @__PURE__ */
|
|
506082
|
+
t1 = /* @__PURE__ */ jsx_dev_runtime476.jsxDEV(ThemedText, {
|
|
505605
506083
|
dimColor: true,
|
|
505606
506084
|
children: marker
|
|
505607
506085
|
}, undefined, false, undefined, this);
|
|
@@ -505612,7 +506090,7 @@ function OrderedListItem(t0) {
|
|
|
505612
506090
|
}
|
|
505613
506091
|
let t2;
|
|
505614
506092
|
if ($3[2] !== children) {
|
|
505615
|
-
t2 = /* @__PURE__ */
|
|
506093
|
+
t2 = /* @__PURE__ */ jsx_dev_runtime476.jsxDEV(ThemedBox_default, {
|
|
505616
506094
|
flexDirection: "column",
|
|
505617
506095
|
children
|
|
505618
506096
|
}, undefined, false, undefined, this);
|
|
@@ -505623,7 +506101,7 @@ function OrderedListItem(t0) {
|
|
|
505623
506101
|
}
|
|
505624
506102
|
let t3;
|
|
505625
506103
|
if ($3[4] !== t1 || $3[5] !== t2) {
|
|
505626
|
-
t3 = /* @__PURE__ */
|
|
506104
|
+
t3 = /* @__PURE__ */ jsx_dev_runtime476.jsxDEV(ThemedBox_default, {
|
|
505627
506105
|
gap: 1,
|
|
505628
506106
|
children: [
|
|
505629
506107
|
t1,
|
|
@@ -505638,11 +506116,11 @@ function OrderedListItem(t0) {
|
|
|
505638
506116
|
}
|
|
505639
506117
|
return t3;
|
|
505640
506118
|
}
|
|
505641
|
-
var import_react320,
|
|
506119
|
+
var import_react320, jsx_dev_runtime476, OrderedListItemContext;
|
|
505642
506120
|
var init_OrderedListItem = __esm(() => {
|
|
505643
506121
|
init_ink2();
|
|
505644
506122
|
import_react320 = __toESM(require_react(), 1);
|
|
505645
|
-
|
|
506123
|
+
jsx_dev_runtime476 = __toESM(require_jsx_dev_runtime(), 1);
|
|
505646
506124
|
OrderedListItemContext = import_react320.createContext({
|
|
505647
506125
|
marker: ""
|
|
505648
506126
|
});
|
|
@@ -505675,11 +506153,11 @@ function OrderedListComponent(t0) {
|
|
|
505675
506153
|
}
|
|
505676
506154
|
const paddedMarker = `${String(index + 1).padStart(maxMarkerWidth)}.`;
|
|
505677
506155
|
const marker = `${parentMarker}${paddedMarker}`;
|
|
505678
|
-
return /* @__PURE__ */
|
|
506156
|
+
return /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(OrderedListContext.Provider, {
|
|
505679
506157
|
value: {
|
|
505680
506158
|
marker
|
|
505681
506159
|
},
|
|
505682
|
-
children: /* @__PURE__ */
|
|
506160
|
+
children: /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(OrderedListItemContext.Provider, {
|
|
505683
506161
|
value: {
|
|
505684
506162
|
marker
|
|
505685
506163
|
},
|
|
@@ -505703,7 +506181,7 @@ function OrderedListComponent(t0) {
|
|
|
505703
506181
|
}
|
|
505704
506182
|
let t2;
|
|
505705
506183
|
if ($3[7] !== t1) {
|
|
505706
|
-
t2 = /* @__PURE__ */
|
|
506184
|
+
t2 = /* @__PURE__ */ jsx_dev_runtime477.jsxDEV(ThemedBox_default, {
|
|
505707
506185
|
flexDirection: "column",
|
|
505708
506186
|
children: t1
|
|
505709
506187
|
}, undefined, false, undefined, this);
|
|
@@ -505714,12 +506192,12 @@ function OrderedListComponent(t0) {
|
|
|
505714
506192
|
}
|
|
505715
506193
|
return t2;
|
|
505716
506194
|
}
|
|
505717
|
-
var import_react321,
|
|
506195
|
+
var import_react321, jsx_dev_runtime477, OrderedListContext, OrderedList;
|
|
505718
506196
|
var init_OrderedList = __esm(() => {
|
|
505719
506197
|
init_ink2();
|
|
505720
506198
|
init_OrderedListItem();
|
|
505721
506199
|
import_react321 = __toESM(require_react(), 1);
|
|
505722
|
-
|
|
506200
|
+
jsx_dev_runtime477 = __toESM(require_jsx_dev_runtime(), 1);
|
|
505723
506201
|
OrderedListContext = import_react321.createContext({
|
|
505724
506202
|
marker: ""
|
|
505725
506203
|
});
|
|
@@ -505732,7 +506210,7 @@ var exports_Onboarding = {};
|
|
|
505732
506210
|
__export(exports_Onboarding, {
|
|
505733
506211
|
Onboarding: () => Onboarding
|
|
505734
506212
|
});
|
|
505735
|
-
function Onboarding({ onDone }) {
|
|
506213
|
+
function Onboarding({ onDone, showWelcome = true }) {
|
|
505736
506214
|
const [currentStepIndex, setCurrentStepIndex] = import_react322.useState(0);
|
|
505737
506215
|
const [theme2, setTheme] = useTheme();
|
|
505738
506216
|
const exitState = useExitOnCtrlCDWithKeybindings();
|
|
@@ -505759,21 +506237,26 @@ function Onboarding({ onDone }) {
|
|
|
505759
506237
|
setTheme(newTheme);
|
|
505760
506238
|
goToNextStep();
|
|
505761
506239
|
}, [goToNextStep, setTheme]);
|
|
505762
|
-
const handleLocalBackendSetup = import_react322.useCallback((config2) => {
|
|
505763
|
-
|
|
505764
|
-
|
|
505765
|
-
|
|
505766
|
-
|
|
505767
|
-
|
|
505768
|
-
|
|
505769
|
-
|
|
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
|
+
}
|
|
505770
506253
|
goToNextStep();
|
|
505771
506254
|
}, [goToNextStep]);
|
|
505772
506255
|
const steps = import_react322.useMemo(() => {
|
|
505773
506256
|
const config2 = getGlobalConfig();
|
|
505774
|
-
const themeStep = /* @__PURE__ */
|
|
506257
|
+
const themeStep = /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
|
|
505775
506258
|
marginX: 1,
|
|
505776
|
-
children: /* @__PURE__ */
|
|
506259
|
+
children: /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemePicker, {
|
|
505777
506260
|
onThemeSelect: handleThemeSelection,
|
|
505778
506261
|
showIntroText: true,
|
|
505779
506262
|
helpText: "To change this later, run /theme",
|
|
@@ -505781,22 +506264,22 @@ function Onboarding({ onDone }) {
|
|
|
505781
506264
|
skipExitHandling: true
|
|
505782
506265
|
}, undefined, false, undefined, this)
|
|
505783
506266
|
}, undefined, false, undefined, this);
|
|
505784
|
-
const compactContextStep = /* @__PURE__ */
|
|
506267
|
+
const compactContextStep = /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
|
|
505785
506268
|
flexDirection: "column",
|
|
505786
506269
|
gap: 1,
|
|
505787
506270
|
paddingLeft: 1,
|
|
505788
506271
|
width: 70,
|
|
505789
506272
|
children: [
|
|
505790
|
-
/* @__PURE__ */
|
|
506273
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
|
|
505791
506274
|
bold: true,
|
|
505792
506275
|
children: "Choose a compact context window"
|
|
505793
506276
|
}, undefined, false, undefined, this),
|
|
505794
|
-
/* @__PURE__ */
|
|
506277
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
|
|
505795
506278
|
dimColor: true,
|
|
505796
506279
|
wrap: "wrap",
|
|
505797
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."
|
|
505798
506281
|
}, undefined, false, undefined, this),
|
|
505799
|
-
/* @__PURE__ */
|
|
506282
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(Select, {
|
|
505800
506283
|
options: [
|
|
505801
506284
|
{
|
|
505802
506285
|
label: `${formatCompactContextWindowOption(undefined)} (recommended)`,
|
|
@@ -505817,13 +506300,13 @@ function Onboarding({ onDone }) {
|
|
|
505817
506300
|
},
|
|
505818
506301
|
onCancel: goToNextStep
|
|
505819
506302
|
}, undefined, false, undefined, this),
|
|
505820
|
-
/* @__PURE__ */
|
|
506303
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
|
|
505821
506304
|
dimColor: true,
|
|
505822
506305
|
children: "Change this later in /config under Compact context window."
|
|
505823
506306
|
}, undefined, false, undefined, this)
|
|
505824
506307
|
]
|
|
505825
506308
|
}, undefined, true, undefined, this);
|
|
505826
|
-
const localBackendStep = /* @__PURE__ */
|
|
506309
|
+
const localBackendStep = /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(LocalBackendSetup, {
|
|
505827
506310
|
initialConfig: {
|
|
505828
506311
|
provider: config2.localBackendProvider,
|
|
505829
506312
|
baseUrl: config2.localBackendBaseUrl,
|
|
@@ -505833,51 +506316,52 @@ function Onboarding({ onDone }) {
|
|
|
505833
506316
|
onComplete: handleLocalBackendSetup,
|
|
505834
506317
|
onCancel: goToNextStep,
|
|
505835
506318
|
title: "Choose your local backend",
|
|
505836
|
-
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
|
|
505837
506321
|
}, undefined, false, undefined, this);
|
|
505838
|
-
const securityStep = /* @__PURE__ */
|
|
506322
|
+
const securityStep = /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
|
|
505839
506323
|
flexDirection: "column",
|
|
505840
506324
|
gap: 1,
|
|
505841
506325
|
paddingLeft: 1,
|
|
505842
506326
|
children: [
|
|
505843
|
-
/* @__PURE__ */
|
|
506327
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
|
|
505844
506328
|
bold: true,
|
|
505845
506329
|
children: "Security notes:"
|
|
505846
506330
|
}, undefined, false, undefined, this),
|
|
505847
|
-
/* @__PURE__ */
|
|
506331
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
|
|
505848
506332
|
flexDirection: "column",
|
|
505849
506333
|
width: 70,
|
|
505850
|
-
children: /* @__PURE__ */
|
|
506334
|
+
children: /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(OrderedList, {
|
|
505851
506335
|
children: [
|
|
505852
|
-
/* @__PURE__ */
|
|
506336
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(OrderedList.Item, {
|
|
505853
506337
|
children: [
|
|
505854
|
-
/* @__PURE__ */
|
|
506338
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
|
|
505855
506339
|
children: "localclawd can make mistakes"
|
|
505856
506340
|
}, undefined, false, undefined, this),
|
|
505857
|
-
/* @__PURE__ */
|
|
506341
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
|
|
505858
506342
|
dimColor: true,
|
|
505859
506343
|
wrap: "wrap",
|
|
505860
506344
|
children: [
|
|
505861
506345
|
"You should always review localclawd's responses, especially when",
|
|
505862
|
-
/* @__PURE__ */
|
|
506346
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(Newline, {}, undefined, false, undefined, this),
|
|
505863
506347
|
"running code.",
|
|
505864
|
-
/* @__PURE__ */
|
|
506348
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(Newline, {}, undefined, false, undefined, this)
|
|
505865
506349
|
]
|
|
505866
506350
|
}, undefined, true, undefined, this)
|
|
505867
506351
|
]
|
|
505868
506352
|
}, undefined, true, undefined, this),
|
|
505869
|
-
/* @__PURE__ */
|
|
506353
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(OrderedList.Item, {
|
|
505870
506354
|
children: [
|
|
505871
|
-
/* @__PURE__ */
|
|
506355
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
|
|
505872
506356
|
children: "Due to prompt injection risks, only use it with code you trust"
|
|
505873
506357
|
}, undefined, false, undefined, this),
|
|
505874
|
-
/* @__PURE__ */
|
|
506358
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
|
|
505875
506359
|
dimColor: true,
|
|
505876
506360
|
wrap: "wrap",
|
|
505877
506361
|
children: [
|
|
505878
506362
|
"For more details see:",
|
|
505879
|
-
/* @__PURE__ */
|
|
505880
|
-
/* @__PURE__ */
|
|
506363
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(Newline, {}, undefined, false, undefined, this),
|
|
506364
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(Link, {
|
|
505881
506365
|
url: "https://github.com/chromebookwiz/localclawd"
|
|
505882
506366
|
}, undefined, false, undefined, this)
|
|
505883
506367
|
]
|
|
@@ -505887,7 +506371,7 @@ function Onboarding({ onDone }) {
|
|
|
505887
506371
|
]
|
|
505888
506372
|
}, undefined, true, undefined, this)
|
|
505889
506373
|
}, undefined, false, undefined, this),
|
|
505890
|
-
/* @__PURE__ */
|
|
506374
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(PressEnterToContinue, {}, undefined, false, undefined, this)
|
|
505891
506375
|
]
|
|
505892
506376
|
}, undefined, true, undefined, this);
|
|
505893
506377
|
const nextSteps = [
|
|
@@ -505899,30 +506383,30 @@ function Onboarding({ onDone }) {
|
|
|
505899
506383
|
if (shouldOfferTerminalSetup()) {
|
|
505900
506384
|
nextSteps.push({
|
|
505901
506385
|
id: "terminal-setup",
|
|
505902
|
-
component: /* @__PURE__ */
|
|
506386
|
+
component: /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
|
|
505903
506387
|
flexDirection: "column",
|
|
505904
506388
|
gap: 1,
|
|
505905
506389
|
paddingLeft: 1,
|
|
505906
506390
|
children: [
|
|
505907
|
-
/* @__PURE__ */
|
|
506391
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
|
|
505908
506392
|
bold: true,
|
|
505909
506393
|
children: "Use localclawd's terminal setup?"
|
|
505910
506394
|
}, undefined, false, undefined, this),
|
|
505911
|
-
/* @__PURE__ */
|
|
506395
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
|
|
505912
506396
|
flexDirection: "column",
|
|
505913
506397
|
width: 70,
|
|
505914
506398
|
gap: 1,
|
|
505915
506399
|
children: [
|
|
505916
|
-
/* @__PURE__ */
|
|
506400
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
|
|
505917
506401
|
children: [
|
|
505918
506402
|
"For the optimal coding experience, enable the recommended settings",
|
|
505919
|
-
/* @__PURE__ */
|
|
506403
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(Newline, {}, undefined, false, undefined, this),
|
|
505920
506404
|
"for your terminal:",
|
|
505921
506405
|
" ",
|
|
505922
506406
|
env4.terminal === "Apple_Terminal" ? "Option+Enter for newlines and visual bell" : "Shift+Enter for newlines"
|
|
505923
506407
|
]
|
|
505924
506408
|
}, undefined, true, undefined, this),
|
|
505925
|
-
/* @__PURE__ */
|
|
506409
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(Select, {
|
|
505926
506410
|
options: [
|
|
505927
506411
|
{
|
|
505928
506412
|
label: "Yes, use recommended settings",
|
|
@@ -505942,15 +506426,15 @@ function Onboarding({ onDone }) {
|
|
|
505942
506426
|
},
|
|
505943
506427
|
onCancel: goToNextStep
|
|
505944
506428
|
}, undefined, false, undefined, this),
|
|
505945
|
-
/* @__PURE__ */
|
|
506429
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
|
|
505946
506430
|
dimColor: true,
|
|
505947
|
-
children: exitState.pending ? /* @__PURE__ */
|
|
506431
|
+
children: exitState.pending ? /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(jsx_dev_runtime478.Fragment, {
|
|
505948
506432
|
children: [
|
|
505949
506433
|
"Press ",
|
|
505950
506434
|
exitState.keyName,
|
|
505951
506435
|
" again to exit"
|
|
505952
506436
|
]
|
|
505953
|
-
}, undefined, true, undefined, this) : /* @__PURE__ */
|
|
506437
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(jsx_dev_runtime478.Fragment, {
|
|
505954
506438
|
children: "Enter to confirm · Esc to skip"
|
|
505955
506439
|
}, undefined, false, undefined, this)
|
|
505956
506440
|
}, undefined, false, undefined, this)
|
|
@@ -505985,18 +506469,18 @@ function Onboarding({ onDone }) {
|
|
|
505985
506469
|
context: "Confirmation",
|
|
505986
506470
|
isActive: currentStep?.id === "terminal-setup"
|
|
505987
506471
|
});
|
|
505988
|
-
return /* @__PURE__ */
|
|
506472
|
+
return /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
|
|
505989
506473
|
flexDirection: "column",
|
|
505990
506474
|
children: [
|
|
505991
|
-
/* @__PURE__ */
|
|
505992
|
-
/* @__PURE__ */
|
|
506475
|
+
showWelcome ? /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(WelcomeV2, {}, undefined, false, undefined, this) : null,
|
|
506476
|
+
/* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
|
|
505993
506477
|
flexDirection: "column",
|
|
505994
506478
|
marginTop: 1,
|
|
505995
506479
|
children: [
|
|
505996
506480
|
currentStep?.component,
|
|
505997
|
-
exitState.pending ? /* @__PURE__ */
|
|
506481
|
+
exitState.pending ? /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
|
|
505998
506482
|
padding: 1,
|
|
505999
|
-
children: /* @__PURE__ */
|
|
506483
|
+
children: /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
|
|
506000
506484
|
dimColor: true,
|
|
506001
506485
|
children: [
|
|
506002
506486
|
"Press ",
|
|
@@ -506010,7 +506494,7 @@ function Onboarding({ onDone }) {
|
|
|
506010
506494
|
]
|
|
506011
506495
|
}, undefined, true, undefined, this);
|
|
506012
506496
|
}
|
|
506013
|
-
var import_react322,
|
|
506497
|
+
var import_react322, jsx_dev_runtime478;
|
|
506014
506498
|
var init_Onboarding = __esm(() => {
|
|
506015
506499
|
init_terminalSetup();
|
|
506016
506500
|
init_useExitOnCtrlCDWithKeybindings();
|
|
@@ -506019,6 +506503,7 @@ var init_Onboarding = __esm(() => {
|
|
|
506019
506503
|
init_config();
|
|
506020
506504
|
init_context();
|
|
506021
506505
|
init_env();
|
|
506506
|
+
init_providers();
|
|
506022
506507
|
init_select();
|
|
506023
506508
|
init_LocalBackendSetup();
|
|
506024
506509
|
init_WelcomeV2();
|
|
@@ -506026,7 +506511,7 @@ var init_Onboarding = __esm(() => {
|
|
|
506026
506511
|
init_ThemePicker();
|
|
506027
506512
|
init_OrderedList();
|
|
506028
506513
|
import_react322 = __toESM(require_react(), 1);
|
|
506029
|
-
|
|
506514
|
+
jsx_dev_runtime478 = __toESM(require_jsx_dev_runtime(), 1);
|
|
506030
506515
|
});
|
|
506031
506516
|
|
|
506032
506517
|
// src/components/TrustDialog/utils.ts
|
|
@@ -506351,18 +506836,18 @@ function TrustDialog(t0) {
|
|
|
506351
506836
|
let t17;
|
|
506352
506837
|
let t18;
|
|
506353
506838
|
if ($3[20] === Symbol.for("react.memo_cache_sentinel")) {
|
|
506354
|
-
t16 = /* @__PURE__ */
|
|
506839
|
+
t16 = /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(ThemedText, {
|
|
506355
506840
|
bold: true,
|
|
506356
506841
|
children: getFsImplementation().cwd()
|
|
506357
506842
|
}, undefined, false, undefined, this);
|
|
506358
|
-
t17 = /* @__PURE__ */
|
|
506843
|
+
t17 = /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(ThemedText, {
|
|
506359
506844
|
children: [
|
|
506360
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",
|
|
506361
506846
|
"'",
|
|
506362
506847
|
"s in this folder first."
|
|
506363
506848
|
]
|
|
506364
506849
|
}, undefined, true, undefined, this);
|
|
506365
|
-
t18 = /* @__PURE__ */
|
|
506850
|
+
t18 = /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(ThemedText, {
|
|
506366
506851
|
children: [
|
|
506367
506852
|
"Claude Code",
|
|
506368
506853
|
"'",
|
|
@@ -506379,9 +506864,9 @@ function TrustDialog(t0) {
|
|
|
506379
506864
|
}
|
|
506380
506865
|
let t19;
|
|
506381
506866
|
if ($3[23] === Symbol.for("react.memo_cache_sentinel")) {
|
|
506382
|
-
t19 = /* @__PURE__ */
|
|
506867
|
+
t19 = /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(ThemedText, {
|
|
506383
506868
|
dimColor: true,
|
|
506384
|
-
children: /* @__PURE__ */
|
|
506869
|
+
children: /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(Link, {
|
|
506385
506870
|
url: "https://code.claude.com/docs/en/security",
|
|
506386
506871
|
children: "Security guide"
|
|
506387
506872
|
}, undefined, false, undefined, this)
|
|
@@ -506405,7 +506890,7 @@ function TrustDialog(t0) {
|
|
|
506405
506890
|
}
|
|
506406
506891
|
let t21;
|
|
506407
506892
|
if ($3[25] !== onChange) {
|
|
506408
|
-
t21 = /* @__PURE__ */
|
|
506893
|
+
t21 = /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(Select, {
|
|
506409
506894
|
options: t20,
|
|
506410
506895
|
onChange: (value_0) => onChange(value_0),
|
|
506411
506896
|
onCancel: () => onChange("exit")
|
|
@@ -506417,15 +506902,15 @@ function TrustDialog(t0) {
|
|
|
506417
506902
|
}
|
|
506418
506903
|
let t22;
|
|
506419
506904
|
if ($3[27] !== exitState.keyName || $3[28] !== exitState.pending) {
|
|
506420
|
-
t22 = /* @__PURE__ */
|
|
506905
|
+
t22 = /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(ThemedText, {
|
|
506421
506906
|
dimColor: true,
|
|
506422
|
-
children: exitState.pending ? /* @__PURE__ */
|
|
506907
|
+
children: exitState.pending ? /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(jsx_dev_runtime479.Fragment, {
|
|
506423
506908
|
children: [
|
|
506424
506909
|
"Press ",
|
|
506425
506910
|
exitState.keyName,
|
|
506426
506911
|
" again to exit"
|
|
506427
506912
|
]
|
|
506428
|
-
}, undefined, true, undefined, this) : /* @__PURE__ */
|
|
506913
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(jsx_dev_runtime479.Fragment, {
|
|
506429
506914
|
children: "Enter to confirm · Esc to cancel"
|
|
506430
506915
|
}, undefined, false, undefined, this)
|
|
506431
506916
|
}, undefined, false, undefined, this);
|
|
@@ -506437,11 +506922,11 @@ function TrustDialog(t0) {
|
|
|
506437
506922
|
}
|
|
506438
506923
|
let t23;
|
|
506439
506924
|
if ($3[30] !== t21 || $3[31] !== t22) {
|
|
506440
|
-
t23 = /* @__PURE__ */
|
|
506925
|
+
t23 = /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(PermissionDialog, {
|
|
506441
506926
|
color: "warning",
|
|
506442
506927
|
titleColor: "warning",
|
|
506443
506928
|
title: "Accessing workspace:",
|
|
506444
|
-
children: /* @__PURE__ */
|
|
506929
|
+
children: /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(ThemedBox_default, {
|
|
506445
506930
|
flexDirection: "column",
|
|
506446
506931
|
gap: 1,
|
|
506447
506932
|
paddingTop: 1,
|
|
@@ -506487,7 +506972,7 @@ function _temp2101(command8) {
|
|
|
506487
506972
|
function _temp303(tool) {
|
|
506488
506973
|
return tool === BASH_TOOL_NAME || tool.startsWith(BASH_TOOL_NAME + "(");
|
|
506489
506974
|
}
|
|
506490
|
-
var import_react323,
|
|
506975
|
+
var import_react323, jsx_dev_runtime479;
|
|
506491
506976
|
var init_TrustDialog = __esm(() => {
|
|
506492
506977
|
init_state();
|
|
506493
506978
|
init_useExitOnCtrlCDWithKeybindings();
|
|
@@ -506502,7 +506987,7 @@ var init_TrustDialog = __esm(() => {
|
|
|
506502
506987
|
init_PermissionDialog();
|
|
506503
506988
|
init_utils14();
|
|
506504
506989
|
import_react323 = __toESM(require_react(), 1);
|
|
506505
|
-
|
|
506990
|
+
jsx_dev_runtime479 = __toESM(require_jsx_dev_runtime(), 1);
|
|
506506
506991
|
});
|
|
506507
506992
|
|
|
506508
506993
|
// src/components/BypassPermissionsModeDialog.tsx
|
|
@@ -506550,21 +507035,21 @@ function BypassPermissionsModeDialog(t0) {
|
|
|
506550
507035
|
const handleEscape = _temp2102;
|
|
506551
507036
|
let t3;
|
|
506552
507037
|
if ($3[3] === Symbol.for("react.memo_cache_sentinel")) {
|
|
506553
|
-
t3 = /* @__PURE__ */
|
|
507038
|
+
t3 = /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(ThemedBox_default, {
|
|
506554
507039
|
flexDirection: "column",
|
|
506555
507040
|
gap: 1,
|
|
506556
507041
|
children: [
|
|
506557
|
-
/* @__PURE__ */
|
|
507042
|
+
/* @__PURE__ */ jsx_dev_runtime480.jsxDEV(ThemedText, {
|
|
506558
507043
|
children: [
|
|
506559
507044
|
"In Bypass Permissions mode, localclawd will not ask for your approval before running potentially dangerous commands.",
|
|
506560
|
-
/* @__PURE__ */
|
|
507045
|
+
/* @__PURE__ */ jsx_dev_runtime480.jsxDEV(Newline, {}, undefined, false, undefined, this),
|
|
506561
507046
|
"This mode should only be used in a sandboxed container/VM that has restricted internet access and can easily be restored if damaged."
|
|
506562
507047
|
]
|
|
506563
507048
|
}, undefined, true, undefined, this),
|
|
506564
|
-
/* @__PURE__ */
|
|
507049
|
+
/* @__PURE__ */ jsx_dev_runtime480.jsxDEV(ThemedText, {
|
|
506565
507050
|
children: "By proceeding, you accept all responsibility for actions taken while running in Bypass Permissions mode."
|
|
506566
507051
|
}, undefined, false, undefined, this),
|
|
506567
|
-
/* @__PURE__ */
|
|
507052
|
+
/* @__PURE__ */ jsx_dev_runtime480.jsxDEV(Link, {
|
|
506568
507053
|
url: "https://github.com/chromebookwiz/localclawd"
|
|
506569
507054
|
}, undefined, false, undefined, this)
|
|
506570
507055
|
]
|
|
@@ -506588,13 +507073,13 @@ function BypassPermissionsModeDialog(t0) {
|
|
|
506588
507073
|
}
|
|
506589
507074
|
let t5;
|
|
506590
507075
|
if ($3[5] !== onChange) {
|
|
506591
|
-
t5 = /* @__PURE__ */
|
|
507076
|
+
t5 = /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(Dialog, {
|
|
506592
507077
|
title: "WARNING: localclawd running in Bypass Permissions mode",
|
|
506593
507078
|
color: "error",
|
|
506594
507079
|
onCancel: handleEscape,
|
|
506595
507080
|
children: [
|
|
506596
507081
|
t3,
|
|
506597
|
-
/* @__PURE__ */
|
|
507082
|
+
/* @__PURE__ */ jsx_dev_runtime480.jsxDEV(Select, {
|
|
506598
507083
|
options: t4,
|
|
506599
507084
|
onChange: (value_0) => onChange(value_0)
|
|
506600
507085
|
}, undefined, false, undefined, this)
|
|
@@ -506613,7 +507098,7 @@ function _temp2102() {
|
|
|
506613
507098
|
function _temp304() {
|
|
506614
507099
|
logEvent("tengu_bypass_permissions_mode_dialog_shown", {});
|
|
506615
507100
|
}
|
|
506616
|
-
var import_react324,
|
|
507101
|
+
var import_react324, jsx_dev_runtime480;
|
|
506617
507102
|
var init_BypassPermissionsModeDialog = __esm(() => {
|
|
506618
507103
|
init_ink2();
|
|
506619
507104
|
init_gracefulShutdown();
|
|
@@ -506621,7 +507106,7 @@ var init_BypassPermissionsModeDialog = __esm(() => {
|
|
|
506621
507106
|
init_CustomSelect();
|
|
506622
507107
|
init_Dialog();
|
|
506623
507108
|
import_react324 = __toESM(require_react(), 1);
|
|
506624
|
-
|
|
507109
|
+
jsx_dev_runtime480 = __toESM(require_jsx_dev_runtime(), 1);
|
|
506625
507110
|
});
|
|
506626
507111
|
|
|
506627
507112
|
// src/components/ClaudeInChromeOnboarding.tsx
|
|
@@ -506666,13 +507151,13 @@ function ClaudeInChromeOnboarding(t0) {
|
|
|
506666
507151
|
use_input_default(t3);
|
|
506667
507152
|
let t4;
|
|
506668
507153
|
if ($3[4] !== isExtensionInstalled) {
|
|
506669
|
-
t4 = !isExtensionInstalled && /* @__PURE__ */
|
|
507154
|
+
t4 = !isExtensionInstalled && /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(jsx_dev_runtime481.Fragment, {
|
|
506670
507155
|
children: [
|
|
506671
|
-
/* @__PURE__ */
|
|
506672
|
-
/* @__PURE__ */
|
|
507156
|
+
/* @__PURE__ */ jsx_dev_runtime481.jsxDEV(Newline, {}, undefined, false, undefined, this),
|
|
507157
|
+
/* @__PURE__ */ jsx_dev_runtime481.jsxDEV(Newline, {}, undefined, false, undefined, this),
|
|
506673
507158
|
"Requires the Chrome extension. Get started at",
|
|
506674
507159
|
" ",
|
|
506675
|
-
/* @__PURE__ */
|
|
507160
|
+
/* @__PURE__ */ jsx_dev_runtime481.jsxDEV(Link, {
|
|
506676
507161
|
url: CHROME_EXTENSION_URL2
|
|
506677
507162
|
}, undefined, false, undefined, this)
|
|
506678
507163
|
]
|
|
@@ -506684,7 +507169,7 @@ function ClaudeInChromeOnboarding(t0) {
|
|
|
506684
507169
|
}
|
|
506685
507170
|
let t5;
|
|
506686
507171
|
if ($3[6] !== t4) {
|
|
506687
|
-
t5 = /* @__PURE__ */
|
|
507172
|
+
t5 = /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(ThemedText, {
|
|
506688
507173
|
children: [
|
|
506689
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.",
|
|
506690
507175
|
t4
|
|
@@ -506697,11 +507182,11 @@ function ClaudeInChromeOnboarding(t0) {
|
|
|
506697
507182
|
}
|
|
506698
507183
|
let t6;
|
|
506699
507184
|
if ($3[8] !== isExtensionInstalled) {
|
|
506700
|
-
t6 = isExtensionInstalled && /* @__PURE__ */
|
|
507185
|
+
t6 = isExtensionInstalled && /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(jsx_dev_runtime481.Fragment, {
|
|
506701
507186
|
children: [
|
|
506702
507187
|
" ",
|
|
506703
507188
|
"(",
|
|
506704
|
-
/* @__PURE__ */
|
|
507189
|
+
/* @__PURE__ */ jsx_dev_runtime481.jsxDEV(Link, {
|
|
506705
507190
|
url: CHROME_PERMISSIONS_URL2
|
|
506706
507191
|
}, undefined, false, undefined, this),
|
|
506707
507192
|
")"
|
|
@@ -506714,7 +507199,7 @@ function ClaudeInChromeOnboarding(t0) {
|
|
|
506714
507199
|
}
|
|
506715
507200
|
let t7;
|
|
506716
507201
|
if ($3[10] !== t6) {
|
|
506717
|
-
t7 = /* @__PURE__ */
|
|
507202
|
+
t7 = /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(ThemedText, {
|
|
506718
507203
|
dimColor: true,
|
|
506719
507204
|
children: [
|
|
506720
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",
|
|
@@ -506729,7 +507214,7 @@ function ClaudeInChromeOnboarding(t0) {
|
|
|
506729
507214
|
}
|
|
506730
507215
|
let t8;
|
|
506731
507216
|
if ($3[12] === Symbol.for("react.memo_cache_sentinel")) {
|
|
506732
|
-
t8 = /* @__PURE__ */
|
|
507217
|
+
t8 = /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(ThemedText, {
|
|
506733
507218
|
bold: true,
|
|
506734
507219
|
color: "chromeYellow",
|
|
506735
507220
|
children: "/chrome"
|
|
@@ -506740,7 +507225,7 @@ function ClaudeInChromeOnboarding(t0) {
|
|
|
506740
507225
|
}
|
|
506741
507226
|
let t9;
|
|
506742
507227
|
if ($3[13] === Symbol.for("react.memo_cache_sentinel")) {
|
|
506743
|
-
t9 = /* @__PURE__ */
|
|
507228
|
+
t9 = /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(ThemedText, {
|
|
506744
507229
|
dimColor: true,
|
|
506745
507230
|
children: [
|
|
506746
507231
|
"For more info, use",
|
|
@@ -506748,7 +507233,7 @@ function ClaudeInChromeOnboarding(t0) {
|
|
|
506748
507233
|
t8,
|
|
506749
507234
|
" ",
|
|
506750
507235
|
"or visit ",
|
|
506751
|
-
/* @__PURE__ */
|
|
507236
|
+
/* @__PURE__ */ jsx_dev_runtime481.jsxDEV(Link, {
|
|
506752
507237
|
url: "https://github.com/chromebookwiz/localclawd"
|
|
506753
507238
|
}, undefined, false, undefined, this)
|
|
506754
507239
|
]
|
|
@@ -506759,7 +507244,7 @@ function ClaudeInChromeOnboarding(t0) {
|
|
|
506759
507244
|
}
|
|
506760
507245
|
let t10;
|
|
506761
507246
|
if ($3[14] !== t5 || $3[15] !== t7) {
|
|
506762
|
-
t10 = /* @__PURE__ */
|
|
507247
|
+
t10 = /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(ThemedBox_default, {
|
|
506763
507248
|
flexDirection: "column",
|
|
506764
507249
|
gap: 1,
|
|
506765
507250
|
children: [
|
|
@@ -506776,7 +507261,7 @@ function ClaudeInChromeOnboarding(t0) {
|
|
|
506776
507261
|
}
|
|
506777
507262
|
let t11;
|
|
506778
507263
|
if ($3[17] !== onDone || $3[18] !== t10) {
|
|
506779
|
-
t11 = /* @__PURE__ */
|
|
507264
|
+
t11 = /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(Dialog, {
|
|
506780
507265
|
title: "localclawd in Chrome (Beta)",
|
|
506781
507266
|
onCancel: onDone,
|
|
506782
507267
|
color: "chromeYellow",
|
|
@@ -506796,14 +507281,14 @@ function _temp305(current) {
|
|
|
506796
507281
|
hasCompletedClaudeInChromeOnboarding: true
|
|
506797
507282
|
};
|
|
506798
507283
|
}
|
|
506799
|
-
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";
|
|
506800
507285
|
var init_ClaudeInChromeOnboarding = __esm(() => {
|
|
506801
507286
|
init_ink2();
|
|
506802
507287
|
init_setup2();
|
|
506803
507288
|
init_config();
|
|
506804
507289
|
init_Dialog();
|
|
506805
507290
|
import_react325 = __toESM(require_react(), 1);
|
|
506806
|
-
|
|
507291
|
+
jsx_dev_runtime481 = __toESM(require_jsx_dev_runtime(), 1);
|
|
506807
507292
|
});
|
|
506808
507293
|
|
|
506809
507294
|
// src/interactiveHelpers.tsx
|
|
@@ -506812,7 +507297,7 @@ function completeOnboarding() {
|
|
|
506812
507297
|
saveGlobalConfig((current) => ({
|
|
506813
507298
|
...current,
|
|
506814
507299
|
hasCompletedOnboarding: true,
|
|
506815
|
-
lastOnboardingVersion: "1.0.
|
|
507300
|
+
lastOnboardingVersion: "1.0.6"
|
|
506816
507301
|
}));
|
|
506817
507302
|
}
|
|
506818
507303
|
function showDialog(root2, renderer) {
|
|
@@ -506833,10 +507318,10 @@ async function exitWithMessage2(root2, message, options) {
|
|
|
506833
507318
|
} = await Promise.resolve().then(() => (init_ink2(), exports_ink));
|
|
506834
507319
|
const color3 = options?.color;
|
|
506835
507320
|
const exitCode = options?.exitCode ?? 1;
|
|
506836
|
-
root2.render(color3 ? /* @__PURE__ */
|
|
507321
|
+
root2.render(color3 ? /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(Text6, {
|
|
506837
507322
|
color: color3,
|
|
506838
507323
|
children: message
|
|
506839
|
-
}, undefined, false, undefined, this) : /* @__PURE__ */
|
|
507324
|
+
}, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(Text6, {
|
|
506840
507325
|
children: message
|
|
506841
507326
|
}, undefined, false, undefined, this));
|
|
506842
507327
|
root2.unmount();
|
|
@@ -506844,9 +507329,9 @@ async function exitWithMessage2(root2, message, options) {
|
|
|
506844
507329
|
process.exit(exitCode);
|
|
506845
507330
|
}
|
|
506846
507331
|
function showSetupDialog(root2, renderer, options) {
|
|
506847
|
-
return showDialog(root2, (done) => /* @__PURE__ */
|
|
507332
|
+
return showDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(AppStateProvider, {
|
|
506848
507333
|
onChangeAppState: options?.onChangeAppState,
|
|
506849
|
-
children: /* @__PURE__ */
|
|
507334
|
+
children: /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(KeybindingSetup, {
|
|
506850
507335
|
children: renderer(done)
|
|
506851
507336
|
}, undefined, false, undefined, this)
|
|
506852
507337
|
}, undefined, false, undefined, this));
|
|
@@ -506862,13 +507347,68 @@ async function showSetupScreens(root2, permissionMode, allowDangerouslySkipPermi
|
|
|
506862
507347
|
return false;
|
|
506863
507348
|
}
|
|
506864
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
|
+
}
|
|
506865
507404
|
let onboardingShown = false;
|
|
506866
507405
|
if (!config2.theme || !config2.hasCompletedOnboarding) {
|
|
506867
507406
|
onboardingShown = true;
|
|
506868
507407
|
const {
|
|
506869
507408
|
Onboarding: Onboarding2
|
|
506870
507409
|
} = await Promise.resolve().then(() => (init_Onboarding(), exports_Onboarding));
|
|
506871
|
-
await showSetupDialog(root2, (done) => /* @__PURE__ */
|
|
507410
|
+
await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(Onboarding2, {
|
|
507411
|
+
showWelcome: false,
|
|
506872
507412
|
onDone: () => {
|
|
506873
507413
|
completeOnboarding();
|
|
506874
507414
|
done();
|
|
@@ -506882,7 +507422,7 @@ async function showSetupScreens(root2, permissionMode, allowDangerouslySkipPermi
|
|
|
506882
507422
|
const {
|
|
506883
507423
|
TrustDialog: TrustDialog2
|
|
506884
507424
|
} = await Promise.resolve().then(() => (init_TrustDialog(), exports_TrustDialog));
|
|
506885
|
-
await showSetupDialog(root2, (done) => /* @__PURE__ */
|
|
507425
|
+
await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(TrustDialog2, {
|
|
506886
507426
|
commands,
|
|
506887
507427
|
onDone: done
|
|
506888
507428
|
}, undefined, false, undefined, this));
|
|
@@ -506902,7 +507442,7 @@ async function showSetupScreens(root2, permissionMode, allowDangerouslySkipPermi
|
|
|
506902
507442
|
const {
|
|
506903
507443
|
ClaudeMdExternalIncludesDialog: ClaudeMdExternalIncludesDialog2
|
|
506904
507444
|
} = await Promise.resolve().then(() => (init_ClaudeMdExternalIncludesDialog(), exports_ClaudeMdExternalIncludesDialog));
|
|
506905
|
-
await showSetupDialog(root2, (done) => /* @__PURE__ */
|
|
507445
|
+
await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ClaudeMdExternalIncludesDialog2, {
|
|
506906
507446
|
onDone: done,
|
|
506907
507447
|
isStandaloneDialog: true,
|
|
506908
507448
|
externalIncludes
|
|
@@ -506917,7 +507457,7 @@ async function showSetupScreens(root2, permissionMode, allowDangerouslySkipPermi
|
|
|
506917
507457
|
const {
|
|
506918
507458
|
GroveDialog: GroveDialog2
|
|
506919
507459
|
} = await Promise.resolve().then(() => (init_Grove(), exports_Grove));
|
|
506920
|
-
const decision = await showSetupDialog(root2, (done) => /* @__PURE__ */
|
|
507460
|
+
const decision = await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(GroveDialog2, {
|
|
506921
507461
|
showIfAlreadyViewed: false,
|
|
506922
507462
|
location: onboardingShown ? "onboarding" : "policy_update_modal",
|
|
506923
507463
|
onDone: done
|
|
@@ -506932,7 +507472,7 @@ async function showSetupScreens(root2, permissionMode, allowDangerouslySkipPermi
|
|
|
506932
507472
|
const {
|
|
506933
507473
|
BypassPermissionsModeDialog: BypassPermissionsModeDialog2
|
|
506934
507474
|
} = await Promise.resolve().then(() => (init_BypassPermissionsModeDialog(), exports_BypassPermissionsModeDialog));
|
|
506935
|
-
await showSetupDialog(root2, (done) => /* @__PURE__ */
|
|
507475
|
+
await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(BypassPermissionsModeDialog2, {
|
|
506936
507476
|
onAccept: done
|
|
506937
507477
|
}, undefined, false, undefined, this));
|
|
506938
507478
|
}
|
|
@@ -506942,7 +507482,7 @@ async function showSetupScreens(root2, permissionMode, allowDangerouslySkipPermi
|
|
|
506942
507482
|
const {
|
|
506943
507483
|
ClaudeInChromeOnboarding: ClaudeInChromeOnboarding2
|
|
506944
507484
|
} = await Promise.resolve().then(() => (init_ClaudeInChromeOnboarding(), exports_ClaudeInChromeOnboarding));
|
|
506945
|
-
await showSetupDialog(root2, (done) => /* @__PURE__ */
|
|
507485
|
+
await showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime482.jsxDEV(ClaudeInChromeOnboarding2, {
|
|
506946
507486
|
onDone: done
|
|
506947
507487
|
}, undefined, false, undefined, this));
|
|
506948
507488
|
}
|
|
@@ -506997,7 +507537,7 @@ function getRenderContext(exitOnCtrlC) {
|
|
|
506997
507537
|
}
|
|
506998
507538
|
};
|
|
506999
507539
|
}
|
|
507000
|
-
var
|
|
507540
|
+
var jsx_dev_runtime482;
|
|
507001
507541
|
var init_interactiveHelpers = __esm(() => {
|
|
507002
507542
|
init_gracefulShutdown();
|
|
507003
507543
|
init_state();
|
|
@@ -507020,7 +507560,7 @@ var init_interactiveHelpers = __esm(() => {
|
|
|
507020
507560
|
init_renderOptions();
|
|
507021
507561
|
init_allErrors();
|
|
507022
507562
|
init_settings2();
|
|
507023
|
-
|
|
507563
|
+
jsx_dev_runtime482 = __toESM(require_jsx_dev_runtime(), 1);
|
|
507024
507564
|
});
|
|
507025
507565
|
|
|
507026
507566
|
// src/components/InvalidSettingsDialog.tsx
|
|
@@ -507053,7 +507593,7 @@ function InvalidSettingsDialog(t0) {
|
|
|
507053
507593
|
const handleSelect = t1;
|
|
507054
507594
|
let t2;
|
|
507055
507595
|
if ($3[3] !== settingsErrors) {
|
|
507056
|
-
t2 = /* @__PURE__ */
|
|
507596
|
+
t2 = /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ValidationErrorsList, {
|
|
507057
507597
|
errors: settingsErrors
|
|
507058
507598
|
}, undefined, false, undefined, this);
|
|
507059
507599
|
$3[3] = settingsErrors;
|
|
@@ -507063,7 +507603,7 @@ function InvalidSettingsDialog(t0) {
|
|
|
507063
507603
|
}
|
|
507064
507604
|
let t3;
|
|
507065
507605
|
if ($3[5] === Symbol.for("react.memo_cache_sentinel")) {
|
|
507066
|
-
t3 = /* @__PURE__ */
|
|
507606
|
+
t3 = /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(ThemedText, {
|
|
507067
507607
|
dimColor: true,
|
|
507068
507608
|
children: "Files with errors are skipped entirely, not just the invalid settings."
|
|
507069
507609
|
}, undefined, false, undefined, this);
|
|
@@ -507086,7 +507626,7 @@ function InvalidSettingsDialog(t0) {
|
|
|
507086
507626
|
}
|
|
507087
507627
|
let t5;
|
|
507088
507628
|
if ($3[7] !== handleSelect) {
|
|
507089
|
-
t5 = /* @__PURE__ */
|
|
507629
|
+
t5 = /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(Select, {
|
|
507090
507630
|
options: t4,
|
|
507091
507631
|
onChange: handleSelect
|
|
507092
507632
|
}, undefined, false, undefined, this);
|
|
@@ -507097,7 +507637,7 @@ function InvalidSettingsDialog(t0) {
|
|
|
507097
507637
|
}
|
|
507098
507638
|
let t6;
|
|
507099
507639
|
if ($3[9] !== onExit2 || $3[10] !== t2 || $3[11] !== t5) {
|
|
507100
|
-
t6 = /* @__PURE__ */
|
|
507640
|
+
t6 = /* @__PURE__ */ jsx_dev_runtime483.jsxDEV(Dialog, {
|
|
507101
507641
|
title: "Settings Error",
|
|
507102
507642
|
onCancel: onExit2,
|
|
507103
507643
|
color: "warning",
|
|
@@ -507116,13 +507656,13 @@ function InvalidSettingsDialog(t0) {
|
|
|
507116
507656
|
}
|
|
507117
507657
|
return t6;
|
|
507118
507658
|
}
|
|
507119
|
-
var
|
|
507659
|
+
var jsx_dev_runtime483;
|
|
507120
507660
|
var init_InvalidSettingsDialog = __esm(() => {
|
|
507121
507661
|
init_ink2();
|
|
507122
507662
|
init_CustomSelect();
|
|
507123
507663
|
init_Dialog();
|
|
507124
507664
|
init_ValidationErrorsList();
|
|
507125
|
-
|
|
507665
|
+
jsx_dev_runtime483 = __toESM(require_jsx_dev_runtime(), 1);
|
|
507126
507666
|
});
|
|
507127
507667
|
|
|
507128
507668
|
// src/hooks/useTeleportResume.tsx
|
|
@@ -507279,26 +507819,26 @@ function ResumeTask({
|
|
|
507279
507819
|
loadSessions();
|
|
507280
507820
|
}, [setHasCompletedTeleportErrorFlow, loadSessions]);
|
|
507281
507821
|
if (!hasCompletedTeleportErrorFlow) {
|
|
507282
|
-
return /* @__PURE__ */
|
|
507822
|
+
return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(TeleportError, {
|
|
507283
507823
|
onComplete: handleErrorComplete
|
|
507284
507824
|
}, undefined, false, undefined, this);
|
|
507285
507825
|
}
|
|
507286
507826
|
if (loading) {
|
|
507287
|
-
return /* @__PURE__ */
|
|
507827
|
+
return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507288
507828
|
flexDirection: "column",
|
|
507289
507829
|
padding: 1,
|
|
507290
507830
|
children: [
|
|
507291
|
-
/* @__PURE__ */
|
|
507831
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507292
507832
|
flexDirection: "row",
|
|
507293
507833
|
children: [
|
|
507294
|
-
/* @__PURE__ */
|
|
507295
|
-
/* @__PURE__ */
|
|
507834
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(Spinner, {}, undefined, false, undefined, this),
|
|
507835
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507296
507836
|
bold: true,
|
|
507297
507837
|
children: "Loading localclawd sessions…"
|
|
507298
507838
|
}, undefined, false, undefined, this)
|
|
507299
507839
|
]
|
|
507300
507840
|
}, undefined, true, undefined, this),
|
|
507301
|
-
/* @__PURE__ */
|
|
507841
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507302
507842
|
dimColor: true,
|
|
507303
507843
|
children: retrying ? "Retrying…" : "Fetching your localclawd sessions…"
|
|
507304
507844
|
}, undefined, false, undefined, this)
|
|
@@ -507306,27 +507846,27 @@ function ResumeTask({
|
|
|
507306
507846
|
}, undefined, true, undefined, this);
|
|
507307
507847
|
}
|
|
507308
507848
|
if (loadErrorType) {
|
|
507309
|
-
return /* @__PURE__ */
|
|
507849
|
+
return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507310
507850
|
flexDirection: "column",
|
|
507311
507851
|
padding: 1,
|
|
507312
507852
|
children: [
|
|
507313
|
-
/* @__PURE__ */
|
|
507853
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507314
507854
|
bold: true,
|
|
507315
507855
|
color: "error",
|
|
507316
507856
|
children: "Error loading localclawd sessions"
|
|
507317
507857
|
}, undefined, false, undefined, this),
|
|
507318
507858
|
renderErrorSpecificGuidance(loadErrorType),
|
|
507319
|
-
/* @__PURE__ */
|
|
507859
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507320
507860
|
dimColor: true,
|
|
507321
507861
|
children: [
|
|
507322
507862
|
"Press ",
|
|
507323
|
-
/* @__PURE__ */
|
|
507863
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507324
507864
|
bold: true,
|
|
507325
507865
|
children: "Ctrl+R"
|
|
507326
507866
|
}, undefined, false, undefined, this),
|
|
507327
507867
|
" to retry · Press",
|
|
507328
507868
|
" ",
|
|
507329
|
-
/* @__PURE__ */
|
|
507869
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507330
507870
|
bold: true,
|
|
507331
507871
|
children: escKey
|
|
507332
507872
|
}, undefined, false, undefined, this),
|
|
@@ -507337,15 +507877,15 @@ function ResumeTask({
|
|
|
507337
507877
|
}, undefined, true, undefined, this);
|
|
507338
507878
|
}
|
|
507339
507879
|
if (sessions.length === 0) {
|
|
507340
|
-
return /* @__PURE__ */
|
|
507880
|
+
return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507341
507881
|
flexDirection: "column",
|
|
507342
507882
|
padding: 1,
|
|
507343
507883
|
children: [
|
|
507344
|
-
/* @__PURE__ */
|
|
507884
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507345
507885
|
bold: true,
|
|
507346
507886
|
children: [
|
|
507347
507887
|
"No localclawd sessions found",
|
|
507348
|
-
currentRepo && /* @__PURE__ */
|
|
507888
|
+
currentRepo && /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507349
507889
|
children: [
|
|
507350
507890
|
" for ",
|
|
507351
507891
|
currentRepo
|
|
@@ -507353,13 +507893,13 @@ function ResumeTask({
|
|
|
507353
507893
|
}, undefined, true, undefined, this)
|
|
507354
507894
|
]
|
|
507355
507895
|
}, undefined, true, undefined, this),
|
|
507356
|
-
/* @__PURE__ */
|
|
507896
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507357
507897
|
marginTop: 1,
|
|
507358
|
-
children: /* @__PURE__ */
|
|
507898
|
+
children: /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507359
507899
|
dimColor: true,
|
|
507360
507900
|
children: [
|
|
507361
507901
|
"Press ",
|
|
507362
|
-
/* @__PURE__ */
|
|
507902
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507363
507903
|
bold: true,
|
|
507364
507904
|
children: escKey
|
|
507365
507905
|
}, undefined, false, undefined, this),
|
|
@@ -507390,16 +507930,16 @@ function ResumeTask({
|
|
|
507390
507930
|
const maxVisibleOptions = Math.max(1, isEmbedded ? Math.min(sessions.length, 5, rows - 6 - layoutOverhead) : Math.min(sessions.length, rows - 1 - layoutOverhead));
|
|
507391
507931
|
const maxHeight = maxVisibleOptions + layoutOverhead;
|
|
507392
507932
|
const showScrollPosition = sessions.length > maxVisibleOptions;
|
|
507393
|
-
return /* @__PURE__ */
|
|
507933
|
+
return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507394
507934
|
flexDirection: "column",
|
|
507395
507935
|
padding: 1,
|
|
507396
507936
|
height: maxHeight,
|
|
507397
507937
|
children: [
|
|
507398
|
-
/* @__PURE__ */
|
|
507938
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507399
507939
|
bold: true,
|
|
507400
507940
|
children: [
|
|
507401
507941
|
"Select a session to resume",
|
|
507402
|
-
showScrollPosition && /* @__PURE__ */
|
|
507942
|
+
showScrollPosition && /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507403
507943
|
dimColor: true,
|
|
507404
507944
|
children: [
|
|
507405
507945
|
" ",
|
|
@@ -507410,7 +507950,7 @@ function ResumeTask({
|
|
|
507410
507950
|
")"
|
|
507411
507951
|
]
|
|
507412
507952
|
}, undefined, true, undefined, this),
|
|
507413
|
-
currentRepo && /* @__PURE__ */
|
|
507953
|
+
currentRepo && /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507414
507954
|
dimColor: true,
|
|
507415
507955
|
children: [
|
|
507416
507956
|
" (",
|
|
@@ -507421,14 +507961,14 @@ function ResumeTask({
|
|
|
507421
507961
|
":"
|
|
507422
507962
|
]
|
|
507423
507963
|
}, undefined, true, undefined, this),
|
|
507424
|
-
/* @__PURE__ */
|
|
507964
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507425
507965
|
flexDirection: "column",
|
|
507426
507966
|
marginTop: 1,
|
|
507427
507967
|
flexGrow: 1,
|
|
507428
507968
|
children: [
|
|
507429
|
-
/* @__PURE__ */
|
|
507969
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507430
507970
|
marginLeft: 2,
|
|
507431
|
-
children: /* @__PURE__ */
|
|
507971
|
+
children: /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507432
507972
|
bold: true,
|
|
507433
507973
|
children: [
|
|
507434
507974
|
UPDATED_STRING.padEnd(maxTimeStringLength, " "),
|
|
@@ -507437,7 +507977,7 @@ function ResumeTask({
|
|
|
507437
507977
|
]
|
|
507438
507978
|
}, undefined, true, undefined, this)
|
|
507439
507979
|
}, undefined, false, undefined, this),
|
|
507440
|
-
/* @__PURE__ */
|
|
507980
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(Select, {
|
|
507441
507981
|
visibleOptionCount: maxVisibleOptions,
|
|
507442
507982
|
options,
|
|
507443
507983
|
onChange: (value) => {
|
|
@@ -507455,21 +507995,21 @@ function ResumeTask({
|
|
|
507455
507995
|
}, undefined, false, undefined, this)
|
|
507456
507996
|
]
|
|
507457
507997
|
}, undefined, true, undefined, this),
|
|
507458
|
-
/* @__PURE__ */
|
|
507998
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507459
507999
|
flexDirection: "row",
|
|
507460
|
-
children: /* @__PURE__ */
|
|
508000
|
+
children: /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507461
508001
|
dimColor: true,
|
|
507462
|
-
children: /* @__PURE__ */
|
|
508002
|
+
children: /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(Byline, {
|
|
507463
508003
|
children: [
|
|
507464
|
-
/* @__PURE__ */
|
|
508004
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(KeyboardShortcutHint, {
|
|
507465
508005
|
shortcut: "↑/↓",
|
|
507466
508006
|
action: "select"
|
|
507467
508007
|
}, undefined, false, undefined, this),
|
|
507468
|
-
/* @__PURE__ */
|
|
508008
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(KeyboardShortcutHint, {
|
|
507469
508009
|
shortcut: "Enter",
|
|
507470
508010
|
action: "confirm"
|
|
507471
508011
|
}, undefined, false, undefined, this),
|
|
507472
|
-
/* @__PURE__ */
|
|
508012
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ConfigurableShortcutHint, {
|
|
507473
508013
|
action: "confirm:no",
|
|
507474
508014
|
context: "Confirmation",
|
|
507475
508015
|
fallback: "Esc",
|
|
@@ -507498,28 +508038,28 @@ function determineErrorType(errorMessage4) {
|
|
|
507498
508038
|
function renderErrorSpecificGuidance(errorType) {
|
|
507499
508039
|
switch (errorType) {
|
|
507500
508040
|
case "network":
|
|
507501
|
-
return /* @__PURE__ */
|
|
508041
|
+
return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507502
508042
|
marginY: 1,
|
|
507503
508043
|
flexDirection: "column",
|
|
507504
|
-
children: /* @__PURE__ */
|
|
508044
|
+
children: /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507505
508045
|
dimColor: true,
|
|
507506
508046
|
children: "Check your internet connection"
|
|
507507
508047
|
}, undefined, false, undefined, this)
|
|
507508
508048
|
}, undefined, false, undefined, this);
|
|
507509
508049
|
case "auth":
|
|
507510
|
-
return /* @__PURE__ */
|
|
508050
|
+
return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507511
508051
|
marginY: 1,
|
|
507512
508052
|
flexDirection: "column",
|
|
507513
508053
|
children: [
|
|
507514
|
-
/* @__PURE__ */
|
|
508054
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507515
508055
|
dimColor: true,
|
|
507516
508056
|
children: "Remote web sessions are disabled in this local-first build"
|
|
507517
508057
|
}, undefined, false, undefined, this),
|
|
507518
|
-
/* @__PURE__ */
|
|
508058
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507519
508059
|
dimColor: true,
|
|
507520
508060
|
children: [
|
|
507521
508061
|
"Use ",
|
|
507522
|
-
/* @__PURE__ */
|
|
508062
|
+
/* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507523
508063
|
bold: true,
|
|
507524
508064
|
children: "/provider"
|
|
507525
508065
|
}, undefined, false, undefined, this),
|
|
@@ -507529,26 +508069,26 @@ function renderErrorSpecificGuidance(errorType) {
|
|
|
507529
508069
|
]
|
|
507530
508070
|
}, undefined, true, undefined, this);
|
|
507531
508071
|
case "api":
|
|
507532
|
-
return /* @__PURE__ */
|
|
508072
|
+
return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507533
508073
|
marginY: 1,
|
|
507534
508074
|
flexDirection: "column",
|
|
507535
|
-
children: /* @__PURE__ */
|
|
508075
|
+
children: /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507536
508076
|
dimColor: true,
|
|
507537
508077
|
children: "Sorry, Claude encountered an error"
|
|
507538
508078
|
}, undefined, false, undefined, this)
|
|
507539
508079
|
}, undefined, false, undefined, this);
|
|
507540
508080
|
case "other":
|
|
507541
|
-
return /* @__PURE__ */
|
|
508081
|
+
return /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedBox_default, {
|
|
507542
508082
|
marginY: 1,
|
|
507543
508083
|
flexDirection: "row",
|
|
507544
|
-
children: /* @__PURE__ */
|
|
508084
|
+
children: /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
|
|
507545
508085
|
dimColor: true,
|
|
507546
508086
|
children: "Sorry, Claude Code encountered an error"
|
|
507547
508087
|
}, undefined, false, undefined, this)
|
|
507548
508088
|
}, undefined, false, undefined, this);
|
|
507549
508089
|
}
|
|
507550
508090
|
}
|
|
507551
|
-
var import_react327,
|
|
508091
|
+
var import_react327, jsx_dev_runtime484, UPDATED_STRING = "Updated", SPACE_BETWEEN_TABLE_COLUMNS = " ";
|
|
507552
508092
|
var init_ResumeTask = __esm(() => {
|
|
507553
508093
|
init_useTerminalSize();
|
|
507554
508094
|
init_api();
|
|
@@ -507565,7 +508105,7 @@ var init_ResumeTask = __esm(() => {
|
|
|
507565
508105
|
init_Spinner2();
|
|
507566
508106
|
init_TeleportError();
|
|
507567
508107
|
import_react327 = __toESM(require_react(), 1);
|
|
507568
|
-
|
|
508108
|
+
jsx_dev_runtime484 = __toESM(require_jsx_dev_runtime(), 1);
|
|
507569
508109
|
});
|
|
507570
508110
|
|
|
507571
508111
|
// src/components/TeleportResumeWrapper.tsx
|
|
@@ -507657,11 +508197,11 @@ function TeleportResumeWrapper(t0) {
|
|
|
507657
508197
|
if (isResuming && selectedSession) {
|
|
507658
508198
|
let t82;
|
|
507659
508199
|
if ($3[12] === Symbol.for("react.memo_cache_sentinel")) {
|
|
507660
|
-
t82 = /* @__PURE__ */
|
|
508200
|
+
t82 = /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedBox_default, {
|
|
507661
508201
|
flexDirection: "row",
|
|
507662
508202
|
children: [
|
|
507663
|
-
/* @__PURE__ */
|
|
507664
|
-
/* @__PURE__ */
|
|
508203
|
+
/* @__PURE__ */ jsx_dev_runtime485.jsxDEV(Spinner, {}, undefined, false, undefined, this),
|
|
508204
|
+
/* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
|
|
507665
508205
|
bold: true,
|
|
507666
508206
|
children: "Resuming session…"
|
|
507667
508207
|
}, undefined, false, undefined, this)
|
|
@@ -507673,12 +508213,12 @@ function TeleportResumeWrapper(t0) {
|
|
|
507673
508213
|
}
|
|
507674
508214
|
let t9;
|
|
507675
508215
|
if ($3[13] !== selectedSession.title) {
|
|
507676
|
-
t9 = /* @__PURE__ */
|
|
508216
|
+
t9 = /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedBox_default, {
|
|
507677
508217
|
flexDirection: "column",
|
|
507678
508218
|
padding: 1,
|
|
507679
508219
|
children: [
|
|
507680
508220
|
t82,
|
|
507681
|
-
/* @__PURE__ */
|
|
508221
|
+
/* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
|
|
507682
508222
|
dimColor: true,
|
|
507683
508223
|
children: [
|
|
507684
508224
|
'Loading "',
|
|
@@ -507698,7 +508238,7 @@ function TeleportResumeWrapper(t0) {
|
|
|
507698
508238
|
if (error5 && !onError) {
|
|
507699
508239
|
let t82;
|
|
507700
508240
|
if ($3[15] === Symbol.for("react.memo_cache_sentinel")) {
|
|
507701
|
-
t82 = /* @__PURE__ */
|
|
508241
|
+
t82 = /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
|
|
507702
508242
|
bold: true,
|
|
507703
508243
|
color: "error",
|
|
507704
508244
|
children: "Failed to resume session"
|
|
@@ -507709,7 +508249,7 @@ function TeleportResumeWrapper(t0) {
|
|
|
507709
508249
|
}
|
|
507710
508250
|
let t9;
|
|
507711
508251
|
if ($3[16] !== error5.message) {
|
|
507712
|
-
t9 = /* @__PURE__ */
|
|
508252
|
+
t9 = /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
|
|
507713
508253
|
dimColor: true,
|
|
507714
508254
|
children: error5.message
|
|
507715
508255
|
}, undefined, false, undefined, this);
|
|
@@ -507720,13 +508260,13 @@ function TeleportResumeWrapper(t0) {
|
|
|
507720
508260
|
}
|
|
507721
508261
|
let t10;
|
|
507722
508262
|
if ($3[18] === Symbol.for("react.memo_cache_sentinel")) {
|
|
507723
|
-
t10 = /* @__PURE__ */
|
|
508263
|
+
t10 = /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedBox_default, {
|
|
507724
508264
|
marginTop: 1,
|
|
507725
|
-
children: /* @__PURE__ */
|
|
508265
|
+
children: /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
|
|
507726
508266
|
dimColor: true,
|
|
507727
508267
|
children: [
|
|
507728
508268
|
"Press ",
|
|
507729
|
-
/* @__PURE__ */
|
|
508269
|
+
/* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedText, {
|
|
507730
508270
|
bold: true,
|
|
507731
508271
|
children: "Esc"
|
|
507732
508272
|
}, undefined, false, undefined, this),
|
|
@@ -507740,7 +508280,7 @@ function TeleportResumeWrapper(t0) {
|
|
|
507740
508280
|
}
|
|
507741
508281
|
let t11;
|
|
507742
508282
|
if ($3[19] !== t9) {
|
|
507743
|
-
t11 = /* @__PURE__ */
|
|
508283
|
+
t11 = /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ThemedBox_default, {
|
|
507744
508284
|
flexDirection: "column",
|
|
507745
508285
|
padding: 1,
|
|
507746
508286
|
children: [
|
|
@@ -507758,7 +508298,7 @@ function TeleportResumeWrapper(t0) {
|
|
|
507758
508298
|
}
|
|
507759
508299
|
let t8;
|
|
507760
508300
|
if ($3[21] !== handleCancel || $3[22] !== handleSelect || $3[23] !== isEmbedded) {
|
|
507761
|
-
t8 = /* @__PURE__ */
|
|
508301
|
+
t8 = /* @__PURE__ */ jsx_dev_runtime485.jsxDEV(ResumeTask, {
|
|
507762
508302
|
onSelect: handleSelect,
|
|
507763
508303
|
onCancel: handleCancel,
|
|
507764
508304
|
isEmbedded
|
|
@@ -507772,7 +508312,7 @@ function TeleportResumeWrapper(t0) {
|
|
|
507772
508312
|
}
|
|
507773
508313
|
return t8;
|
|
507774
508314
|
}
|
|
507775
|
-
var import_react328,
|
|
508315
|
+
var import_react328, jsx_dev_runtime485;
|
|
507776
508316
|
var init_TeleportResumeWrapper = __esm(() => {
|
|
507777
508317
|
init_useTeleportResume();
|
|
507778
508318
|
init_ink2();
|
|
@@ -507780,7 +508320,7 @@ var init_TeleportResumeWrapper = __esm(() => {
|
|
|
507780
508320
|
init_ResumeTask();
|
|
507781
508321
|
init_Spinner2();
|
|
507782
508322
|
import_react328 = __toESM(require_react(), 1);
|
|
507783
|
-
|
|
508323
|
+
jsx_dev_runtime485 = __toESM(require_jsx_dev_runtime(), 1);
|
|
507784
508324
|
});
|
|
507785
508325
|
|
|
507786
508326
|
// src/components/TeleportRepoMismatchDialog.tsx
|
|
@@ -507849,20 +508389,20 @@ function TeleportRepoMismatchDialog(t0) {
|
|
|
507849
508389
|
const options = t2;
|
|
507850
508390
|
let t3;
|
|
507851
508391
|
if ($3[8] !== availablePaths.length || $3[9] !== errorMessage4 || $3[10] !== handleChange4 || $3[11] !== options || $3[12] !== targetRepo || $3[13] !== validating) {
|
|
507852
|
-
t3 = availablePaths.length > 0 ? /* @__PURE__ */
|
|
508392
|
+
t3 = availablePaths.length > 0 ? /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(jsx_dev_runtime486.Fragment, {
|
|
507853
508393
|
children: [
|
|
507854
|
-
/* @__PURE__ */
|
|
508394
|
+
/* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
|
|
507855
508395
|
flexDirection: "column",
|
|
507856
508396
|
gap: 1,
|
|
507857
508397
|
children: [
|
|
507858
|
-
errorMessage4 && /* @__PURE__ */
|
|
508398
|
+
errorMessage4 && /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
|
|
507859
508399
|
color: "error",
|
|
507860
508400
|
children: errorMessage4
|
|
507861
508401
|
}, undefined, false, undefined, this),
|
|
507862
|
-
/* @__PURE__ */
|
|
508402
|
+
/* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
|
|
507863
508403
|
children: [
|
|
507864
508404
|
"Open Claude Code in ",
|
|
507865
|
-
/* @__PURE__ */
|
|
508405
|
+
/* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
|
|
507866
508406
|
bold: true,
|
|
507867
508407
|
children: targetRepo
|
|
507868
508408
|
}, undefined, false, undefined, this),
|
|
@@ -507871,27 +508411,27 @@ function TeleportRepoMismatchDialog(t0) {
|
|
|
507871
508411
|
}, undefined, true, undefined, this)
|
|
507872
508412
|
]
|
|
507873
508413
|
}, undefined, true, undefined, this),
|
|
507874
|
-
validating ? /* @__PURE__ */
|
|
508414
|
+
validating ? /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
|
|
507875
508415
|
children: [
|
|
507876
|
-
/* @__PURE__ */
|
|
507877
|
-
/* @__PURE__ */
|
|
508416
|
+
/* @__PURE__ */ jsx_dev_runtime486.jsxDEV(Spinner, {}, undefined, false, undefined, this),
|
|
508417
|
+
/* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
|
|
507878
508418
|
children: " Validating repository…"
|
|
507879
508419
|
}, undefined, false, undefined, this)
|
|
507880
508420
|
]
|
|
507881
|
-
}, undefined, true, undefined, this) : /* @__PURE__ */
|
|
508421
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(Select, {
|
|
507882
508422
|
options,
|
|
507883
508423
|
onChange: (value_0) => void handleChange4(value_0)
|
|
507884
508424
|
}, undefined, false, undefined, this)
|
|
507885
508425
|
]
|
|
507886
|
-
}, undefined, true, undefined, this) : /* @__PURE__ */
|
|
508426
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedBox_default, {
|
|
507887
508427
|
flexDirection: "column",
|
|
507888
508428
|
gap: 1,
|
|
507889
508429
|
children: [
|
|
507890
|
-
errorMessage4 && /* @__PURE__ */
|
|
508430
|
+
errorMessage4 && /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
|
|
507891
508431
|
color: "error",
|
|
507892
508432
|
children: errorMessage4
|
|
507893
508433
|
}, undefined, false, undefined, this),
|
|
507894
|
-
/* @__PURE__ */
|
|
508434
|
+
/* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
|
|
507895
508435
|
dimColor: true,
|
|
507896
508436
|
children: [
|
|
507897
508437
|
"Run claude --teleport from a checkout of ",
|
|
@@ -507912,7 +508452,7 @@ function TeleportRepoMismatchDialog(t0) {
|
|
|
507912
508452
|
}
|
|
507913
508453
|
let t4;
|
|
507914
508454
|
if ($3[15] !== onCancel || $3[16] !== t3) {
|
|
507915
|
-
t4 = /* @__PURE__ */
|
|
508455
|
+
t4 = /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(Dialog, {
|
|
507916
508456
|
title: "Teleport to Repo",
|
|
507917
508457
|
onCancel,
|
|
507918
508458
|
color: "background",
|
|
@@ -507928,10 +508468,10 @@ function TeleportRepoMismatchDialog(t0) {
|
|
|
507928
508468
|
}
|
|
507929
508469
|
function _temp306(path22) {
|
|
507930
508470
|
return {
|
|
507931
|
-
label: /* @__PURE__ */
|
|
508471
|
+
label: /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
|
|
507932
508472
|
children: [
|
|
507933
508473
|
"Use ",
|
|
507934
|
-
/* @__PURE__ */
|
|
508474
|
+
/* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
|
|
507935
508475
|
bold: true,
|
|
507936
508476
|
children: getDisplayPath(path22)
|
|
507937
508477
|
}, undefined, false, undefined, this)
|
|
@@ -507940,7 +508480,7 @@ function _temp306(path22) {
|
|
|
507940
508480
|
value: path22
|
|
507941
508481
|
};
|
|
507942
508482
|
}
|
|
507943
|
-
var import_react329,
|
|
508483
|
+
var import_react329, jsx_dev_runtime486;
|
|
507944
508484
|
var init_TeleportRepoMismatchDialog = __esm(() => {
|
|
507945
508485
|
init_ink2();
|
|
507946
508486
|
init_file();
|
|
@@ -507949,7 +508489,7 @@ var init_TeleportRepoMismatchDialog = __esm(() => {
|
|
|
507949
508489
|
init_Dialog();
|
|
507950
508490
|
init_Spinner2();
|
|
507951
508491
|
import_react329 = __toESM(require_react(), 1);
|
|
507952
|
-
|
|
508492
|
+
jsx_dev_runtime486 = __toESM(require_jsx_dev_runtime(), 1);
|
|
507953
508493
|
});
|
|
507954
508494
|
|
|
507955
508495
|
// src/screens/ResumeConversation.tsx
|
|
@@ -508147,12 +508687,12 @@ function ResumeConversation({
|
|
|
508147
508687
|
}
|
|
508148
508688
|
}
|
|
508149
508689
|
if (crossProjectCommand) {
|
|
508150
|
-
return /* @__PURE__ */
|
|
508690
|
+
return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(CrossProjectMessage, {
|
|
508151
508691
|
command: crossProjectCommand
|
|
508152
508692
|
}, undefined, false, undefined, this);
|
|
508153
508693
|
}
|
|
508154
508694
|
if (resumeData) {
|
|
508155
|
-
return /* @__PURE__ */
|
|
508695
|
+
return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(REPL, {
|
|
508156
508696
|
debug: debug3,
|
|
508157
508697
|
commands,
|
|
508158
508698
|
initialTools,
|
|
@@ -508175,29 +508715,29 @@ function ResumeConversation({
|
|
|
508175
508715
|
}, undefined, false, undefined, this);
|
|
508176
508716
|
}
|
|
508177
508717
|
if (loading) {
|
|
508178
|
-
return /* @__PURE__ */
|
|
508718
|
+
return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
|
|
508179
508719
|
children: [
|
|
508180
|
-
/* @__PURE__ */
|
|
508181
|
-
/* @__PURE__ */
|
|
508720
|
+
/* @__PURE__ */ jsx_dev_runtime487.jsxDEV(Spinner, {}, undefined, false, undefined, this),
|
|
508721
|
+
/* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
|
|
508182
508722
|
children: " Loading conversations…"
|
|
508183
508723
|
}, undefined, false, undefined, this)
|
|
508184
508724
|
]
|
|
508185
508725
|
}, undefined, true, undefined, this);
|
|
508186
508726
|
}
|
|
508187
508727
|
if (resuming) {
|
|
508188
|
-
return /* @__PURE__ */
|
|
508728
|
+
return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
|
|
508189
508729
|
children: [
|
|
508190
|
-
/* @__PURE__ */
|
|
508191
|
-
/* @__PURE__ */
|
|
508730
|
+
/* @__PURE__ */ jsx_dev_runtime487.jsxDEV(Spinner, {}, undefined, false, undefined, this),
|
|
508731
|
+
/* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
|
|
508192
508732
|
children: " Resuming conversation…"
|
|
508193
508733
|
}, undefined, false, undefined, this)
|
|
508194
508734
|
]
|
|
508195
508735
|
}, undefined, true, undefined, this);
|
|
508196
508736
|
}
|
|
508197
508737
|
if (filteredLogs.length === 0) {
|
|
508198
|
-
return /* @__PURE__ */
|
|
508738
|
+
return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(NoConversationsMessage, {}, undefined, false, undefined, this);
|
|
508199
508739
|
}
|
|
508200
|
-
return /* @__PURE__ */
|
|
508740
|
+
return /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(LogSelector, {
|
|
508201
508741
|
logs: filteredLogs,
|
|
508202
508742
|
maxHeight: rows,
|
|
508203
508743
|
onCancel,
|
|
@@ -508224,13 +508764,13 @@ function NoConversationsMessage() {
|
|
|
508224
508764
|
useKeybinding("app:interrupt", _temp307, t0);
|
|
508225
508765
|
let t1;
|
|
508226
508766
|
if ($3[1] === Symbol.for("react.memo_cache_sentinel")) {
|
|
508227
|
-
t1 = /* @__PURE__ */
|
|
508767
|
+
t1 = /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
|
|
508228
508768
|
flexDirection: "column",
|
|
508229
508769
|
children: [
|
|
508230
|
-
/* @__PURE__ */
|
|
508770
|
+
/* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
|
|
508231
508771
|
children: "No conversations found to resume."
|
|
508232
508772
|
}, undefined, false, undefined, this),
|
|
508233
|
-
/* @__PURE__ */
|
|
508773
|
+
/* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
|
|
508234
508774
|
dimColor: true,
|
|
508235
508775
|
children: "Press Ctrl+C to exit and start a new conversation."
|
|
508236
508776
|
}, undefined, false, undefined, this)
|
|
@@ -508260,7 +508800,7 @@ function CrossProjectMessage(t0) {
|
|
|
508260
508800
|
import_react330.default.useEffect(_temp357, t1);
|
|
508261
508801
|
let t2;
|
|
508262
508802
|
if ($3[1] === Symbol.for("react.memo_cache_sentinel")) {
|
|
508263
|
-
t2 = /* @__PURE__ */
|
|
508803
|
+
t2 = /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
|
|
508264
508804
|
children: "This conversation is from a different directory."
|
|
508265
508805
|
}, undefined, false, undefined, this);
|
|
508266
508806
|
$3[1] = t2;
|
|
@@ -508269,7 +508809,7 @@ function CrossProjectMessage(t0) {
|
|
|
508269
508809
|
}
|
|
508270
508810
|
let t3;
|
|
508271
508811
|
if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
508272
|
-
t3 = /* @__PURE__ */
|
|
508812
|
+
t3 = /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
|
|
508273
508813
|
children: "To resume, run:"
|
|
508274
508814
|
}, undefined, false, undefined, this);
|
|
508275
508815
|
$3[2] = t3;
|
|
@@ -508278,11 +508818,11 @@ function CrossProjectMessage(t0) {
|
|
|
508278
508818
|
}
|
|
508279
508819
|
let t4;
|
|
508280
508820
|
if ($3[3] !== command8) {
|
|
508281
|
-
t4 = /* @__PURE__ */
|
|
508821
|
+
t4 = /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
|
|
508282
508822
|
flexDirection: "column",
|
|
508283
508823
|
children: [
|
|
508284
508824
|
t3,
|
|
508285
|
-
/* @__PURE__ */
|
|
508825
|
+
/* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
|
|
508286
508826
|
children: [
|
|
508287
508827
|
" ",
|
|
508288
508828
|
command8
|
|
@@ -508297,7 +508837,7 @@ function CrossProjectMessage(t0) {
|
|
|
508297
508837
|
}
|
|
508298
508838
|
let t5;
|
|
508299
508839
|
if ($3[5] === Symbol.for("react.memo_cache_sentinel")) {
|
|
508300
|
-
t5 = /* @__PURE__ */
|
|
508840
|
+
t5 = /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedText, {
|
|
508301
508841
|
dimColor: true,
|
|
508302
508842
|
children: "(Command copied to clipboard)"
|
|
508303
508843
|
}, undefined, false, undefined, this);
|
|
@@ -508307,7 +508847,7 @@ function CrossProjectMessage(t0) {
|
|
|
508307
508847
|
}
|
|
508308
508848
|
let t6;
|
|
508309
508849
|
if ($3[6] !== t4) {
|
|
508310
|
-
t6 = /* @__PURE__ */
|
|
508850
|
+
t6 = /* @__PURE__ */ jsx_dev_runtime487.jsxDEV(ThemedBox_default, {
|
|
508311
508851
|
flexDirection: "column",
|
|
508312
508852
|
gap: 1,
|
|
508313
508853
|
children: [
|
|
@@ -508330,7 +508870,7 @@ function _temp357() {
|
|
|
508330
508870
|
function _temp2103() {
|
|
508331
508871
|
process.exit(0);
|
|
508332
508872
|
}
|
|
508333
|
-
var import_react330,
|
|
508873
|
+
var import_react330, jsx_dev_runtime487;
|
|
508334
508874
|
var init_ResumeConversation = __esm(() => {
|
|
508335
508875
|
init_useTerminalSize();
|
|
508336
508876
|
init_state();
|
|
@@ -508353,7 +508893,7 @@ var init_ResumeConversation = __esm(() => {
|
|
|
508353
508893
|
init_sessionStorage();
|
|
508354
508894
|
init_REPL();
|
|
508355
508895
|
import_react330 = __toESM(require_react(), 1);
|
|
508356
|
-
|
|
508896
|
+
jsx_dev_runtime487 = __toESM(require_jsx_dev_runtime(), 1);
|
|
508357
508897
|
});
|
|
508358
508898
|
|
|
508359
508899
|
// src/dialogLaunchers.tsx
|
|
@@ -508361,7 +508901,7 @@ async function launchInvalidSettingsDialog(root2, props) {
|
|
|
508361
508901
|
const {
|
|
508362
508902
|
InvalidSettingsDialog: InvalidSettingsDialog2
|
|
508363
508903
|
} = await Promise.resolve().then(() => (init_InvalidSettingsDialog(), exports_InvalidSettingsDialog));
|
|
508364
|
-
return showSetupDialog(root2, (done) => /* @__PURE__ */
|
|
508904
|
+
return showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(InvalidSettingsDialog2, {
|
|
508365
508905
|
settingsErrors: props.settingsErrors,
|
|
508366
508906
|
onContinue: done,
|
|
508367
508907
|
onExit: props.onExit
|
|
@@ -508371,7 +508911,7 @@ async function launchTeleportResumeWrapper(root2) {
|
|
|
508371
508911
|
const {
|
|
508372
508912
|
TeleportResumeWrapper: TeleportResumeWrapper2
|
|
508373
508913
|
} = await Promise.resolve().then(() => (init_TeleportResumeWrapper(), exports_TeleportResumeWrapper));
|
|
508374
|
-
return showSetupDialog(root2, (done) => /* @__PURE__ */
|
|
508914
|
+
return showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(TeleportResumeWrapper2, {
|
|
508375
508915
|
onComplete: done,
|
|
508376
508916
|
onCancel: () => done(null),
|
|
508377
508917
|
source: "cliArg"
|
|
@@ -508381,7 +508921,7 @@ async function launchTeleportRepoMismatchDialog(root2, props) {
|
|
|
508381
508921
|
const {
|
|
508382
508922
|
TeleportRepoMismatchDialog: TeleportRepoMismatchDialog2
|
|
508383
508923
|
} = await Promise.resolve().then(() => (init_TeleportRepoMismatchDialog(), exports_TeleportRepoMismatchDialog));
|
|
508384
|
-
return showSetupDialog(root2, (done) => /* @__PURE__ */
|
|
508924
|
+
return showSetupDialog(root2, (done) => /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(TeleportRepoMismatchDialog2, {
|
|
508385
508925
|
targetRepo: props.targetRepo,
|
|
508386
508926
|
initialPaths: props.initialPaths,
|
|
508387
508927
|
onSelectPath: done,
|
|
@@ -508394,23 +508934,23 @@ async function launchResumeChooser(root2, appProps, worktreePathsPromise, resume
|
|
|
508394
508934
|
}, {
|
|
508395
508935
|
App: App3
|
|
508396
508936
|
}] = await Promise.all([worktreePathsPromise, Promise.resolve().then(() => (init_ResumeConversation(), exports_ResumeConversation)), Promise.resolve().then(() => (init_App2(), exports_App))]);
|
|
508397
|
-
await renderAndRun(root2, /* @__PURE__ */
|
|
508937
|
+
await renderAndRun(root2, /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(App3, {
|
|
508398
508938
|
getFpsMetrics: appProps.getFpsMetrics,
|
|
508399
508939
|
stats: appProps.stats,
|
|
508400
508940
|
initialState: appProps.initialState,
|
|
508401
|
-
children: /* @__PURE__ */
|
|
508402
|
-
children: /* @__PURE__ */
|
|
508941
|
+
children: /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(KeybindingSetup, {
|
|
508942
|
+
children: /* @__PURE__ */ jsx_dev_runtime488.jsxDEV(ResumeConversation2, {
|
|
508403
508943
|
...resumeProps,
|
|
508404
508944
|
worktreePaths
|
|
508405
508945
|
}, undefined, false, undefined, this)
|
|
508406
508946
|
}, undefined, false, undefined, this)
|
|
508407
508947
|
}, undefined, false, undefined, this));
|
|
508408
508948
|
}
|
|
508409
|
-
var
|
|
508949
|
+
var jsx_dev_runtime488;
|
|
508410
508950
|
var init_dialogLaunchers = __esm(() => {
|
|
508411
508951
|
init_interactiveHelpers();
|
|
508412
508952
|
init_KeybindingProviderSetup();
|
|
508413
|
-
|
|
508953
|
+
jsx_dev_runtime488 = __toESM(require_jsx_dev_runtime(), 1);
|
|
508414
508954
|
});
|
|
508415
508955
|
|
|
508416
508956
|
// src/plugins/bundled/index.ts
|
|
@@ -510858,6 +511398,64 @@ function eagerParseCliFlag(flagName, argv = process.argv) {
|
|
|
510858
511398
|
return;
|
|
510859
511399
|
}
|
|
510860
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
|
+
|
|
510861
511459
|
// src/migrations/migrateAutoUpdatesToSettings.ts
|
|
510862
511460
|
function migrateAutoUpdatesToSettings() {
|
|
510863
511461
|
const globalConfig = getGlobalConfig();
|
|
@@ -511247,7 +511845,7 @@ function appendToLog(path22, message) {
|
|
|
511247
511845
|
cwd: getFsImplementation().cwd(),
|
|
511248
511846
|
userType: process.env.USER_TYPE,
|
|
511249
511847
|
sessionId: getSessionId(),
|
|
511250
|
-
version: "1.0.
|
|
511848
|
+
version: "1.0.6"
|
|
511251
511849
|
};
|
|
511252
511850
|
getLogWriter(path22).write(messageWithTimestamp);
|
|
511253
511851
|
}
|
|
@@ -515224,8 +515822,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
515224
515822
|
}
|
|
515225
515823
|
async function checkEnvLessBridgeMinVersion() {
|
|
515226
515824
|
const cfg = await getEnvLessBridgeConfig();
|
|
515227
|
-
if (cfg.min_version && lt("1.0.
|
|
515228
|
-
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.
|
|
515229
515827
|
Version ${cfg.min_version} or higher is required. Run \`localclawd update\` to update.`;
|
|
515230
515828
|
}
|
|
515231
515829
|
return null;
|
|
@@ -515697,7 +516295,7 @@ async function initBridgeCore(params) {
|
|
|
515697
516295
|
const rawApi = createBridgeApiClient({
|
|
515698
516296
|
baseUrl,
|
|
515699
516297
|
getAccessToken,
|
|
515700
|
-
runnerVersion: "1.0.
|
|
516298
|
+
runnerVersion: "1.0.6",
|
|
515701
516299
|
onDebug: logForDebugging,
|
|
515702
516300
|
onAuth401,
|
|
515703
516301
|
getTrustedDeviceToken
|
|
@@ -520509,9 +521107,9 @@ function TeleportProgress(t0) {
|
|
|
520509
521107
|
const t2 = SPINNER_FRAMES3[frame];
|
|
520510
521108
|
let t3;
|
|
520511
521109
|
if ($3[2] !== t2) {
|
|
520512
|
-
t3 = /* @__PURE__ */
|
|
521110
|
+
t3 = /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedBox_default, {
|
|
520513
521111
|
marginBottom: 1,
|
|
520514
|
-
children: /* @__PURE__ */
|
|
521112
|
+
children: /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
|
|
520515
521113
|
bold: true,
|
|
520516
521114
|
color: "claude",
|
|
520517
521115
|
children: [
|
|
@@ -520527,9 +521125,9 @@ function TeleportProgress(t0) {
|
|
|
520527
521125
|
}
|
|
520528
521126
|
let t4;
|
|
520529
521127
|
if ($3[4] !== sessionId) {
|
|
520530
|
-
t4 = sessionId && /* @__PURE__ */
|
|
521128
|
+
t4 = sessionId && /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedBox_default, {
|
|
520531
521129
|
marginBottom: 1,
|
|
520532
|
-
children: /* @__PURE__ */
|
|
521130
|
+
children: /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
|
|
520533
521131
|
dimColor: true,
|
|
520534
521132
|
children: sessionId
|
|
520535
521133
|
}, undefined, false, undefined, this)
|
|
@@ -520559,18 +521157,18 @@ function TeleportProgress(t0) {
|
|
|
520559
521157
|
color3 = undefined;
|
|
520560
521158
|
}
|
|
520561
521159
|
}
|
|
520562
|
-
return /* @__PURE__ */
|
|
521160
|
+
return /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedBox_default, {
|
|
520563
521161
|
flexDirection: "row",
|
|
520564
521162
|
children: [
|
|
520565
|
-
/* @__PURE__ */
|
|
521163
|
+
/* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedBox_default, {
|
|
520566
521164
|
width: 2,
|
|
520567
|
-
children: /* @__PURE__ */
|
|
521165
|
+
children: /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
|
|
520568
521166
|
color: color3,
|
|
520569
521167
|
dimColor: isPending,
|
|
520570
521168
|
children: icon
|
|
520571
521169
|
}, undefined, false, undefined, this)
|
|
520572
521170
|
}, undefined, false, undefined, this),
|
|
520573
|
-
/* @__PURE__ */
|
|
521171
|
+
/* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedText, {
|
|
520574
521172
|
dimColor: isPending,
|
|
520575
521173
|
bold: isCurrent,
|
|
520576
521174
|
children: step.label
|
|
@@ -520586,7 +521184,7 @@ function TeleportProgress(t0) {
|
|
|
520586
521184
|
}
|
|
520587
521185
|
let t6;
|
|
520588
521186
|
if ($3[9] !== t5) {
|
|
520589
|
-
t6 = /* @__PURE__ */
|
|
521187
|
+
t6 = /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedBox_default, {
|
|
520590
521188
|
flexDirection: "column",
|
|
520591
521189
|
marginLeft: 2,
|
|
520592
521190
|
children: t5
|
|
@@ -520598,7 +521196,7 @@ function TeleportProgress(t0) {
|
|
|
520598
521196
|
}
|
|
520599
521197
|
let t7;
|
|
520600
521198
|
if ($3[11] !== ref || $3[12] !== t3 || $3[13] !== t4 || $3[14] !== t6) {
|
|
520601
|
-
t7 = /* @__PURE__ */
|
|
521199
|
+
t7 = /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(ThemedBox_default, {
|
|
520602
521200
|
ref,
|
|
520603
521201
|
flexDirection: "column",
|
|
520604
521202
|
paddingX: 1,
|
|
@@ -520624,13 +521222,13 @@ async function teleportWithProgress(root2, sessionId) {
|
|
|
520624
521222
|
function TeleportProgressWrapper() {
|
|
520625
521223
|
const [step, _setStep] = import_react331.useState("validating");
|
|
520626
521224
|
setStep = _setStep;
|
|
520627
|
-
return /* @__PURE__ */
|
|
521225
|
+
return /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(TeleportProgress, {
|
|
520628
521226
|
currentStep: step,
|
|
520629
521227
|
sessionId
|
|
520630
521228
|
}, undefined, false, undefined, this);
|
|
520631
521229
|
}
|
|
520632
|
-
root2.render(/* @__PURE__ */
|
|
520633
|
-
children: /* @__PURE__ */
|
|
521230
|
+
root2.render(/* @__PURE__ */ jsx_dev_runtime489.jsxDEV(AppStateProvider, {
|
|
521231
|
+
children: /* @__PURE__ */ jsx_dev_runtime489.jsxDEV(TeleportProgressWrapper, {}, undefined, false, undefined, this)
|
|
520634
521232
|
}, undefined, false, undefined, this));
|
|
520635
521233
|
const result = await teleportResumeCodeSession(sessionId, setStep);
|
|
520636
521234
|
setStep("checking_out");
|
|
@@ -520643,14 +521241,14 @@ async function teleportWithProgress(root2, sessionId) {
|
|
|
520643
521241
|
branchName
|
|
520644
521242
|
};
|
|
520645
521243
|
}
|
|
520646
|
-
var import_react331,
|
|
521244
|
+
var import_react331, jsx_dev_runtime489, SPINNER_FRAMES3, STEPS;
|
|
520647
521245
|
var init_TeleportProgress = __esm(() => {
|
|
520648
521246
|
init_figures();
|
|
520649
521247
|
init_ink2();
|
|
520650
521248
|
init_AppState();
|
|
520651
521249
|
init_teleport();
|
|
520652
521250
|
import_react331 = __toESM(require_react(), 1);
|
|
520653
|
-
|
|
521251
|
+
jsx_dev_runtime489 = __toESM(require_jsx_dev_runtime(), 1);
|
|
520654
521252
|
SPINNER_FRAMES3 = ["◐", "◓", "◑", "◒"];
|
|
520655
521253
|
STEPS = [{
|
|
520656
521254
|
key: "validating",
|
|
@@ -520786,7 +521384,7 @@ No servers were imported.`);
|
|
|
520786
521384
|
const t10 = `Found ${t8} MCP ${t9} in Claude Desktop.`;
|
|
520787
521385
|
let t11;
|
|
520788
521386
|
if ($3[16] !== collisions.length) {
|
|
520789
|
-
t11 = collisions.length > 0 && /* @__PURE__ */
|
|
521387
|
+
t11 = collisions.length > 0 && /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedText, {
|
|
520790
521388
|
color: "warning",
|
|
520791
521389
|
children: "Note: Some servers already exist with the same name. If selected, they will be imported with a numbered suffix."
|
|
520792
521390
|
}, undefined, false, undefined, this);
|
|
@@ -520797,7 +521395,7 @@ No servers were imported.`);
|
|
|
520797
521395
|
}
|
|
520798
521396
|
let t12;
|
|
520799
521397
|
if ($3[18] === Symbol.for("react.memo_cache_sentinel")) {
|
|
520800
|
-
t12 = /* @__PURE__ */
|
|
521398
|
+
t12 = /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedText, {
|
|
520801
521399
|
children: "Please select the servers you want to import:"
|
|
520802
521400
|
}, undefined, false, undefined, this);
|
|
520803
521401
|
$3[18] = t12;
|
|
@@ -520822,7 +521420,7 @@ No servers were imported.`);
|
|
|
520822
521420
|
}
|
|
520823
521421
|
let t15;
|
|
520824
521422
|
if ($3[23] !== handleEscCancel || $3[24] !== onSubmit || $3[25] !== t13 || $3[26] !== t14) {
|
|
520825
|
-
t15 = /* @__PURE__ */
|
|
521423
|
+
t15 = /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(SelectMulti, {
|
|
520826
521424
|
options: t13,
|
|
520827
521425
|
defaultValue: t14,
|
|
520828
521426
|
onSubmit,
|
|
@@ -520839,7 +521437,7 @@ No servers were imported.`);
|
|
|
520839
521437
|
}
|
|
520840
521438
|
let t16;
|
|
520841
521439
|
if ($3[28] !== handleEscCancel || $3[29] !== t10 || $3[30] !== t11 || $3[31] !== t15) {
|
|
520842
|
-
t16 = /* @__PURE__ */
|
|
521440
|
+
t16 = /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(Dialog, {
|
|
520843
521441
|
title: "Import MCP Servers from Claude Desktop",
|
|
520844
521442
|
subtitle: t10,
|
|
520845
521443
|
color: "success",
|
|
@@ -520861,22 +521459,22 @@ No servers were imported.`);
|
|
|
520861
521459
|
}
|
|
520862
521460
|
let t17;
|
|
520863
521461
|
if ($3[33] === Symbol.for("react.memo_cache_sentinel")) {
|
|
520864
|
-
t17 = /* @__PURE__ */
|
|
521462
|
+
t17 = /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedBox_default, {
|
|
520865
521463
|
paddingX: 1,
|
|
520866
|
-
children: /* @__PURE__ */
|
|
521464
|
+
children: /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ThemedText, {
|
|
520867
521465
|
dimColor: true,
|
|
520868
521466
|
italic: true,
|
|
520869
|
-
children: /* @__PURE__ */
|
|
521467
|
+
children: /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(Byline, {
|
|
520870
521468
|
children: [
|
|
520871
|
-
/* @__PURE__ */
|
|
521469
|
+
/* @__PURE__ */ jsx_dev_runtime490.jsxDEV(KeyboardShortcutHint, {
|
|
520872
521470
|
shortcut: "Space",
|
|
520873
521471
|
action: "select"
|
|
520874
521472
|
}, undefined, false, undefined, this),
|
|
520875
|
-
/* @__PURE__ */
|
|
521473
|
+
/* @__PURE__ */ jsx_dev_runtime490.jsxDEV(KeyboardShortcutHint, {
|
|
520876
521474
|
shortcut: "Enter",
|
|
520877
521475
|
action: "confirm"
|
|
520878
521476
|
}, undefined, false, undefined, this),
|
|
520879
|
-
/* @__PURE__ */
|
|
521477
|
+
/* @__PURE__ */ jsx_dev_runtime490.jsxDEV(ConfigurableShortcutHint, {
|
|
520880
521478
|
action: "confirm:no",
|
|
520881
521479
|
context: "Confirmation",
|
|
520882
521480
|
fallback: "Esc",
|
|
@@ -520892,7 +521490,7 @@ No servers were imported.`);
|
|
|
520892
521490
|
}
|
|
520893
521491
|
let t18;
|
|
520894
521492
|
if ($3[34] !== t16) {
|
|
520895
|
-
t18 = /* @__PURE__ */
|
|
521493
|
+
t18 = /* @__PURE__ */ jsx_dev_runtime490.jsxDEV(jsx_dev_runtime490.Fragment, {
|
|
520896
521494
|
children: [
|
|
520897
521495
|
t16,
|
|
520898
521496
|
t17
|
|
@@ -520905,7 +521503,7 @@ No servers were imported.`);
|
|
|
520905
521503
|
}
|
|
520906
521504
|
return t18;
|
|
520907
521505
|
}
|
|
520908
|
-
var import_react332,
|
|
521506
|
+
var import_react332, jsx_dev_runtime490;
|
|
520909
521507
|
var init_MCPServerDesktopImportDialog = __esm(() => {
|
|
520910
521508
|
init_gracefulShutdown();
|
|
520911
521509
|
init_ink2();
|
|
@@ -520917,7 +521515,7 @@ var init_MCPServerDesktopImportDialog = __esm(() => {
|
|
|
520917
521515
|
init_Dialog();
|
|
520918
521516
|
init_KeyboardShortcutHint();
|
|
520919
521517
|
import_react332 = __toESM(require_react(), 1);
|
|
520920
|
-
|
|
521518
|
+
jsx_dev_runtime490 = __toESM(require_jsx_dev_runtime(), 1);
|
|
520921
521519
|
});
|
|
520922
521520
|
|
|
520923
521521
|
// node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
|
|
@@ -521353,7 +521951,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
|
|
|
521353
521951
|
setCwd(cwd3);
|
|
521354
521952
|
const server = new Server({
|
|
521355
521953
|
name: "claude/tengu",
|
|
521356
|
-
version: "1.0.
|
|
521954
|
+
version: "1.0.6"
|
|
521357
521955
|
}, {
|
|
521358
521956
|
capabilities: {
|
|
521359
521957
|
tools: {}
|
|
@@ -521841,9 +522439,9 @@ async function mcpAddFromDesktopHandler(options) {
|
|
|
521841
522439
|
}
|
|
521842
522440
|
const {
|
|
521843
522441
|
unmount
|
|
521844
|
-
} = await render(/* @__PURE__ */
|
|
521845
|
-
children: /* @__PURE__ */
|
|
521846
|
-
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, {
|
|
521847
522445
|
servers,
|
|
521848
522446
|
scope,
|
|
521849
522447
|
onDone: () => {
|
|
@@ -521869,7 +522467,7 @@ async function mcpResetChoicesHandler() {
|
|
|
521869
522467
|
cliOk(`All project-scoped (.mcp.json) server approvals and rejections have been reset.
|
|
521870
522468
|
You will be prompted for approval next time you start localclawd.`);
|
|
521871
522469
|
}
|
|
521872
|
-
var
|
|
522470
|
+
var jsx_dev_runtime491;
|
|
521873
522471
|
var init_mcp5 = __esm(() => {
|
|
521874
522472
|
init_p_map();
|
|
521875
522473
|
init_MCPServerDesktopImportDialog();
|
|
@@ -521885,7 +522483,7 @@ var init_mcp5 = __esm(() => {
|
|
|
521885
522483
|
init_gracefulShutdown();
|
|
521886
522484
|
init_json();
|
|
521887
522485
|
init_platform();
|
|
521888
|
-
|
|
522486
|
+
jsx_dev_runtime491 = __toESM(require_jsx_dev_runtime(), 1);
|
|
521889
522487
|
});
|
|
521890
522488
|
|
|
521891
522489
|
// src/cli/handlers/plugins.ts
|
|
@@ -522438,11 +523036,11 @@ function SetupNotes(t0) {
|
|
|
522438
523036
|
}
|
|
522439
523037
|
let t1;
|
|
522440
523038
|
if ($3[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
522441
|
-
t1 = /* @__PURE__ */
|
|
522442
|
-
children: /* @__PURE__ */
|
|
523039
|
+
t1 = /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
523040
|
+
children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522443
523041
|
color: "warning",
|
|
522444
523042
|
children: [
|
|
522445
|
-
/* @__PURE__ */
|
|
523043
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(StatusIcon, {
|
|
522446
523044
|
status: "warning",
|
|
522447
523045
|
withSpace: true
|
|
522448
523046
|
}, undefined, false, undefined, this),
|
|
@@ -522464,7 +523062,7 @@ function SetupNotes(t0) {
|
|
|
522464
523062
|
}
|
|
522465
523063
|
let t3;
|
|
522466
523064
|
if ($3[3] !== t2) {
|
|
522467
|
-
t3 = /* @__PURE__ */
|
|
523065
|
+
t3 = /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522468
523066
|
flexDirection: "column",
|
|
522469
523067
|
gap: 0,
|
|
522470
523068
|
marginBottom: 1,
|
|
@@ -522481,9 +523079,9 @@ function SetupNotes(t0) {
|
|
|
522481
523079
|
return t3;
|
|
522482
523080
|
}
|
|
522483
523081
|
function _temp308(message, index) {
|
|
522484
|
-
return /* @__PURE__ */
|
|
523082
|
+
return /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522485
523083
|
marginLeft: 2,
|
|
522486
|
-
children: /* @__PURE__ */
|
|
523084
|
+
children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522487
523085
|
dimColor: true,
|
|
522488
523086
|
children: [
|
|
522489
523087
|
"• ",
|
|
@@ -522599,19 +523197,19 @@ function Install({
|
|
|
522599
523197
|
});
|
|
522600
523198
|
}
|
|
522601
523199
|
}, [state2, onDone]);
|
|
522602
|
-
return /* @__PURE__ */
|
|
523200
|
+
return /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522603
523201
|
flexDirection: "column",
|
|
522604
523202
|
marginTop: 1,
|
|
522605
523203
|
children: [
|
|
522606
|
-
state2.type === "checking" && /* @__PURE__ */
|
|
523204
|
+
state2.type === "checking" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522607
523205
|
color: "claude",
|
|
522608
523206
|
children: "Checking installation status..."
|
|
522609
523207
|
}, undefined, false, undefined, this),
|
|
522610
|
-
state2.type === "cleaning-npm" && /* @__PURE__ */
|
|
523208
|
+
state2.type === "cleaning-npm" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522611
523209
|
color: "warning",
|
|
522612
523210
|
children: "Cleaning up old npm installations..."
|
|
522613
523211
|
}, undefined, false, undefined, this),
|
|
522614
|
-
state2.type === "installing" && /* @__PURE__ */
|
|
523212
|
+
state2.type === "installing" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522615
523213
|
color: "claude",
|
|
522616
523214
|
children: [
|
|
522617
523215
|
"Installing localclawd native build ",
|
|
@@ -522619,54 +523217,54 @@ function Install({
|
|
|
522619
523217
|
"..."
|
|
522620
523218
|
]
|
|
522621
523219
|
}, undefined, true, undefined, this),
|
|
522622
|
-
state2.type === "setting-up" && /* @__PURE__ */
|
|
523220
|
+
state2.type === "setting-up" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522623
523221
|
color: "claude",
|
|
522624
523222
|
children: "Setting up launcher and shell integration..."
|
|
522625
523223
|
}, undefined, false, undefined, this),
|
|
522626
|
-
state2.type === "set-up" && /* @__PURE__ */
|
|
523224
|
+
state2.type === "set-up" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(SetupNotes, {
|
|
522627
523225
|
messages: state2.messages
|
|
522628
523226
|
}, undefined, false, undefined, this),
|
|
522629
|
-
state2.type === "success" && /* @__PURE__ */
|
|
523227
|
+
state2.type === "success" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522630
523228
|
flexDirection: "column",
|
|
522631
523229
|
gap: 1,
|
|
522632
523230
|
children: [
|
|
522633
|
-
/* @__PURE__ */
|
|
523231
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522634
523232
|
children: [
|
|
522635
|
-
/* @__PURE__ */
|
|
523233
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(StatusIcon, {
|
|
522636
523234
|
status: "success",
|
|
522637
523235
|
withSpace: true
|
|
522638
523236
|
}, undefined, false, undefined, this),
|
|
522639
|
-
/* @__PURE__ */
|
|
523237
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522640
523238
|
color: "success",
|
|
522641
523239
|
bold: true,
|
|
522642
523240
|
children: "localclawd successfully installed!"
|
|
522643
523241
|
}, undefined, false, undefined, this)
|
|
522644
523242
|
]
|
|
522645
523243
|
}, undefined, true, undefined, this),
|
|
522646
|
-
/* @__PURE__ */
|
|
523244
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522647
523245
|
marginLeft: 2,
|
|
522648
523246
|
flexDirection: "column",
|
|
522649
523247
|
gap: 1,
|
|
522650
523248
|
children: [
|
|
522651
|
-
state2.version !== "current" && /* @__PURE__ */
|
|
523249
|
+
state2.version !== "current" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522652
523250
|
children: [
|
|
522653
|
-
/* @__PURE__ */
|
|
523251
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522654
523252
|
dimColor: true,
|
|
522655
523253
|
children: "Version: "
|
|
522656
523254
|
}, undefined, false, undefined, this),
|
|
522657
|
-
/* @__PURE__ */
|
|
523255
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522658
523256
|
color: "claude",
|
|
522659
523257
|
children: state2.version
|
|
522660
523258
|
}, undefined, false, undefined, this)
|
|
522661
523259
|
]
|
|
522662
523260
|
}, undefined, true, undefined, this),
|
|
522663
|
-
/* @__PURE__ */
|
|
523261
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522664
523262
|
children: [
|
|
522665
|
-
/* @__PURE__ */
|
|
523263
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522666
523264
|
dimColor: true,
|
|
522667
523265
|
children: "Location: "
|
|
522668
523266
|
}, undefined, false, undefined, this),
|
|
522669
|
-
/* @__PURE__ */
|
|
523267
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522670
523268
|
color: "text",
|
|
522671
523269
|
children: getInstallationPath2()
|
|
522672
523270
|
}, undefined, false, undefined, this)
|
|
@@ -522674,57 +523272,57 @@ function Install({
|
|
|
522674
523272
|
}, undefined, true, undefined, this)
|
|
522675
523273
|
]
|
|
522676
523274
|
}, undefined, true, undefined, this),
|
|
522677
|
-
/* @__PURE__ */
|
|
523275
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522678
523276
|
marginLeft: 2,
|
|
522679
523277
|
flexDirection: "column",
|
|
522680
523278
|
gap: 1,
|
|
522681
|
-
children: /* @__PURE__ */
|
|
523279
|
+
children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522682
523280
|
marginTop: 1,
|
|
522683
523281
|
children: [
|
|
522684
|
-
/* @__PURE__ */
|
|
523282
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522685
523283
|
dimColor: true,
|
|
522686
523284
|
children: "Next: Run "
|
|
522687
523285
|
}, undefined, false, undefined, this),
|
|
522688
|
-
/* @__PURE__ */
|
|
523286
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522689
523287
|
color: "claude",
|
|
522690
523288
|
bold: true,
|
|
522691
523289
|
children: "localclawd --help"
|
|
522692
523290
|
}, undefined, false, undefined, this),
|
|
522693
|
-
/* @__PURE__ */
|
|
523291
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522694
523292
|
dimColor: true,
|
|
522695
523293
|
children: " to get started"
|
|
522696
523294
|
}, undefined, false, undefined, this)
|
|
522697
523295
|
]
|
|
522698
523296
|
}, undefined, true, undefined, this)
|
|
522699
523297
|
}, undefined, false, undefined, this),
|
|
522700
|
-
state2.setupMessages && /* @__PURE__ */
|
|
523298
|
+
state2.setupMessages && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(SetupNotes, {
|
|
522701
523299
|
messages: state2.setupMessages
|
|
522702
523300
|
}, undefined, false, undefined, this)
|
|
522703
523301
|
]
|
|
522704
523302
|
}, undefined, true, undefined, this),
|
|
522705
|
-
state2.type === "error" && /* @__PURE__ */
|
|
523303
|
+
state2.type === "error" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522706
523304
|
flexDirection: "column",
|
|
522707
523305
|
gap: 1,
|
|
522708
523306
|
children: [
|
|
522709
|
-
/* @__PURE__ */
|
|
523307
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522710
523308
|
children: [
|
|
522711
|
-
/* @__PURE__ */
|
|
523309
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(StatusIcon, {
|
|
522712
523310
|
status: "error",
|
|
522713
523311
|
withSpace: true
|
|
522714
523312
|
}, undefined, false, undefined, this),
|
|
522715
|
-
/* @__PURE__ */
|
|
523313
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522716
523314
|
color: "error",
|
|
522717
523315
|
children: "Installation failed"
|
|
522718
523316
|
}, undefined, false, undefined, this)
|
|
522719
523317
|
]
|
|
522720
523318
|
}, undefined, true, undefined, this),
|
|
522721
|
-
/* @__PURE__ */
|
|
523319
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522722
523320
|
color: "error",
|
|
522723
523321
|
children: state2.message
|
|
522724
523322
|
}, undefined, false, undefined, this),
|
|
522725
|
-
/* @__PURE__ */
|
|
523323
|
+
/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedBox_default, {
|
|
522726
523324
|
marginTop: 1,
|
|
522727
|
-
children: /* @__PURE__ */
|
|
523325
|
+
children: /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
|
|
522728
523326
|
dimColor: true,
|
|
522729
523327
|
children: "Try running with --force to override checks"
|
|
522730
523328
|
}, undefined, false, undefined, this)
|
|
@@ -522734,7 +523332,7 @@ function Install({
|
|
|
522734
523332
|
]
|
|
522735
523333
|
}, undefined, true, undefined, this);
|
|
522736
523334
|
}
|
|
522737
|
-
var import_react333,
|
|
523335
|
+
var import_react333, jsx_dev_runtime492, install;
|
|
522738
523336
|
var init_install = __esm(() => {
|
|
522739
523337
|
init_StatusIcon();
|
|
522740
523338
|
init_ink2();
|
|
@@ -522744,7 +523342,7 @@ var init_install = __esm(() => {
|
|
|
522744
523342
|
init_nativeInstaller();
|
|
522745
523343
|
init_settings2();
|
|
522746
523344
|
import_react333 = __toESM(require_react(), 1);
|
|
522747
|
-
|
|
523345
|
+
jsx_dev_runtime492 = __toESM(require_jsx_dev_runtime(), 1);
|
|
522748
523346
|
install = {
|
|
522749
523347
|
type: "local-jsx",
|
|
522750
523348
|
name: "install",
|
|
@@ -522756,7 +523354,7 @@ var init_install = __esm(() => {
|
|
|
522756
523354
|
const target = nonFlagArgs[0];
|
|
522757
523355
|
const {
|
|
522758
523356
|
unmount
|
|
522759
|
-
} = await render(/* @__PURE__ */
|
|
523357
|
+
} = await render(/* @__PURE__ */ jsx_dev_runtime492.jsxDEV(Install, {
|
|
522760
523358
|
onDone: (result, options) => {
|
|
522761
523359
|
unmount();
|
|
522762
523360
|
onDone(result, options);
|
|
@@ -522783,28 +523381,28 @@ async function setupTokenHandler(root2) {
|
|
|
522783
523381
|
ConsoleOAuthFlow: ConsoleOAuthFlow2
|
|
522784
523382
|
} = await Promise.resolve().then(() => (init_ConsoleOAuthFlow(), exports_ConsoleOAuthFlow));
|
|
522785
523383
|
await new Promise((resolve40) => {
|
|
522786
|
-
root2.render(/* @__PURE__ */
|
|
523384
|
+
root2.render(/* @__PURE__ */ jsx_dev_runtime493.jsxDEV(AppStateProvider, {
|
|
522787
523385
|
onChangeAppState,
|
|
522788
|
-
children: /* @__PURE__ */
|
|
522789
|
-
children: /* @__PURE__ */
|
|
523386
|
+
children: /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(KeybindingSetup, {
|
|
523387
|
+
children: /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedBox_default, {
|
|
522790
523388
|
flexDirection: "column",
|
|
522791
523389
|
gap: 1,
|
|
522792
523390
|
children: [
|
|
522793
|
-
/* @__PURE__ */
|
|
522794
|
-
showAuthWarning && /* @__PURE__ */
|
|
523391
|
+
/* @__PURE__ */ jsx_dev_runtime493.jsxDEV(WelcomeV2, {}, undefined, false, undefined, this),
|
|
523392
|
+
showAuthWarning && /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedBox_default, {
|
|
522795
523393
|
flexDirection: "column",
|
|
522796
523394
|
children: [
|
|
522797
|
-
/* @__PURE__ */
|
|
523395
|
+
/* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedText, {
|
|
522798
523396
|
color: "warning",
|
|
522799
523397
|
children: "Warning: You already have authentication configured via environment variable or API key helper."
|
|
522800
523398
|
}, undefined, false, undefined, this),
|
|
522801
|
-
/* @__PURE__ */
|
|
523399
|
+
/* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ThemedText, {
|
|
522802
523400
|
color: "warning",
|
|
522803
523401
|
children: "The setup-token command will create a new OAuth token which you can use instead."
|
|
522804
523402
|
}, undefined, false, undefined, this)
|
|
522805
523403
|
]
|
|
522806
523404
|
}, undefined, true, undefined, this),
|
|
522807
|
-
/* @__PURE__ */
|
|
523405
|
+
/* @__PURE__ */ jsx_dev_runtime493.jsxDEV(ConsoleOAuthFlow2, {
|
|
522808
523406
|
onDone: () => {
|
|
522809
523407
|
resolve40();
|
|
522810
523408
|
},
|
|
@@ -522827,9 +523425,9 @@ function DoctorWithPlugins(t0) {
|
|
|
522827
523425
|
useManagePlugins();
|
|
522828
523426
|
let t1;
|
|
522829
523427
|
if ($3[0] !== onDone) {
|
|
522830
|
-
t1 = /* @__PURE__ */
|
|
523428
|
+
t1 = /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(import_react334.default.Suspense, {
|
|
522831
523429
|
fallback: null,
|
|
522832
|
-
children: /* @__PURE__ */
|
|
523430
|
+
children: /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(DoctorLazy, {
|
|
522833
523431
|
onDone
|
|
522834
523432
|
}, undefined, false, undefined, this)
|
|
522835
523433
|
}, undefined, false, undefined, this);
|
|
@@ -522843,12 +523441,12 @@ function DoctorWithPlugins(t0) {
|
|
|
522843
523441
|
async function doctorHandler(root2) {
|
|
522844
523442
|
logEvent("tengu_doctor_command", {});
|
|
522845
523443
|
await new Promise((resolve40) => {
|
|
522846
|
-
root2.render(/* @__PURE__ */
|
|
522847
|
-
children: /* @__PURE__ */
|
|
522848
|
-
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, {
|
|
522849
523447
|
dynamicMcpConfig: undefined,
|
|
522850
523448
|
isStrictMcpConfig: false,
|
|
522851
|
-
children: /* @__PURE__ */
|
|
523449
|
+
children: /* @__PURE__ */ jsx_dev_runtime493.jsxDEV(DoctorWithPlugins, {
|
|
522852
523450
|
onDone: () => {
|
|
522853
523451
|
resolve40();
|
|
522854
523452
|
}
|
|
@@ -522880,7 +523478,7 @@ async function installHandler(target, options) {
|
|
|
522880
523478
|
}, {}, args);
|
|
522881
523479
|
});
|
|
522882
523480
|
}
|
|
522883
|
-
var import_react334,
|
|
523481
|
+
var import_react334, jsx_dev_runtime493, DoctorLazy;
|
|
522884
523482
|
var init_util = __esm(() => {
|
|
522885
523483
|
init_WelcomeV2();
|
|
522886
523484
|
init_useManagePlugins();
|
|
@@ -522891,7 +523489,7 @@ var init_util = __esm(() => {
|
|
|
522891
523489
|
init_onChangeAppState();
|
|
522892
523490
|
init_auth2();
|
|
522893
523491
|
import_react334 = __toESM(require_react(), 1);
|
|
522894
|
-
|
|
523492
|
+
jsx_dev_runtime493 = __toESM(require_jsx_dev_runtime(), 1);
|
|
522895
523493
|
DoctorLazy = import_react334.default.lazy(() => Promise.resolve().then(() => (init_Doctor(), exports_Doctor)).then((m2) => ({
|
|
522896
523494
|
default: m2.Doctor
|
|
522897
523495
|
})));
|
|
@@ -522958,7 +523556,7 @@ __export(exports_update, {
|
|
|
522958
523556
|
});
|
|
522959
523557
|
async function update() {
|
|
522960
523558
|
logEvent("tengu_update_check", {});
|
|
522961
|
-
writeToStdout(`Current version: ${"1.0.
|
|
523559
|
+
writeToStdout(`Current version: ${"1.0.6"}
|
|
522962
523560
|
`);
|
|
522963
523561
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
522964
523562
|
writeToStdout(`Checking for updates to ${channel} version...
|
|
@@ -523033,8 +523631,8 @@ async function update() {
|
|
|
523033
523631
|
writeToStdout(`localclawd is managed by Homebrew.
|
|
523034
523632
|
`);
|
|
523035
523633
|
const latest = await getLatestVersion(channel);
|
|
523036
|
-
if (latest && !gte("1.0.
|
|
523037
|
-
writeToStdout(`Update available: ${"1.0.
|
|
523634
|
+
if (latest && !gte("1.0.6", latest)) {
|
|
523635
|
+
writeToStdout(`Update available: ${"1.0.6"} → ${latest}
|
|
523038
523636
|
`);
|
|
523039
523637
|
writeToStdout(`
|
|
523040
523638
|
`);
|
|
@@ -523050,8 +523648,8 @@ async function update() {
|
|
|
523050
523648
|
writeToStdout(`localclawd is managed by winget.
|
|
523051
523649
|
`);
|
|
523052
523650
|
const latest = await getLatestVersion(channel);
|
|
523053
|
-
if (latest && !gte("1.0.
|
|
523054
|
-
writeToStdout(`Update available: ${"1.0.
|
|
523651
|
+
if (latest && !gte("1.0.6", latest)) {
|
|
523652
|
+
writeToStdout(`Update available: ${"1.0.6"} → ${latest}
|
|
523055
523653
|
`);
|
|
523056
523654
|
writeToStdout(`
|
|
523057
523655
|
`);
|
|
@@ -523065,8 +523663,8 @@ async function update() {
|
|
|
523065
523663
|
writeToStdout(`localclawd is managed by apk.
|
|
523066
523664
|
`);
|
|
523067
523665
|
const latest = await getLatestVersion(channel);
|
|
523068
|
-
if (latest && !gte("1.0.
|
|
523069
|
-
writeToStdout(`Update available: ${"1.0.
|
|
523666
|
+
if (latest && !gte("1.0.6", latest)) {
|
|
523667
|
+
writeToStdout(`Update available: ${"1.0.6"} → ${latest}
|
|
523070
523668
|
`);
|
|
523071
523669
|
writeToStdout(`
|
|
523072
523670
|
`);
|
|
@@ -523131,11 +523729,11 @@ async function update() {
|
|
|
523131
523729
|
`);
|
|
523132
523730
|
await gracefulShutdown(1);
|
|
523133
523731
|
}
|
|
523134
|
-
if (result.latestVersion === "1.0.
|
|
523135
|
-
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"})`) + `
|
|
523136
523734
|
`);
|
|
523137
523735
|
} else {
|
|
523138
|
-
writeToStdout(source_default.green(`Successfully updated from ${"1.0.
|
|
523736
|
+
writeToStdout(source_default.green(`Successfully updated from ${"1.0.6"} to version ${result.latestVersion}`) + `
|
|
523139
523737
|
`);
|
|
523140
523738
|
await regenerateCompletionCache();
|
|
523141
523739
|
}
|
|
@@ -523195,12 +523793,12 @@ async function update() {
|
|
|
523195
523793
|
`);
|
|
523196
523794
|
await gracefulShutdown(1);
|
|
523197
523795
|
}
|
|
523198
|
-
if (latestVersion === "1.0.
|
|
523199
|
-
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"})`) + `
|
|
523200
523798
|
`);
|
|
523201
523799
|
await gracefulShutdown(0);
|
|
523202
523800
|
}
|
|
523203
|
-
writeToStdout(`New version available: ${latestVersion} (current: ${"1.0.
|
|
523801
|
+
writeToStdout(`New version available: ${latestVersion} (current: ${"1.0.6"})
|
|
523204
523802
|
`);
|
|
523205
523803
|
writeToStdout(`Installing update...
|
|
523206
523804
|
`);
|
|
@@ -523245,7 +523843,7 @@ async function update() {
|
|
|
523245
523843
|
logForDebugging(`update: Installation status: ${status2}`);
|
|
523246
523844
|
switch (status2) {
|
|
523247
523845
|
case "success":
|
|
523248
|
-
writeToStdout(source_default.green(`Successfully updated from ${"1.0.
|
|
523846
|
+
writeToStdout(source_default.green(`Successfully updated from ${"1.0.6"} to version ${latestVersion}`) + `
|
|
523249
523847
|
`);
|
|
523250
523848
|
await regenerateCompletionCache();
|
|
523251
523849
|
break;
|
|
@@ -523855,6 +524453,7 @@ ${getTmuxInstallInstructions2()}
|
|
|
523855
524453
|
}
|
|
523856
524454
|
}
|
|
523857
524455
|
const isNonInteractiveSession = getIsNonInteractiveSession();
|
|
524456
|
+
const startupLoadingIndicator = !isNonInteractiveSession ? startStartupLoadingIndicator("Loading model and MCP configuration") : null;
|
|
523858
524457
|
if (fallbackModel && options.model && fallbackModel === options.model) {
|
|
523859
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.
|
|
523860
524459
|
`));
|
|
@@ -524100,7 +524699,6 @@ ${hint}` : hint;
|
|
|
524100
524699
|
}
|
|
524101
524700
|
return allowed;
|
|
524102
524701
|
}) : Promise.resolve({});
|
|
524103
|
-
logForDebugging("[STARTUP] Loading MCP configs...");
|
|
524104
524702
|
const mcpConfigStart = Date.now();
|
|
524105
524703
|
let mcpConfigResolvedMs;
|
|
524106
524704
|
const mcpConfigPromise = (strictMcpConfig || isBareMode() ? Promise.resolve({
|
|
@@ -524110,38 +524708,46 @@ ${hint}` : hint;
|
|
|
524110
524708
|
return result;
|
|
524111
524709
|
});
|
|
524112
524710
|
if (inputFormat && inputFormat !== "text" && inputFormat !== "stream-json") {
|
|
524711
|
+
startupLoadingIndicator?.stop();
|
|
524113
524712
|
console.error(`Error: Invalid input format "${inputFormat}".`);
|
|
524114
524713
|
process.exit(1);
|
|
524115
524714
|
}
|
|
524116
524715
|
if (inputFormat === "stream-json" && outputFormat !== "stream-json") {
|
|
524716
|
+
startupLoadingIndicator?.stop();
|
|
524117
524717
|
console.error(`Error: --input-format=stream-json requires output-format=stream-json.`);
|
|
524118
524718
|
process.exit(1);
|
|
524119
524719
|
}
|
|
524120
524720
|
if (sdkUrl) {
|
|
524121
524721
|
if (inputFormat !== "stream-json" || outputFormat !== "stream-json") {
|
|
524722
|
+
startupLoadingIndicator?.stop();
|
|
524122
524723
|
console.error(`Error: --sdk-url requires both --input-format=stream-json and --output-format=stream-json.`);
|
|
524123
524724
|
process.exit(1);
|
|
524124
524725
|
}
|
|
524125
524726
|
}
|
|
524126
524727
|
if (options.replayUserMessages) {
|
|
524127
524728
|
if (inputFormat !== "stream-json" || outputFormat !== "stream-json") {
|
|
524729
|
+
startupLoadingIndicator?.stop();
|
|
524128
524730
|
console.error(`Error: --replay-user-messages requires both --input-format=stream-json and --output-format=stream-json.`);
|
|
524129
524731
|
process.exit(1);
|
|
524130
524732
|
}
|
|
524131
524733
|
}
|
|
524132
524734
|
if (effectiveIncludePartialMessages) {
|
|
524133
524735
|
if (!isNonInteractiveSession || outputFormat !== "stream-json") {
|
|
524736
|
+
startupLoadingIndicator?.stop();
|
|
524134
524737
|
writeToStderr(`Error: --include-partial-messages requires --print and --output-format=stream-json.`);
|
|
524135
524738
|
process.exit(1);
|
|
524136
524739
|
}
|
|
524137
524740
|
}
|
|
524138
524741
|
if (options.sessionPersistence === false && !isNonInteractiveSession) {
|
|
524742
|
+
startupLoadingIndicator?.stop();
|
|
524139
524743
|
writeToStderr(`Error: --no-session-persistence can only be used with --print mode.`);
|
|
524140
524744
|
process.exit(1);
|
|
524141
524745
|
}
|
|
524142
524746
|
const effectivePrompt = prompt || "";
|
|
524747
|
+
startupLoadingIndicator?.update("Reading startup input");
|
|
524143
524748
|
let inputPrompt = await getInputPrompt(effectivePrompt, inputFormat ?? "text");
|
|
524144
524749
|
profileCheckpoint("action_after_input_prompt");
|
|
524750
|
+
startupLoadingIndicator?.update("Checking available tools");
|
|
524145
524751
|
maybeActivateProactive(options);
|
|
524146
524752
|
let tools = getTools(toolPermissionContext);
|
|
524147
524753
|
if (false) {}
|
|
@@ -524167,7 +524773,7 @@ ${hint}` : hint;
|
|
|
524167
524773
|
}
|
|
524168
524774
|
}
|
|
524169
524775
|
profileCheckpoint("action_before_setup");
|
|
524170
|
-
|
|
524776
|
+
startupLoadingIndicator?.update("Preparing workspace");
|
|
524171
524777
|
const setupStart = Date.now();
|
|
524172
524778
|
const {
|
|
524173
524779
|
setup: setup2
|
|
@@ -524184,7 +524790,6 @@ ${hint}` : hint;
|
|
|
524184
524790
|
commandsPromise?.catch(() => {});
|
|
524185
524791
|
agentDefsPromise?.catch(() => {});
|
|
524186
524792
|
await setupPromise;
|
|
524187
|
-
logForDebugging(`[STARTUP] setup() completed in ${Date.now() - setupStart}ms`);
|
|
524188
524793
|
profileCheckpoint("action_after_setup");
|
|
524189
524794
|
let effectiveReplayUserMessages = !!options.replayUserMessages;
|
|
524190
524795
|
if (false) {}
|
|
@@ -524203,10 +524808,9 @@ ${hint}` : hint;
|
|
|
524203
524808
|
const userSpecifiedModel = options.model === "default" ? getDefaultMainLoopModel() : options.model;
|
|
524204
524809
|
const userSpecifiedFallbackModel = fallbackModel === "default" ? getDefaultMainLoopModel() : fallbackModel;
|
|
524205
524810
|
const currentCwd2 = worktreeEnabled ? getCwd() : preSetupCwd;
|
|
524206
|
-
|
|
524811
|
+
startupLoadingIndicator?.update("Loading commands and agents");
|
|
524207
524812
|
const commandsStart = Date.now();
|
|
524208
524813
|
const [commands, agentDefinitionsResult] = await Promise.all([commandsPromise ?? getCommands(currentCwd2), agentDefsPromise ?? getAgentDefinitionsWithOverrides(currentCwd2)]);
|
|
524209
|
-
logForDebugging(`[STARTUP] Commands and agents loaded in ${Date.now() - commandsStart}ms`);
|
|
524210
524814
|
profileCheckpoint("action_commands_loaded");
|
|
524211
524815
|
let cliAgents = [];
|
|
524212
524816
|
if (agentsJson) {
|
|
@@ -524274,12 +524878,14 @@ ${inputPrompt}` : mainThreadAgentDefinition.initialPrompt;
|
|
|
524274
524878
|
if (advisorOption) {
|
|
524275
524879
|
logForDebugging(`[AdvisorTool] --advisor ${advisorOption}`);
|
|
524276
524880
|
if (!modelSupportsAdvisor(resolvedInitialModel)) {
|
|
524881
|
+
startupLoadingIndicator?.stop();
|
|
524277
524882
|
process.stderr.write(source_default.red(`Error: The model "${resolvedInitialModel}" does not support the advisor tool.
|
|
524278
524883
|
`));
|
|
524279
524884
|
process.exit(1);
|
|
524280
524885
|
}
|
|
524281
524886
|
const normalizedAdvisorModel = normalizeModelStringForAPI(parseUserSpecifiedModel(advisorOption));
|
|
524282
524887
|
if (!isValidAdvisorModel(normalizedAdvisorModel)) {
|
|
524888
|
+
startupLoadingIndicator?.stop();
|
|
524283
524889
|
process.stderr.write(source_default.red(`Error: The model "${advisorOption}" cannot be used as an advisor.
|
|
524284
524890
|
`));
|
|
524285
524891
|
process.exit(1);
|
|
@@ -524326,6 +524932,7 @@ ${customInstructions}` : customInstructions;
|
|
|
524326
524932
|
let getFpsMetrics;
|
|
524327
524933
|
let stats2;
|
|
524328
524934
|
if (!isNonInteractiveSession) {
|
|
524935
|
+
startupLoadingIndicator?.update("Launching dashboard");
|
|
524329
524936
|
const ctx = getRenderContext(false);
|
|
524330
524937
|
getFpsMetrics = ctx.getFpsMetrics;
|
|
524331
524938
|
stats2 = ctx.stats;
|
|
@@ -524333,15 +524940,14 @@ ${customInstructions}` : customInstructions;
|
|
|
524333
524940
|
const {
|
|
524334
524941
|
createRoot: createRoot3
|
|
524335
524942
|
} = await Promise.resolve().then(() => (init_ink2(), exports_ink));
|
|
524943
|
+
startupLoadingIndicator?.stop();
|
|
524336
524944
|
root2 = await createRoot3(ctx.renderOptions);
|
|
524337
524945
|
logEvent("tengu_timer", {
|
|
524338
524946
|
event: "startup",
|
|
524339
524947
|
durationMs: Math.round(process.uptime() * 1000)
|
|
524340
524948
|
});
|
|
524341
|
-
logForDebugging("[STARTUP] Running showSetupScreens()...");
|
|
524342
524949
|
const setupScreensStart = Date.now();
|
|
524343
524950
|
const onboardingShown = await showSetupScreens(root2, permissionMode, allowDangerouslySkipPermissions, commands, enableClaudeInChrome, devChannels);
|
|
524344
|
-
logForDebugging(`[STARTUP] showSetupScreens() completed in ${Date.now() - setupScreensStart}ms`);
|
|
524345
524951
|
if (false) {}
|
|
524346
524952
|
if (false) {}
|
|
524347
524953
|
if (onboardingShown && prompt?.trim().toLowerCase() === "/login") {
|
|
@@ -524487,7 +525093,7 @@ ${customInstructions}` : customInstructions;
|
|
|
524487
525093
|
}
|
|
524488
525094
|
}
|
|
524489
525095
|
logForDiagnosticsNoPII("info", "started", {
|
|
524490
|
-
version: "1.0.
|
|
525096
|
+
version: "1.0.6",
|
|
524491
525097
|
is_native_binary: isInBundledMode()
|
|
524492
525098
|
});
|
|
524493
525099
|
registerCleanup(async () => {
|
|
@@ -525271,7 +525877,7 @@ Usage: localclawd --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
525271
525877
|
pendingHookMessages
|
|
525272
525878
|
}, renderAndRun);
|
|
525273
525879
|
}
|
|
525274
|
-
}).version("1.0.
|
|
525880
|
+
}).version("1.0.6 (localClawd)", "-v, --version", "Output the version number");
|
|
525275
525881
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
525276
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.");
|
|
525277
525883
|
if (canUserConfigureAdvisor()) {
|
|
@@ -525728,6 +526334,7 @@ var init_main3 = __esm(() => {
|
|
|
525728
526334
|
init_Shell();
|
|
525729
526335
|
init_sessionRestore();
|
|
525730
526336
|
init_constants2();
|
|
526337
|
+
init_startupLoading();
|
|
525731
526338
|
init_stringUtils();
|
|
525732
526339
|
init_state();
|
|
525733
526340
|
init_migrateAutoUpdatesToSettings();
|
|
@@ -525778,7 +526385,7 @@ if (false) {}
|
|
|
525778
526385
|
async function main2() {
|
|
525779
526386
|
const args = process.argv.slice(2);
|
|
525780
526387
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
525781
|
-
console.log(`${"1.0.
|
|
526388
|
+
console.log(`${"1.0.6"} (localclawd)`);
|
|
525782
526389
|
return;
|
|
525783
526390
|
}
|
|
525784
526391
|
const {
|
|
@@ -525862,4 +526469,4 @@ async function main2() {
|
|
|
525862
526469
|
}
|
|
525863
526470
|
main2();
|
|
525864
526471
|
|
|
525865
|
-
//# debugId=
|
|
526472
|
+
//# debugId=53D85FDAF878BEF864756E2164756E21
|