localclawd 1.0.9 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.mjs +202 -185
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -89253,7 +89253,7 @@ var init_isEqual = __esm(() => {
|
|
|
89253
89253
|
|
|
89254
89254
|
// src/utils/userAgent.ts
|
|
89255
89255
|
function getClaudeCodeUserAgent() {
|
|
89256
|
-
return `claude-code/${"1.0
|
|
89256
|
+
return `claude-code/${"1.1.0"}`;
|
|
89257
89257
|
}
|
|
89258
89258
|
|
|
89259
89259
|
// src/utils/workloadContext.ts
|
|
@@ -89275,7 +89275,7 @@ function getUserAgent() {
|
|
|
89275
89275
|
const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
|
|
89276
89276
|
const workload = getWorkload();
|
|
89277
89277
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
89278
|
-
return `claude-cli/${"1.0
|
|
89278
|
+
return `claude-cli/${"1.1.0"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
89279
89279
|
}
|
|
89280
89280
|
function getMCPUserAgent() {
|
|
89281
89281
|
const parts = [];
|
|
@@ -89289,7 +89289,7 @@ function getMCPUserAgent() {
|
|
|
89289
89289
|
parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
|
|
89290
89290
|
}
|
|
89291
89291
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
89292
|
-
return `claude-code/${"1.0
|
|
89292
|
+
return `claude-code/${"1.1.0"}${suffix}`;
|
|
89293
89293
|
}
|
|
89294
89294
|
function getWebFetchUserAgent() {
|
|
89295
89295
|
return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
|
|
@@ -99110,7 +99110,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
99110
99110
|
if (!isAttributionHeaderEnabled()) {
|
|
99111
99111
|
return "";
|
|
99112
99112
|
}
|
|
99113
|
-
const version = `${"1.0
|
|
99113
|
+
const version = `${"1.1.0"}.${fingerprint}`;
|
|
99114
99114
|
const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
|
|
99115
99115
|
const cch = "";
|
|
99116
99116
|
const workload = getWorkload();
|
|
@@ -132657,7 +132657,7 @@ var init_metadata = __esm(() => {
|
|
|
132657
132657
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
132658
132658
|
WHITESPACE_REGEX = /\s+/;
|
|
132659
132659
|
getVersionBase = memoize_default(() => {
|
|
132660
|
-
const match = "1.0
|
|
132660
|
+
const match = "1.1.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
132661
132661
|
return match ? match[0] : undefined;
|
|
132662
132662
|
});
|
|
132663
132663
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -132697,9 +132697,9 @@ var init_metadata = __esm(() => {
|
|
|
132697
132697
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
132698
132698
|
isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
|
|
132699
132699
|
isClaudeAiAuth: isClaudeAISubscriber(),
|
|
132700
|
-
version: "1.0
|
|
132700
|
+
version: "1.1.0",
|
|
132701
132701
|
versionBase: getVersionBase(),
|
|
132702
|
-
buildTime: "2026-04-
|
|
132702
|
+
buildTime: "2026-04-05T21:11:48.193Z",
|
|
132703
132703
|
deploymentEnvironment: env4.detectDeploymentEnvironment(),
|
|
132704
132704
|
...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
|
|
132705
132705
|
githubEventName: process.env.GITHUB_EVENT_NAME,
|
|
@@ -197286,7 +197286,7 @@ function getTelemetryAttributes() {
|
|
|
197286
197286
|
attributes["session.id"] = sessionId;
|
|
197287
197287
|
}
|
|
197288
197288
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
197289
|
-
attributes["app.version"] = "1.0
|
|
197289
|
+
attributes["app.version"] = "1.1.0";
|
|
197290
197290
|
}
|
|
197291
197291
|
const oauthAccount = getOauthAccountInfo();
|
|
197292
197292
|
if (oauthAccount) {
|
|
@@ -229347,7 +229347,7 @@ function getInstallationEnv() {
|
|
|
229347
229347
|
return;
|
|
229348
229348
|
}
|
|
229349
229349
|
function getClaudeCodeVersion() {
|
|
229350
|
-
return "1.0
|
|
229350
|
+
return "1.1.0";
|
|
229351
229351
|
}
|
|
229352
229352
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
229353
229353
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -234949,7 +234949,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
234949
234949
|
const client4 = new Client({
|
|
234950
234950
|
name: "claude-code",
|
|
234951
234951
|
title: "Claude Code",
|
|
234952
|
-
version: "1.0
|
|
234952
|
+
version: "1.1.0",
|
|
234953
234953
|
description: "Anthropic's agentic coding tool",
|
|
234954
234954
|
websiteUrl: PRODUCT_URL
|
|
234955
234955
|
}, {
|
|
@@ -235302,7 +235302,7 @@ var init_client9 = __esm(() => {
|
|
|
235302
235302
|
const client4 = new Client({
|
|
235303
235303
|
name: "claude-code",
|
|
235304
235304
|
title: "Claude Code",
|
|
235305
|
-
version: "1.0
|
|
235305
|
+
version: "1.1.0",
|
|
235306
235306
|
description: "Anthropic's agentic coding tool",
|
|
235307
235307
|
websiteUrl: PRODUCT_URL
|
|
235308
235308
|
}, {
|
|
@@ -258493,7 +258493,7 @@ var init_user = __esm(() => {
|
|
|
258493
258493
|
deviceId,
|
|
258494
258494
|
sessionId: getSessionId(),
|
|
258495
258495
|
email: getEmail(),
|
|
258496
|
-
appVersion: "1.0
|
|
258496
|
+
appVersion: "1.1.0",
|
|
258497
258497
|
platform: getHostPlatformForAnalytics(),
|
|
258498
258498
|
organizationUuid,
|
|
258499
258499
|
accountUuid,
|
|
@@ -259817,7 +259817,7 @@ async function initializeBetaTracing(resource) {
|
|
|
259817
259817
|
});
|
|
259818
259818
|
logs.setGlobalLoggerProvider(loggerProvider);
|
|
259819
259819
|
setLoggerProvider(loggerProvider);
|
|
259820
|
-
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.0
|
|
259820
|
+
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.0");
|
|
259821
259821
|
setEventLogger(eventLogger);
|
|
259822
259822
|
process.on("beforeExit", async () => {
|
|
259823
259823
|
await loggerProvider?.forceFlush();
|
|
@@ -259857,7 +259857,7 @@ async function initializeTelemetry() {
|
|
|
259857
259857
|
const platform3 = getPlatform();
|
|
259858
259858
|
const baseAttributes = {
|
|
259859
259859
|
[ATTR_SERVICE_NAME5]: "claude-code",
|
|
259860
|
-
[ATTR_SERVICE_VERSION5]: "1.0
|
|
259860
|
+
[ATTR_SERVICE_VERSION5]: "1.1.0"
|
|
259861
259861
|
};
|
|
259862
259862
|
if (platform3 === "wsl") {
|
|
259863
259863
|
const wslVersion = getWslVersion();
|
|
@@ -259902,7 +259902,7 @@ async function initializeTelemetry() {
|
|
|
259902
259902
|
} catch {}
|
|
259903
259903
|
};
|
|
259904
259904
|
registerCleanup(shutdownTelemetry2);
|
|
259905
|
-
return meterProvider2.getMeter("com.anthropic.claude_code", "1.0
|
|
259905
|
+
return meterProvider2.getMeter("com.anthropic.claude_code", "1.1.0");
|
|
259906
259906
|
}
|
|
259907
259907
|
const meterProvider = new MeterProvider5({
|
|
259908
259908
|
resource,
|
|
@@ -259922,7 +259922,7 @@ async function initializeTelemetry() {
|
|
|
259922
259922
|
});
|
|
259923
259923
|
logs.setGlobalLoggerProvider(loggerProvider);
|
|
259924
259924
|
setLoggerProvider(loggerProvider);
|
|
259925
|
-
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.0
|
|
259925
|
+
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "1.1.0");
|
|
259926
259926
|
setEventLogger(eventLogger);
|
|
259927
259927
|
logForDebugging("[3P telemetry] Event logger set successfully");
|
|
259928
259928
|
process.on("beforeExit", async () => {
|
|
@@ -259984,7 +259984,7 @@ Current timeout: ${timeoutMs}ms
|
|
|
259984
259984
|
}
|
|
259985
259985
|
};
|
|
259986
259986
|
registerCleanup(shutdownTelemetry);
|
|
259987
|
-
return meterProvider.getMeter("com.anthropic.claude_code", "1.0
|
|
259987
|
+
return meterProvider.getMeter("com.anthropic.claude_code", "1.1.0");
|
|
259988
259988
|
}
|
|
259989
259989
|
async function flushTelemetry() {
|
|
259990
259990
|
const meterProvider = getMeterProvider();
|
|
@@ -261207,7 +261207,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
261207
261207
|
}
|
|
261208
261208
|
async function getDoctorDiagnostic() {
|
|
261209
261209
|
const installationType = await getCurrentInstallationType();
|
|
261210
|
-
const version = typeof MACRO !== "undefined" ? "1.0
|
|
261210
|
+
const version = typeof MACRO !== "undefined" ? "1.1.0" : "unknown";
|
|
261211
261211
|
const installationPath = await getInstallationPath();
|
|
261212
261212
|
const invokedBinary = getInvokedBinary();
|
|
261213
261213
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -262148,8 +262148,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
262148
262148
|
const maxVersion = await getMaxVersion();
|
|
262149
262149
|
if (maxVersion && gt(version, maxVersion)) {
|
|
262150
262150
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version} to ${maxVersion}`);
|
|
262151
|
-
if (gte("1.0
|
|
262152
|
-
logForDebugging(`Native installer: current version ${"1.0
|
|
262151
|
+
if (gte("1.1.0", maxVersion)) {
|
|
262152
|
+
logForDebugging(`Native installer: current version ${"1.1.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
262153
262153
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
262154
262154
|
latency_ms: Date.now() - startTime,
|
|
262155
262155
|
max_version: maxVersion,
|
|
@@ -262160,7 +262160,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
262160
262160
|
version = maxVersion;
|
|
262161
262161
|
}
|
|
262162
262162
|
}
|
|
262163
|
-
if (!forceReinstall && version === "1.0
|
|
262163
|
+
if (!forceReinstall && version === "1.1.0" && await versionIsAvailable(version) && await isPossibleLocalClawdBinary(executablePath)) {
|
|
262164
262164
|
logForDebugging(`Found ${version} at ${executablePath}, skipping install`);
|
|
262165
262165
|
logEvent("tengu_native_update_complete", {
|
|
262166
262166
|
latency_ms: Date.now() - startTime,
|
|
@@ -333236,7 +333236,7 @@ function getAnthropicEnvMetadata() {
|
|
|
333236
333236
|
function getBuildAgeMinutes() {
|
|
333237
333237
|
if (false)
|
|
333238
333238
|
;
|
|
333239
|
-
const buildTime = new Date("2026-04-
|
|
333239
|
+
const buildTime = new Date("2026-04-05T21:11:48.193Z").getTime();
|
|
333240
333240
|
if (isNaN(buildTime))
|
|
333241
333241
|
return;
|
|
333242
333242
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -356944,7 +356944,7 @@ function Feedback({
|
|
|
356944
356944
|
platform: env4.platform,
|
|
356945
356945
|
gitRepo: envInfo.isGit,
|
|
356946
356946
|
terminal: env4.terminal,
|
|
356947
|
-
version: "1.0
|
|
356947
|
+
version: "1.1.0",
|
|
356948
356948
|
transcript: normalizeMessagesForAPI(messages),
|
|
356949
356949
|
errors: sanitizedErrors,
|
|
356950
356950
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -357136,7 +357136,7 @@ function Feedback({
|
|
|
357136
357136
|
", ",
|
|
357137
357137
|
env4.terminal,
|
|
357138
357138
|
", v",
|
|
357139
|
-
"1.0
|
|
357139
|
+
"1.1.0"
|
|
357140
357140
|
]
|
|
357141
357141
|
}, undefined, true, undefined, this)
|
|
357142
357142
|
]
|
|
@@ -357242,7 +357242,7 @@ ${sanitizedDescription}
|
|
|
357242
357242
|
` + `**Environment Info**
|
|
357243
357243
|
` + `- Platform: ${env4.platform}
|
|
357244
357244
|
` + `- Terminal: ${env4.terminal}
|
|
357245
|
-
` + `- Version: ${"1.0
|
|
357245
|
+
` + `- Version: ${"1.1.0"}
|
|
357246
357246
|
` + `- Feedback ID: ${feedbackId}
|
|
357247
357247
|
` + `
|
|
357248
357248
|
**Errors**
|
|
@@ -360355,7 +360355,7 @@ function buildPrimarySection() {
|
|
|
360355
360355
|
}, undefined, false, undefined, this);
|
|
360356
360356
|
return [{
|
|
360357
360357
|
label: "Version",
|
|
360358
|
-
value: "1.0
|
|
360358
|
+
value: "1.1.0"
|
|
360359
360359
|
}, {
|
|
360360
360360
|
label: "Session name",
|
|
360361
360361
|
value: nameValue
|
|
@@ -361732,6 +361732,10 @@ var init_ModelPicker = __esm(() => {
|
|
|
361732
361732
|
async function fetchWithTimeout2(url3, options = {}, timeoutMs = MODEL_SCAN_TIMEOUT_MS) {
|
|
361733
361733
|
const controller = new AbortController;
|
|
361734
361734
|
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
361735
|
+
const callerSignal = options.signal;
|
|
361736
|
+
if (callerSignal) {
|
|
361737
|
+
callerSignal.addEventListener("abort", () => controller.abort(), { once: true });
|
|
361738
|
+
}
|
|
361735
361739
|
try {
|
|
361736
361740
|
return await fetch(url3, { ...options, signal: controller.signal });
|
|
361737
361741
|
} finally {
|
|
@@ -361748,13 +361752,14 @@ function buildHeaders5(apiKey) {
|
|
|
361748
361752
|
function ollamaNativeBase(v1BaseUrl) {
|
|
361749
361753
|
return v1BaseUrl.replace(/\/v1\/?$/, "");
|
|
361750
361754
|
}
|
|
361751
|
-
async function fetchAvailableModels(baseUrl, provider, apiKey) {
|
|
361755
|
+
async function fetchAvailableModels(baseUrl, provider, apiKey, signal) {
|
|
361752
361756
|
const trimmed = baseUrl.replace(/\/$/, "");
|
|
361753
361757
|
if (provider === "ollama") {
|
|
361754
361758
|
const nativeBase = ollamaNativeBase(trimmed);
|
|
361755
361759
|
try {
|
|
361756
361760
|
const res = await fetchWithTimeout2(`${nativeBase}/api/tags`, {
|
|
361757
|
-
headers: buildHeaders5(apiKey)
|
|
361761
|
+
headers: buildHeaders5(apiKey),
|
|
361762
|
+
signal
|
|
361758
361763
|
});
|
|
361759
361764
|
if (res.ok) {
|
|
361760
361765
|
const json = await res.json();
|
|
@@ -361762,10 +361767,14 @@ async function fetchAvailableModels(baseUrl, provider, apiKey) {
|
|
|
361762
361767
|
if (models.length > 0)
|
|
361763
361768
|
return { ok: true, models };
|
|
361764
361769
|
}
|
|
361765
|
-
} catch {
|
|
361770
|
+
} catch (err2) {
|
|
361771
|
+
if (signal?.aborted)
|
|
361772
|
+
return { ok: false, error: "Cancelled." };
|
|
361773
|
+
}
|
|
361766
361774
|
try {
|
|
361767
361775
|
const res = await fetchWithTimeout2(`${trimmed}/models`, {
|
|
361768
|
-
headers: buildHeaders5(apiKey)
|
|
361776
|
+
headers: buildHeaders5(apiKey),
|
|
361777
|
+
signal
|
|
361769
361778
|
});
|
|
361770
361779
|
if (res.ok) {
|
|
361771
361780
|
const json = await res.json();
|
|
@@ -361774,6 +361783,8 @@ async function fetchAvailableModels(baseUrl, provider, apiKey) {
|
|
|
361774
361783
|
return { ok: true, models };
|
|
361775
361784
|
}
|
|
361776
361785
|
} catch (err2) {
|
|
361786
|
+
if (signal?.aborted)
|
|
361787
|
+
return { ok: false, error: "Cancelled." };
|
|
361777
361788
|
const msg = err2 instanceof Error ? err2.message : String(err2);
|
|
361778
361789
|
if (msg.includes("abort") || msg.includes("timeout")) {
|
|
361779
361790
|
return { ok: false, error: `Timed out connecting to Ollama at ${nativeBase}. Is Ollama running?` };
|
|
@@ -361784,7 +361795,8 @@ async function fetchAvailableModels(baseUrl, provider, apiKey) {
|
|
|
361784
361795
|
}
|
|
361785
361796
|
try {
|
|
361786
361797
|
const res = await fetchWithTimeout2(`${trimmed}/models`, {
|
|
361787
|
-
headers: buildHeaders5(apiKey)
|
|
361798
|
+
headers: buildHeaders5(apiKey),
|
|
361799
|
+
signal
|
|
361788
361800
|
});
|
|
361789
361801
|
if (!res.ok) {
|
|
361790
361802
|
const body = await res.text().catch(() => "");
|
|
@@ -361800,6 +361812,8 @@ async function fetchAvailableModels(baseUrl, provider, apiKey) {
|
|
|
361800
361812
|
}
|
|
361801
361813
|
return { ok: true, models };
|
|
361802
361814
|
} catch (err2) {
|
|
361815
|
+
if (signal?.aborted)
|
|
361816
|
+
return { ok: false, error: "Cancelled." };
|
|
361803
361817
|
const msg = err2 instanceof Error ? err2.message : String(err2);
|
|
361804
361818
|
if (msg.includes("abort") || msg.includes("timeout")) {
|
|
361805
361819
|
return { ok: false, error: `Timed out connecting to ${trimmed}. Is the server running?` };
|
|
@@ -361807,15 +361821,20 @@ async function fetchAvailableModels(baseUrl, provider, apiKey) {
|
|
|
361807
361821
|
return { ok: false, error: `Could not reach ${trimmed}: ${msg}` };
|
|
361808
361822
|
}
|
|
361809
361823
|
}
|
|
361810
|
-
async function probeVllmEndpoint(url3) {
|
|
361824
|
+
async function probeVllmEndpoint(url3, parentSignal) {
|
|
361825
|
+
if (parentSignal.aborted)
|
|
361826
|
+
return null;
|
|
361811
361827
|
try {
|
|
361812
361828
|
const controller = new AbortController;
|
|
361813
361829
|
const timer = setTimeout(() => controller.abort(), NETWORK_PROBE_TIMEOUT_MS);
|
|
361830
|
+
const onParentAbort = () => controller.abort();
|
|
361831
|
+
parentSignal.addEventListener("abort", onParentAbort, { once: true });
|
|
361814
361832
|
let res;
|
|
361815
361833
|
try {
|
|
361816
361834
|
res = await fetch(`${url3}/models`, { signal: controller.signal });
|
|
361817
361835
|
} finally {
|
|
361818
361836
|
clearTimeout(timer);
|
|
361837
|
+
parentSignal.removeEventListener("abort", onParentAbort);
|
|
361819
361838
|
}
|
|
361820
361839
|
if (!res.ok)
|
|
361821
361840
|
return null;
|
|
@@ -361826,7 +361845,7 @@ async function probeVllmEndpoint(url3) {
|
|
|
361826
361845
|
return null;
|
|
361827
361846
|
}
|
|
361828
361847
|
}
|
|
361829
|
-
async function scanLocalNetworkForVllm(subnet = "192.168.1",
|
|
361848
|
+
async function scanLocalNetworkForVllm(subnet = "192.168.1", abortSignal, onProgress) {
|
|
361830
361849
|
const found = [];
|
|
361831
361850
|
const tasks = [];
|
|
361832
361851
|
for (let host = 1;host <= 254; host++) {
|
|
@@ -361839,11 +361858,13 @@ async function scanLocalNetworkForVllm(subnet = "192.168.1", cancelSignal, onPro
|
|
|
361839
361858
|
let taskIdx = 0;
|
|
361840
361859
|
async function worker() {
|
|
361841
361860
|
while (taskIdx < tasks.length) {
|
|
361842
|
-
if (
|
|
361861
|
+
if (abortSignal.aborted)
|
|
361843
361862
|
return;
|
|
361844
361863
|
const task = tasks[taskIdx++];
|
|
361845
361864
|
const url3 = `http://${subnet}.${task.host}:${task.port}/v1`;
|
|
361846
|
-
const models = await probeVllmEndpoint(url3);
|
|
361865
|
+
const models = await probeVllmEndpoint(url3, abortSignal);
|
|
361866
|
+
if (abortSignal.aborted)
|
|
361867
|
+
return;
|
|
361847
361868
|
scanned++;
|
|
361848
361869
|
if (models) {
|
|
361849
361870
|
found.push({ url: url3, models });
|
|
@@ -361855,7 +361876,7 @@ async function scanLocalNetworkForVllm(subnet = "192.168.1", cancelSignal, onPro
|
|
|
361855
361876
|
await Promise.all(workers);
|
|
361856
361877
|
return found;
|
|
361857
361878
|
}
|
|
361858
|
-
var MODEL_SCAN_TIMEOUT_MS = 5000, NETWORK_PROBE_TIMEOUT_MS = 600, NETWORK_CONCURRENCY =
|
|
361879
|
+
var MODEL_SCAN_TIMEOUT_MS = 5000, NETWORK_PROBE_TIMEOUT_MS = 600, NETWORK_CONCURRENCY = 30, VLLM_PORTS;
|
|
361859
361880
|
var init_scanModels = __esm(() => {
|
|
361860
361881
|
VLLM_PORTS = [8000, 8080, 4000, 5000, 1234, 3000, 7860, 8888];
|
|
361861
361882
|
});
|
|
@@ -361869,13 +361890,13 @@ function getProviderGuidance(provider) {
|
|
|
361869
361890
|
switch (provider) {
|
|
361870
361891
|
case "vllm":
|
|
361871
361892
|
return {
|
|
361872
|
-
baseUrl: "Confirm or edit the vLLM server URL.
|
|
361893
|
+
baseUrl: "Confirm or edit the vLLM server URL. Enter to accept, Esc to go back.",
|
|
361873
361894
|
model: "Select a model discovered from your vLLM server, or type a name to override.",
|
|
361874
361895
|
apiKey: "Leave blank for local servers without auth, or paste the gateway token if required."
|
|
361875
361896
|
};
|
|
361876
361897
|
case "ollama":
|
|
361877
361898
|
return {
|
|
361878
|
-
baseUrl: "Confirm the Ollama
|
|
361899
|
+
baseUrl: "Confirm the Ollama endpoint. The default works for standard local setups.",
|
|
361879
361900
|
model: "Select a model discovered from your Ollama server, or type a name to override.",
|
|
361880
361901
|
apiKey: "Press Enter to keep the default Ollama token, or replace it if your proxy expects a different value."
|
|
361881
361902
|
};
|
|
@@ -361907,22 +361928,36 @@ function LocalBackendSetup({
|
|
|
361907
361928
|
const [scanError, setScanError] = import_react99.useState(null);
|
|
361908
361929
|
const [networkProgress, setNetworkProgress] = import_react99.useState(null);
|
|
361909
361930
|
const [discoveredEndpoints, setDiscoveredEndpoints] = import_react99.useState([]);
|
|
361910
|
-
const
|
|
361911
|
-
const networkCancelRef = import_react99.useRef({ cancelled: false });
|
|
361931
|
+
const networkAbortRef = import_react99.useRef(null);
|
|
361912
361932
|
const modelScanAbortRef = import_react99.useRef(null);
|
|
361933
|
+
const discoveredSnapshotRef = import_react99.useRef([]);
|
|
361934
|
+
import_react99.useEffect(() => {
|
|
361935
|
+
return () => {
|
|
361936
|
+
networkAbortRef.current?.abort();
|
|
361937
|
+
modelScanAbortRef.current?.abort();
|
|
361938
|
+
};
|
|
361939
|
+
}, []);
|
|
361913
361940
|
import_react99.useEffect(() => {
|
|
361914
361941
|
const nextValue = step === "baseUrl" ? baseUrl : step === "model" ? model : apiKey;
|
|
361915
361942
|
setCursorOffset(nextValue.length);
|
|
361916
361943
|
}, [step, baseUrl, model, apiKey]);
|
|
361917
361944
|
use_input_default((_input, key) => {
|
|
361918
|
-
if (!key.escape)
|
|
361919
|
-
return;
|
|
361920
361945
|
if (step === "networkScan") {
|
|
361921
|
-
|
|
361922
|
-
|
|
361946
|
+
if (key.escape || key.return) {
|
|
361947
|
+
networkAbortRef.current?.abort();
|
|
361948
|
+
setDiscoveredEndpoints(discoveredSnapshotRef.current);
|
|
361949
|
+
setStep("selectEndpoint");
|
|
361950
|
+
}
|
|
361923
361951
|
} else if (step === "scanningModels") {
|
|
361924
|
-
|
|
361925
|
-
|
|
361952
|
+
if (key.escape) {
|
|
361953
|
+
modelScanAbortRef.current?.abort();
|
|
361954
|
+
goBack();
|
|
361955
|
+
} else if (key.return) {
|
|
361956
|
+
modelScanAbortRef.current?.abort();
|
|
361957
|
+
setScanError("Model scan skipped. Enter the model name manually.");
|
|
361958
|
+
setAvailableModels([]);
|
|
361959
|
+
setStep("model");
|
|
361960
|
+
}
|
|
361926
361961
|
}
|
|
361927
361962
|
}, { isActive: step === "networkScan" || step === "scanningModels" });
|
|
361928
361963
|
function goBack() {
|
|
@@ -361932,18 +361967,14 @@ function LocalBackendSetup({
|
|
|
361932
361967
|
onCancel?.();
|
|
361933
361968
|
break;
|
|
361934
361969
|
case "networkScan":
|
|
361935
|
-
|
|
361970
|
+
networkAbortRef.current?.abort();
|
|
361936
361971
|
setStep("provider");
|
|
361937
361972
|
break;
|
|
361938
361973
|
case "selectEndpoint":
|
|
361939
361974
|
setStep("provider");
|
|
361940
361975
|
break;
|
|
361941
361976
|
case "baseUrl":
|
|
361942
|
-
|
|
361943
|
-
setStep("selectEndpoint");
|
|
361944
|
-
} else {
|
|
361945
|
-
setStep("provider");
|
|
361946
|
-
}
|
|
361977
|
+
setStep(provider === "vllm" ? "selectEndpoint" : "provider");
|
|
361947
361978
|
break;
|
|
361948
361979
|
case "scanningModels":
|
|
361949
361980
|
modelScanAbortRef.current?.abort();
|
|
@@ -361969,31 +362000,36 @@ function LocalBackendSetup({
|
|
|
361969
362000
|
setError(null);
|
|
361970
362001
|
setScanError(null);
|
|
361971
362002
|
setAvailableModels([]);
|
|
362003
|
+
setDiscoveredEndpoints([]);
|
|
361972
362004
|
if (nextProvider === "vllm") {
|
|
361973
|
-
startNetworkScan(
|
|
362005
|
+
startNetworkScan(defaults2.baseUrl);
|
|
361974
362006
|
} else {
|
|
361975
362007
|
setStep("baseUrl");
|
|
361976
362008
|
}
|
|
361977
362009
|
}
|
|
361978
|
-
function startNetworkScan(
|
|
361979
|
-
|
|
362010
|
+
function startNetworkScan(defaultUrl) {
|
|
362011
|
+
networkAbortRef.current?.abort();
|
|
362012
|
+
const abort = new AbortController;
|
|
362013
|
+
networkAbortRef.current = abort;
|
|
362014
|
+
discoveredSnapshotRef.current = [];
|
|
361980
362015
|
setDiscoveredEndpoints([]);
|
|
361981
362016
|
setNetworkProgress(null);
|
|
361982
|
-
setNetworkScanDone(false);
|
|
361983
362017
|
setStep("networkScan");
|
|
361984
|
-
scanLocalNetworkForVllm("192.168.1",
|
|
362018
|
+
scanLocalNetworkForVllm("192.168.1", abort.signal, (progress) => {
|
|
362019
|
+
if (abort.signal.aborted)
|
|
362020
|
+
return;
|
|
362021
|
+
discoveredSnapshotRef.current = [...discoveredSnapshotRef.current];
|
|
361985
362022
|
setNetworkProgress(progress);
|
|
361986
362023
|
}).then((endpoints) => {
|
|
361987
|
-
if (
|
|
362024
|
+
if (abort.signal.aborted)
|
|
361988
362025
|
return;
|
|
362026
|
+
discoveredSnapshotRef.current = endpoints;
|
|
361989
362027
|
setDiscoveredEndpoints(endpoints);
|
|
361990
|
-
setNetworkScanDone(true);
|
|
361991
362028
|
setStep("selectEndpoint");
|
|
361992
362029
|
}).catch(() => {
|
|
361993
|
-
if (
|
|
362030
|
+
if (abort.signal.aborted)
|
|
361994
362031
|
return;
|
|
361995
362032
|
setDiscoveredEndpoints([]);
|
|
361996
|
-
setNetworkScanDone(true);
|
|
361997
362033
|
setStep("selectEndpoint");
|
|
361998
362034
|
});
|
|
361999
362035
|
}
|
|
@@ -362027,12 +362063,13 @@ function LocalBackendSetup({
|
|
|
362027
362063
|
}
|
|
362028
362064
|
}
|
|
362029
362065
|
function startModelScan(url3) {
|
|
362066
|
+
modelScanAbortRef.current?.abort();
|
|
362030
362067
|
const abort = new AbortController;
|
|
362031
362068
|
modelScanAbortRef.current = abort;
|
|
362032
362069
|
setScanError(null);
|
|
362033
362070
|
setAvailableModels([]);
|
|
362034
362071
|
setStep("scanningModels");
|
|
362035
|
-
fetchAvailableModels(url3, provider, apiKey).then((result) => {
|
|
362072
|
+
fetchAvailableModels(url3, provider, apiKey, abort.signal).then((result) => {
|
|
362036
362073
|
if (abort.signal.aborted)
|
|
362037
362074
|
return;
|
|
362038
362075
|
if (result.ok) {
|
|
@@ -362046,7 +362083,7 @@ function LocalBackendSetup({
|
|
|
362046
362083
|
}).catch((err2) => {
|
|
362047
362084
|
if (abort.signal.aborted)
|
|
362048
362085
|
return;
|
|
362049
|
-
setScanError(`Unexpected error
|
|
362086
|
+
setScanError(`Unexpected error: ${err2 instanceof Error ? err2.message : String(err2)}`);
|
|
362050
362087
|
setAvailableModels([]);
|
|
362051
362088
|
setStep("model");
|
|
362052
362089
|
});
|
|
@@ -362107,7 +362144,7 @@ function LocalBackendSetup({
|
|
|
362107
362144
|
}, undefined, false, undefined, this),
|
|
362108
362145
|
/* @__PURE__ */ jsx_dev_runtime171.jsxDEV(ThemedText, {
|
|
362109
362146
|
dimColor: true,
|
|
362110
|
-
children: "
|
|
362147
|
+
children: "Enter to select · Esc exits setup"
|
|
362111
362148
|
}, undefined, false, undefined, this)
|
|
362112
362149
|
]
|
|
362113
362150
|
}, undefined, true, undefined, this) : null,
|
|
@@ -362131,8 +362168,8 @@ function LocalBackendSetup({
|
|
|
362131
362168
|
networkProgress.scanned,
|
|
362132
362169
|
"/",
|
|
362133
362170
|
networkProgress.total,
|
|
362134
|
-
" probed",
|
|
362135
|
-
networkProgress.found > 0 ? `
|
|
362171
|
+
" hosts probed",
|
|
362172
|
+
networkProgress.found > 0 ? ` · ${networkProgress.found} found` : ""
|
|
362136
362173
|
]
|
|
362137
362174
|
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime171.jsxDEV(ThemedText, {
|
|
362138
362175
|
dimColor: true,
|
|
@@ -362140,42 +362177,26 @@ function LocalBackendSetup({
|
|
|
362140
362177
|
}, undefined, false, undefined, this),
|
|
362141
362178
|
/* @__PURE__ */ jsx_dev_runtime171.jsxDEV(ThemedText, {
|
|
362142
362179
|
dimColor: true,
|
|
362143
|
-
children: "
|
|
362180
|
+
children: "Enter to use results so far · Esc to go back"
|
|
362144
362181
|
}, undefined, false, undefined, this)
|
|
362145
362182
|
]
|
|
362146
362183
|
}, undefined, true, undefined, this) : null,
|
|
362147
362184
|
step === "selectEndpoint" ? /* @__PURE__ */ jsx_dev_runtime171.jsxDEV(jsx_dev_runtime171.Fragment, {
|
|
362148
362185
|
children: [
|
|
362149
|
-
discoveredEndpoints.length > 0 ? /* @__PURE__ */ jsx_dev_runtime171.jsxDEV(
|
|
362150
|
-
children: [
|
|
362151
|
-
/* @__PURE__ */ jsx_dev_runtime171.jsxDEV(ThemedText, {
|
|
362152
|
-
children: [
|
|
362153
|
-
"Found ",
|
|
362154
|
-
/* @__PURE__ */ jsx_dev_runtime171.jsxDEV(ThemedText, {
|
|
362155
|
-
bold: true,
|
|
362156
|
-
children: discoveredEndpoints.length
|
|
362157
|
-
}, undefined, false, undefined, this),
|
|
362158
|
-
" vLLM endpoint",
|
|
362159
|
-
discoveredEndpoints.length !== 1 ? "s" : "",
|
|
362160
|
-
" on your network"
|
|
362161
|
-
]
|
|
362162
|
-
}, undefined, true, undefined, this),
|
|
362163
|
-
/* @__PURE__ */ jsx_dev_runtime171.jsxDEV(ThemedText, {
|
|
362164
|
-
dimColor: true,
|
|
362165
|
-
children: "Select an endpoint to use, or enter the URL manually."
|
|
362166
|
-
}, undefined, false, undefined, this)
|
|
362167
|
-
]
|
|
362168
|
-
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime171.jsxDEV(jsx_dev_runtime171.Fragment, {
|
|
362186
|
+
discoveredEndpoints.length > 0 ? /* @__PURE__ */ jsx_dev_runtime171.jsxDEV(ThemedText, {
|
|
362169
362187
|
children: [
|
|
362188
|
+
"Found ",
|
|
362170
362189
|
/* @__PURE__ */ jsx_dev_runtime171.jsxDEV(ThemedText, {
|
|
362171
|
-
|
|
362190
|
+
bold: true,
|
|
362191
|
+
children: discoveredEndpoints.length
|
|
362172
362192
|
}, undefined, false, undefined, this),
|
|
362173
|
-
|
|
362174
|
-
|
|
362175
|
-
|
|
362176
|
-
}, undefined, false, undefined, this)
|
|
362193
|
+
" vLLM endpoint",
|
|
362194
|
+
discoveredEndpoints.length !== 1 ? "s" : "",
|
|
362195
|
+
" on 192.168.1.0/24"
|
|
362177
362196
|
]
|
|
362178
|
-
}, undefined, true, undefined, this),
|
|
362197
|
+
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime171.jsxDEV(ThemedText, {
|
|
362198
|
+
children: "No vLLM endpoints found on 192.168.1.0/24 — enter the URL manually."
|
|
362199
|
+
}, undefined, false, undefined, this),
|
|
362179
362200
|
/* @__PURE__ */ jsx_dev_runtime171.jsxDEV(Select, {
|
|
362180
362201
|
options: endpointSelectOptions,
|
|
362181
362202
|
onChange: (value) => selectEndpoint(value),
|
|
@@ -362183,7 +362204,7 @@ function LocalBackendSetup({
|
|
|
362183
362204
|
}, undefined, false, undefined, this),
|
|
362184
362205
|
/* @__PURE__ */ jsx_dev_runtime171.jsxDEV(ThemedText, {
|
|
362185
362206
|
dimColor: true,
|
|
362186
|
-
children: "Esc goes back to provider
|
|
362207
|
+
children: "Enter to select · Esc goes back to provider"
|
|
362187
362208
|
}, undefined, false, undefined, this)
|
|
362188
362209
|
]
|
|
362189
362210
|
}, undefined, true, undefined, this) : null,
|
|
@@ -362237,7 +362258,7 @@ function LocalBackendSetup({
|
|
|
362237
362258
|
}, undefined, true, undefined, this),
|
|
362238
362259
|
/* @__PURE__ */ jsx_dev_runtime171.jsxDEV(ThemedText, {
|
|
362239
362260
|
dimColor: true,
|
|
362240
|
-
children: "
|
|
362261
|
+
children: "Enter to skip and type manually · Esc to go back"
|
|
362241
362262
|
}, undefined, false, undefined, this)
|
|
362242
362263
|
]
|
|
362243
362264
|
}, undefined, true, undefined, this) : null,
|
|
@@ -362249,11 +362270,8 @@ function LocalBackendSetup({
|
|
|
362249
362270
|
scanError ? /* @__PURE__ */ jsx_dev_runtime171.jsxDEV(ThemedText, {
|
|
362250
362271
|
color: "yellow",
|
|
362251
362272
|
wrap: "wrap",
|
|
362252
|
-
children:
|
|
362253
|
-
|
|
362254
|
-
scanError
|
|
362255
|
-
]
|
|
362256
|
-
}, undefined, true, undefined, this) : null,
|
|
362273
|
+
children: scanError
|
|
362274
|
+
}, undefined, false, undefined, this) : null,
|
|
362257
362275
|
availableModels.length > 0 ? /* @__PURE__ */ jsx_dev_runtime171.jsxDEV(jsx_dev_runtime171.Fragment, {
|
|
362258
362276
|
children: [
|
|
362259
362277
|
/* @__PURE__ */ jsx_dev_runtime171.jsxDEV(ThemedText, {
|
|
@@ -362267,7 +362285,7 @@ function LocalBackendSetup({
|
|
|
362267
362285
|
}, undefined, false, undefined, this),
|
|
362268
362286
|
/* @__PURE__ */ jsx_dev_runtime171.jsxDEV(ThemedText, {
|
|
362269
362287
|
dimColor: true,
|
|
362270
|
-
children: "Esc goes back to
|
|
362288
|
+
children: "Enter to select · Esc goes back to URL"
|
|
362271
362289
|
}, undefined, false, undefined, this)
|
|
362272
362290
|
]
|
|
362273
362291
|
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime171.jsxDEV(jsx_dev_runtime171.Fragment, {
|
|
@@ -362315,7 +362333,7 @@ function LocalBackendSetup({
|
|
|
362315
362333
|
}, undefined, false, undefined, this),
|
|
362316
362334
|
/* @__PURE__ */ jsx_dev_runtime171.jsxDEV(ThemedText, {
|
|
362317
362335
|
dimColor: true,
|
|
362318
|
-
children: "Esc goes back to model
|
|
362336
|
+
children: "Enter to confirm · Esc goes back to model"
|
|
362319
362337
|
}, undefined, false, undefined, this)
|
|
362320
362338
|
]
|
|
362321
362339
|
}, undefined, true, undefined, this) : null,
|
|
@@ -362341,7 +362359,7 @@ function LocalBackendSetup({
|
|
|
362341
362359
|
}, undefined, false, undefined, this),
|
|
362342
362360
|
/* @__PURE__ */ jsx_dev_runtime171.jsxDEV(ThemedText, {
|
|
362343
362361
|
dimColor: true,
|
|
362344
|
-
children: "Esc goes back to API key
|
|
362362
|
+
children: "Enter to confirm · Esc goes back to API key"
|
|
362345
362363
|
}, undefined, false, undefined, this)
|
|
362346
362364
|
]
|
|
362347
362365
|
}, undefined, true, undefined, this) : null,
|
|
@@ -362364,18 +362382,9 @@ var init_LocalBackendSetup = __esm(() => {
|
|
|
362364
362382
|
import_react99 = __toESM(require_react(), 1);
|
|
362365
362383
|
jsx_dev_runtime171 = __toESM(require_jsx_dev_runtime(), 1);
|
|
362366
362384
|
PROVIDER_OPTIONS = [
|
|
362367
|
-
{
|
|
362368
|
-
|
|
362369
|
-
|
|
362370
|
-
},
|
|
362371
|
-
{
|
|
362372
|
-
label: "Local Ollama server",
|
|
362373
|
-
value: "ollama"
|
|
362374
|
-
},
|
|
362375
|
-
{
|
|
362376
|
-
label: "Hosted OpenAI-compatible API or gateway",
|
|
362377
|
-
value: "openai"
|
|
362378
|
-
}
|
|
362385
|
+
{ label: "Local vLLM server (recommended for self-hosted inference)", value: "vllm" },
|
|
362386
|
+
{ label: "Local Ollama server", value: "ollama" },
|
|
362387
|
+
{ label: "Hosted OpenAI-compatible API or gateway", value: "openai" }
|
|
362379
362388
|
];
|
|
362380
362389
|
});
|
|
362381
362390
|
|
|
@@ -364837,7 +364846,7 @@ function Config({
|
|
|
364837
364846
|
}
|
|
364838
364847
|
}, undefined, false, undefined, this)
|
|
364839
364848
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime177.jsxDEV(ChannelDowngradeDialog, {
|
|
364840
|
-
currentVersion: "1.0
|
|
364849
|
+
currentVersion: "1.1.0",
|
|
364841
364850
|
onChoice: (choice) => {
|
|
364842
364851
|
setShowSubmenu(null);
|
|
364843
364852
|
setTabsHidden(false);
|
|
@@ -364849,7 +364858,7 @@ function Config({
|
|
|
364849
364858
|
autoUpdatesChannel: "stable"
|
|
364850
364859
|
};
|
|
364851
364860
|
if (choice === "stay") {
|
|
364852
|
-
newSettings.minimumVersion = "1.0
|
|
364861
|
+
newSettings.minimumVersion = "1.1.0";
|
|
364853
364862
|
}
|
|
364854
364863
|
updateSettingsForSource("userSettings", newSettings);
|
|
364855
364864
|
setSettingsData((prev_27) => ({
|
|
@@ -373396,7 +373405,7 @@ function HelpV2(t0) {
|
|
|
373396
373405
|
let t6;
|
|
373397
373406
|
if ($2[31] !== tabs) {
|
|
373398
373407
|
t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
|
|
373399
|
-
title: `localclawd v${"1.0
|
|
373408
|
+
title: `localclawd v${"1.1.0"}`,
|
|
373400
373409
|
color: "professionalBlue",
|
|
373401
373410
|
defaultTab: "general",
|
|
373402
373411
|
children: tabs
|
|
@@ -397554,7 +397563,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
397554
397563
|
return [];
|
|
397555
397564
|
}
|
|
397556
397565
|
}
|
|
397557
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.0
|
|
397566
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.0") {
|
|
397558
397567
|
if (process.env.USER_TYPE === "ant") {
|
|
397559
397568
|
const changelog = MACRO.VERSION_CHANGELOG;
|
|
397560
397569
|
if (changelog) {
|
|
@@ -397581,7 +397590,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.0.9") {
|
|
|
397581
397590
|
releaseNotes
|
|
397582
397591
|
};
|
|
397583
397592
|
}
|
|
397584
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.0
|
|
397593
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.1.0") {
|
|
397585
397594
|
if (process.env.USER_TYPE === "ant") {
|
|
397586
397595
|
const changelog = MACRO.VERSION_CHANGELOG;
|
|
397587
397596
|
if (changelog) {
|
|
@@ -398748,7 +398757,7 @@ function getRecentActivitySync() {
|
|
|
398748
398757
|
return cachedActivity;
|
|
398749
398758
|
}
|
|
398750
398759
|
function getLogoDisplayData() {
|
|
398751
|
-
const version = process.env.DEMO_VERSION ?? "1.0
|
|
398760
|
+
const version = process.env.DEMO_VERSION ?? "1.1.0";
|
|
398752
398761
|
const serverUrl = getDirectConnectServerUrl();
|
|
398753
398762
|
const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
|
|
398754
398763
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -400022,7 +400031,7 @@ function LogoV2() {
|
|
|
400022
400031
|
if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
400023
400032
|
t2 = () => {
|
|
400024
400033
|
const currentConfig = getGlobalConfig();
|
|
400025
|
-
if (currentConfig.lastReleaseNotesSeen === "1.0
|
|
400034
|
+
if (currentConfig.lastReleaseNotesSeen === "1.1.0") {
|
|
400026
400035
|
return;
|
|
400027
400036
|
}
|
|
400028
400037
|
saveGlobalConfig(_temp327);
|
|
@@ -400698,12 +400707,12 @@ function LogoV2() {
|
|
|
400698
400707
|
return t41;
|
|
400699
400708
|
}
|
|
400700
400709
|
function _temp327(current) {
|
|
400701
|
-
if (current.lastReleaseNotesSeen === "1.0
|
|
400710
|
+
if (current.lastReleaseNotesSeen === "1.1.0") {
|
|
400702
400711
|
return current;
|
|
400703
400712
|
}
|
|
400704
400713
|
return {
|
|
400705
400714
|
...current,
|
|
400706
|
-
lastReleaseNotesSeen: "1.0
|
|
400715
|
+
lastReleaseNotesSeen: "1.1.0"
|
|
400707
400716
|
};
|
|
400708
400717
|
}
|
|
400709
400718
|
function _temp245(s_0) {
|
|
@@ -426911,7 +426920,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
|
|
|
426911
426920
|
smapsRollup,
|
|
426912
426921
|
platform: process.platform,
|
|
426913
426922
|
nodeVersion: process.version,
|
|
426914
|
-
ccVersion: "1.0
|
|
426923
|
+
ccVersion: "1.1.0"
|
|
426915
426924
|
};
|
|
426916
426925
|
}
|
|
426917
426926
|
async function performHeapDump(trigger = "manual", dumpNumber = 0) {
|
|
@@ -427496,7 +427505,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
427496
427505
|
var call57 = async () => {
|
|
427497
427506
|
return {
|
|
427498
427507
|
type: "text",
|
|
427499
|
-
value: `${"1.0
|
|
427508
|
+
value: `${"1.1.0"} (built ${"2026-04-05T21:11:48.193Z"})`
|
|
427500
427509
|
};
|
|
427501
427510
|
}, version, version_default;
|
|
427502
427511
|
var init_version = __esm(() => {
|
|
@@ -436432,7 +436441,7 @@ function generateHtmlReport(data, insights) {
|
|
|
436432
436441
|
</html>`;
|
|
436433
436442
|
}
|
|
436434
436443
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
436435
|
-
const version2 = typeof MACRO !== "undefined" ? "1.0
|
|
436444
|
+
const version2 = typeof MACRO !== "undefined" ? "1.1.0" : "unknown";
|
|
436436
436445
|
const remote_hosts_collected = remoteStats?.hosts.filter((h) => h.sessionCount > 0).map((h) => h.name);
|
|
436437
436446
|
const facets_summary = {
|
|
436438
436447
|
total: facets.size,
|
|
@@ -440586,7 +440595,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
440586
440595
|
init_settings2();
|
|
440587
440596
|
init_slowOperations();
|
|
440588
440597
|
init_uuid();
|
|
440589
|
-
VERSION5 = typeof MACRO !== "undefined" ? "1.0
|
|
440598
|
+
VERSION5 = typeof MACRO !== "undefined" ? "1.1.0" : "unknown";
|
|
440590
440599
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
440591
440600
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
440592
440601
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -441788,7 +441797,7 @@ var init_filesystem = __esm(() => {
|
|
|
441788
441797
|
});
|
|
441789
441798
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
441790
441799
|
const nonce = randomBytes18(16).toString("hex");
|
|
441791
|
-
return join128(getClaudeTempDir(), "bundled-skills", "1.0
|
|
441800
|
+
return join128(getClaudeTempDir(), "bundled-skills", "1.1.0", nonce);
|
|
441792
441801
|
});
|
|
441793
441802
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
441794
441803
|
});
|
|
@@ -447786,7 +447795,7 @@ function computeFingerprint(messageText, version2) {
|
|
|
447786
447795
|
}
|
|
447787
447796
|
function computeFingerprintFromMessages(messages) {
|
|
447788
447797
|
const firstMessageText = extractFirstMessageText(messages);
|
|
447789
|
-
return computeFingerprint(firstMessageText, "1.0
|
|
447798
|
+
return computeFingerprint(firstMessageText, "1.1.0");
|
|
447790
447799
|
}
|
|
447791
447800
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
447792
447801
|
var init_fingerprint = () => {};
|
|
@@ -449641,7 +449650,7 @@ async function sideQuery(opts) {
|
|
|
449641
449650
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
449642
449651
|
}
|
|
449643
449652
|
const messageText = extractFirstUserMessageText(messages);
|
|
449644
|
-
const fingerprint = computeFingerprint(messageText, "1.0
|
|
449653
|
+
const fingerprint = computeFingerprint(messageText, "1.1.0");
|
|
449645
449654
|
const attributionHeader = getAttributionHeader(fingerprint);
|
|
449646
449655
|
const systemBlocks = [
|
|
449647
449656
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -454439,7 +454448,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
454439
454448
|
slash_commands: inputs.commands.filter((c5) => c5.userInvocable !== false).map((c5) => c5.name),
|
|
454440
454449
|
apiKeySource: getAnthropicApiKeyWithSource().source,
|
|
454441
454450
|
betas: getSdkBetas(),
|
|
454442
|
-
claude_code_version: "1.0
|
|
454451
|
+
claude_code_version: "1.1.0",
|
|
454443
454452
|
output_style: outputStyle2,
|
|
454444
454453
|
agents: inputs.agents.map((agent) => agent.agentType),
|
|
454445
454454
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
|
|
@@ -469018,7 +469027,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
469018
469027
|
function getSemverPart(version2) {
|
|
469019
469028
|
return `${import_semver12.major(version2, { loose: true })}.${import_semver12.minor(version2, { loose: true })}.${import_semver12.patch(version2, { loose: true })}`;
|
|
469020
469029
|
}
|
|
469021
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.0
|
|
469030
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.1.0") {
|
|
469022
469031
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react227.useState(() => getSemverPart(initialVersion));
|
|
469023
469032
|
if (!updatedVersion) {
|
|
469024
469033
|
return null;
|
|
@@ -469058,7 +469067,7 @@ function AutoUpdater({
|
|
|
469058
469067
|
return;
|
|
469059
469068
|
}
|
|
469060
469069
|
if (false) {}
|
|
469061
|
-
const currentVersion = "1.0
|
|
469070
|
+
const currentVersion = "1.1.0";
|
|
469062
469071
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
469063
469072
|
let latestVersion = await getLatestVersion(channel);
|
|
469064
469073
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -469269,12 +469278,12 @@ function NativeAutoUpdater({
|
|
|
469269
469278
|
logEvent("tengu_native_auto_updater_start", {});
|
|
469270
469279
|
try {
|
|
469271
469280
|
const maxVersion = await getMaxVersion();
|
|
469272
|
-
if (maxVersion && gt("1.0
|
|
469281
|
+
if (maxVersion && gt("1.1.0", maxVersion)) {
|
|
469273
469282
|
const msg = await getMaxVersionMessage();
|
|
469274
469283
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
469275
469284
|
}
|
|
469276
469285
|
const result = await installLatest(channel);
|
|
469277
|
-
const currentVersion = "1.0
|
|
469286
|
+
const currentVersion = "1.1.0";
|
|
469278
469287
|
const latencyMs = Date.now() - startTime;
|
|
469279
469288
|
if (result.lockFailed) {
|
|
469280
469289
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -469409,17 +469418,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
469409
469418
|
const maxVersion = await getMaxVersion();
|
|
469410
469419
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
469411
469420
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
469412
|
-
if (gte("1.0
|
|
469413
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.0
|
|
469421
|
+
if (gte("1.1.0", maxVersion)) {
|
|
469422
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.1.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
469414
469423
|
setUpdateAvailable(false);
|
|
469415
469424
|
return;
|
|
469416
469425
|
}
|
|
469417
469426
|
latest = maxVersion;
|
|
469418
469427
|
}
|
|
469419
|
-
const hasUpdate = latest && !gte("1.0
|
|
469428
|
+
const hasUpdate = latest && !gte("1.1.0", latest) && !shouldSkipVersion(latest);
|
|
469420
469429
|
setUpdateAvailable(!!hasUpdate);
|
|
469421
469430
|
if (hasUpdate) {
|
|
469422
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.0
|
|
469431
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.1.0"} -> ${latest}`);
|
|
469423
469432
|
}
|
|
469424
469433
|
};
|
|
469425
469434
|
$2[0] = t1;
|
|
@@ -469453,7 +469462,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
469453
469462
|
wrap: "truncate",
|
|
469454
469463
|
children: [
|
|
469455
469464
|
"currentVersion: ",
|
|
469456
|
-
"1.0
|
|
469465
|
+
"1.1.0"
|
|
469457
469466
|
]
|
|
469458
469467
|
}, undefined, true, undefined, this);
|
|
469459
469468
|
$2[3] = verbose;
|
|
@@ -477011,7 +477020,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
477011
477020
|
project_dir: getOriginalCwd(),
|
|
477012
477021
|
added_dirs: addedDirs
|
|
477013
477022
|
},
|
|
477014
|
-
version: "1.0
|
|
477023
|
+
version: "1.1.0",
|
|
477015
477024
|
output_style: {
|
|
477016
477025
|
name: outputStyleName
|
|
477017
477026
|
},
|
|
@@ -488557,7 +488566,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
|
|
|
488557
488566
|
} catch {}
|
|
488558
488567
|
const data = {
|
|
488559
488568
|
trigger,
|
|
488560
|
-
version: "1.0
|
|
488569
|
+
version: "1.1.0",
|
|
488561
488570
|
platform: process.platform,
|
|
488562
488571
|
transcript,
|
|
488563
488572
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -500142,7 +500151,7 @@ function WelcomeV2() {
|
|
|
500142
500151
|
dimColor: true,
|
|
500143
500152
|
children: [
|
|
500144
500153
|
"v",
|
|
500145
|
-
"1.0
|
|
500154
|
+
"1.1.0"
|
|
500146
500155
|
]
|
|
500147
500156
|
}, undefined, true, undefined, this)
|
|
500148
500157
|
]
|
|
@@ -501013,24 +501022,32 @@ function TrustDialog(t0) {
|
|
|
501013
501022
|
gracefulShutdownSync(1);
|
|
501014
501023
|
return;
|
|
501015
501024
|
}
|
|
501016
|
-
|
|
501017
|
-
|
|
501018
|
-
|
|
501019
|
-
|
|
501020
|
-
|
|
501021
|
-
|
|
501022
|
-
|
|
501023
|
-
|
|
501024
|
-
|
|
501025
|
-
|
|
501026
|
-
|
|
501027
|
-
|
|
501028
|
-
|
|
501029
|
-
|
|
501030
|
-
|
|
501031
|
-
|
|
501025
|
+
try {
|
|
501026
|
+
const isHomeDir_0 = homedir35() === getCwd();
|
|
501027
|
+
try {
|
|
501028
|
+
logEvent("tengu_trust_dialog_accept", {
|
|
501029
|
+
isHomeDir: isHomeDir_0,
|
|
501030
|
+
hasMcpServers,
|
|
501031
|
+
hasHooks: hasHooks2,
|
|
501032
|
+
hasBashExecution: hasAnyBashExecution,
|
|
501033
|
+
hasApiKeyHelper: hasApiKeyHelper2,
|
|
501034
|
+
hasAwsCommands: hasAwsCommands2,
|
|
501035
|
+
hasGcpCommands: hasGcpCommands2,
|
|
501036
|
+
hasOtelHeadersHelper: hasOtelHeadersHelper2,
|
|
501037
|
+
hasDangerousEnvVars: hasDangerousEnvVars2
|
|
501038
|
+
});
|
|
501039
|
+
} catch {}
|
|
501040
|
+
if (isHomeDir_0) {
|
|
501041
|
+
setSessionTrustAccepted(true);
|
|
501042
|
+
} else {
|
|
501043
|
+
try {
|
|
501044
|
+
saveCurrentProjectConfig(_temp530);
|
|
501045
|
+
} catch {}
|
|
501046
|
+
setSessionTrustAccepted(true);
|
|
501047
|
+
}
|
|
501048
|
+
} finally {
|
|
501049
|
+
onDone();
|
|
501032
501050
|
}
|
|
501033
|
-
onDone();
|
|
501034
501051
|
};
|
|
501035
501052
|
$2[16] = hasAnyBashExecution;
|
|
501036
501053
|
$2[17] = onDone;
|
|
@@ -501519,7 +501536,7 @@ function completeOnboarding() {
|
|
|
501519
501536
|
saveGlobalConfig((current) => ({
|
|
501520
501537
|
...current,
|
|
501521
501538
|
hasCompletedOnboarding: true,
|
|
501522
|
-
lastOnboardingVersion: "1.0
|
|
501539
|
+
lastOnboardingVersion: "1.1.0"
|
|
501523
501540
|
}));
|
|
501524
501541
|
}
|
|
501525
501542
|
function showDialog(root3, renderer) {
|
|
@@ -506073,7 +506090,7 @@ function appendToLog(path17, message) {
|
|
|
506073
506090
|
cwd: getFsImplementation().cwd(),
|
|
506074
506091
|
userType: process.env.USER_TYPE,
|
|
506075
506092
|
sessionId: getSessionId(),
|
|
506076
|
-
version: "1.0
|
|
506093
|
+
version: "1.1.0"
|
|
506077
506094
|
};
|
|
506078
506095
|
getLogWriter(path17).write(messageWithTimestamp);
|
|
506079
506096
|
}
|
|
@@ -510053,8 +510070,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
510053
510070
|
}
|
|
510054
510071
|
async function checkEnvLessBridgeMinVersion() {
|
|
510055
510072
|
const cfg = await getEnvLessBridgeConfig();
|
|
510056
|
-
if (cfg.min_version && lt("1.0
|
|
510057
|
-
return `Your version of localclawd (${"1.0
|
|
510073
|
+
if (cfg.min_version && lt("1.1.0", cfg.min_version)) {
|
|
510074
|
+
return `Your version of localclawd (${"1.1.0"}) is too old for Remote Control.
|
|
510058
510075
|
Version ${cfg.min_version} or higher is required. Run \`localclawd update\` to update.`;
|
|
510059
510076
|
}
|
|
510060
510077
|
return null;
|
|
@@ -510526,7 +510543,7 @@ async function initBridgeCore(params) {
|
|
|
510526
510543
|
const rawApi = createBridgeApiClient({
|
|
510527
510544
|
baseUrl,
|
|
510528
510545
|
getAccessToken,
|
|
510529
|
-
runnerVersion: "1.0
|
|
510546
|
+
runnerVersion: "1.1.0",
|
|
510530
510547
|
onDebug: logForDebugging,
|
|
510531
510548
|
onAuth401,
|
|
510532
510549
|
getTrustedDeviceToken
|
|
@@ -516182,7 +516199,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
|
|
|
516182
516199
|
setCwd(cwd3);
|
|
516183
516200
|
const server = new Server({
|
|
516184
516201
|
name: "claude/tengu",
|
|
516185
|
-
version: "1.0
|
|
516202
|
+
version: "1.1.0"
|
|
516186
516203
|
}, {
|
|
516187
516204
|
capabilities: {
|
|
516188
516205
|
tools: {}
|
|
@@ -517787,7 +517804,7 @@ __export(exports_update, {
|
|
|
517787
517804
|
});
|
|
517788
517805
|
async function update() {
|
|
517789
517806
|
logEvent("tengu_update_check", {});
|
|
517790
|
-
writeToStdout(`Current version: ${"1.0
|
|
517807
|
+
writeToStdout(`Current version: ${"1.1.0"}
|
|
517791
517808
|
`);
|
|
517792
517809
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
517793
517810
|
writeToStdout(`Checking for updates to ${channel} version...
|
|
@@ -517862,8 +517879,8 @@ async function update() {
|
|
|
517862
517879
|
writeToStdout(`localclawd is managed by Homebrew.
|
|
517863
517880
|
`);
|
|
517864
517881
|
const latest = await getLatestVersion(channel);
|
|
517865
|
-
if (latest && !gte("1.0
|
|
517866
|
-
writeToStdout(`Update available: ${"1.0
|
|
517882
|
+
if (latest && !gte("1.1.0", latest)) {
|
|
517883
|
+
writeToStdout(`Update available: ${"1.1.0"} → ${latest}
|
|
517867
517884
|
`);
|
|
517868
517885
|
writeToStdout(`
|
|
517869
517886
|
`);
|
|
@@ -517879,8 +517896,8 @@ async function update() {
|
|
|
517879
517896
|
writeToStdout(`localclawd is managed by winget.
|
|
517880
517897
|
`);
|
|
517881
517898
|
const latest = await getLatestVersion(channel);
|
|
517882
|
-
if (latest && !gte("1.0
|
|
517883
|
-
writeToStdout(`Update available: ${"1.0
|
|
517899
|
+
if (latest && !gte("1.1.0", latest)) {
|
|
517900
|
+
writeToStdout(`Update available: ${"1.1.0"} → ${latest}
|
|
517884
517901
|
`);
|
|
517885
517902
|
writeToStdout(`
|
|
517886
517903
|
`);
|
|
@@ -517894,8 +517911,8 @@ async function update() {
|
|
|
517894
517911
|
writeToStdout(`localclawd is managed by apk.
|
|
517895
517912
|
`);
|
|
517896
517913
|
const latest = await getLatestVersion(channel);
|
|
517897
|
-
if (latest && !gte("1.0
|
|
517898
|
-
writeToStdout(`Update available: ${"1.0
|
|
517914
|
+
if (latest && !gte("1.1.0", latest)) {
|
|
517915
|
+
writeToStdout(`Update available: ${"1.1.0"} → ${latest}
|
|
517899
517916
|
`);
|
|
517900
517917
|
writeToStdout(`
|
|
517901
517918
|
`);
|
|
@@ -517960,11 +517977,11 @@ async function update() {
|
|
|
517960
517977
|
`);
|
|
517961
517978
|
await gracefulShutdown(1);
|
|
517962
517979
|
}
|
|
517963
|
-
if (result.latestVersion === "1.0
|
|
517964
|
-
writeToStdout(source_default.green(`localclawd is up to date (${"1.0
|
|
517980
|
+
if (result.latestVersion === "1.1.0") {
|
|
517981
|
+
writeToStdout(source_default.green(`localclawd is up to date (${"1.1.0"})`) + `
|
|
517965
517982
|
`);
|
|
517966
517983
|
} else {
|
|
517967
|
-
writeToStdout(source_default.green(`Successfully updated from ${"1.0
|
|
517984
|
+
writeToStdout(source_default.green(`Successfully updated from ${"1.1.0"} to version ${result.latestVersion}`) + `
|
|
517968
517985
|
`);
|
|
517969
517986
|
await regenerateCompletionCache();
|
|
517970
517987
|
}
|
|
@@ -518024,12 +518041,12 @@ async function update() {
|
|
|
518024
518041
|
`);
|
|
518025
518042
|
await gracefulShutdown(1);
|
|
518026
518043
|
}
|
|
518027
|
-
if (latestVersion === "1.0
|
|
518028
|
-
writeToStdout(source_default.green(`localclawd is up to date (${"1.0
|
|
518044
|
+
if (latestVersion === "1.1.0") {
|
|
518045
|
+
writeToStdout(source_default.green(`localclawd is up to date (${"1.1.0"})`) + `
|
|
518029
518046
|
`);
|
|
518030
518047
|
await gracefulShutdown(0);
|
|
518031
518048
|
}
|
|
518032
|
-
writeToStdout(`New version available: ${latestVersion} (current: ${"1.0
|
|
518049
|
+
writeToStdout(`New version available: ${latestVersion} (current: ${"1.1.0"})
|
|
518033
518050
|
`);
|
|
518034
518051
|
writeToStdout(`Installing update...
|
|
518035
518052
|
`);
|
|
@@ -518074,7 +518091,7 @@ async function update() {
|
|
|
518074
518091
|
logForDebugging(`update: Installation status: ${status2}`);
|
|
518075
518092
|
switch (status2) {
|
|
518076
518093
|
case "success":
|
|
518077
|
-
writeToStdout(source_default.green(`Successfully updated from ${"1.0
|
|
518094
|
+
writeToStdout(source_default.green(`Successfully updated from ${"1.1.0"} to version ${latestVersion}`) + `
|
|
518078
518095
|
`);
|
|
518079
518096
|
await regenerateCompletionCache();
|
|
518080
518097
|
break;
|
|
@@ -519339,7 +519356,7 @@ ${customInstructions}` : customInstructions;
|
|
|
519339
519356
|
}
|
|
519340
519357
|
}
|
|
519341
519358
|
logForDiagnosticsNoPII("info", "started", {
|
|
519342
|
-
version: "1.0
|
|
519359
|
+
version: "1.1.0",
|
|
519343
519360
|
is_native_binary: isInBundledMode()
|
|
519344
519361
|
});
|
|
519345
519362
|
registerCleanup(async () => {
|
|
@@ -520123,7 +520140,7 @@ Usage: localclawd --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
520123
520140
|
pendingHookMessages
|
|
520124
520141
|
}, renderAndRun);
|
|
520125
520142
|
}
|
|
520126
|
-
}).version("1.0
|
|
520143
|
+
}).version("1.1.0 (localClawd)", "-v, --version", "Output the version number");
|
|
520127
520144
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
520128
520145
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
520129
520146
|
if (canUserConfigureAdvisor()) {
|
|
@@ -520631,7 +520648,7 @@ if (false) {}
|
|
|
520631
520648
|
async function main2() {
|
|
520632
520649
|
const args = process.argv.slice(2);
|
|
520633
520650
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
520634
|
-
console.log(`${"1.0
|
|
520651
|
+
console.log(`${"1.1.0"} (localclawd)`);
|
|
520635
520652
|
return;
|
|
520636
520653
|
}
|
|
520637
520654
|
const {
|
|
@@ -520715,4 +520732,4 @@ async function main2() {
|
|
|
520715
520732
|
}
|
|
520716
520733
|
main2();
|
|
520717
520734
|
|
|
520718
|
-
//# debugId=
|
|
520735
|
+
//# debugId=1F9388A95EA6220164756E2164756E21
|