@atlasharness/atlascode 0.1.28 → 0.1.30
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.js +106 -106
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -178,7 +178,10 @@ function getVersion() {
|
|
|
178
178
|
return VERSION;
|
|
179
179
|
}
|
|
180
180
|
function buildUserAgent() {
|
|
181
|
-
return `${PRODUCT_NAME}/${getVersion()} (
|
|
181
|
+
return `${PRODUCT_NAME}/${getVersion()} (${REPOSITORY_URL})`;
|
|
182
|
+
}
|
|
183
|
+
function buildWebFetchUserAgent() {
|
|
184
|
+
return `Atlas-User (${PRODUCT_NAME}/${getVersion()}; ${REPOSITORY_URL})`;
|
|
182
185
|
}
|
|
183
186
|
var PRODUCT_NAME = "AtlasCode", REPOSITORY_URL = "https://github.com/vincentlau2046/AtlasCode", VERSION;
|
|
184
187
|
var init_identity = __esm(() => {
|
|
@@ -27494,12 +27497,12 @@ function getRequestTooLargeErrorMessage() {
|
|
|
27494
27497
|
return isNonInteractive() ? `Request too large (${limits}). Try with a smaller file.` : `Request too large (${limits}). Double press esc to go back and try with a smaller file.`;
|
|
27495
27498
|
}
|
|
27496
27499
|
function getTokenRevokedErrorMessage() {
|
|
27497
|
-
return isNonInteractive() ? "Your account does not have access to
|
|
27500
|
+
return isNonInteractive() ? "Your account does not have access to AtlasCode. Please login again or contact your administrator." : TOKEN_REVOKED_ERROR_MESSAGE;
|
|
27498
27501
|
}
|
|
27499
27502
|
function getOauthOrgNotAllowedErrorMessage() {
|
|
27500
|
-
return isNonInteractive() ? "Your organization does not have access to
|
|
27503
|
+
return isNonInteractive() ? "Your organization does not have access to AtlasCode. Please login again or contact your administrator." : OAUTH_ORG_NOT_ALLOWED_ERROR_MESSAGE;
|
|
27501
27504
|
}
|
|
27502
|
-
var ports, INVALID_API_KEY_ERROR_MESSAGE = "Not logged in · Please run /login", INVALID_API_KEY_ERROR_MESSAGE_EXTERNAL = "Invalid API key · Fix external API key", ORG_DISABLED_ERROR_MESSAGE_ENV_KEY_WITH_OAUTH = "Your OPENAI_API_KEY belongs to a disabled organization · Unset the environment variable to use your subscription instead", ORG_DISABLED_ERROR_MESSAGE_ENV_KEY = "Your OPENAI_API_KEY belongs to a disabled organization · Update or unset the environment variable", TOKEN_REVOKED_ERROR_MESSAGE = "OAuth token revoked · Please run /login", CCR_AUTH_ERROR_MESSAGE = "Authentication error · This may be a temporary network issue, please try again", OAUTH_ORG_NOT_ALLOWED_ERROR_MESSAGE = "Your account does not have access to
|
|
27505
|
+
var ports, INVALID_API_KEY_ERROR_MESSAGE = "Not logged in · Please run /login", INVALID_API_KEY_ERROR_MESSAGE_EXTERNAL = "Invalid API key · Fix external API key", ORG_DISABLED_ERROR_MESSAGE_ENV_KEY_WITH_OAUTH = "Your OPENAI_API_KEY belongs to a disabled organization · Unset the environment variable to use your subscription instead", ORG_DISABLED_ERROR_MESSAGE_ENV_KEY = "Your OPENAI_API_KEY belongs to a disabled organization · Update or unset the environment variable", TOKEN_REVOKED_ERROR_MESSAGE = "OAuth token revoked · Please run /login", CCR_AUTH_ERROR_MESSAGE = "Authentication error · This may be a temporary network issue, please try again", OAUTH_ORG_NOT_ALLOWED_ERROR_MESSAGE = "Your account does not have access to AtlasCode. Please run /login.";
|
|
27503
27506
|
var init_errorMessaging = __esm(() => {
|
|
27504
27507
|
init_types2();
|
|
27505
27508
|
init_modelErrors();
|
|
@@ -28850,7 +28853,7 @@ function checkPathSafetyForAutoEdit(path, precomputedPathsToCheck) {
|
|
|
28850
28853
|
if (hasSuspiciousWindowsPathPattern(pathToCheck)) {
|
|
28851
28854
|
return {
|
|
28852
28855
|
safe: false,
|
|
28853
|
-
message: `
|
|
28856
|
+
message: `AtlasCode requested permissions to write to ${path}, which contains a suspicious Windows path pattern that requires manual approval.`,
|
|
28854
28857
|
classifierApprovable: false
|
|
28855
28858
|
};
|
|
28856
28859
|
}
|
|
@@ -28859,7 +28862,7 @@ function checkPathSafetyForAutoEdit(path, precomputedPathsToCheck) {
|
|
|
28859
28862
|
if (isClaudeConfigFilePath(pathToCheck)) {
|
|
28860
28863
|
return {
|
|
28861
28864
|
safe: false,
|
|
28862
|
-
message: `
|
|
28865
|
+
message: `AtlasCode requested permissions to write to ${path}, but you haven't granted it yet.`,
|
|
28863
28866
|
classifierApprovable: true
|
|
28864
28867
|
};
|
|
28865
28868
|
}
|
|
@@ -28868,7 +28871,7 @@ function checkPathSafetyForAutoEdit(path, precomputedPathsToCheck) {
|
|
|
28868
28871
|
if (isDangerousFilePathToAutoEdit(pathToCheck)) {
|
|
28869
28872
|
return {
|
|
28870
28873
|
safe: false,
|
|
28871
|
-
message: `
|
|
28874
|
+
message: `AtlasCode requested permissions to edit ${path} which is a sensitive file.`,
|
|
28872
28875
|
classifierApprovable: true
|
|
28873
28876
|
};
|
|
28874
28877
|
}
|
|
@@ -28946,7 +28949,7 @@ function checkReadPermissionForTool(tool, input, toolPermissionContext) {
|
|
|
28946
28949
|
if (typeof getPath !== "function") {
|
|
28947
28950
|
return {
|
|
28948
28951
|
behavior: "ask",
|
|
28949
|
-
message: `
|
|
28952
|
+
message: `AtlasCode requested permissions to use ${tool.name}, but you haven't granted it yet.`
|
|
28950
28953
|
};
|
|
28951
28954
|
}
|
|
28952
28955
|
const path = getPath(input);
|
|
@@ -28955,7 +28958,7 @@ function checkReadPermissionForTool(tool, input, toolPermissionContext) {
|
|
|
28955
28958
|
if (pathToCheck.startsWith("\\\\") || pathToCheck.startsWith("//")) {
|
|
28956
28959
|
return {
|
|
28957
28960
|
behavior: "ask",
|
|
28958
|
-
message: `
|
|
28961
|
+
message: `AtlasCode requested permissions to read from ${path}, which appears to be a UNC path that could access network resources.`,
|
|
28959
28962
|
decisionReason: {
|
|
28960
28963
|
type: "other",
|
|
28961
28964
|
reason: "UNC path detected (defense-in-depth check)"
|
|
@@ -28967,7 +28970,7 @@ function checkReadPermissionForTool(tool, input, toolPermissionContext) {
|
|
|
28967
28970
|
if (hasSuspiciousWindowsPathPattern(pathToCheck)) {
|
|
28968
28971
|
return {
|
|
28969
28972
|
behavior: "ask",
|
|
28970
|
-
message: `
|
|
28973
|
+
message: `AtlasCode requested permissions to read from ${path}, which contains a suspicious Windows path pattern that requires manual approval.`,
|
|
28971
28974
|
decisionReason: {
|
|
28972
28975
|
type: "other",
|
|
28973
28976
|
reason: "Path contains suspicious Windows-specific patterns (alternate data streams, short names, long path prefixes, or three or more consecutive dots) that require manual verification"
|
|
@@ -28990,7 +28993,7 @@ function checkReadPermissionForTool(tool, input, toolPermissionContext) {
|
|
|
28990
28993
|
if (askRule) {
|
|
28991
28994
|
return {
|
|
28992
28995
|
behavior: "ask",
|
|
28993
|
-
message: `
|
|
28996
|
+
message: `AtlasCode requested permissions to read from ${path}, but you haven't granted it yet.`,
|
|
28994
28997
|
decisionReason: { type: "rule", rule: askRule }
|
|
28995
28998
|
};
|
|
28996
28999
|
}
|
|
@@ -29022,7 +29025,7 @@ function checkReadPermissionForTool(tool, input, toolPermissionContext) {
|
|
|
29022
29025
|
}
|
|
29023
29026
|
return {
|
|
29024
29027
|
behavior: "ask",
|
|
29025
|
-
message: `
|
|
29028
|
+
message: `AtlasCode requested permissions to read from ${path}, but you haven't granted it yet.`,
|
|
29026
29029
|
suggestions: generateSuggestions(path, "read", toolPermissionContext, pathsToCheck),
|
|
29027
29030
|
decisionReason: {
|
|
29028
29031
|
type: "workingDir",
|
|
@@ -29035,7 +29038,7 @@ function checkWritePermissionForTool(tool, input, toolPermissionContext, precomp
|
|
|
29035
29038
|
if (typeof getPath !== "function") {
|
|
29036
29039
|
return {
|
|
29037
29040
|
behavior: "ask",
|
|
29038
|
-
message: `
|
|
29041
|
+
message: `AtlasCode requested permissions to use ${tool.name}, but you haven't granted it yet.`
|
|
29039
29042
|
};
|
|
29040
29043
|
}
|
|
29041
29044
|
const path = getPath(input);
|
|
@@ -29073,7 +29076,7 @@ function checkWritePermissionForTool(tool, input, toolPermissionContext, precomp
|
|
|
29073
29076
|
if (askRule) {
|
|
29074
29077
|
return {
|
|
29075
29078
|
behavior: "ask",
|
|
29076
|
-
message: `
|
|
29079
|
+
message: `AtlasCode requested permissions to write to ${path}, but you haven't granted it yet.`,
|
|
29077
29080
|
decisionReason: { type: "rule", rule: askRule }
|
|
29078
29081
|
};
|
|
29079
29082
|
}
|
|
@@ -29096,7 +29099,7 @@ function checkWritePermissionForTool(tool, input, toolPermissionContext, precomp
|
|
|
29096
29099
|
}
|
|
29097
29100
|
return {
|
|
29098
29101
|
behavior: "ask",
|
|
29099
|
-
message: `
|
|
29102
|
+
message: `AtlasCode requested permissions to write to ${path}, but you haven't granted it yet.`,
|
|
29100
29103
|
suggestions: generateSuggestions(path, "write", toolPermissionContext, pathsToCheck),
|
|
29101
29104
|
decisionReason: !isInWorkingDir ? {
|
|
29102
29105
|
type: "workingDir",
|
|
@@ -67123,7 +67126,7 @@ async function applyPromptToMarkdown(prompt, markdownContent, signal, isNonInter
|
|
|
67123
67126
|
}
|
|
67124
67127
|
return "No response from model";
|
|
67125
67128
|
}
|
|
67126
|
-
var EgressBlockedError, CACHE_TTL_MS, MAX_CACHE_SIZE_BYTES, URL_CACHE, MAX_URL_LENGTH = 2000, MAX_HTTP_CONTENT_LENGTH, FETCH_TIMEOUT_MS = 60000, MAX_REDIRECTS = 10, MAX_MARKDOWN_LENGTH = 1e5, WEB_FETCH_USER_AGENT
|
|
67129
|
+
var EgressBlockedError, CACHE_TTL_MS, MAX_CACHE_SIZE_BYTES, URL_CACHE, MAX_URL_LENGTH = 2000, MAX_HTTP_CONTENT_LENGTH, FETCH_TIMEOUT_MS = 60000, MAX_REDIRECTS = 10, MAX_MARKDOWN_LENGTH = 1e5, WEB_FETCH_USER_AGENT, fetchImpl = (url, init) => fetch(url, init), TOOL_RESULTS_SUBDIR2 = "tool-results";
|
|
67127
67130
|
var init_webFetchUtils = __esm(() => {
|
|
67128
67131
|
init_shared();
|
|
67129
67132
|
init_modelprovider2();
|
|
@@ -67147,6 +67150,7 @@ var init_webFetchUtils = __esm(() => {
|
|
|
67147
67150
|
MAX_CACHE_SIZE_BYTES = 50 * 1024 * 1024;
|
|
67148
67151
|
URL_CACHE = new TtlLruCache(CACHE_TTL_MS, 500, MAX_CACHE_SIZE_BYTES);
|
|
67149
67152
|
MAX_HTTP_CONTENT_LENGTH = 10 * 1024 * 1024;
|
|
67153
|
+
WEB_FETCH_USER_AGENT = buildWebFetchUserAgent();
|
|
67150
67154
|
});
|
|
67151
67155
|
// src/engine/tools/web/webFetchTool.ts
|
|
67152
67156
|
function webFetchToolInputToPermissionRuleContent(input) {
|
|
@@ -70697,7 +70701,7 @@ var init_sendMessageTool = __esm(() => {
|
|
|
70697
70701
|
if (isUdsInboxEnabled() && parseAddress(i.to).scheme === "bridge") {
|
|
70698
70702
|
return {
|
|
70699
70703
|
behavior: "ask",
|
|
70700
|
-
message: `Send a message to Remote Control session ${i.to}? It arrives as a user prompt on the receiving Claude (possibly another machine) via
|
|
70704
|
+
message: `Send a message to Remote Control session ${i.to}? It arrives as a user prompt on the receiving Claude (possibly another machine) via AtlasCode servers.`,
|
|
70701
70705
|
decisionReason: {
|
|
70702
70706
|
type: "safetyCheck",
|
|
70703
70707
|
reason: "Cross-machine bridge message requires explicit user consent",
|
|
@@ -130494,9 +130498,9 @@ function renderModelName(model) {
|
|
|
130494
130498
|
function getPublicModelName(model) {
|
|
130495
130499
|
const publicName = getPublicModelDisplayName(model);
|
|
130496
130500
|
if (publicName) {
|
|
130497
|
-
return `
|
|
130501
|
+
return `AtlasCode ${publicName}`;
|
|
130498
130502
|
}
|
|
130499
|
-
return `
|
|
130503
|
+
return `AtlasCode (${model})`;
|
|
130500
130504
|
}
|
|
130501
130505
|
function parseUserSpecifiedModel2(modelInput) {
|
|
130502
130506
|
const modelInputTrimmed = (typeof modelInput === "string" ? modelInput : String(modelInput || "")).trim();
|
|
@@ -195827,11 +195831,6 @@ var init_codeIndexing = __esm(() => {
|
|
|
195827
195831
|
];
|
|
195828
195832
|
});
|
|
195829
195833
|
|
|
195830
|
-
// src/tui/utils/userAgent.ts
|
|
195831
|
-
function getDefaultUserAgent() {
|
|
195832
|
-
return `AtlasCode/${MACRO.VERSION}`;
|
|
195833
|
-
}
|
|
195834
|
-
|
|
195835
195834
|
// src/tui/utils/workloadContext.ts
|
|
195836
195835
|
import { AsyncLocalStorage as AsyncLocalStorage4 } from "async_hooks";
|
|
195837
195836
|
function getWorkload() {
|
|
@@ -195851,7 +195850,7 @@ function getUserAgent() {
|
|
|
195851
195850
|
const clientApp = process.env.ATLAS_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.ATLAS_AGENT_SDK_CLIENT_APP}` : "";
|
|
195852
195851
|
const workload = getWorkload();
|
|
195853
195852
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
195854
|
-
return
|
|
195853
|
+
return `${PRODUCT_NAME}/${getVersion()} (atlascode, ${process.env.ATLAS_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix}, ${REPOSITORY_URL})`;
|
|
195855
195854
|
}
|
|
195856
195855
|
function getMCPUserAgent() {
|
|
195857
195856
|
const parts = [];
|
|
@@ -195865,14 +195864,15 @@ function getMCPUserAgent() {
|
|
|
195865
195864
|
parts.push(`client-app/${process.env.ATLAS_AGENT_SDK_CLIENT_APP}`);
|
|
195866
195865
|
}
|
|
195867
195866
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
195868
|
-
return
|
|
195867
|
+
return `${PRODUCT_NAME}/${getVersion()}${suffix} (${REPOSITORY_URL})`;
|
|
195869
195868
|
}
|
|
195870
195869
|
function getWebFetchUserAgent() {
|
|
195871
|
-
return
|
|
195870
|
+
return buildWebFetchUserAgent();
|
|
195872
195871
|
}
|
|
195873
195872
|
var init_http2 = __esm(() => {
|
|
195874
195873
|
init_auth4();
|
|
195875
195874
|
init_workloadContext();
|
|
195875
|
+
init_shared();
|
|
195876
195876
|
});
|
|
195877
195877
|
|
|
195878
195878
|
// ../../node_modules/lodash-es/_baseSlice.js
|
|
@@ -203841,7 +203841,7 @@ function tuc() {
|
|
|
203841
203841
|
return currentToolUseContext;
|
|
203842
203842
|
}
|
|
203843
203843
|
function formatLockHeld(holder) {
|
|
203844
|
-
return `Computer use is in use by another
|
|
203844
|
+
return `Computer use is in use by another AtlasCode session (${holder.slice(0, 8)}…). Wait for that session to finish or run /exit there.`;
|
|
203845
203845
|
}
|
|
203846
203846
|
function buildSessionContext() {
|
|
203847
203847
|
return {
|
|
@@ -208324,9 +208324,9 @@ var init_client4 = __esm(() => {
|
|
|
208324
208324
|
}
|
|
208325
208325
|
const client = new Client({
|
|
208326
208326
|
name: "claude-code",
|
|
208327
|
-
title: "
|
|
208327
|
+
title: "AtlasCode",
|
|
208328
208328
|
version: MACRO.VERSION ?? "unknown",
|
|
208329
|
-
description: "
|
|
208329
|
+
description: "AtlasCode agentic coding tool",
|
|
208330
208330
|
websiteUrl: PRODUCT_URL
|
|
208331
208331
|
}, {
|
|
208332
208332
|
capabilities: {
|
|
@@ -252951,7 +252951,7 @@ function getAttributionTexts() {
|
|
|
252951
252951
|
const model = getMainLoopModel();
|
|
252952
252952
|
const isKnownPublicModel = getPublicModelDisplayName(model) !== null;
|
|
252953
252953
|
const modelName = isInternalModelRepoCached() || isKnownPublicModel ? getPublicModelName(model) : "Atlas Opus 4.6";
|
|
252954
|
-
const defaultAttribution = `\uD83E\uDD16 Generated with [
|
|
252954
|
+
const defaultAttribution = `\uD83E\uDD16 Generated with [AtlasCode](${PRODUCT_URL})`;
|
|
252955
252955
|
const defaultCommit = `Co-Authored-By: ${modelName} <vincent.lau2046@gmail.com>`;
|
|
252956
252956
|
const settings = getInitialSettings2();
|
|
252957
252957
|
if (settings.attribution) {
|
|
@@ -253077,7 +253077,7 @@ async function getEnhancedPRAttribution(getAppState) {
|
|
|
253077
253077
|
if (settings.includeCoAuthoredBy === false) {
|
|
253078
253078
|
return "";
|
|
253079
253079
|
}
|
|
253080
|
-
const defaultAttribution = `\uD83E\uDD16 Generated with [
|
|
253080
|
+
const defaultAttribution = `\uD83E\uDD16 Generated with [AtlasCode](${PRODUCT_URL})`;
|
|
253081
253081
|
const appState = getAppState();
|
|
253082
253082
|
logForDebugging3(`PR Attribution: appState.attribution exists: ${!!appState.attribution}`);
|
|
253083
253083
|
if (appState.attribution) {
|
|
@@ -253100,7 +253100,7 @@ async function getEnhancedPRAttribution(getAppState) {
|
|
|
253100
253100
|
return defaultAttribution;
|
|
253101
253101
|
}
|
|
253102
253102
|
const memSuffix = memoryAccessCount > 0 ? `, ${memoryAccessCount} ${memoryAccessCount === 1 ? "memory" : "memories"} recalled` : "";
|
|
253103
|
-
const summary = `\uD83E\uDD16 Generated with [
|
|
253103
|
+
const summary = `\uD83E\uDD16 Generated with [AtlasCode](${PRODUCT_URL}) (${atlasPercent}% ${promptCount}-shotted by ${shortModelName}${memSuffix})`;
|
|
253104
253104
|
if (feature("COMMIT_ATTRIBUTION") && isInternal && attributionData) {
|
|
253105
253105
|
await Promise.resolve();
|
|
253106
253106
|
const trailers = buildPRTrailers(attributionData, appState.attribution);
|
|
@@ -257251,7 +257251,7 @@ async function findSuitableShell2() {
|
|
|
257251
257251
|
}
|
|
257252
257252
|
const shellPath = supportedShells.find((shell) => shell && isExecutable2(shell));
|
|
257253
257253
|
if (!shellPath) {
|
|
257254
|
-
const errorMsg = "No suitable shell found.
|
|
257254
|
+
const errorMsg = "No suitable shell found. AtlasCode CLI requires a Posix shell environment. " + "Please ensure you have a valid shell installed and the SHELL environment variable set.";
|
|
257255
257255
|
logError3(new Error(errorMsg));
|
|
257256
257256
|
throw new Error(errorMsg);
|
|
257257
257257
|
}
|
|
@@ -257292,7 +257292,7 @@ async function exec3(command, abortSignal, shellType, options) {
|
|
|
257292
257292
|
setCwdState(fallback);
|
|
257293
257293
|
cwd = fallback;
|
|
257294
257294
|
} catch {
|
|
257295
|
-
return createFailedCommand2(`Working directory "${cwd}" no longer exists. Please restart
|
|
257295
|
+
return createFailedCommand2(`Working directory "${cwd}" no longer exists. Please restart AtlasCode from an existing directory.`);
|
|
257296
257296
|
}
|
|
257297
257297
|
}
|
|
257298
257298
|
if (abortSignal.aborted) {
|
|
@@ -272659,7 +272659,7 @@ var init_apiErrors = __esm(() => {
|
|
|
272659
272659
|
},
|
|
272660
272660
|
isNonInteractive: getIsNonInteractiveSession,
|
|
272661
272661
|
resolveRefusalMessage: (model) => {
|
|
272662
|
-
return getIsNonInteractiveSession() ? `${API_ERROR_MESSAGE_PREFIX}:
|
|
272662
|
+
return getIsNonInteractiveSession() ? `${API_ERROR_MESSAGE_PREFIX}: AtlasCode is unable to respond to this request, which appears to violate our Usage Policy. Try rephrasing the request or attempting a different approach.` : `${API_ERROR_MESSAGE_PREFIX}: AtlasCode is unable to respond to this request, which appears to violate our Usage Policy. Please double press esc to edit your last message or start a new session for Atlas to assist with a different task.`;
|
|
272663
272663
|
}
|
|
272664
272664
|
});
|
|
272665
272665
|
});
|
|
@@ -310072,7 +310072,7 @@ var init_SendMessageTool = __esm(() => {
|
|
|
310072
310072
|
if (feature("UDS_INBOX") && parseAddress2(input.to).scheme === "bridge") {
|
|
310073
310073
|
return {
|
|
310074
310074
|
behavior: "ask",
|
|
310075
|
-
message: `Send a message to Remote Control session ${input.to}? It arrives as a user prompt on the receiving Claude (possibly another machine) via
|
|
310075
|
+
message: `Send a message to Remote Control session ${input.to}? It arrives as a user prompt on the receiving Claude (possibly another machine) via AtlasCode servers.`,
|
|
310076
310076
|
decisionReason: {
|
|
310077
310077
|
type: "safetyCheck",
|
|
310078
310078
|
reason: "Cross-machine bridge message requires explicit user consent",
|
|
@@ -338995,7 +338995,7 @@ function getSteps() {
|
|
|
338995
338995
|
},
|
|
338996
338996
|
{
|
|
338997
338997
|
key: "claudemd",
|
|
338998
|
-
text: "Run /init to create an ATLAS.md file with instructions for
|
|
338998
|
+
text: "Run /init to create an ATLAS.md file with instructions for AtlasCode",
|
|
338999
338999
|
isComplete: hasMemoryFile,
|
|
339000
339000
|
isCompletable: true,
|
|
339001
339001
|
isEnabled: !isWorkspaceDirEmpty
|
|
@@ -342503,7 +342503,7 @@ function PermissionDescription() {
|
|
|
342503
342503
|
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
342504
342504
|
t0 = /* @__PURE__ */ jsx_dev_runtime131.jsxDEV(ThemedText, {
|
|
342505
342505
|
dimColor: true,
|
|
342506
|
-
children: "
|
|
342506
|
+
children: "AtlasCode will be able to read files in this directory and make edits when auto-accept edits is on."
|
|
342507
342507
|
}, undefined, false, undefined, this);
|
|
342508
342508
|
$[0] = t0;
|
|
342509
342509
|
} else {
|
|
@@ -347688,7 +347688,7 @@ async function installOrUpdateClaudePackage(channel, specificVersion) {
|
|
|
347688
347688
|
const versionSpec = specificVersion ? specificVersion : channel === "stable" ? "stable" : "latest";
|
|
347689
347689
|
const result = await execFileNoThrowWithCwd2("npm", ["install", `${MACRO.PACKAGE_URL}@${versionSpec}`], { cwd: getLocalInstallDir(), maxBuffer: 1e6 });
|
|
347690
347690
|
if (result.code !== 0) {
|
|
347691
|
-
const error = new Error(`Failed to install
|
|
347691
|
+
const error = new Error(`Failed to install AtlasCode package: ${result.stderr}`);
|
|
347692
347692
|
logError3(error);
|
|
347693
347693
|
return result.code === 190 ? "in_progress" : "install_failed";
|
|
347694
347694
|
}
|
|
@@ -347834,7 +347834,7 @@ async function assertMinVersion() {
|
|
|
347834
347834
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("atlas_version_config", { minVersion: "0.0.0" });
|
|
347835
347835
|
if (versionConfig.minVersion && lt2(MACRO.VERSION, versionConfig.minVersion)) {
|
|
347836
347836
|
console.error(`
|
|
347837
|
-
It looks like your version of
|
|
347837
|
+
It looks like your version of AtlasCode (${MACRO.VERSION}) needs an update.
|
|
347838
347838
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
347839
347839
|
|
|
347840
347840
|
To update, please run:
|
|
@@ -348038,7 +348038,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
348038
348038
|
console.error(`
|
|
348039
348039
|
Error: Windows NPM detected in WSL
|
|
348040
348040
|
|
|
348041
|
-
You're running
|
|
348041
|
+
You're running AtlasCode in WSL but using the Windows NPM installation from /mnt/c/.
|
|
348042
348042
|
This configuration is not supported for updates.
|
|
348043
348043
|
|
|
348044
348044
|
To fix this issue:
|
|
@@ -348925,7 +348925,7 @@ function isLockActive(lockFilePath) {
|
|
|
348925
348925
|
return false;
|
|
348926
348926
|
}
|
|
348927
348927
|
if (!isClaudeProcess(pid, execPath)) {
|
|
348928
|
-
logForDebugging3(`Lock PID ${pid} is running but does not appear to be
|
|
348928
|
+
logForDebugging3(`Lock PID ${pid} is running but does not appear to be AtlasCode - treating as stale`);
|
|
348929
348929
|
return false;
|
|
348930
348930
|
}
|
|
348931
348931
|
const fs = getFsImplementation2();
|
|
@@ -349523,7 +349523,7 @@ async function checkInstall(force = false) {
|
|
|
349523
349523
|
const absoluteTarget = resolve46(dirname69(dirs.executable), target);
|
|
349524
349524
|
if (!await isPossibleClaudeBinary(absoluteTarget)) {
|
|
349525
349525
|
messages.push({
|
|
349526
|
-
message: `
|
|
349526
|
+
message: `AtlasCode symlink points to missing or invalid binary: ${target}`,
|
|
349527
349527
|
userActionRequired: true,
|
|
349528
349528
|
type: "error"
|
|
349529
349529
|
});
|
|
@@ -349538,7 +349538,7 @@ async function checkInstall(force = false) {
|
|
|
349538
349538
|
} else {
|
|
349539
349539
|
if (!await isPossibleClaudeBinary(dirs.executable)) {
|
|
349540
349540
|
messages.push({
|
|
349541
|
-
message: `${dirs.executable} exists but is not a valid
|
|
349541
|
+
message: `${dirs.executable} exists but is not a valid AtlasCode binary`,
|
|
349542
349542
|
userActionRequired: true,
|
|
349543
349543
|
type: "error"
|
|
349544
349544
|
});
|
|
@@ -361489,7 +361489,7 @@ function HelpV2(t0) {
|
|
|
361489
361489
|
let t6;
|
|
361490
361490
|
if ($[31] !== tabs) {
|
|
361491
361491
|
t6 = /* @__PURE__ */ jsx_dev_runtime175.jsxDEV(Tabs, {
|
|
361492
|
-
title: `
|
|
361492
|
+
title: `AtlasCode v${MACRO.VERSION}`,
|
|
361493
361493
|
color: "professionalBlue",
|
|
361494
361494
|
defaultTab: "general",
|
|
361495
361495
|
children: tabs
|
|
@@ -368101,7 +368101,7 @@ function MCPRemoteServerMenu({
|
|
|
368101
368101
|
const message = isEffectivelyAuthenticated ? `Authentication successful. Reconnected to ${server.name}.` : `Authentication successful. Connected to ${server.name}.`;
|
|
368102
368102
|
onComplete?.(message);
|
|
368103
368103
|
} else if (result_0.client.type === "needs-auth") {
|
|
368104
|
-
onComplete?.("Authentication successful, but server still requires authentication. You may need to manually restart
|
|
368104
|
+
onComplete?.("Authentication successful, but server still requires authentication. You may need to manually restart AtlasCode.");
|
|
368105
368105
|
} else {
|
|
368106
368106
|
logMCPDebug(server.name, `Reconnection failed after authentication`);
|
|
368107
368107
|
onComplete?.("Authentication successful, but server reconnection failed. You may need to manually restart Atlas for the changes to take effect.");
|
|
@@ -371100,7 +371100,7 @@ function Clawd(t0) {
|
|
|
371100
371100
|
}, undefined, false, undefined, this)),
|
|
371101
371101
|
/* @__PURE__ */ jsx_dev_runtime200.jsxDEV(ThemedText, {
|
|
371102
371102
|
color: "brand",
|
|
371103
|
-
children: "
|
|
371103
|
+
children: "AtlasCode"
|
|
371104
371104
|
}, undefined, false, undefined, this),
|
|
371105
371105
|
/* @__PURE__ */ jsx_dev_runtime200.jsxDEV(ThemedText, {
|
|
371106
371106
|
dimColor: true,
|
|
@@ -371138,7 +371138,7 @@ function AppleTerminalClawd(t0) {
|
|
|
371138
371138
|
}, undefined, false, undefined, this)),
|
|
371139
371139
|
/* @__PURE__ */ jsx_dev_runtime200.jsxDEV(ThemedText, {
|
|
371140
371140
|
color: "brand",
|
|
371141
|
-
children: "
|
|
371141
|
+
children: "AtlasCode"
|
|
371142
371142
|
}, undefined, false, undefined, this),
|
|
371143
371143
|
/* @__PURE__ */ jsx_dev_runtime200.jsxDEV(ThemedText, {
|
|
371144
371144
|
dimColor: true,
|
|
@@ -371585,7 +371585,7 @@ function CondensedLogo() {
|
|
|
371585
371585
|
if ($[8] === Symbol.for("react.memo_cache_sentinel")) {
|
|
371586
371586
|
t5 = /* @__PURE__ */ jsx_dev_runtime204.jsxDEV(ThemedText, {
|
|
371587
371587
|
bold: true,
|
|
371588
|
-
children: "
|
|
371588
|
+
children: "AtlasCode"
|
|
371589
371589
|
}, undefined, false, undefined, this);
|
|
371590
371590
|
$[8] = t5;
|
|
371591
371591
|
} else {
|
|
@@ -372118,8 +372118,8 @@ function LogoV2() {
|
|
|
372118
372118
|
}
|
|
372119
372119
|
const layoutMode = getLayoutMode(columns);
|
|
372120
372120
|
const userTheme = resolveThemeSetting(getGlobalConfig().theme);
|
|
372121
|
-
const borderTitle = ` ${color("brand", userTheme)("
|
|
372122
|
-
const compactBorderTitle = color("brand", userTheme)("
|
|
372121
|
+
const borderTitle = ` ${color("brand", userTheme)("AtlasCode")} ${color("inactive", userTheme)(`v${version}`)} `;
|
|
372122
|
+
const compactBorderTitle = color("brand", userTheme)(" AtlasCode ");
|
|
372123
372123
|
if (layoutMode === "compact") {
|
|
372124
372124
|
let welcomeMessage = formatWelcomeMessage(username);
|
|
372125
372125
|
if (stringWidth2(welcomeMessage) > columns - 4) {
|
|
@@ -373221,7 +373221,7 @@ var init_statusNoticeDefinitions = __esm(() => {
|
|
|
373221
373221
|
children: [
|
|
373222
373222
|
"Auth conflict: Using ",
|
|
373223
373223
|
authTokenInfo.source,
|
|
373224
|
-
" instead of
|
|
373224
|
+
" instead of AtlasCode account subscription token. Either unset ",
|
|
373225
373225
|
authTokenInfo.source,
|
|
373226
373226
|
", or run `atlas /logout`."
|
|
373227
373227
|
]
|
|
@@ -373262,7 +373262,7 @@ var init_statusNoticeDefinitions = __esm(() => {
|
|
|
373262
373262
|
children: [
|
|
373263
373263
|
"Auth conflict: Using ",
|
|
373264
373264
|
apiKeySource,
|
|
373265
|
-
" instead of
|
|
373265
|
+
" instead of AtlasCode Console key. Either unset ",
|
|
373266
373266
|
apiKeySource,
|
|
373267
373267
|
", or run `atlas /logout`."
|
|
373268
373268
|
]
|
|
@@ -400758,7 +400758,7 @@ function PluginTrustWarning() {
|
|
|
400758
400758
|
dimColor: true,
|
|
400759
400759
|
italic: true,
|
|
400760
400760
|
children: [
|
|
400761
|
-
"Make sure you trust a plugin before installing, updating, or using it.
|
|
400761
|
+
"Make sure you trust a plugin before installing, updating, or using it. AtlasCode does not control what MCP servers, files, or other software are included in plugins and cannot verify that they will work as intended or that they won't change. See each plugin's homepage for more information.",
|
|
400762
400762
|
customMessage ? ` ${customMessage}` : ""
|
|
400763
400763
|
]
|
|
400764
400764
|
}, undefined, true, undefined, this)
|
|
@@ -418354,13 +418354,13 @@ function generateHtmlReport(data, insights) {
|
|
|
418354
418354
|
<html>
|
|
418355
418355
|
<head>
|
|
418356
418356
|
<meta charset="utf-8">
|
|
418357
|
-
<title>
|
|
418357
|
+
<title>AtlasCode Insights</title>
|
|
418358
418358
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
418359
418359
|
<style>${css}</style>
|
|
418360
418360
|
</head>
|
|
418361
418361
|
<body>
|
|
418362
418362
|
<div class="container">
|
|
418363
|
-
<h1>
|
|
418363
|
+
<h1>AtlasCode Insights</h1>
|
|
418364
418364
|
<p class="subtitle">${data.total_messages.toLocaleString()} messages across ${data.total_sessions} sessions${data.total_sessions_scanned && data.total_sessions_scanned > data.total_sessions ? ` (${data.total_sessions_scanned.toLocaleString()} total)` : ""} | ${data.date_range.start} to ${data.date_range.end}</p>
|
|
418365
418365
|
|
|
418366
418366
|
${atAGlanceHtml}
|
|
@@ -418789,7 +418789,7 @@ var init_insights = __esm(() => {
|
|
|
418789
418789
|
wrong_approach: "Wrong Approach",
|
|
418790
418790
|
buggy_code: "Buggy Code",
|
|
418791
418791
|
user_rejected_action: "User Rejected Action",
|
|
418792
|
-
claude_got_blocked: "
|
|
418792
|
+
claude_got_blocked: "AtlasCode Got Blocked",
|
|
418793
418793
|
user_stopped_early: "User Stopped Early",
|
|
418794
418794
|
wrong_file_or_location: "Wrong File/Location",
|
|
418795
418795
|
excessive_changes: "Excessive Changes",
|
|
@@ -418967,7 +418967,7 @@ Find something genuinely interesting or amusing from the session summaries.`,
|
|
|
418967
418967
|
usageReport = {
|
|
418968
418968
|
type: "prompt",
|
|
418969
418969
|
name: "insights",
|
|
418970
|
-
description: "Generate a report analyzing your
|
|
418970
|
+
description: "Generate a report analyzing your AtlasCode sessions",
|
|
418971
418971
|
contentLength: 0,
|
|
418972
418972
|
progressMessage: "analyzing your sessions",
|
|
418973
418973
|
source: "builtin",
|
|
@@ -419276,7 +419276,7 @@ var init_commands5 = __esm(() => {
|
|
|
419276
419276
|
usageReport2 = {
|
|
419277
419277
|
type: "prompt",
|
|
419278
419278
|
name: "insights",
|
|
419279
|
-
description: "Generate a report analyzing your
|
|
419279
|
+
description: "Generate a report analyzing your AtlasCode sessions",
|
|
419280
419280
|
contentLength: 0,
|
|
419281
419281
|
progressMessage: "analyzing your sessions",
|
|
419282
419282
|
source: "builtin",
|
|
@@ -422457,7 +422457,7 @@ function checkPathSafetyForAutoEdit2(path, precomputedPathsToCheck) {
|
|
|
422457
422457
|
if (hasSuspiciousWindowsPathPattern2(pathToCheck)) {
|
|
422458
422458
|
return {
|
|
422459
422459
|
safe: false,
|
|
422460
|
-
message: `
|
|
422460
|
+
message: `AtlasCode requested permissions to write to ${path}, which contains a suspicious Windows path pattern that requires manual approval.`,
|
|
422461
422461
|
classifierApprovable: false
|
|
422462
422462
|
};
|
|
422463
422463
|
}
|
|
@@ -422466,7 +422466,7 @@ function checkPathSafetyForAutoEdit2(path, precomputedPathsToCheck) {
|
|
|
422466
422466
|
if (isClaudeConfigFilePath2(pathToCheck)) {
|
|
422467
422467
|
return {
|
|
422468
422468
|
safe: false,
|
|
422469
|
-
message: `
|
|
422469
|
+
message: `AtlasCode requested permissions to write to ${path}, but you haven't granted it yet.`,
|
|
422470
422470
|
classifierApprovable: true
|
|
422471
422471
|
};
|
|
422472
422472
|
}
|
|
@@ -422475,7 +422475,7 @@ function checkPathSafetyForAutoEdit2(path, precomputedPathsToCheck) {
|
|
|
422475
422475
|
if (isDangerousFilePathToAutoEdit2(pathToCheck)) {
|
|
422476
422476
|
return {
|
|
422477
422477
|
safe: false,
|
|
422478
|
-
message: `
|
|
422478
|
+
message: `AtlasCode requested permissions to edit ${path} which is a sensitive file.`,
|
|
422479
422479
|
classifierApprovable: true
|
|
422480
422480
|
};
|
|
422481
422481
|
}
|
|
@@ -422671,7 +422671,7 @@ function checkReadPermissionForTool2(tool, input, toolPermissionContext) {
|
|
|
422671
422671
|
if (typeof tool.getPath !== "function") {
|
|
422672
422672
|
return {
|
|
422673
422673
|
behavior: "ask",
|
|
422674
|
-
message: `
|
|
422674
|
+
message: `AtlasCode requested permissions to use ${tool.name}, but you haven't granted it yet.`
|
|
422675
422675
|
};
|
|
422676
422676
|
}
|
|
422677
422677
|
const path = tool.getPath(input);
|
|
@@ -422680,7 +422680,7 @@ function checkReadPermissionForTool2(tool, input, toolPermissionContext) {
|
|
|
422680
422680
|
if (pathToCheck.startsWith("\\\\") || pathToCheck.startsWith("//")) {
|
|
422681
422681
|
return {
|
|
422682
422682
|
behavior: "ask",
|
|
422683
|
-
message: `
|
|
422683
|
+
message: `AtlasCode requested permissions to read from ${path}, which appears to be a UNC path that could access network resources.`,
|
|
422684
422684
|
decisionReason: {
|
|
422685
422685
|
type: "other",
|
|
422686
422686
|
reason: "UNC path detected (defense-in-depth check)"
|
|
@@ -422692,7 +422692,7 @@ function checkReadPermissionForTool2(tool, input, toolPermissionContext) {
|
|
|
422692
422692
|
if (hasSuspiciousWindowsPathPattern2(pathToCheck)) {
|
|
422693
422693
|
return {
|
|
422694
422694
|
behavior: "ask",
|
|
422695
|
-
message: `
|
|
422695
|
+
message: `AtlasCode requested permissions to read from ${path}, which contains a suspicious Windows path pattern that requires manual approval.`,
|
|
422696
422696
|
decisionReason: {
|
|
422697
422697
|
type: "other",
|
|
422698
422698
|
reason: "Path contains suspicious Windows-specific patterns (alternate data streams, short names, long path prefixes, or three or more consecutive dots) that require manual verification"
|
|
@@ -422718,7 +422718,7 @@ function checkReadPermissionForTool2(tool, input, toolPermissionContext) {
|
|
|
422718
422718
|
if (askRule) {
|
|
422719
422719
|
return {
|
|
422720
422720
|
behavior: "ask",
|
|
422721
|
-
message: `
|
|
422721
|
+
message: `AtlasCode requested permissions to read from ${path}, but you haven't granted it yet.`,
|
|
422722
422722
|
decisionReason: {
|
|
422723
422723
|
type: "rule",
|
|
422724
422724
|
rule: askRule
|
|
@@ -422759,7 +422759,7 @@ function checkReadPermissionForTool2(tool, input, toolPermissionContext) {
|
|
|
422759
422759
|
}
|
|
422760
422760
|
return {
|
|
422761
422761
|
behavior: "ask",
|
|
422762
|
-
message: `
|
|
422762
|
+
message: `AtlasCode requested permissions to read from ${path}, but you haven't granted it yet.`,
|
|
422763
422763
|
suggestions: generateSuggestions2(path, "read", toolPermissionContext, pathsToCheck),
|
|
422764
422764
|
decisionReason: {
|
|
422765
422765
|
type: "workingDir",
|
|
@@ -422771,7 +422771,7 @@ function checkWritePermissionForTool2(tool, input, toolPermissionContext, precom
|
|
|
422771
422771
|
if (typeof tool.getPath !== "function") {
|
|
422772
422772
|
return {
|
|
422773
422773
|
behavior: "ask",
|
|
422774
|
-
message: `
|
|
422774
|
+
message: `AtlasCode requested permissions to use ${tool.name}, but you haven't granted it yet.`
|
|
422775
422775
|
};
|
|
422776
422776
|
}
|
|
422777
422777
|
const path = tool.getPath(input);
|
|
@@ -422845,7 +422845,7 @@ function checkWritePermissionForTool2(tool, input, toolPermissionContext, precom
|
|
|
422845
422845
|
if (askRule) {
|
|
422846
422846
|
return {
|
|
422847
422847
|
behavior: "ask",
|
|
422848
|
-
message: `
|
|
422848
|
+
message: `AtlasCode requested permissions to write to ${path}, but you haven't granted it yet.`,
|
|
422849
422849
|
decisionReason: {
|
|
422850
422850
|
type: "rule",
|
|
422851
422851
|
rule: askRule
|
|
@@ -422877,7 +422877,7 @@ function checkWritePermissionForTool2(tool, input, toolPermissionContext, precom
|
|
|
422877
422877
|
}
|
|
422878
422878
|
return {
|
|
422879
422879
|
behavior: "ask",
|
|
422880
|
-
message: `
|
|
422880
|
+
message: `AtlasCode requested permissions to write to ${path}, but you haven't granted it yet.`,
|
|
422881
422881
|
suggestions: generateSuggestions2(path, "write", toolPermissionContext, pathsToCheck),
|
|
422882
422882
|
decisionReason: !isInWorkingDir ? {
|
|
422883
422883
|
type: "workingDir",
|
|
@@ -440429,7 +440429,7 @@ function getFilePermissionOptions({
|
|
|
440429
440429
|
const inGlobalClaudeFolder = isInGlobalClaudeFolder(filePath);
|
|
440430
440430
|
if ((inClaudeFolder || inGlobalClaudeFolder) && operationType !== "read") {
|
|
440431
440431
|
options.push({
|
|
440432
|
-
label: "Yes, and allow
|
|
440432
|
+
label: "Yes, and allow AtlasCode to edit its own settings for this session",
|
|
440433
440433
|
value: "yes.claude-folder",
|
|
440434
440434
|
option: {
|
|
440435
440435
|
type: "accept-session",
|
|
@@ -475739,7 +475739,7 @@ function REPL({
|
|
|
475739
475739
|
const [haikuTitle, setHaikuTitle] = import_react280.useState();
|
|
475740
475740
|
const haikuTitleAttemptedRef = import_react280.useRef((initialMessages?.length ?? 0) > 0);
|
|
475741
475741
|
const agentTitle = mainThreadAgentDefinition?.agentType;
|
|
475742
|
-
const terminalTitle = sessionTitle ?? agentTitle ?? haikuTitle ?? "
|
|
475742
|
+
const terminalTitle = sessionTitle ?? agentTitle ?? haikuTitle ?? "AtlasCode";
|
|
475743
475743
|
const isWaitingForApproval = toolUseConfirmQueue.length > 0 || promptQueue.length > 0 || pendingWorkerRequest || pendingSandboxRequest;
|
|
475744
475744
|
const isShowingLocalJSXCommand = toolJSX?.isLocalJSXCommand === true && toolJSX?.jsx != null;
|
|
475745
475745
|
const titleIsAnimating = isLoading && !isWaitingForApproval && !isShowingLocalJSXCommand;
|
|
@@ -477469,7 +477469,7 @@ ${fileList}`);
|
|
|
477469
477469
|
const idleTimeSinceResponse = Date.now() - lastQueryCompletionTime;
|
|
477470
477470
|
if (!isLoading && !toolJSX && focusedInputDialogRef.current === undefined && idleTimeSinceResponse >= getGlobalConfig().messageIdleNotifThresholdMs) {
|
|
477471
477471
|
sendNotification({
|
|
477472
|
-
message: "
|
|
477472
|
+
message: "AtlasCode is waiting for your input",
|
|
477473
477473
|
notificationType: "idle_prompt"
|
|
477474
477474
|
}, terminal);
|
|
477475
477475
|
}
|
|
@@ -477601,8 +477601,8 @@ ${fileList}`);
|
|
|
477601
477601
|
import_react280.useEffect(() => {
|
|
477602
477602
|
const handleSuspend = () => {
|
|
477603
477603
|
process.stdout.write(`
|
|
477604
|
-
|
|
477605
|
-
Note: ctrl + z now suspends
|
|
477604
|
+
AtlasCode has been suspended. Run \`fg\` to bring AtlasCode back.
|
|
477605
|
+
Note: ctrl + z now suspends AtlasCode, ctrl + _ undoes input.
|
|
477606
477606
|
`);
|
|
477607
477607
|
};
|
|
477608
477608
|
const handleResume = () => {
|
|
@@ -479365,7 +479365,7 @@ function PreflightStep(t0) {
|
|
|
479365
479365
|
children: [
|
|
479366
479366
|
/* @__PURE__ */ jsx_dev_runtime434.jsxDEV(ThemedText, {
|
|
479367
479367
|
color: "error",
|
|
479368
|
-
children: "Unable to connect to
|
|
479368
|
+
children: "Unable to connect to AtlasCode services"
|
|
479369
479369
|
}, undefined, false, undefined, this),
|
|
479370
479370
|
/* @__PURE__ */ jsx_dev_runtime434.jsxDEV(ThemedText, {
|
|
479371
479371
|
color: "error",
|
|
@@ -479615,7 +479615,7 @@ function WelcomeV2() {
|
|
|
479615
479615
|
if ($[0] !== theme) {
|
|
479616
479616
|
t0 = /* @__PURE__ */ jsx_dev_runtime436.jsxDEV(AppleTerminalWelcomeV2, {
|
|
479617
479617
|
theme,
|
|
479618
|
-
welcomeMessage: "Welcome to
|
|
479618
|
+
welcomeMessage: "Welcome to AtlasCode"
|
|
479619
479619
|
}, undefined, false, undefined, this);
|
|
479620
479620
|
$[0] = theme;
|
|
479621
479621
|
$[1] = t0;
|
|
@@ -479640,7 +479640,7 @@ function WelcomeV2() {
|
|
|
479640
479640
|
/* @__PURE__ */ jsx_dev_runtime436.jsxDEV(ThemedText, {
|
|
479641
479641
|
color: "brand",
|
|
479642
479642
|
children: [
|
|
479643
|
-
"Welcome to
|
|
479643
|
+
"Welcome to AtlasCode",
|
|
479644
479644
|
" "
|
|
479645
479645
|
]
|
|
479646
479646
|
}, undefined, true, undefined, this),
|
|
@@ -479840,7 +479840,7 @@ function WelcomeV2() {
|
|
|
479840
479840
|
/* @__PURE__ */ jsx_dev_runtime436.jsxDEV(ThemedText, {
|
|
479841
479841
|
color: "brand",
|
|
479842
479842
|
children: [
|
|
479843
|
-
"Welcome to
|
|
479843
|
+
"Welcome to AtlasCode",
|
|
479844
479844
|
" "
|
|
479845
479845
|
]
|
|
479846
479846
|
}, undefined, true, undefined, this),
|
|
@@ -481173,7 +481173,7 @@ function ModelSetup({
|
|
|
481173
481173
|
}, undefined, true, undefined, this);
|
|
481174
481174
|
}
|
|
481175
481175
|
return /* @__PURE__ */ jsx_dev_runtime440.jsxDEV(Dialog, {
|
|
481176
|
-
title: "
|
|
481176
|
+
title: "AtlasCode 模型配置",
|
|
481177
481177
|
subtitle: step === "preset" ? "选择模型提供方预设:" : "填写端点信息(Enter 下一字段,Esc 返回):",
|
|
481178
481178
|
color: "permission",
|
|
481179
481179
|
onCancel: handleCancel,
|
|
@@ -486896,7 +486896,7 @@ async function getDesktopConfigPath() {
|
|
|
486896
486896
|
throw new Error(`Unsupported platform: ${platform} - Claude Desktop integration only works on macOS and WSL.`);
|
|
486897
486897
|
}
|
|
486898
486898
|
if (platform === "macos") {
|
|
486899
|
-
return join183(homedir47(), "Library", "Application Support", "
|
|
486899
|
+
return join183(homedir47(), "Library", "Application Support", "AtlasCode", "claude_desktop_config.json");
|
|
486900
486900
|
}
|
|
486901
486901
|
const windowsHome = process.env.USERPROFILE ? process.env.USERPROFILE.replace(/\\/g, "/") : null;
|
|
486902
486902
|
if (windowsHome) {
|
|
@@ -486915,7 +486915,7 @@ async function getDesktopConfigPath() {
|
|
|
486915
486915
|
if (user.name === "Public" || user.name === "Default" || user.name === "Default User" || user.name === "All Users") {
|
|
486916
486916
|
continue;
|
|
486917
486917
|
}
|
|
486918
|
-
const potentialConfigPath = join183(usersDir, user.name, "AppData", "Roaming", "
|
|
486918
|
+
const potentialConfigPath = join183(usersDir, user.name, "AppData", "Roaming", "AtlasCode", "claude_desktop_config.json");
|
|
486919
486919
|
try {
|
|
486920
486920
|
await stat55(potentialConfigPath);
|
|
486921
486921
|
return potentialConfigPath;
|
|
@@ -488311,11 +488311,11 @@ function Install({
|
|
|
488311
488311
|
}, [force, target]);
|
|
488312
488312
|
import_react291.useEffect(() => {
|
|
488313
488313
|
if (state.type === "success") {
|
|
488314
|
-
setTimeout(onDone, 2000, "
|
|
488314
|
+
setTimeout(onDone, 2000, "AtlasCode installation completed successfully", {
|
|
488315
488315
|
display: "system"
|
|
488316
488316
|
});
|
|
488317
488317
|
} else if (state.type === "error") {
|
|
488318
|
-
setTimeout(onDone, 3000, "
|
|
488318
|
+
setTimeout(onDone, 3000, "AtlasCode installation failed", {
|
|
488319
488319
|
display: "system"
|
|
488320
488320
|
});
|
|
488321
488321
|
}
|
|
@@ -488335,7 +488335,7 @@ function Install({
|
|
|
488335
488335
|
state.type === "installing" && /* @__PURE__ */ jsx_dev_runtime449.jsxDEV(ThemedText, {
|
|
488336
488336
|
color: "brand",
|
|
488337
488337
|
children: [
|
|
488338
|
-
"Installing
|
|
488338
|
+
"Installing AtlasCode native build ",
|
|
488339
488339
|
state.version,
|
|
488340
488340
|
"..."
|
|
488341
488341
|
]
|
|
@@ -488360,7 +488360,7 @@ function Install({
|
|
|
488360
488360
|
/* @__PURE__ */ jsx_dev_runtime449.jsxDEV(ThemedText, {
|
|
488361
488361
|
color: "success",
|
|
488362
488362
|
bold: true,
|
|
488363
|
-
children: "
|
|
488363
|
+
children: "AtlasCode successfully installed!"
|
|
488364
488364
|
}, undefined, false, undefined, this)
|
|
488365
488365
|
]
|
|
488366
488366
|
}, undefined, true, undefined, this),
|
|
@@ -488470,7 +488470,7 @@ var init_install = __esm(() => {
|
|
|
488470
488470
|
install = {
|
|
488471
488471
|
type: "local-jsx",
|
|
488472
488472
|
name: "install",
|
|
488473
|
-
description: "Install
|
|
488473
|
+
description: "Install AtlasCode native build",
|
|
488474
488474
|
argumentHint: "[options]",
|
|
488475
488475
|
async call(onDone, _context, args) {
|
|
488476
488476
|
const force = args.includes("--force");
|
|
@@ -488921,7 +488921,7 @@ async function update() {
|
|
|
488921
488921
|
writeToStdout(`
|
|
488922
488922
|
`);
|
|
488923
488923
|
if (packageManager === "homebrew") {
|
|
488924
|
-
writeToStdout(`
|
|
488924
|
+
writeToStdout(`AtlasCode is managed by Homebrew.
|
|
488925
488925
|
`);
|
|
488926
488926
|
const latest = await getLatestVersion(channel);
|
|
488927
488927
|
if (latest && !gte(MACRO.VERSION, latest)) {
|
|
@@ -488934,7 +488934,7 @@ async function update() {
|
|
|
488934
488934
|
writeToStdout(source_default.bold(" brew upgrade atlas") + `
|
|
488935
488935
|
`);
|
|
488936
488936
|
} else {
|
|
488937
|
-
writeToStdout(`
|
|
488937
|
+
writeToStdout(`AtlasCode is up to date!
|
|
488938
488938
|
`);
|
|
488939
488939
|
}
|
|
488940
488940
|
} else if (packageManager === "winget") {
|
|
@@ -488948,14 +488948,14 @@ async function update() {
|
|
|
488948
488948
|
`);
|
|
488949
488949
|
writeToStdout(`To update, run:
|
|
488950
488950
|
`);
|
|
488951
|
-
writeToStdout(source_default.bold(" winget upgrade
|
|
488951
|
+
writeToStdout(source_default.bold(" winget upgrade AtlasCode") + `
|
|
488952
488952
|
`);
|
|
488953
488953
|
} else {
|
|
488954
|
-
writeToStdout(`
|
|
488954
|
+
writeToStdout(`AtlasCode is up to date!
|
|
488955
488955
|
`);
|
|
488956
488956
|
}
|
|
488957
488957
|
} else if (packageManager === "apk") {
|
|
488958
|
-
writeToStdout(`
|
|
488958
|
+
writeToStdout(`AtlasCode is managed by apk.
|
|
488959
488959
|
`);
|
|
488960
488960
|
const latest = await getLatestVersion(channel);
|
|
488961
488961
|
if (latest && !gte(MACRO.VERSION, latest)) {
|
|
@@ -488968,11 +488968,11 @@ async function update() {
|
|
|
488968
488968
|
writeToStdout(source_default.bold(" apk upgrade atlas") + `
|
|
488969
488969
|
`);
|
|
488970
488970
|
} else {
|
|
488971
|
-
writeToStdout(`
|
|
488971
|
+
writeToStdout(`AtlasCode is up to date!
|
|
488972
488972
|
`);
|
|
488973
488973
|
}
|
|
488974
488974
|
} else {
|
|
488975
|
-
writeToStdout(`
|
|
488975
|
+
writeToStdout(`AtlasCode is managed by a package manager.
|
|
488976
488976
|
`);
|
|
488977
488977
|
writeToStdout(`Please use your package manager to update.
|
|
488978
488978
|
`);
|
|
@@ -489015,7 +489015,7 @@ async function update() {
|
|
|
489015
489015
|
const result = await installLatest(channel, true);
|
|
489016
489016
|
if (result.lockFailed) {
|
|
489017
489017
|
const pidInfo = result.lockHolderPid ? ` (PID ${result.lockHolderPid})` : "";
|
|
489018
|
-
writeToStdout(source_default.yellow(`Another
|
|
489018
|
+
writeToStdout(source_default.yellow(`Another AtlasCode process${pidInfo} is currently running. Please try again in a moment.`) + `
|
|
489019
489019
|
`);
|
|
489020
489020
|
await gracefulShutdown(0);
|
|
489021
489021
|
}
|
|
@@ -489025,7 +489025,7 @@ async function update() {
|
|
|
489025
489025
|
await gracefulShutdown(1);
|
|
489026
489026
|
}
|
|
489027
489027
|
if (result.latestVersion === MACRO.VERSION) {
|
|
489028
|
-
writeToStdout(source_default.green(`
|
|
489028
|
+
writeToStdout(source_default.green(`AtlasCode is up to date (${MACRO.VERSION})`) + `
|
|
489029
489029
|
`);
|
|
489030
489030
|
} else {
|
|
489031
489031
|
writeToStdout(source_default.green(`Successfully updated from ${MACRO.VERSION} to version ${result.latestVersion}`) + `
|
|
@@ -489093,7 +489093,7 @@ async function update() {
|
|
|
489093
489093
|
await gracefulShutdown(1);
|
|
489094
489094
|
}
|
|
489095
489095
|
if (latestVersion === MACRO.VERSION) {
|
|
489096
|
-
writeToStdout(source_default.green(`
|
|
489096
|
+
writeToStdout(source_default.green(`AtlasCode is up to date (${MACRO.VERSION})`) + `
|
|
489097
489097
|
`);
|
|
489098
489098
|
await gracefulShutdown(0);
|
|
489099
489099
|
}
|
|
@@ -489377,7 +489377,7 @@ function initializeEntrypoint2(isNonInteractive) {
|
|
|
489377
489377
|
process.env.ATLAS_ENTRYPOINT = isNonInteractive ? "sdk-cli" : "cli";
|
|
489378
489378
|
}
|
|
489379
489379
|
async function main2() {
|
|
489380
|
-
process.stderr.write(`[
|
|
489380
|
+
process.stderr.write(`[AtlasCode] main() starting...
|
|
489381
489381
|
`);
|
|
489382
489382
|
profileCheckpoint("main_function_start");
|
|
489383
489383
|
process.env.NoDefaultCurrentDirectoryInExePath = "1";
|
|
@@ -489613,7 +489613,7 @@ async function run() {
|
|
|
489613
489613
|
profileCheckpoint("preAction_after_remote_settings");
|
|
489614
489614
|
profileCheckpoint("preAction_after_settings_sync");
|
|
489615
489615
|
});
|
|
489616
|
-
program.name("atlas").description(`
|
|
489616
|
+
program.name("atlas").description(`AtlasCode - starts an interactive session by default, use -p/--print for non-interactive output`).argument("[prompt]", "Your prompt", String).helpOption("-h, --help", "Display help for command").option("-d, --debug [filter]", 'Enable debug mode with optional category filtering (e.g., "api,hooks" or "!1p,!file")', (_value) => {
|
|
489617
489617
|
return true;
|
|
489618
489618
|
}).addOption(new Option("--debug-to-stderr", "Enable debug mode (to stderr)").argParser(Boolean).hideHelp()).option("--debug-file <path>", "Write debug logs to a specific file path (implicitly enables debug mode)", String).option("--verbose", "Override verbose mode setting from config", () => true).option("-p, --print", "Print response and exit (useful for pipes). Note: The workspace trust dialog is skipped when Claude is run with the -p mode. Only use this flag in directories you trust.", () => true).option("--bare", "Minimal mode: skip hooks, LSP, plugin sync, attribution, auto-memory, background prefetches, keychain reads, and ATLAS.md auto-discovery. Sets ATLAS_SIMPLE=1. Auth is strictly OPENAI_API_KEY or apiKeyHelper via --settings (OAuth and keychain are never read). 3P providers (Bedrock/Vertex/Foundry) use their own credentials. Skills still resolve via /skill-name. Explicitly provide context via: --system-prompt[-file], --append-system-prompt[-file], --add-dir (ATLAS.md dirs), --mcp-config, --settings, --agents, --plugin-dir.", () => true).addOption(new Option("--init", "Run Setup hooks with init trigger, then continue").hideHelp()).addOption(new Option("--init-only", "Run Setup and SessionStart:startup hooks, then exit").hideHelp()).addOption(new Option("--maintenance", "Run Setup hooks with maintenance trigger, then continue").hideHelp()).addOption(new Option("--output-format <format>", 'Output format (only works with --print): "text" (default), "json" (single result), or "stream-json" (realtime streaming)').choices(["text", "json", "stream-json"])).addOption(new Option("--json-schema <schema>", 'JSON Schema for structured output validation. Example: {"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}').argParser(String)).option("--include-hook-events", "Include all hook lifecycle events in the output stream (only works with --output-format=stream-json)", () => true).option("--include-partial-messages", "Include partial message chunks as they arrive (only works with --print and --output-format=stream-json)", () => true).addOption(new Option("--input-format <format>", 'Input format (only works with --print): "text" (default), or "stream-json" (realtime streaming input)').choices(["text", "stream-json"])).option("--mcp-debug", "[DEPRECATED. Use --debug instead] Enable MCP debug mode (shows MCP server errors)", () => true).option("--dangerously-skip-permissions", "Bypass all permission checks. Recommended only for sandboxes with no internet access.", () => true).option("--allow-dangerously-skip-permissions", "Enable bypassing all permission checks as an option, without it being enabled by default. Recommended only for sandboxes with no internet access.", () => true).addOption(new Option("--thinking <mode>", "Thinking mode: enabled (equivalent to adaptive), disabled").choices(["enabled", "adaptive", "disabled"]).hideHelp()).addOption(new Option("--max-thinking-tokens <tokens>", "[DEPRECATED. Use --thinking instead for newer models] Maximum number of thinking tokens (only works with --print)").argParser(Number).hideHelp()).addOption(new Option("--max-turns <turns>", "Maximum number of agentic turns in non-interactive mode. This will early exit the conversation after the specified number of turns. (only works with --print)").argParser(Number).hideHelp()).addOption(new Option("--task-budget <tokens>", "API-side task budget in tokens (output_config.task_budget)").argParser((value) => {
|
|
489619
489619
|
const tokens = Number(value);
|
|
@@ -489637,7 +489637,7 @@ async function run() {
|
|
|
489637
489637
|
process.env.ATLAS_SIMPLE = "1";
|
|
489638
489638
|
}
|
|
489639
489639
|
if (prompt === "code") {
|
|
489640
|
-
console.warn(source_default.yellow("Tip: You can launch
|
|
489640
|
+
console.warn(source_default.yellow("Tip: You can launch AtlasCode with just `atlas`"));
|
|
489641
489641
|
prompt = undefined;
|
|
489642
489642
|
}
|
|
489643
489643
|
if (prompt && typeof prompt === "string" && !/\s/.test(prompt) && prompt.length > 0) {}
|
|
@@ -490915,7 +490915,7 @@ ${inputPrompt}` : mergePrompt;
|
|
|
490915
490915
|
pendingHookMessages
|
|
490916
490916
|
}, renderAndRun);
|
|
490917
490917
|
}
|
|
490918
|
-
}).version(`${MACRO.VERSION} (
|
|
490918
|
+
}).version(`${MACRO.VERSION} (AtlasCode)`, "-v, --version", "Output the version number");
|
|
490919
490919
|
program.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
490920
490920
|
program.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
490921
490921
|
if (canUserConfigureAdvisor()) {
|
|
@@ -490955,7 +490955,7 @@ ${inputPrompt}` : mergePrompt;
|
|
|
490955
490955
|
return program;
|
|
490956
490956
|
}
|
|
490957
490957
|
const mcp = program.command("mcp").description("Configure and manage MCP servers").configureHelp(createSortedHelpConfig()).enablePositionalOptions();
|
|
490958
|
-
mcp.command("serve").description(`Start the
|
|
490958
|
+
mcp.command("serve").description(`Start the AtlasCode MCP server`).option("-d, --debug", "Enable debug mode", () => true).option("--verbose", "Override verbose mode setting from config", () => true).action(async ({
|
|
490959
490959
|
debug,
|
|
490960
490960
|
verbose
|
|
490961
490961
|
}) => {
|
|
@@ -490985,7 +490985,7 @@ ${inputPrompt}` : mergePrompt;
|
|
|
490985
490985
|
await Promise.resolve().then(() => init_mcp9());
|
|
490986
490986
|
await mcpAddJsonHandler2(name, json, options);
|
|
490987
490987
|
});
|
|
490988
|
-
mcp.command("add-from-claude-desktop").description("Import MCP servers from
|
|
490988
|
+
mcp.command("add-from-claude-desktop").description("Import MCP servers from AtlasCode Desktop (Mac and WSL only)").option("-s, --scope <scope>", "Configuration scope (local, user, or project)", "local").action(async (options) => {
|
|
490989
490989
|
await Promise.resolve().then(() => init_mcp9());
|
|
490990
490990
|
await mcpAddFromDesktopHandler(options);
|
|
490991
490991
|
});
|
|
@@ -490994,7 +490994,7 @@ ${inputPrompt}` : mergePrompt;
|
|
|
490994
490994
|
await mcpResetChoicesHandler();
|
|
490995
490995
|
});
|
|
490996
490996
|
if (feature("DIRECT_CONNECT")) {
|
|
490997
|
-
program.command("server").description("Start an
|
|
490997
|
+
program.command("server").description("Start an AtlasCode session server").option("--port <number>", "HTTP port", "0").option("--host <string>", "Bind address", "0.0.0.0").option("--auth-token <token>", "Bearer token for auth").option("--unix <path>", "Listen on a unix domain socket").option("--workspace <dir>", "Default working directory for sessions that do not specify cwd").option("--idle-timeout <ms>", "Idle timeout for detached sessions in ms (0 = never expire)", "600000").option("--max-sessions <n>", "Maximum concurrent sessions (0 = unlimited)", "32").action(async (opts) => {
|
|
490998
490998
|
const {
|
|
490999
490999
|
randomBytes
|
|
491000
491000
|
} = await import("crypto");
|
|
@@ -491099,7 +491099,7 @@ Runs Atlas on a remote Linux host. You don't need to install
|
|
|
491099
491099
|
await Promise.resolve().then(() => init_plugins());
|
|
491100
491100
|
await pluginListHandler(options);
|
|
491101
491101
|
});
|
|
491102
|
-
const marketplaceCmd = pluginCmd.command("marketplace").description("Manage
|
|
491102
|
+
const marketplaceCmd = pluginCmd.command("marketplace").description("Manage AtlasCode marketplaces").configureHelp(createSortedHelpConfig());
|
|
491103
491103
|
marketplaceCmd.command("add <source>").description("Add a marketplace from a URL, path, or GitHub repo").addOption(coworkOption()).option("--sparse <paths...>", "Limit checkout to specific directories via git sparse-checkout (for monorepos). Example: --sparse .atlas-plugin plugins").option("--scope <scope>", "Where to declare the marketplace: user (default), project, or local").action(async (source, options) => {
|
|
491104
491104
|
await Promise.resolve().then(() => init_plugins());
|
|
491105
491105
|
await marketplaceAddHandler(source, options);
|
package/package.json
CHANGED