tweakcc-fixed 1.0.4 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # tweakcc-fixed
2
2
 
3
- A **temporary fork of [tweakcc](https://github.com/Piebald-AI/tweakcc)** that bundles together several pending upstream fixes, with a few additional fixes on top, so `tweakcc` works cleanly against recent Claude Code releases (through **CC 2.1.113**) while upstream catches up.
3
+ A **temporary fork of [tweakcc](https://github.com/Piebald-AI/tweakcc)** that bundles together several pending upstream fixes, with a few additional fixes on top, so `tweakcc` works cleanly against recent Claude Code releases (through **CC 2.1.128**) while upstream catches up.
4
4
 
5
5
  > [!NOTE]
6
6
  > This fork exists only to unblock users while the fixes below are reviewed and merged upstream. Once the relevant PRs land in [Piebald-AI/tweakcc](https://github.com/Piebald-AI/tweakcc), switch back to upstream.
@@ -11,7 +11,7 @@ For full documentation of what tweakcc is and how to use it, see the [**upstream
11
11
 
12
12
  - **Upstream tweakcc version:** `4.0.11`
13
13
  - **Based on upstream commit:** [`2e1d03e`](https://github.com/Piebald-AI/tweakcc/commit/2e1d03e) — _Prompts for 2.1.113_ ([#692](https://github.com/Piebald-AI/tweakcc/pull/692))
14
- - **Target Claude Code versions:** up to and including **2.1.113**
14
+ - **Target Claude Code versions:** up to and including **2.1.128**
15
15
  - **This package's version:** starts at `1.0.x` on first publish, with its own semver independent of upstream
16
16
 
17
17
  ## Cherry-picked upstream PRs
@@ -62,6 +62,9 @@ These are not in any upstream PR and are unique to this fork.
62
62
  - **[`9ef9328`](https://github.com/BenIsLegit/tweakcc-fixed/commit/9ef9328) — Rewrite the CC ≥2.1.79 `userMessageDisplay` path as attribute-preserving surgery (finally fixes wrapped-line bg).**
63
63
  Even after `c66f604`, line 2+ of a wrapped message STILL rendered without the configured bg. Root cause was structural, not an ordering bug: the patch was replacing CC's entire outer Box+subcomponent tree with its own, dropping every layout attribute CC sets on that Box — most importantly `flexDirection:"column"`. Without it, the Box defaults to row layout and no longer inherits full parent width from CC's row-flex message-list parent, so Ink only paints the Box bg to the content width of line 1. The redesign tries the modern pattern first (the legacy pattern's `{text:VAR}` alternative ALSO matched 2.1.79+ shapes, so the legacy path was silently handling new-CC cases), captures the Box attrs dict as a regex group, and only _mutates_ what the user is customizing: custom `rgb(r,g,b)` replaces CC's bg ternary with a static literal; `null` strips the bg attr; `'default'` leaves CC's ternary intact (so message-actions-mode switching still works); border/padding/`alignSelf` overrides append onto the CSV. The inner `EjK` call is replaced with `createElement(Text, {color, backgroundColor, bold:!0, italic:!0, ...}, template)` using Ink's native Text props instead of chalk ANSI — Ink's layout pass paints bg and re-opens style codes on every wrapped line, which chalk-in-string doesn't reliably do. The legacy (CC ≤2.1.21) path keeps its prior chalk-chain behavior since those versions never had the wrap bug. Object-variant flattening from `cc12f96` moves into a shared helper with the tightened `typeof x==="object"&&x!==null` guard (handles `""`/`0` cleanly). Verified against CC 2.1.112's cli.js: the replacement preserves `flexDirection:"column"`, `marginTop:q?1:0`, and `paddingRight:w?0:1` verbatim; an end-to-end Ink render test confirms every wrapped line now has the bg ANSI re-opened at its start across padding spaces. Supersedes `c66f604`'s Ink-level bg push on both Box and Text (now handled via the preserved/mutated attrs instead).
64
64
 
65
+ - **[`f64268a`](https://github.com/BenIsLegit/tweakcc-fixed/commit/f64268a) — Restore four broken patches on CC 2.1.128 (Patches applied indication, Thinker format, Session memory, User message display).**
66
+ Four patches stopped applying on CC 2.1.128. Root causes were two helper-function regressions plus two pattern-shape changes — the bundle prologue, Box component, spinner signature, and session-memory feature all shifted in 2.1.128's build. **`getModuleLoaderFunction`** only matched the old ternary `H=H!=null?…:…` form; 2.1.128 emits `var K=H!=null&&typeof H==="object"` instead, so the regex now accepts an optional `var |let ` prefix and either `?` or `&&` after `!=null`, and the prologue slice grew 2000→5000 chars. **`findBoxComponent`** gains a Method 5 matching the new exhaustive destructured signature (`children`/`ref`/`tabIndex`/`autoFocus` together) — the older memo, displayName, and ink-box-localvar shapes are gone. Both helpers gate `patchesAppliedIndication` and `userMessageDisplay`, so fixing them unblocks both. **`thinkerFormat`'s** `approxAreaPatternNew` now allows any number of intervening `key:val,` pairs between `overrideMessage:` and `spinnerSuffix:` (2.1.128 inserted `isCompacting` and `compactingHintText` between them, breaking the 2.1.113-era adjacency anchor). **`sessionMemory`** is rewritten as graceful degradation because 2.1.128 dropped the `tengu_session_memory` flag, the `# Session Title` config block (per-section/total token limits), and the `minimumMessageTokensToInit`/`minimumTokensBetweenUpdate`/`toolCallsBetweenUpdates` knobs entirely — only `tengu_coral_fern` (past-session search) remains. Each sub-patch now no-ops on missing patterns instead of failing the whole combined patch, so the patch reports green on 2.1.128 with just the past-sessions bypass active. Three now-graceful skip messages downgraded console.error→console.log with a clear "(skipping; expected on CC ≥2.1.128)" note. Also downgrades `patchesAppliedIndication`'s "header component function not found" log similarly — that's been a graceful PATCH 3 skip on every CC ≥2.1.86 release, not an error. Verified end-to-end: 228/228 unit tests pass; `--apply` against the real 2.1.128 native binary reports ✓ for all four previously-failing patches; the patched cli.js was inspected directly and contains all expected insertions (`\n4.0.11 (tweakcc)` after both `(Claude Code)` version-output occurrences, the `+ tweakcc v4.0.11` strings in all three banner contexts, and the React-compiler `_tw=` createElement variable).
67
+
65
68
  ## Installation
66
69
 
67
70
  Published to npm as [`tweakcc-fixed`](https://www.npmjs.com/package/tweakcc-fixed). Run without installation:
@@ -1,4 +1,4 @@
1
- import e from"chalk";import t,{EOL as n}from"node:os";import*as r from"node:fs/promises";import i from"node:fs/promises";import*as a from"node:fs";import o from"node:fs";import*as s from"node:path";import c from"node:path";import*as l from"fs";import*as u from"path";import*as d from"os";import*as f from"child_process";import*as p from"crypto";import m from"gray-matter";import{diffWordsWithSpace as h}from"diff";let g=null;async function _(){if(g!==null)return g;try{return await import(`node-lief`),g=await import(`./nativeInstallation-D4x2ukh5.mjs`),g}catch(e){return G(`Error loading native installation module: ${e instanceof Error?e.message:String(e)}`),e instanceof Error&&G(e),null}}async function v(e,t){let n=await _();return n?n.extractClaudeJsFromNativeInstallation(e,t):{data:null,clearBytecode:!1}}async function y(e,t,n,r){let i=await _();if(!i)throw Error("`repackNativeInstallation()` called but `node-lief` is not available. This is unexpected - `extractClaudeJsFromNativeInstallation()` should have been called first.");i.repackNativeInstallation(e,t,n,r)}async function b(e){let t=await _();return t?t.resolveNixBinaryWrapper(e):null}const x={themes:[{name:`Dark mode`,id:`dark`,colors:{autoAccept:`rgb(175,135,255)`,bashBorder:`rgb(253,93,177)`,claude:`rgb(215,119,87)`,claudeShimmer:`rgb(235,159,127)`,claudeBlue_FOR_SYSTEM_SPINNER:`rgb(147,165,255)`,claudeBlueShimmer_FOR_SYSTEM_SPINNER:`rgb(177,195,255)`,permission:`rgb(177,185,249)`,permissionShimmer:`rgb(207,215,255)`,planMode:`rgb(72,150,140)`,ide:`rgb(71,130,200)`,promptBorder:`rgb(136,136,136)`,promptBorderShimmer:`rgb(166,166,166)`,text:`rgb(255,255,255)`,inverseText:`rgb(0,0,0)`,inactive:`rgb(153,153,153)`,subtle:`rgb(80,80,80)`,suggestion:`rgb(177,185,249)`,remember:`rgb(177,185,249)`,background:`rgb(0,204,204)`,success:`rgb(78,186,101)`,error:`rgb(255,107,128)`,warning:`rgb(255,193,7)`,warningShimmer:`rgb(255,223,57)`,diffAdded:`rgb(34,92,43)`,diffRemoved:`rgb(122,41,54)`,diffAddedDimmed:`rgb(71,88,74)`,diffRemovedDimmed:`rgb(105,72,77)`,diffAddedWord:`rgb(56,166,96)`,diffRemovedWord:`rgb(179,89,107)`,diffAddedWordDimmed:`rgb(46,107,58)`,diffRemovedWordDimmed:`rgb(139,57,69)`,red_FOR_SUBAGENTS_ONLY:`rgb(220,38,38)`,blue_FOR_SUBAGENTS_ONLY:`rgb(37,99,235)`,green_FOR_SUBAGENTS_ONLY:`rgb(22,163,74)`,yellow_FOR_SUBAGENTS_ONLY:`rgb(202,138,4)`,purple_FOR_SUBAGENTS_ONLY:`rgb(147,51,234)`,orange_FOR_SUBAGENTS_ONLY:`rgb(234,88,12)`,pink_FOR_SUBAGENTS_ONLY:`rgb(219,39,119)`,cyan_FOR_SUBAGENTS_ONLY:`rgb(8,145,178)`,professionalBlue:`rgb(106,155,204)`,rainbow_red:`rgb(235,95,87)`,rainbow_orange:`rgb(245,139,87)`,rainbow_yellow:`rgb(250,195,95)`,rainbow_green:`rgb(145,200,130)`,rainbow_blue:`rgb(130,170,220)`,rainbow_indigo:`rgb(155,130,200)`,rainbow_violet:`rgb(200,130,180)`,rainbow_red_shimmer:`rgb(250,155,147)`,rainbow_orange_shimmer:`rgb(255,185,137)`,rainbow_yellow_shimmer:`rgb(255,225,155)`,rainbow_green_shimmer:`rgb(185,230,180)`,rainbow_blue_shimmer:`rgb(180,205,240)`,rainbow_indigo_shimmer:`rgb(195,180,230)`,rainbow_violet_shimmer:`rgb(230,180,210)`,clawd_body:`rgb(215,119,87)`,clawd_background:`rgb(0,0,0)`,userMessageBackground:`rgb(55, 55, 55)`,bashMessageBackgroundColor:`rgb(65, 60, 65)`,memoryBackgroundColor:`rgb(55, 65, 70)`,rate_limit_fill:`rgb(177,185,249)`,rate_limit_empty:`rgb(80,83,112)`}},{name:`Light mode`,id:`light`,colors:{autoAccept:`rgb(135,0,255)`,bashBorder:`rgb(255,0,135)`,claude:`rgb(215,119,87)`,claudeShimmer:`rgb(245,149,117)`,claudeBlue_FOR_SYSTEM_SPINNER:`rgb(87,105,247)`,claudeBlueShimmer_FOR_SYSTEM_SPINNER:`rgb(117,135,255)`,permission:`rgb(87,105,247)`,permissionShimmer:`rgb(137,155,255)`,planMode:`rgb(0,102,102)`,ide:`rgb(71,130,200)`,promptBorder:`rgb(153,153,153)`,promptBorderShimmer:`rgb(183,183,183)`,text:`rgb(0,0,0)`,inverseText:`rgb(255,255,255)`,inactive:`rgb(102,102,102)`,subtle:`rgb(175,175,175)`,suggestion:`rgb(87,105,247)`,remember:`rgb(0,0,255)`,background:`rgb(0,153,153)`,success:`rgb(44,122,57)`,error:`rgb(171,43,63)`,warning:`rgb(150,108,30)`,warningShimmer:`rgb(200,158,80)`,diffAdded:`rgb(105,219,124)`,diffRemoved:`rgb(255,168,180)`,diffAddedDimmed:`rgb(199,225,203)`,diffRemovedDimmed:`rgb(253,210,216)`,diffAddedWord:`rgb(47,157,68)`,diffRemovedWord:`rgb(209,69,75)`,diffAddedWordDimmed:`rgb(144,194,156)`,diffRemovedWordDimmed:`rgb(232,165,173)`,red_FOR_SUBAGENTS_ONLY:`rgb(220,38,38)`,blue_FOR_SUBAGENTS_ONLY:`rgb(37,99,235)`,green_FOR_SUBAGENTS_ONLY:`rgb(22,163,74)`,yellow_FOR_SUBAGENTS_ONLY:`rgb(202,138,4)`,purple_FOR_SUBAGENTS_ONLY:`rgb(147,51,234)`,orange_FOR_SUBAGENTS_ONLY:`rgb(234,88,12)`,pink_FOR_SUBAGENTS_ONLY:`rgb(219,39,119)`,cyan_FOR_SUBAGENTS_ONLY:`rgb(8,145,178)`,professionalBlue:`rgb(106,155,204)`,rainbow_red:`rgb(235,95,87)`,rainbow_orange:`rgb(245,139,87)`,rainbow_yellow:`rgb(250,195,95)`,rainbow_green:`rgb(145,200,130)`,rainbow_blue:`rgb(130,170,220)`,rainbow_indigo:`rgb(155,130,200)`,rainbow_violet:`rgb(200,130,180)`,rainbow_red_shimmer:`rgb(250,155,147)`,rainbow_orange_shimmer:`rgb(255,185,137)`,rainbow_yellow_shimmer:`rgb(255,225,155)`,rainbow_green_shimmer:`rgb(185,230,180)`,rainbow_blue_shimmer:`rgb(180,205,240)`,rainbow_indigo_shimmer:`rgb(195,180,230)`,rainbow_violet_shimmer:`rgb(230,180,210)`,clawd_body:`rgb(215,119,87)`,clawd_background:`rgb(0,0,0)`,userMessageBackground:`rgb(240, 240, 240)`,bashMessageBackgroundColor:`rgb(250, 245, 250)`,memoryBackgroundColor:`rgb(230, 245, 250)`,rate_limit_fill:`rgb(87,105,247)`,rate_limit_empty:`rgb(39,47,111)`}},{name:`Light mode (ANSI colors only)`,id:`light-ansi`,colors:{autoAccept:`ansi:magenta`,bashBorder:`ansi:magenta`,claude:`ansi:redBright`,claudeShimmer:`ansi:yellowBright`,claudeBlue_FOR_SYSTEM_SPINNER:`ansi:blue`,claudeBlueShimmer_FOR_SYSTEM_SPINNER:`ansi:blueBright`,permission:`ansi:blue`,permissionShimmer:`ansi:blueBright`,planMode:`ansi:cyan`,ide:`ansi:blueBright`,promptBorder:`ansi:white`,promptBorderShimmer:`ansi:whiteBright`,text:`ansi:black`,inverseText:`ansi:white`,inactive:`ansi:blackBright`,subtle:`ansi:blackBright`,suggestion:`ansi:blue`,remember:`ansi:blue`,background:`ansi:cyan`,success:`ansi:green`,error:`ansi:red`,warning:`ansi:yellow`,warningShimmer:`ansi:yellowBright`,diffAdded:`ansi:green`,diffRemoved:`ansi:red`,diffAddedDimmed:`ansi:green`,diffRemovedDimmed:`ansi:red`,diffAddedWord:`ansi:greenBright`,diffRemovedWord:`ansi:redBright`,diffAddedWordDimmed:`ansi:green`,diffRemovedWordDimmed:`ansi:red`,red_FOR_SUBAGENTS_ONLY:`ansi:red`,blue_FOR_SUBAGENTS_ONLY:`ansi:blue`,green_FOR_SUBAGENTS_ONLY:`ansi:green`,yellow_FOR_SUBAGENTS_ONLY:`ansi:yellow`,purple_FOR_SUBAGENTS_ONLY:`ansi:magenta`,orange_FOR_SUBAGENTS_ONLY:`ansi:redBright`,pink_FOR_SUBAGENTS_ONLY:`ansi:magentaBright`,cyan_FOR_SUBAGENTS_ONLY:`ansi:cyan`,professionalBlue:`ansi:blueBright`,rainbow_red:`ansi:red`,rainbow_orange:`ansi:redBright`,rainbow_yellow:`ansi:yellow`,rainbow_green:`ansi:green`,rainbow_blue:`ansi:cyan`,rainbow_indigo:`ansi:blue`,rainbow_violet:`ansi:magenta`,rainbow_red_shimmer:`ansi:redBright`,rainbow_orange_shimmer:`ansi:yellow`,rainbow_yellow_shimmer:`ansi:yellowBright`,rainbow_green_shimmer:`ansi:greenBright`,rainbow_blue_shimmer:`ansi:cyanBright`,rainbow_indigo_shimmer:`ansi:blueBright`,rainbow_violet_shimmer:`ansi:magentaBright`,clawd_body:`ansi:redBright`,clawd_background:`ansi:black`,userMessageBackground:`ansi:white`,bashMessageBackgroundColor:`ansi:whiteBright`,memoryBackgroundColor:`ansi:white`,rate_limit_fill:`ansi:yellow`,rate_limit_empty:`ansi:black`}},{name:`Dark mode (ANSI colors only)`,id:`dark-ansi`,colors:{autoAccept:`ansi:magentaBright`,bashBorder:`ansi:magentaBright`,claude:`ansi:redBright`,claudeShimmer:`ansi:yellowBright`,claudeBlue_FOR_SYSTEM_SPINNER:`ansi:blueBright`,claudeBlueShimmer_FOR_SYSTEM_SPINNER:`ansi:blueBright`,permission:`ansi:blueBright`,permissionShimmer:`ansi:blueBright`,planMode:`ansi:cyanBright`,ide:`ansi:blue`,promptBorder:`ansi:white`,promptBorderShimmer:`ansi:whiteBright`,text:`ansi:whiteBright`,inverseText:`ansi:black`,inactive:`ansi:white`,subtle:`ansi:white`,suggestion:`ansi:blueBright`,remember:`ansi:blueBright`,background:`ansi:cyanBright`,success:`ansi:greenBright`,error:`ansi:redBright`,warning:`ansi:yellowBright`,warningShimmer:`ansi:yellowBright`,diffAdded:`ansi:green`,diffRemoved:`ansi:red`,diffAddedDimmed:`ansi:green`,diffRemovedDimmed:`ansi:red`,diffAddedWord:`ansi:greenBright`,diffRemovedWord:`ansi:redBright`,diffAddedWordDimmed:`ansi:green`,diffRemovedWordDimmed:`ansi:red`,red_FOR_SUBAGENTS_ONLY:`ansi:redBright`,blue_FOR_SUBAGENTS_ONLY:`ansi:blueBright`,green_FOR_SUBAGENTS_ONLY:`ansi:greenBright`,yellow_FOR_SUBAGENTS_ONLY:`ansi:yellowBright`,purple_FOR_SUBAGENTS_ONLY:`ansi:magentaBright`,orange_FOR_SUBAGENTS_ONLY:`ansi:redBright`,pink_FOR_SUBAGENTS_ONLY:`ansi:magentaBright`,cyan_FOR_SUBAGENTS_ONLY:`ansi:cyanBright`,professionalBlue:`rgb(106,155,204)`,rainbow_red:`ansi:red`,rainbow_orange:`ansi:redBright`,rainbow_yellow:`ansi:yellow`,rainbow_green:`ansi:green`,rainbow_blue:`ansi:cyan`,rainbow_indigo:`ansi:blue`,rainbow_violet:`ansi:magenta`,rainbow_red_shimmer:`ansi:redBright`,rainbow_orange_shimmer:`ansi:yellow`,rainbow_yellow_shimmer:`ansi:yellowBright`,rainbow_green_shimmer:`ansi:greenBright`,rainbow_blue_shimmer:`ansi:cyanBright`,rainbow_indigo_shimmer:`ansi:blueBright`,rainbow_violet_shimmer:`ansi:magentaBright`,clawd_body:`ansi:redBright`,clawd_background:`ansi:black`,userMessageBackground:`ansi:blackBright`,bashMessageBackgroundColor:`ansi:black`,memoryBackgroundColor:`ansi:blackBright`,rate_limit_fill:`ansi:yellow`,rate_limit_empty:`ansi:white`}},{name:`Light mode (colorblind-friendly)`,id:`light-daltonized`,colors:{autoAccept:`rgb(135,0,255)`,bashBorder:`rgb(0,102,204)`,claude:`rgb(255,153,51)`,claudeShimmer:`rgb(255,183,101)`,claudeBlue_FOR_SYSTEM_SPINNER:`rgb(51,102,255)`,claudeBlueShimmer_FOR_SYSTEM_SPINNER:`rgb(101,152,255)`,permission:`rgb(51,102,255)`,permissionShimmer:`rgb(101,152,255)`,planMode:`rgb(51,102,102)`,ide:`rgb(71,130,200)`,promptBorder:`rgb(153,153,153)`,promptBorderShimmer:`rgb(183,183,183)`,text:`rgb(0,0,0)`,inverseText:`rgb(255,255,255)`,inactive:`rgb(102,102,102)`,subtle:`rgb(175,175,175)`,suggestion:`rgb(51,102,255)`,remember:`rgb(51,102,255)`,background:`rgb(0,153,153)`,success:`rgb(0,102,153)`,error:`rgb(204,0,0)`,warning:`rgb(255,153,0)`,warningShimmer:`rgb(255,183,50)`,diffAdded:`rgb(153,204,255)`,diffRemoved:`rgb(255,204,204)`,diffAddedDimmed:`rgb(209,231,253)`,diffRemovedDimmed:`rgb(255,233,233)`,diffAddedWord:`rgb(51,102,204)`,diffRemovedWord:`rgb(153,51,51)`,diffAddedWordDimmed:`rgb(102,153,204)`,diffRemovedWordDimmed:`rgb(204,153,153)`,red_FOR_SUBAGENTS_ONLY:`rgb(204,0,0)`,blue_FOR_SUBAGENTS_ONLY:`rgb(0,102,204)`,green_FOR_SUBAGENTS_ONLY:`rgb(0,204,0)`,yellow_FOR_SUBAGENTS_ONLY:`rgb(255,204,0)`,purple_FOR_SUBAGENTS_ONLY:`rgb(128,0,128)`,orange_FOR_SUBAGENTS_ONLY:`rgb(255,128,0)`,pink_FOR_SUBAGENTS_ONLY:`rgb(255,102,178)`,cyan_FOR_SUBAGENTS_ONLY:`rgb(0,178,178)`,professionalBlue:`rgb(106,155,204)`,rainbow_red:`rgb(235,95,87)`,rainbow_orange:`rgb(245,139,87)`,rainbow_yellow:`rgb(250,195,95)`,rainbow_green:`rgb(145,200,130)`,rainbow_blue:`rgb(130,170,220)`,rainbow_indigo:`rgb(155,130,200)`,rainbow_violet:`rgb(200,130,180)`,rainbow_red_shimmer:`rgb(250,155,147)`,rainbow_orange_shimmer:`rgb(255,185,137)`,rainbow_yellow_shimmer:`rgb(255,225,155)`,rainbow_green_shimmer:`rgb(185,230,180)`,rainbow_blue_shimmer:`rgb(180,205,240)`,rainbow_indigo_shimmer:`rgb(195,180,230)`,rainbow_violet_shimmer:`rgb(230,180,210)`,clawd_body:`rgb(215,119,87)`,clawd_background:`rgb(0,0,0)`,userMessageBackground:`rgb(220, 220, 220)`,bashMessageBackgroundColor:`rgb(250, 245, 250)`,memoryBackgroundColor:`rgb(230, 245, 250)`,rate_limit_fill:`rgb(51,102,255)`,rate_limit_empty:`rgb(23,46,114)`}},{name:`Dark mode (colorblind-friendly)`,id:`dark-daltonized`,colors:{autoAccept:`rgb(175,135,255)`,bashBorder:`rgb(51,153,255)`,claude:`rgb(255,153,51)`,claudeShimmer:`rgb(255,183,101)`,claudeBlue_FOR_SYSTEM_SPINNER:`rgb(153,204,255)`,claudeBlueShimmer_FOR_SYSTEM_SPINNER:`rgb(183,224,255)`,permission:`rgb(153,204,255)`,permissionShimmer:`rgb(183,224,255)`,planMode:`rgb(102,153,153)`,ide:`rgb(71,130,200)`,promptBorder:`rgb(136,136,136)`,promptBorderShimmer:`rgb(166,166,166)`,text:`rgb(255,255,255)`,inverseText:`rgb(0,0,0)`,inactive:`rgb(153,153,153)`,subtle:`rgb(80,80,80)`,suggestion:`rgb(153,204,255)`,remember:`rgb(153,204,255)`,background:`rgb(0,204,204)`,success:`rgb(51,153,255)`,error:`rgb(255,102,102)`,warning:`rgb(255,204,0)`,warningShimmer:`rgb(255,234,50)`,diffAdded:`rgb(0,68,102)`,diffRemoved:`rgb(102,0,0)`,diffAddedDimmed:`rgb(62,81,91)`,diffRemovedDimmed:`rgb(62,44,44)`,diffAddedWord:`rgb(0,119,179)`,diffRemovedWord:`rgb(179,0,0)`,diffAddedWordDimmed:`rgb(26,99,128)`,diffRemovedWordDimmed:`rgb(128,21,21)`,red_FOR_SUBAGENTS_ONLY:`rgb(255,102,102)`,blue_FOR_SUBAGENTS_ONLY:`rgb(102,178,255)`,green_FOR_SUBAGENTS_ONLY:`rgb(102,255,102)`,yellow_FOR_SUBAGENTS_ONLY:`rgb(255,255,102)`,purple_FOR_SUBAGENTS_ONLY:`rgb(178,102,255)`,orange_FOR_SUBAGENTS_ONLY:`rgb(255,178,102)`,pink_FOR_SUBAGENTS_ONLY:`rgb(255,153,204)`,cyan_FOR_SUBAGENTS_ONLY:`rgb(102,204,204)`,professionalBlue:`rgb(106,155,204)`,rainbow_red:`rgb(235,95,87)`,rainbow_orange:`rgb(245,139,87)`,rainbow_yellow:`rgb(250,195,95)`,rainbow_green:`rgb(145,200,130)`,rainbow_blue:`rgb(130,170,220)`,rainbow_indigo:`rgb(155,130,200)`,rainbow_violet:`rgb(200,130,180)`,rainbow_red_shimmer:`rgb(250,155,147)`,rainbow_orange_shimmer:`rgb(255,185,137)`,rainbow_yellow_shimmer:`rgb(255,225,155)`,rainbow_green_shimmer:`rgb(185,230,180)`,rainbow_blue_shimmer:`rgb(180,205,240)`,rainbow_indigo_shimmer:`rgb(195,180,230)`,rainbow_violet_shimmer:`rgb(230,180,210)`,clawd_body:`rgb(215,119,87)`,clawd_background:`rgb(0,0,0)`,userMessageBackground:`rgb(55, 55, 55)`,bashMessageBackgroundColor:`rgb(65, 60, 65)`,memoryBackgroundColor:`rgb(55, 65, 70)`,rate_limit_fill:`rgb(153,204,255)`,rate_limit_empty:`rgb(69,92,115)`}},{name:`Monochrome`,id:`monochrome`,colors:{autoAccept:`rgb(200,200,200)`,bashBorder:`rgb(180,180,180)`,claude:`rgb(255,255,255)`,claudeShimmer:`rgb(230,230,230)`,claudeBlue_FOR_SYSTEM_SPINNER:`rgb(200,200,200)`,claudeBlueShimmer_FOR_SYSTEM_SPINNER:`rgb(220,220,220)`,permission:`rgb(200,200,200)`,permissionShimmer:`rgb(220,220,220)`,planMode:`rgb(180,180,180)`,ide:`rgb(190,190,190)`,promptBorder:`rgb(160,160,160)`,promptBorderShimmer:`rgb(180,180,180)`,text:`rgb(255,255,255)`,inverseText:`rgb(40,40,40)`,inactive:`rgb(120,120,120)`,subtle:`rgb(100,100,100)`,suggestion:`rgb(200,200,200)`,remember:`rgb(200,200,200)`,background:`rgb(180,180,180)`,success:`rgb(220,220,220)`,error:`rgb(180,180,180)`,warning:`rgb(200,200,200)`,warningShimmer:`rgb(220,220,220)`,diffAdded:`rgb(90,90,90)`,diffRemoved:`rgb(60,60,60)`,diffAddedDimmed:`rgb(110,110,110)`,diffRemovedDimmed:`rgb(80,80,80)`,diffAddedWord:`rgb(200,200,200)`,diffRemovedWord:`rgb(80,80,80)`,diffAddedWordDimmed:`rgb(160,160,160)`,diffRemovedWordDimmed:`rgb(70,70,70)`,red_FOR_SUBAGENTS_ONLY:`rgb(200,200,200)`,blue_FOR_SUBAGENTS_ONLY:`rgb(180,180,180)`,green_FOR_SUBAGENTS_ONLY:`rgb(210,210,210)`,yellow_FOR_SUBAGENTS_ONLY:`rgb(190,190,190)`,purple_FOR_SUBAGENTS_ONLY:`rgb(170,170,170)`,orange_FOR_SUBAGENTS_ONLY:`rgb(195,195,195)`,pink_FOR_SUBAGENTS_ONLY:`rgb(205,205,205)`,cyan_FOR_SUBAGENTS_ONLY:`rgb(185,185,185)`,professionalBlue:`rgb(190,190,190)`,rainbow_red:`rgb(240,240,240)`,rainbow_orange:`rgb(230,230,230)`,rainbow_yellow:`rgb(220,220,220)`,rainbow_green:`rgb(210,210,210)`,rainbow_blue:`rgb(200,200,200)`,rainbow_indigo:`rgb(190,190,190)`,rainbow_violet:`rgb(180,180,180)`,rainbow_red_shimmer:`rgb(255,255,255)`,rainbow_orange_shimmer:`rgb(245,245,245)`,rainbow_yellow_shimmer:`rgb(235,235,235)`,rainbow_green_shimmer:`rgb(225,225,225)`,rainbow_blue_shimmer:`rgb(215,215,215)`,rainbow_indigo_shimmer:`rgb(205,205,205)`,rainbow_violet_shimmer:`rgb(195,195,195)`,clawd_body:`rgb(255,255,255)`,clawd_background:`rgb(40,40,40)`,userMessageBackground:`rgb(70,70,70)`,bashMessageBackgroundColor:`rgb(65,65,65)`,memoryBackgroundColor:`rgb(75,75,75)`,rate_limit_fill:`rgb(200,200,200)`,rate_limit_empty:`rgb(90,90,90)`}}],thinkingVerbs:{format:`{}… `,verbs:`Accomplishing.Actioning.Actualizing.Architecting.Baking.Beaming.Beboppin'.Befuddling.Billowing.Blanching.Bloviating.Boogieing.Boondoggling.Booping.Bootstrapping.Brewing.Burrowing.Calculating.Canoodling.Caramelizing.Cascading.Catapulting.Cerebrating.Channeling.Channelling.Choreographing.Churning.Clauding.Coalescing.Cogitating.Combobulating.Composing.Computing.Concocting.Considering.Contemplating.Cooking.Crafting.Creating.Crunching.Crystallizing.Cultivating.Deciphering.Deliberating.Determining.Dilly-dallying.Discombobulating.Doing.Doodling.Drizzling.Ebbing.Effecting.Elucidating.Embellishing.Enchanting.Envisioning.Evaporating.Fermenting.Fiddle-faddling.Finagling.Flambéing.Flibbertigibbeting.Flowing.Flummoxing.Fluttering.Forging.Forming.Frolicking.Frosting.Gallivanting.Galloping.Garnishing.Generating.Germinating.Gitifying.Grooving.Gusting.Harmonizing.Hashing.Hatching.Herding.Honking.Hullaballooing.Hyperspacing.Ideating.Imagining.Improvising.Incubating.Inferring.Infusing.Ionizing.Jitterbugging.Julienning.Kneading.Leavening.Levitating.Lollygagging.Manifesting.Marinating.Meandering.Metamorphosing.Misting.Moonwalking.Moseying.Mulling.Mustering.Musing.Nebulizing.Nesting.Newspapering.Noodling.Nucleating.Orbiting.Orchestrating.Osmosing.Perambulating.Percolating.Perusing.Philosophising.Photosynthesizing.Pollinating.Pondering.Pontificating.Pouncing.Precipitating.Prestidigitating.Processing.Proofing.Propagating.Puttering.Puzzling.Quantumizing.Razzle-dazzling.Razzmatazzing.Recombobulating.Reticulating.Roosting.Ruminating.Sautéing.Scampering.Schlepping.Scurrying.Seasoning.Shenaniganing.Shimmying.Simmering.Skedaddling.Sketching.Slithering.Smooshing.Sock-hopping.Spelunking.Spinning.Sprouting.Stewing.Sublimating.Swirling.Swooping.Symbioting.Synthesizing.Tempering.Thinking.Thundering.Tinkering.Tomfoolering.Topsy-turvying.Transfiguring.Transmuting.Twisting.Undulating.Unfurling.Unravelling.Vibing.Waddling.Wandering.Warping.Whatchamacalliting.Whirlpooling.Whirring.Whisking.Wibbling.Working.Wrangling.Zesting.Zigzagging`.split(`.`)},thinkingStyle:{updateInterval:120,phases:process.env.TERM===`xterm-ghostty`?[`·`,`✢`,`✳`,`✶`,`✻`,`*`]:process.platform===`darwin`?[`·`,`✢`,`✳`,`✶`,`✻`,`✽`]:[`·`,`✢`,`*`,`✶`,`✻`,`✽`],reverseMirror:!0},userMessageDisplay:{format:` > {} `,styling:[],foregroundColor:`default`,backgroundColor:`default`,borderStyle:`none`,borderColor:`rgb(255,255,255)`,paddingX:`default`,paddingY:`default`,fitBoxToContent:!1},inputBox:{removeBorder:!1},misc:{showTweakccVersion:!0,showPatchesApplied:!0,expandThinkingBlocks:!0,enableConversationTitle:!0,hideStartupBanner:!1,hideCtrlGToEdit:!1,hideStartupClawd:!1,increaseFileReadLimit:!1,suppressLineNumbers:!1,suppressRateLimitOptions:!1,mcpConnectionNonBlocking:!0,mcpServerBatchSize:null,statuslineThrottleMs:null,statuslineUseFixedInterval:!1,tableFormat:`default`,enableSwarmMode:!0,enableSessionMemory:!0,enableRememberSkill:!1,tokenCountRounding:null,autoAcceptPlanMode:!1,allowBypassPermissionsInSudo:!1,suppressNativeInstallerWarning:!1,filterScrollEscapeSequences:!1,enableWorktreeMode:!0,allowCustomAgentModels:!1,enableContextLimitOverride:!1,enableModelCustomizations:!0,enableVoiceMode:!1,enableVoiceConciseOutput:!0,enableChannelsMode:!1},toolsets:[],defaultToolset:null,planModeToolset:null,subagentModels:{plan:null,explore:null,generalPurpose:null},inputPatternHighlighters:[],inputPatternHighlightersTestText:`Type test text here to see highlighting`,claudeMdAltNames:[`AGENTS.md`,`GEMINI.md`,`CRUSH.md`,`QWEN.md`,`IFLOW.md`,`WARP.md`,`copilot-instructions.md`]},S={name:`Unnamed Highlighter`,regex:``,regexFlags:`g`,format:`{MATCH}`,styling:[],foregroundColor:null,backgroundColor:null,enabled:!0},C={name:`Unnamed Toolset`,allowedTools:`*`},w=x.themes[0],ee=e=>{let t=[],n=/visibleOptionCount:[\w$]+=(\d+)/g,r;for(;(r=n.exec(e))!==null;){let e=r.index+r[0].indexOf(`=`)+1;t.push({startIndex:e,endIndex:e+r[1].length})}return t},te=e=>{let t=e.match(/\{rows:([\w$]+),columns:[\w$]+\}=[\w$]+\(\),([\w$]+)=Math\.floor\(\1\/2\)/);if(!t||t.index===void 0)return null;let n=t.index+t[0].indexOf(t[2]+`=Math.floor(`),r=t.index+t[0].length,i=`${t[2]}=${t[1]}`,a=e.slice(0,n)+i+e.slice(r);return P(e,a,i,n,r),a},ne=e=>{let t=e.match(/Math\.max\(1,Math\.floor\(\(([\w$]+)-10\)\/2\)\)/);if(!t||t.index===void 0)return null;let n=`Math.max(1,${t[1]}-3)`,r=e.slice(0,t.index)+n+e.slice(t.index+t[0].length);return P(e,r,n,t.index,t.index+t[0].length),r},re=e=>{let t=e.match(/Math\.min\(6,Math\.max\(1,([\w$]+)-3\)\)/);if(!t||t.index===void 0)return null;let n=`Math.max(1,${t[1]}-3)`,r=e.slice(0,t.index)+n+e.slice(t.index+t[0].length);return P(e,r,n,t.index,t.index+t[0].length),r},ie=(e,t)=>{let n=ee(e);if(n.length===0)return console.error(`patch: writeShowMoreItemsInSelectMenus: failed to find locations`),null;let r=n.sort((e,t)=>t.startIndex-e.startIndex),i=e;for(let e of r){let n=t.toString(),r=i.slice(0,e.startIndex)+n+i.slice(e.endIndex);P(i,r,n,e.startIndex,e.endIndex),i=r}let a=te(i);a?i=a:console.error(`patch: writeShowMoreItemsInSelectMenus: failed to find help menu height pattern`);let o=ne(i);o?i=o:console.error(`patch: writeShowMoreItemsInSelectMenus: failed to find visibleCount pattern`);let s=re(i);return s?i=s:console.error(`patch: writeShowMoreItemsInSelectMenus: failed to find suggestions cap pattern`),i};function ae(e){let t=-1,n=-1,r=``,i=e.match(/switch\(([$\w]+)\)\{case"(?:light|dark)":[^}]*return [$\w]+;[^}]*default:return [$\w]+\}/);if(i&&i.index!=null)t=i.index,n=t+i[0].length,r=i[1];else{if(e.indexOf(`case"dark":return{"autoAccept"`)===-1&&e.indexOf(`case"light":return{`)===-1)return console.error(`patch: themes: failed to find switchMatch`),null;let i=e.indexOf(`case"dark":return{`)===-1?e.indexOf(`case"light":return{`):e.indexOf(`case"dark":return{`),a=e.slice(Math.max(0,i-200),i).match(/switch\(([$\w]+)\)\{\s*$/);if(!a||a.index==null)return console.error(`patch: themes: failed to find switchMatch (old format)`),null;t=Math.max(0,i-200)+a.index,r=a[1];let o=0;for(let r=t;r<e.length&&r<t+5e4;r++)if(e[r]===`{`&&o++,e[r]===`}`&&(o--,o===0)){n=r+1;break}}if(t===-1||n===-1)return console.error(`patch: themes: failed to find switchMatch`),null;let a=e.match(/\[(?:\.\.\.\[\],)?(?:\{"?label"?:"(?:Dark|Light|Auto|Monochrome)[^"]*","?value"?:"[^"]+"\},?)+\]/);if(!a||a.index==null)return console.error(`patch: themes: failed to find objArrMatch`),null;let o=e.match(/(?:return|[$\w]+=)\{(?:"?(?:[$\w-]+)"?:"(?:Auto |Dark|Light|Monochrome)[^"]*",?)+\}/);return!o||o.index==null?(console.error(`patch: themes: failed to find objMatch`),null):{switchStatement:{startIndex:t,endIndex:n,identifiers:[r]},objArr:{startIndex:a.index,endIndex:a.index+a[0].length},obj:{startIndex:o.index,endIndex:o.index+o[0].length,identifiers:[o[1]]}}}const oe=(e,t)=>{let n=ae(e);if(!n)return null;if(t.length===0)return e;let r=e,i=(n.obj.identifiers?.[0]??`return`)+JSON.stringify(Object.fromEntries(t.map(e=>[e.id,e.name])));r=r.slice(0,n.obj.startIndex)+i+r.slice(n.obj.endIndex),P(e,r,i,n.obj.startIndex,n.obj.endIndex),e=r;let a=JSON.stringify(t.map(e=>({label:e.name,value:e.id})));r=r.slice(0,n.objArr.startIndex)+a+r.slice(n.objArr.endIndex),P(e,r,a,n.objArr.startIndex,n.objArr.endIndex),e=r;let o=`switch(${n.switchStatement.identifiers?.[0]}){\n`;return t.forEach(e=>{o+=`case"${e.id}":return${JSON.stringify(e.colors)};\n`}),o+=`default:return${JSON.stringify(t[0].colors)};\n}`,r=r.slice(0,n.switchStatement.startIndex)+o+r.slice(n.switchStatement.endIndex),P(e,r,o,n.switchStatement.startIndex,n.switchStatement.endIndex),r},T=e=>F(e,/\b200000\b/,`(+process.env.CLAUDE_CODE_CONTEXT_LIMIT||200000)`),E=(e,t)=>{if(!t)return e;let n=e,r=!1,i=n.match(/createElement\(([$\w]+),\{color:([$\w]+)\.bgColor\},"─"\.repeat\(([$\w]+)\)\)/);if(i){let e=i[1];n=n.replace(i[0],`createElement(${e},null,"")`);let t=RegExp(`createElement\\(${e},\\{color:${i[2]}\\.bgColor\\},${i[2]}\\.text\\?.+?"─"\\.repeat\\(${i[3]}\\)\\)`),a=n.match(t);a&&(n=n.replace(a[0],`createElement(${e},null,"")`)),r=!0}let a=n.match(/(borderColor:[$\w]+\(\),)borderStyle:"round"(,borderLeft:!1,borderRight:!1,borderBottom:!0,width:"100%",borderText:)/);a&&(n=n.replace(a[0],`${a[1]}borderStyle:undefined${a[2]}`),r=!0);let o=n.match(/borderStyle:"round"(,borderLeft:!1,borderRight:!1,borderBottom:!0,width:"100%"\}.+?Save and close editor)/);return o&&(n=n.replace(o[0],`borderStyle:undefined${o[1]}`),r=!0),r?(P(e,n,`(input border removed)`,0,0),n):(console.error(`patch: input border: failed to find input border pattern`),null)},se=e=>{let t=e.match(/spinnerTip:[$\w]+,(?:[$\w]+:[$\w]+,)*overrideMessage:[$\w]+,.{300}/)||e.match(/overrideMessage:[$\w]+,spinnerSuffix:[$\w]+,verbose:[$\w]+,.{300}/);if(!t||t.index==null)return console.error(`patch: thinker format: failed to find approxAreaMatch`),null;let n=e.slice(t.index,t.index+1e4),r=n.match(/,([$\w]+)(=\(([^;]{1,200}?)\)\+"(?:…|\\u2026)")/);if(r&&r.index!=null)return{startIndex:t.index+r.index+r[1].length+1,endIndex:t.index+r.index+r[1].length+r[2].length+1,identifiers:[r[3]]};let i=n.match(/,([$\w]+)(=(\([$\w]+&&![$\w]+\.isIdle\?[$\w]+\.spinnerVerb\?\?[$\w]+:[$\w]+\))\+"(?:…|\\u2026)")/);if(i&&i.index!=null)return{startIndex:t.index+i.index+i[1].length+1,endIndex:t.index+i.index+i[1].length+i[2].length+1,identifiers:[i[3]]};let a=n.match(/,([$\w]+)(=`\$\{([$\w]+&&![$\w]+\.isIdle\?[$\w]+\.spinnerVerb\?\?[$\w]+:[$\w]+)\}(?:…|\\u2026) ?`)/);return a&&a.index!=null?{startIndex:t.index+a.index+a[1].length+1,endIndex:t.index+a.index+a[1].length+a[2].length+1,identifiers:[a[3]]}:(console.error(`patch: thinker format: failed to find formatMatch`),null)},ce=(e,t)=>{let n=se(e);if(!n)return null;let r=n,i=t.replace(/\\/g,`\\\\`).replace(/`/g,"\\`"),a=r.identifiers?.[0],o=`=${"`"+i.replace(/\{\}/g,"${"+a+`}`)+"`"}`,s=e.slice(0,r.startIndex)+o+e.slice(r.endIndex);return P(e,s,o,r.startIndex,r.endIndex),s},le=e=>{let t=e.match(/=\s*\[\.\.\.([$\w]+),\s*\.\.\.?\[\.\.\.\1\]\.reverse\(\)\]/);return!t||t.index==null?(console.error(`patch: thinker symbol mirror option: failed to find match`),null):{startIndex:t.index,endIndex:t.index+t[0].length,identifiers:[t[1]]}},ue=(e,t)=>{let n=le(e);if(!n)return null;let r=n.identifiers?.[0],i=t?`=[...${r},...[...${r}].reverse()]`:`=[...${r}]`,a=e.slice(0,n.startIndex)+i+e.slice(n.endIndex);return P(e,a,i,n.startIndex,n.endIndex),a},de=(e,t)=>{let n=[],r=/\["(?:[·✢*✳✶✻✽]|\\u00b7|\\xb7|\\u2722|\\x2a|\\u002a|\\u2733|\\u2736|\\u273b|\\u273d)",\s*(?:"(?:[·✢*✳✶✻✽]|\\u00b7|\\xb7|\\u2722|\\x2a|\\u002a|\\u2733|\\u2736|\\u273b|\\u273d)",?\s*)+\]/gi,i;for(;(i=r.exec(e))!==null;)n.push({startIndex:i.index,endIndex:i.index+i[0].length});if(n.length===0)return console.error(`patch: thinkerSymbolChars: could not find any thinker symbol char arrays`),null;let a=JSON.stringify(t),o=n.sort((e,t)=>t.startIndex-e.startIndex),s=e;for(let e=0;e<o.length;e++){let t=s.slice(0,o[e].startIndex)+a+s.slice(o[e].endIndex);P(s,t,a,o[e].startIndex,o[e].endIndex),s=t}return s},fe=(e,t)=>{let n=e.match(/(if\(![$\w]+\)\{[$\w]+\(4\);return\})(.{0,200})120\)/);if(!n||n.index===void 0)return console.error(`patch: thinkerSymbolSpeed: failed to find thinker symbol speed pattern`),null;let r=n[2]+t+`)`,i=n.index,a=i+n[0].length,o=e.slice(0,i)+r+e.slice(a);return P(e,o,r,i,a),o},pe=e=>{let t=e.match(/\{flexWrap:"wrap",height:1,width:2\}/);return!t||t.index==null?(console.error(`patch: thinker symbol width: failed to find match`),null):{startIndex:t.index,endIndex:t.index+t[0].length}},me=(e,t)=>{let n=pe(e);if(!n)return null;let r=`{flexWrap:"wrap",height:1,width:${t}}`,i=e.slice(0,n.startIndex)+r+e.slice(n.endIndex);return P(e,i,r,n.startIndex,n.endIndex),i},he=(e,t)=>{let n=e.match(/\[("[A-Z][a-z'é\-\\xA-F0-9]+in[g']",?){50,}\]/);if(!n||n.index===void 0)return console.error(`patch: thinkingVerbs: failed to find present tense verbs pattern`),null;let r=JSON.stringify(t),i=n.index,a=i+n[0].length,o=e.slice(0,i)+r+e.slice(a);return P(e,o,r,i,a),o},ge=(e,t)=>{let n=e.match(/\[("[A-Z][a-z'é\-\\xA-F0-9]+ed",?){6,}\]/);if(!n||n.index===void 0)return console.error(`patch: thinkingVerbs: failed to find past tense verbs pattern`),null;let r=t.map(e=>e.replace(/ing$/,`ed`)),i=JSON.stringify(r),a=n.index,o=a+n[0].length,s=e.slice(0,a)+i+e.slice(o);return P(e,s,i,a,o),s},_e=(e,t)=>{let n=he(e,t);if(n===null)return null;let r=ge(n,t);return r===null?null:r},ve=(e,t)=>{let n=V(e);if(!n)return console.error(`patch: userMessageDisplay: failed to find Text component`),null;let r=H(e);if(!r)return console.error(`patch: userMessageDisplay: failed to find Box component`),null;let i=I(e);if(!i)return console.error(`patch: userMessageDisplay: failed to find chalk variable`),null;let a=/(No content found in user prompt message.{0,250}?\b)([$\w]+(?:\.default)?\.createElement.{0,30}\b[$\w]+(?:\.default)?\.createElement.{0,40}">.+?)?(([$\w]+(?:\.default)?\.createElement).{0,200})(\([$\w]+,(?:\{[^{}]+wrap:"wrap"\},([$\w]+)(?:\.trim\(\))?\)\)|\{text:([$\w]+)[^}]*\}\)\)?))/,o=e.match(/(No content found in user prompt message[\s\S]{0,100}?;return )([$\w]+(?:\.default)?)\.createElement\(([$\w]+),(\{flexDirection:"column"[^{}]*\}),([$\w]+(?:\.default)?)\.createElement\(([$\w]+),\{text:([$\w]+)[^{}]*\}\)\)/),s=o?null:e.match(a);if(!o&&(!s||s.index===void 0))return console.error(`patch: userMessageDisplay: failed to find user message display pattern`),null;let c=e=>`(typeof ${e}==="object"&&${e}!==null?${e}.head+"\\n("+${e}.hiddenLines+" line"+(${e}.hiddenLines===1?"":"s")+" hidden)\\n"+${e}.tail:${e})`;if(o){let r=o[1],i=o[2],a=o[3],s=o[4],l=o[5],u=o[7],d=s.slice(1,-1),f=/backgroundColor:[^,}]+(?:\?[^,}:]+:[^,}:]+)*/;if(t.backgroundColor===null)d=d.replace(RegExp(`,?${f.source}`),``).replace(/^,|,$/g,``);else if(t.backgroundColor!==`default`&&t.backgroundColor!==null){let e=t.backgroundColor.match(/\d+/g);if(e){let t=`"rgb(${e.join(`,`)})"`;f.test(d)?d=d.replace(f,`backgroundColor:${t}`):d+=`,backgroundColor:${t}`}}let p=[];if(t.borderStyle!==`none`){if(t.borderStyle.startsWith(`topBottom`)){let e=``;t.borderStyle===`topBottomSingle`?e=`{top:"─",bottom:"─",left:" ",right:" ",topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" "}`:t.borderStyle===`topBottomDouble`?e=`{top:"═",bottom:"═",left:" ",right:" ",topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" "}`:t.borderStyle===`topBottomBold`&&(e=`{top:"━",bottom:"━",left:" ",right:" ",topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" "}`),p.push(`borderStyle:${e}`)}else p.push(`borderStyle:"${t.borderStyle}"`);let e=t.borderColor.match(/\d+/g);e&&p.push(`borderColor:"rgb(${e.join(`,`)})"`)}t.paddingX!==`default`&&t.paddingX>0&&p.push(`paddingX:${t.paddingX}`),t.paddingY!==`default`&&t.paddingY>0&&p.push(`paddingY:${t.paddingY}`),t.fitBoxToContent&&p.push(`alignSelf:"flex-start"`),p.length>0&&(d=d?`${d},${p.join(`,`)}`:p.join(`,`));let m=`{${d}}`,h=[];if(t.foregroundColor===`default`)h.push(`color:"text"`);else{let e=t.foregroundColor.match(/\d+/g);e&&h.push(`color:"rgb(${e.join(`,`)})"`)}if(t.backgroundColor!==`default`&&t.backgroundColor!==null){let e=t.backgroundColor.match(/\d+/g);e&&h.push(`backgroundColor:"rgb(${e.join(`,`)})"`)}else t.backgroundColor===`default`&&h.push(`backgroundColor:"userMessageBackground"`);t.styling.includes(`bold`)&&h.push(`bold:!0`),t.styling.includes(`italic`)&&h.push(`italic:!0`),t.styling.includes(`underline`)&&h.push(`underline:!0`),t.styling.includes(`strikethrough`)&&h.push(`strikethrough:!0`),t.styling.includes(`inverse`)&&h.push(`inverse:!0`);let g=h.length>0?`{${h.join(`,`)}}`:`null`,_=c(u),v=r+`${i}.createElement(${a},${m},${l}.createElement(${n},${g},${"`"+t.format.replace(/\{\}/g,()=>"${"+_+`}`)+"`"}))`,y=o.index,b=y+o[0].length,x=e.slice(0,y)+v+e.slice(b);return P(e,x,v,y,b),x}let l=s,u=l[4],d=l[6]??l[7],f=[],p=t.borderStyle.startsWith(`topBottom`);if(t.borderStyle!==`none`){if(p){let e=``;t.borderStyle===`topBottomSingle`?e=`{top:"─",bottom:"─",left:" ",right:" ",topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" "}`:t.borderStyle===`topBottomDouble`?e=`{top:"═",bottom:"═",left:" ",right:" ",topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" "}`:t.borderStyle===`topBottomBold`&&(e=`{top:"━",bottom:"━",left:" ",right:" ",topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" "}`),f.push(`borderStyle:${e}`)}else f.push(`borderStyle:"${t.borderStyle}"`);let e=t.borderColor.match(/\d+/g);e&&f.push(`borderColor:"rgb(${e.join(`,`)})"`)}t.paddingX===`default`?f.push(`paddingRight:1`):t.paddingX>0&&f.push(`paddingX:${t.paddingX}`),t.paddingY!==`default`&&t.paddingY>0&&f.push(`paddingY:${t.paddingY}`),t.fitBoxToContent&&f.push(`alignSelf:"flex-start"`);let m=i,h=[];if(t.foregroundColor!==`default`){let e=t.foregroundColor.match(/\d+/g);e&&(m+=`.rgb(${e.join(`,`)})`)}else h.push(`color:"text"`);if(t.backgroundColor!==`default`&&t.backgroundColor!==null){let e=t.backgroundColor.match(/\d+/g);if(e){m+=`.bgRgb(${e.join(`,`)})`;let t=`"rgb(${e.join(`,`)})"`;f.push(`backgroundColor:${t}`),h.push(`backgroundColor:${t}`)}}else t.backgroundColor===`default`&&(f.push(`backgroundColor:"userMessageBackground"`),h.push(`backgroundColor:"userMessageBackground"`));t.styling.includes(`bold`)&&(m+=`.bold`),t.styling.includes(`italic`)&&(m+=`.italic`),t.styling.includes(`underline`)&&(m+=`.underline`),t.styling.includes(`strikethrough`)&&(m+=`.strikethrough`),t.styling.includes(`inverse`)&&(m+=`.inverse`);let g=c(d),_="`"+t.format.replace(/\{\}/g,()=>"${"+g+`}`)+"`",v=`${m}(${_})`,y=f.length>0?`{${f.join(`,`)}}`:`null`,b=h.length>0?`{${h.join(`,`)}}`:`null`,x=l[1]+`${u}(${r},${y},${u}(${n},${b},${v}))`,S=l.index,C=S+l[0].length,w=e.slice(0,S)+x+e.slice(C);return P(e,w,x,S,C),w},ye=(e,t)=>{let n=e;if(t.foregroundColor){let e=t.foregroundColor.match(/\d+/g);e&&(n+=`.rgb(${e.join(`,`)})`)}if(t.backgroundColor){let e=t.backgroundColor.match(/\d+/g);e&&(n+=`.bgRgb(${e.join(`,`)})`)}return t.styling.includes(`bold`)&&(n+=`.bold`),t.styling.includes(`italic`)&&(n+=`.italic`),t.styling.includes(`underline`)&&(n+=`.underline`),t.styling.includes(`strikethrough`)&&(n+=`.strikethrough`),t.styling.includes(`inverse`)&&(n+=`.inverse`),n},be=e=>{let t=e.match(/(if\(([$\w]+)\.highlight\?\.color\))((return [$\w]+\.createElement\([$\w]+,\{key:[$\w]+),color:[$\w]+\.highlight\.color(\},[$\w]+\.createElement\([$\w]+,null,)([$\w]+\.text)(\)\)));/);if(t&&t.index!==void 0){let n=`${t[2]}.highlight.color(${t[6]})`,r=t[1]+`{if(typeof ${t[2]}.highlight.color==='function')`+t[4]+t[5]+n+t[7]+`;else `+t[3]+`}`,i=e.slice(0,t.index)+r+e.slice(t.index+t[0].length);return P(e,i,r,t.index,t.index+t[0].length),i}let n=/(return ([$\w]+)\.createElement\(([$\w]+),\{key:([$\w]+)),color:([$\w]+)\.highlight\?\.color,dimColor:\5\.highlight\?\.dimColor,inverse:\5\.highlight\?\.inverse\},(\2\.createElement\([$\w]+,null,\5\.text\))\)/,r=e.match(n);if(!r||r.index===void 0)return console.error(`patch: inputPatternHighlighters: failed to find highlight?.color renderer pattern`),null;let i=r[2],a=r[3],o=r[4],s=r[5];r[6];let c=RegExp(`if\\(${s.replace(`$`,`\\$`)}\\.highlight\\.color\\)return ([$\\w]+)\\.createElement\\([$\\w]+,\\{key:[$\\w]+\\},${s.replace(`$`,`\\$`)}\\.text\\.split\\(""\\)\\.map\\([^)]+\\)\\)`),l=e,u=l.match(c);if(u&&u.index!==void 0){let e=`if(typeof ${s}.highlight?.color==='function')return ${i}.createElement(${a},{key:${o}},${i}.createElement(${a},null,${s}.highlight.color(${s}.text)));`;l=l.slice(0,u.index)+e+l.slice(u.index)}let d=l.match(n);if(!d||d.index===void 0)return console.error(`patch: inputPatternHighlighters: failed to re-find renderer after shimmer patch`),null;let f=l.slice(0,d.index)+d[0]+l.slice(d.index+d[0].length);return P(e,f,`shimmer guard + renderer`,0,0),f},xe=(e,t,n)=>{let r=e.match(/((?:,|;let )[$\w]+=[$\w]+\.useMemo\(\(\)=>\{let [$\w]+=\[\];[\s\S]*?)(if\([$\w]+&&[$\w]+&&![$\w]+\)([$\w]+)\.push\(\{start:[$\w]+,end:[$\w]+\+[$\w]+\.length,color:"warning",priority:\d+\})/);if(!r||r.index===void 0)return console.error(`patch: inputPatternHighlighters: failed to find useMemo/push pattern`),null;let i=r[3],a=r[1].match(/[^$\w]([$\w]+(?:\.default)?)\.useMemo\(/);if(!a)return console.error(`patch: inputPatternHighlighters: failed to extract React var from useMemo`),null;a[1];let o=Math.max(0,r.index-1e4),s=[...e.slice(o,r.index).matchAll(/\binput:([$\w]+),/g)].at(-1)??null;if(!s)return console.error(`patch: inputPatternHighlighters: failed to find input variable pattern`),null;let c=s[1],l=``;for(let e=0;e<n.length;e++){let r=n[e];ye(t,r),JSON.stringify(r.format).replace(/\{MATCH\}/g,`"+x+"`);let a=r.foregroundColor;if(a){let e=a.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);if(e){let[,t,n,r]=e.map(Number);a=`#${t.toString(16).padStart(2,`0`)}${n.toString(16).padStart(2,`0`)}${r.toString(16).padStart(2,`0`)}`}}let o=a?JSON.stringify(a):`undefined`;r.styling.includes(`bold`);let s=r.styling.includes(`inverse`),u=r.styling.includes(`dim`),d=r.styling.includes(`strikethrough`),f=r.regexFlags;f.includes(`g`)||(f+=`g`);let p=Yr(new RegExp(r.regex,f));l+=`if(typeof ${c}==="string"){for(let m of ${c}.matchAll(${p})){${i}.push({start:m.index,end:m.index+m[0].length,color:${o}${s?`,inverse:!0`:``}${u?`,dimColor:!0`:``}${d?`,strikethrough:!0`:``},priority:100})}}`}let u=r[1]+l+r[2],d=e.slice(0,r.index),f=e.slice(r.index+r[0].length),p=d+``+u+f,m=p.indexOf(`for(let m of ${c}.matchAll(`);if(m>-1){let e=[...p.slice(Math.max(0,m-2e3),m).matchAll(/useMemo\(\(\)=>\{/g)];if(e.length>0){let t=Math.max(0,m-2e3)+e[e.length-1].index,n=p.slice(t),r=0;for(let e=0;e<n.length;e++)if(n[e]===`(`)r++;else if(n[e]===`)`&&(r--,r===0)){let n=t+e;p.slice(n-1,n)===`]`&&(p.slice(n-200,n).includes(`,${c}]`)||(p=p.slice(0,n-1)+`,${c}]`+p.slice(n)));break}}}return P(e,p,``+u,r.index,r.index+r[0].length),p},Se=(e,t)=>{let n=t.filter(e=>e.enabled);if(n.length===0)return null;let r=I(e);if(!r)return console.error(`^ patch: inputPatternHighlighters: failed to find chalk variable`),null;let i;return i=be(e),i?(i=xe(i,r,n),i||(console.error(`^ patch: inputPatternHighlighters: writeCustomHighlighterCreation failed`),null)):(console.error(`^ patch: inputPatternHighlighters: writeCustomHighlighterImpl failed`),null)},Ce=e=>{let t=e.match(/createElement\([$\w]+,\{[^}]+spinnerTip[^}]+overrideMessage[^}]+\}/);if(t&&t.index!==void 0){let e=t[0].match(/verbose:[^,}]+/);if(!e||e.index===void 0)return console.error(`patch: verbose: failed to find verbose property`),null;let n=t.index+e.index;return{startIndex:n,endIndex:n+e[0].length,replacement:`verbose:true`}}let n=e.match(/\{[^{}]{0,400}overrideMessage:[$\w]+,[^{}]{0,200}verbose:([$\w]+)[^{}]{0,200}\}\)\{/);if(n&&n.index!==void 0){let e=n[1],t=n.index+n[0].length;return{startIndex:t,endIndex:t,replacement:`${e}=!0;`}}return console.error(`patch: verbose: failed to find spinner props containing overrideMessage and verbose`),null},we=e=>{let t=Ce(e);if(!t)return null;let n=e.slice(0,t.startIndex)+t.replacement+e.slice(t.endIndex);return P(e,n,t.replacement,t.startIndex,t.endIndex),n},Te=e=>{let t=e.match(/if\s*\(\s*([$\w]+)\(\)\s*===\s*"opusplan"\s*&&\s*([$\w]+)\s*===\s*"plan"\s*&&\s*!([$\w]+)\s*\)\s*return\s*([$\w]+)\(\);/);if(!t||t.index===void 0)return console.error(`patch: opusplan1m: patchModeSwitchingFunction: failed to find mode switching pattern`),null;let[n,r,i,a,o]=t,s=`if((${r}()==="opusplan"||${r}()==="opusplan[1m]")&&${i}==="plan"&&!${a})return ${o}();`,c=e.slice(0,t.index)+s+e.slice(t.index+n.length);return P(e,c,s,t.index,t.index+n.length),c},Ee=e=>{let t=e.match(/(\["sonnet","opus","haiku",(?:"best",)?"sonnet\[1m\]",(?:"opus\[1m\]",)?"opusplan")/);if(!t||t.index===void 0)return console.error(`patch: opusplan1m: patchModelAliasesList: failed to find model aliases list`),null;let n=t[0]+`,"opusplan[1m]"`,r=e.slice(0,t.index)+n+e.slice(t.index+t[0].length);return P(e,r,n,t.index,t.index+t[0].length),r},De=e=>{let t=e.match(/(if\s*\(\s*([$\w]+)\s*===\s*"opusplan"\s*\)\s*return\s*"Opus(?: .{0,20})? in plan mode, else Sonnet(?: .{0,20})?";)/);if(!t||t.index===void 0)return console.error(`patch: opusplan1m: patchDescriptionFunction: failed to find description pattern`),null;let[n,,r]=t,i=n+`if(${r}==="opusplan[1m]")return"Opus 4.6 in plan mode, else Sonnet 4.6 (1M context)";`,a=e.slice(0,t.index)+i+e.slice(t.index+n.length);return P(e,a,i,t.index,t.index+n.length),a},Oe=e=>{let t=e.match(/(if\s*\(\s*([$\w]+)\s*===\s*"opusplan"\s*\)\s*return\s*"Opus Plan";)/);if(!t||t.index===void 0)return console.error(`patch: opusplan1m: patchLabelFunction: failed to find label pattern`),null;let[n,,r]=t,i=n+`if(${r}==="opusplan[1m]")return"Opus Plan 1M";`,a=e.slice(0,t.index)+i+e.slice(t.index+n.length);return P(e,a,i,t.index,t.index+n.length),a},ke=e=>{let t=e.match(/(if\s*\(\s*([$\w]+)\s*===\s*"opusplan"\s*\)\s*return\s*(?:[$\w]+\()?\[\s*\.\.\.([$\w]+)\s*,\s*([$\w]+)\(\)\s*\]\)?;)/);if(!t||t.index===void 0)return console.error(`patch: opusplan1m: patchModelSelectorOptions: failed to find model selector pattern`),null;let[n,,r,i]=t,a=n.match(RegExp(`return\\s*([$\\w]+)\\(\\s*\\[\\.\\.\\.${W(i)}`)),o=a?a[1]:null,s=`{value:"opusplan[1m]",label:"Opus Plan Mode 1M",description:"Use Opus 4.6 in plan mode, Sonnet 4.6 (1M context) otherwise"}`,c=n+`if(${r}==="opusplan[1m]")return ${o?`${o}([...${i},${s}])`:`[...${i},${s}]`};`,l=e.slice(0,t.index)+c+e.slice(t.index+n.length);return P(e,l,c,t.index,t.index+n.length),l},Ae=e=>{let t=e.match(/(if\s*\(\s*[$\w]+\s*===\s*null\s*\|\|\s*([$\w]+)\.some\s*\(\s*\(\s*[$\w]+\s*\)\s*=>\s*[$\w]+\.value\s*===\s*[$\w]+\s*\)\s*\)\s*return\s*(?:[$\w]+\()?[$\w]+\)?\s*;)/);if(!t||t.index===void 0)return console.error(`patch: opusplan1m: patchAlwaysShowInModelSelector: failed to find model list check pattern`),null;let[,,n]=t,r=`${n}.push({value:"opusplan",label:"Opus Plan Mode",description:"Use Opus 4.6 in plan mode, Sonnet 4.6 otherwise"});${n}.push({value:"opusplan[1m]",label:"Opus Plan Mode 1M",description:"Use Opus 4.6 in plan mode, Sonnet 4.6 (1M context) otherwise"});`,i=e.slice(0,t.index)+r+e.slice(t.index);return P(e,i,r,t.index,t.index),i},je=e=>{if(e.includes(`"opusplan[1m]"`))return console.log(`patch: opusplan1m: opusplan[1m] already supported natively — skipping`),e;let t=e,n=Te(t);if(n)t=n;else return console.error(`patch: opusplan1m: failed to apply mode switching patch`),null;if(n=Ee(t),n)t=n;else return console.error(`patch: opusplan1m: failed to apply model aliases list patch`),null;if(n=De(t),n)t=n;else return console.error(`patch: opusplan1m: failed to apply description function patch`),null;if(n=Oe(t),n)t=n;else return console.error(`patch: opusplan1m: failed to apply label function patch`),null;if(n=ke(t),n)t=n;else return console.error(`patch: opusplan1m: failed to apply model selector options patch`),null;if(n=Ae(t),n)t=n;else return console.error(`patch: opusplan1m: failed to apply always-show-in-selector patch`),null;return t},Me=e=>{if(/case"thinking":\{(?:(?!case")[^]){0,600}isTranscriptMode:true/.test(e))return console.log(`patch: thinkingVisibility: already configured natively — skipping`),e;let t=e.match(/(case"thinking":\{?)(if\(.+?\)return null;)(.{0,400}isTranscriptMode:).+?,/);if(!t||t.index===void 0)return console.error(`patch: thinkingVisibility: failed to find thinking visibility pattern`),null;let n=t[1]+t[3]+`true,`,r=t.index,i=r+t[0].length,a=e.slice(0,r)+n+e.slice(i);return P(e,a,n,r,i),a},Ne=(e,t)=>{let n=e.match(/(agentType\s*:\s*"Plan"\s*,[\s\S]{1,2500}?\bmodel\s*:\s*")[^"]+(")/);if(!n||n.index===void 0)return console.error(`patch: subagentModels: failed to find Plan agent pattern`),null;let r=n[1]+t+n[2],i=n.index,a=i+n[0].length,o=e.slice(0,i)+r+e.slice(a);return P(e,o,r,i,a),o},Pe=(e,t)=>{let n=e.match(/(\{agentType\s*:\s*"Explore"\s*,[\s\S]{1,2500}?\bmodel\s*:\s*")[^"]+(")/);if(!n||n.index===void 0)return console.error(`patch: subagentModels: failed to find Explore agent pattern`),null;let r=n[1]+t+n[2],i=n.index,a=i+n[0].length,o=e.slice(0,i)+r+e.slice(a);return P(e,o,r,i,a),o},Fe=(e,t)=>{let n=e.match(/([^$\w][$\w]+\s*=\s*\{agentType\s*:\s*"general-purpose"[\s\S]{0,2500}?)(\})/);if(!n||n.index===void 0)return console.error(`patch: subagentModels: failed to find general-purpose agent pattern`),null;let r=n[1],i=n[2],a;a=r.includes(`model:`)?r.replace(/(model\s*:\s*")[^"]+(")/,`$1${t}$2`)+i:r+`${r.trim().endsWith(`,`)?``:`,`}model:"${t}"`+i;let o=n.index,s=o+n[0].length,c=e.slice(0,o)+a+e.slice(s);return P(e,c,a,o,s),c},Ie=(e,t)=>{let n=e;if(t.plan){let e=Ne(n,t.plan);if(e===null)return null;n=e}if(t.explore){let e=Pe(n,t.explore);if(e===null)return null;n=e}if(t.generalPurpose){let e=Fe(n,t.generalPurpose);if(e===null)return null;n=e}return n},Le=e=>{let t=e.indexOf(`}.VERSION} (Claude Code)`);return t==-1?(console.error(`patch: patchesAppliedIndication: failed to find versionIndex`),null):{startIndex:0,endIndex:t+24}},Re=e=>{let t=e.match(/createElement\(([$\w]+),\{bold:!0\},"Claude Code"\),([$\w]+)\[\d+\]=[$\w]+;else [$\w]+=([$\w]+)\[\d+\]/);if(!t||t.index===void 0)return console.error(`patch: patchesAppliedIndication: PATCH 2 failed to find bold Claude Code pattern`),null;let n=t[1],r=t.index+t[0].length,i=e.indexOf(`;`,r);if(i===-1)return null;let a=i+1,o=e.match(/[^$\w]([$\w]+)\.createElement\(([$\w]+),null,[$\w]+," ",([$\w]+)\.createElement\(([$\w]+),\{dimColor:!0\},"v",[$\w]+\)\)/);if(!o||o.index===void 0){let t=e.match(/[^$\w]([$\w]+)\.createElement\(([$\w]+),\{bold:!0\},"Claude Code"\)," ",([$\w]+)\.createElement\(([$\w]+),\{dimColor:!0\},"v",[$\w]+\)/);return!t||t.index===void 0?(console.error(`patch: patchesAppliedIndication: PATCH 2 failed to find version createElement`),null):{varInsertIndex:a,refInsertIndex:t.index+t[0].length,reactVar:t[1],textComponent:n}}return{varInsertIndex:a,refInsertIndex:o.index+o[0].length-1,reactVar:o[1],textComponent:n}},ze=e=>{let t=e.match(/"Claude Code".{0,200}\{dimColor:!0\},"v",[$\w]+\)/);if(!t||t.index===void 0)return console.error(`patch: patchesAppliedIndication: failed to find version display for patch 3`),null;let n={index:t.index},r=Math.max(0,n.index-1500),i=e.slice(r,n.index),a=Array.from(i.matchAll(/\}function ([$\w]+)\(/g));if(a.length===0)return console.error(`patch: patchesAppliedIndication: failed to find header component function`),null;let o=a[a.length-1][1],s=RegExp(`[^$\\w]([$\\w]+)\\.createElement\\(${W(o)},null\\),?`),c=e.match(s);if(!c||c.index===void 0)return console.error(`patch: patchesAppliedIndication: failed to find createElement call for header`),null;let l=e.slice(Math.max(0,c.index-30),c.index+1).match(/([$\w]+)=(?:[$\w]+&&)?[^$\w]?$/);if(l){let t=l[1],n=e.slice(c.index,c.index+2e3),r=RegExp(`,${W(t)}([,\\)])`),i=n.match(r);if(i&&i.index!==void 0){let e=c.index+i.index+i[0].length-i[1].length;return{startIndex:e,endIndex:e}}}let u=c.index+c[0].length;return{startIndex:u,endIndex:u}},Be=(e,t,n,r=!0,i=!0)=>{let a=Le(e);if(!a)return console.error(`patch: patchesAppliedIndication: failed to version output location`),null;let o=`\\n${t} (tweakcc)`,s=`}.VERSION} (Claude Code)`,c=e.replaceAll(s,s+o);P(e,c,o,a.endIndex,a.endIndex);let l=I(e);if(!l)return console.error(`patch: patchesAppliedIndication: failed to find chalk variable`),null;let u=V(e);if(!u)return console.error(`patch: patchesAppliedIndication: failed to find text component`),null;let d=z(e);if(!d)return console.error(`patch: patchesAppliedIndication: failed to find React variable`),null;let f=H(e);if(!f)return console.error(`patch: patchesAppliedIndication: failed to find Box component`),null;if(r){let e=c.match(/(\$\{([$\w]+)\("inactive",([$\w]+)\)\(`v\$\{[$\w]+\}`\)\}) `,/);if(e&&e.index!==void 0){let n=e[0],r=e[2],i=e[3],a=`${e[1]} \${${r}("warning",${i})("+ tweakcc v${t}")} \`,`;c=c.replace(n,a)}c=c.replace(/([$\w]+\("claude",[$\w]+\)\(" Claude Code) ("\))/,`$1 + tweakcc v${t} $2`);let n=Re(c);if(!n)return console.error(`patch: patchesAppliedIndication: patch 2 failed`),null;let r=`let _tw=${n.reactVar}.createElement(${n.textComponent},null,${l}.hex("#FF8400").bold("+ tweakcc v${t}"));`,i=c;c=c.slice(0,n.varInsertIndex)+r+c.slice(n.varInsertIndex),P(i,c,r,n.varInsertIndex,n.varInsertIndex);let a=n.refInsertIndex+r.length,o=`," ",_tw`,s=c;c=c.slice(0,a)+o+c.slice(a),P(s,c,o,a,a)}if(i){let e=ze(c);if(!e)console.log(`patch: patchesAppliedIndication: patch 3 skipped (see prior message)`);else{let t=[];t.push(`,${d}.createElement(${f}, { flexDirection: "column" },`),t.push(`${d}.createElement(${f}, null, ${d}.createElement(${u}, {color: "success", bold: true}, "┃ "), ${d}.createElement(${u}, {color: "success", bold: true}, "✓ tweakcc patches are applied")),`);for(let e of n)e=e.replace(`CHALK_VAR`,l),t.push(`${d}.createElement(${f}, null, ${d}.createElement(${u}, {color: "success", bold: true}, "┃ "), ${d}.createElement(${u}, {dimColor: true}, \` * ${e}\`)),`);t.push(`),`);let r=t.join(`
1
+ import e from"chalk";import t,{EOL as n}from"node:os";import*as r from"node:fs/promises";import i from"node:fs/promises";import*as a from"node:fs";import o from"node:fs";import*as s from"node:path";import c from"node:path";import*as l from"fs";import*as u from"path";import*as d from"os";import*as f from"child_process";import*as p from"crypto";import m from"gray-matter";import{diffWordsWithSpace as h}from"diff";let g=null;async function _(){if(g!==null)return g;try{return await import(`node-lief`),g=await import(`./nativeInstallation-DDTsTrCt.mjs`),g}catch(e){return G(`Error loading native installation module: ${e instanceof Error?e.message:String(e)}`),e instanceof Error&&G(e),null}}async function v(e,t){let n=await _();return n?n.extractClaudeJsFromNativeInstallation(e,t):{data:null,clearBytecode:!1}}async function y(e,t,n,r){let i=await _();if(!i)throw Error("`repackNativeInstallation()` called but `node-lief` is not available. This is unexpected - `extractClaudeJsFromNativeInstallation()` should have been called first.");i.repackNativeInstallation(e,t,n,r)}async function b(e){let t=await _();return t?t.resolveNixBinaryWrapper(e):null}const x={themes:[{name:`Dark mode`,id:`dark`,colors:{autoAccept:`rgb(175,135,255)`,bashBorder:`rgb(253,93,177)`,claude:`rgb(215,119,87)`,claudeShimmer:`rgb(235,159,127)`,claudeBlue_FOR_SYSTEM_SPINNER:`rgb(147,165,255)`,claudeBlueShimmer_FOR_SYSTEM_SPINNER:`rgb(177,195,255)`,permission:`rgb(177,185,249)`,permissionShimmer:`rgb(207,215,255)`,planMode:`rgb(72,150,140)`,ide:`rgb(71,130,200)`,promptBorder:`rgb(136,136,136)`,promptBorderShimmer:`rgb(166,166,166)`,text:`rgb(255,255,255)`,inverseText:`rgb(0,0,0)`,inactive:`rgb(153,153,153)`,subtle:`rgb(80,80,80)`,suggestion:`rgb(177,185,249)`,remember:`rgb(177,185,249)`,background:`rgb(0,204,204)`,success:`rgb(78,186,101)`,error:`rgb(255,107,128)`,warning:`rgb(255,193,7)`,warningShimmer:`rgb(255,223,57)`,diffAdded:`rgb(34,92,43)`,diffRemoved:`rgb(122,41,54)`,diffAddedDimmed:`rgb(71,88,74)`,diffRemovedDimmed:`rgb(105,72,77)`,diffAddedWord:`rgb(56,166,96)`,diffRemovedWord:`rgb(179,89,107)`,diffAddedWordDimmed:`rgb(46,107,58)`,diffRemovedWordDimmed:`rgb(139,57,69)`,red_FOR_SUBAGENTS_ONLY:`rgb(220,38,38)`,blue_FOR_SUBAGENTS_ONLY:`rgb(37,99,235)`,green_FOR_SUBAGENTS_ONLY:`rgb(22,163,74)`,yellow_FOR_SUBAGENTS_ONLY:`rgb(202,138,4)`,purple_FOR_SUBAGENTS_ONLY:`rgb(147,51,234)`,orange_FOR_SUBAGENTS_ONLY:`rgb(234,88,12)`,pink_FOR_SUBAGENTS_ONLY:`rgb(219,39,119)`,cyan_FOR_SUBAGENTS_ONLY:`rgb(8,145,178)`,professionalBlue:`rgb(106,155,204)`,rainbow_red:`rgb(235,95,87)`,rainbow_orange:`rgb(245,139,87)`,rainbow_yellow:`rgb(250,195,95)`,rainbow_green:`rgb(145,200,130)`,rainbow_blue:`rgb(130,170,220)`,rainbow_indigo:`rgb(155,130,200)`,rainbow_violet:`rgb(200,130,180)`,rainbow_red_shimmer:`rgb(250,155,147)`,rainbow_orange_shimmer:`rgb(255,185,137)`,rainbow_yellow_shimmer:`rgb(255,225,155)`,rainbow_green_shimmer:`rgb(185,230,180)`,rainbow_blue_shimmer:`rgb(180,205,240)`,rainbow_indigo_shimmer:`rgb(195,180,230)`,rainbow_violet_shimmer:`rgb(230,180,210)`,clawd_body:`rgb(215,119,87)`,clawd_background:`rgb(0,0,0)`,userMessageBackground:`rgb(55, 55, 55)`,bashMessageBackgroundColor:`rgb(65, 60, 65)`,memoryBackgroundColor:`rgb(55, 65, 70)`,rate_limit_fill:`rgb(177,185,249)`,rate_limit_empty:`rgb(80,83,112)`}},{name:`Light mode`,id:`light`,colors:{autoAccept:`rgb(135,0,255)`,bashBorder:`rgb(255,0,135)`,claude:`rgb(215,119,87)`,claudeShimmer:`rgb(245,149,117)`,claudeBlue_FOR_SYSTEM_SPINNER:`rgb(87,105,247)`,claudeBlueShimmer_FOR_SYSTEM_SPINNER:`rgb(117,135,255)`,permission:`rgb(87,105,247)`,permissionShimmer:`rgb(137,155,255)`,planMode:`rgb(0,102,102)`,ide:`rgb(71,130,200)`,promptBorder:`rgb(153,153,153)`,promptBorderShimmer:`rgb(183,183,183)`,text:`rgb(0,0,0)`,inverseText:`rgb(255,255,255)`,inactive:`rgb(102,102,102)`,subtle:`rgb(175,175,175)`,suggestion:`rgb(87,105,247)`,remember:`rgb(0,0,255)`,background:`rgb(0,153,153)`,success:`rgb(44,122,57)`,error:`rgb(171,43,63)`,warning:`rgb(150,108,30)`,warningShimmer:`rgb(200,158,80)`,diffAdded:`rgb(105,219,124)`,diffRemoved:`rgb(255,168,180)`,diffAddedDimmed:`rgb(199,225,203)`,diffRemovedDimmed:`rgb(253,210,216)`,diffAddedWord:`rgb(47,157,68)`,diffRemovedWord:`rgb(209,69,75)`,diffAddedWordDimmed:`rgb(144,194,156)`,diffRemovedWordDimmed:`rgb(232,165,173)`,red_FOR_SUBAGENTS_ONLY:`rgb(220,38,38)`,blue_FOR_SUBAGENTS_ONLY:`rgb(37,99,235)`,green_FOR_SUBAGENTS_ONLY:`rgb(22,163,74)`,yellow_FOR_SUBAGENTS_ONLY:`rgb(202,138,4)`,purple_FOR_SUBAGENTS_ONLY:`rgb(147,51,234)`,orange_FOR_SUBAGENTS_ONLY:`rgb(234,88,12)`,pink_FOR_SUBAGENTS_ONLY:`rgb(219,39,119)`,cyan_FOR_SUBAGENTS_ONLY:`rgb(8,145,178)`,professionalBlue:`rgb(106,155,204)`,rainbow_red:`rgb(235,95,87)`,rainbow_orange:`rgb(245,139,87)`,rainbow_yellow:`rgb(250,195,95)`,rainbow_green:`rgb(145,200,130)`,rainbow_blue:`rgb(130,170,220)`,rainbow_indigo:`rgb(155,130,200)`,rainbow_violet:`rgb(200,130,180)`,rainbow_red_shimmer:`rgb(250,155,147)`,rainbow_orange_shimmer:`rgb(255,185,137)`,rainbow_yellow_shimmer:`rgb(255,225,155)`,rainbow_green_shimmer:`rgb(185,230,180)`,rainbow_blue_shimmer:`rgb(180,205,240)`,rainbow_indigo_shimmer:`rgb(195,180,230)`,rainbow_violet_shimmer:`rgb(230,180,210)`,clawd_body:`rgb(215,119,87)`,clawd_background:`rgb(0,0,0)`,userMessageBackground:`rgb(240, 240, 240)`,bashMessageBackgroundColor:`rgb(250, 245, 250)`,memoryBackgroundColor:`rgb(230, 245, 250)`,rate_limit_fill:`rgb(87,105,247)`,rate_limit_empty:`rgb(39,47,111)`}},{name:`Light mode (ANSI colors only)`,id:`light-ansi`,colors:{autoAccept:`ansi:magenta`,bashBorder:`ansi:magenta`,claude:`ansi:redBright`,claudeShimmer:`ansi:yellowBright`,claudeBlue_FOR_SYSTEM_SPINNER:`ansi:blue`,claudeBlueShimmer_FOR_SYSTEM_SPINNER:`ansi:blueBright`,permission:`ansi:blue`,permissionShimmer:`ansi:blueBright`,planMode:`ansi:cyan`,ide:`ansi:blueBright`,promptBorder:`ansi:white`,promptBorderShimmer:`ansi:whiteBright`,text:`ansi:black`,inverseText:`ansi:white`,inactive:`ansi:blackBright`,subtle:`ansi:blackBright`,suggestion:`ansi:blue`,remember:`ansi:blue`,background:`ansi:cyan`,success:`ansi:green`,error:`ansi:red`,warning:`ansi:yellow`,warningShimmer:`ansi:yellowBright`,diffAdded:`ansi:green`,diffRemoved:`ansi:red`,diffAddedDimmed:`ansi:green`,diffRemovedDimmed:`ansi:red`,diffAddedWord:`ansi:greenBright`,diffRemovedWord:`ansi:redBright`,diffAddedWordDimmed:`ansi:green`,diffRemovedWordDimmed:`ansi:red`,red_FOR_SUBAGENTS_ONLY:`ansi:red`,blue_FOR_SUBAGENTS_ONLY:`ansi:blue`,green_FOR_SUBAGENTS_ONLY:`ansi:green`,yellow_FOR_SUBAGENTS_ONLY:`ansi:yellow`,purple_FOR_SUBAGENTS_ONLY:`ansi:magenta`,orange_FOR_SUBAGENTS_ONLY:`ansi:redBright`,pink_FOR_SUBAGENTS_ONLY:`ansi:magentaBright`,cyan_FOR_SUBAGENTS_ONLY:`ansi:cyan`,professionalBlue:`ansi:blueBright`,rainbow_red:`ansi:red`,rainbow_orange:`ansi:redBright`,rainbow_yellow:`ansi:yellow`,rainbow_green:`ansi:green`,rainbow_blue:`ansi:cyan`,rainbow_indigo:`ansi:blue`,rainbow_violet:`ansi:magenta`,rainbow_red_shimmer:`ansi:redBright`,rainbow_orange_shimmer:`ansi:yellow`,rainbow_yellow_shimmer:`ansi:yellowBright`,rainbow_green_shimmer:`ansi:greenBright`,rainbow_blue_shimmer:`ansi:cyanBright`,rainbow_indigo_shimmer:`ansi:blueBright`,rainbow_violet_shimmer:`ansi:magentaBright`,clawd_body:`ansi:redBright`,clawd_background:`ansi:black`,userMessageBackground:`ansi:white`,bashMessageBackgroundColor:`ansi:whiteBright`,memoryBackgroundColor:`ansi:white`,rate_limit_fill:`ansi:yellow`,rate_limit_empty:`ansi:black`}},{name:`Dark mode (ANSI colors only)`,id:`dark-ansi`,colors:{autoAccept:`ansi:magentaBright`,bashBorder:`ansi:magentaBright`,claude:`ansi:redBright`,claudeShimmer:`ansi:yellowBright`,claudeBlue_FOR_SYSTEM_SPINNER:`ansi:blueBright`,claudeBlueShimmer_FOR_SYSTEM_SPINNER:`ansi:blueBright`,permission:`ansi:blueBright`,permissionShimmer:`ansi:blueBright`,planMode:`ansi:cyanBright`,ide:`ansi:blue`,promptBorder:`ansi:white`,promptBorderShimmer:`ansi:whiteBright`,text:`ansi:whiteBright`,inverseText:`ansi:black`,inactive:`ansi:white`,subtle:`ansi:white`,suggestion:`ansi:blueBright`,remember:`ansi:blueBright`,background:`ansi:cyanBright`,success:`ansi:greenBright`,error:`ansi:redBright`,warning:`ansi:yellowBright`,warningShimmer:`ansi:yellowBright`,diffAdded:`ansi:green`,diffRemoved:`ansi:red`,diffAddedDimmed:`ansi:green`,diffRemovedDimmed:`ansi:red`,diffAddedWord:`ansi:greenBright`,diffRemovedWord:`ansi:redBright`,diffAddedWordDimmed:`ansi:green`,diffRemovedWordDimmed:`ansi:red`,red_FOR_SUBAGENTS_ONLY:`ansi:redBright`,blue_FOR_SUBAGENTS_ONLY:`ansi:blueBright`,green_FOR_SUBAGENTS_ONLY:`ansi:greenBright`,yellow_FOR_SUBAGENTS_ONLY:`ansi:yellowBright`,purple_FOR_SUBAGENTS_ONLY:`ansi:magentaBright`,orange_FOR_SUBAGENTS_ONLY:`ansi:redBright`,pink_FOR_SUBAGENTS_ONLY:`ansi:magentaBright`,cyan_FOR_SUBAGENTS_ONLY:`ansi:cyanBright`,professionalBlue:`rgb(106,155,204)`,rainbow_red:`ansi:red`,rainbow_orange:`ansi:redBright`,rainbow_yellow:`ansi:yellow`,rainbow_green:`ansi:green`,rainbow_blue:`ansi:cyan`,rainbow_indigo:`ansi:blue`,rainbow_violet:`ansi:magenta`,rainbow_red_shimmer:`ansi:redBright`,rainbow_orange_shimmer:`ansi:yellow`,rainbow_yellow_shimmer:`ansi:yellowBright`,rainbow_green_shimmer:`ansi:greenBright`,rainbow_blue_shimmer:`ansi:cyanBright`,rainbow_indigo_shimmer:`ansi:blueBright`,rainbow_violet_shimmer:`ansi:magentaBright`,clawd_body:`ansi:redBright`,clawd_background:`ansi:black`,userMessageBackground:`ansi:blackBright`,bashMessageBackgroundColor:`ansi:black`,memoryBackgroundColor:`ansi:blackBright`,rate_limit_fill:`ansi:yellow`,rate_limit_empty:`ansi:white`}},{name:`Light mode (colorblind-friendly)`,id:`light-daltonized`,colors:{autoAccept:`rgb(135,0,255)`,bashBorder:`rgb(0,102,204)`,claude:`rgb(255,153,51)`,claudeShimmer:`rgb(255,183,101)`,claudeBlue_FOR_SYSTEM_SPINNER:`rgb(51,102,255)`,claudeBlueShimmer_FOR_SYSTEM_SPINNER:`rgb(101,152,255)`,permission:`rgb(51,102,255)`,permissionShimmer:`rgb(101,152,255)`,planMode:`rgb(51,102,102)`,ide:`rgb(71,130,200)`,promptBorder:`rgb(153,153,153)`,promptBorderShimmer:`rgb(183,183,183)`,text:`rgb(0,0,0)`,inverseText:`rgb(255,255,255)`,inactive:`rgb(102,102,102)`,subtle:`rgb(175,175,175)`,suggestion:`rgb(51,102,255)`,remember:`rgb(51,102,255)`,background:`rgb(0,153,153)`,success:`rgb(0,102,153)`,error:`rgb(204,0,0)`,warning:`rgb(255,153,0)`,warningShimmer:`rgb(255,183,50)`,diffAdded:`rgb(153,204,255)`,diffRemoved:`rgb(255,204,204)`,diffAddedDimmed:`rgb(209,231,253)`,diffRemovedDimmed:`rgb(255,233,233)`,diffAddedWord:`rgb(51,102,204)`,diffRemovedWord:`rgb(153,51,51)`,diffAddedWordDimmed:`rgb(102,153,204)`,diffRemovedWordDimmed:`rgb(204,153,153)`,red_FOR_SUBAGENTS_ONLY:`rgb(204,0,0)`,blue_FOR_SUBAGENTS_ONLY:`rgb(0,102,204)`,green_FOR_SUBAGENTS_ONLY:`rgb(0,204,0)`,yellow_FOR_SUBAGENTS_ONLY:`rgb(255,204,0)`,purple_FOR_SUBAGENTS_ONLY:`rgb(128,0,128)`,orange_FOR_SUBAGENTS_ONLY:`rgb(255,128,0)`,pink_FOR_SUBAGENTS_ONLY:`rgb(255,102,178)`,cyan_FOR_SUBAGENTS_ONLY:`rgb(0,178,178)`,professionalBlue:`rgb(106,155,204)`,rainbow_red:`rgb(235,95,87)`,rainbow_orange:`rgb(245,139,87)`,rainbow_yellow:`rgb(250,195,95)`,rainbow_green:`rgb(145,200,130)`,rainbow_blue:`rgb(130,170,220)`,rainbow_indigo:`rgb(155,130,200)`,rainbow_violet:`rgb(200,130,180)`,rainbow_red_shimmer:`rgb(250,155,147)`,rainbow_orange_shimmer:`rgb(255,185,137)`,rainbow_yellow_shimmer:`rgb(255,225,155)`,rainbow_green_shimmer:`rgb(185,230,180)`,rainbow_blue_shimmer:`rgb(180,205,240)`,rainbow_indigo_shimmer:`rgb(195,180,230)`,rainbow_violet_shimmer:`rgb(230,180,210)`,clawd_body:`rgb(215,119,87)`,clawd_background:`rgb(0,0,0)`,userMessageBackground:`rgb(220, 220, 220)`,bashMessageBackgroundColor:`rgb(250, 245, 250)`,memoryBackgroundColor:`rgb(230, 245, 250)`,rate_limit_fill:`rgb(51,102,255)`,rate_limit_empty:`rgb(23,46,114)`}},{name:`Dark mode (colorblind-friendly)`,id:`dark-daltonized`,colors:{autoAccept:`rgb(175,135,255)`,bashBorder:`rgb(51,153,255)`,claude:`rgb(255,153,51)`,claudeShimmer:`rgb(255,183,101)`,claudeBlue_FOR_SYSTEM_SPINNER:`rgb(153,204,255)`,claudeBlueShimmer_FOR_SYSTEM_SPINNER:`rgb(183,224,255)`,permission:`rgb(153,204,255)`,permissionShimmer:`rgb(183,224,255)`,planMode:`rgb(102,153,153)`,ide:`rgb(71,130,200)`,promptBorder:`rgb(136,136,136)`,promptBorderShimmer:`rgb(166,166,166)`,text:`rgb(255,255,255)`,inverseText:`rgb(0,0,0)`,inactive:`rgb(153,153,153)`,subtle:`rgb(80,80,80)`,suggestion:`rgb(153,204,255)`,remember:`rgb(153,204,255)`,background:`rgb(0,204,204)`,success:`rgb(51,153,255)`,error:`rgb(255,102,102)`,warning:`rgb(255,204,0)`,warningShimmer:`rgb(255,234,50)`,diffAdded:`rgb(0,68,102)`,diffRemoved:`rgb(102,0,0)`,diffAddedDimmed:`rgb(62,81,91)`,diffRemovedDimmed:`rgb(62,44,44)`,diffAddedWord:`rgb(0,119,179)`,diffRemovedWord:`rgb(179,0,0)`,diffAddedWordDimmed:`rgb(26,99,128)`,diffRemovedWordDimmed:`rgb(128,21,21)`,red_FOR_SUBAGENTS_ONLY:`rgb(255,102,102)`,blue_FOR_SUBAGENTS_ONLY:`rgb(102,178,255)`,green_FOR_SUBAGENTS_ONLY:`rgb(102,255,102)`,yellow_FOR_SUBAGENTS_ONLY:`rgb(255,255,102)`,purple_FOR_SUBAGENTS_ONLY:`rgb(178,102,255)`,orange_FOR_SUBAGENTS_ONLY:`rgb(255,178,102)`,pink_FOR_SUBAGENTS_ONLY:`rgb(255,153,204)`,cyan_FOR_SUBAGENTS_ONLY:`rgb(102,204,204)`,professionalBlue:`rgb(106,155,204)`,rainbow_red:`rgb(235,95,87)`,rainbow_orange:`rgb(245,139,87)`,rainbow_yellow:`rgb(250,195,95)`,rainbow_green:`rgb(145,200,130)`,rainbow_blue:`rgb(130,170,220)`,rainbow_indigo:`rgb(155,130,200)`,rainbow_violet:`rgb(200,130,180)`,rainbow_red_shimmer:`rgb(250,155,147)`,rainbow_orange_shimmer:`rgb(255,185,137)`,rainbow_yellow_shimmer:`rgb(255,225,155)`,rainbow_green_shimmer:`rgb(185,230,180)`,rainbow_blue_shimmer:`rgb(180,205,240)`,rainbow_indigo_shimmer:`rgb(195,180,230)`,rainbow_violet_shimmer:`rgb(230,180,210)`,clawd_body:`rgb(215,119,87)`,clawd_background:`rgb(0,0,0)`,userMessageBackground:`rgb(55, 55, 55)`,bashMessageBackgroundColor:`rgb(65, 60, 65)`,memoryBackgroundColor:`rgb(55, 65, 70)`,rate_limit_fill:`rgb(153,204,255)`,rate_limit_empty:`rgb(69,92,115)`}},{name:`Monochrome`,id:`monochrome`,colors:{autoAccept:`rgb(200,200,200)`,bashBorder:`rgb(180,180,180)`,claude:`rgb(255,255,255)`,claudeShimmer:`rgb(230,230,230)`,claudeBlue_FOR_SYSTEM_SPINNER:`rgb(200,200,200)`,claudeBlueShimmer_FOR_SYSTEM_SPINNER:`rgb(220,220,220)`,permission:`rgb(200,200,200)`,permissionShimmer:`rgb(220,220,220)`,planMode:`rgb(180,180,180)`,ide:`rgb(190,190,190)`,promptBorder:`rgb(160,160,160)`,promptBorderShimmer:`rgb(180,180,180)`,text:`rgb(255,255,255)`,inverseText:`rgb(40,40,40)`,inactive:`rgb(120,120,120)`,subtle:`rgb(100,100,100)`,suggestion:`rgb(200,200,200)`,remember:`rgb(200,200,200)`,background:`rgb(180,180,180)`,success:`rgb(220,220,220)`,error:`rgb(180,180,180)`,warning:`rgb(200,200,200)`,warningShimmer:`rgb(220,220,220)`,diffAdded:`rgb(90,90,90)`,diffRemoved:`rgb(60,60,60)`,diffAddedDimmed:`rgb(110,110,110)`,diffRemovedDimmed:`rgb(80,80,80)`,diffAddedWord:`rgb(200,200,200)`,diffRemovedWord:`rgb(80,80,80)`,diffAddedWordDimmed:`rgb(160,160,160)`,diffRemovedWordDimmed:`rgb(70,70,70)`,red_FOR_SUBAGENTS_ONLY:`rgb(200,200,200)`,blue_FOR_SUBAGENTS_ONLY:`rgb(180,180,180)`,green_FOR_SUBAGENTS_ONLY:`rgb(210,210,210)`,yellow_FOR_SUBAGENTS_ONLY:`rgb(190,190,190)`,purple_FOR_SUBAGENTS_ONLY:`rgb(170,170,170)`,orange_FOR_SUBAGENTS_ONLY:`rgb(195,195,195)`,pink_FOR_SUBAGENTS_ONLY:`rgb(205,205,205)`,cyan_FOR_SUBAGENTS_ONLY:`rgb(185,185,185)`,professionalBlue:`rgb(190,190,190)`,rainbow_red:`rgb(240,240,240)`,rainbow_orange:`rgb(230,230,230)`,rainbow_yellow:`rgb(220,220,220)`,rainbow_green:`rgb(210,210,210)`,rainbow_blue:`rgb(200,200,200)`,rainbow_indigo:`rgb(190,190,190)`,rainbow_violet:`rgb(180,180,180)`,rainbow_red_shimmer:`rgb(255,255,255)`,rainbow_orange_shimmer:`rgb(245,245,245)`,rainbow_yellow_shimmer:`rgb(235,235,235)`,rainbow_green_shimmer:`rgb(225,225,225)`,rainbow_blue_shimmer:`rgb(215,215,215)`,rainbow_indigo_shimmer:`rgb(205,205,205)`,rainbow_violet_shimmer:`rgb(195,195,195)`,clawd_body:`rgb(255,255,255)`,clawd_background:`rgb(40,40,40)`,userMessageBackground:`rgb(70,70,70)`,bashMessageBackgroundColor:`rgb(65,65,65)`,memoryBackgroundColor:`rgb(75,75,75)`,rate_limit_fill:`rgb(200,200,200)`,rate_limit_empty:`rgb(90,90,90)`}}],thinkingVerbs:{format:`{}… `,verbs:`Accomplishing.Actioning.Actualizing.Architecting.Baking.Beaming.Beboppin'.Befuddling.Billowing.Blanching.Bloviating.Boogieing.Boondoggling.Booping.Bootstrapping.Brewing.Burrowing.Calculating.Canoodling.Caramelizing.Cascading.Catapulting.Cerebrating.Channeling.Channelling.Choreographing.Churning.Clauding.Coalescing.Cogitating.Combobulating.Composing.Computing.Concocting.Considering.Contemplating.Cooking.Crafting.Creating.Crunching.Crystallizing.Cultivating.Deciphering.Deliberating.Determining.Dilly-dallying.Discombobulating.Doing.Doodling.Drizzling.Ebbing.Effecting.Elucidating.Embellishing.Enchanting.Envisioning.Evaporating.Fermenting.Fiddle-faddling.Finagling.Flambéing.Flibbertigibbeting.Flowing.Flummoxing.Fluttering.Forging.Forming.Frolicking.Frosting.Gallivanting.Galloping.Garnishing.Generating.Germinating.Gitifying.Grooving.Gusting.Harmonizing.Hashing.Hatching.Herding.Honking.Hullaballooing.Hyperspacing.Ideating.Imagining.Improvising.Incubating.Inferring.Infusing.Ionizing.Jitterbugging.Julienning.Kneading.Leavening.Levitating.Lollygagging.Manifesting.Marinating.Meandering.Metamorphosing.Misting.Moonwalking.Moseying.Mulling.Mustering.Musing.Nebulizing.Nesting.Newspapering.Noodling.Nucleating.Orbiting.Orchestrating.Osmosing.Perambulating.Percolating.Perusing.Philosophising.Photosynthesizing.Pollinating.Pondering.Pontificating.Pouncing.Precipitating.Prestidigitating.Processing.Proofing.Propagating.Puttering.Puzzling.Quantumizing.Razzle-dazzling.Razzmatazzing.Recombobulating.Reticulating.Roosting.Ruminating.Sautéing.Scampering.Schlepping.Scurrying.Seasoning.Shenaniganing.Shimmying.Simmering.Skedaddling.Sketching.Slithering.Smooshing.Sock-hopping.Spelunking.Spinning.Sprouting.Stewing.Sublimating.Swirling.Swooping.Symbioting.Synthesizing.Tempering.Thinking.Thundering.Tinkering.Tomfoolering.Topsy-turvying.Transfiguring.Transmuting.Twisting.Undulating.Unfurling.Unravelling.Vibing.Waddling.Wandering.Warping.Whatchamacalliting.Whirlpooling.Whirring.Whisking.Wibbling.Working.Wrangling.Zesting.Zigzagging`.split(`.`)},thinkingStyle:{updateInterval:120,phases:process.env.TERM===`xterm-ghostty`?[`·`,`✢`,`✳`,`✶`,`✻`,`*`]:process.platform===`darwin`?[`·`,`✢`,`✳`,`✶`,`✻`,`✽`]:[`·`,`✢`,`*`,`✶`,`✻`,`✽`],reverseMirror:!0},userMessageDisplay:{format:` > {} `,styling:[],foregroundColor:`default`,backgroundColor:`default`,borderStyle:`none`,borderColor:`rgb(255,255,255)`,paddingX:`default`,paddingY:`default`,fitBoxToContent:!1},inputBox:{removeBorder:!1},misc:{showTweakccVersion:!0,showPatchesApplied:!0,expandThinkingBlocks:!0,enableConversationTitle:!0,hideStartupBanner:!1,hideCtrlGToEdit:!1,hideStartupClawd:!1,increaseFileReadLimit:!1,suppressLineNumbers:!1,suppressRateLimitOptions:!1,mcpConnectionNonBlocking:!0,mcpServerBatchSize:null,statuslineThrottleMs:null,statuslineUseFixedInterval:!1,tableFormat:`default`,enableSwarmMode:!0,enableSessionMemory:!0,enableRememberSkill:!1,tokenCountRounding:null,autoAcceptPlanMode:!1,allowBypassPermissionsInSudo:!1,suppressNativeInstallerWarning:!1,filterScrollEscapeSequences:!1,enableWorktreeMode:!0,allowCustomAgentModels:!1,enableContextLimitOverride:!1,enableModelCustomizations:!0,enableVoiceMode:!1,enableVoiceConciseOutput:!0,enableChannelsMode:!1},toolsets:[],defaultToolset:null,planModeToolset:null,subagentModels:{plan:null,explore:null,generalPurpose:null},inputPatternHighlighters:[],inputPatternHighlightersTestText:`Type test text here to see highlighting`,claudeMdAltNames:[`AGENTS.md`,`GEMINI.md`,`CRUSH.md`,`QWEN.md`,`IFLOW.md`,`WARP.md`,`copilot-instructions.md`]},S={name:`Unnamed Highlighter`,regex:``,regexFlags:`g`,format:`{MATCH}`,styling:[],foregroundColor:null,backgroundColor:null,enabled:!0},C={name:`Unnamed Toolset`,allowedTools:`*`},w=x.themes[0],ee=e=>{let t=[],n=/visibleOptionCount:[\w$]+=(\d+)/g,r;for(;(r=n.exec(e))!==null;){let e=r.index+r[0].indexOf(`=`)+1;t.push({startIndex:e,endIndex:e+r[1].length})}return t},te=e=>{let t=e.match(/\{rows:([\w$]+),columns:[\w$]+\}=[\w$]+\(\),([\w$]+)=Math\.floor\(\1\/2\)/);if(!t||t.index===void 0)return null;let n=t.index+t[0].indexOf(t[2]+`=Math.floor(`),r=t.index+t[0].length,i=`${t[2]}=${t[1]}`,a=e.slice(0,n)+i+e.slice(r);return P(e,a,i,n,r),a},ne=e=>{let t=e.match(/Math\.max\(1,Math\.floor\(\(([\w$]+)-10\)\/2\)\)/);if(!t||t.index===void 0)return null;let n=`Math.max(1,${t[1]}-3)`,r=e.slice(0,t.index)+n+e.slice(t.index+t[0].length);return P(e,r,n,t.index,t.index+t[0].length),r},re=e=>{let t=e.match(/Math\.min\(6,Math\.max\(1,([\w$]+)-3\)\)/);if(!t||t.index===void 0)return null;let n=`Math.max(1,${t[1]}-3)`,r=e.slice(0,t.index)+n+e.slice(t.index+t[0].length);return P(e,r,n,t.index,t.index+t[0].length),r},ie=(e,t)=>{let n=ee(e);if(n.length===0)return console.error(`patch: writeShowMoreItemsInSelectMenus: failed to find locations`),null;let r=n.sort((e,t)=>t.startIndex-e.startIndex),i=e;for(let e of r){let n=t.toString(),r=i.slice(0,e.startIndex)+n+i.slice(e.endIndex);P(i,r,n,e.startIndex,e.endIndex),i=r}let a=te(i);a?i=a:console.error(`patch: writeShowMoreItemsInSelectMenus: failed to find help menu height pattern`);let o=ne(i);o?i=o:console.error(`patch: writeShowMoreItemsInSelectMenus: failed to find visibleCount pattern`);let s=re(i);return s?i=s:console.error(`patch: writeShowMoreItemsInSelectMenus: failed to find suggestions cap pattern`),i};function ae(e){let t=-1,n=-1,r=``,i=e.match(/switch\(([$\w]+)\)\{case"(?:light|dark)":[^}]*return [$\w]+;[^}]*default:return [$\w]+\}/);if(i&&i.index!=null)t=i.index,n=t+i[0].length,r=i[1];else{if(e.indexOf(`case"dark":return{"autoAccept"`)===-1&&e.indexOf(`case"light":return{`)===-1)return console.error(`patch: themes: failed to find switchMatch`),null;let i=e.indexOf(`case"dark":return{`)===-1?e.indexOf(`case"light":return{`):e.indexOf(`case"dark":return{`),a=e.slice(Math.max(0,i-200),i).match(/switch\(([$\w]+)\)\{\s*$/);if(!a||a.index==null)return console.error(`patch: themes: failed to find switchMatch (old format)`),null;t=Math.max(0,i-200)+a.index,r=a[1];let o=0;for(let r=t;r<e.length&&r<t+5e4;r++)if(e[r]===`{`&&o++,e[r]===`}`&&(o--,o===0)){n=r+1;break}}if(t===-1||n===-1)return console.error(`patch: themes: failed to find switchMatch`),null;let a=e.match(/\[(?:\.\.\.\[\],)?(?:\{"?label"?:"(?:Dark|Light|Auto|Monochrome)[^"]*","?value"?:"[^"]+"\},?)+\]/);if(!a||a.index==null)return console.error(`patch: themes: failed to find objArrMatch`),null;let o=e.match(/(?:return|[$\w]+=)\{(?:"?(?:[$\w-]+)"?:"(?:Auto |Dark|Light|Monochrome)[^"]*",?)+\}/);return!o||o.index==null?(console.error(`patch: themes: failed to find objMatch`),null):{switchStatement:{startIndex:t,endIndex:n,identifiers:[r]},objArr:{startIndex:a.index,endIndex:a.index+a[0].length},obj:{startIndex:o.index,endIndex:o.index+o[0].length,identifiers:[o[1]]}}}const oe=(e,t)=>{let n=ae(e);if(!n)return null;if(t.length===0)return e;let r=e,i=(n.obj.identifiers?.[0]??`return`)+JSON.stringify(Object.fromEntries(t.map(e=>[e.id,e.name])));r=r.slice(0,n.obj.startIndex)+i+r.slice(n.obj.endIndex),P(e,r,i,n.obj.startIndex,n.obj.endIndex),e=r;let a=JSON.stringify(t.map(e=>({label:e.name,value:e.id})));r=r.slice(0,n.objArr.startIndex)+a+r.slice(n.objArr.endIndex),P(e,r,a,n.objArr.startIndex,n.objArr.endIndex),e=r;let o=`switch(${n.switchStatement.identifiers?.[0]}){\n`;return t.forEach(e=>{o+=`case"${e.id}":return${JSON.stringify(e.colors)};\n`}),o+=`default:return${JSON.stringify(t[0].colors)};\n}`,r=r.slice(0,n.switchStatement.startIndex)+o+r.slice(n.switchStatement.endIndex),P(e,r,o,n.switchStatement.startIndex,n.switchStatement.endIndex),r},T=e=>F(e,/\b200000\b/,`(+process.env.CLAUDE_CODE_CONTEXT_LIMIT||200000)`),E=(e,t)=>{if(!t)return e;let n=e,r=!1,i=n.match(/createElement\(([$\w]+),\{color:([$\w]+)\.bgColor\},"─"\.repeat\(([$\w]+)\)\)/);if(i){let e=i[1];n=n.replace(i[0],`createElement(${e},null,"")`);let t=RegExp(`createElement\\(${e},\\{color:${i[2]}\\.bgColor\\},${i[2]}\\.text\\?.+?"─"\\.repeat\\(${i[3]}\\)\\)`),a=n.match(t);a&&(n=n.replace(a[0],`createElement(${e},null,"")`)),r=!0}let a=n.match(/(borderColor:[$\w]+\(\),)borderStyle:"round"(,borderLeft:!1,borderRight:!1,borderBottom:!0,width:"100%",borderText:)/);a&&(n=n.replace(a[0],`${a[1]}borderStyle:undefined${a[2]}`),r=!0);let o=n.match(/borderStyle:"round"(,borderLeft:!1,borderRight:!1,borderBottom:!0,width:"100%"\}.+?Save and close editor)/);return o&&(n=n.replace(o[0],`borderStyle:undefined${o[1]}`),r=!0),r?(P(e,n,`(input border removed)`,0,0),n):(console.error(`patch: input border: failed to find input border pattern`),null)},se=e=>{let t=e.match(/spinnerTip:[$\w]+,(?:[$\w]+:[$\w]+,)*overrideMessage:[$\w]+,.{300}/)||e.match(/overrideMessage:[$\w]+,(?:[$\w]+:[$\w]+,)*spinnerSuffix:[$\w]+,verbose:[$\w]+,.{300}/);if(!t||t.index==null)return console.error(`patch: thinker format: failed to find approxAreaMatch`),null;let n=e.slice(t.index,t.index+1e4),r=n.match(/,([$\w]+)(=\(([^;]{1,200}?)\)\+"(?:…|\\u2026)")/);if(r&&r.index!=null)return{startIndex:t.index+r.index+r[1].length+1,endIndex:t.index+r.index+r[1].length+r[2].length+1,identifiers:[r[3]]};let i=n.match(/,([$\w]+)(=(\([$\w]+&&![$\w]+\.isIdle\?[$\w]+\.spinnerVerb\?\?[$\w]+:[$\w]+\))\+"(?:…|\\u2026)")/);if(i&&i.index!=null)return{startIndex:t.index+i.index+i[1].length+1,endIndex:t.index+i.index+i[1].length+i[2].length+1,identifiers:[i[3]]};let a=n.match(/,([$\w]+)(=`\$\{([$\w]+&&![$\w]+\.isIdle\?[$\w]+\.spinnerVerb\?\?[$\w]+:[$\w]+)\}(?:…|\\u2026) ?`)/);return a&&a.index!=null?{startIndex:t.index+a.index+a[1].length+1,endIndex:t.index+a.index+a[1].length+a[2].length+1,identifiers:[a[3]]}:(console.error(`patch: thinker format: failed to find formatMatch`),null)},ce=(e,t)=>{let n=se(e);if(!n)return null;let r=n,i=t.replace(/\\/g,`\\\\`).replace(/`/g,"\\`"),a=r.identifiers?.[0],o=`=${"`"+i.replace(/\{\}/g,"${"+a+`}`)+"`"}`,s=e.slice(0,r.startIndex)+o+e.slice(r.endIndex);return P(e,s,o,r.startIndex,r.endIndex),s},le=e=>{let t=e.match(/=\s*\[\.\.\.([$\w]+),\s*\.\.\.?\[\.\.\.\1\]\.reverse\(\)\]/);return!t||t.index==null?(console.error(`patch: thinker symbol mirror option: failed to find match`),null):{startIndex:t.index,endIndex:t.index+t[0].length,identifiers:[t[1]]}},ue=(e,t)=>{let n=le(e);if(!n)return null;let r=n.identifiers?.[0],i=t?`=[...${r},...[...${r}].reverse()]`:`=[...${r}]`,a=e.slice(0,n.startIndex)+i+e.slice(n.endIndex);return P(e,a,i,n.startIndex,n.endIndex),a},de=(e,t)=>{let n=[],r=/\["(?:[·✢*✳✶✻✽]|\\u00b7|\\xb7|\\u2722|\\x2a|\\u002a|\\u2733|\\u2736|\\u273b|\\u273d)",\s*(?:"(?:[·✢*✳✶✻✽]|\\u00b7|\\xb7|\\u2722|\\x2a|\\u002a|\\u2733|\\u2736|\\u273b|\\u273d)",?\s*)+\]/gi,i;for(;(i=r.exec(e))!==null;)n.push({startIndex:i.index,endIndex:i.index+i[0].length});if(n.length===0)return console.error(`patch: thinkerSymbolChars: could not find any thinker symbol char arrays`),null;let a=JSON.stringify(t),o=n.sort((e,t)=>t.startIndex-e.startIndex),s=e;for(let e=0;e<o.length;e++){let t=s.slice(0,o[e].startIndex)+a+s.slice(o[e].endIndex);P(s,t,a,o[e].startIndex,o[e].endIndex),s=t}return s},fe=(e,t)=>{let n=e.match(/(if\(![$\w]+\)\{[$\w]+\(4\);return\})(.{0,200})120\)/);if(!n||n.index===void 0)return console.error(`patch: thinkerSymbolSpeed: failed to find thinker symbol speed pattern`),null;let r=n[2]+t+`)`,i=n.index,a=i+n[0].length,o=e.slice(0,i)+r+e.slice(a);return P(e,o,r,i,a),o},pe=e=>{let t=e.match(/\{flexWrap:"wrap",height:1,width:2\}/);return!t||t.index==null?(console.error(`patch: thinker symbol width: failed to find match`),null):{startIndex:t.index,endIndex:t.index+t[0].length}},me=(e,t)=>{let n=pe(e);if(!n)return null;let r=`{flexWrap:"wrap",height:1,width:${t}}`,i=e.slice(0,n.startIndex)+r+e.slice(n.endIndex);return P(e,i,r,n.startIndex,n.endIndex),i},he=(e,t)=>{let n=e.match(/\[("[A-Z][a-z'é\-\\xA-F0-9]+in[g']",?){50,}\]/);if(!n||n.index===void 0)return console.error(`patch: thinkingVerbs: failed to find present tense verbs pattern`),null;let r=JSON.stringify(t),i=n.index,a=i+n[0].length,o=e.slice(0,i)+r+e.slice(a);return P(e,o,r,i,a),o},ge=(e,t)=>{let n=e.match(/\[("[A-Z][a-z'é\-\\xA-F0-9]+ed",?){6,}\]/);if(!n||n.index===void 0)return console.error(`patch: thinkingVerbs: failed to find past tense verbs pattern`),null;let r=t.map(e=>e.replace(/ing$/,`ed`)),i=JSON.stringify(r),a=n.index,o=a+n[0].length,s=e.slice(0,a)+i+e.slice(o);return P(e,s,i,a,o),s},_e=(e,t)=>{let n=he(e,t);if(n===null)return null;let r=ge(n,t);return r===null?null:r},ve=(e,t)=>{let n=V(e);if(!n)return console.error(`patch: userMessageDisplay: failed to find Text component`),null;let r=H(e);if(!r)return console.error(`patch: userMessageDisplay: failed to find Box component`),null;let i=I(e);if(!i)return console.error(`patch: userMessageDisplay: failed to find chalk variable`),null;let a=/(No content found in user prompt message.{0,250}?\b)([$\w]+(?:\.default)?\.createElement.{0,30}\b[$\w]+(?:\.default)?\.createElement.{0,40}">.+?)?(([$\w]+(?:\.default)?\.createElement).{0,200})(\([$\w]+,(?:\{[^{}]+wrap:"wrap"\},([$\w]+)(?:\.trim\(\))?\)\)|\{text:([$\w]+)[^}]*\}\)\)?))/,o=e.match(/(No content found in user prompt message[\s\S]{0,100}?;return )([$\w]+(?:\.default)?)\.createElement\(([$\w]+),(\{flexDirection:"column"[^{}]*\}),([$\w]+(?:\.default)?)\.createElement\(([$\w]+),\{text:([$\w]+)[^{}]*\}\)\)/),s=o?null:e.match(a);if(!o&&(!s||s.index===void 0))return console.error(`patch: userMessageDisplay: failed to find user message display pattern`),null;let c=e=>`(typeof ${e}==="object"&&${e}!==null?${e}.head+"\\n("+${e}.hiddenLines+" line"+(${e}.hiddenLines===1?"":"s")+" hidden)\\n"+${e}.tail:${e})`;if(o){let r=o[1],i=o[2],a=o[3],s=o[4],l=o[5],u=o[7],d=s.slice(1,-1),f=/backgroundColor:[^,}]+(?:\?[^,}:]+:[^,}:]+)*/;if(t.backgroundColor===null)d=d.replace(RegExp(`,?${f.source}`),``).replace(/^,|,$/g,``);else if(t.backgroundColor!==`default`){let e=t.backgroundColor.match(/\d+/g);if(e){let t=`"rgb(${e.join(`,`)})"`;d=d.replace(/"userMessageBackground"/g,t)}}let p=[];if(t.borderStyle!==`none`){if(t.borderStyle.startsWith(`topBottom`)){let e=``;t.borderStyle===`topBottomSingle`?e=`{top:"─",bottom:"─",left:" ",right:" ",topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" "}`:t.borderStyle===`topBottomDouble`?e=`{top:"═",bottom:"═",left:" ",right:" ",topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" "}`:t.borderStyle===`topBottomBold`&&(e=`{top:"━",bottom:"━",left:" ",right:" ",topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" "}`),p.push(`borderStyle:${e}`)}else p.push(`borderStyle:"${t.borderStyle}"`);let e=t.borderColor.match(/\d+/g);e&&p.push(`borderColor:"rgb(${e.join(`,`)})"`)}t.paddingX!==`default`&&t.paddingX>0&&p.push(`paddingX:${t.paddingX}`),t.paddingY!==`default`&&t.paddingY>0&&p.push(`paddingY:${t.paddingY}`),t.fitBoxToContent&&p.push(`alignSelf:"flex-start"`),p.length>0&&(d=d?`${d},${p.join(`,`)}`:p.join(`,`));let m=`{${d}}`,h=[];if(t.foregroundColor===`default`)h.push(`color:"text"`);else{let e=t.foregroundColor.match(/\d+/g);e&&h.push(`color:"rgb(${e.join(`,`)})"`)}if(t.backgroundColor!==`default`&&t.backgroundColor!==null){let e=t.backgroundColor.match(/\d+/g);e&&h.push(`backgroundColor:"rgb(${e.join(`,`)})"`)}else t.backgroundColor===`default`&&h.push(`backgroundColor:"userMessageBackground"`);t.styling.includes(`bold`)&&h.push(`bold:!0`),t.styling.includes(`italic`)&&h.push(`italic:!0`),t.styling.includes(`underline`)&&h.push(`underline:!0`),t.styling.includes(`strikethrough`)&&h.push(`strikethrough:!0`),t.styling.includes(`inverse`)&&h.push(`inverse:!0`);let g=h.length>0?`{${h.join(`,`)}}`:`null`,_=c(u),v=r+`${i}.createElement(${a},${m},${l}.createElement(${n},${g},${"`"+t.format.replace(/\{\}/g,()=>"${"+_+`}`)+"`"}))`,y=o.index,b=y+o[0].length,x=e.slice(0,y)+v+e.slice(b);return P(e,x,v,y,b),x}let l=s,u=l[4],d=l[6]??l[7],f=[],p=t.borderStyle.startsWith(`topBottom`);if(t.borderStyle!==`none`){if(p){let e=``;t.borderStyle===`topBottomSingle`?e=`{top:"─",bottom:"─",left:" ",right:" ",topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" "}`:t.borderStyle===`topBottomDouble`?e=`{top:"═",bottom:"═",left:" ",right:" ",topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" "}`:t.borderStyle===`topBottomBold`&&(e=`{top:"━",bottom:"━",left:" ",right:" ",topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" "}`),f.push(`borderStyle:${e}`)}else f.push(`borderStyle:"${t.borderStyle}"`);let e=t.borderColor.match(/\d+/g);e&&f.push(`borderColor:"rgb(${e.join(`,`)})"`)}t.paddingX===`default`?f.push(`paddingRight:1`):t.paddingX>0&&f.push(`paddingX:${t.paddingX}`),t.paddingY!==`default`&&t.paddingY>0&&f.push(`paddingY:${t.paddingY}`),t.fitBoxToContent&&f.push(`alignSelf:"flex-start"`);let m=i,h=[];if(t.foregroundColor!==`default`){let e=t.foregroundColor.match(/\d+/g);e&&(m+=`.rgb(${e.join(`,`)})`)}else h.push(`color:"text"`);if(t.backgroundColor!==`default`&&t.backgroundColor!==null){let e=t.backgroundColor.match(/\d+/g);if(e){m+=`.bgRgb(${e.join(`,`)})`;let t=`"rgb(${e.join(`,`)})"`;f.push(`backgroundColor:${t}`),h.push(`backgroundColor:${t}`)}}else t.backgroundColor===`default`&&(f.push(`backgroundColor:"userMessageBackground"`),h.push(`backgroundColor:"userMessageBackground"`));t.styling.includes(`bold`)&&(m+=`.bold`),t.styling.includes(`italic`)&&(m+=`.italic`),t.styling.includes(`underline`)&&(m+=`.underline`),t.styling.includes(`strikethrough`)&&(m+=`.strikethrough`),t.styling.includes(`inverse`)&&(m+=`.inverse`);let g=c(d),_="`"+t.format.replace(/\{\}/g,()=>"${"+g+`}`)+"`",v=`${m}(${_})`,y=f.length>0?`{${f.join(`,`)}}`:`null`,b=h.length>0?`{${h.join(`,`)}}`:`null`,x=l[1]+`${u}(${r},${y},${u}(${n},${b},${v}))`,S=l.index,C=S+l[0].length,w=e.slice(0,S)+x+e.slice(C);return P(e,w,x,S,C),w},ye=(e,t)=>{let n=e;if(t.foregroundColor){let e=t.foregroundColor.match(/\d+/g);e&&(n+=`.rgb(${e.join(`,`)})`)}if(t.backgroundColor){let e=t.backgroundColor.match(/\d+/g);e&&(n+=`.bgRgb(${e.join(`,`)})`)}return t.styling.includes(`bold`)&&(n+=`.bold`),t.styling.includes(`italic`)&&(n+=`.italic`),t.styling.includes(`underline`)&&(n+=`.underline`),t.styling.includes(`strikethrough`)&&(n+=`.strikethrough`),t.styling.includes(`inverse`)&&(n+=`.inverse`),n},be=e=>{let t=e.match(/(if\(([$\w]+)\.highlight\?\.color\))((return [$\w]+\.createElement\([$\w]+,\{key:[$\w]+),color:[$\w]+\.highlight\.color(\},[$\w]+\.createElement\([$\w]+,null,)([$\w]+\.text)(\)\)));/);if(t&&t.index!==void 0){let n=`${t[2]}.highlight.color(${t[6]})`,r=t[1]+`{if(typeof ${t[2]}.highlight.color==='function')`+t[4]+t[5]+n+t[7]+`;else `+t[3]+`}`,i=e.slice(0,t.index)+r+e.slice(t.index+t[0].length);return P(e,i,r,t.index,t.index+t[0].length),i}let n=/(return ([$\w]+)\.createElement\(([$\w]+),\{key:([$\w]+)),color:([$\w]+)\.highlight\?\.color,dimColor:\5\.highlight\?\.dimColor,inverse:\5\.highlight\?\.inverse\},(\2\.createElement\([$\w]+,null,\5\.text\))\)/,r=e.match(n);if(!r||r.index===void 0)return console.error(`patch: inputPatternHighlighters: failed to find highlight?.color renderer pattern`),null;let i=r[2],a=r[3],o=r[4],s=r[5];r[6];let c=RegExp(`if\\(${s.replace(`$`,`\\$`)}\\.highlight\\.color\\)return ([$\\w]+)\\.createElement\\([$\\w]+,\\{key:[$\\w]+\\},${s.replace(`$`,`\\$`)}\\.text\\.split\\(""\\)\\.map\\([^)]+\\)\\)`),l=e,u=l.match(c);if(u&&u.index!==void 0){let e=`if(typeof ${s}.highlight?.color==='function')return ${i}.createElement(${a},{key:${o}},${i}.createElement(${a},null,${s}.highlight.color(${s}.text)));`;l=l.slice(0,u.index)+e+l.slice(u.index)}let d=l.match(n);if(!d||d.index===void 0)return console.error(`patch: inputPatternHighlighters: failed to re-find renderer after shimmer patch`),null;let f=l.slice(0,d.index)+d[0]+l.slice(d.index+d[0].length);return P(e,f,`shimmer guard + renderer`,0,0),f},xe=(e,t,n)=>{let r=e.match(/((?:,|;let )[$\w]+=[$\w]+\.useMemo\(\(\)=>\{let [$\w]+=\[\];[\s\S]*?)(if\([$\w]+&&[$\w]+&&![$\w]+\)([$\w]+)\.push\(\{start:[$\w]+,end:[$\w]+\+[$\w]+\.length,color:"warning",priority:\d+\})/);if(!r||r.index===void 0)return console.error(`patch: inputPatternHighlighters: failed to find useMemo/push pattern`),null;let i=r[3],a=r[1].match(/[^$\w]([$\w]+(?:\.default)?)\.useMemo\(/);if(!a)return console.error(`patch: inputPatternHighlighters: failed to extract React var from useMemo`),null;a[1];let o=Math.max(0,r.index-1e4),s=[...e.slice(o,r.index).matchAll(/\binput:([$\w]+),/g)].at(-1)??null;if(!s)return console.error(`patch: inputPatternHighlighters: failed to find input variable pattern`),null;let c=s[1],l=``;for(let e=0;e<n.length;e++){let r=n[e];ye(t,r),JSON.stringify(r.format).replace(/\{MATCH\}/g,`"+x+"`);let a=r.foregroundColor;if(a){let e=a.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);if(e){let[,t,n,r]=e.map(Number);a=`#${t.toString(16).padStart(2,`0`)}${n.toString(16).padStart(2,`0`)}${r.toString(16).padStart(2,`0`)}`}}let o=a?JSON.stringify(a):`undefined`;r.styling.includes(`bold`);let s=r.styling.includes(`inverse`),u=r.styling.includes(`dim`),d=r.styling.includes(`strikethrough`),f=r.regexFlags;f.includes(`g`)||(f+=`g`);let p=Yr(new RegExp(r.regex,f));l+=`if(typeof ${c}==="string"){for(let m of ${c}.matchAll(${p})){${i}.push({start:m.index,end:m.index+m[0].length,color:${o}${s?`,inverse:!0`:``}${u?`,dimColor:!0`:``}${d?`,strikethrough:!0`:``},priority:100})}}`}let u=r[1]+l+r[2],d=e.slice(0,r.index),f=e.slice(r.index+r[0].length),p=d+``+u+f,m=p.indexOf(`for(let m of ${c}.matchAll(`);if(m>-1){let e=[...p.slice(Math.max(0,m-2e3),m).matchAll(/useMemo\(\(\)=>\{/g)];if(e.length>0){let t=Math.max(0,m-2e3)+e[e.length-1].index,n=p.slice(t),r=0;for(let e=0;e<n.length;e++)if(n[e]===`(`)r++;else if(n[e]===`)`&&(r--,r===0)){let n=t+e;p.slice(n-1,n)===`]`&&(p.slice(n-200,n).includes(`,${c}]`)||(p=p.slice(0,n-1)+`,${c}]`+p.slice(n)));break}}}return P(e,p,``+u,r.index,r.index+r[0].length),p},Se=(e,t)=>{let n=t.filter(e=>e.enabled);if(n.length===0)return null;let r=I(e);if(!r)return console.error(`^ patch: inputPatternHighlighters: failed to find chalk variable`),null;let i;return i=be(e),i?(i=xe(i,r,n),i||(console.error(`^ patch: inputPatternHighlighters: writeCustomHighlighterCreation failed`),null)):(console.error(`^ patch: inputPatternHighlighters: writeCustomHighlighterImpl failed`),null)},Ce=e=>{let t=e.match(/createElement\([$\w]+,\{[^}]+spinnerTip[^}]+overrideMessage[^}]+\}/);if(t&&t.index!==void 0){let e=t[0].match(/verbose:[^,}]+/);if(!e||e.index===void 0)return console.error(`patch: verbose: failed to find verbose property`),null;let n=t.index+e.index;return{startIndex:n,endIndex:n+e[0].length,replacement:`verbose:true`}}let n=e.match(/\{[^{}]{0,400}overrideMessage:[$\w]+,[^{}]{0,200}verbose:([$\w]+)[^{}]{0,200}\}\)\{/);if(n&&n.index!==void 0){let e=n[1],t=n.index+n[0].length;return{startIndex:t,endIndex:t,replacement:`${e}=!0;`}}return console.error(`patch: verbose: failed to find spinner props containing overrideMessage and verbose`),null},we=e=>{let t=Ce(e);if(!t)return null;let n=e.slice(0,t.startIndex)+t.replacement+e.slice(t.endIndex);return P(e,n,t.replacement,t.startIndex,t.endIndex),n},Te=e=>{let t=e.match(/if\s*\(\s*([$\w]+)\(\)\s*===\s*"opusplan"\s*&&\s*([$\w]+)\s*===\s*"plan"\s*&&\s*!([$\w]+)\s*\)\s*return\s*([$\w]+)\(\);/);if(!t||t.index===void 0)return console.error(`patch: opusplan1m: patchModeSwitchingFunction: failed to find mode switching pattern`),null;let[n,r,i,a,o]=t,s=`if((${r}()==="opusplan"||${r}()==="opusplan[1m]")&&${i}==="plan"&&!${a})return ${o}();`,c=e.slice(0,t.index)+s+e.slice(t.index+n.length);return P(e,c,s,t.index,t.index+n.length),c},Ee=e=>{let t=e.match(/(\["sonnet","opus","haiku",(?:"best",)?"sonnet\[1m\]",(?:"opus\[1m\]",)?"opusplan")/);if(!t||t.index===void 0)return console.error(`patch: opusplan1m: patchModelAliasesList: failed to find model aliases list`),null;let n=t[0]+`,"opusplan[1m]"`,r=e.slice(0,t.index)+n+e.slice(t.index+t[0].length);return P(e,r,n,t.index,t.index+t[0].length),r},De=e=>{let t=e.match(/(if\s*\(\s*([$\w]+)\s*===\s*"opusplan"\s*\)\s*return\s*"Opus(?: .{0,20})? in plan mode, else Sonnet(?: .{0,20})?";)/);if(!t||t.index===void 0)return console.error(`patch: opusplan1m: patchDescriptionFunction: failed to find description pattern`),null;let[n,,r]=t,i=n+`if(${r}==="opusplan[1m]")return"Opus 4.6 in plan mode, else Sonnet 4.6 (1M context)";`,a=e.slice(0,t.index)+i+e.slice(t.index+n.length);return P(e,a,i,t.index,t.index+n.length),a},Oe=e=>{let t=e.match(/(if\s*\(\s*([$\w]+)\s*===\s*"opusplan"\s*\)\s*return\s*"Opus Plan";)/);if(!t||t.index===void 0)return console.error(`patch: opusplan1m: patchLabelFunction: failed to find label pattern`),null;let[n,,r]=t,i=n+`if(${r}==="opusplan[1m]")return"Opus Plan 1M";`,a=e.slice(0,t.index)+i+e.slice(t.index+n.length);return P(e,a,i,t.index,t.index+n.length),a},ke=e=>{let t=e.match(/(if\s*\(\s*([$\w]+)\s*===\s*"opusplan"\s*\)\s*return\s*(?:[$\w]+\()?\[\s*\.\.\.([$\w]+)\s*,\s*([$\w]+)\(\)\s*\]\)?;)/);if(!t||t.index===void 0)return console.error(`patch: opusplan1m: patchModelSelectorOptions: failed to find model selector pattern`),null;let[n,,r,i]=t,a=n.match(RegExp(`return\\s*([$\\w]+)\\(\\s*\\[\\.\\.\\.${W(i)}`)),o=a?a[1]:null,s=`{value:"opusplan[1m]",label:"Opus Plan Mode 1M",description:"Use Opus 4.6 in plan mode, Sonnet 4.6 (1M context) otherwise"}`,c=n+`if(${r}==="opusplan[1m]")return ${o?`${o}([...${i},${s}])`:`[...${i},${s}]`};`,l=e.slice(0,t.index)+c+e.slice(t.index+n.length);return P(e,l,c,t.index,t.index+n.length),l},Ae=e=>{let t=e.match(/(if\s*\(\s*[$\w]+\s*===\s*null\s*\|\|\s*([$\w]+)\.some\s*\(\s*\(\s*[$\w]+\s*\)\s*=>\s*[$\w]+\.value\s*===\s*[$\w]+\s*\)\s*\)\s*return\s*(?:[$\w]+\()?[$\w]+\)?\s*;)/);if(!t||t.index===void 0)return console.error(`patch: opusplan1m: patchAlwaysShowInModelSelector: failed to find model list check pattern`),null;let[,,n]=t,r=`${n}.push({value:"opusplan",label:"Opus Plan Mode",description:"Use Opus 4.6 in plan mode, Sonnet 4.6 otherwise"});${n}.push({value:"opusplan[1m]",label:"Opus Plan Mode 1M",description:"Use Opus 4.6 in plan mode, Sonnet 4.6 (1M context) otherwise"});`,i=e.slice(0,t.index)+r+e.slice(t.index);return P(e,i,r,t.index,t.index),i},je=e=>{if(e.includes(`"opusplan[1m]"`))return console.log(`patch: opusplan1m: opusplan[1m] already supported natively — skipping`),e;let t=e,n=Te(t);if(n)t=n;else return console.error(`patch: opusplan1m: failed to apply mode switching patch`),null;if(n=Ee(t),n)t=n;else return console.error(`patch: opusplan1m: failed to apply model aliases list patch`),null;if(n=De(t),n)t=n;else return console.error(`patch: opusplan1m: failed to apply description function patch`),null;if(n=Oe(t),n)t=n;else return console.error(`patch: opusplan1m: failed to apply label function patch`),null;if(n=ke(t),n)t=n;else return console.error(`patch: opusplan1m: failed to apply model selector options patch`),null;if(n=Ae(t),n)t=n;else return console.error(`patch: opusplan1m: failed to apply always-show-in-selector patch`),null;return t},Me=e=>{if(/case"thinking":\{(?:(?!case")[^]){0,600}isTranscriptMode:true/.test(e))return console.log(`patch: thinkingVisibility: already configured natively — skipping`),e;let t=e.match(/(case"thinking":\{?)(if\(.+?\)return null;)(.{0,400}isTranscriptMode:).+?,/);if(!t||t.index===void 0)return console.error(`patch: thinkingVisibility: failed to find thinking visibility pattern`),null;let n=t[1]+t[3]+`true,`,r=t.index,i=r+t[0].length,a=e.slice(0,r)+n+e.slice(i);return P(e,a,n,r,i),a},Ne=(e,t)=>{let n=e.match(/(agentType\s*:\s*"Plan"\s*,[\s\S]{1,2500}?\bmodel\s*:\s*")[^"]+(")/);if(!n||n.index===void 0)return console.error(`patch: subagentModels: failed to find Plan agent pattern`),null;let r=n[1]+t+n[2],i=n.index,a=i+n[0].length,o=e.slice(0,i)+r+e.slice(a);return P(e,o,r,i,a),o},Pe=(e,t)=>{let n=e.match(/(\{agentType\s*:\s*"Explore"\s*,[\s\S]{1,2500}?\bmodel\s*:\s*")[^"]+(")/);if(!n||n.index===void 0)return console.error(`patch: subagentModels: failed to find Explore agent pattern`),null;let r=n[1]+t+n[2],i=n.index,a=i+n[0].length,o=e.slice(0,i)+r+e.slice(a);return P(e,o,r,i,a),o},Fe=(e,t)=>{let n=e.match(/([^$\w][$\w]+\s*=\s*\{agentType\s*:\s*"general-purpose"[\s\S]{0,2500}?)(\})/);if(!n||n.index===void 0)return console.error(`patch: subagentModels: failed to find general-purpose agent pattern`),null;let r=n[1],i=n[2],a;a=r.includes(`model:`)?r.replace(/(model\s*:\s*")[^"]+(")/,`$1${t}$2`)+i:r+`${r.trim().endsWith(`,`)?``:`,`}model:"${t}"`+i;let o=n.index,s=o+n[0].length,c=e.slice(0,o)+a+e.slice(s);return P(e,c,a,o,s),c},Ie=(e,t)=>{let n=e;if(t.plan){let e=Ne(n,t.plan);if(e===null)return null;n=e}if(t.explore){let e=Pe(n,t.explore);if(e===null)return null;n=e}if(t.generalPurpose){let e=Fe(n,t.generalPurpose);if(e===null)return null;n=e}return n},Le=e=>{let t=e.indexOf(`}.VERSION} (Claude Code)`);return t==-1?(console.error(`patch: patchesAppliedIndication: failed to find versionIndex`),null):{startIndex:0,endIndex:t+24}},Re=e=>{let t=e.match(/createElement\(([$\w]+),\{bold:!0\},"Claude Code"\),([$\w]+)\[\d+\]=[$\w]+;else [$\w]+=([$\w]+)\[\d+\]/);if(!t||t.index===void 0)return console.error(`patch: patchesAppliedIndication: PATCH 2 failed to find bold Claude Code pattern`),null;let n=t[1],r=t.index+t[0].length,i=e.indexOf(`;`,r);if(i===-1)return null;let a=i+1,o=e.match(/[^$\w]([$\w]+)\.createElement\(([$\w]+),null,[$\w]+," ",([$\w]+)\.createElement\(([$\w]+),\{dimColor:!0\},"v",[$\w]+\)\)/);if(!o||o.index===void 0){let t=e.match(/[^$\w]([$\w]+)\.createElement\(([$\w]+),\{bold:!0\},"Claude Code"\)," ",([$\w]+)\.createElement\(([$\w]+),\{dimColor:!0\},"v",[$\w]+\)/);return!t||t.index===void 0?(console.error(`patch: patchesAppliedIndication: PATCH 2 failed to find version createElement`),null):{varInsertIndex:a,refInsertIndex:t.index+t[0].length,reactVar:t[1],textComponent:n}}return{varInsertIndex:a,refInsertIndex:o.index+o[0].length-1,reactVar:o[1],textComponent:n}},ze=e=>{let t=e.match(/"Claude Code".{0,200}\{dimColor:!0\},"v",[$\w]+\)/);if(!t||t.index===void 0)return console.error(`patch: patchesAppliedIndication: failed to find version display for patch 3`),null;let n={index:t.index},r=Math.max(0,n.index-1500),i=e.slice(r,n.index),a=Array.from(i.matchAll(/\}function ([$\w]+)\(/g));if(a.length===0)return console.log(`patch: patchesAppliedIndication: header component function not present (skipping PATCH 3; expected on CC ≥2.1.86)`),null;let o=a[a.length-1][1],s=RegExp(`[^$\\w]([$\\w]+)\\.createElement\\(${W(o)},null\\),?`),c=e.match(s);if(!c||c.index===void 0)return console.error(`patch: patchesAppliedIndication: failed to find createElement call for header`),null;let l=e.slice(Math.max(0,c.index-30),c.index+1).match(/([$\w]+)=(?:[$\w]+&&)?[^$\w]?$/);if(l){let t=l[1],n=e.slice(c.index,c.index+2e3),r=RegExp(`,${W(t)}([,\\)])`),i=n.match(r);if(i&&i.index!==void 0){let e=c.index+i.index+i[0].length-i[1].length;return{startIndex:e,endIndex:e}}}let u=c.index+c[0].length;return{startIndex:u,endIndex:u}},Be=(e,t,n,r=!0,i=!0)=>{let a=Le(e);if(!a)return console.error(`patch: patchesAppliedIndication: failed to version output location`),null;let o=`\\n${t} (tweakcc)`,s=`}.VERSION} (Claude Code)`,c=e.replaceAll(s,s+o);P(e,c,o,a.endIndex,a.endIndex);let l=I(e);if(!l)return console.error(`patch: patchesAppliedIndication: failed to find chalk variable`),null;let u=V(e);if(!u)return console.error(`patch: patchesAppliedIndication: failed to find text component`),null;let d=z(e);if(!d)return console.error(`patch: patchesAppliedIndication: failed to find React variable`),null;let f=H(e);if(!f)return console.error(`patch: patchesAppliedIndication: failed to find Box component`),null;if(r){let e=c.match(/(\$\{([$\w]+)\("inactive",([$\w]+)\)\(`v\$\{[$\w]+\}`\)\}) `,/);if(e&&e.index!==void 0){let n=e[0],r=e[2],i=e[3],a=`${e[1]} \${${r}("warning",${i})("+ tweakcc v${t}")} \`,`;c=c.replace(n,a)}c=c.replace(/([$\w]+\("claude",[$\w]+\)\(" Claude Code) ("\))/,`$1 + tweakcc v${t} $2`);let n=Re(c);if(!n)return console.error(`patch: patchesAppliedIndication: patch 2 failed`),null;let r=`let _tw=${n.reactVar}.createElement(${n.textComponent},null,${l}.hex("#FF8400").bold("+ tweakcc v${t}"));`,i=c;c=c.slice(0,n.varInsertIndex)+r+c.slice(n.varInsertIndex),P(i,c,r,n.varInsertIndex,n.varInsertIndex);let a=n.refInsertIndex+r.length,o=`," ",_tw`,s=c;c=c.slice(0,a)+o+c.slice(a),P(s,c,o,a,a)}if(i){let e=ze(c);if(!e)console.log(`patch: patchesAppliedIndication: patch 3 skipped (see prior message)`);else{let t=[];t.push(`,${d}.createElement(${f}, { flexDirection: "column" },`),t.push(`${d}.createElement(${f}, null, ${d}.createElement(${u}, {color: "success", bold: true}, "┃ "), ${d}.createElement(${u}, {color: "success", bold: true}, "✓ tweakcc patches are applied")),`);for(let e of n)e=e.replace(`CHALK_VAR`,l),t.push(`${d}.createElement(${f}, null, ${d}.createElement(${u}, {color: "success", bold: true}, "┃ "), ${d}.createElement(${u}, {dimColor: true}, \` * ${e}\`)),`);t.push(`),`);let r=t.join(`
2
2
  `);e.startIndex>0&&c[e.startIndex-1]===`,`&&r.startsWith(`,`)&&(r=r.slice(1)),r.endsWith(`,`)&&c[e.startIndex]===`,`&&(r=r.slice(0,-1));let i=c;c=c.slice(0,e.startIndex)+r+c.slice(e.endIndex),P(i,c,r,e.startIndex,e.endIndex)}}return c};async function Ve(e){let t=u.join(ti,`prompts-${e}.json`);try{let e=await r.readFile(t,`utf-8`);return JSON.parse(e)}catch{}let n=`https://raw.githubusercontent.com/Piebald-AI/tweakcc/refs/heads/main/data/prompts/prompts-${e}.json`;try{let i=await fetch(n);if(!i.ok){let t;throw t=i.status===429?`Rate limit exceeded. GitHub has temporarily blocked requests. Please wait a few minutes and try again.`:i.status===404?`Prompts file not found for Claude Code v${e}. This version was released within the past day or so and will be supported within a few hours.`:i.status>=500?`GitHub server error (${i.status}). Please try again later.`:`HTTP ${i.status}: ${i.statusText}`,Error(t)}let a=await i.json();try{await r.mkdir(ti,{recursive:!0}),await r.writeFile(t,JSON.stringify(a,null,2),`utf-8`)}catch(e){console.warn(`Failed to write to cache to ${t}: ${e}`)}return a}catch(t){if(t instanceof Error){if(t.message.includes(`Rate limit`)||t.message.includes(`not found`)||t.message.includes(`server error`)||t.message.includes(`HTTP`))throw t;let n=`Failed to download prompts for version ${e}: ${t.message}`;throw Error(n)}throw t}}const He=()=>u.join(J,`systemPromptOriginalHashes.json`),Ue=()=>u.join(J,`systemPromptAppliedHashes.json`),We=(e,t)=>`${e}-${t}`,Ge=e=>p.createHash(`md5`).update(e.trim(),`utf8`).digest(`hex`),Ke=async()=>{try{let e=await r.readFile(He(),`utf8`);return JSON.parse(e)}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return{};throw e}},qe=async e=>{await r.mkdir(J,{recursive:!0});let t={},n=Object.keys(e).sort();for(let r of n)t[r]=e[r];await r.writeFile(He(),JSON.stringify(t,null,2),`utf8`)},Je=async e=>{let t=await Ke(),n=0;for(let r of e.prompts){let e=We(r.id,r.version);t[e]||(t[e]=Ge(D(r.pieces,r.identifiers,r.identifierMap)),n++)}return await qe(t),n},Ye=async(e,t)=>(await Ke())[We(e,t)],Xe=async()=>{try{let e=await r.readFile(Ue(),`utf8`);return JSON.parse(e)}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return{};throw e}},Ze=async e=>{await r.mkdir(J,{recursive:!0});let t={},n=Object.keys(e).sort();for(let r of n)t[r]=e[r];await r.writeFile(Ue(),JSON.stringify(t,null,2),`utf8`)},Qe=async(e,t)=>{let n=await Xe();n[e]=t,await Ze(n)},$e=async()=>{let e=await Xe(),t={};for(let n of Object.keys(e))t[n]=null;await Ze(t)},et=async e=>{try{let t=await Xe();if(Object.keys(t).length===0)return!1;let n=(await r.readdir(e)).filter(e=>e.endsWith(`.md`));for(let i of n){let n=t[i.replace(`.md`,``)];if(n==null)continue;let a=u.join(e,i),o=await r.readFile(a,`utf8`);if(Ge((await import(`gray-matter`)).default(o,{delimiters:[`<!--`,`-->`]}).content)!==n)return!0}return!1}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return!1;throw e}},tt=e=>{let t=m(e,{delimiters:[`<!--`,`-->`]}),{name:n,description:r,ccVersion:i,variables:a}=t.data,o=0,s=e.indexOf(t.content);return s>=0&&(o=e.slice(0,s).split(`
3
3
  `).length-1),{name:n||``,description:r||``,ccVersion:i||``,variables:a||[],content:t.content,contentLineOffset:o}},nt=(e,t)=>{let n=t||D(e.pieces,e.identifiers,e.identifierMap),r=Object.keys(e.identifierMap).length>0?[...new Set(Object.values(e.identifierMap))]:void 0,i={name:e.name,description:e.description,ccVersion:e.version};return r&&r.length>0&&(i.variables=r),m.stringify(n,i,{delimiters:[`<!--`,`-->`]})},D=(e,t,n)=>{let r=``;for(let i=0;i<e.length;i++)if(r+=e[i],i<t.length){let e=t[i],a=n[String(e)]||`UNKNOWN_${e}`;r+=a}return r},O=(e,t)=>{let n=e.split(`.`).map(Number),r=t.split(`.`).map(Number);for(let e=0;e<Math.max(n.length,r.length);e++){let t=n[e]||0,i=r[e]||0;if(t<i)return-1;if(t>i)return 1}return 0},k=e=>u.join(Z,`${e}.md`),rt=async e=>{try{return await r.access(k(e)),!0}catch{return!1}},it=async e=>{let t=k(e);return tt(await r.readFile(t,`utf-8`))},at=async(e,t)=>{let n=k(e);await r.writeFile(n,t,`utf-8`)},ot=async(e,t)=>{let n=k(e),i=m(await r.readFile(n,`utf-8`),{delimiters:[`<!--`,`-->`]}),a=Object.keys(t).length>0?[...new Set(Object.values(t))]:void 0,o={name:i.data.name,description:i.data.description,ccVersion:i.data.ccVersion};a&&a.length>0&&(o.variables=a),await at(e,m.stringify(i.content,o,{delimiters:[`<!--`,`-->`]}))},st=(e,t)=>{let n=e=>e.split(/(\s+)/),r=n(e),i=n(t),a=r.length,o=i.length,s=Array(a+1).fill(0).map(()=>Array(o+1).fill(0));for(let e=1;e<=a;e++)for(let t=1;t<=o;t++)r[e-1]===i[t-1]?s[e][t]=s[e-1][t-1]+1:s[e][t]=Math.max(s[e-1][t],s[e][t-1]);let c=Array(a).fill(!1),l=Array(o).fill(!1),u=a,d=o;for(;u>0||d>0;)u>0&&d>0&&r[u-1]===i[d-1]?(u--,d--):d>0&&(u===0||s[u][d-1]>=s[u-1][d])?(l[d-1]=!0,d--):u>0&&(c[u-1]=!0,u--);let f=e=>e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#039;`),p=``;for(let e=0;e<r.length;e++){let t=f(r[e]);p+=c[e]?`<mark>${t}</mark>`:t}let m=``;for(let e=0;e<i.length;e++){let t=f(i[e]);m+=l[e]?`<mark>${t}</mark>`:t}return{oldHtml:p,newHtml:m}},ct=(e,t)=>{let n=e.length,r=t.length,i=Array(n+1).fill(0).map(()=>Array(r+1).fill(0));for(let a=1;a<=n;a++)for(let n=1;n<=r;n++)e[a-1]===t[n-1]?i[a][n]=i[a-1][n-1]+1:i[a][n]=Math.max(i[a-1][n],i[a][n-1]);let a=[],o=n,s=r,c=[];for(;o>0||s>0;)o>0&&s>0&&e[o-1]===t[s-1]?(c.unshift({type:`unchanged`,line:e[o-1],oldLineNo:o,newLineNo:s}),o--,s--):s>0&&(o===0||i[o][s-1]>=i[o-1][s])?(c.unshift({type:`added`,line:t[s-1],newLineNo:s}),s--):o>0&&(c.unshift({type:`removed`,line:e[o-1],oldLineNo:o}),o--);for(let e=0;e<c.length;e++){let t=c[e],n=c[e+1];if(t.type===`removed`&&n?.type===`added`){let r=st(t.line,n.line);a.push({type:`modified`,line:t.line,oldLineNo:t.oldLineNo,newLineNo:n.newLineNo,oldHtml:r.oldHtml,newHtml:r.newHtml}),e++}else a.push(t)}return a},lt=async(e,t,n,i,a,o,s,c)=>{let l=n.split(`
4
4
  `),d=i.split(`
@@ -623,7 +623,7 @@ for (const file of ${o}) {
623
623
  if (obj.type != "summary" || !obj.hasOwnProperty("tweakcc")) continue;
624
624
  tweakccSummaries.add(obj.leafUuid);
625
625
  }
626
- `;s=s.slice(0,i)+c+s.slice(i),P(e,s,c,i,i);let l=r+c.length,u=`||tweakccSummaries.has(${a}.uuid)`,d=s.slice(0,l)+u+s.slice(l);return P(s,d,u,l,l),d},_n=e=>{let t=e.match(/description:"Rename the current conversation",isEnabled:\(\)=>!1,/);if(!t)return console.error(`patch: conversationTitle: enableRenameConversationCommand: failed to find pattern`),null;if(t.index===void 0)return console.error(`patch: conversationTitle: enableRenameConversationCommand: match.index is undefined`),null;let n=`description:"Rename the current conversation",isEnabled:()=>!0,`,r=e.replace(`description:"Rename the current conversation",isEnabled:()=>!1,`,n);return r===e?(console.error(`patch: conversationTitle: enableRenameConversationCommand: replacement failed`),null):(P(e,r,n,t.index,t.index+63),r)},vn=e=>{let t=e;if(t=un(t),!t)return console.error(`patch: conversationTitle: step 1 failed (writeTitleSlashCommand)`),null;if(t=fn(t),!t)return console.error(`patch: conversationTitle: step 2 failed (writeCustomNamingFunctions)`),null;if(t=mn(t),!t)return console.error(`patch: conversationTitle: step 3 failed (writeAppendEntryInterceptor)`),null;if(t=gn(t),!t)return console.error(`patch: conversationTitle: step 4 failed (writeTweakccSummaryCheck)`),null;let n=_n(t);return n?t=n:console.log(`patch: conversationTitle: step 5 failed (enableRenameConversationCommand)`),t},yn=e=>{let t=e.match(/,[$\w]+\.createElement\([$\w]+,\{isBeforeFirstMessage:!1\}\),/);return t&&t.index!==void 0?{startIndex:t.index,endIndex:t.index+t[0].length}:null},bn=e=>{let t=yn(e);if(t){let n=e.slice(0,t.startIndex)+`,`+e.slice(t.endIndex);return P(e,n,`,`,t.startIndex,t.endIndex),n}let n=/(function ([$\w]+)\(\)\{)(?=[^}]{0,500}Apple_Terminal)/g,r;for(;(r=n.exec(e))!==null;){let t=r.index+r[0].length;if(e.slice(t,t+5e3).includes(`Welcome to Claude Code`)){let n=t,r=`return null;`,i=e.slice(0,n)+r+e.slice(n);return P(e,i,r,n,n),i}}return console.error(`patch: hideStartupBanner: failed to find startup banner component`),null},xn=e=>{let t=e.match(/if\(([$\w]+&&[$\w]+)\)[$\w]+\("tengu_external_editor_hint_shown",/);if(!t||t.index===void 0)return console.error(`patch: hideCtrlGToEdit: failed to find tengu_external_editor_hint_shown pattern`),null;let n=t[1],r=t.index+3;return{startIndex:r,endIndex:r+n.length,identifiers:[]}},Sn=e=>{let t=xn(e);if(!t)return null;let n=`false`,r=e.slice(0,t.startIndex)+n+e.slice(t.endIndex);return P(e,r,n,t.startIndex,t.endIndex),r},Cn=e=>{let t=[],n=/▛███▜|\\u259B\\u2588\\u2588\\u2588\\u259C/gi.exec(e);if(!n)return t;let r=n.index,i=Math.max(0,r-2e3),a=e.slice(i,r),o=/function ([$\w]+)\([^)]*\)\{/g,s=null,c;for(;(c=o.exec(a))!==null;)s=c;if(!s)return console.error(`patch: hideStartupClawd: failed to find inner Clawd function`),t;let l=s[1],u=/function ([$\w]+)\([^)]*\)\{/g,d,f=null;for(;(d=u.exec(e))!==null;){let t=d.index+d[0].length,n=e.slice(t,t+500),r=n.indexOf(`createElement(${l},`);if(r===-1)continue;let i=n.indexOf(`function `);if(!(i!==-1&&i<r)){f={index:d.index,length:d[0].length};break}}if(f){let e=f.index+f.length;t.push(e)}else{let e=i+s.index+s[0].length;t.push(e)}return t},wn=e=>{let t=Cn(e);if(t.length===0)return console.error(`patch: hideStartupClawd: no Clawd components found`),null;let n=[...t].sort((e,t)=>t-e),r=`return null;`,i=e;for(let e of n)i=i.slice(0,e)+r+i.slice(e);if(n.length>0){let t=n[n.length-1];P(e,i,r,t,t)}return i},Tn=e=>{let t=[`<system-reminder>`,`tengu_amber_wren`],n=null;for(let r of t){let t=r.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),i=RegExp(`=25000,([\\s\\S]{0,200})${t}`);if(n=e.match(i),n&&n.index!==void 0)break}if(!n||n.index===void 0)return console.error(`patch: increaseFileReadLimit: failed to find 25000 token limit near known anchor`),null;let r=n.index+1;return{startIndex:r,endIndex:r+5}},En=e=>{let t=Tn(e);if(!t)return null;let n=`1000000`,r=e.slice(0,t.startIndex)+n+e.slice(t.endIndex);return P(e,r,n,t.startIndex,t.endIndex),r},Dn=e=>{let t=e.match(/\{content:([$\w]+),startLine:[$\w]+\}\)\{if\(!\1\)return"";let ([$\w]+)=\1\.split\([^)]+\);/);if(t&&t.index!==void 0){let n=t[1],r=t.index+t[0].length,i=e.slice(r).match(/\}(?=function |var |let |const |[$\w]+=[$\w]+\()/);if(i&&i.index!==void 0){let t=r+i.index,a=`return ${n}`,o=e.slice(0,r)+a+e.slice(t);return P(e,o,a,r,t),o}}let n=e.match(/if\(([$\w]+)\.length>=\d+\)return`\$\{\1\}(?:→|\\u2192)\$\{([$\w]+)\}`;return`\$\{\1\.padStart\(\d+," "\)\}(?:→|\\u2192)\$\{\2\}`/);if(n&&n.index!==void 0){let t=`return ${n[2]}`,r=e.slice(0,n.index)+t+e.slice(n.index+n[0].length);return P(e,r,t,n.index,n.index+n[0].length),r}return console.error(`patch: suppressLineNumbers: failed to find line number formatter pattern`),null},On=e=>{let t=e.match(/\.createElement.{0,500},showAllInTranscript:[$\w]+,agentDefinitions:[$\w]+,onOpenRateLimitOptions:([$\w]+)/);if(!t||t.index===void 0)return console.error(`patch: suppressRateLimitOptions: failed to find onOpenRateLimitOptions pattern`),null;let n=t[1],r=t.index+t[0].length-n.length,i=r+n.length,a=`()=>{}`,o=e.slice(0,r)+a+e.slice(i);return P(e,o,a,r,i),o},kn=e=>{let t=e.match(/function [$\w]+\(\)\{return [$\w]+\("tengu_session_memory"/);if(!t||t.index===void 0)return console.error(`patch: sessionMemory: failed to find extraction gate`),null;let n=t.index+t[0].indexOf(`{`)+1,r=`return true;`,i=e.slice(0,n)+r+e.slice(n);return P(e,i,r,n,n),i},An=e=>{let t=e.match(/if\([$\w]+\("tengu_coral_fern",!1\)\)\{/);if(t&&t.index!==void 0){let n=`if(true){`,r=e.slice(0,t.index)+n+e.slice(t.index+t[0].length);return P(e,r,n,t.index,t.index+t[0].length),r}let n=e.match(/if\(![$\w]+\("tengu_coral_fern",!1\)\)return\s*(?:null|\[\]);/);if(n&&n.index!==void 0){let t=e.slice(0,n.index)+e.slice(n.index+n[0].length);return P(e,t,``,n.index,n.index+n[0].length),t}return console.error(`patch: sessionMemory: failed to find past sessions gate`),null},jn=e=>{let t=e.match(/(=)2000((?:.|\n){0,15}?=)12000((?:.|\n){0,20}# Session Title)/);if(!t||t.index===void 0)return console.error(`patch: sessionMemory: failed to find token limits pattern`),null;let n=t[1]+`Number(process.env.CC_SM_PER_SECTION_TOKENS??2000)`+t[2]+`Number(process.env.CM_SM_TOTAL_FILE_LIMIT??12000)`+t[3],r=t.index,i=r+t[0].length,a=e.slice(0,r)+n+e.slice(i);return P(e,a,n,r,i),a},Mn=e=>{let t=e;return t=F(t,/minimumMessageTokensToInit:1e4\b/g,`minimumMessageTokensToInit:Number(process.env.CC_SM_MINIMUM_MESSAGE_TOKENS_TO_INIT??1e4)`),t=F(t,/minimumTokensBetweenUpdate:5000\b/g,`minimumTokensBetweenUpdate:Number(process.env.CC_SM_MINIMUM_TOKENS_BETWEEN_UPDATE??5000)`),t=F(t,/toolCallsBetweenUpdates:3\b/g,`toolCallsBetweenUpdates:Number(process.env.CC_SM_TOOL_CALLS_BETWEEN_UPDATES??3)`),t===e?(console.error(`patch: sessionMemory: failed to find update thresholds patterns`),null):t},Nn=e=>{let t=kn(e);return!t||(t=An(t),!t)||(t=jn(t),!t)?null:(t=Mn(t),t)},Pn=e=>{let t=e.match(/\{([$\w]+)\(\{name:"claude-in-chrome"/);return t?t[1]:(console.error(`patch: rememberSkill: failed to find skill registration function`),null)},Fn=e=>{let t=Pn(e);if(!t)return null;let n=e.match(/(function ([$\w]+)\(.{0,500}\}function [$\w]+\(\)\{)return(\}.{0,10}[, ]([$\w]+)=`# Remember Skill)/);if(!n||n.index===void 0)return console.error(`patch: rememberSkill: failed to find injection point pattern`),null;let[r,i,a,o,s]=n,c=i+`
626
+ `;s=s.slice(0,i)+c+s.slice(i),P(e,s,c,i,i);let l=r+c.length,u=`||tweakccSummaries.has(${a}.uuid)`,d=s.slice(0,l)+u+s.slice(l);return P(s,d,u,l,l),d},_n=e=>{let t=e.match(/description:"Rename the current conversation",isEnabled:\(\)=>!1,/);if(!t)return console.error(`patch: conversationTitle: enableRenameConversationCommand: failed to find pattern`),null;if(t.index===void 0)return console.error(`patch: conversationTitle: enableRenameConversationCommand: match.index is undefined`),null;let n=`description:"Rename the current conversation",isEnabled:()=>!0,`,r=e.replace(`description:"Rename the current conversation",isEnabled:()=>!1,`,n);return r===e?(console.error(`patch: conversationTitle: enableRenameConversationCommand: replacement failed`),null):(P(e,r,n,t.index,t.index+63),r)},vn=e=>{let t=e;if(t=un(t),!t)return console.error(`patch: conversationTitle: step 1 failed (writeTitleSlashCommand)`),null;if(t=fn(t),!t)return console.error(`patch: conversationTitle: step 2 failed (writeCustomNamingFunctions)`),null;if(t=mn(t),!t)return console.error(`patch: conversationTitle: step 3 failed (writeAppendEntryInterceptor)`),null;if(t=gn(t),!t)return console.error(`patch: conversationTitle: step 4 failed (writeTweakccSummaryCheck)`),null;let n=_n(t);return n?t=n:console.log(`patch: conversationTitle: step 5 failed (enableRenameConversationCommand)`),t},yn=e=>{let t=e.match(/,[$\w]+\.createElement\([$\w]+,\{isBeforeFirstMessage:!1\}\),/);return t&&t.index!==void 0?{startIndex:t.index,endIndex:t.index+t[0].length}:null},bn=e=>{let t=yn(e);if(t){let n=e.slice(0,t.startIndex)+`,`+e.slice(t.endIndex);return P(e,n,`,`,t.startIndex,t.endIndex),n}let n=/(function ([$\w]+)\(\)\{)(?=[^}]{0,500}Apple_Terminal)/g,r;for(;(r=n.exec(e))!==null;){let t=r.index+r[0].length;if(e.slice(t,t+5e3).includes(`Welcome to Claude Code`)){let n=t,r=`return null;`,i=e.slice(0,n)+r+e.slice(n);return P(e,i,r,n,n),i}}return console.error(`patch: hideStartupBanner: failed to find startup banner component`),null},xn=e=>{let t=e.match(/if\(([$\w]+&&[$\w]+)\)[$\w]+\("tengu_external_editor_hint_shown",/);if(!t||t.index===void 0)return console.error(`patch: hideCtrlGToEdit: failed to find tengu_external_editor_hint_shown pattern`),null;let n=t[1],r=t.index+3;return{startIndex:r,endIndex:r+n.length,identifiers:[]}},Sn=e=>{let t=xn(e);if(!t)return null;let n=`false`,r=e.slice(0,t.startIndex)+n+e.slice(t.endIndex);return P(e,r,n,t.startIndex,t.endIndex),r},Cn=e=>{let t=[],n=/▛███▜|\\u259B\\u2588\\u2588\\u2588\\u259C/gi.exec(e);if(!n)return t;let r=n.index,i=Math.max(0,r-2e3),a=e.slice(i,r),o=/function ([$\w]+)\([^)]*\)\{/g,s=null,c;for(;(c=o.exec(a))!==null;)s=c;if(!s)return console.error(`patch: hideStartupClawd: failed to find inner Clawd function`),t;let l=s[1],u=/function ([$\w]+)\([^)]*\)\{/g,d,f=null;for(;(d=u.exec(e))!==null;){let t=d.index+d[0].length,n=e.slice(t,t+500),r=n.indexOf(`createElement(${l},`);if(r===-1)continue;let i=n.indexOf(`function `);if(!(i!==-1&&i<r)){f={index:d.index,length:d[0].length};break}}if(f){let e=f.index+f.length;t.push(e)}else{let e=i+s.index+s[0].length;t.push(e)}return t},wn=e=>{let t=Cn(e);if(t.length===0)return console.error(`patch: hideStartupClawd: no Clawd components found`),null;let n=[...t].sort((e,t)=>t-e),r=`return null;`,i=e;for(let e of n)i=i.slice(0,e)+r+i.slice(e);if(n.length>0){let t=n[n.length-1];P(e,i,r,t,t)}return i},Tn=e=>{let t=[`<system-reminder>`,`tengu_amber_wren`],n=null;for(let r of t){let t=r.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),i=RegExp(`=25000,([\\s\\S]{0,200})${t}`);if(n=e.match(i),n&&n.index!==void 0)break}if(!n||n.index===void 0)return console.error(`patch: increaseFileReadLimit: failed to find 25000 token limit near known anchor`),null;let r=n.index+1;return{startIndex:r,endIndex:r+5}},En=e=>{let t=Tn(e);if(!t)return null;let n=`1000000`,r=e.slice(0,t.startIndex)+n+e.slice(t.endIndex);return P(e,r,n,t.startIndex,t.endIndex),r},Dn=e=>{let t=e.match(/\{content:([$\w]+),startLine:[$\w]+\}\)\{if\(!\1\)return"";let ([$\w]+)=\1\.split\([^)]+\);/);if(t&&t.index!==void 0){let n=t[1],r=t.index+t[0].length,i=e.slice(r).match(/\}(?=function |var |let |const |[$\w]+=[$\w]+\()/);if(i&&i.index!==void 0){let t=r+i.index,a=`return ${n}`,o=e.slice(0,r)+a+e.slice(t);return P(e,o,a,r,t),o}}let n=e.match(/if\(([$\w]+)\.length>=\d+\)return`\$\{\1\}(?:→|\\u2192)\$\{([$\w]+)\}`;return`\$\{\1\.padStart\(\d+," "\)\}(?:→|\\u2192)\$\{\2\}`/);if(n&&n.index!==void 0){let t=`return ${n[2]}`,r=e.slice(0,n.index)+t+e.slice(n.index+n[0].length);return P(e,r,t,n.index,n.index+n[0].length),r}return console.error(`patch: suppressLineNumbers: failed to find line number formatter pattern`),null},On=e=>{let t=e.match(/\.createElement.{0,500},showAllInTranscript:[$\w]+,agentDefinitions:[$\w]+,onOpenRateLimitOptions:([$\w]+)/);if(!t||t.index===void 0)return console.error(`patch: suppressRateLimitOptions: failed to find onOpenRateLimitOptions pattern`),null;let n=t[1],r=t.index+t[0].length-n.length,i=r+n.length,a=`()=>{}`,o=e.slice(0,r)+a+e.slice(i);return P(e,o,a,r,i),o},kn=e=>{let t=e.match(/function [$\w]+\(\)\{return [$\w]+\("tengu_session_memory"/);if(!t||t.index===void 0)return console.log(`patch: sessionMemory: extraction gate not present (skipping; expected on CC ≥2.1.128)`),null;let n=t.index+t[0].indexOf(`{`)+1,r=`return true;`,i=e.slice(0,n)+r+e.slice(n);return P(e,i,r,n,n),i},An=e=>{let t=e.match(/if\([$\w]+\("tengu_coral_fern",!1\)\)\{/);if(t&&t.index!==void 0){let n=`if(true){`,r=e.slice(0,t.index)+n+e.slice(t.index+t[0].length);return P(e,r,n,t.index,t.index+t[0].length),r}let n=e.match(/if\(![$\w]+\("tengu_coral_fern",!1\)\)return\s*(?:null|\[\]);/);if(n&&n.index!==void 0){let t=e.slice(0,n.index)+e.slice(n.index+n[0].length);return P(e,t,``,n.index,n.index+n[0].length),t}return console.error(`patch: sessionMemory: failed to find past sessions gate`),null},jn=e=>{let t=e.match(/(=)2000((?:.|\n){0,15}?=)12000((?:.|\n){0,20}# Session Title)/);if(!t||t.index===void 0)return console.log(`patch: sessionMemory: token limits pattern not present (skipping; expected on CC ≥2.1.128)`),null;let n=t[1]+`Number(process.env.CC_SM_PER_SECTION_TOKENS??2000)`+t[2]+`Number(process.env.CM_SM_TOTAL_FILE_LIMIT??12000)`+t[3],r=t.index,i=r+t[0].length,a=e.slice(0,r)+n+e.slice(i);return P(e,a,n,r,i),a},Mn=e=>{let t=e;return t=F(t,/minimumMessageTokensToInit:1e4\b/g,`minimumMessageTokensToInit:Number(process.env.CC_SM_MINIMUM_MESSAGE_TOKENS_TO_INIT??1e4)`),t=F(t,/minimumTokensBetweenUpdate:5000\b/g,`minimumTokensBetweenUpdate:Number(process.env.CC_SM_MINIMUM_TOKENS_BETWEEN_UPDATE??5000)`),t=F(t,/toolCallsBetweenUpdates:3\b/g,`toolCallsBetweenUpdates:Number(process.env.CC_SM_TOOL_CALLS_BETWEEN_UPDATES??3)`),t===e?(console.log(`patch: sessionMemory: update threshold patterns not present (skipping; expected on CC ≥2.1.128)`),null):t},Nn=e=>{let t=e,n=kn(t);n&&(t=n);let r=An(t);if(!r)return null;t=r;let i=jn(t);i&&(t=i);let a=Mn(t);return a&&(t=a),t},Pn=e=>{let t=e.match(/\{([$\w]+)\(\{name:"claude-in-chrome"/);return t?t[1]:(console.error(`patch: rememberSkill: failed to find skill registration function`),null)},Fn=e=>{let t=Pn(e);if(!t)return null;let n=e.match(/(function ([$\w]+)\(.{0,500}\}function [$\w]+\(\)\{)return(\}.{0,10}[, ]([$\w]+)=`# Remember Skill)/);if(!n||n.index===void 0)return console.error(`patch: rememberSkill: failed to find injection point pattern`),null;let[r,i,a,o,s]=n,c=i+`
627
627
  ${t}({
628
628
  name: "remember",
629
629
  description: "Review session memories and update CLAUDE.local.md with learnings",
@@ -663,6 +663,6 @@ return _origStdoutWrite.call(process.stdout,filtered,encoding,cb);
663
663
  `);n.forEach((t,r)=>{t&&(E+=e.bgGreen.black(t)),r<n.length-1&&(E+=e.bgGreen.dim(`\\n`)+`
664
664
  `)})}else E+=e.bgGreen.black(t.value);else t.removed||(E+=e.dim(t.value));K(`
665
665
  --- Diff ---`),K(e.red(`OLD: `)+T),K(e.green(`NEW: `)+E),K(`--- End Diff ---
666
- `)},F=(e,t,n)=>{let r=[],i=t.global?t:new RegExp(t.source,t.flags+`g`),a;for(;(a=i.exec(e))!==null;)r.push({index:a.index,length:a[0].length});let o=new RegExp(t.source,t.flags.replace(`g`,``)),s=e;for(let e=r.length-1;e>=0;e--){let{index:t,length:i}=r[e],a=s,c=s.slice(t,t+i).replace(o,n);s=s.slice(0,t)+c+s.slice(t+i),P(a,s,c,t,t+i)}return s},I=e=>{let t=Array.from(e.matchAll(/[^$\w]([$\w]+)(?:\.(?:cyan|gray|green|red|yellow|ansi256|bgAnsi256|bgHex|bgRgb|hex|rgb|bold|dim|inverse|italic|strikethrough|underline)\b)+\(/g)),n={};for(let e of t){let t=e[1];n[t]=(n[t]||0)+1}let r,i=0;for(let[e,t]of Object.entries(n))t>i&&(i=t,r=e);return r},pr=e=>{let t=e.slice(0,2e3).match(/[,;]([$\w]+)=\([$\w]+,[$\w]+,[$\w]+\)=>\{[$\w]+=[$\w]+!=null\?/);if(t)return t[1];let n=e.slice(0,1e4),r=Array.from(n.matchAll(/(?:var |,)([$\w]+)=\([$\w]+,[$\w]+,[$\w]+\)=>\{/g));if(r.length>0){let e=r[0][1];for(let t of r)t[1].length<e.length&&(e=t[1]);return e}console.log(`patch: getModuleLoaderFunction: failed to find module loader function`)},mr=e=>{let t=e.match(/var ([$\w]+)=[$\w]+\(\([$\w]+\)=>\{var [$\w]+=Symbol\.for\("react\.(transitional\.)?element"\)/);if(!t){console.log(`patch: getReactModuleNameNonBun: failed to find React module name`);return}return t[1]},hr=e=>{let t=mr(e);if(!t){console.log(`^ patch: getReactModuleFunctionBun: failed to find React module name (Bun)`);return}let n=RegExp(`var ([$\\w]+)=[$\\w]+\\(\\([$\\w]+,[$\\w]+\\)=>\\{[$\\w]+\\.exports=${W(t)}\\(\\)`),r=e.match(n);if(!r){console.log(`patch: getReactModuleFunctionBun: failed to find React module function (Bun) (reactModuleNameNonBun=${t})`);return}return r[1]};let L=null,R=null;const z=e=>{if(L!=null)return L;let t=pr(e);if(!t){console.log(`^ patch: getReactVar: failed to find moduleLoader`),L=void 0;return}let n=mr(e);if(!n){console.log(`^ patch: getReactVar: failed to find reactModuleVarNonBun`),L=void 0;return}let r=RegExp(`[^$\\w]([$\\w]+)=${W(t)}\\(${W(n)}\\(\\),1\\)`),i=e.match(r);if(i)return L=i[1],L;let a=hr(e);if(!a){console.log(`^ patch: getReactVar: failed to find reactModuleFunctionBun`),L=void 0;return}let o=RegExp(`[^$\\w]([$\\w]+)=${W(t)}\\(${W(a)}\\(\\),1\\)`),s=e.match(o);if(!s){console.log(`patch: getReactVar: failed to find bunPattern (moduleLoader=${t}, reactModuleVarNonBun=${n}, reactModuleFunctionBun=${a})`),L=void 0;return}return L=s[1],L},gr=()=>{L=null},_r=e=>{let t=e.match(/import\{createRequire as ([$\w]+)\}from"node:module";/);if(!t)return;let n=t[1],r=RegExp(`var ([$\\w]+)=${W(n)}\\(import\\.meta\\.url\\)`),i=e.match(r);if(!i){console.log(`patch: findRequireFunc: failed to find require function variable (createRequireVar=${n})`);return}return i[1]},B=e=>{if(R!=null)return R;let t=_r(e);return t?(R=t,R):(R=`require`,R)},vr=()=>{R=null},yr=()=>{gr(),vr()},V=e=>{let t=e.match(/\bfunction ([$\w]+).{0,80}color:[$\w]+,backgroundColor:[$\w]+,dimColor:[$\w]+(?:=![01])?,bold:[$\w]+(?:=![01])?/);if(!t){console.log(`patch: findTextComponent: failed to find text component`);return}return t[1]},H=e=>{let t=e.match(/function ([$\w]+)\(.{0,2000}[^$\w]([$\w]+)=[$\w]+(?:\.default)?\.createElement\("ink-box".{0,500}?return \2/);if(t)return t[1];let n=e.match(/function ([$\w]+)\(.{0,200}children:[$\w]+,flexWrap:[$\w]+.{0,2000}?\.createElement\("ink-box"/);if(n)return n[1];let r=e.match(/[^$\w]([$\w]+)\.displayName="Box"/);if(r)return r[1];let i=e.match(/function ([$\w]+)\([$\w]+\)\{let [$\w]+=[$\w]+(?:\.[$\w]+)?\(\d+\).{0,3000}createElement\("ink-box"/);if(i)return i[1];console.error(`patch: findBoxComponent: failed to find Box component (neither ink-box createElement nor displayName found)`)};let U=function(e){return e.SYSTEM_PROMPTS=`System Prompts`,e.ALWAYS_APPLIED=`Always Applied`,e.MISC_CONFIGURABLE=`Misc Configurable`,e.FEATURES=`Features`,e}({});const br=[{id:`verbose-property`,name:`Verbose property`,group:U.ALWAYS_APPLIED,description:`Token counter will show (2s · ↓ 169 tokens · thinking)`},{id:`opusplan1m`,name:`Opusplan[1m] support`,group:U.ALWAYS_APPLIED,description:`Use the "Opus Plan 1M" model: Opus for planning, Sonnet 1M context for building`},{id:`thinking-block-styling`,name:`Thinking block styling`,group:U.ALWAYS_APPLIED,description:`Restore dim/gray + italic styling for thinking blocks`},{id:`fix-lsp-support`,name:`Fix LSP support`,group:U.ALWAYS_APPLIED,description:`Enable/fix nascent LSP support`},{id:`statusline-update-throttle`,name:`Statusline update throttling correction`,group:U.ALWAYS_APPLIED,description:`Statusline updates will be properly throttled instead of queued (or debounced)`},{id:`model-customizations`,name:`Model customizations`,group:U.MISC_CONFIGURABLE,description:`Access all Claude models with /model, not just latest 3`},{id:`show-more-items-in-select-menus`,name:`Show more items in select menus`,group:U.MISC_CONFIGURABLE,description:`Show 25 items in select menus instead of default 5`},{id:`context-limit`,name:`Context limit`,group:U.MISC_CONFIGURABLE,description:`Override the 200K context limit via CLAUDE_CODE_CONTEXT_LIMIT env var (set before launching CC)`},{id:`patches-applied-indication`,name:`Patches applied indication`,group:U.MISC_CONFIGURABLE,description:`Show "tweakcc patches applied" and tweakcc version inside CC`},{id:`table-format`,name:`Table format`,group:U.MISC_CONFIGURABLE,description:`Tables generated by Claude will be rendered more compactly`},{id:`themes`,name:`Themes`,group:U.MISC_CONFIGURABLE,description:`Your custom themes will be available via /theme`},{id:`thinking-verbs`,name:`Thinking verbs`,group:U.MISC_CONFIGURABLE,description:`Your custom list of thinking verbs will be cycled through`},{id:`thinker-format`,name:`Thinker format`,group:U.MISC_CONFIGURABLE,description:`Your custom format string that thinking verbs are wrapped in will be applied`},{id:`thinker-symbol-chars`,name:`Thinker symbol chars`,group:U.MISC_CONFIGURABLE,description:`Your custom thinking spinner will be rendered`},{id:`thinker-symbol-speed`,name:`Thinker symbol speed`,group:U.MISC_CONFIGURABLE,description:`The thinking spinner will play at a custom FPS`},{id:`thinker-symbol-width`,name:`Thinker symbol width`,group:U.MISC_CONFIGURABLE,description:`The thinking spinner will be in a box of custom width`},{id:`thinker-symbol-mirror`,name:`Thinker symbol mirror`,group:U.MISC_CONFIGURABLE,description:`The thinking spinner will reverse or restart when it finishes`},{id:`input-box-border`,name:`Input box border`,group:U.MISC_CONFIGURABLE,description:`Your custom styles to the main input box's border will be applied`},{id:`subagent-models`,name:`Subagent models`,group:U.MISC_CONFIGURABLE,description:`Use custom models for Plan, Explore, and General subagents`},{id:`thinking-visibility`,name:`Thinking block visibility`,group:U.MISC_CONFIGURABLE,description:`Thinking blocks outputted by the model will show without Ctrl+O`},{id:`hide-startup-banner`,name:`Hide startup banner`,group:U.MISC_CONFIGURABLE,description:`CC's startup banner with "Clawd" and release notes will be hidden`},{id:`hide-ctrl-g-to-edit`,name:`Hide Ctrl+G to edit`,group:U.MISC_CONFIGURABLE,description:`Note about using Ctrl+G to edit prompt will be hidden`},{id:`hide-startup-clawd`,name:`Hide startup Clawd`,group:U.MISC_CONFIGURABLE,description:`The "Clawd" icon on startup will be hidden for a cleaner look`},{id:`increase-file-read-limit`,name:`Increase file read limit`,group:U.MISC_CONFIGURABLE,description:`Max tokens Claude can read from a file at once will be increased`},{id:`suppress-line-numbers`,name:`Suppress line numbers`,group:U.MISC_CONFIGURABLE,description:`"1→" "2→" etc. prefixes for each line of Read output will be omitted`},{id:`suppress-rate-limit-options`,name:`Suppress rate limit options`,group:U.MISC_CONFIGURABLE,description:`/rate-limit-options won't be injected when limits are reached`},{id:`token-count-rounding`,name:`Token count rounding`,group:U.MISC_CONFIGURABLE,description:`Round displayed token counts to the nearest multiple of chosen value`},{id:`remember-skill`,name:`Remember skill`,group:U.MISC_CONFIGURABLE,description:`Register the built-in "/remember" skill to review session memories and update CLAUDE.local.md`},{id:`agents-md`,name:`AGENTS.md (and others)`,group:U.MISC_CONFIGURABLE,description:`Support AGENTS.md and others in addition to CLAUDE.md`},{id:`auto-accept-plan-mode`,name:`Auto-accept plan mode`,group:U.MISC_CONFIGURABLE,description:`Automatically accept plans without the "Ready to code?" confirmation prompt`},{id:`allow-sudo-bypass-permissions`,name:`Allow bypassing permissions with --dangerously-skip-permissions in sudo`,group:U.MISC_CONFIGURABLE,description:`Allow bypassing permissions with --dangerously-skip-permissions even when running with root/sudo privileges`},{id:`suppress-native-installer-warning`,name:`Suppress native installer warning`,group:U.MISC_CONFIGURABLE,description:`Suppress the native installer warning message at startup`},{id:`filter-scroll-escape-sequences`,name:`Filter scroll escape sequences`,group:U.MISC_CONFIGURABLE,description:`Filter out terminal escape sequences that cause unwanted scrolling`},{id:`allow-custom-agent-models`,name:`Allow custom agent models`,group:U.FEATURES,description:`Allow arbitrary model names in custom agent frontmatter (e.g. gemini-2.5-flash)`},{id:`worktree-mode`,name:`Worktree mode`,group:U.FEATURES,description:`Enable the EnterWorktree tool for isolated git worktree sessions`},{id:`session-memory`,name:`Session memory`,group:U.FEATURES,description:`Enable session memory (auto-extraction + past session search)`},{id:`toolsets`,name:`Toolsets`,group:U.FEATURES,description:`Custom toolsets will be registered`},{id:`mcp-non-blocking`,name:`MCP non-blocking`,group:U.FEATURES,description:`If you have MCP servers, CC startup will be much faster`},{id:`mcp-batch-size`,name:`MCP batch size`,group:U.FEATURES,description:`Change the number of MCP servers started in parallel`},{id:`user-message-display`,name:`User message display`,group:U.FEATURES,description:`User messages in the chat history will be styled`},{id:`input-pattern-highlighters`,name:`Input pattern highlighters`,group:U.FEATURES,description:`Custom input highlighters will be registered`},{id:`conversation-title`,name:`Conversation title`,group:U.FEATURES,description:`/title command will be created & enabled`},{id:`voice-mode`,name:`Voice mode`,group:U.FEATURES,description:`Enable /voice command for speech-to-text input (hold Space to record)`},{id:`channels-mode`,name:`Channels mode`,group:U.FEATURES,description:`Enable MCP channel notifications (--channels without allowlist or dev flag)`}],xr=()=>[...br],W=e=>e.replace(/\$/g,`\\$`),Sr=(e,t,n)=>{let r=[];for(let i of br){let a=t[i.id];if(n&&!n.includes(i.id)){r.push({id:i.id,name:i.name,group:i.group,applied:!1,skipped:!0,description:i.description});continue}if(a.condition===!1){r.push({id:i.id,name:i.name,group:i.group,applied:!1,skipped:!0,description:i.description});continue}G(`Applying patch: ${i.name}`);let o=a.fn(e),s=o===null,c=!s&&o!==e;s||(e=o),r.push({id:i.id,name:i.name,group:i.group,applied:c,failed:s,description:i.description})}return{content:e,results:r}},Cr=async(e,t,n)=>{let i,o=!1;if(t.nativeInstallationPath){await dr(t);let e=!1;try{await r.stat(X),e=!0}catch{}let n=e?X:t.nativeInstallationPath;G(`Extracting claude.js from ${e?`backup`:`native installation`}: ${n}`);let{data:c,clearBytecode:l}=await v(n,t.version);if(!c)throw Error(`Failed to extract claude.js from native installation`);o=l;let u=s.join(J,`native-claudejs-orig.js`);a.writeFileSync(u,c),G(`Saved original extracted JS from native to: ${u}`),i=c.toString(`utf8`)}else{if(await ur(t),!t.cliPath)throw Error(`cliPath is required for NPM installations`);i=await r.readFile(t.cliPath,{encoding:`utf8`})}let c=[],l=await Ot(i,t.version,void 0,n);i=l.newContent;let u=[...l.results].sort((e,t)=>e.name.localeCompare(t.name));c.push(...u);let d=e=>e.replace(/\\/g,`\\\\`).replace(/`/g,"\\`").replace(/\$/g,`\\$`),f=u.filter(e=>e.applied&&e.details).map(e=>d(`${e.name}: ${e.details}`)),p=e.settings.misc?.tableFormat??`default`,m=e.settings.misc?.showTweakccVersion??!0,h=e.settings.misc?.showPatchesApplied??!0,g=e.settings.misc?.enableModelCustomizations??!0,_={"verbose-property":{fn:e=>we(e)},"context-limit":{fn:e=>T(e),condition:!!e.settings.misc?.enableContextLimitOverride},opusplan1m:{fn:e=>je(e)},"thinking-block-styling":{fn:e=>In(e),condition:t.version==null||O(t.version,`2.1.26`)<0},"fix-lsp-support":{fn:e=>At(e)},"statusline-update-throttle":{fn:t=>Vn(t,e.settings.misc?.statuslineThrottleMs??300,e.settings.misc?.statuslineUseFixedInterval??!1),condition:e.settings.misc?.statuslineThrottleMs!=null},"patches-applied-indication":{fn:e=>Be(e,`4.0.11`,f,m,h)},"model-customizations":{fn:e=>Er(e),condition:g},"show-more-items-in-select-menus":{fn:e=>ie(e,25),condition:g},"table-format":{fn:e=>sn(e,p),condition:p!==`default`},themes:{fn:t=>oe(t,e.settings.themes),condition:!!(e.settings.themes&&e.settings.themes.length>0&&JSON.stringify(e.settings.themes)!==JSON.stringify(x.themes))},"thinking-verbs":{fn:t=>_e(t,e.settings.thinkingVerbs.verbs),condition:!!e.settings.thinkingVerbs},"thinker-format":{fn:t=>ce(t,e.settings.thinkingVerbs.format),condition:!!e.settings.thinkingVerbs},"thinker-symbol-chars":{fn:t=>de(t,e.settings.thinkingStyle.phases),condition:JSON.stringify(e.settings.thinkingStyle.phases)!==JSON.stringify(x.thinkingStyle.phases)},"thinker-symbol-speed":{fn:t=>fe(t,e.settings.thinkingStyle.updateInterval),condition:e.settings.thinkingStyle.updateInterval!==x.thinkingStyle.updateInterval&&(t.version==null||O(t.version,`2.1.27`)<0)},"thinker-symbol-width":{fn:t=>me(t,Math.max(...e.settings.thinkingStyle.phases.map(e=>e.length))+1),condition:JSON.stringify(e.settings.thinkingStyle.phases)!==JSON.stringify(x.thinkingStyle.phases)},"thinker-symbol-mirror":{fn:t=>ue(t,e.settings.thinkingStyle.reverseMirror),condition:e.settings.thinkingStyle.reverseMirror!==x.thinkingStyle.reverseMirror},"input-box-border":{fn:t=>E(t,e.settings.inputBox.removeBorder),condition:!!(e.settings.inputBox&&typeof e.settings.inputBox.removeBorder==`boolean`)},"subagent-models":{fn:t=>Ie(t,e.settings.subagentModels),condition:!!e.settings.subagentModels},"thinking-visibility":{fn:e=>Me(e),condition:e.settings.misc?.expandThinkingBlocks??!0},"hide-startup-banner":{fn:e=>bn(e),condition:!!e.settings.misc?.hideStartupBanner},"hide-ctrl-g-to-edit":{fn:e=>Sn(e),condition:!!e.settings.misc?.hideCtrlGToEdit},"hide-startup-clawd":{fn:e=>wn(e),condition:!!e.settings.misc?.hideStartupClawd},"increase-file-read-limit":{fn:e=>En(e),condition:!!e.settings.misc?.increaseFileReadLimit},"suppress-line-numbers":{fn:e=>Dn(e),condition:!!e.settings.misc?.suppressLineNumbers},"suppress-rate-limit-options":{fn:e=>On(e),condition:!!e.settings.misc?.suppressRateLimitOptions},"token-count-rounding":{fn:t=>Hn(t,e.settings.misc.tokenCountRounding),condition:!!e.settings.misc?.tokenCountRounding},"remember-skill":{fn:e=>Fn(e),condition:!!e.settings.misc?.enableRememberSkill&&!!t.version&&O(t.version,`2.1.42`)<0},"agents-md":{fn:t=>Un(t,e.settings.claudeMdAltNames),condition:!!(e.settings.claudeMdAltNames&&e.settings.claudeMdAltNames.length>0)},"auto-accept-plan-mode":{fn:e=>Kn(e),condition:!!e.settings.misc?.autoAcceptPlanMode},"allow-sudo-bypass-permissions":{fn:e=>qn(e),condition:!!e.settings.misc?.allowBypassPermissionsInSudo},"suppress-native-installer-warning":{fn:e=>Jn(e),condition:!!e.settings.misc?.suppressNativeInstallerWarning},"filter-scroll-escape-sequences":{fn:e=>Xn(e),condition:!!e.settings.misc?.filterScrollEscapeSequences},"allow-custom-agent-models":{fn:e=>Qn(e),condition:!!e.settings.misc?.allowCustomAgentModels},"worktree-mode":{fn:e=>Zn(e),condition:!!e.settings.misc?.enableWorktreeMode&&!!t.version&&O(t.version,`2.1.51`)<0},"session-memory":{fn:e=>Nn(e),condition:!!e.settings.misc?.enableSessionMemory},toolsets:{fn:t=>Xt(t,e.settings.toolsets,e.settings.defaultToolset,e.settings.planModeToolset),condition:!!(e.settings.toolsets&&e.settings.toolsets.length>0)},"mcp-non-blocking":{fn:e=>zn(e),condition:!!e.settings.misc?.mcpConnectionNonBlocking&&(t.version==null||O(t.version,`2.1.85`)<0)},"mcp-batch-size":{fn:t=>Bn(t,e.settings.misc.mcpServerBatchSize),condition:!!e.settings.misc?.mcpServerBatchSize},"user-message-display":{fn:t=>ve(t,e.settings.userMessageDisplay),condition:!!e.settings.userMessageDisplay},"input-pattern-highlighters":{fn:t=>Se(t,e.settings.inputPatternHighlighters),condition:!!(e.settings.inputPatternHighlighters&&e.settings.inputPatternHighlighters.length>0)},"conversation-title":{fn:e=>vn(e),condition:(e.settings.misc?.enableConversationTitle??!0)&&!!(t.version&&O(t.version,`2.0.64`)<0)},"voice-mode":{fn:t=>tr(t,e.settings.misc?.enableVoiceConciseOutput??!0),condition:!!e.settings.misc?.enableVoiceMode},"channels-mode":{fn:e=>sr(e),condition:!!e.settings.misc?.enableChannelsMode}},{content:b,results:S}=Sr(i,_,n);if(i=b,c.push(...S),t.nativeInstallationPath){G(`Repacking modified claude.js into native installation: ${t.nativeInstallationPath}`);let e=s.join(J,`native-claudejs-patched.js`);a.writeFileSync(e,i,`utf8`),G(`Saved patched JS from native to: ${e}`);let n=Buffer.from(i,`utf8`);await y(t.nativeInstallationPath,n,t.nativeInstallationPath,o)}else{if(!t.cliPath)throw Error(`cliPath is required for NPM installations`);await Gr(t.cliPath,i,`patch`)}return{config:await $(e=>{e.changesApplied=!0}),results:c}},wr=[{value:`claude-opus-4-6`,label:`Opus 4.6`,description:`Claude Opus 4.6 (February 2026)`},{value:`claude-sonnet-4-6`,label:`Sonnet 4.6`,description:`Claude Sonnet 4.6 (February 2026)`},{value:`claude-haiku-4-5-20251001`,label:`Haiku 4.5`,description:`Claude Haiku 4.5 (October 2025)`},{value:`claude-opus-4-5-20251101`,label:`Opus 4.5`,description:`Claude Opus 4.5 (November 2025)`},{value:`claude-sonnet-4-5-20250929`,label:`Sonnet 4.5`,description:`Claude Sonnet 4.5 (September 2025)`},{value:`claude-opus-4-1-20250805`,label:`Opus 4.1`,description:`Claude Opus 4.1 (August 2025)`},{value:`claude-opus-4-20250514`,label:`Opus 4`,description:`Claude Opus 4 (May 2025)`},{value:`claude-sonnet-4-20250514`,label:`Sonnet 4`,description:`Claude Sonnet 4 (May 2025)`},{value:`claude-3-7-sonnet-20250219`,label:`Sonnet 3.7`,description:`Claude 3.7 Sonnet (February 2025)`},{value:`claude-3-5-sonnet-20241022`,label:`Sonnet 3.5 (October)`,description:`Claude 3.5 Sonnet (October 2024)`},{value:`claude-3-5-haiku-20241022`,label:`Haiku 3.5`,description:`Claude 3.5 Haiku (October 2024)`},{value:`claude-3-5-sonnet-20240620`,label:`Sonnet 3.5 (June)`,description:`Claude 3.5 Sonnet (June 2024)`},{value:`claude-3-haiku-20240307`,label:`Haiku 3`,description:`Claude 3 Haiku (March 2024)`},{value:`claude-3-opus-20240229`,label:`Opus 3`,description:`Claude 3 Opus (February 2024)`}],Tr=e=>{let t=e.match(/ ([$\w]+)\.push\(\{value:[$\w]+,label:[$\w]+,description:"Custom model"\}\)/);if(!t||t.index===void 0)return console.error(`patch: findCustomModelListInsertionPoint: failed to find custom model push`),null;let n=t[1],r=Math.max(0,t.index-1500),i=e.slice(r,t.index),a=`(?:let|var|const) ${W(n)}=.+?;`,o=RegExp(`function [$\\w]+\\([^)]*\\)\\{${a}`,`g`),s=null,c;for(;(c=o.exec(i))!==null;)s=c;return s?{insertionIndex:r+s.index+s[0].length,modelListVar:n}:(console.error(`patch: findCustomModelListInsertionPoint: failed to find function with ${n}`),null)},Er=e=>{if(e.includes(`"value":"claude-opus-4-6"`))return console.log(`patch: modelCustomizations: custom models already present — skipping`),e;let t=Tr(e);if(!t)return null;let{insertionIndex:n,modelListVar:r}=t,i=wr.map(e=>`${r}.push(${JSON.stringify(e)});`).join(``),a=e.slice(0,n)+i+e.slice(n);return P(e,a,i,n,n),a};let Dr=!1,Or=!1,kr=!1;const Ar=()=>Dr,jr=()=>Or,Mr=()=>kr,Nr=()=>{Dr=!0},Pr=()=>{Or=!0,Dr=!0},Fr=()=>{kr=!0},G=(e,...t)=>{Ar()&&console.log(e,...t)},K=(e,...t)=>{jr()&&console.log(e,...t)};function Ir(){try{let e=u.join(d.homedir(),`.claude.json`);return JSON.parse(l.readFileSync(e,`utf8`)).theme||`dark`}catch{}return`dark`}function Lr(e){try{let t=u.join(d.homedir(),`.claude.json`),n=JSON.parse(l.readFileSync(t,`utf8`));n.theme=e,l.writeFileSync(t,JSON.stringify(n,null,2))}catch{}}function Rr(){try{let e=u.join(d.homedir(),`.claude`,`.credentials.json`);switch(JSON.parse(l.readFileSync(e,`utf8`))?.claudeAiOauth?.subscriptionType||`unknown`){case`enterprise`:return`Claude Enterprise`;case`team`:return`Claude Team`;case`max`:return`Claude Max`;case`pro`:return`Claude Pro`}}catch{}return`Claude API`}function zr(){try{let e=u.join(d.homedir(),`.claude`,`settings.json`),t=JSON.parse(l.readFileSync(e,`utf8`))?.model||`default`;if(t===`opus`)return`Opus 4.5`;let n=wr.find(e=>e.value===t);if(n)return n.label}catch{}return`Opus 4.5`}function Br(e){process.platform===`win32`?f.spawn(`explorer`,[e],{detached:!0,stdio:`ignore`}).unref():process.platform===`darwin`?f.spawn(`open`,[e],{detached:!0,stdio:`ignore`}).unref():f.spawn(`xdg-open`,[e],{detached:!0,stdio:`ignore`}).unref()}function Vr(e){if(process.platform===`win32`)f.spawn(`explorer`,[`/select,`,e],{detached:!0,stdio:`ignore`}).unref();else if(process.platform===`darwin`)f.spawn(`open`,[`-R`,e],{detached:!0,stdio:`ignore`}).unref();else{let t=u.dirname(e);f.spawn(`xdg-open`,[t],{detached:!0,stdio:`ignore`}).unref()}}function Hr(e){if(!e||typeof e!=`string`)return!1;let t=e.trim();if(/^#([a-fA-F0-9]{3}|[a-fA-F0-9]{6})$/.test(t))return!0;if(/^rgb\(\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*\d{1,3}\s*\)$/.test(t)){let e=t.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);if(e){let[,t,n,r]=e;return parseInt(t)<=255&&parseInt(n)<=255&&parseInt(r)<=255}}if(/^hsl\(\s*\d{1,3}\s*,\s*\d{1,3}%\s*,\s*\d{1,3}%\s*\)$/.test(t)){let e=t.match(/hsl\((\d+),\s*(\d+)%,\s*(\d+)%\)/);if(e){let[,t,n,r]=e;return parseInt(t)<=360&&parseInt(n)<=100&&parseInt(r)<=100}}return!1}function Ur(e){if(!Hr(e))return e;let t=e.trim();if(t.startsWith(`rgb(`))return t;if(t.startsWith(`#`)){let e=t.slice(1);return e.length===3&&(e=e.split(``).map(e=>e+e).join(``)),`rgb(${parseInt(e.slice(0,2),16)},${parseInt(e.slice(2,4),16)},${parseInt(e.slice(4,6),16)})`}if(t.startsWith(`hsl(`)){let e=t.match(/hsl\((\d+),\s*(\d+)%,\s*(\d+)%\)/);if(e){let t=parseInt(e[1])/360,n=parseInt(e[2])/100,r=parseInt(e[3])/100,i=(e,t,n)=>(n<0&&(n+=1),n>1&&--n,n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e),a=r<.5?r*(1+n):r+n-r*n,o=2*r-a;return`rgb(${Math.round(i(o,a,t+1/3)*255)},${Math.round(i(o,a,t)*255)},${Math.round(i(o,a,t-1/3)*255)})`}}return e}async function Wr(e,t=`sha256`,n=64*1024){return new Promise((r,i)=>{let a=p.createHash(t),o=l.createReadStream(e,{highWaterMark:n});o.on(`data`,e=>{a.update(e)}),o.on(`end`,()=>{r(a.digest(`hex`))}),o.on(`error`,e=>{i(e)})})}async function Gr(e,t,n=`replace`){let r=493;try{r=(await i.stat(e)).mode,G(`[${n}] Original file mode for ${e}: ${(r&511).toString(8)}`)}catch(t){G(`[${n}] Could not stat ${e} (error: ${t}), using default mode 755`)}try{await i.unlink(e),G(`[${n}] Unlinked ${e} to break hard links`)}catch(t){G(`[${n}] Could not unlink ${e}: ${t}`)}await i.writeFile(e,t),await i.chmod(e,r),G(`[${n}] Restored permissions to ${(r&511).toString(8)}`)}async function Kr(e){try{return await i.stat(e),!0}catch(e){if(e instanceof Error&&`code`in e&&(e.code===`ENOENT`||e.code===`ENOTDIR`||e.code===`EACCES`||e.code===`EPERM`))return!1;throw e}}const qr=e=>e.startsWith(`~`)?u.join(d.homedir(),e.slice(1)):e,Jr=(e,t)=>{let n=e=>{let t=e.split(`.`).map(Number);return[t[0]||0,t[1]||0,t[2]||0]},r=n(e),i=n(t);return r[0]===i[0]?r[1]===i[1]?r[2]-i[2]:r[1]-i[1]:r[0]-i[0]},Yr=e=>{let t=e.toString(),n=t.lastIndexOf(`/`);return`new RegExp(${JSON.stringify(t.substring(1,n))}, ${JSON.stringify(t.substring(n+1))})`};function q(e,t){if(e==null)return t;if(typeof t!=`object`||!t)return e;if(Array.isArray(t))return Array.isArray(e)?e:t;let n={...e};for(let e of Object.keys(t)){let r=t[e];e in n?typeof r==`object`&&r&&!Array.isArray(r)&&(n[e]=q(n[e],r)):n[e]=r}return n}const Xr=e=>{let t=e?.settings?.userMessageDisplay;if(t?.prefix){let n=t;e.settings.userMessageDisplay={format:(n.prefix?.format||``)+(n.message?.format||`{}`),styling:[...n.prefix?.styling||[],...n.message?.styling||[]],foregroundColor:n.message?.foregroundColor===`rgb(0,0,0)`?`default`:n.message?.foregroundColor||n.prefix?.foregroundColor||`default`,backgroundColor:n.message?.backgroundColor===`rgb(0,0,0)`?null:n.message?.backgroundColor||n.prefix?.backgroundColor||null,borderStyle:`none`,borderColor:`rgb(255,255,255)`,paddingX:0,paddingY:0,fitBoxToContent:!1}}t&&!(`borderStyle`in t)&&(e.settings.userMessageDisplay.borderStyle=`none`,e.settings.userMessageDisplay.borderColor=`rgb(255,255,255)`,e.settings.userMessageDisplay.paddingX=0,e.settings.userMessageDisplay.paddingY=0,e.settings.userMessageDisplay.fitBoxToContent=!1),t&&`padding`in t&&!(`paddingX`in t)&&(e.settings.userMessageDisplay.paddingX=t.padding||0,e.settings.userMessageDisplay.paddingY=0,delete t.padding),t&&!(`fitBoxToContent`in t)&&(e.settings.userMessageDisplay.fitBoxToContent=!1)},Zr=e=>{let t=e?.settings?.misc;t&&`hideCtrlGToEditPrompt`in t&&(t.hideCtrlGToEdit=t.hideCtrlGToEditPrompt,delete t.hideCtrlGToEditPrompt)};async function Qr(){try{let e=await i.readFile(Y,`utf8`),t=JSON.parse(e);return Object.hasOwn(t,`ccInstallationDir`)?(t.ccInstallationDir&&!t.ccInstallationPath&&(t.ccInstallationPath=c.join(t.ccInstallationDir,`cli.js`)),delete t.ccInstallationDir,t.lastModified=new Date().toISOString(),await ri(),await i.writeFile(Y,JSON.stringify(t,null,2)),!0):!1}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return!1;throw e}}const $r=()=>{let e=process.env.TWEAKCC_CONFIG_DIR?.trim();if(e&&e.length>0)return qr(e);let n=c.join(t.homedir(),`.tweakcc`),r=c.join(t.homedir(),`.claude`,`tweakcc`),i=process.env.XDG_CONFIG_HOME;try{if(o.existsSync(n))return n}catch(e){G(`Failed to check if ${n} exists: ${e}`)}try{if(o.existsSync(r))return r}catch(e){G(`Failed to check if ${r} exists: ${e}`)}return i?c.join(i,`tweakcc`):n},J=$r(),Y=c.join(J,`config.json`),ei=c.join(J,`cli.js.backup`),X=c.join(J,`native-binary.backup`),Z=c.join(J,`system-prompts`),ti=c.join(J,`prompt-data-cache`),ni=()=>{let n=J,r=t.homedir(),i=[c.join(r,`.tweakcc`),c.join(r,`.claude`,`tweakcc`),process.env.XDG_CONFIG_HOME?c.join(process.env.XDG_CONFIG_HOME,`tweakcc`):null].filter(e=>e!==null).filter(e=>{try{return o.existsSync(e)&&e!==n}catch{return!1}});i.length>0&&(console.warn(e.yellow(`
666
+ `)},F=(e,t,n)=>{let r=[],i=t.global?t:new RegExp(t.source,t.flags+`g`),a;for(;(a=i.exec(e))!==null;)r.push({index:a.index,length:a[0].length});let o=new RegExp(t.source,t.flags.replace(`g`,``)),s=e;for(let e=r.length-1;e>=0;e--){let{index:t,length:i}=r[e],a=s,c=s.slice(t,t+i).replace(o,n);s=s.slice(0,t)+c+s.slice(t+i),P(a,s,c,t,t+i)}return s},I=e=>{let t=Array.from(e.matchAll(/[^$\w]([$\w]+)(?:\.(?:cyan|gray|green|red|yellow|ansi256|bgAnsi256|bgHex|bgRgb|hex|rgb|bold|dim|inverse|italic|strikethrough|underline)\b)+\(/g)),n={};for(let e of t){let t=e[1];n[t]=(n[t]||0)+1}let r,i=0;for(let[e,t]of Object.entries(n))t>i&&(i=t,r=e);return r},pr=e=>{let t=e.slice(0,5e3).match(/[,;]([$\w]+)=\([$\w]+,[$\w]+,[$\w]+\)=>\{(?:var |let )?[$\w]+=[$\w]+!=null(?:\?|&&)/);if(t)return t[1];let n=e.slice(0,1e4),r=Array.from(n.matchAll(/(?:var |,)([$\w]+)=\([$\w]+,[$\w]+,[$\w]+\)=>\{/g));if(r.length>0){let e=r[0][1];for(let t of r)t[1].length<e.length&&(e=t[1]);return e}console.log(`patch: getModuleLoaderFunction: failed to find module loader function`)},mr=e=>{let t=e.match(/var ([$\w]+)=[$\w]+\(\([$\w]+\)=>\{var [$\w]+=Symbol\.for\("react\.(transitional\.)?element"\)/);if(!t){console.log(`patch: getReactModuleNameNonBun: failed to find React module name`);return}return t[1]},hr=e=>{let t=mr(e);if(!t){console.log(`^ patch: getReactModuleFunctionBun: failed to find React module name (Bun)`);return}let n=RegExp(`var ([$\\w]+)=[$\\w]+\\(\\([$\\w]+,[$\\w]+\\)=>\\{[$\\w]+\\.exports=${W(t)}\\(\\)`),r=e.match(n);if(!r){console.log(`patch: getReactModuleFunctionBun: failed to find React module function (Bun) (reactModuleNameNonBun=${t})`);return}return r[1]};let L=null,R=null;const z=e=>{if(L!=null)return L;let t=pr(e);if(!t){console.log(`^ patch: getReactVar: failed to find moduleLoader`),L=void 0;return}let n=mr(e);if(!n){console.log(`^ patch: getReactVar: failed to find reactModuleVarNonBun`),L=void 0;return}let r=RegExp(`[^$\\w]([$\\w]+)=${W(t)}\\(${W(n)}\\(\\),1\\)`),i=e.match(r);if(i)return L=i[1],L;let a=hr(e);if(!a){console.log(`^ patch: getReactVar: failed to find reactModuleFunctionBun`),L=void 0;return}let o=RegExp(`[^$\\w]([$\\w]+)=${W(t)}\\(${W(a)}\\(\\),1\\)`),s=e.match(o);if(!s){console.log(`patch: getReactVar: failed to find bunPattern (moduleLoader=${t}, reactModuleVarNonBun=${n}, reactModuleFunctionBun=${a})`),L=void 0;return}return L=s[1],L},gr=()=>{L=null},_r=e=>{let t=e.match(/import\{createRequire as ([$\w]+)\}from"node:module";/);if(!t)return;let n=t[1],r=RegExp(`var ([$\\w]+)=${W(n)}\\(import\\.meta\\.url\\)`),i=e.match(r);if(!i){console.log(`patch: findRequireFunc: failed to find require function variable (createRequireVar=${n})`);return}return i[1]},B=e=>{if(R!=null)return R;let t=_r(e);return t?(R=t,R):(R=`require`,R)},vr=()=>{R=null},yr=()=>{gr(),vr()},V=e=>{let t=e.match(/\bfunction ([$\w]+).{0,80}color:[$\w]+,backgroundColor:[$\w]+,dimColor:[$\w]+(?:=![01])?,bold:[$\w]+(?:=![01])?/);if(!t){console.log(`patch: findTextComponent: failed to find text component`);return}return t[1]},H=e=>{let t=e.match(/function ([$\w]+)\(.{0,2000}[^$\w]([$\w]+)=[$\w]+(?:\.default)?\.createElement\("ink-box".{0,500}?return \2/);if(t)return t[1];let n=e.match(/function ([$\w]+)\(.{0,200}children:[$\w]+,flexWrap:[$\w]+.{0,2000}?\.createElement\("ink-box"/);if(n)return n[1];let r=e.match(/[^$\w]([$\w]+)\.displayName="Box"/);if(r)return r[1];let i=e.match(/function ([$\w]+)\([$\w]+\)\{let [$\w]+=[$\w]+(?:\.[$\w]+)?\(\d+\).{0,3000}createElement\("ink-box"/);if(i)return i[1];let a=e.match(/function ([$\w]+)\(\{children:[$\w]+,ref:[$\w]+,tabIndex:[$\w]+,autoFocus:[$\w]+/);if(a)return a[1];console.error(`patch: findBoxComponent: failed to find Box component (neither ink-box createElement nor displayName found)`)};let U=function(e){return e.SYSTEM_PROMPTS=`System Prompts`,e.ALWAYS_APPLIED=`Always Applied`,e.MISC_CONFIGURABLE=`Misc Configurable`,e.FEATURES=`Features`,e}({});const br=[{id:`verbose-property`,name:`Verbose property`,group:U.ALWAYS_APPLIED,description:`Token counter will show (2s · ↓ 169 tokens · thinking)`},{id:`opusplan1m`,name:`Opusplan[1m] support`,group:U.ALWAYS_APPLIED,description:`Use the "Opus Plan 1M" model: Opus for planning, Sonnet 1M context for building`},{id:`thinking-block-styling`,name:`Thinking block styling`,group:U.ALWAYS_APPLIED,description:`Restore dim/gray + italic styling for thinking blocks`},{id:`fix-lsp-support`,name:`Fix LSP support`,group:U.ALWAYS_APPLIED,description:`Enable/fix nascent LSP support`},{id:`statusline-update-throttle`,name:`Statusline update throttling correction`,group:U.ALWAYS_APPLIED,description:`Statusline updates will be properly throttled instead of queued (or debounced)`},{id:`model-customizations`,name:`Model customizations`,group:U.MISC_CONFIGURABLE,description:`Access all Claude models with /model, not just latest 3`},{id:`show-more-items-in-select-menus`,name:`Show more items in select menus`,group:U.MISC_CONFIGURABLE,description:`Show 25 items in select menus instead of default 5`},{id:`context-limit`,name:`Context limit`,group:U.MISC_CONFIGURABLE,description:`Override the 200K context limit via CLAUDE_CODE_CONTEXT_LIMIT env var (set before launching CC)`},{id:`patches-applied-indication`,name:`Patches applied indication`,group:U.MISC_CONFIGURABLE,description:`Show "tweakcc patches applied" and tweakcc version inside CC`},{id:`table-format`,name:`Table format`,group:U.MISC_CONFIGURABLE,description:`Tables generated by Claude will be rendered more compactly`},{id:`themes`,name:`Themes`,group:U.MISC_CONFIGURABLE,description:`Your custom themes will be available via /theme`},{id:`thinking-verbs`,name:`Thinking verbs`,group:U.MISC_CONFIGURABLE,description:`Your custom list of thinking verbs will be cycled through`},{id:`thinker-format`,name:`Thinker format`,group:U.MISC_CONFIGURABLE,description:`Your custom format string that thinking verbs are wrapped in will be applied`},{id:`thinker-symbol-chars`,name:`Thinker symbol chars`,group:U.MISC_CONFIGURABLE,description:`Your custom thinking spinner will be rendered`},{id:`thinker-symbol-speed`,name:`Thinker symbol speed`,group:U.MISC_CONFIGURABLE,description:`The thinking spinner will play at a custom FPS`},{id:`thinker-symbol-width`,name:`Thinker symbol width`,group:U.MISC_CONFIGURABLE,description:`The thinking spinner will be in a box of custom width`},{id:`thinker-symbol-mirror`,name:`Thinker symbol mirror`,group:U.MISC_CONFIGURABLE,description:`The thinking spinner will reverse or restart when it finishes`},{id:`input-box-border`,name:`Input box border`,group:U.MISC_CONFIGURABLE,description:`Your custom styles to the main input box's border will be applied`},{id:`subagent-models`,name:`Subagent models`,group:U.MISC_CONFIGURABLE,description:`Use custom models for Plan, Explore, and General subagents`},{id:`thinking-visibility`,name:`Thinking block visibility`,group:U.MISC_CONFIGURABLE,description:`Thinking blocks outputted by the model will show without Ctrl+O`},{id:`hide-startup-banner`,name:`Hide startup banner`,group:U.MISC_CONFIGURABLE,description:`CC's startup banner with "Clawd" and release notes will be hidden`},{id:`hide-ctrl-g-to-edit`,name:`Hide Ctrl+G to edit`,group:U.MISC_CONFIGURABLE,description:`Note about using Ctrl+G to edit prompt will be hidden`},{id:`hide-startup-clawd`,name:`Hide startup Clawd`,group:U.MISC_CONFIGURABLE,description:`The "Clawd" icon on startup will be hidden for a cleaner look`},{id:`increase-file-read-limit`,name:`Increase file read limit`,group:U.MISC_CONFIGURABLE,description:`Max tokens Claude can read from a file at once will be increased`},{id:`suppress-line-numbers`,name:`Suppress line numbers`,group:U.MISC_CONFIGURABLE,description:`"1→" "2→" etc. prefixes for each line of Read output will be omitted`},{id:`suppress-rate-limit-options`,name:`Suppress rate limit options`,group:U.MISC_CONFIGURABLE,description:`/rate-limit-options won't be injected when limits are reached`},{id:`token-count-rounding`,name:`Token count rounding`,group:U.MISC_CONFIGURABLE,description:`Round displayed token counts to the nearest multiple of chosen value`},{id:`remember-skill`,name:`Remember skill`,group:U.MISC_CONFIGURABLE,description:`Register the built-in "/remember" skill to review session memories and update CLAUDE.local.md`},{id:`agents-md`,name:`AGENTS.md (and others)`,group:U.MISC_CONFIGURABLE,description:`Support AGENTS.md and others in addition to CLAUDE.md`},{id:`auto-accept-plan-mode`,name:`Auto-accept plan mode`,group:U.MISC_CONFIGURABLE,description:`Automatically accept plans without the "Ready to code?" confirmation prompt`},{id:`allow-sudo-bypass-permissions`,name:`Allow bypassing permissions with --dangerously-skip-permissions in sudo`,group:U.MISC_CONFIGURABLE,description:`Allow bypassing permissions with --dangerously-skip-permissions even when running with root/sudo privileges`},{id:`suppress-native-installer-warning`,name:`Suppress native installer warning`,group:U.MISC_CONFIGURABLE,description:`Suppress the native installer warning message at startup`},{id:`filter-scroll-escape-sequences`,name:`Filter scroll escape sequences`,group:U.MISC_CONFIGURABLE,description:`Filter out terminal escape sequences that cause unwanted scrolling`},{id:`allow-custom-agent-models`,name:`Allow custom agent models`,group:U.FEATURES,description:`Allow arbitrary model names in custom agent frontmatter (e.g. gemini-2.5-flash)`},{id:`worktree-mode`,name:`Worktree mode`,group:U.FEATURES,description:`Enable the EnterWorktree tool for isolated git worktree sessions`},{id:`session-memory`,name:`Session memory`,group:U.FEATURES,description:`Enable session memory (auto-extraction + past session search)`},{id:`toolsets`,name:`Toolsets`,group:U.FEATURES,description:`Custom toolsets will be registered`},{id:`mcp-non-blocking`,name:`MCP non-blocking`,group:U.FEATURES,description:`If you have MCP servers, CC startup will be much faster`},{id:`mcp-batch-size`,name:`MCP batch size`,group:U.FEATURES,description:`Change the number of MCP servers started in parallel`},{id:`user-message-display`,name:`User message display`,group:U.FEATURES,description:`User messages in the chat history will be styled`},{id:`input-pattern-highlighters`,name:`Input pattern highlighters`,group:U.FEATURES,description:`Custom input highlighters will be registered`},{id:`conversation-title`,name:`Conversation title`,group:U.FEATURES,description:`/title command will be created & enabled`},{id:`voice-mode`,name:`Voice mode`,group:U.FEATURES,description:`Enable /voice command for speech-to-text input (hold Space to record)`},{id:`channels-mode`,name:`Channels mode`,group:U.FEATURES,description:`Enable MCP channel notifications (--channels without allowlist or dev flag)`}],xr=()=>[...br],W=e=>e.replace(/\$/g,`\\$`),Sr=(e,t,n)=>{let r=[];for(let i of br){let a=t[i.id];if(n&&!n.includes(i.id)){r.push({id:i.id,name:i.name,group:i.group,applied:!1,skipped:!0,description:i.description});continue}if(a.condition===!1){r.push({id:i.id,name:i.name,group:i.group,applied:!1,skipped:!0,description:i.description});continue}G(`Applying patch: ${i.name}`);let o=a.fn(e),s=o===null,c=!s&&o!==e;s||(e=o),r.push({id:i.id,name:i.name,group:i.group,applied:c,failed:s,description:i.description})}return{content:e,results:r}},Cr=async(e,t,n)=>{let i,o=!1;if(t.nativeInstallationPath){await dr(t);let e=!1;try{await r.stat(X),e=!0}catch{}let n=e?X:t.nativeInstallationPath;G(`Extracting claude.js from ${e?`backup`:`native installation`}: ${n}`);let{data:c,clearBytecode:l}=await v(n,t.version);if(!c)throw Error(`Failed to extract claude.js from native installation`);o=l;let u=s.join(J,`native-claudejs-orig.js`);a.writeFileSync(u,c),G(`Saved original extracted JS from native to: ${u}`),i=c.toString(`utf8`)}else{if(await ur(t),!t.cliPath)throw Error(`cliPath is required for NPM installations`);i=await r.readFile(t.cliPath,{encoding:`utf8`})}let c=[],l=await Ot(i,t.version,void 0,n);i=l.newContent;let u=[...l.results].sort((e,t)=>e.name.localeCompare(t.name));c.push(...u);let d=e=>e.replace(/\\/g,`\\\\`).replace(/`/g,"\\`").replace(/\$/g,`\\$`),f=u.filter(e=>e.applied&&e.details).map(e=>d(`${e.name}: ${e.details}`)),p=e.settings.misc?.tableFormat??`default`,m=e.settings.misc?.showTweakccVersion??!0,h=e.settings.misc?.showPatchesApplied??!0,g=e.settings.misc?.enableModelCustomizations??!0,_={"verbose-property":{fn:e=>we(e)},"context-limit":{fn:e=>T(e),condition:!!e.settings.misc?.enableContextLimitOverride},opusplan1m:{fn:e=>je(e)},"thinking-block-styling":{fn:e=>In(e),condition:t.version==null||O(t.version,`2.1.26`)<0},"fix-lsp-support":{fn:e=>At(e)},"statusline-update-throttle":{fn:t=>Vn(t,e.settings.misc?.statuslineThrottleMs??300,e.settings.misc?.statuslineUseFixedInterval??!1),condition:e.settings.misc?.statuslineThrottleMs!=null},"patches-applied-indication":{fn:e=>Be(e,`4.0.11`,f,m,h)},"model-customizations":{fn:e=>Er(e),condition:g},"show-more-items-in-select-menus":{fn:e=>ie(e,25),condition:g},"table-format":{fn:e=>sn(e,p),condition:p!==`default`},themes:{fn:t=>oe(t,e.settings.themes),condition:!!(e.settings.themes&&e.settings.themes.length>0&&JSON.stringify(e.settings.themes)!==JSON.stringify(x.themes))},"thinking-verbs":{fn:t=>_e(t,e.settings.thinkingVerbs.verbs),condition:!!e.settings.thinkingVerbs},"thinker-format":{fn:t=>ce(t,e.settings.thinkingVerbs.format),condition:!!e.settings.thinkingVerbs},"thinker-symbol-chars":{fn:t=>de(t,e.settings.thinkingStyle.phases),condition:JSON.stringify(e.settings.thinkingStyle.phases)!==JSON.stringify(x.thinkingStyle.phases)},"thinker-symbol-speed":{fn:t=>fe(t,e.settings.thinkingStyle.updateInterval),condition:e.settings.thinkingStyle.updateInterval!==x.thinkingStyle.updateInterval&&(t.version==null||O(t.version,`2.1.27`)<0)},"thinker-symbol-width":{fn:t=>me(t,Math.max(...e.settings.thinkingStyle.phases.map(e=>e.length))+1),condition:JSON.stringify(e.settings.thinkingStyle.phases)!==JSON.stringify(x.thinkingStyle.phases)},"thinker-symbol-mirror":{fn:t=>ue(t,e.settings.thinkingStyle.reverseMirror),condition:e.settings.thinkingStyle.reverseMirror!==x.thinkingStyle.reverseMirror},"input-box-border":{fn:t=>E(t,e.settings.inputBox.removeBorder),condition:!!(e.settings.inputBox&&typeof e.settings.inputBox.removeBorder==`boolean`)},"subagent-models":{fn:t=>Ie(t,e.settings.subagentModels),condition:!!e.settings.subagentModels},"thinking-visibility":{fn:e=>Me(e),condition:e.settings.misc?.expandThinkingBlocks??!0},"hide-startup-banner":{fn:e=>bn(e),condition:!!e.settings.misc?.hideStartupBanner},"hide-ctrl-g-to-edit":{fn:e=>Sn(e),condition:!!e.settings.misc?.hideCtrlGToEdit},"hide-startup-clawd":{fn:e=>wn(e),condition:!!e.settings.misc?.hideStartupClawd},"increase-file-read-limit":{fn:e=>En(e),condition:!!e.settings.misc?.increaseFileReadLimit},"suppress-line-numbers":{fn:e=>Dn(e),condition:!!e.settings.misc?.suppressLineNumbers},"suppress-rate-limit-options":{fn:e=>On(e),condition:!!e.settings.misc?.suppressRateLimitOptions},"token-count-rounding":{fn:t=>Hn(t,e.settings.misc.tokenCountRounding),condition:!!e.settings.misc?.tokenCountRounding},"remember-skill":{fn:e=>Fn(e),condition:!!e.settings.misc?.enableRememberSkill&&!!t.version&&O(t.version,`2.1.42`)<0},"agents-md":{fn:t=>Un(t,e.settings.claudeMdAltNames),condition:!!(e.settings.claudeMdAltNames&&e.settings.claudeMdAltNames.length>0)},"auto-accept-plan-mode":{fn:e=>Kn(e),condition:!!e.settings.misc?.autoAcceptPlanMode},"allow-sudo-bypass-permissions":{fn:e=>qn(e),condition:!!e.settings.misc?.allowBypassPermissionsInSudo},"suppress-native-installer-warning":{fn:e=>Jn(e),condition:!!e.settings.misc?.suppressNativeInstallerWarning},"filter-scroll-escape-sequences":{fn:e=>Xn(e),condition:!!e.settings.misc?.filterScrollEscapeSequences},"allow-custom-agent-models":{fn:e=>Qn(e),condition:!!e.settings.misc?.allowCustomAgentModels},"worktree-mode":{fn:e=>Zn(e),condition:!!e.settings.misc?.enableWorktreeMode&&!!t.version&&O(t.version,`2.1.51`)<0},"session-memory":{fn:e=>Nn(e),condition:!!e.settings.misc?.enableSessionMemory},toolsets:{fn:t=>Xt(t,e.settings.toolsets,e.settings.defaultToolset,e.settings.planModeToolset),condition:!!(e.settings.toolsets&&e.settings.toolsets.length>0)},"mcp-non-blocking":{fn:e=>zn(e),condition:!!e.settings.misc?.mcpConnectionNonBlocking&&(t.version==null||O(t.version,`2.1.85`)<0)},"mcp-batch-size":{fn:t=>Bn(t,e.settings.misc.mcpServerBatchSize),condition:!!e.settings.misc?.mcpServerBatchSize},"user-message-display":{fn:t=>ve(t,e.settings.userMessageDisplay),condition:!!e.settings.userMessageDisplay},"input-pattern-highlighters":{fn:t=>Se(t,e.settings.inputPatternHighlighters),condition:!!(e.settings.inputPatternHighlighters&&e.settings.inputPatternHighlighters.length>0)},"conversation-title":{fn:e=>vn(e),condition:(e.settings.misc?.enableConversationTitle??!0)&&!!(t.version&&O(t.version,`2.0.64`)<0)},"voice-mode":{fn:t=>tr(t,e.settings.misc?.enableVoiceConciseOutput??!0),condition:!!e.settings.misc?.enableVoiceMode},"channels-mode":{fn:e=>sr(e),condition:!!e.settings.misc?.enableChannelsMode}},{content:b,results:S}=Sr(i,_,n);if(i=b,c.push(...S),t.nativeInstallationPath){G(`Repacking modified claude.js into native installation: ${t.nativeInstallationPath}`);let e=s.join(J,`native-claudejs-patched.js`);a.writeFileSync(e,i,`utf8`),G(`Saved patched JS from native to: ${e}`);let n=Buffer.from(i,`utf8`);await y(t.nativeInstallationPath,n,t.nativeInstallationPath,o)}else{if(!t.cliPath)throw Error(`cliPath is required for NPM installations`);await Gr(t.cliPath,i,`patch`)}return{config:await $(e=>{e.changesApplied=!0}),results:c}},wr=[{value:`claude-opus-4-6`,label:`Opus 4.6`,description:`Claude Opus 4.6 (February 2026)`},{value:`claude-sonnet-4-6`,label:`Sonnet 4.6`,description:`Claude Sonnet 4.6 (February 2026)`},{value:`claude-haiku-4-5-20251001`,label:`Haiku 4.5`,description:`Claude Haiku 4.5 (October 2025)`},{value:`claude-opus-4-5-20251101`,label:`Opus 4.5`,description:`Claude Opus 4.5 (November 2025)`},{value:`claude-sonnet-4-5-20250929`,label:`Sonnet 4.5`,description:`Claude Sonnet 4.5 (September 2025)`},{value:`claude-opus-4-1-20250805`,label:`Opus 4.1`,description:`Claude Opus 4.1 (August 2025)`},{value:`claude-opus-4-20250514`,label:`Opus 4`,description:`Claude Opus 4 (May 2025)`},{value:`claude-sonnet-4-20250514`,label:`Sonnet 4`,description:`Claude Sonnet 4 (May 2025)`},{value:`claude-3-7-sonnet-20250219`,label:`Sonnet 3.7`,description:`Claude 3.7 Sonnet (February 2025)`},{value:`claude-3-5-sonnet-20241022`,label:`Sonnet 3.5 (October)`,description:`Claude 3.5 Sonnet (October 2024)`},{value:`claude-3-5-haiku-20241022`,label:`Haiku 3.5`,description:`Claude 3.5 Haiku (October 2024)`},{value:`claude-3-5-sonnet-20240620`,label:`Sonnet 3.5 (June)`,description:`Claude 3.5 Sonnet (June 2024)`},{value:`claude-3-haiku-20240307`,label:`Haiku 3`,description:`Claude 3 Haiku (March 2024)`},{value:`claude-3-opus-20240229`,label:`Opus 3`,description:`Claude 3 Opus (February 2024)`}],Tr=e=>{let t=e.match(/ ([$\w]+)\.push\(\{value:[$\w]+,label:[$\w]+,description:"Custom model"\}\)/);if(!t||t.index===void 0)return console.error(`patch: findCustomModelListInsertionPoint: failed to find custom model push`),null;let n=t[1],r=Math.max(0,t.index-1500),i=e.slice(r,t.index),a=`(?:let|var|const) ${W(n)}=.+?;`,o=RegExp(`function [$\\w]+\\([^)]*\\)\\{${a}`,`g`),s=null,c;for(;(c=o.exec(i))!==null;)s=c;return s?{insertionIndex:r+s.index+s[0].length,modelListVar:n}:(console.error(`patch: findCustomModelListInsertionPoint: failed to find function with ${n}`),null)},Er=e=>{if(e.includes(`"value":"claude-opus-4-6"`))return console.log(`patch: modelCustomizations: custom models already present — skipping`),e;let t=Tr(e);if(!t)return null;let{insertionIndex:n,modelListVar:r}=t,i=wr.map(e=>`${r}.push(${JSON.stringify(e)});`).join(``),a=e.slice(0,n)+i+e.slice(n);return P(e,a,i,n,n),a};let Dr=!1,Or=!1,kr=!1;const Ar=()=>Dr,jr=()=>Or,Mr=()=>kr,Nr=()=>{Dr=!0},Pr=()=>{Or=!0,Dr=!0},Fr=()=>{kr=!0},G=(e,...t)=>{Ar()&&console.log(e,...t)},K=(e,...t)=>{jr()&&console.log(e,...t)};function Ir(){try{let e=u.join(d.homedir(),`.claude.json`);return JSON.parse(l.readFileSync(e,`utf8`)).theme||`dark`}catch{}return`dark`}function Lr(e){try{let t=u.join(d.homedir(),`.claude.json`),n=JSON.parse(l.readFileSync(t,`utf8`));n.theme=e,l.writeFileSync(t,JSON.stringify(n,null,2))}catch{}}function Rr(){try{let e=u.join(d.homedir(),`.claude`,`.credentials.json`);switch(JSON.parse(l.readFileSync(e,`utf8`))?.claudeAiOauth?.subscriptionType||`unknown`){case`enterprise`:return`Claude Enterprise`;case`team`:return`Claude Team`;case`max`:return`Claude Max`;case`pro`:return`Claude Pro`}}catch{}return`Claude API`}function zr(){try{let e=u.join(d.homedir(),`.claude`,`settings.json`),t=JSON.parse(l.readFileSync(e,`utf8`))?.model||`default`;if(t===`opus`)return`Opus 4.5`;let n=wr.find(e=>e.value===t);if(n)return n.label}catch{}return`Opus 4.5`}function Br(e){process.platform===`win32`?f.spawn(`explorer`,[e],{detached:!0,stdio:`ignore`}).unref():process.platform===`darwin`?f.spawn(`open`,[e],{detached:!0,stdio:`ignore`}).unref():f.spawn(`xdg-open`,[e],{detached:!0,stdio:`ignore`}).unref()}function Vr(e){if(process.platform===`win32`)f.spawn(`explorer`,[`/select,`,e],{detached:!0,stdio:`ignore`}).unref();else if(process.platform===`darwin`)f.spawn(`open`,[`-R`,e],{detached:!0,stdio:`ignore`}).unref();else{let t=u.dirname(e);f.spawn(`xdg-open`,[t],{detached:!0,stdio:`ignore`}).unref()}}function Hr(e){if(!e||typeof e!=`string`)return!1;let t=e.trim();if(/^#([a-fA-F0-9]{3}|[a-fA-F0-9]{6})$/.test(t))return!0;if(/^rgb\(\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*\d{1,3}\s*\)$/.test(t)){let e=t.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);if(e){let[,t,n,r]=e;return parseInt(t)<=255&&parseInt(n)<=255&&parseInt(r)<=255}}if(/^hsl\(\s*\d{1,3}\s*,\s*\d{1,3}%\s*,\s*\d{1,3}%\s*\)$/.test(t)){let e=t.match(/hsl\((\d+),\s*(\d+)%,\s*(\d+)%\)/);if(e){let[,t,n,r]=e;return parseInt(t)<=360&&parseInt(n)<=100&&parseInt(r)<=100}}return!1}function Ur(e){if(!Hr(e))return e;let t=e.trim();if(t.startsWith(`rgb(`))return t;if(t.startsWith(`#`)){let e=t.slice(1);return e.length===3&&(e=e.split(``).map(e=>e+e).join(``)),`rgb(${parseInt(e.slice(0,2),16)},${parseInt(e.slice(2,4),16)},${parseInt(e.slice(4,6),16)})`}if(t.startsWith(`hsl(`)){let e=t.match(/hsl\((\d+),\s*(\d+)%,\s*(\d+)%\)/);if(e){let t=parseInt(e[1])/360,n=parseInt(e[2])/100,r=parseInt(e[3])/100,i=(e,t,n)=>(n<0&&(n+=1),n>1&&--n,n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e),a=r<.5?r*(1+n):r+n-r*n,o=2*r-a;return`rgb(${Math.round(i(o,a,t+1/3)*255)},${Math.round(i(o,a,t)*255)},${Math.round(i(o,a,t-1/3)*255)})`}}return e}async function Wr(e,t=`sha256`,n=64*1024){return new Promise((r,i)=>{let a=p.createHash(t),o=l.createReadStream(e,{highWaterMark:n});o.on(`data`,e=>{a.update(e)}),o.on(`end`,()=>{r(a.digest(`hex`))}),o.on(`error`,e=>{i(e)})})}async function Gr(e,t,n=`replace`){let r=493;try{r=(await i.stat(e)).mode,G(`[${n}] Original file mode for ${e}: ${(r&511).toString(8)}`)}catch(t){G(`[${n}] Could not stat ${e} (error: ${t}), using default mode 755`)}try{await i.unlink(e),G(`[${n}] Unlinked ${e} to break hard links`)}catch(t){G(`[${n}] Could not unlink ${e}: ${t}`)}await i.writeFile(e,t),await i.chmod(e,r),G(`[${n}] Restored permissions to ${(r&511).toString(8)}`)}async function Kr(e){try{return await i.stat(e),!0}catch(e){if(e instanceof Error&&`code`in e&&(e.code===`ENOENT`||e.code===`ENOTDIR`||e.code===`EACCES`||e.code===`EPERM`))return!1;throw e}}const qr=e=>e.startsWith(`~`)?u.join(d.homedir(),e.slice(1)):e,Jr=(e,t)=>{let n=e=>{let t=e.split(`.`).map(Number);return[t[0]||0,t[1]||0,t[2]||0]},r=n(e),i=n(t);return r[0]===i[0]?r[1]===i[1]?r[2]-i[2]:r[1]-i[1]:r[0]-i[0]},Yr=e=>{let t=e.toString(),n=t.lastIndexOf(`/`);return`new RegExp(${JSON.stringify(t.substring(1,n))}, ${JSON.stringify(t.substring(n+1))})`};function q(e,t){if(e==null)return t;if(typeof t!=`object`||!t)return e;if(Array.isArray(t))return Array.isArray(e)?e:t;let n={...e};for(let e of Object.keys(t)){let r=t[e];e in n?typeof r==`object`&&r&&!Array.isArray(r)&&(n[e]=q(n[e],r)):n[e]=r}return n}const Xr=e=>{let t=e?.settings?.userMessageDisplay;if(t?.prefix){let n=t;e.settings.userMessageDisplay={format:(n.prefix?.format||``)+(n.message?.format||`{}`),styling:[...n.prefix?.styling||[],...n.message?.styling||[]],foregroundColor:n.message?.foregroundColor===`rgb(0,0,0)`?`default`:n.message?.foregroundColor||n.prefix?.foregroundColor||`default`,backgroundColor:n.message?.backgroundColor===`rgb(0,0,0)`?null:n.message?.backgroundColor||n.prefix?.backgroundColor||null,borderStyle:`none`,borderColor:`rgb(255,255,255)`,paddingX:0,paddingY:0,fitBoxToContent:!1}}t&&!(`borderStyle`in t)&&(e.settings.userMessageDisplay.borderStyle=`none`,e.settings.userMessageDisplay.borderColor=`rgb(255,255,255)`,e.settings.userMessageDisplay.paddingX=0,e.settings.userMessageDisplay.paddingY=0,e.settings.userMessageDisplay.fitBoxToContent=!1),t&&`padding`in t&&!(`paddingX`in t)&&(e.settings.userMessageDisplay.paddingX=t.padding||0,e.settings.userMessageDisplay.paddingY=0,delete t.padding),t&&!(`fitBoxToContent`in t)&&(e.settings.userMessageDisplay.fitBoxToContent=!1)},Zr=e=>{let t=e?.settings?.misc;t&&`hideCtrlGToEditPrompt`in t&&(t.hideCtrlGToEdit=t.hideCtrlGToEditPrompt,delete t.hideCtrlGToEditPrompt)};async function Qr(){try{let e=await i.readFile(Y,`utf8`),t=JSON.parse(e);return Object.hasOwn(t,`ccInstallationDir`)?(t.ccInstallationDir&&!t.ccInstallationPath&&(t.ccInstallationPath=c.join(t.ccInstallationDir,`cli.js`)),delete t.ccInstallationDir,t.lastModified=new Date().toISOString(),await ri(),await i.writeFile(Y,JSON.stringify(t,null,2)),!0):!1}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return!1;throw e}}const $r=()=>{let e=process.env.TWEAKCC_CONFIG_DIR?.trim();if(e&&e.length>0)return qr(e);let n=c.join(t.homedir(),`.tweakcc`),r=c.join(t.homedir(),`.claude`,`tweakcc`),i=process.env.XDG_CONFIG_HOME;try{if(o.existsSync(n))return n}catch(e){G(`Failed to check if ${n} exists: ${e}`)}try{if(o.existsSync(r))return r}catch(e){G(`Failed to check if ${r} exists: ${e}`)}return i?c.join(i,`tweakcc`):n},J=$r(),Y=c.join(J,`config.json`),ei=c.join(J,`cli.js.backup`),X=c.join(J,`native-binary.backup`),Z=c.join(J,`system-prompts`),ti=c.join(J,`prompt-data-cache`),ni=()=>{let n=J,r=t.homedir(),i=[c.join(r,`.tweakcc`),c.join(r,`.claude`,`tweakcc`),process.env.XDG_CONFIG_HOME?c.join(process.env.XDG_CONFIG_HOME,`tweakcc`):null].filter(e=>e!==null).filter(e=>{try{return o.existsSync(e)&&e!==n}catch{return!1}});i.length>0&&(console.warn(e.yellow(`
667
667
  Multiple configuration locations detected:`)),console.warn(e.gray(` Active: ${n}`)),console.warn(e.gray(` Other existing locations:`)),i.forEach(t=>{console.warn(e.gray(` - ${t}`))}),console.warn(e.gray(` Only the active location is used. To switch locations,`)),console.warn(e.gray(` move your config.json to the desired directory.
668
668
  `)))},ri=async()=>{await i.mkdir(J,{recursive:!0}),await i.mkdir(Z,{recursive:!0});let e=c.join(J,`.gitignore`);try{await i.stat(e)}catch(t){t instanceof Error&&`code`in t&&t.code===`ENOENT`&&await i.writeFile(e,[`.DS_Store`,`prompt-data-cache`,`cli.js.backup`,`native-binary.backup`,`native-claudejs-orig.js`,`native-claudejs-patched.js`,`systemPromptAppliedHashes.json`,`systemPromptOriginalHashes.json`,`system-prompts/*.diff.html`].join(n)+n)}};let Q=null;const ii=()=>({ccVersion:``,ccInstallationPath:null,lastModified:new Date().toISOString(),changesApplied:!0,settings:x}),ai=e=>{let t=e?.settings?.thinkingVerbs;t?.punctuation&&(t.format=`{}`+t.punctuation,delete t.punctuation),e.settings=q(e.settings,x),e.settings.inputPatternHighlighters&&(e.settings.inputPatternHighlighters=e.settings.inputPatternHighlighters.map(e=>q(e,S))),e.settings.toolsets&&(e.settings.toolsets=e.settings.toolsets.map(e=>q(e,C))),e.settings.themes&&(e.settings.themes=e.settings.themes.map(e=>q(e,w))),Xr(e),Zr(e),delete e.settings.launchText},oi=async()=>{let e=ii();try{G(`Reading config at ${Y}`),ni();let t=await i.readFile(Y,`utf8`),n={...e,...JSON.parse(t)},r=JSON.stringify(n);ai(n);let a=await et(Z);return a&&(n.changesApplied=!1),(JSON.stringify(n)!==r||a)&&await si(n),Q=n,n}catch(t){if(t instanceof Error&&`code`in t&&t.code===`ENOENT`)return e;throw t}},$=async e=>(G(`Updating config at ${Y}`),Q||=await oi(),e(Q),Q.lastModified=new Date().toISOString(),await si(Q),Q),si=async e=>{try{e.lastModified=new Date().toISOString(),await ri(),await i.writeFile(Y,JSON.stringify(e,null,2))}catch(e){throw console.error(`Error saving config:`,e),e}},ci=async e=>{G(`Fetching config from URL: ${e}`);let t;try{t=new URL(e)}catch{throw Error(`Invalid URL format: ${e}\n Expected a valid URL like https://example.com/config.json`)}if(![`http:`,`https:`].includes(t.protocol))throw Error(`Unsupported URL protocol: ${t.protocol}\n Only http:// and https:// URLs are supported`);let n;try{let e=await i.readFile(Y,`utf8`);n=JSON.parse(e)}catch{n=ii()}let r;try{r=await fetch(e,{headers:{Accept:`application/json`,"User-Agent":`tweakcc`}})}catch(t){let n=t instanceof Error?t.message:String(t);throw Error(`Failed to fetch config from ${e}\n Network error: ${n}\n Please check your internet connection and try again.`)}if(!r.ok)throw Error(`Failed to fetch config from ${e}\n HTTP ${r.status}: ${r.statusText}\n Please check that the URL is correct and accessible.`);let a;try{let e=await r.text();a=JSON.parse(e)}catch(t){let n=t instanceof Error?t.message:String(t);throw Error(`Failed to parse config from ${e}\n JSON parse error: ${n}\n Please ensure the URL returns valid JSON.`)}let o={sourceUrl:e,dateFetched:new Date().toISOString(),settings:a};await $(e=>{e.remoteConfig=o});let s={...ii(),ccVersion:n.ccVersion||``,ccInstallationPath:n.ccInstallationPath||null,settings:{...x,...a},remoteConfig:o};return ai(s),G(`Successfully fetched and parsed config from ${e}`),s};export{v as $,U as A,F as B,Mr as C,Gr as D,Br as E,I as F,dr as G,cr as H,V as I,pt as J,wt as K,pr as L,xr as M,yr as N,Vr as O,H as P,w as Q,z as R,Ar as S,Ur as T,lr as U,P as V,ur as W,$e as X,dt as Y,x as Z,Pr as _,Z as a,zr as b,oi as c,Jr as d,y as et,G as f,Fr as g,Nr as h,X as i,Cr as j,Lr as k,$ as l,Kr as m,J as n,ci as o,q as p,mt as q,Y as r,$r as s,ei as t,b as tt,Qr as u,Rr as v,Hr as w,Wr as x,Ir as y,B as z};
@@ -1,4 +1,4 @@
1
- import{$ as e,D as t,S as n,c as r,d as i,et as a,f as o,l as s,m as c,n as l,r as u,tt as d,x as f}from"./config-Ca33xREd.mjs";import{Box as p,Text as m,render as h,useInput as g}from"ink";import _,{useState as ee}from"react";import*as te from"node:os";import v from"node:os";import*as y from"node:fs/promises";import b from"node:fs/promises";import x from"path";import{jsx as S,jsxs as C}from"react/jsx-runtime";import ne from"which";import{globbySync as w}from"globby";const re=(()=>{let e=[],t=process.platform==`win32`?v.homedir().replace(/\\/g,`/`):v.homedir(),n=`node_modules/@anthropic-ai/claude-code`,r=(t,n=!1)=>{if(n)try{let n=w(t,{onlyFiles:!1});e.push({pattern:t,isGlob:!0,expandedPaths:n})}catch(n){n instanceof Error&&`code`in n&&(n.code===`EACCES`||n.code===`EPERM`)?o(`Permission denied accessing: ${t} (${n.code})`):o(`Error expanding glob pattern "${t}": ${n instanceof Error?n.message:String(n)}`),e.push({pattern:t,isGlob:!0,expandedPaths:[]})}else e.push({pattern:t,isGlob:!1,expandedPaths:[t]})};return r(`${v.homedir()}/.claude/local/${n}`),process.env.NPM_PREFIX&&r(`${process.env.NPM_PREFIX}/lib/${n}`),process.env.N_PREFIX&&r(`${process.env.N_PREFIX}/lib/${n}`),process.env.VOLTA_HOME&&r(`${process.env.VOLTA_HOME}/lib/${n}`),process.env.FNM_DIR&&r(`${process.env.FNM_DIR}/lib/${n}`),process.env.NVM_DIR&&r(`${process.env.NVM_DIR}/lib/${n}`),process.env.NODENV_ROOT&&r(`${process.env.NODENV_ROOT}/versions/*/lib/${n}`,!0),process.env.NVS_HOME&&r(`${process.env.NVS_HOME}/node/*/*/lib/${n}`,!0),process.env.ASDF_DATA_DIR&&r(`${process.env.ASDF_DATA_DIR}/installs/nodejs/*/lib/${n}`,!0),process.platform==`win32`?(r(`${t}/AppData/Local/Volta/tools/image/packages/@anthropic-ai/claude-code/${n}`),r(`${t}/AppData/Roaming/npm/${n}`),r(`${t}/AppData/Roaming/nvm/*/${n}`,!0),r(`${t}/AppData/Local/Yarn/config/global/${n}`),r(`${t}/AppData/Local/pnpm/global/*/${n}`,!0),r(`C:/nvm4w/nodejs/${n}`),r(`${t}/n/versions/node/*/lib/${n}`,!0),r(`${t}/AppData/Roaming/Yarn/config/global/${n}`),r(`${t}/AppData/Roaming/pnpm-global/${n}`),r(`${t}/AppData/Roaming/pnpm-global/*/${n}`,!0),r(`${t}/.bun/install/global/${n}`),r(`${t}/.bun/install/cache/@anthropic-ai/claude-code*@@@*`,!0),r(`${t}/AppData/Local/Bun/install/cache/@anthropic-ai/claude-code*@@@*`,!0),r(`${t}/AppData/Local/fnm_multishells/*/node_modules/${n}`,!0),r(`${t}/AppData/Local/mise/installs/node/*/${n}`,!0),r(`${t}/AppData/Local/mise/installs/npm-anthropic-ai-claude-code/*/${n}`,!0)):(process.platform==`darwin`&&(r(`${t}/Library/${n}`),r(`/opt/local/lib/${n}`),r(`${t}/.bun/install/cache/@anthropic-ai/claude-code*@@@*`,!0),r(`${t}/Library/Caches/bun/install/cache/@anthropic-ai/claude-code*@@@*`,!0)),r(`${t}/.local/lib/${n}`),r(`${t}/.local/share/${n}`),r(`${t}/.npm-global/lib/${n}`),r(`${t}/.npm-packages/lib/${n}`),r(`${t}/.npm/lib/${n}`),r(`${t}/npm/lib/${n}`),r(`/etc/${n}`),r(`/lib/${n}`),r(`/opt/node/lib/${n}`),r(`/usr/lib/${n}`),r(`/usr/local/lib/${n}`),r(`/usr/share/${n}`),r(`/var/lib/${n}`),r(`/opt/homebrew/lib/${n}`),r(`${t}/.linuxbrew/lib/${n}`),r(`${t}/.config/yarn/global/${n}`),r(`${t}/.yarn/global/${n}`),r(`${t}/.bun/install/global/${n}`),r(`${t}/.pnpm-global/${n}`),r(`${t}/.pnpm-global/*/${n}`,!0),r(`${t}/pnpm-global/${n}`),r(`${t}/pnpm-global/*/${n}`,!0),r(`${t}/.local/share/pnpm/global/${n}`),r(`${t}/.local/share/pnpm/global/*/${n}`,!0),r(`${t}/.bun/install/global/${n}`),r(`${t}/.bun/install/cache/@anthropic-ai/claude-code*@@@*`,!0),r(`${t}/.local/share/bun/install/cache/@anthropic-ai/claude-code*@@@*`,!0),r(`/usr/local/n/versions/node/*/lib/${n}`,!0),r(`${t}/n/versions/node/*/lib/${n}`,!0),r(`${t}/n/lib/${n}`),r(`${t}/.volta/tools/image/node/*/lib/${n}`,!0),r(`${t}/.fnm/node-versions/*/installation/lib/${n}`,!0),r(`${t}/.local/state/fnm_multishells/*/lib/${n}`,!0),r(`/usr/local/nvm/versions/node/*/lib/${n}`,!0),r(`/usr/local/share/nvm/versions/node/*/lib/${n}`,!0),r(`${t}/.nvm/versions/node/*/lib/${n}`,!0),r(`${t}/.nodenv/versions/*/lib/${n}`,!0),r(`${t}/.nvs/*/lib/${n}`,!0),r(`${t}/.asdf/installs/nodejs/*/lib/${n}`,!0),process.env.MISE_DATA_DIR&&r(`${process.env.MISE_DATA_DIR}/installs/node/*/lib/${n}`,!0),r(`${t}/.local/share/mise/installs/node/*/lib/${n}`,!0),process.env.MISE_DATA_DIR&&r(`${process.env.MISE_DATA_DIR}/installs/npm-anthropic-ai-claude-code/*/lib/${n}`,!0),r(`${t}/.local/share/mise/installs/npm-anthropic-ai-claude-code/*/lib/${n}`,!0)),process.platform==`win32`&&e.forEach(e=>{e.pattern=e.pattern.replace(/\//g,`\\`),e.expandedPaths=e.expandedPaths.map(e=>e.replace(/\//g,`\\`))}),e})().flatMap(e=>e.expandedPaths),ie=(()=>{let e=process.platform===`win32`?v.homedir().replace(/\\/g,`/`):v.homedir(),t=[],n=(e,n=!1)=>{if(n)try{let n=w(e,{onlyFiles:!0});t.push({pattern:e,isGlob:!0,expandedPaths:n})}catch(n){n instanceof Error&&`code`in n&&(n.code===`EACCES`||n.code===`EPERM`)?o(`Permission denied accessing: ${e} (${n.code})`):o(`Error expanding glob pattern "${e}": ${n instanceof Error?n.message:String(n)}`),t.push({pattern:e,isGlob:!0,expandedPaths:[]})}else t.push({pattern:e,isGlob:!1,expandedPaths:[e]})};return n(`${e}/.local/bin/claude`),n(`${e}/.local/share/claude/versions/*`,!0),process.platform===`win32`&&t.forEach(e=>{e.pattern=e.pattern.replace(/\//g,`\\`),e.expandedPaths=e.expandedPaths.map(e=>e.replace(/\//g,`\\`))}),t})().flatMap(e=>e.expandedPaths);var T=class extends Error{constructor(e){super(e),this.name=`InstallationDetectionError`}};let E=null;async function ae(){return E||=(async()=>{try{let{WASMagic:e}=await import(`wasmagic`);return await e.create()}catch(e){return o(`WASMagic initialization failed (likely SIMD unsupported on this CPU):`,e),o(`Using fallback file type detection`),null}})(),E}const oe=Buffer.from([127,69,76,70]),se=Buffer.from([254,237,250,206]),ce=Buffer.from([254,237,250,207]),D=Buffer.from([206,250,237,254]),O=Buffer.from([207,250,237,254]),k=Buffer.from([202,254,186,190]),A=Buffer.from([77,90]);function j(e){if(e.length===0)return null;if(e[0]===35&&e[1]===33&&e.subarray(0,Math.min(256,e.length)).toString(`utf8`).split(`
1
+ import{$ as e,D as t,S as n,c as r,d as i,et as a,f as o,l as s,m as c,n as l,r as u,tt as d,x as f}from"./config-5W52dXMg.mjs";import{Box as p,Text as m,render as h,useInput as g}from"ink";import _,{useState as ee}from"react";import*as te from"node:os";import v from"node:os";import*as y from"node:fs/promises";import b from"node:fs/promises";import x from"path";import{jsx as S,jsxs as C}from"react/jsx-runtime";import ne from"which";import{globbySync as w}from"globby";const re=(()=>{let e=[],t=process.platform==`win32`?v.homedir().replace(/\\/g,`/`):v.homedir(),n=`node_modules/@anthropic-ai/claude-code`,r=(t,n=!1)=>{if(n)try{let n=w(t,{onlyFiles:!1});e.push({pattern:t,isGlob:!0,expandedPaths:n})}catch(n){n instanceof Error&&`code`in n&&(n.code===`EACCES`||n.code===`EPERM`)?o(`Permission denied accessing: ${t} (${n.code})`):o(`Error expanding glob pattern "${t}": ${n instanceof Error?n.message:String(n)}`),e.push({pattern:t,isGlob:!0,expandedPaths:[]})}else e.push({pattern:t,isGlob:!1,expandedPaths:[t]})};return r(`${v.homedir()}/.claude/local/${n}`),process.env.NPM_PREFIX&&r(`${process.env.NPM_PREFIX}/lib/${n}`),process.env.N_PREFIX&&r(`${process.env.N_PREFIX}/lib/${n}`),process.env.VOLTA_HOME&&r(`${process.env.VOLTA_HOME}/lib/${n}`),process.env.FNM_DIR&&r(`${process.env.FNM_DIR}/lib/${n}`),process.env.NVM_DIR&&r(`${process.env.NVM_DIR}/lib/${n}`),process.env.NODENV_ROOT&&r(`${process.env.NODENV_ROOT}/versions/*/lib/${n}`,!0),process.env.NVS_HOME&&r(`${process.env.NVS_HOME}/node/*/*/lib/${n}`,!0),process.env.ASDF_DATA_DIR&&r(`${process.env.ASDF_DATA_DIR}/installs/nodejs/*/lib/${n}`,!0),process.platform==`win32`?(r(`${t}/AppData/Local/Volta/tools/image/packages/@anthropic-ai/claude-code/${n}`),r(`${t}/AppData/Roaming/npm/${n}`),r(`${t}/AppData/Roaming/nvm/*/${n}`,!0),r(`${t}/AppData/Local/Yarn/config/global/${n}`),r(`${t}/AppData/Local/pnpm/global/*/${n}`,!0),r(`C:/nvm4w/nodejs/${n}`),r(`${t}/n/versions/node/*/lib/${n}`,!0),r(`${t}/AppData/Roaming/Yarn/config/global/${n}`),r(`${t}/AppData/Roaming/pnpm-global/${n}`),r(`${t}/AppData/Roaming/pnpm-global/*/${n}`,!0),r(`${t}/.bun/install/global/${n}`),r(`${t}/.bun/install/cache/@anthropic-ai/claude-code*@@@*`,!0),r(`${t}/AppData/Local/Bun/install/cache/@anthropic-ai/claude-code*@@@*`,!0),r(`${t}/AppData/Local/fnm_multishells/*/node_modules/${n}`,!0),r(`${t}/AppData/Local/mise/installs/node/*/${n}`,!0),r(`${t}/AppData/Local/mise/installs/npm-anthropic-ai-claude-code/*/${n}`,!0)):(process.platform==`darwin`&&(r(`${t}/Library/${n}`),r(`/opt/local/lib/${n}`),r(`${t}/.bun/install/cache/@anthropic-ai/claude-code*@@@*`,!0),r(`${t}/Library/Caches/bun/install/cache/@anthropic-ai/claude-code*@@@*`,!0)),r(`${t}/.local/lib/${n}`),r(`${t}/.local/share/${n}`),r(`${t}/.npm-global/lib/${n}`),r(`${t}/.npm-packages/lib/${n}`),r(`${t}/.npm/lib/${n}`),r(`${t}/npm/lib/${n}`),r(`/etc/${n}`),r(`/lib/${n}`),r(`/opt/node/lib/${n}`),r(`/usr/lib/${n}`),r(`/usr/local/lib/${n}`),r(`/usr/share/${n}`),r(`/var/lib/${n}`),r(`/opt/homebrew/lib/${n}`),r(`${t}/.linuxbrew/lib/${n}`),r(`${t}/.config/yarn/global/${n}`),r(`${t}/.yarn/global/${n}`),r(`${t}/.bun/install/global/${n}`),r(`${t}/.pnpm-global/${n}`),r(`${t}/.pnpm-global/*/${n}`,!0),r(`${t}/pnpm-global/${n}`),r(`${t}/pnpm-global/*/${n}`,!0),r(`${t}/.local/share/pnpm/global/${n}`),r(`${t}/.local/share/pnpm/global/*/${n}`,!0),r(`${t}/.bun/install/global/${n}`),r(`${t}/.bun/install/cache/@anthropic-ai/claude-code*@@@*`,!0),r(`${t}/.local/share/bun/install/cache/@anthropic-ai/claude-code*@@@*`,!0),r(`/usr/local/n/versions/node/*/lib/${n}`,!0),r(`${t}/n/versions/node/*/lib/${n}`,!0),r(`${t}/n/lib/${n}`),r(`${t}/.volta/tools/image/node/*/lib/${n}`,!0),r(`${t}/.fnm/node-versions/*/installation/lib/${n}`,!0),r(`${t}/.local/state/fnm_multishells/*/lib/${n}`,!0),r(`/usr/local/nvm/versions/node/*/lib/${n}`,!0),r(`/usr/local/share/nvm/versions/node/*/lib/${n}`,!0),r(`${t}/.nvm/versions/node/*/lib/${n}`,!0),r(`${t}/.nodenv/versions/*/lib/${n}`,!0),r(`${t}/.nvs/*/lib/${n}`,!0),r(`${t}/.asdf/installs/nodejs/*/lib/${n}`,!0),process.env.MISE_DATA_DIR&&r(`${process.env.MISE_DATA_DIR}/installs/node/*/lib/${n}`,!0),r(`${t}/.local/share/mise/installs/node/*/lib/${n}`,!0),process.env.MISE_DATA_DIR&&r(`${process.env.MISE_DATA_DIR}/installs/npm-anthropic-ai-claude-code/*/lib/${n}`,!0),r(`${t}/.local/share/mise/installs/npm-anthropic-ai-claude-code/*/lib/${n}`,!0)),process.platform==`win32`&&e.forEach(e=>{e.pattern=e.pattern.replace(/\//g,`\\`),e.expandedPaths=e.expandedPaths.map(e=>e.replace(/\//g,`\\`))}),e})().flatMap(e=>e.expandedPaths),ie=(()=>{let e=process.platform===`win32`?v.homedir().replace(/\\/g,`/`):v.homedir(),t=[],n=(e,n=!1)=>{if(n)try{let n=w(e,{onlyFiles:!0});t.push({pattern:e,isGlob:!0,expandedPaths:n})}catch(n){n instanceof Error&&`code`in n&&(n.code===`EACCES`||n.code===`EPERM`)?o(`Permission denied accessing: ${e} (${n.code})`):o(`Error expanding glob pattern "${e}": ${n instanceof Error?n.message:String(n)}`),t.push({pattern:e,isGlob:!0,expandedPaths:[]})}else t.push({pattern:e,isGlob:!1,expandedPaths:[e]})};return n(`${e}/.local/bin/claude`),n(`${e}/.local/share/claude/versions/*`,!0),process.platform===`win32`&&t.forEach(e=>{e.pattern=e.pattern.replace(/\//g,`\\`),e.expandedPaths=e.expandedPaths.map(e=>e.replace(/\//g,`\\`))}),t})().flatMap(e=>e.expandedPaths);var T=class extends Error{constructor(e){super(e),this.name=`InstallationDetectionError`}};let E=null;async function ae(){return E||=(async()=>{try{let{WASMagic:e}=await import(`wasmagic`);return await e.create()}catch(e){return o(`WASMagic initialization failed (likely SIMD unsupported on this CPU):`,e),o(`Using fallback file type detection`),null}})(),E}const oe=Buffer.from([127,69,76,70]),se=Buffer.from([254,237,250,206]),ce=Buffer.from([254,237,250,207]),D=Buffer.from([206,250,237,254]),O=Buffer.from([207,250,237,254]),k=Buffer.from([202,254,186,190]),A=Buffer.from([77,90]);function j(e){if(e.length===0)return null;if(e[0]===35&&e[1]===33&&e.subarray(0,Math.min(256,e.length)).toString(`utf8`).split(`
2
2
  `)[0].includes(`node`))return o(`detectFileTypeFallback: Detected JavaScript via shebang`),`javascript`;if(e.length>=4){let t=e.subarray(0,4);if(t.equals(oe))return o(`detectFileTypeFallback: Detected ELF binary`),`binary`;if(t.equals(se)||t.equals(ce)||t.equals(D)||t.equals(O)||t.equals(k))return o(`detectFileTypeFallback: Detected Mach-O binary`),`binary`}if(e.length>=2&&e.subarray(0,2).equals(A))return o(`detectFileTypeFallback: Detected PE binary`),`binary`;let t=Math.min(512,e.length),n=0,r=0;for(let i=0;i<t;i++){let t=e[i];(t>=32&&t<=126||t===9||t===10||t===13)&&n++,t===0&&r++}if(r>0)return o(`detectFileTypeFallback: Detected binary (${r} null bytes in first ${t} bytes)`),`binary`;let i=n/t;return i>.9?(o(`detectFileTypeFallback: Detected JavaScript via text heuristic (${Math.round(i*100)}% printable)`),`javascript`):(o(`detectFileTypeFallback: Unknown file type (${Math.round(i*100)}% printable)`),null)}async function M(e,t=4096){try{let n=await b.open(e,`r`);try{let e=Buffer.allocUnsafe(t),{bytesRead:r}=await n.read({buffer:e,position:0,length:t});return r<=0?null:e.subarray(0,r)}finally{await n.close()}}catch(e){return o(`Failed to read file prefix:`,e),null}}async function N(e){let t=await d(e);return t?(o(`maybeResolveNixWrapper: resolved Nix wrapper ${e} -> ${t}`),t):e}async function P(e){try{let t=await b.realpath(e);o(`resolvePathToInstallationType: ${e} -> ${t}`);let n=await M(t);if(!n)return o(`resolvePathToInstallationType: Could not read file prefix`),null;let r=await ae();if(r&&typeof r.detect==`function`){let e=r.detect(n)||null;if(e){let n=e.toLowerCase();return o(`resolvePathToInstallationType: Detected mime type: ${n}`),n.includes(`javascript`)?{kind:`npm-based`,resolvedPath:t}:n.startsWith(`text/`)?(o(`resolvePathToInstallationType: Unrecognized file type`),null):{kind:`native-binary`,resolvedPath:await N(t)}}}o(`resolvePathToInstallationType: Using fallback file type detection`);let i=j(n);return i===`javascript`?{kind:`npm-based`,resolvedPath:t}:i===`binary`?{kind:`native-binary`,resolvedPath:await N(t)}:(o(`resolvePathToInstallationType: Fallback could not determine file type`),null)}catch(e){return o(`resolvePathToInstallationType: Error:`,e),null}}async function F(){try{let e=await ne(`claude`);return o(`getClaudeFromPath: Found claude at ${e}`),e}catch{return o(`getClaudeFromPath: claude not found on PATH`),null}}function I(e){let t=/\bVERSION:"(\d+\.\d+\.\d+)"/g,n=new Map,r;for(;(r=t.exec(e))!==null;){let e=r[1];n.set(e,(n.get(e)||0)+1)}if(n.size===0)return null;let i=0,a;for(let[e,t]of n.entries())o(`Found version ${e} with ${t} occurrences`),t>i&&(i=t,a=e);return a&&o(`Extracted version ${a} (${i} occurrences)`),a||null}async function L(e){let t=I(await b.readFile(e,`utf8`));if(!t)throw Error(`No VERSION strings found in JS file: ${e}`);return t}async function R(t){let{data:n}=await e(t);if(!n)throw Error(`Could not extract JS from native binary: ${t}`);let r=I(n.toString(`utf8`));if(!r)throw Error(`No VERSION strings found in extracted JS from: ${t}`);return r}function z(e){let t=x.basename(e).match(/^(\d+\.\d+\.\d+)$/);return t?t[1]:null}async function B(e,t){let n=z(e);return n?(o(`extractVersion: Got version ${n} from filename`),n):t===`npm-based`?L(e):R(e)}async function V(){let e=[],t=new Set;for(let n of re){let r=x.join(n,`cli.js`);if(!t.has(r))try{if(await c(r)){o(`collectCandidates: Found cli.js at ${r}`);let n=await L(r);e.push({path:r,kind:`npm-based`,version:n}),t.add(r)}}catch(e){o(`collectCandidates: Error checking ${r}:`,e)}}for(let n of ie)if(!t.has(n))try{if(await c(n)){let r=await N(n);o(`collectCandidates: Found native binary at ${n}${r===n?``:` (resolved -> ${r})`}`);let i=await B(r,`native-binary`);e.push({path:r,kind:`native-binary`,version:i}),t.add(n)}}catch(e){o(`collectCandidates: Error checking ${n}:`,e)}return[...e].sort((e,t)=>i(e.version,t.version))}function H(e){return e.map(e=>` • ${e.path} (${e.kind}, v${e.version})`).join(`
3
3
  `)}function U(e){return` 2. Set ccInstallationPath in your config file (${u}):
4
4
 
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{A as e,C as t,E as n,F as r,G as i,H as a,I as o,J as s,K as c,L as l,M as u,N as d,O as f,P as p,Q as m,R as h,T as g,U as _,W as v,X as y,Y as b,Z as x,_ as S,a as C,b as w,c as T,f as E,g as D,h as O,i as k,j as A,k as j,l as M,m as ee,n as te,o as ne,p as N,q as re,r as P,t as ie,u as ae,v as oe,w as se,y as ce,z as F}from"./config-Ca33xREd.mjs";import{a as I,c as L,d as R,l as le,n as ue,o as de,s as fe,t as pe,u as z}from"./content-C_V64yep.mjs";import{Box as B,Text as V,render as me,useInput as H}from"ink";import{Command as he}from"commander";import U from"chalk";import ge,{Fragment as _e,createContext as ve,useCallback as ye,useContext as W,useEffect as G,useMemo as be,useRef as xe,useState as K}from"react";import*as Se from"node:os";import Ce from"ink-link";import*as we from"node:fs/promises";import Te from"node:fs/promises";import{structuredPatch as Ee}from"diff";import{Fragment as q,jsx as J,jsxs as Y}from"react/jsx-runtime";import De from"process";import Oe from"cli-spinners";import*as ke from"node:readline";import{execSync as Ae,spawn as je}from"node:child_process";var X=({children:e,...t})=>Y(V,{bold:!0,backgroundColor:`#ffd500`,color:`#000`,...t,children:[` `,e,` `]});const Me=[`\x1B[?25l\x1B[0m \x1B[38;2;0;0;0m \x1B[38;2;252;130;0m▂\x1B[38;2;252;130;0m▄\x1B[38;2;252;130;0m▅\x1B[38;2;252;130;0m▇\x1B[38;2;254;131;0m\x1B[48;2;252;130;0m▇\x1B[48;2;252;130;0m▇▇\x1B[48;2;252;130;0m▇\x1B[0m\x1B[38;2;252;130;0m▇\x1B[38;2;252;130;0m▅\x1B[38;2;252;130;0m▄\x1B[38;2;252;130;0m▂ \x1B[0m`,` \x1B[38;2;0;0;0m \x1B[38;2;254;131;0m▗\x1B[38;2;254;131;0m▆\x1B[48;2;254;131;0m \x1B[38;2;254;132;0m╶ \x1B[0m\x1B[38;2;254;131;0m▆\x1B[38;2;254;131;0m▖ \x1B[0m`,` \x1B[7m\x1B[38;2;254;131;0m▘\x1B[0m\x1B[38;2;11;6;0m\x1B[48;2;254;131;0m \x1B[38;2;254;216;182m\x1B[48;2;254;136;12m▃\x1B[38;2;254;249;246m\x1B[48;2;254;143;29m▅\x1B[38;2;254;253;253m\x1B[48;2;254;143;40m▆\x1B[38;2;254;254;253m\x1B[48;2;254;152;68m▆▆▆\x1B[38;2;254;253;252m\x1B[48;2;254;141;34m▆\x1B[38;2;254;247;242m\x1B[48;2;254;140;24m▅\x1B[38;2;254;224;199m\x1B[48;2;254;140;20m▖\x1B[48;2;254;131;0m \x1B[0m\x1B[7m\x1B[38;2;254;131;0m▝\x1B[0m \x1B[0m`,`\x1B[7m\x1B[38;2;251;127;0m▌\x1B[0m\x1B[38;2;251;127;0m\x1B[48;2;253;130;0m▃\x1B[38;2;252;128;0m\x1B[48;2;254;131;0m▃\x1B[38;2;252;129;0m▂\x1B[38;2;253;130;0m▁\x1B[38;2;249;135;16m\x1B[48;2;253;226;202m▋\x1B[38;2;254;254;254m\x1B[48;2;254;254;253m┈\x1B[48;2;246;246;245m┈\x1B[38;2;47;47;47m\x1B[48;2;244;244;243m▂\x1B[38;2;112;112;112m\x1B[48;2;251;251;251m▂\x1B[38;2;254;254;254m\x1B[48;2;254;254;253m▁╌▝\x1B[38;2;254;254;253m\x1B[48;2;254;254;254m▋\x1B[38;2;254;254;254m\x1B[48;2;254;253;252m┈\x1B[38;2;252;209;168m\x1B[48;2;251;129;0m▍\x1B[38;2;253;129;0m\x1B[48;2;254;131;0m▂\x1B[38;2;252;128;0m▃\x1B[38;2;251;127;0m\x1B[48;2;253;130;0m▃\x1B[0m\x1B[38;2;251;127;0m▌\x1B[0m`,`\x1B[38;2;243;118;0m\x1B[48;2;243;118;0m▏\x1B[38;2;245;118;0m\x1B[48;2;248;122;0m▄\x1B[38;2;247;121;0m\x1B[48;2;247;122;0m┈\x1B[38;2;106;68;38m\x1B[48;2;245;123;2m▃\x1B[38;2;39;33;28m\x1B[48;2;211;109;6m▅\x1B[38;2;27;20;12m\x1B[48;2;237;237;237m▌\x1B[48;2;254;254;253m \x1B[38;2;90;90;89m\x1B[48;2;231;230;230m▝\x1B[38;2;215;215;214m\x1B[48;2;48;48;48m▁\x1B[38;2;203;203;202m\x1B[48;2;42;42;42m▂\x1B[38;2;254;254;254m\x1B[48;2;254;254;253m┇╴\x1B[38;2;253;252;252m▂\x1B[38;2;251;250;250m\x1B[48;2;253;253;253m▃\x1B[38;2;249;249;248m\x1B[48;2;252;252;251m▄\x1B[38;2;249;248;248m\x1B[48;2;237;118;0m▍\x1B[38;2;246;121;0m\x1B[48;2;250;125;0m▄\x1B[38;2;246;119;0m\x1B[48;2;249;124;0m▄\x1B[38;2;245;118;0m\x1B[48;2;248;123;0m▄\x1B[38;2;243;118;0m\x1B[48;2;243;118;0m▉\x1B[0m`,`\x1B[38;2;238;108;0m\x1B[48;2;237;109;0m▏\x1B[38;2;238;108;0m\x1B[48;2;241;113;0m▄\x1B[38;2;239;109;0m\x1B[48;2;242;114;0m▄\x1B[38;2;233;109;2m\x1B[48;2;125;73;29m▇\x1B[38;2;225;104;1m\x1B[48;2;50;32;18m▄\x1B[38;2;62;29;2m\x1B[48;2;239;237;237m▌\x1B[38;2;254;253;253m\x1B[48;2;254;254;254m┻\x1B[38;2;254;254;253m▊\x1B[38;2;254;254;254m\x1B[48;2;254;254;253m┊\x1B[38;2;253;253;252m▂\x1B[38;2;251;251;251m\x1B[48;2;254;253;253m▃\x1B[38;2;249;249;249m\x1B[48;2;252;252;252m▄\x1B[38;2;247;247;247m\x1B[48;2;250;250;250m▄\x1B[38;2;245;245;244m\x1B[48;2;248;248;248m▄\x1B[38;2;243;243;242m\x1B[48;2;246;246;245m▄\x1B[38;2;243;242;242m\x1B[48;2;230;109;0m▍\x1B[38;2;239;111;0m\x1B[48;2;243;116;0m▄\x1B[38;2;239;109;0m\x1B[48;2;242;114;0m▄\x1B[38;2;238;108;0m\x1B[48;2;241;113;0m▄\x1B[38;2;237;108;0m\x1B[48;2;238;108;0m▉\x1B[0m`,`\x1B[7m\x1B[38;2;231;98;0m▌\x1B[0m\x1B[38;2;231;98;0m\x1B[48;2;234;103;0m▄\x1B[38;2;231;99;0m\x1B[48;2;235;105;0m▄\x1B[38;2;232;100;0m\x1B[48;2;236;105;0m▄\x1B[38;2;232;101;0m\x1B[48;2;236;106;0m▄\x1B[38;2;223;99;0m\x1B[48;2;247;238;235m▌\x1B[38;2;254;254;254m\x1B[48;2;254;254;253m┊\x1B[38;2;252;252;251m▃\x1B[38;2;250;250;250m\x1B[48;2;253;253;252m▄\x1B[38;2;248;248;247m\x1B[48;2;251;251;250m▄\x1B[38;2;246;245;245m\x1B[48;2;249;248;248m▄\x1B[38;2;243;243;243m\x1B[48;2;246;246;246m▄\x1B[38;2;241;241;241m\x1B[48;2;244;244;244m▄\x1B[38;2;239;239;238m\x1B[48;2;242;242;242m▄\x1B[38;2;237;237;236m\x1B[48;2;240;240;239m▄\x1B[38;2;237;236;236m\x1B[48;2;223;99;0m▍\x1B[38;2;232;100;0m\x1B[48;2;236;106;0m▄\x1B[38;2;231;100;0m\x1B[48;2;235;105;0m▄\x1B[38;2;231;98;0m\x1B[48;2;234;103;0m▄\x1B[0m\x1B[38;2;231;98;0m▌\x1B[0m`,` \x1B[7m\x1B[38;2;224;89;0m▖\x1B[0m\x1B[38;2;224;89;0m\x1B[48;2;228;94;0m▄\x1B[38;2;225;90;0m\x1B[48;2;228;95;0m▄\x1B[38;2;225;91;0m\x1B[48;2;229;96;0m▄\x1B[38;2;217;90;1m\x1B[48;2;97;77;70m▌\x1B[38;2;70;70;70m\x1B[48;2;207;207;207m▆\x1B[38;2;66;65;65m\x1B[48;2;228;228;227m▄\x1B[38;2;66;66;66m\x1B[48;2;233;232;232m▂\x1B[38;2;169;169;169m\x1B[48;2;243;243;243m▁\x1B[38;2;240;239;239m\x1B[48;2;243;242;242m▄\x1B[38;2;238;237;237m\x1B[48;2;241;240;240m▄\x1B[38;2;235;235;235m\x1B[48;2;238;238;238m▄\x1B[38;2;233;233;233m\x1B[48;2;236;236;236m▄\x1B[38;2;231;231;230m\x1B[48;2;234;234;233m▄\x1B[38;2;231;230;230m\x1B[48;2;216;89;0m▍\x1B[38;2;225;90;0m\x1B[48;2;229;95;0m▄\x1B[38;2;224;89;0m\x1B[48;2;228;94;0m▄\x1B[0m\x1B[7m\x1B[38;2;224;89;0m▗\x1B[0m \x1B[0m`,` \x1B[38;2;0;0;0m \x1B[38;2;217;80;0m▝\x1B[7m\x1B[38;2;217;80;0m▂\x1B[0m\x1B[38;2;217;80;0m\x1B[48;2;221;86;0m▄\x1B[38;2;197;78;9m\x1B[48;2;66;66;65m▋\x1B[38;2;65;65;64m\x1B[48;2;60;60;60m▘\x1B[38;2;52;52;51m\x1B[48;2;56;56;56m▗\x1B[38;2;45;45;45m\x1B[48;2;50;50;49m▗\x1B[38;2;42;42;42m\x1B[48;2;46;46;46m┈\x1B[38;2;41;41;41m\x1B[48;2;203;202;202m▆\x1B[38;2;38;38;38m\x1B[48;2;218;218;218m▄\x1B[38;2;45;45;45m\x1B[48;2;221;221;221m▂\x1B[38;2;229;229;229m┊\x1B[38;2;225;225;225m\x1B[48;2;228;228;227m▄\x1B[38;2;225;224;224m\x1B[48;2;209;79;0m▍\x1B[0m\x1B[7m\x1B[38;2;217;80;0m▂\x1B[0m\x1B[38;2;217;80;0m▘ \x1B[0m`,` \x1B[38;2;0;0;0m \x1B[7m\x1B[38;2;191;73;0m▆\x1B[38;2;191;73;0m▄\x1B[38;2;56;55;55m▃\x1B[38;2;46;46;46m▁\x1B[0m\x1B[38;2;20;20;20m\x1B[48;2;42;42;42m▁\x1B[38;2;36;36;36m\x1B[48;2;35;34;34m╴\x1B[38;2;23;23;23m\x1B[48;2;29;29;28m▁\x1B[38;2;10;10;10m\x1B[48;2;22;22;22m▁\x1B[0m\x1B[7m\x1B[38;2;15;15;15m▁\x1B[38;2;22;22;21m▃\x1B[38;2;154;154;154m▅\x1B[38;2;175;116;83m▇\x1B[0m\x1B[38;2;17;15;14m \x1B[0m`,`\x1B[?25h\x1B[0m`];var Ne=()=>Y(B,{flexDirection:`row`,height:10,alignItems:`center`,borderStyle:`bold`,borderBottom:!1,borderTop:!1,borderRight:!1,borderColor:`#ff8400`,marginBottom:1,children:[Y(B,{marginBottom:1,paddingLeft:1,flexDirection:`column`,flexGrow:1,children:[J(V,{bold:!0,color:`#ff8400`,children:`Piebald is released!`}),J(V,{children:` `}),Y(V,{children:[`We've released `,J(V,{bold:!0,children:`Piebald`}),`, the ultimate agentic AI developer experience.`]}),Y(V,{children:[`Download it and try it out for free!`,` `,J(Ce,{url:`https://piebald.ai/`,fallback:!1,children:J(V,{color:`#ff8400`,children:`https://piebald.ai/`})})]}),J(V,{children:` `}),J(V,{dimColor:!0,color:`gray`,children:`press 'h' to hide`})]}),J(B,{width:22,flexShrink:0,flexDirection:`column`,alignItems:`center`,children:Me.map((e,t)=>J(V,{children:e},t))})]});let Z=function(e){return e.THEMES=`Themes`,e.THINKING_VERBS=`Thinking verbs`,e.THINKING_STYLE=`Thinking style`,e.USER_MESSAGE_DISPLAY=`User message display`,e.INPUT_PATTERN_HIGHLIGHTERS=`Input pattern highlighters`,e.MISC=`Misc`,e.TOOLSETS=`Toolsets`,e.SUBAGENT_MODELS=`Subagent models`,e.CLAUDE_MD_ALT_NAMES=`CLAUDE.md alternative names`,e.VIEW_SYSTEM_PROMPTS=`View system prompts`,e.RESTORE_ORIGINAL=`Restore original Claude Code (preserves config.json)`,e.OPEN_CONFIG=`Open config.json`,e.OPEN_CLI=`Open Claude Code's cli.js`,e.EXIT=`Exit`,e}({});function Pe({items:e,selectedIndex:t,onSelect:n,onSubmit:r}){return H((i,a)=>{a.upArrow?n(t>0?t-1:e.length-1):a.downArrow?n(t<e.length-1?t+1:0):a.return&&r(e[t].name)}),J(B,{flexDirection:`column`,children:e.map((e,n)=>J(B,{children:Y(V,{children:[Y(V,{bold:n===t,color:n===t?`cyan`:void 0,...n===t?e.selectedStyles??{}:e.styles??{},children:[n===t?`❯ `:` `,e.name]}),e.desc&&n===t&&Y(V,{dimColor:!0,bold:!1,children:[` \x1B[0;2m`,`- `,e.desc]})]})},n))})}const Fe=[{name:Z.THEMES,desc:`Modify Claude Code's built-in themes or create your own`},{name:Z.THINKING_VERBS,desc:`Customize the list of verbs that Claude Code uses when it's working`},{name:Z.THINKING_STYLE,desc:`Choose custom spinners`},{name:Z.USER_MESSAGE_DISPLAY,desc:`Customize how user messages are displayed`},{name:Z.INPUT_PATTERN_HIGHLIGHTERS,desc:`Create custom highlighters for patterns in your input`},{name:Z.MISC,desc:`Miscellaneous settings (input box border, etc.)`},{name:Z.TOOLSETS,desc:`Manage toolsets to control which tools are available`},{name:Z.SUBAGENT_MODELS,desc:`Configure which Claude model each subagent uses (Plan, Explore, etc.)`},{name:Z.CLAUDE_MD_ALT_NAMES,desc:`Configure alternative filenames for CLAUDE.md (e.g., AGENTS.md)`},{name:Z.VIEW_SYSTEM_PROMPTS,desc:`Opens the system prompts directory where you can customize Claude Code's system prompts`}],Ie=[{name:Z.RESTORE_ORIGINAL,desc:`Reverts your Claude Code install to its original state (your customizations are remembered and can be reapplied)`},{name:Z.OPEN_CONFIG,desc:`Opens your tweakcc config file (${P})`},{name:Z.OPEN_CLI,desc:`Opens Claude Code's cli.js file`},{name:Z.EXIT,desc:`Bye!`}];var Le=({onSubmit:e})=>{let t=[...Fe,...Ie],[n,r]=K(0);return J(Pe,{items:t,selectedIndex:n,onSelect:r,onSubmit:t=>e(t)})};const Re=()=>Y(B,{flexDirection:`row`,children:[J(X,{children:`tweakcc`}),J(V,{children:` (by `}),J(Ce,{url:`https://piebald.ai`,fallback:!1,children:J(V,{color:`#ff8400`,bold:!0,children:`Piebald`})}),J(V,{children:`)`})]}),ze=()=>J(B,{children:Y(V,{color:`yellow`,children:[`⭐ `,J(V,{bold:!0,children:`Star the repo at `}),J(Ce,{url:`https://github.com/Piebald-AI/tweakcc`,fallback:!1,children:J(V,{bold:!0,color:`cyan`,children:`https://github.com/Piebald-AI/tweakcc`})}),J(V,{bold:!0,children:` if you find this useful!`}),` ⭐`]})}),Be=({notification:e})=>J(B,{borderLeft:!0,borderRight:!1,borderTop:!1,borderBottom:!1,borderStyle:`bold`,borderColor:e.type===`success`?`green`:e.type===`error`?`red`:e.type===`info`?`blue`:`yellow`,paddingLeft:1,flexDirection:`column`,children:J(V,{color:e.type===`success`?`green`:e.type===`error`?`red`:e.type===`info`?`blue`:`yellow`,children:e.message})}),Ve=({onSubmit:e,notification:t,configMigrated:n,showPiebaldAnnouncement:r,changesApplied:i,invocationCommand:a})=>Y(B,{flexDirection:`column`,gap:1,children:[n&&J(B,{children:J(V,{color:`blue`,bold:!0,children:"Note that in tweakcc v3.2.0+, `ccInstallationDir` config is deprecated. You are now migrated to `ccInstallationPath` which supports npm and native installs."})}),J(Re,{}),J(B,{children:Y(V,{children:[J(V,{bold:!0,children:`Customize your Claude Code installation.`}),` `,Y(V,{dimColor:!0,children:[`Settings will be saved to `,te.replace(Se.homedir(),`~`),`/config.json.`]})]})}),J(r?Ne:ze,{}),t&&J(Be,{notification:t}),!i&&!t&&J(Be,{notification:{message:`Your changes are configured but not applied.\nRun \`${a} --apply\` to apply your customizations!`,type:`info`}}),J(Le,{onSubmit:e})]});function Q({color:e,backgroundColor:t,bold:n,dimColor:r,children:i}){let a=e?.startsWith(`ansi:`),o=t?.startsWith(`ansi:`);if(a||o){if(ge.Children.toArray(i).some(e=>ge.isValidElement(e)))return J(V,{children:i});let s=U;if(a){let t=e.slice(5);s=s[t]||s}if(o){let e=t.slice(5),n=e.startsWith(`bg`)?e:`bg${e.charAt(0).toUpperCase()}${e.slice(1)}`;s=s[n]||s}n&&(s=s.bold),r&&(s=s.dim);let c=ge.Children.toArray(i).map(e=>typeof e==`string`||typeof e==`number`?String(e):``).join(``);return J(V,{children:s(c)})}return J(V,{color:e,backgroundColor:t,bold:n,dimColor:r,children:i})}function He({text:e,nonShimmerColors:t,shimmerColors:n,shimmerWidth:r=3,updateDuration:i=50,restartPoint:a=10}){let[o,s]=K(0);return G(()=>{let t=setInterval(()=>{s(t=>{let n=t+1;return n>=e.length+a?-r:n})},i);return()=>clearInterval(t)},[e.length,a,i]),t.length===n.length?J(V,{children:e.split(``).map((i,a)=>{let s=a>=o&&a<o+r&&o<e.length,c=a%t.length;return J(V,{color:s?n[c]:t[c],children:i},a)})}):(console.error(`UltrathinkRainbowShimmer: nonShimmerColors and shimmerColors must have the same length`),J(V,{children:e}))}const Ue=De.cwd();function We({theme:e}){let{ccVersion:t}=W($);return Y(B,{flexDirection:`column`,paddingLeft:1,children:[J(B,{marginBottom:1,children:Y(V,{bold:!0,children:[`Preview: `,e.name]})}),J(B,{borderStyle:`single`,borderColor:`gray`,paddingX:1,children:Y(B,{flexDirection:`column`,children:[Y(B,{flexDirection:`column`,children:[Y(V,{children:[J(Q,{color:e.colors.clawd_body,children:` ▐`}),J(V,{color:e.colors.clawd_body,backgroundColor:e.colors.clawd_background,children:`▛███▜`}),Y(V,{children:[J(Q,{color:e.colors.clawd_body,children:`▌ `}),` `,J(V,{bold:!0,children:`Claude Code`}),` `,t?`v${t}`:`v2.0.14`]})]}),Y(V,{children:[J(Q,{color:e.colors.clawd_body,children:`▝▜`}),J(V,{color:e.colors.clawd_body,backgroundColor:e.colors.clawd_background,children:`█████`}),J(Q,{color:e.colors.clawd_body,children:`▛▘`}),` `,w(),` · `,oe()]}),Y(Q,{color:e.colors.clawd_body,children:[` `,`▘▘ ▝▝`,` `,Ue]}),Y(V,{children:[Y(Q,{color:e.colors.success,children:[`Login successful. Press`,` `]}),J(Q,{bold:!0,color:e.colors.success,children:`Enter`}),Y(Q,{color:e.colors.success,children:[` `,`to continue…`]})]})]}),J(V,{children:`╭─────────────────────────────────────────────╮`}),Y(V,{children:[`│ 1 function greet() `,`{`,` `,`│`]}),Y(V,{children:[`│ 2`,` `,J(Q,{backgroundColor:e.colors.diffRemoved,color:e.colors.text,children:`- console.log("`}),J(Q,{backgroundColor:e.colors.diffRemovedWord,children:`Hello, World!`}),J(Q,{backgroundColor:e.colors.diffRemoved,children:`");`}),` `,`│`]}),Y(V,{children:[`│ 2`,` `,J(Q,{backgroundColor:e.colors.diffAdded,color:e.colors.text,children:`+ console.log("`}),J(Q,{backgroundColor:e.colors.diffAddedWord,children:`Hello, Claude!`}),J(Q,{backgroundColor:e.colors.diffAdded,children:`");`}),` `,`│`]}),J(Q,{color:e.colors.warning,children:`╭─────────────────────────────────────────────╮`}),Y(Q,{color:e.colors.warning,children:[`│ Do you trust the files in this folder?`,` `,`│`]}),Y(V,{children:[J(Q,{color:e.colors.warning,children:`│ `}),J(V,{dimColor:!0,children:`Enter to confirm · Esc to exit`}),Y(Q,{color:e.colors.warning,children:[` `,`│`]})]}),J(Q,{color:e.colors.bashBorder,children:`───────────────────────────────────────────────`}),Y(V,{children:[J(Q,{color:e.colors.bashBorder,children:`!`}),J(V,{children:` ls`})]}),J(Q,{color:e.colors.promptBorder,children:`───────────────────────────────────────────────`}),J(V,{children:Y(V,{children:[`> list the dir`,` `,J(He,{text:`ultrathink`,nonShimmerColors:[e.colors.rainbow_red,e.colors.rainbow_orange,e.colors.rainbow_yellow,e.colors.rainbow_green,e.colors.rainbow_blue,e.colors.rainbow_indigo,e.colors.rainbow_violet],shimmerColors:[e.colors.rainbow_red_shimmer,e.colors.rainbow_orange_shimmer,e.colors.rainbow_yellow_shimmer,e.colors.rainbow_green_shimmer,e.colors.rainbow_blue_shimmer,e.colors.rainbow_indigo_shimmer,e.colors.rainbow_violet_shimmer],shimmerWidth:3,updateDuration:50,restartPoint:10})]})}),J(Q,{color:e.colors.planMode,children:`╭─────────────────────────────────────────────╮`}),Y(V,{children:[J(Q,{color:e.colors.planMode,children:`│ `}),Y(Q,{color:e.colors.permission,children:[`Ready to code?`,` `]}),J(V,{children:`Here is Claude's plan:`}),Y(Q,{color:e.colors.planMode,children:[` `,`│`]})]}),J(Q,{color:e.colors.permission,children:`╭─────────────────────────────────────────────╮`}),Y(V,{children:[J(Q,{color:e.colors.permission,children:`│ `}),J(V,{bold:!0,children:`Permissions:`}),` `,Y(Q,{backgroundColor:e.colors.permission,color:e.colors.inverseText,bold:!0,children:[` `,`Allow`,` `]}),` `,`Deny`,` `,`Workspace`,` `,J(Q,{color:e.colors.permission,children:`│`})]}),J(V,{children:`> list the dir`}),Y(V,{children:[J(Q,{color:e.colors.error,children:`●`}),J(V,{children:` Update(__init__.py)`})]}),Y(V,{children:[J(V,{children:` ⎿ `}),J(Q,{color:e.colors.error,children:`User rejected update to __init__.py`})]}),Y(V,{children:[` `,`1`,` `,Y(Q,{backgroundColor:e.colors.diffRemovedDimmed,children:[`- import`,` `]}),J(Q,{backgroundColor:e.colors.diffRemovedWordDimmed,children:`os`})]}),Y(V,{children:[` `,`2`,` `,Y(Q,{backgroundColor:e.colors.diffAddedDimmed,children:[`+ import`,` `]}),J(Q,{backgroundColor:e.colors.diffAddedWordDimmed,children:`random`})]}),Y(V,{children:[J(Q,{color:e.colors.success,children:`●`}),J(V,{children:` List(.)`})]}),Y(V,{children:[J(V,{children:`●`}),J(V,{children:` The directory `}),J(Q,{color:e.colors.permission,children:`C:\\Users\\user`}),Y(V,{children:[` `,`contains `,J(V,{bold:!0,children:`123`}),` files.`]})]}),Y(V,{children:[J(Q,{color:e.colors.claude,children:`✻ Th`}),J(Q,{color:e.colors.claudeShimmer,children:`ink`}),J(Q,{color:e.colors.claude,children:`ing… `}),J(V,{children:`(esc to interrupt)`})]}),J(V,{children:J(Q,{color:e.colors.autoAccept,children:`⏵⏵ accept edits on (shift+tab to cycle)`})}),J(V,{children:J(Q,{color:e.colors.planMode,children:`⏸ plan mode on (shift+tab to cycle)`})}),J(V,{children:J(Q,{color:e.colors.ide,children:`◯ IDE connected ⧉ 44 lines selected`})})]})})]})}function Ge({colorKey:e,theme:t,bold:n=!1}){let r=t.colors[e];return e===`inverseText`?J(Q,{color:r,backgroundColor:t.colors.permission,bold:n,children:e}):e.startsWith(`diff`)?J(Q,{backgroundColor:r,bold:n,color:t.colors.text,children:e}):J(Q,{color:r,bold:n,children:e})}function Ke({initialValue:e,onColorChange:t,onExit:n,colorKey:r,theme:i}){let a=Je(e)||{h:0,s:50,l:50},o=qe(e)||{r:128,g:128,b:128},[s,c]=K(a),[l,u]=K(o),[d,f]=K(`hsl`),[p,m]=K(`h`),[h,_]=K(!1),[v,y]=K(!1);G(()=>{let t=Je(e),n=qe(e);t&&n&&(_(!0),c(t),u(n),_(!1))},[e]),G(()=>{!h&&v&&t(`rgb(${l.r},${l.g},${l.b})`)},[s,l,h,v]),G(()=>{y(!0)},[]);let b=e=>{if(se(e)){let t=g(e),n=Je(t),r=qe(t);n&&r&&(_(!0),c(n),u(r),_(!1))}};H((e,t)=>{if(e.length>1&&!t.ctrl&&!t.meta){b(e);return}t.return||t.escape?n():t.ctrl&&e===`a`?(f(e=>e===`hsl`?`rgb`:`hsl`),m(e=>d===`hsl`?e===`h`?`r`:e===`s`?`g`:`b`:e===`r`?`h`:e===`g`?`s`:`l`)):t.upArrow?m(d===`hsl`?e=>e===`h`?`l`:e===`s`?`h`:`s`:e=>e===`r`?`b`:e===`g`?`r`:`g`):t.downArrow||t.tab?m(d===`hsl`?e=>e===`h`?`s`:e===`s`?`l`:`h`:e=>e===`r`?`g`:e===`g`?`b`:`r`):t.leftArrow?x(t.shift||t.ctrl||t.meta?-10:-1):t.rightArrow&&x(t.shift||t.ctrl||t.meta?10:1)});let x=e=>{_(!0),d===`hsl`?c(t=>{let n={...t};p===`h`?n.h=Math.max(0,Math.min(359,t.h+e)):p===`s`?n.s=Math.max(0,Math.min(100,t.s+e)):p===`l`&&(n.l=Math.max(0,Math.min(100,t.l+e)));let[r,i,a]=C(n.h,n.s,n.l);return u({r,g:i,b:a}),n}):u(t=>{let n={...t};return p===`r`?n.r=Math.max(0,Math.min(255,t.r+e)):p===`g`?n.g=Math.max(0,Math.min(255,t.g+e)):p===`b`&&(n.b=Math.max(0,Math.min(255,t.b+e))),c(S(n.r,n.g,n.b)),n}),_(!1)},S=(e,t,n)=>{let r=e/255,i=t/255,a=n/255,o=Math.max(r,i,a),s=Math.min(r,i,a),c=o-s,l=(o+s)/2,u=0;c!==0&&(u=l>.5?c/(2-o-s):c/(o+s));let d=0;return c!==0&&(d=o===r?((i-a)/c+(i<a?6:0))/6:o===i?((a-r)/c+2)/6:((r-i)/c+4)/6),{h:Math.round(d*360),s:Math.round(u*100),l:Math.round(l*100)}},C=(e,t,n)=>{e/=360,t/=100,n/=100;let r=(1-Math.abs(2*n-1))*t,i=r*(1-Math.abs(e*6%2-1)),a=n-r/2,o=0,s=0,c=0;return 0<=e&&e<1/6?(o=r,s=i,c=0):1/6<=e&&e<2/6?(o=i,s=r,c=0):2/6<=e&&e<3/6?(o=0,s=r,c=i):3/6<=e&&e<4/6?(o=0,s=i,c=r):4/6<=e&&e<5/6?(o=i,s=0,c=r):5/6<=e&&e<1&&(o=r,s=0,c=i),[Math.round((o+a)*255),Math.round((s+a)*255),Math.round((c+a)*255)]},w=()=>{let e=[],t=[[255,0,0],[255,127,0],[255,255,0],[127,255,0],[0,255,0],[0,255,127],[0,255,255],[0,127,255],[0,0,255],[127,0,255],[255,0,255],[255,0,127],[255,0,0]];for(let n=0;n<40;n++){let r=n/39*(t.length-1),i=Math.floor(r),a=Math.ceil(r),o=r-i,[s,c,l]=t[i],[u,d,f]=t[a],p=Math.round(s+(u-s)*o),m=Math.round(c+(d-c)*o),h=Math.round(l+(f-l)*o);e.push(J(V,{backgroundColor:`rgb(${p},${m},${h})`,children:` `},n))}return e},T=()=>{let e=[];for(let t=0;t<40;t++){let n=t/39*100,[r,i,a]=C(s.h,n,s.l);e.push(J(V,{backgroundColor:`rgb(${r},${i},${a})`,children:` `},t))}return e},E=()=>{let e=[];for(let t=0;t<40;t++){let n=t/39*100,[r,i,a]=C(s.h,s.s,n);e.push(J(V,{backgroundColor:`rgb(${r},${i},${a})`,children:` `},t))}return e},D=()=>{let[e,t,n]=C(s.h,s.s,s.l);return`rgb(${e},${t},${n})`},O=(e,t,n)=>{let r=e=>e.toString(16).padStart(2,`0`);return`#${r(e)}${r(t)}${r(n)}`},k=()=>{let e=[];for(let t=0;t<40;t++){let n=Math.round(t/39*255);e.push(J(V,{backgroundColor:`rgb(${n},${l.g},${l.b})`,children:` `},t))}return e},A=()=>{let e=[];for(let t=0;t<40;t++){let n=Math.round(t/39*255);e.push(J(V,{backgroundColor:`rgb(${l.r},${n},${l.b})`,children:` `},t))}return e},j=()=>{let e=[];for(let t=0;t<40;t++){let n=Math.round(t/39*255);e.push(J(V,{backgroundColor:`rgb(${l.r},${l.g},${n})`,children:` `},t))}return e},M=(e,t)=>Math.round(e/t*39);return Y(B,{flexDirection:`column`,borderStyle:`single`,borderColor:`white`,padding:1,children:[Y(B,{flexDirection:`column`,children:[J(V,{bold:!0,children:`Color Picker`}),Y(B,{marginBottom:1,flexDirection:`column`,children:[J(V,{color:`gray`,dimColor:!0,children:`←→ to adjust (shift/ctrl/cmd +10)`}),J(V,{color:`gray`,dimColor:!0,children:`↑↓ to change bar`}),J(V,{color:`gray`,dimColor:!0,children:`ctrl+a to switch rgb/hsl`}),J(V,{color:`gray`,dimColor:!0,children:`paste color from clipboard`}),J(V,{color:`gray`,dimColor:!0,children:`enter to exit (auto-saved)`}),J(V,{color:`gray`,dimColor:!0,children:`esc to save and exit`})]})]}),d===`hsl`?Y(q,{children:[Y(B,{marginBottom:1,children:[J(B,{width:25,children:Y(V,{color:p===`h`?`yellow`:`white`,children:[p===`h`?`❯ `:` `,`Hue (`,s.h,`°):`]})}),J(B,{children:w().map((e,t)=>J(_e,{children:t===M(s.h,360)?J(V,{children:`|`}):e},t))})]}),Y(B,{marginBottom:1,children:[J(B,{width:25,children:Y(V,{color:p===`s`?`yellow`:`white`,children:[p===`s`?`❯ `:` `,`Saturation (`,s.s,`%):`]})}),J(B,{children:T().map((e,t)=>J(_e,{children:t===M(s.s,100)?J(V,{children:`|`}):e},t))})]}),Y(B,{marginBottom:1,children:[J(B,{width:25,children:Y(V,{color:p===`l`?`yellow`:`white`,children:[p===`l`?`❯ `:` `,`Lightness (`,s.l,`%):`]})}),J(B,{children:E().map((e,t)=>J(_e,{children:t===M(s.l,100)?J(V,{children:`|`}):e},t))})]})]}):Y(q,{children:[Y(B,{marginBottom:1,children:[J(B,{width:25,children:Y(V,{color:p===`r`?`yellow`:`white`,children:[p===`r`?`❯ `:` `,`Red (`,l.r,`):`]})}),J(B,{children:k().map((e,t)=>J(_e,{children:t===M(l.r,255)?J(V,{children:`|`}):e},t))})]}),Y(B,{marginBottom:1,children:[J(B,{width:25,children:Y(V,{color:p===`g`?`yellow`:`white`,children:[p===`g`?`❯ `:` `,`Green (`,l.g,`):`]})}),J(B,{children:A().map((e,t)=>J(_e,{children:t===M(l.g,255)?J(V,{children:`|`}):e},t))})]}),Y(B,{marginBottom:1,children:[J(B,{width:25,children:Y(V,{color:p===`b`?`yellow`:`white`,children:[p===`b`?`❯ `:` `,`Blue (`,l.b,`):`]})}),J(B,{children:j().map((e,t)=>J(_e,{children:t===M(l.b,255)?J(V,{children:`|`}):e},t))})]})]}),Y(B,{marginBottom:1,children:[J(V,{children:`Current: `}),J(V,{backgroundColor:D(),children:` `})]}),Y(B,{flexDirection:`row`,justifyContent:`space-between`,children:[Y(B,{flexDirection:`column`,children:[J(V,{dimColor:!0,children:`Hex `}),r?.startsWith(`diff`)?J(V,{backgroundColor:D(),color:i?.colors?.text||`white`,bold:!0,children:O(l.r,l.g,l.b)}):r===`inverseText`?J(V,{color:D(),backgroundColor:i?.colors?.permission,bold:!0,children:O(l.r,l.g,l.b)}):J(V,{color:D(),bold:!0,children:O(l.r,l.g,l.b)})]}),Y(B,{flexDirection:`column`,children:[J(V,{dimColor:!0,children:`RGB `}),r?.startsWith(`diff`)?J(V,{backgroundColor:D(),color:i?.colors?.text||`white`,bold:!0,children:`rgb(${l.r}, ${l.g}, ${l.b})`}):r===`inverseText`?J(V,{color:D(),backgroundColor:i?.colors?.permission,bold:!0,children:`rgb(${l.r}, ${l.g}, ${l.b})`}):J(V,{color:D(),bold:!0,children:`rgb(${l.r}, ${l.g}, ${l.b})`})]}),Y(B,{flexDirection:`column`,children:[J(V,{dimColor:!0,children:`HSL `}),r?.startsWith(`diff`)?J(V,{backgroundColor:D(),color:i?.colors?.text||`white`,bold:!0,children:`hsl(${s.h}, ${s.s}%, ${s.l}%)`}):r===`inverseText`?J(V,{color:D(),backgroundColor:i?.colors?.permission,bold:!0,children:`hsl(${s.h}, ${s.s}%, ${s.l}%)`}):J(V,{color:D(),bold:!0,children:`hsl(${s.h}, ${s.s}%, ${s.l}%)`})]})]})]})}function qe(e){let t=e.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);if(t)return{r:parseInt(t[1]),g:parseInt(t[2]),b:parseInt(t[3])};let n=e.match(/^#([a-fA-F0-9]{6})$/);if(n){let e=n[1];return{r:parseInt(e.substr(0,2),16),g:parseInt(e.substr(2,2),16),b:parseInt(e.substr(4,2),16)}}return null}function Je(e){let t=e.match(/hsl\((\d+),\s*(\d+)%,\s*(\d+)%\)/);if(t)return{h:parseInt(t[1]),s:parseInt(t[2]),l:parseInt(t[3])};let n=e.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);if(n){let e=parseInt(n[1])/255,t=parseInt(n[2])/255,r=parseInt(n[3])/255,i=Math.max(e,t,r),a=Math.min(e,t,r),o=i-a,s=(i+a)/2,c=0;o!==0&&(c=s>.5?o/(2-i-a):o/(i+a));let l=0;return o!==0&&(l=i===e?((t-r)/o+(t<r?6:0))/6:i===t?((r-e)/o+2)/6:((e-t)/o+4)/6),{h:Math.round(l*360),s:Math.round(c*100),l:Math.round(s*100)}}let r=e.match(/^#([a-fA-F0-9]{6})$/);if(r){let e=r[1],t=parseInt(e.substr(0,2),16)/255,n=parseInt(e.substr(2,2),16)/255,i=parseInt(e.substr(4,2),16)/255,a=Math.max(t,n,i),o=Math.min(t,n,i),s=a-o,c=(a+o)/2,l=0;s!==0&&(l=c>.5?s/(2-a-o):s/(a+o));let u=0;return s!==0&&(u=a===t?((n-i)/s+(n<i?6:0))/6:a===n?((i-t)/s+2)/6:((t-n)/s+4)/6),{h:Math.round(u*360),s:Math.round(l*100),l:Math.round(c*100)}}return{h:0,s:50,l:50}}function Ye({onBack:e,themeId:t}){let{settings:{themes:n},updateSettings:r}=W($),[i,a]=K(t),o=n.find(e=>e.id===i)||n[0],[s,c]=K(`rgb`),[l,u]=K(0),[d,f]=K(null),[p,m]=K(null),[h,_]=K(``),[v,y]=K(``),[b,x]=K(!1),[S,C]=K(0),w=ye(e=>{r(t=>{let n=t.themes.findIndex(e=>e.id===i);n!==-1&&e(t.themes[n])})},[i,r]),T=e=>{if(l>=2&&se(e)){let t=g(e),n=E[l-2];w(e=>{e.colors[n]=t})}};H((t,n)=>{if(b){if(n.escape){x(!1),e();return}return}if(d===null&&p===null){if(t.length>1&&!n.ctrl&&!n.meta){T(t);return}if(n.escape)x(!0),C(0);else if(n.ctrl&&t===`a`)c(e=>e===`rgb`?`hex`:e===`hex`?`hsl`:`rgb`);else if(n.upArrow)u(e=>Math.max(0,e-1));else if(n.downArrow)u(e=>Math.min(E.length+1,e+1));else if(n.return)if(l===0)m(`name`),_(o.name),y(o.name);else if(l===1)m(`id`),_(o.id),y(o.id);else{let e=l-2,t=E[e],n=o.colors[t];f(e),_(n),y(n)}}else if(d!==null)n.ctrl&&t===`a`&&c(e=>e===`rgb`?`hex`:e===`hex`?`hsl`:`rgb`);else if(p!==null)if(n.return){if(p===`id`){let e=i;a(h),r(t=>{let n=t.themes.findIndex(t=>t.id===e);n!==-1&&(t.themes[n].id=h)})}else w(e=>{e.name=h});m(null),_(``),y(``)}else n.escape?(m(null),_(``),y(``)):n.backspace||n.delete?_(e=>e.slice(0,-1)):t&&_(e=>e+t)});let E=Object.keys(o.colors),D=(e,t)=>{let n=e.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);if(!n)return e;let r=parseInt(n[1]),i=parseInt(n[2]),a=parseInt(n[3]);switch(t){case`hex`:{let e=e=>e.toString(16).padStart(2,`0`);return`#${e(r)}${e(i)}${e(a)}`}case`hsl`:{let e=r/255,t=i/255,n=a/255,o=Math.max(e,t,n),s=Math.min(e,t,n),c=o-s,l=(o+s)/2,u=0;c!==0&&(u=l>.5?c/(2-o-s):c/(o+s));let d=0;return c!==0&&(d=o===e?((t-n)/c+(t<n?6:0))/6:o===t?((n-e)/c+2)/6:((e-t)/c+4)/6),`hsl(${Math.round(d*360)}, ${Math.round(u*100)}%, ${Math.round(l*100)}%)`}case`rgb`:default:return e}},O=e=>({autoAccept:`Auto-accept edits mode indicator`,bashBorder:`Bash command border`,claude:`Claude branding color. Used for the Claude logo, the welcome message, and the thinking text.`,claudeShimmer:`Color used for the shimmering effect on the thinking verb.`,claudeBlue_FOR_SYSTEM_SPINNER:`System spinner color (blue variant)`,claudeBlueShimmer_FOR_SYSTEM_SPINNER:`System spinner shimmer color (blue variant)`,permission:`Permission prompt color`,permissionShimmer:`Permission prompt shimmer color`,planMode:`Plan mode indicator`,ide:`Color used for IDE-related messages.`,promptBorder:`Input prompt border color`,promptBorderShimmer:`Input prompt border shimmer color`,text:`Code color. Used in diffs.`,inverseText:`Inverse text color. Used for the text of tabs, where the background is filled in.`,inactive:`Inactive/dimmed text. Used for line numbers and less prominent text.`,subtle:`Subtle text. Used for help text and secondary information.`,suggestion:`Suggestion text color. Used for suggestions for theme names and various other things.`,remember:`Remember/note color. Used for various text relating to memories.`,background:`Background color for certain UI elements`,success:`Success indicator. Used for the bullet on successful tool calls, and various success messages (such as sign in successful).`,error:`Error indicator`,warning:`Warning indicator`,warningShimmer:`Warning shimmer color`,diffAdded:`Added diff background`,diffRemoved:`Removed diff background`,diffAddedDimmed:`Added diff background (dimmed)`,diffRemovedDimmed:`Removed diff background (dimmed)`,diffAddedWord:`Added word highlight`,diffRemovedWord:`Removed word highlight`,diffAddedWordDimmed:`Added word highlight (dimmed)`,diffRemovedWordDimmed:`Removed word highlight (dimmed)`,red_FOR_SUBAGENTS_ONLY:`Red color for sub agents`,blue_FOR_SUBAGENTS_ONLY:`Blue color for sub agents`,green_FOR_SUBAGENTS_ONLY:`Green color for sub agents`,yellow_FOR_SUBAGENTS_ONLY:`Yellow color for sub agents`,purple_FOR_SUBAGENTS_ONLY:`Purple color for sub agents`,orange_FOR_SUBAGENTS_ONLY:`Orange color for sub agents`,pink_FOR_SUBAGENTS_ONLY:`Pink color for sub agents`,cyan_FOR_SUBAGENTS_ONLY:`Cyan color for sub agents`,professionalBlue:`Professional blue color for business contexts?`,rainbow_red:`"ultrathink" rainbow - red`,rainbow_orange:`"ultrathink" rainbow - orange`,rainbow_yellow:`"ultrathink" rainbow - yellow`,rainbow_green:`"ultrathink" rainbow - green`,rainbow_blue:`"ultrathink" rainbow - blue`,rainbow_indigo:`"ultrathink" rainbow - indigo`,rainbow_violet:`"ultrathink" rainbow - violet`,rainbow_red_shimmer:`"ultrathink" rainbow (shimmer) - red`,rainbow_orange_shimmer:`"ultrathink" rainbow (shimmer) - orange`,rainbow_yellow_shimmer:`"ultrathink" rainbow (shimmer) - yellow`,rainbow_green_shimmer:`"ultrathink" rainbow (shimmer) - green`,rainbow_blue_shimmer:`"ultrathink" rainbow (shimmer) - blue`,rainbow_indigo_shimmer:`"ultrathink" rainbow (shimmer) - indigo`,rainbow_violet_shimmer:`"ultrathink" rainbow (shimmer) - violet`,clawd_body:`"Clawd" character body color`,clawd_background:`"Clawd" character background color`,userMessageBackground:`Background color for user messages`,bashMessageBackgroundColor:`Background color for bash command output`,memoryBackgroundColor:`Background color for memory/context information`,rate_limit_fill:`Rate limit indicator fill color`,rate_limit_empty:`Rate limit indicator empty/background color`})[e]||``,k=Math.max(...E.map(e=>e.length));return Y(B,{children:[Y(B,{flexDirection:`column`,width:`50%`,children:[J(B,{children:Y(X,{children:[`Editing theme “`,o.name,`” (`,o.id,`)`]})}),b?Y(B,{flexDirection:`column`,marginTop:1,children:[J(B,{marginBottom:1,children:Y(V,{bold:!0,children:[`Would you like to make “`,o.name,`” your current Claude Code theme?`]})}),J(Pe,{items:[{name:`Yes`,desc:`Set ${o.id} as active theme`},{name:`No`,desc:`Go back without changing theme`}],selectedIndex:S,onSelect:C,onSubmit:()=>{S===0&&j(o.id),x(!1),e()}}),J(V,{dimColor:!0,children:`enter to select, esc to cancel`})]}):d===null&&p===null?Y(q,{children:[Y(B,{marginBottom:1,flexDirection:`column`,children:[J(V,{dimColor:!0,children:`enter to edit theme name, id, or color`}),J(V,{dimColor:!0,children:`ctrl+a to toggle rgb, hex, hsl`}),J(V,{dimColor:!0,children:`paste color from clipboard (when on color)`}),J(V,{dimColor:!0,children:`esc to go back`})]}),l<2?Y(B,{marginBottom:1,borderStyle:`single`,borderTop:!1,borderBottom:!1,borderRight:!1,borderColor:`yellow`,flexDirection:`column`,paddingLeft:1,children:[J(V,{bold:!0,children:l===0?`Theme Name`:`Theme ID`}),J(V,{children:l===0?`The display name for this theme`:"Unique identifier for this theme; used in `.claude.json` to select the theme."})]}):Y(B,{marginBottom:1,borderStyle:`single`,borderTop:!1,borderBottom:!1,borderRight:!1,borderColor:o.colors[E[l-2]],flexDirection:`column`,paddingLeft:1,children:[J(Ge,{colorKey:E[l-2],theme:o,bold:!0}),J(V,{children:O(E[l-2])})]}),Y(B,{flexDirection:`column`,children:[Y(B,{children:[J(V,{color:l===0?`yellow`:`white`,children:l===0?`❯ `:` `}),J(V,{bold:!0,children:`Name: `}),J(V,{children:o.name})]}),Y(B,{marginBottom:1,children:[J(V,{color:l===1?`yellow`:`white`,children:l===1?`❯ `:` `}),J(V,{bold:!0,children:`ID: `}),J(V,{children:o.id})]}),(()=>{if(l<2)return Y(q,{children:[E.slice(0,20).map((e,t)=>{let n=t+2;return Y(B,{children:[J(V,{color:l===n?`yellow`:`white`,children:l===n?`❯ `:` `}),J(B,{width:k+2,children:J(V,{children:J(Ge,{colorKey:e,theme:o,bold:!0})})}),J(Q,{color:o.colors[e],children:D(o.colors[e],s)})]},e)}),E.length>20&&Y(V,{color:`gray`,dimColor:!0,children:[` `,`↓ `,E.length-20,` more below`]})]});let e=l-2,t=Math.max(0,e-10),n=Math.min(E.length,t+20),r=Math.max(0,n-20),i=E.slice(r,n);return Y(q,{children:[r>0&&Y(V,{color:`gray`,dimColor:!0,children:[` `,`↑ `,r,` more above`]}),i.map((e,t)=>{let n=r+t+2;return Y(B,{children:[J(V,{color:l===n?`yellow`:`white`,children:l===n?`❯ `:` `}),J(B,{width:k+2,children:J(V,{children:J(Ge,{colorKey:e,theme:o,bold:!0})})}),J(Q,{color:o.colors[e],children:D(o.colors[e],s)})]},e)}),n<E.length&&Y(V,{color:`gray`,dimColor:!0,children:[` `,`↓ `,E.length-n,` more below`]})]})})()]})]}):p?Y(B,{flexDirection:`column`,marginTop:1,children:[Y(V,{children:[`Editing `,p===`name`?`theme name`:`theme ID`,`:`]}),J(B,{borderStyle:`round`,borderColor:`yellow`,paddingX:1,children:J(V,{children:h})}),J(V,{dimColor:!0,children:`enter to save, esc to cancel`})]}):J(Ke,{initialValue:v,colorKey:E[d],theme:o,onColorChange:e=>{_(e),w(t=>{t.colors[E[d]]=e})},onExit:()=>{w(e=>{e.colors[E[d]]=h}),f(null),_(``),y(``)}})]}),J(B,{width:`50%`,children:J(We,{theme:o})})]})}const Xe=`https://raw.githubusercontent.com/Piebald-AI/claude-code-themes/main`,Ze=`${Xe}/index.json`;async function Qe(){E(`Fetching community theme index from ${Ze}`);let e=await fetch(Ze,{headers:{Accept:`application/json`}});if(!e.ok)throw Error(`Failed to fetch community theme index: ${e.status} ${e.statusText}`);return await e.json()}async function $e(e){let t=`${Xe}/themes/${e}.json`;E(`Fetching community theme from ${t}`);let n=await fetch(t,{headers:{Accept:`application/json`}});if(!n.ok)throw Error(`Failed to fetch community theme "${e}": ${n.status} ${n.statusText}`);return await n.json()}function et({onBack:e}){let{updateSettings:t}=W($),[n,r]=K({status:`loading`}),[i,a]=K(0),[o,s]=K(null),[c,l]=K(!1),[u,d]=K(null),f=xe(0);G(()=>{Qe().then(e=>{r({status:`loaded`,entries:e})}).catch(e=>{r({status:`error`,message:e.message})})},[]);let p=n.status===`loaded`?n.entries:[],h=ye(async e=>{let t=++f.current;l(!0),d(null);try{let n=await $e(e);if(t!==f.current)return;s(N(n,m))}catch{if(t!==f.current)return;s(null),d(`Failed to load preview.`)}finally{t===f.current&&l(!1)}},[]),g=ye(async e=>{d(`Downloading theme…`);try{let n=N(await $e(e.id),m),r=!1;t(e=>{e.themes.some(e=>e.id===n.id)||(e.themes.push(n),r=!0)}),d(r?`Added "${n.name}" to your themes!`:`Theme "${n.name}" (${n.id}) is already in your config.`)}catch{d(`Failed to download theme.`)}},[t]);return H((t,r)=>{if(r.escape){e();return}if(n.status!==`loaded`)return;let o=n.entries.length;if(o!==0){if(r.upArrow)a(e=>Math.max(0,e-1)),s(null),d(null);else if(r.downArrow)a(e=>Math.min(o-1,e+1)),s(null),d(null);else if(t===` `){let e=n.entries[i];e&&h(e.id)}else if(r.return){let e=n.entries[i];e&&g(e)}}}),n.status===`loading`?Y(B,{flexDirection:`column`,children:[J(X,{children:`Community Themes`}),J(V,{children:`Loading community themes…`})]}):n.status===`error`?Y(B,{flexDirection:`column`,children:[J(X,{children:`Community Themes`}),Y(V,{color:`red`,children:[`Error: `,n.message]}),J(V,{dimColor:!0,children:`esc to go back`})]}):Y(B,{children:[Y(B,{flexDirection:`column`,width:`50%`,children:[J(X,{children:`Community Themes`}),Y(B,{marginBottom:1,flexDirection:`column`,children:[J(V,{dimColor:!0,children:`space to preview theme`}),J(V,{dimColor:!0,children:`enter to download theme`}),J(V,{dimColor:!0,children:`esc to go back`})]}),J(B,{flexDirection:`column`,children:p.map((e,t)=>Y(V,{color:i===t?`yellow`:void 0,children:[i===t?`❯ `:` `,e.name,` (`,e.id,`) by @`,e.author]},e.id))}),u&&J(B,{marginTop:1,children:J(V,{color:`cyan`,children:u})}),c&&J(B,{marginTop:1,children:J(V,{dimColor:!0,children:`Loading preview…`})})]}),J(B,{width:`50%`,children:o?J(We,{theme:o}):J(B,{flexDirection:`column`,justifyContent:`center`,alignItems:`center`,height:10,children:J(V,{dimColor:!0,children:`Press space to preview the selected theme.`})})})]})}function tt(e){return e.map(e=>`${e.name} (${e.id})`)}function nt({onBack:e}){let{settings:{themes:t},updateSettings:n}=W($),[r,i]=K(0),[a,o]=K(null),[s,c]=K(!0),[l,u]=K(!1),d=t.length+1,f=()=>{let e={colors:{...(t[0]||x.themes[0]).colors},name:`New Custom Theme`,id:`custom-${Date.now()}`};n(t=>{t.themes.push(e)}),o(e.id),c(!1)},p=e=>{t.length<=1||(n(t=>{t.themes=t.themes.filter(t=>t.id!==e)}),r>=t.length-1&&i(Math.max(0,t.length-2)))},m=()=>{n(e=>{e.themes=[...x.themes]}),i(0)},h=r===t.length;if(H((n,a)=>{if(a.escape)e();else if(a.upArrow)i(e=>Math.max(0,e-1));else if(a.downArrow)i(e=>Math.min(d-1,e+1));else if(a.return)if(h)u(!0),c(!1);else{let e=t[r];e&&(o(e.id),c(!1))}else if(n===`n`)f();else if(n===`d`){if(!h){let e=t[r];e&&p(e.id)}}else a.ctrl&&n===`r`&&m()},{isActive:s}),l)return J(et,{onBack:()=>{u(!1),c(!0)}});if(a)return J(Ye,{themeId:a,onBack:()=>{o(null),c(!0)}});let g=tt(t),_=t.find(e=>g[r]?.includes(`(${e.id})`))||t[0];return t.length===0?J(B,{children:Y(B,{flexDirection:`column`,width:`100%`,children:[J(X,{children:`Themes`}),Y(B,{marginBottom:1,flexDirection:`column`,children:[J(V,{dimColor:!0,children:`n to create a new theme`}),J(V,{dimColor:!0,children:`esc to go back`})]}),J(V,{children:`No themes available!`})]})}):Y(B,{children:[Y(B,{flexDirection:`column`,width:`50%`,children:[J(X,{children:`Themes`}),Y(B,{marginBottom:1,flexDirection:`column`,children:[J(V,{dimColor:!0,children:`n to create a new theme`}),J(V,{dimColor:!0,children:`d to delete a theme`}),J(V,{dimColor:!0,children:`ctrl+r to delete all themes and restore built-in`}),J(V,{dimColor:!0,children:`enter to edit theme`}),J(V,{dimColor:!0,children:`esc to go back`})]}),Y(B,{flexDirection:`column`,children:[g.map((e,t)=>Y(V,{color:r===t?`yellow`:void 0,children:[r===t?`❯ `:` `,e]},t)),Y(V,{color:h?`blue`:void 0,bold:h,children:[h?`❯ `:` `,`Browse community themes…`]})]})]}),J(B,{width:`50%`,children:h?J(B,{flexDirection:`column`,justifyContent:`center`,alignItems:`center`,height:10,children:J(V,{dimColor:!0,children:`Press enter to browse community themes.`})}):J(We,{theme:_})})]})}function rt({onBack:e}){let{settings:{thinkingVerbs:{format:t,verbs:n},themes:r},updateSettings:i}=W($),a=[`format`,`verbs`],[o,s]=K(0),c=a[o],[l,u]=K(0),[d,f]=K(!1),[p,m]=K(``),[h,g]=K(!1),[_,v]=K(!1),[y,b]=K(t),S=ce(),C=(r.find(e=>e.id===S)||r.find(e=>e.id===`dark`))?.colors.claude||`rgb(215,119,87)`;return H((r,o)=>{if(_){o.return?(i(e=>{e.thinkingVerbs.format=y}),v(!1)):o.escape?(b(t),v(!1)):o.backspace||o.delete?b(e=>e.slice(0,-1)):r&&b(e=>e+r);return}if(d||h){o.return&&p.trim()?(h?(i(e=>{e.thinkingVerbs.verbs.push(p.trim())}),g(!1)):(i(e=>{e.thinkingVerbs.verbs[l]=p.trim()}),f(!1)),m(``)):o.escape?(m(``),f(!1),g(!1)):o.backspace||o.delete?m(e=>e.slice(0,-1)):r&&m(e=>e+r);return}o.escape?e():o.return?c===`format`&&(b(t),v(!0)):o.tab?o.shift?s(e=>e===0?a.length-1:e-1):s(e=>e===a.length-1?0:e+1):o.upArrow?c===`verbs`&&n.length>0&&u(e=>e>0?e-1:n.length-1):o.downArrow?c===`verbs`&&n.length>0&&u(e=>e<n.length-1?e+1:0):r===`e`&&c===`verbs`?n.length>0&&(m(n[l]),f(!0)):r===`d`&&c===`verbs`?n.length>1&&(i(e=>{e.thinkingVerbs.verbs=e.thinkingVerbs.verbs.filter((e,t)=>t!==l)}),l>=n.length-1&&u(Math.max(0,n.length-2))):r===`n`&&c===`verbs`?(g(!0),m(``)):o.ctrl&&r===`r`&&c===`verbs`&&(i(e=>{e.thinkingVerbs.verbs=[...x.thinkingVerbs.verbs]}),u(0))}),Y(B,{children:[Y(B,{flexDirection:`column`,width:`50%`,children:[Y(B,{marginBottom:1,flexDirection:`column`,children:[J(X,{children:`Thinking Verbs`}),Y(B,{flexDirection:`column`,children:[J(V,{dimColor:!0,children:c===`format`?`enter to edit format`:`changes auto-saved`}),J(V,{dimColor:!0,children:`esc to go back`}),J(V,{dimColor:!0,children:`tab to switch sections`})]})]}),J(B,{marginBottom:1,children:J(V,{dimColor:!0,children:`Customize the verbs shown during generation and their format.`})}),Y(B,{flexDirection:`column`,children:[Y(V,{children:[J(V,{color:c===`format`?`yellow`:void 0,children:c===`format`?`❯ `:` `}),J(V,{bold:!0,color:c===`format`?`yellow`:void 0,children:`Format`})]}),c===`format`&&(_?Y(V,{dimColor:!0,children:[` `,`enter to save`]}):Y(V,{dimColor:!0,children:[` `,`enter to edit`]}))]}),J(B,{marginLeft:2,marginBottom:1,children:J(B,{borderStyle:`round`,borderColor:_?`yellow`:`gray`,children:J(V,{children:_?y:t})})}),J(B,{children:Y(V,{children:[J(V,{color:c===`verbs`?`yellow`:void 0,children:c===`verbs`?`❯ `:` `}),J(V,{bold:!0,color:c===`verbs`?`yellow`:void 0,children:`Verbs`})]})}),c===`verbs`&&J(B,{flexDirection:`column`,children:Y(V,{dimColor:!0,children:[` `,`e to edit · d to delete · n to add new · ctrl+r to reset`]})}),J(B,{marginLeft:2,marginBottom:1,children:Y(B,{flexDirection:`column`,children:[(()=>{let e=Math.max(0,l-4),t=Math.min(n.length,e+8),r=Math.max(0,t-8),i=n.slice(r,t);return Y(q,{children:[r>0&&Y(V,{color:`gray`,dimColor:!0,children:[` `,`↑ `,r,` more above`]}),i.map((e,t)=>{let n=r+t;return Y(V,{color:c===`verbs`&&n===l?`cyan`:void 0,children:[c===`verbs`&&n===l?`❯ `:` `,e]},n)}),t<n.length&&Y(V,{color:`gray`,dimColor:!0,children:[` `,`↓ `,n.length-t,` more below`]})]})})(),h&&Y(B,{alignItems:`center`,children:[J(V,{color:`yellow`,children:`❯ `}),J(B,{borderStyle:`round`,borderColor:`yellow`,children:J(V,{children:p})})]}),d&&Y(B,{marginTop:1,alignItems:`center`,children:[J(V,{children:`Editing: `}),J(B,{borderStyle:`round`,borderColor:`yellow`,children:J(V,{children:p})})]})]})})]}),Y(B,{width:`50%`,flexDirection:`column`,children:[J(B,{marginBottom:1,children:J(V,{bold:!0,children:`Preview`})}),J(B,{borderStyle:`single`,borderColor:`gray`,padding:1,flexDirection:`column`,children:Y(V,{children:[Y(V,{color:C,children:[`✻ `,t.replace(/\{\}/g,n[l]),` `]}),J(V,{children:`(esc to interrupt)`})]})})]})]})}const it=e=>e.replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/([A-Z])([A-Z][a-z])/g,`$1 $2`).replace(/(\d+)/g,` $1 `).replace(/\s+/g,` `).trim().replace(/^./,e=>e.toUpperCase()),at=e=>{let t=Math.max(...e.map(e=>e.length));return e.map(e=>e.padEnd(t))},ot=Object.entries(Oe).map(([e,t])=>({name:it(e),phases:t.frames.map(e=>e.trimEnd()),reverseMirror:!1,updateInterval:t.interval})),st=[{name:`Default`,phases:x.thinkingStyle.phases,reverseMirror:x.thinkingStyle.reverseMirror},{name:`Wave`,phases:[`▁`,`▃`,`▄`,`▅`,`▆`,`▇`,`█`],reverseMirror:!0},{name:`Glow`,phases:[`░`,`▒`,`▓`,`█`],reverseMirror:!0},{name:`Partial block`,phases:[`▏`,`▎`,`▍`,`▌`,`▋`,`▊`,`▉`,`█`],reverseMirror:!0},{name:`Colors`,phases:[`🔴`,`🟠`,`🟡`,`🟢`,`🔵`,`🟣`],reverseMirror:!1},...ot];function ct({onBack:e}){let{settings:{thinkingStyle:{phases:t,updateInterval:n,reverseMirror:r},themes:i},updateSettings:a}=W($),o=[`reverseMirror`,`updateInterval`,`phases`,`presets`],[s,c]=K(0),l=o[s],[u,d]=K(0),[f,p]=K(0),[m,h]=K(!1),[g,_]=K(``),[v,y]=K(!1),[b,S]=K(!1),[C,w]=K(n.toString()),[T,E]=K(0),D=ce(),O=(i.find(e=>e.id===D)||i.find(e=>e.id===`dark`))?.colors.claude||`rgb(215,119,87)`;G(()=>{if(t.length>0){let e=r?[...t,...[...t].reverse().slice(1,-1)]:t,i=setInterval(()=>{E(t=>(t+1)%e.length)},n);return()=>clearInterval(i)}},[t,n,r]),H((r,i)=>{if(b){if(i.return){let e=parseInt(C);!isNaN(e)&&e>0&&a(t=>{t.thinkingStyle.updateInterval=e}),S(!1)}else i.escape?(w(n.toString()),S(!1)):i.backspace||i.delete?w(e=>e.slice(0,-1)):r&&r.match(/^[0-9]$/)&&w(e=>e+r);return}if(m||v){if(i.return&&g.length){let e=v?[...t,g]:t.map((e,t)=>t===u?g:e);a(t=>{t.thinkingStyle.phases=at(e)}),h(!1),_(``)}else i.escape?(_(``),h(!1),y(!1)):i.backspace||i.delete?_(e=>e.slice(0,-1)):r&&_(e=>e+r);return}if(i.escape)e();else if(i.return)if(l===`updateInterval`)w(n.toString()),S(!0);else if(l===`presets`){let e=st[f];a(t=>{t.thinkingStyle.phases=at([...e.phases]),t.thinkingStyle.reverseMirror=e.reverseMirror,e.updateInterval!==void 0&&(t.thinkingStyle.updateInterval=e.updateInterval)})}else l===`reverseMirror`&&a(e=>{e.thinkingStyle.reverseMirror=!e.thinkingStyle.reverseMirror});else if(i.tab)i.shift?c(e=>e===0?o.length-1:e-1):c(e=>e===o.length-1?0:e+1);else if(i.upArrow)l===`phases`&&t.length>0?d(e=>e>0?e-1:t.length-1):l===`presets`&&p(e=>e>0?e-1:st.length-1);else if(i.downArrow)l===`phases`&&t.length>0?d(e=>e<t.length-1?e+1:0):l===`presets`&&p(e=>e<st.length-1?e+1:0);else if(r===` `)l===`reverseMirror`&&a(e=>{e.thinkingStyle.reverseMirror=!e.thinkingStyle.reverseMirror});else if(r===`e`&&l===`phases`)t.length>0&&(_(t[u]),h(!0));else if(r===`a`&&l===`phases`)y(!0),_(``);else if(r===`d`&&l===`phases`)t.length>1&&(a(e=>{e.thinkingStyle.phases=at(t.filter((e,t)=>t!==u))}),u>=t.length&&d(Math.max(0,t.length-1)));else if(r===`w`&&l===`phases`){if(u>0){let e=[...t];[e[u-1],e[u]]=[e[u],e[u-1]],a(t=>{t.thinkingStyle.phases=e}),d(e=>e-1)}}else if(r===`s`&&l===`phases`){if(u<t.length-1){let e=[...t];[e[u],e[u+1]]=[e[u+1],e[u]],a(t=>{t.thinkingStyle.phases=e}),d(e=>e+1)}}else i.ctrl&&r===`r`&&(a(e=>{e.thinkingStyle=x.thinkingStyle}),d(0),p(0))});let k=r?`●`:`○`,A=(()=>r?[...t,...[...t].reverse().slice(1,-1)]:t)(),j=A.length>0?A[T]:`·`;return J(B,{children:Y(B,{flexDirection:`column`,width:`100%`,children:[Y(B,{flexDirection:`row`,width:`100%`,children:[Y(B,{marginBottom:1,flexDirection:`column`,width:`50%`,children:[J(X,{children:`Thinking style`}),Y(B,{flexDirection:`column`,children:[Y(V,{dimColor:!0,children:[`enter to`,` `,l===`updateInterval`?`edit interval`:l===`presets`?`apply preset`:`save`]}),J(V,{dimColor:!0,children:`esc to go back`}),J(V,{dimColor:!0,children:`tab to switch sections`})]})]}),Y(B,{width:`50%`,flexDirection:`column`,children:[J(B,{children:J(V,{bold:!0,children:`Preview`})}),Y(B,{borderStyle:`single`,borderColor:`gray`,paddingX:1,flexDirection:`row`,children:[J(B,{width:(j?.length??0)+1,children:J(V,{color:O,children:j})}),Y(V,{children:[J(V,{color:O,children:`Thinking… `}),J(V,{children:`(esc to interrupt)`})]})]})]})]}),Y(B,{flexDirection:`row`,gap:4,children:[Y(B,{flexDirection:`column`,children:[Y(V,{children:[J(V,{color:l===`reverseMirror`?`yellow`:void 0,children:l===`reverseMirror`?`❯ `:` `}),J(V,{bold:!0,color:l===`reverseMirror`?`yellow`:void 0,children:`Reverse-mirror phases`})]}),l===`reverseMirror`&&Y(V,{dimColor:!0,children:[` `,`space to toggle`]}),J(B,{marginLeft:2,marginBottom:1,children:Y(V,{children:[k,` `,r?`Enabled`:`Disabled`]})})]}),Y(B,{flexDirection:`column`,children:[Y(V,{children:[J(V,{color:l===`updateInterval`?`yellow`:void 0,children:l===`updateInterval`?`❯ `:` `}),J(V,{bold:!0,color:l===`updateInterval`?`yellow`:void 0,children:`Update interval (ms)`})]}),l===`updateInterval`&&(b?Y(V,{dimColor:!0,children:[` `,`enter to save`]}):Y(V,{dimColor:!0,children:[` `,`enter to edit`]})),J(B,{marginLeft:2,marginBottom:1,children:J(B,{borderStyle:`round`,borderColor:b?`yellow`:`gray`,children:J(V,{children:b?C:n})})})]})]}),J(B,{children:Y(V,{children:[J(V,{color:l===`phases`?`yellow`:void 0,children:l===`phases`?`❯ `:` `}),J(V,{bold:!0,color:l===`phases`?`yellow`:void 0,children:`Phases`})]})}),l===`phases`&&J(B,{marginBottom:1,flexDirection:`column`,children:Y(V,{dimColor:!0,children:[` `,`[e]dit`,` `,`[a]dd`,` `,`[d]elete`,` `,`[w]move up`,` `,`[s]move down`]})}),J(B,{marginLeft:2,marginBottom:1,children:Y(B,{flexDirection:`column`,children:[(()=>{let e=Math.max(0,u-4),n=Math.min(t.length,e+8),r=Math.max(0,n-8),i=t.slice(r,n);return Y(q,{children:[r>0&&Y(V,{color:`gray`,dimColor:!0,children:[` `,`↑ `,r,` more above`]}),i.map((e,t)=>{let n=r+t;return Y(V,{color:l===`phases`&&n===u?`cyan`:void 0,children:[l===`phases`&&n===u?`❯ `:` `,e]},n)}),n<t.length&&Y(V,{color:`gray`,dimColor:!0,children:[` `,`↓ `,t.length-n,` more below`]})]})})(),v&&Y(B,{children:[J(V,{color:`yellow`,children:`❯ `}),J(B,{borderStyle:`round`,borderColor:`yellow`,children:J(V,{children:g})})]}),m&&Y(B,{marginTop:1,children:[J(V,{children:`Editing: `}),J(B,{borderStyle:`round`,borderColor:`yellow`,children:J(V,{children:g})})]})]})}),J(B,{children:Y(V,{children:[J(V,{color:l===`presets`?`yellow`:void 0,children:l===`presets`?`❯ `:` `}),J(V,{bold:!0,color:l===`presets`?`yellow`:void 0,children:`Presets`})]})}),l===`presets`&&Y(V,{dimColor:!0,children:[` `,`Selecting one will overwrite your choice of phases and interval`]}),J(B,{marginLeft:2,marginBottom:1,children:J(B,{flexDirection:`column`,children:(()=>{let e=Math.max(0,f-6),t=Math.min(st.length,e+12),n=Math.max(0,t-12),r=st.slice(n,t),i=e=>{let t=e.phases.join(``);return t.length>30?t.slice(0,27)+`…`:t};return Y(q,{children:[n>0&&Y(V,{color:`gray`,dimColor:!0,children:[` `,`↑ `,n,` more above`]}),r.map((e,t)=>{let r=n+t,a=l===`presets`&&r===f;return Y(V,{color:a?`cyan`:void 0,children:[a?`❯ `:` `,e.name,` `,i(e)]},r)}),t<st.length&&Y(V,{color:`gray`,dimColor:!0,children:[` `,`↓ `,st.length-t,` more below`]})]})})()})}),J(B,{marginTop:1,children:J(V,{dimColor:!0,children:`ctrl+r to reset all settings to default`})})]})})}function lt(e,t){let n=xe(!0);G(()=>{if(n.current){n.current=!1;return}return e()},t)}const ut=[{label:`bold`,value:`bold`},{label:`italic`,value:`italic`},{label:`underline`,value:`underline`},{label:`strikethrough`,value:`strikethrough`},{label:`inverse`,value:`inverse`}],dt=[{label:`none`,value:`none`},{label:`single`,value:`single`},{label:`double`,value:`double`},{label:`round`,value:`round`},{label:`bold`,value:`bold`},{label:`singleDouble`,value:`singleDouble`},{label:`doubleSingle`,value:`doubleSingle`},{label:`classic`,value:`classic`},{label:`topBottomSingle`,value:`topBottomSingle`},{label:`topBottomDouble`,value:`topBottomDouble`},{label:`topBottomBold`,value:`topBottomBold`}];function ft({onBack:e}){let{settings:t,updateSettings:n}=W($),[r,i]=K(!1),[a,o]=K(!1),[s,c]=K(!1),[l,u]=K(()=>t.userMessageDisplay.format),[d,f]=K(()=>t.userMessageDisplay.paddingX===`default`?`default`:`custom`),[p,m]=K(()=>t.userMessageDisplay.paddingY===`default`?`default`:`custom`),[h,g]=K(()=>t.userMessageDisplay.paddingX===`default`?`0`:String(t.userMessageDisplay.paddingX)),[_,v]=K(()=>t.userMessageDisplay.paddingY===`default`?`0`:String(t.userMessageDisplay.paddingY)),[y,b]=K(t.userMessageDisplay.fitBoxToContent),[S,C]=K(0),[w,T]=K(()=>[...t.userMessageDisplay.styling]),[E,D]=K(()=>t.userMessageDisplay.foregroundColor===`default`?`default`:`custom`),[O,k]=K(()=>t.userMessageDisplay.foregroundColor===`default`?`rgb(255,255,255)`:t.userMessageDisplay.foregroundColor),[A,j]=K(()=>{let e=t.userMessageDisplay.backgroundColor;return e===null?`none`:e===`default`?`default`:`custom`}),[M,ee]=K(()=>{let e=t.userMessageDisplay.backgroundColor;return e===null||e===`default`?`rgb(0,0,0)`:e}),[te,ne]=K(()=>dt.findIndex(e=>e.value===t.userMessageDisplay.borderStyle)),[N,re]=K(()=>t.userMessageDisplay.borderColor),[P,ie]=K(null),[ae,oe]=K(``),se=ce(),F=t.themes?.find(e=>e.id===se)||t.themes?.[0],[I,L]=K(`text`),R=[`format`,`styling`,`foreground`,`background`],le=[`borderStyle`,`borderColor`,`paddingX`,`paddingY`,`fitBoxToContent`],[ue,de]=K(0),[fe,pe]=K(0),z=I===`text`?R[ue]:le[fe],me=()=>{n(e=>{e.userMessageDisplay.format=l,e.userMessageDisplay.styling=[...w],e.userMessageDisplay.foregroundColor=E===`default`?`default`:O,e.userMessageDisplay.backgroundColor=A===`none`?null:A===`default`?`default`:M,e.userMessageDisplay.borderStyle=dt[te].value,e.userMessageDisplay.borderColor=N,e.userMessageDisplay.paddingX=d===`default`?`default`:parseInt(h)||0,e.userMessageDisplay.paddingY=p===`default`?`default`:parseInt(_)||0,e.userMessageDisplay.fitBoxToContent=y})},he=()=>{u(x.userMessageDisplay.format),T([...x.userMessageDisplay.styling]);let e=x.userMessageDisplay.foregroundColor;D(e===`default`?`default`:`custom`),k(e===`default`?`rgb(255,255,255)`:e);let t=x.userMessageDisplay.backgroundColor;j(t===null?`none`:t===`default`?`default`:`custom`),ee(t===null||t===`default`?`rgb(0,0,0)`:t),ne(dt.findIndex(e=>e.value===x.userMessageDisplay.borderStyle)),re(x.userMessageDisplay.borderColor);let r=x.userMessageDisplay.paddingX,i=x.userMessageDisplay.paddingY;f(r===`default`?`default`:`custom`),m(i===`default`?`default`:`custom`),g(r===`default`?`0`:String(r)),v(i===`default`?`0`:String(i)),b(x.userMessageDisplay.fitBoxToContent),n(e=>{e.userMessageDisplay={...x.userMessageDisplay}})};lt(()=>{me()},[l,w,E,O,A,M,te,N,d,p,h,_,y]),H((n,l)=>{if(r){l.return?i(!1):l.escape?(u(t.userMessageDisplay.format),i(!1)):l.backspace||l.delete?u(e=>e.slice(0,-1)):n&&u(e=>e+n);return}if(a){l.return?o(!1):l.escape?(g(String(t.userMessageDisplay.paddingX)),o(!1)):l.backspace||l.delete?g(e=>e.slice(0,-1)):n&&/^\d$/.test(n)&&g(e=>e+n);return}if(s){l.return?c(!1):l.escape?(v(String(t.userMessageDisplay.paddingY)),c(!1)):l.backspace||l.delete?v(e=>e.slice(0,-1)):n&&/^\d$/.test(n)&&v(e=>e+n);return}if(P===null){if(l.escape)e();else if(l.ctrl&&n===`r`)he();else if(l.leftArrow||l.rightArrow)L(e=>e===`text`?`border`:`text`);else if(l.tab)I===`text`?l.shift?de(e=>e===0?R.length-1:e-1):de(e=>e===R.length-1?0:e+1):l.shift?pe(e=>e===0?le.length-1:e-1):pe(e=>e===le.length-1?0:e+1);else if(l.return)z===`format`?i(!0):z===`paddingX`?d===`custom`&&o(!0):z===`paddingY`?p===`custom`&&c(!0):z===`foreground`?E===`custom`&&(oe(O),ie(`foreground`)):z===`background`?A===`custom`&&(oe(M),ie(`background`)):z===`borderColor`&&(oe(N),ie(`border`));else if(l.upArrow)z===`styling`?C(e=>Math.max(0,e-1)):z===`borderStyle`?ne(e=>e===0?dt.length-1:e-1):z===`paddingX`?f(e=>e===`default`?`custom`:`default`):z===`paddingY`?m(e=>e===`default`?`custom`:`default`):z===`foreground`?D(e=>{let t=e===`default`?`custom`:`default`;return t===`custom`&&(!O||O===``)&&k(`rgb(255,255,255)`),t}):z===`background`&&j(e=>{let t=e===`default`?`custom`:e===`custom`?`none`:`default`;return t===`custom`&&(!M||M===``)&&ee(`rgb(0,0,0)`),t});else if(l.downArrow)z===`styling`?C(e=>Math.min(ut.length-1,e+1)):z===`borderStyle`?ne(e=>e===dt.length-1?0:e+1):z===`paddingX`?f(e=>e===`default`?`custom`:`default`):z===`paddingY`?m(e=>e===`default`?`custom`:`default`):z===`foreground`?D(e=>{let t=e===`default`?`custom`:`default`;return t===`custom`&&(!O||O===``)&&k(`rgb(255,255,255)`),t}):z===`background`&&j(e=>{let t=e===`default`?`none`:e===`none`?`custom`:`default`;return t===`custom`&&(!M||M===``)&&ee(`rgb(0,0,0)`),t});else if(n===` `)if(z===`styling`){let e=ut[S].value;T(w.indexOf(e)>=0?w.filter(t=>t!==e):[...w,e])}else z===`fitBoxToContent`&&b(e=>!e)}});let U=e=>{let t=E===`default`?F?.colors?.text:O,n=A===`none`?void 0:A===`default`?F?.colors?.userMessageBackground:M,r=dt[te].value,i=d===`default`?0:parseInt(h)||0,a=p===`default`?0:parseInt(_)||0,o=d===`default`?1:i,s=J(V,{bold:w.includes(`bold`),italic:w.includes(`italic`),underline:w.includes(`underline`),strikethrough:w.includes(`strikethrough`),inverse:w.includes(`inverse`),color:t,backgroundColor:n,children:e});if(r===`topBottomSingle`||r===`topBottomDouble`||r===`topBottomBold`){let t=r===`topBottomSingle`?`─`:r===`topBottomDouble`?`═`:`━`,n=e.length+i*2,o=t.repeat(n);return Y(B,{flexDirection:`column`,children:[J(V,{color:N,children:o}),a>0&&J(B,{height:a}),J(B,{paddingX:i,children:s}),a>0&&J(B,{height:a}),J(V,{color:N,children:o})]})}else if(r!==`none`||i>0||a>0||o>0||y){let e={};i>0&&(e.paddingX=i),d===`default`&&i===0&&(e.paddingRight=o),a>0&&(e.paddingY=a);let t=Object.keys(e).length>0?J(B,{...e,children:s}):s,n={};return r!==`none`&&(n.borderStyle=r,n.borderColor=N),y?n.alignSelf=`flex-start`:n.flexGrow=1,r===`none`?t:J(B,{...n,children:t})}else return s};return P?J(Ke,{initialValue:ae,theme:F,onColorChange:e=>{P===`foreground`?k(e):P===`background`?ee(e):P===`border`&&re(e)},onExit:()=>{ie(null),oe(``)}}):Y(B,{flexDirection:`column`,children:[J(X,{children:`Customize how user messages are displayed`}),Y(B,{flexDirection:`column`,marginBottom:1,children:[J(V,{dimColor:!0,children:`left/right arrows to switch columns · tab to navigate options`}),J(V,{dimColor:!0,children:`enter to edit · ctrl+r to reset · esc to go back`})]}),Y(B,{flexDirection:`row`,gap:1,children:[Y(B,{flexDirection:`column`,width:`50%`,borderStyle:I===`text`?`round`:`single`,borderColor:I===`text`?`yellow`:`gray`,paddingX:1,children:[J(B,{marginBottom:1,children:J(V,{bold:!0,color:I===`text`?`yellow`:void 0,children:`Text & Styling`})}),J(B,{children:Y(V,{color:z===`format`?`yellow`:void 0,bold:z===`format`,children:[z===`format`?`❯ `:` `,`Format String`]})}),z===`format`&&J(B,{marginLeft:2,children:J(V,{dimColor:!0,children:r?`enter to save · esc to cancel`:`enter to edit · use {} as message placeholder`})}),J(B,{marginLeft:2,marginBottom:1,children:J(B,{borderStyle:`round`,borderColor:r?`yellow`:`gray`,children:J(V,{children:l})})}),J(B,{children:Y(V,{color:z===`styling`?`yellow`:void 0,bold:z===`styling`,children:[z===`styling`?`❯ `:` `,`Styling`]})}),z===`styling`&&J(B,{marginLeft:2,children:J(V,{dimColor:!0,children:`up/down to navigate · space to toggle`})}),J(B,{marginLeft:2,marginBottom:1,flexDirection:`column`,children:ut.map((e,t)=>J(B,{children:Y(V,{color:z===`styling`&&S===t?`cyan`:void 0,children:[z===`styling`&&S===t?`❯ `:` `,w.includes(e.value)?`●`:`○`,` `,e.label]})},e.value))}),Y(B,{flexDirection:`row`,gap:1,marginBottom:1,children:[Y(B,{flexDirection:`column`,width:`50%`,children:[J(B,{children:Y(V,{color:z===`foreground`?`yellow`:void 0,bold:z===`foreground`,children:[z===`foreground`?`❯ `:` `,`Foreground`]})}),z===`foreground`&&J(B,{marginLeft:2,children:Y(V,{dimColor:!0,children:[`up/down · `,E===`custom`?`enter`:``]})}),Y(B,{marginLeft:2,flexDirection:`column`,children:[J(B,{children:Y(V,{children:[E===`default`?`● `:`○ `,`Default`]})}),J(B,{children:Y(V,{children:[E===`custom`?`● `:`○ `,`Custom`,E===`custom`&&`: `,E===`custom`&&J(V,{color:O,children:O})]})})]})]}),Y(B,{flexDirection:`column`,width:`50%`,children:[J(B,{children:Y(V,{color:z===`background`?`yellow`:void 0,bold:z===`background`,children:[z===`background`?`❯ `:` `,`Background`]})}),z===`background`&&J(B,{marginLeft:2,children:Y(V,{dimColor:!0,children:[`up/down · `,A===`custom`?`enter`:``]})}),Y(B,{marginLeft:2,flexDirection:`column`,children:[J(B,{children:Y(V,{children:[A===`default`?`● `:`○ `,`Default`]})}),J(B,{children:Y(V,{children:[A===`none`?`● `:`○ `,`None`]})}),J(B,{children:Y(V,{children:[A===`custom`?`● `:`○ `,`Custom`,A===`custom`&&`: `,A===`custom`&&J(V,{backgroundColor:M,children:M})]})})]})]})]})]}),Y(B,{flexDirection:`column`,width:`50%`,borderStyle:I===`border`?`round`:`single`,borderColor:I===`border`?`yellow`:`gray`,paddingX:1,children:[J(B,{marginBottom:1,children:J(V,{bold:!0,color:I===`border`?`yellow`:void 0,children:`Border & Padding`})}),J(B,{children:Y(V,{color:z===`borderStyle`?`yellow`:void 0,bold:z===`borderStyle`,children:[z===`borderStyle`?`❯ `:` `,`Border Style`]})}),z===`borderStyle`&&J(B,{marginLeft:2,children:J(V,{dimColor:!0,children:`up/down to navigate`})}),Y(B,{marginLeft:2,marginBottom:1,flexDirection:`row`,children:[J(B,{flexDirection:`column`,width:`50%`,children:dt.slice(0,6).map((e,t)=>J(B,{children:Y(V,{color:z===`borderStyle`&&te===t?`cyan`:void 0,children:[z===`borderStyle`&&te===t?`❯ `:` `,te===t?`● `:`○ `,e.label]})},e.value))}),J(B,{flexDirection:`column`,width:`50%`,children:dt.slice(6).map((e,t)=>{let n=t+6;return J(B,{children:Y(V,{color:z===`borderStyle`&&te===n?`cyan`:void 0,children:[z===`borderStyle`&&te===n?`❯ `:` `,te===n?`● `:`○ `,e.label]})},e.value)})})]}),J(B,{children:Y(V,{color:z===`borderColor`?`yellow`:void 0,bold:z===`borderColor`,children:[z===`borderColor`?`❯ `:` `,`Border Color`]})}),z===`borderColor`&&J(B,{marginLeft:2,children:J(V,{dimColor:!0,children:`enter to pick color`})}),J(B,{marginLeft:2,marginBottom:1,children:J(V,{color:N,children:N})}),Y(B,{flexDirection:`row`,gap:1,children:[Y(B,{flexDirection:`column`,width:`33%`,children:[J(B,{children:Y(V,{color:z===`paddingX`?`yellow`:void 0,bold:z===`paddingX`,children:[z===`paddingX`?`❯ `:` `,`Padding X`]})}),z===`paddingX`&&J(B,{marginLeft:2,children:J(V,{dimColor:!0,children:a?`enter/esc`:d===`custom`?`up/down · enter`:`up/down`})}),Y(B,{marginLeft:2,flexDirection:`column`,children:[J(B,{children:Y(V,{children:[d===`default`?`● `:`○ `,`Default`]})}),J(B,{children:Y(V,{children:[d===`custom`?`● `:`○ `,`Custom`]})}),d===`custom`&&J(B,{children:J(B,{borderStyle:`round`,borderColor:a?`yellow`:`gray`,children:J(V,{children:h})})})]})]}),Y(B,{flexDirection:`column`,width:`33%`,children:[J(B,{children:Y(V,{color:z===`paddingY`?`yellow`:void 0,bold:z===`paddingY`,children:[z===`paddingY`?`❯ `:` `,`Padding Y`]})}),z===`paddingY`&&J(B,{marginLeft:2,children:J(V,{dimColor:!0,children:s?`enter/esc`:p===`custom`?`up/down · enter`:`up/down`})}),Y(B,{marginLeft:2,flexDirection:`column`,children:[J(B,{children:Y(V,{children:[p===`default`?`● `:`○ `,`Default`]})}),J(B,{children:Y(V,{children:[p===`custom`?`● `:`○ `,`Custom`]})}),p===`custom`&&J(B,{children:J(B,{borderStyle:`round`,borderColor:s?`yellow`:`gray`,children:J(V,{children:_})})})]})]}),Y(B,{flexDirection:`column`,width:`33%`,children:[J(B,{children:Y(V,{color:z===`fitBoxToContent`?`yellow`:void 0,bold:z===`fitBoxToContent`,children:[z===`fitBoxToContent`?`❯ `:` `,y?`●`:`○`,` Fit box to content`]})}),z===`fitBoxToContent`&&J(B,{marginLeft:2,children:J(V,{dimColor:!0,children:`space`})})]})]})]})]}),Y(B,{flexDirection:`column`,marginTop:1,paddingX:1,children:[J(B,{marginBottom:1,children:J(V,{bold:!0,children:`Preview`})}),Y(B,{flexDirection:`row`,gap:2,children:[Y(B,{flexDirection:`column`,width:`50%`,children:[J(B,{marginBottom:1,children:J(V,{underline:!0,children:`Before (Claude Code default):`})}),J(B,{marginLeft:1,children:Y(V,{backgroundColor:F?.colors?.userMessageBackground,color:F?.colors?.text,children:[` `,`> list the dir`,` `]})}),J(B,{marginLeft:1,marginTop:1,children:Y(V,{children:[J(V,{color:F?.colors?.inactive||`#888888`,children:`●`}),J(V,{children:` The directory `}),J(V,{color:F?.colors?.permission||`#00ff00`,children:`C:\\Users\\user`}),J(V,{children:` contains `}),J(V,{bold:!0,children:`123`}),J(V,{children:` files.`})]})})]}),Y(B,{flexDirection:`column`,width:`50%`,children:[J(B,{marginBottom:1,children:J(V,{underline:!0,children:`After (Your customization):`})}),J(B,{marginLeft:1,flexDirection:`row`,children:(()=>U(l.replace(/\{\}/g,`list the dir`)))()}),J(B,{marginLeft:1,marginTop:1,children:Y(V,{children:[J(V,{color:F?.colors?.inactive||`#888888`,children:`●`}),J(V,{children:` The directory `}),J(V,{color:F?.colors?.permission||`#00ff00`,children:`C:\\Users\\user`}),J(V,{children:` contains `}),J(V,{bold:!0,children:`123`}),J(V,{children:` files.`})]})})]})]})]})]})}const pt=[{label:`bold`,value:`bold`},{label:`italic`,value:`italic`},{label:`underline`,value:`underline`},{label:`strikethrough`,value:`strikethrough`},{label:`inverse`,value:`inverse`}],mt=[[`name`,`regex`,`regexFlags`],[`format`,`styling`],[`foreground`,`background`],[`enabled`],[`testText`]];function ht({testText:e,regex:t,regexFlags:n,format:r,styling:i,foregroundColor:a,backgroundColor:o}){let s=[];try{let c=n.includes(`g`)?n:n+`g`,l=new RegExp(t,c),u=[...e.matchAll(l)];if(u.length===0)return J(V,{children:e});let d=0;return u.forEach((t,n)=>{let c=t.index,l=c+t[0].length;c>d&&s.push(J(V,{children:e.slice(d,c)},`plain-${n}`));let u=r.replace(/\{MATCH\}/g,t[0]);s.push(J(V,{bold:i.includes(`bold`),italic:i.includes(`italic`),underline:i.includes(`underline`),strikethrough:i.includes(`strikethrough`),inverse:i.includes(`inverse`),color:a,backgroundColor:o,children:u},`match-${n}`)),d=l}),d<e.length&&s.push(J(V,{children:e.slice(d)},`plain-end`)),J(q,{children:s})}catch{return J(V,{children:e})}}function gt({highlighterIndex:e,onBack:t}){let{settings:n,updateSettings:r}=W($),i=n.inputPatternHighlighters[e],a=ce(),o=n.themes?.find(e=>e.id===a)||n.themes?.[0],[s,c]=K(i?.name||`New Highlighter`),[l,u]=K(i?.regex||``),[d,f]=K(i?.regexFlags||`g`),[p,m]=K(i?.format||`{MATCH}`),[h,g]=K(i?.styling||[]),[_,v]=K(i?.foregroundColor===null?`none`:`custom`),[y,b]=K(i?.foregroundColor||`rgb(255,0,255)`),[x,S]=K(i?.backgroundColor?`custom`:`none`),[C,w]=K(i?.backgroundColor||`rgb(0,0,0)`),[T,E]=K(i?.enabled??!0),[D,O]=K(n.inputPatternHighlightersTestText||`Type test text here to see highlighting`),[k,A]=K(`name`),[j,M]=K(!1),[ee,te]=K(0),[ne,N]=K(null),[re,P]=K(``),[ie,ae]=K(null),[oe,se]=K(0),[F,I]=K(0);if(G(()=>{let e=mt[oe];A(e[Math.min(F,e.length-1)])},[oe,F]),G(()=>{if(!l){ae(null);return}try{new RegExp(l,d),ae(null)}catch(e){ae(e.message)}},[l,d]),G(()=>{e>=0&&r(t=>{t.inputPatternHighlighters[e]&&(t.inputPatternHighlighters[e]={name:s,regex:l,regexFlags:d,format:p,styling:h,foregroundColor:_===`custom`?y:null,backgroundColor:x===`custom`?C:null,enabled:T})})},[e,s,l,d,p,h,_,y,x,C,T]),G(()=>{r(e=>{e.inputPatternHighlightersTestText=D})},[D]),H((e,r)=>{if(j){r.return?M(!1):r.escape?(k===`name`&&c(i?.name||``),k===`regex`&&u(i?.regex||``),k===`regexFlags`&&f(i?.regexFlags||`g`),k===`format`&&m(i?.format||`{MATCH}`),k===`testText`&&O(n.inputPatternHighlightersTestText||`Type test text here to see highlighting`),M(!1)):r.backspace||r.delete?(k===`name`&&c(e=>e.slice(0,-1)),k===`regex`&&u(e=>e.slice(0,-1)),k===`regexFlags`&&f(e=>e.slice(0,-1)),k===`format`&&m(e=>e.slice(0,-1)),k===`testText`&&O(e=>e.slice(0,-1))):e&&e.length===1&&(k===`name`&&c(t=>t+e),k===`regex`&&u(t=>t+e),k===`regexFlags`&&f(t=>t+e),k===`format`&&m(t=>t+e),k===`testText`&&O(t=>t+e));return}if(ne===null){if(r.escape)t();else if(r.upArrow)k===`styling`&&ee>0?te(e=>e-1):se(e=>Math.max(0,e-1));else if(r.downArrow)k===`styling`&&ee<pt.length-1?te(e=>e+1):se(e=>Math.min(mt.length-1,e+1));else if(r.leftArrow)k===`foreground`?v(e=>e===`none`?`custom`:`none`):k===`background`?S(e=>e===`none`?`custom`:`none`):I(e=>Math.max(0,e-1));else if(r.rightArrow)if(k===`foreground`)v(e=>e===`none`?`custom`:`none`);else if(k===`background`)S(e=>e===`none`?`custom`:`none`);else{let e=mt[oe].length-1;I(t=>Math.min(e,t+1))}else if(r.tab){let e=mt.flat(),t=e.indexOf(k);if(r.shift){if(t>0){let n=e[t-1];for(let e=0;e<mt.length;e++){let t=mt[e].indexOf(n);if(t>=0){se(e),I(t);break}}}}else if(t<e.length-1){let n=e[t+1];for(let e=0;e<mt.length;e++){let t=mt[e].indexOf(n);if(t>=0){se(e),I(t);break}}}}else if(r.return)k===`name`||k===`regex`||k===`regexFlags`||k===`format`||k===`testText`?M(!0):k===`foreground`&&_===`custom`?(P(y),N(`foreground`)):k===`background`&&x===`custom`&&(P(C),N(`background`));else if(e===` `)if(k===`styling`){let e=pt[ee].value;h.includes(e)?g(h.filter(t=>t!==e)):g([...h,e])}else k===`enabled`&&E(!T)}}),!i)return J(B,{flexDirection:`column`,children:J(V,{color:`red`,children:`Highlighter not found`})});if(ne)return J(Ke,{initialValue:re,theme:o,onColorChange:e=>{ne===`foreground`?b(e):ne===`background`&&w(e)},onExit:()=>{N(null),P(``)}});let L=e=>k===e,R=e=>({color:L(e)?`yellow`:void 0,bold:L(e)});return Y(B,{flexDirection:`column`,children:[J(X,{children:`Edit Highlighter`}),J(B,{marginBottom:1,flexDirection:`column`,children:J(V,{dimColor:!0,children:`arrows to navigate · enter to edit · space to toggle · esc to go back`})}),Y(B,{flexDirection:`row`,gap:2,marginBottom:1,children:[Y(B,{flexDirection:`column`,width:`30%`,children:[Y(V,{...R(`name`),children:[L(`name`)?`❯ `:` `,`Name`]}),J(B,{marginLeft:2,children:J(B,{borderStyle:`round`,borderColor:L(`name`)?j?`green`:`yellow`:`gray`,children:J(V,{children:s||`(empty)`})})})]}),Y(B,{flexDirection:`column`,width:`45%`,children:[Y(V,{...R(`regex`),children:[L(`regex`)?`❯ `:` `,`Regex Pattern`]}),Y(B,{marginLeft:2,flexDirection:`column`,children:[J(B,{borderStyle:`round`,borderColor:L(`regex`)?j?`green`:`yellow`:ie?`red`:`gray`,children:J(V,{children:l||`(empty)`})}),ie&&J(V,{color:`red`,children:ie})]})]}),Y(B,{flexDirection:`column`,width:`20%`,children:[Y(V,{...R(`regexFlags`),children:[L(`regexFlags`)?`❯ `:` `,`Flags`]}),J(B,{marginLeft:2,children:J(B,{borderStyle:`round`,borderColor:L(`regexFlags`)?j?`green`:`yellow`:`gray`,children:J(V,{children:d||`g`})})})]})]}),Y(B,{flexDirection:`row`,gap:2,marginBottom:1,children:[Y(B,{flexDirection:`column`,width:`50%`,children:[Y(V,{...R(`format`),children:[L(`format`)?`❯ `:` `,`Format String`]}),J(B,{marginLeft:2,children:J(B,{borderStyle:`round`,borderColor:L(`format`)?j?`green`:`yellow`:`gray`,children:J(V,{children:p||`{MATCH}`})})}),L(`format`)&&J(B,{marginLeft:2,children:Y(V,{dimColor:!0,children:[`use `,`{MATCH}`,` as placeholder`]})})]}),Y(B,{flexDirection:`column`,width:`45%`,children:[Y(V,{...R(`styling`),children:[L(`styling`)?`❯ `:` `,`Styling`]}),J(B,{marginLeft:2,flexDirection:`column`,children:pt.map((e,t)=>{let n=h.includes(e.value),r=L(`styling`)&&ee===t;return Y(V,{color:r?`cyan`:void 0,children:[r?`❯ `:` `,n?`●`:`○`,` `,e.label]},e.value)})})]})]}),Y(B,{flexDirection:`row`,gap:2,marginBottom:1,children:[Y(B,{flexDirection:`column`,width:`48%`,children:[Y(V,{...R(`foreground`),children:[L(`foreground`)?`❯ `:` `,`Foreground Color`]}),Y(B,{marginLeft:2,flexDirection:`row`,gap:1,children:[Y(V,{color:L(`foreground`)?`yellow`:void 0,children:[`[`,_===`none`?`●`:`○`,`] none`,` `,`[`,_===`custom`?`●`:`○`,`] custom`]}),_===`custom`&&J(B,{borderStyle:`round`,borderColor:L(`foreground`)?`yellow`:`gray`,children:J(V,{color:y,children:` ████ `})})]})]}),Y(B,{flexDirection:`column`,width:`48%`,children:[Y(V,{...R(`background`),children:[L(`background`)?`❯ `:` `,`Background Color`]}),Y(B,{marginLeft:2,flexDirection:`row`,gap:1,children:[Y(V,{color:L(`background`)?`yellow`:void 0,children:[`[`,x===`none`?`●`:`○`,`] none`,` `,`[`,x===`custom`?`●`:`○`,`] custom`]}),x===`custom`&&J(B,{borderStyle:`round`,borderColor:L(`background`)?`yellow`:`gray`,children:Y(V,{backgroundColor:C,children:[` `,` `,` `]})})]})]})]}),J(B,{marginBottom:1,children:Y(V,{...R(`enabled`),children:[L(`enabled`)?`❯ `:` `,`Enabled:`,` `,J(V,{color:T?`green`:`red`,children:T?`● Yes`:`○ No`})]})}),Y(B,{flexDirection:`column`,marginBottom:1,children:[Y(V,{...R(`testText`),children:[L(`testText`)?`❯ `:` `,`Test Text`]}),J(B,{marginLeft:2,children:J(B,{borderStyle:`round`,borderColor:L(`testText`)?j?`green`:`yellow`:`gray`,children:J(V,{children:D||`(empty)`})})})]}),J(B,{borderStyle:`round`,padding:1,children:Y(B,{flexDirection:`column`,children:[J(V,{bold:!0,children:`Live Preview:`}),l?J(B,{marginTop:1,children:J(ht,{testText:D,regex:l,regexFlags:d,format:p,styling:h,foregroundColor:_===`custom`?y:void 0,backgroundColor:x===`custom`?C:void 0})}):J(V,{dimColor:!0,children:`Enter a regex pattern to see the preview`})]})})]})}function _t({onBack:e}){let{settings:{inputPatternHighlighters:t,themes:n},updateSettings:r}=W($),i=ce(),a=n.find(e=>e.id===i)||n[0],o=x.themes[0],s=a?.colors.success||o.colors.success,c=a?.colors.error||o.colors.error,[l,u]=K(0),[d,f]=K(null),[p,m]=K(!0),h=()=>{let e={name:`New Highlighter`,regex:``,regexFlags:`g`,format:`{MATCH}`,styling:[],foregroundColor:`rgb(255,0,255)`,backgroundColor:null,enabled:!0};r(t=>{t.inputPatternHighlighters.push(e)}),f(t.length),m(!1)},g=e=>{r(t=>{t.inputPatternHighlighters.splice(e,1)}),l>=t.length-1&&u(Math.max(0,t.length-2))},_=e=>{r(t=>{t.inputPatternHighlighters[e].enabled=!t.inputPatternHighlighters[e].enabled})},v=e=>{e<=0||(r(t=>{let n=t.inputPatternHighlighters[e];t.inputPatternHighlighters.splice(e,1),t.inputPatternHighlighters.splice(e-1,0,n)}),u(e-1))},y=e=>{e>=t.length-1||(r(t=>{let n=t.inputPatternHighlighters[e];t.inputPatternHighlighters.splice(e,1),t.inputPatternHighlighters.splice(e+1,0,n)}),u(e+1))};return H((n,r)=>{r.escape?e():r.upArrow?u(e=>Math.max(0,e-1)):r.downArrow&&t.length>0?u(e=>Math.min(t.length-1,e+1)):r.return&&t.length>0?(f(l),m(!1)):n===`n`?h():n===`x`&&t.length>0?g(l):n===` `&&t.length>0?_(l):n===`u`&&t.length>0&&l>0?v(l):n===`d`&&t.length>0&&l<t.length-1&&y(l)},{isActive:p}),d===null?Y(B,{flexDirection:`column`,children:[J(X,{children:`Input Pattern Highlighters`}),Y(B,{marginBottom:1,flexDirection:`column`,children:[J(V,{dimColor:!0,children:`Create custom highlighters for patterns in your input prompt.`}),J(V,{dimColor:!0,children:`Matched text will be styled and optionally reformatted.`})]}),Y(B,{marginBottom:1,flexDirection:`column`,children:[J(V,{dimColor:!0,children:`n to create a new highlighter`}),t.length>0&&J(V,{dimColor:!0,children:`space to toggle enabled/disabled`}),t.length>0&&J(V,{dimColor:!0,children:`u/d to move highlighter up/down`}),t.length>0&&J(V,{dimColor:!0,children:`x to delete a highlighter`}),t.length>0&&J(V,{dimColor:!0,children:`enter to edit highlighter`}),J(V,{dimColor:!0,children:`esc to go back`})]}),t.length===0?J(V,{children:`No highlighters created yet. Press n to create one.`}):J(B,{flexDirection:`column`,children:t.map((e,t)=>{let n=l===t,r;return n&&(r=`yellow`),Y(B,{flexDirection:`row`,children:[Y(V,{color:r,children:[n?`❯ `:` `,e.enabled?`● `:`○ `,e.name,` `]}),J(V,{dimColor:!0,children:`(`}),e.regex?Y(V,{dimColor:!0,children:[`/`,e.regex,`/`,e.regexFlags]}):J(V,{dimColor:!0,children:`(no regex)`}),e.styling.length>0&&J(q,{children:Y(V,{color:r,dimColor:!e.enabled,children:[` `,`· `,e.styling.join(`, `)]})}),J(V,{dimColor:!0,children:`)`}),e.enabled?J(V,{color:s,children:` enabled`}):J(V,{color:c,children:` disabled`})]},t)})})]}):J(gt,{highlighterIndex:d,onBack:()=>{f(null),m(!0)}})}const vt=[null,1,5,10,25,50,100,200,250,500,1e3],yt=1e3;function bt({onSubmit:e}){let{settings:t,updateSettings:n}=W($),[r,i]=K(0),[a,o]=K(!1),s={showTweakccVersion:!0,showPatchesApplied:!0,expandThinkingBlocks:!0,enableConversationTitle:!0,hideStartupBanner:!1,hideCtrlGToEdit:!1,hideStartupClawd:!1,increaseFileReadLimit:!1,suppressLineNumbers:!1,suppressRateLimitOptions:!1,mcpConnectionNonBlocking:!0,mcpServerBatchSize:null,statuslineThrottleMs:null,statuslineUseFixedInterval:!1,tableFormat:`default`,enableSwarmMode:!0,enableSessionMemory:!0,enableRememberSkill:!1,tokenCountRounding:null,autoAcceptPlanMode:!1,allowBypassPermissionsInSudo:!1,suppressNativeInstallerWarning:!1,filterScrollEscapeSequences:!1,enableWorktreeMode:!0,allowCustomAgentModels:!1,enableContextLimitOverride:!1,enableModelCustomizations:!0,enableVoiceMode:!1,enableVoiceConciseOutput:!0,enableChannelsMode:!1},c=()=>{t.misc||={...s}},l=e=>{let t=[`default`,`ascii`,`clean`,`clean-top-bottom`];return t[(t.indexOf(e)+1)%t.length]},u=e=>{switch(e){case`ascii`:return`ASCII (| and -)`;case`clean`:return`Clean (no row separators)`;case`clean-top-bottom`:return`Clean with top/bottom`;case`default`:default:return`Default (box-drawing)`}},d=e=>e===null?`Default (3)`:e<=3?`${e} (conservative)`:e<=8?`${e} (recommended)`:`${e} (aggressive)`,f=e=>e===null?`Disabled`:e===0?`0ms (instant)`:`${e}ms`,p=e=>e===null?`Off (exact counts)`:`Round to ${e}`,m=(e,t)=>{let n=vt.indexOf(e);if(n===-1)return vt[0];let r;return r=t===`next`?(n+1)%vt.length:(n-1+vt.length)%vt.length,vt[r]},h=be(()=>[{id:`removeBorder`,title:`Remove input box border`,description:`Removes the rounded border around the input box for a cleaner look.`,getValue:()=>t.inputBox?.removeBorder??!1,toggle:()=>{n(e=>{e.inputBox||={removeBorder:!1},e.inputBox.removeBorder=!e.inputBox.removeBorder})}},{id:`showVersion`,title:`Show tweakcc version at startup`,description:`Shows the blue "+ tweakcc v<VERSION>" message when starting Claude Code.`,getValue:()=>t.misc?.showTweakccVersion??!0,toggle:()=>{n(e=>{c(),e.misc.showTweakccVersion=!e.misc.showTweakccVersion})}},{id:`showPatches`,title:`Show patches applied indicator at startup`,description:`Shows the green "tweakcc patches are applied" indicator when starting Claude Code.`,getValue:()=>t.misc?.showPatchesApplied??!0,toggle:()=>{n(e=>{c(),e.misc.showPatchesApplied=!e.misc.showPatchesApplied})}},{id:`expandThinking`,title:`Expand thinking blocks`,description:`Makes thinking blocks always expanded by default instead of collapsed.`,getValue:()=>t.misc?.expandThinkingBlocks??!0,toggle:()=>{n(e=>{c(),e.misc.expandThinkingBlocks=!e.misc.expandThinkingBlocks})}},{id:`conversationTitle`,title:`Allow renaming sessions via /title`,description:`Enables /title and /rename commands for manually naming conversations.`,getValue:()=>t.misc?.enableConversationTitle??!0,toggle:()=>{n(e=>{c(),e.misc.enableConversationTitle=!e.misc.enableConversationTitle})}},{id:`enableModelCustomizations`,title:`Enable model customizations (/model shows all models)`,description:`Show all Claude models in /model menu, not just the latest 3. Disable to use Claude Code default model list.`,getValue:()=>t.misc?.enableModelCustomizations??!0,toggle:()=>{n(e=>{c(),e.misc.enableModelCustomizations=!e.misc.enableModelCustomizations})}},{id:`hideStartupBanner`,title:`Hide startup banner`,description:`Hides the startup banner message displayed before first prompt.`,getValue:()=>t.misc?.hideStartupBanner??!1,toggle:()=>{n(e=>{c(),e.misc.hideStartupBanner=!e.misc.hideStartupBanner})}},{id:`hideCtrlG`,title:`Hide ctrl-g to edit prompt hint`,description:`Hides the "ctrl-g to edit prompt" hint shown during streaming.`,getValue:()=>t.misc?.hideCtrlGToEdit??!1,toggle:()=>{n(e=>{c(),e.misc.hideCtrlGToEdit=!e.misc.hideCtrlGToEdit})}},{id:`hideClawd`,title:`Hide startup Clawd ASCII art`,description:`Hides the Clawd ASCII art character shown at startup.`,getValue:()=>t.misc?.hideStartupClawd??!1,toggle:()=>{n(e=>{c(),e.misc.hideStartupClawd=!e.misc.hideStartupClawd})}},{id:`increaseFileReadLimit`,title:`Increase file read token limit`,description:`Increases the maximum file read limit from 25,000 to 1,000,000 tokens.`,getValue:()=>t.misc?.increaseFileReadLimit??!1,toggle:()=>{n(e=>{c(),e.misc.increaseFileReadLimit=!e.misc.increaseFileReadLimit})}},{id:`suppressLineNumbers`,title:`Suppress line numbers in file reads/edits`,description:`Removes line number prefixes from file content to reduce token usage.`,getValue:()=>t.misc?.suppressLineNumbers??!1,toggle:()=>{n(e=>{c(),e.misc.suppressLineNumbers=!e.misc.suppressLineNumbers})}},{id:`suppressRateLimitOptions`,title:`Suppress rate limit options popup`,description:`Prevents the automatic /rate-limit-options command from being triggered when hitting rate limits.`,getValue:()=>t.misc?.suppressRateLimitOptions??!1,toggle:()=>{n(e=>{c(),e.misc.suppressRateLimitOptions=!e.misc.suppressRateLimitOptions})}},{id:`mcpNonBlocking`,title:`Non-blocking MCP startup`,description:`Start immediately while MCP servers connect in background. Reduces startup time ~50% with multiple MCPs.`,getValue:()=>t.misc?.mcpConnectionNonBlocking??!0,toggle:()=>{n(e=>{c(),e.misc.mcpConnectionNonBlocking=!e.misc.mcpConnectionNonBlocking})}},{id:`mcpBatchSize`,title:`MCP server batch size`,description:`Parallel MCP connections (1-20). Use ←/→ to adjust. Higher = faster startup, more resources.`,getValue:()=>t.misc?.mcpServerBatchSize??null,getDisplayValue:()=>d(t.misc?.mcpServerBatchSize??null),toggle:()=>{n(e=>{c(),e.misc.mcpServerBatchSize=null})},increment:()=>{n(e=>{c();let t=e.misc.mcpServerBatchSize??3;e.misc.mcpServerBatchSize=Math.min(20,t+1)})},decrement:()=>{n(e=>{c();let t=(e.misc.mcpServerBatchSize??3)-1;e.misc.mcpServerBatchSize=t<1?null:t})}},{id:`tableFormat`,title:`Table output format`,description:`Controls how Claude formats tables. Default: full borders. ASCII: | and -. Clean: no top/bottom/row separators. Clean+top/bottom: borders but no row separators.`,getValue:()=>t.misc?.tableFormat??`default`,isMultiValue:!0,getDisplayValue:()=>u(t.misc?.tableFormat??`default`),toggle:()=>{n(e=>{c(),e.misc.tableFormat=l(e.misc.tableFormat??`default`)})}},{id:`enableWorktreeMode`,title:`Enable worktree mode (EnterWorktree tool)`,description:`Force-enable the EnterWorktree tool for isolated git worktree sessions by bypassing the tengu_worktree_mode feature flag.`,getValue:()=>t.misc?.enableWorktreeMode??!0,toggle:()=>{n(e=>{c(),e.misc.enableWorktreeMode=!e.misc.enableWorktreeMode})}},{id:`enableVoiceMode`,title:`Enable voice mode (/voice command)`,description:`Force-enable the /voice command by bypassing the tengu_amber_quartz feature gate.`,getValue:()=>t.misc?.enableVoiceMode??!1,toggle:()=>{n(e=>{c(),e.misc.enableVoiceMode=!e.misc.enableVoiceMode})}},{id:`enableVoiceConciseOutput`,title:`Enable concise output for voice mode`,description:`Enable the concise-output prompt used for voice interactions. Only applies when voice mode is enabled.`,getValue:()=>t.misc?.enableVoiceConciseOutput??!0,toggle:()=>{n(e=>{c(),e.misc.enableVoiceConciseOutput=!e.misc.enableVoiceConciseOutput})}},{id:`enableChannelsMode`,title:`Enable channels mode (MCP channel notifications)`,description:`Force-enable MCP channel notifications by bypassing the tengu_harbor feature gate, allowlist, and permission relay.`,getValue:()=>t.misc?.enableChannelsMode??!1,toggle:()=>{n(e=>{c(),e.misc.enableChannelsMode=!e.misc.enableChannelsMode})}},{id:`enableContextLimitOverride`,title:`Override context limit`,description:`Replaces the default model context limit with CLAUDE_CODE_CONTEXT_LIMIT env var. Must be exported manually before launching CC, or falls back to 200K.`,getValue:()=>t.misc?.enableContextLimitOverride??!1,toggle:()=>{n(e=>{c(),e.misc.enableContextLimitOverride=!e.misc.enableContextLimitOverride})}},{id:`statuslineThrottle`,title:`Statusline throttle`,description:`Throttle statusline updates (0-${yt}ms). Use ←/→ to adjust by 50ms. Space to disable. 0 = instant updates.`,getValue:()=>t.misc?.statuslineThrottleMs??null,getDisplayValue:()=>f(t.misc?.statuslineThrottleMs??null),toggle:()=>{n(e=>{c(),e.misc.statuslineThrottleMs=e.misc.statuslineThrottleMs===null?300:null})},increment:()=>{n(e=>{c();let t=e.misc.statuslineThrottleMs??300;e.misc.statuslineThrottleMs=Math.min(yt,t+50)})},decrement:()=>{n(e=>{c();let t=e.misc.statuslineThrottleMs??300;e.misc.statuslineThrottleMs=Math.max(0,t-50)})}},{id:`statuslineFixedInterval`,title:`Statusline fixed interval mode`,description:`Use setInterval instead of throttle. Updates happen on a fixed schedule rather than on-demand.`,getValue:()=>t.misc?.statuslineUseFixedInterval??!1,toggle:()=>{n(e=>{c(),e.misc.statuslineUseFixedInterval=!e.misc.statuslineUseFixedInterval})}},{id:`enableSessionMemory`,title:`Enable session memory`,description:`Force-enable session memory (auto-extraction + past session search) by bypassing the tengu_session_memory and tengu_coral_fern statsig flags.`,getValue:()=>t.misc?.enableSessionMemory??!0,toggle:()=>{n(e=>{c(),e.misc.enableSessionMemory=!e.misc.enableSessionMemory})}},{id:`enableRememberSkill`,title:`Enable remember skill`,description:`Register a "remember" skill to review session memories and update CLAUDE.local.md with learnings from past sessions.`,getValue:()=>t.misc?.enableRememberSkill??!1,toggle:()=>{n(e=>{c(),e.misc.enableRememberSkill=!e.misc.enableRememberSkill})}},{id:`tokenCountRounding`,title:`Token count rounding`,description:`Round displayed token counts to nearest multiple. Use ←/→ to cycle: Off, 1, 5, 10, 25, 50, 100, 200, 250, 500, 1000.`,getValue:()=>t.misc?.tokenCountRounding??null,getDisplayValue:()=>p(t.misc?.tokenCountRounding??null),toggle:()=>{n(e=>{c(),e.misc.tokenCountRounding=null})},increment:()=>{n(e=>{c(),e.misc.tokenCountRounding=m(e.misc.tokenCountRounding??null,`next`)})},decrement:()=>{n(e=>{c(),e.misc.tokenCountRounding=m(e.misc.tokenCountRounding??null,`prev`)})}},{id:`autoAcceptPlanMode`,title:`Auto-accept plan mode`,description:`Automatically accept plans without the "Ready to code?" confirmation prompt.`,getValue:()=>t.misc?.autoAcceptPlanMode??!1,toggle:()=>{n(e=>{c(),e.misc.autoAcceptPlanMode=!e.misc.autoAcceptPlanMode})}},{id:`allowBypassPermissionsInSudo`,title:`Allow bypassing permissions in sudo`,description:`⚠️ WARNING: Disables a security check. When enabled, Claude can perform system-level operations without prompts. Use extreme caution.`,getValue:()=>t.misc?.allowBypassPermissionsInSudo??!1,toggle:()=>{t.misc?.allowBypassPermissionsInSudo??!1?n(e=>{c(),e.misc.allowBypassPermissionsInSudo=!1}):o(!0)}},{id:`suppressNativeInstallerWarning`,title:`Suppress native installer warning`,description:`Suppress the native installer warning message at startup.`,getValue:()=>t.misc?.suppressNativeInstallerWarning??!1,toggle:()=>{n(e=>{c(),e.misc.suppressNativeInstallerWarning=!e.misc.suppressNativeInstallerWarning})}},{id:`filterScrollEscapeSequences`,title:`Filter scroll escape sequences`,description:`Filter out terminal escape sequences that cause unwanted scrolling.`,getValue:()=>t.misc?.filterScrollEscapeSequences??!1,toggle:()=>{n(e=>{c(),e.misc.filterScrollEscapeSequences=!e.misc.filterScrollEscapeSequences})}},{id:`allowCustomAgentModels`,title:`Allow custom agent models`,description:`Allow arbitrary model names in custom agent frontmatter (e.g. gemini-2.5-flash). Useful with a local proxy for non-Claude models.`,getValue:()=>t.misc?.allowCustomAgentModels??!1,toggle:()=>{n(e=>{c(),e.misc.allowCustomAgentModels=!e.misc.allowCustomAgentModels})}}],[t,n]),g=h.length,_=g-1,v=be(()=>r<4?0:Math.min(r-4+1,g-4),[r,g]),y=h.slice(v,v+4),b=v>0,x=v+4<g;return H((t,s)=>{a?s.return?(n(e=>{c(),e.misc.allowBypassPermissionsInSudo=!0}),o(!1)):s.escape&&o(!1):s.return||s.escape?e():s.upArrow?i(e=>Math.max(0,e-1)):s.downArrow?i(e=>Math.min(_,e+1)):t===` `?h[r]?.toggle():s.rightArrow?h[r]?.increment?.():s.leftArrow&&h[r]?.decrement?.()}),J(B,{flexDirection:`column`,children:a?J(B,{flexDirection:`column`,paddingX:2,children:Y(B,{borderStyle:`double`,borderColor:`yellow`,padding:2,flexDirection:`column`,children:[J(B,{marginBottom:1,children:J(V,{bold:!0,color:`yellow`,children:`SECURITY WARNING`})}),J(B,{marginBottom:1,children:J(V,{children:`You are about to enable a feature that allows Claude Code to bypass permission checks when running with sudo privileges.`})}),J(B,{marginBottom:1,children:J(V,{color:`red`,children:`This means Claude can perform system-level operations without any prompts or confirmation.`})}),J(B,{marginBottom:1,children:J(V,{bold:!0,children:`Use with extreme caution.`})}),J(B,{children:Y(V,{children:[`Press `,J(V,{color:`red`,children:`Enter`}),` to enable,`,` `,J(V,{color:`green`,children:`Escape`}),` to cancel`]})})]})}):Y(q,{children:[J(B,{marginBottom:1,children:J(X,{children:`Miscellaneous Settings`})}),J(B,{marginBottom:1,children:J(V,{dimColor:!0,children:`Use ↑/↓ to navigate, space to toggle, ←/→ to adjust numbers, enter to go back.`})}),b&&J(B,{children:Y(V,{dimColor:!0,children:[` ↑ `,v,` more above`]})}),y.map((e,t)=>{let n=v+t===r,i=e.getValue(),a=!!e.getDisplayValue,o=!!e.increment,s;s=o?`◆`:a?`◉`:i?`☑`:`☐`;let c;c=a?e.getDisplayValue():typeof i==`boolean`?i?`Enabled`:`Disabled`:String(i??`Default`);let l=n&&o?` ← → `:``;return Y(B,{flexDirection:`column`,children:[J(B,{children:Y(V,{children:[J(V,{color:n?`cyan`:void 0,children:n?`❯ `:` `}),J(V,{bold:!0,color:n?`cyan`:void 0,children:e.title})]})}),J(B,{children:Y(V,{dimColor:!0,children:[` `,e.description]})}),J(B,{marginLeft:4,marginBottom:1,children:Y(V,{children:[s,` `,c,J(V,{dimColor:!0,children:l})]})})]},e.id)}),x&&J(B,{children:Y(V,{dimColor:!0,children:[` `,`↓ `,g-v-4,` more below`]})}),J(B,{marginTop:1,children:Y(V,{dimColor:!0,children:[`Item `,r+1,` of `,g]})})]})})}const xt=`AgentOutputTool.AskUserQuestion.Bash.BashOutputTool.Edit.EnterPlanMode.ExitPlanMode.Glob.Grep.KillShell.ListMcpResourcesTool.LSP.NotebookEdit.Read.ReadMcpResourceTool.Skill.Task.TaskCreate.TaskGet.TaskList.TaskOutput.TaskStop.TaskUpdate.Teammate.TodoWrite.ToolSearch.WebFetch.WebSearch.Write`.split(`.`);function St({toolsetIndex:e,onBack:t}){let{settings:n,updateSettings:r}=W($),i=n.toolsets[e],[a,o]=K(i?.name||`New Toolset`),[s,c]=K(i?.allowedTools||[]),[l,u]=K(!1),[d,f]=K(0);G(()=>{i&&r(t=>{let n=t.toolsets[e].name;t.toolsets[e].name=a,t.toolsets[e].allowedTools=s,n!==a&&(t.defaultToolset===n&&(t.defaultToolset=a),t.planModeToolset===n&&(t.planModeToolset=a))})},[a,s]);let p=e=>s===`*`?!0:s.includes(e),m=e=>{e===`All`?c(`*`):e===`None`?c([]):s===`*`?c(xt.filter(t=>t!==e)):s.includes(e)?c(s.filter(t=>t!==e)):c([...s,e])};if(H((e,n)=>{if(l){n.return?u(!1):n.escape?(o(i?.name||`New Toolset`),u(!1)):n.backspace||n.delete?o(e=>e.slice(0,-1)):e&&e.length===1&&o(t=>t+e);return}if(n.escape)t();else if(n.upArrow)f(e=>Math.max(0,e-1));else if(n.downArrow)f(e=>Math.min(xt.length+1,e+1));else if(e===` `||n.return)if(d===0)m(`All`);else if(d===1)m(`None`);else{let e=xt[d-2];e&&m(e)}else e===`n`&&u(!0)}),!i)return J(B,{flexDirection:`column`,children:J(V,{color:`red`,children:`Toolset not found`})});let h=s===`*`,g=Array.isArray(s)&&s.length===0;return Y(B,{flexDirection:`column`,children:[J(X,{children:`Edit Toolset`}),J(B,{marginBottom:1,flexDirection:`column`,children:J(V,{dimColor:!0,children:`n to edit name · space/enter to toggle · esc to go back`})}),Y(B,{marginBottom:1,flexDirection:`column`,children:[J(V,{bold:!0,children:`Name:`}),J(B,{marginLeft:2,children:J(B,{borderStyle:`round`,borderColor:l?`yellow`:`gray`,children:J(V,{children:a})})}),l&&J(B,{marginLeft:2,children:J(V,{dimColor:!0,children:`enter to save · esc to cancel`})})]}),Y(B,{marginBottom:1,flexDirection:`column`,children:[J(V,{bold:!0,children:`Allowed Tools:`}),J(B,{marginLeft:2,children:Y(V,{color:d===0?`cyan`:void 0,children:[d===0?`❯ `:` `,h?`●`:`○`,` All`]})}),J(B,{marginLeft:2,children:Y(V,{color:d===1?`cyan`:void 0,children:[d===1?`❯ `:` `,g?`●`:`○`,` None`]})}),xt.map((e,t)=>{let n=t+2;return J(B,{marginLeft:2,children:Y(V,{color:d===n?`cyan`:void 0,children:[d===n?`❯ `:` `,p(e)?`◉`:`○`,` `,e]})},e)})]}),J(B,{borderStyle:`round`,padding:1,marginTop:1,children:Y(B,{flexDirection:`column`,children:[J(V,{bold:!0,children:`Summary:`}),Y(V,{children:[`Name: `,J(V,{color:`cyan`,children:a})]}),Y(V,{children:[`Tools:`,` `,s===`*`?J(V,{color:`green`,children:`All tools (*)`}):s.length===0?J(V,{color:`red`,children:`No tools ([])`}):Y(V,{color:`yellow`,children:[s.length,` selected`]})]})]})})]})}function Ct({onBack:e}){let{settings:{toolsets:t,defaultToolset:n,planModeToolset:r,themes:i},updateSettings:a}=W($),o=ce(),s=i.find(e=>e.id===o)||i[0],c=x.themes[0],l=s?.colors.planMode||c.colors.planMode,u=s?.colors.autoAccept||c.colors.autoAccept,[d,f]=K(0),[p,m]=K(null),[h,g]=K(!0),_=()=>{let e={name:`New Toolset`,allowedTools:[]};a(t=>{t.toolsets.push(e)}),m(t.length),g(!1)},v=e=>{let n=t[e];a(t=>{t.toolsets.splice(e,1),t.defaultToolset===n.name&&(t.defaultToolset=null),t.planModeToolset===n.name&&(t.planModeToolset=null)}),d>=t.length-1&&f(Math.max(0,t.length-2))},y=e=>{let n=t[e];a(e=>{e.defaultToolset=n.name})},b=e=>{let n=t[e];a(e=>{e.planModeToolset=n.name})};if(H((n,r)=>{r.escape?e():r.upArrow?f(e=>Math.max(0,e-1)):r.downArrow?f(e=>Math.min(t.length-1,e+1)):r.return&&t.length>0?(m(d),g(!1)):n===`n`?_():n===`x`&&t.length>0?v(d):n===`d`&&t.length>0?y(d):n===`p`&&t.length>0&&b(d)},{isActive:h}),p!==null)return J(St,{toolsetIndex:p,onBack:()=>{m(null),g(!0)}});let S=e=>e.allowedTools===`*`?`All tools`:e.allowedTools.length===0?`No tools`:`${e.allowedTools.length} tool${e.allowedTools.length===1?``:`s`}`;return Y(B,{flexDirection:`column`,children:[J(X,{children:`Toolsets`}),Y(B,{marginBottom:1,flexDirection:`column`,children:[J(V,{dimColor:!0,children:`n to create a new toolset`}),t.length>0&&J(V,{dimColor:!0,children:`d to set as default toolset`}),t.length>0&&J(V,{dimColor:!0,children:`p to set as plan mode toolset`}),t.length>0&&J(V,{dimColor:!0,children:`x to delete a toolset`}),t.length>0&&J(V,{dimColor:!0,children:`enter to edit toolset`}),J(V,{dimColor:!0,children:`esc to go back`})]}),t.length===0?J(V,{children:`No toolsets created yet. Press n to create one.`}):J(B,{flexDirection:`column`,children:t.map((e,t)=>{let i=e.name===n,a=e.name===r,o=d===t,s;return o&&(s=`yellow`),Y(B,{flexDirection:`row`,children:[Y(V,{color:s,children:[o?`❯ `:` `,e.name,` `]}),Y(V,{color:s,children:[`(`,S(e),`)`]}),i&&J(V,{color:u,children:` ⏵⏵ accept edits`}),a&&J(V,{color:l,children:` ⏸ plan mode`})]},t)})})]})}function wt({onBack:e}){let{settings:t,updateSettings:n}=W($),[r,i]=K(`plan`),[a,o]=K(!1),[s,c]=K(0),l=t.subagentModels||{plan:null,explore:null,generalPurpose:null},u=[{id:`plan`,title:`Plan Agent`,description:`The agent responsible for creating implementation plans.`},{id:`explore`,title:`Explore Agent`,description:`The agent specialized for exploring codebases.`},{id:`generalPurpose`,title:`General-purpose Agent`,description:`The agent used for general multi-step tasks.`}],d=[{label:`Default (Inherited)`,value:null},{label:`sonnet`,value:`sonnet`},{label:`haiku`,value:`haiku`},{label:`opus`,value:`opus`},{label:`sonnet[1m]`,value:`sonnet[1m]`}];return H((t,f)=>{if(a){if(f.escape)o(!1);else if(f.upArrow)c(e=>e>0?e-1:d.length-1);else if(f.downArrow)c(e=>e<d.length-1?e+1:0);else if(f.return){let e=d[s].value;n(t=>{t.subagentModels||={plan:null,explore:null,generalPurpose:null},t.subagentModels[r]=e}),o(!1)}}else if(f.escape)e();else if(f.upArrow){let e=u.findIndex(e=>e.id===r);i(u[e>0?e-1:u.length-1].id)}else if(f.downArrow){let e=u.findIndex(e=>e.id===r);i(u[e<u.length-1?e+1:0].id)}else if(t===` `||f.return){let e=l[r],t=d.findIndex(t=>t.value===e);c(t>=0?t:0),o(!0)}}),a?Y(B,{flexDirection:`column`,children:[J(B,{marginBottom:1,children:Y(X,{children:[`Select Model for`,` `,u.find(e=>e.id===r)?.title]})}),d.map((e,t)=>{let n=t===s;return J(B,{children:Y(V,{color:n?`cyan`:void 0,children:[n?`❯ `:` `,e.label,e.value?Y(V,{dimColor:!0,children:[` (`,e.value,`)`]}):null]})},t)})]}):Y(B,{flexDirection:`column`,children:[J(B,{marginBottom:1,children:J(X,{children:`Subagent Model Settings`})}),J(B,{marginBottom:1,children:J(V,{dimColor:!0,children:`Configure which Claude model each subagent uses. Use arrow keys to navigate, enter or space to change a model, and escape to go back.`})}),u.map(e=>{let t=e.id===r,n=l[e.id],i=d.find(e=>e.value===n)?.label||n||`Default`;return Y(B,{flexDirection:`column`,marginBottom:1,children:[J(B,{children:Y(V,{color:t?`cyan`:void 0,children:[t?`❯ `:` `,J(V,{bold:!0,children:e.title})]})}),J(B,{marginLeft:4,children:J(V,{dimColor:!0,children:e.description})}),J(B,{marginLeft:4,children:Y(V,{children:[`Current: `,J(V,{color:`green`,children:i})]})})]},e.id)})]})}function Tt({onBack:e}){let{settings:t,updateSettings:n}=W($),r=t.claudeMdAltNames??[],[i,a]=K(0),[o,s]=K(!1),[c,l]=K(``),[u,d]=K(!1);return H((t,f)=>{if(o||u){f.return&&c.trim()?(u?(n(e=>{e.claudeMdAltNames||=[],e.claudeMdAltNames.push(c.trim())}),d(!1)):(n(e=>{e.claudeMdAltNames&&(e.claudeMdAltNames[i]=c.trim())}),s(!1)),l(``)):f.escape?(l(``),s(!1),d(!1)):f.backspace||f.delete?l(e=>e.slice(0,-1)):t&&l(e=>e+t);return}f.escape?e():f.upArrow?r.length>0&&a(e=>e>0?e-1:r.length-1):f.downArrow?r.length>0&&a(e=>e<r.length-1?e+1:0):t===`e`?r.length>0&&(l(r[i]),s(!0)):t===`d`?r.length>0&&(n(e=>{e.claudeMdAltNames&&=e.claudeMdAltNames.filter((e,t)=>t!==i)}),i>=r.length-1&&a(Math.max(0,r.length-2))):t===`n`?(d(!0),l(``)):f.ctrl&&t===`r`?(n(e=>{e.claudeMdAltNames=[...x.claudeMdAltNames??[]]}),a(0)):t===`u`||f.shift&&f.upArrow?r.length>1&&i>0&&(n(e=>{if(!e.claudeMdAltNames)return;let t=e.claudeMdAltNames;[t[i-1],t[i]]=[t[i],t[i-1]]}),a(e=>e-1)):(t===`j`||f.shift&&f.downArrow)&&r.length>1&&i<r.length-1&&(n(e=>{if(!e.claudeMdAltNames)return;let t=e.claudeMdAltNames;[t[i],t[i+1]]=[t[i+1],t[i]]}),a(e=>e+1))}),Y(B,{flexDirection:`column`,children:[Y(B,{marginBottom:1,flexDirection:`column`,children:[J(X,{children:`CLAUDE.md Alternative Names`}),Y(B,{flexDirection:`column`,children:[J(V,{dimColor:!0,children:`changes auto-saved`}),J(V,{dimColor:!0,children:`esc to go back`})]})]}),J(B,{marginBottom:1,flexDirection:`column`,children:J(V,{dimColor:!0,children:`When Claude Code looks for CLAUDE.md and doesn't find it, it will try these alternative filenames in order. This lets you use AGENTS.md (and other file names).`})}),J(B,{marginBottom:1,children:J(V,{dimColor:!0,children:`e to edit · d to delete · n to add new · u/j to move up/down · ctrl+r to reset`})}),Y(B,{flexDirection:`column`,children:[r.length===0?J(V,{children:`No alternative names configured. Press n to add one.`}):J(q,{children:(()=>{let e=Math.max(0,i-6),t=Math.min(r.length,e+12),n=Math.max(0,t-12),a=r.slice(n,t);return Y(q,{children:[n>0&&Y(V,{color:`gray`,dimColor:!0,children:[` `,`↑ `,n,` more above`]}),a.map((e,t)=>{let r=n+t,a=r===i;return Y(V,{color:a?`cyan`:void 0,children:[a?`❯ `:` `,e]},r)}),t<r.length&&Y(V,{color:`gray`,dimColor:!0,children:[` `,`↓ `,r.length-t,` more below`]})]})})()}),u&&Y(B,{alignItems:`center`,children:[J(V,{color:`yellow`,children:`❯ `}),J(B,{borderStyle:`round`,borderColor:`yellow`,children:J(V,{children:c})})]}),o&&Y(B,{marginTop:1,alignItems:`center`,children:[J(V,{children:`Editing: `}),J(B,{borderStyle:`round`,borderColor:`yellow`,children:J(V,{children:c})})]})]})]})}const $=ve({settings:x,updateSettings:e=>{},changesApplied:!1,ccVersion:``});function Et({startupCheckInfo:e,configMigrated:t,invocationCommand:r,initialConfig:a}){let[o,s]=K(a),[c,l]=K(!a.hidePiebaldAnnouncement),u=ye(e=>{let t=JSON.parse(JSON.stringify(o.settings));e(t),s(e=>({...e,settings:t,changesApplied:!1})),M(e=>{e.settings=t,e.changesApplied=!1})},[o.settings]),[d,p]=K(null),[m,h]=K(null);G(()=>{e.wasUpdated&&e.oldVersion&&(h({message:`Your Claude Code installation was updated from ${e.oldVersion} to ${e.newVersion}, and the patching was likely overwritten
2
+ import{A as e,C as t,E as n,F as r,G as i,H as a,I as o,J as s,K as c,L as l,M as u,N as d,O as f,P as p,Q as m,R as h,T as g,U as _,W as v,X as y,Y as b,Z as x,_ as S,a as C,b as w,c as T,f as E,g as D,h as O,i as k,j as A,k as j,l as M,m as ee,n as te,o as ne,p as N,q as re,r as P,t as ie,u as ae,v as oe,w as se,y as ce,z as F}from"./config-5W52dXMg.mjs";import{a as I,c as L,d as R,l as le,n as ue,o as de,s as fe,t as pe,u as z}from"./content-vIySXZ_y.mjs";import{Box as B,Text as V,render as me,useInput as H}from"ink";import{Command as he}from"commander";import U from"chalk";import ge,{Fragment as _e,createContext as ve,useCallback as ye,useContext as W,useEffect as G,useMemo as be,useRef as xe,useState as K}from"react";import*as Se from"node:os";import Ce from"ink-link";import*as we from"node:fs/promises";import Te from"node:fs/promises";import{structuredPatch as Ee}from"diff";import{Fragment as q,jsx as J,jsxs as Y}from"react/jsx-runtime";import De from"process";import Oe from"cli-spinners";import*as ke from"node:readline";import{execSync as Ae,spawn as je}from"node:child_process";var X=({children:e,...t})=>Y(V,{bold:!0,backgroundColor:`#ffd500`,color:`#000`,...t,children:[` `,e,` `]});const Me=[`\x1B[?25l\x1B[0m \x1B[38;2;0;0;0m \x1B[38;2;252;130;0m▂\x1B[38;2;252;130;0m▄\x1B[38;2;252;130;0m▅\x1B[38;2;252;130;0m▇\x1B[38;2;254;131;0m\x1B[48;2;252;130;0m▇\x1B[48;2;252;130;0m▇▇\x1B[48;2;252;130;0m▇\x1B[0m\x1B[38;2;252;130;0m▇\x1B[38;2;252;130;0m▅\x1B[38;2;252;130;0m▄\x1B[38;2;252;130;0m▂ \x1B[0m`,` \x1B[38;2;0;0;0m \x1B[38;2;254;131;0m▗\x1B[38;2;254;131;0m▆\x1B[48;2;254;131;0m \x1B[38;2;254;132;0m╶ \x1B[0m\x1B[38;2;254;131;0m▆\x1B[38;2;254;131;0m▖ \x1B[0m`,` \x1B[7m\x1B[38;2;254;131;0m▘\x1B[0m\x1B[38;2;11;6;0m\x1B[48;2;254;131;0m \x1B[38;2;254;216;182m\x1B[48;2;254;136;12m▃\x1B[38;2;254;249;246m\x1B[48;2;254;143;29m▅\x1B[38;2;254;253;253m\x1B[48;2;254;143;40m▆\x1B[38;2;254;254;253m\x1B[48;2;254;152;68m▆▆▆\x1B[38;2;254;253;252m\x1B[48;2;254;141;34m▆\x1B[38;2;254;247;242m\x1B[48;2;254;140;24m▅\x1B[38;2;254;224;199m\x1B[48;2;254;140;20m▖\x1B[48;2;254;131;0m \x1B[0m\x1B[7m\x1B[38;2;254;131;0m▝\x1B[0m \x1B[0m`,`\x1B[7m\x1B[38;2;251;127;0m▌\x1B[0m\x1B[38;2;251;127;0m\x1B[48;2;253;130;0m▃\x1B[38;2;252;128;0m\x1B[48;2;254;131;0m▃\x1B[38;2;252;129;0m▂\x1B[38;2;253;130;0m▁\x1B[38;2;249;135;16m\x1B[48;2;253;226;202m▋\x1B[38;2;254;254;254m\x1B[48;2;254;254;253m┈\x1B[48;2;246;246;245m┈\x1B[38;2;47;47;47m\x1B[48;2;244;244;243m▂\x1B[38;2;112;112;112m\x1B[48;2;251;251;251m▂\x1B[38;2;254;254;254m\x1B[48;2;254;254;253m▁╌▝\x1B[38;2;254;254;253m\x1B[48;2;254;254;254m▋\x1B[38;2;254;254;254m\x1B[48;2;254;253;252m┈\x1B[38;2;252;209;168m\x1B[48;2;251;129;0m▍\x1B[38;2;253;129;0m\x1B[48;2;254;131;0m▂\x1B[38;2;252;128;0m▃\x1B[38;2;251;127;0m\x1B[48;2;253;130;0m▃\x1B[0m\x1B[38;2;251;127;0m▌\x1B[0m`,`\x1B[38;2;243;118;0m\x1B[48;2;243;118;0m▏\x1B[38;2;245;118;0m\x1B[48;2;248;122;0m▄\x1B[38;2;247;121;0m\x1B[48;2;247;122;0m┈\x1B[38;2;106;68;38m\x1B[48;2;245;123;2m▃\x1B[38;2;39;33;28m\x1B[48;2;211;109;6m▅\x1B[38;2;27;20;12m\x1B[48;2;237;237;237m▌\x1B[48;2;254;254;253m \x1B[38;2;90;90;89m\x1B[48;2;231;230;230m▝\x1B[38;2;215;215;214m\x1B[48;2;48;48;48m▁\x1B[38;2;203;203;202m\x1B[48;2;42;42;42m▂\x1B[38;2;254;254;254m\x1B[48;2;254;254;253m┇╴\x1B[38;2;253;252;252m▂\x1B[38;2;251;250;250m\x1B[48;2;253;253;253m▃\x1B[38;2;249;249;248m\x1B[48;2;252;252;251m▄\x1B[38;2;249;248;248m\x1B[48;2;237;118;0m▍\x1B[38;2;246;121;0m\x1B[48;2;250;125;0m▄\x1B[38;2;246;119;0m\x1B[48;2;249;124;0m▄\x1B[38;2;245;118;0m\x1B[48;2;248;123;0m▄\x1B[38;2;243;118;0m\x1B[48;2;243;118;0m▉\x1B[0m`,`\x1B[38;2;238;108;0m\x1B[48;2;237;109;0m▏\x1B[38;2;238;108;0m\x1B[48;2;241;113;0m▄\x1B[38;2;239;109;0m\x1B[48;2;242;114;0m▄\x1B[38;2;233;109;2m\x1B[48;2;125;73;29m▇\x1B[38;2;225;104;1m\x1B[48;2;50;32;18m▄\x1B[38;2;62;29;2m\x1B[48;2;239;237;237m▌\x1B[38;2;254;253;253m\x1B[48;2;254;254;254m┻\x1B[38;2;254;254;253m▊\x1B[38;2;254;254;254m\x1B[48;2;254;254;253m┊\x1B[38;2;253;253;252m▂\x1B[38;2;251;251;251m\x1B[48;2;254;253;253m▃\x1B[38;2;249;249;249m\x1B[48;2;252;252;252m▄\x1B[38;2;247;247;247m\x1B[48;2;250;250;250m▄\x1B[38;2;245;245;244m\x1B[48;2;248;248;248m▄\x1B[38;2;243;243;242m\x1B[48;2;246;246;245m▄\x1B[38;2;243;242;242m\x1B[48;2;230;109;0m▍\x1B[38;2;239;111;0m\x1B[48;2;243;116;0m▄\x1B[38;2;239;109;0m\x1B[48;2;242;114;0m▄\x1B[38;2;238;108;0m\x1B[48;2;241;113;0m▄\x1B[38;2;237;108;0m\x1B[48;2;238;108;0m▉\x1B[0m`,`\x1B[7m\x1B[38;2;231;98;0m▌\x1B[0m\x1B[38;2;231;98;0m\x1B[48;2;234;103;0m▄\x1B[38;2;231;99;0m\x1B[48;2;235;105;0m▄\x1B[38;2;232;100;0m\x1B[48;2;236;105;0m▄\x1B[38;2;232;101;0m\x1B[48;2;236;106;0m▄\x1B[38;2;223;99;0m\x1B[48;2;247;238;235m▌\x1B[38;2;254;254;254m\x1B[48;2;254;254;253m┊\x1B[38;2;252;252;251m▃\x1B[38;2;250;250;250m\x1B[48;2;253;253;252m▄\x1B[38;2;248;248;247m\x1B[48;2;251;251;250m▄\x1B[38;2;246;245;245m\x1B[48;2;249;248;248m▄\x1B[38;2;243;243;243m\x1B[48;2;246;246;246m▄\x1B[38;2;241;241;241m\x1B[48;2;244;244;244m▄\x1B[38;2;239;239;238m\x1B[48;2;242;242;242m▄\x1B[38;2;237;237;236m\x1B[48;2;240;240;239m▄\x1B[38;2;237;236;236m\x1B[48;2;223;99;0m▍\x1B[38;2;232;100;0m\x1B[48;2;236;106;0m▄\x1B[38;2;231;100;0m\x1B[48;2;235;105;0m▄\x1B[38;2;231;98;0m\x1B[48;2;234;103;0m▄\x1B[0m\x1B[38;2;231;98;0m▌\x1B[0m`,` \x1B[7m\x1B[38;2;224;89;0m▖\x1B[0m\x1B[38;2;224;89;0m\x1B[48;2;228;94;0m▄\x1B[38;2;225;90;0m\x1B[48;2;228;95;0m▄\x1B[38;2;225;91;0m\x1B[48;2;229;96;0m▄\x1B[38;2;217;90;1m\x1B[48;2;97;77;70m▌\x1B[38;2;70;70;70m\x1B[48;2;207;207;207m▆\x1B[38;2;66;65;65m\x1B[48;2;228;228;227m▄\x1B[38;2;66;66;66m\x1B[48;2;233;232;232m▂\x1B[38;2;169;169;169m\x1B[48;2;243;243;243m▁\x1B[38;2;240;239;239m\x1B[48;2;243;242;242m▄\x1B[38;2;238;237;237m\x1B[48;2;241;240;240m▄\x1B[38;2;235;235;235m\x1B[48;2;238;238;238m▄\x1B[38;2;233;233;233m\x1B[48;2;236;236;236m▄\x1B[38;2;231;231;230m\x1B[48;2;234;234;233m▄\x1B[38;2;231;230;230m\x1B[48;2;216;89;0m▍\x1B[38;2;225;90;0m\x1B[48;2;229;95;0m▄\x1B[38;2;224;89;0m\x1B[48;2;228;94;0m▄\x1B[0m\x1B[7m\x1B[38;2;224;89;0m▗\x1B[0m \x1B[0m`,` \x1B[38;2;0;0;0m \x1B[38;2;217;80;0m▝\x1B[7m\x1B[38;2;217;80;0m▂\x1B[0m\x1B[38;2;217;80;0m\x1B[48;2;221;86;0m▄\x1B[38;2;197;78;9m\x1B[48;2;66;66;65m▋\x1B[38;2;65;65;64m\x1B[48;2;60;60;60m▘\x1B[38;2;52;52;51m\x1B[48;2;56;56;56m▗\x1B[38;2;45;45;45m\x1B[48;2;50;50;49m▗\x1B[38;2;42;42;42m\x1B[48;2;46;46;46m┈\x1B[38;2;41;41;41m\x1B[48;2;203;202;202m▆\x1B[38;2;38;38;38m\x1B[48;2;218;218;218m▄\x1B[38;2;45;45;45m\x1B[48;2;221;221;221m▂\x1B[38;2;229;229;229m┊\x1B[38;2;225;225;225m\x1B[48;2;228;228;227m▄\x1B[38;2;225;224;224m\x1B[48;2;209;79;0m▍\x1B[0m\x1B[7m\x1B[38;2;217;80;0m▂\x1B[0m\x1B[38;2;217;80;0m▘ \x1B[0m`,` \x1B[38;2;0;0;0m \x1B[7m\x1B[38;2;191;73;0m▆\x1B[38;2;191;73;0m▄\x1B[38;2;56;55;55m▃\x1B[38;2;46;46;46m▁\x1B[0m\x1B[38;2;20;20;20m\x1B[48;2;42;42;42m▁\x1B[38;2;36;36;36m\x1B[48;2;35;34;34m╴\x1B[38;2;23;23;23m\x1B[48;2;29;29;28m▁\x1B[38;2;10;10;10m\x1B[48;2;22;22;22m▁\x1B[0m\x1B[7m\x1B[38;2;15;15;15m▁\x1B[38;2;22;22;21m▃\x1B[38;2;154;154;154m▅\x1B[38;2;175;116;83m▇\x1B[0m\x1B[38;2;17;15;14m \x1B[0m`,`\x1B[?25h\x1B[0m`];var Ne=()=>Y(B,{flexDirection:`row`,height:10,alignItems:`center`,borderStyle:`bold`,borderBottom:!1,borderTop:!1,borderRight:!1,borderColor:`#ff8400`,marginBottom:1,children:[Y(B,{marginBottom:1,paddingLeft:1,flexDirection:`column`,flexGrow:1,children:[J(V,{bold:!0,color:`#ff8400`,children:`Piebald is released!`}),J(V,{children:` `}),Y(V,{children:[`We've released `,J(V,{bold:!0,children:`Piebald`}),`, the ultimate agentic AI developer experience.`]}),Y(V,{children:[`Download it and try it out for free!`,` `,J(Ce,{url:`https://piebald.ai/`,fallback:!1,children:J(V,{color:`#ff8400`,children:`https://piebald.ai/`})})]}),J(V,{children:` `}),J(V,{dimColor:!0,color:`gray`,children:`press 'h' to hide`})]}),J(B,{width:22,flexShrink:0,flexDirection:`column`,alignItems:`center`,children:Me.map((e,t)=>J(V,{children:e},t))})]});let Z=function(e){return e.THEMES=`Themes`,e.THINKING_VERBS=`Thinking verbs`,e.THINKING_STYLE=`Thinking style`,e.USER_MESSAGE_DISPLAY=`User message display`,e.INPUT_PATTERN_HIGHLIGHTERS=`Input pattern highlighters`,e.MISC=`Misc`,e.TOOLSETS=`Toolsets`,e.SUBAGENT_MODELS=`Subagent models`,e.CLAUDE_MD_ALT_NAMES=`CLAUDE.md alternative names`,e.VIEW_SYSTEM_PROMPTS=`View system prompts`,e.RESTORE_ORIGINAL=`Restore original Claude Code (preserves config.json)`,e.OPEN_CONFIG=`Open config.json`,e.OPEN_CLI=`Open Claude Code's cli.js`,e.EXIT=`Exit`,e}({});function Pe({items:e,selectedIndex:t,onSelect:n,onSubmit:r}){return H((i,a)=>{a.upArrow?n(t>0?t-1:e.length-1):a.downArrow?n(t<e.length-1?t+1:0):a.return&&r(e[t].name)}),J(B,{flexDirection:`column`,children:e.map((e,n)=>J(B,{children:Y(V,{children:[Y(V,{bold:n===t,color:n===t?`cyan`:void 0,...n===t?e.selectedStyles??{}:e.styles??{},children:[n===t?`❯ `:` `,e.name]}),e.desc&&n===t&&Y(V,{dimColor:!0,bold:!1,children:[` \x1B[0;2m`,`- `,e.desc]})]})},n))})}const Fe=[{name:Z.THEMES,desc:`Modify Claude Code's built-in themes or create your own`},{name:Z.THINKING_VERBS,desc:`Customize the list of verbs that Claude Code uses when it's working`},{name:Z.THINKING_STYLE,desc:`Choose custom spinners`},{name:Z.USER_MESSAGE_DISPLAY,desc:`Customize how user messages are displayed`},{name:Z.INPUT_PATTERN_HIGHLIGHTERS,desc:`Create custom highlighters for patterns in your input`},{name:Z.MISC,desc:`Miscellaneous settings (input box border, etc.)`},{name:Z.TOOLSETS,desc:`Manage toolsets to control which tools are available`},{name:Z.SUBAGENT_MODELS,desc:`Configure which Claude model each subagent uses (Plan, Explore, etc.)`},{name:Z.CLAUDE_MD_ALT_NAMES,desc:`Configure alternative filenames for CLAUDE.md (e.g., AGENTS.md)`},{name:Z.VIEW_SYSTEM_PROMPTS,desc:`Opens the system prompts directory where you can customize Claude Code's system prompts`}],Ie=[{name:Z.RESTORE_ORIGINAL,desc:`Reverts your Claude Code install to its original state (your customizations are remembered and can be reapplied)`},{name:Z.OPEN_CONFIG,desc:`Opens your tweakcc config file (${P})`},{name:Z.OPEN_CLI,desc:`Opens Claude Code's cli.js file`},{name:Z.EXIT,desc:`Bye!`}];var Le=({onSubmit:e})=>{let t=[...Fe,...Ie],[n,r]=K(0);return J(Pe,{items:t,selectedIndex:n,onSelect:r,onSubmit:t=>e(t)})};const Re=()=>Y(B,{flexDirection:`row`,children:[J(X,{children:`tweakcc`}),J(V,{children:` (by `}),J(Ce,{url:`https://piebald.ai`,fallback:!1,children:J(V,{color:`#ff8400`,bold:!0,children:`Piebald`})}),J(V,{children:`)`})]}),ze=()=>J(B,{children:Y(V,{color:`yellow`,children:[`⭐ `,J(V,{bold:!0,children:`Star the repo at `}),J(Ce,{url:`https://github.com/Piebald-AI/tweakcc`,fallback:!1,children:J(V,{bold:!0,color:`cyan`,children:`https://github.com/Piebald-AI/tweakcc`})}),J(V,{bold:!0,children:` if you find this useful!`}),` ⭐`]})}),Be=({notification:e})=>J(B,{borderLeft:!0,borderRight:!1,borderTop:!1,borderBottom:!1,borderStyle:`bold`,borderColor:e.type===`success`?`green`:e.type===`error`?`red`:e.type===`info`?`blue`:`yellow`,paddingLeft:1,flexDirection:`column`,children:J(V,{color:e.type===`success`?`green`:e.type===`error`?`red`:e.type===`info`?`blue`:`yellow`,children:e.message})}),Ve=({onSubmit:e,notification:t,configMigrated:n,showPiebaldAnnouncement:r,changesApplied:i,invocationCommand:a})=>Y(B,{flexDirection:`column`,gap:1,children:[n&&J(B,{children:J(V,{color:`blue`,bold:!0,children:"Note that in tweakcc v3.2.0+, `ccInstallationDir` config is deprecated. You are now migrated to `ccInstallationPath` which supports npm and native installs."})}),J(Re,{}),J(B,{children:Y(V,{children:[J(V,{bold:!0,children:`Customize your Claude Code installation.`}),` `,Y(V,{dimColor:!0,children:[`Settings will be saved to `,te.replace(Se.homedir(),`~`),`/config.json.`]})]})}),J(r?Ne:ze,{}),t&&J(Be,{notification:t}),!i&&!t&&J(Be,{notification:{message:`Your changes are configured but not applied.\nRun \`${a} --apply\` to apply your customizations!`,type:`info`}}),J(Le,{onSubmit:e})]});function Q({color:e,backgroundColor:t,bold:n,dimColor:r,children:i}){let a=e?.startsWith(`ansi:`),o=t?.startsWith(`ansi:`);if(a||o){if(ge.Children.toArray(i).some(e=>ge.isValidElement(e)))return J(V,{children:i});let s=U;if(a){let t=e.slice(5);s=s[t]||s}if(o){let e=t.slice(5),n=e.startsWith(`bg`)?e:`bg${e.charAt(0).toUpperCase()}${e.slice(1)}`;s=s[n]||s}n&&(s=s.bold),r&&(s=s.dim);let c=ge.Children.toArray(i).map(e=>typeof e==`string`||typeof e==`number`?String(e):``).join(``);return J(V,{children:s(c)})}return J(V,{color:e,backgroundColor:t,bold:n,dimColor:r,children:i})}function He({text:e,nonShimmerColors:t,shimmerColors:n,shimmerWidth:r=3,updateDuration:i=50,restartPoint:a=10}){let[o,s]=K(0);return G(()=>{let t=setInterval(()=>{s(t=>{let n=t+1;return n>=e.length+a?-r:n})},i);return()=>clearInterval(t)},[e.length,a,i]),t.length===n.length?J(V,{children:e.split(``).map((i,a)=>{let s=a>=o&&a<o+r&&o<e.length,c=a%t.length;return J(V,{color:s?n[c]:t[c],children:i},a)})}):(console.error(`UltrathinkRainbowShimmer: nonShimmerColors and shimmerColors must have the same length`),J(V,{children:e}))}const Ue=De.cwd();function We({theme:e}){let{ccVersion:t}=W($);return Y(B,{flexDirection:`column`,paddingLeft:1,children:[J(B,{marginBottom:1,children:Y(V,{bold:!0,children:[`Preview: `,e.name]})}),J(B,{borderStyle:`single`,borderColor:`gray`,paddingX:1,children:Y(B,{flexDirection:`column`,children:[Y(B,{flexDirection:`column`,children:[Y(V,{children:[J(Q,{color:e.colors.clawd_body,children:` ▐`}),J(V,{color:e.colors.clawd_body,backgroundColor:e.colors.clawd_background,children:`▛███▜`}),Y(V,{children:[J(Q,{color:e.colors.clawd_body,children:`▌ `}),` `,J(V,{bold:!0,children:`Claude Code`}),` `,t?`v${t}`:`v2.0.14`]})]}),Y(V,{children:[J(Q,{color:e.colors.clawd_body,children:`▝▜`}),J(V,{color:e.colors.clawd_body,backgroundColor:e.colors.clawd_background,children:`█████`}),J(Q,{color:e.colors.clawd_body,children:`▛▘`}),` `,w(),` · `,oe()]}),Y(Q,{color:e.colors.clawd_body,children:[` `,`▘▘ ▝▝`,` `,Ue]}),Y(V,{children:[Y(Q,{color:e.colors.success,children:[`Login successful. Press`,` `]}),J(Q,{bold:!0,color:e.colors.success,children:`Enter`}),Y(Q,{color:e.colors.success,children:[` `,`to continue…`]})]})]}),J(V,{children:`╭─────────────────────────────────────────────╮`}),Y(V,{children:[`│ 1 function greet() `,`{`,` `,`│`]}),Y(V,{children:[`│ 2`,` `,J(Q,{backgroundColor:e.colors.diffRemoved,color:e.colors.text,children:`- console.log("`}),J(Q,{backgroundColor:e.colors.diffRemovedWord,children:`Hello, World!`}),J(Q,{backgroundColor:e.colors.diffRemoved,children:`");`}),` `,`│`]}),Y(V,{children:[`│ 2`,` `,J(Q,{backgroundColor:e.colors.diffAdded,color:e.colors.text,children:`+ console.log("`}),J(Q,{backgroundColor:e.colors.diffAddedWord,children:`Hello, Claude!`}),J(Q,{backgroundColor:e.colors.diffAdded,children:`");`}),` `,`│`]}),J(Q,{color:e.colors.warning,children:`╭─────────────────────────────────────────────╮`}),Y(Q,{color:e.colors.warning,children:[`│ Do you trust the files in this folder?`,` `,`│`]}),Y(V,{children:[J(Q,{color:e.colors.warning,children:`│ `}),J(V,{dimColor:!0,children:`Enter to confirm · Esc to exit`}),Y(Q,{color:e.colors.warning,children:[` `,`│`]})]}),J(Q,{color:e.colors.bashBorder,children:`───────────────────────────────────────────────`}),Y(V,{children:[J(Q,{color:e.colors.bashBorder,children:`!`}),J(V,{children:` ls`})]}),J(Q,{color:e.colors.promptBorder,children:`───────────────────────────────────────────────`}),J(V,{children:Y(V,{children:[`> list the dir`,` `,J(He,{text:`ultrathink`,nonShimmerColors:[e.colors.rainbow_red,e.colors.rainbow_orange,e.colors.rainbow_yellow,e.colors.rainbow_green,e.colors.rainbow_blue,e.colors.rainbow_indigo,e.colors.rainbow_violet],shimmerColors:[e.colors.rainbow_red_shimmer,e.colors.rainbow_orange_shimmer,e.colors.rainbow_yellow_shimmer,e.colors.rainbow_green_shimmer,e.colors.rainbow_blue_shimmer,e.colors.rainbow_indigo_shimmer,e.colors.rainbow_violet_shimmer],shimmerWidth:3,updateDuration:50,restartPoint:10})]})}),J(Q,{color:e.colors.planMode,children:`╭─────────────────────────────────────────────╮`}),Y(V,{children:[J(Q,{color:e.colors.planMode,children:`│ `}),Y(Q,{color:e.colors.permission,children:[`Ready to code?`,` `]}),J(V,{children:`Here is Claude's plan:`}),Y(Q,{color:e.colors.planMode,children:[` `,`│`]})]}),J(Q,{color:e.colors.permission,children:`╭─────────────────────────────────────────────╮`}),Y(V,{children:[J(Q,{color:e.colors.permission,children:`│ `}),J(V,{bold:!0,children:`Permissions:`}),` `,Y(Q,{backgroundColor:e.colors.permission,color:e.colors.inverseText,bold:!0,children:[` `,`Allow`,` `]}),` `,`Deny`,` `,`Workspace`,` `,J(Q,{color:e.colors.permission,children:`│`})]}),J(V,{children:`> list the dir`}),Y(V,{children:[J(Q,{color:e.colors.error,children:`●`}),J(V,{children:` Update(__init__.py)`})]}),Y(V,{children:[J(V,{children:` ⎿ `}),J(Q,{color:e.colors.error,children:`User rejected update to __init__.py`})]}),Y(V,{children:[` `,`1`,` `,Y(Q,{backgroundColor:e.colors.diffRemovedDimmed,children:[`- import`,` `]}),J(Q,{backgroundColor:e.colors.diffRemovedWordDimmed,children:`os`})]}),Y(V,{children:[` `,`2`,` `,Y(Q,{backgroundColor:e.colors.diffAddedDimmed,children:[`+ import`,` `]}),J(Q,{backgroundColor:e.colors.diffAddedWordDimmed,children:`random`})]}),Y(V,{children:[J(Q,{color:e.colors.success,children:`●`}),J(V,{children:` List(.)`})]}),Y(V,{children:[J(V,{children:`●`}),J(V,{children:` The directory `}),J(Q,{color:e.colors.permission,children:`C:\\Users\\user`}),Y(V,{children:[` `,`contains `,J(V,{bold:!0,children:`123`}),` files.`]})]}),Y(V,{children:[J(Q,{color:e.colors.claude,children:`✻ Th`}),J(Q,{color:e.colors.claudeShimmer,children:`ink`}),J(Q,{color:e.colors.claude,children:`ing… `}),J(V,{children:`(esc to interrupt)`})]}),J(V,{children:J(Q,{color:e.colors.autoAccept,children:`⏵⏵ accept edits on (shift+tab to cycle)`})}),J(V,{children:J(Q,{color:e.colors.planMode,children:`⏸ plan mode on (shift+tab to cycle)`})}),J(V,{children:J(Q,{color:e.colors.ide,children:`◯ IDE connected ⧉ 44 lines selected`})})]})})]})}function Ge({colorKey:e,theme:t,bold:n=!1}){let r=t.colors[e];return e===`inverseText`?J(Q,{color:r,backgroundColor:t.colors.permission,bold:n,children:e}):e.startsWith(`diff`)?J(Q,{backgroundColor:r,bold:n,color:t.colors.text,children:e}):J(Q,{color:r,bold:n,children:e})}function Ke({initialValue:e,onColorChange:t,onExit:n,colorKey:r,theme:i}){let a=Je(e)||{h:0,s:50,l:50},o=qe(e)||{r:128,g:128,b:128},[s,c]=K(a),[l,u]=K(o),[d,f]=K(`hsl`),[p,m]=K(`h`),[h,_]=K(!1),[v,y]=K(!1);G(()=>{let t=Je(e),n=qe(e);t&&n&&(_(!0),c(t),u(n),_(!1))},[e]),G(()=>{!h&&v&&t(`rgb(${l.r},${l.g},${l.b})`)},[s,l,h,v]),G(()=>{y(!0)},[]);let b=e=>{if(se(e)){let t=g(e),n=Je(t),r=qe(t);n&&r&&(_(!0),c(n),u(r),_(!1))}};H((e,t)=>{if(e.length>1&&!t.ctrl&&!t.meta){b(e);return}t.return||t.escape?n():t.ctrl&&e===`a`?(f(e=>e===`hsl`?`rgb`:`hsl`),m(e=>d===`hsl`?e===`h`?`r`:e===`s`?`g`:`b`:e===`r`?`h`:e===`g`?`s`:`l`)):t.upArrow?m(d===`hsl`?e=>e===`h`?`l`:e===`s`?`h`:`s`:e=>e===`r`?`b`:e===`g`?`r`:`g`):t.downArrow||t.tab?m(d===`hsl`?e=>e===`h`?`s`:e===`s`?`l`:`h`:e=>e===`r`?`g`:e===`g`?`b`:`r`):t.leftArrow?x(t.shift||t.ctrl||t.meta?-10:-1):t.rightArrow&&x(t.shift||t.ctrl||t.meta?10:1)});let x=e=>{_(!0),d===`hsl`?c(t=>{let n={...t};p===`h`?n.h=Math.max(0,Math.min(359,t.h+e)):p===`s`?n.s=Math.max(0,Math.min(100,t.s+e)):p===`l`&&(n.l=Math.max(0,Math.min(100,t.l+e)));let[r,i,a]=C(n.h,n.s,n.l);return u({r,g:i,b:a}),n}):u(t=>{let n={...t};return p===`r`?n.r=Math.max(0,Math.min(255,t.r+e)):p===`g`?n.g=Math.max(0,Math.min(255,t.g+e)):p===`b`&&(n.b=Math.max(0,Math.min(255,t.b+e))),c(S(n.r,n.g,n.b)),n}),_(!1)},S=(e,t,n)=>{let r=e/255,i=t/255,a=n/255,o=Math.max(r,i,a),s=Math.min(r,i,a),c=o-s,l=(o+s)/2,u=0;c!==0&&(u=l>.5?c/(2-o-s):c/(o+s));let d=0;return c!==0&&(d=o===r?((i-a)/c+(i<a?6:0))/6:o===i?((a-r)/c+2)/6:((r-i)/c+4)/6),{h:Math.round(d*360),s:Math.round(u*100),l:Math.round(l*100)}},C=(e,t,n)=>{e/=360,t/=100,n/=100;let r=(1-Math.abs(2*n-1))*t,i=r*(1-Math.abs(e*6%2-1)),a=n-r/2,o=0,s=0,c=0;return 0<=e&&e<1/6?(o=r,s=i,c=0):1/6<=e&&e<2/6?(o=i,s=r,c=0):2/6<=e&&e<3/6?(o=0,s=r,c=i):3/6<=e&&e<4/6?(o=0,s=i,c=r):4/6<=e&&e<5/6?(o=i,s=0,c=r):5/6<=e&&e<1&&(o=r,s=0,c=i),[Math.round((o+a)*255),Math.round((s+a)*255),Math.round((c+a)*255)]},w=()=>{let e=[],t=[[255,0,0],[255,127,0],[255,255,0],[127,255,0],[0,255,0],[0,255,127],[0,255,255],[0,127,255],[0,0,255],[127,0,255],[255,0,255],[255,0,127],[255,0,0]];for(let n=0;n<40;n++){let r=n/39*(t.length-1),i=Math.floor(r),a=Math.ceil(r),o=r-i,[s,c,l]=t[i],[u,d,f]=t[a],p=Math.round(s+(u-s)*o),m=Math.round(c+(d-c)*o),h=Math.round(l+(f-l)*o);e.push(J(V,{backgroundColor:`rgb(${p},${m},${h})`,children:` `},n))}return e},T=()=>{let e=[];for(let t=0;t<40;t++){let n=t/39*100,[r,i,a]=C(s.h,n,s.l);e.push(J(V,{backgroundColor:`rgb(${r},${i},${a})`,children:` `},t))}return e},E=()=>{let e=[];for(let t=0;t<40;t++){let n=t/39*100,[r,i,a]=C(s.h,s.s,n);e.push(J(V,{backgroundColor:`rgb(${r},${i},${a})`,children:` `},t))}return e},D=()=>{let[e,t,n]=C(s.h,s.s,s.l);return`rgb(${e},${t},${n})`},O=(e,t,n)=>{let r=e=>e.toString(16).padStart(2,`0`);return`#${r(e)}${r(t)}${r(n)}`},k=()=>{let e=[];for(let t=0;t<40;t++){let n=Math.round(t/39*255);e.push(J(V,{backgroundColor:`rgb(${n},${l.g},${l.b})`,children:` `},t))}return e},A=()=>{let e=[];for(let t=0;t<40;t++){let n=Math.round(t/39*255);e.push(J(V,{backgroundColor:`rgb(${l.r},${n},${l.b})`,children:` `},t))}return e},j=()=>{let e=[];for(let t=0;t<40;t++){let n=Math.round(t/39*255);e.push(J(V,{backgroundColor:`rgb(${l.r},${l.g},${n})`,children:` `},t))}return e},M=(e,t)=>Math.round(e/t*39);return Y(B,{flexDirection:`column`,borderStyle:`single`,borderColor:`white`,padding:1,children:[Y(B,{flexDirection:`column`,children:[J(V,{bold:!0,children:`Color Picker`}),Y(B,{marginBottom:1,flexDirection:`column`,children:[J(V,{color:`gray`,dimColor:!0,children:`←→ to adjust (shift/ctrl/cmd +10)`}),J(V,{color:`gray`,dimColor:!0,children:`↑↓ to change bar`}),J(V,{color:`gray`,dimColor:!0,children:`ctrl+a to switch rgb/hsl`}),J(V,{color:`gray`,dimColor:!0,children:`paste color from clipboard`}),J(V,{color:`gray`,dimColor:!0,children:`enter to exit (auto-saved)`}),J(V,{color:`gray`,dimColor:!0,children:`esc to save and exit`})]})]}),d===`hsl`?Y(q,{children:[Y(B,{marginBottom:1,children:[J(B,{width:25,children:Y(V,{color:p===`h`?`yellow`:`white`,children:[p===`h`?`❯ `:` `,`Hue (`,s.h,`°):`]})}),J(B,{children:w().map((e,t)=>J(_e,{children:t===M(s.h,360)?J(V,{children:`|`}):e},t))})]}),Y(B,{marginBottom:1,children:[J(B,{width:25,children:Y(V,{color:p===`s`?`yellow`:`white`,children:[p===`s`?`❯ `:` `,`Saturation (`,s.s,`%):`]})}),J(B,{children:T().map((e,t)=>J(_e,{children:t===M(s.s,100)?J(V,{children:`|`}):e},t))})]}),Y(B,{marginBottom:1,children:[J(B,{width:25,children:Y(V,{color:p===`l`?`yellow`:`white`,children:[p===`l`?`❯ `:` `,`Lightness (`,s.l,`%):`]})}),J(B,{children:E().map((e,t)=>J(_e,{children:t===M(s.l,100)?J(V,{children:`|`}):e},t))})]})]}):Y(q,{children:[Y(B,{marginBottom:1,children:[J(B,{width:25,children:Y(V,{color:p===`r`?`yellow`:`white`,children:[p===`r`?`❯ `:` `,`Red (`,l.r,`):`]})}),J(B,{children:k().map((e,t)=>J(_e,{children:t===M(l.r,255)?J(V,{children:`|`}):e},t))})]}),Y(B,{marginBottom:1,children:[J(B,{width:25,children:Y(V,{color:p===`g`?`yellow`:`white`,children:[p===`g`?`❯ `:` `,`Green (`,l.g,`):`]})}),J(B,{children:A().map((e,t)=>J(_e,{children:t===M(l.g,255)?J(V,{children:`|`}):e},t))})]}),Y(B,{marginBottom:1,children:[J(B,{width:25,children:Y(V,{color:p===`b`?`yellow`:`white`,children:[p===`b`?`❯ `:` `,`Blue (`,l.b,`):`]})}),J(B,{children:j().map((e,t)=>J(_e,{children:t===M(l.b,255)?J(V,{children:`|`}):e},t))})]})]}),Y(B,{marginBottom:1,children:[J(V,{children:`Current: `}),J(V,{backgroundColor:D(),children:` `})]}),Y(B,{flexDirection:`row`,justifyContent:`space-between`,children:[Y(B,{flexDirection:`column`,children:[J(V,{dimColor:!0,children:`Hex `}),r?.startsWith(`diff`)?J(V,{backgroundColor:D(),color:i?.colors?.text||`white`,bold:!0,children:O(l.r,l.g,l.b)}):r===`inverseText`?J(V,{color:D(),backgroundColor:i?.colors?.permission,bold:!0,children:O(l.r,l.g,l.b)}):J(V,{color:D(),bold:!0,children:O(l.r,l.g,l.b)})]}),Y(B,{flexDirection:`column`,children:[J(V,{dimColor:!0,children:`RGB `}),r?.startsWith(`diff`)?J(V,{backgroundColor:D(),color:i?.colors?.text||`white`,bold:!0,children:`rgb(${l.r}, ${l.g}, ${l.b})`}):r===`inverseText`?J(V,{color:D(),backgroundColor:i?.colors?.permission,bold:!0,children:`rgb(${l.r}, ${l.g}, ${l.b})`}):J(V,{color:D(),bold:!0,children:`rgb(${l.r}, ${l.g}, ${l.b})`})]}),Y(B,{flexDirection:`column`,children:[J(V,{dimColor:!0,children:`HSL `}),r?.startsWith(`diff`)?J(V,{backgroundColor:D(),color:i?.colors?.text||`white`,bold:!0,children:`hsl(${s.h}, ${s.s}%, ${s.l}%)`}):r===`inverseText`?J(V,{color:D(),backgroundColor:i?.colors?.permission,bold:!0,children:`hsl(${s.h}, ${s.s}%, ${s.l}%)`}):J(V,{color:D(),bold:!0,children:`hsl(${s.h}, ${s.s}%, ${s.l}%)`})]})]})]})}function qe(e){let t=e.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);if(t)return{r:parseInt(t[1]),g:parseInt(t[2]),b:parseInt(t[3])};let n=e.match(/^#([a-fA-F0-9]{6})$/);if(n){let e=n[1];return{r:parseInt(e.substr(0,2),16),g:parseInt(e.substr(2,2),16),b:parseInt(e.substr(4,2),16)}}return null}function Je(e){let t=e.match(/hsl\((\d+),\s*(\d+)%,\s*(\d+)%\)/);if(t)return{h:parseInt(t[1]),s:parseInt(t[2]),l:parseInt(t[3])};let n=e.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);if(n){let e=parseInt(n[1])/255,t=parseInt(n[2])/255,r=parseInt(n[3])/255,i=Math.max(e,t,r),a=Math.min(e,t,r),o=i-a,s=(i+a)/2,c=0;o!==0&&(c=s>.5?o/(2-i-a):o/(i+a));let l=0;return o!==0&&(l=i===e?((t-r)/o+(t<r?6:0))/6:i===t?((r-e)/o+2)/6:((e-t)/o+4)/6),{h:Math.round(l*360),s:Math.round(c*100),l:Math.round(s*100)}}let r=e.match(/^#([a-fA-F0-9]{6})$/);if(r){let e=r[1],t=parseInt(e.substr(0,2),16)/255,n=parseInt(e.substr(2,2),16)/255,i=parseInt(e.substr(4,2),16)/255,a=Math.max(t,n,i),o=Math.min(t,n,i),s=a-o,c=(a+o)/2,l=0;s!==0&&(l=c>.5?s/(2-a-o):s/(a+o));let u=0;return s!==0&&(u=a===t?((n-i)/s+(n<i?6:0))/6:a===n?((i-t)/s+2)/6:((t-n)/s+4)/6),{h:Math.round(u*360),s:Math.round(l*100),l:Math.round(c*100)}}return{h:0,s:50,l:50}}function Ye({onBack:e,themeId:t}){let{settings:{themes:n},updateSettings:r}=W($),[i,a]=K(t),o=n.find(e=>e.id===i)||n[0],[s,c]=K(`rgb`),[l,u]=K(0),[d,f]=K(null),[p,m]=K(null),[h,_]=K(``),[v,y]=K(``),[b,x]=K(!1),[S,C]=K(0),w=ye(e=>{r(t=>{let n=t.themes.findIndex(e=>e.id===i);n!==-1&&e(t.themes[n])})},[i,r]),T=e=>{if(l>=2&&se(e)){let t=g(e),n=E[l-2];w(e=>{e.colors[n]=t})}};H((t,n)=>{if(b){if(n.escape){x(!1),e();return}return}if(d===null&&p===null){if(t.length>1&&!n.ctrl&&!n.meta){T(t);return}if(n.escape)x(!0),C(0);else if(n.ctrl&&t===`a`)c(e=>e===`rgb`?`hex`:e===`hex`?`hsl`:`rgb`);else if(n.upArrow)u(e=>Math.max(0,e-1));else if(n.downArrow)u(e=>Math.min(E.length+1,e+1));else if(n.return)if(l===0)m(`name`),_(o.name),y(o.name);else if(l===1)m(`id`),_(o.id),y(o.id);else{let e=l-2,t=E[e],n=o.colors[t];f(e),_(n),y(n)}}else if(d!==null)n.ctrl&&t===`a`&&c(e=>e===`rgb`?`hex`:e===`hex`?`hsl`:`rgb`);else if(p!==null)if(n.return){if(p===`id`){let e=i;a(h),r(t=>{let n=t.themes.findIndex(t=>t.id===e);n!==-1&&(t.themes[n].id=h)})}else w(e=>{e.name=h});m(null),_(``),y(``)}else n.escape?(m(null),_(``),y(``)):n.backspace||n.delete?_(e=>e.slice(0,-1)):t&&_(e=>e+t)});let E=Object.keys(o.colors),D=(e,t)=>{let n=e.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);if(!n)return e;let r=parseInt(n[1]),i=parseInt(n[2]),a=parseInt(n[3]);switch(t){case`hex`:{let e=e=>e.toString(16).padStart(2,`0`);return`#${e(r)}${e(i)}${e(a)}`}case`hsl`:{let e=r/255,t=i/255,n=a/255,o=Math.max(e,t,n),s=Math.min(e,t,n),c=o-s,l=(o+s)/2,u=0;c!==0&&(u=l>.5?c/(2-o-s):c/(o+s));let d=0;return c!==0&&(d=o===e?((t-n)/c+(t<n?6:0))/6:o===t?((n-e)/c+2)/6:((e-t)/c+4)/6),`hsl(${Math.round(d*360)}, ${Math.round(u*100)}%, ${Math.round(l*100)}%)`}case`rgb`:default:return e}},O=e=>({autoAccept:`Auto-accept edits mode indicator`,bashBorder:`Bash command border`,claude:`Claude branding color. Used for the Claude logo, the welcome message, and the thinking text.`,claudeShimmer:`Color used for the shimmering effect on the thinking verb.`,claudeBlue_FOR_SYSTEM_SPINNER:`System spinner color (blue variant)`,claudeBlueShimmer_FOR_SYSTEM_SPINNER:`System spinner shimmer color (blue variant)`,permission:`Permission prompt color`,permissionShimmer:`Permission prompt shimmer color`,planMode:`Plan mode indicator`,ide:`Color used for IDE-related messages.`,promptBorder:`Input prompt border color`,promptBorderShimmer:`Input prompt border shimmer color`,text:`Code color. Used in diffs.`,inverseText:`Inverse text color. Used for the text of tabs, where the background is filled in.`,inactive:`Inactive/dimmed text. Used for line numbers and less prominent text.`,subtle:`Subtle text. Used for help text and secondary information.`,suggestion:`Suggestion text color. Used for suggestions for theme names and various other things.`,remember:`Remember/note color. Used for various text relating to memories.`,background:`Background color for certain UI elements`,success:`Success indicator. Used for the bullet on successful tool calls, and various success messages (such as sign in successful).`,error:`Error indicator`,warning:`Warning indicator`,warningShimmer:`Warning shimmer color`,diffAdded:`Added diff background`,diffRemoved:`Removed diff background`,diffAddedDimmed:`Added diff background (dimmed)`,diffRemovedDimmed:`Removed diff background (dimmed)`,diffAddedWord:`Added word highlight`,diffRemovedWord:`Removed word highlight`,diffAddedWordDimmed:`Added word highlight (dimmed)`,diffRemovedWordDimmed:`Removed word highlight (dimmed)`,red_FOR_SUBAGENTS_ONLY:`Red color for sub agents`,blue_FOR_SUBAGENTS_ONLY:`Blue color for sub agents`,green_FOR_SUBAGENTS_ONLY:`Green color for sub agents`,yellow_FOR_SUBAGENTS_ONLY:`Yellow color for sub agents`,purple_FOR_SUBAGENTS_ONLY:`Purple color for sub agents`,orange_FOR_SUBAGENTS_ONLY:`Orange color for sub agents`,pink_FOR_SUBAGENTS_ONLY:`Pink color for sub agents`,cyan_FOR_SUBAGENTS_ONLY:`Cyan color for sub agents`,professionalBlue:`Professional blue color for business contexts?`,rainbow_red:`"ultrathink" rainbow - red`,rainbow_orange:`"ultrathink" rainbow - orange`,rainbow_yellow:`"ultrathink" rainbow - yellow`,rainbow_green:`"ultrathink" rainbow - green`,rainbow_blue:`"ultrathink" rainbow - blue`,rainbow_indigo:`"ultrathink" rainbow - indigo`,rainbow_violet:`"ultrathink" rainbow - violet`,rainbow_red_shimmer:`"ultrathink" rainbow (shimmer) - red`,rainbow_orange_shimmer:`"ultrathink" rainbow (shimmer) - orange`,rainbow_yellow_shimmer:`"ultrathink" rainbow (shimmer) - yellow`,rainbow_green_shimmer:`"ultrathink" rainbow (shimmer) - green`,rainbow_blue_shimmer:`"ultrathink" rainbow (shimmer) - blue`,rainbow_indigo_shimmer:`"ultrathink" rainbow (shimmer) - indigo`,rainbow_violet_shimmer:`"ultrathink" rainbow (shimmer) - violet`,clawd_body:`"Clawd" character body color`,clawd_background:`"Clawd" character background color`,userMessageBackground:`Background color for user messages`,bashMessageBackgroundColor:`Background color for bash command output`,memoryBackgroundColor:`Background color for memory/context information`,rate_limit_fill:`Rate limit indicator fill color`,rate_limit_empty:`Rate limit indicator empty/background color`})[e]||``,k=Math.max(...E.map(e=>e.length));return Y(B,{children:[Y(B,{flexDirection:`column`,width:`50%`,children:[J(B,{children:Y(X,{children:[`Editing theme “`,o.name,`” (`,o.id,`)`]})}),b?Y(B,{flexDirection:`column`,marginTop:1,children:[J(B,{marginBottom:1,children:Y(V,{bold:!0,children:[`Would you like to make “`,o.name,`” your current Claude Code theme?`]})}),J(Pe,{items:[{name:`Yes`,desc:`Set ${o.id} as active theme`},{name:`No`,desc:`Go back without changing theme`}],selectedIndex:S,onSelect:C,onSubmit:()=>{S===0&&j(o.id),x(!1),e()}}),J(V,{dimColor:!0,children:`enter to select, esc to cancel`})]}):d===null&&p===null?Y(q,{children:[Y(B,{marginBottom:1,flexDirection:`column`,children:[J(V,{dimColor:!0,children:`enter to edit theme name, id, or color`}),J(V,{dimColor:!0,children:`ctrl+a to toggle rgb, hex, hsl`}),J(V,{dimColor:!0,children:`paste color from clipboard (when on color)`}),J(V,{dimColor:!0,children:`esc to go back`})]}),l<2?Y(B,{marginBottom:1,borderStyle:`single`,borderTop:!1,borderBottom:!1,borderRight:!1,borderColor:`yellow`,flexDirection:`column`,paddingLeft:1,children:[J(V,{bold:!0,children:l===0?`Theme Name`:`Theme ID`}),J(V,{children:l===0?`The display name for this theme`:"Unique identifier for this theme; used in `.claude.json` to select the theme."})]}):Y(B,{marginBottom:1,borderStyle:`single`,borderTop:!1,borderBottom:!1,borderRight:!1,borderColor:o.colors[E[l-2]],flexDirection:`column`,paddingLeft:1,children:[J(Ge,{colorKey:E[l-2],theme:o,bold:!0}),J(V,{children:O(E[l-2])})]}),Y(B,{flexDirection:`column`,children:[Y(B,{children:[J(V,{color:l===0?`yellow`:`white`,children:l===0?`❯ `:` `}),J(V,{bold:!0,children:`Name: `}),J(V,{children:o.name})]}),Y(B,{marginBottom:1,children:[J(V,{color:l===1?`yellow`:`white`,children:l===1?`❯ `:` `}),J(V,{bold:!0,children:`ID: `}),J(V,{children:o.id})]}),(()=>{if(l<2)return Y(q,{children:[E.slice(0,20).map((e,t)=>{let n=t+2;return Y(B,{children:[J(V,{color:l===n?`yellow`:`white`,children:l===n?`❯ `:` `}),J(B,{width:k+2,children:J(V,{children:J(Ge,{colorKey:e,theme:o,bold:!0})})}),J(Q,{color:o.colors[e],children:D(o.colors[e],s)})]},e)}),E.length>20&&Y(V,{color:`gray`,dimColor:!0,children:[` `,`↓ `,E.length-20,` more below`]})]});let e=l-2,t=Math.max(0,e-10),n=Math.min(E.length,t+20),r=Math.max(0,n-20),i=E.slice(r,n);return Y(q,{children:[r>0&&Y(V,{color:`gray`,dimColor:!0,children:[` `,`↑ `,r,` more above`]}),i.map((e,t)=>{let n=r+t+2;return Y(B,{children:[J(V,{color:l===n?`yellow`:`white`,children:l===n?`❯ `:` `}),J(B,{width:k+2,children:J(V,{children:J(Ge,{colorKey:e,theme:o,bold:!0})})}),J(Q,{color:o.colors[e],children:D(o.colors[e],s)})]},e)}),n<E.length&&Y(V,{color:`gray`,dimColor:!0,children:[` `,`↓ `,E.length-n,` more below`]})]})})()]})]}):p?Y(B,{flexDirection:`column`,marginTop:1,children:[Y(V,{children:[`Editing `,p===`name`?`theme name`:`theme ID`,`:`]}),J(B,{borderStyle:`round`,borderColor:`yellow`,paddingX:1,children:J(V,{children:h})}),J(V,{dimColor:!0,children:`enter to save, esc to cancel`})]}):J(Ke,{initialValue:v,colorKey:E[d],theme:o,onColorChange:e=>{_(e),w(t=>{t.colors[E[d]]=e})},onExit:()=>{w(e=>{e.colors[E[d]]=h}),f(null),_(``),y(``)}})]}),J(B,{width:`50%`,children:J(We,{theme:o})})]})}const Xe=`https://raw.githubusercontent.com/Piebald-AI/claude-code-themes/main`,Ze=`${Xe}/index.json`;async function Qe(){E(`Fetching community theme index from ${Ze}`);let e=await fetch(Ze,{headers:{Accept:`application/json`}});if(!e.ok)throw Error(`Failed to fetch community theme index: ${e.status} ${e.statusText}`);return await e.json()}async function $e(e){let t=`${Xe}/themes/${e}.json`;E(`Fetching community theme from ${t}`);let n=await fetch(t,{headers:{Accept:`application/json`}});if(!n.ok)throw Error(`Failed to fetch community theme "${e}": ${n.status} ${n.statusText}`);return await n.json()}function et({onBack:e}){let{updateSettings:t}=W($),[n,r]=K({status:`loading`}),[i,a]=K(0),[o,s]=K(null),[c,l]=K(!1),[u,d]=K(null),f=xe(0);G(()=>{Qe().then(e=>{r({status:`loaded`,entries:e})}).catch(e=>{r({status:`error`,message:e.message})})},[]);let p=n.status===`loaded`?n.entries:[],h=ye(async e=>{let t=++f.current;l(!0),d(null);try{let n=await $e(e);if(t!==f.current)return;s(N(n,m))}catch{if(t!==f.current)return;s(null),d(`Failed to load preview.`)}finally{t===f.current&&l(!1)}},[]),g=ye(async e=>{d(`Downloading theme…`);try{let n=N(await $e(e.id),m),r=!1;t(e=>{e.themes.some(e=>e.id===n.id)||(e.themes.push(n),r=!0)}),d(r?`Added "${n.name}" to your themes!`:`Theme "${n.name}" (${n.id}) is already in your config.`)}catch{d(`Failed to download theme.`)}},[t]);return H((t,r)=>{if(r.escape){e();return}if(n.status!==`loaded`)return;let o=n.entries.length;if(o!==0){if(r.upArrow)a(e=>Math.max(0,e-1)),s(null),d(null);else if(r.downArrow)a(e=>Math.min(o-1,e+1)),s(null),d(null);else if(t===` `){let e=n.entries[i];e&&h(e.id)}else if(r.return){let e=n.entries[i];e&&g(e)}}}),n.status===`loading`?Y(B,{flexDirection:`column`,children:[J(X,{children:`Community Themes`}),J(V,{children:`Loading community themes…`})]}):n.status===`error`?Y(B,{flexDirection:`column`,children:[J(X,{children:`Community Themes`}),Y(V,{color:`red`,children:[`Error: `,n.message]}),J(V,{dimColor:!0,children:`esc to go back`})]}):Y(B,{children:[Y(B,{flexDirection:`column`,width:`50%`,children:[J(X,{children:`Community Themes`}),Y(B,{marginBottom:1,flexDirection:`column`,children:[J(V,{dimColor:!0,children:`space to preview theme`}),J(V,{dimColor:!0,children:`enter to download theme`}),J(V,{dimColor:!0,children:`esc to go back`})]}),J(B,{flexDirection:`column`,children:p.map((e,t)=>Y(V,{color:i===t?`yellow`:void 0,children:[i===t?`❯ `:` `,e.name,` (`,e.id,`) by @`,e.author]},e.id))}),u&&J(B,{marginTop:1,children:J(V,{color:`cyan`,children:u})}),c&&J(B,{marginTop:1,children:J(V,{dimColor:!0,children:`Loading preview…`})})]}),J(B,{width:`50%`,children:o?J(We,{theme:o}):J(B,{flexDirection:`column`,justifyContent:`center`,alignItems:`center`,height:10,children:J(V,{dimColor:!0,children:`Press space to preview the selected theme.`})})})]})}function tt(e){return e.map(e=>`${e.name} (${e.id})`)}function nt({onBack:e}){let{settings:{themes:t},updateSettings:n}=W($),[r,i]=K(0),[a,o]=K(null),[s,c]=K(!0),[l,u]=K(!1),d=t.length+1,f=()=>{let e={colors:{...(t[0]||x.themes[0]).colors},name:`New Custom Theme`,id:`custom-${Date.now()}`};n(t=>{t.themes.push(e)}),o(e.id),c(!1)},p=e=>{t.length<=1||(n(t=>{t.themes=t.themes.filter(t=>t.id!==e)}),r>=t.length-1&&i(Math.max(0,t.length-2)))},m=()=>{n(e=>{e.themes=[...x.themes]}),i(0)},h=r===t.length;if(H((n,a)=>{if(a.escape)e();else if(a.upArrow)i(e=>Math.max(0,e-1));else if(a.downArrow)i(e=>Math.min(d-1,e+1));else if(a.return)if(h)u(!0),c(!1);else{let e=t[r];e&&(o(e.id),c(!1))}else if(n===`n`)f();else if(n===`d`){if(!h){let e=t[r];e&&p(e.id)}}else a.ctrl&&n===`r`&&m()},{isActive:s}),l)return J(et,{onBack:()=>{u(!1),c(!0)}});if(a)return J(Ye,{themeId:a,onBack:()=>{o(null),c(!0)}});let g=tt(t),_=t.find(e=>g[r]?.includes(`(${e.id})`))||t[0];return t.length===0?J(B,{children:Y(B,{flexDirection:`column`,width:`100%`,children:[J(X,{children:`Themes`}),Y(B,{marginBottom:1,flexDirection:`column`,children:[J(V,{dimColor:!0,children:`n to create a new theme`}),J(V,{dimColor:!0,children:`esc to go back`})]}),J(V,{children:`No themes available!`})]})}):Y(B,{children:[Y(B,{flexDirection:`column`,width:`50%`,children:[J(X,{children:`Themes`}),Y(B,{marginBottom:1,flexDirection:`column`,children:[J(V,{dimColor:!0,children:`n to create a new theme`}),J(V,{dimColor:!0,children:`d to delete a theme`}),J(V,{dimColor:!0,children:`ctrl+r to delete all themes and restore built-in`}),J(V,{dimColor:!0,children:`enter to edit theme`}),J(V,{dimColor:!0,children:`esc to go back`})]}),Y(B,{flexDirection:`column`,children:[g.map((e,t)=>Y(V,{color:r===t?`yellow`:void 0,children:[r===t?`❯ `:` `,e]},t)),Y(V,{color:h?`blue`:void 0,bold:h,children:[h?`❯ `:` `,`Browse community themes…`]})]})]}),J(B,{width:`50%`,children:h?J(B,{flexDirection:`column`,justifyContent:`center`,alignItems:`center`,height:10,children:J(V,{dimColor:!0,children:`Press enter to browse community themes.`})}):J(We,{theme:_})})]})}function rt({onBack:e}){let{settings:{thinkingVerbs:{format:t,verbs:n},themes:r},updateSettings:i}=W($),a=[`format`,`verbs`],[o,s]=K(0),c=a[o],[l,u]=K(0),[d,f]=K(!1),[p,m]=K(``),[h,g]=K(!1),[_,v]=K(!1),[y,b]=K(t),S=ce(),C=(r.find(e=>e.id===S)||r.find(e=>e.id===`dark`))?.colors.claude||`rgb(215,119,87)`;return H((r,o)=>{if(_){o.return?(i(e=>{e.thinkingVerbs.format=y}),v(!1)):o.escape?(b(t),v(!1)):o.backspace||o.delete?b(e=>e.slice(0,-1)):r&&b(e=>e+r);return}if(d||h){o.return&&p.trim()?(h?(i(e=>{e.thinkingVerbs.verbs.push(p.trim())}),g(!1)):(i(e=>{e.thinkingVerbs.verbs[l]=p.trim()}),f(!1)),m(``)):o.escape?(m(``),f(!1),g(!1)):o.backspace||o.delete?m(e=>e.slice(0,-1)):r&&m(e=>e+r);return}o.escape?e():o.return?c===`format`&&(b(t),v(!0)):o.tab?o.shift?s(e=>e===0?a.length-1:e-1):s(e=>e===a.length-1?0:e+1):o.upArrow?c===`verbs`&&n.length>0&&u(e=>e>0?e-1:n.length-1):o.downArrow?c===`verbs`&&n.length>0&&u(e=>e<n.length-1?e+1:0):r===`e`&&c===`verbs`?n.length>0&&(m(n[l]),f(!0)):r===`d`&&c===`verbs`?n.length>1&&(i(e=>{e.thinkingVerbs.verbs=e.thinkingVerbs.verbs.filter((e,t)=>t!==l)}),l>=n.length-1&&u(Math.max(0,n.length-2))):r===`n`&&c===`verbs`?(g(!0),m(``)):o.ctrl&&r===`r`&&c===`verbs`&&(i(e=>{e.thinkingVerbs.verbs=[...x.thinkingVerbs.verbs]}),u(0))}),Y(B,{children:[Y(B,{flexDirection:`column`,width:`50%`,children:[Y(B,{marginBottom:1,flexDirection:`column`,children:[J(X,{children:`Thinking Verbs`}),Y(B,{flexDirection:`column`,children:[J(V,{dimColor:!0,children:c===`format`?`enter to edit format`:`changes auto-saved`}),J(V,{dimColor:!0,children:`esc to go back`}),J(V,{dimColor:!0,children:`tab to switch sections`})]})]}),J(B,{marginBottom:1,children:J(V,{dimColor:!0,children:`Customize the verbs shown during generation and their format.`})}),Y(B,{flexDirection:`column`,children:[Y(V,{children:[J(V,{color:c===`format`?`yellow`:void 0,children:c===`format`?`❯ `:` `}),J(V,{bold:!0,color:c===`format`?`yellow`:void 0,children:`Format`})]}),c===`format`&&(_?Y(V,{dimColor:!0,children:[` `,`enter to save`]}):Y(V,{dimColor:!0,children:[` `,`enter to edit`]}))]}),J(B,{marginLeft:2,marginBottom:1,children:J(B,{borderStyle:`round`,borderColor:_?`yellow`:`gray`,children:J(V,{children:_?y:t})})}),J(B,{children:Y(V,{children:[J(V,{color:c===`verbs`?`yellow`:void 0,children:c===`verbs`?`❯ `:` `}),J(V,{bold:!0,color:c===`verbs`?`yellow`:void 0,children:`Verbs`})]})}),c===`verbs`&&J(B,{flexDirection:`column`,children:Y(V,{dimColor:!0,children:[` `,`e to edit · d to delete · n to add new · ctrl+r to reset`]})}),J(B,{marginLeft:2,marginBottom:1,children:Y(B,{flexDirection:`column`,children:[(()=>{let e=Math.max(0,l-4),t=Math.min(n.length,e+8),r=Math.max(0,t-8),i=n.slice(r,t);return Y(q,{children:[r>0&&Y(V,{color:`gray`,dimColor:!0,children:[` `,`↑ `,r,` more above`]}),i.map((e,t)=>{let n=r+t;return Y(V,{color:c===`verbs`&&n===l?`cyan`:void 0,children:[c===`verbs`&&n===l?`❯ `:` `,e]},n)}),t<n.length&&Y(V,{color:`gray`,dimColor:!0,children:[` `,`↓ `,n.length-t,` more below`]})]})})(),h&&Y(B,{alignItems:`center`,children:[J(V,{color:`yellow`,children:`❯ `}),J(B,{borderStyle:`round`,borderColor:`yellow`,children:J(V,{children:p})})]}),d&&Y(B,{marginTop:1,alignItems:`center`,children:[J(V,{children:`Editing: `}),J(B,{borderStyle:`round`,borderColor:`yellow`,children:J(V,{children:p})})]})]})})]}),Y(B,{width:`50%`,flexDirection:`column`,children:[J(B,{marginBottom:1,children:J(V,{bold:!0,children:`Preview`})}),J(B,{borderStyle:`single`,borderColor:`gray`,padding:1,flexDirection:`column`,children:Y(V,{children:[Y(V,{color:C,children:[`✻ `,t.replace(/\{\}/g,n[l]),` `]}),J(V,{children:`(esc to interrupt)`})]})})]})]})}const it=e=>e.replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/([A-Z])([A-Z][a-z])/g,`$1 $2`).replace(/(\d+)/g,` $1 `).replace(/\s+/g,` `).trim().replace(/^./,e=>e.toUpperCase()),at=e=>{let t=Math.max(...e.map(e=>e.length));return e.map(e=>e.padEnd(t))},ot=Object.entries(Oe).map(([e,t])=>({name:it(e),phases:t.frames.map(e=>e.trimEnd()),reverseMirror:!1,updateInterval:t.interval})),st=[{name:`Default`,phases:x.thinkingStyle.phases,reverseMirror:x.thinkingStyle.reverseMirror},{name:`Wave`,phases:[`▁`,`▃`,`▄`,`▅`,`▆`,`▇`,`█`],reverseMirror:!0},{name:`Glow`,phases:[`░`,`▒`,`▓`,`█`],reverseMirror:!0},{name:`Partial block`,phases:[`▏`,`▎`,`▍`,`▌`,`▋`,`▊`,`▉`,`█`],reverseMirror:!0},{name:`Colors`,phases:[`🔴`,`🟠`,`🟡`,`🟢`,`🔵`,`🟣`],reverseMirror:!1},...ot];function ct({onBack:e}){let{settings:{thinkingStyle:{phases:t,updateInterval:n,reverseMirror:r},themes:i},updateSettings:a}=W($),o=[`reverseMirror`,`updateInterval`,`phases`,`presets`],[s,c]=K(0),l=o[s],[u,d]=K(0),[f,p]=K(0),[m,h]=K(!1),[g,_]=K(``),[v,y]=K(!1),[b,S]=K(!1),[C,w]=K(n.toString()),[T,E]=K(0),D=ce(),O=(i.find(e=>e.id===D)||i.find(e=>e.id===`dark`))?.colors.claude||`rgb(215,119,87)`;G(()=>{if(t.length>0){let e=r?[...t,...[...t].reverse().slice(1,-1)]:t,i=setInterval(()=>{E(t=>(t+1)%e.length)},n);return()=>clearInterval(i)}},[t,n,r]),H((r,i)=>{if(b){if(i.return){let e=parseInt(C);!isNaN(e)&&e>0&&a(t=>{t.thinkingStyle.updateInterval=e}),S(!1)}else i.escape?(w(n.toString()),S(!1)):i.backspace||i.delete?w(e=>e.slice(0,-1)):r&&r.match(/^[0-9]$/)&&w(e=>e+r);return}if(m||v){if(i.return&&g.length){let e=v?[...t,g]:t.map((e,t)=>t===u?g:e);a(t=>{t.thinkingStyle.phases=at(e)}),h(!1),_(``)}else i.escape?(_(``),h(!1),y(!1)):i.backspace||i.delete?_(e=>e.slice(0,-1)):r&&_(e=>e+r);return}if(i.escape)e();else if(i.return)if(l===`updateInterval`)w(n.toString()),S(!0);else if(l===`presets`){let e=st[f];a(t=>{t.thinkingStyle.phases=at([...e.phases]),t.thinkingStyle.reverseMirror=e.reverseMirror,e.updateInterval!==void 0&&(t.thinkingStyle.updateInterval=e.updateInterval)})}else l===`reverseMirror`&&a(e=>{e.thinkingStyle.reverseMirror=!e.thinkingStyle.reverseMirror});else if(i.tab)i.shift?c(e=>e===0?o.length-1:e-1):c(e=>e===o.length-1?0:e+1);else if(i.upArrow)l===`phases`&&t.length>0?d(e=>e>0?e-1:t.length-1):l===`presets`&&p(e=>e>0?e-1:st.length-1);else if(i.downArrow)l===`phases`&&t.length>0?d(e=>e<t.length-1?e+1:0):l===`presets`&&p(e=>e<st.length-1?e+1:0);else if(r===` `)l===`reverseMirror`&&a(e=>{e.thinkingStyle.reverseMirror=!e.thinkingStyle.reverseMirror});else if(r===`e`&&l===`phases`)t.length>0&&(_(t[u]),h(!0));else if(r===`a`&&l===`phases`)y(!0),_(``);else if(r===`d`&&l===`phases`)t.length>1&&(a(e=>{e.thinkingStyle.phases=at(t.filter((e,t)=>t!==u))}),u>=t.length&&d(Math.max(0,t.length-1)));else if(r===`w`&&l===`phases`){if(u>0){let e=[...t];[e[u-1],e[u]]=[e[u],e[u-1]],a(t=>{t.thinkingStyle.phases=e}),d(e=>e-1)}}else if(r===`s`&&l===`phases`){if(u<t.length-1){let e=[...t];[e[u],e[u+1]]=[e[u+1],e[u]],a(t=>{t.thinkingStyle.phases=e}),d(e=>e+1)}}else i.ctrl&&r===`r`&&(a(e=>{e.thinkingStyle=x.thinkingStyle}),d(0),p(0))});let k=r?`●`:`○`,A=(()=>r?[...t,...[...t].reverse().slice(1,-1)]:t)(),j=A.length>0?A[T]:`·`;return J(B,{children:Y(B,{flexDirection:`column`,width:`100%`,children:[Y(B,{flexDirection:`row`,width:`100%`,children:[Y(B,{marginBottom:1,flexDirection:`column`,width:`50%`,children:[J(X,{children:`Thinking style`}),Y(B,{flexDirection:`column`,children:[Y(V,{dimColor:!0,children:[`enter to`,` `,l===`updateInterval`?`edit interval`:l===`presets`?`apply preset`:`save`]}),J(V,{dimColor:!0,children:`esc to go back`}),J(V,{dimColor:!0,children:`tab to switch sections`})]})]}),Y(B,{width:`50%`,flexDirection:`column`,children:[J(B,{children:J(V,{bold:!0,children:`Preview`})}),Y(B,{borderStyle:`single`,borderColor:`gray`,paddingX:1,flexDirection:`row`,children:[J(B,{width:(j?.length??0)+1,children:J(V,{color:O,children:j})}),Y(V,{children:[J(V,{color:O,children:`Thinking… `}),J(V,{children:`(esc to interrupt)`})]})]})]})]}),Y(B,{flexDirection:`row`,gap:4,children:[Y(B,{flexDirection:`column`,children:[Y(V,{children:[J(V,{color:l===`reverseMirror`?`yellow`:void 0,children:l===`reverseMirror`?`❯ `:` `}),J(V,{bold:!0,color:l===`reverseMirror`?`yellow`:void 0,children:`Reverse-mirror phases`})]}),l===`reverseMirror`&&Y(V,{dimColor:!0,children:[` `,`space to toggle`]}),J(B,{marginLeft:2,marginBottom:1,children:Y(V,{children:[k,` `,r?`Enabled`:`Disabled`]})})]}),Y(B,{flexDirection:`column`,children:[Y(V,{children:[J(V,{color:l===`updateInterval`?`yellow`:void 0,children:l===`updateInterval`?`❯ `:` `}),J(V,{bold:!0,color:l===`updateInterval`?`yellow`:void 0,children:`Update interval (ms)`})]}),l===`updateInterval`&&(b?Y(V,{dimColor:!0,children:[` `,`enter to save`]}):Y(V,{dimColor:!0,children:[` `,`enter to edit`]})),J(B,{marginLeft:2,marginBottom:1,children:J(B,{borderStyle:`round`,borderColor:b?`yellow`:`gray`,children:J(V,{children:b?C:n})})})]})]}),J(B,{children:Y(V,{children:[J(V,{color:l===`phases`?`yellow`:void 0,children:l===`phases`?`❯ `:` `}),J(V,{bold:!0,color:l===`phases`?`yellow`:void 0,children:`Phases`})]})}),l===`phases`&&J(B,{marginBottom:1,flexDirection:`column`,children:Y(V,{dimColor:!0,children:[` `,`[e]dit`,` `,`[a]dd`,` `,`[d]elete`,` `,`[w]move up`,` `,`[s]move down`]})}),J(B,{marginLeft:2,marginBottom:1,children:Y(B,{flexDirection:`column`,children:[(()=>{let e=Math.max(0,u-4),n=Math.min(t.length,e+8),r=Math.max(0,n-8),i=t.slice(r,n);return Y(q,{children:[r>0&&Y(V,{color:`gray`,dimColor:!0,children:[` `,`↑ `,r,` more above`]}),i.map((e,t)=>{let n=r+t;return Y(V,{color:l===`phases`&&n===u?`cyan`:void 0,children:[l===`phases`&&n===u?`❯ `:` `,e]},n)}),n<t.length&&Y(V,{color:`gray`,dimColor:!0,children:[` `,`↓ `,t.length-n,` more below`]})]})})(),v&&Y(B,{children:[J(V,{color:`yellow`,children:`❯ `}),J(B,{borderStyle:`round`,borderColor:`yellow`,children:J(V,{children:g})})]}),m&&Y(B,{marginTop:1,children:[J(V,{children:`Editing: `}),J(B,{borderStyle:`round`,borderColor:`yellow`,children:J(V,{children:g})})]})]})}),J(B,{children:Y(V,{children:[J(V,{color:l===`presets`?`yellow`:void 0,children:l===`presets`?`❯ `:` `}),J(V,{bold:!0,color:l===`presets`?`yellow`:void 0,children:`Presets`})]})}),l===`presets`&&Y(V,{dimColor:!0,children:[` `,`Selecting one will overwrite your choice of phases and interval`]}),J(B,{marginLeft:2,marginBottom:1,children:J(B,{flexDirection:`column`,children:(()=>{let e=Math.max(0,f-6),t=Math.min(st.length,e+12),n=Math.max(0,t-12),r=st.slice(n,t),i=e=>{let t=e.phases.join(``);return t.length>30?t.slice(0,27)+`…`:t};return Y(q,{children:[n>0&&Y(V,{color:`gray`,dimColor:!0,children:[` `,`↑ `,n,` more above`]}),r.map((e,t)=>{let r=n+t,a=l===`presets`&&r===f;return Y(V,{color:a?`cyan`:void 0,children:[a?`❯ `:` `,e.name,` `,i(e)]},r)}),t<st.length&&Y(V,{color:`gray`,dimColor:!0,children:[` `,`↓ `,st.length-t,` more below`]})]})})()})}),J(B,{marginTop:1,children:J(V,{dimColor:!0,children:`ctrl+r to reset all settings to default`})})]})})}function lt(e,t){let n=xe(!0);G(()=>{if(n.current){n.current=!1;return}return e()},t)}const ut=[{label:`bold`,value:`bold`},{label:`italic`,value:`italic`},{label:`underline`,value:`underline`},{label:`strikethrough`,value:`strikethrough`},{label:`inverse`,value:`inverse`}],dt=[{label:`none`,value:`none`},{label:`single`,value:`single`},{label:`double`,value:`double`},{label:`round`,value:`round`},{label:`bold`,value:`bold`},{label:`singleDouble`,value:`singleDouble`},{label:`doubleSingle`,value:`doubleSingle`},{label:`classic`,value:`classic`},{label:`topBottomSingle`,value:`topBottomSingle`},{label:`topBottomDouble`,value:`topBottomDouble`},{label:`topBottomBold`,value:`topBottomBold`}];function ft({onBack:e}){let{settings:t,updateSettings:n}=W($),[r,i]=K(!1),[a,o]=K(!1),[s,c]=K(!1),[l,u]=K(()=>t.userMessageDisplay.format),[d,f]=K(()=>t.userMessageDisplay.paddingX===`default`?`default`:`custom`),[p,m]=K(()=>t.userMessageDisplay.paddingY===`default`?`default`:`custom`),[h,g]=K(()=>t.userMessageDisplay.paddingX===`default`?`0`:String(t.userMessageDisplay.paddingX)),[_,v]=K(()=>t.userMessageDisplay.paddingY===`default`?`0`:String(t.userMessageDisplay.paddingY)),[y,b]=K(t.userMessageDisplay.fitBoxToContent),[S,C]=K(0),[w,T]=K(()=>[...t.userMessageDisplay.styling]),[E,D]=K(()=>t.userMessageDisplay.foregroundColor===`default`?`default`:`custom`),[O,k]=K(()=>t.userMessageDisplay.foregroundColor===`default`?`rgb(255,255,255)`:t.userMessageDisplay.foregroundColor),[A,j]=K(()=>{let e=t.userMessageDisplay.backgroundColor;return e===null?`none`:e===`default`?`default`:`custom`}),[M,ee]=K(()=>{let e=t.userMessageDisplay.backgroundColor;return e===null||e===`default`?`rgb(0,0,0)`:e}),[te,ne]=K(()=>dt.findIndex(e=>e.value===t.userMessageDisplay.borderStyle)),[N,re]=K(()=>t.userMessageDisplay.borderColor),[P,ie]=K(null),[ae,oe]=K(``),se=ce(),F=t.themes?.find(e=>e.id===se)||t.themes?.[0],[I,L]=K(`text`),R=[`format`,`styling`,`foreground`,`background`],le=[`borderStyle`,`borderColor`,`paddingX`,`paddingY`,`fitBoxToContent`],[ue,de]=K(0),[fe,pe]=K(0),z=I===`text`?R[ue]:le[fe],me=()=>{n(e=>{e.userMessageDisplay.format=l,e.userMessageDisplay.styling=[...w],e.userMessageDisplay.foregroundColor=E===`default`?`default`:O,e.userMessageDisplay.backgroundColor=A===`none`?null:A===`default`?`default`:M,e.userMessageDisplay.borderStyle=dt[te].value,e.userMessageDisplay.borderColor=N,e.userMessageDisplay.paddingX=d===`default`?`default`:parseInt(h)||0,e.userMessageDisplay.paddingY=p===`default`?`default`:parseInt(_)||0,e.userMessageDisplay.fitBoxToContent=y})},he=()=>{u(x.userMessageDisplay.format),T([...x.userMessageDisplay.styling]);let e=x.userMessageDisplay.foregroundColor;D(e===`default`?`default`:`custom`),k(e===`default`?`rgb(255,255,255)`:e);let t=x.userMessageDisplay.backgroundColor;j(t===null?`none`:t===`default`?`default`:`custom`),ee(t===null||t===`default`?`rgb(0,0,0)`:t),ne(dt.findIndex(e=>e.value===x.userMessageDisplay.borderStyle)),re(x.userMessageDisplay.borderColor);let r=x.userMessageDisplay.paddingX,i=x.userMessageDisplay.paddingY;f(r===`default`?`default`:`custom`),m(i===`default`?`default`:`custom`),g(r===`default`?`0`:String(r)),v(i===`default`?`0`:String(i)),b(x.userMessageDisplay.fitBoxToContent),n(e=>{e.userMessageDisplay={...x.userMessageDisplay}})};lt(()=>{me()},[l,w,E,O,A,M,te,N,d,p,h,_,y]),H((n,l)=>{if(r){l.return?i(!1):l.escape?(u(t.userMessageDisplay.format),i(!1)):l.backspace||l.delete?u(e=>e.slice(0,-1)):n&&u(e=>e+n);return}if(a){l.return?o(!1):l.escape?(g(String(t.userMessageDisplay.paddingX)),o(!1)):l.backspace||l.delete?g(e=>e.slice(0,-1)):n&&/^\d$/.test(n)&&g(e=>e+n);return}if(s){l.return?c(!1):l.escape?(v(String(t.userMessageDisplay.paddingY)),c(!1)):l.backspace||l.delete?v(e=>e.slice(0,-1)):n&&/^\d$/.test(n)&&v(e=>e+n);return}if(P===null){if(l.escape)e();else if(l.ctrl&&n===`r`)he();else if(l.leftArrow||l.rightArrow)L(e=>e===`text`?`border`:`text`);else if(l.tab)I===`text`?l.shift?de(e=>e===0?R.length-1:e-1):de(e=>e===R.length-1?0:e+1):l.shift?pe(e=>e===0?le.length-1:e-1):pe(e=>e===le.length-1?0:e+1);else if(l.return)z===`format`?i(!0):z===`paddingX`?d===`custom`&&o(!0):z===`paddingY`?p===`custom`&&c(!0):z===`foreground`?E===`custom`&&(oe(O),ie(`foreground`)):z===`background`?A===`custom`&&(oe(M),ie(`background`)):z===`borderColor`&&(oe(N),ie(`border`));else if(l.upArrow)z===`styling`?C(e=>Math.max(0,e-1)):z===`borderStyle`?ne(e=>e===0?dt.length-1:e-1):z===`paddingX`?f(e=>e===`default`?`custom`:`default`):z===`paddingY`?m(e=>e===`default`?`custom`:`default`):z===`foreground`?D(e=>{let t=e===`default`?`custom`:`default`;return t===`custom`&&(!O||O===``)&&k(`rgb(255,255,255)`),t}):z===`background`&&j(e=>{let t=e===`default`?`custom`:e===`custom`?`none`:`default`;return t===`custom`&&(!M||M===``)&&ee(`rgb(0,0,0)`),t});else if(l.downArrow)z===`styling`?C(e=>Math.min(ut.length-1,e+1)):z===`borderStyle`?ne(e=>e===dt.length-1?0:e+1):z===`paddingX`?f(e=>e===`default`?`custom`:`default`):z===`paddingY`?m(e=>e===`default`?`custom`:`default`):z===`foreground`?D(e=>{let t=e===`default`?`custom`:`default`;return t===`custom`&&(!O||O===``)&&k(`rgb(255,255,255)`),t}):z===`background`&&j(e=>{let t=e===`default`?`none`:e===`none`?`custom`:`default`;return t===`custom`&&(!M||M===``)&&ee(`rgb(0,0,0)`),t});else if(n===` `)if(z===`styling`){let e=ut[S].value;T(w.indexOf(e)>=0?w.filter(t=>t!==e):[...w,e])}else z===`fitBoxToContent`&&b(e=>!e)}});let U=e=>{let t=E===`default`?F?.colors?.text:O,n=A===`none`?void 0:A===`default`?F?.colors?.userMessageBackground:M,r=dt[te].value,i=d===`default`?0:parseInt(h)||0,a=p===`default`?0:parseInt(_)||0,o=d===`default`?1:i,s=J(V,{bold:w.includes(`bold`),italic:w.includes(`italic`),underline:w.includes(`underline`),strikethrough:w.includes(`strikethrough`),inverse:w.includes(`inverse`),color:t,backgroundColor:n,children:e});if(r===`topBottomSingle`||r===`topBottomDouble`||r===`topBottomBold`){let t=r===`topBottomSingle`?`─`:r===`topBottomDouble`?`═`:`━`,n=e.length+i*2,o=t.repeat(n);return Y(B,{flexDirection:`column`,children:[J(V,{color:N,children:o}),a>0&&J(B,{height:a}),J(B,{paddingX:i,children:s}),a>0&&J(B,{height:a}),J(V,{color:N,children:o})]})}else if(r!==`none`||i>0||a>0||o>0||y){let e={};i>0&&(e.paddingX=i),d===`default`&&i===0&&(e.paddingRight=o),a>0&&(e.paddingY=a);let t=Object.keys(e).length>0?J(B,{...e,children:s}):s,n={};return r!==`none`&&(n.borderStyle=r,n.borderColor=N),y?n.alignSelf=`flex-start`:n.flexGrow=1,r===`none`?t:J(B,{...n,children:t})}else return s};return P?J(Ke,{initialValue:ae,theme:F,onColorChange:e=>{P===`foreground`?k(e):P===`background`?ee(e):P===`border`&&re(e)},onExit:()=>{ie(null),oe(``)}}):Y(B,{flexDirection:`column`,children:[J(X,{children:`Customize how user messages are displayed`}),Y(B,{flexDirection:`column`,marginBottom:1,children:[J(V,{dimColor:!0,children:`left/right arrows to switch columns · tab to navigate options`}),J(V,{dimColor:!0,children:`enter to edit · ctrl+r to reset · esc to go back`})]}),Y(B,{flexDirection:`row`,gap:1,children:[Y(B,{flexDirection:`column`,width:`50%`,borderStyle:I===`text`?`round`:`single`,borderColor:I===`text`?`yellow`:`gray`,paddingX:1,children:[J(B,{marginBottom:1,children:J(V,{bold:!0,color:I===`text`?`yellow`:void 0,children:`Text & Styling`})}),J(B,{children:Y(V,{color:z===`format`?`yellow`:void 0,bold:z===`format`,children:[z===`format`?`❯ `:` `,`Format String`]})}),z===`format`&&J(B,{marginLeft:2,children:J(V,{dimColor:!0,children:r?`enter to save · esc to cancel`:`enter to edit · use {} as message placeholder`})}),J(B,{marginLeft:2,marginBottom:1,children:J(B,{borderStyle:`round`,borderColor:r?`yellow`:`gray`,children:J(V,{children:l})})}),J(B,{children:Y(V,{color:z===`styling`?`yellow`:void 0,bold:z===`styling`,children:[z===`styling`?`❯ `:` `,`Styling`]})}),z===`styling`&&J(B,{marginLeft:2,children:J(V,{dimColor:!0,children:`up/down to navigate · space to toggle`})}),J(B,{marginLeft:2,marginBottom:1,flexDirection:`column`,children:ut.map((e,t)=>J(B,{children:Y(V,{color:z===`styling`&&S===t?`cyan`:void 0,children:[z===`styling`&&S===t?`❯ `:` `,w.includes(e.value)?`●`:`○`,` `,e.label]})},e.value))}),Y(B,{flexDirection:`row`,gap:1,marginBottom:1,children:[Y(B,{flexDirection:`column`,width:`50%`,children:[J(B,{children:Y(V,{color:z===`foreground`?`yellow`:void 0,bold:z===`foreground`,children:[z===`foreground`?`❯ `:` `,`Foreground`]})}),z===`foreground`&&J(B,{marginLeft:2,children:Y(V,{dimColor:!0,children:[`up/down · `,E===`custom`?`enter`:``]})}),Y(B,{marginLeft:2,flexDirection:`column`,children:[J(B,{children:Y(V,{children:[E===`default`?`● `:`○ `,`Default`]})}),J(B,{children:Y(V,{children:[E===`custom`?`● `:`○ `,`Custom`,E===`custom`&&`: `,E===`custom`&&J(V,{color:O,children:O})]})})]})]}),Y(B,{flexDirection:`column`,width:`50%`,children:[J(B,{children:Y(V,{color:z===`background`?`yellow`:void 0,bold:z===`background`,children:[z===`background`?`❯ `:` `,`Background`]})}),z===`background`&&J(B,{marginLeft:2,children:Y(V,{dimColor:!0,children:[`up/down · `,A===`custom`?`enter`:``]})}),Y(B,{marginLeft:2,flexDirection:`column`,children:[J(B,{children:Y(V,{children:[A===`default`?`● `:`○ `,`Default`]})}),J(B,{children:Y(V,{children:[A===`none`?`● `:`○ `,`None`]})}),J(B,{children:Y(V,{children:[A===`custom`?`● `:`○ `,`Custom`,A===`custom`&&`: `,A===`custom`&&J(V,{backgroundColor:M,children:M})]})})]})]})]})]}),Y(B,{flexDirection:`column`,width:`50%`,borderStyle:I===`border`?`round`:`single`,borderColor:I===`border`?`yellow`:`gray`,paddingX:1,children:[J(B,{marginBottom:1,children:J(V,{bold:!0,color:I===`border`?`yellow`:void 0,children:`Border & Padding`})}),J(B,{children:Y(V,{color:z===`borderStyle`?`yellow`:void 0,bold:z===`borderStyle`,children:[z===`borderStyle`?`❯ `:` `,`Border Style`]})}),z===`borderStyle`&&J(B,{marginLeft:2,children:J(V,{dimColor:!0,children:`up/down to navigate`})}),Y(B,{marginLeft:2,marginBottom:1,flexDirection:`row`,children:[J(B,{flexDirection:`column`,width:`50%`,children:dt.slice(0,6).map((e,t)=>J(B,{children:Y(V,{color:z===`borderStyle`&&te===t?`cyan`:void 0,children:[z===`borderStyle`&&te===t?`❯ `:` `,te===t?`● `:`○ `,e.label]})},e.value))}),J(B,{flexDirection:`column`,width:`50%`,children:dt.slice(6).map((e,t)=>{let n=t+6;return J(B,{children:Y(V,{color:z===`borderStyle`&&te===n?`cyan`:void 0,children:[z===`borderStyle`&&te===n?`❯ `:` `,te===n?`● `:`○ `,e.label]})},e.value)})})]}),J(B,{children:Y(V,{color:z===`borderColor`?`yellow`:void 0,bold:z===`borderColor`,children:[z===`borderColor`?`❯ `:` `,`Border Color`]})}),z===`borderColor`&&J(B,{marginLeft:2,children:J(V,{dimColor:!0,children:`enter to pick color`})}),J(B,{marginLeft:2,marginBottom:1,children:J(V,{color:N,children:N})}),Y(B,{flexDirection:`row`,gap:1,children:[Y(B,{flexDirection:`column`,width:`33%`,children:[J(B,{children:Y(V,{color:z===`paddingX`?`yellow`:void 0,bold:z===`paddingX`,children:[z===`paddingX`?`❯ `:` `,`Padding X`]})}),z===`paddingX`&&J(B,{marginLeft:2,children:J(V,{dimColor:!0,children:a?`enter/esc`:d===`custom`?`up/down · enter`:`up/down`})}),Y(B,{marginLeft:2,flexDirection:`column`,children:[J(B,{children:Y(V,{children:[d===`default`?`● `:`○ `,`Default`]})}),J(B,{children:Y(V,{children:[d===`custom`?`● `:`○ `,`Custom`]})}),d===`custom`&&J(B,{children:J(B,{borderStyle:`round`,borderColor:a?`yellow`:`gray`,children:J(V,{children:h})})})]})]}),Y(B,{flexDirection:`column`,width:`33%`,children:[J(B,{children:Y(V,{color:z===`paddingY`?`yellow`:void 0,bold:z===`paddingY`,children:[z===`paddingY`?`❯ `:` `,`Padding Y`]})}),z===`paddingY`&&J(B,{marginLeft:2,children:J(V,{dimColor:!0,children:s?`enter/esc`:p===`custom`?`up/down · enter`:`up/down`})}),Y(B,{marginLeft:2,flexDirection:`column`,children:[J(B,{children:Y(V,{children:[p===`default`?`● `:`○ `,`Default`]})}),J(B,{children:Y(V,{children:[p===`custom`?`● `:`○ `,`Custom`]})}),p===`custom`&&J(B,{children:J(B,{borderStyle:`round`,borderColor:s?`yellow`:`gray`,children:J(V,{children:_})})})]})]}),Y(B,{flexDirection:`column`,width:`33%`,children:[J(B,{children:Y(V,{color:z===`fitBoxToContent`?`yellow`:void 0,bold:z===`fitBoxToContent`,children:[z===`fitBoxToContent`?`❯ `:` `,y?`●`:`○`,` Fit box to content`]})}),z===`fitBoxToContent`&&J(B,{marginLeft:2,children:J(V,{dimColor:!0,children:`space`})})]})]})]})]}),Y(B,{flexDirection:`column`,marginTop:1,paddingX:1,children:[J(B,{marginBottom:1,children:J(V,{bold:!0,children:`Preview`})}),Y(B,{flexDirection:`row`,gap:2,children:[Y(B,{flexDirection:`column`,width:`50%`,children:[J(B,{marginBottom:1,children:J(V,{underline:!0,children:`Before (Claude Code default):`})}),J(B,{marginLeft:1,children:Y(V,{backgroundColor:F?.colors?.userMessageBackground,color:F?.colors?.text,children:[` `,`> list the dir`,` `]})}),J(B,{marginLeft:1,marginTop:1,children:Y(V,{children:[J(V,{color:F?.colors?.inactive||`#888888`,children:`●`}),J(V,{children:` The directory `}),J(V,{color:F?.colors?.permission||`#00ff00`,children:`C:\\Users\\user`}),J(V,{children:` contains `}),J(V,{bold:!0,children:`123`}),J(V,{children:` files.`})]})})]}),Y(B,{flexDirection:`column`,width:`50%`,children:[J(B,{marginBottom:1,children:J(V,{underline:!0,children:`After (Your customization):`})}),J(B,{marginLeft:1,flexDirection:`row`,children:(()=>U(l.replace(/\{\}/g,`list the dir`)))()}),J(B,{marginLeft:1,marginTop:1,children:Y(V,{children:[J(V,{color:F?.colors?.inactive||`#888888`,children:`●`}),J(V,{children:` The directory `}),J(V,{color:F?.colors?.permission||`#00ff00`,children:`C:\\Users\\user`}),J(V,{children:` contains `}),J(V,{bold:!0,children:`123`}),J(V,{children:` files.`})]})})]})]})]})]})}const pt=[{label:`bold`,value:`bold`},{label:`italic`,value:`italic`},{label:`underline`,value:`underline`},{label:`strikethrough`,value:`strikethrough`},{label:`inverse`,value:`inverse`}],mt=[[`name`,`regex`,`regexFlags`],[`format`,`styling`],[`foreground`,`background`],[`enabled`],[`testText`]];function ht({testText:e,regex:t,regexFlags:n,format:r,styling:i,foregroundColor:a,backgroundColor:o}){let s=[];try{let c=n.includes(`g`)?n:n+`g`,l=new RegExp(t,c),u=[...e.matchAll(l)];if(u.length===0)return J(V,{children:e});let d=0;return u.forEach((t,n)=>{let c=t.index,l=c+t[0].length;c>d&&s.push(J(V,{children:e.slice(d,c)},`plain-${n}`));let u=r.replace(/\{MATCH\}/g,t[0]);s.push(J(V,{bold:i.includes(`bold`),italic:i.includes(`italic`),underline:i.includes(`underline`),strikethrough:i.includes(`strikethrough`),inverse:i.includes(`inverse`),color:a,backgroundColor:o,children:u},`match-${n}`)),d=l}),d<e.length&&s.push(J(V,{children:e.slice(d)},`plain-end`)),J(q,{children:s})}catch{return J(V,{children:e})}}function gt({highlighterIndex:e,onBack:t}){let{settings:n,updateSettings:r}=W($),i=n.inputPatternHighlighters[e],a=ce(),o=n.themes?.find(e=>e.id===a)||n.themes?.[0],[s,c]=K(i?.name||`New Highlighter`),[l,u]=K(i?.regex||``),[d,f]=K(i?.regexFlags||`g`),[p,m]=K(i?.format||`{MATCH}`),[h,g]=K(i?.styling||[]),[_,v]=K(i?.foregroundColor===null?`none`:`custom`),[y,b]=K(i?.foregroundColor||`rgb(255,0,255)`),[x,S]=K(i?.backgroundColor?`custom`:`none`),[C,w]=K(i?.backgroundColor||`rgb(0,0,0)`),[T,E]=K(i?.enabled??!0),[D,O]=K(n.inputPatternHighlightersTestText||`Type test text here to see highlighting`),[k,A]=K(`name`),[j,M]=K(!1),[ee,te]=K(0),[ne,N]=K(null),[re,P]=K(``),[ie,ae]=K(null),[oe,se]=K(0),[F,I]=K(0);if(G(()=>{let e=mt[oe];A(e[Math.min(F,e.length-1)])},[oe,F]),G(()=>{if(!l){ae(null);return}try{new RegExp(l,d),ae(null)}catch(e){ae(e.message)}},[l,d]),G(()=>{e>=0&&r(t=>{t.inputPatternHighlighters[e]&&(t.inputPatternHighlighters[e]={name:s,regex:l,regexFlags:d,format:p,styling:h,foregroundColor:_===`custom`?y:null,backgroundColor:x===`custom`?C:null,enabled:T})})},[e,s,l,d,p,h,_,y,x,C,T]),G(()=>{r(e=>{e.inputPatternHighlightersTestText=D})},[D]),H((e,r)=>{if(j){r.return?M(!1):r.escape?(k===`name`&&c(i?.name||``),k===`regex`&&u(i?.regex||``),k===`regexFlags`&&f(i?.regexFlags||`g`),k===`format`&&m(i?.format||`{MATCH}`),k===`testText`&&O(n.inputPatternHighlightersTestText||`Type test text here to see highlighting`),M(!1)):r.backspace||r.delete?(k===`name`&&c(e=>e.slice(0,-1)),k===`regex`&&u(e=>e.slice(0,-1)),k===`regexFlags`&&f(e=>e.slice(0,-1)),k===`format`&&m(e=>e.slice(0,-1)),k===`testText`&&O(e=>e.slice(0,-1))):e&&e.length===1&&(k===`name`&&c(t=>t+e),k===`regex`&&u(t=>t+e),k===`regexFlags`&&f(t=>t+e),k===`format`&&m(t=>t+e),k===`testText`&&O(t=>t+e));return}if(ne===null){if(r.escape)t();else if(r.upArrow)k===`styling`&&ee>0?te(e=>e-1):se(e=>Math.max(0,e-1));else if(r.downArrow)k===`styling`&&ee<pt.length-1?te(e=>e+1):se(e=>Math.min(mt.length-1,e+1));else if(r.leftArrow)k===`foreground`?v(e=>e===`none`?`custom`:`none`):k===`background`?S(e=>e===`none`?`custom`:`none`):I(e=>Math.max(0,e-1));else if(r.rightArrow)if(k===`foreground`)v(e=>e===`none`?`custom`:`none`);else if(k===`background`)S(e=>e===`none`?`custom`:`none`);else{let e=mt[oe].length-1;I(t=>Math.min(e,t+1))}else if(r.tab){let e=mt.flat(),t=e.indexOf(k);if(r.shift){if(t>0){let n=e[t-1];for(let e=0;e<mt.length;e++){let t=mt[e].indexOf(n);if(t>=0){se(e),I(t);break}}}}else if(t<e.length-1){let n=e[t+1];for(let e=0;e<mt.length;e++){let t=mt[e].indexOf(n);if(t>=0){se(e),I(t);break}}}}else if(r.return)k===`name`||k===`regex`||k===`regexFlags`||k===`format`||k===`testText`?M(!0):k===`foreground`&&_===`custom`?(P(y),N(`foreground`)):k===`background`&&x===`custom`&&(P(C),N(`background`));else if(e===` `)if(k===`styling`){let e=pt[ee].value;h.includes(e)?g(h.filter(t=>t!==e)):g([...h,e])}else k===`enabled`&&E(!T)}}),!i)return J(B,{flexDirection:`column`,children:J(V,{color:`red`,children:`Highlighter not found`})});if(ne)return J(Ke,{initialValue:re,theme:o,onColorChange:e=>{ne===`foreground`?b(e):ne===`background`&&w(e)},onExit:()=>{N(null),P(``)}});let L=e=>k===e,R=e=>({color:L(e)?`yellow`:void 0,bold:L(e)});return Y(B,{flexDirection:`column`,children:[J(X,{children:`Edit Highlighter`}),J(B,{marginBottom:1,flexDirection:`column`,children:J(V,{dimColor:!0,children:`arrows to navigate · enter to edit · space to toggle · esc to go back`})}),Y(B,{flexDirection:`row`,gap:2,marginBottom:1,children:[Y(B,{flexDirection:`column`,width:`30%`,children:[Y(V,{...R(`name`),children:[L(`name`)?`❯ `:` `,`Name`]}),J(B,{marginLeft:2,children:J(B,{borderStyle:`round`,borderColor:L(`name`)?j?`green`:`yellow`:`gray`,children:J(V,{children:s||`(empty)`})})})]}),Y(B,{flexDirection:`column`,width:`45%`,children:[Y(V,{...R(`regex`),children:[L(`regex`)?`❯ `:` `,`Regex Pattern`]}),Y(B,{marginLeft:2,flexDirection:`column`,children:[J(B,{borderStyle:`round`,borderColor:L(`regex`)?j?`green`:`yellow`:ie?`red`:`gray`,children:J(V,{children:l||`(empty)`})}),ie&&J(V,{color:`red`,children:ie})]})]}),Y(B,{flexDirection:`column`,width:`20%`,children:[Y(V,{...R(`regexFlags`),children:[L(`regexFlags`)?`❯ `:` `,`Flags`]}),J(B,{marginLeft:2,children:J(B,{borderStyle:`round`,borderColor:L(`regexFlags`)?j?`green`:`yellow`:`gray`,children:J(V,{children:d||`g`})})})]})]}),Y(B,{flexDirection:`row`,gap:2,marginBottom:1,children:[Y(B,{flexDirection:`column`,width:`50%`,children:[Y(V,{...R(`format`),children:[L(`format`)?`❯ `:` `,`Format String`]}),J(B,{marginLeft:2,children:J(B,{borderStyle:`round`,borderColor:L(`format`)?j?`green`:`yellow`:`gray`,children:J(V,{children:p||`{MATCH}`})})}),L(`format`)&&J(B,{marginLeft:2,children:Y(V,{dimColor:!0,children:[`use `,`{MATCH}`,` as placeholder`]})})]}),Y(B,{flexDirection:`column`,width:`45%`,children:[Y(V,{...R(`styling`),children:[L(`styling`)?`❯ `:` `,`Styling`]}),J(B,{marginLeft:2,flexDirection:`column`,children:pt.map((e,t)=>{let n=h.includes(e.value),r=L(`styling`)&&ee===t;return Y(V,{color:r?`cyan`:void 0,children:[r?`❯ `:` `,n?`●`:`○`,` `,e.label]},e.value)})})]})]}),Y(B,{flexDirection:`row`,gap:2,marginBottom:1,children:[Y(B,{flexDirection:`column`,width:`48%`,children:[Y(V,{...R(`foreground`),children:[L(`foreground`)?`❯ `:` `,`Foreground Color`]}),Y(B,{marginLeft:2,flexDirection:`row`,gap:1,children:[Y(V,{color:L(`foreground`)?`yellow`:void 0,children:[`[`,_===`none`?`●`:`○`,`] none`,` `,`[`,_===`custom`?`●`:`○`,`] custom`]}),_===`custom`&&J(B,{borderStyle:`round`,borderColor:L(`foreground`)?`yellow`:`gray`,children:J(V,{color:y,children:` ████ `})})]})]}),Y(B,{flexDirection:`column`,width:`48%`,children:[Y(V,{...R(`background`),children:[L(`background`)?`❯ `:` `,`Background Color`]}),Y(B,{marginLeft:2,flexDirection:`row`,gap:1,children:[Y(V,{color:L(`background`)?`yellow`:void 0,children:[`[`,x===`none`?`●`:`○`,`] none`,` `,`[`,x===`custom`?`●`:`○`,`] custom`]}),x===`custom`&&J(B,{borderStyle:`round`,borderColor:L(`background`)?`yellow`:`gray`,children:Y(V,{backgroundColor:C,children:[` `,` `,` `]})})]})]})]}),J(B,{marginBottom:1,children:Y(V,{...R(`enabled`),children:[L(`enabled`)?`❯ `:` `,`Enabled:`,` `,J(V,{color:T?`green`:`red`,children:T?`● Yes`:`○ No`})]})}),Y(B,{flexDirection:`column`,marginBottom:1,children:[Y(V,{...R(`testText`),children:[L(`testText`)?`❯ `:` `,`Test Text`]}),J(B,{marginLeft:2,children:J(B,{borderStyle:`round`,borderColor:L(`testText`)?j?`green`:`yellow`:`gray`,children:J(V,{children:D||`(empty)`})})})]}),J(B,{borderStyle:`round`,padding:1,children:Y(B,{flexDirection:`column`,children:[J(V,{bold:!0,children:`Live Preview:`}),l?J(B,{marginTop:1,children:J(ht,{testText:D,regex:l,regexFlags:d,format:p,styling:h,foregroundColor:_===`custom`?y:void 0,backgroundColor:x===`custom`?C:void 0})}):J(V,{dimColor:!0,children:`Enter a regex pattern to see the preview`})]})})]})}function _t({onBack:e}){let{settings:{inputPatternHighlighters:t,themes:n},updateSettings:r}=W($),i=ce(),a=n.find(e=>e.id===i)||n[0],o=x.themes[0],s=a?.colors.success||o.colors.success,c=a?.colors.error||o.colors.error,[l,u]=K(0),[d,f]=K(null),[p,m]=K(!0),h=()=>{let e={name:`New Highlighter`,regex:``,regexFlags:`g`,format:`{MATCH}`,styling:[],foregroundColor:`rgb(255,0,255)`,backgroundColor:null,enabled:!0};r(t=>{t.inputPatternHighlighters.push(e)}),f(t.length),m(!1)},g=e=>{r(t=>{t.inputPatternHighlighters.splice(e,1)}),l>=t.length-1&&u(Math.max(0,t.length-2))},_=e=>{r(t=>{t.inputPatternHighlighters[e].enabled=!t.inputPatternHighlighters[e].enabled})},v=e=>{e<=0||(r(t=>{let n=t.inputPatternHighlighters[e];t.inputPatternHighlighters.splice(e,1),t.inputPatternHighlighters.splice(e-1,0,n)}),u(e-1))},y=e=>{e>=t.length-1||(r(t=>{let n=t.inputPatternHighlighters[e];t.inputPatternHighlighters.splice(e,1),t.inputPatternHighlighters.splice(e+1,0,n)}),u(e+1))};return H((n,r)=>{r.escape?e():r.upArrow?u(e=>Math.max(0,e-1)):r.downArrow&&t.length>0?u(e=>Math.min(t.length-1,e+1)):r.return&&t.length>0?(f(l),m(!1)):n===`n`?h():n===`x`&&t.length>0?g(l):n===` `&&t.length>0?_(l):n===`u`&&t.length>0&&l>0?v(l):n===`d`&&t.length>0&&l<t.length-1&&y(l)},{isActive:p}),d===null?Y(B,{flexDirection:`column`,children:[J(X,{children:`Input Pattern Highlighters`}),Y(B,{marginBottom:1,flexDirection:`column`,children:[J(V,{dimColor:!0,children:`Create custom highlighters for patterns in your input prompt.`}),J(V,{dimColor:!0,children:`Matched text will be styled and optionally reformatted.`})]}),Y(B,{marginBottom:1,flexDirection:`column`,children:[J(V,{dimColor:!0,children:`n to create a new highlighter`}),t.length>0&&J(V,{dimColor:!0,children:`space to toggle enabled/disabled`}),t.length>0&&J(V,{dimColor:!0,children:`u/d to move highlighter up/down`}),t.length>0&&J(V,{dimColor:!0,children:`x to delete a highlighter`}),t.length>0&&J(V,{dimColor:!0,children:`enter to edit highlighter`}),J(V,{dimColor:!0,children:`esc to go back`})]}),t.length===0?J(V,{children:`No highlighters created yet. Press n to create one.`}):J(B,{flexDirection:`column`,children:t.map((e,t)=>{let n=l===t,r;return n&&(r=`yellow`),Y(B,{flexDirection:`row`,children:[Y(V,{color:r,children:[n?`❯ `:` `,e.enabled?`● `:`○ `,e.name,` `]}),J(V,{dimColor:!0,children:`(`}),e.regex?Y(V,{dimColor:!0,children:[`/`,e.regex,`/`,e.regexFlags]}):J(V,{dimColor:!0,children:`(no regex)`}),e.styling.length>0&&J(q,{children:Y(V,{color:r,dimColor:!e.enabled,children:[` `,`· `,e.styling.join(`, `)]})}),J(V,{dimColor:!0,children:`)`}),e.enabled?J(V,{color:s,children:` enabled`}):J(V,{color:c,children:` disabled`})]},t)})})]}):J(gt,{highlighterIndex:d,onBack:()=>{f(null),m(!0)}})}const vt=[null,1,5,10,25,50,100,200,250,500,1e3],yt=1e3;function bt({onSubmit:e}){let{settings:t,updateSettings:n}=W($),[r,i]=K(0),[a,o]=K(!1),s={showTweakccVersion:!0,showPatchesApplied:!0,expandThinkingBlocks:!0,enableConversationTitle:!0,hideStartupBanner:!1,hideCtrlGToEdit:!1,hideStartupClawd:!1,increaseFileReadLimit:!1,suppressLineNumbers:!1,suppressRateLimitOptions:!1,mcpConnectionNonBlocking:!0,mcpServerBatchSize:null,statuslineThrottleMs:null,statuslineUseFixedInterval:!1,tableFormat:`default`,enableSwarmMode:!0,enableSessionMemory:!0,enableRememberSkill:!1,tokenCountRounding:null,autoAcceptPlanMode:!1,allowBypassPermissionsInSudo:!1,suppressNativeInstallerWarning:!1,filterScrollEscapeSequences:!1,enableWorktreeMode:!0,allowCustomAgentModels:!1,enableContextLimitOverride:!1,enableModelCustomizations:!0,enableVoiceMode:!1,enableVoiceConciseOutput:!0,enableChannelsMode:!1},c=()=>{t.misc||={...s}},l=e=>{let t=[`default`,`ascii`,`clean`,`clean-top-bottom`];return t[(t.indexOf(e)+1)%t.length]},u=e=>{switch(e){case`ascii`:return`ASCII (| and -)`;case`clean`:return`Clean (no row separators)`;case`clean-top-bottom`:return`Clean with top/bottom`;case`default`:default:return`Default (box-drawing)`}},d=e=>e===null?`Default (3)`:e<=3?`${e} (conservative)`:e<=8?`${e} (recommended)`:`${e} (aggressive)`,f=e=>e===null?`Disabled`:e===0?`0ms (instant)`:`${e}ms`,p=e=>e===null?`Off (exact counts)`:`Round to ${e}`,m=(e,t)=>{let n=vt.indexOf(e);if(n===-1)return vt[0];let r;return r=t===`next`?(n+1)%vt.length:(n-1+vt.length)%vt.length,vt[r]},h=be(()=>[{id:`removeBorder`,title:`Remove input box border`,description:`Removes the rounded border around the input box for a cleaner look.`,getValue:()=>t.inputBox?.removeBorder??!1,toggle:()=>{n(e=>{e.inputBox||={removeBorder:!1},e.inputBox.removeBorder=!e.inputBox.removeBorder})}},{id:`showVersion`,title:`Show tweakcc version at startup`,description:`Shows the blue "+ tweakcc v<VERSION>" message when starting Claude Code.`,getValue:()=>t.misc?.showTweakccVersion??!0,toggle:()=>{n(e=>{c(),e.misc.showTweakccVersion=!e.misc.showTweakccVersion})}},{id:`showPatches`,title:`Show patches applied indicator at startup`,description:`Shows the green "tweakcc patches are applied" indicator when starting Claude Code.`,getValue:()=>t.misc?.showPatchesApplied??!0,toggle:()=>{n(e=>{c(),e.misc.showPatchesApplied=!e.misc.showPatchesApplied})}},{id:`expandThinking`,title:`Expand thinking blocks`,description:`Makes thinking blocks always expanded by default instead of collapsed.`,getValue:()=>t.misc?.expandThinkingBlocks??!0,toggle:()=>{n(e=>{c(),e.misc.expandThinkingBlocks=!e.misc.expandThinkingBlocks})}},{id:`conversationTitle`,title:`Allow renaming sessions via /title`,description:`Enables /title and /rename commands for manually naming conversations.`,getValue:()=>t.misc?.enableConversationTitle??!0,toggle:()=>{n(e=>{c(),e.misc.enableConversationTitle=!e.misc.enableConversationTitle})}},{id:`enableModelCustomizations`,title:`Enable model customizations (/model shows all models)`,description:`Show all Claude models in /model menu, not just the latest 3. Disable to use Claude Code default model list.`,getValue:()=>t.misc?.enableModelCustomizations??!0,toggle:()=>{n(e=>{c(),e.misc.enableModelCustomizations=!e.misc.enableModelCustomizations})}},{id:`hideStartupBanner`,title:`Hide startup banner`,description:`Hides the startup banner message displayed before first prompt.`,getValue:()=>t.misc?.hideStartupBanner??!1,toggle:()=>{n(e=>{c(),e.misc.hideStartupBanner=!e.misc.hideStartupBanner})}},{id:`hideCtrlG`,title:`Hide ctrl-g to edit prompt hint`,description:`Hides the "ctrl-g to edit prompt" hint shown during streaming.`,getValue:()=>t.misc?.hideCtrlGToEdit??!1,toggle:()=>{n(e=>{c(),e.misc.hideCtrlGToEdit=!e.misc.hideCtrlGToEdit})}},{id:`hideClawd`,title:`Hide startup Clawd ASCII art`,description:`Hides the Clawd ASCII art character shown at startup.`,getValue:()=>t.misc?.hideStartupClawd??!1,toggle:()=>{n(e=>{c(),e.misc.hideStartupClawd=!e.misc.hideStartupClawd})}},{id:`increaseFileReadLimit`,title:`Increase file read token limit`,description:`Increases the maximum file read limit from 25,000 to 1,000,000 tokens.`,getValue:()=>t.misc?.increaseFileReadLimit??!1,toggle:()=>{n(e=>{c(),e.misc.increaseFileReadLimit=!e.misc.increaseFileReadLimit})}},{id:`suppressLineNumbers`,title:`Suppress line numbers in file reads/edits`,description:`Removes line number prefixes from file content to reduce token usage.`,getValue:()=>t.misc?.suppressLineNumbers??!1,toggle:()=>{n(e=>{c(),e.misc.suppressLineNumbers=!e.misc.suppressLineNumbers})}},{id:`suppressRateLimitOptions`,title:`Suppress rate limit options popup`,description:`Prevents the automatic /rate-limit-options command from being triggered when hitting rate limits.`,getValue:()=>t.misc?.suppressRateLimitOptions??!1,toggle:()=>{n(e=>{c(),e.misc.suppressRateLimitOptions=!e.misc.suppressRateLimitOptions})}},{id:`mcpNonBlocking`,title:`Non-blocking MCP startup`,description:`Start immediately while MCP servers connect in background. Reduces startup time ~50% with multiple MCPs.`,getValue:()=>t.misc?.mcpConnectionNonBlocking??!0,toggle:()=>{n(e=>{c(),e.misc.mcpConnectionNonBlocking=!e.misc.mcpConnectionNonBlocking})}},{id:`mcpBatchSize`,title:`MCP server batch size`,description:`Parallel MCP connections (1-20). Use ←/→ to adjust. Higher = faster startup, more resources.`,getValue:()=>t.misc?.mcpServerBatchSize??null,getDisplayValue:()=>d(t.misc?.mcpServerBatchSize??null),toggle:()=>{n(e=>{c(),e.misc.mcpServerBatchSize=null})},increment:()=>{n(e=>{c();let t=e.misc.mcpServerBatchSize??3;e.misc.mcpServerBatchSize=Math.min(20,t+1)})},decrement:()=>{n(e=>{c();let t=(e.misc.mcpServerBatchSize??3)-1;e.misc.mcpServerBatchSize=t<1?null:t})}},{id:`tableFormat`,title:`Table output format`,description:`Controls how Claude formats tables. Default: full borders. ASCII: | and -. Clean: no top/bottom/row separators. Clean+top/bottom: borders but no row separators.`,getValue:()=>t.misc?.tableFormat??`default`,isMultiValue:!0,getDisplayValue:()=>u(t.misc?.tableFormat??`default`),toggle:()=>{n(e=>{c(),e.misc.tableFormat=l(e.misc.tableFormat??`default`)})}},{id:`enableWorktreeMode`,title:`Enable worktree mode (EnterWorktree tool)`,description:`Force-enable the EnterWorktree tool for isolated git worktree sessions by bypassing the tengu_worktree_mode feature flag.`,getValue:()=>t.misc?.enableWorktreeMode??!0,toggle:()=>{n(e=>{c(),e.misc.enableWorktreeMode=!e.misc.enableWorktreeMode})}},{id:`enableVoiceMode`,title:`Enable voice mode (/voice command)`,description:`Force-enable the /voice command by bypassing the tengu_amber_quartz feature gate.`,getValue:()=>t.misc?.enableVoiceMode??!1,toggle:()=>{n(e=>{c(),e.misc.enableVoiceMode=!e.misc.enableVoiceMode})}},{id:`enableVoiceConciseOutput`,title:`Enable concise output for voice mode`,description:`Enable the concise-output prompt used for voice interactions. Only applies when voice mode is enabled.`,getValue:()=>t.misc?.enableVoiceConciseOutput??!0,toggle:()=>{n(e=>{c(),e.misc.enableVoiceConciseOutput=!e.misc.enableVoiceConciseOutput})}},{id:`enableChannelsMode`,title:`Enable channels mode (MCP channel notifications)`,description:`Force-enable MCP channel notifications by bypassing the tengu_harbor feature gate, allowlist, and permission relay.`,getValue:()=>t.misc?.enableChannelsMode??!1,toggle:()=>{n(e=>{c(),e.misc.enableChannelsMode=!e.misc.enableChannelsMode})}},{id:`enableContextLimitOverride`,title:`Override context limit`,description:`Replaces the default model context limit with CLAUDE_CODE_CONTEXT_LIMIT env var. Must be exported manually before launching CC, or falls back to 200K.`,getValue:()=>t.misc?.enableContextLimitOverride??!1,toggle:()=>{n(e=>{c(),e.misc.enableContextLimitOverride=!e.misc.enableContextLimitOverride})}},{id:`statuslineThrottle`,title:`Statusline throttle`,description:`Throttle statusline updates (0-${yt}ms). Use ←/→ to adjust by 50ms. Space to disable. 0 = instant updates.`,getValue:()=>t.misc?.statuslineThrottleMs??null,getDisplayValue:()=>f(t.misc?.statuslineThrottleMs??null),toggle:()=>{n(e=>{c(),e.misc.statuslineThrottleMs=e.misc.statuslineThrottleMs===null?300:null})},increment:()=>{n(e=>{c();let t=e.misc.statuslineThrottleMs??300;e.misc.statuslineThrottleMs=Math.min(yt,t+50)})},decrement:()=>{n(e=>{c();let t=e.misc.statuslineThrottleMs??300;e.misc.statuslineThrottleMs=Math.max(0,t-50)})}},{id:`statuslineFixedInterval`,title:`Statusline fixed interval mode`,description:`Use setInterval instead of throttle. Updates happen on a fixed schedule rather than on-demand.`,getValue:()=>t.misc?.statuslineUseFixedInterval??!1,toggle:()=>{n(e=>{c(),e.misc.statuslineUseFixedInterval=!e.misc.statuslineUseFixedInterval})}},{id:`enableSessionMemory`,title:`Enable session memory`,description:`Force-enable session memory (auto-extraction + past session search) by bypassing the tengu_session_memory and tengu_coral_fern statsig flags.`,getValue:()=>t.misc?.enableSessionMemory??!0,toggle:()=>{n(e=>{c(),e.misc.enableSessionMemory=!e.misc.enableSessionMemory})}},{id:`enableRememberSkill`,title:`Enable remember skill`,description:`Register a "remember" skill to review session memories and update CLAUDE.local.md with learnings from past sessions.`,getValue:()=>t.misc?.enableRememberSkill??!1,toggle:()=>{n(e=>{c(),e.misc.enableRememberSkill=!e.misc.enableRememberSkill})}},{id:`tokenCountRounding`,title:`Token count rounding`,description:`Round displayed token counts to nearest multiple. Use ←/→ to cycle: Off, 1, 5, 10, 25, 50, 100, 200, 250, 500, 1000.`,getValue:()=>t.misc?.tokenCountRounding??null,getDisplayValue:()=>p(t.misc?.tokenCountRounding??null),toggle:()=>{n(e=>{c(),e.misc.tokenCountRounding=null})},increment:()=>{n(e=>{c(),e.misc.tokenCountRounding=m(e.misc.tokenCountRounding??null,`next`)})},decrement:()=>{n(e=>{c(),e.misc.tokenCountRounding=m(e.misc.tokenCountRounding??null,`prev`)})}},{id:`autoAcceptPlanMode`,title:`Auto-accept plan mode`,description:`Automatically accept plans without the "Ready to code?" confirmation prompt.`,getValue:()=>t.misc?.autoAcceptPlanMode??!1,toggle:()=>{n(e=>{c(),e.misc.autoAcceptPlanMode=!e.misc.autoAcceptPlanMode})}},{id:`allowBypassPermissionsInSudo`,title:`Allow bypassing permissions in sudo`,description:`⚠️ WARNING: Disables a security check. When enabled, Claude can perform system-level operations without prompts. Use extreme caution.`,getValue:()=>t.misc?.allowBypassPermissionsInSudo??!1,toggle:()=>{t.misc?.allowBypassPermissionsInSudo??!1?n(e=>{c(),e.misc.allowBypassPermissionsInSudo=!1}):o(!0)}},{id:`suppressNativeInstallerWarning`,title:`Suppress native installer warning`,description:`Suppress the native installer warning message at startup.`,getValue:()=>t.misc?.suppressNativeInstallerWarning??!1,toggle:()=>{n(e=>{c(),e.misc.suppressNativeInstallerWarning=!e.misc.suppressNativeInstallerWarning})}},{id:`filterScrollEscapeSequences`,title:`Filter scroll escape sequences`,description:`Filter out terminal escape sequences that cause unwanted scrolling.`,getValue:()=>t.misc?.filterScrollEscapeSequences??!1,toggle:()=>{n(e=>{c(),e.misc.filterScrollEscapeSequences=!e.misc.filterScrollEscapeSequences})}},{id:`allowCustomAgentModels`,title:`Allow custom agent models`,description:`Allow arbitrary model names in custom agent frontmatter (e.g. gemini-2.5-flash). Useful with a local proxy for non-Claude models.`,getValue:()=>t.misc?.allowCustomAgentModels??!1,toggle:()=>{n(e=>{c(),e.misc.allowCustomAgentModels=!e.misc.allowCustomAgentModels})}}],[t,n]),g=h.length,_=g-1,v=be(()=>r<4?0:Math.min(r-4+1,g-4),[r,g]),y=h.slice(v,v+4),b=v>0,x=v+4<g;return H((t,s)=>{a?s.return?(n(e=>{c(),e.misc.allowBypassPermissionsInSudo=!0}),o(!1)):s.escape&&o(!1):s.return||s.escape?e():s.upArrow?i(e=>Math.max(0,e-1)):s.downArrow?i(e=>Math.min(_,e+1)):t===` `?h[r]?.toggle():s.rightArrow?h[r]?.increment?.():s.leftArrow&&h[r]?.decrement?.()}),J(B,{flexDirection:`column`,children:a?J(B,{flexDirection:`column`,paddingX:2,children:Y(B,{borderStyle:`double`,borderColor:`yellow`,padding:2,flexDirection:`column`,children:[J(B,{marginBottom:1,children:J(V,{bold:!0,color:`yellow`,children:`SECURITY WARNING`})}),J(B,{marginBottom:1,children:J(V,{children:`You are about to enable a feature that allows Claude Code to bypass permission checks when running with sudo privileges.`})}),J(B,{marginBottom:1,children:J(V,{color:`red`,children:`This means Claude can perform system-level operations without any prompts or confirmation.`})}),J(B,{marginBottom:1,children:J(V,{bold:!0,children:`Use with extreme caution.`})}),J(B,{children:Y(V,{children:[`Press `,J(V,{color:`red`,children:`Enter`}),` to enable,`,` `,J(V,{color:`green`,children:`Escape`}),` to cancel`]})})]})}):Y(q,{children:[J(B,{marginBottom:1,children:J(X,{children:`Miscellaneous Settings`})}),J(B,{marginBottom:1,children:J(V,{dimColor:!0,children:`Use ↑/↓ to navigate, space to toggle, ←/→ to adjust numbers, enter to go back.`})}),b&&J(B,{children:Y(V,{dimColor:!0,children:[` ↑ `,v,` more above`]})}),y.map((e,t)=>{let n=v+t===r,i=e.getValue(),a=!!e.getDisplayValue,o=!!e.increment,s;s=o?`◆`:a?`◉`:i?`☑`:`☐`;let c;c=a?e.getDisplayValue():typeof i==`boolean`?i?`Enabled`:`Disabled`:String(i??`Default`);let l=n&&o?` ← → `:``;return Y(B,{flexDirection:`column`,children:[J(B,{children:Y(V,{children:[J(V,{color:n?`cyan`:void 0,children:n?`❯ `:` `}),J(V,{bold:!0,color:n?`cyan`:void 0,children:e.title})]})}),J(B,{children:Y(V,{dimColor:!0,children:[` `,e.description]})}),J(B,{marginLeft:4,marginBottom:1,children:Y(V,{children:[s,` `,c,J(V,{dimColor:!0,children:l})]})})]},e.id)}),x&&J(B,{children:Y(V,{dimColor:!0,children:[` `,`↓ `,g-v-4,` more below`]})}),J(B,{marginTop:1,children:Y(V,{dimColor:!0,children:[`Item `,r+1,` of `,g]})})]})})}const xt=`AgentOutputTool.AskUserQuestion.Bash.BashOutputTool.Edit.EnterPlanMode.ExitPlanMode.Glob.Grep.KillShell.ListMcpResourcesTool.LSP.NotebookEdit.Read.ReadMcpResourceTool.Skill.Task.TaskCreate.TaskGet.TaskList.TaskOutput.TaskStop.TaskUpdate.Teammate.TodoWrite.ToolSearch.WebFetch.WebSearch.Write`.split(`.`);function St({toolsetIndex:e,onBack:t}){let{settings:n,updateSettings:r}=W($),i=n.toolsets[e],[a,o]=K(i?.name||`New Toolset`),[s,c]=K(i?.allowedTools||[]),[l,u]=K(!1),[d,f]=K(0);G(()=>{i&&r(t=>{let n=t.toolsets[e].name;t.toolsets[e].name=a,t.toolsets[e].allowedTools=s,n!==a&&(t.defaultToolset===n&&(t.defaultToolset=a),t.planModeToolset===n&&(t.planModeToolset=a))})},[a,s]);let p=e=>s===`*`?!0:s.includes(e),m=e=>{e===`All`?c(`*`):e===`None`?c([]):s===`*`?c(xt.filter(t=>t!==e)):s.includes(e)?c(s.filter(t=>t!==e)):c([...s,e])};if(H((e,n)=>{if(l){n.return?u(!1):n.escape?(o(i?.name||`New Toolset`),u(!1)):n.backspace||n.delete?o(e=>e.slice(0,-1)):e&&e.length===1&&o(t=>t+e);return}if(n.escape)t();else if(n.upArrow)f(e=>Math.max(0,e-1));else if(n.downArrow)f(e=>Math.min(xt.length+1,e+1));else if(e===` `||n.return)if(d===0)m(`All`);else if(d===1)m(`None`);else{let e=xt[d-2];e&&m(e)}else e===`n`&&u(!0)}),!i)return J(B,{flexDirection:`column`,children:J(V,{color:`red`,children:`Toolset not found`})});let h=s===`*`,g=Array.isArray(s)&&s.length===0;return Y(B,{flexDirection:`column`,children:[J(X,{children:`Edit Toolset`}),J(B,{marginBottom:1,flexDirection:`column`,children:J(V,{dimColor:!0,children:`n to edit name · space/enter to toggle · esc to go back`})}),Y(B,{marginBottom:1,flexDirection:`column`,children:[J(V,{bold:!0,children:`Name:`}),J(B,{marginLeft:2,children:J(B,{borderStyle:`round`,borderColor:l?`yellow`:`gray`,children:J(V,{children:a})})}),l&&J(B,{marginLeft:2,children:J(V,{dimColor:!0,children:`enter to save · esc to cancel`})})]}),Y(B,{marginBottom:1,flexDirection:`column`,children:[J(V,{bold:!0,children:`Allowed Tools:`}),J(B,{marginLeft:2,children:Y(V,{color:d===0?`cyan`:void 0,children:[d===0?`❯ `:` `,h?`●`:`○`,` All`]})}),J(B,{marginLeft:2,children:Y(V,{color:d===1?`cyan`:void 0,children:[d===1?`❯ `:` `,g?`●`:`○`,` None`]})}),xt.map((e,t)=>{let n=t+2;return J(B,{marginLeft:2,children:Y(V,{color:d===n?`cyan`:void 0,children:[d===n?`❯ `:` `,p(e)?`◉`:`○`,` `,e]})},e)})]}),J(B,{borderStyle:`round`,padding:1,marginTop:1,children:Y(B,{flexDirection:`column`,children:[J(V,{bold:!0,children:`Summary:`}),Y(V,{children:[`Name: `,J(V,{color:`cyan`,children:a})]}),Y(V,{children:[`Tools:`,` `,s===`*`?J(V,{color:`green`,children:`All tools (*)`}):s.length===0?J(V,{color:`red`,children:`No tools ([])`}):Y(V,{color:`yellow`,children:[s.length,` selected`]})]})]})})]})}function Ct({onBack:e}){let{settings:{toolsets:t,defaultToolset:n,planModeToolset:r,themes:i},updateSettings:a}=W($),o=ce(),s=i.find(e=>e.id===o)||i[0],c=x.themes[0],l=s?.colors.planMode||c.colors.planMode,u=s?.colors.autoAccept||c.colors.autoAccept,[d,f]=K(0),[p,m]=K(null),[h,g]=K(!0),_=()=>{let e={name:`New Toolset`,allowedTools:[]};a(t=>{t.toolsets.push(e)}),m(t.length),g(!1)},v=e=>{let n=t[e];a(t=>{t.toolsets.splice(e,1),t.defaultToolset===n.name&&(t.defaultToolset=null),t.planModeToolset===n.name&&(t.planModeToolset=null)}),d>=t.length-1&&f(Math.max(0,t.length-2))},y=e=>{let n=t[e];a(e=>{e.defaultToolset=n.name})},b=e=>{let n=t[e];a(e=>{e.planModeToolset=n.name})};if(H((n,r)=>{r.escape?e():r.upArrow?f(e=>Math.max(0,e-1)):r.downArrow?f(e=>Math.min(t.length-1,e+1)):r.return&&t.length>0?(m(d),g(!1)):n===`n`?_():n===`x`&&t.length>0?v(d):n===`d`&&t.length>0?y(d):n===`p`&&t.length>0&&b(d)},{isActive:h}),p!==null)return J(St,{toolsetIndex:p,onBack:()=>{m(null),g(!0)}});let S=e=>e.allowedTools===`*`?`All tools`:e.allowedTools.length===0?`No tools`:`${e.allowedTools.length} tool${e.allowedTools.length===1?``:`s`}`;return Y(B,{flexDirection:`column`,children:[J(X,{children:`Toolsets`}),Y(B,{marginBottom:1,flexDirection:`column`,children:[J(V,{dimColor:!0,children:`n to create a new toolset`}),t.length>0&&J(V,{dimColor:!0,children:`d to set as default toolset`}),t.length>0&&J(V,{dimColor:!0,children:`p to set as plan mode toolset`}),t.length>0&&J(V,{dimColor:!0,children:`x to delete a toolset`}),t.length>0&&J(V,{dimColor:!0,children:`enter to edit toolset`}),J(V,{dimColor:!0,children:`esc to go back`})]}),t.length===0?J(V,{children:`No toolsets created yet. Press n to create one.`}):J(B,{flexDirection:`column`,children:t.map((e,t)=>{let i=e.name===n,a=e.name===r,o=d===t,s;return o&&(s=`yellow`),Y(B,{flexDirection:`row`,children:[Y(V,{color:s,children:[o?`❯ `:` `,e.name,` `]}),Y(V,{color:s,children:[`(`,S(e),`)`]}),i&&J(V,{color:u,children:` ⏵⏵ accept edits`}),a&&J(V,{color:l,children:` ⏸ plan mode`})]},t)})})]})}function wt({onBack:e}){let{settings:t,updateSettings:n}=W($),[r,i]=K(`plan`),[a,o]=K(!1),[s,c]=K(0),l=t.subagentModels||{plan:null,explore:null,generalPurpose:null},u=[{id:`plan`,title:`Plan Agent`,description:`The agent responsible for creating implementation plans.`},{id:`explore`,title:`Explore Agent`,description:`The agent specialized for exploring codebases.`},{id:`generalPurpose`,title:`General-purpose Agent`,description:`The agent used for general multi-step tasks.`}],d=[{label:`Default (Inherited)`,value:null},{label:`sonnet`,value:`sonnet`},{label:`haiku`,value:`haiku`},{label:`opus`,value:`opus`},{label:`sonnet[1m]`,value:`sonnet[1m]`}];return H((t,f)=>{if(a){if(f.escape)o(!1);else if(f.upArrow)c(e=>e>0?e-1:d.length-1);else if(f.downArrow)c(e=>e<d.length-1?e+1:0);else if(f.return){let e=d[s].value;n(t=>{t.subagentModels||={plan:null,explore:null,generalPurpose:null},t.subagentModels[r]=e}),o(!1)}}else if(f.escape)e();else if(f.upArrow){let e=u.findIndex(e=>e.id===r);i(u[e>0?e-1:u.length-1].id)}else if(f.downArrow){let e=u.findIndex(e=>e.id===r);i(u[e<u.length-1?e+1:0].id)}else if(t===` `||f.return){let e=l[r],t=d.findIndex(t=>t.value===e);c(t>=0?t:0),o(!0)}}),a?Y(B,{flexDirection:`column`,children:[J(B,{marginBottom:1,children:Y(X,{children:[`Select Model for`,` `,u.find(e=>e.id===r)?.title]})}),d.map((e,t)=>{let n=t===s;return J(B,{children:Y(V,{color:n?`cyan`:void 0,children:[n?`❯ `:` `,e.label,e.value?Y(V,{dimColor:!0,children:[` (`,e.value,`)`]}):null]})},t)})]}):Y(B,{flexDirection:`column`,children:[J(B,{marginBottom:1,children:J(X,{children:`Subagent Model Settings`})}),J(B,{marginBottom:1,children:J(V,{dimColor:!0,children:`Configure which Claude model each subagent uses. Use arrow keys to navigate, enter or space to change a model, and escape to go back.`})}),u.map(e=>{let t=e.id===r,n=l[e.id],i=d.find(e=>e.value===n)?.label||n||`Default`;return Y(B,{flexDirection:`column`,marginBottom:1,children:[J(B,{children:Y(V,{color:t?`cyan`:void 0,children:[t?`❯ `:` `,J(V,{bold:!0,children:e.title})]})}),J(B,{marginLeft:4,children:J(V,{dimColor:!0,children:e.description})}),J(B,{marginLeft:4,children:Y(V,{children:[`Current: `,J(V,{color:`green`,children:i})]})})]},e.id)})]})}function Tt({onBack:e}){let{settings:t,updateSettings:n}=W($),r=t.claudeMdAltNames??[],[i,a]=K(0),[o,s]=K(!1),[c,l]=K(``),[u,d]=K(!1);return H((t,f)=>{if(o||u){f.return&&c.trim()?(u?(n(e=>{e.claudeMdAltNames||=[],e.claudeMdAltNames.push(c.trim())}),d(!1)):(n(e=>{e.claudeMdAltNames&&(e.claudeMdAltNames[i]=c.trim())}),s(!1)),l(``)):f.escape?(l(``),s(!1),d(!1)):f.backspace||f.delete?l(e=>e.slice(0,-1)):t&&l(e=>e+t);return}f.escape?e():f.upArrow?r.length>0&&a(e=>e>0?e-1:r.length-1):f.downArrow?r.length>0&&a(e=>e<r.length-1?e+1:0):t===`e`?r.length>0&&(l(r[i]),s(!0)):t===`d`?r.length>0&&(n(e=>{e.claudeMdAltNames&&=e.claudeMdAltNames.filter((e,t)=>t!==i)}),i>=r.length-1&&a(Math.max(0,r.length-2))):t===`n`?(d(!0),l(``)):f.ctrl&&t===`r`?(n(e=>{e.claudeMdAltNames=[...x.claudeMdAltNames??[]]}),a(0)):t===`u`||f.shift&&f.upArrow?r.length>1&&i>0&&(n(e=>{if(!e.claudeMdAltNames)return;let t=e.claudeMdAltNames;[t[i-1],t[i]]=[t[i],t[i-1]]}),a(e=>e-1)):(t===`j`||f.shift&&f.downArrow)&&r.length>1&&i<r.length-1&&(n(e=>{if(!e.claudeMdAltNames)return;let t=e.claudeMdAltNames;[t[i],t[i+1]]=[t[i+1],t[i]]}),a(e=>e+1))}),Y(B,{flexDirection:`column`,children:[Y(B,{marginBottom:1,flexDirection:`column`,children:[J(X,{children:`CLAUDE.md Alternative Names`}),Y(B,{flexDirection:`column`,children:[J(V,{dimColor:!0,children:`changes auto-saved`}),J(V,{dimColor:!0,children:`esc to go back`})]})]}),J(B,{marginBottom:1,flexDirection:`column`,children:J(V,{dimColor:!0,children:`When Claude Code looks for CLAUDE.md and doesn't find it, it will try these alternative filenames in order. This lets you use AGENTS.md (and other file names).`})}),J(B,{marginBottom:1,children:J(V,{dimColor:!0,children:`e to edit · d to delete · n to add new · u/j to move up/down · ctrl+r to reset`})}),Y(B,{flexDirection:`column`,children:[r.length===0?J(V,{children:`No alternative names configured. Press n to add one.`}):J(q,{children:(()=>{let e=Math.max(0,i-6),t=Math.min(r.length,e+12),n=Math.max(0,t-12),a=r.slice(n,t);return Y(q,{children:[n>0&&Y(V,{color:`gray`,dimColor:!0,children:[` `,`↑ `,n,` more above`]}),a.map((e,t)=>{let r=n+t,a=r===i;return Y(V,{color:a?`cyan`:void 0,children:[a?`❯ `:` `,e]},r)}),t<r.length&&Y(V,{color:`gray`,dimColor:!0,children:[` `,`↓ `,r.length-t,` more below`]})]})})()}),u&&Y(B,{alignItems:`center`,children:[J(V,{color:`yellow`,children:`❯ `}),J(B,{borderStyle:`round`,borderColor:`yellow`,children:J(V,{children:c})})]}),o&&Y(B,{marginTop:1,alignItems:`center`,children:[J(V,{children:`Editing: `}),J(B,{borderStyle:`round`,borderColor:`yellow`,children:J(V,{children:c})})]})]})]})}const $=ve({settings:x,updateSettings:e=>{},changesApplied:!1,ccVersion:``});function Et({startupCheckInfo:e,configMigrated:t,invocationCommand:r,initialConfig:a}){let[o,s]=K(a),[c,l]=K(!a.hidePiebaldAnnouncement),u=ye(e=>{let t=JSON.parse(JSON.stringify(o.settings));e(t),s(e=>({...e,settings:t,changesApplied:!1})),M(e=>{e.settings=t,e.changesApplied=!1})},[o.settings]),[d,p]=K(null),[m,h]=K(null);G(()=>{e.wasUpdated&&e.oldVersion&&(h({message:`Your Claude Code installation was updated from ${e.oldVersion} to ${e.newVersion}, and the patching was likely overwritten
3
3
  (However, your customization are still remembered in ${P}.)
4
4
 
5
5
  Please reapply your changes by running \`${r} --apply\`.`,type:`warning`}),u(()=>{}))},[]),H((e,t)=>{t.ctrl&&e===`c`&&process.exit(0),(e===`q`||t.escape)&&!d&&process.exit(0),e===`h`&&!d&&c&&(l(!1),M(e=>{e.hidePiebaldAnnouncement=!0}))},{isActive:!d});let g=t=>{switch(h(null),t){case Z.THEMES:case Z.THINKING_VERBS:case Z.THINKING_STYLE:case Z.USER_MESSAGE_DISPLAY:case Z.INPUT_PATTERN_HIGHLIGHTERS:case Z.MISC:case Z.TOOLSETS:case Z.SUBAGENT_MODELS:case Z.CLAUDE_MD_ALT_NAMES:p(t);break;case Z.VIEW_SYSTEM_PROMPTS:n(C);break;case Z.RESTORE_ORIGINAL:e.ccInstInfo&&(e.ccInstInfo.nativeInstallationPath?i(e.ccInstInfo):v(e.ccInstInfo)).then(()=>{h({message:`Original Claude Code restored successfully!`,type:`success`}),u(()=>{})});break;case Z.OPEN_CONFIG:f(P);break;case Z.OPEN_CLI:e.ccInstInfo?.cliPath&&f(e.ccInstInfo.cliPath);break;case Z.EXIT:process.exit(0)}},_=()=>{p(null)};return J($.Provider,{value:{settings:o.settings,updateSettings:u,changesApplied:o.changesApplied,ccVersion:e.ccInstInfo?.version||``},children:J(B,{flexDirection:`column`,children:d===null?J(Ve,{onSubmit:g,notification:m,configMigrated:t,showPiebaldAnnouncement:c,changesApplied:o.changesApplied,invocationCommand:r}):d===Z.THEMES?J(nt,{onBack:_}):d===Z.THINKING_VERBS?J(rt,{onBack:_}):d===Z.THINKING_STYLE?J(ct,{onBack:_}):d===Z.USER_MESSAGE_DISPLAY?J(ft,{onBack:_}):d===Z.INPUT_PATTERN_HIGHLIGHTERS?J(_t,{onBack:_}):d===Z.MISC?J(bt,{onSubmit:_}):d===Z.TOOLSETS?J(Ct,{onBack:_}):d===Z.SUBAGENT_MODELS?J(wt,{onBack:_}):d===Z.CLAUDE_MD_ALT_NAMES?J(Tt,{onBack:_}):null})})}async function Dt(e,t){let n=t??await T(),r=await L(n,e);if(!r)return{startupCheckInfo:null,pendingCandidates:null,config:n};let i=z(r);return i?{startupCheckInfo:null,pendingCandidates:i,config:n}:{startupCheckInfo:await Ot(n,r),pendingCandidates:null,config:n}}async function Ot(e,t){if(!t)return null;if(t.version)try{c(await b(t.version))}catch{}let n=t.version,r=e.ccVersion,i=!1;await ee(ie)||(E(`startupCheck: ${ie} not found; backing up cli.js`),await a(t),i=!0);let o=!1;return t.nativeInstallationPath&&!await ee(k)&&(E(`startupCheck: ${k} not found; backing up native binary`),await _(t),o=!0),n===r?{wasUpdated:!1,oldVersion:null,newVersion:null,ccInstInfo:t}:(i||(E(`startupCheck: real version (${n}) != backed up version (${r}); backing up cli.js`),await Te.unlink(ie),await a(t)),t.nativeInstallationPath&&!o&&(E(`startupCheck: real version (${n}) != backed up version (${r}); backing up native binary`),await ee(k)&&await Te.unlink(k),await _(t)),{wasUpdated:!0,oldVersion:r,newVersion:n,ccInstInfo:t})}let kt;async function At(){if(kt!==void 0)return kt;try{return kt=(await import(`oxfmt`)).format,kt}catch(e){return E(`Failed to load oxfmt:`,e),kt=null,null}}async function jt(e,t,n){let r=await At();if(!r)return E(`oxfmt unavailable, skipping format+diff`),null;let i=n?.contextLines??10,a=n?.printWidth??80,o=performance.now(),[s,c]=await Promise.all([r(`original.js`,e,{printWidth:a}),r(`modified.js`,t,{printWidth:a})]),l=performance.now();if(s.errors.length>0||c.errors.length>0)return E(`oxfmt format errors:`,`original:`,s.errors,`modified:`,c.errors),null;let u=Ee(`original.js`,`modified.js`,s.code,c.code,``,``,{context:i}),d=performance.now();return{hunks:u.hunks,changeCount:u.hunks.length,formattedLines:s.code.split(`
@@ -1 +1 @@
1
- import{B as e,D as t,F as n,I as r,L as i,N as a,P as o,R as s,V as c,a as l,c as u,m as d,r as f,s as p,z as m}from"../config-Ca33xREd.mjs";import{a as h,i as g,n as _,r as v,t as y}from"../content-C_V64yep.mjs";import*as b from"node:fs/promises";import*as x from"node:path";async function S(e,t){let n=x.dirname(t);await b.mkdir(n,{recursive:!0}),await b.copyFile(e,t)}async function C(e,n){if(!await d(e))throw Error(`Backup file does not exist: ${e}`);await t(n,await b.readFile(e),`restore`)}function w(){return p()}function T(){return f}function E(){return l}async function D(){return await u()}const O={findChalkVar:n,getModuleLoaderFunction:i,getReactVar:s,getRequireFuncName:m,findTextComponent:r,findBoxComponent:o,clearCaches:a,globalReplace:e,showDiff:c};export{S as backupFile,v as findAllInstallations,w as getTweakccConfigDir,T as getTweakccConfigPath,E as getTweakccSystemPromptsDir,O as helpers,y as readContent,D as readTweakccConfig,C as restoreBackup,g as showInteractiveInstallationPicker,h as tryDetectInstallation,_ as writeContent};
1
+ import{B as e,D as t,F as n,I as r,L as i,N as a,P as o,R as s,V as c,a as l,c as u,m as d,r as f,s as p,z as m}from"../config-5W52dXMg.mjs";import{a as h,i as g,n as _,r as v,t as y}from"../content-vIySXZ_y.mjs";import*as b from"node:fs/promises";import*as x from"node:path";async function S(e,t){let n=x.dirname(t);await b.mkdir(n,{recursive:!0}),await b.copyFile(e,t)}async function C(e,n){if(!await d(e))throw Error(`Backup file does not exist: ${e}`);await t(n,await b.readFile(e),`restore`)}function w(){return p()}function T(){return f}function E(){return l}async function D(){return await u()}const O={findChalkVar:n,getModuleLoaderFunction:i,getReactVar:s,getRequireFuncName:m,findTextComponent:r,findBoxComponent:o,clearCaches:a,globalReplace:e,showDiff:c};export{S as backupFile,v as findAllInstallations,w as getTweakccConfigDir,T as getTweakccConfigPath,E as getTweakccSystemPromptsDir,O as helpers,y as readContent,D as readTweakccConfig,C as restoreBackup,g as showInteractiveInstallationPicker,h as tryDetectInstallation,_ as writeContent};
@@ -1,4 +1,4 @@
1
- import{S as e,f as t}from"./config-Ca33xREd.mjs";import n from"node:os";import r from"node:fs";import i from"node:path";import{execFileSync as a,execSync as o}from"node:child_process";import s from"node-lief";function c(e){try{if(r.statSync(e).size>2e5)return null;s.logging.disable();let n=s.parse(e);if(!n.symbols().some(e=>{let t=e.name;return t===`execv`||t===`_execv`}))return t(`resolveNixBinaryWrapper: no execv import found, not a Nix wrapper`),null;t(`resolveNixBinaryWrapper: execv import found, checking for Nix wrapper DOCSTRING`);let i=null;if(n.format===`ELF`){let e=n.sections().find(e=>e.name===`.rodata`);e&&(i=e.content)}else if(n.format===`MachO`){let e=n.getSegment(`__TEXT`);if(e){let t=e.getSection(`__cstring`);t&&(i=t.content)}}if(!i||i.length===0)return t(`resolveNixBinaryWrapper: could not read string section`),null;let a=i.toString(`utf-8`),o=a.match(/makeCWrapper\s+'(\/nix\/store\/[^']+)'/);if(o){let e=o[1];return t(`resolveNixBinaryWrapper: found wrapped executable via DOCSTRING: ${e}`),e}let c=a.match(/makeCWrapper\s+(\/nix\/store\/\S+)/);if(c){let e=c[1];return t(`resolveNixBinaryWrapper: found wrapped executable via unquoted DOCSTRING: ${e}`),e}let l=a.match(/\/nix\/store\/[^\0\n\r]+/g);if(l){for(let e of l)if(e.includes(`/bin/`))return t(`resolveNixBinaryWrapper: found wrapped executable via /bin/ heuristic: ${e}`),e}return t(`resolveNixBinaryWrapper: has execv but no Nix store paths found`),null}catch(e){return t(`resolveNixBinaryWrapper: error during detection:`,e),null}}const l=Buffer.from(`
1
+ import{S as e,f as t}from"./config-5W52dXMg.mjs";import n from"node:os";import r from"node:fs";import i from"node:path";import{execFileSync as a,execSync as o}from"node:child_process";import s from"node-lief";function c(e){try{if(r.statSync(e).size>2e5)return null;s.logging.disable();let n=s.parse(e);if(!n.symbols().some(e=>{let t=e.name;return t===`execv`||t===`_execv`}))return t(`resolveNixBinaryWrapper: no execv import found, not a Nix wrapper`),null;t(`resolveNixBinaryWrapper: execv import found, checking for Nix wrapper DOCSTRING`);let i=null;if(n.format===`ELF`){let e=n.sections().find(e=>e.name===`.rodata`);e&&(i=e.content)}else if(n.format===`MachO`){let e=n.getSegment(`__TEXT`);if(e){let t=e.getSection(`__cstring`);t&&(i=t.content)}}if(!i||i.length===0)return t(`resolveNixBinaryWrapper: could not read string section`),null;let a=i.toString(`utf-8`),o=a.match(/makeCWrapper\s+'(\/nix\/store\/[^']+)'/);if(o){let e=o[1];return t(`resolveNixBinaryWrapper: found wrapped executable via DOCSTRING: ${e}`),e}let c=a.match(/makeCWrapper\s+(\/nix\/store\/\S+)/);if(c){let e=c[1];return t(`resolveNixBinaryWrapper: found wrapped executable via unquoted DOCSTRING: ${e}`),e}let l=a.match(/\/nix\/store\/[^\0\n\r]+/g);if(l){for(let e of l)if(e.includes(`/bin/`))return t(`resolveNixBinaryWrapper: found wrapped executable via /bin/ heuristic: ${e}`),e}return t(`resolveNixBinaryWrapper: has execv but no Nix store paths found`),null}catch(e){return t(`resolveNixBinaryWrapper: error during detection:`,e),null}}const l=Buffer.from(`
2
2
  ---- Bun! ----
3
3
  `);function u(e,t){return e.subarray(t.offset,t.offset+t.length)}function d(e,t){return{offset:e.readUInt32LE(t),length:e.readUInt32LE(t+4)}}function f(e){return e.endsWith(`/claude`)||e===`claude`||e.endsWith(`/claude.exe`)||e===`claude.exe`||e.endsWith(`/src/entrypoints/cli.js`)||e===`src/entrypoints/cli.js`}function p(e){let n=e%52==0,r=e%36==0;return n&&!r?52:r&&!n?36:n&&r?(t(`detectModuleStructSize: Ambiguous module list length ${e}, assuming new format`),52):(t(`detectModuleStructSize: Module list length ${e} doesn't cleanly divide by either struct size, assuming new format`),52)}function m(e,t,n,r){let i=u(e,t.modulesPtr),a=Math.floor(i.length/n);for(let t=0;t<a;t++){let a=g(i,t*n,n),o=r(a,u(e,a.name).toString(`utf-8`),t);if(o!==void 0)return o}}function h(e){let t=0,n=e.readBigUInt64LE(t);t+=8;let r=d(e,t);t+=8;let i=e.readUInt32LE(t);t+=4;let a=d(e,t);return t+=8,{byteCount:n,modulesPtr:r,entryPointId:i,compileExecArgvPtr:a,flags:e.readUInt32LE(t)}}function g(e,t,n){let r=t,i=d(e,r);r+=8;let a=d(e,r);r+=8;let o=d(e,r);r+=8;let s=d(e,r);r+=8;let c,l;n===52?(c=d(e,r),r+=8,l=d(e,r),r+=8):(c={offset:0,length:0},l={offset:0,length:0});let u=e.readUInt8(r);r+=1;let f=e.readUInt8(r);r+=1;let p=e.readUInt8(r);r+=1;let m=e.readUInt8(r);return{name:i,contents:a,sourcemap:o,bytecode:s,moduleInfo:c,bytecodeOriginPath:l,encoding:u,loader:f,moduleFormat:p,side:m}}function _(e){if(e.length<32+l.length)throw Error(`BUN data is too small to contain trailer and offsets`);let n=e.length-l.length,r=e.subarray(n);if(t(`parseBunDataBlob: Expected trailer: ${l.toString(`hex`)}`),t(`parseBunDataBlob: Got trailer: ${r.toString(`hex`)}`),!r.equals(l))throw t(`Expected: ${l.toString(`hex`)}`),t(`Got: ${r.toString(`hex`)}`),Error(`BUN trailer bytes do not match trailer`);let i=e.length-32-l.length,a=h(e.subarray(i,i+32));return{bunOffsets:a,bunData:e,moduleStructSize:p(a.modulesPtr.length)}}function v(e){if(e.length<4)throw Error(`Section data too small`);t(`extractBunDataFromSection: sectionData.length=${e.length}`);let n=e.readUInt32LE(0),r=4+n,i=e.length>=8?Number(e.readBigUInt64LE(0)):0,a=8+i;t(`extractBunDataFromSection: u32 header would give size=${n}, expected total=${r}`),t(`extractBunDataFromSection: u64 header would give size=${i}, expected total=${a}`);let o,s;if(e.length>=8&&a<=e.length&&a>=e.length-4096)o=8,s=i,t(`extractBunDataFromSection: detected u64 header format (Bun >= 1.3.4)`);else if(r<=e.length&&r>=e.length-4096)o=4,s=n,t(`extractBunDataFromSection: detected u32 header format (Bun < 1.3.4)`);else throw Error(`Cannot determine section header format: sectionData.length=${e.length}, u64 would expect ${a}, u32 would expect ${r}`);t(`extractBunDataFromSection: bunDataSize from header=${s}`);let c=e.subarray(o,o+s);t(`extractBunDataFromSection: bunDataContent.length=${c.length}`);let{bunOffsets:l,bunData:u,moduleStructSize:d}=_(c);return{bunOffsets:l,bunData:u,sectionHeaderSize:o,moduleStructSize:d}}function y(e){try{let n=e.getSection(`.bun`);if(!n)return t(`extractBunDataFromELFSection: .bun section not found`),null;let r=n.content;if(r.length<8)return t(`extractBunDataFromELFSection: .bun section too small`),null;t(`extractBunDataFromELFSection: .bun section found, size=${r.length}`);let i=v(r);return t(`extractBunDataFromELFSection: successfully extracted data`),i}catch(e){return t(`extractBunDataFromELFSection: failed to extract:`,e),null}}function b(e){if(!e.hasOverlay)throw Error(`ELF binary has no overlay data`);let n=e.overlay;if(t(`extractBunDataFromELFOverlay: Overlay size=${n.length} bytes`),n.length<l.length+8+32)throw Error(`ELF overlay data is too small`);let r=n.readBigUInt64LE(n.length-8);if(t(`extractBunDataFromELFOverlay: Total byte count from tail=${r}`),r<4096n||r>2n**32n-1n)throw Error(`ELF total byte count is out of range: ${r}`);let i=n.length-8-l.length,a=n.subarray(i,n.length-8);if(t(`extractBunDataFromELFOverlay: Expected trailer: ${l.toString(`hex`)}`),t(`extractBunDataFromELFOverlay: Got trailer: ${a.toString(`hex`)}`),!a.equals(l))throw Error(`BUN trailer bytes do not match trailer`);let o=n.length-8-l.length-32,s=n.subarray(o,n.length-8-l.length),c=h(s);t(`extractBunDataFromELFOverlay: Offsets.byteCount=${c.byteCount}`);let u=typeof c.byteCount==`bigint`?c.byteCount:BigInt(c.byteCount);if(u>=r)throw Error(`ELF total byte count is out of range`);let d=8+l.length+32,f=n.length-d-Number(u),m=n.subarray(f,n.length-d);return t(`extractBunDataFromELFOverlay: Extracted ${m.length} bytes of data`),{bunOffsets:c,bunData:Buffer.concat([m,s,a]),moduleStructSize:p(c.modulesPtr.length)}}function x(e){let t=e.getSegment(`__BUN`);if(!t)throw Error(`__BUN segment not found`);let n=t.getSection(`__bun`);if(!n)throw Error(`__bun section not found`);return v(n.content)}function S(e){let t=e.sections().find(e=>e.name===`.bun`);if(!t)throw Error(`.bun section not found`);return v(t.content)}function C(e){switch(t(`getBunData: Binary format detected as ${e.format}`),e.format){case`MachO`:return x(e);case`PE`:return S(e);case`ELF`:{let n=e,r=y(n);return r?(t(`getBunData: Using new ELF .bun section format`),r):(t(`getBunData: Falling back to legacy ELF overlay format`),b(n))}default:{let t=e;throw Error(`Unsupported binary format: ${t.format}`)}}}function w(e){let o=r.mkdtempSync(i.join(n.tmpdir(),`tweakcc-npm-`));try{t(`fetchNpmSource: Downloading @anthropic-ai/claude-code@${e}`),a(`npm`,[`pack`,`@anthropic-ai/claude-code@${e}`,`--pack-destination`,o],{stdio:`pipe`,timeout:3e4,cwd:o});let n=r.readdirSync(o).find(e=>e.endsWith(`.tgz`));if(!n)return t(`fetchNpmSource: No .tgz file found after npm pack`),null;a(`tar`,[`xzf`,i.join(o,n),`package/cli.js`],{stdio:`pipe`,timeout:3e4,cwd:o});let s=i.join(o,`package`,`cli.js`);if(!r.existsSync(s))return t(`fetchNpmSource: cli.js not found in extracted package`),null;let c=r.readFileSync(s);return t(`fetchNpmSource: Got cli.js, ${c.length} bytes`),c}catch(e){return t(`fetchNpmSource: Failed to fetch npm source:`,e),null}finally{try{r.rmSync(o,{recursive:!0,force:!0})}catch{}}}function T(e,n){try{s.logging.disable();let{bunOffsets:r,bunData:i,moduleStructSize:a}=C(s.parse(e));t(`extractClaudeJsFromNativeInstallation: Got bunData, size=${i.length} bytes, moduleStructSize=${a}`);let o=m(i,r,a,(e,n,r)=>{if(t(`extractClaudeJsFromNativeInstallation: Module ${r}: ${n}`),!f(n))return;let a=u(i,e.contents);return t(`extractClaudeJsFromNativeInstallation: Found claude module, contents length=${a.length}`),a.length>0?a:void 0});if(o){if(o.subarray(0,30).toString(`utf8`).startsWith(`// @bun @bytecode`))if(t(`extractClaudeJsFromNativeInstallation: Extracted content is Bun bytecode — falling back to npm source`),n){let e=w(n);if(e)return t(`extractClaudeJsFromNativeInstallation: Using npm source (${e.length} bytes) instead of bytecode`),{data:e,clearBytecode:!0};t(`extractClaudeJsFromNativeInstallation: npm source fetch failed, returning bytecode content as-is`)}else t(`extractClaudeJsFromNativeInstallation: No version provided, cannot fetch npm source`);return{data:o,clearBytecode:!1}}return t(`extractClaudeJsFromNativeInstallation: claude module not found in any module`),{data:null,clearBytecode:!1}}catch(e){return t(`extractClaudeJsFromNativeInstallation: Error during extraction:`,e),{data:null,clearBytecode:!1}}}function E(e,t,n,r,i){let a=[],o=[];m(e,t,r,(t,s)=>{let c=u(e,t.name),l,d;n&&f(s)?(l=n,d=i?Buffer.alloc(0):u(e,t.bytecode)):(l=u(e,t.contents),d=u(e,t.bytecode));let p=u(e,t.sourcemap),m=u(e,t.moduleInfo),h=u(e,t.bytecodeOriginPath);o.push({name:c,contents:l,sourcemap:p,bytecode:d,moduleInfo:m,bytecodeOriginPath:h,encoding:t.encoding,loader:t.loader,moduleFormat:t.moduleFormat,side:t.side}),r===52?a.push(c,l,p,d,m,h):a.push(c,l,p,d)});let s=r===52?6:4,c=0,d=[];for(let e of a)d.push({offset:c,length:e.length}),c+=e.length+1;let p=c,h=o.length*r;c+=h;let g=u(e,t.compileExecArgvPtr),_=c,v=g.length;c+=v+1;let y=c;c+=32;let b=c;c+=l.length;let x=Buffer.allocUnsafe(c);x.fill(0);let S=0;for(let{offset:e,length:t}of d)t>0&&a[S].copy(x,e,0,t),x[e+t]=0,S++;v>0&&(g.copy(x,_,0,v),x[_+v]=0);for(let e=0;e<o.length;e++){let t=o[e],n=e*s,i={name:d[n],contents:d[n+1],sourcemap:d[n+2],bytecode:d[n+3],moduleInfo:r===52?d[n+4]:{offset:0,length:0},bytecodeOriginPath:r===52?d[n+5]:{offset:0,length:0},encoding:t.encoding,loader:t.loader,moduleFormat:t.moduleFormat,side:t.side},a=p+e*r;x.writeUInt32LE(i.name.offset,a),x.writeUInt32LE(i.name.length,a+4),a+=8,x.writeUInt32LE(i.contents.offset,a),x.writeUInt32LE(i.contents.length,a+4),a+=8,x.writeUInt32LE(i.sourcemap.offset,a),x.writeUInt32LE(i.sourcemap.length,a+4),a+=8,x.writeUInt32LE(i.bytecode.offset,a),x.writeUInt32LE(i.bytecode.length,a+4),a+=8,r===52&&(x.writeUInt32LE(i.moduleInfo.offset,a),x.writeUInt32LE(i.moduleInfo.length,a+4),a+=8,x.writeUInt32LE(i.bytecodeOriginPath.offset,a),x.writeUInt32LE(i.bytecodeOriginPath.length,a+4),a+=8),x.writeUInt8(i.encoding,a),x.writeUInt8(i.loader,a+1),x.writeUInt8(i.moduleFormat,a+2),x.writeUInt8(i.side,a+3)}let C={byteCount:y,modulesPtr:{offset:p,length:h},entryPointId:t.entryPointId,compileExecArgvPtr:{offset:_,length:v},flags:t.flags},w=y,T=typeof C.byteCount==`bigint`?C.byteCount:BigInt(C.byteCount);return x.writeBigUInt64LE(T,w),w+=8,x.writeUInt32LE(C.modulesPtr.offset,w),x.writeUInt32LE(C.modulesPtr.length,w+4),w+=8,x.writeUInt32LE(C.entryPointId,w),w+=4,x.writeUInt32LE(C.compileExecArgvPtr.offset,w),x.writeUInt32LE(C.compileExecArgvPtr.length,w+4),w+=8,x.writeUInt32LE(C.flags,w),l.copy(x,b),x}function D(e,t,n,i=!0){let a=t+`.tmp`;if(e.write(a),i){let e=r.statSync(n);r.chmodSync(a,e.mode)}try{r.renameSync(a,t)}catch(e){try{r.existsSync(a)&&r.unlinkSync(a)}catch{}throw e instanceof Error&&`code`in e&&(e.code===`ETXTBSY`||e.code===`EBUSY`||e.code===`EPERM`)?Error(`Cannot update the Claude executable while it is running.
4
4
  Please close all Claude instances and try again.`):e}}function O(e,t=8){let n=Buffer.allocUnsafe(t+e.length);return t===8?n.writeBigUInt64LE(BigInt(e.length),0):n.writeUInt32LE(e.length,0),e.copy(n,t),n}function k(n,r,i,a,c){try{t(`repackMachO: Has code signature: ${n.hasCodeSignature}`),n.hasCodeSignature&&(t(`repackMachO: Removing code signature...`),n.removeSignature());let l=n.getSegment(`__BUN`);if(!l)throw Error(`__BUN segment not found`);let u=l.getSection(`__bun`);if(!u)throw Error(`__bun section not found`);let d=O(i,c);t(`repackMachO: Original section size: ${u.size}`),t(`repackMachO: Original segment fileSize: ${l.fileSize}`),t(`repackMachO: Original segment virtualSize: ${l.virtualSize}`),t(`repackMachO: New data size: ${d.length}`),t(`repackMachO: Using header size: ${c}`);let f=d.length-Number(u.size);if(f>0){let e=n.header.cpuType===s.MachO.Header.CPU_TYPE.ARM64,r=e?16384:4096,i=Math.ceil(f/r)*r;t(`repackMachO: CPU type: ${e?`ARM64`:`x86_64`}`),t(`repackMachO: Page size: ${r} bytes`),t(`repackMachO: Need to expand by ${f} bytes`),t(`repackMachO: Rounding up to page-aligned: ${i} bytes`);let a=n.extendSegment(l,i);if(t(`repackMachO: extendSegment returned: ${a}`),!a)throw Error(`Failed to extend __BUN segment`);t(`repackMachO: Section size after extend: ${u.size}`),t(`repackMachO: Segment fileSize after extend: ${l.fileSize}`),t(`repackMachO: Segment virtualSize after extend: ${l.virtualSize}`)}u.content=d,u.size=BigInt(d.length),t(`repackMachO: Final section size: ${u.size}`),t(`repackMachO: Writing modified binary to ${a}...`),D(n,a,r);try{t(`repackMachO: Re-signing binary with ad-hoc signature...`),o(`codesign -s - -f "${a}"`,{stdio:e()?`inherit`:`ignore`}),t(`repackMachO: Code signing completed successfully`)}catch(e){console.warn(`Warning: Failed to re-sign binary. The binary may not run correctly on macOS:`,e)}t(`repackMachO: Write completed successfully`)}catch(e){throw console.error(`repackMachO failed:`,e),e}}function A(e,n,r,i,a){try{let o=e.sections().find(e=>e.name===`.bun`);if(!o)throw Error(`.bun section not found`);let s=O(r,a);t(`repackPE: Original section size: ${o.size}, virtual size: ${o.virtualSize}`),t(`repackPE: New data size: ${s.length}`),t(`repackPE: Using header size: ${a}`),o.content=s,o.virtualSize=BigInt(s.length),o.size=BigInt(s.length),t(`repackPE: Writing modified binary to ${i}...`),D(e,i,n,!1),t(`repackPE: Write completed successfully`)}catch(e){throw console.error(`repackPE failed:`,e),e}}const j=16384;function M(e,n,r,i,a){try{let o=e.getSection(`.bun`);if(!o)throw Error(`.bun section not found`);let s=O(r,a);t(`repackELFSection: Original section size: ${o.size}`),t(`repackELFSection: New section data size: ${s.length}`);let c=o.virtualAddress,l=e.segments(),u=l.find(e=>e.type===`LOAD`&&e.flags===4&&e.virtualAddress===c);if(!u)throw Error(`.bun PT_LOAD segment not found (looking for LOAD with vaddr=0x${c.toString(16)})`);t(`repackELFSection: Found .bun segment: vaddr=0x${u.virtualAddress.toString(16)}, filesz=0x${u.fileSize.toString(16)}, memsz=0x${u.virtualSize.toString(16)}`);let d=Buffer.alloc(8);d.writeBigUInt64LE(c);let f=null,p=l.find(e=>e.type===`LOAD`&&(e.flags&2)!=0);if(p){let e=p.content,n=Number(p.virtualAddress),r=Math.ceil(n/j)*j;for(let i=r;i<n+e.length-8;i+=j){let r=i-n;if(e.subarray(r,r+8).equals(d)){f=BigInt(i),t(`repackELFSection: BUN_COMPILED at vaddr 0x${f.toString(16)} (offset ${r} in RW segment)`);break}}}if(f===null)throw Error(`Could not find original BUN_COMPILED location in binary`);o.content=s;let m=Number(u.alignment),h=BigInt(Math.ceil(s.length/m)*m);u.fileSize=h,u.virtualSize=h,t(`repackELFSection: Updated segment: filesz=0x${u.fileSize.toString(16)}, memsz=0x${u.virtualSize.toString(16)}`);let g=Buffer.alloc(8);g.writeBigUInt64LE(c),e.patchAddress(f,g),t(`repackELFSection: Patched BUN_COMPILED at vaddr 0x${f.toString(16)} -> 0x${c.toString(16)}`),D(e,i,n),t(`repackELFSection: Write completed successfully`)}catch(e){throw console.error(`repackELFSection failed:`,e),e}}function N(e,n,r,i){try{let a=Buffer.allocUnsafe(r.length+8);r.copy(a,0),a.writeBigUInt64LE(BigInt(r.length),r.length),t(`repackELFOverlay: Setting overlay data (${a.length} bytes)`),e.overlay=a,t(`repackELFOverlay: Writing modified binary to ${i}...`),D(e,i,n),t(`repackELFOverlay: Write completed successfully`)}catch(e){throw console.error(`repackELFOverlay failed:`,e),e}}function P(e,t,n,r){s.logging.disable();let i=s.parse(e),{bunOffsets:a,bunData:o,sectionHeaderSize:c,moduleStructSize:l}=C(i),u=E(o,a,t,l,r);switch(i.format){case`MachO`:if(!c)throw Error(`sectionHeaderSize is required for Mach-O binaries`);k(i,e,u,n,c);break;case`PE`:if(!c)throw Error(`sectionHeaderSize is required for PE binaries`);A(i,e,u,n,c);break;case`ELF`:c?M(i,e,u,n,c):N(i,e,u,n);break;default:{let e=i;throw Error(`Unsupported binary format: ${e.format}`)}}}export{T as extractClaudeJsFromNativeInstallation,P as repackNativeInstallation,c as resolveNixBinaryWrapper};
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "tweakcc-fixed",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "type": "module",
5
- "description": "Temporary fork of tweakcc with pending upstream fixes cherry-picked and additional patches for Claude Code 2.1.113+ compatibility.",
5
+ "description": "Temporary fork of tweakcc with pending upstream fixes cherry-picked and additional patches for Claude Code 2.1.128+ compatibility.",
6
6
  "main": "dist/lib/index.mjs",
7
7
  "types": "dist/lib/index.d.ts",
8
8
  "bin": {