codez-cli 0.1.13 → 0.1.15

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 +250 -262
  2. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -3466,7 +3466,7 @@ var getClaudeConfigHomeDir, VERTEX_REGION_OVERRIDES;
3466
3466
  var init_envUtils = __esm(() => {
3467
3467
  init_memoize();
3468
3468
  getClaudeConfigHomeDir = memoize_default(() => {
3469
- return (process.env.CLAUDE_CONFIG_DIR ?? join(homedir(), ".claude")).normalize("NFC");
3469
+ return (process.env.CLAUDE_CONFIG_DIR ?? join(homedir(), ".codez")).normalize("NFC");
3470
3470
  }, () => process.env.CLAUDE_CONFIG_DIR);
3471
3471
  VERTEX_REGION_OVERRIDES = [];
3472
3472
  });
@@ -67964,7 +67964,7 @@ var init_env = __esm(() => {
67964
67964
  if (getFsImplementation().existsSync(join16(getClaudeConfigHomeDir(), ".config.json"))) {
67965
67965
  return join16(getClaudeConfigHomeDir(), ".config.json");
67966
67966
  }
67967
- const filename = `.claude${fileSuffixForOauthConfig()}.json`;
67967
+ const filename = `.codez${fileSuffixForOauthConfig()}.json`;
67968
67968
  return join16(process.env.CLAUDE_CONFIG_DIR || homedir7(), filename);
67969
67969
  });
67970
67970
  hasInternetAccess = memoize_default(async () => {
@@ -69486,7 +69486,7 @@ var init_types4 = __esm(() => {
69486
69486
  httpHookAllowedEnvVars: exports_external2.array(exports_external2.string()).optional().describe("Allowlist of environment variable names HTTP hooks may interpolate into headers. " + "When set, each hook's effective allowedEnvVars is the intersection with this list. " + "If undefined, no restriction is applied. " + "Arrays merge across settings sources (same semantics as allowedMcpServers)."),
69487
69487
  allowManagedPermissionRulesOnly: exports_external2.boolean().optional().describe("When true (and set in managed settings), only permission rules (allow/deny/ask) from managed settings are respected. " + "User, project, local, and CLI argument permission rules are ignored."),
69488
69488
  allowManagedMcpServersOnly: exports_external2.boolean().optional().describe("When true (and set in managed settings), allowedMcpServers is only read from managed settings. " + "deniedMcpServers still merges from all sources, so users can deny servers for themselves. " + "Users can still add their own MCP servers, but only the admin-defined allowlist applies."),
69489
- strictPluginOnlyCustomization: exports_external2.preprocess((v) => Array.isArray(v) ? v.filter((x) => CUSTOMIZATION_SURFACES.includes(x)) : v, exports_external2.union([exports_external2.boolean(), exports_external2.array(exports_external2.enum(CUSTOMIZATION_SURFACES))])).optional().catch(undefined).describe("When set in managed settings, blocks non-plugin customization sources for the listed surfaces. " + 'Array form locks specific surfaces (e.g. ["skills", "hooks"]); `true` locks all four; `false` is an explicit no-op. ' + "Blocked: ~/.claude/{surface}/, .claude/{surface}/ (project), settings.json hooks, .mcp.json. " + "NOT blocked: managed (policySettings) sources, plugin-provided customizations. " + "Composes with strictKnownMarketplaces for end-to-end admin control — plugins gated by " + "marketplace allowlist, everything else blocked here."),
69489
+ strictPluginOnlyCustomization: exports_external2.preprocess((v) => Array.isArray(v) ? v.filter((x) => CUSTOMIZATION_SURFACES.includes(x)) : v, exports_external2.union([exports_external2.boolean(), exports_external2.array(exports_external2.enum(CUSTOMIZATION_SURFACES))])).optional().catch(undefined).describe("When set in managed settings, blocks non-plugin customization sources for the listed surfaces. " + 'Array form locks specific surfaces (e.g. ["skills", "hooks"]); `true` locks all four; `false` is an explicit no-op. ' + "Blocked: ~/.codez/{surface}/, .codez/{surface}/ (project), settings.json hooks, .mcp.json. " + "NOT blocked: managed (policySettings) sources, plugin-provided customizations. " + "Composes with strictKnownMarketplaces for end-to-end admin control — plugins gated by " + "marketplace allowlist, everything else blocked here."),
69490
69490
  statusLine: exports_external2.object({
69491
69491
  type: exports_external2.literal("command"),
69492
69492
  command: exports_external2.string(),
@@ -69504,7 +69504,7 @@ var init_types4 = __esm(() => {
69504
69504
  });
69505
69505
  }
69506
69506
  }
69507
- }).optional().describe("Additional marketplaces to make available for this repository. Typically used in repository .claude/settings.json to ensure team members have required plugin sources."),
69507
+ }).optional().describe("Additional marketplaces to make available for this repository. Typically used in repository .codez/settings.json to ensure team members have required plugin sources."),
69508
69508
  strictKnownMarketplaces: exports_external2.array(MarketplaceSourceSchema()).optional().describe("Enterprise strict list of allowed marketplace sources. When set in managed settings, " + "ONLY these exact sources can be added as marketplaces. The check happens BEFORE " + "downloading, so blocked sources never touch the filesystem. " + "Note: this is a policy gate only — it does NOT register marketplaces. " + "To pre-register allowed marketplaces for users, also set extraKnownMarketplaces."),
69509
69509
  blockedMarketplaces: exports_external2.array(MarketplaceSourceSchema()).optional().describe("Enterprise blocklist of marketplace sources. When set in managed settings, " + "these exact sources are blocked from being added as marketplaces. The check happens BEFORE " + "downloading, so blocked sources never touch the filesystem."),
69510
69510
  forceLoginMethod: exports_external2.enum(["claudeai", "console"]).optional().describe('Force a specific login method: "claudeai" for Claude Pro/Max, "console" for Console billing'),
@@ -69553,7 +69553,7 @@ var init_types4 = __esm(() => {
69553
69553
  autoUpdatesChannel: exports_external2.enum(["latest", "stable"]).optional().describe("Release channel for auto-updates (latest or stable)"),
69554
69554
  ...{},
69555
69555
  minimumVersion: exports_external2.string().optional().describe("Minimum version to stay on - prevents downgrades when switching to stable channel"),
69556
- plansDirectory: exports_external2.string().optional().describe("Custom directory for plan files, relative to project root. " + "If not set, defaults to ~/.claude/plans/"),
69556
+ plansDirectory: exports_external2.string().optional().describe("Custom directory for plan files, relative to project root. " + "If not set, defaults to ~/.codez/plans/"),
69557
69557
  ...process.env.USER_TYPE === "ant" ? {
69558
69558
  classifierPermissionsEnabled: exports_external2.boolean().optional().describe("Enable AI-based classification for Bash(prompt:...) permission rules")
69559
69559
  } : {},
@@ -69568,7 +69568,7 @@ var init_types4 = __esm(() => {
69568
69568
  ...{},
69569
69569
  prefersReducedMotion: exports_external2.boolean().optional().describe("Reduce or disable animations for accessibility (spinner shimmer, flash effects, etc.)"),
69570
69570
  autoMemoryEnabled: exports_external2.boolean().optional().describe("Enable auto-memory for this project. When false, Claude will not read from or write to the auto-memory directory."),
69571
- autoMemoryDirectory: exports_external2.string().optional().describe("Custom directory path for auto-memory storage. Supports ~/ prefix for home directory expansion. Ignored if set in projectSettings (checked-in .claude/settings.json) for security. When unset, defaults to ~/.claude/projects/<sanitized-cwd>/memory/."),
69571
+ autoMemoryDirectory: exports_external2.string().optional().describe("Custom directory path for auto-memory storage. Supports ~/ prefix for home directory expansion. Ignored if set in projectSettings (checked-in .codez/settings.json) for security. When unset, defaults to ~/.codez/projects/<sanitized-cwd>/memory/."),
69572
69572
  autoDreamEnabled: exports_external2.boolean().optional().describe("Enable background memory consolidation (auto-dream). When set, overrides the server-side default."),
69573
69573
  showThinkingSummaries: exports_external2.boolean().optional().describe("Show thinking summaries in the transcript view (ctrl+o). Default: false."),
69574
69574
  skipDangerousModePermissionPrompt: exports_external2.boolean().optional().describe("Whether the user has accepted the bypass permissions mode dialog"),
@@ -69582,7 +69582,7 @@ var init_types4 = __esm(() => {
69582
69582
  sshIdentityFile: exports_external2.string().optional().describe("Path to SSH identity file (private key)"),
69583
69583
  startDirectory: exports_external2.string().optional().describe("Default working directory on the remote host. " + "Supports tilde expansion (e.g. ~/projects). " + "If not specified, defaults to the remote user home directory. " + "Can be overridden by the [dir] positional argument in `codez ssh <config> [dir]`.")
69584
69584
  })).optional().describe("SSH connection configurations for remote environments. " + "Typically set in managed settings by enterprise administrators " + "to pre-configure SSH connections for team members."),
69585
- claudeMdExcludes: exports_external2.array(exports_external2.string()).optional().describe("Glob patterns or absolute paths of CLAUDE.md files to exclude from loading. " + "Patterns are matched against absolute file paths using picomatch. " + "Only applies to User, Project, and Local memory types (Managed/policy files cannot be excluded). " + 'Examples: "/home/user/monorepo/CLAUDE.md", "**/code/CLAUDE.md", "**/some-dir/.claude/rules/**"'),
69585
+ claudeMdExcludes: exports_external2.array(exports_external2.string()).optional().describe("Glob patterns or absolute paths of CLAUDE.md files to exclude from loading. " + "Patterns are matched against absolute file paths using picomatch. " + "Only applies to User, Project, and Local memory types (Managed/policy files cannot be excluded). " + 'Examples: "/home/user/monorepo/CLAUDE.md", "**/code/CLAUDE.md", "**/some-dir/.codez/rules/**"'),
69586
69586
  pluginTrustMessage: exports_external2.string().optional().describe("Custom message to append to the plugin trust warning shown before installation. " + "Only read from policy settings (managed-settings.json / MDM). " + "Useful for enterprise administrators to add organization-specific context " + '(e.g., "All plugins from our internal marketplace are vetted and approved.").')
69587
69587
  }).passthrough());
69588
69588
  });
@@ -70252,9 +70252,9 @@ function getSettingsFilePathForSource(source) {
70252
70252
  function getRelativeSettingsFilePathForSource(source) {
70253
70253
  switch (source) {
70254
70254
  case "projectSettings":
70255
- return join19(".claude", "settings.json");
70255
+ return join19(".codez", "settings.json");
70256
70256
  case "localSettings":
70257
- return join19(".claude", "settings.local.json");
70257
+ return join19(".codez", "settings.local.json");
70258
70258
  }
70259
70259
  }
70260
70260
  function getSettingsForSource(source) {
@@ -71422,7 +71422,7 @@ function getApiKeyFromFileDescriptor() {
71422
71422
  setCached: setApiKeyFromFd
71423
71423
  });
71424
71424
  }
71425
- var CCR_TOKEN_DIR = "/home/claude/.claude/remote", CCR_OAUTH_TOKEN_PATH, CCR_API_KEY_PATH, CCR_SESSION_INGRESS_TOKEN_PATH;
71425
+ var CCR_TOKEN_DIR = "/home/claude/.codez/remote", CCR_OAUTH_TOKEN_PATH, CCR_API_KEY_PATH, CCR_SESSION_INGRESS_TOKEN_PATH;
71426
71426
  var init_authFileDescriptor = __esm(() => {
71427
71427
  init_state();
71428
71428
  init_debug();
@@ -71741,7 +71741,6 @@ __export(exports_model, {
71741
71741
  getOpus46PricingSuffix: () => getOpus46PricingSuffix,
71742
71742
  getMarketingNameForModel: () => getMarketingNameForModel,
71743
71743
  getMainLoopModel: () => getMainLoopModel,
71744
- getDefaultSonnetModel: () => getDefaultSonnetModel,
71745
71744
  getDefaultOpusModel: () => getDefaultOpusModel,
71746
71745
  getDefaultMainLoopModelSetting: () => getDefaultMainLoopModelSetting,
71747
71746
  getDefaultMainLoopModel: () => getDefaultMainLoopModel,
@@ -71790,12 +71789,6 @@ function getDefaultOpusModel() {
71790
71789
  const settings = getSettings_DEPRECATED();
71791
71790
  return settings?.modelSettings?.opusModel || "gpt-5.4";
71792
71791
  }
71793
- function getDefaultSonnetModel() {
71794
- if (process.env.OPENAI_SONNET_MODEL)
71795
- return process.env.OPENAI_SONNET_MODEL;
71796
- const settings = getSettings_DEPRECATED();
71797
- return settings?.modelSettings?.sonnetModel || "gpt-5.4-mini";
71798
- }
71799
71792
  function getDefaultHaikuModel() {
71800
71793
  if (process.env.OPENAI_HAIKU_MODEL)
71801
71794
  return process.env.OPENAI_HAIKU_MODEL;
@@ -71808,7 +71801,7 @@ function getRuntimeMainLoopModel(params) {
71808
71801
  return getDefaultOpusModel();
71809
71802
  }
71810
71803
  if (getUserSpecifiedModelSetting() === "haiku" && permissionMode === "plan") {
71811
- return getDefaultSonnetModel();
71804
+ return getSmallFastModel();
71812
71805
  }
71813
71806
  return mainLoopModel;
71814
71807
  }
@@ -71923,9 +71916,9 @@ function parseUserSpecifiedModel(modelInput) {
71923
71916
  if (isModelAlias(modelString)) {
71924
71917
  switch (modelString) {
71925
71918
  case "opusplan":
71926
- return getDefaultSonnetModel();
71919
+ return getSmallFastModel();
71927
71920
  case "sonnet":
71928
- return getDefaultSonnetModel();
71921
+ return getSmallFastModel();
71929
71922
  case "haiku":
71930
71923
  return getDefaultHaikuModel();
71931
71924
  case "opus":
@@ -75164,7 +75157,7 @@ var init_auth = __esm(() => {
75164
75157
 
75165
75158
  // src/utils/userAgent.ts
75166
75159
  function getClaudeCodeUserAgent() {
75167
- return `claude-code/${"0.1.13"}`;
75160
+ return `claude-code/${"0.1.15"}`;
75168
75161
  }
75169
75162
 
75170
75163
  // src/utils/workloadContext.ts
@@ -75186,7 +75179,7 @@ function getUserAgent() {
75186
75179
  const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
75187
75180
  const workload = getWorkload();
75188
75181
  const workloadSuffix = workload ? `, workload/${workload}` : "";
75189
- return `claude-cli/${"0.1.13"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
75182
+ return `claude-cli/${"0.1.15"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
75190
75183
  }
75191
75184
  function getMCPUserAgent() {
75192
75185
  const parts = [];
@@ -75200,7 +75193,7 @@ function getMCPUserAgent() {
75200
75193
  parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
75201
75194
  }
75202
75195
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
75203
- return `claude-code/${"0.1.13"}${suffix}`;
75196
+ return `claude-code/${"0.1.15"}${suffix}`;
75204
75197
  }
75205
75198
  function getWebFetchUserAgent() {
75206
75199
  return `Claude-User (${getClaudeCodeUserAgent()}; +https://support.anthropic.com/)`;
@@ -75338,7 +75331,7 @@ var init_user = __esm(() => {
75338
75331
  deviceId,
75339
75332
  sessionId: getSessionId(),
75340
75333
  email: getEmail(),
75341
- appVersion: "0.1.13",
75334
+ appVersion: "0.1.15",
75342
75335
  platform: getHostPlatformForAnalytics(),
75343
75336
  organizationUuid,
75344
75337
  accountUuid,
@@ -89711,7 +89704,7 @@ var init_metadata = __esm(() => {
89711
89704
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
89712
89705
  WHITESPACE_REGEX = /\s+/;
89713
89706
  getVersionBase = memoize_default(() => {
89714
- const match = "0.1.13".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
89707
+ const match = "0.1.15".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
89715
89708
  return match ? match[0] : undefined;
89716
89709
  });
89717
89710
  buildEnvContext = memoize_default(async () => {
@@ -89751,9 +89744,9 @@ var init_metadata = __esm(() => {
89751
89744
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
89752
89745
  isClaudeCodeAction: isEnvTruthy(process.env.CLAUDE_CODE_ACTION),
89753
89746
  isClaudeAiAuth: isClaudeAISubscriber(),
89754
- version: "0.1.13",
89747
+ version: "0.1.15",
89755
89748
  versionBase: getVersionBase(),
89756
- buildTime: "2026-04-02T01:04:09.035Z",
89749
+ buildTime: "2026-04-02T01:22:27.530Z",
89757
89750
  deploymentEnvironment: env4.detectDeploymentEnvironment(),
89758
89751
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
89759
89752
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -90421,7 +90414,7 @@ function initialize1PEventLogging() {
90421
90414
  const platform3 = getPlatform();
90422
90415
  const attributes = {
90423
90416
  [import_semantic_conventions.ATTR_SERVICE_NAME]: "claude-code",
90424
- [import_semantic_conventions.ATTR_SERVICE_VERSION]: "0.1.13"
90417
+ [import_semantic_conventions.ATTR_SERVICE_VERSION]: "0.1.15"
90425
90418
  };
90426
90419
  if (platform3 === "wsl") {
90427
90420
  const wslVersion = getWslVersion();
@@ -90448,7 +90441,7 @@ function initialize1PEventLogging() {
90448
90441
  })
90449
90442
  ]
90450
90443
  });
90451
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.claude_code.events", "0.1.13");
90444
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.claude_code.events", "0.1.15");
90452
90445
  }
90453
90446
  async function reinitialize1PEventLoggingIfConfigChanged() {
90454
90447
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -91913,7 +91906,7 @@ function getMemoryPath(memoryType) {
91913
91906
  return "";
91914
91907
  }
91915
91908
  function getManagedClaudeRulesDir() {
91916
- return join24(getManagedFilePath(), ".claude", "rules");
91909
+ return join24(getManagedFilePath(), ".codez", "rules");
91917
91910
  }
91918
91911
  function getUserClaudeRulesDir() {
91919
91912
  return join24(getClaudeConfigHomeDir(), "rules");
@@ -92394,7 +92387,7 @@ function getAttributionHeader(fingerprint) {
92394
92387
  if (!isAttributionHeaderEnabled()) {
92395
92388
  return "";
92396
92389
  }
92397
- const version2 = `${"0.1.13"}.${fingerprint}`;
92390
+ const version2 = `${"0.1.15"}.${fingerprint}`;
92398
92391
  const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
92399
92392
  const cch = "";
92400
92393
  const workload = getWorkload();
@@ -92907,7 +92900,7 @@ var init_prompt = __esm(() => {
92907
92900
  });
92908
92901
 
92909
92902
  // src/tools/FileEditTool/constants.ts
92910
- var FILE_EDIT_TOOL_NAME = "Edit", CLAUDE_FOLDER_PERMISSION_PATTERN = "/.claude/**", GLOBAL_CLAUDE_FOLDER_PERMISSION_PATTERN = "~/.claude/**", FILE_UNEXPECTEDLY_MODIFIED_ERROR = "File has been unexpectedly modified. Read it again before attempting to write it.";
92903
+ var FILE_EDIT_TOOL_NAME = "Edit", CLAUDE_FOLDER_PERMISSION_PATTERN = "/.codez/**", GLOBAL_CLAUDE_FOLDER_PERMISSION_PATTERN = "~/.codez/**", FILE_UNEXPECTEDLY_MODIFIED_ERROR = "File has been unexpectedly modified. Read it again before attempting to write it.";
92911
92904
 
92912
92905
  // src/utils/pdfUtils.ts
92913
92906
  function parsePDFPageRange(pages) {
@@ -133615,7 +133608,7 @@ function getProjectDirsUpToHome(subdir, cwd2) {
133615
133608
  if (normalizePathForComparison(current) === normalizePathForComparison(home)) {
133616
133609
  break;
133617
133610
  }
133618
- const claudeSubdir = join28(current, ".claude", subdir);
133611
+ const claudeSubdir = join28(current, ".codez", subdir);
133619
133612
  try {
133620
133613
  statSync4(claudeSubdir);
133621
133614
  dirs.push(claudeSubdir);
@@ -133749,15 +133742,15 @@ var init_markdownConfigLoader = __esm(() => {
133749
133742
  loadMarkdownFilesForSubdir = memoize_default(async function(subdir, cwd2) {
133750
133743
  const searchStartTime = Date.now();
133751
133744
  const userDir = join28(getClaudeConfigHomeDir(), subdir);
133752
- const managedDir = join28(getManagedFilePath(), ".claude", subdir);
133745
+ const managedDir = join28(getManagedFilePath(), ".codez", subdir);
133753
133746
  const projectDirs = getProjectDirsUpToHome(subdir, cwd2);
133754
133747
  const gitRoot = findGitRoot(cwd2);
133755
133748
  const canonicalRoot = findCanonicalGitRoot(cwd2);
133756
133749
  if (gitRoot && canonicalRoot && canonicalRoot !== gitRoot) {
133757
- const worktreeSubdir = normalizePathForComparison(join28(gitRoot, ".claude", subdir));
133750
+ const worktreeSubdir = normalizePathForComparison(join28(gitRoot, ".codez", subdir));
133758
133751
  const worktreeHasSubdir = projectDirs.some((dir) => normalizePathForComparison(dir) === worktreeSubdir);
133759
133752
  if (!worktreeHasSubdir) {
133760
- const mainClaudeSubdir = join28(canonicalRoot, ".claude", subdir);
133753
+ const mainClaudeSubdir = join28(canonicalRoot, ".codez", subdir);
133761
133754
  if (!projectDirs.includes(mainClaudeSubdir)) {
133762
133755
  projectDirs.push(mainClaudeSubdir);
133763
133756
  }
@@ -133971,7 +133964,7 @@ function getAddDirEnabledPlugins() {
133971
133964
  const result = {};
133972
133965
  for (const dir of getAdditionalDirectoriesForClaudeMd()) {
133973
133966
  for (const file2 of SETTINGS_FILES) {
133974
- const { settings } = parseSettingsFile(join29(dir, ".claude", file2));
133967
+ const { settings } = parseSettingsFile(join29(dir, ".codez", file2));
133975
133968
  if (!settings?.enabledPlugins) {
133976
133969
  continue;
133977
133970
  }
@@ -133984,7 +133977,7 @@ function getAddDirExtraMarketplaces() {
133984
133977
  const result = {};
133985
133978
  for (const dir of getAdditionalDirectoriesForClaudeMd()) {
133986
133979
  for (const file2 of SETTINGS_FILES) {
133987
- const { settings } = parseSettingsFile(join29(dir, ".claude", file2));
133980
+ const { settings } = parseSettingsFile(join29(dir, ".codez", file2));
133988
133981
  if (!settings?.extraKnownMarketplaces) {
133989
133982
  continue;
133990
133983
  }
@@ -137829,12 +137822,12 @@ function convertToSandboxRuntimeConfig(settings) {
137829
137822
  const cwd2 = getCwdState();
137830
137823
  const originalCwd = getOriginalCwd();
137831
137824
  if (cwd2 !== originalCwd) {
137832
- denyWrite.push(resolve16(cwd2, ".claude", "settings.json"));
137833
- denyWrite.push(resolve16(cwd2, ".claude", "settings.local.json"));
137825
+ denyWrite.push(resolve16(cwd2, ".codez", "settings.json"));
137826
+ denyWrite.push(resolve16(cwd2, ".codez", "settings.local.json"));
137834
137827
  }
137835
- denyWrite.push(resolve16(originalCwd, ".claude", "skills"));
137828
+ denyWrite.push(resolve16(originalCwd, ".codez", "skills"));
137836
137829
  if (cwd2 !== originalCwd) {
137837
- denyWrite.push(resolve16(cwd2, ".claude", "skills"));
137830
+ denyWrite.push(resolve16(cwd2, ".codez", "skills"));
137838
137831
  }
137839
137832
  bareGitRepoScrubPaths.length = 0;
137840
137833
  const bareGitRepoFiles = ["HEAD", "objects", "refs", "hooks", "config"];
@@ -166427,7 +166420,7 @@ async function loadAgentFromFile(filePath, pluginName, namespace, sourceName, pl
166427
166420
  }
166428
166421
  for (const field of ["permissionMode", "hooks", "mcpServers"]) {
166429
166422
  if (frontmatter[field] !== undefined) {
166430
- logForDebugging(`Plugin agent file ${filePath} sets ${field}, which is ignored for plugin agents. Use .claude/agents/ for this level of control.`, { level: "warn" });
166423
+ logForDebugging(`Plugin agent file ${filePath} sets ${field}, which is ignored for plugin agents. Use .codez/agents/ for this level of control.`, { level: "warn" });
166431
166424
  }
166432
166425
  }
166433
166426
  const maxTurnsRaw = frontmatter.maxTurns;
@@ -166728,7 +166721,7 @@ function getClaudeCodeGuideBasePrompt() {
166728
166721
  4. Fetch the specific documentation pages
166729
166722
  5. Provide clear, actionable guidance based on official documentation
166730
166723
  6. Use ${WEB_SEARCH_TOOL_NAME} if docs don't cover the topic
166731
- 7. Reference local project files (CLAUDE.md, .claude/ directory) when relevant using ${localSearchHint}
166724
+ 7. Reference local project files (CLAUDE.md, .codez/ directory) when relevant using ${localSearchHint}
166732
166725
 
166733
166726
  **Guidelines:**
166734
166727
  - Always prioritize official documentation over assumptions
@@ -167123,10 +167116,10 @@ How to use the statusLine command:
167123
167116
  To display both 5-hour and 7-day limits when available:
167124
167117
  - input=$(cat); five=$(echo "$input" | jq -r '.rate_limits.five_hour.used_percentage // empty'); week=$(echo "$input" | jq -r '.rate_limits.seven_day.used_percentage // empty'); out=""; [ -n "$five" ] && out="5h:$(printf '%.0f' "$five")%"; [ -n "$week" ] && out="$out 7d:$(printf '%.0f' "$week")%"; echo "$out"
167125
167118
 
167126
- 2. For longer commands, you can save a new file in the user's ~/.claude directory, e.g.:
167127
- - ~/.claude/statusline-command.sh and reference that file in the settings.
167119
+ 2. For longer commands, you can save a new file in the user's ~/.codez directory, e.g.:
167120
+ - ~/.codez/statusline-command.sh and reference that file in the settings.
167128
167121
 
167129
- 3. Update the user's ~/.claude/settings.json with:
167122
+ 3. Update the user's ~/.codez/settings.json with:
167130
167123
  {
167131
167124
  "statusLine": {
167132
167125
  "type": "command",
@@ -167134,7 +167127,7 @@ How to use the statusLine command:
167134
167127
  }
167135
167128
  }
167136
167129
 
167137
- 4. If ~/.claude/settings.json is a symlink, update the target file instead.
167130
+ 4. If ~/.codez/settings.json is a symlink, update the target file instead.
167138
167131
 
167139
167132
  Guidelines:
167140
167133
  - Preserve existing settings when updating
@@ -172254,14 +172247,14 @@ async function getMemoryFilesForNestedDirectory(dir, targetPath, processedPaths)
172254
172247
  if (isSettingSourceEnabled("projectSettings")) {
172255
172248
  const projectPath = join44(dir, "CLAUDE.md");
172256
172249
  result.push(...await processMemoryFile(projectPath, "Project", processedPaths, false));
172257
- const dotClaudePath = join44(dir, ".claude", "CLAUDE.md");
172250
+ const dotClaudePath = join44(dir, ".codez", "CLAUDE.md");
172258
172251
  result.push(...await processMemoryFile(dotClaudePath, "Project", processedPaths, false));
172259
172252
  }
172260
172253
  if (isSettingSourceEnabled("localSettings")) {
172261
172254
  const localPath = join44(dir, "CLAUDE.local.md");
172262
172255
  result.push(...await processMemoryFile(localPath, "Local", processedPaths, false));
172263
172256
  }
172264
- const rulesDir = join44(dir, ".claude", "rules");
172257
+ const rulesDir = join44(dir, ".codez", "rules");
172265
172258
  const unconditionalProcessedPaths = new Set(processedPaths);
172266
172259
  result.push(...await processMdRules({
172267
172260
  rulesDir,
@@ -172277,7 +172270,7 @@ async function getMemoryFilesForNestedDirectory(dir, targetPath, processedPaths)
172277
172270
  return result;
172278
172271
  }
172279
172272
  async function getConditionalRulesForCwdLevelDirectory(dir, targetPath, processedPaths) {
172280
- const rulesDir = join44(dir, ".claude", "rules");
172273
+ const rulesDir = join44(dir, ".codez", "rules");
172281
172274
  return processConditionedMdRules(targetPath, rulesDir, "Project", processedPaths, false);
172282
172275
  }
172283
172276
  async function processConditionedMdRules(targetPath, rulesDir, type, processedPaths, includeExternal) {
@@ -172524,9 +172517,9 @@ var init_claudemd = __esm(() => {
172524
172517
  if (isSettingSourceEnabled("projectSettings") && !skipProject) {
172525
172518
  const projectPath = join44(dir, "CLAUDE.md");
172526
172519
  result.push(...await processMemoryFile(projectPath, "Project", processedPaths, includeExternal));
172527
- const dotClaudePath = join44(dir, ".claude", "CLAUDE.md");
172520
+ const dotClaudePath = join44(dir, ".codez", "CLAUDE.md");
172528
172521
  result.push(...await processMemoryFile(dotClaudePath, "Project", processedPaths, includeExternal));
172529
- const rulesDir = join44(dir, ".claude", "rules");
172522
+ const rulesDir = join44(dir, ".codez", "rules");
172530
172523
  result.push(...await processMdRules({
172531
172524
  rulesDir,
172532
172525
  type: "Project",
@@ -172545,9 +172538,9 @@ var init_claudemd = __esm(() => {
172545
172538
  for (const dir of additionalDirs) {
172546
172539
  const projectPath = join44(dir, "CLAUDE.md");
172547
172540
  result.push(...await processMemoryFile(projectPath, "Project", processedPaths, includeExternal));
172548
- const dotClaudePath = join44(dir, ".claude", "CLAUDE.md");
172541
+ const dotClaudePath = join44(dir, ".codez", "CLAUDE.md");
172549
172542
  result.push(...await processMemoryFile(dotClaudePath, "Project", processedPaths, includeExternal));
172550
- const rulesDir = join44(dir, ".claude", "rules");
172543
+ const rulesDir = join44(dir, ".codez", "rules");
172551
172544
  result.push(...await processMdRules({
172552
172545
  rulesDir,
172553
172546
  type: "Project",
@@ -293424,7 +293417,7 @@ function getTelemetryAttributes() {
293424
293417
  attributes["session.id"] = sessionId;
293425
293418
  }
293426
293419
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
293427
- attributes["app.version"] = "0.1.13";
293420
+ attributes["app.version"] = "0.1.15";
293428
293421
  }
293429
293422
  const oauthAccount = getOauthAccountInfo();
293430
293423
  if (oauthAccount) {
@@ -304047,7 +304040,7 @@ var init_cronTasks = __esm(() => {
304047
304040
  init_json();
304048
304041
  init_log2();
304049
304042
  init_slowOperations();
304050
- CRON_FILE_REL = join49(".claude", "scheduled_tasks.json");
304043
+ CRON_FILE_REL = join49(".codez", "scheduled_tasks.json");
304051
304044
  DEFAULT_CRON_JITTER_CONFIG = {
304052
304045
  recurringFrac: 0.1,
304053
304046
  recurringCapMs: 15 * 60 * 1000,
@@ -317166,7 +317159,7 @@ async function getIdeLockfilesPaths() {
317166
317159
  if (windowsHome) {
317167
317160
  const converter = new WindowsToWSLConverter(process.env.WSL_DISTRO_NAME);
317168
317161
  const wslPath = converter.toLocalPath(windowsHome);
317169
- paths2.push(resolve23(wslPath, ".claude", "ide"));
317162
+ paths2.push(resolve23(wslPath, ".codez", "ide"));
317170
317163
  }
317171
317164
  try {
317172
317165
  const usersDir = "/mnt/c/Users";
@@ -317178,7 +317171,7 @@ async function getIdeLockfilesPaths() {
317178
317171
  if (user.name === "Public" || user.name === "Default" || user.name === "Default User" || user.name === "All Users") {
317179
317172
  continue;
317180
317173
  }
317181
- paths2.push(join59(usersDir, user.name, ".claude", "ide"));
317174
+ paths2.push(join59(usersDir, user.name, ".codez", "ide"));
317182
317175
  }
317183
317176
  } catch (error40) {
317184
317177
  if (isFsInaccessible(error40)) {
@@ -317434,7 +317427,7 @@ function getInstallationEnv() {
317434
317427
  return;
317435
317428
  }
317436
317429
  function getClaudeCodeVersion() {
317437
- return "0.1.13";
317430
+ return "0.1.15";
317438
317431
  }
317439
317432
  async function getInstalledVSCodeExtensionVersion(command) {
317440
317433
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -320153,7 +320146,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
320153
320146
  const client2 = new Client({
320154
320147
  name: "claude-code",
320155
320148
  title: "codez",
320156
- version: "0.1.13",
320149
+ version: "0.1.15",
320157
320150
  description: "AI-powered agentic coding tool",
320158
320151
  websiteUrl: PRODUCT_URL
320159
320152
  }, {
@@ -320508,7 +320501,7 @@ var init_client5 = __esm(() => {
320508
320501
  const client2 = new Client({
320509
320502
  name: "claude-code",
320510
320503
  title: "codez",
320511
- version: "0.1.13",
320504
+ version: "0.1.15",
320512
320505
  description: "AI-powered agentic coding tool",
320513
320506
  websiteUrl: PRODUCT_URL
320514
320507
  }, {
@@ -321288,13 +321281,13 @@ function getAllHooks(appState) {
321288
321281
  function hookSourceDescriptionDisplayString(source) {
321289
321282
  switch (source) {
321290
321283
  case "userSettings":
321291
- return "User settings (~/.claude/settings.json)";
321284
+ return "User settings (~/.codez/settings.json)";
321292
321285
  case "projectSettings":
321293
- return "Project settings (.claude/settings.json)";
321286
+ return "Project settings (.codez/settings.json)";
321294
321287
  case "localSettings":
321295
- return "Local settings (.claude/settings.local.json)";
321288
+ return "Local settings (.codez/settings.local.json)";
321296
321289
  case "pluginHook":
321297
- return "Plugin hooks (~/.claude/plugins/*/hooks/hooks.json)";
321290
+ return "Plugin hooks (~/.codez/plugins/*/hooks/hooks.json)";
321298
321291
  case "sessionHook":
321299
321292
  return "Session hooks (in-memory, temporary)";
321300
321293
  case "builtinHook":
@@ -396109,7 +396102,7 @@ async function initializeBetaTracing(resource) {
396109
396102
  });
396110
396103
  import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
396111
396104
  setLoggerProvider(loggerProvider);
396112
- const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "0.1.13");
396105
+ const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "0.1.15");
396113
396106
  setEventLogger(eventLogger);
396114
396107
  process.on("beforeExit", async () => {
396115
396108
  await loggerProvider?.forceFlush();
@@ -396149,7 +396142,7 @@ async function initializeTelemetry() {
396149
396142
  const platform5 = getPlatform();
396150
396143
  const baseAttributes = {
396151
396144
  [import_semantic_conventions2.ATTR_SERVICE_NAME]: "claude-code",
396152
- [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "0.1.13"
396145
+ [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "0.1.15"
396153
396146
  };
396154
396147
  if (platform5 === "wsl") {
396155
396148
  const wslVersion = getWslVersion();
@@ -396194,7 +396187,7 @@ async function initializeTelemetry() {
396194
396187
  } catch {}
396195
396188
  };
396196
396189
  registerCleanup(shutdownTelemetry2);
396197
- return meterProvider2.getMeter("com.anthropic.claude_code", "0.1.13");
396190
+ return meterProvider2.getMeter("com.anthropic.claude_code", "0.1.15");
396198
396191
  }
396199
396192
  const meterProvider = new import_sdk_metrics2.MeterProvider({
396200
396193
  resource,
@@ -396214,7 +396207,7 @@ async function initializeTelemetry() {
396214
396207
  });
396215
396208
  import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
396216
396209
  setLoggerProvider(loggerProvider);
396217
- const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "0.1.13");
396210
+ const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "0.1.15");
396218
396211
  setEventLogger(eventLogger);
396219
396212
  logForDebugging("[3P telemetry] Event logger set successfully");
396220
396213
  process.on("beforeExit", async () => {
@@ -396276,7 +396269,7 @@ Current timeout: ${timeoutMs}ms
396276
396269
  }
396277
396270
  };
396278
396271
  registerCleanup(shutdownTelemetry);
396279
- return meterProvider.getMeter("com.anthropic.claude_code", "0.1.13");
396272
+ return meterProvider.getMeter("com.anthropic.claude_code", "0.1.15");
396280
396273
  }
396281
396274
  async function flushTelemetry() {
396282
396275
  const meterProvider = getMeterProvider();
@@ -396652,7 +396645,7 @@ function getLocalClaudePath() {
396652
396645
  }
396653
396646
  function isRunningFromLocalInstallation() {
396654
396647
  const execPath2 = process.argv[1] || "";
396655
- return execPath2.includes("/.claude/local/node_modules/");
396648
+ return execPath2.includes("/.codez/local/node_modules/");
396656
396649
  }
396657
396650
  async function writeIfMissing(path13, content, mode) {
396658
396651
  try {
@@ -396833,9 +396826,9 @@ async function assertMinVersion() {
396833
396826
  if (false) {}
396834
396827
  try {
396835
396828
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
396836
- if (versionConfig.minVersion && lt("0.1.13", versionConfig.minVersion)) {
396829
+ if (versionConfig.minVersion && lt("0.1.15", versionConfig.minVersion)) {
396837
396830
  console.error(`
396838
- It looks like your version of codez (${"0.1.13"}) needs an update.
396831
+ It looks like your version of codez (${"0.1.15"}) needs an update.
396839
396832
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
396840
396833
 
396841
396834
  To update, please run:
@@ -397051,7 +397044,7 @@ async function installGlobalPackage(specificVersion) {
397051
397044
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
397052
397045
  logEvent("tengu_auto_updater_lock_contention", {
397053
397046
  pid: process.pid,
397054
- currentVersion: "0.1.13"
397047
+ currentVersion: "0.1.15"
397055
397048
  });
397056
397049
  return "in_progress";
397057
397050
  }
@@ -397060,7 +397053,7 @@ async function installGlobalPackage(specificVersion) {
397060
397053
  if (!env4.isRunningWithBun() && env4.isNpmFromWindowsPath()) {
397061
397054
  logError2(new Error("Windows NPM detected in WSL environment"));
397062
397055
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
397063
- currentVersion: "0.1.13"
397056
+ currentVersion: "0.1.15"
397064
397057
  });
397065
397058
  console.error(`
397066
397059
  Error: Windows NPM detected in WSL
@@ -397406,7 +397399,7 @@ function getInvokedBinary() {
397406
397399
  async function detectMultipleInstallations() {
397407
397400
  const fs9 = getFsImplementation();
397408
397401
  const installations = [];
397409
- const localPath = join67(homedir21(), ".claude", "local");
397402
+ const localPath = join67(homedir21(), ".codez", "local");
397410
397403
  if (await localInstallationExists()) {
397411
397404
  installations.push({ type: "npm-local", path: localPath });
397412
397405
  }
@@ -397564,12 +397557,12 @@ async function detectConfigurationIssues(type) {
397564
397557
  if (existingAlias) {
397565
397558
  warnings.push({
397566
397559
  issue: "Local installation not accessible",
397567
- fix: `Alias exists but points to invalid target: ${existingAlias}. Update alias: alias claude="~/.claude/local/claude"`
397560
+ fix: `Alias exists but points to invalid target: ${existingAlias}. Update alias: alias claude="~/.codez/local/claude"`
397568
397561
  });
397569
397562
  } else {
397570
397563
  warnings.push({
397571
397564
  issue: "Local installation not accessible",
397572
- fix: 'Create alias: alias claude="~/.claude/local/claude"'
397565
+ fix: 'Create alias: alias claude="~/.codez/local/claude"'
397573
397566
  });
397574
397567
  }
397575
397568
  }
@@ -397595,7 +397588,7 @@ function detectLinuxGlobPatternWarnings() {
397595
397588
  }
397596
397589
  async function getDoctorDiagnostic() {
397597
397590
  const installationType = await getCurrentInstallationType();
397598
- const version2 = typeof MACRO !== "undefined" ? "0.1.13" : "unknown";
397591
+ const version2 = typeof MACRO !== "undefined" ? "0.1.15" : "unknown";
397599
397592
  const installationPath = await getInstallationPath();
397600
397593
  const invokedBinary = getInvokedBinary();
397601
397594
  const multipleInstallations = await detectMultipleInstallations();
@@ -398530,8 +398523,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
398530
398523
  const maxVersion = await getMaxVersion();
398531
398524
  if (maxVersion && gt(version2, maxVersion)) {
398532
398525
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
398533
- if (gte("0.1.13", maxVersion)) {
398534
- logForDebugging(`Native installer: current version ${"0.1.13"} is already at or above maxVersion ${maxVersion}, skipping update`);
398526
+ if (gte("0.1.15", maxVersion)) {
398527
+ logForDebugging(`Native installer: current version ${"0.1.15"} is already at or above maxVersion ${maxVersion}, skipping update`);
398535
398528
  logEvent("tengu_native_update_skipped_max_version", {
398536
398529
  latency_ms: Date.now() - startTime,
398537
398530
  max_version: maxVersion,
@@ -398542,7 +398535,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
398542
398535
  version2 = maxVersion;
398543
398536
  }
398544
398537
  }
398545
- if (!forceReinstall && version2 === "0.1.13" && await versionIsAvailable(version2) && await isPossibleClaudeBinary(executablePath)) {
398538
+ if (!forceReinstall && version2 === "0.1.15" && await versionIsAvailable(version2) && await isPossibleClaudeBinary(executablePath)) {
398546
398539
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
398547
398540
  logEvent("tengu_native_update_complete", {
398548
398541
  latency_ms: Date.now() - startTime,
@@ -399295,7 +399288,7 @@ async function cleanupNpmInstallations() {
399295
399288
  errors5.push(macroPackageResult.error);
399296
399289
  }
399297
399290
  }
399298
- const localInstallDir = join71(homedir22(), ".claude", "local");
399291
+ const localInstallDir = join71(homedir22(), ".codez", "local");
399299
399292
  try {
399300
399293
  await rm5(localInstallDir, { recursive: true });
399301
399294
  removed++;
@@ -411157,11 +411150,11 @@ var init_coreSchemas = __esm(() => {
411157
411150
  initialPrompt: exports_external2.string().optional().describe("Auto-submitted as the first user turn when this agent is the main thread agent. Slash commands are processed. Prepended to any user-provided prompt."),
411158
411151
  maxTurns: exports_external2.number().int().positive().optional().describe("Maximum number of agentic turns (API round-trips) before stopping"),
411159
411152
  background: exports_external2.boolean().optional().describe("Run this agent as a background task (non-blocking, fire-and-forget) when invoked"),
411160
- memory: exports_external2.enum(["user", "project", "local"]).optional().describe("Scope for auto-loading agent memory files. 'user' - ~/.claude/agent-memory/<agentType>/, 'project' - .claude/agent-memory/<agentType>/, 'local' - .claude/agent-memory-local/<agentType>/"),
411153
+ memory: exports_external2.enum(["user", "project", "local"]).optional().describe("Scope for auto-loading agent memory files. 'user' - ~/.codez/agent-memory/<agentType>/, 'project' - .codez/agent-memory/<agentType>/, 'local' - .codez/agent-memory-local/<agentType>/"),
411161
411154
  effort: exports_external2.union([exports_external2.enum(["low", "medium", "high", "max"]), exports_external2.number().int()]).optional().describe("Reasoning effort level for this agent. Either a named level or an integer"),
411162
411155
  permissionMode: PermissionModeSchema().optional().describe("Permission mode controlling how tool executions are handled")
411163
411156
  }).describe("Definition for a custom subagent that can be invoked via the Agent tool."));
411164
- SettingSourceSchema = lazySchema(() => exports_external2.enum(["user", "project", "local"]).describe("Source for loading filesystem-based settings. " + "'user' - Global user settings (~/.claude/settings.json). " + "'project' - Project settings (.claude/settings.json). " + "'local' - Local settings (.claude/settings.local.json)."));
411157
+ SettingSourceSchema = lazySchema(() => exports_external2.enum(["user", "project", "local"]).describe("Source for loading filesystem-based settings. " + "'user' - Global user settings (~/.codez/settings.json). " + "'project' - Project settings (.codez/settings.json). " + "'local' - Local settings (.codez/settings.local.json)."));
411165
411158
  SdkPluginConfigSchema = lazySchema(() => exports_external2.object({
411166
411159
  type: exports_external2.literal("local").describe("Plugin type. Currently only 'local' is supported"),
411167
411160
  path: exports_external2.string().describe("Absolute or relative path to the plugin directory")
@@ -418182,7 +418175,7 @@ function AssistantTextMessage(t0) {
418182
418175
  t3 = /* @__PURE__ */ import_react91.default.createElement(MessageResponse, null, /* @__PURE__ */ import_react91.default.createElement(ThemedBox_default, {
418183
418176
  flexDirection: "column",
418184
418177
  gap: 1
418185
- }, t2, /* @__PURE__ */ import_react91.default.createElement(ThemedText, null, "To continue immediately, use /model to switch to", " ", renderModelName(getDefaultSonnetModel()), " and continue coding.")));
418178
+ }, t2, /* @__PURE__ */ import_react91.default.createElement(ThemedText, null, "To continue immediately, use /model to switch to", " ", renderModelName(getSmallFastModel()), " and continue coding.")));
418186
418179
  $3[13] = t3;
418187
418180
  } else {
418188
418181
  t3 = $3[13];
@@ -430471,9 +430464,9 @@ async function processSessionStartHooks(source, {
430471
430464
  if (errorMessage2.includes("Failed to clone") || errorMessage2.includes("network") || errorMessage2.includes("ETIMEDOUT") || errorMessage2.includes("ENOTFOUND")) {
430472
430465
  userGuidance = "This appears to be a network issue. Check your internet connection and try again.";
430473
430466
  } else if (errorMessage2.includes("Permission denied") || errorMessage2.includes("EACCES") || errorMessage2.includes("EPERM")) {
430474
- userGuidance = "This appears to be a permissions issue. Check file permissions on ~/.claude/plugins/";
430467
+ userGuidance = "This appears to be a permissions issue. Check file permissions on ~/.codez/plugins/";
430475
430468
  } else if (errorMessage2.includes("Invalid") || errorMessage2.includes("parse") || errorMessage2.includes("JSON") || errorMessage2.includes("schema")) {
430476
- userGuidance = "This appears to be a configuration issue. Check your plugin settings in .claude/settings.json";
430469
+ userGuidance = "This appears to be a configuration issue. Check your plugin settings in .codez/settings.json";
430477
430470
  } else {
430478
430471
  userGuidance = "Please fix the plugin configuration or remove problematic plugins from your settings.";
430479
430472
  }
@@ -446891,11 +446884,11 @@ import {
446891
446884
  function getSkillsPath(source, dir) {
446892
446885
  switch (source) {
446893
446886
  case "policySettings":
446894
- return join84(getManagedFilePath(), ".claude", dir);
446887
+ return join84(getManagedFilePath(), ".codez", dir);
446895
446888
  case "userSettings":
446896
446889
  return join84(getClaudeConfigHomeDir(), dir);
446897
446890
  case "projectSettings":
446898
- return `.claude/${dir}`;
446891
+ return `.codez/${dir}`;
446899
446892
  case "plugin":
446900
446893
  return "plugin";
446901
446894
  default:
@@ -447219,7 +447212,7 @@ async function discoverSkillDirsForPaths(filePaths, cwd2) {
447219
447212
  for (const filePath of filePaths) {
447220
447213
  let currentDir = dirname33(filePath);
447221
447214
  while (currentDir.startsWith(resolvedCwd + pathSep)) {
447222
- const skillDir = join84(currentDir, ".claude", "skills");
447215
+ const skillDir = join84(currentDir, ".codez", "skills");
447223
447216
  if (!dynamicSkillDirs.has(skillDir)) {
447224
447217
  dynamicSkillDirs.add(skillDir);
447225
447218
  try {
@@ -447343,7 +447336,7 @@ var init_loadSkillsDir = __esm(() => {
447343
447336
  import_ignore3 = __toESM(require_ignore(), 1);
447344
447337
  getSkillDirCommands = memoize_default(async (cwd2) => {
447345
447338
  const userSkillsDir = join84(getClaudeConfigHomeDir(), "skills");
447346
- const managedSkillsDir = join84(getManagedFilePath(), ".claude", "skills");
447339
+ const managedSkillsDir = join84(getManagedFilePath(), ".codez", "skills");
447347
447340
  const projectSkillsDirs = getProjectDirsUpToHome("skills", cwd2);
447348
447341
  logForDebugging(`Loading skills from: managed=${managedSkillsDir}, user=${userSkillsDir}, project=[${projectSkillsDirs.join(", ")}]`);
447349
447342
  const additionalDirs = getAdditionalDirectoriesForClaudeMd();
@@ -447354,7 +447347,7 @@ var init_loadSkillsDir = __esm(() => {
447354
447347
  logForDebugging(`[bare] Skipping skill dir discovery (${additionalDirs.length === 0 ? "no --add-dir" : "projectSettings disabled or skillsLocked"})`);
447355
447348
  return [];
447356
447349
  }
447357
- const additionalSkillsNested2 = await Promise.all(additionalDirs.map((dir) => loadSkillsFromSkillsDir(join84(dir, ".claude", "skills"), "projectSettings")));
447350
+ const additionalSkillsNested2 = await Promise.all(additionalDirs.map((dir) => loadSkillsFromSkillsDir(join84(dir, ".codez", "skills"), "projectSettings")));
447358
447351
  return additionalSkillsNested2.flat().map((s) => s.skill);
447359
447352
  }
447360
447353
  const [
@@ -447367,7 +447360,7 @@ var init_loadSkillsDir = __esm(() => {
447367
447360
  isEnvTruthy(process.env.CLAUDE_CODE_DISABLE_POLICY_SKILLS) ? Promise.resolve([]) : loadSkillsFromSkillsDir(managedSkillsDir, "policySettings"),
447368
447361
  isSettingSourceEnabled("userSettings") && !skillsLocked ? loadSkillsFromSkillsDir(userSkillsDir, "userSettings") : Promise.resolve([]),
447369
447362
  projectSettingsEnabled ? Promise.all(projectSkillsDirs.map((dir) => loadSkillsFromSkillsDir(dir, "projectSettings"))) : Promise.resolve([]),
447370
- projectSettingsEnabled ? Promise.all(additionalDirs.map((dir) => loadSkillsFromSkillsDir(join84(dir, ".claude", "skills"), "projectSettings"))) : Promise.resolve([]),
447363
+ projectSettingsEnabled ? Promise.all(additionalDirs.map((dir) => loadSkillsFromSkillsDir(join84(dir, ".codez", "skills"), "projectSettings"))) : Promise.resolve([]),
447371
447364
  skillsLocked ? Promise.resolve([]) : loadSkillsFromCommandsDir(cwd2)
447372
447365
  ]);
447373
447366
  const allSkillsWithPaths = [
@@ -475025,7 +475018,7 @@ function getEnterWorktreeToolPrompt() {
475025
475018
 
475026
475019
  ## Behavior
475027
475020
 
475028
- - In a git repository: creates a new git worktree inside \`.claude/worktrees/\` with a new branch based on HEAD
475021
+ - In a git repository: creates a new git worktree inside \`.codez/worktrees/\` with a new branch based on HEAD
475029
475022
  - Outside a git repository: delegates to WorktreeCreate/WorktreeRemove hooks for VCS-agnostic isolation
475030
475023
  - Switches the session's working directory to the new worktree
475031
475024
  - Use ExitWorktree to leave the worktree mid-session (keep or remove). On session exit, if still in the worktree, the user will be prompted to keep or remove it
@@ -477008,7 +477001,7 @@ When spawning teammates via the Agent tool, choose the \`subagent_type\` based o
477008
477001
 
477009
477002
  - **Read-only agents** (e.g., Explore, Plan) cannot edit or write files. Only assign them research, search, or planning tasks. Never assign them implementation work.
477010
477003
  - **Full-capability agents** (e.g., general-purpose) have access to all tools including file editing, writing, and bash. Use these for tasks that require making changes.
477011
- - **Custom agents** defined in \`.claude/agents/\` may have their own tool restrictions. Check their descriptions to understand what they can and cannot do.
477004
+ - **Custom agents** defined in \`.codez/agents/\` may have their own tool restrictions. Check their descriptions to understand what they can and cannot do.
477012
477005
 
477013
477006
  Always review the agent type descriptions and their available tools listed in the Agent tool prompt before selecting a \`subagent_type\` for a teammate.
477014
477007
 
@@ -477022,8 +477015,8 @@ Create a new team to coordinate multiple agents working on a project. Teams have
477022
477015
  \`\`\`
477023
477016
 
477024
477017
  This creates:
477025
- - A team file at \`~/.claude/teams/{team-name}/config.json\`
477026
- - A corresponding task list directory at \`~/.claude/tasks/{team-name}/\`
477018
+ - A team file at \`~/.codez/teams/{team-name}/config.json\`
477019
+ - A corresponding task list directory at \`~/.codez/tasks/{team-name}/\`
477027
477020
 
477028
477021
  ## Team Workflow
477029
477022
 
@@ -477065,7 +477058,7 @@ Teammates go idle after every turn—this is completely normal and expected. A t
477065
477058
  ## Discovering Team Members
477066
477059
 
477067
477060
  Teammates can read the team config file to discover other team members:
477068
- - **Team config location**: \`~/.claude/teams/{team-name}/config.json\`
477061
+ - **Team config location**: \`~/.codez/teams/{team-name}/config.json\`
477069
477062
 
477070
477063
  The config file contains a \`members\` array with each teammate's:
477071
477064
  - \`name\`: Human-readable name (**always use this** for messaging and task assignment)
@@ -477078,12 +477071,12 @@ The config file contains a \`members\` array with each teammate's:
477078
477071
 
477079
477072
  Example of reading team config:
477080
477073
  \`\`\`
477081
- Use the Read tool to read ~/.claude/teams/{team-name}/config.json
477074
+ Use the Read tool to read ~/.codez/teams/{team-name}/config.json
477082
477075
  \`\`\`
477083
477076
 
477084
477077
  ## Task List Coordination
477085
477078
 
477086
- Teams share a task list that all teammates can access at \`~/.claude/tasks/{team-name}/\`.
477079
+ Teams share a task list that all teammates can access at \`~/.codez/tasks/{team-name}/\`.
477087
477080
 
477088
477081
  Teammates should:
477089
477082
  1. Check TaskList periodically, **especially after completing each task**, to find available work or see newly unblocked tasks
@@ -477267,8 +477260,8 @@ function getPrompt7() {
477267
477260
  Remove team and task directories when the swarm work is complete.
477268
477261
 
477269
477262
  This operation:
477270
- - Removes the team directory (\`~/.claude/teams/{team-name}/\`)
477271
- - Removes the task directory (\`~/.claude/tasks/{team-name}/\`)
477263
+ - Removes the team directory (\`~/.codez/teams/{team-name}/\`)
477264
+ - Removes the task directory (\`~/.codez/tasks/{team-name}/\`)
477272
477265
  - Clears team context from the current session
477273
477266
 
477274
477267
  **IMPORTANT**: TeamDelete will fail if the team still has active members. Gracefully terminate teammates first, then call TeamDelete after all teammates have shut down.
@@ -489363,7 +489356,7 @@ function getAnthropicEnvMetadata() {
489363
489356
  function getBuildAgeMinutes() {
489364
489357
  if (false)
489365
489358
  ;
489366
- const buildTime = new Date("2026-04-02T01:04:09.035Z").getTime();
489359
+ const buildTime = new Date("2026-04-02T01:22:27.530Z").getTime();
489367
489360
  if (isNaN(buildTime))
489368
489361
  return;
489369
489362
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -494332,7 +494325,7 @@ async function countTokensViaHaikuFallback(messages, tools) {
494332
494325
  const containsThinking = hasThinkingBlocks(messages);
494333
494326
  const isVertexGlobalEndpoint = isEnvTruthy(process.env.CLAUDE_CODE_USE_VERTEX) && getVertexRegionForModel(getSmallFastModel()) === "global";
494334
494327
  const isVertexWithThinking = isEnvTruthy(process.env.CLAUDE_CODE_USE_VERTEX) && containsThinking;
494335
- const model = isVertexGlobalEndpoint || isVertexWithThinking ? getDefaultSonnetModel() : getSmallFastModel();
494328
+ const model = isVertexGlobalEndpoint || isVertexWithThinking ? getSmallFastModel() : getSmallFastModel();
494336
494329
  const anthropic = await getAnthropicClient({
494337
494330
  maxRetries: 1,
494338
494331
  model,
@@ -495989,7 +495982,7 @@ async function selectRelevantMemories(query2, memories, signal, recentTools) {
495989
495982
  Recently used tools: ${recentTools.join(", ")}` : "";
495990
495983
  try {
495991
495984
  const result = await sideQuery({
495992
- model: getDefaultSonnetModel(),
495985
+ model: getSmallFastModel(),
495993
495986
  system: SELECT_MEMORIES_SYSTEM_PROMPT,
495994
495987
  skipSystemPromptPrefix: true,
495995
495988
  messages: [
@@ -500729,7 +500722,7 @@ async function cacheAndRegisterPlugin(pluginId, entry, scope = "user", projectPa
500729
500722
  const normalizedCachePath = cacheResult.path.endsWith(sep26) ? cacheResult.path : cacheResult.path + sep26;
500730
500723
  const isSubdirectory = versionedPath.startsWith(normalizedCachePath);
500731
500724
  if (isSubdirectory) {
500732
- const tempPath = join102(dirname46(cacheResult.path), `.claude-plugin-temp-${Date.now()}-${randomBytes14(4).toString("hex")}`);
500725
+ const tempPath = join102(dirname46(cacheResult.path), `.codez-plugin-temp-${Date.now()}-${randomBytes14(4).toString("hex")}`);
500733
500726
  await rename5(cacheResult.path, tempPath);
500734
500727
  await getFsImplementation().mkdir(dirname46(versionedPath));
500735
500728
  await rename5(tempPath, versionedPath);
@@ -509279,7 +509272,7 @@ import { dirname as dirname48, join as join106 } from "path";
509279
509272
  function detectShell() {
509280
509273
  const shell = process.env.SHELL || "";
509281
509274
  const home = homedir27();
509282
- const claudeDir = join106(home, ".claude");
509275
+ const claudeDir = join106(home, ".codez");
509283
509276
  if (shell.endsWith("/zsh") || shell.endsWith("/zsh.exe")) {
509284
509277
  const cacheFile = join106(claudeDir, "completion.zsh");
509285
509278
  return {
@@ -513709,7 +513702,7 @@ function Feedback({
513709
513702
  platform: env4.platform,
513710
513703
  gitRepo: envInfo.isGit,
513711
513704
  terminal: env4.terminal,
513712
- version: "0.1.13",
513705
+ version: "0.1.15",
513713
513706
  transcript: normalizeMessagesForAPI(messages),
513714
513707
  errors: sanitizedErrors,
513715
513708
  lastApiRequest: getLastAPIRequest(),
@@ -513848,7 +513841,7 @@ function Feedback({
513848
513841
  dimColor: true
513849
513842
  }, description)), /* @__PURE__ */ React167.createElement(ThemedText, null, "- Environment info:", " ", /* @__PURE__ */ React167.createElement(ThemedText, {
513850
513843
  dimColor: true
513851
- }, env4.platform, ", ", env4.terminal, ", v", "0.1.13")), envInfo.gitState && /* @__PURE__ */ React167.createElement(ThemedText, null, "- Git repo metadata:", " ", /* @__PURE__ */ React167.createElement(ThemedText, {
513844
+ }, env4.platform, ", ", env4.terminal, ", v", "0.1.15")), envInfo.gitState && /* @__PURE__ */ React167.createElement(ThemedText, null, "- Git repo metadata:", " ", /* @__PURE__ */ React167.createElement(ThemedText, {
513852
513845
  dimColor: true
513853
513846
  }, envInfo.gitState.branchName, envInfo.gitState.commitHash ? `, ${envInfo.gitState.commitHash.slice(0, 7)}` : "", envInfo.gitState.remoteUrl ? ` @ ${envInfo.gitState.remoteUrl}` : "", !envInfo.gitState.isHeadOnRemote && ", not synced", !envInfo.gitState.isClean && ", has local changes")), /* @__PURE__ */ React167.createElement(ThemedText, null, "- Current session transcript")), /* @__PURE__ */ React167.createElement(ThemedBox_default, {
513854
513847
  marginTop: 1
@@ -513885,7 +513878,7 @@ ${sanitizedDescription}
513885
513878
  ` + `**Environment Info**
513886
513879
  ` + `- Platform: ${env4.platform}
513887
513880
  ` + `- Terminal: ${env4.terminal}
513888
- ` + `- Version: ${"0.1.13"}
513881
+ ` + `- Version: ${"0.1.15"}
513889
513882
  ` + `- Feedback ID: ${feedbackId}
513890
513883
  ` + `
513891
513884
  **Errors**
@@ -516946,7 +516939,7 @@ function buildPrimarySection() {
516946
516939
  }, "/rename to add a name");
516947
516940
  return [{
516948
516941
  label: "Version",
516949
- value: "0.1.13"
516942
+ value: "0.1.15"
516950
516943
  }, {
516951
516944
  label: "Session name",
516952
516945
  value: nameValue
@@ -520350,7 +520343,7 @@ function Config({
520350
520343
  });
520351
520344
  }
520352
520345
  })) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ React182.createElement(ChannelDowngradeDialog, {
520353
- currentVersion: "0.1.13",
520346
+ currentVersion: "0.1.15",
520354
520347
  onChoice: (choice) => {
520355
520348
  setShowSubmenu(null);
520356
520349
  setTabsHidden(false);
@@ -520362,7 +520355,7 @@ function Config({
520362
520355
  autoUpdatesChannel: "stable"
520363
520356
  };
520364
520357
  if (choice === "stay") {
520365
- newSettings.minimumVersion = "0.1.13";
520358
+ newSettings.minimumVersion = "0.1.15";
520366
520359
  }
520367
520360
  updateSettingsForSource("userSettings", newSettings);
520368
520361
  setSettingsData((prev_27) => ({
@@ -525067,7 +525060,7 @@ function Doctor(t0) {
525067
525060
  getDoctorDiagnostic().then(setDiagnostic);
525068
525061
  (async () => {
525069
525062
  const userAgentsDir = join115(getClaudeConfigHomeDir(), "agents");
525070
- const projectAgentsDir = join115(getOriginalCwd(), ".claude", "agents");
525063
+ const projectAgentsDir = join115(getOriginalCwd(), ".codez", "agents");
525071
525064
  const {
525072
525065
  activeAgents,
525073
525066
  allAgents,
@@ -525696,7 +525689,7 @@ function MemoryFileSelector(t0) {
525696
525689
  let description;
525697
525690
  const isGit = projectIsInGitRepo(getOriginalCwd());
525698
525691
  if (file2.type === "User" && !file2.isNested) {
525699
- description = "Saved in ~/.claude/CLAUDE.md";
525692
+ description = "Saved in ~/.codez/CLAUDE.md";
525700
525693
  } else {
525701
525694
  if (file2.type === "Project" && !file2.isNested && file2.path === projectMemoryPath) {
525702
525695
  description = `${isGit ? "Checked in at" : "Saved in"} ./CLAUDE.md`;
@@ -527123,7 +527116,7 @@ function HelpV2(t0) {
527123
527116
  let t6;
527124
527117
  if ($3[31] !== tabs) {
527125
527118
  t6 = /* @__PURE__ */ React209.createElement(Tabs, {
527126
- title: `codez v${"0.1.13"}`,
527119
+ title: `codez v${"0.1.15"}`,
527127
527120
  color: "professionalBlue",
527128
527121
  defaultTab: "general"
527129
527122
  }, tabs);
@@ -528303,9 +528296,9 @@ Based on the areas detected in Phase 1, you may need to create multiple verifier
528303
528296
 
528304
528297
  ## Phase 4: Generate Verifier Skill
528305
528298
 
528306
- **All verifier skills are created in the project root's \`.claude/skills/\` directory.** This ensures they are automatically loaded when Claude runs in the project.
528299
+ **All verifier skills are created in the project root's \`.codez/skills/\` directory.** This ensures they are automatically loaded when Claude runs in the project.
528307
528300
 
528308
- Write the skill file to \`.claude/skills/<verifier-name>/SKILL.md\`.
528301
+ Write the skill file to \`.codez/skills/<verifier-name>/SKILL.md\`.
528309
528302
 
528310
528303
  ### Skill Template Structure
528311
528304
 
@@ -528389,7 +528382,7 @@ allowed-tools:
528389
528382
  ## Phase 5: Confirm Creation
528390
528383
 
528391
528384
  After writing the skill file(s), inform the user:
528392
- 1. Where each skill was created (always in \`.claude/skills/\`)
528385
+ 1. Where each skill was created (always in \`.codez/skills/\`)
528393
528386
  2. How the Verify agent will discover them — the folder name must contain "verifier" (case-insensitive) for automatic discovery
528394
528387
  3. That they can edit the skills to customize them
528395
528388
  4. That they can run /init-verifiers again to add more verifiers for other areas
@@ -537743,7 +537736,7 @@ async function uninstallPluginOp(plugin, scope = "user", deleteDataDir = true) {
537743
537736
  if (actualScope === "project") {
537744
537737
  return {
537745
537738
  success: false,
537746
- message: `Plugin "${plugin}" is enabled at project scope (.claude/settings.json, shared with your team). To disable just for you: codez plugin disable ${plugin} --scope local`
537739
+ message: `Plugin "${plugin}" is enabled at project scope (.codez/settings.json, shared with your team). To disable just for you: codez plugin disable ${plugin} --scope local`
537747
537740
  };
537748
537741
  }
537749
537742
  return {
@@ -540993,7 +540986,7 @@ function ManagePlugins({
540993
540986
  return;
540994
540987
  }
540995
540988
  clearAllCaches();
540996
- setResult(`✓ Disabled ${selectedPlugin.plugin.name} in .claude/settings.local.json. Run /reload-plugins to apply.`);
540989
+ setResult(`✓ Disabled ${selectedPlugin.plugin.name} in .codez/settings.local.json. Run /reload-plugins to apply.`);
540997
540990
  if (onManageComplete)
540998
540991
  onManageComplete();
540999
540992
  setParentViewState({
@@ -541220,10 +541213,10 @@ function ManagePlugins({
541220
541213
  }, /* @__PURE__ */ React245.createElement(ThemedText, {
541221
541214
  bold: true,
541222
541215
  color: "warning"
541223
- }, selectedPlugin.plugin.name, " is enabled in .claude/settings.json (shared with your team)"), /* @__PURE__ */ React245.createElement(ThemedBox_default, {
541216
+ }, selectedPlugin.plugin.name, " is enabled in .codez/settings.json (shared with your team)"), /* @__PURE__ */ React245.createElement(ThemedBox_default, {
541224
541217
  marginTop: 1,
541225
541218
  flexDirection: "column"
541226
- }, /* @__PURE__ */ React245.createElement(ThemedText, null, "Disable it just for you in .claude/settings.local.json?"), /* @__PURE__ */ React245.createElement(ThemedText, {
541219
+ }, /* @__PURE__ */ React245.createElement(ThemedText, null, "Disable it just for you in .codez/settings.local.json?"), /* @__PURE__ */ React245.createElement(ThemedText, {
541227
541220
  dimColor: true
541228
541221
  }, "This has the same effect as uninstalling, without affecting other contributors.")), processError && /* @__PURE__ */ React245.createElement(ThemedBox_default, {
541229
541222
  marginTop: 1
@@ -548517,7 +548510,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
548517
548510
  return [];
548518
548511
  }
548519
548512
  }
548520
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.1.13") {
548513
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.1.15") {
548521
548514
  if (process.env.USER_TYPE === "ant") {
548522
548515
  const changelog = MACRO.VERSION_CHANGELOG;
548523
548516
  if (changelog) {
@@ -548544,7 +548537,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.1.13")
548544
548537
  releaseNotes
548545
548538
  };
548546
548539
  }
548547
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "0.1.13") {
548540
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "0.1.15") {
548548
548541
  if (process.env.USER_TYPE === "ant") {
548549
548542
  const changelog = MACRO.VERSION_CHANGELOG;
548550
548543
  if (changelog) {
@@ -549714,7 +549707,7 @@ function getRecentActivitySync() {
549714
549707
  return cachedActivity;
549715
549708
  }
549716
549709
  function getLogoDisplayData() {
549717
- const version2 = process.env.DEMO_VERSION ?? "0.1.13";
549710
+ const version2 = process.env.DEMO_VERSION ?? "0.1.15";
549718
549711
  const serverUrl = getDirectConnectServerUrl();
549719
549712
  const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
549720
549713
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -550867,7 +550860,7 @@ function LogoV2() {
550867
550860
  if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
550868
550861
  t2 = () => {
550869
550862
  const currentConfig = getGlobalConfig();
550870
- if (currentConfig.lastReleaseNotesSeen === "0.1.13") {
550863
+ if (currentConfig.lastReleaseNotesSeen === "0.1.15") {
550871
550864
  return;
550872
550865
  }
550873
550866
  saveGlobalConfig(_temp329);
@@ -551405,12 +551398,12 @@ function LogoV2() {
551405
551398
  return t41;
551406
551399
  }
551407
551400
  function _temp329(current) {
551408
- if (current.lastReleaseNotesSeen === "0.1.13") {
551401
+ if (current.lastReleaseNotesSeen === "0.1.15") {
551409
551402
  return current;
551410
551403
  }
551411
551404
  return {
551412
551405
  ...current,
551413
- lastReleaseNotesSeen: "0.1.13"
551406
+ lastReleaseNotesSeen: "0.1.15"
551414
551407
  };
551415
551408
  }
551416
551409
  function _temp245(s_0) {
@@ -557917,7 +557910,7 @@ function SkillsMenu(t0) {
557917
557910
  if ($3[6] === Symbol.for("react.memo_cache_sentinel")) {
557918
557911
  t32 = /* @__PURE__ */ React279.createElement(ThemedText, {
557919
557912
  dimColor: true
557920
- }, "Create skills in .claude/skills/ or ~/.claude/skills/");
557913
+ }, "Create skills in .codez/skills/ or ~/.codez/skills/");
557921
557914
  $3[6] = t32;
557922
557915
  } else {
557923
557916
  t32 = $3[6];
@@ -563966,7 +563959,7 @@ function optionForPermissionSaveDestination(saveDestination) {
563966
563959
  case "userSettings":
563967
563960
  return {
563968
563961
  label: "User settings",
563969
- description: `Saved in at ~/.claude/settings.json`,
563962
+ description: `Saved in at ~/.codez/settings.json`,
563970
563963
  value: saveDestination
563971
563964
  };
563972
563965
  }
@@ -567935,7 +567928,7 @@ function SelectEventMode(t0) {
567935
567928
  color: "suggestion"
567936
567929
  }, figures_default.info, " Hooks Restricted by Policy"), /* @__PURE__ */ React311.createElement(ThemedText, {
567937
567930
  dimColor: true
567938
- }, "Only hooks from managed settings can run. User-defined hooks from ~/.claude/settings.json, .claude/settings.json, and .claude/settings.local.json are blocked."));
567931
+ }, "Only hooks from managed settings can run. User-defined hooks from ~/.codez/settings.json, .codez/settings.json, and .codez/settings.local.json are blocked."));
567939
567932
  $3[2] = restrictedByPolicy;
567940
567933
  $3[3] = t2;
567941
567934
  } else {
@@ -569522,7 +569515,7 @@ var init_agentDisplay = __esm(() => {
569522
569515
  var AGENT_PATHS;
569523
569516
  var init_types13 = __esm(() => {
569524
569517
  AGENT_PATHS = {
569525
- FOLDER_NAME: ".claude",
569518
+ FOLDER_NAME: ".codez",
569526
569519
  AGENTS_DIR: "agents"
569527
569520
  };
569528
569521
  });
@@ -572985,7 +572978,7 @@ function LocationStep() {
572985
572978
  let t0;
572986
572979
  if ($3[0] === Symbol.for("react.memo_cache_sentinel")) {
572987
572980
  t0 = {
572988
- label: "Project (.claude/agents/)",
572981
+ label: "Project (.codez/agents/)",
572989
572982
  value: "projectSettings"
572990
572983
  };
572991
572984
  $3[0] = t0;
@@ -572995,7 +572988,7 @@ function LocationStep() {
572995
572988
  let t1;
572996
572989
  if ($3[1] === Symbol.for("react.memo_cache_sentinel")) {
572997
572990
  t1 = [t0, {
572998
- label: "Personal (~/.claude/agents/)",
572991
+ label: "Personal (~/.codez/agents/)",
572999
572992
  value: "userSettings"
573000
572993
  }];
573001
572994
  $3[1] = t1;
@@ -573098,28 +573091,28 @@ function MemoryStep() {
573098
573091
  let t1;
573099
573092
  if ($3[1] !== isUserScope) {
573100
573093
  t1 = isUserScope ? [{
573101
- label: "User scope (~/.claude/agent-memory/) (Recommended)",
573094
+ label: "User scope (~/.codez/agent-memory/) (Recommended)",
573102
573095
  value: "user"
573103
573096
  }, {
573104
573097
  label: "None (no persistent memory)",
573105
573098
  value: "none"
573106
573099
  }, {
573107
- label: "Project scope (.claude/agent-memory/)",
573100
+ label: "Project scope (.codez/agent-memory/)",
573108
573101
  value: "project"
573109
573102
  }, {
573110
- label: "Local scope (.claude/agent-memory-local/)",
573103
+ label: "Local scope (.codez/agent-memory-local/)",
573111
573104
  value: "local"
573112
573105
  }] : [{
573113
- label: "Project scope (.claude/agent-memory/) (Recommended)",
573106
+ label: "Project scope (.codez/agent-memory/) (Recommended)",
573114
573107
  value: "project"
573115
573108
  }, {
573116
573109
  label: "None (no persistent memory)",
573117
573110
  value: "none"
573118
573111
  }, {
573119
- label: "User scope (~/.claude/agent-memory/)",
573112
+ label: "User scope (~/.codez/agent-memory/)",
573120
573113
  value: "user"
573121
573114
  }, {
573122
- label: "Local scope (.claude/agent-memory-local/)",
573115
+ label: "Local scope (.codez/agent-memory-local/)",
573123
573116
  value: "local"
573124
573117
  }];
573125
573118
  $3[1] = isUserScope;
@@ -575091,7 +575084,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
575091
575084
  smapsRollup,
575092
575085
  platform: process.platform,
575093
575086
  nodeVersion: process.version,
575094
- ccVersion: "0.1.13"
575087
+ ccVersion: "0.1.15"
575095
575088
  };
575096
575089
  }
575097
575090
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -575677,7 +575670,7 @@ var init_bridge_kick = __esm(() => {
575677
575670
  var call56 = async () => {
575678
575671
  return {
575679
575672
  type: "text",
575680
- value: `${"0.1.13"} (built ${"2026-04-02T01:04:09.035Z"})`
575673
+ value: `${"0.1.15"} (built ${"2026-04-02T01:22:27.530Z"})`
575681
575674
  };
575682
575675
  }, version2, version_default;
575683
575676
  var init_version = __esm(() => {
@@ -576637,7 +576630,7 @@ async function call57(onDone, _context, args) {
576637
576630
  const cleanPattern = commandPattern.replace(/^["']|["']$/g, "");
576638
576631
  addToExcludedCommands(cleanPattern);
576639
576632
  const localSettingsPath = getSettingsFilePathForSource("localSettings");
576640
- const relativePath = localSettingsPath ? relative28(getCwdState(), localSettingsPath) : ".claude/settings.local.json";
576633
+ const relativePath = localSettingsPath ? relative28(getCwdState(), localSettingsPath) : ".codez/settings.local.json";
576641
576634
  const message = color("success", themeName)(`Added "${cleanPattern}" to excluded commands in ${relativePath}`);
576642
576635
  onDone(message);
576643
576636
  return null;
@@ -579603,7 +579596,7 @@ var init_statusline = __esm(() => {
579603
579596
  aliases: [],
579604
579597
  name: "statusline",
579605
579598
  progressMessage: "setting up statusLine",
579606
- allowedTools: [AGENT_TOOL_NAME, "Read(~/**)", "Edit(~/.claude/settings.json)"],
579599
+ allowedTools: [AGENT_TOOL_NAME, "Read(~/**)", "Edit(~/.codez/settings.json)"],
579607
579600
  source: "builtin",
579608
579601
  disableNonInteractive: true,
579609
579602
  async getPromptForCommand(args) {
@@ -582176,7 +582169,7 @@ function renderStatsToAnsi(stats, activeTab) {
582176
582169
  function renderOverviewToAnsi(stats) {
582177
582170
  const lines2 = [];
582178
582171
  const theme2 = getTheme(resolveThemeSetting(getGlobalConfig().theme));
582179
- const h2 = (text2) => applyColor(text2, theme2.claude);
582172
+ const h2 = (text2) => applyColor(text2, theme2.codez);
582180
582173
  const COL1_LABEL_WIDTH = 18;
582181
582174
  const COL2_START = 40;
582182
582175
  const COL2_LABEL_WIDTH = 18;
@@ -583909,7 +583902,7 @@ function generateHtmlReport(data, insights) {
583909
583902
  </html>`;
583910
583903
  }
583911
583904
  function buildExportData(data, insights, facets, remoteStats) {
583912
- const version3 = typeof MACRO !== "undefined" ? "0.1.13" : "unknown";
583905
+ const version3 = typeof MACRO !== "undefined" ? "0.1.15" : "unknown";
583913
583906
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
583914
583907
  const facets_summary = {
583915
583908
  total: facets.size,
@@ -584209,7 +584202,7 @@ var init_insights = __esm(() => {
584209
584202
  getRemoteHostSessionCount = process.env.USER_TYPE === "ant" ? async (homespace) => {
584210
584203
  const { stdout, code } = await execFileNoThrow("ssh", [
584211
584204
  `${homespace}.coder`,
584212
- 'find /root/.claude/projects -name "*.jsonl" 2>/dev/null | wc -l'
584205
+ 'find /root/.codez/projects -name "*.jsonl" 2>/dev/null | wc -l'
584213
584206
  ], { timeout: 30000 });
584214
584207
  if (code !== 0)
584215
584208
  return 0;
@@ -584219,7 +584212,7 @@ var init_insights = __esm(() => {
584219
584212
  const result = { copied: 0, skipped: 0 };
584220
584213
  const tempDir = await mkdtemp3(join136(tmpdir12(), "claude-hs-"));
584221
584214
  try {
584222
- const scpResult = await execFileNoThrow("scp", ["-rq", `${homespace}.coder:/root/.claude/projects/`, tempDir], { timeout: 300000 });
584215
+ const scpResult = await execFileNoThrow("scp", ["-rq", `${homespace}.coder:/root/.codez/projects/`, tempDir], { timeout: 300000 });
584223
584216
  if (scpResult.code !== 0) {
584224
584217
  return result;
584225
584218
  }
@@ -584428,11 +584421,11 @@ Include 3 friction categories with 2 examples each.`,
584428
584421
  - Good for: database queries, Slack integration, GitHub issue lookup, connecting to internal APIs
584429
584422
 
584430
584423
  2. **Custom Skills**: Reusable prompts you define as markdown files that run with a single /command.
584431
- - How to use: Create \`.claude/skills/commit/SKILL.md\` with instructions. Then type \`/commit\` to run it.
584424
+ - How to use: Create \`.codez/skills/commit/SKILL.md\` with instructions. Then type \`/commit\` to run it.
584432
584425
  - Good for: repetitive workflows - /commit, /review, /test, /deploy, /pr, or complex multi-step workflows
584433
584426
 
584434
584427
  3. **Hooks**: Shell commands that auto-run at specific lifecycle events.
584435
- - How to use: Add to \`.claude/settings.json\` under "hooks" key.
584428
+ - How to use: Add to \`.codez/settings.json\` under "hooks" key.
584436
584429
  - Good for: auto-formatting code, running type checks, enforcing conventions
584437
584430
 
584438
584431
  4. **Headless Mode**: Run Claude non-interactively from scripts and CI/CD.
@@ -588018,7 +588011,7 @@ var init_sessionStorage = __esm(() => {
588018
588011
  init_settings2();
588019
588012
  init_slowOperations();
588020
588013
  init_uuid();
588021
- VERSION4 = typeof MACRO !== "undefined" ? "0.1.13" : "unknown";
588014
+ VERSION4 = typeof MACRO !== "undefined" ? "0.1.15" : "unknown";
588022
588015
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
588023
588016
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
588024
588017
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -588276,13 +588269,13 @@ function getLocalAgentMemoryDir(dirName) {
588276
588269
  if (process.env.CLAUDE_CODE_REMOTE_MEMORY_DIR) {
588277
588270
  return join138(process.env.CLAUDE_CODE_REMOTE_MEMORY_DIR, "projects", sanitizePath2(findCanonicalGitRoot(getProjectRoot()) ?? getProjectRoot()), "agent-memory-local", dirName) + sep34;
588278
588271
  }
588279
- return join138(getCwd(), ".claude", "agent-memory-local", dirName) + sep34;
588272
+ return join138(getCwd(), ".codez", "agent-memory-local", dirName) + sep34;
588280
588273
  }
588281
588274
  function getAgentMemoryDir(agentType, scope) {
588282
588275
  const dirName = sanitizeAgentTypeForPath(agentType);
588283
588276
  switch (scope) {
588284
588277
  case "project":
588285
- return join138(getCwd(), ".claude", "agent-memory", dirName) + sep34;
588278
+ return join138(getCwd(), ".codez", "agent-memory", dirName) + sep34;
588286
588279
  case "local":
588287
588280
  return getLocalAgentMemoryDir(dirName);
588288
588281
  case "user":
@@ -588295,14 +588288,14 @@ function isAgentMemoryPath(absolutePath) {
588295
588288
  if (normalizedPath.startsWith(join138(memoryBase, "agent-memory") + sep34)) {
588296
588289
  return true;
588297
588290
  }
588298
- if (normalizedPath.startsWith(join138(getCwd(), ".claude", "agent-memory") + sep34)) {
588291
+ if (normalizedPath.startsWith(join138(getCwd(), ".codez", "agent-memory") + sep34)) {
588299
588292
  return true;
588300
588293
  }
588301
588294
  if (process.env.CLAUDE_CODE_REMOTE_MEMORY_DIR) {
588302
588295
  if (normalizedPath.includes(sep34 + "agent-memory-local" + sep34) && normalizedPath.startsWith(join138(process.env.CLAUDE_CODE_REMOTE_MEMORY_DIR, "projects") + sep34)) {
588303
588296
  return true;
588304
588297
  }
588305
- } else if (normalizedPath.startsWith(join138(getCwd(), ".claude", "agent-memory-local") + sep34)) {
588298
+ } else if (normalizedPath.startsWith(join138(getCwd(), ".codez", "agent-memory-local") + sep34)) {
588306
588299
  return true;
588307
588300
  }
588308
588301
  return false;
@@ -588312,7 +588305,7 @@ function getMemoryScopeDisplay(memory2) {
588312
588305
  case "user":
588313
588306
  return `User (${join138(getMemoryBaseDir(), "agent-memory")}/)`;
588314
588307
  case "project":
588315
- return "Project (.claude/agent-memory/)";
588308
+ return "Project (.codez/agent-memory/)";
588316
588309
  case "local":
588317
588310
  return `Local (${getLocalAgentMemoryDir("...")})`;
588318
588311
  default:
@@ -588362,12 +588355,12 @@ function getClaudeSkillScope(filePath) {
588362
588355
  const absolutePathLower = normalizeCaseForComparison2(absolutePath);
588363
588356
  const bases = [
588364
588357
  {
588365
- dir: expandPath(join139(getOriginalCwd(), ".claude", "skills")),
588366
- prefix: "/.claude/skills/"
588358
+ dir: expandPath(join139(getOriginalCwd(), ".codez", "skills")),
588359
+ prefix: "/.codez/skills/"
588367
588360
  },
588368
588361
  {
588369
- dir: expandPath(join139(homedir33(), ".claude", "skills")),
588370
- prefix: "~/.claude/skills/"
588362
+ dir: expandPath(join139(homedir33(), ".codez", "skills")),
588363
+ prefix: "~/.codez/skills/"
588371
588364
  }
588372
588365
  ];
588373
588366
  for (const { dir, prefix } of bases) {
@@ -588412,7 +588405,7 @@ function getSettingsPaths() {
588412
588405
  function isClaudeSettingsPath(filePath) {
588413
588406
  const expandedPath = expandPath(filePath);
588414
588407
  const normalizedPath = normalizeCaseForComparison2(expandedPath);
588415
- if (normalizedPath.endsWith(`${sep35}.claude${sep35}settings.json`) || normalizedPath.endsWith(`${sep35}.claude${sep35}settings.local.json`)) {
588408
+ if (normalizedPath.endsWith(`${sep35}.codez${sep35}settings.json`) || normalizedPath.endsWith(`${sep35}.codez${sep35}settings.local.json`)) {
588416
588409
  return true;
588417
588410
  }
588418
588411
  return getSettingsPaths().some((settingsPath) => normalizeCaseForComparison2(settingsPath) === normalizedPath);
@@ -588421,9 +588414,9 @@ function isClaudeConfigFilePath(filePath) {
588421
588414
  if (isClaudeSettingsPath(filePath)) {
588422
588415
  return true;
588423
588416
  }
588424
- const commandsDir = join139(getOriginalCwd(), ".claude", "commands");
588425
- const agentsDir = join139(getOriginalCwd(), ".claude", "agents");
588426
- const skillsDir = join139(getOriginalCwd(), ".claude", "skills");
588417
+ const commandsDir = join139(getOriginalCwd(), ".codez", "commands");
588418
+ const agentsDir = join139(getOriginalCwd(), ".codez", "agents");
588419
+ const skillsDir = join139(getOriginalCwd(), ".codez", "skills");
588427
588420
  return pathInWorkingPath(filePath, commandsDir) || pathInWorkingPath(filePath, agentsDir) || pathInWorkingPath(filePath, skillsDir);
588428
588421
  }
588429
588422
  function isSessionPlanFile(absolutePath) {
@@ -588493,7 +588486,7 @@ function isDangerousFilePathToAutoEdit(path22) {
588493
588486
  if (normalizedSegment !== normalizeCaseForComparison2(dir)) {
588494
588487
  continue;
588495
588488
  }
588496
- if (dir === ".claude") {
588489
+ if (dir === ".codez") {
588497
588490
  const nextSegment = pathSegments[i3 + 1];
588498
588491
  if (nextSegment && normalizeCaseForComparison2(nextSegment) === "worktrees") {
588499
588492
  break;
@@ -589038,7 +589031,7 @@ function checkEditableInternalPath(absolutePath, input) {
589038
589031
  }
589039
589032
  };
589040
589033
  }
589041
- if (normalizeCaseForComparison2(normalizedPath) === normalizeCaseForComparison2(join139(getOriginalCwd(), ".claude", "launch.json"))) {
589034
+ if (normalizeCaseForComparison2(normalizedPath) === normalizeCaseForComparison2(join139(getOriginalCwd(), ".codez", "launch.json"))) {
589042
589035
  return {
589043
589036
  behavior: "allow",
589044
589037
  updatedInput: input,
@@ -589209,7 +589202,7 @@ var init_filesystem = __esm(() => {
589209
589202
  ".git",
589210
589203
  ".vscode",
589211
589204
  ".idea",
589212
- ".claude"
589205
+ ".codez"
589213
589206
  ];
589214
589207
  DIR_SEP = posix8.sep;
589215
589208
  getClaudeTempDir = memoize_default(function getClaudeTempDir2() {
@@ -589223,7 +589216,7 @@ var init_filesystem = __esm(() => {
589223
589216
  });
589224
589217
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
589225
589218
  const nonce = randomBytes20(16).toString("hex");
589226
- return join139(getClaudeTempDir(), "bundled-skills", "0.1.13", nonce);
589219
+ return join139(getClaudeTempDir(), "bundled-skills", "0.1.15", nonce);
589227
589220
  });
589228
589221
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
589229
589222
  });
@@ -593564,7 +593557,7 @@ function generateTmuxSessionName(repoPath, branch2) {
593564
593557
  return combined.replace(/[/.]/g, "_");
593565
593558
  }
593566
593559
  function worktreesDir(repoRoot) {
593567
- return join141(repoRoot, ".claude", "worktrees");
593560
+ return join141(repoRoot, ".codez", "worktrees");
593568
593561
  }
593569
593562
  function flattenSlug(slug) {
593570
593563
  return slug.replaceAll("/", "+");
@@ -595213,7 +595206,7 @@ function computeFingerprint(messageText, version3) {
595213
595206
  }
595214
595207
  function computeFingerprintFromMessages(messages) {
595215
595208
  const firstMessageText = extractFirstMessageText(messages);
595216
- return computeFingerprint(firstMessageText, "0.1.13");
595209
+ return computeFingerprint(firstMessageText, "0.1.15");
595217
595210
  }
595218
595211
  var FINGERPRINT_SALT = "59cf53e54c78";
595219
595212
  var init_fingerprint = () => {};
@@ -595357,11 +595350,6 @@ function getPromptCachingEnabled(model) {
595357
595350
  if (model === smallFastModel)
595358
595351
  return false;
595359
595352
  }
595360
- if (isEnvTruthy(process.env.DISABLE_PROMPT_CACHING_SONNET)) {
595361
- const defaultSonnet = getDefaultSonnetModel();
595362
- if (model === defaultSonnet)
595363
- return false;
595364
- }
595365
595353
  if (isEnvTruthy(process.env.DISABLE_PROMPT_CACHING_OPUS)) {
595366
595354
  const defaultOpus = getDefaultOpusModel();
595367
595355
  if (model === defaultOpus)
@@ -597117,7 +597105,7 @@ async function sideQuery(opts) {
597117
597105
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
597118
597106
  }
597119
597107
  const messageText = extractFirstUserMessageText(messages);
597120
- const fingerprint = computeFingerprint(messageText, "0.1.13");
597108
+ const fingerprint = computeFingerprint(messageText, "0.1.15");
597121
597109
  const attributionHeader = getAttributionHeader(fingerprint);
597122
597110
  const systemBlocks = [
597123
597111
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -597849,7 +597837,7 @@ var init_chromeNativeHost = __esm(() => {
597849
597837
  init_slowOperations();
597850
597838
  init_common3();
597851
597839
  MAX_MESSAGE_SIZE = 1024 * 1024;
597852
- LOG_FILE = process.env.USER_TYPE === "ant" ? join142(homedir34(), ".claude", "debug", "chrome-native-host.txt") : undefined;
597840
+ LOG_FILE = process.env.USER_TYPE === "ant" ? join142(homedir34(), ".codez", "debug", "chrome-native-host.txt") : undefined;
597853
597841
  messageSchema = lazySchema(() => exports_external.object({
597854
597842
  type: exports_external.string()
597855
597843
  }).passthrough());
@@ -601690,7 +601678,7 @@ function buildSystemInitMessage(inputs) {
601690
601678
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
601691
601679
  apiKeySource: getAnthropicApiKeyWithSource().source,
601692
601680
  betas: getSdkBetas(),
601693
- claude_code_version: "0.1.13",
601681
+ claude_code_version: "0.1.15",
601694
601682
  output_style: outputStyle2,
601695
601683
  agents: inputs.agents.map((agent) => agent.agentType),
601696
601684
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -607387,14 +607375,14 @@ import { homedir as homedir36 } from "os";
607387
607375
  import { basename as basename48, join as join144, sep as sep36 } from "path";
607388
607376
  function isInClaudeFolder(filePath) {
607389
607377
  const absolutePath = expandPath(filePath);
607390
- const claudeFolderPath = expandPath(`${getOriginalCwd()}/.claude`);
607378
+ const claudeFolderPath = expandPath(`${getOriginalCwd()}/.codez`);
607391
607379
  const normalizedAbsolutePath = normalizeCaseForComparison2(absolutePath);
607392
607380
  const normalizedClaudeFolderPath = normalizeCaseForComparison2(claudeFolderPath);
607393
607381
  return normalizedAbsolutePath.startsWith(normalizedClaudeFolderPath + sep36.toLowerCase()) || normalizedAbsolutePath.startsWith(normalizedClaudeFolderPath + "/");
607394
607382
  }
607395
607383
  function isInGlobalClaudeFolder(filePath) {
607396
607384
  const absolutePath = expandPath(filePath);
607397
- const globalClaudeFolderPath = join144(homedir36(), ".claude");
607385
+ const globalClaudeFolderPath = join144(homedir36(), ".codez");
607398
607386
  const normalizedAbsolutePath = normalizeCaseForComparison2(absolutePath);
607399
607387
  const normalizedGlobalClaudeFolderPath = normalizeCaseForComparison2(globalClaudeFolderPath);
607400
607388
  return normalizedAbsolutePath.startsWith(normalizedGlobalClaudeFolderPath + sep36.toLowerCase()) || normalizedAbsolutePath.startsWith(normalizedGlobalClaudeFolderPath + "/");
@@ -614837,7 +614825,7 @@ var init_useVoiceEnabled = __esm(() => {
614837
614825
  function getSemverPart(version3) {
614838
614826
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
614839
614827
  }
614840
- function useUpdateNotification(updatedVersion, initialVersion = "0.1.13") {
614828
+ function useUpdateNotification(updatedVersion, initialVersion = "0.1.15") {
614841
614829
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react338.useState(() => getSemverPart(initialVersion));
614842
614830
  if (!updatedVersion) {
614843
614831
  return null;
@@ -614877,7 +614865,7 @@ function AutoUpdater({
614877
614865
  return;
614878
614866
  }
614879
614867
  if (false) {}
614880
- const currentVersion = "0.1.13";
614868
+ const currentVersion = "0.1.15";
614881
614869
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
614882
614870
  let latestVersion = await getLatestVersion(channel);
614883
614871
  const isDisabled = isAutoUpdaterDisabled();
@@ -614991,7 +614979,7 @@ function AutoUpdater({
614991
614979
  bold: true
614992
614980
  }, "claude doctor"), " or", " ", /* @__PURE__ */ React409.createElement(ThemedText, {
614993
614981
  bold: true
614994
- }, hasLocalInstall ? `cd ~/.claude/local && npm update ${"codez-cli"}` : `npm i -g ${"codez-cli"}`)));
614982
+ }, hasLocalInstall ? `cd ~/.codez/local && npm update ${"codez-cli"}` : `npm i -g ${"codez-cli"}`)));
614995
614983
  }
614996
614984
  var React409, import_react339;
614997
614985
  var init_AutoUpdater = __esm(() => {
@@ -615062,12 +615050,12 @@ function NativeAutoUpdater({
615062
615050
  logEvent("tengu_native_auto_updater_start", {});
615063
615051
  try {
615064
615052
  const maxVersion = await getMaxVersion();
615065
- if (maxVersion && gt("0.1.13", maxVersion)) {
615053
+ if (maxVersion && gt("0.1.15", maxVersion)) {
615066
615054
  const msg = await getMaxVersionMessage();
615067
615055
  setMaxVersionIssue(msg ?? "affects your version");
615068
615056
  }
615069
615057
  const result = await installLatest(channel);
615070
- const currentVersion = "0.1.13";
615058
+ const currentVersion = "0.1.15";
615071
615059
  const latencyMs = Date.now() - startTime;
615072
615060
  if (result.lockFailed) {
615073
615061
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -615180,17 +615168,17 @@ function PackageManagerAutoUpdater(t0) {
615180
615168
  const maxVersion = await getMaxVersion();
615181
615169
  if (maxVersion && latest && gt(latest, maxVersion)) {
615182
615170
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
615183
- if (gte("0.1.13", maxVersion)) {
615184
- logForDebugging(`PackageManagerAutoUpdater: current version ${"0.1.13"} is already at or above maxVersion ${maxVersion}, skipping update`);
615171
+ if (gte("0.1.15", maxVersion)) {
615172
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"0.1.15"} is already at or above maxVersion ${maxVersion}, skipping update`);
615185
615173
  setUpdateAvailable(false);
615186
615174
  return;
615187
615175
  }
615188
615176
  latest = maxVersion;
615189
615177
  }
615190
- const hasUpdate = latest && !gte("0.1.13", latest) && !shouldSkipVersion(latest);
615178
+ const hasUpdate = latest && !gte("0.1.15", latest) && !shouldSkipVersion(latest);
615191
615179
  setUpdateAvailable(!!hasUpdate);
615192
615180
  if (hasUpdate) {
615193
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.1.13"} -> ${latest}`);
615181
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.1.15"} -> ${latest}`);
615194
615182
  }
615195
615183
  };
615196
615184
  $3[0] = t1;
@@ -615222,7 +615210,7 @@ function PackageManagerAutoUpdater(t0) {
615222
615210
  t4 = verbose && /* @__PURE__ */ React411.createElement(ThemedText, {
615223
615211
  dimColor: true,
615224
615212
  wrap: "truncate"
615225
- }, "currentVersion: ", "0.1.13");
615213
+ }, "currentVersion: ", "0.1.15");
615226
615214
  $3[3] = verbose;
615227
615215
  $3[4] = t4;
615228
615216
  } else {
@@ -622444,7 +622432,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
622444
622432
  project_dir: getOriginalCwd(),
622445
622433
  added_dirs: addedDirs
622446
622434
  },
622447
- version: "0.1.13",
622435
+ version: "0.1.15",
622448
622436
  output_style: {
622449
622437
  name: outputStyleName
622450
622438
  },
@@ -628236,7 +628224,7 @@ async function applySkillImprovement(skillName, updates) {
628236
628224
  return;
628237
628225
  const { join: join145 } = await import("path");
628238
628226
  const fs11 = await import("fs/promises");
628239
- const filePath = join145(getCwd(), ".claude", "skills", skillName, "SKILL.md");
628227
+ const filePath = join145(getCwd(), ".codez", "skills", skillName, "SKILL.md");
628240
628228
  let currentContent;
628241
628229
  try {
628242
628230
  currentContent = await fs11.readFile(filePath, "utf-8");
@@ -639918,7 +639906,7 @@ async function getWatchablePaths() {
639918
639906
  } catch {}
639919
639907
  }
639920
639908
  for (const dir of getAdditionalDirectoriesForClaudeMd()) {
639921
- const additionalSkillsPath = platformPath2.join(dir, ".claude", "skills");
639909
+ const additionalSkillsPath = platformPath2.join(dir, ".codez", "skills");
639922
639910
  try {
639923
639911
  await fs12.stat(additionalSkillsPath);
639924
639912
  paths2.push(additionalSkillsPath);
@@ -642073,7 +642061,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
642073
642061
  } catch {}
642074
642062
  const data = {
642075
642063
  trigger,
642076
- version: "0.1.13",
642064
+ version: "0.1.15",
642077
642065
  platform: process.platform,
642078
642066
  transcript,
642079
642067
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -644196,7 +644184,7 @@ var init_tipRegistry = __esm(() => {
644196
644184
  },
644197
644185
  {
644198
644186
  id: "custom-commands",
644199
- content: async () => "Create skills by adding .md files to .claude/skills/ in your project or ~/.claude/skills/ for skills that work in any project",
644187
+ content: async () => "Create skills by adding .md files to .codez/skills/ in your project or ~/.codez/skills/ for skills that work in any project",
644200
644188
  cooldownSessions: 15,
644201
644189
  async isRelevant() {
644202
644190
  const config5 = getGlobalConfig();
@@ -649603,7 +649591,7 @@ function REPL({
649603
649591
  return;
649604
649592
  worktreeTipShownRef.current = true;
649605
649593
  const secs = Math.round(wt.creationDurationMs / 1000);
649606
- setMessages((prev) => [...prev, createSystemMessage(`Worktree creation took ${secs}s. For large repos, set \`worktree.sparsePaths\` in .claude/settings.json to check out only the directories you need — e.g. \`{"worktree": {"sparsePaths": ["src", "packages/foo"]}}\`.`, "info")]);
649594
+ setMessages((prev) => [...prev, createSystemMessage(`Worktree creation took ${secs}s. For large repos, set \`worktree.sparsePaths\` in .codez/settings.json to check out only the directories you need — e.g. \`{"worktree": {"sparsePaths": ["src", "packages/foo"]}}\`.`, "info")]);
649607
649595
  }, [setMessages]);
649608
649596
  const onlySleepToolActive = import_react432.useMemo(() => {
649609
649597
  const lastAssistant = messages.findLast((m2) => m2.type === "assistant");
@@ -653215,7 +653203,7 @@ function WelcomeV2() {
653215
653203
  color: "claude"
653216
653204
  }, `Welcome to ${getProductName()}`, " "), /* @__PURE__ */ import_react441.default.createElement(ThemedText, {
653217
653205
  dimColor: true
653218
- }, "v", "0.1.13", " "));
653206
+ }, "v", "0.1.15", " "));
653219
653207
  t17 = /* @__PURE__ */ import_react441.default.createElement(ThemedText, null, "…………………………………………………………………………………………………………………………………………………………");
653220
653208
  t22 = /* @__PURE__ */ import_react441.default.createElement(ThemedText, null, " ");
653221
653209
  t32 = /* @__PURE__ */ import_react441.default.createElement(ThemedText, null, " ");
@@ -653319,7 +653307,7 @@ function WelcomeV2() {
653319
653307
  color: "claude"
653320
653308
  }, `Welcome to ${getProductName()}`, " "), /* @__PURE__ */ import_react441.default.createElement(ThemedText, {
653321
653309
  dimColor: true
653322
- }, "v", "0.1.13", " "));
653310
+ }, "v", "0.1.15", " "));
653323
653311
  t1 = /* @__PURE__ */ import_react441.default.createElement(ThemedText, null, "…………………………………………………………………………………………………………………………………………………………");
653324
653312
  t2 = /* @__PURE__ */ import_react441.default.createElement(ThemedText, null, " ");
653325
653313
  t3 = /* @__PURE__ */ import_react441.default.createElement(ThemedText, null, " * █████▓▓░ ");
@@ -653446,7 +653434,7 @@ function AppleTerminalWelcomeV2(t0) {
653446
653434
  if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
653447
653435
  t22 = /* @__PURE__ */ import_react441.default.createElement(ThemedText, {
653448
653436
  dimColor: true
653449
- }, "v", "0.1.13", " ");
653437
+ }, "v", "0.1.15", " ");
653450
653438
  $3[2] = t22;
653451
653439
  } else {
653452
653440
  t22 = $3[2];
@@ -653584,7 +653572,7 @@ function AppleTerminalWelcomeV2(t0) {
653584
653572
  if ($3[24] === Symbol.for("react.memo_cache_sentinel")) {
653585
653573
  t2 = /* @__PURE__ */ import_react441.default.createElement(ThemedText, {
653586
653574
  dimColor: true
653587
- }, "v", "0.1.13", " ");
653575
+ }, "v", "0.1.15", " ");
653588
653576
  $3[24] = t2;
653589
653577
  } else {
653590
653578
  t2 = $3[24];
@@ -654115,11 +654103,11 @@ function getHooksSources() {
654115
654103
  const sources = [];
654116
654104
  const projectSettings = getSettingsForSource("projectSettings");
654117
654105
  if (hasHooks(projectSettings)) {
654118
- sources.push(".claude/settings.json");
654106
+ sources.push(".codez/settings.json");
654119
654107
  }
654120
654108
  const localSettings = getSettingsForSource("localSettings");
654121
654109
  if (hasHooks(localSettings)) {
654122
- sources.push(".claude/settings.local.json");
654110
+ sources.push(".codez/settings.local.json");
654123
654111
  }
654124
654112
  return sources;
654125
654113
  }
@@ -654130,11 +654118,11 @@ function getBashPermissionSources() {
654130
654118
  const sources = [];
654131
654119
  const projectRules = getPermissionRulesForSource("projectSettings");
654132
654120
  if (hasBashPermission(projectRules)) {
654133
- sources.push(".claude/settings.json");
654121
+ sources.push(".codez/settings.json");
654134
654122
  }
654135
654123
  const localRules = getPermissionRulesForSource("localSettings");
654136
654124
  if (hasBashPermission(localRules)) {
654137
- sources.push(".claude/settings.local.json");
654125
+ sources.push(".codez/settings.local.json");
654138
654126
  }
654139
654127
  return sources;
654140
654128
  }
@@ -654145,11 +654133,11 @@ function getOtelHeadersHelperSources() {
654145
654133
  const sources = [];
654146
654134
  const projectSettings = getSettingsForSource("projectSettings");
654147
654135
  if (hasOtelHeadersHelper(projectSettings)) {
654148
- sources.push(".claude/settings.json");
654136
+ sources.push(".codez/settings.json");
654149
654137
  }
654150
654138
  const localSettings = getSettingsForSource("localSettings");
654151
654139
  if (hasOtelHeadersHelper(localSettings)) {
654152
- sources.push(".claude/settings.local.json");
654140
+ sources.push(".codez/settings.local.json");
654153
654141
  }
654154
654142
  return sources;
654155
654143
  }
@@ -654160,11 +654148,11 @@ function getApiKeyHelperSources() {
654160
654148
  const sources = [];
654161
654149
  const projectSettings = getSettingsForSource("projectSettings");
654162
654150
  if (hasApiKeyHelper(projectSettings)) {
654163
- sources.push(".claude/settings.json");
654151
+ sources.push(".codez/settings.json");
654164
654152
  }
654165
654153
  const localSettings = getSettingsForSource("localSettings");
654166
654154
  if (hasApiKeyHelper(localSettings)) {
654167
- sources.push(".claude/settings.local.json");
654155
+ sources.push(".codez/settings.local.json");
654168
654156
  }
654169
654157
  return sources;
654170
654158
  }
@@ -654175,11 +654163,11 @@ function getAwsCommandsSources() {
654175
654163
  const sources = [];
654176
654164
  const projectSettings = getSettingsForSource("projectSettings");
654177
654165
  if (hasAwsCommands(projectSettings)) {
654178
- sources.push(".claude/settings.json");
654166
+ sources.push(".codez/settings.json");
654179
654167
  }
654180
654168
  const localSettings = getSettingsForSource("localSettings");
654181
654169
  if (hasAwsCommands(localSettings)) {
654182
- sources.push(".claude/settings.local.json");
654170
+ sources.push(".codez/settings.local.json");
654183
654171
  }
654184
654172
  return sources;
654185
654173
  }
@@ -654190,11 +654178,11 @@ function getGcpCommandsSources() {
654190
654178
  const sources = [];
654191
654179
  const projectSettings = getSettingsForSource("projectSettings");
654192
654180
  if (hasGcpCommands(projectSettings)) {
654193
- sources.push(".claude/settings.json");
654181
+ sources.push(".codez/settings.json");
654194
654182
  }
654195
654183
  const localSettings = getSettingsForSource("localSettings");
654196
654184
  if (hasGcpCommands(localSettings)) {
654197
- sources.push(".claude/settings.local.json");
654185
+ sources.push(".codez/settings.local.json");
654198
654186
  }
654199
654187
  return sources;
654200
654188
  }
@@ -654208,11 +654196,11 @@ function getDangerousEnvVarsSources() {
654208
654196
  const sources = [];
654209
654197
  const projectSettings = getSettingsForSource("projectSettings");
654210
654198
  if (hasDangerousEnvVars(projectSettings)) {
654211
- sources.push(".claude/settings.json");
654199
+ sources.push(".codez/settings.json");
654212
654200
  }
654213
654201
  const localSettings = getSettingsForSource("localSettings");
654214
654202
  if (hasDangerousEnvVars(localSettings)) {
654215
- sources.push(".claude/settings.local.json");
654203
+ sources.push(".codez/settings.local.json");
654216
654204
  }
654217
654205
  return sources;
654218
654206
  }
@@ -654786,7 +654774,7 @@ function completeOnboarding() {
654786
654774
  saveGlobalConfig((current) => ({
654787
654775
  ...current,
654788
654776
  hasCompletedOnboarding: true,
654789
- lastOnboardingVersion: "0.1.13"
654777
+ lastOnboardingVersion: "0.1.15"
654790
654778
  }));
654791
654779
  }
654792
654780
  function showDialog(root2, renderer) {
@@ -656802,7 +656790,7 @@ function generateReservedShortcuts() {
656802
656790
  function registerKeybindingsSkill() {
656803
656791
  registerBundledSkill({
656804
656792
  name: "keybindings-help",
656805
- description: 'Use when the user wants to customize keyboard shortcuts, rebind keys, add chord bindings, or modify ~/.claude/keybindings.json. Examples: "rebind ctrl+s", "add a chord shortcut", "change the submit key", "customize keybindings".',
656793
+ description: 'Use when the user wants to customize keyboard shortcuts, rebind keys, add chord bindings, or modify ~/.codez/keybindings.json. Examples: "rebind ctrl+s", "add a chord shortcut", "change the submit key", "customize keybindings".',
656806
656794
  allowedTools: ["Read"],
656807
656795
  userInvocable: false,
656808
656796
  isEnabled: isKeybindingCustomizationEnabled,
@@ -656891,11 +656879,11 @@ var init_keybindings3 = __esm(() => {
656891
656879
  SECTION_INTRO = [
656892
656880
  "# Keybindings Skill",
656893
656881
  "",
656894
- "Create or modify `~/.claude/keybindings.json` to customize keyboard shortcuts.",
656882
+ "Create or modify `~/.codez/keybindings.json` to customize keyboard shortcuts.",
656895
656883
  "",
656896
656884
  "## CRITICAL: Read Before Write",
656897
656885
  "",
656898
- "**Always read `~/.claude/keybindings.json` first** (it may not exist yet). Merge changes with existing bindings — never replace the entire file.",
656886
+ "**Always read `~/.codez/keybindings.json` first** (it may not exist yet). Merge changes with existing bindings — never replace the entire file.",
656899
656887
  "",
656900
656888
  "- Use **Edit** tool for modifications to existing files",
656901
656889
  "- Use **Write** tool only if the file does not exist yet"
@@ -656973,7 +656961,7 @@ var init_keybindings3 = __esm(() => {
656973
656961
  SECTION_DOCTOR = [
656974
656962
  "## Validation with /doctor",
656975
656963
  "",
656976
- 'The `/doctor` command includes a "Keybinding Configuration Issues" section that validates `~/.claude/keybindings.json`.',
656964
+ 'The `/doctor` command includes a "Keybinding Configuration Issues" section that validates `~/.codez/keybindings.json`.',
656977
656965
  "",
656978
656966
  "### Common Issues and Fixes",
656979
656967
  "",
@@ -657019,7 +657007,7 @@ var init_keybindings3 = __esm(() => {
657019
657007
  "",
657020
657008
  "```",
657021
657009
  "Keybinding Configuration Issues",
657022
- "Location: ~/.claude/keybindings.json",
657010
+ "Location: ~/.codez/keybindings.json",
657023
657011
  ' └ [Error] Unknown context "chat"',
657024
657012
  " → Valid contexts: Global, Chat, Autocomplete, ...",
657025
657013
  ' └ [Warning] "ctrl+c" may not work: Terminal interrupt (SIGINT)',
@@ -657537,8 +657525,8 @@ You will use the AskUserQuestion to understand what the user wants to automate.
657537
657525
  - If you think the skill will require arguments, suggest arguments based on what you observed. Make sure you understand what someone would need to provide.
657538
657526
  - If it's not clear, ask if this skill should run inline (in the current conversation) or forked (as a sub-agent with its own context). Forked is better for self-contained tasks that don't need mid-process user input; inline is better when the user wants to steer mid-process.
657539
657527
  - Ask where the skill should be saved. Suggest a default based on context (repo-specific workflows → repo, cross-repo personal workflows → user). Options:
657540
- - **This repo** (\`.claude/skills/<name>/SKILL.md\`) — for workflows specific to this project
657541
- - **Personal** (\`~/.claude/skills/<name>/SKILL.md\`) — follows you across all repos
657528
+ - **This repo** (\`.codez/skills/<name>/SKILL.md\`) — for workflows specific to this project
657529
+ - **Personal** (\`~/.codez/skills/<name>/SKILL.md\`) — follows you across all repos
657542
657530
 
657543
657531
  **Round 3: Breaking down each step**
657544
657532
  For each major step, if it's not glaringly obvious, ask:
@@ -657682,7 +657670,7 @@ Signs of a stuck session:
657682
657670
  - Child processes: \`pgrep -lP <pid>\`
657683
657671
  - If high CPU: sample again after 1-2s to confirm it's sustained
657684
657672
  - If a child looks hung (e.g., a git command), note its full command line with \`ps -p <child_pid> -o command=\`
657685
- - Check the session's debug log if you can infer the session ID: \`~/.claude/debug/<session-id>.txt\` (the last few hundred lines often show what it was doing before hanging)
657673
+ - Check the session's debug log if you can infer the session ID: \`~/.codez/debug/<session-id>.txt\` (the last few hundred lines often show what it was doing before hanging)
657686
657674
 
657687
657675
  3. **Consider a stack dump** for a truly frozen process (advanced, optional):
657688
657676
  - macOS: \`sample <pid> 3\` gives a 3-second native stack sample
@@ -657764,9 +657752,9 @@ Choose the appropriate file based on scope:
657764
657752
 
657765
657753
  | File | Scope | Git | Use For |
657766
657754
  |------|-------|-----|---------|
657767
- | \`~/.claude/settings.json\` | Global | N/A | Personal preferences for all projects |
657768
- | \`.claude/settings.json\` | Project | Commit | Team-wide hooks, permissions, plugins |
657769
- | \`.claude/settings.local.json\` | Project | Gitignore | Personal overrides for this project |
657755
+ | \`~/.codez/settings.json\` | Global | N/A | Personal preferences for all projects |
657756
+ | \`.codez/settings.json\` | Project | Commit | Team-wide hooks, permissions, plugins |
657757
+ | \`.codez/settings.local.json\` | Project | Gitignore | Personal overrides for this project |
657770
657758
 
657771
657759
  Settings load in order: user → project → local (later overrides earlier).
657772
657760
 
@@ -657776,7 +657764,7 @@ Settings load in order: user → project → local (later overrides earlier).
657776
657764
  \`\`\`json
657777
657765
  {
657778
657766
  "permissions": {
657779
- "allow": ["Bash(npm:*)", "Edit(.claude)", "Read"],
657767
+ "allow": ["Bash(npm:*)", "Edit(.codez)", "Read"],
657780
657768
  "deny": ["Bash(rm -rf:*)"],
657781
657769
  "ask": ["Write(/etc/*)"],
657782
657770
  "defaultMode": "default" | "plan" | "acceptEdits" | "dontAsk",
@@ -657975,7 +657963,7 @@ Hooks can return JSON to control behavior:
657975
657963
  "matcher": "Bash",
657976
657964
  "hooks": [{
657977
657965
  "type": "command",
657978
- "command": "jq -r '.tool_input.command' >> ~/.claude/bash-log.txt"
657966
+ "command": "jq -r '.tool_input.command' >> ~/.codez/bash-log.txt"
657979
657967
  }]
657980
657968
  }]
657981
657969
  }
@@ -658023,7 +658011,7 @@ Given an event, matcher, target file, and desired behavior, follow this flow. Ea
658023
658011
 
658024
658012
  Check exit code AND side effect (file actually formatted, test actually ran). If it fails you get a real error — fix (wrong package manager? tool not installed? jq path wrong?) and retest. Once it works, wrap with \`2>/dev/null || true\` (unless the user wants a blocking check).
658025
658013
 
658026
- 4. **Write the JSON.** Merge into the target file (schema shape in the "Hook Structure" section above). If this creates \`.claude/settings.local.json\` for the first time, add it to .gitignore — the Write tool doesn't auto-gitignore it.
658014
+ 4. **Write the JSON.** Merge into the target file (schema shape in the "Hook Structure" section above). If this creates \`.codez/settings.local.json\` for the first time, add it to .gitignore — the Write tool doesn't auto-gitignore it.
658027
658015
 
658028
658016
  5. **Validate syntax + schema in one shot:**
658029
658017
 
@@ -658037,7 +658025,7 @@ Given an event, matcher, target file, and desired behavior, follow this flow. Ea
658037
658025
 
658038
658026
  **Always clean up** — revert the violation, strip the sentinel prefix — whether the proof passed or failed.
658039
658027
 
658040
- **If proof fails but pipe-test passed and \`jq -e\` passed**: the settings watcher isn't watching \`.claude/\` — it only watches directories that had a settings file when this session started. The hook is written correctly. Tell the user to open \`/hooks\` once (reloads config) or restart — you can't do this yourself; \`/hooks\` is a user UI menu and opening it ends this turn.
658028
+ **If proof fails but pipe-test passed and \`jq -e\` passed**: the settings watcher isn't watching \`.codez/\` — it only watches directories that had a settings file when this session started. The hook is written correctly. Tell the user to open \`/hooks\` once (reloads config) or restart — you can't do this yourself; \`/hooks\` is a user UI menu and opening it ends this turn.
658041
658029
 
658042
658030
  7. **Handoff.** Tell the user the hook is live (or needs \`/hooks\`/restart per the watcher caveat). Point them at \`/hooks\` to review, edit, or disable it later. The UI only shows "Ran N hooks" if a hook errors or is slow — silent success is invisible by design.
658043
658031
  `, UPDATE_CONFIG_PROMPT;
@@ -658110,7 +658098,7 @@ When adding to permission arrays or hook arrays, **merge with existing**, don't
658110
658098
  "permissions": {
658111
658099
  "allow": [
658112
658100
  "Bash(git:*)", // existing
658113
- "Edit(.claude)", // existing
658101
+ "Edit(.codez)", // existing
658114
658102
  "Bash(npm:*)" // new
658115
658103
  ]
658116
658104
  }
@@ -658130,7 +658118,7 @@ ${HOOK_VERIFICATION_FLOW}
658130
658118
  User: "Format my code after Claude writes it"
658131
658119
 
658132
658120
  1. **Clarify**: Which formatter? (prettier, gofmt, etc.)
658133
- 2. **Read**: \`.claude/settings.json\` (or create if missing)
658121
+ 2. **Read**: \`.codez/settings.json\` (or create if missing)
658134
658122
  3. **Merge**: Add to existing hooks, don't replace
658135
658123
  4. **Result**:
658136
658124
  \`\`\`json
@@ -658176,7 +658164,7 @@ User: "Set DEBUG=true"
658176
658164
  ## Troubleshooting Hooks
658177
658165
 
658178
658166
  If a hook isn't running:
658179
- 1. **Check the settings file** - Read ~/.claude/settings.json or .claude/settings.json
658167
+ 1. **Check the settings file** - Read ~/.codez/settings.json or .codez/settings.json
658180
658168
  2. **Verify JSON syntax** - Invalid JSON silently fails
658181
658169
  3. **Check the matcher** - Does it match the tool name? (e.g., "Bash", "Write", "Edit")
658182
658170
  4. **Check hook type** - Is it "command", "prompt", or "agent"?
@@ -659064,7 +659052,7 @@ function appendToLog(path24, message) {
659064
659052
  cwd: getFsImplementation().cwd(),
659065
659053
  userType: process.env.USER_TYPE,
659066
659054
  sessionId: getSessionId(),
659067
- version: "0.1.13"
659055
+ version: "0.1.15"
659068
659056
  };
659069
659057
  getLogWriter(path24).write(messageWithTimestamp);
659070
659058
  }
@@ -663049,8 +663037,8 @@ async function getEnvLessBridgeConfig() {
663049
663037
  }
663050
663038
  async function checkEnvLessBridgeMinVersion() {
663051
663039
  const cfg = await getEnvLessBridgeConfig();
663052
- if (cfg.min_version && lt("0.1.13", cfg.min_version)) {
663053
- return `Your version of codez (${"0.1.13"}) is too old for Remote Control.
663040
+ if (cfg.min_version && lt("0.1.15", cfg.min_version)) {
663041
+ return `Your version of codez (${"0.1.15"}) is too old for Remote Control.
663054
663042
  Version ${cfg.min_version} or higher is required. Run \`claude update\` to update.`;
663055
663043
  }
663056
663044
  return null;
@@ -663524,7 +663512,7 @@ async function initBridgeCore(params) {
663524
663512
  const rawApi = createBridgeApiClient({
663525
663513
  baseUrl,
663526
663514
  getAccessToken,
663527
- runnerVersion: "0.1.13",
663515
+ runnerVersion: "0.1.15",
663528
663516
  onDebug: logForDebugging,
663529
663517
  onAuth401,
663530
663518
  getTrustedDeviceToken
@@ -668723,7 +668711,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
668723
668711
  setCwd(cwd3);
668724
668712
  const server = new Server({
668725
668713
  name: "claude/tengu",
668726
- version: "0.1.13"
668714
+ version: "0.1.15"
668727
668715
  }, {
668728
668716
  capabilities: {
668729
668717
  tools: {}
@@ -670224,7 +670212,7 @@ __export(exports_update, {
670224
670212
  });
670225
670213
  async function update() {
670226
670214
  logEvent("tengu_update_check", {});
670227
- writeToStdout(`Current version: ${"0.1.13"}
670215
+ writeToStdout(`Current version: ${"0.1.15"}
670228
670216
  `);
670229
670217
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
670230
670218
  writeToStdout(`Checking for updates to ${channel} version...
@@ -670299,8 +670287,8 @@ async function update() {
670299
670287
  writeToStdout(`Claude is managed by Homebrew.
670300
670288
  `);
670301
670289
  const latest = await getLatestVersion(channel);
670302
- if (latest && !gte("0.1.13", latest)) {
670303
- writeToStdout(`Update available: ${"0.1.13"} → ${latest}
670290
+ if (latest && !gte("0.1.15", latest)) {
670291
+ writeToStdout(`Update available: ${"0.1.15"} → ${latest}
670304
670292
  `);
670305
670293
  writeToStdout(`
670306
670294
  `);
@@ -670316,8 +670304,8 @@ async function update() {
670316
670304
  writeToStdout(`Claude is managed by winget.
670317
670305
  `);
670318
670306
  const latest = await getLatestVersion(channel);
670319
- if (latest && !gte("0.1.13", latest)) {
670320
- writeToStdout(`Update available: ${"0.1.13"} → ${latest}
670307
+ if (latest && !gte("0.1.15", latest)) {
670308
+ writeToStdout(`Update available: ${"0.1.15"} → ${latest}
670321
670309
  `);
670322
670310
  writeToStdout(`
670323
670311
  `);
@@ -670333,8 +670321,8 @@ async function update() {
670333
670321
  writeToStdout(`Claude is managed by apk.
670334
670322
  `);
670335
670323
  const latest = await getLatestVersion(channel);
670336
- if (latest && !gte("0.1.13", latest)) {
670337
- writeToStdout(`Update available: ${"0.1.13"} → ${latest}
670324
+ if (latest && !gte("0.1.15", latest)) {
670325
+ writeToStdout(`Update available: ${"0.1.15"} → ${latest}
670338
670326
  `);
670339
670327
  writeToStdout(`
670340
670328
  `);
@@ -670399,11 +670387,11 @@ async function update() {
670399
670387
  `);
670400
670388
  await gracefulShutdown(1);
670401
670389
  }
670402
- if (result.latestVersion === "0.1.13") {
670403
- writeToStdout(source_default.green(`codez is up to date (${"0.1.13"})`) + `
670390
+ if (result.latestVersion === "0.1.15") {
670391
+ writeToStdout(source_default.green(`codez is up to date (${"0.1.15"})`) + `
670404
670392
  `);
670405
670393
  } else {
670406
- writeToStdout(source_default.green(`Successfully updated from ${"0.1.13"} to version ${result.latestVersion}`) + `
670394
+ writeToStdout(source_default.green(`Successfully updated from ${"0.1.15"} to version ${result.latestVersion}`) + `
670407
670395
  `);
670408
670396
  await regenerateCompletionCache();
670409
670397
  }
@@ -670463,12 +670451,12 @@ async function update() {
670463
670451
  `);
670464
670452
  await gracefulShutdown(1);
670465
670453
  }
670466
- if (latestVersion === "0.1.13") {
670467
- writeToStdout(source_default.green(`codez is up to date (${"0.1.13"})`) + `
670454
+ if (latestVersion === "0.1.15") {
670455
+ writeToStdout(source_default.green(`codez is up to date (${"0.1.15"})`) + `
670468
670456
  `);
670469
670457
  await gracefulShutdown(0);
670470
670458
  }
670471
- writeToStdout(`New version available: ${latestVersion} (current: ${"0.1.13"})
670459
+ writeToStdout(`New version available: ${latestVersion} (current: ${"0.1.15"})
670472
670460
  `);
670473
670461
  writeToStdout(`Installing update...
670474
670462
  `);
@@ -670513,7 +670501,7 @@ async function update() {
670513
670501
  logForDebugging(`update: Installation status: ${status2}`);
670514
670502
  switch (status2) {
670515
670503
  case "success":
670516
- writeToStdout(source_default.green(`Successfully updated from ${"0.1.13"} to version ${latestVersion}`) + `
670504
+ writeToStdout(source_default.green(`Successfully updated from ${"0.1.15"} to version ${latestVersion}`) + `
670517
670505
  `);
670518
670506
  await regenerateCompletionCache();
670519
670507
  break;
@@ -670523,7 +670511,7 @@ async function update() {
670523
670511
  if (useLocalUpdate) {
670524
670512
  process.stderr.write(`Try manually updating with:
670525
670513
  `);
670526
- process.stderr.write(` cd ~/.claude/local && npm update ${"codez-cli"}
670514
+ process.stderr.write(` cd ~/.codez/local && npm update ${"codez-cli"}
670527
670515
  `);
670528
670516
  } else {
670529
670517
  process.stderr.write(`Try running with sudo or fix npm permissions
@@ -670539,7 +670527,7 @@ async function update() {
670539
670527
  if (useLocalUpdate) {
670540
670528
  process.stderr.write(`Try manually updating with:
670541
670529
  `);
670542
- process.stderr.write(` cd ~/.claude/local && npm update ${"codez-cli"}
670530
+ process.stderr.write(` cd ~/.codez/local && npm update ${"codez-cli"}
670543
670531
  `);
670544
670532
  } else {
670545
670533
  process.stderr.write(`Or consider using native installation with: codez install
@@ -671757,7 +671745,7 @@ ${customInstructions}` : customInstructions;
671757
671745
  }
671758
671746
  }
671759
671747
  logForDiagnosticsNoPII("info", "started", {
671760
- version: "0.1.13",
671748
+ version: "0.1.15",
671761
671749
  is_native_binary: isInBundledMode()
671762
671750
  });
671763
671751
  registerCleanup(async () => {
@@ -672541,7 +672529,7 @@ Usage: codez --remote "your task description"`, () => gracefulShutdown(1));
672541
672529
  pendingHookMessages
672542
672530
  }, renderAndRun);
672543
672531
  }
672544
- }).version("0.1.13", "-v, --version", "Output the version number");
672532
+ }).version("0.1.15", "-v, --version", "Output the version number");
672545
672533
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
672546
672534
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
672547
672535
  if (canUserConfigureAdvisor()) {
@@ -672706,7 +672694,7 @@ Usage: codez --remote "your task description"`, () => gracefulShutdown(1));
672706
672694
  } = await Promise.resolve().then(() => (init_plugins(), exports_plugins));
672707
672695
  await pluginInstallHandler2(plugin2, options);
672708
672696
  });
672709
- pluginCmd.command("uninstall <plugin>").alias("remove").alias("rm").description("Uninstall an installed plugin").option("-s, --scope <scope>", "Uninstall from scope: user, project, or local", "user").option("--keep-data", "Preserve the plugin's persistent data directory (~/.claude/plugins/data/{id}/)").addOption(coworkOption()).action(async (plugin2, options) => {
672697
+ pluginCmd.command("uninstall <plugin>").alias("remove").alias("rm").description("Uninstall an installed plugin").option("-s, --scope <scope>", "Uninstall from scope: user, project, or local", "user").option("--keep-data", "Preserve the plugin's persistent data directory (~/.codez/plugins/data/{id}/)").addOption(coworkOption()).action(async (plugin2, options) => {
672710
672698
  const {
672711
672699
  pluginUninstallHandler: pluginUninstallHandler2
672712
672700
  } = await Promise.resolve().then(() => (init_plugins(), exports_plugins));
@@ -673054,7 +673042,7 @@ async function main2() {
673054
673042
  const args = process.argv.slice(2);
673055
673043
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
673056
673044
  const label = process.env.CLAUDE_CODE_USE_OPENAI === "1" ? "codez (OpenAI)" : "codez";
673057
- console.log(`${"0.1.13"} (${label})`);
673045
+ console.log(`${"0.1.15"} (${label})`);
673058
673046
  return;
673059
673047
  }
673060
673048
  const {
@@ -673138,4 +673126,4 @@ async function main2() {
673138
673126
  }
673139
673127
  main2();
673140
673128
 
673141
- //# debugId=7924EA66BBD50A1D64756E2164756E21
673129
+ //# debugId=4B6B21C0CDC0E81D64756E2164756E21