@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.
Files changed (2) hide show
  1. package/dist/cli.js +106 -106
  2. 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()} (+${REPOSITORY_URL})`;
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 AtlasHarness. Please login again or contact your administrator." : TOKEN_REVOKED_ERROR_MESSAGE;
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 AtlasHarness. Please login again or contact your administrator." : OAUTH_ORG_NOT_ALLOWED_ERROR_MESSAGE;
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 AtlasHarness. Please run /login.";
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: `AtlasHarness requested permissions to write to ${path}, which contains a suspicious Windows path pattern that requires manual approval.`,
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: `AtlasHarness requested permissions to write to ${path}, but you haven't granted it yet.`,
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: `AtlasHarness requested permissions to edit ${path} which is a sensitive file.`,
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: `AtlasHarness requested permissions to use ${tool.name}, but you haven't granted it yet.`
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: `AtlasHarness requested permissions to read from ${path}, which appears to be a UNC path that could access network resources.`,
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: `AtlasHarness requested permissions to read from ${path}, which contains a suspicious Windows path pattern that requires manual approval.`,
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: `AtlasHarness requested permissions to read from ${path}, but you haven't granted it yet.`,
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: `AtlasHarness requested permissions to read from ${path}, but you haven't granted it yet.`,
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: `AtlasHarness requested permissions to use ${tool.name}, but you haven't granted it yet.`
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: `AtlasHarness requested permissions to write to ${path}, but you haven't granted it yet.`,
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: `AtlasHarness requested permissions to write to ${path}, but you haven't granted it yet.`,
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 = "Atlas-User (+https://github.com/vincentlau2046/AtlasCode)", fetchImpl = (url, init) => fetch(url, init), TOOL_RESULTS_SUBDIR2 = "tool-results";
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 AtlasHarness servers.`,
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 `AtlasHarness ${publicName}`;
130501
+ return `AtlasCode ${publicName}`;
130498
130502
  }
130499
- return `AtlasHarness (${model})`;
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 `AtlasCode/${MACRO.VERSION} (atlascode, ${process.env.ATLAS_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix}, +https://github.com/vincentlau2046/AtlasCode)`;
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 `AtlasCode/${MACRO.VERSION}${suffix} (+https://github.com/vincentlau2046/AtlasCode)`;
195867
+ return `${PRODUCT_NAME}/${getVersion()}${suffix} (${REPOSITORY_URL})`;
195869
195868
  }
195870
195869
  function getWebFetchUserAgent() {
195871
- return `Atlas-User (${getDefaultUserAgent()}; +https://github.com/vincentlau2046/AtlasCode)`;
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 AtlasHarness session (${holder.slice(0, 8)}…). Wait for that session to finish or run /exit there.`;
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: "AtlasHarness",
208327
+ title: "AtlasCode",
208328
208328
  version: MACRO.VERSION ?? "unknown",
208329
- description: "AtlasHarness agentic coding tool",
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 [AtlasHarness](${PRODUCT_URL})`;
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 [AtlasHarness](${PRODUCT_URL})`;
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 [AtlasHarness](${PRODUCT_URL}) (${atlasPercent}% ${promptCount}-shotted by ${shortModelName}${memSuffix})`;
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. AtlasHarness CLI requires a Posix shell environment. " + "Please ensure you have a valid shell installed and the SHELL environment variable set.";
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 AtlasHarness from an existing directory.`);
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}: AtlasHarness 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}: AtlasHarness 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.`;
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 AtlasHarness servers.`,
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 AtlasHarness",
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: "AtlasHarness will be able to read files in this directory and make edits when auto-accept edits is on."
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 AtlasHarness package: ${result.stderr}`);
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 AtlasHarness (${MACRO.VERSION}) needs an update.
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 AtlasHarness in WSL but using the Windows NPM installation from /mnt/c/.
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 AtlasHarness - treating as stale`);
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: `AtlasHarness symlink points to missing or invalid binary: ${target}`,
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 AtlasHarness binary`,
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: `AtlasHarness v${MACRO.VERSION}`,
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 AtlasHarness.");
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: "AtlasHarness"
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: "AtlasHarness"
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: "AtlasHarness"
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)("AtlasHarness")} ${color("inactive", userTheme)(`v${version}`)} `;
372122
- const compactBorderTitle = color("brand", userTheme)(" AtlasHarness ");
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 AtlasHarness account subscription token. Either unset ",
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 AtlasHarness Console key. Either unset ",
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. AtlasHarness 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.",
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>AtlasHarness Insights</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>AtlasHarness Insights</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: "AtlasHarness 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 AtlasHarness sessions",
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 AtlasHarness sessions",
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: `AtlasHarness requested permissions to write to ${path}, which contains a suspicious Windows path pattern that requires manual approval.`,
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: `AtlasHarness requested permissions to write to ${path}, but you haven't granted it yet.`,
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: `AtlasHarness requested permissions to edit ${path} which is a sensitive file.`,
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: `AtlasHarness requested permissions to use ${tool.name}, but you haven't granted it yet.`
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: `AtlasHarness requested permissions to read from ${path}, which appears to be a UNC path that could access network resources.`,
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: `AtlasHarness requested permissions to read from ${path}, which contains a suspicious Windows path pattern that requires manual approval.`,
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: `AtlasHarness requested permissions to read from ${path}, but you haven't granted it yet.`,
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: `AtlasHarness requested permissions to read from ${path}, but you haven't granted it yet.`,
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: `AtlasHarness requested permissions to use ${tool.name}, but you haven't granted it yet.`
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: `AtlasHarness requested permissions to write to ${path}, but you haven't granted it yet.`,
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: `AtlasHarness requested permissions to write to ${path}, but you haven't granted it yet.`,
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 AtlasHarness to edit its own settings for this session",
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 ?? "AtlasHarness";
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: "AtlasHarness is waiting for your input",
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
- AtlasHarness has been suspended. Run \`fg\` to bring AtlasHarness back.
477605
- Note: ctrl + z now suspends AtlasHarness, ctrl + _ undoes input.
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 AtlasHarness services"
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 AtlasHarness"
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 AtlasHarness",
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 AtlasHarness",
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: "AtlasHarness 模型配置",
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", "AtlasHarness", "claude_desktop_config.json");
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", "AtlasHarness", "claude_desktop_config.json");
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, "AtlasHarness installation completed successfully", {
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, "AtlasHarness installation failed", {
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 AtlasHarness native build ",
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: "AtlasHarness successfully installed!"
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 AtlasHarness native build",
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(`AtlasHarness is managed by Homebrew.
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(`AtlasHarness is up to date!
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 AtlasHarness") + `
488951
+ writeToStdout(source_default.bold(" winget upgrade AtlasCode") + `
488952
488952
  `);
488953
488953
  } else {
488954
- writeToStdout(`AtlasHarness is up to date!
488954
+ writeToStdout(`AtlasCode is up to date!
488955
488955
  `);
488956
488956
  }
488957
488957
  } else if (packageManager === "apk") {
488958
- writeToStdout(`AtlasHarness is managed by apk.
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(`AtlasHarness is up to date!
488971
+ writeToStdout(`AtlasCode is up to date!
488972
488972
  `);
488973
488973
  }
488974
488974
  } else {
488975
- writeToStdout(`AtlasHarness is managed by a package manager.
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 AtlasHarness process${pidInfo} is currently running. Please try again in a moment.`) + `
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(`AtlasHarness is up to date (${MACRO.VERSION})`) + `
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(`AtlasHarness is up to date (${MACRO.VERSION})`) + `
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(`[AtlasHarness] main() starting...
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(`AtlasHarness - 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) => {
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 AtlasHarness with just `atlas`"));
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} (AtlasHarness)`, "-v, --version", "Output the version number");
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 AtlasHarness MCP server`).option("-d, --debug", "Enable debug mode", () => true).option("--verbose", "Override verbose mode setting from config", () => true).action(async ({
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 AtlasHarness Desktop (Mac and WSL only)").option("-s, --scope <scope>", "Configuration scope (local, user, or project)", "local").action(async (options) => {
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 AtlasHarness 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) => {
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 AtlasHarness marketplaces").configureHelp(createSortedHelpConfig());
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlasharness/atlascode",
3
- "version": "0.1.28",
3
+ "version": "0.1.30",
4
4
  "description": "AtlasCode \u2014 Coding Agent for the domestic computing ecosystem (Ascend NPU + domestic LLM backends)",
5
5
  "bin": {
6
6
  "atlas": "dist/cli.js",