@ainative/cody-cli 0.2.6 → 0.2.7

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 +234 -234
  2. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -50167,7 +50167,7 @@ var init_windowsPaths = __esm(() => {
50167
50167
  if (checkPathExists(process.env.CLAUDE_CODE_GIT_BASH_PATH)) {
50168
50168
  return process.env.CLAUDE_CODE_GIT_BASH_PATH;
50169
50169
  }
50170
- console.error(`Claude Code was unable to find CLAUDE_CODE_GIT_BASH_PATH path "${process.env.CLAUDE_CODE_GIT_BASH_PATH}"`);
50170
+ console.error(`Cody was unable to find CLAUDE_CODE_GIT_BASH_PATH path "${process.env.CLAUDE_CODE_GIT_BASH_PATH}"`);
50171
50171
  process.exit(1);
50172
50172
  }
50173
50173
  const gitPath = findExecutable("git");
@@ -50177,7 +50177,7 @@ var init_windowsPaths = __esm(() => {
50177
50177
  return bashPath;
50178
50178
  }
50179
50179
  }
50180
- console.error("Claude Code on Windows requires git-bash (https://git-scm.com/downloads/win). If installed but not in PATH, set environment variable pointing to your bash.exe, similar to: CLAUDE_CODE_GIT_BASH_PATH=C:\\Program Files\\Git\\bin\\bash.exe");
50180
+ console.error("Cody on Windows requires git-bash (https://git-scm.com/downloads/win). If installed but not in PATH, set environment variable pointing to your bash.exe, similar to: CLAUDE_CODE_GIT_BASH_PATH=C:\\Program Files\\Git\\bin\\bash.exe");
50181
50181
  process.exit(1);
50182
50182
  });
50183
50183
  windowsPathToPosixPath = memoizeWithLRU((windowsPath) => {
@@ -52357,7 +52357,7 @@ var GIT_ROOT_NOT_FOUND, findGitRootImpl, findGitRoot, resolveCanonicalRoot, find
52357
52357
  return getWorktreeCountFromFs();
52358
52358
  }, stashToCleanState = async (message) => {
52359
52359
  try {
52360
- const stashMessage = message || `Claude Code auto-stash - ${new Date().toISOString()}`;
52360
+ const stashMessage = message || `Cody auto-stash - ${new Date().toISOString()}`;
52361
52361
  const { untracked } = await getFileStatus();
52362
52362
  if (untracked.length > 0) {
52363
52363
  const { code: addCode } = await execFileNoThrow(gitExe(), ["add", ...untracked], { preserveOutputOnError: false });
@@ -55238,7 +55238,7 @@ var init_coreSchemas = __esm(() => {
55238
55238
  subscriptionType: exports_external.string().optional(),
55239
55239
  tokenSource: exports_external.string().optional(),
55240
55240
  apiKeySource: exports_external.string().optional(),
55241
- apiProvider: exports_external.enum(["firstParty", "bedrock", "vertex", "foundry"]).optional().describe('Active API backend. Anthropic OAuth login only applies when "firstParty"; for 3P providers the other fields are absent and auth is external (AWS creds, gcloud ADC, etc.).')
55241
+ apiProvider: exports_external.enum(["firstParty", "bedrock", "vertex", "foundry"]).optional().describe('Active API backend. AINative OAuth login only applies when "firstParty"; for 3P providers the other fields are absent and auth is external (AWS creds, gcloud ADC, etc.).')
55242
55242
  }).describe("Information about the logged in user's account."));
55243
55243
  AgentMcpServerSpecSchema = lazySchema(() => exports_external.union([
55244
55244
  exports_external.string(),
@@ -55888,7 +55888,7 @@ function validateOfficialNameSource(name, source) {
55888
55888
  if (source.source === "github") {
55889
55889
  const repo = source.repo || "";
55890
55890
  if (!repo.toLowerCase().startsWith(`${OFFICIAL_GITHUB_ORG}/`)) {
55891
- return `The name '${name}' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/${OFFICIAL_GITHUB_ORG}/' can use this name.`;
55891
+ return `The name '${name}' is reserved for official AINative marketplaces. Only repositories from 'github.com/${OFFICIAL_GITHUB_ORG}/' can use this name.`;
55892
55892
  }
55893
55893
  return null;
55894
55894
  }
@@ -55899,9 +55899,9 @@ function validateOfficialNameSource(name, source) {
55899
55899
  if (isHttpsAnthropics || isSshAnthropics) {
55900
55900
  return null;
55901
55901
  }
55902
- return `The name '${name}' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/${OFFICIAL_GITHUB_ORG}/' can use this name.`;
55902
+ return `The name '${name}' is reserved for official AINative marketplaces. Only repositories from 'github.com/${OFFICIAL_GITHUB_ORG}/' can use this name.`;
55903
55903
  }
55904
- return `The name '${name}' is reserved for official Anthropic marketplaces and can only be used with GitHub sources from the '${OFFICIAL_GITHUB_ORG}' organization.`;
55904
+ return `The name '${name}' is reserved for official AINative marketplaces and can only be used with GitHub sources from the '${OFFICIAL_GITHUB_ORG}' organization.`;
55905
55905
  }
55906
55906
  function isLocalPluginSource(source) {
55907
55907
  return typeof source === "string" && source.startsWith("./");
@@ -56808,7 +56808,7 @@ var init_types3 = __esm(() => {
56808
56808
  allow: exports_external.array(PermissionRuleSchema()).optional().describe("List of permission rules for allowed operations"),
56809
56809
  deny: exports_external.array(PermissionRuleSchema()).optional().describe("List of permission rules for denied operations"),
56810
56810
  ask: exports_external.array(PermissionRuleSchema()).optional().describe("List of permission rules that should always prompt for confirmation"),
56811
- defaultMode: exports_external.enum(EXTERNAL_PERMISSION_MODES).optional().describe("Default permission mode when Claude Code needs access"),
56811
+ defaultMode: exports_external.enum(EXTERNAL_PERMISSION_MODES).optional().describe("Default permission mode when Cody needs access"),
56812
56812
  disableBypassPermissionsMode: exports_external.enum(["disable"]).optional().describe("Disable the ability to bypass permission prompts"),
56813
56813
  ...{},
56814
56814
  additionalDirectories: exports_external.array(exports_external.string()).optional().describe("Additional directories to include in the permission scope")
@@ -56853,7 +56853,7 @@ var init_types3 = __esm(() => {
56853
56853
  "mcp"
56854
56854
  ];
56855
56855
  SettingsSchema = lazySchema(() => exports_external.object({
56856
- $schema: exports_external.literal(CLAUDE_CODE_SETTINGS_SCHEMA_URL).optional().describe("JSON Schema reference for Claude Code settings"),
56856
+ $schema: exports_external.literal(CLAUDE_CODE_SETTINGS_SCHEMA_URL).optional().describe("JSON Schema reference for Cody settings"),
56857
56857
  apiKeyHelper: exports_external.string().optional().describe("Path to a script that outputs authentication values"),
56858
56858
  awsCredentialExport: exports_external.string().optional().describe("Path to a script that exports AWS credentials"),
56859
56859
  awsAuthRefresh: exports_external.string().optional().describe("Path to a script that refreshes AWS authentication"),
@@ -56861,7 +56861,7 @@ var init_types3 = __esm(() => {
56861
56861
  ...isEnvTruthy(process.env.CLAUDE_CODE_ENABLE_XAA) ? {
56862
56862
  xaaIdp: exports_external.object({
56863
56863
  issuer: exports_external.string().url().describe("IdP issuer URL for OIDC discovery"),
56864
- clientId: exports_external.string().describe("Claude Code's client_id registered at the IdP"),
56864
+ clientId: exports_external.string().describe("Cody's client_id registered at the IdP"),
56865
56865
  callbackPort: exports_external.number().int().positive().optional().describe("Fixed loopback callback port for the IdP OIDC login. " + "Only needed if the IdP does not honor RFC 8252 port-any matching.")
56866
56866
  }).optional().describe("XAA (SEP-990) IdP connection. Configure once; all XAA-enabled MCP servers reuse this.")
56867
56867
  } : {},
@@ -56871,15 +56871,15 @@ var init_types3 = __esm(() => {
56871
56871
  }).optional().describe("Custom file suggestion configuration for @ mentions"),
56872
56872
  respectGitignore: exports_external.boolean().optional().describe("Whether file picker should respect .gitignore files (default: true). " + "Note: .ignore files are always respected."),
56873
56873
  cleanupPeriodDays: exports_external.number().nonnegative().int().optional().describe("Number of days to retain chat transcripts (default: 30). Setting to 0 disables session persistence entirely: no transcripts are written and existing transcripts are deleted at startup."),
56874
- env: EnvironmentVariablesSchema().optional().describe("Environment variables to set for Claude Code sessions"),
56874
+ env: EnvironmentVariablesSchema().optional().describe("Environment variables to set for Cody sessions"),
56875
56875
  attribution: exports_external.object({
56876
56876
  commit: exports_external.string().optional().describe("Attribution text for git commits, including any trailers. " + "Empty string hides attribution."),
56877
56877
  pr: exports_external.string().optional().describe("Attribution text for pull request descriptions. " + "Empty string hides attribution.")
56878
- }).optional().describe("Customize attribution text for commits and PRs. " + "Each field defaults to the standard Claude Code attribution if not set."),
56878
+ }).optional().describe("Customize attribution text for commits and PRs. " + "Each field defaults to the standard Cody attribution if not set."),
56879
56879
  includeCoAuthoredBy: exports_external.boolean().optional().describe("Deprecated: Use attribution instead. " + "Whether to include Claude's co-authored by attribution in commits and PRs (defaults to true)"),
56880
56880
  includeGitInstructions: exports_external.boolean().optional().describe("Include built-in commit and PR workflow instructions in Claude's system prompt (default: true)"),
56881
56881
  permissions: PermissionsSchema().optional().describe("Tool usage permissions configuration"),
56882
- model: exports_external.string().optional().describe("Override the default model used by Claude Code"),
56882
+ model: exports_external.string().optional().describe("Override the default model used by Cody"),
56883
56883
  availableModels: exports_external.array(exports_external.string()).optional().describe("Allowlist of models that users can select. " + 'Accepts family aliases ("opus" allows any opus version), ' + 'version prefixes ("opus-4-5" allows only that version), ' + "and full model IDs. " + "If undefined, all models are available. If empty array, only the default model is available. " + "Typically set in managed settings by enterprise administrators."),
56884
56884
  modelOverrides: exports_external.record(exports_external.string(), exports_external.string()).optional().describe('Override mapping from Anthropic model ID (e.g. "claude-opus-4-6") to provider-specific ' + "model ID (e.g. a Bedrock inference profile ARN). Typically set in managed settings by " + "enterprise administrators."),
56885
56885
  enableAllProjectMcpServers: exports_external.boolean().optional().describe("Whether to automatically approve all MCP servers in the project"),
@@ -56977,7 +56977,7 @@ var init_types3 = __esm(() => {
56977
56977
  allowedChannelPlugins: exports_external.array(exports_external.object({
56978
56978
  marketplace: exports_external.string(),
56979
56979
  plugin: exports_external.string()
56980
- })).optional().describe("Teams/Enterprise allowlist of channel plugins. When set, " + "replaces the default Anthropic allowlist \u2014 admins decide which " + "plugins may push inbound messages. Undefined falls back to the default. " + "Requires channelsEnabled: true."),
56980
+ })).optional().describe("Teams/Enterprise allowlist of channel plugins. When set, " + "replaces the default AINative allowlist \u2014 admins decide which " + "plugins may push inbound messages. Undefined falls back to the default. " + "Requires channelsEnabled: true."),
56981
56981
  ...{},
56982
56982
  prefersReducedMotion: exports_external.boolean().optional().describe("Reduce or disable animations for accessibility (spinner shimmer, flash effects, etc.)"),
56983
56983
  autoMemoryEnabled: exports_external.boolean().optional().describe("Enable auto-memory for this project. When false, Claude will not read from or write to the auto-memory directory."),
@@ -103311,7 +103311,7 @@ function getMacOsKeychainStorageServiceName(serviceSuffix = "") {
103311
103311
  const configDir = getClaudeConfigHomeDir();
103312
103312
  const isDefaultDir = !process.env.CLAUDE_CONFIG_DIR;
103313
103313
  const dirHash = isDefaultDir ? "" : `-${createHash3("sha256").update(configDir).digest("hex").substring(0, 8)}`;
103314
- return `Claude Code${getOauthConfig().OAUTH_FILE_SUFFIX}${serviceSuffix}${dirHash}`;
103314
+ return `Cody${getOauthConfig().OAUTH_FILE_SUFFIX}${serviceSuffix}${dirHash}`;
103315
103315
  }
103316
103316
  function getUsername() {
103317
103317
  try {
@@ -199681,7 +199681,7 @@ var init_prompt5 = __esm(() => {
199681
199681
  // src/tools/AgentTool/built-in/claudeCodeGuideAgent.ts
199682
199682
  function getClaudeCodeGuideBasePrompt() {
199683
199683
  const localSearchHint = hasEmbeddedSearchTools() ? `${FILE_READ_TOOL_NAME}, \`find\`, and \`grep\`` : `${FILE_READ_TOOL_NAME}, ${GLOB_TOOL_NAME}, and ${GREP_TOOL_NAME}`;
199684
- return `You are the Claude guide agent. Your primary responsibility is helping users understand and use Cody CLI, the Claude Agent SDK, and the Claude API (formerly the Anthropic API) effectively.
199684
+ return `You are the Claude guide agent. Your primary responsibility is helping users understand and use Cody CLI, the Claude Agent SDK, and the Claude API (formerly the AINative API) effectively.
199685
199685
 
199686
199686
  **Your expertise spans three domains:**
199687
199687
 
@@ -199689,7 +199689,7 @@ function getClaudeCodeGuideBasePrompt() {
199689
199689
 
199690
199690
  2. **Claude Agent SDK**: A framework for building custom AI agents based on Cody CLI technology. Available for Node.js/TypeScript and Python.
199691
199691
 
199692
- 3. **Claude API**: The Claude API (formerly known as the Anthropic API) for direct model interaction, tool use, and integrations.
199692
+ 3. **Claude API**: The Claude API (formerly known as the AINative API) for direct model interaction, tool use, and integrations.
199693
199693
 
199694
199694
  **Documentation sources:**
199695
199695
 
@@ -199713,7 +199713,7 @@ function getClaudeCodeGuideBasePrompt() {
199713
199713
  - Cost tracking and context management
199714
199714
  Note: Agent SDK docs are part of the Claude API documentation at the same URL.
199715
199715
 
199716
- - **Claude API docs** (${CDP_DOCS_MAP_URL}): Fetch this for questions about the Claude API (formerly the Anthropic API), including:
199716
+ - **Claude API docs** (${CDP_DOCS_MAP_URL}): Fetch this for questions about the Claude API (formerly the AINative API), including:
199717
199717
  - Messages API and streaming
199718
199718
  - Tool use (function calling) and Anthropic-defined tools (computer use, code execution, web search, text editor, bash, programmatic tool calling, tool search tool, context editing, Files API, structured outputs)
199719
199719
  - Vision, PDF support, and citations
@@ -216403,7 +216403,7 @@ function getWarningUpsellText(rateLimitType) {
216403
216403
  return null;
216404
216404
  }
216405
216405
  if (subscriptionType === "pro" || subscriptionType === "max") {
216406
- return "/upgrade to keep using Claude Code";
216406
+ return "/upgrade to keep using Cody";
216407
216407
  }
216408
216408
  }
216409
216409
  if (rateLimitType === "overage") {
@@ -216997,7 +216997,7 @@ function logSuggestionSuppressed(reason, suggestion, promptId, source) {
216997
216997
  ...false
216998
216998
  });
216999
216999
  }
217000
- var currentAbortController = null, MAX_PARENT_UNCACHED_TOKENS = 1e4, SUGGESTION_PROMPT = `[SUGGESTION MODE: Suggest what the user might naturally type next into Claude Code.]
217000
+ var currentAbortController = null, MAX_PARENT_UNCACHED_TOKENS = 1e4, SUGGESTION_PROMPT = `[SUGGESTION MODE: Suggest what the user might naturally type next into Cody.]
217001
217001
 
217002
217002
  FIRST: Look at the user's recent messages and original request.
217003
217003
 
@@ -220201,7 +220201,7 @@ function validateCommandPaths(command12, args, cwd2, toolPermissionContext, comp
220201
220201
  if (validator && !validator(args)) {
220202
220202
  return {
220203
220203
  behavior: "ask",
220204
- message: `${command12} with flags requires manual approval to ensure path safety. For security, Claude Code cannot automatically validate ${command12} commands that use flags, as some flags like --target-directory=PATH can bypass path validation.`,
220204
+ message: `${command12} with flags requires manual approval to ensure path safety. For security, Cody cannot automatically validate ${command12} commands that use flags, as some flags like --target-directory=PATH can bypass path validation.`,
220205
220205
  decisionReason: {
220206
220206
  type: "other",
220207
220207
  reason: `${command12} command with flags requires manual approval`
@@ -220211,7 +220211,7 @@ function validateCommandPaths(command12, args, cwd2, toolPermissionContext, comp
220211
220211
  if (compoundCommandHasCd && operationType !== "read") {
220212
220212
  return {
220213
220213
  behavior: "ask",
220214
- message: `Commands that change directories and perform write operations require explicit approval to ensure paths are evaluated correctly. For security, Claude Code cannot automatically determine the final working directory when 'cd' is used in compound commands.`,
220214
+ message: `Commands that change directories and perform write operations require explicit approval to ensure paths are evaluated correctly. For security, Cody cannot automatically determine the final working directory when 'cd' is used in compound commands.`,
220215
220215
  decisionReason: {
220216
220216
  type: "other",
220217
220217
  reason: "Compound command contains cd with write operation - manual approval required to prevent path resolution bypass"
@@ -220223,7 +220223,7 @@ function validateCommandPaths(command12, args, cwd2, toolPermissionContext, comp
220223
220223
  if (!allowed) {
220224
220224
  const workingDirs = Array.from(allWorkingDirectories(toolPermissionContext));
220225
220225
  const dirListStr = formatDirectoryList(workingDirs);
220226
- const message = decisionReason?.type === "other" || decisionReason?.type === "safetyCheck" ? decisionReason.reason : `${command12} in '${resolvedPath5}' was blocked. For security, Claude Code may only ${ACTION_VERBS[command12]} the allowed working directories for this session: ${dirListStr}.`;
220226
+ const message = decisionReason?.type === "other" || decisionReason?.type === "safetyCheck" ? decisionReason.reason : `${command12} in '${resolvedPath5}' was blocked. For security, Cody may only ${ACTION_VERBS[command12]} the allowed working directories for this session: ${dirListStr}.`;
220227
220227
  if (decisionReason?.type === "rule") {
220228
220228
  return {
220229
220229
  behavior: "deny",
@@ -220348,7 +220348,7 @@ function validateOutputRedirections(redirections, cwd2, toolPermissionContext, c
220348
220348
  if (compoundCommandHasCd && redirections.length > 0) {
220349
220349
  return {
220350
220350
  behavior: "ask",
220351
- message: `Commands that change directories and write via output redirection require explicit approval to ensure paths are evaluated correctly. For security, Claude Code cannot automatically determine the final working directory when 'cd' is used in compound commands.`,
220351
+ message: `Commands that change directories and write via output redirection require explicit approval to ensure paths are evaluated correctly. For security, Cody cannot automatically determine the final working directory when 'cd' is used in compound commands.`,
220352
220352
  decisionReason: {
220353
220353
  type: "other",
220354
220354
  reason: "Compound command contains cd with output redirection - manual approval required to prevent path resolution bypass"
@@ -220363,7 +220363,7 @@ function validateOutputRedirections(redirections, cwd2, toolPermissionContext, c
220363
220363
  if (!allowed) {
220364
220364
  const workingDirs = Array.from(allWorkingDirectories(toolPermissionContext));
220365
220365
  const dirListStr = formatDirectoryList(workingDirs);
220366
- const message = decisionReason?.type === "other" || decisionReason?.type === "safetyCheck" ? decisionReason.reason : decisionReason?.type === "rule" ? `Output redirection to '${resolvedPath5}' was blocked by a deny rule.` : `Output redirection to '${resolvedPath5}' was blocked. For security, Claude Code may only write to files in the allowed working directories for this session: ${dirListStr}.`;
220366
+ const message = decisionReason?.type === "other" || decisionReason?.type === "safetyCheck" ? decisionReason.reason : decisionReason?.type === "rule" ? `Output redirection to '${resolvedPath5}' was blocked by a deny rule.` : `Output redirection to '${resolvedPath5}' was blocked. For security, Cody may only write to files in the allowed working directories for this session: ${dirListStr}.`;
220367
220367
  if (decisionReason?.type === "rule") {
220368
220368
  return {
220369
220369
  behavior: "deny",
@@ -245586,7 +245586,7 @@ async function performMCPOAuthFlow(serverName, serverConfig, onAuthorizationUrl,
245586
245586
  }
245587
245587
  if (code) {
245588
245588
  res.writeHead(200, { "Content-Type": "text/html" });
245589
- res.end(`<h1>Authentication Successful</h1><p>You can close this window. Return to Claude Code.</p>`);
245589
+ res.end(`<h1>Authentication Successful</h1><p>You can close this window. Return to Cody.</p>`);
245590
245590
  cleanup();
245591
245591
  resolveOnce(code);
245592
245592
  }
@@ -245752,7 +245752,7 @@ class ClaudeAuthProvider {
245752
245752
  }
245753
245753
  get clientMetadata() {
245754
245754
  const metadata = {
245755
- client_name: `Claude Code (${this.serverName})`,
245755
+ client_name: `Cody (${this.serverName})`,
245756
245756
  redirect_uris: [this.redirectUri],
245757
245757
  grant_types: ["authorization_code", "refresh_token"],
245758
245758
  response_types: ["code"],
@@ -248329,7 +248329,7 @@ function IdeOnboardingDialog(t0) {
248329
248329
  t5,
248330
248330
  /* @__PURE__ */ jsx_dev_runtime37.jsxDEV(ThemedText, {
248331
248331
  children: [
248332
- "Welcome to Claude Code for ",
248332
+ "Welcome to Cody for ",
248333
248333
  ideName
248334
248334
  ]
248335
248335
  }, undefined, true, undefined, this)
@@ -248383,7 +248383,7 @@ function IdeOnboardingDialog(t0) {
248383
248383
  if ($3[13] === Symbol.for("react.memo_cache_sentinel")) {
248384
248384
  t11 = /* @__PURE__ */ jsx_dev_runtime37.jsxDEV(ThemedText, {
248385
248385
  children: [
248386
- "\u2022 Review Claude Code's changes",
248386
+ "\u2022 Review Cody's changes",
248387
248387
  " ",
248388
248388
  t10,
248389
248389
  " ",
@@ -251580,7 +251580,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
251580
251580
  const transport = new SdkControlClientTransport(name3, sendMcpMessage);
251581
251581
  const client15 = new Client5({
251582
251582
  name: "claude-code",
251583
- title: "Claude Code",
251583
+ title: "Cody",
251584
251584
  version: "0.1.0",
251585
251585
  description: "Anthropic's agentic coding tool",
251586
251586
  websiteUrl: PRODUCT_URL
@@ -251934,7 +251934,7 @@ var init_client19 = __esm(() => {
251934
251934
  }
251935
251935
  const client15 = new Client5({
251936
251936
  name: "claude-code",
251937
- title: "Claude Code",
251937
+ title: "Cody",
251938
251938
  version: "0.1.0",
251939
251939
  description: "Anthropic's agentic coding tool",
251940
251940
  websiteUrl: PRODUCT_URL
@@ -252725,7 +252725,7 @@ function hookSourceDescriptionDisplayString(source) {
252725
252725
  case "sessionHook":
252726
252726
  return "Session hooks (in-memory, temporary)";
252727
252727
  case "builtinHook":
252728
- return "Built-in hooks (registered internally by Claude Code)";
252728
+ return "Built-in hooks (registered internally by Cody)";
252729
252729
  default:
252730
252730
  return source;
252731
252731
  }
@@ -260286,7 +260286,7 @@ function ManagedSettingsSecurityDialog(t0) {
260286
260286
  label: "Yes, I trust these settings",
260287
260287
  value: "accept"
260288
260288
  }, {
260289
- label: "No, exit Claude Code",
260289
+ label: "No, exit Cody",
260290
260290
  value: "exit"
260291
260291
  }];
260292
260292
  $3[11] = t15;
@@ -300092,7 +300092,7 @@ async function call() {
300092
300092
  clearOnboarding: true
300093
300093
  });
300094
300094
  const message = /* @__PURE__ */ jsx_dev_runtime60.jsxDEV(ThemedText, {
300095
- children: "Successfully logged out from your Anthropic account."
300095
+ children: "Successfully logged out from your AINative account."
300096
300096
  }, undefined, false, undefined, this);
300097
300097
  setTimeout(() => {
300098
300098
  gracefulShutdownSync(0, "logout");
@@ -300862,7 +300862,7 @@ async function installGlobalPackage(specificVersion) {
300862
300862
  console.error(`
300863
300863
  Error: Windows NPM detected in WSL
300864
300864
 
300865
- You're running Claude Code in WSL but using the Windows NPM installation from /mnt/c/.
300865
+ You're running Cody in WSL but using the Windows NPM installation from /mnt/c/.
300866
300866
  This configuration is not supported for updates.
300867
300867
 
300868
300868
  To fix this issue:
@@ -303634,7 +303634,7 @@ async function authLogout() {
303634
303634
  `);
303635
303635
  process.exit(1);
303636
303636
  }
303637
- process.stdout.write(`Successfully logged out from your Anthropic account.
303637
+ process.stdout.write(`Successfully logged out from your AINative account.
303638
303638
  `);
303639
303639
  process.exit(0);
303640
303640
  }
@@ -303762,7 +303762,7 @@ async function isAppleTerminalBellDisabled() {
303762
303762
  return false;
303763
303763
  }
303764
303764
  }
303765
- var DEFAULT_TITLE = "Claude Code";
303765
+ var DEFAULT_TITLE = "Cody";
303766
303766
  var init_notifier = __esm(() => {
303767
303767
  init_config8();
303768
303768
  init_env();
@@ -311322,7 +311322,7 @@ function ConsoleOAuthFlow({
311322
311322
  state: "success"
311323
311323
  });
311324
311324
  sendNotification({
311325
- message: "Claude Code login successful",
311325
+ message: "Cody login successful",
311326
311326
  notificationType: "auth_success"
311327
311327
  }, terminal);
311328
311328
  }
@@ -311483,7 +311483,7 @@ function OAuthStatusMessage(t0) {
311483
311483
  } = t0;
311484
311484
  switch (oauthStatus.state) {
311485
311485
  case "idle": {
311486
- const t1 = startingMessage ? startingMessage : "Claude Code can be used with your Claude subscription or billed based on API usage through your Console account.";
311486
+ const t1 = startingMessage ? startingMessage : "Cody can be used with your Claude subscription or billed based on API usage through your Console account.";
311487
311487
  let t22;
311488
311488
  if ($3[0] !== t1) {
311489
311489
  t22 = /* @__PURE__ */ jsx_dev_runtime71.jsxDEV(ThemedText, {
@@ -311635,7 +311635,7 @@ function OAuthStatusMessage(t0) {
311635
311635
  let t32;
311636
311636
  if ($3[13] === Symbol.for("react.memo_cache_sentinel")) {
311637
311637
  t22 = /* @__PURE__ */ jsx_dev_runtime71.jsxDEV(ThemedText, {
311638
- children: "Claude Code supports Amazon Bedrock, Microsoft Foundry, and Vertex AI. Set the required environment variables, then restart Claude Code."
311638
+ children: "Cody supports Amazon Bedrock, Microsoft Foundry, and Vertex AI. Set the required environment variables, then restart Cody."
311639
311639
  }, undefined, false, undefined, this);
311640
311640
  t32 = /* @__PURE__ */ jsx_dev_runtime71.jsxDEV(ThemedText, {
311641
311641
  children: "If you are part of an enterprise organization, contact your administrator for setup instructions."
@@ -311841,7 +311841,7 @@ function OAuthStatusMessage(t0) {
311841
311841
  children: [
311842
311842
  /* @__PURE__ */ jsx_dev_runtime71.jsxDEV(Spinner, {}, undefined, false, undefined, this),
311843
311843
  /* @__PURE__ */ jsx_dev_runtime71.jsxDEV(ThemedText, {
311844
- children: "Creating API key for Claude Code\u2026"
311844
+ children: "Creating API key for Cody\u2026"
311845
311845
  }, undefined, false, undefined, this)
311846
311846
  ]
311847
311847
  }, undefined, true, undefined, this)
@@ -312247,7 +312247,7 @@ async function axiosGetWithRetry(url3, config8) {
312247
312247
  async function prepareApiRequest() {
312248
312248
  const accessToken = getClaudeAIOAuthTokens()?.accessToken;
312249
312249
  if (accessToken === undefined) {
312250
- throw new Error("Claude Code web sessions require authentication with a Claude.ai account. API key authentication is not sufficient. Please run /login to authenticate, or check your authentication status with /status.");
312250
+ throw new Error("Cody web sessions require authentication with a Claude.ai account. API key authentication is not sufficient. Please run /login to authenticate, or check your authentication status with /status.");
312251
312251
  }
312252
312252
  const orgUUID = await getOrganizationUUID();
312253
312253
  if (!orgUUID) {
@@ -323874,7 +323874,7 @@ NOTE: You just closed out 3+ tasks and none of them was a verification step. Bef
323874
323874
  async function fetchEnvironments() {
323875
323875
  const accessToken = getClaudeAIOAuthTokens()?.accessToken;
323876
323876
  if (!accessToken) {
323877
- throw new Error("Claude Code web sessions require authentication with a Claude.ai account. API key authentication is not sufficient. Please run /login to authenticate, or check your authentication status with /status.");
323877
+ throw new Error("Cody web sessions require authentication with a Claude.ai account. API key authentication is not sufficient. Please run /login to authenticate, or check your authentication status with /status.");
323878
323878
  }
323879
323879
  const orgUUID = await getOrganizationUUID();
323880
323880
  if (!orgUUID) {
@@ -324342,7 +324342,7 @@ function TeleportError(t0) {
324342
324342
  }, undefined, false, undefined, this),
324343
324343
  /* @__PURE__ */ jsx_dev_runtime117.jsxDEV(ThemedText, {
324344
324344
  dimColor: true,
324345
- children: "Your Claude Pro/Max subscription will be used by Claude Code."
324345
+ children: "Your Claude Pro/Max subscription will be used by Cody."
324346
324346
  }, undefined, false, undefined, this)
324347
324347
  ]
324348
324348
  }, undefined, true, undefined, this);
@@ -327966,7 +327966,7 @@ async function teleportResumeCodeSession(sessionId, onProgress) {
327966
327966
  logEvent("tengu_teleport_resume_error", {
327967
327967
  error_type: "no_access_token"
327968
327968
  });
327969
- throw new Error("Claude Code web sessions require authentication with a Claude.ai account. API key authentication is not sufficient. Please run /login to authenticate, or check your authentication status with /status.");
327969
+ throw new Error("Cody web sessions require authentication with a Claude.ai account. API key authentication is not sufficient. Please run /login to authenticate, or check your authentication status with /status.");
327970
327970
  }
327971
327971
  const orgUUID = await getOrganizationUUID();
327972
327972
  if (!orgUUID) {
@@ -328095,7 +328095,7 @@ async function teleportFromSessionsAPI(sessionId, orgUUID, accessToken, onProgre
328095
328095
  sessionId
328096
328096
  });
328097
328097
  throw new TeleportOperationError(`${sessionId} not found.`, `${sessionId} not found.
328098
- ${source_default.dim("Run /status in Claude Code to check your account.")}`);
328098
+ ${source_default.dim("Run /status in Cody to check your account.")}`);
328099
328099
  }
328100
328100
  logError2(err2);
328101
328101
  throw new Error(`Failed to fetch session from Sessions API: ${err2.message}`);
@@ -334936,7 +334936,7 @@ Output truncated (${sizeKB}KB total). Full output saved to: ${this.path}`;
334936
334936
  } catch (err2) {
334937
334937
  const code = err2 instanceof Error && "code" in err2 ? String(err2.code) : "unknown";
334938
334938
  logForDebugging(`TaskOutput.#readStdoutFromFile: failed to read ${this.path} (${code}): ${err2}`);
334939
- return `<bash output unavailable: output file ${this.path} could not be read (${code}). This usually means another Claude Code process in the same project deleted it during startup cleanup.>`;
334939
+ return `<bash output unavailable: output file ${this.path} could not be read (${code}). This usually means another Cody process in the same project deleted it during startup cleanup.>`;
334940
334940
  }
334941
334941
  }
334942
334942
  getStderr() {
@@ -335332,7 +335332,7 @@ var LITERAL_BACKSLASH = "\\", SNAPSHOT_CREATION_TIMEOUT = 1e4, VCS_DIRECTORIES_T
335332
335332
  logForDebugging(`Looking for shell config file: ${configFile}`);
335333
335333
  const configFileExists = await pathExists(configFile);
335334
335334
  if (!configFileExists) {
335335
- logForDebugging(`Shell config file not found: ${configFile}, creating snapshot with Claude Code defaults only`);
335335
+ logForDebugging(`Shell config file not found: ${configFile}, creating snapshot with Cody defaults only`);
335336
335336
  }
335337
335337
  const timestamp = Date.now();
335338
335338
  const randomId = Math.random().toString(36).substring(2, 8);
@@ -339622,7 +339622,7 @@ function checkPathConstraintsForStatement(statement, toolPermissionContext, comp
339622
339622
  const canonical = resolveToCanonical(cmd.name);
339623
339623
  const workingDirs = Array.from(allWorkingDirectories(toolPermissionContext));
339624
339624
  const dirListStr = formatDirectoryList2(workingDirs);
339625
- const message = decisionReason?.type === "other" || decisionReason?.type === "safetyCheck" ? decisionReason.reason : `${canonical} targeting '${resolvedPath5}' was blocked. For security, Claude Code may only access files in the allowed working directories for this session: ${dirListStr}.`;
339625
+ const message = decisionReason?.type === "other" || decisionReason?.type === "safetyCheck" ? decisionReason.reason : `${canonical} targeting '${resolvedPath5}' was blocked. For security, Cody may only access files in the allowed working directories for this session: ${dirListStr}.`;
339626
339626
  if (decisionReason?.type === "rule") {
339627
339627
  return {
339628
339628
  behavior: "deny",
@@ -339693,7 +339693,7 @@ function checkPathConstraintsForStatement(statement, toolPermissionContext, comp
339693
339693
  const canonical = resolveToCanonical(cmd.name);
339694
339694
  const workingDirs = Array.from(allWorkingDirectories(toolPermissionContext));
339695
339695
  const dirListStr = formatDirectoryList2(workingDirs);
339696
- const message = decisionReason?.type === "other" || decisionReason?.type === "safetyCheck" ? decisionReason.reason : `${canonical} targeting '${resolvedPath5}' was blocked. For security, Claude Code may only access files in the allowed working directories for this session: ${dirListStr}.`;
339696
+ const message = decisionReason?.type === "other" || decisionReason?.type === "safetyCheck" ? decisionReason.reason : `${canonical} targeting '${resolvedPath5}' was blocked. For security, Cody may only access files in the allowed working directories for this session: ${dirListStr}.`;
339697
339697
  if (decisionReason?.type === "rule") {
339698
339698
  return {
339699
339699
  behavior: "deny",
@@ -339754,7 +339754,7 @@ function checkPathConstraintsForStatement(statement, toolPermissionContext, comp
339754
339754
  if (!allowed) {
339755
339755
  const workingDirs = Array.from(allWorkingDirectories(toolPermissionContext));
339756
339756
  const dirListStr = formatDirectoryList2(workingDirs);
339757
- const message = decisionReason?.type === "other" || decisionReason?.type === "safetyCheck" ? decisionReason.reason : `Output redirection to '${resolvedPath5}' was blocked. For security, Claude Code may only write to files in the allowed working directories for this session: ${dirListStr}.`;
339757
+ const message = decisionReason?.type === "other" || decisionReason?.type === "safetyCheck" ? decisionReason.reason : `Output redirection to '${resolvedPath5}' was blocked. For security, Cody may only write to files in the allowed working directories for this session: ${dirListStr}.`;
339758
339758
  if (decisionReason?.type === "rule") {
339759
339759
  return {
339760
339760
  behavior: "deny",
@@ -339792,7 +339792,7 @@ function checkPathConstraintsForStatement(statement, toolPermissionContext, comp
339792
339792
  if (!allowed) {
339793
339793
  const workingDirs = Array.from(allWorkingDirectories(toolPermissionContext));
339794
339794
  const dirListStr = formatDirectoryList2(workingDirs);
339795
- const message = decisionReason?.type === "other" || decisionReason?.type === "safetyCheck" ? decisionReason.reason : `Output redirection to '${resolvedPath5}' was blocked. For security, Claude Code may only write to files in the allowed working directories for this session: ${dirListStr}.`;
339795
+ const message = decisionReason?.type === "other" || decisionReason?.type === "safetyCheck" ? decisionReason.reason : `Output redirection to '${resolvedPath5}' was blocked. For security, Cody may only write to files in the allowed working directories for this session: ${dirListStr}.`;
339796
339796
  if (decisionReason?.type === "rule") {
339797
339797
  return {
339798
339798
  behavior: "deny",
@@ -344316,7 +344316,7 @@ function validateInputForSettingsFileEdit(filePath, originalContent, getUpdatedC
344316
344316
  if (!afterValidation.isValid) {
344317
344317
  return {
344318
344318
  result: false,
344319
- message: `Claude Code settings.json validation failed after edit:
344319
+ message: `Cody settings.json validation failed after edit:
344320
344320
  ${afterValidation.error}
344321
344321
 
344322
344322
  Full schema:
@@ -366618,7 +366618,7 @@ var init_utils11 = __esm(() => {
366618
366618
  init_preapproved();
366619
366619
  DomainBlockedError = class DomainBlockedError extends Error {
366620
366620
  constructor(domain2) {
366621
- super(`Claude Code is unable to fetch from ${domain2}`);
366621
+ super(`Cody is unable to fetch from ${domain2}`);
366622
366622
  this.name = "DomainBlockedError";
366623
366623
  }
366624
366624
  };
@@ -372466,7 +372466,7 @@ var init_ConfigTool = __esm(() => {
372466
372466
  }));
372467
372467
  ConfigTool = buildTool({
372468
372468
  name: CONFIG_TOOL_NAME,
372469
- searchHint: "get or set Claude Code settings (theme, model)",
372469
+ searchHint: "get or set Cody settings (theme, model)",
372470
372470
  maxResultSizeChars: 1e5,
372471
372471
  async description() {
372472
372472
  return DESCRIPTION13;
@@ -379402,7 +379402,7 @@ function getAttributionTexts() {
379402
379402
  const model = getMainLoopModel();
379403
379403
  const isKnownPublicModel = getPublicModelDisplayName(model) !== null;
379404
379404
  const modelName = isInternalModelRepoCached() || isKnownPublicModel ? getPublicModelName(model) : "Claude Opus 4.6";
379405
- const defaultAttribution = `\uD83E\uDD16 Generated with [Claude Code](${PRODUCT_URL})`;
379405
+ const defaultAttribution = `\uD83E\uDD16 Generated with [Cody](${PRODUCT_URL})`;
379406
379406
  const defaultCommit = `Co-Authored-By: ${modelName} <noreply@anthropic.com>`;
379407
379407
  const settings = getInitialSettings();
379408
379408
  if (settings.attribution) {
@@ -379529,7 +379529,7 @@ async function getEnhancedPRAttribution(getAppState) {
379529
379529
  if (settings.includeCoAuthoredBy === false) {
379530
379530
  return "";
379531
379531
  }
379532
- const defaultAttribution = `\uD83E\uDD16 Generated with [Claude Code](${PRODUCT_URL})`;
379532
+ const defaultAttribution = `\uD83E\uDD16 Generated with [Cody](${PRODUCT_URL})`;
379533
379533
  const appState = getAppState();
379534
379534
  logForDebugging(`PR Attribution: appState.attribution exists: ${!!appState.attribution}`);
379535
379535
  if (appState.attribution) {
@@ -379552,7 +379552,7 @@ async function getEnhancedPRAttribution(getAppState) {
379552
379552
  return defaultAttribution;
379553
379553
  }
379554
379554
  const memSuffix = memoryAccessCount > 0 ? `, ${memoryAccessCount} ${memoryAccessCount === 1 ? "memory" : "memories"} recalled` : "";
379555
- const summary = `\uD83E\uDD16 Generated with [Claude Code](${PRODUCT_URL}) (${claudePercent}% ${promptCount}-shotted by ${shortModelName}${memSuffix})`;
379555
+ const summary = `\uD83E\uDD16 Generated with [Cody](${PRODUCT_URL}) (${claudePercent}% ${promptCount}-shotted by ${shortModelName}${memSuffix})`;
379556
379556
  if (false) {}
379557
379557
  logForDebugging(`PR Attribution: returning summary: ${summary}`);
379558
379558
  return summary;
@@ -389289,7 +389289,7 @@ function isToolSearchEnabledOptimistic() {
389289
389289
  if (!process.env.ENABLE_TOOL_SEARCH && getAPIProvider() === "firstParty" && !isFirstPartyAnthropicBaseUrl()) {
389290
389290
  if (!loggedOptimistic) {
389291
389291
  loggedOptimistic = true;
389292
- logForDebugging(`[ToolSearch:optimistic] disabled: ANTHROPIC_BASE_URL=${process.env.ANTHROPIC_BASE_URL} is not a first-party Anthropic host. Set ENABLE_TOOL_SEARCH=true (or auto / auto:N) if your proxy forwards tool_reference blocks.`);
389292
+ logForDebugging(`[ToolSearch:optimistic] disabled: ANTHROPIC_BASE_URL=${process.env.ANTHROPIC_BASE_URL} is not a first-party AINative host. Set ENABLE_TOOL_SEARCH=true (or auto / auto:N) if your proxy forwards tool_reference blocks.`);
389293
389293
  }
389294
389294
  return false;
389295
389295
  }
@@ -391669,12 +391669,12 @@ ${manifest}${toolsSection}`
391669
391669
  return [];
391670
391670
  }
391671
391671
  }
391672
- var SELECT_MEMORIES_SYSTEM_PROMPT = `You are selecting memories that will be useful to Claude Code as it processes a user's query. You will be given the user's query and a list of available memory files with their filenames and descriptions.
391672
+ var SELECT_MEMORIES_SYSTEM_PROMPT = `You are selecting memories that will be useful to Cody as it processes a user's query. You will be given the user's query and a list of available memory files with their filenames and descriptions.
391673
391673
 
391674
- Return a list of filenames for the memories that will clearly be useful to Claude Code as it processes the user's query (up to 5). Only include memories that you are certain will be helpful based on their name and description.
391674
+ Return a list of filenames for the memories that will clearly be useful to Cody as it processes the user's query (up to 5). Only include memories that you are certain will be helpful based on their name and description.
391675
391675
  - If you are unsure if a memory will be useful in processing the user's query, then do not include it in your list. Be selective and discerning.
391676
391676
  - If there are no memories in the list that would clearly be useful, feel free to return an empty list.
391677
- - If a list of recently-used tools is provided, do not select memories that are usage reference or API documentation for those tools (Claude Code is already exercising them). DO still select memories containing warnings, gotchas, or known issues about those tools \u2014 active use is exactly when those matter.
391677
+ - If a list of recently-used tools is provided, do not select memories that are usage reference or API documentation for those tools (Cody is already exercising them). DO still select memories containing warnings, gotchas, or known issues about those tools \u2014 active use is exactly when those matter.
391678
391678
  `;
391679
391679
  var init_findRelevantMemories = __esm(() => {
391680
391680
  init_debug();
@@ -395749,7 +395749,7 @@ var init_marketplaceManager = __esm(() => {
395749
395749
  throw new Error(`Marketplace '${name3}' not found in configuration. Available marketplaces: ${Object.keys(config8).join(", ")}`);
395750
395750
  }
395751
395751
  if (isLocalMarketplaceSource(entry.source) && !isAbsolute23(entry.source.path)) {
395752
- throw new Error(`Marketplace "${name3}" has a relative source path (${entry.source.path}) ` + `in known_marketplaces.json \u2014 this is stale state from an older ` + `Claude Code version. Run 'claude marketplace remove ${name3}' and ` + `re-add it from the original project directory.`);
395752
+ throw new Error(`Marketplace "${name3}" has a relative source path (${entry.source.path}) ` + `in known_marketplaces.json \u2014 this is stale state from an older ` + `Cody version. Run 'claude marketplace remove ${name3}' and ` + `re-add it from the original project directory.`);
395753
395753
  }
395754
395754
  try {
395755
395755
  return await readCachedMarketplace(entry.installLocation);
@@ -398446,7 +398446,7 @@ function AUTO_REJECT_MESSAGE(toolName) {
398446
398446
  return `Permission to use ${toolName} has been denied. ${DENIAL_WORKAROUND_GUIDANCE}`;
398447
398447
  }
398448
398448
  function DONT_ASK_REJECT_MESSAGE(toolName) {
398449
- return `Permission to use ${toolName} has been denied because Claude Code is running in don't ask mode. ${DENIAL_WORKAROUND_GUIDANCE}`;
398449
+ return `Permission to use ${toolName} has been denied because Cody is running in don't ask mode. ${DENIAL_WORKAROUND_GUIDANCE}`;
398450
398450
  }
398451
398451
  function isSyntheticMessage(message) {
398452
398452
  return message.type !== "progress" && message.type !== "attachment" && message.type !== "system" && Array.isArray(message.message.content) && message.message.content[0]?.type === "text" && SYNTHETIC_MESSAGES.has(message.message.content[0].text);
@@ -402207,14 +402207,14 @@ function getErrorMessageIfRefusal(stopReason, model) {
402207
402207
  return;
402208
402208
  }
402209
402209
  logEvent("tengu_refusal_api_response", {});
402210
- const baseMessage = getIsNonInteractiveSession() ? `${API_ERROR_MESSAGE_PREFIX}: Claude Code is unable to respond to this request, which appears to violate our Usage Policy (https://www.anthropic.com/legal/aup). Try rephrasing the request or attempting a different approach.` : `${API_ERROR_MESSAGE_PREFIX}: Claude Code is unable to respond to this request, which appears to violate our Usage Policy (https://www.anthropic.com/legal/aup). Please double press esc to edit your last message or start a new session for Claude Code to assist with a different task.`;
402210
+ const baseMessage = getIsNonInteractiveSession() ? `${API_ERROR_MESSAGE_PREFIX}: Cody is unable to respond to this request, which appears to violate our Usage Policy (https://ainative.studio/legal/aup). Try rephrasing the request or attempting a different approach.` : `${API_ERROR_MESSAGE_PREFIX}: Cody is unable to respond to this request, which appears to violate our Usage Policy (https://ainative.studio/legal/aup). Please double press esc to edit your last message or start a new session for Cody to assist with a different task.`;
402211
402211
  const modelSuggestion = model !== "claude-sonnet-4-20250514" ? " If you are seeing this refusal repeatedly, try running /model claude-sonnet-4-20250514 to switch models." : "";
402212
402212
  return createAssistantAPIErrorMessage({
402213
402213
  content: baseMessage + modelSuggestion,
402214
402214
  error: "invalid_request"
402215
402215
  });
402216
402216
  }
402217
- var API_ERROR_MESSAGE_PREFIX = "API Error", PROMPT_TOO_LONG_ERROR_MESSAGE = "Prompt is too long", CREDIT_BALANCE_TOO_LOW_ERROR_MESSAGE = "Credit balance is too low", INVALID_API_KEY_ERROR_MESSAGE = "Not logged in \xB7 Please run /login", INVALID_API_KEY_ERROR_MESSAGE_EXTERNAL = "Invalid API key \xB7 Fix external API key", ORG_DISABLED_ERROR_MESSAGE_ENV_KEY_WITH_OAUTH = "Your ANTHROPIC_API_KEY belongs to a disabled organization \xB7 Unset the environment variable to use your subscription instead", ORG_DISABLED_ERROR_MESSAGE_ENV_KEY = "Your ANTHROPIC_API_KEY belongs to a disabled organization \xB7 Update or unset the environment variable", TOKEN_REVOKED_ERROR_MESSAGE = "OAuth token revoked \xB7 Please run /login", CCR_AUTH_ERROR_MESSAGE = "Authentication error \xB7 This may be a temporary network issue, please try again", REPEATED_529_ERROR_MESSAGE = "Repeated 529 Overloaded errors", CUSTOM_OFF_SWITCH_MESSAGE = "Opus is experiencing high load, please use /model to switch to Sonnet", API_TIMEOUT_ERROR_MESSAGE = "Request timed out", OAUTH_ORG_NOT_ALLOWED_ERROR_MESSAGE = "Your account does not have access to Claude Code. Please run /login.";
402217
+ var API_ERROR_MESSAGE_PREFIX = "API Error", PROMPT_TOO_LONG_ERROR_MESSAGE = "Prompt is too long", CREDIT_BALANCE_TOO_LOW_ERROR_MESSAGE = "Credit balance is too low", INVALID_API_KEY_ERROR_MESSAGE = "Not logged in \xB7 Please run /login", INVALID_API_KEY_ERROR_MESSAGE_EXTERNAL = "Invalid API key \xB7 Fix external API key", ORG_DISABLED_ERROR_MESSAGE_ENV_KEY_WITH_OAUTH = "Your ANTHROPIC_API_KEY belongs to a disabled organization \xB7 Unset the environment variable to use your subscription instead", ORG_DISABLED_ERROR_MESSAGE_ENV_KEY = "Your ANTHROPIC_API_KEY belongs to a disabled organization \xB7 Update or unset the environment variable", TOKEN_REVOKED_ERROR_MESSAGE = "OAuth token revoked \xB7 Please run /login", CCR_AUTH_ERROR_MESSAGE = "Authentication error \xB7 This may be a temporary network issue, please try again", REPEATED_529_ERROR_MESSAGE = "Repeated 529 Overloaded errors", CUSTOM_OFF_SWITCH_MESSAGE = "Opus is experiencing high load, please use /model to switch to Sonnet", API_TIMEOUT_ERROR_MESSAGE = "Request timed out", OAUTH_ORG_NOT_ALLOWED_ERROR_MESSAGE = "Your account does not have access to Cody. Please run /login.";
402218
402218
  var init_errors10 = __esm(() => {
402219
402219
  init_sdk();
402220
402220
  init_betas();
@@ -402999,9 +402999,9 @@ function reconstructCommand(kept, originalCmd) {
402999
402999
  return result.trim() || originalCmd;
403000
403000
  }
403001
403001
  var ALLOWED_FILE_DESCRIPTORS, BASH_POLICY_SPEC = `<policy_spec>
403002
- # Claude Code Code Bash command prefix detection
403002
+ # Cody Code Bash command prefix detection
403003
403003
 
403004
- This document defines risk levels for actions that the Claude Code agent may take. This classification system is part of a broader safety framework and is used to determine when additional user confirmation or oversight may be needed.
403004
+ This document defines risk levels for actions that the Cody agent may take. This classification system is part of a broader safety framework and is used to determine when additional user confirmation or oversight may be needed.
403005
403005
 
403006
403006
  ## Definitions
403007
403007
 
@@ -408130,7 +408130,7 @@ function PermissionDescription() {
408130
408130
  if ($3[0] === Symbol.for("react.memo_cache_sentinel")) {
408131
408131
  t0 = /* @__PURE__ */ jsx_dev_runtime159.jsxDEV(ThemedText, {
408132
408132
  dimColor: true,
408133
- children: "Claude Code will be able to read files in this directory and make edits when auto-accept edits is on."
408133
+ children: "Cody will be able to read files in this directory and make edits when auto-accept edits is on."
408134
408134
  }, undefined, false, undefined, this);
408135
408135
  $3[0] = t0;
408136
408136
  } else {
@@ -409604,7 +409604,7 @@ function Feedback({
409604
409604
  children: [
409605
409605
  "We will use your feedback to debug related issues or to improve",
409606
409606
  " ",
409607
- "Claude Code's functionality (eg. to reduce the risk of bugs occurring in the future)."
409607
+ "Cody's functionality (eg. to reduce the risk of bugs occurring in the future)."
409608
409608
  ]
409609
409609
  }, undefined, true, undefined, this)
409610
409610
  }, undefined, false, undefined, this),
@@ -409725,7 +409725,7 @@ ${sanitizedDescription}
409725
409725
  async function generateTitle(description, abortSignal) {
409726
409726
  try {
409727
409727
  const response7 = await queryHaiku({
409728
- systemPrompt: asSystemPrompt(["Generate a concise, technical issue title (max 80 chars) for a public GitHub issue based on this bug report for Claude Code.", "Claude Code is an agentic coding CLI based on the Anthropic API.", "The title should:", "- Include the type of issue [Bug] or [Feature Request] as the first thing in the title", "- Be concise, specific and descriptive of the actual problem", "- Use technical terminology appropriate for a software issue", '- For error messages, extract the key error (e.g., "Missing Tool Result Block" rather than the full message)', "- Be direct and clear for developers to understand the problem", '- If you cannot determine a clear issue, use "Bug Report: [brief description]"', "- Any LLM API errors are from the Anthropic API, not from any other model provider", "Your response will be directly used as the title of the Github issue, and as such should not contain any other commentary or explaination", 'Examples of good titles include: "[Bug] Auto-Compact triggers to soon", "[Bug] Anthropic API Error: Missing Tool Result Block", "[Bug] Error: Invalid Model Name for Opus"']),
409728
+ systemPrompt: asSystemPrompt(["Generate a concise, technical issue title (max 80 chars) for a public GitHub issue based on this bug report for Cody.", "Cody is an agentic coding CLI powered by AINative Studio.", "The title should:", "- Include the type of issue [Bug] or [Feature Request] as the first thing in the title", "- Be concise, specific and descriptive of the actual problem", "- Use technical terminology appropriate for a software issue", '- For error messages, extract the key error (e.g., "Missing Tool Result Block" rather than the full message)', "- Be direct and clear for developers to understand the problem", '- If you cannot determine a clear issue, use "Bug Report: [brief description]"', "- Any LLM API errors are from the AINative API, not from any other model provider", "Your response will be directly used as the title of the Github issue, and as such should not contain any other commentary or explaination", 'Examples of good titles include: "[Bug] Auto-Compact triggers to soon", "[Bug] Anthropic API Error: Missing Tool Result Block", "[Bug] Error: Invalid Model Name for Opus"']),
409729
409729
  userPrompt: description,
409730
409730
  signal: abortSignal,
409731
409731
  options: {
@@ -409905,7 +409905,7 @@ var init_feedback2 = __esm(() => {
409905
409905
  aliases: ["bug"],
409906
409906
  type: "local-jsx",
409907
409907
  name: "feedback",
409908
- description: `Submit feedback about Claude Code`,
409908
+ description: `Submit feedback about Cody`,
409909
409909
  argumentHint: "[report]",
409910
409910
  isEnabled: () => !(isEnvTruthy(process.env.CLAUDE_CODE_USE_BEDROCK) || isEnvTruthy(process.env.CLAUDE_CODE_USE_VERTEX) || isEnvTruthy(process.env.CLAUDE_CODE_USE_FOUNDRY) || isEnvTruthy(process.env.DISABLE_FEEDBACK_COMMAND) || isEnvTruthy(process.env.DISABLE_BUG_COMMAND) || isEssentialTrafficOnly() || false || !isPolicyAllowed("allow_product_feedback")),
409911
409911
  load: () => Promise.resolve().then(() => (init_feedback(), exports_feedback))
@@ -413802,7 +413802,7 @@ function ModelPicker(t0) {
413802
413802
  } else {
413803
413803
  t15 = $3[41];
413804
413804
  }
413805
- const t16 = headerText ?? "Switch between Claude models. Applies to this session and future Claude Code sessions. For other/previous model names, specify with --model.";
413805
+ const t16 = headerText ?? "Switch between Claude models. Applies to this session and future Cody sessions. For other/previous model names, specify with --model.";
413806
413806
  let t17;
413807
413807
  if ($3[42] !== t16) {
413808
413808
  t17 = /* @__PURE__ */ jsx_dev_runtime172.jsxDEV(ThemedText, {
@@ -414256,7 +414256,7 @@ function ClaudeMdExternalIncludesDialog(t0) {
414256
414256
  t8 = /* @__PURE__ */ jsx_dev_runtime173.jsxDEV(ThemedText, {
414257
414257
  dimColor: true,
414258
414258
  children: [
414259
- "Important: Only use Claude Code with files you trust. Accessing untrusted files may pose security risks",
414259
+ "Important: Only use Cody with files you trust. Accessing untrusted files may pose security risks",
414260
414260
  " ",
414261
414261
  /* @__PURE__ */ jsx_dev_runtime173.jsxDEV(Link, {
414262
414262
  url: "https://code.claude.com/docs/en/security"
@@ -414542,7 +414542,7 @@ function OutputStylePicker(t0) {
414542
414542
  marginTop: 1,
414543
414543
  children: /* @__PURE__ */ jsx_dev_runtime175.jsxDEV(ThemedText, {
414544
414544
  dimColor: true,
414545
- children: "This changes how Claude Code communicates with you"
414545
+ children: "This changes how Cody communicates with you"
414546
414546
  }, undefined, false, undefined, this)
414547
414547
  }, undefined, false, undefined, this);
414548
414548
  $3[5] = t7;
@@ -419155,9 +419155,9 @@ var call17 = async () => {
419155
419155
  if (isClaudeAISubscriber()) {
419156
419156
  let value;
419157
419157
  if (currentLimits.isUsingOverage) {
419158
- value = "You are currently using your overages to power your Claude Code usage. We will automatically switch you back to your subscription rate limits when they reset";
419158
+ value = "You are currently using your overages to power your Cody usage. We will automatically switch you back to your subscription rate limits when they reset";
419159
419159
  } else {
419160
- value = "You are currently using your subscription to power your Claude Code usage";
419160
+ value = "You are currently using your subscription to power your Cody usage";
419161
419161
  }
419162
419162
  if (false) {}
419163
419163
  return { type: "text", value };
@@ -422047,7 +422047,7 @@ function Doctor(t0) {
422047
422047
  let t7;
422048
422048
  if ($3[11] !== onDone) {
422049
422049
  t7 = () => {
422050
- onDone("Claude Code diagnostics dismissed", {
422050
+ onDone("Cody diagnostics dismissed", {
422051
422051
  display: "system"
422052
422052
  });
422053
422053
  };
@@ -422873,7 +422873,7 @@ var init_doctor2 = __esm(() => {
422873
422873
  init_envUtils();
422874
422874
  doctor = {
422875
422875
  name: "doctor",
422876
- description: "Diagnose and verify your Claude Code installation and settings",
422876
+ description: "Diagnose and verify your Cody installation and settings",
422877
422877
  isEnabled: () => !isEnvTruthy(process.env.DISABLE_DOCTOR_COMMAND),
422878
422878
  type: "local-jsx",
422879
422879
  load: () => Promise.resolve().then(() => (init_doctor(), exports_doctor))
@@ -424540,7 +424540,7 @@ function HelpV2(t0) {
424540
424540
  let t6;
424541
424541
  if ($3[31] !== tabs) {
424542
424542
  t6 = /* @__PURE__ */ jsx_dev_runtime205.jsxDEV(Tabs, {
424543
- title: `Claude Code v${"0.1.0"}`,
424543
+ title: `Cody v${"0.1.0"}`,
424544
424544
  color: "professionalBlue",
424545
424545
  defaultTab: "general",
424546
424546
  children: tabs
@@ -424973,7 +424973,7 @@ function IDEScreen(t0) {
424973
424973
  t5 = availableIDEs.length === 0 && /* @__PURE__ */ jsx_dev_runtime208.jsxDEV(ThemedText, {
424974
424974
  dimColor: true,
424975
424975
  children: isSupportedJetBrainsTerminal() ? `No available IDEs detected. Please install the plugin and restart your IDE:
424976
- https://docs.claude.com/s/claude-code-jetbrains` : "No available IDEs detected. Make sure your IDE has the Claude Code extension or plugin installed and is running."
424976
+ https://docs.claude.com/s/claude-code-jetbrains` : "No available IDEs detected. Make sure your IDE has the Cody extension or plugin installed and is running."
424977
424977
  }, undefined, false, undefined, this);
424978
424978
  $3[17] = availableIDEs.length;
424979
424979
  $3[18] = t5;
@@ -425005,7 +425005,7 @@ https://docs.claude.com/s/claude-code-jetbrains` : "No available IDEs detected.
425005
425005
  marginTop: 1,
425006
425006
  children: /* @__PURE__ */ jsx_dev_runtime208.jsxDEV(ThemedText, {
425007
425007
  color: "warning",
425008
- children: "Note: Only one Claude Code instance can be connected to VS Code at a time."
425008
+ children: "Note: Only one Cody instance can be connected to VS Code at a time."
425009
425009
  }, undefined, false, undefined, this)
425010
425010
  }, undefined, false, undefined, this);
425011
425011
  $3[24] = availableIDEs;
@@ -425349,7 +425349,7 @@ async function call22(onDone, context7, args) {
425349
425349
  const detectedIDEs2 = await detectIDEs(true);
425350
425350
  const availableIDEs2 = detectedIDEs2.filter((ide) => ide.isValid);
425351
425351
  if (availableIDEs2.length === 0) {
425352
- onDone("No IDEs with Claude Code extension detected.");
425352
+ onDone("No IDEs with Cody extension detected.");
425353
425353
  return null;
425354
425354
  }
425355
425355
  return /* @__PURE__ */ jsx_dev_runtime208.jsxDEV(IDEOpenSelection, {
@@ -425579,7 +425579,7 @@ var init_ide3 = __esm(() => {
425579
425579
  });
425580
425580
 
425581
425581
  // src/commands/init.ts
425582
- var OLD_INIT_PROMPT = `Please analyze this codebase and create a CLAUDE.md file, which will be given to future instances of Claude Code to operate in this repository.
425582
+ var OLD_INIT_PROMPT = `Please analyze this codebase and create a CLAUDE.md file, which will be given to future instances of Cody to operate in this repository.
425583
425583
 
425584
425584
  What to add:
425585
425585
  1. Commands that will be commonly used, such as how to build, lint, and run tests. Include the necessary commands to develop in this codebase, such as how to run a single test.
@@ -426178,15 +426178,15 @@ var init_WorkflowMultiselectDialog = __esm(() => {
426178
426178
  jsx_dev_runtime209 = __toESM(require_jsx_dev_runtime(), 1);
426179
426179
  WORKFLOWS = [{
426180
426180
  value: "claude",
426181
- label: "@Claude Code - Tag @claude in issues and PR comments"
426181
+ label: "@Cody - Tag @claude in issues and PR comments"
426182
426182
  }, {
426183
426183
  value: "claude-review",
426184
- label: "Claude Code Review - Automated code review on new PRs"
426184
+ label: "Cody Review - Automated code review on new PRs"
426185
426185
  }];
426186
426186
  });
426187
426187
 
426188
426188
  // src/constants/github-app.ts
426189
- var PR_TITLE = "Add Claude Code GitHub Workflow", GITHUB_ACTION_SETUP_DOCS_URL = "https://github.com/anthropics/claude-code-action/blob/main/docs/setup.md", WORKFLOW_CONTENT = `name: Claude Code
426189
+ var PR_TITLE = "Add Cody GitHub Workflow", GITHUB_ACTION_SETUP_DOCS_URL = "https://github.com/anthropics/claude-code-action/blob/main/docs/setup.md", WORKFLOW_CONTENT = `name: Cody
426190
426190
 
426191
426191
  on:
426192
426192
  issue_comment:
@@ -426218,7 +426218,7 @@ jobs:
426218
426218
  with:
426219
426219
  fetch-depth: 1
426220
426220
 
426221
- - name: Run Claude Code
426221
+ - name: Run Cody
426222
426222
  id: claude
426223
426223
  uses: anthropics/claude-code-action@v1
426224
426224
  with:
@@ -426236,13 +426236,13 @@ jobs:
426236
426236
  # or https://code.claude.com/docs/en/cli-reference for available options
426237
426237
  # claude_args: '--allowed-tools Bash(gh pr:*)'
426238
426238
 
426239
- `, PR_BODY = `## \uD83E\uDD16 Installing Claude Code GitHub App
426239
+ `, PR_BODY = `## \uD83E\uDD16 Installing Cody GitHub App
426240
426240
 
426241
- This PR adds a GitHub Actions workflow that enables Claude Code integration in our repository.
426241
+ This PR adds a GitHub Actions workflow that enables Cody integration in our repository.
426242
426242
 
426243
- ### What is Claude Code?
426243
+ ### What is Cody?
426244
426244
 
426245
- [Claude Code](https://claude.com/claude-code) is an AI coding agent that can help with:
426245
+ [Cody](https://claude.com/claude-code) is an AI coding agent that can help with:
426246
426246
  - Bug fixes and improvements
426247
426247
  - Documentation updates
426248
426248
  - Implementing new features
@@ -426274,9 +426274,9 @@ Once the workflow is triggered, Claude will analyze the comment and surrounding
426274
426274
  allowed_tools: Bash(npm install),Bash(npm run build),Bash(npm run lint),Bash(npm run test)
426275
426275
  \`\`\`
426276
426276
 
426277
- There's more information in the [Claude Code action repo](https://github.com/anthropics/claude-code-action).
426277
+ There's more information in the [Cody action repo](https://github.com/anthropics/claude-code-action).
426278
426278
 
426279
- After merging this PR, let's try mentioning @claude in a comment on any PR to get started!`, CODE_REVIEW_PLUGIN_WORKFLOW_CONTENT = `name: Claude Code Review
426279
+ After merging this PR, let's try mentioning @claude in a comment on any PR to get started!`, CODE_REVIEW_PLUGIN_WORKFLOW_CONTENT = `name: Cody Review
426280
426280
 
426281
426281
  on:
426282
426282
  pull_request:
@@ -426309,7 +426309,7 @@ jobs:
426309
426309
  with:
426310
426310
  fetch-depth: 1
426311
426311
 
426312
- - name: Run Claude Code Review
426312
+ - name: Run Cody Review
426313
426313
  id: claude-review
426314
426314
  uses: anthropics/claude-code-action@v1
426315
426315
  with:
@@ -426478,7 +426478,7 @@ function ApiKeyStep(t0) {
426478
426478
  children: /* @__PURE__ */ jsx_dev_runtime210.jsxDEV(ThemedText, {
426479
426479
  children: [
426480
426480
  selectedOption === "existing" ? color("success", theme)("> ") : " ",
426481
- "Use your existing Claude Code API key"
426481
+ "Use your existing Cody API key"
426482
426482
  ]
426483
426483
  }, undefined, true, undefined, this)
426484
426484
  }, undefined, false, undefined, this);
@@ -428455,7 +428455,7 @@ async function setupGitHubActions(repoName, apiKeyOrOAuthToken, secretName, upda
428455
428455
  workflows.push({
428456
428456
  path: ".github/workflows/claude-code-review.yml",
428457
428457
  content: CODE_REVIEW_PLUGIN_WORKFLOW_CONTENT,
428458
- message: "Claude Code Review workflow"
428458
+ message: "Cody Review workflow"
428459
428459
  });
428460
428460
  }
428461
428461
  for (const workflow of workflows) {
@@ -431539,9 +431539,9 @@ function MCPRemoteServerMenu({
431539
431539
  if (success2) {
431540
431540
  onComplete?.(`Authentication successful. Connected to ${server.name}.`);
431541
431541
  } else if (result.client.type === "needs-auth") {
431542
- onComplete?.("Authentication successful, but server still requires authentication. You may need to manually restart Claude Code.");
431542
+ onComplete?.("Authentication successful, but server still requires authentication. You may need to manually restart Cody.");
431543
431543
  } else {
431544
- onComplete?.("Authentication successful, but server reconnection failed. You may need to manually restart Claude Code for the changes to take effect.");
431544
+ onComplete?.("Authentication successful, but server reconnection failed. You may need to manually restart Cody for the changes to take effect.");
431545
431545
  }
431546
431546
  } catch (err2) {
431547
431547
  logEvent("tengu_claudeai_mcp_auth_completed", {
@@ -431703,10 +431703,10 @@ function MCPRemoteServerMenu({
431703
431703
  const message = isEffectivelyAuthenticated ? `Authentication successful. Reconnected to ${server.name}.` : `Authentication successful. Connected to ${server.name}.`;
431704
431704
  onComplete?.(message);
431705
431705
  } else if (result_0.client.type === "needs-auth") {
431706
- onComplete?.("Authentication successful, but server still requires authentication. You may need to manually restart Claude Code.");
431706
+ onComplete?.("Authentication successful, but server still requires authentication. You may need to manually restart Cody.");
431707
431707
  } else {
431708
431708
  logMCPDebug(server.name, `Reconnection failed after authentication`);
431709
- onComplete?.("Authentication successful, but server reconnection failed. You may need to manually restart Claude Code for the changes to take effect.");
431709
+ onComplete?.("Authentication successful, but server reconnection failed. You may need to manually restart Cody for the changes to take effect.");
431710
431710
  }
431711
431711
  }
431712
431712
  } catch (err_1) {
@@ -433368,7 +433368,7 @@ function MCPSettings(t0) {
433368
433368
  t9 = $3[25];
433369
433369
  }
433370
433370
  const serverTools_0 = t9;
433371
- const defaultTab = viewState.server.transport === "claudeai-proxy" ? "claude.ai" : "Claude Code";
433371
+ const defaultTab = viewState.server.transport === "claudeai-proxy" ? "claude.ai" : "Cody";
433372
433372
  if (viewState.server.transport === "stdio") {
433373
433373
  let t10;
433374
433374
  if ($3[26] !== viewState.server) {
@@ -436668,7 +436668,7 @@ function EmptyStateMessage(t0) {
436668
436668
  }, undefined, false, undefined, this),
436669
436669
  /* @__PURE__ */ jsx_dev_runtime238.jsxDEV(ThemedText, {
436670
436670
  dimColor: true,
436671
- children: "Please install git and restart Claude Code."
436671
+ children: "Please install git and restart Cody."
436672
436672
  }, undefined, false, undefined, this)
436673
436673
  ]
436674
436674
  }, undefined, true, undefined, this);
@@ -438174,7 +438174,7 @@ function ManageMarketplaces({
438174
438174
  marginTop: 1,
438175
438175
  children: /* @__PURE__ */ jsx_dev_runtime239.jsxDEV(ThemedText, {
438176
438176
  dimColor: true,
438177
- children: "Auto-update enabled. Claude Code will automatically update this marketplace and its installed plugins."
438177
+ children: "Auto-update enabled. Cody will automatically update this marketplace and its installed plugins."
438178
438178
  }, undefined, false, undefined, this)
438179
438179
  }, undefined, false, undefined, this),
438180
438180
  /* @__PURE__ */ jsx_dev_runtime239.jsxDEV(ThemedBox_default, {
@@ -441941,7 +441941,7 @@ async function validatePluginManifest(filePath) {
441941
441941
  delete stripped[key];
441942
441942
  warnings.push({
441943
441943
  path: key,
441944
- message: `Field '${key}' belongs in the marketplace entry (marketplace.json), ` + `not plugin.json. It's harmless here but unused \u2014 Claude Code ` + `ignores it at load time.`
441944
+ message: `Field '${key}' belongs in the marketplace entry (marketplace.json), ` + `not plugin.json. It's harmless here but unused \u2014 Cody ` + `ignores it at load time.`
441945
441945
  });
441946
441946
  }
441947
441947
  toValidate = stripped;
@@ -441956,7 +441956,7 @@ async function validatePluginManifest(filePath) {
441956
441956
  if (!/^[a-z0-9]+(-[a-z0-9]+)*$/.test(manifest.name)) {
441957
441957
  warnings.push({
441958
441958
  path: "name",
441959
- message: `Plugin name "${manifest.name}" is not kebab-case. Claude Code accepts ` + `it, but the Claude.ai marketplace sync requires kebab-case ` + `(lowercase letters, digits, and hyphens only, e.g., "my-plugin").`
441959
+ message: `Plugin name "${manifest.name}" is not kebab-case. Cody accepts ` + `it, but the Claude.ai marketplace sync requires kebab-case ` + `(lowercase letters, digits, and hyphens only, e.g., "my-plugin").`
441960
441960
  });
441961
441961
  }
441962
441962
  if (!manifest.version) {
@@ -450682,7 +450682,7 @@ function createWhatsNewFeed(releaseNotes2) {
450682
450682
  text: note
450683
450683
  };
450684
450684
  });
450685
- const emptyMessage = "Check the Claude Code changelog for updates";
450685
+ const emptyMessage = "Check the Cody changelog for updates";
450686
450686
  return {
450687
450687
  title: "What's new",
450688
450688
  lines,
@@ -450716,7 +450716,7 @@ function createProjectOnboardingFeed(steps) {
450716
450716
  }
450717
450717
  function createGuestPassesFeed() {
450718
450718
  const reward = getCachedReferrerReward();
450719
- const subtitle = reward ? `Share Claude Code and earn ${formatCreditAmount(reward)} of extra usage` : "Share Claude Code with friends";
450719
+ const subtitle = reward ? `Share Cody and earn ${formatCreditAmount(reward)} of extra usage` : "Share Cody with friends";
450720
450720
  return {
450721
450721
  title: "3 guest passes",
450722
450722
  lines: [],
@@ -450933,7 +450933,7 @@ function GuestPassesUpsell() {
450933
450933
  }, undefined, false, undefined, this),
450934
450934
  " \xB7",
450935
450935
  " ",
450936
- reward ? `Share Claude Code and earn ${formatCreditAmount(reward)} of extra usage \xB7 /passes` : "3 guest passes at /passes"
450936
+ reward ? `Share Cody and earn ${formatCreditAmount(reward)} of extra usage \xB7 /passes` : "3 guest passes at /passes"
450937
450937
  ]
450938
450938
  }, undefined, true, undefined, this);
450939
450939
  $3[0] = t0;
@@ -451028,7 +451028,7 @@ function CondensedLogo() {
451028
451028
  if ($3[8] === Symbol.for("react.memo_cache_sentinel")) {
451029
451029
  t5 = /* @__PURE__ */ jsx_dev_runtime252.jsxDEV(ThemedText, {
451030
451030
  bold: true,
451031
- children: "Claude Code"
451031
+ children: "Cody"
451032
451032
  }, undefined, false, undefined, this);
451033
451033
  $3[8] = t5;
451034
451034
  } else {
@@ -458758,7 +458758,7 @@ var init_review = __esm(() => {
458758
458758
  ultrareview = {
458759
458759
  type: "local-jsx",
458760
458760
  name: "ultrareview",
458761
- description: `~10\u201320 min \xB7 Finds and verifies bugs in your branch. Runs in Claude Code on the web. See ${CCR_TERMS_URL}`,
458761
+ description: `~10\u201320 min \xB7 Finds and verifies bugs in your branch. Runs in Cody on the web. See ${CCR_TERMS_URL}`,
458762
458762
  isEnabled: () => isUltrareviewEnabled(),
458763
458763
  load: () => Promise.resolve().then(() => (init_ultrareviewCommand(), exports_ultrareviewCommand))
458764
458764
  };
@@ -459349,7 +459349,7 @@ var init_status3 = __esm(() => {
459349
459349
  status = {
459350
459350
  type: "local-jsx",
459351
459351
  name: "status",
459352
- description: "Show Claude Code status including version, model, account, API connectivity, and tool statuses",
459352
+ description: "Show Cody status including version, model, account, API connectivity, and tool statuses",
459353
459353
  immediate: true,
459354
459354
  load: () => Promise.resolve().then(() => (init_status2(), exports_status))
459355
459355
  };
@@ -459704,7 +459704,7 @@ function startDetachedPoll(taskId, sessionId, url3, getAppState, setAppState) {
459704
459704
  ultraplanSessionUrl: undefined
459705
459705
  } : prev);
459706
459706
  enqueuePendingNotification({
459707
- value: [`Ultraplan approved \u2014 executing in Claude Code on the web. Follow along at: ${url3}`, "", "Results will land as a pull request when the remote session finishes. There is nothing to do here."].join(`
459707
+ value: [`Ultraplan approved \u2014 executing in Cody on the web. Follow along at: ${url3}`, "", "Results will land as a pull request when the remote session finishes. There is nothing to do here."].join(`
459708
459708
  `),
459709
459709
  mode: "task-notification"
459710
459710
  });
@@ -459758,10 +459758,10 @@ Session: ${url3}`,
459758
459758
  function buildLaunchMessage(disconnectedBridge) {
459759
459759
  const prefix = disconnectedBridge ? `${REMOTE_CONTROL_DISCONNECTED_MSG} ` : "";
459760
459760
  return `${DIAMOND_OPEN} ultraplan
459761
- ${prefix}Starting Claude Code on the web\u2026`;
459761
+ ${prefix}Starting Cody on the web\u2026`;
459762
459762
  }
459763
459763
  function buildSessionReadyMessage(url3) {
459764
- return `${DIAMOND_OPEN} ultraplan \xB7 Monitor progress in Claude Code on the web ${url3}
459764
+ return `${DIAMOND_OPEN} ultraplan \xB7 Monitor progress in Cody on the web ${url3}
459765
459765
  You can continue working \u2014 when the ${DIAMOND_OPEN} fills, press \u2193 to view results`;
459766
459766
  }
459767
459767
  function buildAlreadyActiveMessage(url3) {
@@ -459814,7 +459814,7 @@ async function launchUltraplan2(opts) {
459814
459814
  "in your prompt",
459815
459815
  "",
459816
459816
  "Advanced multi-agent plan mode with our most powerful model",
459817
- "(Opus). Runs in Claude Code on the web. When the plan is ready,",
459817
+ "(Opus). Runs in Cody on the web. When the plan is ready,",
459818
459818
  "you can execute it in the web session or send it back here.",
459819
459819
  "Terminal stays free while the remote plans.",
459820
459820
  "Requires /login.",
@@ -459999,7 +459999,7 @@ var init_ultraplan = __esm(() => {
459999
459999
  ultraplan_default = {
460000
460000
  type: "local-jsx",
460001
460001
  name: "ultraplan",
460002
- description: `~10\u201330 min \xB7 Claude Code on the web drafts an advanced plan you can edit and approve. See ${CCR_TERMS_URL2}`,
460002
+ description: `~10\u201330 min \xB7 Cody on the web drafts an advanced plan you can edit and approve. See ${CCR_TERMS_URL2}`,
460003
460003
  argumentHint: "<prompt>",
460004
460004
  isEnabled: () => false,
460005
460005
  load: () => Promise.resolve({
@@ -462283,7 +462283,7 @@ var init_mappers = __esm(() => {
462283
462283
  // src/components/tasks/RemoteSessionDetailDialog.tsx
462284
462284
  function formatToolUseSummary(name3, input) {
462285
462285
  if (name3 === EXIT_PLAN_MODE_V2_TOOL_NAME) {
462286
- return "Review the plan in Claude Code on the web";
462286
+ return "Review the plan in Cody on the web";
462287
462287
  }
462288
462288
  if (!input || typeof input !== "object")
462289
462289
  return name3;
@@ -462397,7 +462397,7 @@ function UltraplanSessionDetail(t0) {
462397
462397
  if ($3[12] === Symbol.for("react.memo_cache_sentinel")) {
462398
462398
  t72 = /* @__PURE__ */ jsx_dev_runtime285.jsxDEV(ThemedText, {
462399
462399
  dimColor: true,
462400
- children: "This will terminate the Claude Code on the web session."
462400
+ children: "This will terminate the Cody on the web session."
462401
462401
  }, undefined, false, undefined, this);
462402
462402
  $3[12] = t72;
462403
462403
  } else {
@@ -462608,7 +462608,7 @@ function UltraplanSessionDetail(t0) {
462608
462608
  let t19;
462609
462609
  if ($3[47] === Symbol.for("react.memo_cache_sentinel")) {
462610
462610
  t19 = {
462611
- label: "Review in Claude Code on the web",
462611
+ label: "Review in Cody on the web",
462612
462612
  value: "open"
462613
462613
  };
462614
462614
  $3[47] = t19;
@@ -462940,13 +462940,13 @@ function ReviewSessionDetail(t0) {
462940
462940
  let t32;
462941
462941
  if ($3[11] !== completed || $3[12] !== onKill || $3[13] !== running) {
462942
462942
  t32 = completed ? [{
462943
- label: "Open in Claude Code on the web",
462943
+ label: "Open in Cody on the web",
462944
462944
  value: "open"
462945
462945
  }, {
462946
462946
  label: "Dismiss",
462947
462947
  value: "dismiss"
462948
462948
  }] : [{
462949
- label: "Open in Claude Code on the web",
462949
+ label: "Open in Cody on the web",
462950
462950
  value: "open"
462951
462951
  }, ...onKill && running ? [{
462952
462952
  label: "Stop ultrareview",
@@ -465550,8 +465550,8 @@ function ThinkbackMenu(t0) {
465550
465550
  let t7;
465551
465551
  if ($3[16] !== handleCancel || $3[17] !== t6) {
465552
465552
  t7 = /* @__PURE__ */ jsx_dev_runtime291.jsxDEV(Dialog, {
465553
- title: "Think Back on 2025 with Claude Code",
465554
- subtitle: "Generate your 2025 Claude Code Think Back (takes a few minutes to run)",
465553
+ title: "Think Back on 2025 with Cody",
465554
+ subtitle: "Generate your 2025 Cody Think Back (takes a few minutes to run)",
465555
465555
  onCancel: handleCancel,
465556
465556
  color: "claude",
465557
465557
  children: t6
@@ -465760,7 +465760,7 @@ async function call40(onDone) {
465760
465760
  onDone
465761
465761
  }, undefined, false, undefined, this);
465762
465762
  }
465763
- var import_compiler_runtime229, import_react166, jsx_dev_runtime291, OFFICIAL_MARKETPLACE_REPO = "anthropics/claude-plugins-official", SKILL_NAME = "thinkback", EDIT_PROMPT = 'Use the Skill tool to invoke the "thinkback" skill with mode=edit to modify my existing Claude Code year in review animation. Ask me what I want to change. When the animation is ready, tell the user to run /think-back again to play it.', FIX_PROMPT = 'Use the Skill tool to invoke the "thinkback" skill with mode=fix to fix validation or rendering errors in my existing Claude Code year in review animation. Run the validator, identify errors, and fix them. When the animation is ready, tell the user to run /think-back again to play it.', REGENERATE_PROMPT = 'Use the Skill tool to invoke the "thinkback" skill with mode=regenerate to create a completely new Claude Code year in review animation from scratch. Delete the existing animation and start fresh. When the animation is ready, tell the user to run /think-back again to play it.';
465763
+ var import_compiler_runtime229, import_react166, jsx_dev_runtime291, OFFICIAL_MARKETPLACE_REPO = "anthropics/claude-plugins-official", SKILL_NAME = "thinkback", EDIT_PROMPT = 'Use the Skill tool to invoke the "thinkback" skill with mode=edit to modify my existing Cody year in review animation. Ask me what I want to change. When the animation is ready, tell the user to run /think-back again to play it.', FIX_PROMPT = 'Use the Skill tool to invoke the "thinkback" skill with mode=fix to fix validation or rendering errors in my existing Cody year in review animation. Run the validator, identify errors, and fix them. When the animation is ready, tell the user to run /think-back again to play it.', REGENERATE_PROMPT = 'Use the Skill tool to invoke the "thinkback" skill with mode=regenerate to create a completely new Cody year in review animation from scratch. Delete the existing animation and start fresh. When the animation is ready, tell the user to run /think-back again to play it.';
465764
465764
  var init_thinkback = __esm(() => {
465765
465765
  init_execa();
465766
465766
  init_select();
@@ -465793,7 +465793,7 @@ var init_thinkback2 = __esm(() => {
465793
465793
  thinkback = {
465794
465794
  type: "local-jsx",
465795
465795
  name: "think-back",
465796
- description: "Your 2025 Claude Code Year in Review",
465796
+ description: "Your 2025 Cody Year in Review",
465797
465797
  isEnabled: () => checkStatsigFeatureGate_CACHED_MAY_BE_STALE("tengu_thinkback"),
465798
465798
  load: () => Promise.resolve().then(() => (init_thinkback(), exports_thinkback))
465799
465799
  };
@@ -466687,7 +466687,7 @@ function RemoveWorkspaceDirectory(t0) {
466687
466687
  let t4;
466688
466688
  if ($3[10] === Symbol.for("react.memo_cache_sentinel")) {
466689
466689
  t4 = /* @__PURE__ */ jsx_dev_runtime296.jsxDEV(ThemedText, {
466690
- children: "Claude Code will no longer have access to files in this directory."
466690
+ children: "Cody will no longer have access to files in this directory."
466691
466691
  }, undefined, false, undefined, this);
466692
466692
  $3[10] = t4;
466693
466693
  } else {
@@ -467368,9 +467368,9 @@ function PermissionRulesTab(t0) {
467368
467368
  let t8;
467369
467369
  if ($3[10] === Symbol.for("react.memo_cache_sentinel")) {
467370
467370
  t8 = {
467371
- allow: "Claude Code won't ask before using allowed tools.",
467372
- ask: "Claude Code will always ask for confirmation before using these tools.",
467373
- deny: "Claude Code will always reject requests to use denied tools."
467371
+ allow: "Cody won't ask before using allowed tools.",
467372
+ ask: "Cody will always ask for confirmation before using these tools.",
467373
+ deny: "Cody will always reject requests to use denied tools."
467374
467374
  };
467375
467375
  $3[10] = t8;
467376
467376
  } else {
@@ -468133,7 +468133,7 @@ function PermissionRuleList(t0) {
468133
468133
  let t28;
468134
468134
  if ($3[89] === Symbol.for("react.memo_cache_sentinel")) {
468135
468135
  t28 = /* @__PURE__ */ jsx_dev_runtime298.jsxDEV(ThemedText, {
468136
- children: "Claude Code can read files in the workspace, and make edits when auto-accept edits is on."
468136
+ children: "Cody can read files in the workspace, and make edits when auto-accept edits is on."
468137
468137
  }, undefined, false, undefined, this);
468138
468138
  $3[89] = t28;
468139
468139
  } else {
@@ -469153,7 +469153,7 @@ function Passes({
469153
469153
  children: /* @__PURE__ */ jsx_dev_runtime303.jsxDEV(ThemedText, {
469154
469154
  dimColor: true,
469155
469155
  children: [
469156
- referrerReward ? `Share a free week of Claude Code with friends. If they love it and subscribe, you'll get ${formatCreditAmount(referrerReward)} of extra usage to keep building. ` : "Share a free week of Claude Code with friends. ",
469156
+ referrerReward ? `Share a free week of Cody with friends. If they love it and subscribe, you'll get ${formatCreditAmount(referrerReward)} of extra usage to keep building. ` : "Share a free week of Cody with friends. ",
469157
469157
  /* @__PURE__ */ jsx_dev_runtime303.jsxDEV(Link, {
469158
469158
  url: referrerReward ? "https://support.claude.com/en/articles/13456702-claude-code-guest-passes" : "https://support.claude.com/en/articles/12875061-claude-code-guest-passes",
469159
469159
  children: "Terms apply."
@@ -469237,9 +469237,9 @@ var init_passes2 = __esm(() => {
469237
469237
  get description() {
469238
469238
  const reward = getCachedReferrerReward();
469239
469239
  if (reward) {
469240
- return "Share a free week of Claude Code with friends and earn extra usage";
469240
+ return "Share a free week of Cody with friends and earn extra usage";
469241
469241
  }
469242
- return "Share a free week of Claude Code with friends";
469242
+ return "Share a free week of Cody with friends";
469243
469243
  },
469244
469244
  get isHidden() {
469245
469245
  const { eligible: eligible2, hasCache } = checkCachedPassesEligibility();
@@ -478076,7 +478076,7 @@ var init_plugin2 = __esm(() => {
478076
478076
  type: "local-jsx",
478077
478077
  name: "plugin",
478078
478078
  aliases: ["plugins", "marketplace"],
478079
- description: "Manage Claude Code plugins",
478079
+ description: "Manage Cody plugins",
478080
478080
  immediate: true,
478081
478081
  load: () => Promise.resolve().then(() => (init_plugin(), exports_plugin))
478082
478082
  };
@@ -480328,7 +480328,7 @@ function getNativeMessagingHostsDirs() {
480328
480328
  if (platform6 === "windows") {
480329
480329
  const home = homedir30();
480330
480330
  const appData = process.env.APPDATA || join121(home, "AppData", "Local");
480331
- return [join121(appData, "Claude Code", "ChromeNativeHost")];
480331
+ return [join121(appData, "Cody", "ChromeNativeHost")];
480332
480332
  }
480333
480333
  return getAllNativeMessagingHostsDirs().map(({ path: path23 }) => path23);
480334
480334
  }
@@ -480339,7 +480339,7 @@ async function installChromeNativeHostManifest(manifestBinaryPath) {
480339
480339
  }
480340
480340
  const manifest = {
480341
480341
  name: NATIVE_HOST_IDENTIFIER,
480342
- description: "Claude Code Browser Extension Native Host",
480342
+ description: "Cody Browser Extension Native Host",
480343
480343
  path: manifestBinaryPath,
480344
480344
  type: "stdio",
480345
480345
  allowed_origins: [
@@ -480407,11 +480407,11 @@ async function createWrapperScript(command18) {
480407
480407
  const wrapperPath = platform6 === "windows" ? join121(chromeDir, "chrome-native-host.bat") : join121(chromeDir, "chrome-native-host");
480408
480408
  const scriptContent = platform6 === "windows" ? `@echo off
480409
480409
  REM Chrome native host wrapper script
480410
- REM Generated by Claude Code - do not edit manually
480410
+ REM Generated by Cody - do not edit manually
480411
480411
  ${command18}
480412
480412
  ` : `#!/bin/sh
480413
480413
  # Chrome native host wrapper script
480414
- # Generated by Claude Code - do not edit manually
480414
+ # Generated by Cody - do not edit manually
480415
480415
  exec ${command18}
480416
480416
  `;
480417
480417
  const existingContent = await readFile49(wrapperPath, "utf-8").catch(() => null);
@@ -480664,7 +480664,7 @@ function ClaudeInChromeMenu(t0) {
480664
480664
  let t6;
480665
480665
  if ($3[20] === Symbol.for("react.memo_cache_sentinel")) {
480666
480666
  t6 = /* @__PURE__ */ jsx_dev_runtime344.jsxDEV(ThemedText, {
480667
- children: "Claude in Chrome works with the Chrome extension to let you control your browser directly from Claude Code. Navigate websites, fill forms, capture screenshots, record GIFs, and debug with console logs and network requests."
480667
+ children: "Claude in Chrome works with the Chrome extension to let you control your browser directly from Cody. Navigate websites, fill forms, capture screenshots, record GIFs, and debug with console logs and network requests."
480668
480668
  }, undefined, false, undefined, this);
480669
480669
  $3[20] = t6;
480670
480670
  } else {
@@ -480908,7 +480908,7 @@ var init_stickers2 = __esm(() => {
480908
480908
  stickers = {
480909
480909
  type: "local",
480910
480910
  name: "stickers",
480911
- description: "Order Claude Code stickers",
480911
+ description: "Order Cody stickers",
480912
480912
  supportsNonInteractive: false,
480913
480913
  load: () => Promise.resolve().then(() => (init_stickers(), exports_stickers))
480914
480914
  };
@@ -482120,7 +482120,7 @@ var init_model3 = __esm(() => {
482120
482120
  type: "local-jsx",
482121
482121
  name: "model",
482122
482122
  get description() {
482123
- return `Set the AI model for Claude Code (currently ${renderModelName(getMainLoopModel())})`;
482123
+ return `Set the AI model for Cody (currently ${renderModelName(getMainLoopModel())})`;
482124
482124
  },
482125
482125
  argumentHint: "[model]",
482126
482126
  get immediate() {
@@ -483266,7 +483266,7 @@ var init_statusline = __esm(() => {
483266
483266
  init_constants3();
483267
483267
  statusline = {
483268
483268
  type: "prompt",
483269
- description: "Set up Claude Code's status line UI",
483269
+ description: "Set up Cody's status line UI",
483270
483270
  contentLength: 0,
483271
483271
  aliases: [],
483272
483272
  name: "statusline",
@@ -484978,7 +484978,7 @@ function Stats2(t0) {
484978
484978
  children: [
484979
484979
  /* @__PURE__ */ jsx_dev_runtime358.jsxDEV(Spinner, {}, undefined, false, undefined, this),
484980
484980
  /* @__PURE__ */ jsx_dev_runtime358.jsxDEV(ThemedText, {
484981
- children: " Loading your Claude Code stats\u2026"
484981
+ children: " Loading your Cody stats\u2026"
484982
484982
  }, undefined, false, undefined, this)
484983
484983
  ]
484984
484984
  }, undefined, true, undefined, this);
@@ -485139,7 +485139,7 @@ function StatsContent(t0) {
485139
485139
  marginTop: 1,
485140
485140
  children: /* @__PURE__ */ jsx_dev_runtime358.jsxDEV(ThemedText, {
485141
485141
  color: "warning",
485142
- children: "No stats available yet. Start using Claude Code!"
485142
+ children: "No stats available yet. Start using Cody!"
485143
485143
  }, undefined, false, undefined, this)
485144
485144
  }, undefined, false, undefined, this);
485145
485145
  $3[15] = t72;
@@ -486368,7 +486368,7 @@ var init_stats3 = __esm(() => {
486368
486368
  stats = {
486369
486369
  type: "local-jsx",
486370
486370
  name: "stats",
486371
- description: "Show your Claude Code usage statistics and activity",
486371
+ description: "Show your Cody usage statistics and activity",
486372
486372
  load: () => Promise.resolve().then(() => (init_stats2(), exports_stats))
486373
486373
  };
486374
486374
  stats_default = stats;
@@ -487132,7 +487132,7 @@ USER INSTRUCTIONS TO CLAUDE:
487132
487132
  `) || "";
487133
487133
  const horizonText = insights.on_the_horizon?.opportunities?.map((o5) => `- ${o5.title}: ${o5.whats_possible}`).join(`
487134
487134
  `) || "";
487135
- const atAGlancePrompt = `You're writing an "At a Glance" summary for a Claude Code usage insights report for Claude Code users. The goal is to help them understand their usage and improve how they can use Claude better, especially as models improve.
487135
+ const atAGlancePrompt = `You're writing an "At a Glance" summary for a Cody usage insights report for Cody users. The goal is to help them understand their usage and improve how they can use Claude better, especially as models improve.
487136
487136
 
487137
487137
  Use this 4-part structure:
487138
487138
 
@@ -487140,7 +487140,7 @@ Use this 4-part structure:
487140
487140
 
487141
487141
  2. **What's hindering you** - Split into (a) Claude's fault (misunderstandings, wrong approaches, bugs) and (b) user-side friction (not providing enough context, environment issues -- ideally more general than just one project). Be honest but constructive.
487142
487142
 
487143
- 3. **Quick wins to try** - Specific Claude Code features they could try from the examples below, or a workflow technique if you think it's really compelling. (Avoid stuff like "Ask Claude to confirm before taking actions" or "Type out more context up front" which are less compelling.)
487143
+ 3. **Quick wins to try** - Specific Cody features they could try from the examples below, or a workflow technique if you think it's really compelling. (Avoid stuff like "Ask Claude to confirm before taking actions" or "Type out more context up front" which are less compelling.)
487144
487144
 
487145
487145
  4. **Ambitious workflows for better models** - As we move to much more capable models over the next 3-6 months, what should they prepare for? What workflows that seem impossible now will become possible? Draw from the appropriate section below.
487146
487146
 
@@ -487329,7 +487329,7 @@ function generateHtmlReport(data, insights) {
487329
487329
  ` : "";
487330
487330
  const interactionStyle = insights.interaction_style;
487331
487331
  const interactionHtml = interactionStyle?.narrative ? `
487332
- <h2 id="section-usage">How You Use Claude Code</h2>
487332
+ <h2 id="section-usage">How You Use Cody</h2>
487333
487333
  <div class="narrative">
487334
487334
  ${markdownToHtml(interactionStyle.narrative)}
487335
487335
  ${interactionStyle.key_pattern ? `<div class="key-insight"><strong>Key pattern:</strong> ${escapeXmlAttr(interactionStyle.key_pattern)}</div>` : ""}
@@ -487368,7 +487368,7 @@ function generateHtmlReport(data, insights) {
487368
487368
  <h2 id="section-features">Existing CC Features to Try</h2>
487369
487369
  <div class="claude-md-section">
487370
487370
  <h3>Suggested CLAUDE.md Additions</h3>
487371
- <p style="font-size: 12px; color: #64748b; margin-bottom: 12px;">Just copy this into Claude Code to add it to your CLAUDE.md.</p>
487371
+ <p style="font-size: 12px; color: #64748b; margin-bottom: 12px;">Just copy this into Cody to add it to your CLAUDE.md.</p>
487372
487372
  <div class="claude-md-actions">
487373
487373
  <button class="copy-all-btn" onclick="copyAllCheckedClaudeMd()">Copy All Checked</button>
487374
487374
  </div>
@@ -487385,7 +487385,7 @@ function generateHtmlReport(data, insights) {
487385
487385
  </div>
487386
487386
  ` : ""}
487387
487387
  ${suggestions.features_to_try && suggestions.features_to_try.length > 0 ? `
487388
- <p style="font-size: 13px; color: #64748b; margin-bottom: 12px;">Just copy this into Claude Code and it'll set it up for you.</p>
487388
+ <p style="font-size: 13px; color: #64748b; margin-bottom: 12px;">Just copy this into Cody and it'll set it up for you.</p>
487389
487389
  <div class="features-section">
487390
487390
  ${suggestions.features_to_try.map((feat) => `
487391
487391
  <div class="feature-card">
@@ -487407,8 +487407,8 @@ function generateHtmlReport(data, insights) {
487407
487407
  </div>
487408
487408
  ` : ""}
487409
487409
  ${suggestions.usage_patterns && suggestions.usage_patterns.length > 0 ? `
487410
- <h2 id="section-patterns">New Ways to Use Claude Code</h2>
487411
- <p style="font-size: 13px; color: #64748b; margin-bottom: 12px;">Just copy this into Claude Code and it'll walk you through it.</p>
487410
+ <h2 id="section-patterns">New Ways to Use Cody</h2>
487411
+ <p style="font-size: 13px; color: #64748b; margin-bottom: 12px;">Just copy this into Cody and it'll walk you through it.</p>
487412
487412
  <div class="patterns-section">
487413
487413
  ${suggestions.usage_patterns.map((pat) => `
487414
487414
  <div class="pattern-card">
@@ -487417,7 +487417,7 @@ function generateHtmlReport(data, insights) {
487417
487417
  ${pat.detail ? `<div class="pattern-detail">${escapeXmlAttr(pat.detail)}</div>` : ""}
487418
487418
  ${pat.copyable_prompt ? `
487419
487419
  <div class="copyable-prompt-section">
487420
- <div class="prompt-label">Paste into Claude Code:</div>
487420
+ <div class="prompt-label">Paste into Cody:</div>
487421
487421
  <div class="copyable-prompt-row">
487422
487422
  <code class="copyable-prompt">${escapeXmlAttr(pat.copyable_prompt)}</code>
487423
487423
  <button class="copy-btn" onclick="copyText(this)">Copy</button>
@@ -487439,7 +487439,7 @@ function generateHtmlReport(data, insights) {
487439
487439
  <div class="horizon-title">${escapeXmlAttr(opp.title || "")}</div>
487440
487440
  <div class="horizon-possible">${escapeXmlAttr(opp.whats_possible || "")}</div>
487441
487441
  ${opp.how_to_try ? `<div class="horizon-tip"><strong>Getting started:</strong> ${escapeXmlAttr(opp.how_to_try)}</div>` : ""}
487442
- ${opp.copyable_prompt ? `<div class="pattern-prompt"><div class="prompt-label">Paste into Claude Code:</div><code>${escapeXmlAttr(opp.copyable_prompt)}</code><button class="copy-btn" onclick="copyText(this)">Copy</button></div>` : ""}
487442
+ ${opp.copyable_prompt ? `<div class="pattern-prompt"><div class="prompt-label">Paste into Cody:</div><code>${escapeXmlAttr(opp.copyable_prompt)}</code><button class="copy-btn" onclick="copyText(this)">Copy</button></div>` : ""}
487443
487443
  </div>
487444
487444
  `).join("")}
487445
487445
  </div>
@@ -487708,13 +487708,13 @@ function generateHtmlReport(data, insights) {
487708
487708
  <html>
487709
487709
  <head>
487710
487710
  <meta charset="utf-8">
487711
- <title>Claude Code Insights</title>
487711
+ <title>Cody Insights</title>
487712
487712
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
487713
487713
  <style>${css}</style>
487714
487714
  </head>
487715
487715
  <body>
487716
487716
  <div class="container">
487717
- <h1>Claude Code Insights</h1>
487717
+ <h1>Cody Insights</h1>
487718
487718
  <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>
487719
487719
 
487720
487720
  ${atAGlanceHtml}
@@ -487778,7 +487778,7 @@ function generateHtmlReport(data, insights) {
487778
487778
  <div class="chart-title">Multi-Clauding (Parallel Sessions)</div>
487779
487779
  ${data.multi_clauding.overlap_events === 0 ? `
487780
487780
  <p style="font-size: 14px; color: #64748b; padding: 8px 0;">
487781
- No parallel session usage detected. You typically work with one Claude Code session at a time.
487781
+ No parallel session usage detected. You typically work with one Cody session at a time.
487782
487782
  </p>
487783
487783
  ` : `
487784
487784
  <div style="display: flex; gap: 24px; margin: 12px 0;">
@@ -487796,7 +487796,7 @@ function generateHtmlReport(data, insights) {
487796
487796
  </div>
487797
487797
  </div>
487798
487798
  <p style="font-size: 13px; color: #475569; margin-top: 12px;">
487799
- You run multiple Claude Code sessions simultaneously. Multi-clauding is detected when sessions
487799
+ You run multiple Cody sessions simultaneously. Multi-clauding is detected when sessions
487800
487800
  overlap in time, suggesting parallel workflows.
487801
487801
  </p>
487802
487802
  `}
@@ -488097,7 +488097,7 @@ function isValidSessionFacets(obj) {
488097
488097
  const o5 = obj;
488098
488098
  return typeof o5.underlying_goal === "string" && typeof o5.outcome === "string" && typeof o5.brief_summary === "string" && o5.goal_categories !== null && typeof o5.goal_categories === "object" && o5.user_satisfaction_counts !== null && typeof o5.user_satisfaction_counts === "object" && o5.friction_counts !== null && typeof o5.friction_counts === "object";
488099
488099
  }
488100
- var EXTENSION_TO_LANGUAGE, LABEL_MAP, FACET_EXTRACTION_PROMPT = `Analyze this Claude Code session and extract structured facets.
488100
+ var EXTENSION_TO_LANGUAGE, LABEL_MAP, FACET_EXTRACTION_PROMPT = `Analyze this Cody session and extract structured facets.
488101
488101
 
488102
488102
  CRITICAL GUIDELINES:
488103
488103
 
@@ -488123,7 +488123,7 @@ CRITICAL GUIDELINES:
488123
488123
  4. If very short or just warmup, use warmup_minimal for goal_category
488124
488124
 
488125
488125
  SESSION:
488126
- `, SUMMARIZE_CHUNK_PROMPT = `Summarize this portion of a Claude Code session transcript. Focus on:
488126
+ `, SUMMARIZE_CHUNK_PROMPT = `Summarize this portion of a Cody session transcript. Focus on:
488127
488127
  1. What the user asked for
488128
488128
  2. What Claude did (tools used, files modified)
488129
488129
  3. Any friction or issues
@@ -488224,12 +488224,12 @@ var init_insights = __esm(() => {
488224
488224
  INSIGHT_SECTIONS = [
488225
488225
  {
488226
488226
  name: "project_areas",
488227
- prompt: `Analyze this Claude Code usage data and identify project areas.
488227
+ prompt: `Analyze this Cody usage data and identify project areas.
488228
488228
 
488229
488229
  RESPOND WITH ONLY A VALID JSON OBJECT:
488230
488230
  {
488231
488231
  "areas": [
488232
- {"name": "Area name", "session_count": N, "description": "2-3 sentences about what was worked on and how Claude Code was used."}
488232
+ {"name": "Area name", "session_count": N, "description": "2-3 sentences about what was worked on and how Cody was used."}
488233
488233
  ]
488234
488234
  }
488235
488235
 
@@ -488238,18 +488238,18 @@ Include 4-5 areas. Skip internal CC operations.`,
488238
488238
  },
488239
488239
  {
488240
488240
  name: "interaction_style",
488241
- prompt: `Analyze this Claude Code usage data and describe the user's interaction style.
488241
+ prompt: `Analyze this Cody usage data and describe the user's interaction style.
488242
488242
 
488243
488243
  RESPOND WITH ONLY A VALID JSON OBJECT:
488244
488244
  {
488245
- "narrative": "2-3 paragraphs analyzing HOW the user interacts with Claude Code. Use second person 'you'. Describe patterns: iterate quickly vs detailed upfront specs? Interrupt often or let Claude run? Include specific examples. Use **bold** for key insights.",
488245
+ "narrative": "2-3 paragraphs analyzing HOW the user interacts with Cody. Use second person 'you'. Describe patterns: iterate quickly vs detailed upfront specs? Interrupt often or let Claude run? Include specific examples. Use **bold** for key insights.",
488246
488246
  "key_pattern": "One sentence summary of most distinctive interaction style"
488247
488247
  }`,
488248
488248
  maxTokens: 8192
488249
488249
  },
488250
488250
  {
488251
488251
  name: "what_works",
488252
- prompt: `Analyze this Claude Code usage data and identify what's working well for this user. Use second person ("you").
488252
+ prompt: `Analyze this Cody usage data and identify what's working well for this user. Use second person ("you").
488253
488253
 
488254
488254
  RESPOND WITH ONLY A VALID JSON OBJECT:
488255
488255
  {
@@ -488264,7 +488264,7 @@ Include 3 impressive workflows.`,
488264
488264
  },
488265
488265
  {
488266
488266
  name: "friction_analysis",
488267
- prompt: `Analyze this Claude Code usage data and identify friction points for this user. Use second person ("you").
488267
+ prompt: `Analyze this Cody usage data and identify friction points for this user. Use second person ("you").
488268
488268
 
488269
488269
  RESPOND WITH ONLY A VALID JSON OBJECT:
488270
488270
  {
@@ -488279,7 +488279,7 @@ Include 3 friction categories with 2 examples each.`,
488279
488279
  },
488280
488280
  {
488281
488281
  name: "suggestions",
488282
- prompt: `Analyze this Claude Code usage data and suggest improvements.
488282
+ prompt: `Analyze this Cody usage data and suggest improvements.
488283
488283
 
488284
488284
  ## CC FEATURES REFERENCE (pick from these for features_to_try):
488285
488285
  1. **MCP Servers**: Connect Claude to external tools, databases, and APIs via Model Context Protocol.
@@ -488322,7 +488322,7 @@ IMPORTANT for features_to_try: Pick 2-3 from the CC FEATURES REFERENCE above. In
488322
488322
  },
488323
488323
  {
488324
488324
  name: "on_the_horizon",
488325
- prompt: `Analyze this Claude Code usage data and identify future opportunities.
488325
+ prompt: `Analyze this Cody usage data and identify future opportunities.
488326
488326
 
488327
488327
  RESPOND WITH ONLY A VALID JSON OBJECT:
488328
488328
  {
@@ -488338,7 +488338,7 @@ Include 3 opportunities. Think BIG - autonomous workflows, parallel agents, iter
488338
488338
  ...[],
488339
488339
  {
488340
488340
  name: "fun_ending",
488341
- prompt: `Analyze this Claude Code usage data and find a memorable moment.
488341
+ prompt: `Analyze this Cody usage data and find a memorable moment.
488342
488342
 
488343
488343
  RESPOND WITH ONLY A VALID JSON OBJECT:
488344
488344
  {
@@ -488368,7 +488368,7 @@ Find something genuinely interesting or amusing from the session summaries.`,
488368
488368
  usageReport = {
488369
488369
  type: "prompt",
488370
488370
  name: "insights",
488371
- description: "Generate a report analyzing your Claude Code sessions",
488371
+ description: "Generate a report analyzing your Cody sessions",
488372
488372
  contentLength: 0,
488373
488373
  progressMessage: "analyzing your sessions",
488374
488374
  source: "builtin",
@@ -488400,7 +488400,7 @@ ${atAGlance.whats_hindering ? `**What's hindering you:** ${atAGlance.whats_hinde
488400
488400
  ${atAGlance.quick_wins ? `**Quick wins to try:** ${atAGlance.quick_wins} See _Features to Try_.` : ""}
488401
488401
 
488402
488402
  ${atAGlance.ambitious_workflows ? `**Ambitious workflows:** ${atAGlance.ambitious_workflows} See _On the Horizon_.` : ""}` : "_No insights generated_";
488403
- const header = `# Claude Code Insights
488403
+ const header = `# Cody Insights
488404
488404
 
488405
488405
  ${stats2}
488406
488406
  ${data.date_range.start} to ${data.date_range.end}
@@ -488412,7 +488412,7 @@ Your full shareable insights report is ready: ${reportUrl}${uploadHint}`;
488412
488412
  return [
488413
488413
  {
488414
488414
  type: "text",
488415
- text: `The user just ran /insights to generate a usage report analyzing their Claude Code sessions.
488415
+ text: `The user just ran /insights to generate a usage report analyzing their Cody sessions.
488416
488416
 
488417
488417
  Here is the full insights data:
488418
488418
  ${jsonStringify(insights, null, 2)}
@@ -493776,7 +493776,7 @@ async function execPromptHook(hook, hookName, hookEvent, jsonInput, signal, tool
493776
493776
  const response7 = await queryModelWithoutStreaming({
493777
493777
  messages: messagesToQuery,
493778
493778
  systemPrompt: asSystemPrompt([
493779
- `You are evaluating a hook in Claude Code.
493779
+ `You are evaluating a hook in Cody.
493780
493780
 
493781
493781
  Your response must be a JSON object matching one of the following schemas:
493782
493782
  1. If the condition is met, return: {"ok": true}
@@ -493942,7 +493942,7 @@ async function execAgentHook(hook, hookName, hookEvent, jsonInput, signal, toolU
493942
493942
  structuredOutputTool
493943
493943
  ];
493944
493944
  const systemPrompt = asSystemPrompt([
493945
- `You are verifying a stop condition in Claude Code. Your task is to verify that the agent completed the given plan. The conversation transcript is available at: ${transcriptPath}
493945
+ `You are verifying a stop condition in Cody. Your task is to verify that the agent completed the given plan. The conversation transcript is available at: ${transcriptPath}
493946
493946
  You can read this file to analyze the conversation history if needed.
493947
493947
 
493948
493948
  Use the available tools to inspect the codebase and verify the condition.
@@ -498184,7 +498184,7 @@ function getSimpleDoingTasksSection() {
498184
498184
  ...[]
498185
498185
  ];
498186
498186
  const userHelpSubitems = [
498187
- `/help: Get help with using Claude Code`,
498187
+ `/help: Get help with using Cody`,
498188
498188
  `To give feedback, users should ${"report at https://github.com/AINative-Studio/core/issues"}`
498189
498189
  ];
498190
498190
  const items = [
@@ -498308,7 +498308,7 @@ function getSimpleToneAndStyleSection() {
498308
498308
  async function getSystemPrompt(tools, model, additionalWorkingDirectories, mcpClients) {
498309
498309
  if (isEnvTruthy(process.env.CLAUDE_CODE_SIMPLE)) {
498310
498310
  return [
498311
- `You are Claude Code, Anthropic's official CLI for Claude.
498311
+ `You are Cody, AINative Studio's AI-powered coding assistant.
498312
498312
 
498313
498313
  CWD: ${getCwd()}
498314
498314
  Date: ${getSessionStartDate()}`
@@ -498416,7 +498416,7 @@ async function computeSimpleEnvInfo(modelId, additionalWorkingDirectories) {
498416
498416
  knowledgeCutoffMessage,
498417
498417
  `The most recent Claude model family is Claude 4.5/4.6. Model IDs \u2014 Opus 4.6: '${CLAUDE_4_5_OR_4_6_MODEL_IDS.opus}', Sonnet 4.6: '${CLAUDE_4_5_OR_4_6_MODEL_IDS.sonnet}', Haiku 4.5: '${CLAUDE_4_5_OR_4_6_MODEL_IDS.haiku}'. When building AI applications, default to the latest and most capable Claude models.`,
498418
498418
  `Cody CLI is available as a CLI in the terminal, desktop app (Mac/Windows), web app (ainative.studio/code), and IDE extensions (VS Code, JetBrains).`,
498419
- `Fast mode for Claude Code uses the same ${FRONTIER_MODEL_NAME} model with faster output. It does NOT switch to a different model. It can be toggled with /fast.`
498419
+ `Fast mode for Cody uses the same ${FRONTIER_MODEL_NAME} model with faster output. It does NOT switch to a different model. It can be toggled with /fast.`
498420
498420
  ].filter((item) => item !== null);
498421
498421
  return [
498422
498422
  `# Environment`,
@@ -498503,7 +498503,7 @@ function getFunctionResultClearingSection(model) {
498503
498503
 
498504
498504
  Old tool results will be automatically cleared from context to free up space. The ${config9.keepRecent} most recent results are always kept.`;
498505
498505
  }
498506
- var getCachedMCConfigForFRC = null, DISCOVER_SKILLS_TOOL_NAME = null, SYSTEM_PROMPT_DYNAMIC_BOUNDARY = "__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__", FRONTIER_MODEL_NAME = "Claude Opus 4.6", CLAUDE_4_5_OR_4_6_MODEL_IDS, DEFAULT_AGENT_PROMPT = `You are an agent for Claude Code, Anthropic's official CLI for Claude. Given the user's message, you should use the tools available to complete the task. Complete the task fully\u2014don't gold-plate, but don't leave it half-done. When you complete the task, respond with a concise report covering what was done and any key findings \u2014 the caller will relay this to the user, so it only needs the essentials.`, SUMMARIZE_TOOL_RESULTS_SECTION = `When working with tool results, write down any important information you might need later in your response, as the original tool result may be cleared later.`;
498506
+ var getCachedMCConfigForFRC = null, DISCOVER_SKILLS_TOOL_NAME = null, SYSTEM_PROMPT_DYNAMIC_BOUNDARY = "__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__", FRONTIER_MODEL_NAME = "Claude Opus 4.6", CLAUDE_4_5_OR_4_6_MODEL_IDS, DEFAULT_AGENT_PROMPT = `You are an agent for Cody, Anthropic's official CLI for Claude. Given the user's message, you should use the tools available to complete the task. Complete the task fully\u2014don't gold-plate, but don't leave it half-done. When you complete the task, respond with a concise report covering what was done and any key findings \u2014 the caller will relay this to the user, so it only needs the essentials.`, SUMMARIZE_TOOL_RESULTS_SECTION = `When working with tool results, write down any important information you might need later in your response, as the original tool result may be cleared later.`;
498507
498507
  var init_prompts4 = __esm(() => {
498508
498508
  init_env();
498509
498509
  init_git();
@@ -504711,7 +504711,7 @@ function CostThresholdDialog(t0) {
504711
504711
  let t4;
504712
504712
  if ($3[4] !== onDone || $3[5] !== t32) {
504713
504713
  t4 = /* @__PURE__ */ jsx_dev_runtime364.jsxDEV(Dialog, {
504714
- title: "You've spent $5 on the Anthropic API this session.",
504714
+ title: "You've spent $5 on the AINative API this session.",
504715
504715
  onCancel: onDone,
504716
504716
  children: [
504717
504717
  t1,
@@ -511263,7 +511263,7 @@ function useDiffInIDE({
511263
511263
  const isUnmounted = import_react210.useRef(false);
511264
511264
  const [hasError, setHasError] = import_react210.useState(false);
511265
511265
  const sha = import_react210.useMemo(() => randomUUID35().slice(0, 6), []);
511266
- const tabName = import_react210.useMemo(() => `\u273B [Claude Code] ${basename42(filePath)} (${sha}) \u29C9`, [filePath, sha]);
511266
+ const tabName = import_react210.useMemo(() => `\u273B [Cody] ${basename42(filePath)} (${sha}) \u29C9`, [filePath, sha]);
511267
511267
  const shouldShowDiffInIDE = hasAccessToIDEExtensionDiffFeature(toolUseContext.options.mcpClients) && getGlobalConfig().diffTool === "auto" && !filePath.endsWith(".ipynb");
511268
511268
  const ideName = getConnectedIdeName(toolUseContext.options.mcpClients) ?? "IDE";
511269
511269
  async function showDiff() {
@@ -514205,7 +514205,7 @@ function buildPlanApprovalOptions({
514205
514205
  });
514206
514206
  if (showUltraplan) {
514207
514207
  options.push({
514208
- label: "No, refine with Ultraplan on Claude Code on the web",
514208
+ label: "No, refine with Ultraplan on Cody on the web",
514209
514209
  value: "ultraplan"
514210
514210
  });
514211
514211
  }
@@ -517474,14 +517474,14 @@ function permissionComponentForTool(tool) {
517474
517474
  function getNotificationMessage(toolUseConfirm) {
517475
517475
  const toolName = toolUseConfirm.tool.userFacingName(toolUseConfirm.input);
517476
517476
  if (toolUseConfirm.tool === ExitPlanModeV2Tool) {
517477
- return "Claude Code needs your approval for the plan";
517477
+ return "Cody needs your approval for the plan";
517478
517478
  }
517479
517479
  if (toolUseConfirm.tool === EnterPlanModeTool) {
517480
- return "Claude Code wants to enter plan mode";
517480
+ return "Cody wants to enter plan mode";
517481
517481
  }
517482
517482
  if (false) {}
517483
517483
  if (!toolName || toolName.trim() === "") {
517484
- return "Claude Code needs your attention";
517484
+ return "Cody needs your attention";
517485
517485
  }
517486
517486
  return `Claude needs your permission to use ${toolName}`;
517487
517487
  }
@@ -518049,7 +518049,7 @@ function ElicitationFormDialog({
518049
518049
  const currentFieldIsText = currentField !== undefined && isTextField(currentField.schema) && !isEnumSchema(currentField.schema);
518050
518050
  const isEditingTextField = currentFieldIsText && !focusedButton;
518051
518051
  useRegisterOverlay("elicitation");
518052
- useNotifyAfterTimeout("Claude Code needs your input", "elicitation_dialog");
518052
+ useNotifyAfterTimeout("Cody needs your input", "elicitation_dialog");
518053
518053
  const syncTextInput = import_react220.useCallback((fieldIndex) => {
518054
518054
  if (fieldIndex === undefined) {
518055
518055
  setTextInputValue("");
@@ -518900,7 +518900,7 @@ function ElicitationURLDialog({
518900
518900
  const phaseRef = import_react220.useRef("prompt");
518901
518901
  const [focusedButton, setFocusedButton] = import_react220.useState("accept");
518902
518902
  const showCancel = waitingState?.showCancel ?? false;
518903
- useNotifyAfterTimeout("Claude Code needs your input", "elicitation_url_dialog");
518903
+ useNotifyAfterTimeout("Cody needs your input", "elicitation_url_dialog");
518904
518904
  useRegisterOverlay("elicitation-url");
518905
518905
  phaseRef.current = phase;
518906
518906
  const onWaitingDismissRef = import_react220.useRef(onWaitingDismiss);
@@ -540017,7 +540017,7 @@ function TranscriptSharePrompt(t0) {
540017
540017
  }, undefined, true, undefined, this),
540018
540018
  /* @__PURE__ */ jsx_dev_runtime446.jsxDEV(ThemedText, {
540019
540019
  bold: true,
540020
- children: "Can Anthropic look at your session transcript to help us improve Claude Code?"
540020
+ children: "Can Anthropic look at your session transcript to help us improve Cody?"
540021
540021
  }, undefined, false, undefined, this)
540022
540022
  ]
540023
540023
  }, undefined, true, undefined, this);
@@ -540960,7 +540960,7 @@ function DesktopUpsellStartup(t0) {
540960
540960
  let t32;
540961
540961
  if ($3[5] === Symbol.for("react.memo_cache_sentinel")) {
540962
540962
  t32 = {
540963
- label: "Open in Claude Code Desktop",
540963
+ label: "Open in Cody Desktop",
540964
540964
  value: "try"
540965
540965
  };
540966
540966
  $3[5] = t32;
@@ -540993,7 +540993,7 @@ function DesktopUpsellStartup(t0) {
540993
540993
  t6 = /* @__PURE__ */ jsx_dev_runtime450.jsxDEV(ThemedBox_default, {
540994
540994
  marginBottom: 1,
540995
540995
  children: /* @__PURE__ */ jsx_dev_runtime450.jsxDEV(ThemedText, {
540996
- children: "Same Claude Code with visual diffs, live app preview, parallel sessions, and more."
540996
+ children: "Same Cody with visual diffs, live app preview, parallel sessions, and more."
540997
540997
  }, undefined, false, undefined, this)
540998
540998
  }, undefined, false, undefined, this);
540999
540999
  $3[8] = t6;
@@ -541011,7 +541011,7 @@ function DesktopUpsellStartup(t0) {
541011
541011
  let t8;
541012
541012
  if ($3[11] !== handleSelect || $3[12] !== t7) {
541013
541013
  t8 = /* @__PURE__ */ jsx_dev_runtime450.jsxDEV(PermissionDialog, {
541014
- title: "Try Claude Code Desktop",
541014
+ title: "Try Cody Desktop",
541015
541015
  children: /* @__PURE__ */ jsx_dev_runtime450.jsxDEV(ThemedBox_default, {
541016
541016
  flexDirection: "column",
541017
541017
  paddingX: 2,
@@ -541379,7 +541379,7 @@ var init_tipRegistry = __esm(() => {
541379
541379
  },
541380
541380
  {
541381
541381
  id: "paste-images-mac",
541382
- content: async () => "Paste images into Claude Code using control+v (not cmd+v!)",
541382
+ content: async () => "Paste images into Cody using control+v (not cmd+v!)",
541383
541383
  cooldownSessions: 10,
541384
541384
  isRelevant: async () => getPlatform() === "macos"
541385
541385
  },
@@ -541448,7 +541448,7 @@ var init_tipRegistry = __esm(() => {
541448
541448
  },
541449
541449
  {
541450
541450
  id: "desktop-app",
541451
- content: async () => "Run Claude Code locally or remotely using the Claude desktop app: clau.de/desktop",
541451
+ content: async () => "Run Cody locally or remotely using the Claude desktop app: clau.de/desktop",
541452
541452
  cooldownSessions: 15,
541453
541453
  isRelevant: async () => getPlatform() !== "linux"
541454
541454
  },
@@ -541456,7 +541456,7 @@ var init_tipRegistry = __esm(() => {
541456
541456
  id: "desktop-shortcut",
541457
541457
  content: async (ctx) => {
541458
541458
  const blue2 = color("suggestion", ctx.theme);
541459
- return `Continue your session in Claude Code Desktop with ${blue2("/desktop")}`;
541459
+ return `Continue your session in Cody Desktop with ${blue2("/desktop")}`;
541460
541460
  },
541461
541461
  cooldownSessions: 15,
541462
541462
  isRelevant: async () => {
@@ -541473,7 +541473,7 @@ var init_tipRegistry = __esm(() => {
541473
541473
  },
541474
541474
  {
541475
541475
  id: "mobile-app",
541476
- content: async () => "/mobile to use Claude Code from the Claude app on your phone",
541476
+ content: async () => "/mobile to use Cody from the Claude app on your phone",
541477
541477
  cooldownSessions: 15,
541478
541478
  isRelevant: async () => true
541479
541479
  },
@@ -541576,7 +541576,7 @@ ${blue2(`/plugin install vercel@${OFFICIAL_MARKETPLACE_NAME}`)}`;
541576
541576
  content: async (ctx) => {
541577
541577
  const claude = color("claude", ctx.theme);
541578
541578
  const reward = getCachedReferrerReward();
541579
- return reward ? `Share Claude Code and earn ${claude(formatCreditAmount(reward))} of extra usage \xB7 ${claude("/passes")}` : `You have free guest passes to share \xB7 ${claude("/passes")}`;
541579
+ return reward ? `Share Cody and earn ${claude(formatCreditAmount(reward))} of extra usage \xB7 ${claude("/passes")}` : `You have free guest passes to share \xB7 ${claude("/passes")}`;
541580
541580
  },
541581
541581
  cooldownSessions: 3,
541582
541582
  isRelevant: async () => {
@@ -545016,7 +545016,7 @@ async function _temp291() {
545016
545016
  priority: "high"
545017
545017
  };
545018
545018
  }
545019
- var NPM_DEPRECATION_MESSAGE = "Claude Code has switched from npm to native installer. Run `claude install` or see https://docs.anthropic.com/en/docs/claude-code/getting-started for more options.";
545019
+ var NPM_DEPRECATION_MESSAGE = "Cody has switched from npm to native installer. Run `claude install` or see https://docs.anthropic.com/en/docs/claude-code/getting-started for more options.";
545020
545020
  var init_useNpmDeprecationNotification = __esm(() => {
545021
545021
  init_doctorDiagnostic();
545022
545022
  init_envUtils();
@@ -545286,7 +545286,7 @@ async function _temp295() {
545286
545286
  children: [
545287
545287
  "Use your existing Claude ",
545288
545288
  subscriptionType,
545289
- " plan with Claude Code",
545289
+ " plan with Cody",
545290
545290
  /* @__PURE__ */ jsx_dev_runtime463.jsxDEV(ThemedText, {
545291
545291
  color: "text",
545292
545292
  dimColor: true,
@@ -547062,7 +547062,7 @@ function REPL({
547062
547062
  const [haikuTitle, setHaikuTitle] = import_react318.useState();
547063
547063
  const haikuTitleAttemptedRef = import_react318.useRef((initialMessages?.length ?? 0) > 0);
547064
547064
  const agentTitle = mainThreadAgentDefinition?.agentType;
547065
- const terminalTitle = sessionTitle ?? agentTitle ?? haikuTitle ?? "Claude Code";
547065
+ const terminalTitle = sessionTitle ?? agentTitle ?? haikuTitle ?? "Cody";
547066
547066
  const isWaitingForApproval = toolUseConfirmQueue.length > 0 || promptQueue.length > 0 || pendingWorkerRequest || pendingSandboxRequest;
547067
547067
  const isShowingLocalJSXCommand = toolJSX?.isLocalJSXCommand === true && toolJSX?.jsx != null;
547068
547068
  const titleIsAnimating = isLoading && !isWaitingForApproval && !isShowingLocalJSXCommand;
@@ -548944,8 +548944,8 @@ ${fileList}`);
548944
548944
  import_react318.useEffect(() => {
548945
548945
  const handleSuspend = () => {
548946
548946
  process.stdout.write(`
548947
- Claude Code has been suspended. Run \`fg\` to bring Claude Code back.
548948
- Note: ctrl + z now suspends Claude Code, ctrl + _ undoes input.
548947
+ Cody has been suspended. Run \`fg\` to bring Cody back.
548948
+ Note: ctrl + z now suspends Cody, ctrl + _ undoes input.
548949
548949
  `);
548950
548950
  };
548951
548951
  const handleResume = () => {
@@ -550876,7 +550876,7 @@ function PreflightStep(t0) {
550876
550876
  children: [
550877
550877
  /* @__PURE__ */ jsx_dev_runtime473.jsxDEV(ThemedText, {
550878
550878
  color: "error",
550879
- children: "Unable to connect to Anthropic services"
550879
+ children: "Unable to connect to AINative services"
550880
550880
  }, undefined, false, undefined, this),
550881
550881
  /* @__PURE__ */ jsx_dev_runtime473.jsxDEV(ThemedText, {
550882
550882
  color: "error",
@@ -550903,7 +550903,7 @@ function PreflightStep(t0) {
550903
550903
  }, undefined, false, undefined, this),
550904
550904
  /* @__PURE__ */ jsx_dev_runtime473.jsxDEV(ThemedText, {
550905
550905
  children: [
550906
- "Note: Claude Code might not be available in your country. Check supported countries at",
550906
+ "Note: Cody might not be available in your country. Check supported countries at",
550907
550907
  " ",
550908
550908
  /* @__PURE__ */ jsx_dev_runtime473.jsxDEV(ThemedText, {
550909
550909
  color: "suggestion",
@@ -552404,7 +552404,7 @@ function Onboarding({
552404
552404
  children: [
552405
552405
  /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedText, {
552406
552406
  bold: true,
552407
- children: "Use Claude Code's terminal setup?"
552407
+ children: "Use Cody's terminal setup?"
552408
552408
  }, undefined, false, undefined, this),
552409
552409
  /* @__PURE__ */ jsx_dev_runtime478.jsxDEV(ThemedBox_default, {
552410
552410
  flexDirection: "column",
@@ -552893,7 +552893,7 @@ function TrustDialog(t0) {
552893
552893
  }, undefined, true, undefined, this);
552894
552894
  t18 = /* @__PURE__ */ jsx_dev_runtime479.jsxDEV(ThemedText, {
552895
552895
  children: [
552896
- "Claude Code",
552896
+ "Cody",
552897
552897
  "'",
552898
552898
  "ll be able to read, edit, and execute files here."
552899
552899
  ]
@@ -553087,7 +553087,7 @@ function BypassPermissionsModeDialog(t0) {
553087
553087
  children: [
553088
553088
  /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(ThemedText, {
553089
553089
  children: [
553090
- "In Bypass Permissions mode, Claude Code will not ask for your approval before running potentially dangerous commands.",
553090
+ "In Bypass Permissions mode, Cody will not ask for your approval before running potentially dangerous commands.",
553091
553091
  /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(Newline, {}, undefined, false, undefined, this),
553092
553092
  "This mode should only be used in a sandboxed container/VM that has restricted internet access and can easily be restored if damaged."
553093
553093
  ]
@@ -553120,7 +553120,7 @@ function BypassPermissionsModeDialog(t0) {
553120
553120
  let t5;
553121
553121
  if ($3[5] !== onChange) {
553122
553122
  t5 = /* @__PURE__ */ jsx_dev_runtime480.jsxDEV(Dialog, {
553123
- title: "WARNING: Claude Code running in Bypass Permissions mode",
553123
+ title: "WARNING: Cody running in Bypass Permissions mode",
553124
553124
  color: "error",
553125
553125
  onCancel: handleEscape,
553126
553126
  children: [
@@ -553219,7 +553219,7 @@ function ClaudeInChromeOnboarding(t0) {
553219
553219
  if ($3[6] !== t4) {
553220
553220
  t5 = /* @__PURE__ */ jsx_dev_runtime481.jsxDEV(ThemedText, {
553221
553221
  children: [
553222
- "Claude in Chrome works with the Chrome extension to let you control your browser directly from Claude Code. You can navigate websites, fill forms, capture screenshots, record GIFs, and debug with console logs and network requests.",
553222
+ "Claude in Chrome works with the Chrome extension to let you control your browser directly from Cody. You can navigate websites, fill forms, capture screenshots, record GIFs, and debug with console logs and network requests.",
553223
553223
  t4
553224
553224
  ]
553225
553225
  }, undefined, true, undefined, this);
@@ -553850,13 +553850,13 @@ function ResumeTask({
553850
553850
  /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(Spinner, {}, undefined, false, undefined, this),
553851
553851
  /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
553852
553852
  bold: true,
553853
- children: "Loading Claude Code sessions\u2026"
553853
+ children: "Loading Cody sessions\u2026"
553854
553854
  }, undefined, false, undefined, this)
553855
553855
  ]
553856
553856
  }, undefined, true, undefined, this),
553857
553857
  /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
553858
553858
  dimColor: true,
553859
- children: retrying ? "Retrying\u2026" : "Fetching your Claude Code sessions\u2026"
553859
+ children: retrying ? "Retrying\u2026" : "Fetching your Cody sessions\u2026"
553860
553860
  }, undefined, false, undefined, this)
553861
553861
  ]
553862
553862
  }, undefined, true, undefined, this);
@@ -553869,7 +553869,7 @@ function ResumeTask({
553869
553869
  /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
553870
553870
  bold: true,
553871
553871
  color: "error",
553872
- children: "Error loading Claude Code sessions"
553872
+ children: "Error loading Cody sessions"
553873
553873
  }, undefined, false, undefined, this),
553874
553874
  renderErrorSpecificGuidance(loadErrorType),
553875
553875
  /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
@@ -553900,7 +553900,7 @@ function ResumeTask({
553900
553900
  /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
553901
553901
  bold: true,
553902
553902
  children: [
553903
- "No Claude Code sessions found",
553903
+ "No Cody sessions found",
553904
553904
  currentRepo && /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
553905
553905
  children: [
553906
553906
  " for ",
@@ -554099,7 +554099,7 @@ function renderErrorSpecificGuidance(errorType) {
554099
554099
  flexDirection: "row",
554100
554100
  children: /* @__PURE__ */ jsx_dev_runtime484.jsxDEV(ThemedText, {
554101
554101
  dimColor: true,
554102
- children: "Sorry, Claude Code encountered an error"
554102
+ children: "Sorry, Cody encountered an error"
554103
554103
  }, undefined, false, undefined, this)
554104
554104
  }, undefined, false, undefined, this);
554105
554105
  }
@@ -554419,7 +554419,7 @@ function TeleportRepoMismatchDialog(t0) {
554419
554419
  }, undefined, false, undefined, this),
554420
554420
  /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
554421
554421
  children: [
554422
- "Open Claude Code in ",
554422
+ "Open Cody in ",
554423
554423
  /* @__PURE__ */ jsx_dev_runtime486.jsxDEV(ThemedText, {
554424
554424
  bold: true,
554425
554425
  children: targetRepo
@@ -555332,7 +555332,7 @@ Tell the user that debug logging is now active at \`${debugLogPath}\`, ask them
555332
555332
  `;
555333
555333
  const prompt = `# Debug Skill
555334
555334
 
555335
- Help the user debug an issue they're encountering in this current Claude Code session.
555335
+ Help the user debug an issue they're encountering in this current Cody session.
555336
555336
  ${justEnabledSection}
555337
555337
  ## Session Debug Log
555338
555338
 
@@ -555357,7 +555357,7 @@ Remember that settings are in:
555357
555357
 
555358
555358
  1. Review the user's issue description
555359
555359
  2. The last ${DEFAULT_DEBUG_LINES_READ} lines show the debug file format. Look for [ERROR] and [WARN] entries, stack traces, and failure patterns across the file
555360
- 3. Consider launching the ${CLAUDE_CODE_GUIDE_AGENT_TYPE} subagent to understand the relevant Claude Code features
555360
+ 3. Consider launching the ${CLAUDE_CODE_GUIDE_AGENT_TYPE} subagent to understand the relevant Cody features
555361
555361
  4. Explain what you found in plain language
555362
555362
  5. Suggest concrete fixes or next steps
555363
555363
  `;
@@ -556432,7 +556432,7 @@ function registerStuckSkill() {
556432
556432
  }
556433
556433
  registerBundledSkill({
556434
556434
  name: "stuck",
556435
- description: "[ANT-ONLY] Investigate frozen/stuck/slow Claude Code sessions on this machine and post a diagnostic report to #claude-code-feedback.",
556435
+ description: "[ANT-ONLY] Investigate frozen/stuck/slow Cody sessions on this machine and post a diagnostic report to #claude-code-feedback.",
556436
556436
  userInvocable: true,
556437
556437
  async getPromptForCommand(args) {
556438
556438
  let prompt = STUCK_PROMPT;
@@ -556447,13 +556447,13 @@ ${args}
556447
556447
  }
556448
556448
  });
556449
556449
  }
556450
- var STUCK_PROMPT = `# /stuck \u2014 diagnose frozen/slow Claude Code sessions
556450
+ var STUCK_PROMPT = `# /stuck \u2014 diagnose frozen/slow Cody sessions
556451
556451
 
556452
- The user thinks another Claude Code session on this machine is frozen, stuck, or very slow. Investigate and post a report to #claude-code-feedback.
556452
+ The user thinks another Cody session on this machine is frozen, stuck, or very slow. Investigate and post a report to #claude-code-feedback.
556453
556453
 
556454
556454
  ## What to look for
556455
556455
 
556456
- Scan for other Claude Code processes (excluding the current one \u2014 PID is in \`process.pid\` but for shell commands just exclude the PID you see running this prompt). Process names are typically \`claude\` (installed) or \`cli\` (native dev build).
556456
+ Scan for other Cody processes (excluding the current one \u2014 PID is in \`process.pid\` but for shell commands just exclude the PID you see running this prompt). Process names are typically \`claude\` (installed) or \`cli\` (native dev build).
556457
556457
 
556458
556458
  Signs of a stuck session:
556459
556459
  - **High CPU (\u226590%) sustained** \u2014 likely an infinite loop. Sample twice, 1-2s apart, to confirm it's not a transient spike.
@@ -556465,7 +556465,7 @@ Signs of a stuck session:
556465
556465
 
556466
556466
  ## Investigation steps
556467
556467
 
556468
- 1. **List all Claude Code processes** (macOS/Linux):
556468
+ 1. **List all Cody processes** (macOS/Linux):
556469
556469
  \`\`\`
556470
556470
  ps -axo pid=,pcpu=,rss=,etime=,state=,comm=,command= | grep -E '(claude|cli)' | grep -v grep
556471
556471
  \`\`\`
@@ -556489,7 +556489,7 @@ If you did find a stuck/slow session, post to **#claude-code-feedback** (channel
556489
556489
 
556490
556490
  **Use a two-message structure** to keep the channel scannable:
556491
556491
 
556492
- 1. **Top-level message** \u2014 one short line: hostname, Claude Code version, and a terse symptom (e.g. "session PID 12345 pegged at 100% CPU for 10min" or "git subprocess hung in D state"). No code blocks, no details.
556492
+ 1. **Top-level message** \u2014 one short line: hostname, Cody version, and a terse symptom (e.g. "session PID 12345 pegged at 100% CPU for 10min" or "git subprocess hung in D state"). No code blocks, no details.
556493
556493
  2. **Thread reply** \u2014 the full diagnostic dump. Pass the top-level message's \`ts\` as \`thread_ts\`. Include:
556494
556494
  - PID, CPU%, RSS, state, uptime, command line, child processes
556495
556495
  - Your diagnosis of what's likely wrong
@@ -556513,7 +556513,7 @@ function generateSettingsSchema() {
556513
556513
  function registerUpdateConfigSkill() {
556514
556514
  registerBundledSkill({
556515
556515
  name: "update-config",
556516
- description: 'Use this skill to configure the Claude Code harness via settings.json. Automated behaviors ("from now on when X", "each time X", "whenever X", "before/after X") require hooks configured in settings.json - the harness executes these, not Claude, so memory/preferences cannot fulfill them. Also use for: permissions ("allow X", "add permission", "move permission to"), env vars ("set X=Y"), hook troubleshooting, or any changes to settings.json/settings.local.json files. Examples: "allow npm commands", "add bq permission to global settings", "move permission to user settings", "set DEBUG=true", "when claude stops show X". For simple settings like theme/model, use Config tool.',
556516
+ description: 'Use this skill to configure the Cody harness via settings.json. Automated behaviors ("from now on when X", "each time X", "whenever X", "before/after X") require hooks configured in settings.json - the harness executes these, not Claude, so memory/preferences cannot fulfill them. Also use for: permissions ("allow X", "add permission", "move permission to"), env vars ("set X=Y"), hook troubleshooting, or any changes to settings.json/settings.local.json files. Examples: "allow npm commands", "add bq permission to global settings", "move permission to user settings", "set DEBUG=true", "when claude stops show X". For simple settings like theme/model, use Config tool.',
556517
556517
  allowedTools: ["Read"],
556518
556518
  userInvocable: true,
556519
556519
  async getPromptForCommand(args) {
@@ -556642,7 +556642,7 @@ Plugin syntax: \`plugin-name@source\` where source is \`claude-code-marketplace\
556642
556642
  - \`syntaxHighlightingDisabled\`: Disable diff highlighting
556643
556643
  `, HOOKS_DOCS = `## Hooks Configuration
556644
556644
 
556645
- Hooks run commands at specific points in Claude Code's lifecycle.
556645
+ Hooks run commands at specific points in Cody's lifecycle.
556646
556646
 
556647
556647
  ### Hook Structure
556648
556648
  \`\`\`json
@@ -556841,7 +556841,7 @@ var init_updateConfig = __esm(() => {
556841
556841
  init_bundledSkills();
556842
556842
  UPDATE_CONFIG_PROMPT = `# Update Config Skill
556843
556843
 
556844
- Modify Claude Code configuration by updating settings.json files.
556844
+ Modify Cody configuration by updating settings.json files.
556845
556845
 
556846
556846
  ## When Hooks Are Required (Not Memory)
556847
556847
 
@@ -557141,7 +557141,7 @@ function cliOk(msg) {
557141
557141
 
557142
557142
  // src/commands/mcp/addCommand.ts
557143
557143
  function registerMcpAddCommand(mcp2) {
557144
- mcp2.command("add <name> <commandOrUrl> [args...]").description(`Add an MCP server to Claude Code.
557144
+ mcp2.command("add <name> <commandOrUrl> [args...]").description(`Add an MCP server to Cody.
557145
557145
 
557146
557146
  ` + `Examples:
557147
557147
  ` + ` # Add HTTP server:
@@ -557289,7 +557289,7 @@ var init_addCommand = __esm(() => {
557289
557289
  // src/commands/mcp/xaaIdpCommand.ts
557290
557290
  function registerMcpXaaIdpCommand(mcp2) {
557291
557291
  const xaaIdp = mcp2.command("xaa").description("Manage the XAA (SEP-990) IdP connection");
557292
- xaaIdp.command("setup").description("Configure the IdP connection (one-time setup for all XAA-enabled servers)").requiredOption("--issuer <url>", "IdP issuer URL (OIDC discovery)").requiredOption("--client-id <id>", "Claude Code's client_id at the IdP").option("--client-secret", "Read IdP client secret from MCP_XAA_IDP_CLIENT_SECRET env var").option("--callback-port <port>", "Fixed loopback callback port (only if IdP does not honor RFC 8252 port-any matching)").action((options) => {
557292
+ xaaIdp.command("setup").description("Configure the IdP connection (one-time setup for all XAA-enabled servers)").requiredOption("--issuer <url>", "IdP issuer URL (OIDC discovery)").requiredOption("--client-id <id>", "Cody's client_id at the IdP").option("--client-secret", "Read IdP client secret from MCP_XAA_IDP_CLIENT_SECRET env var").option("--callback-port <port>", "Fixed loopback callback port (only if IdP does not honor RFC 8252 port-any matching)").action((options) => {
557293
557293
  let issuerUrl;
557294
557294
  try {
557295
557295
  issuerUrl = new URL(options.issuer);
@@ -558173,7 +558173,7 @@ async function setup(cwd2, permissionMode, allowDangerouslySkipPermissions, work
558173
558173
  logForDiagnosticsNoPII("info", "setup_started");
558174
558174
  const nodeVersion = process.version.match(/^v(\d+)\./)?.[1];
558175
558175
  if (!nodeVersion || parseInt(nodeVersion) < 18) {
558176
- console.error(source_default.bold.red("Error: Claude Code requires Node.js version 18 or higher."));
558176
+ console.error(source_default.bold.red("Error: Cody requires Node.js version 18 or higher."));
558177
558177
  process.exit(1);
558178
558178
  }
558179
558179
  if (customSessionId) {
@@ -568410,7 +568410,7 @@ async function mcpResetChoicesHandler() {
568410
568410
  enableAllProjectMcpServers: false
568411
568411
  }));
568412
568412
  cliOk(`All project-scoped (.mcp.json) server approvals and rejections have been reset.
568413
- You will be prompted for approval next time you start Claude Code.`);
568413
+ You will be prompted for approval next time you start Cody.`);
568414
568414
  }
568415
568415
  var jsx_dev_runtime491;
568416
568416
  var init_mcp5 = __esm(() => {
@@ -569135,11 +569135,11 @@ function Install({
569135
569135
  }, [force, target]);
569136
569136
  import_react334.useEffect(() => {
569137
569137
  if (state4.type === "success") {
569138
- setTimeout(onDone, 2000, "Claude Code installation completed successfully", {
569138
+ setTimeout(onDone, 2000, "Cody installation completed successfully", {
569139
569139
  display: "system"
569140
569140
  });
569141
569141
  } else if (state4.type === "error") {
569142
- setTimeout(onDone, 3000, "Claude Code installation failed", {
569142
+ setTimeout(onDone, 3000, "Cody installation failed", {
569143
569143
  display: "system"
569144
569144
  });
569145
569145
  }
@@ -569159,7 +569159,7 @@ function Install({
569159
569159
  state4.type === "installing" && /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
569160
569160
  color: "claude",
569161
569161
  children: [
569162
- "Installing Claude Code native build ",
569162
+ "Installing Cody native build ",
569163
569163
  state4.version,
569164
569164
  "..."
569165
569165
  ]
@@ -569184,7 +569184,7 @@ function Install({
569184
569184
  /* @__PURE__ */ jsx_dev_runtime492.jsxDEV(ThemedText, {
569185
569185
  color: "success",
569186
569186
  bold: true,
569187
- children: "Claude Code successfully installed!"
569187
+ children: "Cody successfully installed!"
569188
569188
  }, undefined, false, undefined, this)
569189
569189
  ]
569190
569190
  }, undefined, true, undefined, this),
@@ -569295,7 +569295,7 @@ var init_install = __esm(() => {
569295
569295
  install = {
569296
569296
  type: "local-jsx",
569297
569297
  name: "install",
569298
- description: "Install Claude Code native build",
569298
+ description: "Install Cody native build",
569299
569299
  argumentHint: "[options]",
569300
569300
  async call(onDone, _context, args) {
569301
569301
  const force = args.includes("--force");