tweakcc-fixed 2.8.43 → 2.8.45

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.
@@ -1,4 +1,4 @@
1
- import{createRequire as e}from"node:module";import t from"chalk";import*as n from"node:os";import r,{EOL as i}from"node:os";import*as a from"node:fs/promises";import o from"node:fs/promises";import*as s from"node:fs";import c,{createReadStream as l}from"node:fs";import*as u from"node:path";import d from"node:path";import*as f from"fs";import*as p from"path";import*as m from"os";import*as h from"child_process";import*as g from"crypto";import{execFile as _,spawnSync as v}from"node:child_process";import y from"gray-matter";import*as b from"node:crypto";import{randomUUID as x}from"node:crypto";import{fileURLToPath as S}from"node:url";import{Worker as C}from"node:worker_threads";import{diffWordsWithSpace as w}from"diff";const T=e(import.meta.url),E=(()=>{try{return T(`../package.json`)}catch{return T(`../../package.json`)}})(),D=E.version,O=E.supportedClaudeCode;let k=null;async function A(){if(k!==null)return k;try{return await import(`node-lief`),k=await import(`./nativeInstallation-Cx30DyG3.mjs`),k}catch(e){return J(`Error loading native installation module: ${e instanceof Error?e.message:String(e)}`),e instanceof Error&&J(e),null}}async function j(e,t){let n=await A();return n?n.extractClaudeJsFromNativeInstallation(e,t):{data:null,clearBytecode:!1,error:`node-lief native module unavailable on this platform/runtime (cannot extract from native installs)`}}async function M(e,t,n,r){let i=await A();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 N(e){let t=await A();return t?t.resolveNixBinaryWrapper(e):null}const ee=[{id:`routine`,label:`Routine`,effort:`low`,help:`The requested result and method are already clear. The remaining work needs little inference; correctness is readily checked against supplied facts or an established procedure. Further investigation is unnecessary.`},{id:`standard`,label:`Standard`,effort:`medium`,help:`The normal working budget for substantive day-to-day work. Some judgment, information gathering and validation are needed, but ordinary investigation and checks can complete the requested scope. A task need not be trivial or fully specified to fit this level.`},{id:`hard`,label:`Hard`,effort:`high`,help:`Additional independent judgment or verification is materially necessary. Interacting uncertainties or hidden failure modes warrant deeper investigation and cross-checking than ordinary work, even if the overall method is known. More effort is expected to improve correctness, not simply expand the scope.`},{id:`frontier`,label:`Frontier`,effort:`max`,help:`A demanding end-to-end handoff warrants the greatest independent judgment, persistence and extensive verification, with little user iteration to catch omissions. Substantial difficulty remains that high effort is unlikely to resolve adequately. Mere breadth or importance is insufficient; an explicit maximum-effort preference also qualifies.`}],te=`You are a difficulty router for an AI coding agent. Each turn you get a compact running SUMMARY of the session, a CONTEXT block (the model in use and the level you assigned last turn), the most recent exchange (the previous user message and the assistant reply), and the user NEW message. Do two things and output ONLY a JSON object with the keys level and summary - no prose, no code fence.
1
+ import{createRequire as e}from"node:module";import t from"chalk";import*as n from"node:os";import r,{EOL as i}from"node:os";import*as a from"node:fs/promises";import o from"node:fs/promises";import*as s from"node:fs";import c,{createReadStream as l}from"node:fs";import*as u from"node:path";import d from"node:path";import*as f from"fs";import*as p from"path";import*as m from"os";import*as h from"child_process";import*as g from"crypto";import{execFile as _,spawnSync as v}from"node:child_process";import y from"gray-matter";import*as b from"node:crypto";import{randomUUID as x}from"node:crypto";import{fileURLToPath as S}from"node:url";import{Worker as C}from"node:worker_threads";import{diffWordsWithSpace as w}from"diff";const T=e(import.meta.url),E=(()=>{try{return T(`../package.json`)}catch{return T(`../../package.json`)}})(),D=E.version,O=E.supportedClaudeCode;let k=null;async function A(){if(k!==null)return k;try{return await import(`node-lief`),k=await import(`./nativeInstallation-BXHAOH5s.mjs`),k}catch(e){return J(`Error loading native installation module: ${e instanceof Error?e.message:String(e)}`),e instanceof Error&&J(e),null}}async function j(e,t){let n=await A();return n?n.extractClaudeJsFromNativeInstallation(e,t):{data:null,clearBytecode:!1,error:`node-lief native module unavailable on this platform/runtime (cannot extract from native installs)`}}async function M(e,t,n,r){let i=await A();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 N(e){let t=await A();return t?t.resolveNixBinaryWrapper(e):null}const ee=[{id:`routine`,label:`Routine`,effort:`low`,help:`The requested result and method are already clear. The remaining work needs little inference; correctness is readily checked against supplied facts or an established procedure. Further investigation is unnecessary.`},{id:`standard`,label:`Standard`,effort:`medium`,help:`The normal working budget for substantive day-to-day work. Some judgment, information gathering and validation are needed, but ordinary investigation and checks can complete the requested scope. A task need not be trivial or fully specified to fit this level.`},{id:`hard`,label:`Hard`,effort:`high`,help:`Additional independent judgment or verification is materially necessary. Interacting uncertainties or hidden failure modes warrant deeper investigation and cross-checking than ordinary work, even if the overall method is known. More effort is expected to improve correctness, not simply expand the scope.`},{id:`frontier`,label:`Frontier`,effort:`max`,help:`A demanding end-to-end handoff warrants the greatest independent judgment, persistence and extensive verification, with little user iteration to catch omissions. Substantial difficulty remains that high effort is unlikely to resolve adequately. Mere breadth or importance is insufficient; an explicit maximum-effort preference also qualifies.`}],te=`You are a difficulty router for an AI coding agent. Each turn you get a compact running SUMMARY of the session, a CONTEXT block (the model in use and the level you assigned last turn), the most recent exchange (the previous user message and the assistant reply), and the user NEW message. Do two things and output ONLY a JSON object with the keys level and summary - no prose, no code fence.
2
2
 
3
3
  # level
4
4
  Pick the integer effort level (0 = least effort, {MAX} = most) for the NEW message, judged IN CONTEXT of the summary, the context block, and the recent exchange:
@@ -13,10 +13,10 @@ How to judge:
13
13
  - When unsure, do NOT default to the top. Default to the standard middle level and let clear signals push it up or down. The top level ({MAX}) is rare - reserve it for exactly what its description says, not for ordinary hard work.
14
14
 
15
15
  # summary
16
- Output an updated running summary - a terse TL;DR of the session in the fewest words that still capture what was done and how hard it has been. Fold the most recent exchange into the prior summary as one short line (what this turn did and its complexity), then compress: keep the task or goal, key decisions, files or systems touched, unresolved threads, and difficulty signals (errors, retries, large changes); mark resolved items resolved and drop anything that will not affect future routing. It is a routing aid, not documentation - favor brevity.`,P={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,chevronIdleThemeColor:null},misc:{showTweakccVersion:!0,showPatchesApplied:!0,expandThinkingBlocks:!0,enableConversationTitle:!0,hideStartupBanner:!1,hideCtrlGToEdit:!1,hideStartupClawd:!1,increaseFileReadLimit:!1,suppressLineNumbers:!1,suppressRateLimitOptions:!1,suppressRateLimitWarning:!1,sessionColor:!1,mcpConnectionNonBlocking:!0,mcpServerBatchSize:null,statuslineThrottleMs:null,statuslineUseFixedInterval:!1,tableFormat:`default`,enableSessionMemory:!0,enableDreamMode:!1,enableLeanMemoryTypes:!1,fixSummarizeFromHere:!0,fixRewindSummaryHeader:!0,enableRememberSkill:!1,tokenCountRounding:null,autoAcceptPlanMode:!1,allowBypassPermissionsInSudo:!1,suppressNativeInstallerWarning:!1,modelAtEffort:!0,filterScrollEscapeSequences:!1,enableWorktreeMode:!0,unlockResponsiveMode:!1,swapRipgrepForFff:!1,allowCustomAgentModels:!1,enableContextLimitOverride:!1,enableModelCustomizations:!0,enableVoiceMode:!1,enableVoiceConciseOutput:!0,enableChannelsMode:!1,maxEffortDefault:!1,autonomousOperationAllModels:!1,refusalFallbackModel:!1,refusalFallbackRoutes:{},refusalFallbackMaxReturns:1,outputStyleTurnReminder:!1,autoModeClassifierModel:`default`,suppressDeferredTools:!1,claudemdContextOncePerConversation:!1},toolsets:[],defaultToolset:null,acceptEditsToolset:null,planModeToolset:null,subagentModels:{plan:null,explore:null,generalPurpose:null},fablePlan:{enabled:!1,planModel:`fable`,execModel:`opus`,offerClearContextOnPlanAccept:!0},complexityRouter:{provider:`haiku`,jevModel:`jev-1.13.0`,jevTimeoutMs:2e3,contextBudgetBytes:24e3,summaryMaxChars:6e3,enabled:!1,pinPerTask:!0,messageCap:1e5,assistantCap:1e5,timeoutMs:15e3,systemPrompt:te,levels:ee},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`]},ne={name:`Unnamed Highlighter`,regex:``,regexFlags:`g`,format:`{MATCH}`,styling:[],foregroundColor:null,backgroundColor:null,enabled:!0},re={name:`Unnamed Toolset`,allowedTools:`*`},ie=P.themes[0],ae=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},oe=e=>{let t=e.match(/\{rows:([\w$]+),columns:[\w$]+\}=[\w$]+\(\),[\w$]+=[\w$]+\?[\w$]+:Math\.max\(1,Math\.min\(Math\.max\(6,Math\.floor\(\1\/2\)\),\1-3\)\)/);if(t&&t.index!==void 0){let n=t[1],r=`Math.floor(${n}/2)`,i=t.index+t[0].indexOf(r),a=i+r.length,o=e.slice(0,i)+n+e.slice(a);return V(e,o,n,i,a),o}let n=e.match(/\{rows:([\w$]+),columns:[\w$]+\}=[\w$]+\(\),([\w$]+)=Math\.floor\(\1\/2\)/);if(n&&n.index!==void 0){let t=n.index+n[0].indexOf(n[2]+`=Math.floor(`),r=n.index+n[0].length,i=`${n[2]}=${n[1]}`,a=e.slice(0,t)+i+e.slice(r);return V(e,a,i,t,r),a}let r=/Math\.max\(1,Math\.floor\(\(([\w$]+)-([\w$]+)\)\/([\w$]+)\)\)/g,i;for(;(i=r.exec(e))!==null;){let t=Math.max(0,i.index-250),n=e.slice(t,i.index);if(!n.includes(`"expanded"?3`)||!n.includes(`"compact"?1:2`))continue;let r=i.index,a=i.index+i[0].length,o=`Math.max(1,${i[1]}-${i[2]})`,s=e.slice(0,r)+o+e.slice(a);return V(e,s,o,r,a),s}return null},se=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 V(e,r,n,t.index,t.index+t[0].length),r},ce=e=>{if(!e.includes(`Math.min(6,Math.max(1,`))return J(`patch: showMoreItemsInSelectMenus: suggestions cap already removed in this CC build — no-op`),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 V(e,r,n,t.index,t.index+t[0].length),r},le=(e,t)=>{let n=ae(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);V(i,r,n,e.startIndex,e.endIndex),i=r}let a=oe(i);a?i=a:console.error(`patch: writeShowMoreItemsInSelectMenus: failed to find help menu height pattern`);let o=se(i);o?i=o:console.error(`patch: writeShowMoreItemsInSelectMenus: failed to find visibleCount pattern`);let s=ce(i);return s&&(i=s),i},ue=/([$\w]+)=(\["dark","light"(?:,"[\w-]+")*\]),([$\w]+)=\["auto",\.\.\.\1\]/;function de(e){let t=e.match(/default:return ([$\w]+)\}$/);if(!t)return null;let n={};for(let t of e.matchAll(/((?:case"[\w-]+":)+)return ([$\w]+);/g))for(let e of t[1].matchAll(/case"([\w-]+)":/g))n[e[1]]=t[2];return{byId:n,defaultVar:t[1]}}function fe(e,t){return t.byId[e]?t.byId[e]:/light/.test(e)&&t.byId.light?t.byId.light:t.defaultVar}function pe(e){let t=-1,n=-1,r=``,i=e.match(/switch\(([$\w]+)\)\{case"(?:light|dark)":[^}]*return [$\w]+;[^}]*default:return [$\w]+\}/),a=null;if(i&&i.index!=null)t=i.index,n=t+i[0].length,r=i[1],a=de(i[0]);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 o=-1,s=-1,c=``,l=e.match(/\[(?:\.\.\.\[\],)?(?:\{"?label"?:"(?:Dark|Light|Auto|Monochrome)[^"]*","?value"?:"[^"]+"\},?)+\]/);if(l&&l.index!==void 0)o=l.index,s=l.index+l[0].length;else{let t=[...e.matchAll(/([$\w]+)=\{label:"(?:Auto|Dark|Light|Monochrome)[^"]*",value:"[^"]+"\}/g)];if(t.length<2)return console.error(`patch: themes: failed to find objArrMatch`),null;let n=t.map(e=>e[1]).map(e=>e.replace(/\$/g,`\\$`)).join(`,`),r=RegExp(`\\[${n}((?:,\\.\\.\\.[^\\]]+)*)\\]`),i=e.match(r);if(!i||i.index===void 0)return console.error(`patch: themes: failed to find objArrMatch (new var-collected form)`),null;o=i.index,s=i.index+i[0].length,c=i[1]}let u=e.match(/(return|[$\w]+=)\{(?:"?(?:[$\w-]+)"?:"(?:Auto |Dark|Light|Monochrome)[^"]*",?)+\}/);(!u||u.index==null)&&J(`patch: themes: objMatch not found — colors will still apply, theme name map unchanged`);let d=e.match(ue);return d||J(`patch: themes: theme-id registry not found — custom theme ids will not validate`),{switchStatement:{startIndex:t,endIndex:n,identifiers:[r]},pristineThemeVars:a,objArr:{startIndex:o,endIndex:s,identifiers:[c]},obj:u&&u.index!==void 0?{startIndex:u.index,endIndex:u.index+u[0].length,identifiers:[u[1]]}:null,idRegistry:d&&d.index!==void 0?{startIndex:d.index+d[1].length+1,endIndex:d.index+d[1].length+1+d[2].length,identifiers:[d[2]]}:null}}const me=(e,t)=>{let n=pe(e);if(!n)return null;if(t.length===0)return e;let r=e;if(n.obj){let 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),V(e,r,i,n.obj.startIndex,n.obj.endIndex),e=r}let i=n.objArr.identifiers?.[0]??``,a=`[${t.map(e=>JSON.stringify({label:e.name,value:e.id})).join(`,`)}${i}]`;r=r.slice(0,n.objArr.startIndex)+a+r.slice(n.objArr.endIndex),V(e,r,a,n.objArr.startIndex,n.objArr.endIndex),e=r;let o=n.pristineThemeVars,s=(e,t)=>o?`{...${fe(e,o)},...${JSON.stringify(t)}}`:JSON.stringify(t),c=`switch(${n.switchStatement.identifiers?.[0]}){\n`;if(t.forEach(e=>{c+=`case${JSON.stringify(e.id)}:return${s(e.id,e.colors)};\n`}),c+=`default:return${s(t[0].id,t[0].colors)};\n}`,r=r.slice(0,n.switchStatement.startIndex)+c+r.slice(n.switchStatement.endIndex),V(e,r,c,n.switchStatement.startIndex,n.switchStatement.endIndex),e=r,n.idRegistry){let i=JSON.parse(n.idRegistry.identifiers?.[0]??`[]`),a=t.map(e=>e.id).filter(e=>!i.includes(e));if(a.length>0){let t=JSON.stringify([...i,...a]);r=r.slice(0,n.idRegistry.startIndex)+t+r.slice(n.idRegistry.endIndex),V(e,r,t,n.idRegistry.startIndex,n.idRegistry.endIndex),J(`patch: themes: registered custom theme id(s) ${a.join(`, `)}`)}}return r},he=`(+process.env.CLAUDE_CODE_CONTEXT_LIMIT||200000)`,ge=e=>{let t=/var ([$\w]+)=200000,([$\w]+)=200000,([$\w]+)=(32000),([$\w]+)=(128000|64000);/,n=e.match(t);if(n)return e.replace(t,()=>`var ${n[1]}=${he},${n[2]}=${he},${n[3]}=${n[4]},${n[5]}=${n[6]};`);let r=/var ([$\w]+)=200000,([$\w]+)=200000,([$\w]+)=(32000),([$\w]+)=(128000|64000),([$\w]+)=(1e6|1000000);/,i=e.match(r);if(i)return e.replace(r,()=>`var ${i[1]}=${he},${i[2]}=${he},${i[3]}=${i[4]},${i[5]}=${i[6]},${i[7]}=${i[8]};`);let a=/var ([$\w]+)=200000,([$\w]+)=200000,([$\w]+)=20000,([$\w]+)=32000,([$\w]+)=(128000|64000);/,o=e.match(a);if(o)return e.replace(a,()=>`var ${o[1]}=${he},${o[2]}=${he},${o[3]}=20000,${o[4]}=32000,${o[5]}=${o[6]};`);let s=/var ([$\w]+)=200000,([$\w]+)=20000,([$\w]+)=32000,([$\w]+)=(128000|64000);/,c=e.match(s);return c?e.replace(s,()=>`var ${c[1]}=${he},${c[2]}=20000,${c[3]}=32000,${c[4]}=${c[5]};`):(console.error(`patch: contextLimit: failed to find context limit constants`),null)},_e=(e,t)=>{if(!t)return e;let n=e,r=!1,i=n.match(/\{banner:[$\w]+,columns:[$\w]+,fastModeTag:[$\w]+,borderOnly:[$\w]+\}=[$\w]+;/);if(i&&i.index!==void 0){let e=i.index+i[0].length,t=n.indexOf(`function `,e),a=t===-1?e+4e3:t,o=n.slice(e,a),s=o.replace(/"\\u2500"\.repeat\([^)]*\)/g,()=>`""`).replace(/"\\u2500\\u2500"/g,()=>`""`).replace(/([$\w]+)\?([$\w]+)\.jsx\([$\w]+,\{count:[$\w]+,colors:\1\}\):""/g,()=>`""`);s!==o&&(n=n.slice(0,e)+s+n.slice(a),r=!0)}let a=/borderStyle:"round"(,borderLeft:!1,borderRight:!1,borderBottom:!0\})/;n.match(a)&&(n=n.replace(a,(e,t)=>`borderStyle:undefined${t}`),r=!0);let o=n.match(/createElement\(([$\w]+),\{color:([$\w]+)\.bgColor\},"─"\.repeat\(([$\w]+)\)\)/);if(o){let e=o[1];n=n.replace(o[0],()=>`createElement(${e},null,"")`);let t=RegExp(`createElement\\(${e},\\{color:${o[2]}\\.bgColor\\},${o[2]}\\.text\\?.+?"─"\\.repeat\\(${o[3]}\\)\\)`),i=n.match(t);i&&(n=n.replace(i[0],()=>`createElement(${e},null,"")`)),r=!0}let s=n.match(/(borderColor:[$\w]+\(\),)borderStyle:"round"(,borderLeft:!1,borderRight:!1,borderBottom:!0,width:"100%",borderText:)/);s&&(n=n.replace(s[0],()=>`${s[1]}borderStyle:undefined${s[2]}`),r=!0);let c=n.match(/borderStyle:"round"(,borderLeft:!1,borderRight:!1,borderBottom:!0,width:"100%"\}.+?Save and close editor)/);return c&&(n=n.replace(c[0],()=>`borderStyle:undefined${c[1]}`),r=!0),r?(V(e,n,`(input border removed)`,0,0),n):(console.error(`patch: input border: failed to find input border pattern`),null)},ve=(e,t)=>{let n=e.match(/,\{isLoading:([$\w]+),(?:[$\w]+:[$\w]+,)*themeColor:([$\w]+)\}=[$\w]+,([$\w]+)=\2\?\?void 0[,;][\s\S]*?if\([^)]*!==\3[^)]*\|\|[^)]*!==\1[^)]*\)[$\w]+=[$\w]+(?:\.jsxs?)?\([$\w]+,\{color:\3,dimColor:\1,children:/);if(!n||n.index===void 0)return J(`patch: inputChevronColor: failed to find chevron component pattern`),null;let r=n[1],i=n[3],a=`color:${i},dimColor:${r}`,o=`color:${r}?${i}:${JSON.stringify(t)},dimColor:!1`,s=n[0].lastIndexOf(a),c=n.index+s,l=c+a.length,u=e.slice(0,c)+o+e.slice(l);return V(e,u,o,c,l),u},ye=e=>{let t=(e.match(/overrideMessage:[$\w]+,isCompacting:[$\w]+,compactingHintText:[$\w]+,compactingStartTime:[$\w]+,spinnerSuffix:[$\w]+,verbose:[$\w]+,.{300}/)||e.match(/spinnerTip:[$\w]+,(?:[$\w]+:[$\w]+,)*overrideMessage:[$\w]+,.{300}/)||e.match(/overrideMessage:[$\w]+,spinnerSuffix:[$\w]+,verbose:[$\w]+,.{300}/)||e.match(/pauseStartTimeRef:[$\w]+,spinnerSuffix:[$\w]+,verbose:[$\w]+,.{300}/))?.index,n=t===void 0?``:e.slice(t,t+2e4),r=n.match(/,([$\w]+)(=[$\w]+===[$\w]+&&[$\w]+\.test\(([$\w]+)\)\?\3:\3\+[$\w]+)(?=[,;])/);if(r&&r.index!=null)return{startIndex:t+r.index+r[1].length+1,endIndex:t+r.index+r[1].length+r[2].length+1,identifiers:[r[3]]};let i=n.match(/,([$\w]+)(=[$\w]+\.test\(([$\w]+)\)\?\3:\3\+"(?:…|\\u2026)")/);if(i&&i.index!=null)return{startIndex:t+i.index+i[1].length+1,endIndex:t+i.index+i[1].length+i[2].length+1,identifiers:[i[3]]};let a=n.match(/,([$\w]+)(=\(([^;]{1,200}?)\)\+"(?:…|\\u2026)")/);if(a&&a.index!=null)return{startIndex:t+a.index+a[1].length+1,endIndex:t+a.index+a[1].length+a[2].length+1,identifiers:[a[3]]};let o=/,([$\w]+)(=(\([$\w]+&&![$\w]+\.isIdle\?[$\w]+\.spinnerVerb\?\?[$\w]+:[$\w]+\))\+"(?:…|\\u2026)")/,s=n.match(o);if(s&&s.index!=null)return{startIndex:t+s.index+s[1].length+1,endIndex:t+s.index+s[1].length+s[2].length+1,identifiers:[s[3]]};let c=n.match(/,([$\w]+)(=`\$\{([$\w]+&&![$\w]+\.isIdle\?[$\w]+\.spinnerVerb\?\?[$\w]+:[$\w]+)\}(?:…|\\u2026) ?`)/);if(c&&c.index!=null)return{startIndex:t+c.index+c[1].length+1,endIndex:t+c.index+c[1].length+c[2].length+1,identifiers:[c[3]]};let l=new RegExp(o.source,`g`),u=[...e.matchAll(l)].filter(t=>{if(t.index==null)return!1;let n=e.slice(Math.max(0,t.index-2500),t.index+1e3);return n.includes(`overrideMessage:`)&&n.includes(`.activeForm`)&&n.includes(`.isIdle`)&&n.includes(`.spinnerVerb`)&&n.includes(`spinnerTip`)});if(u.length===1){let e=u[0];return{startIndex:e.index+e[1].length+1,endIndex:e.index+e[1].length+e[2].length+1,identifiers:[e[3]]}}return console.error(`patch: thinker format: failed to find formatMatch`),null},be=(e,t)=>{let n=ye(e);if(!n)return null;let r=n,i=X(t.replace(/\\/g,`\\\\`).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 V(e,s,o,r.startIndex,r.endIndex),s},xe=/=\[\.\.\.([$\w]+),\.\.\.(?:\[\.\.\.\1\]\.reverse\(\)|\1\.toReversed\(\))\]/g,Se=(e,t)=>{let n=[...e.matchAll(xe)];if(n.length===0)return/=\[\.\.\.[$\w]+\],/.test(e)&&!t?e:(console.error(`patch: thinker symbol mirror option: failed to find match`),null);let r=``,i=0,a=``,o=0,s=0;for(let c of n){let n=c.index;if(n===void 0)continue;let l=c[1],u=t?`=[...${l},...${l}.toReversed()]`:`=[...${l}]`;r+=e.slice(i,n)+u,i=n+c[0].length,a=u,o=r.length-u.length,s=r.length}return r+=e.slice(i),V(e,r,a,o,s),r},Ce=(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=X(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);V(s,t,a,o[e].startIndex,o[e].endIndex),s=t}return s},we=(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 V(e,o,r,i,a),o},Te=(e,t)=>{let n=/\{(ref:[$\w]+,)("aria-hidden":!0,)?flexWrap:"wrap",height:1,width:2(,children:[$\w]+)?\}/g,r=[],i;for(;(i=n.exec(e))!==null;)r.push({startIndex:i.index,endIndex:i.index+i[0].length,replacement:`{${i[1]}${i[2]??``}flexWrap:"wrap",height:1,width:${t}${i[3]??``}}`});if(r.length>0)return r;let a=e.match(/\{("aria-hidden":!0,)?flexWrap:"wrap",height:1,width:2\}/);return a&&a.index!=null?[{startIndex:a.index,endIndex:a.index+a[0].length,replacement:`{${a[1]??``}flexWrap:"wrap",height:1,width:${t}}`}]:null},Ee=(e,t)=>{let n=Te(e,t);if(!n||n.length===0)return console.error(`patch: thinker symbol width: failed to find match`),null;let r=[...n].sort((e,t)=>t.startIndex-e.startIndex),i=e;for(let e of r){let t=i.slice(0,e.startIndex)+e.replacement+i.slice(e.endIndex);V(i,t,e.replacement,e.startIndex,e.endIndex),i=t}return i},De=(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=X(JSON.stringify(t)),i=n.index,a=i+n[0].length,o=e.slice(0,i)+r+e.slice(a);return V(e,o,r,i,a),o},Oe=(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=X(JSON.stringify(r)),a=n.index,o=a+n[0].length,s=e.slice(0,a)+i+e.slice(o);return V(e,s,i,a,o),s},ke=(e,t)=>{let n=De(e,t);if(n===null)return null;let r=Oe(n,t);return r===null?null:r},Ae=e=>e.replace(/\\/g,`\\\\`).replace(/`/g,"\\`").replace(/\$\{/g,"\\${"),je=`/*@@TWEAKCC_MODULE:`,Me=(e,t)=>{let n=e.lastIndexOf(je,t);if(n===-1)return e;let r=e.indexOf(je,n+19);return e.slice(n,r===-1?e.length:r)},Ne=e=>{let t=0;for(;;){let n=e.indexOf(`No content found in user prompt message`,t);if(n===-1)return null;let r=n+39,i=e.indexOf(`function `,r),a=i===-1?e.length:i,o=e.slice(n,a),s=/(?<![.$\w])([$\w]+)\([$\w]+,\{text:([$\w]+),useBriefLayout:[$\w]+,timestamp:[$\w]+(?:,[$\w]+:[$\w!.]+)*\}\)/.exec(o);if(!s||s.index===void 0){t=r;continue}let c=s[1],l=s[2],u=o.slice(s.index+s[0].length),d=RegExp(`(?<![.$\\w])${q(c)}\\([$\\w]+,(\\{flexDirection:"column"[^{}]*?)(,children:)([$\\w]+)(\\})\\)`).exec(u);if(!d||d.index===void 0){t=r;continue}let f=s.index+s[0].length+d.index,p=d[0].indexOf(`,{`);if(p===-1){t=r;continue}let m=f+p+1;return{index:n,end:n+(f+d[0].length),prefix:o.slice(0,m),messageVar:l,callExpr:c,originalBoxAttrs:d[1],childrenKeyword:d[2]}}},Pe=(e,t,n)=>{let r=Me(e,t),i=RegExp(`(?<![.$\\w])${q(n)}\\(([$\\w]+),\\{color:"text"`);return r.match(i)?.[1]},Fe=e=>({index:e.index,end:e.index+e[0].length,prefix:e[1],messageVar:e[2],callExpr:`${e[3]}.jsx`,originalBoxAttrs:e[4],childrenKeyword:e[5]}),Ie=e=>{let t=[];if(e.borderStyle!==`none`){if(e.borderStyle.startsWith(`topBottom`)){let n=``;e.borderStyle===`topBottomSingle`?n=`{top:"─",bottom:"─",left:" ",right:" ",topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" "}`:e.borderStyle===`topBottomDouble`?n=`{top:"═",bottom:"═",left:" ",right:" ",topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" "}`:e.borderStyle===`topBottomBold`&&(n=`{top:"━",bottom:"━",left:" ",right:" ",topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" "}`),t.push(`borderStyle:${X(n)}`)}else t.push(`borderStyle:"${e.borderStyle}"`);let n=e.borderColor.match(/\d+/g);n&&t.push(`borderColor:"rgb(${n.join(`,`)})"`)}return e.paddingX!==`default`&&e.paddingX>0&&t.push(`paddingX:${e.paddingX}`),e.paddingY!==`default`&&e.paddingY>0&&t.push(`paddingY:${e.paddingY}`),e.fitBoxToContent&&t.push(`alignSelf:"flex-start"`),t},Le=(e,t,n,r)=>{let{prefix:i,messageVar:a,callExpr:o,originalBoxAttrs:s,childrenKeyword:c,index:l,end:u}=t,d=s.slice(1),f=/backgroundColor:[$\w]+/;if(n.backgroundColor===null)d=d.replace(RegExp(`,?${f.source}`),``).replace(/^,|,$/g,``);else if(n.backgroundColor!==`default`){let e=n.backgroundColor.match(/\d+/g);if(e){let t=`backgroundColor:"rgb(${e.join(`,`)})"`;d=f.test(d)?d.replace(f,t):d?`${d},${t}`:t}}let p=Ie(n);p.length>0&&(d=d?`${d},${p.join(`,`)}`:p.join(`,`));let m=[];if(n.foregroundColor===`default`)m.push(`color:"text"`);else{let e=n.foregroundColor.match(/\d+/g);e&&m.push(`color:"rgb(${e.join(`,`)})"`)}if(n.backgroundColor!==`default`&&n.backgroundColor!==null){let e=n.backgroundColor.match(/\d+/g);e&&m.push(`backgroundColor:"rgb(${e.join(`,`)})"`)}else n.backgroundColor===`default`&&m.push(`backgroundColor:"userMessageBackground"`);n.styling.includes(`bold`)&&m.push(`bold:!0`),n.styling.includes(`italic`)&&m.push(`italic:!0`),n.styling.includes(`underline`)&&m.push(`underline:!0`),n.styling.includes(`strikethrough`)&&m.push(`strikethrough:!0`),n.styling.includes(`inverse`)&&m.push(`inverse:!0`);let h=m.length>0?`${m.join(`,`)},`:``,g=`(typeof ${a}==="object"&&${a}!==null?${a}.head+"\\n("+${a}.hiddenLines+" line"+(${a}.hiddenLines===1?"":"s")+" hidden)\\n"+${a}.tail:${a})`,_=`${o}(${r},{${h}children:${"`"+Ae(n.format).replace(/\{\}/g,()=>"${"+g+`}`)+"`"}})`,v=i+`{${d}`+c+_+`})`,y=e.slice(0,l)+v+e.slice(u);return V(e,y,v,l,u),y},Re=(e,t)=>{let n=/(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]+)[^}]*\}\)\)?))/,r=/(No content found in user prompt message[\s\S]{0,100}?;return )([$\w]+(?:\.default)?)\.createElement\(([$\w]+),(\{flexDirection:"column"[^{}]*\}),([$\w]+(?:\.default)?)\.createElement\(([$\w]+),\{text:([$\w]+)[^{}]*\}\)\)/,i=/(No content found in user prompt message[\s\S]{0,400}?\.jsx\([$\w]+,\{text:([$\w]+),useBriefLayout:[$\w]+,timestamp:[$\w]+(?:,[$\w]+:[$\w!.]+)*\}\)[\s\S]{0,200}?([$\w]+)\.jsx\([$\w]+,)(\{flexDirection:"column"[^{}]*?)(,children:)([$\w]+)(\}\))/,a=Ne(e),o=a?null:e.match(i),s=a||o?null:e.match(r),c=a||o||s?null:e.match(/(No content found in user prompt message.{0,1200}?)([$\w]+)=([$\w]+(?:\.default)?\.createElement)\([$\w]+,\{text:([$\w]+),useBriefLayout:[$\w]+,timestamp:[$\w]+(?:,[$\w]+:[$\w!.]+)*\}\)/),l=a||o||s||c?null:e.match(n);if(!a&&!o&&!s&&(!c||c.index===void 0)&&(!l||l.index===void 0))return console.error(`patch: userMessageDisplay: failed to find user message display pattern`),null;if(a){let n=Pe(e,a.index,a.callExpr)??(e.includes(je)?void 0:ed(e));return n?Le(e,a,t,n):(console.error(`patch: userMessageDisplay: failed to find Text component`),null)}let u=ed(e);if(!u)return console.error(`patch: userMessageDisplay: failed to find Text component`),null;if(o)return Le(e,Fe(o),t,u);let d=e=>`(typeof ${e}==="object"&&${e}!==null?${e}.head+"\\n("+${e}.hiddenLines+" line"+(${e}.hiddenLines===1?"":"s")+" hidden)\\n"+${e}.tail:${e})`;if(s){let n=s[1],r=s[2],i=s[3],a=s[4],o=s[5],c=s[7],l=a.slice(1,-1),f=/backgroundColor:[^,}]+(?:\?[^,}:]+:[^,}:]+)*/;if(t.backgroundColor===null)l=l.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(`,`)})"`;l=l.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:${X(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&&(l=l?`${l},${p.join(`,`)}`:p.join(`,`));let m=`{${l}}`,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`,_=d(c),v=n+`${r}.createElement(${i},${m},${o}.createElement(${u},${g},${"`"+Ae(t.format).replace(/\{\}/g,()=>"${"+_+`}`)+"`"}))`,y=s.index,b=y+s[0].length,x=e.slice(0,y)+v+e.slice(b);return V(e,x,v,y,b),x}let f=nd(e);if(!f)return console.error(`patch: userMessageDisplay: failed to find Box component`),null;let p=Uu(e);if(!p)return console.error(`patch: userMessageDisplay: failed to find chalk variable`),null;let m=c??l,h=c?c[3]:l[4],g=c?c[4]:l[6]??l[7],_=[],v=t.borderStyle.startsWith(`topBottom`);if(t.borderStyle!==`none`){if(v){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:" "}`),_.push(`borderStyle:${X(e)}`)}else _.push(`borderStyle:"${t.borderStyle}"`);let e=t.borderColor.match(/\d+/g);e&&_.push(`borderColor:"rgb(${e.join(`,`)})"`)}t.paddingX===`default`?_.push(`paddingRight:1`):t.paddingX>0&&_.push(`paddingX:${t.paddingX}`),t.paddingY!==`default`&&t.paddingY>0&&_.push(`paddingY:${t.paddingY}`),t.fitBoxToContent&&_.push(`alignSelf:"flex-start"`);let y=p,b=[];if(t.foregroundColor!==`default`){let e=t.foregroundColor.match(/\d+/g);e&&(y+=`.rgb(${e.join(`,`)})`)}else b.push(`color:"text"`);if(t.backgroundColor!==`default`&&t.backgroundColor!==null){let e=t.backgroundColor.match(/\d+/g);if(e){y+=`.bgRgb(${e.join(`,`)})`;let t=`"rgb(${e.join(`,`)})"`;_.push(`backgroundColor:${t}`),b.push(`backgroundColor:${t}`)}}else t.backgroundColor===`default`&&(_.push(`backgroundColor:"userMessageBackground"`),b.push(`backgroundColor:"userMessageBackground"`));t.styling.includes(`bold`)&&(y+=`.bold`),t.styling.includes(`italic`)&&(y+=`.italic`),t.styling.includes(`underline`)&&(y+=`.underline`),t.styling.includes(`strikethrough`)&&(y+=`.strikethrough`),t.styling.includes(`inverse`)&&(y+=`.inverse`);let x=d(g),S="`"+Ae(t.format).replace(/\{\}/g,()=>"${"+x+`}`)+"`",C=`${y}(${S})`,w=_.length>0?`{${_.join(`,`)}}`:`null`,T=b.length>0?`{${b.join(`,`)}}`:`null`,E=c?`${c[2]}=`:``,D=m[1]+`${E}${h}(${f},${w},${h}(${u},${T},${C}))`,O=m.index,k=O+m[0].length,A=e.slice(0,O)+D+e.slice(k);return V(e,A,D,O,k),A},ze=(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,t,n)=>{if(t.index===void 0)return null;let[,r,i,a,o,s,c]=t;if([...a.matchAll(/[$\w]+:([$\w]+)\.highlight\?\./g)].map(e=>e[1]).some(e=>e!==o))return console.error(`patch: inputPatternHighlighters: highlight prop run mixes segment variables`),null;let l=n?`${r}.jsx`:r,u=`(${o}.highlight?.style??(typeof ${o}.highlight?.color==="function"?${o}.highlight.color:void 0))`,d=e=>`,${e}:${u}?void 0:${o}.highlight?.${e}`,f=`return ${l}(${i},{${d(`color`).slice(1)}`+d(`backgroundColor`)+`,dimColor:${o}.highlight?.dimColor`+d(`inverse`)+d(`bold`)+d(`italic`)+d(`underline`)+d(`strikethrough`)+`,children:${l}(${s},{children:${u}?${u}(${o}.text):${o}.text})},${c})`,p=e.slice(0,t.index)+f+e.slice(t.index+t[0].length);return V(e,p,f,t.index,t.index+t[0].length),p},Ve=e=>{if(e.includes(`.highlight?.style?void 0:`)||e.includes(`.highlight?.style??(typeof `))return e;let t=e.match(/return ([$\w]+)\(([$\w]+),\{((?:[$\w]+:([$\w]+)\.highlight\?\.[$\w]+,)+)children:\1\(([$\w]+),\{children:\4\.text\}\)\},([$\w]+)\)/);if(t&&t.index!==void 0)return Be(e,t,!1);let n=e.match(/return ([$\w]+)\.jsx\(([$\w]+),\{((?:[$\w]+:([$\w]+)\.highlight\?\.[$\w]+,)+)children:\1\.jsx\(([$\w]+),\{children:\4\.text\}\)\},([$\w]+)\)/);if(n&&n.index!==void 0)return Be(e,n,!0);let r=e.match(/(if\(([$\w]+)\.highlight\?\.color\))((return [$\w]+\.createElement\([$\w]+,\{key:[$\w]+),color:[$\w]+\.highlight\.color(\},[$\w]+\.createElement\([$\w]+,null,)([$\w]+\.text)(\)\)));/);if(r&&r.index!==void 0){let t=`${r[2]}.highlight.color(${r[6]})`,n=r[1]+`{if(typeof ${r[2]}.highlight.color==='function')`+r[4]+r[5]+t+r[7]+`;else `+r[3]+`}`,i=e.slice(0,r.index)+n+e.slice(r.index+r[0].length);return V(e,i,n,r.index,r.index+r[0].length),i}let i=/(return ([$\w]+)\.createElement\(([$\w]+),\{key:([$\w]+)),color:([$\w]+)\.highlight\?\.color,dimColor:\5\.highlight\?\.dimColor,inverse:\5\.highlight\?\.inverse\},(\2\.createElement\([$\w]+,null,\5\.text\))\)/,a=e.match(i);if(!a||a.index===void 0)return console.error(`patch: inputPatternHighlighters: failed to find highlight?.color renderer pattern`),null;let o=a[2],s=a[3],c=a[4],l=a[5];a[6];let u=RegExp(`if\\(${l.replace(`$`,`\\$`)}\\.highlight\\.color\\)return ([$\\w]+)\\.createElement\\([$\\w]+,\\{key:[$\\w]+\\},${l.replace(`$`,`\\$`)}\\.text\\.split\\(""\\)\\.map\\([^)]+\\)\\)`),d=e,f=d.match(u);if(f&&f.index!==void 0){let e=`if(typeof ${l}.highlight?.color==='function')return ${o}.createElement(${s},{key:${c}},${o}.createElement(${s},null,${l}.highlight.color(${l}.text)));`;d=d.slice(0,f.index)+e+d.slice(f.index)}let p=d.match(i);if(!p||p.index===void 0)return console.error(`patch: inputPatternHighlighters: failed to re-find renderer after shimmer patch`),null;let m=p[2],h=p[3],g=p[4],_=p[5],v=p[6],y=`${_}.highlight?.style?${_}.highlight.style(${_}.text):${_}.text`,b=`return ${m}.createElement(${h},{key:${g},color:${_}.highlight?.style?void 0:${_}.highlight?.color,backgroundColor:${_}.highlight?.style?void 0:${_}.highlight?.backgroundColor,dimColor:${_}.highlight?.dimColor,inverse:${_}.highlight?.style?void 0:${_}.highlight?.inverse,bold:${_}.highlight?.style?void 0:${_}.highlight?.bold,italic:${_}.highlight?.style?void 0:${_}.highlight?.italic,underline:${_}.highlight?.style?void 0:${_}.highlight?.underline,strikethrough:${_}.highlight?.style?void 0:${_}.highlight?.strikethrough},${v.replace(`${_}.text`,y)})`,x=d.slice(0,p.index)+b+d.slice(p.index+p[0].length);return V(e,x,`shimmer guard + renderer`,0,0),x},He=(e,t,n)=>{let r=e.match(/([$\w]+;if\()([^()]{0,1500}?)(\)\{let [$\w]+=\[\];[\s\S]{0,3000}?)(if\([$\w]+&&[$\w]+&&![$\w]+\)([$\w]+)\.push\(\{start:[$\w]+,end:[$\w]+\+[$\w]+\.length,color:"warning",priority:\d+\}\))/),i=/((?:let |;|,)[$\w]+=[$\w]+\(\(\)=>\{let [$\w]+=\[\];[\s\S]{0,2000}?)(if\([$\w]+&&[$\w]+&&![$\w]+\)([$\w]+)\.push\(\{start:[$\w]+,end:[$\w]+\+[$\w]+\.length,color:"warning",priority:\d+\})/,a=/((?:,|;let )[$\w]+=[$\w]+\.useMemo\(\(\)=>\{let [$\w]+=\[\];[\s\S]{0,2000}?)(if\([$\w]+&&[$\w]+&&![$\w]+\)([$\w]+)\.push\(\{start:[$\w]+,end:[$\w]+\+[$\w]+\.length,color:"warning",priority:\d+\})/,o,s,c,l,u;if(r&&r.index!==void 0){let[,e,t,n,i,a]=r;o=r.index,s=r[0].length,c=e+t+`||!0`+n,l=i,u=a}else{let t=e.match(i),n=t&&t.index!==void 0?t:e.match(a);if(!n||n.index===void 0)return console.error(`patch: inputPatternHighlighters: failed to find useMemo/push pattern`),null;o=n.index,s=n[0].length,c=n[1],l=n[2],u=n[3]}let d=Hu(e,o);d||console.log(`patch: inputPatternHighlighters: no chalk binding in the target module — using declarative styling props`);let f=Math.max(0,o-2e4),p=e.slice(f,o),m=[...p.matchAll(/[,{]draft:([$\w]+)[,}]/g)].at(-1)?.[1],h=/\binputValue:([$\w]+),/g,g=/\binput:([$\w]+),/g,_=[...p.matchAll(h)],v=[...p.matchAll(g)],y=_.at(-1)??v.at(-1)??null,b=m?`${m}.value`:y?.[1]??null;if(!b)return console.error(`patch: inputPatternHighlighters: failed to find input variable pattern (looked for draft:, inputValue: and input:)`),null;let x=``;for(let e=0;e<n.length;e++){let t=n[e],r=d?ze(d,t):null,i=t.format??`{MATCH}`;JSON.stringify(i).replace(/\{MATCH\}/g,`"+x+"`);let a=t.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`,s=t.backgroundColor;if(s){let e=s.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);if(e){let[,t,n,r]=e.map(Number);s=`#${t.toString(16).padStart(2,`0`)}${n.toString(16).padStart(2,`0`)}${r.toString(16).padStart(2,`0`)}`}}let c=s?JSON.stringify(s):null,l=t.styling??[],f=l.includes(`bold`),p=l.includes(`italic`),m=l.includes(`underline`),h=l.includes(`inverse`),g=l.includes(`dim`),_=l.includes(`strikethrough`),v=t.regex??t.pattern;if(!v){console.error(`patch: inputPatternHighlighters: highlighter "${t.name}" has no regex/pattern; skipping`);continue}let y=t.regexFlags??``;y.includes(`g`)||(y+=`g`);let S;try{S=new RegExp(v,y)}catch(e){console.error(`patch: inputPatternHighlighters: highlighter "${t.name}" has invalid regex; skipping`,e);continue}let C=Ld(S);x+=`if(typeof ${b}==="string"){for(let m of ${b}.matchAll(${C})){${u}.push({start:m.index,end:m.index+m[0].length,color:${o}${c?`,backgroundColor:${c}`:``}${f?`,bold:!0`:``}${p?`,italic:!0`:``}${m?`,underline:!0`:``}${h?`,inverse:!0`:``}${g?`,dimColor:!0`:``}${_?`,strikethrough:!0`:``}${r?`,style:(x)=>${r}(x)`:``},priority:100})}}`}if(!x)return console.error(`patch: inputPatternHighlighters: no usable highlighters generated (all skipped)`),null;let S=c+x+l,C=e.slice(0,o),w=e.slice(o+s),T=C+``+S+w,E=r?-1:T.indexOf(`for(let m of ${b}.matchAll(`);if(E>-1){let e=[...T.slice(Math.max(0,E-2e3),E).matchAll(/[$\w]+\(\(\)=>\{/g)];if(e.length>0){let t=Math.max(0,E-2e3)+e[e.length-1].index,n=T.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;T.slice(n-1,n)===`]`&&(T.slice(n-200,n).includes(`,${b}]`)||(T=T.slice(0,n-1)+`,${b}]`+T.slice(n)));break}}}return V(e,T,``+S,o,o+s),T},Ue=(e,t)=>{let n=t.filter(e=>e.enabled!==!1);if(n.length===0)return console.error(`patch: inputPatternHighlighters: no enabled highlighters provided`),null;let r=Uu(e);if(!r)return console.error(`patch: inputPatternHighlighters: failed to find chalk variable`),null;let i;return i=Ve(e),i?(i=He(i,r,n),i||(console.error(`^ patch: inputPatternHighlighters: writeCustomHighlighterCreation failed`),null)):(console.error(`^ patch: inputPatternHighlighters: writeCustomHighlighterImpl failed`),null)},We=e=>{let t=e.match(/(?:[$\w]+\.)?createElement\([$\w]+,\{(?=[^}]*responseLengthRef:)(?=[^}]*spinnerSuffix:)(?=[^}]*thinkingStatus:)(?=[^}]*isCompacting:)[^}]*verbose:[^,}]+[^}]*\}/);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},Ge=e=>{let t=We(e);if(!t)return null;let n=e.slice(0,t.startIndex)+t.replacement+e.slice(t.endIndex);return V(e,n,t.replacement,t.startIndex,t.endIndex),n},Ke=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 V(e,c,s,t.index,t.index+n.length),c},qe=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 V(e,r,n,t.index,t.index+t[0].length),r},Je=e=>{let t=e.match(/(if\s*\(\s*([$\w]+)\s*===\s*"opusplan"\s*\)\s*return\s*"([^"]*Opus[^"]*plan mode[^"]*Sonnet[^"]*)";)/);if(!t||t.index===void 0)return console.error(`patch: opusplan1m: patchDescriptionFunction: failed to find description pattern`),null;let[n,,r,i]=t,a=n+`if(${r}==="opusplan[1m]")return"${i} (1M context)";`,o=e.slice(0,t.index)+a+e.slice(t.index+n.length);return V(e,o,a,t.index,t.index+n.length),o},Ye=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 V(e,a,i,t.index,t.index+n.length),a},Xe=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*\\[\\.\\.\\.${q(i)}`)),o=a?a[1]:null,s=`{value:"opusplan[1m]",label:"Opus Plan Mode 1M",description:"Use Opus in plan mode, Sonnet (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 V(e,l,c,t.index,t.index+n.length),l},Ze=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 in plan mode, Sonnet otherwise"});${n}.push({value:"opusplan[1m]",label:"Opus Plan Mode 1M",description:"Use Opus in plan mode, Sonnet (1M context) otherwise"});`,i=e.slice(0,t.index)+r+e.slice(t.index);return V(e,i,r,t.index,t.index),i},Qe=e=>{if(e.includes(`"opusplan[1m]"`))return console.log(`patch: opusplan1m: opusplan[1m] already supported natively — skipping`),e;let t=e,n=Ke(t);if(n)t=n;else return console.error(`patch: opusplan1m: failed to apply mode switching patch`),null;if(n=qe(t),n)t=n;else return console.error(`patch: opusplan1m: failed to apply model aliases list patch`),null;if(n=Je(t),n)t=n;else return console.error(`patch: opusplan1m: failed to apply description function patch`),null;if(n=Ye(t),n)t=n;else return console.error(`patch: opusplan1m: failed to apply label function patch`),null;if(n=Xe(t),n)t=n;else return console.error(`patch: opusplan1m: failed to apply model selector options patch`),null;if(n=Ze(t),n)t=n;else return console.error(`patch: opusplan1m: failed to apply always-show-in-selector patch`),null;return t},$e=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(/if\(!([$\w]+)&&!([$\w]+)\)\{?return null\}?;?(.{0,400}?isTranscriptMode:)\1,verbose:\2/);if(t&&t.index!==void 0){let n=t[3]+`true,verbose:`+t[2],r=t.index,i=r+t[0].length,a=e.slice(0,r)+n+e.slice(i);return V(e,a,n,r,i),a}let n=e.match(/(case"thinking":\{?)(if\(![$\w]+&&![$\w]+\)\{?return null\}?;?)(.{0,400}isTranscriptMode:).+?,/);if(!n||n.index===void 0)return console.error(`patch: thinkingVisibility: failed to find thinking visibility pattern`),null;let r=n[1]+n[3]+`true,`,i=n.index,a=i+n[0].length,o=e.slice(0,i)+r+e.slice(a);return V(e,o,r,i,a),o},et=(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].slice(0,-1)+JSON.stringify(t),i=n.index,a=i+n[0].length,o=e.slice(0,i)+r+e.slice(a);return V(e,o,r,i,a),o},tt=(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].slice(0,-1)+JSON.stringify(t),i=n.index,a=i+n[0].length,o=e.slice(0,i)+r+e.slice(a);return V(e,o,r,i,a),o},nt=(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*)"[^"]+"/,(e,n)=>n+JSON.stringify(t))+i:r+`${r.trim().endsWith(`,`)?``:`,`}model:`+JSON.stringify(t)+i;let o=n.index,s=o+n[0].length,c=e.slice(0,o)+a+e.slice(s);return V(e,c,a,o,s),c},rt=(e,t)=>{let n=e;if(t.plan){let e=et(n,t.plan);if(e===null)return null;n=e}if(t.explore){let e=tt(n,t.explore);if(e===null)return null;n=e}if(t.generalPurpose){let e=nt(n,t.generalPurpose);if(e===null)return null;n=e}return n},it=(e,t,n,r)=>`${e}.createElement(${t}, null, ${e}.createElement(${n}, {color: "success", bold: true}, "\\u2503 "), ${e}.createElement(${n}, {dimColor: true}, \` * ${X(r)}\`)),`,at=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}},ot=e=>{let t=e.match(/([$\w]+)\.jsxs\(([$\w]+),\{children:\[(?:[^[\]]{0,200})," ",([$\w]+)\.jsxs\(([$\w]+),\{dimColor:!0,children:\["v",[$\w]+\]\}\)\]\}\)/);if(t&&t.index!==void 0)return{jsxInline:{insertIndex:t.index+t[0].length-3,helper:t[1],textComponent:t[2]}};let n=e.match(/createElement\(([$\w]+),\{bold:!0\},"Claude Code"\),([$\w]+)\[\d+\]=[$\w]+;else [$\w]+=([$\w]+)\[\d+\]/);if(!n||n.index===void 0)return console.error(`patch: patchesAppliedIndication: PATCH 2 failed to find bold Claude Code pattern`),null;let r=n[1],i=n.index+n[0].length,a=e.indexOf(`;`,i);if(a===-1)return null;let o=a+1,s=e.match(/[^$\w]([$\w]+)\.createElement\(([$\w]+),null,[$\w]+," ",([$\w]+)\.createElement\(([$\w]+),\{dimColor:!0\},"v",[$\w]+\)\)/);if(!s||s.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:o,refInsertIndex:t.index+t[0].length,reactVar:t[1],textComponent:r}}return{varInsertIndex:o,refInsertIndex:s.index+s[0].length-1,reactVar:s[1],textComponent:r}},st=e=>{let t=e.match(/[,;){}\]]([$\w]+)=([$\w]+)\.jsxs\(([$\w]+),\{children:\[(?:[^[\]]{0,200})," ",[$\w]+\.jsxs\([$\w]+,\{dimColor:!0,children:\["v",[$\w]+\]\}\)/);if(!t||t.index===void 0)return null;let n=t[1],r=t.index,i=e.slice(r,r+4e3),a=RegExp(`[$\\w]+\\.jsxs\\([$\\w]+,\\{flexDirection:"column",children:\\[(?:[^[\\]]*?,)?${q(n)}[,\\]]`),o=i.match(a);if(!o||o.index===void 0)return null;let s=r+o.index,c=e.indexOf(`children:[`,s)+10;if(c<10)return null;let l=1,u=-1;for(let t=c;t<e.length;t++){let n=e[t];if(n===`[`)l++;else if(n===`]`&&(l--,l===0)){u=t;break}}return u===-1?null:{startIndex:u,endIndex:u}},ct=e=>{let t=st(e);if(t)return t;let n=e.match(/"Claude Code".{0,200}\{dimColor:!0\},"v",[$\w]+\)/);if(!n||n.index===void 0)return console.error(`patch: patchesAppliedIndication: failed to find version display for patch 3`),null;let r={index:n.index},i=Math.max(0,r.index-5e3),a=e.slice(i,r.index),o=Array.from(a.matchAll(/[};]\s*function ([$\w]+)\(/g));if(o.length===0)return console.error(`patch: patchesAppliedIndication: failed to find header component function`),null;let s=o[o.length-1][1],c=RegExp(`[^$\\w]([$\\w]+)\\.createElement\\(${q(s)},null\\),?`),l=e.match(c);if(!l||l.index===void 0)return console.error(`patch: patchesAppliedIndication: failed to find createElement call for header`),null;let u=e.slice(Math.max(0,l.index-30),l.index+1).match(/([$\w]+)=(?:[$\w]+&&)?[^$\w]?$/);if(u){let t=u[1],n=e.slice(l.index,l.index+2e3),r=RegExp(`,${q(t)}([,\\)])`),i=n.match(r);if(i&&i.index!==void 0){let e=l.index+i.index+i[0].length-i[1].length;return{startIndex:e,endIndex:e}}}let d=l.index+l[0].length;return{startIndex:d,endIndex:d}},lt=/([$\w]+)=([$\w]+)\(([$\w]+),\{children:\[[$\w]+," ",([$\w]+)\(([$\w]+),\{dimColor:!0,children:\["v",[$\w]+\]\}\)\]\}\)/,ut=/([$\w]+)\(([$\w]+),\{flexDirection:"row",gap:2,alignItems:"center",children:\[[$\w]+,[$\w]+\]\}\)/y,dt=`/*@@TWEAKCC_MODULE:`,ft=(e,t)=>{let n=e.lastIndexOf(dt,t);return n===-1?0:n},pt=(e,t)=>{let n=Math.max(ft(e,t),t-4e3),r=e.slice(n,t),i=/([$\w]+)\(([$\w]+),\{bold:!0,children:"Claude Code"\}\)/g,a=null;for(let e=i.exec(r);e!==null;e=i.exec(r))a=e;return a?{jsx:a[1],text:a[2]}:null},mt=(e,t,n,r,i)=>{let a=[`${t}(${n},{children:[${e}(${r},{color:"success",bold:!0,children:"\\u2503 "}),${e}(${r},{color:"success",bold:!0,children:"\\u2713 tweakcc-fixed patches are applied"})]})`];for(let o of i){let i=X(JSON.stringify(` * ${o}`));a.push(`${t}(${n},{children:[${e}(${r},{color:"success",bold:!0,children:"\\u2503 "}),${e}(${r},{dimColor:!0,children:${i}})]})`)}return`${t}(${n},{flexDirection:"column",children:[${a.join(`,`)}]})`},ht=(e,t,n,r,i)=>{let a=!1,o=!1;if(r&&!e.includes(`+ tweakcc v${t}`)){let n=`,{dimColor:!0,children:["v"`,r=e.indexOf(n);for(;r!==-1&&!a;){let i=Math.max(0,r-180),o=e.slice(i,r+80).match(lt);if(o&&o.index!==void 0){let n=i+o.index,r=pt(e,n),s=`," ",${r?.jsx??o[4]}(${r?.text??o[5]},{color:"warning",bold:!0,children:${X(JSON.stringify(`+ tweakcc v${t}`))}})`,c=n+o[0].length-3,l=e;e=e.slice(0,c)+s+e.slice(c),V(l,e,s,c,c),a=!0;break}r=e.indexOf(n,r+27)}}if(i&&!e.includes(`tweakcc-fixed patches are applied`)){let t=`,{flexDirection:"row",gap:2,alignItems:"center",children:[`,r=null;for(let n=e.indexOf(t);n!==-1&&!r;n=e.indexOf(t,n+58)){let t=/[$\w]+\([$\w]+$/.exec(e.slice(Math.max(0,n-40),n));t&&(ut.lastIndex=n-t[0].length,r=ut.exec(e))}if(!r)return e.includes(dt)&&console.error(`patch: patchesAppliedIndication: failed to find the startup banner row for the patches list`),{content:e,didVersion:a,didList:o};let i=r.index,s=r[1],c=r[2],l=pt(e,i);if(!l||l.text===c)return console.error(`patch: patchesAppliedIndication: failed to find the Text component near the startup banner`),{content:e,didVersion:a,didList:o};let u=mt(l.jsx,s,c,l.text,n),d=`${s}(${c},{flexDirection:"column",children:[${r[0]},${u}]})`,f=e;e=e.slice(0,i)+d+e.slice(i+r[0].length),V(f,e,d,i,i+d.length),o=!0}return{content:e,didVersion:a,didList:o}},gt=(e,t,n,r=!0,i=!0)=>{let a=at(e);if(!a)return console.error(`patch: patchesAppliedIndication: failed to version output location`),null;let o=`\\n${t} (tweakcc-fixed)`,s=`}.VERSION} (Claude Code)`,c=e.replaceAll(s,s+o);V(e,c,o,a.endIndex,a.endIndex);let l=ht(c,t,n,r,i);c=l.content;let u=r&&!l.didVersion,d=i&&!l.didList;if(!u&&!d)return c;if(c.includes(dt))return console.error(`patch: patchesAppliedIndication: failed to patch the imported-jsx header; the legacy createElement paths do not apply to a code-split bundle`),l.didVersion||l.didList?c:null;let f=Uu(e);if(!f)return!l.didVersion&&!l.didList?(console.error(`patch: patchesAppliedIndication: failed to find chalk variable`),null):c;let p=ed(e);if(!p)return!l.didVersion&&!l.didList?(console.error(`patch: patchesAppliedIndication: failed to find text component`),null):c;let m=Ju(e);if(!m)return!l.didVersion&&!l.didList?(console.error(`patch: patchesAppliedIndication: failed to find React variable`),null):c;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=ot(c);if(!n)console.error(`patch: patchesAppliedIndication: patch 2 skipped (header version pattern changed)`);else if(`jsxInline`in n){let{insertIndex:e,helper:r,textComponent:i}=n.jsxInline,a=`," ",${r}.jsx(${i},{children:${f}.hex("#FF8400").bold("+ tweakcc v${t}")})`,o=c;c=c.slice(0,e)+a+c.slice(e),V(o,c,a,e,e)}else{let e=`let _tw=${n.reactVar}.createElement(${n.textComponent},null,${f}.hex("#FF8400").bold("+ tweakcc v${t}"));`,r=c;c=c.slice(0,n.varInsertIndex)+e+c.slice(n.varInsertIndex),V(r,c,e,n.varInsertIndex,n.varInsertIndex);let i=n.refInsertIndex+e.length,a=`," ",_tw`,o=c;c=c.slice(0,i)+a+c.slice(i),V(o,c,a,i,i)}}if(i){let e=nd(c);if(!e)return console.error(`patch: patchesAppliedIndication: PATCH 3 skipped (Box component not located on this CC version)`),c;let t=c.match(/([$\w]+)=([$\w]+)\.jsxs\(([$\w]+),\{flexDirection:"row",gap:2,alignItems:"center",children:\[[$\w]+,[$\w]+\.jsxs\([$\w]+,\{flexDirection:"column",children:\[[$\w,]+\]\}\)\]\}\)/);if(t&&t.index!==void 0){let r=t[1],i=t[2],a=t[3],o=t[0].slice(r.length+1),s=[`${m}.createElement(${e}, { flexDirection: "column" },`,`${m}.createElement(${e}, null, ${m}.createElement(${p}, {color: "success", bold: true}, "\\u2503 "), ${m}.createElement(${p}, {color: "success", bold: true}, "\\u2713 tweakcc-fixed patches are applied")),`];for(let t of n)t=t.replace(`CHALK_VAR`,f),s.push(it(m,e,p,t));s.push(`)`);let l=`${r}=${i}.jsxs(${a},{flexDirection:"column",children:[${o},${s.join(`
16
+ Output an updated running summary - a terse TL;DR of the session in the fewest words that still capture what was done and how hard it has been. Fold the most recent exchange into the prior summary as one short line (what this turn did and its complexity), then compress: keep the task or goal, key decisions, files or systems touched, unresolved threads, and difficulty signals (errors, retries, large changes); mark resolved items resolved and drop anything that will not affect future routing. It is a routing aid, not documentation - favor brevity.`,P={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,chevronIdleThemeColor:null},misc:{showTweakccVersion:!0,showPatchesApplied:!0,expandThinkingBlocks:!0,enableConversationTitle:!0,hideStartupBanner:!1,hideCtrlGToEdit:!1,hideStartupClawd:!1,increaseFileReadLimit:!1,suppressLineNumbers:!1,suppressRateLimitOptions:!1,suppressRateLimitWarning:!1,sessionColor:!1,mcpConnectionNonBlocking:!0,mcpServerBatchSize:null,statuslineThrottleMs:null,statuslineUseFixedInterval:!1,tableFormat:`default`,enableSessionMemory:!0,enableDreamMode:!1,enableLeanMemoryTypes:!1,fixSummarizeFromHere:!0,fixRewindSummaryHeader:!0,enableRememberSkill:!1,tokenCountRounding:null,autoAcceptPlanMode:!1,allowBypassPermissionsInSudo:!1,suppressNativeInstallerWarning:!1,modelAtEffort:!0,filterScrollEscapeSequences:!1,enableWorktreeMode:!0,unlockResponsiveMode:!1,swapRipgrepForFff:!1,allowCustomAgentModels:!1,enableContextLimitOverride:!1,enableModelCustomizations:!0,enableVoiceMode:!1,enableVoiceConciseOutput:!0,enableChannelsMode:!1,attachedBackgroundInteractive:!1,enableProposeGoal:!1,maxEffortDefault:!1,autonomousOperationAllModels:!1,refusalFallbackModel:!1,refusalFallbackRoutes:{},refusalFallbackMaxReturns:1,outputStyleTurnReminder:!1,autoModeClassifierModel:`default`,suppressDeferredTools:!1,claudemdContextOncePerConversation:!1},toolsets:[],defaultToolset:null,acceptEditsToolset:null,planModeToolset:null,subagentModels:{plan:null,explore:null,generalPurpose:null},fablePlan:{enabled:!1,planModel:`fable`,execModel:`opus`,offerClearContextOnPlanAccept:!0},complexityRouter:{provider:`haiku`,jevModel:`jev-1.13.0`,jevTimeoutMs:2e3,contextBudgetBytes:24e3,summaryMaxChars:6e3,enabled:!1,pinPerTask:!0,messageCap:1e5,assistantCap:1e5,timeoutMs:15e3,systemPrompt:te,levels:ee},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`]},ne={name:`Unnamed Highlighter`,regex:``,regexFlags:`g`,format:`{MATCH}`,styling:[],foregroundColor:null,backgroundColor:null,enabled:!0},re={name:`Unnamed Toolset`,allowedTools:`*`},ie=P.themes[0],ae=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},oe=e=>{let t=e.match(/\{rows:([\w$]+),columns:[\w$]+\}=[\w$]+\(\),[\w$]+=[\w$]+\?[\w$]+:Math\.max\(1,Math\.min\(Math\.max\(6,Math\.floor\(\1\/2\)\),\1-3\)\)/);if(t&&t.index!==void 0){let n=t[1],r=`Math.floor(${n}/2)`,i=t.index+t[0].indexOf(r),a=i+r.length,o=e.slice(0,i)+n+e.slice(a);return V(e,o,n,i,a),o}let n=e.match(/\{rows:([\w$]+),columns:[\w$]+\}=[\w$]+\(\),([\w$]+)=Math\.floor\(\1\/2\)/);if(n&&n.index!==void 0){let t=n.index+n[0].indexOf(n[2]+`=Math.floor(`),r=n.index+n[0].length,i=`${n[2]}=${n[1]}`,a=e.slice(0,t)+i+e.slice(r);return V(e,a,i,t,r),a}let r=/Math\.max\(1,Math\.floor\(\(([\w$]+)-([\w$]+)\)\/([\w$]+)\)\)/g,i;for(;(i=r.exec(e))!==null;){let t=Math.max(0,i.index-250),n=e.slice(t,i.index);if(!n.includes(`"expanded"?3`)||!n.includes(`"compact"?1:2`))continue;let r=i.index,a=i.index+i[0].length,o=`Math.max(1,${i[1]}-${i[2]})`,s=e.slice(0,r)+o+e.slice(a);return V(e,s,o,r,a),s}return null},se=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 V(e,r,n,t.index,t.index+t[0].length),r},ce=e=>{if(!e.includes(`Math.min(6,Math.max(1,`))return J(`patch: showMoreItemsInSelectMenus: suggestions cap already removed in this CC build — no-op`),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 V(e,r,n,t.index,t.index+t[0].length),r},le=(e,t)=>{let n=ae(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);V(i,r,n,e.startIndex,e.endIndex),i=r}let a=oe(i);a?i=a:console.error(`patch: writeShowMoreItemsInSelectMenus: failed to find help menu height pattern`);let o=se(i);o?i=o:console.error(`patch: writeShowMoreItemsInSelectMenus: failed to find visibleCount pattern`);let s=ce(i);return s&&(i=s),i},ue=/([$\w]+)=(\["dark","light"(?:,"[\w-]+")*\]),([$\w]+)=\["auto",\.\.\.\1\]/;function de(e){let t=e.match(/default:return ([$\w]+)\}$/);if(!t)return null;let n={};for(let t of e.matchAll(/((?:case"[\w-]+":)+)return ([$\w]+);/g))for(let e of t[1].matchAll(/case"([\w-]+)":/g))n[e[1]]=t[2];return{byId:n,defaultVar:t[1]}}function fe(e,t){return t.byId[e]?t.byId[e]:/light/.test(e)&&t.byId.light?t.byId.light:t.defaultVar}function pe(e){let t=-1,n=-1,r=``,i=e.match(/switch\(([$\w]+)\)\{case"(?:light|dark)":[^}]*return [$\w]+;[^}]*default:return [$\w]+\}/),a=null;if(i&&i.index!=null)t=i.index,n=t+i[0].length,r=i[1],a=de(i[0]);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 o=-1,s=-1,c=``,l=e.match(/\[(?:\.\.\.\[\],)?(?:\{"?label"?:"(?:Dark|Light|Auto|Monochrome)[^"]*","?value"?:"[^"]+"\},?)+\]/);if(l&&l.index!==void 0)o=l.index,s=l.index+l[0].length;else{let t=[...e.matchAll(/([$\w]+)=\{label:"(?:Auto|Dark|Light|Monochrome)[^"]*",value:"[^"]+"\}/g)];if(t.length<2)return console.error(`patch: themes: failed to find objArrMatch`),null;let n=t.map(e=>e[1]).map(e=>e.replace(/\$/g,`\\$`)).join(`,`),r=RegExp(`\\[${n}((?:,\\.\\.\\.[^\\]]+)*)\\]`),i=e.match(r);if(!i||i.index===void 0)return console.error(`patch: themes: failed to find objArrMatch (new var-collected form)`),null;o=i.index,s=i.index+i[0].length,c=i[1]}let u=e.match(/(return|[$\w]+=)\{(?:"?(?:[$\w-]+)"?:"(?:Auto |Dark|Light|Monochrome)[^"]*",?)+\}/);(!u||u.index==null)&&J(`patch: themes: objMatch not found — colors will still apply, theme name map unchanged`);let d=e.match(ue);return d||J(`patch: themes: theme-id registry not found — custom theme ids will not validate`),{switchStatement:{startIndex:t,endIndex:n,identifiers:[r]},pristineThemeVars:a,objArr:{startIndex:o,endIndex:s,identifiers:[c]},obj:u&&u.index!==void 0?{startIndex:u.index,endIndex:u.index+u[0].length,identifiers:[u[1]]}:null,idRegistry:d&&d.index!==void 0?{startIndex:d.index+d[1].length+1,endIndex:d.index+d[1].length+1+d[2].length,identifiers:[d[2]]}:null}}const me=(e,t)=>{let n=pe(e);if(!n)return null;if(t.length===0)return e;let r=e;if(n.obj){let 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),V(e,r,i,n.obj.startIndex,n.obj.endIndex),e=r}let i=n.objArr.identifiers?.[0]??``,a=`[${t.map(e=>JSON.stringify({label:e.name,value:e.id})).join(`,`)}${i}]`;r=r.slice(0,n.objArr.startIndex)+a+r.slice(n.objArr.endIndex),V(e,r,a,n.objArr.startIndex,n.objArr.endIndex),e=r;let o=n.pristineThemeVars,s=(e,t)=>o?`{...${fe(e,o)},...${JSON.stringify(t)}}`:JSON.stringify(t),c=`switch(${n.switchStatement.identifiers?.[0]}){\n`;if(t.forEach(e=>{c+=`case${JSON.stringify(e.id)}:return${s(e.id,e.colors)};\n`}),c+=`default:return${s(t[0].id,t[0].colors)};\n}`,r=r.slice(0,n.switchStatement.startIndex)+c+r.slice(n.switchStatement.endIndex),V(e,r,c,n.switchStatement.startIndex,n.switchStatement.endIndex),e=r,n.idRegistry){let i=JSON.parse(n.idRegistry.identifiers?.[0]??`[]`),a=t.map(e=>e.id).filter(e=>!i.includes(e));if(a.length>0){let t=JSON.stringify([...i,...a]);r=r.slice(0,n.idRegistry.startIndex)+t+r.slice(n.idRegistry.endIndex),V(e,r,t,n.idRegistry.startIndex,n.idRegistry.endIndex),J(`patch: themes: registered custom theme id(s) ${a.join(`, `)}`)}}return r},he=`(+process.env.CLAUDE_CODE_CONTEXT_LIMIT||200000)`,ge=e=>{let t=/var ([$\w]+)=200000,([$\w]+)=200000,([$\w]+)=(32000),([$\w]+)=(128000|64000);/,n=e.match(t);if(n)return e.replace(t,()=>`var ${n[1]}=${he},${n[2]}=${he},${n[3]}=${n[4]},${n[5]}=${n[6]};`);let r=/var ([$\w]+)=200000,([$\w]+)=200000,([$\w]+)=(32000),([$\w]+)=(128000|64000),([$\w]+)=(1e6|1000000);/,i=e.match(r);if(i)return e.replace(r,()=>`var ${i[1]}=${he},${i[2]}=${he},${i[3]}=${i[4]},${i[5]}=${i[6]},${i[7]}=${i[8]};`);let a=/var ([$\w]+)=200000,([$\w]+)=200000,([$\w]+)=20000,([$\w]+)=32000,([$\w]+)=(128000|64000);/,o=e.match(a);if(o)return e.replace(a,()=>`var ${o[1]}=${he},${o[2]}=${he},${o[3]}=20000,${o[4]}=32000,${o[5]}=${o[6]};`);let s=/var ([$\w]+)=200000,([$\w]+)=20000,([$\w]+)=32000,([$\w]+)=(128000|64000);/,c=e.match(s);return c?e.replace(s,()=>`var ${c[1]}=${he},${c[2]}=20000,${c[3]}=32000,${c[4]}=${c[5]};`):(console.error(`patch: contextLimit: failed to find context limit constants`),null)},_e=(e,t)=>{if(!t)return e;let n=e,r=!1,i=n.match(/\{banner:[$\w]+,columns:[$\w]+,fastModeTag:[$\w]+,borderOnly:[$\w]+\}=[$\w]+;/);if(i&&i.index!==void 0){let e=i.index+i[0].length,t=n.indexOf(`function `,e),a=t===-1?e+4e3:t,o=n.slice(e,a),s=o.replace(/"\\u2500"\.repeat\([^)]*\)/g,()=>`""`).replace(/"\\u2500\\u2500"/g,()=>`""`).replace(/([$\w]+)\?([$\w]+)\.jsx\([$\w]+,\{count:[$\w]+,colors:\1\}\):""/g,()=>`""`);s!==o&&(n=n.slice(0,e)+s+n.slice(a),r=!0)}let a=/borderStyle:"round"(,borderLeft:!1,borderRight:!1,borderBottom:!0\})/;n.match(a)&&(n=n.replace(a,(e,t)=>`borderStyle:undefined${t}`),r=!0);let o=n.match(/createElement\(([$\w]+),\{color:([$\w]+)\.bgColor\},"─"\.repeat\(([$\w]+)\)\)/);if(o){let e=o[1];n=n.replace(o[0],()=>`createElement(${e},null,"")`);let t=RegExp(`createElement\\(${e},\\{color:${o[2]}\\.bgColor\\},${o[2]}\\.text\\?.+?"─"\\.repeat\\(${o[3]}\\)\\)`),i=n.match(t);i&&(n=n.replace(i[0],()=>`createElement(${e},null,"")`)),r=!0}let s=n.match(/(borderColor:[$\w]+\(\),)borderStyle:"round"(,borderLeft:!1,borderRight:!1,borderBottom:!0,width:"100%",borderText:)/);s&&(n=n.replace(s[0],()=>`${s[1]}borderStyle:undefined${s[2]}`),r=!0);let c=n.match(/borderStyle:"round"(,borderLeft:!1,borderRight:!1,borderBottom:!0,width:"100%"\}.+?Save and close editor)/);return c&&(n=n.replace(c[0],()=>`borderStyle:undefined${c[1]}`),r=!0),r?(V(e,n,`(input border removed)`,0,0),n):(console.error(`patch: input border: failed to find input border pattern`),null)},ve=(e,t)=>{let n=e.match(/,\{isLoading:([$\w]+),(?:[$\w]+:[$\w]+,)*themeColor:([$\w]+)\}=[$\w]+,([$\w]+)=\2\?\?void 0[,;][\s\S]*?if\([^)]*!==\3[^)]*\|\|[^)]*!==\1[^)]*\)[$\w]+=[$\w]+(?:\.jsxs?)?\([$\w]+,\{color:\3,dimColor:\1,children:/);if(!n||n.index===void 0)return J(`patch: inputChevronColor: failed to find chevron component pattern`),null;let r=n[1],i=n[3],a=`color:${i},dimColor:${r}`,o=`color:${r}?${i}:${JSON.stringify(t)},dimColor:!1`,s=n[0].lastIndexOf(a),c=n.index+s,l=c+a.length,u=e.slice(0,c)+o+e.slice(l);return V(e,u,o,c,l),u},ye=e=>{let t=(e.match(/overrideMessage:[$\w]+,isCompacting:[$\w]+,compactingHintText:[$\w]+,compactingStartTime:[$\w]+,spinnerSuffix:[$\w]+,verbose:[$\w]+,.{300}/)||e.match(/spinnerTip:[$\w]+,(?:[$\w]+:[$\w]+,)*overrideMessage:[$\w]+,.{300}/)||e.match(/overrideMessage:[$\w]+,spinnerSuffix:[$\w]+,verbose:[$\w]+,.{300}/)||e.match(/pauseStartTimeRef:[$\w]+,spinnerSuffix:[$\w]+,verbose:[$\w]+,.{300}/))?.index,n=t===void 0?``:e.slice(t,t+2e4),r=n.match(/,([$\w]+)(=[$\w]+===[$\w]+&&[$\w]+\.test\(([$\w]+)\)\?\3:\3\+[$\w]+)(?=[,;])/);if(r&&r.index!=null)return{startIndex:t+r.index+r[1].length+1,endIndex:t+r.index+r[1].length+r[2].length+1,identifiers:[r[3]]};let i=n.match(/,([$\w]+)(=[$\w]+\.test\(([$\w]+)\)\?\3:\3\+"(?:…|\\u2026)")/);if(i&&i.index!=null)return{startIndex:t+i.index+i[1].length+1,endIndex:t+i.index+i[1].length+i[2].length+1,identifiers:[i[3]]};let a=n.match(/,([$\w]+)(=\(([^;]{1,200}?)\)\+"(?:…|\\u2026)")/);if(a&&a.index!=null)return{startIndex:t+a.index+a[1].length+1,endIndex:t+a.index+a[1].length+a[2].length+1,identifiers:[a[3]]};let o=/,([$\w]+)(=(\([$\w]+&&![$\w]+\.isIdle\?[$\w]+\.spinnerVerb\?\?[$\w]+:[$\w]+\))\+"(?:…|\\u2026)")/,s=n.match(o);if(s&&s.index!=null)return{startIndex:t+s.index+s[1].length+1,endIndex:t+s.index+s[1].length+s[2].length+1,identifiers:[s[3]]};let c=n.match(/,([$\w]+)(=`\$\{([$\w]+&&![$\w]+\.isIdle\?[$\w]+\.spinnerVerb\?\?[$\w]+:[$\w]+)\}(?:…|\\u2026) ?`)/);if(c&&c.index!=null)return{startIndex:t+c.index+c[1].length+1,endIndex:t+c.index+c[1].length+c[2].length+1,identifiers:[c[3]]};let l=new RegExp(o.source,`g`),u=[...e.matchAll(l)].filter(t=>{if(t.index==null)return!1;let n=e.slice(Math.max(0,t.index-2500),t.index+1e3);return n.includes(`overrideMessage:`)&&n.includes(`.activeForm`)&&n.includes(`.isIdle`)&&n.includes(`.spinnerVerb`)&&n.includes(`spinnerTip`)});if(u.length===1){let e=u[0];return{startIndex:e.index+e[1].length+1,endIndex:e.index+e[1].length+e[2].length+1,identifiers:[e[3]]}}return console.error(`patch: thinker format: failed to find formatMatch`),null},be=(e,t)=>{let n=ye(e);if(!n)return null;let r=n,i=X(t.replace(/\\/g,`\\\\`).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 V(e,s,o,r.startIndex,r.endIndex),s},xe=/=\[\.\.\.([$\w]+),\.\.\.(?:\[\.\.\.\1\]\.reverse\(\)|\1\.toReversed\(\))\]/g,Se=(e,t)=>{let n=[...e.matchAll(xe)];if(n.length===0)return/=\[\.\.\.[$\w]+\],/.test(e)&&!t?e:(console.error(`patch: thinker symbol mirror option: failed to find match`),null);let r=``,i=0,a=``,o=0,s=0;for(let c of n){let n=c.index;if(n===void 0)continue;let l=c[1],u=t?`=[...${l},...${l}.toReversed()]`:`=[...${l}]`;r+=e.slice(i,n)+u,i=n+c[0].length,a=u,o=r.length-u.length,s=r.length}return r+=e.slice(i),V(e,r,a,o,s),r},Ce=(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=X(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);V(s,t,a,o[e].startIndex,o[e].endIndex),s=t}return s},we=(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 V(e,o,r,i,a),o},Te=(e,t)=>{let n=/\{(ref:[$\w]+,)("aria-hidden":!0,)?flexWrap:"wrap",height:1,width:2(,children:[$\w]+)?\}/g,r=[],i;for(;(i=n.exec(e))!==null;)r.push({startIndex:i.index,endIndex:i.index+i[0].length,replacement:`{${i[1]}${i[2]??``}flexWrap:"wrap",height:1,width:${t}${i[3]??``}}`});if(r.length>0)return r;let a=e.match(/\{("aria-hidden":!0,)?flexWrap:"wrap",height:1,width:2\}/);return a&&a.index!=null?[{startIndex:a.index,endIndex:a.index+a[0].length,replacement:`{${a[1]??``}flexWrap:"wrap",height:1,width:${t}}`}]:null},Ee=(e,t)=>{let n=Te(e,t);if(!n||n.length===0)return console.error(`patch: thinker symbol width: failed to find match`),null;let r=[...n].sort((e,t)=>t.startIndex-e.startIndex),i=e;for(let e of r){let t=i.slice(0,e.startIndex)+e.replacement+i.slice(e.endIndex);V(i,t,e.replacement,e.startIndex,e.endIndex),i=t}return i},De=(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=X(JSON.stringify(t)),i=n.index,a=i+n[0].length,o=e.slice(0,i)+r+e.slice(a);return V(e,o,r,i,a),o},Oe=(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=X(JSON.stringify(r)),a=n.index,o=a+n[0].length,s=e.slice(0,a)+i+e.slice(o);return V(e,s,i,a,o),s},ke=(e,t)=>{let n=De(e,t);if(n===null)return null;let r=Oe(n,t);return r===null?null:r},Ae=e=>e.replace(/\\/g,`\\\\`).replace(/`/g,"\\`").replace(/\$\{/g,"\\${"),je=`/*@@TWEAKCC_MODULE:`,Me=(e,t)=>{let n=e.lastIndexOf(je,t);if(n===-1)return e;let r=e.indexOf(je,n+19);return e.slice(n,r===-1?e.length:r)},Ne=e=>{let t=0;for(;;){let n=e.indexOf(`No content found in user prompt message`,t);if(n===-1)return null;let r=n+39,i=e.indexOf(`function `,r),a=i===-1?e.length:i,o=e.slice(n,a),s=/(?<![.$\w])([$\w]+)\([$\w]+,\{text:([$\w]+),useBriefLayout:[$\w]+,timestamp:[$\w]+(?:,[$\w]+:[$\w!.]+)*\}\)/.exec(o);if(!s||s.index===void 0){t=r;continue}let c=s[1],l=s[2],u=o.slice(s.index+s[0].length),d=RegExp(`(?<![.$\\w])${q(c)}\\([$\\w]+,(\\{flexDirection:"column"[^{}]*?)(,children:)([$\\w]+)(\\})\\)`).exec(u);if(!d||d.index===void 0){t=r;continue}let f=s.index+s[0].length+d.index,p=d[0].indexOf(`,{`);if(p===-1){t=r;continue}let m=f+p+1;return{index:n,end:n+(f+d[0].length),prefix:o.slice(0,m),messageVar:l,callExpr:c,originalBoxAttrs:d[1],childrenKeyword:d[2]}}},Pe=(e,t,n)=>{let r=Me(e,t),i=RegExp(`(?<![.$\\w])${q(n)}\\(([$\\w]+),\\{color:"text"`);return r.match(i)?.[1]},Fe=e=>({index:e.index,end:e.index+e[0].length,prefix:e[1],messageVar:e[2],callExpr:`${e[3]}.jsx`,originalBoxAttrs:e[4],childrenKeyword:e[5]}),Ie=e=>{let t=[];if(e.borderStyle!==`none`){if(e.borderStyle.startsWith(`topBottom`)){let n=``;e.borderStyle===`topBottomSingle`?n=`{top:"─",bottom:"─",left:" ",right:" ",topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" "}`:e.borderStyle===`topBottomDouble`?n=`{top:"═",bottom:"═",left:" ",right:" ",topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" "}`:e.borderStyle===`topBottomBold`&&(n=`{top:"━",bottom:"━",left:" ",right:" ",topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" "}`),t.push(`borderStyle:${X(n)}`)}else t.push(`borderStyle:"${e.borderStyle}"`);let n=e.borderColor.match(/\d+/g);n&&t.push(`borderColor:"rgb(${n.join(`,`)})"`)}return e.paddingX!==`default`&&e.paddingX>0&&t.push(`paddingX:${e.paddingX}`),e.paddingY!==`default`&&e.paddingY>0&&t.push(`paddingY:${e.paddingY}`),e.fitBoxToContent&&t.push(`alignSelf:"flex-start"`),t},Le=(e,t,n,r)=>{let{prefix:i,messageVar:a,callExpr:o,originalBoxAttrs:s,childrenKeyword:c,index:l,end:u}=t,d=s.slice(1),f=/backgroundColor:[$\w]+/;if(n.backgroundColor===null)d=d.replace(RegExp(`,?${f.source}`),``).replace(/^,|,$/g,``);else if(n.backgroundColor!==`default`){let e=n.backgroundColor.match(/\d+/g);if(e){let t=`backgroundColor:"rgb(${e.join(`,`)})"`;d=f.test(d)?d.replace(f,t):d?`${d},${t}`:t}}let p=Ie(n);p.length>0&&(d=d?`${d},${p.join(`,`)}`:p.join(`,`));let m=[];if(n.foregroundColor===`default`)m.push(`color:"text"`);else{let e=n.foregroundColor.match(/\d+/g);e&&m.push(`color:"rgb(${e.join(`,`)})"`)}if(n.backgroundColor!==`default`&&n.backgroundColor!==null){let e=n.backgroundColor.match(/\d+/g);e&&m.push(`backgroundColor:"rgb(${e.join(`,`)})"`)}else n.backgroundColor===`default`&&m.push(`backgroundColor:"userMessageBackground"`);n.styling.includes(`bold`)&&m.push(`bold:!0`),n.styling.includes(`italic`)&&m.push(`italic:!0`),n.styling.includes(`underline`)&&m.push(`underline:!0`),n.styling.includes(`strikethrough`)&&m.push(`strikethrough:!0`),n.styling.includes(`inverse`)&&m.push(`inverse:!0`);let h=m.length>0?`${m.join(`,`)},`:``,g=`(typeof ${a}==="object"&&${a}!==null?${a}.head+"\\n("+${a}.hiddenLines+" line"+(${a}.hiddenLines===1?"":"s")+" hidden)\\n"+${a}.tail:${a})`,_=`${o}(${r},{${h}children:${"`"+Ae(n.format).replace(/\{\}/g,()=>"${"+g+`}`)+"`"}})`,v=i+`{${d}`+c+_+`})`,y=e.slice(0,l)+v+e.slice(u);return V(e,y,v,l,u),y},Re=(e,t)=>{let n=/(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]+)[^}]*\}\)\)?))/,r=/(No content found in user prompt message[\s\S]{0,100}?;return )([$\w]+(?:\.default)?)\.createElement\(([$\w]+),(\{flexDirection:"column"[^{}]*\}),([$\w]+(?:\.default)?)\.createElement\(([$\w]+),\{text:([$\w]+)[^{}]*\}\)\)/,i=/(No content found in user prompt message[\s\S]{0,400}?\.jsx\([$\w]+,\{text:([$\w]+),useBriefLayout:[$\w]+,timestamp:[$\w]+(?:,[$\w]+:[$\w!.]+)*\}\)[\s\S]{0,200}?([$\w]+)\.jsx\([$\w]+,)(\{flexDirection:"column"[^{}]*?)(,children:)([$\w]+)(\}\))/,a=Ne(e),o=a?null:e.match(i),s=a||o?null:e.match(r),c=a||o||s?null:e.match(/(No content found in user prompt message.{0,1200}?)([$\w]+)=([$\w]+(?:\.default)?\.createElement)\([$\w]+,\{text:([$\w]+),useBriefLayout:[$\w]+,timestamp:[$\w]+(?:,[$\w]+:[$\w!.]+)*\}\)/),l=a||o||s||c?null:e.match(n);if(!a&&!o&&!s&&(!c||c.index===void 0)&&(!l||l.index===void 0))return console.error(`patch: userMessageDisplay: failed to find user message display pattern`),null;if(a){let n=Pe(e,a.index,a.callExpr)??(e.includes(je)?void 0:dd(e));return n?Le(e,a,t,n):(console.error(`patch: userMessageDisplay: failed to find Text component`),null)}let u=dd(e);if(!u)return console.error(`patch: userMessageDisplay: failed to find Text component`),null;if(o)return Le(e,Fe(o),t,u);let d=e=>`(typeof ${e}==="object"&&${e}!==null?${e}.head+"\\n("+${e}.hiddenLines+" line"+(${e}.hiddenLines===1?"":"s")+" hidden)\\n"+${e}.tail:${e})`;if(s){let n=s[1],r=s[2],i=s[3],a=s[4],o=s[5],c=s[7],l=a.slice(1,-1),f=/backgroundColor:[^,}]+(?:\?[^,}:]+:[^,}:]+)*/;if(t.backgroundColor===null)l=l.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(`,`)})"`;l=l.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:${X(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&&(l=l?`${l},${p.join(`,`)}`:p.join(`,`));let m=`{${l}}`,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`,_=d(c),v=n+`${r}.createElement(${i},${m},${o}.createElement(${u},${g},${"`"+Ae(t.format).replace(/\{\}/g,()=>"${"+_+`}`)+"`"}))`,y=s.index,b=y+s[0].length,x=e.slice(0,y)+v+e.slice(b);return V(e,x,v,y,b),x}let f=pd(e);if(!f)return console.error(`patch: userMessageDisplay: failed to find Box component`),null;let p=ed(e);if(!p)return console.error(`patch: userMessageDisplay: failed to find chalk variable`),null;let m=c??l,h=c?c[3]:l[4],g=c?c[4]:l[6]??l[7],_=[],v=t.borderStyle.startsWith(`topBottom`);if(t.borderStyle!==`none`){if(v){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:" "}`),_.push(`borderStyle:${X(e)}`)}else _.push(`borderStyle:"${t.borderStyle}"`);let e=t.borderColor.match(/\d+/g);e&&_.push(`borderColor:"rgb(${e.join(`,`)})"`)}t.paddingX===`default`?_.push(`paddingRight:1`):t.paddingX>0&&_.push(`paddingX:${t.paddingX}`),t.paddingY!==`default`&&t.paddingY>0&&_.push(`paddingY:${t.paddingY}`),t.fitBoxToContent&&_.push(`alignSelf:"flex-start"`);let y=p,b=[];if(t.foregroundColor!==`default`){let e=t.foregroundColor.match(/\d+/g);e&&(y+=`.rgb(${e.join(`,`)})`)}else b.push(`color:"text"`);if(t.backgroundColor!==`default`&&t.backgroundColor!==null){let e=t.backgroundColor.match(/\d+/g);if(e){y+=`.bgRgb(${e.join(`,`)})`;let t=`"rgb(${e.join(`,`)})"`;_.push(`backgroundColor:${t}`),b.push(`backgroundColor:${t}`)}}else t.backgroundColor===`default`&&(_.push(`backgroundColor:"userMessageBackground"`),b.push(`backgroundColor:"userMessageBackground"`));t.styling.includes(`bold`)&&(y+=`.bold`),t.styling.includes(`italic`)&&(y+=`.italic`),t.styling.includes(`underline`)&&(y+=`.underline`),t.styling.includes(`strikethrough`)&&(y+=`.strikethrough`),t.styling.includes(`inverse`)&&(y+=`.inverse`);let x=d(g),S="`"+Ae(t.format).replace(/\{\}/g,()=>"${"+x+`}`)+"`",C=`${y}(${S})`,w=_.length>0?`{${_.join(`,`)}}`:`null`,T=b.length>0?`{${b.join(`,`)}}`:`null`,E=c?`${c[2]}=`:``,D=m[1]+`${E}${h}(${f},${w},${h}(${u},${T},${C}))`,O=m.index,k=O+m[0].length,A=e.slice(0,O)+D+e.slice(k);return V(e,A,D,O,k),A},ze=(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,t,n)=>{if(t.index===void 0)return null;let[,r,i,a,o,s,c]=t;if([...a.matchAll(/[$\w]+:([$\w]+)\.highlight\?\./g)].map(e=>e[1]).some(e=>e!==o))return console.error(`patch: inputPatternHighlighters: highlight prop run mixes segment variables`),null;let l=n?`${r}.jsx`:r,u=`(${o}.highlight?.style??(typeof ${o}.highlight?.color==="function"?${o}.highlight.color:void 0))`,d=e=>`,${e}:${u}?void 0:${o}.highlight?.${e}`,f=`return ${l}(${i},{${d(`color`).slice(1)}`+d(`backgroundColor`)+`,dimColor:${o}.highlight?.dimColor`+d(`inverse`)+d(`bold`)+d(`italic`)+d(`underline`)+d(`strikethrough`)+`,children:${l}(${s},{children:${u}?${u}(${o}.text):${o}.text})},${c})`,p=e.slice(0,t.index)+f+e.slice(t.index+t[0].length);return V(e,p,f,t.index,t.index+t[0].length),p},Ve=e=>{if(e.includes(`.highlight?.style?void 0:`)||e.includes(`.highlight?.style??(typeof `))return e;let t=e.match(/return ([$\w]+)\(([$\w]+),\{((?:[$\w]+:([$\w]+)\.highlight\?\.[$\w]+,)+)children:\1\(([$\w]+),\{children:\4\.text\}\)\},([$\w]+)\)/);if(t&&t.index!==void 0)return Be(e,t,!1);let n=e.match(/return ([$\w]+)\.jsx\(([$\w]+),\{((?:[$\w]+:([$\w]+)\.highlight\?\.[$\w]+,)+)children:\1\.jsx\(([$\w]+),\{children:\4\.text\}\)\},([$\w]+)\)/);if(n&&n.index!==void 0)return Be(e,n,!0);let r=e.match(/(if\(([$\w]+)\.highlight\?\.color\))((return [$\w]+\.createElement\([$\w]+,\{key:[$\w]+),color:[$\w]+\.highlight\.color(\},[$\w]+\.createElement\([$\w]+,null,)([$\w]+\.text)(\)\)));/);if(r&&r.index!==void 0){let t=`${r[2]}.highlight.color(${r[6]})`,n=r[1]+`{if(typeof ${r[2]}.highlight.color==='function')`+r[4]+r[5]+t+r[7]+`;else `+r[3]+`}`,i=e.slice(0,r.index)+n+e.slice(r.index+r[0].length);return V(e,i,n,r.index,r.index+r[0].length),i}let i=/(return ([$\w]+)\.createElement\(([$\w]+),\{key:([$\w]+)),color:([$\w]+)\.highlight\?\.color,dimColor:\5\.highlight\?\.dimColor,inverse:\5\.highlight\?\.inverse\},(\2\.createElement\([$\w]+,null,\5\.text\))\)/,a=e.match(i);if(!a||a.index===void 0)return console.error(`patch: inputPatternHighlighters: failed to find highlight?.color renderer pattern`),null;let o=a[2],s=a[3],c=a[4],l=a[5];a[6];let u=RegExp(`if\\(${l.replace(`$`,`\\$`)}\\.highlight\\.color\\)return ([$\\w]+)\\.createElement\\([$\\w]+,\\{key:[$\\w]+\\},${l.replace(`$`,`\\$`)}\\.text\\.split\\(""\\)\\.map\\([^)]+\\)\\)`),d=e,f=d.match(u);if(f&&f.index!==void 0){let e=`if(typeof ${l}.highlight?.color==='function')return ${o}.createElement(${s},{key:${c}},${o}.createElement(${s},null,${l}.highlight.color(${l}.text)));`;d=d.slice(0,f.index)+e+d.slice(f.index)}let p=d.match(i);if(!p||p.index===void 0)return console.error(`patch: inputPatternHighlighters: failed to re-find renderer after shimmer patch`),null;let m=p[2],h=p[3],g=p[4],_=p[5],v=p[6],y=`${_}.highlight?.style?${_}.highlight.style(${_}.text):${_}.text`,b=`return ${m}.createElement(${h},{key:${g},color:${_}.highlight?.style?void 0:${_}.highlight?.color,backgroundColor:${_}.highlight?.style?void 0:${_}.highlight?.backgroundColor,dimColor:${_}.highlight?.dimColor,inverse:${_}.highlight?.style?void 0:${_}.highlight?.inverse,bold:${_}.highlight?.style?void 0:${_}.highlight?.bold,italic:${_}.highlight?.style?void 0:${_}.highlight?.italic,underline:${_}.highlight?.style?void 0:${_}.highlight?.underline,strikethrough:${_}.highlight?.style?void 0:${_}.highlight?.strikethrough},${v.replace(`${_}.text`,y)})`,x=d.slice(0,p.index)+b+d.slice(p.index+p[0].length);return V(e,x,`shimmer guard + renderer`,0,0),x},He=(e,t,n)=>{let r=e.match(/([$\w]+;if\()([^()]{0,1500}?)(\)\{let [$\w]+=\[\];[\s\S]{0,3000}?)(if\([$\w]+&&[$\w]+&&![$\w]+\)([$\w]+)\.push\(\{start:[$\w]+,end:[$\w]+\+[$\w]+\.length,color:"warning",priority:\d+\}\))/),i=/((?:let |;|,)[$\w]+=[$\w]+\(\(\)=>\{let [$\w]+=\[\];[\s\S]{0,2000}?)(if\([$\w]+&&[$\w]+&&![$\w]+\)([$\w]+)\.push\(\{start:[$\w]+,end:[$\w]+\+[$\w]+\.length,color:"warning",priority:\d+\})/,a=/((?:,|;let )[$\w]+=[$\w]+\.useMemo\(\(\)=>\{let [$\w]+=\[\];[\s\S]{0,2000}?)(if\([$\w]+&&[$\w]+&&![$\w]+\)([$\w]+)\.push\(\{start:[$\w]+,end:[$\w]+\+[$\w]+\.length,color:"warning",priority:\d+\})/,o,s,c,l,u;if(r&&r.index!==void 0){let[,e,t,n,i,a]=r;o=r.index,s=r[0].length,c=e+t+`||!0`+n,l=i,u=a}else{let t=e.match(i),n=t&&t.index!==void 0?t:e.match(a);if(!n||n.index===void 0)return console.error(`patch: inputPatternHighlighters: failed to find useMemo/push pattern`),null;o=n.index,s=n[0].length,c=n[1],l=n[2],u=n[3]}let d=$u(e,o);d||console.log(`patch: inputPatternHighlighters: no chalk binding in the target module — using declarative styling props`);let f=Math.max(0,o-2e4),p=e.slice(f,o),m=[...p.matchAll(/[,{]draft:([$\w]+)[,}]/g)].at(-1)?.[1],h=/\binputValue:([$\w]+),/g,g=/\binput:([$\w]+),/g,_=[...p.matchAll(h)],v=[...p.matchAll(g)],y=_.at(-1)??v.at(-1)??null,b=m?`${m}.value`:y?.[1]??null;if(!b)return console.error(`patch: inputPatternHighlighters: failed to find input variable pattern (looked for draft:, inputValue: and input:)`),null;let x=``;for(let e=0;e<n.length;e++){let t=n[e],r=d?ze(d,t):null,i=t.format??`{MATCH}`;JSON.stringify(i).replace(/\{MATCH\}/g,`"+x+"`);let a=t.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`,s=t.backgroundColor;if(s){let e=s.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);if(e){let[,t,n,r]=e.map(Number);s=`#${t.toString(16).padStart(2,`0`)}${n.toString(16).padStart(2,`0`)}${r.toString(16).padStart(2,`0`)}`}}let c=s?JSON.stringify(s):null,l=t.styling??[],f=l.includes(`bold`),p=l.includes(`italic`),m=l.includes(`underline`),h=l.includes(`inverse`),g=l.includes(`dim`),_=l.includes(`strikethrough`),v=t.regex??t.pattern;if(!v){console.error(`patch: inputPatternHighlighters: highlighter "${t.name}" has no regex/pattern; skipping`);continue}let y=t.regexFlags??``;y.includes(`g`)||(y+=`g`);let S;try{S=new RegExp(v,y)}catch(e){console.error(`patch: inputPatternHighlighters: highlighter "${t.name}" has invalid regex; skipping`,e);continue}let C=Jd(S);x+=`if(typeof ${b}==="string"){for(let m of ${b}.matchAll(${C})){${u}.push({start:m.index,end:m.index+m[0].length,color:${o}${c?`,backgroundColor:${c}`:``}${f?`,bold:!0`:``}${p?`,italic:!0`:``}${m?`,underline:!0`:``}${h?`,inverse:!0`:``}${g?`,dimColor:!0`:``}${_?`,strikethrough:!0`:``}${r?`,style:(x)=>${r}(x)`:``},priority:100})}}`}if(!x)return console.error(`patch: inputPatternHighlighters: no usable highlighters generated (all skipped)`),null;let S=c+x+l,C=e.slice(0,o),w=e.slice(o+s),T=C+``+S+w,E=r?-1:T.indexOf(`for(let m of ${b}.matchAll(`);if(E>-1){let e=[...T.slice(Math.max(0,E-2e3),E).matchAll(/[$\w]+\(\(\)=>\{/g)];if(e.length>0){let t=Math.max(0,E-2e3)+e[e.length-1].index,n=T.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;T.slice(n-1,n)===`]`&&(T.slice(n-200,n).includes(`,${b}]`)||(T=T.slice(0,n-1)+`,${b}]`+T.slice(n)));break}}}return V(e,T,``+S,o,o+s),T},Ue=(e,t)=>{let n=t.filter(e=>e.enabled!==!1);if(n.length===0)return console.error(`patch: inputPatternHighlighters: no enabled highlighters provided`),null;let r=ed(e);if(!r)return console.error(`patch: inputPatternHighlighters: failed to find chalk variable`),null;let i;return i=Ve(e),i?(i=He(i,r,n),i||(console.error(`^ patch: inputPatternHighlighters: writeCustomHighlighterCreation failed`),null)):(console.error(`^ patch: inputPatternHighlighters: writeCustomHighlighterImpl failed`),null)},We=e=>{let t=e.match(/(?:[$\w]+\.)?createElement\([$\w]+,\{(?=[^}]*responseLengthRef:)(?=[^}]*spinnerSuffix:)(?=[^}]*thinkingStatus:)(?=[^}]*isCompacting:)[^}]*verbose:[^,}]+[^}]*\}/);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},Ge=e=>{let t=We(e);if(!t)return null;let n=e.slice(0,t.startIndex)+t.replacement+e.slice(t.endIndex);return V(e,n,t.replacement,t.startIndex,t.endIndex),n},Ke=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 V(e,c,s,t.index,t.index+n.length),c},qe=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 V(e,r,n,t.index,t.index+t[0].length),r},Je=e=>{let t=e.match(/(if\s*\(\s*([$\w]+)\s*===\s*"opusplan"\s*\)\s*return\s*"([^"]*Opus[^"]*plan mode[^"]*Sonnet[^"]*)";)/);if(!t||t.index===void 0)return console.error(`patch: opusplan1m: patchDescriptionFunction: failed to find description pattern`),null;let[n,,r,i]=t,a=n+`if(${r}==="opusplan[1m]")return"${i} (1M context)";`,o=e.slice(0,t.index)+a+e.slice(t.index+n.length);return V(e,o,a,t.index,t.index+n.length),o},Ye=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 V(e,a,i,t.index,t.index+n.length),a},Xe=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*\\[\\.\\.\\.${q(i)}`)),o=a?a[1]:null,s=`{value:"opusplan[1m]",label:"Opus Plan Mode 1M",description:"Use Opus in plan mode, Sonnet (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 V(e,l,c,t.index,t.index+n.length),l},Ze=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 in plan mode, Sonnet otherwise"});${n}.push({value:"opusplan[1m]",label:"Opus Plan Mode 1M",description:"Use Opus in plan mode, Sonnet (1M context) otherwise"});`,i=e.slice(0,t.index)+r+e.slice(t.index);return V(e,i,r,t.index,t.index),i},Qe=e=>{if(e.includes(`"opusplan[1m]"`))return console.log(`patch: opusplan1m: opusplan[1m] already supported natively — skipping`),e;let t=e,n=Ke(t);if(n)t=n;else return console.error(`patch: opusplan1m: failed to apply mode switching patch`),null;if(n=qe(t),n)t=n;else return console.error(`patch: opusplan1m: failed to apply model aliases list patch`),null;if(n=Je(t),n)t=n;else return console.error(`patch: opusplan1m: failed to apply description function patch`),null;if(n=Ye(t),n)t=n;else return console.error(`patch: opusplan1m: failed to apply label function patch`),null;if(n=Xe(t),n)t=n;else return console.error(`patch: opusplan1m: failed to apply model selector options patch`),null;if(n=Ze(t),n)t=n;else return console.error(`patch: opusplan1m: failed to apply always-show-in-selector patch`),null;return t},$e=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(/if\(!([$\w]+)&&!([$\w]+)\)\{?return null\}?;?(.{0,400}?isTranscriptMode:)\1,verbose:\2/);if(t&&t.index!==void 0){let n=t[3]+`true,verbose:`+t[2],r=t.index,i=r+t[0].length,a=e.slice(0,r)+n+e.slice(i);return V(e,a,n,r,i),a}let n=e.match(/(case"thinking":\{?)(if\(![$\w]+&&![$\w]+\)\{?return null\}?;?)(.{0,400}isTranscriptMode:).+?,/);if(!n||n.index===void 0)return console.error(`patch: thinkingVisibility: failed to find thinking visibility pattern`),null;let r=n[1]+n[3]+`true,`,i=n.index,a=i+n[0].length,o=e.slice(0,i)+r+e.slice(a);return V(e,o,r,i,a),o},et=(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].slice(0,-1)+JSON.stringify(t),i=n.index,a=i+n[0].length,o=e.slice(0,i)+r+e.slice(a);return V(e,o,r,i,a),o},tt=(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].slice(0,-1)+JSON.stringify(t),i=n.index,a=i+n[0].length,o=e.slice(0,i)+r+e.slice(a);return V(e,o,r,i,a),o},nt=(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*)"[^"]+"/,(e,n)=>n+JSON.stringify(t))+i:r+`${r.trim().endsWith(`,`)?``:`,`}model:`+JSON.stringify(t)+i;let o=n.index,s=o+n[0].length,c=e.slice(0,o)+a+e.slice(s);return V(e,c,a,o,s),c},rt=(e,t)=>{let n=e;if(t.plan){let e=et(n,t.plan);if(e===null)return null;n=e}if(t.explore){let e=tt(n,t.explore);if(e===null)return null;n=e}if(t.generalPurpose){let e=nt(n,t.generalPurpose);if(e===null)return null;n=e}return n},it=(e,t,n,r)=>`${e}.createElement(${t}, null, ${e}.createElement(${n}, {color: "success", bold: true}, "\\u2503 "), ${e}.createElement(${n}, {dimColor: true}, \` * ${X(r)}\`)),`,at=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}},ot=e=>{let t=e.match(/([$\w]+)\.jsxs\(([$\w]+),\{children:\[(?:[^[\]]{0,200})," ",([$\w]+)\.jsxs\(([$\w]+),\{dimColor:!0,children:\["v",[$\w]+\]\}\)\]\}\)/);if(t&&t.index!==void 0)return{jsxInline:{insertIndex:t.index+t[0].length-3,helper:t[1],textComponent:t[2]}};let n=e.match(/createElement\(([$\w]+),\{bold:!0\},"Claude Code"\),([$\w]+)\[\d+\]=[$\w]+;else [$\w]+=([$\w]+)\[\d+\]/);if(!n||n.index===void 0)return console.error(`patch: patchesAppliedIndication: PATCH 2 failed to find bold Claude Code pattern`),null;let r=n[1],i=n.index+n[0].length,a=e.indexOf(`;`,i);if(a===-1)return null;let o=a+1,s=e.match(/[^$\w]([$\w]+)\.createElement\(([$\w]+),null,[$\w]+," ",([$\w]+)\.createElement\(([$\w]+),\{dimColor:!0\},"v",[$\w]+\)\)/);if(!s||s.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:o,refInsertIndex:t.index+t[0].length,reactVar:t[1],textComponent:r}}return{varInsertIndex:o,refInsertIndex:s.index+s[0].length-1,reactVar:s[1],textComponent:r}},st=e=>{let t=e.match(/[,;){}\]]([$\w]+)=([$\w]+)\.jsxs\(([$\w]+),\{children:\[(?:[^[\]]{0,200})," ",[$\w]+\.jsxs\([$\w]+,\{dimColor:!0,children:\["v",[$\w]+\]\}\)/);if(!t||t.index===void 0)return null;let n=t[1],r=t.index,i=e.slice(r,r+4e3),a=RegExp(`[$\\w]+\\.jsxs\\([$\\w]+,\\{flexDirection:"column",children:\\[(?:[^[\\]]*?,)?${q(n)}[,\\]]`),o=i.match(a);if(!o||o.index===void 0)return null;let s=r+o.index,c=e.indexOf(`children:[`,s)+10;if(c<10)return null;let l=1,u=-1;for(let t=c;t<e.length;t++){let n=e[t];if(n===`[`)l++;else if(n===`]`&&(l--,l===0)){u=t;break}}return u===-1?null:{startIndex:u,endIndex:u}},ct=e=>{let t=st(e);if(t)return t;let n=e.match(/"Claude Code".{0,200}\{dimColor:!0\},"v",[$\w]+\)/);if(!n||n.index===void 0)return console.error(`patch: patchesAppliedIndication: failed to find version display for patch 3`),null;let r={index:n.index},i=Math.max(0,r.index-5e3),a=e.slice(i,r.index),o=Array.from(a.matchAll(/[};]\s*function ([$\w]+)\(/g));if(o.length===0)return console.error(`patch: patchesAppliedIndication: failed to find header component function`),null;let s=o[o.length-1][1],c=RegExp(`[^$\\w]([$\\w]+)\\.createElement\\(${q(s)},null\\),?`),l=e.match(c);if(!l||l.index===void 0)return console.error(`patch: patchesAppliedIndication: failed to find createElement call for header`),null;let u=e.slice(Math.max(0,l.index-30),l.index+1).match(/([$\w]+)=(?:[$\w]+&&)?[^$\w]?$/);if(u){let t=u[1],n=e.slice(l.index,l.index+2e3),r=RegExp(`,${q(t)}([,\\)])`),i=n.match(r);if(i&&i.index!==void 0){let e=l.index+i.index+i[0].length-i[1].length;return{startIndex:e,endIndex:e}}}let d=l.index+l[0].length;return{startIndex:d,endIndex:d}},lt=/([$\w]+)=([$\w]+)\(([$\w]+),\{children:\[[$\w]+," ",([$\w]+)\(([$\w]+),\{dimColor:!0,children:\["v",[$\w]+\]\}\)\]\}\)/,ut=/([$\w]+)\(([$\w]+),\{flexDirection:"row",gap:2,alignItems:"center",children:\[[$\w]+,[$\w]+\]\}\)/y,dt=`/*@@TWEAKCC_MODULE:`,ft=(e,t)=>{let n=e.lastIndexOf(dt,t);return n===-1?0:n},pt=(e,t)=>{let n=Math.max(ft(e,t),t-4e3),r=e.slice(n,t),i=/([$\w]+)\(([$\w]+),\{bold:!0,children:"Claude Code"\}\)/g,a=null;for(let e=i.exec(r);e!==null;e=i.exec(r))a=e;return a?{jsx:a[1],text:a[2]}:null},mt=(e,t,n,r,i)=>{let a=[`${t}(${n},{children:[${e}(${r},{color:"success",bold:!0,children:"\\u2503 "}),${e}(${r},{color:"success",bold:!0,children:"\\u2713 tweakcc-fixed patches are applied"})]})`];for(let o of i){let i=X(JSON.stringify(` * ${o}`));a.push(`${t}(${n},{children:[${e}(${r},{color:"success",bold:!0,children:"\\u2503 "}),${e}(${r},{dimColor:!0,children:${i}})]})`)}return`${t}(${n},{flexDirection:"column",children:[${a.join(`,`)}]})`},ht=(e,t,n,r,i)=>{let a=!1,o=!1;if(r&&!e.includes(`+ tweakcc v${t}`)){let n=`,{dimColor:!0,children:["v"`,r=e.indexOf(n);for(;r!==-1&&!a;){let i=Math.max(0,r-180),o=e.slice(i,r+80).match(lt);if(o&&o.index!==void 0){let n=i+o.index,r=pt(e,n),s=`," ",${r?.jsx??o[4]}(${r?.text??o[5]},{color:"warning",bold:!0,children:${X(JSON.stringify(`+ tweakcc v${t}`))}})`,c=n+o[0].length-3,l=e;e=e.slice(0,c)+s+e.slice(c),V(l,e,s,c,c),a=!0;break}r=e.indexOf(n,r+27)}}if(i&&!e.includes(`tweakcc-fixed patches are applied`)){let t=`,{flexDirection:"row",gap:2,alignItems:"center",children:[`,r=null;for(let n=e.indexOf(t);n!==-1&&!r;n=e.indexOf(t,n+58)){let t=/[$\w]+\([$\w]+$/.exec(e.slice(Math.max(0,n-40),n));t&&(ut.lastIndex=n-t[0].length,r=ut.exec(e))}if(!r)return e.includes(dt)&&console.error(`patch: patchesAppliedIndication: failed to find the startup banner row for the patches list`),{content:e,didVersion:a,didList:o};let i=r.index,s=r[1],c=r[2],l=pt(e,i);if(!l||l.text===c)return console.error(`patch: patchesAppliedIndication: failed to find the Text component near the startup banner`),{content:e,didVersion:a,didList:o};let u=mt(l.jsx,s,c,l.text,n),d=`${s}(${c},{flexDirection:"column",children:[${r[0]},${u}]})`,f=e;e=e.slice(0,i)+d+e.slice(i+r[0].length),V(f,e,d,i,i+d.length),o=!0}return{content:e,didVersion:a,didList:o}},gt=(e,t,n,r=!0,i=!0)=>{let a=at(e);if(!a)return console.error(`patch: patchesAppliedIndication: failed to version output location`),null;let o=`\\n${t} (tweakcc-fixed)`,s=`}.VERSION} (Claude Code)`,c=e.replaceAll(s,s+o);V(e,c,o,a.endIndex,a.endIndex);let l=ht(c,t,n,r,i);c=l.content;let u=r&&!l.didVersion,d=i&&!l.didList;if(!u&&!d)return c;if(c.includes(dt))return console.error(`patch: patchesAppliedIndication: failed to patch the imported-jsx header; the legacy createElement paths do not apply to a code-split bundle`),l.didVersion||l.didList?c:null;let f=ed(e);if(!f)return!l.didVersion&&!l.didList?(console.error(`patch: patchesAppliedIndication: failed to find chalk variable`),null):c;let p=dd(e);if(!p)return!l.didVersion&&!l.didList?(console.error(`patch: patchesAppliedIndication: failed to find text component`),null):c;let m=ad(e);if(!m)return!l.didVersion&&!l.didList?(console.error(`patch: patchesAppliedIndication: failed to find React variable`),null):c;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=ot(c);if(!n)console.error(`patch: patchesAppliedIndication: patch 2 skipped (header version pattern changed)`);else if(`jsxInline`in n){let{insertIndex:e,helper:r,textComponent:i}=n.jsxInline,a=`," ",${r}.jsx(${i},{children:${f}.hex("#FF8400").bold("+ tweakcc v${t}")})`,o=c;c=c.slice(0,e)+a+c.slice(e),V(o,c,a,e,e)}else{let e=`let _tw=${n.reactVar}.createElement(${n.textComponent},null,${f}.hex("#FF8400").bold("+ tweakcc v${t}"));`,r=c;c=c.slice(0,n.varInsertIndex)+e+c.slice(n.varInsertIndex),V(r,c,e,n.varInsertIndex,n.varInsertIndex);let i=n.refInsertIndex+e.length,a=`," ",_tw`,o=c;c=c.slice(0,i)+a+c.slice(i),V(o,c,a,i,i)}}if(i){let e=pd(c);if(!e)return console.error(`patch: patchesAppliedIndication: PATCH 3 skipped (Box component not located on this CC version)`),c;let t=c.match(/([$\w]+)=([$\w]+)\.jsxs\(([$\w]+),\{flexDirection:"row",gap:2,alignItems:"center",children:\[[$\w]+,[$\w]+\.jsxs\([$\w]+,\{flexDirection:"column",children:\[[$\w,]+\]\}\)\]\}\)/);if(t&&t.index!==void 0){let r=t[1],i=t[2],a=t[3],o=t[0].slice(r.length+1),s=[`${m}.createElement(${e}, { flexDirection: "column" },`,`${m}.createElement(${e}, null, ${m}.createElement(${p}, {color: "success", bold: true}, "\\u2503 "), ${m}.createElement(${p}, {color: "success", bold: true}, "\\u2713 tweakcc-fixed patches are applied")),`];for(let t of n)t=t.replace(`CHALK_VAR`,f),s.push(it(m,e,p,t));s.push(`)`);let l=`${r}=${i}.jsxs(${a},{flexDirection:"column",children:[${o},${s.join(`
17
17
  `)}]})`,u=c;c=c.slice(0,t.index)+l+c.slice(t.index+t[0].length),V(u,c,l,t.index,t.index+l.length)}else{let t=ct(c);if(!t)console.log(`patch: patchesAppliedIndication: patch 3 skipped (see prior message)`);else{let r=[];r.push(`,${m}.createElement(${e}, { flexDirection: "column" },`),r.push(`${m}.createElement(${e}, null, ${m}.createElement(${p}, {color: "success", bold: true}, "\\u2503 "), ${m}.createElement(${p}, {color: "success", bold: true}, "\\u2713 tweakcc-fixed patches are applied")),`);for(let t of n)t=t.replace(`CHALK_VAR`,f),r.push(it(m,e,p,t));r.push(`),`);let i=r.join(`
18
- `);t.startIndex>0&&c[t.startIndex-1]===`,`&&i.startsWith(`,`)&&(i=i.slice(1)),i.endsWith(`,`)&&c[t.startIndex]===`,`&&(i=i.slice(0,-1));let a=c;c=c.slice(0,t.startIndex)+i+c.slice(t.endIndex),V(a,c,i,t.startIndex,t.endIndex)}}}return c},_t=(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};function vt(){try{let e=S(import.meta.url),t=p.dirname(e);for(let e=0;e<5;e++){let e=p.join(t,`data`,`prompts`),n=p.join(t,`package.json`);if(s.existsSync(n)&&s.existsSync(e))return e;let r=p.dirname(t);if(r===t)break;t=r}}catch{}return null}function yt(e){return e.map(e=>/^prompts-(\d+\.\d+\.\d+)\.json$/.exec(e)?.[1]).filter(e=>e!==void 0).sort((e,t)=>e.localeCompare(t,void 0,{numeric:!0})).at(-1)??null}function bt(){let e=vt();if(!e)return null;try{return yt(s.readdirSync(e))}catch{return null}}function xt(e,t,n){return e??t??n()}const St=e=>typeof e==`object`&&!!e&&!Array.isArray(e)&&`prompts`in e&&Array.isArray(e.prompts);async function Ct(e){let t=vt();if(t){let n=p.join(t,`prompts-${e}.json`);try{let e=await a.readFile(n,`utf-8`);return JSON.parse(e)}catch{}}if(O&&_t(e,O)>0)throw Error(`tweakcc-fixed ${D} carries prompts through Claude Code ${O}, and ${e} is newer. Run \`npx -y tweakcc-fixed@latest --apply\` to pick up a release that covers it.`);let n=p.join(qd,`v${D}`),r=p.join(n,`prompts-${e}.json`),i=await(async()=>{try{let e=JSON.parse(await a.readFile(r,`utf-8`));return St(e)?e:null}catch{return null}})();if(i)return i;let o=`https://raw.githubusercontent.com/skrabe/tweakcc-fixed/refs/tags/v${D}/data/prompts/prompts-${e}.json`;try{let t=await fetch(o,{signal:AbortSignal.timeout(2e4)});if(!t.ok){let n;throw n=t.status===429?`Rate limit exceeded. GitHub has temporarily blocked requests. Please wait a few minutes and try again.`:t.status===404?`Prompts file not found for Claude Code v${e} in tweakcc-fixed v${D}. That release carries the prompts published with it — check https://github.com/skrabe/tweakcc-fixed for a release covering this Claude Code.`:t.status>=500?`GitHub server error (${t.status}). Please try again later.`:`HTTP ${t.status}: ${t.statusText}`,Error(n)}let i=JSON.parse(await zd(t));if(!St(i))throw Error(`The prompts file for Claude Code ${e} has no prompts array`);let s=p.join(n,`.prompts-${e}.${x()}.tmp`),c=!1;try{await a.mkdir(n,{recursive:!0}),await a.writeFile(s,JSON.stringify(i,null,2),`utf-8`),await a.rename(s,r),c=!0}catch(e){await a.rm(s,{force:!0}).catch(()=>{}),console.warn(`Failed to write to cache to ${r}: ${e}`)}if(c)try{for(let e of await a.readdir(qd,{withFileTypes:!0})){let t=e.isDirectory()&&/^v\d+\.\d+\.\d+(?:[-+][\w.-]+)?$/.test(e.name)&&e.name!==`v${D}`,n=e.isFile()&&/^prompts-.+\.json$/.test(e.name);if(!t&&!n)continue;let r=p.join(qd,e.name);try{await a.rm(r,{recursive:t,force:!0})}catch(e){console.warn(`Failed to remove cache entry ${r}: ${e}`)}}}catch(e){console.warn(`Failed to sweep cache ${qd}: ${e}`)}return i}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 wt=()=>p.join(Z,`systemPromptOriginalHashes.json`),Tt=()=>p.join(Z,`systemPromptAppliedHashes.json`),Et=(e,t)=>`${e}-${t}`,Dt=e=>g.createHash(`md5`).update(e.trim(),`utf8`).digest(`hex`),Ot=async e=>{try{return JSON.parse(await a.readFile(e,`utf8`))}catch(t){if(t instanceof Error&&`code`in t&&t.code===`ENOENT`)return{};if(t instanceof SyntaxError)return J(`${e} was not valid JSON — ignoring it and rebuilding.`),{};throw t}},kt=async(e,t)=>{await a.mkdir(Z,{recursive:!0});let n={};for(let e of Object.keys(t).sort())n[e]=t[e];let r=`${e}.tmp-${process.pid}`;try{await a.writeFile(r,JSON.stringify(n,null,2),`utf8`),await a.rename(r,e)}catch(e){try{await a.unlink(r)}catch{}throw e}},At=async()=>Ot(wt()),jt=async e=>kt(wt(),e),Mt=async e=>{let t=await At(),n=0;for(let r of e.prompts){let e=Et(r.id,r.version);t[e]||(t[e]=Dt(Tr(r.pieces,r.identifiers,r.identifierMap)),n++)}return await jt(t),n},Nt=async(e,t)=>(await At())[Et(e,t)],Pt=async()=>Ot(Tt()),Ft=async e=>kt(Tt(),e),It=async e=>{if(Object.keys(e).length===0)return;let t=await Pt();for(let[n,r]of Object.entries(e))t[n]=r;await Ft(t)},Lt=async()=>{let e=await Pt(),t={};for(let n of Object.keys(e))t[n]=null;await Ft(t)},Rt=async e=>{try{let t=await Pt();if(Object.keys(t).length===0)return!1;let n=(await a.readdir(e)).filter(e=>e.endsWith(`.md`));for(let r of n){let n=t[r.replace(`.md`,``)];if(n==null)continue;let i=p.join(e,r),o=await a.readFile(i,`utf8`);if(Dt((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}},zt=e=>e.replace(/\r\n?/g,`
19
- `),Bt=(e,t)=>{let n=y(zt(t),{delimiters:[`<!--`,`-->`]}),r=n.data,i=(n.content??``).replace(/^\n+/,``).replace(/\n+$/,``);return{id:e,name:typeof r.name==`string`?r.name:e,description:typeof r.description==`string`?r.description:``,ccVersion:typeof r.ccVersion==`string`?r.ccVersion:``,placeholders:Array.isArray(r.placeholders)?r.placeholders.filter(e=>typeof e==`string`):[],body:i,isSuppressed:i.trim().length===0}},Vt=(e,t,n,r,i)=>{let a={name:e,description:t,ccVersion:n};return r.length>0&&(a.placeholders=r),Sr(i,a)},Ht=async e=>{let t=u.join(Kd,`${e}.md`);try{return Bt(e,await a.readFile(t,`utf8`))}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return null;throw e}},Ut=async(e,t,n,r,i,o)=>{let s=u.join(Kd,`${e}.md`);try{return await a.stat(s),!1}catch(e){if(!(e instanceof Error&&`code`in e&&e.code===`ENOENT`))throw e}return await a.mkdir(u.dirname(s),{recursive:!0}),await a.writeFile(s,Vt(t,n,r,i,o)),!0},Wt=(e,t)=>{let n=[],r=new Set(Object.keys(t)),i=/\{\{\s*([a-zA-Z_][a-zA-Z0-9_]*)\s*\}\}/g,a;for(;(a=i.exec(e))!==null;)r.has(a[1])||n.push(`unknown placeholder "{{${a[1]}}}"; allowed: ${[...r].map(e=>`{{${e}}}`).join(`, `)||`(none)`}`);if(n.length>0)return{result:``,errors:n};let o=e.split(i),s=``;for(let e=0;e<o.length;e++)e%2==0?s+=X(o[e].replace(/\\/g,`\\\\`).replace(/`/g,"\\`").replace(/\$\{/g,"\\${")):s+=t[o[e]];return{result:s,errors:[]}},F=(e,t,n,r,i)=>{let a=e.match(t);if(!a||a.index===void 0)return i&&i(e)?e:(console.error(`patch: reminder ${r}: failed to find anchor`),null);let o=n(a),s=e.slice(0,a.index)+o+e.slice(a.index+a[0].length);return V(e,s,o,a.index,a.index+a[0].length),s},Gt=e=>RegExp(`${e}:\\(([$\\w]+)\\)=>([$\\w]+)\\(\\[([$\\w]+)\\(\\{content:\`((?:[^\`\\\\]|\\\\.)*)\`,isMeta:!0\\}\\)\\]\\)`),Kt=(e,t,n)=>{let r=e.match(RegExp(`\\$\\{((?:[$\\w]+\\()*${t}\\.${n}\\)*)\\}`));return r?r[1]:null},I=(e,t)=>({placeholder:e,resolve:(e,n)=>Kt(e,n,t)}),qt=e=>({placeholder:e,resolve:(e,t)=>e.match(RegExp(`\\$\\{(${t}\\.pageCount===null\\?"page count unknown":(?:\`(?:[^\`\\\\]|\\\\.|\\$\\{[^}]*\\})*\`|"[^"]*"))\\}`))?.[1]??`${t}.pageCount===null?"page count unknown":${t}.pageCount+(${t}.pageCount===1?" page":" pages")`}),Jt=(e,t)=>{let n=`${t}.wholeRefusedByModel?`,r=null;for(let t of sn(e)){if(!t.startsWith(n)||t[n.length]!=="`")continue;let e=rn(t,n.length);if(e<0||t[e+1]!==`:`)continue;let i={head:n,refused:t.slice(n.length,e+1),otherwise:t.slice(e+2)};if(i.otherwise!==`""`)return i;r??=i}return r},Yt=e=>({placeholder:e,optional:!0,resolve:(e,t)=>{let n=Jt(e,t);return n?`${n.head}${n.refused}:""`:e.includes(`wholeRefusedByModel`)?null:`""`}}),Xt=e=>({placeholder:e,resolve:(e,t)=>{let n=Jt(e,t);return n?n.otherwise===`""`?null:`${n.head}${n.refused}:${n.otherwise}`:e.includes(`wholeRefusedByModel`)?null:`"This PDF is too large to read all at once."`}}),Zt=e=>({placeholder:e,resolve:(e,t)=>e.match(/\$\{([$\w]+\.name)\}/)?.[1]??e.match(/\$\{([$\w]+)\}/g)?.map(e=>e.slice(2,-1)).find(e=>e!==t)??null}),Qt=(e,t)=>{let n=e.match(Gt(t));return!n||n.index===void 0?null:{index:n.index,length:n[0].length,hParam:n[1],wrapFn:n[2],metaFn:n[3],template:n[4]}},$t=(e,t)=>{let n=RegExp(`${t}:\\(([$\\w]+)\\)=>([$\\w]+)\\(\\[([$\\w]+)\\(\\{content:`),r=e.match(n);if(!r||r.index===void 0)return null;let i=r.index+r[0].length-8-1;if(e[i]!==`{`)return null;let a=L(e,i);if(a<0)return null;let o=e.slice(i+1,a);return!o.startsWith(`content:`)||!o.endsWith(`,isMeta:!0`)||e.slice(a+1,a+1+3)!==`)])`?null:{index:r.index,length:a+1+3-r.index,hParam:r[1],wrapFn:r[2],metaFn:r[3],template:o.slice(8,o.length-10)}},en=(e,t)=>{let n=RegExp(`${t}:\\(([$\\w]+)\\)=>\\{`),r=e.match(n);if(!r||r.index===void 0)return null;let i=r.index+r[0].length-1,a=L(e,i);if(a<0)return null;let o=e.slice(i+1,a),s=/return ([$\w]+)\(\[([$\w]+)\(\{content:/g,c=null;for(let e=s.exec(o);e;e=s.exec(o))c=e;let l=/return ?\(\(c\)=>c\.trim\(\)===""\?\[\]:([$\w]+)\(\[([$\w]+)\(\{content:c,isMeta:!0\}\)\]\)\)\(/g,u=null;for(let e=l.exec(o);e;e=l.exec(o))u=e;if(u&&(!c||u.index>c.index)){let t=i+1+u.index+u[0].length-1,n=L(e,t);return n===a-1?{index:r.index,length:a+1-r.index,hParam:r[1],wrapFn:u[1],metaFn:u[2],template:o.slice(0,u.index)+e.slice(t+1,n),blockPreamble:o.slice(0,u.index)}:null}if(!c)return null;let d=i+1+c.index+c[0].length-1-8;if(e[d]!==`{`)return null;let f=L(e,d);if(f<0)return null;let p=e.slice(d+1,f);return!p.startsWith(`content:`)||!p.endsWith(`,isMeta:!0`)||e.slice(f+1,a)!==`)])`?null:{index:r.index,length:a+1-r.index,hParam:r[1],wrapFn:c[1],metaFn:c[2],template:o.slice(0,c.index)+p.slice(8,p.length-10),blockPreamble:o.slice(0,c.index)}},tn=(e,t,n,r,i)=>{let a=t.replace(/_/g,`-`),o=Qt(e,t)??$t(e,t)??en(e,t);if(!o)return RegExp(`${t}:\\([$\\w]+\\)=>\\[\\]`).test(e)?e:(console.error(`patch: reminder ${a}: failed to find anchor`),null);let{index:s,length:c,hParam:l,wrapFn:u,metaFn:d,template:f,blockPreamble:p}=o,m;if(i)m=`${t}:(${l})=>[]`;else{let e=xn(a,r,n.map(e=>({token:e.placeholder,expr:r.includes(e.placeholder)?e.resolve(f,l):null,optional:e.optional})));if(e===null)return null;let i=bn(u,d,r,e);m=p===void 0?`${t}:(${l})=>${i}`:`${t}:(${l})=>{${p}return ${i}}`}let h=e.slice(0,s)+m+e.slice(s+c);return V(e,h,m,s,s+m.length),h},nn={"{":`}`,"(":`)`,"[":`]`},L=(e,t)=>{let n=e[t],r=nn[n];if(r===void 0)return-1;let i=0,a=!1,o=!1,s=!1,c=0;for(let l=t;l<e.length;l++){let t=e[l],u=e[l-1];if(o)t===`\\`?l++:t===`'`&&(o=!1);else if(s)t===`\\`?l++:t===`"`&&(s=!1);else if(a)t===`\\`?l++:t==="`"&&c===0?a=!1:t===`$`&&e[l+1]===`{`?(c++,l++):t===`}`&&c>0&&c--;else if(t===`'`&&u!==`\\`)o=!0;else if(t===`"`&&u!==`\\`)s=!0;else if(t==="`"&&u!==`\\`)a=!0;else if(t===n)i++;else if(t===r&&(i--,i===0))return l}return-1},rn=(e,t)=>{let n=e[t];for(let r=t+1;r<e.length;r++){let t=e[r];if(t===`\\`)r++;else if(t===n)return r;else if(n==="`"&&t===`$`&&e[r+1]===`{`&&(r=L(e,r+1),r<0))return-1}return-1},an=(e,t,n)=>{let r=0;for(let i=t;i<e.length;i++){let t=e[i];if(t===`"`||t===`'`||t==="`"){if(i=rn(e,i),i<0)return e.length}else if(t in nn)r++;else if(t===`)`||t===`]`||t===`}`){if(r===0)return i;r--}else if(r===0&&t===n)return i}return e.length},on=(e,t)=>{let n=[],r=0;for(;r<=e.length;){let i=an(e,r,t);if(n.push(e.slice(r,i)),i>=e.length||e[i]!==t)break;r=i+1}return n},sn=e=>{let t=[];for(let n=0;n<e.length;n++)if(e[n]===`\\`)n++;else if(e[n]===`$`&&e[n+1]===`{`){let r=L(e,n+1);if(r<0)break;t.push(e.slice(n+2,r)),n=r}return t},cn=e=>e.replace(/[$.*+?^()[\]{}|\\]/g,`\\$&`),ln=e=>{let t=[],n=0;for(;n<e.length;){for(;n<e.length&&/[\s;]/.test(e[n]);)n++;if(n>=e.length)break;if(e.startsWith(`if(`,n)){let r=L(e,n+2);if(r<0)return null;let i=e.slice(n+3,r),a=r+1;if(e[a]===`{`){let r=L(e,a);if(r<0)return null;t.push({kind:`if`,cond:i,body:e.slice(a+1,r),isBlock:!0}),n=r+1;continue}let o=an(e,a,`;`);t.push({kind:`if`,cond:i,body:e.slice(a,o),isBlock:!1}),n=o+1;continue}let r=an(e,n,`;`),i=e.slice(n,r),a=i.match(/^(?:let|const|var)\s+/);a?t.push({kind:`let`,decls:on(i.slice(a[0].length),`,`)}):/^return\b/.test(i)?t.push({kind:`return`,expr:i.slice(6).trim(),start:n}):t.push({kind:`expr`,expr:i}),n=r+1}return t},un=e=>{let t=e.match(/^([$\w]+)\(\[([$\w]+)\(\{content:([\s\S]*),isMeta:!0\}\)\]\)$/);if(t)return{wrapFn:t[1],metaFn:t[2],content:t[3]};let n=e.match(/^\(\(c\)=>c\.trim\(\)===""\?\[\]:([$\w]+)\(\[([$\w]+)\(\{content:c,isMeta:!0\}\)\]\)\)\(/);return n?{wrapFn:n[1],metaFn:n[2],content:null}:null},dn=e=>{for(let t of e){let e=t.kind===`if`?t.isBlock?(ln(t.body)??[]).flatMap(e=>e.kind===`expr`?on(e.expr,`,`):[]):on(t.body,`,`):t.kind===`expr`?on(t.expr,`,`):[];for(let t of e){let e=t.trim().match(/^([$\w]+)(?:\.push\(|\+=)/);if(e)return e[1]}}return null},fn=(e,t)=>{let n=[],r=RegExp(`^${cn(t)}\\.push\\(`);for(let i of e){let e=i.trim();if(e!==``)if(r.test(e)){let t=e.indexOf(`(`);if(L(e,t)!==e.length-1)return null;n.push(e.slice(t+1,-1))}else if(e.startsWith(`${t}+=`))n.push(e.slice(t.length+2));else return null}return n},pn=e=>{let t=ln(e);if(!t)return null;let n=t[t.length-1];if(!n||n.kind!==`return`)return null;let r=on(n.expr,`,`),i=un(r[r.length-1]);if(!i)return null;let a=i.content?.match(/^([$\w]+)(?:\.join\([\s\S]*\))?$/)?.[1]??dn(t);if(!a)return null;let o=fn(r.slice(0,-1),a);if(!o)return null;let s=new Map,c=[];for(let e of t.slice(0,-1))if(e.kind===`let`)for(let t of e.decls){let e=t.indexOf(`=`);e>0&&s.set(t.slice(0,e).trim(),t.slice(e+1))}else if(e.kind===`if`){let t=[],n;if(e.isBlock){let r=ln(e.body);if(!r)continue;n=[];for(let e of r)e.kind===`let`?t=t.concat(e.decls):e.kind===`expr`?n.push(...on(e.expr,`,`)):n.push(`\0`)}else n=on(e.body,`,`);let r=fn(n,a);r&&r.length>0&&c.push({cond:e.cond,decls:t,values:r})}else if(e.kind===`expr`){let t=fn(on(e.expr,`,`),a);t&&t.length>0&&c.push({cond:`!0`,decls:[],values:t})}return{preamble:e.slice(0,n.start),wrapFn:i.wrapFn,metaFn:i.metaFn,arr:a,locals:s,ifs:c,tail:o,tailExprs:r.slice(0,-1)}},mn=(e,t,n)=>{let r=RegExp(`^(?:[$\\w]+\\()*${cn(t)}\\.${n}\\)*$`);for(let[t,n]of e.locals)if(r.test(n.trim()))return t;return null},hn=(e,t)=>RegExp(`(^|[^$\\w.])${cn(t)}(?![$\\w])`).test(e),gn=(e,t)=>t===null?null:e.ifs.find(e=>hn(e.cond,t)&&hn(e.values[0],t))??null,_n=e=>e.startsWith("`")?"`"+e.slice(1).replace(/^(?:\n|\\n)+/,``):e,R=(e,t)=>{let n=_n(e.values[t]),r=e.decls.length>0?`(()=>{let ${e.decls.join(`,`)};return ${n}})()`:n;return`(${e.cond})?${r}:""`},vn=(e,t)=>{if(!e||t===null)return null;let n=e.values[0],r=n.startsWith("`")?sn(n.slice(1,-1)).find(e=>hn(e,t)):void 0;return r===void 0?null:`(${e.cond})?${r}:""`},yn=(e,t)=>{let n=[...t].sort((e,t)=>t.token.length-e.token.length),r=e.split(`
18
+ `);t.startIndex>0&&c[t.startIndex-1]===`,`&&i.startsWith(`,`)&&(i=i.slice(1)),i.endsWith(`,`)&&c[t.startIndex]===`,`&&(i=i.slice(0,-1));let a=c;c=c.slice(0,t.startIndex)+i+c.slice(t.endIndex),V(a,c,i,t.startIndex,t.endIndex)}}}return c},_t=(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};function vt(){try{let e=S(import.meta.url),t=p.dirname(e);for(let e=0;e<5;e++){let e=p.join(t,`data`,`prompts`),n=p.join(t,`package.json`);if(s.existsSync(n)&&s.existsSync(e))return e;let r=p.dirname(t);if(r===t)break;t=r}}catch{}return null}function yt(e){return e.map(e=>/^prompts-(\d+\.\d+\.\d+)\.json$/.exec(e)?.[1]).filter(e=>e!==void 0).sort((e,t)=>e.localeCompare(t,void 0,{numeric:!0})).at(-1)??null}function bt(){let e=vt();if(!e)return null;try{return yt(s.readdirSync(e))}catch{return null}}function xt(e,t,n){return e??t??n()}const St=e=>typeof e==`object`&&!!e&&!Array.isArray(e)&&`prompts`in e&&Array.isArray(e.prompts);async function Ct(e){let t=vt();if(t){let n=p.join(t,`prompts-${e}.json`);try{let e=await a.readFile(n,`utf-8`);return JSON.parse(e)}catch{}}if(O&&_t(e,O)>0)throw Error(`tweakcc-fixed ${D} carries prompts through Claude Code ${O}, and ${e} is newer. Run \`npx -y tweakcc-fixed@latest --apply\` to pick up a release that covers it.`);let n=p.join(af,`v${D}`),r=p.join(n,`prompts-${e}.json`),i=await(async()=>{try{let e=JSON.parse(await a.readFile(r,`utf-8`));return St(e)?e:null}catch{return null}})();if(i)return i;let o=`https://raw.githubusercontent.com/skrabe/tweakcc-fixed/refs/tags/v${D}/data/prompts/prompts-${e}.json`;try{let t=await fetch(o,{signal:AbortSignal.timeout(2e4)});if(!t.ok){let n;throw n=t.status===429?`Rate limit exceeded. GitHub has temporarily blocked requests. Please wait a few minutes and try again.`:t.status===404?`Prompts file not found for Claude Code v${e} in tweakcc-fixed v${D}. That release carries the prompts published with it — check https://github.com/skrabe/tweakcc-fixed for a release covering this Claude Code.`:t.status>=500?`GitHub server error (${t.status}). Please try again later.`:`HTTP ${t.status}: ${t.statusText}`,Error(n)}let i=JSON.parse(await Xd(t));if(!St(i))throw Error(`The prompts file for Claude Code ${e} has no prompts array`);let s=p.join(n,`.prompts-${e}.${x()}.tmp`),c=!1;try{await a.mkdir(n,{recursive:!0}),await a.writeFile(s,JSON.stringify(i,null,2),`utf-8`),await a.rename(s,r),c=!0}catch(e){await a.rm(s,{force:!0}).catch(()=>{}),console.warn(`Failed to write to cache to ${r}: ${e}`)}if(c)try{for(let e of await a.readdir(af,{withFileTypes:!0})){let t=e.isDirectory()&&/^v\d+\.\d+\.\d+(?:[-+][\w.-]+)?$/.test(e.name)&&e.name!==`v${D}`,n=e.isFile()&&/^prompts-.+\.json$/.test(e.name);if(!t&&!n)continue;let r=p.join(af,e.name);try{await a.rm(r,{recursive:t,force:!0})}catch(e){console.warn(`Failed to remove cache entry ${r}: ${e}`)}}}catch(e){console.warn(`Failed to sweep cache ${af}: ${e}`)}return i}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 wt=()=>p.join(Z,`systemPromptOriginalHashes.json`),Tt=()=>p.join(Z,`systemPromptAppliedHashes.json`),Et=(e,t)=>`${e}-${t}`,Dt=e=>g.createHash(`md5`).update(e.trim(),`utf8`).digest(`hex`),Ot=async e=>{try{return JSON.parse(await a.readFile(e,`utf8`))}catch(t){if(t instanceof Error&&`code`in t&&t.code===`ENOENT`)return{};if(t instanceof SyntaxError)return J(`${e} was not valid JSON — ignoring it and rebuilding.`),{};throw t}},kt=async(e,t)=>{await a.mkdir(Z,{recursive:!0});let n={};for(let e of Object.keys(t).sort())n[e]=t[e];let r=`${e}.tmp-${process.pid}`;try{await a.writeFile(r,JSON.stringify(n,null,2),`utf8`),await a.rename(r,e)}catch(e){try{await a.unlink(r)}catch{}throw e}},At=async()=>Ot(wt()),jt=async e=>kt(wt(),e),Mt=async e=>{let t=await At(),n=0;for(let r of e.prompts){let e=Et(r.id,r.version);t[e]||(t[e]=Dt(Tr(r.pieces,r.identifiers,r.identifierMap)),n++)}return await jt(t),n},Nt=async(e,t)=>(await At())[Et(e,t)],Pt=async()=>Ot(Tt()),Ft=async e=>kt(Tt(),e),It=async e=>{if(Object.keys(e).length===0)return;let t=await Pt();for(let[n,r]of Object.entries(e))t[n]=r;await Ft(t)},Lt=async()=>{let e=await Pt(),t={};for(let n of Object.keys(e))t[n]=null;await Ft(t)},Rt=async e=>{try{let t=await Pt();if(Object.keys(t).length===0)return!1;let n=(await a.readdir(e)).filter(e=>e.endsWith(`.md`));for(let r of n){let n=t[r.replace(`.md`,``)];if(n==null)continue;let i=p.join(e,r),o=await a.readFile(i,`utf8`);if(Dt((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}},zt=e=>e.replace(/\r\n?/g,`
19
+ `),Bt=(e,t)=>{let n=y(zt(t),{delimiters:[`<!--`,`-->`]}),r=n.data,i=(n.content??``).replace(/^\n+/,``).replace(/\n+$/,``);return{id:e,name:typeof r.name==`string`?r.name:e,description:typeof r.description==`string`?r.description:``,ccVersion:typeof r.ccVersion==`string`?r.ccVersion:``,placeholders:Array.isArray(r.placeholders)?r.placeholders.filter(e=>typeof e==`string`):[],body:i,isSuppressed:i.trim().length===0}},Vt=(e,t,n,r,i)=>{let a={name:e,description:t,ccVersion:n};return r.length>0&&(a.placeholders=r),Sr(i,a)},Ht=async e=>{let t=u.join(rf,`${e}.md`);try{return Bt(e,await a.readFile(t,`utf8`))}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return null;throw e}},Ut=async(e,t,n,r,i,o)=>{let s=u.join(rf,`${e}.md`);try{return await a.stat(s),!1}catch(e){if(!(e instanceof Error&&`code`in e&&e.code===`ENOENT`))throw e}return await a.mkdir(u.dirname(s),{recursive:!0}),await a.writeFile(s,Vt(t,n,r,i,o)),!0},Wt=(e,t)=>{let n=[],r=new Set(Object.keys(t)),i=/\{\{\s*([a-zA-Z_][a-zA-Z0-9_]*)\s*\}\}/g,a;for(;(a=i.exec(e))!==null;)r.has(a[1])||n.push(`unknown placeholder "{{${a[1]}}}"; allowed: ${[...r].map(e=>`{{${e}}}`).join(`, `)||`(none)`}`);if(n.length>0)return{result:``,errors:n};let o=e.split(i),s=``;for(let e=0;e<o.length;e++)e%2==0?s+=X(o[e].replace(/\\/g,`\\\\`).replace(/`/g,"\\`").replace(/\$\{/g,"\\${")):s+=t[o[e]];return{result:s,errors:[]}},F=(e,t,n,r,i)=>{let a=e.match(t);if(!a||a.index===void 0)return i&&i(e)?e:(console.error(`patch: reminder ${r}: failed to find anchor`),null);let o=n(a),s=e.slice(0,a.index)+o+e.slice(a.index+a[0].length);return V(e,s,o,a.index,a.index+a[0].length),s},Gt=e=>RegExp(`${e}:\\(([$\\w]+)\\)=>([$\\w]+)\\(\\[([$\\w]+)\\(\\{content:\`((?:[^\`\\\\]|\\\\.)*)\`,isMeta:!0\\}\\)\\]\\)`),Kt=(e,t,n)=>{let r=e.match(RegExp(`\\$\\{((?:[$\\w]+\\()*${t}\\.${n}\\)*)\\}`));return r?r[1]:null},I=(e,t)=>({placeholder:e,resolve:(e,n)=>Kt(e,n,t)}),qt=e=>({placeholder:e,resolve:(e,t)=>e.match(RegExp(`\\$\\{(${t}\\.pageCount===null\\?"page count unknown":(?:\`(?:[^\`\\\\]|\\\\.|\\$\\{[^}]*\\})*\`|"[^"]*"))\\}`))?.[1]??`${t}.pageCount===null?"page count unknown":${t}.pageCount+(${t}.pageCount===1?" page":" pages")`}),Jt=(e,t)=>{let n=`${t}.wholeRefusedByModel?`,r=null;for(let t of sn(e)){if(!t.startsWith(n)||t[n.length]!=="`")continue;let e=rn(t,n.length);if(e<0||t[e+1]!==`:`)continue;let i={head:n,refused:t.slice(n.length,e+1),otherwise:t.slice(e+2)};if(i.otherwise!==`""`)return i;r??=i}return r},Yt=e=>({placeholder:e,optional:!0,resolve:(e,t)=>{let n=Jt(e,t);return n?`${n.head}${n.refused}:""`:e.includes(`wholeRefusedByModel`)?null:`""`}}),Xt=e=>({placeholder:e,resolve:(e,t)=>{let n=Jt(e,t);return n?n.otherwise===`""`?null:`${n.head}${n.refused}:${n.otherwise}`:e.includes(`wholeRefusedByModel`)?null:`"This PDF is too large to read all at once."`}}),Zt=e=>({placeholder:e,resolve:(e,t)=>e.match(/\$\{([$\w]+\.name)\}/)?.[1]??e.match(/\$\{([$\w]+)\}/g)?.map(e=>e.slice(2,-1)).find(e=>e!==t)??null}),Qt=(e,t)=>{let n=e.match(Gt(t));return!n||n.index===void 0?null:{index:n.index,length:n[0].length,hParam:n[1],wrapFn:n[2],metaFn:n[3],template:n[4]}},$t=(e,t)=>{let n=RegExp(`${t}:\\(([$\\w]+)\\)=>([$\\w]+)\\(\\[([$\\w]+)\\(\\{content:`),r=e.match(n);if(!r||r.index===void 0)return null;let i=r.index+r[0].length-8-1;if(e[i]!==`{`)return null;let a=L(e,i);if(a<0)return null;let o=e.slice(i+1,a);return!o.startsWith(`content:`)||!o.endsWith(`,isMeta:!0`)||e.slice(a+1,a+1+3)!==`)])`?null:{index:r.index,length:a+1+3-r.index,hParam:r[1],wrapFn:r[2],metaFn:r[3],template:o.slice(8,o.length-10)}},en=(e,t)=>{let n=RegExp(`${t}:\\(([$\\w]+)\\)=>\\{`),r=e.match(n);if(!r||r.index===void 0)return null;let i=r.index+r[0].length-1,a=L(e,i);if(a<0)return null;let o=e.slice(i+1,a),s=/return ([$\w]+)\(\[([$\w]+)\(\{content:/g,c=null;for(let e=s.exec(o);e;e=s.exec(o))c=e;let l=/return ?\(\(c\)=>c\.trim\(\)===""\?\[\]:([$\w]+)\(\[([$\w]+)\(\{content:c,isMeta:!0\}\)\]\)\)\(/g,u=null;for(let e=l.exec(o);e;e=l.exec(o))u=e;if(u&&(!c||u.index>c.index)){let t=i+1+u.index+u[0].length-1,n=L(e,t);return n===a-1?{index:r.index,length:a+1-r.index,hParam:r[1],wrapFn:u[1],metaFn:u[2],template:o.slice(0,u.index)+e.slice(t+1,n),blockPreamble:o.slice(0,u.index)}:null}if(!c)return null;let d=i+1+c.index+c[0].length-1-8;if(e[d]!==`{`)return null;let f=L(e,d);if(f<0)return null;let p=e.slice(d+1,f);return!p.startsWith(`content:`)||!p.endsWith(`,isMeta:!0`)||e.slice(f+1,a)!==`)])`?null:{index:r.index,length:a+1-r.index,hParam:r[1],wrapFn:c[1],metaFn:c[2],template:o.slice(0,c.index)+p.slice(8,p.length-10),blockPreamble:o.slice(0,c.index)}},tn=(e,t,n,r,i)=>{let a=t.replace(/_/g,`-`),o=Qt(e,t)??$t(e,t)??en(e,t);if(!o)return RegExp(`${t}:\\([$\\w]+\\)=>\\[\\]`).test(e)?e:(console.error(`patch: reminder ${a}: failed to find anchor`),null);let{index:s,length:c,hParam:l,wrapFn:u,metaFn:d,template:f,blockPreamble:p}=o,m;if(i)m=`${t}:(${l})=>[]`;else{let e=xn(a,r,n.map(e=>({token:e.placeholder,expr:r.includes(e.placeholder)?e.resolve(f,l):null,optional:e.optional})));if(e===null)return null;let i=bn(u,d,r,e);m=p===void 0?`${t}:(${l})=>${i}`:`${t}:(${l})=>{${p}return ${i}}`}let h=e.slice(0,s)+m+e.slice(s+c);return V(e,h,m,s,s+m.length),h},nn={"{":`}`,"(":`)`,"[":`]`},L=(e,t)=>{let n=e[t],r=nn[n];if(r===void 0)return-1;let i=0,a=!1,o=!1,s=!1,c=0;for(let l=t;l<e.length;l++){let t=e[l],u=e[l-1];if(o)t===`\\`?l++:t===`'`&&(o=!1);else if(s)t===`\\`?l++:t===`"`&&(s=!1);else if(a)t===`\\`?l++:t==="`"&&c===0?a=!1:t===`$`&&e[l+1]===`{`?(c++,l++):t===`}`&&c>0&&c--;else if(t===`'`&&u!==`\\`)o=!0;else if(t===`"`&&u!==`\\`)s=!0;else if(t==="`"&&u!==`\\`)a=!0;else if(t===n)i++;else if(t===r&&(i--,i===0))return l}return-1},rn=(e,t)=>{let n=e[t];for(let r=t+1;r<e.length;r++){let t=e[r];if(t===`\\`)r++;else if(t===n)return r;else if(n==="`"&&t===`$`&&e[r+1]===`{`&&(r=L(e,r+1),r<0))return-1}return-1},an=(e,t,n)=>{let r=0;for(let i=t;i<e.length;i++){let t=e[i];if(t===`"`||t===`'`||t==="`"){if(i=rn(e,i),i<0)return e.length}else if(t in nn)r++;else if(t===`)`||t===`]`||t===`}`){if(r===0)return i;r--}else if(r===0&&t===n)return i}return e.length},on=(e,t)=>{let n=[],r=0;for(;r<=e.length;){let i=an(e,r,t);if(n.push(e.slice(r,i)),i>=e.length||e[i]!==t)break;r=i+1}return n},sn=e=>{let t=[];for(let n=0;n<e.length;n++)if(e[n]===`\\`)n++;else if(e[n]===`$`&&e[n+1]===`{`){let r=L(e,n+1);if(r<0)break;t.push(e.slice(n+2,r)),n=r}return t},cn=e=>e.replace(/[$.*+?^()[\]{}|\\]/g,`\\$&`),ln=e=>{let t=[],n=0;for(;n<e.length;){for(;n<e.length&&/[\s;]/.test(e[n]);)n++;if(n>=e.length)break;if(e.startsWith(`if(`,n)){let r=L(e,n+2);if(r<0)return null;let i=e.slice(n+3,r),a=r+1;if(e[a]===`{`){let r=L(e,a);if(r<0)return null;t.push({kind:`if`,cond:i,body:e.slice(a+1,r),isBlock:!0}),n=r+1;continue}let o=an(e,a,`;`);t.push({kind:`if`,cond:i,body:e.slice(a,o),isBlock:!1}),n=o+1;continue}let r=an(e,n,`;`),i=e.slice(n,r),a=i.match(/^(?:let|const|var)\s+/);a?t.push({kind:`let`,decls:on(i.slice(a[0].length),`,`)}):/^return\b/.test(i)?t.push({kind:`return`,expr:i.slice(6).trim(),start:n}):t.push({kind:`expr`,expr:i}),n=r+1}return t},un=e=>{let t=e.match(/^([$\w]+)\(\[([$\w]+)\(\{content:([\s\S]*),isMeta:!0\}\)\]\)$/);if(t)return{wrapFn:t[1],metaFn:t[2],content:t[3]};let n=e.match(/^\(\(c\)=>c\.trim\(\)===""\?\[\]:([$\w]+)\(\[([$\w]+)\(\{content:c,isMeta:!0\}\)\]\)\)\(/);return n?{wrapFn:n[1],metaFn:n[2],content:null}:null},dn=e=>{for(let t of e){let e=t.kind===`if`?t.isBlock?(ln(t.body)??[]).flatMap(e=>e.kind===`expr`?on(e.expr,`,`):[]):on(t.body,`,`):t.kind===`expr`?on(t.expr,`,`):[];for(let t of e){let e=t.trim().match(/^([$\w]+)(?:\.push\(|\+=)/);if(e)return e[1]}}return null},fn=(e,t)=>{let n=[],r=RegExp(`^${cn(t)}\\.push\\(`);for(let i of e){let e=i.trim();if(e!==``)if(r.test(e)){let t=e.indexOf(`(`);if(L(e,t)!==e.length-1)return null;n.push(e.slice(t+1,-1))}else if(e.startsWith(`${t}+=`))n.push(e.slice(t.length+2));else return null}return n},pn=e=>{let t=ln(e);if(!t)return null;let n=t[t.length-1];if(!n||n.kind!==`return`)return null;let r=on(n.expr,`,`),i=un(r[r.length-1]);if(!i)return null;let a=i.content?.match(/^([$\w]+)(?:\.join\([\s\S]*\))?$/)?.[1]??dn(t);if(!a)return null;let o=fn(r.slice(0,-1),a);if(!o)return null;let s=new Map,c=[];for(let e of t.slice(0,-1))if(e.kind===`let`)for(let t of e.decls){let e=t.indexOf(`=`);e>0&&s.set(t.slice(0,e).trim(),t.slice(e+1))}else if(e.kind===`if`){let t=[],n;if(e.isBlock){let r=ln(e.body);if(!r)continue;n=[];for(let e of r)e.kind===`let`?t=t.concat(e.decls):e.kind===`expr`?n.push(...on(e.expr,`,`)):n.push(`\0`)}else n=on(e.body,`,`);let r=fn(n,a);r&&r.length>0&&c.push({cond:e.cond,decls:t,values:r})}else if(e.kind===`expr`){let t=fn(on(e.expr,`,`),a);t&&t.length>0&&c.push({cond:`!0`,decls:[],values:t})}return{preamble:e.slice(0,n.start),wrapFn:i.wrapFn,metaFn:i.metaFn,arr:a,locals:s,ifs:c,tail:o,tailExprs:r.slice(0,-1)}},mn=(e,t,n)=>{let r=RegExp(`^(?:[$\\w]+\\()*${cn(t)}\\.${n}\\)*$`);for(let[t,n]of e.locals)if(r.test(n.trim()))return t;return null},hn=(e,t)=>RegExp(`(^|[^$\\w.])${cn(t)}(?![$\\w])`).test(e),gn=(e,t)=>t===null?null:e.ifs.find(e=>hn(e.cond,t)&&hn(e.values[0],t))??null,_n=e=>e.startsWith("`")?"`"+e.slice(1).replace(/^(?:\n|\\n)+/,``):e,R=(e,t)=>{let n=_n(e.values[t]),r=e.decls.length>0?`(()=>{let ${e.decls.join(`,`)};return ${n}})()`:n;return`(${e.cond})?${r}:""`},vn=(e,t)=>{if(!e||t===null)return null;let n=e.values[0],r=n.startsWith("`")?sn(n.slice(1,-1)).find(e=>hn(e,t)):void 0;return r===void 0?null:`(${e.cond})?${r}:""`},yn=(e,t)=>{let n=[...t].sort((e,t)=>t.token.length-e.token.length),r=e.split(`
20
20
  `).map(e=>{let t=``,r=``,i=0,a=0;for(let o=0;o<e.length;){if(e[o]===`\\`){t+=e.slice(o,o+2),r+=e.slice(o,o+2),o+=2;continue}let s=n.find(t=>e.startsWith(t.token,o));s?(t+=`\${${s.expr}}`,s.optional?i++:a++,o+=s.token.length):(t+=e[o],r+=e[o],o++)}return{rendered:t,bare:r,conditional:i>0&&a===0}}),i=t.some(t=>t.optional&&e.includes(t.token));return r.some(e=>e.conditional)?{expr:`((L)=>{let o=[];for(let i=0;i<L.length;i++){let x=L[i];if(typeof x==="string"){o.push(x);continue}if(x[0]!==x[1]){o.push(x[0]);continue}if((!o.length||o[o.length-1]==="")&&(i+1>=L.length||L[i+1]==="")){if(o.length)o.pop();else i++}}return o.join("\\n")})([`+r.map(e=>e.conditional?`[\`${e.rendered}\`,\`${e.bare}\`]`:`\`${e.rendered}\``).join(`,`)+`])`,mayBeEmpty:i}:{expr:"`"+r.map(e=>e.rendered).join(`
21
21
  `)+"`",mayBeEmpty:i}},bn=(e,t,n,r)=>{let{expr:i,mayBeEmpty:a}=yn(n,r),o=n=>`${e}([${t}({content:${n},isMeta:!0})])`;return a?`((c)=>c.trim()===""?[]:${o(`c`)})(${i})`:o(i)},xn=(e,t,n)=>{let r=[];for(let i of n)if(t.includes(i.token)){if(i.expr===null)return console.error(`patch: reminder ${e}: no pristine expression for ${i.token}`),null;r.push({token:i.token,expr:i.expr,optional:i.optional??!1})}return r},Sn=(e,t,n)=>{let r=`case"${t}":{`,i=[],a=0;for(;;){let t=e.indexOf(r,a);if(t<0)break;i.push(t),a=t+r.length}if(i.length===0)return null;let o=i.find(t=>e.slice(t,t+2048).includes(n));if(o===void 0)return null;let s=o+r.length,c=L(e,s-1);return c===-1?null:{headerIdx:o,bodyStart:s,bodyEnd:c}},Cn=e=>{let t=/return\s+[^;]*?([$\w]+)\(\[([$\w]+)\(\{content:/g,n=null,r;for(;(r=t.exec(e))!==null;)n=r;return n?{arrayWrap:n[1],msgCtor:n[2]}:null},wn=(e,t)=>e.match(RegExp(`([$\\w]+)\\.${t}(?![$\\w])`))?.[1]??null,Tn=(e,t)=>e.includes(`case"${t}":{return [];}`),En=(e,t,n,r,i,a,o)=>{let{bodyStart:s,bodyEnd:c}=n,l=e.slice(s,c),u;if(i)u=`return [];`;else{let e=pn(l);if(e===null)return console.error(`patch: reminder ${t}: case body is not the push-builder shape`),null;let n=wn(l,a),i=xn(t,r,n===null?o(e,`\0`,l).map(e=>({...e,expr:null})):o(e,n,l));if(i===null)return null;let s=[...e.tailExprs,bn(e.wrapFn,e.metaFn,r,i)].join(`,`);u=`${e.preamble}return ${s}`}let d=e.slice(0,s)+u+e.slice(c);return V(e,d,u,s,c),d},Dn={id:`claudemd-context`,previousDefaultBodies:[`As you answer the user's questions, you can use the following context:
22
22
  {{context_blocks}}
@@ -83,7 +83,7 @@ IMPORTANT: After completing your current task, you MUST address the user's messa
83
83
  {{message}}
84
84
 
85
85
  This is how Claude Code surfaces messages the user sends mid-turn — within the running turn, often alongside the next tool result, rather than as a separate conversation turn. Address the message above as you continue this turn.`,apply(e,t,n){let r=/(function [$\w]+\(([$\w]+)\)\{)return`\$\{[$\w]+\}\$\{\2\}\n\nThis is how Claude Code surfaces messages the user sends mid-turn \\u2014 within the running turn, often alongside the next tool result, rather than as a separate conversation turn\. Address the message above as you continue this turn\.`\}/;return r.test(e)?F(e,r,e=>{let[,r,i]=e;return n?`${r}return\`\${${i}}\`}`:`${r}return\`${t.replace(/\$\{H\}/g,`\${${i}}`)}\`}`},`user-sent-new-message`):F(e,/((?:case"auto-continuation":)?case"human":case void 0:(?:default:)?)return`(?:The user sent a new message while you were working:\n|\$\{[$\w]+\})\$\{([$\w]+)\}\n\n(?:This is how Claude Code surfaces messages the user sends mid-turn \\u2014 within the running turn, often alongside the next tool result, rather than as a separate conversation turn\. Address the message above as you continue this turn\.|IMPORTANT: After completing your current task, you MUST address the user's message above\. Do not ignore it\.)`/,e=>{let[,r,i]=e;return n?`${r}return\`\${${i}}\``:`${r}return\`${t.replace(/\$\{H\}/g,`\${${i}}`)}\``},`user-sent-new-message`,e=>/(?:case"auto-continuation":)?case"human":case void 0:(?:default:)?return`\$\{[$\w]+\}`/.test(e))}},ar={id:`stop-hook-session-goal`,name:`Stop-hook session-goal reminder`,description:`Fires when /goal sets a session-scoped stop hook. Carries the "do not pause to ask" framing. Empty .md = silent goal activation (just the condition value used internally).`,placeholders:{condition:"${H}"},defaultBody:'A session-scoped Stop hook is now active with condition: "{{condition}}". Briefly acknowledge the goal, then immediately start (or continue) working toward it — treat the condition itself as your directive and do not pause to ask the user what to do. The hook will block stopping until the condition holds. It auto-clears once the condition is met — do not tell the user to run `/goal clear` after success; that\'s only for clearing a goal early.',apply(e,t,n){return F(e,/([$\w]+)=\(([$\w]+)\)=>`A session-scoped Stop hook is now active with condition: "\$\{\2\}"\. Briefly acknowledge the goal, then immediately start \(or continue\) working toward it[\s\S]*?after success; that's only for clearing a goal early\.`/,e=>{let[,r,i]=e;return n?`${r}=(${i})=>""`:`${r}=(${i})=>\`${t.replace(/\$\{H\}/g,`\${${i}}`)}\``},`stop-hook-session-goal`,e=>/[$\w]+=\([$\w]+\)=>""/.test(e))}},or={id:`mcp-per-server-router`,name:`MCP per-server instruction router`,description:`Patches CC's MCP instruction assembly to consult ~/.tweakcc/system-reminders/mcp-<server-name>.md at runtime. Empty body in that file drops the server's block. Body containing {{server_instructions}} resolves to the server's pristine instructions. Custom body replaces. THIS .md does nothing on its own — it just enables per-server .md files. Empty body = disable this routing (servers use pristine instructions verbatim).`,placeholders:{},defaultBody:`This file is a marker that enables per-MCP-server overrides. Edit per-server content in mcp-<server-name>.md alongside this file. Leave this file with content (any content) to enable routing; empty it to disable.`,bodyIsMarker:!0,apply(e,t,n){if(n)return e;let r=e.match(/for\(let ([$\w]+) of ([$\w]+)\)if\(\1\.instructions\)([$\w]+)\.set\(\1\.name,`## \$\{\1\.name\}\n\$\{\1\.instructions\}`\)((?:,[$\w]+\.set\((?:[^()]|\([^()]*\))*\))*);/);if(!r||r.index===void 0)return e.includes(`__tweakccMcpOverride`)?e:(console.error(`patch: reminder mcp-per-server-router: failed to find MCP assembly loop`),null);let[i,a,o,s,c]=r,l=[...(c||``).matchAll(/[$\w]+\.set\((?:[^()]|\([^()]*\))*\)/g)].map(e=>`;`+e[0].split(`${a}.instructions`).join(`_c`)).join(``),u=r.index+i.length,d=e.slice(u,an(e,u,``)),f=d.match(/^[^]*?for\(let ([$\w]+) of [$\w]+\)\{(?=if\(![$\w]+\.has\(\1\.serverName\)\))/);!f&&d.includes(`.serverName`)&&console.log(`patch: reminder mcp-per-server-router: client-side block loop has a new shape; an emptied mcp-<name>.md will not drop that server's extra block`);let p=`function __tweakccMcpOverride(_n,_d){try{let _f=require('fs'),_p=require('os').homedir()+'/.tweakcc/system-reminders/mcp-'+_n+'.md';let _r=_f.readFileSync(_p,'utf8');let _m=_r.match(/-->\\s*([\\s\\S]*?)\\s*\$/);if(!_m)return _d;let _b=_m[1].trim();if(_b==='')return null;return _b.replace(/\\{\\{server_instructions\\}\\}/g,_d||'')}catch{return _d}}for(let ${a} of ${o}){let _c=__tweakccMcpOverride(${a}.name,${a}.instructions);if(_c){${s}.set(${a}.name,\`## \${${a}.name}\n\${_c}\`)${l}}}`,m=``,h=u;if(f){let e=f[1];m=f[0]+`if(__tweakccMcpOverride(${e}.serverName,"")===null)continue;`,h=u+f[0].length}let g=e.slice(0,r.index)+p+m+e.slice(h);return V(e,g,p+m,r.index,h),g}},sr={id:`output-token-usage`,name:`Output-token usage updater`,description:`Per-turn output-token telemetry. Conditional. Empty .md body = no telemetry leak.`,placeholders:{turn:"${_}",session:"${gK(H.session)}"},defaultBody:`Output tokens — turn: {{turn}} · session: {{session}}`,apply(e,t,n){return F(e,/output_token_usage:\(([$\w]+)\)=>\{let ([$\w]+)=\1\.budget!==null\?`\$\{([$\w]+)\(\1\.turn\)\} \/ \$\{\3\(\1\.budget\)\}`:\3\(\1\.turn\);return\[([$\w]+)\(\{content:([$\w]+)\(`Output tokens \\u2014 turn: \$\{\2\} \\xB7 session: \$\{\3\(\1\.session\)\}`\),isMeta:!0\}\)\]\}/,e=>{let[,r,i,a,o,s]=e;return n?`output_token_usage:(${r})=>[]`:`output_token_usage:(${r})=>{let ${i}=${r}.budget!==null?\`\${${a}(${r}.turn)} / \${${a}(${r}.budget)}\`:${a}(${r}.turn);return[${o}({content:${s}(\`${t.replace(/\$\{_\}/g,`\${${i}}`).replace(/\$\{gK\(H\.session\)\}/g,`\${${a}(${r}.session)}`)}\`),isMeta:!0})]}`},`output-token-usage`,e=>/output_token_usage:\([$\w]+\)=>\[\]/.test(e))}},cr=e=>zt(e).replace(/\n$/,``),lr=[Dn,On,kn,An,jn,Mn,Nn,Pn,Fn,In,Ln,Rn,zn,Bn,Vn,Hn,Un,Wn,Gn,Kn,qn,Jn,Yn,Xn,Zn,Qn,$n,er,tr,sr,nr,rr,ir,ar,or].map(e=>{if(e.bodyIsMarker)return e;let t=null;return{...e,apply(n,r,i){return t??=new Set([e.defaultBody,...e.previousDefaultBodies??[]].map(t=>Wt(t,e.placeholders)).filter(e=>e.errors.length===0).map(e=>cr(e.result))),!i&&t.has(cr(r))?n:e.apply(n,r,i)}}}),ur=async()=>{let e=[u.join(n.homedir(),`.claude.json`),u.join(n.homedir(),`.claude`,`mcp.json`)];for(let t of e)try{let e=await a.readFile(t,`utf8`),n=JSON.parse(e);if(n.mcpServers&&typeof n.mcpServers==`object`)return Object.keys(n.mcpServers)}catch{}return[]},dr=async(e,t)=>{let n=[],r=e,i=await ur();for(let e of i)await Ut(`mcp-${e}`,`MCP server: ${e}`,`Instructions block content for MCP server "${e}". {{server_instructions}} expands at runtime to the server's pristine instructions. Empty body drops the server's block from the model's context. Custom body replaces it.`,t,[`server_instructions`],`{{server_instructions}}`);for(let e of lr){let i=await Ut(e.id,e.name,e.description,t,Object.keys(e.placeholders),e.defaultBody),a=await Ht(e.id);if(!a){n.push({id:e.id,name:e.name,description:e.description,state:`default`,applied:!1,failed:!1,skipped:!0,details:`override file missing after ensure (unexpected)`});continue}let{result:o,errors:s}=Wt(a.body,e.placeholders);if(s.length>0){n.push({id:e.id,name:e.name,description:e.description,state:`override`,applied:!1,failed:!0,skipped:!1,details:s.join(`; `)});continue}let c=e.apply(r,o,a.isSuppressed);if(c===null){n.push({id:e.id,name:e.name,description:e.description,state:a.isSuppressed?`suppressed`:`override`,applied:!1,failed:!0,skipped:!1,details:`patch function returned null`});continue}let l=c!==r;r=c;let u;u=a.isSuppressed?`suppressed`:[e.defaultBody,...e.previousDefaultBodies??[]].some(e=>cr(e)===cr(a.body))?`default`:`override`,n.push({id:e.id,name:e.name,description:e.description,state:u,applied:l,failed:!1,skipped:!1,details:i?`seeded default file`:void 0})}return{content:r,results:n}},fr=`\0IDENT\0`,pr=new Set(`arguments.async.await.break.case.catch.class.const.continue.debugger.default.delete.do.else.extends.false.finally.for.function.if.in.Infinity.instanceof.let.NaN.new.null.of.return.super.switch.this.throw.true.try.typeof.undefined.var.void.while.with.yield`.split(`.`)),mr={"{":`{`,"(":`(`,"[":`[`},hr=e=>e!==void 0&&/[A-Za-z_$]/.test(e),gr=e=>e!==void 0&&/[\w$]/.test(e),_r=(e,t)=>{let n=!1;for(let r=t+1;r<e.length;r++){let i=e[r];if(i===`\\`)r++;else if(i===`
86
- `)return t;else if(i===`[`)n=!0;else if(i===`]`)n=!1;else if(i===`/`&&!n){let t=r+1;for(;/[a-z]/.test(e[t]??``);)t++;return t}}return t},vr=e=>{let t=[],n=[];for(let r=0;r<e.length;r++){let i=e[r];r>0&&t.length===0&&t.push("${");let a=r>0,o=``,s=r>0?`ident`:``,c=0;for(;c<i.length;){let e=i[c],n=t[t.length-1];if(n===void 0||n==="`"){if(e===`\\`){o+=i.slice(c,c+2),c+=2;continue}if(e===`$`&&i[c+1]===`{`){t.push("${"),s=`{`,o+="${",c+=2;continue}e==="`"&&n==="`"&&(t.pop(),s=`value`),o+=e,c++;continue}if(e===`"`||e===`'`){let t=c+1;for(;t<i.length&&i[t]!==e;)t+=i[t]===`\\`?2:1;o+=i.slice(c,t+1),c=t+1,s=`value`;continue}if(e===`/`&&s!==`ident`&&s!==`value`){let e=_r(i,c);if(e>c){o+=i.slice(c,e),c=e,s=`value`;continue}}if(e==="`"){t.push("`"),o+=e,c++;continue}if(mr[e]){t.push(mr[e]),s=e,o+=e,c++;continue}if(e===`}`||e===`)`||e===`]`){t.pop(),t.length===0&&(a=!1),s=`value`,o+=e,c++;continue}if(/[0-9]/.test(e)||e===`.`&&/[0-9]/.test(i[c+1])){let e=c+1;for(;e<i.length&&/[\w.]/.test(i[e]);)e++;o+=i.slice(c,e),c=e,s=`value`;continue}if(hr(e)){let e=c+1;for(;gr(i[e]);)e++;let t=i.slice(c,e),r=i[c-1]===`#`||i[c-1]===`.`&&i.slice(Math.max(0,c-3),c)!==`...`,l=n===`{`&&(s===`{`||s===`,`)&&i[e]===`:`,u=a&&!r&&!l&&!pr.has(t);o+=u?fr:t,c=e,s=pr.has(t)?`keyword`:`ident`;continue}/\s/.test(e)||(s=e),o+=e,c++}n.push(o)}return n};let yr=null;const br=async()=>{if(yr)return yr;let e=new Set,t=[$,Kd];for(let n of t){let t;try{t=await a.readdir(n)}catch{continue}if(Array.isArray(t))for(let r of t){if(!r.endsWith(`.md`))continue;let t;try{t=await a.readFile(p.join(n,r),`utf8`)}catch{continue}let i=y(t,{delimiters:[`<!--`,`-->`]}).data?.shadows;if(Array.isArray(i))for(let t of i)typeof t==`string`&&t&&e.add(t)}}for(let t of lr)if(Array.isArray(t.shadows))for(let n of t.shadows)typeof n==`string`&&n&&e.add(n);return yr=e,e},xr=e=>{let t=y(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(`
86
+ `)return t;else if(i===`[`)n=!0;else if(i===`]`)n=!1;else if(i===`/`&&!n){let t=r+1;for(;/[a-z]/.test(e[t]??``);)t++;return t}}return t},vr=e=>{let t=[],n=[];for(let r=0;r<e.length;r++){let i=e[r];r>0&&t.length===0&&t.push("${");let a=r>0,o=``,s=r>0?`ident`:``,c=0;for(;c<i.length;){let e=i[c],n=t[t.length-1];if(n===void 0||n==="`"){if(e===`\\`){o+=i.slice(c,c+2),c+=2;continue}if(e===`$`&&i[c+1]===`{`){t.push("${"),s=`{`,o+="${",c+=2;continue}e==="`"&&n==="`"&&(t.pop(),s=`value`),o+=e,c++;continue}if(e===`"`||e===`'`){let t=c+1;for(;t<i.length&&i[t]!==e;)t+=i[t]===`\\`?2:1;o+=i.slice(c,t+1),c=t+1,s=`value`;continue}if(e===`/`&&s!==`ident`&&s!==`value`){let e=_r(i,c);if(e>c){o+=i.slice(c,e),c=e,s=`value`;continue}}if(e==="`"){t.push("`"),o+=e,c++;continue}if(mr[e]){t.push(mr[e]),s=e,o+=e,c++;continue}if(e===`}`||e===`)`||e===`]`){t.pop(),t.length===0&&(a=!1),s=`value`,o+=e,c++;continue}if(/[0-9]/.test(e)||e===`.`&&/[0-9]/.test(i[c+1])){let e=c+1;for(;e<i.length&&/[\w.]/.test(i[e]);)e++;o+=i.slice(c,e),c=e,s=`value`;continue}if(hr(e)){let e=c+1;for(;gr(i[e]);)e++;let t=i.slice(c,e),r=i[c-1]===`#`||i[c-1]===`.`&&i.slice(Math.max(0,c-3),c)!==`...`,l=n===`{`&&(s===`{`||s===`,`)&&i[e]===`:`,u=a&&!r&&!l&&!pr.has(t);o+=u?fr:t,c=e,s=pr.has(t)?`keyword`:`ident`;continue}/\s/.test(e)||(s=e),o+=e,c++}n.push(o)}return n};let yr=null;const br=async()=>{if(yr)return yr;let e=new Set,t=[$,rf];for(let n of t){let t;try{t=await a.readdir(n)}catch{continue}if(Array.isArray(t))for(let r of t){if(!r.endsWith(`.md`))continue;let t;try{t=await a.readFile(p.join(n,r),`utf8`)}catch{continue}let i=y(t,{delimiters:[`<!--`,`-->`]}).data?.shadows;if(Array.isArray(i))for(let t of i)typeof t==`string`&&t&&e.add(t)}}for(let t of lr)if(Array.isArray(t.shadows))for(let n of t.shadows)typeof n==`string`&&n&&e.add(n);return yr=e,e},xr=e=>{let t=y(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(`
87
87
  `).length-1),{name:n||``,description:r||``,ccVersion:i||``,variables:a||[],content:t.content,contentLineOffset:o}},Sr=(e,t)=>y.stringify(``,t,{delimiters:[`<!--`,`-->`]}).replace(/\n$/,``)+(e.endsWith(`
88
88
  `)?e:e+`
89
89
  `),Cr=(e,t,n)=>{let r=t||Tr(e.pieces,e.identifiers,e.identifierMap),i=Object.keys(e.identifierMap).length>0?[...new Set(Object.values(e.identifierMap))]:void 0,a={name:e.name,description:e.description,ccVersion:e.version};if(i&&i.length>0&&(a.variables=i),n)for(let[e,t]of Object.entries(n))e in a||(a[e]=t);return Sr(r,a)},wr=async e=>{let t={};try{let n=Er(e),r=y(await a.readFile(n,`utf8`),{delimiters:[`<!--`,`-->`]}),i=new Set([`name`,`description`,`ccVersion`,`variables`]);for(let[e,n]of Object.entries(r.data))i.has(e)||(t[e]=n)}catch{}return t},Tr=(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},Er=e=>p.join($,`${e}.md`),Dr=async e=>{try{return await a.access(Er(e)),!0}catch{return!1}},Or=async e=>{let t=Er(e);return xr(await a.readFile(t,`utf-8`))},kr=async(e,t)=>{let n=Er(e);await a.writeFile(n,t,`utf-8`)},Ar=async(e,t)=>{let n=Er(e),r=await a.readFile(n,`utf-8`),i=y(r,{delimiters:[`<!--`,`-->`]}),o=Object.keys(t).length>0?[...new Set(Object.values(t))]:void 0,s=new Set([`name`,`description`,`ccVersion`,`variables`]),c={name:i.data.name,description:i.data.description,ccVersion:i.data.ccVersion};o&&o.length>0&&(c.variables=o);for(let[e,t]of Object.entries(i.data))s.has(e)||(c[e]=t);let l=Sr(i.content,c);l!==r&&await kr(e,l)},jr=(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}},Mr=(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=jr(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},Nr=async(e,t,n,r,i,o,s,c)=>{let l=n.split(`
@@ -276,7 +276,7 @@ try {
276
276
  `,{eval:!0,workerData:{source:e,flags:Bi(t),content:n},resourceLimits:{stackSizeMb:16}});a.once(`message`,e=>{if(a.terminate(),!e.ok){i(Error(e.error??`regex worker failed`));return}r((e.matches??[]).map(({index:e,groups:t})=>{let n=t;return n.index=e,n}))}),a.once(`error`,e=>{a.terminate(),i(e)})}),Ui=async(e,t,n)=>{try{return Vi(e,t,n)}catch(r){let i=r instanceof Error?r.message:String(r);if(!zi.test(i))throw r;return Hi(e,t,n)}},Wi=e=>e.length,B=(e,t)=>typeof e==`string`?e[t]??``:e.charAt(t),Gi=(e,t,n)=>e.slice(t,n),Ki=e=>typeof e==`string`?e:e.toString(),qi=(e,t,n)=>{let r=e.replace(/<<CCVERSION>>/g,t);return n&&(r=r.replace(/<<BUILD_TIME>>/g,n)),r},Ji=e=>{let t=[];for(let n=0;n<e.length;){if(e.startsWith(fr,n)){t.push({kind:`identifier`}),n+=7;continue}if(e.startsWith("${",n)){let r=n+2;for(;r<e.length&&e[r]!==`{`&&e[r]!==`}`;)r++;if(e[r]===`}`){t.push({kind:`interpolation`}),n=r+1;continue}}let r=e[n],i=e.charCodeAt(n);r===`\\`?t.push({kind:`backslash`}):r===`"`||r===`'`||r==="`"?t.push({kind:`quote`,value:r}):r===`
277
277
  `?t.push({kind:`newline`}):i>127?t.push({kind:`non-ascii`,value:r,code:i}):t.push({kind:`literal`,value:r}),n++}return t},Yi=(e,t,n)=>{let r=[],i=0,a=vr(e.map(e=>qi(e,t,n)));for(let t=0;t<a.length;t++){for(let e of Ji(a[t]))r.push(e);t<e.length-1&&r.push({kind:`capture`,index:i++})}return r},Xi=e=>{let t=null,n=0,r=``,i=()=>{let e=r.match(/^ */)?.[0].length??0,i=r.match(/ *$/)?.[0].length??0,a=r.slice(e,r.length-i);a.length>=12&&(!t||a.length>t.anchor.length)&&(t={anchor:a,tokenIndex:n+e})};for(let t=0;t<=e.length;t++){let a=e[t];if(a?.kind===`literal`&&/[A-Za-z0-9 ]/.test(a.value)){r.length===0&&(n=t),r+=a.value;continue}i(),r=``}return t},Zi=e=>{let t=Yi(e.pieces,e.version,e.buildTime);return{tokens:t,plan:Xi(t)}},Qi=e=>{if(e===`$`||e===`_`)return!0;if(e===void 0)return!1;let t=e.charCodeAt(0);return t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122},$i=(e,t,n)=>{let r=0,i=n,a=[],o=[],s=()=>{let e=o.pop();return e?(r=e.token,i=e.position,a=e.captures,!0):!1};for(;;){if(r===e.length){let e=[Gi(t,n,i),...a];return e.index=n,e.input=typeof t==`string`?t:``,e}let c=e[r];if(c.kind===`literal`){if(B(t,i)!==c.value){if(!s())return null;continue}i++,r++;continue}if(c.kind===`backslash`){if(B(t,i)!==`\\`){if(!s())return null;continue}B(t,i+1)===`\\`&&o.push({token:r+1,position:i+2,captures:[...a]}),i++,r++;continue}if(c.kind===`quote`){if(B(t,i)===c.value){i++,r++;continue}if(B(t,i)===`\\`&&B(t,i+1)===c.value){i+=2,r++;continue}if(!s())return null;continue}if(c.kind===`newline`){if(B(t,i)===`
278
278
  `){i++,r++;continue}if(B(t,i)===`\\`&&B(t,i+1)===`n`){i+=2,r++;continue}if(!s())return null;continue}if(c.kind===`non-ascii`){if(B(t,i)===c.value){i++,r++;continue}let e=c.code.toString(16).padStart(4,`0`),n=Gi(t,i,i+6);if(n[0]===`\\`&&n[1]===`u`&&n.slice(2).toLowerCase()===e){i+=6,r++;continue}if(c.code<=255){let e=c.code.toString(16).padStart(2,`0`),n=Gi(t,i,i+4);if(n[0]===`\\`&&n[1]===`x`&&n.slice(2).toLowerCase()===e){i+=4,r++;continue}}if(!s())return null;continue}if(c.kind===`interpolation`){if(B(t,i)!==`$`||B(t,i+1)!==`{`){if(!s())return null;continue}let e=i+2;for(;e<Wi(t)&&B(t,e)!==`{`&&B(t,e)!==`}`;)e++;if(B(t,e)!==`}`){if(!s())return null;continue}i=e+1,r++;continue}let l=i;for(;Qi(B(t,l));)l++;if(l===i){if(!s())return null;continue}for(let e=i+1;e<l;e++){let n=[...a];c.kind===`capture`&&(n[c.index]=Gi(t,i,e)),o.push({token:r+1,position:e,captures:n})}c.kind===`capture`&&(a=[...a],a[c.index]=Gi(t,i,l)),i=l,r++}},ea=(e,t,n)=>{if(e.kind===`literal`)return B(t,n-1)===e.value?[n-1]:[];if(e.kind===`backslash`){let e=[];return B(t,n-1)===`\\`&&e.push(n-1),B(t,n-1)===`\\`&&B(t,n-2)===`\\`&&e.push(n-2),e}if(e.kind===`quote`){let r=[];return B(t,n-1)===e.value&&r.push(n-1),B(t,n-1)===e.value&&B(t,n-2)===`\\`&&r.push(n-2),r}if(e.kind===`newline`){let e=[];return B(t,n-1)===`
279
- `&&e.push(n-1),B(t,n-1)===`n`&&B(t,n-2)===`\\`&&e.push(n-2),e}if(e.kind===`non-ascii`){let r=[];B(t,n-1)===e.value&&r.push(n-1);let i=e.code.toString(16).padStart(4,`0`),a=Gi(t,n-6,n);if(a[0]===`\\`&&a[1]===`u`&&a.slice(2).toLowerCase()===i&&r.push(n-6),e.code<=255){let i=e.code.toString(16).padStart(2,`0`),a=Gi(t,n-4,n);a[0]===`\\`&&a[1]===`x`&&a.slice(2).toLowerCase()===i&&r.push(n-4)}return r}if(e.kind===`interpolation`){if(B(t,n-1)!==`}`)return[];let e=n-2;for(;e>=0&&B(t,e)!==`{`&&B(t,e)!==`}`;)e--;return B(t,e)===`{`&&B(t,e-1)===`$`?[e-1]:[]}let r=[],i=n-1;for(;i>=0&&Qi(B(t,i));)r.push(i),i--;return r},ta=(e,t,n,r)=>{let i=new Set([r]);for(let r=n.tokenIndex-1;r>=0;r--){let n=new Set;for(let a of i)for(let i of ea(e[r],t,a))n.add(i);if(n.size===0)return[];i=n}return[...i]},na=(e,t,n)=>{let r=[],i=RegExp(`(?=${t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)})`,`gi`),a;for(;(a=i.exec(e))!==null;){if(r.push(a.index),r.length>n)return null;i.lastIndex=a.index+1}return r},ra=(e,t,n)=>{if(!e.plan)return null;let r=n===void 0?typeof t==`string`?na(t,e.plan.anchor,250):null:n;if(!r||r.length>250)return null;let i=new Set;for(let n of r)for(let r of ta(e.tokens,t,e.plan,n))i.add(r);let a=[];for(let n of[...i].sort((e,t)=>e-t)){let r=$i(e.tokens,t,n);r&&a.push(r)}let o=[],s=-1;for(let e of a)e.index<s||(o.push(e),s=e.index+e[0].length);return o},ia=(e,t)=>{let n=[...new Set(t)],r=new Map(n.map(e=>[e,[]]));if(e.length<12)return r;let i=16777619,a=new Map,o=e=>{let t=0;for(let n=0;n<12;n++)t=Math.imul(t,i)+e.charCodeAt(n)>>>0;return t};for(let e of n){let t=o(e),n=a.get(t);n?n.push(e):a.set(t,[e])}let s=1;for(let e=1;e<12;e++)s=Math.imul(s,i)>>>0;let c=o(e),l=e.length-12;for(let t=0;t<=l;t++){let n=a.get(c);if(n){for(let i of n)if(e.startsWith(i,t)){let e=r.get(i);if(e==null)continue;e.length===250?r.set(i,null):e.push(t)}}if(t===l)break;c=Math.imul(c-Math.imul(e.charCodeAt(t),s)>>>0,i)+e.charCodeAt(t+12)>>>0}return r},aa=e=>e,oa=async(e,t)=>ra(Zi(e),t)||Ui(e.regex,`sg`,t);var sa=class{specs=new Map;compiled=new Map;anchorRegexes=new Map;anchorHashes=new Map;anchorOccurrences=new Map;anchorLengthCounts=new Map;maxAnchorLength=12;constructor(e){for(let t of e){this.specs.set(t.regex,t);let e=Zi(t);if(this.compiled.set(t.regex,e),!e.plan)continue;let n=e.plan.anchor,r=this.anchorRegexes.get(n);r?r.push(t.regex):(this.anchorRegexes.set(n,[t.regex]),this.anchorLengthCounts.set(n.length,(this.anchorLengthCounts.get(n.length)??0)+1),this.maxAnchorLength=Math.max(this.maxAnchorLength,n.length))}for(let e of this.anchorRegexes.keys()){let t=ua(e),n=this.anchorHashes.get(t);n?n.push(e):this.anchorHashes.set(t,[e])}}delete(e){let t=this.compiled.get(e)?.plan?.anchor;if(this.specs.delete(e),this.compiled.delete(e),!t)return;let n=this.anchorRegexes.get(t)?.filter(t=>t!==e);if(n&&n.length>0){this.anchorRegexes.set(t,n);return}this.anchorRegexes.delete(t),this.anchorOccurrences.delete(t);let r=(this.anchorLengthCounts.get(t.length)??1)-1;r>0?this.anchorLengthCounts.set(t.length,r):this.anchorLengthCounts.delete(t.length),t.length===this.maxAnchorLength&&r===0&&(this.maxAnchorLength=Math.max(12,...this.anchorLengthCounts.keys()));let i=ua(t),a=this.anchorHashes.get(i)?.filter(e=>e!==t);a&&a.length>0?this.anchorHashes.set(i,a):this.anchorHashes.delete(i)}index(e,t=aa(e)){if(t.length!==e.length){this.anchorOccurrences.clear();return}this.anchorOccurrences=ia(t,[...this.compiled.values()].flatMap(e=>e.plan?[e.plan.anchor]:[]))}async matchCurrent(e,t){let n=this.specs.get(e),r=this.compiled.get(e);if(!n||!r)return[];let i=r.plan?.anchor;return(i?ra(r,t,this.anchorOccurrences.get(i)):null)??await Ui(n.regex,`sg`,Ki(t))}recordSplice(e,t){let n=t.replacementLength-(t.end-t.start);for(let[e,r]of this.anchorOccurrences){if(r===null)continue;let i=[];for(let a of r)a+e.length<=t.start?i.push(a):a>=t.end&&i.push(a+n);this.anchorOccurrences.set(e,i)}let r=Math.max(0,t.start-this.maxAnchorLength+1),i=Math.min(e.length,t.start+t.replacementLength+this.maxAnchorLength-1),a=e.slice(r,i);for(let[e,t]of da(aa(a),this.anchorHashes)){let n=this.anchorOccurrences.get(e);if(n===null||t===null){this.anchorOccurrences.set(e,null);continue}let i=[...new Set([...n??[],...t.map(e=>r+e)])].sort((e,t)=>e-t);this.anchorOccurrences.set(e,i.length>250?null:i)}}async matchBatch(e,t=aa(e)){let n=new Map;if(t.length===e.length){this.index(e,t);for(let[t,r]of this.compiled){let i=ra(r,e,r.plan?this.anchorOccurrences.get(r.plan.anchor):void 0);i&&n.set(t,i)}}for(let[t,r]of this.specs)n.has(t)||n.set(t,await Ui(r.regex,`sg`,e));return n}};const ca=16777619;let la=1;for(let e=1;e<12;e++)la=Math.imul(la,ca)>>>0;const ua=e=>{let t=0;for(let n=0;n<12;n++)t=Math.imul(t,ca)+e.charCodeAt(n)>>>0;return t},da=(e,t)=>{let n=new Map;if(e.length<12)return n;let r=ua(e),i=e.length-12;for(let a=0;a<=i;a++){let o=t.get(r);if(o)for(let t of o){if(!e.startsWith(t,a))continue;let r=n.get(t);r!==null&&(r===void 0?n.set(t,[a]):r.length===250?n.set(t,null):r.push(a))}if(a===i)break;r=Math.imul(r-Math.imul(e.charCodeAt(a),la)>>>0,ca)+e.charCodeAt(a+12)>>>0}return n},fa=async(e,t,n=aa(t))=>new sa(e).matchBatch(t,n),pa=async(e,n,r,i,a)=>{let o=r??vi(e);o&&J(`Detected Unicode escaping in cli.js - will escape non-ASCII characters in prompts`);let s=yi(e);s&&J(`Extracted BUILD_TIME from cli.js: ${s}`);let c=await li(n,o,s);J(`Loaded ${c.length} system prompts with regexes`);let l=new Map;for(let e of c)l.set(e.regex,{regex:e.regex,pieces:e.pieces,version:n,buildTime:s});let u=new sa([...l.values()]);u.index(e,aa(e));let d=new Map;c.forEach((e,t)=>{d.set(e.regex,t)});let f=new Map;for(let[e,t]of d){let n=f.get(t);n?n.push(e):f.set(t,[e])}let p=new Ri(e),m=a!==void 0&&a!==e,h=new Map;for(let e of c){let t=h.get(e.promptId);t||(t=new Set,h.set(e.promptId,t));for(let n of Object.values(e.identifierMap))t.add(n)}let g=new Map;for(let e of c)i&&!i.includes(e.promptId)||g.set(e.regex,(g.get(e.regex)??0)+1);let _=new Map,v=new Map,y=[],b={},x=[];for(let[e,r]of c.entries()){for(let t of f.get(e-1)??[])u.delete(t);let{promptId:s,prompt:c,regex:d,getInterpolatedContent:S,pieces:C,identifiers:w,identifierMap:T}=r;if(i&&!i.includes(s)){y.push({id:s,name:c.name,group:K.SYSTEM_PROMPTS,applied:!1,skipped:!0});continue}J(`Applying system prompt: ${c.name}`);let E=new RegExp(d,`s`),D=await u.matchCurrent(d,p),O=g.get(d)??1,k=_.get(d)??0,A=O-(v.get(d)??0),{match:j,ambiguous:M,disambiguated:N}=Ti(D,A,k,e=>p.charAt(e));if(N&&J(`Disambiguated ${D.length} matches \u2192 ${A} standalone for "${c.name}"`),M){console.log(t.yellow(`"${c.name}" matches ${D.length} places in cli.js for ${A} catalogue entr`+(A===1?`y`:`ies`)+` and none of them is identifiable — skipping rather than splicing into whichever came first`)),y.push({id:s,name:c.name,group:K.SYSTEM_PROMPTS,applied:!1,details:`${D.length} ambiguous candidate sites - no site attributable to this prompt`});continue}if(j&&j.index!==void 0){let e=Tr(C,w,T).trim();if(c.content.trim()===e){J(`"${c.name}": still vanilla \u2014 leaving cli.js untouched`),_.set(d,k+1),b[s]=Dt(c.content),y.push({id:s,name:c.name,group:K.SYSTEM_PROMPTS,applied:!1,details:`unchanged`}),x.push(y.length-1);continue}let r;try{r=S(j)}catch(e){console.log(t.red(`Malformed \${...} interpolation in "${c.name}" (${s}.md): ${e instanceof Error?e.message:String(e)} - skipping`)),_.set(d,k+1),y.push({id:s,name:c.name,group:K.SYSTEM_PROMPTS,applied:!1,failed:!0,details:"malformed ${...} interpolation in the markdown"});continue}let i=j.index,a=p.charAt(i-1);{let e=_i(r,c.content),i=new Set(Object.values(T)),o=h.get(s);if(e.length>0&&e.every(e=>!i.has(e)&&o?.has(e))){J(`"${c.name}": placeholders resolve via a same-id sibling shape — leaving this site pristine`),_.set(d,k+1),y.push({id:s,name:c.name,group:K.SYSTEM_PROMPTS,applied:!1,skipped:!0});continue}let l=j[0],u=a==="`"?e:e.filter(e=>!RegExp(`(?<!\\\\)\\$\\{`+e+`(?![A-Za-z0-9_])`).test(l));if(u.length>0){e.splice(0,e.length,...u),console.log(t.red(`Unresolved placeholder \${${e[0]}} in "${c.name}" (markdown vocabulary out of sync with CC ${n} prompt data) - skipping`)),_.set(d,k+1),y.push({id:s,name:c.name,group:K.SYSTEM_PROMPTS,applied:!1,details:`unresolved placeholder \${${e[0]}} - markdown out of sync with prompt data`});continue}}if(a!==`"`&&a!==`'`&&a!=="`"&&Jr(r)){console.log(t.yellow(`"${c.name}" resolves inside a larger string literal (no delimiter at the match boundary) and its content needs delimiter-specific escaping - skipping`)),_.set(d,k+1),y.push({id:s,name:c.name,group:K.SYSTEM_PROMPTS,applied:!1,details:`unresolvable string delimiter - cannot escape content safely`});continue}let l=e.length,f=c.content.trim().length,g=hd()?p.toString():null,E=j[0].length,D=Yr(r,a,o);if(D.incomplete){console.log(t.red(`Incomplete backtick escaping for "${c.name}" (unclosed interpolation) - skipping`)),_.set(d,k+1),y.push({id:s,name:c.name,group:K.SYSTEM_PROMPTS,applied:!1,details:`incomplete escaping: unclosed interpolation detected`});continue}D.autoEscaped&&J(`Auto-escaped unescaped backticks in "${c.name}"`);let O=D.content;O===j[0]?_.set(d,k+1):(v.set(d,(v.get(d)??0)+1),p.splice(i,i+E,O),m=!0,u.recordSplice(p,{start:i,end:i+E,replacementLength:O.length})),b[s]=Dt(c.content),g!==null&&V(g,p.toString(),O,i,i+E);let A=l-f,M=O!==j[0],N;N=A>0?t.green(`${A} fewer chars`):A<0?t.red(`${Math.abs(A)} more chars`):`unchanged`;let ee=y.length;y.push({id:s,name:c.name,group:K.SYSTEM_PROMPTS,applied:M,details:N}),x.push(ee)}else{let e=!1;if(a!==void 0&&m)try{let t=l.get(d);e=(t?await oa(t,a):[]).length>0}catch{e=!1}if(e){J(`"${c.name}": region consumed by an earlier inline-blob/reminder override — leaving superseded, no warning`),y.push({id:s,name:c.name,group:K.SYSTEM_PROMPTS,applied:!1,skipped:!0});continue}let n=process.env.TWEAKCC_TARGET_PLATFORM||process.platform;if(Array.isArray(r.platforms)&&r.platforms.length>0&&!r.platforms.includes(n)){J(`"${c.name}": not in the ${n} build (platforms: ${r.platforms.join(`, `)}) — skipping`),y.push({id:s,name:c.name,group:K.SYSTEM_PROMPTS,applied:!1,skipped:!0,details:`not in the ${n} build`});continue}if(!c.name.startsWith(`Data:`)&&c.name!==`Skill: Build with Claude API`&&console.log(t.yellow(`Could not find system prompt "${c.name}" in cli.js (using regex ${Ld(E)})`)),hd()){Y(`\n Debug info for ${c.name}:`),Y(` Regex pattern (first 200 chars): ${d.substring(0,200).replace(/\n/g,`\\n`)}...`),Y(` Trying to match pattern in cli.js...`);try{Y(` Partial match result: ${p.toString().match(new RegExp(d.substring(0,100)))?`found partial`:`no match`}`)}catch{Y(` Partial match failed (regex truncation issue)`)}}}}try{await It(b)}catch(e){J(`Failed to store applied prompt hashes: ${e}`);for(let e of x){let t=y[e];t&&(t.failed=!0,t.details=t.details?`${t.details} (hash storage failed)`:`hash storage failed`)}}return{newContent:p.toString(),results:y}},ma=e=>e.replace(/\\u([0-9a-fA-F]{4})/g,(e,t)=>String.fromCharCode(parseInt(t,16))),V=(e,n,r,i,a,o=40)=>{if(!hd())return;let s=Math.max(0,i-o),c=Math.min(e.length,a+o),l=Math.min(n.length,i+r.length+o),u=e.slice(s,c),d=n.slice(s,l),f=ma(u),p=ma(d);if(f===p){gd()&&(Y(`
279
+ `&&e.push(n-1),B(t,n-1)===`n`&&B(t,n-2)===`\\`&&e.push(n-2),e}if(e.kind===`non-ascii`){let r=[];B(t,n-1)===e.value&&r.push(n-1);let i=e.code.toString(16).padStart(4,`0`),a=Gi(t,n-6,n);if(a[0]===`\\`&&a[1]===`u`&&a.slice(2).toLowerCase()===i&&r.push(n-6),e.code<=255){let i=e.code.toString(16).padStart(2,`0`),a=Gi(t,n-4,n);a[0]===`\\`&&a[1]===`x`&&a.slice(2).toLowerCase()===i&&r.push(n-4)}return r}if(e.kind===`interpolation`){if(B(t,n-1)!==`}`)return[];let e=n-2;for(;e>=0&&B(t,e)!==`{`&&B(t,e)!==`}`;)e--;return B(t,e)===`{`&&B(t,e-1)===`$`?[e-1]:[]}let r=[],i=n-1;for(;i>=0&&Qi(B(t,i));)r.push(i),i--;return r},ta=(e,t,n,r)=>{let i=new Set([r]);for(let r=n.tokenIndex-1;r>=0;r--){let n=new Set;for(let a of i)for(let i of ea(e[r],t,a))n.add(i);if(n.size===0)return[];i=n}return[...i]},na=(e,t,n)=>{let r=[],i=RegExp(`(?=${t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)})`,`gi`),a;for(;(a=i.exec(e))!==null;){if(r.push(a.index),r.length>n)return null;i.lastIndex=a.index+1}return r},ra=(e,t,n)=>{if(!e.plan)return null;let r=n===void 0?typeof t==`string`?na(t,e.plan.anchor,250):null:n;if(!r||r.length>250)return null;let i=new Set;for(let n of r)for(let r of ta(e.tokens,t,e.plan,n))i.add(r);let a=[];for(let n of[...i].sort((e,t)=>e-t)){let r=$i(e.tokens,t,n);r&&a.push(r)}let o=[],s=-1;for(let e of a)e.index<s||(o.push(e),s=e.index+e[0].length);return o},ia=(e,t)=>{let n=[...new Set(t)],r=new Map(n.map(e=>[e,[]]));if(e.length<12)return r;let i=16777619,a=new Map,o=e=>{let t=0;for(let n=0;n<12;n++)t=Math.imul(t,i)+e.charCodeAt(n)>>>0;return t};for(let e of n){let t=o(e),n=a.get(t);n?n.push(e):a.set(t,[e])}let s=1;for(let e=1;e<12;e++)s=Math.imul(s,i)>>>0;let c=o(e),l=e.length-12;for(let t=0;t<=l;t++){let n=a.get(c);if(n){for(let i of n)if(e.startsWith(i,t)){let e=r.get(i);if(e==null)continue;e.length===250?r.set(i,null):e.push(t)}}if(t===l)break;c=Math.imul(c-Math.imul(e.charCodeAt(t),s)>>>0,i)+e.charCodeAt(t+12)>>>0}return r},aa=e=>e,oa=async(e,t)=>ra(Zi(e),t)||Ui(e.regex,`sg`,t);var sa=class{specs=new Map;compiled=new Map;anchorRegexes=new Map;anchorHashes=new Map;anchorOccurrences=new Map;anchorLengthCounts=new Map;maxAnchorLength=12;constructor(e){for(let t of e){this.specs.set(t.regex,t);let e=Zi(t);if(this.compiled.set(t.regex,e),!e.plan)continue;let n=e.plan.anchor,r=this.anchorRegexes.get(n);r?r.push(t.regex):(this.anchorRegexes.set(n,[t.regex]),this.anchorLengthCounts.set(n.length,(this.anchorLengthCounts.get(n.length)??0)+1),this.maxAnchorLength=Math.max(this.maxAnchorLength,n.length))}for(let e of this.anchorRegexes.keys()){let t=ua(e),n=this.anchorHashes.get(t);n?n.push(e):this.anchorHashes.set(t,[e])}}delete(e){let t=this.compiled.get(e)?.plan?.anchor;if(this.specs.delete(e),this.compiled.delete(e),!t)return;let n=this.anchorRegexes.get(t)?.filter(t=>t!==e);if(n&&n.length>0){this.anchorRegexes.set(t,n);return}this.anchorRegexes.delete(t),this.anchorOccurrences.delete(t);let r=(this.anchorLengthCounts.get(t.length)??1)-1;r>0?this.anchorLengthCounts.set(t.length,r):this.anchorLengthCounts.delete(t.length),t.length===this.maxAnchorLength&&r===0&&(this.maxAnchorLength=Math.max(12,...this.anchorLengthCounts.keys()));let i=ua(t),a=this.anchorHashes.get(i)?.filter(e=>e!==t);a&&a.length>0?this.anchorHashes.set(i,a):this.anchorHashes.delete(i)}index(e,t=aa(e)){if(t.length!==e.length){this.anchorOccurrences.clear();return}this.anchorOccurrences=ia(t,[...this.compiled.values()].flatMap(e=>e.plan?[e.plan.anchor]:[]))}async matchCurrent(e,t){let n=this.specs.get(e),r=this.compiled.get(e);if(!n||!r)return[];let i=r.plan?.anchor;return(i?ra(r,t,this.anchorOccurrences.get(i)):null)??await Ui(n.regex,`sg`,Ki(t))}recordSplice(e,t){let n=t.replacementLength-(t.end-t.start);for(let[e,r]of this.anchorOccurrences){if(r===null)continue;let i=[];for(let a of r)a+e.length<=t.start?i.push(a):a>=t.end&&i.push(a+n);this.anchorOccurrences.set(e,i)}let r=Math.max(0,t.start-this.maxAnchorLength+1),i=Math.min(e.length,t.start+t.replacementLength+this.maxAnchorLength-1),a=e.slice(r,i);for(let[e,t]of da(aa(a),this.anchorHashes)){let n=this.anchorOccurrences.get(e);if(n===null||t===null){this.anchorOccurrences.set(e,null);continue}let i=[...new Set([...n??[],...t.map(e=>r+e)])].sort((e,t)=>e-t);this.anchorOccurrences.set(e,i.length>250?null:i)}}async matchBatch(e,t=aa(e)){let n=new Map;if(t.length===e.length){this.index(e,t);for(let[t,r]of this.compiled){let i=ra(r,e,r.plan?this.anchorOccurrences.get(r.plan.anchor):void 0);i&&n.set(t,i)}}for(let[t,r]of this.specs)n.has(t)||n.set(t,await Ui(r.regex,`sg`,e));return n}};const ca=16777619;let la=1;for(let e=1;e<12;e++)la=Math.imul(la,ca)>>>0;const ua=e=>{let t=0;for(let n=0;n<12;n++)t=Math.imul(t,ca)+e.charCodeAt(n)>>>0;return t},da=(e,t)=>{let n=new Map;if(e.length<12)return n;let r=ua(e),i=e.length-12;for(let a=0;a<=i;a++){let o=t.get(r);if(o)for(let t of o){if(!e.startsWith(t,a))continue;let r=n.get(t);r!==null&&(r===void 0?n.set(t,[a]):r.length===250?n.set(t,null):r.push(a))}if(a===i)break;r=Math.imul(r-Math.imul(e.charCodeAt(a),la)>>>0,ca)+e.charCodeAt(a+12)>>>0}return n},fa=async(e,t,n=aa(t))=>new sa(e).matchBatch(t,n),pa=async(e,n,r,i,a)=>{let o=r??vi(e);o&&J(`Detected Unicode escaping in cli.js - will escape non-ASCII characters in prompts`);let s=yi(e);s&&J(`Extracted BUILD_TIME from cli.js: ${s}`);let c=await li(n,o,s);J(`Loaded ${c.length} system prompts with regexes`);let l=new Map;for(let e of c)l.set(e.regex,{regex:e.regex,pieces:e.pieces,version:n,buildTime:s});let u=new sa([...l.values()]);u.index(e,aa(e));let d=new Map;c.forEach((e,t)=>{d.set(e.regex,t)});let f=new Map;for(let[e,t]of d){let n=f.get(t);n?n.push(e):f.set(t,[e])}let p=new Ri(e),m=a!==void 0&&a!==e,h=new Map;for(let e of c){let t=h.get(e.promptId);t||(t=new Set,h.set(e.promptId,t));for(let n of Object.values(e.identifierMap))t.add(n)}let g=new Map;for(let e of c)i&&!i.includes(e.promptId)||g.set(e.regex,(g.get(e.regex)??0)+1);let _=new Map,v=new Map,y=[],b={},x=[];for(let[e,r]of c.entries()){for(let t of f.get(e-1)??[])u.delete(t);let{promptId:s,prompt:c,regex:d,getInterpolatedContent:S,pieces:C,identifiers:w,identifierMap:T}=r;if(i&&!i.includes(s)){y.push({id:s,name:c.name,group:K.SYSTEM_PROMPTS,applied:!1,skipped:!0});continue}J(`Applying system prompt: ${c.name}`);let E=new RegExp(d,`s`),D=await u.matchCurrent(d,p),O=g.get(d)??1,k=_.get(d)??0,A=O-(v.get(d)??0),{match:j,ambiguous:M,disambiguated:N}=Ti(D,A,k,e=>p.charAt(e));if(N&&J(`Disambiguated ${D.length} matches \u2192 ${A} standalone for "${c.name}"`),M){console.log(t.yellow(`"${c.name}" matches ${D.length} places in cli.js for ${A} catalogue entr`+(A===1?`y`:`ies`)+` and none of them is identifiable — skipping rather than splicing into whichever came first`)),y.push({id:s,name:c.name,group:K.SYSTEM_PROMPTS,applied:!1,details:`${D.length} ambiguous candidate sites - no site attributable to this prompt`});continue}if(j&&j.index!==void 0){let e=Tr(C,w,T).trim();if(c.content.trim()===e){J(`"${c.name}": still vanilla \u2014 leaving cli.js untouched`),_.set(d,k+1),b[s]=Dt(c.content),y.push({id:s,name:c.name,group:K.SYSTEM_PROMPTS,applied:!1,details:`unchanged`}),x.push(y.length-1);continue}let r;try{r=S(j)}catch(e){console.log(t.red(`Malformed \${...} interpolation in "${c.name}" (${s}.md): ${e instanceof Error?e.message:String(e)} - skipping`)),_.set(d,k+1),y.push({id:s,name:c.name,group:K.SYSTEM_PROMPTS,applied:!1,failed:!0,details:"malformed ${...} interpolation in the markdown"});continue}let i=j.index,a=p.charAt(i-1);{let e=_i(r,c.content),i=new Set(Object.values(T)),o=h.get(s);if(e.length>0&&e.every(e=>!i.has(e)&&o?.has(e))){J(`"${c.name}": placeholders resolve via a same-id sibling shape — leaving this site pristine`),_.set(d,k+1),y.push({id:s,name:c.name,group:K.SYSTEM_PROMPTS,applied:!1,skipped:!0});continue}let l=j[0],u=a==="`"?e:e.filter(e=>!RegExp(`(?<!\\\\)\\$\\{`+e+`(?![A-Za-z0-9_])`).test(l));if(u.length>0){e.splice(0,e.length,...u),console.log(t.red(`Unresolved placeholder \${${e[0]}} in "${c.name}" (markdown vocabulary out of sync with CC ${n} prompt data) - skipping`)),_.set(d,k+1),y.push({id:s,name:c.name,group:K.SYSTEM_PROMPTS,applied:!1,details:`unresolved placeholder \${${e[0]}} - markdown out of sync with prompt data`});continue}}if(a!==`"`&&a!==`'`&&a!=="`"&&Jr(r)){console.log(t.yellow(`"${c.name}" resolves inside a larger string literal (no delimiter at the match boundary) and its content needs delimiter-specific escaping - skipping`)),_.set(d,k+1),y.push({id:s,name:c.name,group:K.SYSTEM_PROMPTS,applied:!1,details:`unresolvable string delimiter - cannot escape content safely`});continue}let l=e.length,f=c.content.trim().length,g=Ed()?p.toString():null,E=j[0].length,D=Yr(r,a,o);if(D.incomplete){console.log(t.red(`Incomplete backtick escaping for "${c.name}" (unclosed interpolation) - skipping`)),_.set(d,k+1),y.push({id:s,name:c.name,group:K.SYSTEM_PROMPTS,applied:!1,details:`incomplete escaping: unclosed interpolation detected`});continue}D.autoEscaped&&J(`Auto-escaped unescaped backticks in "${c.name}"`);let O=D.content;O===j[0]?_.set(d,k+1):(v.set(d,(v.get(d)??0)+1),p.splice(i,i+E,O),m=!0,u.recordSplice(p,{start:i,end:i+E,replacementLength:O.length})),b[s]=Dt(c.content),g!==null&&V(g,p.toString(),O,i,i+E);let A=l-f,M=O!==j[0],N;N=A>0?t.green(`${A} fewer chars`):A<0?t.red(`${Math.abs(A)} more chars`):`unchanged`;let ee=y.length;y.push({id:s,name:c.name,group:K.SYSTEM_PROMPTS,applied:M,details:N}),x.push(ee)}else{let e=!1;if(a!==void 0&&m)try{let t=l.get(d);e=(t?await oa(t,a):[]).length>0}catch{e=!1}if(e){J(`"${c.name}": region consumed by an earlier inline-blob/reminder override — leaving superseded, no warning`),y.push({id:s,name:c.name,group:K.SYSTEM_PROMPTS,applied:!1,skipped:!0});continue}let n=process.env.TWEAKCC_TARGET_PLATFORM||process.platform;if(Array.isArray(r.platforms)&&r.platforms.length>0&&!r.platforms.includes(n)){J(`"${c.name}": not in the ${n} build (platforms: ${r.platforms.join(`, `)}) — skipping`),y.push({id:s,name:c.name,group:K.SYSTEM_PROMPTS,applied:!1,skipped:!0,details:`not in the ${n} build`});continue}if(!c.name.startsWith(`Data:`)&&c.name!==`Skill: Build with Claude API`&&console.log(t.yellow(`Could not find system prompt "${c.name}" in cli.js (using regex ${Jd(E)})`)),Ed()){Y(`\n Debug info for ${c.name}:`),Y(` Regex pattern (first 200 chars): ${d.substring(0,200).replace(/\n/g,`\\n`)}...`),Y(` Trying to match pattern in cli.js...`);try{Y(` Partial match result: ${p.toString().match(new RegExp(d.substring(0,100)))?`found partial`:`no match`}`)}catch{Y(` Partial match failed (regex truncation issue)`)}}}}try{await It(b)}catch(e){J(`Failed to store applied prompt hashes: ${e}`);for(let e of x){let t=y[e];t&&(t.failed=!0,t.details=t.details?`${t.details} (hash storage failed)`:`hash storage failed`)}}return{newContent:p.toString(),results:y}},ma=e=>e.replace(/\\u([0-9a-fA-F]{4})/g,(e,t)=>String.fromCharCode(parseInt(t,16))),V=(e,n,r,i,a,o=40)=>{if(!Ed())return;let s=Math.max(0,i-o),c=Math.min(e.length,a+o),l=Math.min(n.length,i+r.length+o),u=e.slice(s,c),d=n.slice(s,l),f=ma(u),p=ma(d);if(f===p){Dd()&&(Y(`
280
280
  --- Diff ---`),Y(t.blue(`UNCHANGED: `)+t.dim(f)),Y(`--- End Diff ---
281
281
  `));return}let m=w(f,p),h=0,g=0,_=-1,v=-1,y=-1,b=-1,x=0,S=0;for(let e of m)e.added?(y===-1&&(y=g,_=h),b=g+e.value.length,v=h,x=h,S=g+e.value.length,g+=e.value.length):e.removed?(_===-1&&(_=h,y=g),v=h+e.value.length,b=g,x=h+e.value.length,S=g,h+=e.value.length):(h+=e.value.length,g+=e.value.length);_===-1&&(_=0),y===-1&&(y=0),v===-1&&(v=f.length),b===-1&&(b=p.length);let C=f.length-x,T=p.length-S,E=Math.min(C,T,o),D=Math.max(0,_-o),O=Math.min(f.length,x+E),k=Math.max(0,y-o),A=Math.min(p.length,S+E),j=w(f.slice(D,O),p.slice(k,A)),M=``;for(let e of j)if(!e.added)if(e.removed)if(e.value.includes(`
282
282
  `)){let n=e.value.split(`
@@ -288,7 +288,7 @@ try {
288
288
  --- Diff ---`),Y(t.red(`OLD: `)+M),Y(t.green(`NEW: `)+N),Y(`--- End Diff ---
289
289
  `)},ha=(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),V(a,s,c,t,t+i)}return s},ga=(e,t)=>{if(!/^<!--/.test(t))return null;let n;try{n=y(t,{delimiters:[`<!--`,`-->`]})}catch{return null}let r=n.data;return typeof r.inlineBlobAnchor!=`string`||!r.inlineBlobAnchor||typeof r.inlineBlobKind!=`string`||![`array`,`template`,`string`].includes(r.inlineBlobKind)?null:{filename:e,frontmatter:r,body:n.content.replace(/^\n+/,``).replace(/\n+$/,``)}},_a=(e,t)=>{if(e[t]!==`[`)return null;let n=0,r=!1,i=null,a=t;for(;a<e.length;){let t=e[a];if(r){if(t===`\\`&&a+1<e.length){a+=2;continue}if(t===i)r=!1;else if(i==="`"&&t===`$`&&a+1<e.length&&e[a+1]===`{`){let t=1,n=a+2;for(;n<e.length&&t>0;){let r=e[n];if(r===`\\`&&n+1<e.length){n+=2;continue}if(r==="`"){let r=va(e,n);if(r===null){t=0;break}n=r;continue}r===`{`?t++:r===`}`&&t--,n++}a=n;continue}}else if(t===`"`||t===`'`||t==="`")r=!0,i=t;else if(t===`[`)n++;else if(t===`]`&&(n--,n===0))return a+1;a++}return null},va=(e,t)=>{if(e[t]!=="`")return null;let n=t+1;for(;n<e.length;){let t=e[n];if(t===`\\`&&n+1<e.length){n+=2;continue}if(t==="`")return n+1;if(t===`$`&&n+1<e.length&&e[n+1]===`{`){let t=1,r=n+2;for(;r<e.length&&t>0;){let n=e[r];if(n===`\\`&&r+1<e.length){r+=2;continue}if(n==="`"){let t=va(e,r);if(t===null)return null;r=t;continue}n===`{`?t++:n===`}`&&t--,r++}n=r;continue}n++}return null},ya=(e,t)=>{let n=`"`;for(let r of e){let e=r.codePointAt(0);if(r===`\\`)n+=`\\\\`;else if(r===`"`)n+=`\\"`;else if(r===`
290
290
  `)n+=`\\n`;else if(r===`\r`)n+=`\\r`;else if(r===` `)n+=`\\t`;else if(t&&e>126)if(e<=65535)n+=`\\u`+e.toString(16).padStart(4,`0`);else{let t=e-65536,r=55296+(t>>10),i=56320+(t&1023);n+=`\\u`+r.toString(16).padStart(4,`0`)+`\\u`+i.toString(16).padStart(4,`0`)}else n+=r}return n+=`"`,n},ba=e=>{let t=[],n=0;for(;n<e.length;){if(e[n]===`$`&&n+1<e.length&&e[n+1]===`{`&&(n===0||e[n-1]!==`\\`)){let r=1,i=n+2,a=!1,o=null,s=i;for(;i<e.length&&r>0;){let t=e[i];if(a){if(t===`\\`&&i+1<e.length){i+=2;continue}t===o&&(a=!1)}else if(t===`"`||t===`'`||t==="`")a=!0,o=t;else if(t===`{`)r++;else if(t===`}`&&(r--,r===0))break;i++}t.push(e.slice(s,i)),n=i+1;continue}n++}return t},xa=e=>{let t=[],n=0;for(;n<e.length;){let r=e[n];if(r===`"`||r===`'`||r==="`"){let i=r,a=n+1,o=``;for(;a<e.length;){if(e[a]===`\\`){o+=e.slice(a,a+2),a+=2;continue}if(e[a]===i)break;if(i==="`"&&e[a]===`$`&&e[a+1]===`{`){let t=1,n=a+2;for(;n<e.length&&t>0;)e[n]===`{`?t++:e[n]===`}`&&t--,n++;o+="${}",a=n;continue}o+=e[a],a++}t.push(o),n=a+1;continue}n++}return t},Sa=(e,t)=>{let n=ba(e),r=[],i=Math.min(n.length,t.length);for(let e=0;e<i;e++){let i=xa(n[e]);if(i.length===0)continue;let a=xa(t[e]);(i.length!==a.length||i.some((e,t)=>e!==a[t]))&&r.push(e)}return r},Ca=(e,t)=>{let n=``,r=0,i=0;for(;r<e.length;){if(e[r]===`$`&&r+1<e.length&&e[r+1]===`{`&&(r===0||e[r-1]!==`\\`)){let a=1,o=r+2,s=!1,c=null;for(;o<e.length&&a>0;){let t=e[o];if(s){if(t===`\\`&&o+1<e.length){o+=2;continue}t===c&&(s=!1)}else if(t===`"`||t===`'`||t==="`")s=!0,c=t;else if(t===`{`)a++;else if(t===`}`&&(a--,a===0))break;o++}i<t.length?n+="${"+t[i]+`}`:n+=e.slice(r,o+1),i++,r=o+1;continue}n+=e[r],r++}return n},wa=e=>{let t=new Set;for(let n of e.matchAll(/(?<!\\)\$\{([A-Za-z$][\w$]*)\}/g)){let e=n[1];e.length>4||e===e.toUpperCase()&&/[A-Z]/.test(e)&&e.length>2||t.add(e)}return t},Ta=(e,t)=>{let n=wa(e),r=[];for(let e of wa(t))n.has(e)||r.push(e);return r},Ea=e=>{let t=[],n=0,r=!1,i=null,a=e=>/[A-Za-z_$]/.test(e),o=e=>/[A-Za-z0-9_$]/.test(e);for(;n<e.length;){let s=e[n];if(r){if(s===`\\`&&n+1<e.length){n+=2;continue}if(s===i){r=!1,n++;continue}if(i==="`"&&s===`$`&&n+1<e.length&&e[n+1]===`{`){let r=1,i=n+2,a=!1,o=null;for(;i<e.length&&r>0;){let t=e[i];if(a){if(t===`\\`&&i+1<e.length){i+=2;continue}t===o&&(a=!1),i++;continue}if(t===`"`||t===`'`||t==="`"){a=!0,o=t,i++;continue}if(t===`{`)r++;else if(t===`}`&&(r--,r===0))break;i++}let s=e.slice(n+2,i);for(let e of Ea(s))t.push({name:e.name,start:e.start+n+2,end:e.end+n+2});n=i+1;continue}n++;continue}if(s===`"`||s===`'`||s==="`"){r=!0,i=s,n++;continue}if(a(s)){let r=n>0?e[n-1]:``,i=n>1?e[n-2]:``,a=n>2?e[n-3]:``,s=!(r===`.`&&i===`.`&&a===`.`)&&(r===`.`||r===`?`&&i===`?`),c=n;for(;n<e.length&&o(e[n]);)n++;let l=e.slice(c,n);!s&&![`true`,`false`,`null`,`undefined`,`this`,`void`,`new`].includes(l)&&t.push({name:l,start:c,end:n});continue}n++}return t},Da=(e,t)=>{let n=Ea(e);if(n.length===0)return e;let r=``,i=0,a=0;for(let o of n)r+=e.slice(i,o.start),a<t.length?r+=t[a]:r+=o.name,i=o.end,a++;return r+=e.slice(i),r},Oa=(e,t)=>{let n="`",r=0;for(;r<e.length;){let i=e[r];if(i===`$`&&r+1<e.length&&e[r+1]===`{`){let t=1,i=r+2,a=!1,o=null;for(;i<e.length&&t>0;){let n=e[i];if(a){if(n===`\\`&&i+1<e.length){i+=2;continue}n===o&&(a=!1)}else n===`"`||n===`'`||n==="`"?(a=!0,o=n):n===`{`?t++:n===`}`&&t--;i++}n+=e.slice(r,i),r=i;continue}let a=i.codePointAt(0);if(i===`\\`)n+=`\\\\`;else if(i==="`")n+="\\`";else if(t&&a>126)if(a<=65535)n+=`\\u`+a.toString(16).padStart(4,`0`);else{let e=a-65536,t=55296+(e>>10),r=56320+(e&1023);n+=`\\u`+t.toString(16).padStart(4,`0`)+`\\u`+r.toString(16).padStart(4,`0`)}else n+=i;r++}return n+="`",n},ka=async(e,t)=>{let n=vi(e);n&&J(`inlineBlobOverrides: cli.js uses unicode escaping`);let r;try{r=await a.readdir($)}catch{return{content:e,results:[]}}let i=r.filter(e=>e.startsWith(`inline-`)&&e.endsWith(`.md`)&&(!t?.only||e===t.only));if(i.length===0)return{content:e,results:[]};let o=[];for(let t of i.sort()){let r=u.join($,t),i;try{i=await a.readFile(r,`utf8`)}catch(e){o.push({filename:t,name:t,applied:!1,failed:!0,details:`read failed: ${e}`});continue}let s=ga(t,i);if(!s){o.push({filename:t,name:t,applied:!1,failed:!0,details:`frontmatter missing inlineBlobAnchor/Kind`});continue}let{frontmatter:c,body:l}=s,d;try{d=new RegExp(c.inlineBlobAnchor,`s`)}catch(e){o.push({filename:t,name:c.name,applied:!1,failed:!0,details:`invalid anchor regex: ${e}`});continue}let f=d.exec(e);if(!f){o.push({filename:t,name:c.name,applied:!1,failed:!0,details:`anchor not found in cli.js`});continue}let p,m,h;if(c.inlineBlobKind===`array`){let r=e.indexOf(`[`,f.index);if(r===-1){o.push({filename:t,name:c.name,applied:!1,failed:!0,details:`no [ after anchor`});continue}let i=_a(e,r);if(i===null){o.push({filename:t,name:c.name,applied:!1,failed:!0,details:`array walker failed`});continue}if(p=r,m=i,c.inlineBlobRawPassthrough===`true`){let t=Da(l,Ea(e.slice(r+1,i-1)).map(e=>e.name));h=`[`+(n?X(t):t)+`]`}else h=`[`+l.split(`
291
- `).map(e=>ya(e,n)).join(`,`)+`]`}else if(c.inlineBlobKind===`template`){let r=e[f.index]==="`"?f.index:e.indexOf("`",f.index);if(r===-1){o.push({filename:t,name:c.name,applied:!1,failed:!0,details:`no backtick at/after anchor`});continue}let i=va(e,r);if(i===null){o.push({filename:t,name:c.name,applied:!1,failed:!0,details:`template walker failed`});continue}p=r,m=i;let a=ba(e.slice(r+1,i-1)),s=Sa(l,a);if(s.length>0){let e=ba(l),n=s.map(t=>`#${t} \${${e[t]??``}}`).join(`, `);console.error(`patch: inline-blob: "${c.name}" (${t}): authored content inside \${...} slot(s) ${n} cannot survive — the binary re-emits every interpolation, so that text would be silently discarded. Move the content into the literal AROUND the slot. Override not applied.`),o.push({filename:t,name:c.name,applied:!1,failed:!0,details:`authored content inside \${...} slot(s) ${s.join(`, `)} would be discarded`});continue}h=Oa(Ca(l,a),n)}else if(c.inlineBlobKind===`string`){let r=f.index;for(;r<e.length&&e[r]!==`"`&&e[r]!==`'`;)r++;if(r>=e.length){o.push({filename:t,name:c.name,applied:!1,failed:!0,details:`no quote at/after anchor`});continue}let i=e[r],a=r+1;for(;a<e.length;){if(e[a]===`\\`){a+=2;continue}if(e[a]===i)break;a++}if(a>=e.length){o.push({filename:t,name:c.name,applied:!1,failed:!0,details:`unterminated string`});continue}p=r,m=a+1,h=ya(l,n)}else{o.push({filename:t,name:c.name,applied:!1,failed:!0,details:`kind ${c.inlineBlobKind} not implemented`});continue}let g=f.index,_=f.index+f[0].length;if(!(p<=_&&m>g)){console.log(`inline-blob: anchor for "${c.name}" (${t}) matched outside its target literal — cannot apply safely, skipping`),o.push({filename:t,name:c.name,applied:!1,failed:!1,skipped:!0,details:`anchor matched outside target literal — skipped (unsafe)`});continue}let v=Ta(e.slice(p,m),h);if(v.length>0){console.log(`inline-blob: "${c.name}" (${t}) would introduce undefined var \${${v[0]}} (markdown out of sync with CC prompt data) — cannot apply safely, skipping`),o.push({filename:t,name:c.name,applied:!1,failed:!1,skipped:!0,details:`would introduce undefined \${${v[0]}} — skipped (unsafe)`});continue}let y=e;e=e.slice(0,p)+h+e.slice(m);let b=m-p-h.length,x=b>0?`${b} fewer chars`:b<0?`${-b} more chars`:`unchanged`;V(y,e,h,p,m),o.push({filename:t,name:c.name,applied:!0,failed:!1,details:x})}return{content:e,results:o}},Aa=async()=>{let e=new Map,t=(t,n)=>{if(!Array.isArray(n))return;let r=e.get(t);r||(r=new Set,e.set(t,r));for(let e of n)typeof e==`string`&&e&&r.add(e)};for(let e of[$,Kd]){let n;try{n=await a.readdir(e)}catch{continue}for(let r of n){if(!r.endsWith(`.md`))continue;let n;try{n=await a.readFile(u.join(e,r),`utf8`)}catch{continue}let i;try{i=y(n,{delimiters:[`<!--`,`-->`]}).data}catch{continue}t(r.slice(0,-3),i.shadows),t(r,i.shadows)}}for(let e of lr)t(e.id,e.shadows);return e},ja=async(e,t,n,r)=>{let i=new Ri(e),a=new sa([...new Map(n.map(e=>[e.regex,e.spec])).values()]);a.index(e,aa(e));let o=new Map,s=new Map,c=new Map,l=new Map,u=[],d=[...n].sort((e,t)=>e.order-t.order),f=new Map;d.forEach((e,t)=>f.set(e.regex,t));let p=new Map;for(let[e,t]of f){let n=p.get(t);n?n.push(e):p.set(t,[e])}let m=new Map;for(let e of d)m.set(e.regex,(m.get(e.regex)??0)+1);let h=new Map,g=new Map;for(let[e,n]of d.entries()){for(let t of p.get(e-1)??[])a.delete(t);let d=await a.matchCurrent(n.regex,i),f=h.get(n.regex)??0,{match:_}=Ti(d,(m.get(n.regex)??1)-(g.get(n.regex)??0),f,e=>i.charAt(e));if(!_||_.index===void 0){o.set(n.claim,!1);continue}let v={start:_.index,end:_.index+_[0].length},y=i.charAt(v.start-1),b=n.getInterpolatedContent(_);if(n.shouldSkip?.(b,y)){o.set(n.claim,!1),h.set(n.regex,f+1);continue}let x=Yr(b,y,r);if(x.incomplete){o.set(n.claim,!1),h.set(n.regex,f+1);continue}if(o.set(n.claim,!0),c.set(n.claim,x.content),l.set(n.claim,y),x.content===_[0]){s.set(n.claim,v),h.set(n.regex,f+1);continue}g.set(n.regex,(g.get(n.regex)??0)+1);let S={...n.claim,...t.spanToPristine(v),mutates:!0,replacement:x.content},C=x.content.length-(v.end-v.start);for(let e of s.values())if(!(e.end<=v.start)){if(e.start>=v.end){e.start+=C,e.end+=C;continue}e.start=Math.min(e.start,v.start),e.end=Math.max(v.start+x.content.length,e.end+C)}i.splice(v.start,v.end,x.content),t.record(v,x.content.length),a.recordSplice(i,{start:v.start,end:v.end,replacementLength:x.content.length}),s.set(n.claim,{start:v.start,end:v.start+x.content.length}),u.push({claim:S,source:n.claim,regex:n.regex,order:n.order})}return{content:i.toString(),landed:o,destinations:s,replacements:c,delimiters:l,mutations:u}},Ma=async e=>{let t=[],n=new Ii,r=e,i=(e,i,a,o)=>{let s=Fi(r,o);if(!s)return;let c=s.end-s.start+(o.length-r.length),l={...n.spanToPristine(s),surface:e,id:i,site:0,mutates:!0,body:a,delimiter:``,replacement:o.slice(s.start,s.start+c)};t.push(l),n.record(s,c),r=o},o=[];try{o=await a.readdir($)}catch{o=[]}for(let e of o.filter(e=>e.startsWith(`inline-`)&&e.endsWith(`.md`)).sort()){let{content:t}=await ka(r,{only:e}),n=``;try{n=y(await a.readFile(u.join($,e),`utf8`),{delimiters:[`<!--`,`-->`]}).content}catch{n=``}i(`inline-blob`,e,n,t)}for(let e of lr){let t=await Ht(e.id),n=t?t.body:e.defaultBody,a=t?t.isSuppressed:!1,{result:o,errors:s}=Wt(n,e.placeholders);if(s.length>0)continue;let c=null;try{c=e.apply(r,o,a)}catch{c=null}c!==null&&i(`reminder`,e.id,n,c)}return{claims:t,content:r,mapper:n}},Na=e=>{let t=new Set,n=[];for(let r of e){let e=[r.check,r.id,r.line??``,r.offending??``,r.message].join(`\0`);t.has(e)||(t.add(e),n.push(r))}return n},Pa=async({pristine:e,version:t,patchFilter:n})=>{let r=[],i=vi(e),o=yi(e),s=await li(t,i,o);if(s.length===0)return{version:t,promptsChecked:0,sitesChecked:0,findings:[]};let c=await zr(t),l=new Map;for(let e of s){let t=l.get(e.promptId)??new Set;for(let n of Object.values(e.identifierMap))t.add(n);l.set(e.promptId,t)}let u=new Map;s.forEach((e,t)=>{if(n&&!n.includes(e.promptId))return;let r=u.get(e.regex);r?r.push({order:t,entry:e}):u.set(e.regex,[{order:t,entry:e}])});let d=[],f=new Map,p=0,m=await fa([...u].map(([e,n])=>({regex:e,pieces:n[0].entry.pieces,version:t,buildTime:o})),e,aa(e));for(let[n,a]of u){let s=a.length,u=m.get(n)??[],h=Ci(e,u,s),g=u.length>s&&h.length!==s?[]:h,_=g.flatMap(e=>e.index===void 0?[]:[{start:e.index,end:e.index+e[0].length}]);if(h.length!==s){let e=[...new Set(a.map(e=>e.entry.promptId))].join(`, `);r.push({check:`cardinality`,severity:`warning`,id:a[0].entry.promptId,site:0,message:`${h.length} candidate site(s) in cli.js for ${s} catalogue entr${s===1?`y`:`ies`} (${e}) — the apply consumes one site per entry, so this `+(h.length<s?`leaves entries with no site to splice`:`is ambiguous and the apply will skip it rather than splice into whichever site came first`)})}for(let s=0;s<a.length;s++){let{order:u,entry:m}=a[s],h=g[s];if(!h||h.index===void 0)continue;p++;let v=xi(e,h.index),y=m.prompt.content;if(v==="`")for(let e of Di(y))r.push({check:`backtick-escape`,severity:e.kind===`lossy`?`error`:`warning`,id:m.promptId,site:s,line:m.prompt.contentLineOffset+e.line,lineText:e.lineText,offending:e.offending,required:e.required,message:e.kind===`lossy`?`\`${e.offending}\` at a backtick site is consumed by the template literal (\`\\s\` cooks to \`s\`, \`[\\s\\S]\` to \`[sS]\`) — write \`${e.required}\` for a literal backslash`:`\`${e.offending}\` at a backtick site is a redundant escape: the backslash is dropped and the quote renders as written. Drop the backslash, or double it to keep one`});let b=m.getInterpolatedContent(h),x=m.prompt.content.trim()===Tr(m.pieces,m.identifiers,m.identifierMap).trim(),S=(e,t)=>{if(x||t!==`"`&&t!==`'`&&t!=="`"&&Jr(e))return!0;let n=_i(e,m.prompt.content),r=new Set(Object.values(m.identifierMap)),i=l.get(m.promptId),a=n.length>0&&n.every(e=>!r.has(e)&&i?.has(e)),o=t==="`"?n:n.filter(e=>!RegExp(`(?<!\\\\)\\$\\{`+e+`(?![A-Za-z0-9_])`).test(h[0]));return a||o.length>0},C=Yr(b,v,i),w=e.slice(h.index,h.index+h[0].length),T=c.get(m.promptId),E=Li(T?[...T].join(`
291
+ `).map(e=>ya(e,n)).join(`,`)+`]`}else if(c.inlineBlobKind===`template`){let r=e[f.index]==="`"?f.index:e.indexOf("`",f.index);if(r===-1){o.push({filename:t,name:c.name,applied:!1,failed:!0,details:`no backtick at/after anchor`});continue}let i=va(e,r);if(i===null){o.push({filename:t,name:c.name,applied:!1,failed:!0,details:`template walker failed`});continue}p=r,m=i;let a=ba(e.slice(r+1,i-1)),s=Sa(l,a);if(s.length>0){let e=ba(l),n=s.map(t=>`#${t} \${${e[t]??``}}`).join(`, `);console.error(`patch: inline-blob: "${c.name}" (${t}): authored content inside \${...} slot(s) ${n} cannot survive — the binary re-emits every interpolation, so that text would be silently discarded. Move the content into the literal AROUND the slot. Override not applied.`),o.push({filename:t,name:c.name,applied:!1,failed:!0,details:`authored content inside \${...} slot(s) ${s.join(`, `)} would be discarded`});continue}h=Oa(Ca(l,a),n)}else if(c.inlineBlobKind===`string`){let r=f.index;for(;r<e.length&&e[r]!==`"`&&e[r]!==`'`;)r++;if(r>=e.length){o.push({filename:t,name:c.name,applied:!1,failed:!0,details:`no quote at/after anchor`});continue}let i=e[r],a=r+1;for(;a<e.length;){if(e[a]===`\\`){a+=2;continue}if(e[a]===i)break;a++}if(a>=e.length){o.push({filename:t,name:c.name,applied:!1,failed:!0,details:`unterminated string`});continue}p=r,m=a+1,h=ya(l,n)}else{o.push({filename:t,name:c.name,applied:!1,failed:!0,details:`kind ${c.inlineBlobKind} not implemented`});continue}let g=f.index,_=f.index+f[0].length;if(!(p<=_&&m>g)){console.log(`inline-blob: anchor for "${c.name}" (${t}) matched outside its target literal — cannot apply safely, skipping`),o.push({filename:t,name:c.name,applied:!1,failed:!1,skipped:!0,details:`anchor matched outside target literal — skipped (unsafe)`});continue}let v=Ta(e.slice(p,m),h);if(v.length>0){console.log(`inline-blob: "${c.name}" (${t}) would introduce undefined var \${${v[0]}} (markdown out of sync with CC prompt data) — cannot apply safely, skipping`),o.push({filename:t,name:c.name,applied:!1,failed:!1,skipped:!0,details:`would introduce undefined \${${v[0]}} — skipped (unsafe)`});continue}let y=e;e=e.slice(0,p)+h+e.slice(m);let b=m-p-h.length,x=b>0?`${b} fewer chars`:b<0?`${-b} more chars`:`unchanged`;V(y,e,h,p,m),o.push({filename:t,name:c.name,applied:!0,failed:!1,details:x})}return{content:e,results:o}},Aa=async()=>{let e=new Map,t=(t,n)=>{if(!Array.isArray(n))return;let r=e.get(t);r||(r=new Set,e.set(t,r));for(let e of n)typeof e==`string`&&e&&r.add(e)};for(let e of[$,rf]){let n;try{n=await a.readdir(e)}catch{continue}for(let r of n){if(!r.endsWith(`.md`))continue;let n;try{n=await a.readFile(u.join(e,r),`utf8`)}catch{continue}let i;try{i=y(n,{delimiters:[`<!--`,`-->`]}).data}catch{continue}t(r.slice(0,-3),i.shadows),t(r,i.shadows)}}for(let e of lr)t(e.id,e.shadows);return e},ja=async(e,t,n,r)=>{let i=new Ri(e),a=new sa([...new Map(n.map(e=>[e.regex,e.spec])).values()]);a.index(e,aa(e));let o=new Map,s=new Map,c=new Map,l=new Map,u=[],d=[...n].sort((e,t)=>e.order-t.order),f=new Map;d.forEach((e,t)=>f.set(e.regex,t));let p=new Map;for(let[e,t]of f){let n=p.get(t);n?n.push(e):p.set(t,[e])}let m=new Map;for(let e of d)m.set(e.regex,(m.get(e.regex)??0)+1);let h=new Map,g=new Map;for(let[e,n]of d.entries()){for(let t of p.get(e-1)??[])a.delete(t);let d=await a.matchCurrent(n.regex,i),f=h.get(n.regex)??0,{match:_}=Ti(d,(m.get(n.regex)??1)-(g.get(n.regex)??0),f,e=>i.charAt(e));if(!_||_.index===void 0){o.set(n.claim,!1);continue}let v={start:_.index,end:_.index+_[0].length},y=i.charAt(v.start-1),b=n.getInterpolatedContent(_);if(n.shouldSkip?.(b,y)){o.set(n.claim,!1),h.set(n.regex,f+1);continue}let x=Yr(b,y,r);if(x.incomplete){o.set(n.claim,!1),h.set(n.regex,f+1);continue}if(o.set(n.claim,!0),c.set(n.claim,x.content),l.set(n.claim,y),x.content===_[0]){s.set(n.claim,v),h.set(n.regex,f+1);continue}g.set(n.regex,(g.get(n.regex)??0)+1);let S={...n.claim,...t.spanToPristine(v),mutates:!0,replacement:x.content},C=x.content.length-(v.end-v.start);for(let e of s.values())if(!(e.end<=v.start)){if(e.start>=v.end){e.start+=C,e.end+=C;continue}e.start=Math.min(e.start,v.start),e.end=Math.max(v.start+x.content.length,e.end+C)}i.splice(v.start,v.end,x.content),t.record(v,x.content.length),a.recordSplice(i,{start:v.start,end:v.end,replacementLength:x.content.length}),s.set(n.claim,{start:v.start,end:v.start+x.content.length}),u.push({claim:S,source:n.claim,regex:n.regex,order:n.order})}return{content:i.toString(),landed:o,destinations:s,replacements:c,delimiters:l,mutations:u}},Ma=async e=>{let t=[],n=new Ii,r=e,i=(e,i,a,o)=>{let s=Fi(r,o);if(!s)return;let c=s.end-s.start+(o.length-r.length),l={...n.spanToPristine(s),surface:e,id:i,site:0,mutates:!0,body:a,delimiter:``,replacement:o.slice(s.start,s.start+c)};t.push(l),n.record(s,c),r=o},o=[];try{o=await a.readdir($)}catch{o=[]}for(let e of o.filter(e=>e.startsWith(`inline-`)&&e.endsWith(`.md`)).sort()){let{content:t}=await ka(r,{only:e}),n=``;try{n=y(await a.readFile(u.join($,e),`utf8`),{delimiters:[`<!--`,`-->`]}).content}catch{n=``}i(`inline-blob`,e,n,t)}for(let e of lr){let t=await Ht(e.id),n=t?t.body:e.defaultBody,a=t?t.isSuppressed:!1,{result:o,errors:s}=Wt(n,e.placeholders);if(s.length>0)continue;let c=null;try{c=e.apply(r,o,a)}catch{c=null}c!==null&&i(`reminder`,e.id,n,c)}return{claims:t,content:r,mapper:n}},Na=e=>{let t=new Set,n=[];for(let r of e){let e=[r.check,r.id,r.line??``,r.offending??``,r.message].join(`\0`);t.has(e)||(t.add(e),n.push(r))}return n},Pa=async({pristine:e,version:t,patchFilter:n})=>{let r=[],i=vi(e),o=yi(e),s=await li(t,i,o);if(s.length===0)return{version:t,promptsChecked:0,sitesChecked:0,findings:[]};let c=await zr(t),l=new Map;for(let e of s){let t=l.get(e.promptId)??new Set;for(let n of Object.values(e.identifierMap))t.add(n);l.set(e.promptId,t)}let u=new Map;s.forEach((e,t)=>{if(n&&!n.includes(e.promptId))return;let r=u.get(e.regex);r?r.push({order:t,entry:e}):u.set(e.regex,[{order:t,entry:e}])});let d=[],f=new Map,p=0,m=await fa([...u].map(([e,n])=>({regex:e,pieces:n[0].entry.pieces,version:t,buildTime:o})),e,aa(e));for(let[n,a]of u){let s=a.length,u=m.get(n)??[],h=Ci(e,u,s),g=u.length>s&&h.length!==s?[]:h,_=g.flatMap(e=>e.index===void 0?[]:[{start:e.index,end:e.index+e[0].length}]);if(h.length!==s){let e=[...new Set(a.map(e=>e.entry.promptId))].join(`, `);r.push({check:`cardinality`,severity:`warning`,id:a[0].entry.promptId,site:0,message:`${h.length} candidate site(s) in cli.js for ${s} catalogue entr${s===1?`y`:`ies`} (${e}) — the apply consumes one site per entry, so this `+(h.length<s?`leaves entries with no site to splice`:`is ambiguous and the apply will skip it rather than splice into whichever site came first`)})}for(let s=0;s<a.length;s++){let{order:u,entry:m}=a[s],h=g[s];if(!h||h.index===void 0)continue;p++;let v=xi(e,h.index),y=m.prompt.content;if(v==="`")for(let e of Di(y))r.push({check:`backtick-escape`,severity:e.kind===`lossy`?`error`:`warning`,id:m.promptId,site:s,line:m.prompt.contentLineOffset+e.line,lineText:e.lineText,offending:e.offending,required:e.required,message:e.kind===`lossy`?`\`${e.offending}\` at a backtick site is consumed by the template literal (\`\\s\` cooks to \`s\`, \`[\\s\\S]\` to \`[sS]\`) — write \`${e.required}\` for a literal backslash`:`\`${e.offending}\` at a backtick site is a redundant escape: the backslash is dropped and the quote renders as written. Drop the backslash, or double it to keep one`});let b=m.getInterpolatedContent(h),x=m.prompt.content.trim()===Tr(m.pieces,m.identifiers,m.identifierMap).trim(),S=(e,t)=>{if(x||t!==`"`&&t!==`'`&&t!=="`"&&Jr(e))return!0;let n=_i(e,m.prompt.content),r=new Set(Object.values(m.identifierMap)),i=l.get(m.promptId),a=n.length>0&&n.every(e=>!r.has(e)&&i?.has(e)),o=t==="`"?n:n.filter(e=>!RegExp(`(?<!\\\\)\\$\\{`+e+`(?![A-Za-z0-9_])`).test(h[0]));return a||o.length>0},C=Yr(b,v,i),w=e.slice(h.index,h.index+h[0].length),T=c.get(m.promptId),E=Li(T?[...T].join(`
292
292
  `):w,C.content);E.length>0&&r.push({check:`raw-non-ascii`,severity:`error`,id:m.promptId,site:s,offending:E.join(` `),message:`would introduce raw non-ASCII ${E.join(` `)} the pristine text does not carry — Bun stores modules as Latin-1, so raw bytes mojibake; emit \\uXXXX instead`});let D={start:h.index,end:h.index+h[0].length,surface:`prompt`,id:m.promptId,site:s,mutates:!S(b,v)&&C.content!==w,body:y,delimiter:v,replacement:C.content};f.set(D,{regex:n,spec:{regex:n,pieces:m.pieces,version:t,buildTime:o},sites:_,order:u,getInterpolatedContent:m.getInterpolatedContent,shouldSkip:S}),d.push({order:u,claim:D})}}let h=await Ma(e),g=d.sort((e,t)=>e.order-t.order).map(e=>e.claim),_=[...h.claims,...g],v=g.flatMap(e=>{let t=f.get(e);return t?[{claim:e,regex:t.regex,spec:t.spec,order:t.order,getInterpolatedContent:t.getInterpolatedContent,shouldSkip:t.shouldSkip}]:[]}),y=await ja(h.content,h.mapper,v,i),b=await Aa(),x=(e,t)=>b.get(e)?.has(t)??!1,S=new Map(ki(_,x).map(e=>[e.claim,e.owner])),C=[...h.claims.map((e,t)=>({claim:e,source:e,regex:``,order:t-h.claims.length})),...y.mutations],w=v.flatMap(e=>{if(!e.claim.mutates)return[];let t=f.get(e.claim),n=S.get(e.claim);if(n)return[{claim:e.claim,owner:n,direct:!0}];if(y.landed.get(e.claim)!==!1)return[];let r=C.filter(t=>!(t.order>=e.order||t.regex===e.regex||t.claim.id===e.claim.id||x(t.claim.id,e.claim.id)||x(e.claim.id,t.claim.id))).find(e=>t.sites.some(t=>e.claim.start<t.end&&t.start<e.claim.end||e.source.start<t.end&&t.start<e.source.end));return r&&Oi(e.claim.body,r.claim.body)?[]:r?[{claim:e.claim,owner:r.claim,direct:!1}]:[]}),T=new Map(w.map(e=>[e.claim,ji(y.replacements.get(e.claim)??e.claim.replacement,25,160,(y.delimiters.get(e.claim)??e.claim.delimiter)==="`")])),E=Mi(e,[...T.values()].flat());process.env.TWEAKCC_PREFLIGHT_DUMP&&(await a.writeFile(process.env.TWEAKCC_PREFLIGHT_DUMP+`.cands`,w.map(e=>`${e.claim.id} <- ${e.owner.id}`).join(`
293
293
  `)),await a.writeFile(process.env.TWEAKCC_PREFLIGHT_DUMP+`.landings`,v.map(e=>`${e.claim.id}[${e.claim.site}]=${y.landed.get(e.claim)}`).join(`
294
294
  `)),await a.writeFile(process.env.TWEAKCC_PREFLIGHT_DUMP+`.mutations`,C.map(e=>`${e.source.id}[${e.source.site}] -> [${e.claim.start},${e.claim.end})`).join(`
@@ -458,7 +458,7 @@ if (toolsets.hasOwnProperty(currentToolset)) {
458
458
  } else {
459
459
  ${f} = ${p};
460
460
  }let `,h=u.index,g=h+u[0].length,_=e.slice(0,h)+m+e.slice(g);return V(e,_,m,h,g),_},mo=(e,t,n,r,i)=>{let a=JSON.stringify(Object.fromEntries(t.map(e=>[e.name,e.allowedTools===`*`?`*`:e.allowedTools]))),o=`globalThis.__tweakcc_appStore=this.store;const __ts=${a},__tf=(t,s)=>{const n=${H(`s`,n,r,i)};globalThis.__tweakcc_toolset={name:n,tools:__ts[n]};if(__ts.hasOwnProperty(n)){const a=__ts[n];if(a==="*")return t;return t.filter(d=>a.includes(d.name))}return t};`,s=e.match(/computeToolPoolFresh=\(\)=>\{let ([$\w]+)=this\.store\.getState\(\),/);if(s&&s.index!==void 0){let t=s.index+25,n=ro(e,t);if(n!==null){let r=s[1],i=e.slice(t+1,n),a=i.match(/return ([$\w]+);?\s*$/);if(a&&a.index!==void 0){let c=a[1],l=o+i.slice(0,a.index)+`return{...${c},tools:__tf(${c}.tools,${r})}`+i.slice(a.index+a[0].length),u=e.slice(0,t+1)+l+e.slice(n);return V(e,u,l,s.index,n+1),u}}}let c=e.match(/computeTools=\(\)=>\{let ([$\w]+)=this\.store\.getState\(\),/);if(c&&c.index!==void 0){let t=c.index+17,n=ro(e,t);if(n!==null){let r=c[1],i=o+e.slice(t+1,n),a=i.match(/return this\.toolPoolCache=\{key:([$\w]+),result:([$\w]+)\},\2/);if(a&&a.index!==void 0){let e=a[1],t=a[2];i=i.slice(0,a.index)+`return this.toolPoolCache={key:${e},result:${t}},__tf(${t},${r})`+i.slice(a.index+a[0].length)}let s=i.match(/return ([$\w]+)\.result;/);if(s&&s.index!==void 0){let e=s[1];i=i.slice(0,s.index)+`return __tf(${e}.result,${r});`+i.slice(s.index+s[0].length)}let l=c.index,u=e.slice(0,t+1)+i+e.slice(n);return V(e,u,i,l,n+1),u}}if(!lo(e))return console.error(`patch: toolsets: computeToolsFilter: failed to find app state info`),null;let l=e.match(/([,;{])([$\w]+)=([$\w]+\.useCallback\()\(\)=>\{let ([$\w]+)=([$\w]+)\.getState\(\),([$\w]+)=([$\w]+)\.current(?:,[$\w]+=[^;]{0,80})*;if\(\6!==null&&[\s\S]{0,600}?\)return \6\.result;[\s\S]{0,300}?let ([$\w]+)=[$\w]+\(\4\.toolPermissionContext,\4\.mcp\.tools(?:,\{skillTools:\4\.skillTools(?:,activeAgents:[^{}]*)?\})?\),([$\w]+)=[$\w]+\([$\w]+,\8,\4\.toolPermissionContext\.mode\),([$\w]+)=[$\w]+\([$\w]+\?[$\w]+\([$\w]+,(?:\9|[$\w]+\([$\w]+,\9,[^()]*\)),!1,!0\)\.resolvedTools:\9,\4\.toolPermissionContext\);return \7\.current=\{[\s\S]{0,600}?result:\10\},\10\},\[/);if(l&&l.index!==void 0){let t=l[0],o=l[4],s=l[6],c=l[10],u=`const __ts=${a},__tf=(t,s)=>{const n=${H(`s`,n,r,i)};globalThis.__tweakcc_toolset={name:n,tools:__ts[n]};if(__ts.hasOwnProperty(n)){const a=__ts[n];if(a==="*")return t;return t.filter(d=>a.includes(d.name))}return t};`,d=t.indexOf(`()=>{`),f=`return ${s}.result;`,p=t.indexOf(f),m=`,${c}},[`;if(d===-1||p===-1||!t.endsWith(m))return console.error(`patch: toolsets: computeToolsFilter: memoized shape matched but landmarks missing`),null;let h=t.slice(0,t.length-m.length)+`,__tf(${c},${o})},[`;h=h.slice(0,p)+`return __tf(${s}.result,${o});`+h.slice(p+f.length),h=h.slice(0,d+5)+u+h.slice(d+5);let g=l.index,_=g+t.length,v=e.slice(0,g)+h+e.slice(_);return V(e,v,h,g,_),v}let u=e.match(/([$\w]+)=(?:([$\w]+\.useCallback\())?\(\)=>\{let ([$\w]+)=([$\w]+)\.getState\(\),([$\w]+)=([$\w]+)\(\3\.toolPermissionContext,\3\.mcp\.tools(?:,\{skillTools:\3\.skillTools\})?\),([$\w]+)=([$\w]+)\([$\w]+,\5,\3\.toolPermissionContext\.mode\);if\(!([$\w]+)\)return \7;return ([$\w]+)\(\9,\7,!1,!0\)\.resolvedTools\}/);if(!u||u.index===void 0)return console.error(`patch: toolsets: computeToolsFilter: failed to find computeTools pattern`),null;let d=u[1],f=u[2]||``,p=u[3],m=u[4],h=u[5],g=u[6],_=u[7],v=u[8],y=u[9],b=u[10],x=u[0].includes(`{skillTools:${p}.skillTools}`)?`,{skillTools:${p}.skillTools}`:``,S=JSON.stringify(Object.fromEntries(t.map(e=>[e.name,e.allowedTools===`*`?`*`:e.allowedTools]))),C=u[0],w=C.match(RegExp(`${v.replace(/\$/g,`\\$`)}\\(([$\\w]+),${h.replace(/\$/g,`\\$`)},`));if(!w)return console.error(`patch: toolsets: computeToolsFilter: failed to extract init var from merge call`),null;let T=`${d}=${f}()=>{let ${p}=${m}.getState(),${h}=${g}(${p}.toolPermissionContext,${p}.mcp.tools${x}),${_}=${v}(${w[1]},${h},${p}.toolPermissionContext.mode);const __ts=${S},__tc=${H(p,n,r,i)},__tf=(t)=>{globalThis.__tweakcc_toolset={name:__tc,tools:__ts[__tc]};if(__ts.hasOwnProperty(__tc)){const a=__ts[__tc];if(a==="*")return t;return t.filter(d=>a.includes(d.name))}return t};if(!${y})return __tf(${_});return __tf(${b}(${y},${_},!1,!0).resolvedTools)}`,E=u.index,D=E+C.length,O=e.slice(0,E)+T+e.slice(D);return V(e,O,T,E,D),O},ho=(e,t,n,r,i)=>{let a=JSON.stringify(Object.fromEntries(t.map(e=>[e.name,e.allowedTools===`*`?`*`:e.allowedTools]))),o=e.match(/\{session:[$\w]+,refreshTools:([$\w]+),refreshMcpClients:([$\w]+),verbose:/),s=e=>e.replace(/\$/g,`\\$`);if(o&&o.index!==void 0){let t=o[1],c=RegExp(`${s(t)}=\\(\\)=>([$\\w]+)\\(([$\\w]+)\\(\\)\\)`,`g`),l=null;for(let t=c.exec(e);t!==null;t=c.exec(e))if(t.index<o.index)l=t;else{l===null&&(l=t);break}if(!l||l.index===void 0)return console.error(`patch: toolsets: printToolsFilter: failed to find the print tools thunk`),null;let u=l[1],d=l[2],f=`((t,s)=>{const p=${a},n=${H(`s`,n,r,i)};globalThis.__tweakcc_toolset={name:n,tools:p[n]};if(p.hasOwnProperty(n)){const a=p[n];if(a==="*")return t;return t.filter(d=>a.includes(d.name))}return t})`,p=`${t}=()=>{let s=${d}();return ${f}(${u}(s),s)}`,m=e.slice(0,l.index)+p+e.slice(l.index+l[0].length);V(e,m,p,l.index,l.index+p.length);let h=[...m.matchAll(/tools:([$\w]+),mcpClients:([$\w]+),appendSystemPrompt:/g)].map(e=>e[1]).find(e=>e!==t);if(h===void 0)return m;let g=m.match(RegExp(`${s(h)}=${s(u)}\\(([$\\w]+)\\)`));if(!g||g.index===void 0)return console.error(`patch: toolsets: printToolsFilter: failed to find print tools initialization`),null;let _=g[1],v=`${h}=${f}(${u}(${_}),${_})`,y=m;return m=m.slice(0,g.index)+v+m.slice(g.index+g[0].length),V(y,m,v,g.index,g.index+v.length),m}let c=e.match(/tools:([$\w]+),refreshTools:\(\)=>([$\w]+)\(([$\w]+)\(\)\)/);if(!c||c.index===void 0)return console.error(`patch: toolsets: printToolsFilter: failed to find print tools initialization`),null;let l=c[1],u=c[2],d=c[3],f=RegExp(`let ${s(l)}=${s(u)}\\(([$\\w]+)\\)([;,])`,`g`),p=null;for(let t=f.exec(e);t!==null;t=f.exec(e))if(t.index<c.index)p=t;else{p===null&&(p=t);break}if(p===null)return console.error(`patch: toolsets: printToolsFilter: failed to find print tools initialization`),null;let m=p,h=m[1],g=m[2]===`,`?`let `:``,_=`let ${l}=${u}(${h});const __tpts=${a},__tptf=(t,s)=>{const n=${H(`s`,n,r,i)};globalThis.__tweakcc_toolset={name:n,tools:__tpts[n]};if(__tpts.hasOwnProperty(n)){const a=__tpts[n];if(a==="*")return t;return t.filter(d=>a.includes(d.name))}return t};${l}=__tptf(${l},${h});${g}`,v=e.slice(0,m.index)+_+e.slice(m.index+m[0].length);V(e,v,_,m.index,m.index+m[0].length);let y=RegExp(`refreshTools:\\(\\)=>${u.replace(/\$/g,`\\$`)}\\(${d.replace(/\$/g,`\\$`)}\\(\\)\\)`),b=v.match(y);if(!b||b.index===void 0)return console.error(`patch: toolsets: printToolsFilter: failed to find print refreshTools`),null;let x=`refreshTools:()=>{let s=${d}();return __tptf(${u}(s),s)}`,S=v;return v=v.slice(0,b.index)+x+v.slice(b.index+b[0].length),V(S,v,x,b.index,b.index+b[0].length),v},go=(e,t,n)=>{let r=/`<tool_use_error>Error: No such tool available: \$\{([$\w.]+)\}(?:\$\{([$\w.]+)\})?<\/tool_use_error>`/g,i=e,a=0,o=`__tweakcc_toolErrorMsg`,s=`function ${o}(toolName,hint){hint=hint||"";var info=globalThis.__tweakcc_toolset;if(info&&info.tools&&info.tools!=="*"&&Array.isArray(info.tools)){return "<tool_use_error>Error: No such tool available: "+toolName+hint+". The active toolset is '"+info.name+"' which only includes: "+info.tools.join(", ")+". Do not attempt to use "+toolName+" again — it will fail. If the user switches toolsets via /toolset, you may retry.</tool_use_error>"}return "<tool_use_error>Error: No such tool available: "+toolName+hint+"</tool_use_error>"};`;if(i=i.replace(r,(e,t,n)=>(a++,n?`${o}(${t},${n})`:`${o}(${t})`)),a===0)return console.error(`patch: toolsets: toolsetAwareErrors: failed to find error pattern`),null;i=i.replace(/`Error: No such tool available: \$\{([$\w.]+)\}(?:\$\{([$\w.]+)\})?`/g,(e,t,n)=>`${n?`${o}(${t},${n})`:`${o}(${t})`}.replace(/<\\/?tool_use_error>/g,"")`);let c=i.indexOf(`
461
- `,i.indexOf(`// Version:`));return c===-1?(console.error(`patch: toolsets: toolsetAwareErrors: failed to find insertion point for helper`),null):(i=i.slice(0,c+1)+s+i.slice(c+1),i)},_o=(e,t,n,r,i)=>{let a=Ju(e);if(!a)return console.error(`patch: toolsets: failed to find React variable`),null;let o=uo(e);if(o===null)return console.error(`patch: toolsets: failed to find slash command insertion point`),null;let s=nd(e);if(!s)return console.error(`patch: toolsets: failed to find Box component`),null;let c=ed(e);if(!c)return console.error(`patch: toolsets: failed to find Text component`),null;let l=io(e);if(!l)return console.error(`patch: toolsets: failed to find Select component`),null;let u=ao(e),d=lo(e);if(!d)return console.error(`patch: toolsets: failed to find app state getter`),null;let f=Uu(e);if(!f)return console.error(`patch: toolsets: failed to find chalk variable`),null;let{appStateUseSelectorFn:p,appStateSetState:m}=d,h=JSON.stringify(t.map(e=>e.name)),g=JSON.stringify(t.map(e=>({label:e.name,value:e.name,description:e.allowedTools===`*`?`All tools`:e.allowedTools.length===0?`No tools`:`${e.allowedTools.length} tool${e.allowedTools.length===1?``:`s`}: ${e.allowedTools.join(`, `)}`}))),_=`const toolsetComp = ({ onExit, input }) => {
461
+ `,i.indexOf(`// Version:`));return c===-1?(console.error(`patch: toolsets: toolsetAwareErrors: failed to find insertion point for helper`),null):(i=i.slice(0,c+1)+s+i.slice(c+1),i)},_o=(e,t,n,r,i)=>{let a=ad(e);if(!a)return console.error(`patch: toolsets: failed to find React variable`),null;let o=uo(e);if(o===null)return console.error(`patch: toolsets: failed to find slash command insertion point`),null;let s=pd(e);if(!s)return console.error(`patch: toolsets: failed to find Box component`),null;let c=dd(e);if(!c)return console.error(`patch: toolsets: failed to find Text component`),null;let l=io(e);if(!l)return console.error(`patch: toolsets: failed to find Select component`),null;let u=ao(e),d=lo(e);if(!d)return console.error(`patch: toolsets: failed to find app state getter`),null;let f=ed(e);if(!f)return console.error(`patch: toolsets: failed to find chalk variable`),null;let{appStateUseSelectorFn:p,appStateSetState:m}=d,h=JSON.stringify(t.map(e=>e.name)),g=JSON.stringify(t.map(e=>({label:e.name,value:e.name,description:e.allowedTools===`*`?`All tools`:e.allowedTools.length===0?`No tools`:`${e.allowedTools.length} tool${e.allowedTools.length===1?``:`s`}: ${e.allowedTools.join(`, `)}`}))),_=`const toolsetComp = ({ onExit, input }) => {
462
462
  const currentToolset = ${p}(state => ${H(`state`,n,r,i)});
463
463
 
464
464
  const setState = ${m}();
@@ -524,7 +524,7 @@ if (toolsets.hasOwnProperty(currentToolset)) {
524
524
  ${a}.createElement(${c}, { dimColor: true, italic: true }, "Enter to confirm · Esc to exit")
525
525
  )
526
526
  );
527
- };`,v=e.slice(0,o)+_+e.slice(o);return V(e,v,_,o,o),v},vo=()=>/function ([$\w]+)\([$\w]+\)\{(?:let currentToolset=[^;]*;)?let ([$\w]+)=[$\w]+(?:\.[$\w]+)?\(\d+\),/g,yo=()=>/([$\w]+(?:\([$\w]+\))?)," on"/g,bo=`"? for shortcuts"`,xo=(e,t)=>{let n=Array.from(e.matchAll(vo())),r=[];for(let i of So(e,t)){let t=null;for(let e of n)if(e.index!==void 0&&e.index<i)t=e;else break;if(!t||t.index===void 0)continue;let a=t.index+t[0].indexOf(`){`)+1,o=ro(e,a);o===null||i>o||r.some(e=>e.braceIndex===a)||r.push({name:t[1],cacheVar:t[2],braceIndex:a,bodyStart:a+1,bodyEnd:o})}return r},So=(e,t)=>{let n=[],r=e.indexOf(t);for(;r!==-1;)n.push(r),r=e.indexOf(t,r+t.length);return n},Co=e=>{let t=Array.from(e.matchAll(vo()));if(t.length===0)return null;let n=t=>{if(t.index===void 0)return null;let n=t.index+t[0].indexOf(`){`)+1,r=ro(e,n);return r===null?null:{name:t[1],cacheVar:t[2],braceIndex:n,bodyStart:n+1,bodyEnd:r}};for(let e of t){if(!e[0].includes(`let currentToolset=`))continue;let t=n(e);if(t)return t}let r=xo(e,`?"":" on"`);if(r.length)return r.find(t=>e.slice(t.bodyStart,t.bodyEnd).indexOf(bo)!==-1)??r[0];let i=[];for(let r of e.matchAll(yo())){if(r.index===void 0)continue;let e=null;for(let n of t)if(n.index!==void 0&&n.index<r.index)e=n;else break;if(!e)continue;let a=n(e);!a||r.index>a.bodyEnd||i.some(e=>e.braceIndex===a.braceIndex)||i.push(a)}return i.length===0?null:i.find(t=>e.slice(t.bodyStart,t.bodyEnd).indexOf(bo)!==-1)??i[0]},wo=(e,t,n)=>{let r=e.lastIndexOf(`if(`,n);if(r<t.bodyStart||!e.startsWith(`${t.cacheVar}[`,r+3))return null;let i=ro(e,r+2);return i===null||i>=n?null:i},To=(e,t)=>{let n=e;for(let e of[...t].sort((e,t)=>t.start-e.start))n=n.slice(0,e.start)+e.text+n.slice(e.end);return n},Eo=(e,t,n)=>{if(n.length===0)return null;let r=[],i=new Set;for(let a of n){r.push({start:a.start,end:a.end,text:a.text});let n=wo(e,t,a.start);n!==null&&!i.has(n)&&(i.add(n),r.push({start:n,end:n,text:`||!0`}))}let a=To(e,r),o=n.reduce((e,t)=>e.start<=t.start?e:t);return V(e,a,o.text,o.start,o.end),a},Do=e=>{let t=e.match(/\{color:"bashBorder"\},"! for (?:bash|shell) mode"/);if(!t||t.index===void 0)return console.error(`patch: toolsets: findShiftTabAppStateVarInsertionPoint: failed to find bash mode pattern`),null;let n=Math.max(0,t.index-1e4),r=e.slice(n,t.index),i=Array.from(r.matchAll(/function ([$\w]+)\((?:\{[^}]+\}|[$\w]+)\)\{/g));if(i.length===0)return console.error(`patch: toolsets: findShiftTabAppStateVarInsertionPoint: failed to find function pattern`),null;let a=i[i.length-1];return a.index===void 0?(console.error(`patch: toolsets: findShiftTabAppStateVarInsertionPoint: match has no index`),null):n+a.index+a[0].length},Oo=(e,t,n,r)=>{let i=lo(e);if(!i)return console.error(`patch: toolsets: insertShiftTabAppStateVar: failed to find app state getter`),null;let{appStateUseSelectorFn:a,selectorIndex:o}=i,s=t=>o===void 0?a:co(e,a,o,t),c=e=>`let currentToolset=${s(e)}(state => ${H(`state`,t,n,r)});`,l=Co(e),u=[...l?[l]:[],...xo(e,bo),...xo(e,`?"":" on"`),...xo(e,`," on"`)],d=new Set,f=u.filter(e=>d.has(e.braceIndex)?!1:(d.add(e.braceIndex),!0)).filter(t=>!e.startsWith(`let currentToolset=`,t.bodyStart)).map(e=>e.bodyStart);if(u.length>0){if(f.length===0)return e;let t=f.map(e=>({start:e,end:e,text:c(e)})),n=To(e,t),r=Math.min(...f);return V(e,n,t[0].text,r,r),n}let p=Do(e);if(p===null)return console.error(`patch: toolsets: insertShiftTabAppStateVar: failed to find insertion point`),null;let m=c(p),h=e.slice(0,p)+m+e.slice(p);return V(e,h,m,p,p),h},ko=e=>{if(e.includes("currentToolset?` on ["))return e;let t=e.match(/const ([$\w]+)=([$\w]+)\?"":" on"/);if(t&&t.index!==void 0){let n=`const ${t[1]}=${t[2]}?"":(currentToolset?\` on [\${currentToolset}]\`:" on")`,r=e.slice(0,t.index)+n+e.slice(t.index+t[0].length);return V(e,r,n,t.index,t.index+t[0].length),r}let n=xo(e,`," on"`),r=n.find(t=>e.startsWith(`let currentToolset=`,t.bodyStart))??n[0];if(r){let t=e.slice(r.bodyStart,r.bodyEnd);if(t.includes("currentToolset?` on ["))return e;let n=Eo(e,r,Array.from(t.matchAll(yo())).filter(e=>e.index!==void 0).map(e=>{let t=r.bodyStart+e.index;return{start:t,end:t+e[0].length,text:`${e[1]},currentToolset?\` on [\${currentToolset}]\`:" on"`}}));if(n)return n}let i=e.match(/([$\w]+)\(([$\w]+)\)\.toLowerCase\(\)," on"/);if(!i||i.index===void 0)return console.error(`patch: toolsets: appendToolsetToModeDisplay: failed to find mode display pattern`),null;let a=i[1],o=i[2],s=i[0],c=`${a}(${o}).toLowerCase(),currentToolset?\` on [\${currentToolset}]\`:""`,l=e.slice(0,i.index)+c+e.slice(i.index+s.length);return V(e,l,c,i.index,i.index+s.length),l},Ao=e=>{let t=xo(e,bo),n=t.filter(t=>e.startsWith(`let currentToolset=`,t.bodyStart)),r=t.length?Co(e):null,i=n.length?n:r?t.filter(e=>e.braceIndex===r.braceIndex):[],a=e,o=!1;for(let e of i){let t=a.slice(e.bodyStart,e.bodyEnd);if(t.includes("currentToolset?`? for shortcuts [")){o=!0;continue}let n=[],r=t.indexOf(bo);for(;r!==-1;){let i=e.bodyStart+r;n.push({start:i,end:i+17,text:`currentToolset?\`? for shortcuts [\${currentToolset}]\`:${bo}`}),r=t.indexOf(bo,r+17)}let i=Eo(a,e,n);if(i)return a=i,o=!0,Ao(a)}if(o)return a;let s=Array.from(e.matchAll(/"\? for shortcuts"/g)).at(-1);if(!s||s.index===void 0)return console.error(`patch: toolsets: appendToolsetToShortcutsDisplay: could not find '? for shortcuts'`),null;let c=s[0],l='currentToolset?`? for shortcuts [${currentToolset}]`:"? for shortcuts"',u=e.slice(0,s.index)+l+e.slice(s.index+c.length);return V(e,u,l,s.index,s.index+c.length),u},jo=(e,t,n,r,i)=>{let a=Ju(e);if(a)return Xa(e,`, {
527
+ };`,v=e.slice(0,o)+_+e.slice(o);return V(e,v,_,o,o),v},vo=()=>/function ([$\w]+)\([$\w]+\)\{(?:let currentToolset=[^;]*;)?let ([$\w]+)=[$\w]+(?:\.[$\w]+)?\(\d+\),/g,yo=()=>/([$\w]+(?:\([$\w]+\))?)," on"/g,bo=`"? for shortcuts"`,xo=(e,t)=>{let n=Array.from(e.matchAll(vo())),r=[];for(let i of So(e,t)){let t=null;for(let e of n)if(e.index!==void 0&&e.index<i)t=e;else break;if(!t||t.index===void 0)continue;let a=t.index+t[0].indexOf(`){`)+1,o=ro(e,a);o===null||i>o||r.some(e=>e.braceIndex===a)||r.push({name:t[1],cacheVar:t[2],braceIndex:a,bodyStart:a+1,bodyEnd:o})}return r},So=(e,t)=>{let n=[],r=e.indexOf(t);for(;r!==-1;)n.push(r),r=e.indexOf(t,r+t.length);return n},Co=e=>{let t=Array.from(e.matchAll(vo()));if(t.length===0)return null;let n=t=>{if(t.index===void 0)return null;let n=t.index+t[0].indexOf(`){`)+1,r=ro(e,n);return r===null?null:{name:t[1],cacheVar:t[2],braceIndex:n,bodyStart:n+1,bodyEnd:r}};for(let e of t){if(!e[0].includes(`let currentToolset=`))continue;let t=n(e);if(t)return t}let r=xo(e,`?"":" on"`);if(r.length)return r.find(t=>e.slice(t.bodyStart,t.bodyEnd).indexOf(bo)!==-1)??r[0];let i=[];for(let r of e.matchAll(yo())){if(r.index===void 0)continue;let e=null;for(let n of t)if(n.index!==void 0&&n.index<r.index)e=n;else break;if(!e)continue;let a=n(e);!a||r.index>a.bodyEnd||i.some(e=>e.braceIndex===a.braceIndex)||i.push(a)}return i.length===0?null:i.find(t=>e.slice(t.bodyStart,t.bodyEnd).indexOf(bo)!==-1)??i[0]},wo=(e,t,n)=>{let r=e.lastIndexOf(`if(`,n);if(r<t.bodyStart||!e.startsWith(`${t.cacheVar}[`,r+3))return null;let i=ro(e,r+2);return i===null||i>=n?null:i},To=(e,t)=>{let n=e;for(let e of[...t].sort((e,t)=>t.start-e.start))n=n.slice(0,e.start)+e.text+n.slice(e.end);return n},Eo=(e,t,n)=>{if(n.length===0)return null;let r=[],i=new Set;for(let a of n){r.push({start:a.start,end:a.end,text:a.text});let n=wo(e,t,a.start);n!==null&&!i.has(n)&&(i.add(n),r.push({start:n,end:n,text:`||!0`}))}let a=To(e,r),o=n.reduce((e,t)=>e.start<=t.start?e:t);return V(e,a,o.text,o.start,o.end),a},Do=e=>{let t=e.match(/\{color:"bashBorder"\},"! for (?:bash|shell) mode"/);if(!t||t.index===void 0)return console.error(`patch: toolsets: findShiftTabAppStateVarInsertionPoint: failed to find bash mode pattern`),null;let n=Math.max(0,t.index-1e4),r=e.slice(n,t.index),i=Array.from(r.matchAll(/function ([$\w]+)\((?:\{[^}]+\}|[$\w]+)\)\{/g));if(i.length===0)return console.error(`patch: toolsets: findShiftTabAppStateVarInsertionPoint: failed to find function pattern`),null;let a=i[i.length-1];return a.index===void 0?(console.error(`patch: toolsets: findShiftTabAppStateVarInsertionPoint: match has no index`),null):n+a.index+a[0].length},Oo=(e,t,n,r)=>{let i=lo(e);if(!i)return console.error(`patch: toolsets: insertShiftTabAppStateVar: failed to find app state getter`),null;let{appStateUseSelectorFn:a,selectorIndex:o}=i,s=t=>o===void 0?a:co(e,a,o,t),c=e=>`let currentToolset=${s(e)}(state => ${H(`state`,t,n,r)});`,l=Co(e),u=[...l?[l]:[],...xo(e,bo),...xo(e,`?"":" on"`),...xo(e,`," on"`)],d=new Set,f=u.filter(e=>d.has(e.braceIndex)?!1:(d.add(e.braceIndex),!0)).filter(t=>!e.startsWith(`let currentToolset=`,t.bodyStart)).map(e=>e.bodyStart);if(u.length>0){if(f.length===0)return e;let t=f.map(e=>({start:e,end:e,text:c(e)})),n=To(e,t),r=Math.min(...f);return V(e,n,t[0].text,r,r),n}let p=Do(e);if(p===null)return console.error(`patch: toolsets: insertShiftTabAppStateVar: failed to find insertion point`),null;let m=c(p),h=e.slice(0,p)+m+e.slice(p);return V(e,h,m,p,p),h},ko=e=>{if(e.includes("currentToolset?` on ["))return e;let t=e.match(/const ([$\w]+)=([$\w]+)\?"":" on"/);if(t&&t.index!==void 0){let n=`const ${t[1]}=${t[2]}?"":(currentToolset?\` on [\${currentToolset}]\`:" on")`,r=e.slice(0,t.index)+n+e.slice(t.index+t[0].length);return V(e,r,n,t.index,t.index+t[0].length),r}let n=xo(e,`," on"`),r=n.find(t=>e.startsWith(`let currentToolset=`,t.bodyStart))??n[0];if(r){let t=e.slice(r.bodyStart,r.bodyEnd);if(t.includes("currentToolset?` on ["))return e;let n=Eo(e,r,Array.from(t.matchAll(yo())).filter(e=>e.index!==void 0).map(e=>{let t=r.bodyStart+e.index;return{start:t,end:t+e[0].length,text:`${e[1]},currentToolset?\` on [\${currentToolset}]\`:" on"`}}));if(n)return n}let i=e.match(/([$\w]+)\(([$\w]+)\)\.toLowerCase\(\)," on"/);if(!i||i.index===void 0)return console.error(`patch: toolsets: appendToolsetToModeDisplay: failed to find mode display pattern`),null;let a=i[1],o=i[2],s=i[0],c=`${a}(${o}).toLowerCase(),currentToolset?\` on [\${currentToolset}]\`:""`,l=e.slice(0,i.index)+c+e.slice(i.index+s.length);return V(e,l,c,i.index,i.index+s.length),l},Ao=e=>{let t=xo(e,bo),n=t.filter(t=>e.startsWith(`let currentToolset=`,t.bodyStart)),r=t.length?Co(e):null,i=n.length?n:r?t.filter(e=>e.braceIndex===r.braceIndex):[],a=e,o=!1;for(let e of i){let t=a.slice(e.bodyStart,e.bodyEnd);if(t.includes("currentToolset?`? for shortcuts [")){o=!0;continue}let n=[],r=t.indexOf(bo);for(;r!==-1;){let i=e.bodyStart+r;n.push({start:i,end:i+17,text:`currentToolset?\`? for shortcuts [\${currentToolset}]\`:${bo}`}),r=t.indexOf(bo,r+17)}let i=Eo(a,e,n);if(i)return a=i,o=!0,Ao(a)}if(o)return a;let s=Array.from(e.matchAll(/"\? for shortcuts"/g)).at(-1);if(!s||s.index===void 0)return console.error(`patch: toolsets: appendToolsetToShortcutsDisplay: could not find '? for shortcuts'`),null;let c=s[0],l='currentToolset?`? for shortcuts [${currentToolset}]`:"? for shortcuts"',u=e.slice(0,s.index)+l+e.slice(s.index+c.length);return V(e,u,l,s.index,s.index+c.length),u},jo=(e,t,n,r,i)=>{let a=ad(e);if(a)return Xa(e,`, {
528
528
  aliases: ["change-tools"],
529
529
  type: "local-jsx",
530
530
  name: "toolset",
@@ -567,7 +567,7 @@ if (toolsets.hasOwnProperty(currentToolset)) {
567
567
  }`)},Mo=e=>{let t=e.match(/[$\w]+=\([$\w]+\)=>\{[$\w]+\("tengu_ext_at_mentioned",\{\}\)[,;]/);if(t&&t.index!==void 0){let n=No(e,t.index);if(n!==null){let r=Math.max(0,t.index-500),i=e.slice(r,t.index).lastIndexOf(`if(`);if(i!==-1){let a=ro(e,r+i+2);if(a!==null&&a+1===t.index&&e.startsWith(`else`,n)){let t=n+4;if(e[t]===` `&&t++,e[t]===`{`){let r=ro(e,t);r!==null&&(n=r+1)}else{let r=No(e,t);r!==null&&(n=r)}}}return n}}let n=e.match(/[$\w]+=[$\w]+\(\([$\w]+\)=>\{[$\w]+\("tengu_ext_at_mentioned",\{\}\)[;,]/);if(n&&n.index!==void 0){let t=No(e,n.index);if(t!==null)return t}let r=e.match(/[\w$]+\([\w$]+,function\([\w$]+\)\{[\w$]+\("tengu_ext_at_mentioned",\{\}\)[;,]/);return!r||r.index===void 0?(console.error(`patch: findToolChangeComponentScope: failed to find tool change component scope`),null):r.index},No=(e,t)=>{let n=0,r=t;for(;r<e.length;){let t=e[r];if(t===`"`||t===`'`||t==="`"){let n=t;for(r+=1;r<e.length;){if(e[r]===`\\`){r+=2;continue}if(e[r]===n)break;r+=1}if(r>=e.length)return null;r+=1;continue}if(t===`(`||t===`[`||t===`{`)n+=1;else if(t===`)`||t===`]`||t===`}`){if(n===0)return null;--n}else if(t===`;`&&n===0)return r+1;r+=1}return null},Po=(e,t,n,r)=>{let i=Mo(e);if(i===null)return null;let a=lo(e);if(!a)return console.error(`patch: addCurrentToolsetAtToolChangeComponentScope: failed to get app state getter function`),null;let{appStateUseSelectorFn:o,selectorIndex:s}=a,c=`const currentToolset = ${s===void 0?o:co(e,o,s,i)}(state => ${H(`state`,t,n,r)});`,l=e.slice(0,i)+c+e.slice(i);return V(e,l,c,i,i),l},Fo=e=>{let t=e.match(/return ([$\w]+)\(\([$\w]+\)=>\{let ([$\w]+)=[$\w]+\.toolPermissionContext\.mode;if\(\2===([$\w]+)\)return [$\w]+;let ([$\w]+)=[$\w]+\(\2,\3,[$\w]+\.toolPermissionContext\);return\{\.\.\.[$\w]+,toolPermissionContext:\{\.\.\.\4,mode:\3\}\}\}\)/);if(t&&t.index!==void 0)return{index:t.index,modeVar:t[3],setStateVar:t[1]};let n=e.match(/if\(([$\w]+)\(\([$\w]+\)=>\(\{\.\.\.[$\w]+,toolPermissionContext.{0,200}?mode:([$\w]+)/);return!n||n.index===void 0?(console.error(`patch: findModeChange: failed to find mode change location`),null):{index:n.index,modeVar:n[2],setStateVar:n[1]}},Io=(e,t,n,r)=>{let i=Fo(e);if(!i)return null;let{index:a,modeVar:o,setStateVar:s}=i,c=`if(${o}==="plan"){${s}((prev)=>({...prev,toolset:process.env.TWEAKCC_TOOLSET_PLAN||${JSON.stringify(r)},toolsetAutoMode:"plan"}));}else if(${o}==="acceptEdits"){${s}((prev)=>({...prev,toolset:process.env.TWEAKCC_TOOLSET_ALLOW_EDITS||${JSON.stringify(n)},toolsetAutoMode:null}));}else if(${o}==="auto"){${s}((prev)=>({...prev,toolset:process.env.TWEAKCC_TOOLSET_AUTO||process.env.TWEAKCC_TOOLSET_DEFAULT||${JSON.stringify(t)},toolsetAutoMode:null}));}else{${s}((prev)=>({...prev,toolset:process.env.TWEAKCC_TOOLSET_DEFAULT||${JSON.stringify(t)},toolsetAutoMode:null}));}`,l=e.slice(0,a)+c+e.slice(a);return V(e,l,c,a,a),l},Lo=(e,t,n,r,i)=>{if(!t||t.length===0)return e;let a=e;if(a=fo(a),!a)return console.error(`patch: toolsets: step 1 failed (writeToolsetFieldToAppState)`),null;if(a=po(a,t,n,r,i),!a)return console.error(`patch: toolsets: step 2 failed (writeToolFetchingUseMemo)`),null;if(a=mo(a,t,n,r,i),!a)return console.error(`patch: toolsets: step 2b failed (writeComputeToolsFilter)`),null;if(a=ho(a,t,n,r,i),!a)return console.error(`patch: toolsets: step 2c failed (writePrintToolsFilter)`),null;let o=go(a,t,n);o?a=o:console.error(`patch: toolsets: step 2d failed (writeToolsetAwareErrors) — continuing without friendlier errors`);let s=_o(a,t,n,r,i);if(s?a=s:console.log(`patch: toolsets: step 3 skipped (no React global — using text /toolset)`),a=jo(a,t,n,r,i),!a)return console.error(`patch: toolsets: step 4 failed (writeSlashCommandDefinition)`),null;if(a=Oo(a,n,r,i),!a)return console.error(`patch: toolsets: step 5 failed (insertShiftTabAppStateVar)`),null;if(a=ko(a),!a)return console.error(`patch: toolsets: step 6 failed (appendToolsetToModeDisplay)`),null;if(a=Ao(a),!a)return console.error(`patch: toolsets: step 7 failed (appendToolsetToShortcutsDisplay)`),null;if(n&&(r||i)){let e=r??n,t=i??n;if(a=Po(a,n,e,t),!a)return console.error(`patch: toolsets: step 8a failed (addCurrentToolsetAtToolChangeComponentScope)`),null;if(a=Io(a,n,e,t),!a)return console.error(`patch: toolsets: step 8b failed (writeModeChangeUpdateToolset)`),null}return a},Ro=/\{top:\["┌","─","┬","┐"\],middle:\["├","─","┼","┤"\],bottom:\["└","─","┴","┘"\]\}/,zo=/top:\["\\u250C","\\u2500","\\u252C","\\u2510"\],middle:\["\\u251C","\\u2500","\\u253C","\\u2524"\],bottom:\["\\u2514","\\u2500","\\u2534","\\u2518"\]/,Bo=/top: \["┌", "─", "┬", "┐"\],\s+middle: \["├", "─", "┼", "┤"\],\s+bottom: \["└", "─", "┴", "┘"\]/,Vo=/if\(([$\w]+)\.push\(\.\.\.([$\w]+)\(([$\w]+),!1\)\),([$\w]+)<([$\w]+)\.rows\.length-1\)([$\w]+)\.push\(([$\w]+)\("middle"\)\)/g,Ho=/if\s*\(\s*\(\s*([$\w]+)\.push\(\.\.\.([$\w]+)\(([$\w]+)\s*,\s*!1\)\)\s*,\s*([$\w]+)\s*<\s*([$\w]+)\.rows\.length\s*-\s*1\s*\)\s*\)\s*([$\w]+)\.push\(([$\w]+)\("middle"\)\)\s*;?/g,Uo=/([$\w]+)\.push\(([$\w]+)\("top"\)\),/g,Wo=/,([$\w]+)\.push\(([$\w]+)\("bottom"\)\),/g,Go=/([$\w]+)\.push\(\s*([$\w]+)\(\s*"top"\s*\)\s*\)\s*,\s*/g,Ko=/,\s*([$\w]+)\.push\(\s*([$\w]+)\(\s*"bottom"\s*\)\s*\)\s*,/g;function qo(e){let t=e,n=!1,r=t;t=t.replace(Vo,`$1.push(...$2($3,!1))`),t!==r&&(n=!0);let i=t;return t=t.replace(Ho,`$1.push(...$2($3,!1))`),t!==i&&(n=!0),{result:t,success:n}}function Jo(e){let t=e,n=!1,r=t;t=t.replace(Uo,``),t!==r&&(n=!0);let i=t;t=t.replace(Go,``),t!==i&&(n=!0);let a=t;t=t.replace(Wo,`,`),t!==a&&(n=!0);let o=t;return t=t.replace(Ko,`,`),t!==o&&(n=!0),{result:t,success:n}}const Yo=(e,t)=>{if(t===`markdown`&&(t=`ascii`),t===`default`)return J(`Table format is "default", no patching needed`),null;let n=e,r=0;if(t===`ascii`){if(Ro.test(n)){let e=n;n=n.replace(Ro,`{top:["","","",""],middle:["|","-","|","|"],bottom:["","","",""]}`),n!==e&&(r++,J(`Patched table border definition object (minified format)`))}else if(zo.test(n)){let e=n;n=n.replace(zo,`top:["","","",""],middle:["|","-","|","|"],bottom:["","","",""]`),n!==e&&(r++,J(`Patched table border definition object (native Unicode format)`))}else if(Bo.test(n)){let e=n;n=n.replace(Bo,`top: ["", "", "", ""],
568
568
  middle: ["|", "-", "|", "|"],bottom: ["", "", "", ""]`),n!==e&&(r++,J(`Patched table border definition object (spaced format)`))}else Y(`Could not find table border definition pattern - CLI may have changed`);{let e=n,t=n.match(/function [$\w]+\([^)]*\)\{[\s\S]{0,1600}?let ([$\w]+)="(?:\\u2502|│)";[\s\S]{0,1600}?\1\+=" "\+[$\w]+\+" (?:\\u2502|│)"/);if(t&&t.index!==void 0){let e=t.index,r=e+t[0].length,i=n.slice(e,r).replace(/" \\u2502"/g,`" |"`).replace(/" │"/g,`" |"`);n=n.slice(0,e)+i+n.slice(r)}n!==e&&(r++,J(`Patched compact table vertical separators`))}{let e=n;n=n.replace(/"─"\.repeat\(/g,`"-".repeat(`),n=n.replace(/"\\u2500"\.repeat\(/g,`"-".repeat(`),n!==e&&(r++,J(`Patched horizontal separator characters`))}{let{result:e,success:t}=qo(n);t&&(n=e,r++,J(`Removed inter-row separators`))}{let{result:e,success:t}=Jo(n);t&&(n=e,r++,J(`Removed top/bottom border pushes`))}}else if(t===`clean`){if(Ro.test(n)){let e=n;n=n.replace(Ro,`{top:["","","",""],middle:["├","─","┼","┤"],bottom:["","","",""]}`),n!==e&&(r++,J(`Patched table border definition for clean format (minified format)`))}else if(zo.test(n)){let e=n;n=n.replace(zo,`top:["","","",""],middle:["\\u251C","\\u2500","\\u253C","\\u2524"],bottom:["","","",""]`),n!==e&&(r++,J(`Patched table border definition for clean format (native Unicode format)`))}else if(Bo.test(n)){let e=n;n=n.replace(Bo,`top: ["", "", "", ""],
569
569
  middle: ["├", "─", "┼", "┤"],
570
- bottom: ["", "", "", ""]`),n!==e&&(r++,J(`Patched table border definition for clean format (spaced format)`))}else Y(`Could not find table border definition pattern - CLI may have changed`);{let{result:e,success:t}=qo(n);t&&(n=e,r++,J(`Removed inter-row separators`))}{let{result:e,success:t}=Jo(n);t&&(n=e,r++,J(`Removed top/bottom border pushes`))}}else if(t===`clean-top-bottom`){let{result:e,success:t}=qo(n);t&&(n=e,r++,J(`Removed inter-row separators (keeping top/bottom borders)`))}else return console.error(`patch: tableFormat: failed to find handler for unknown format "${t}"`),J(`Unknown table format "${t}", skipping`),null;if(r===0)return console.error(`patch: tableFormat: failed to find any table-rendering patterns to patch for format "${t}" (border-definition object, vertical-border chars, horizontal separator, or inter-row separator)`),Y(`No table format patches were applied - patterns may not have matched`),null;J(`[Table format patch: ${r} modifications for ${t} style]`);let i=Xo(e,n);if(i!==-1){let{oldEnd:t,newEnd:r}=Zo(e,n,i),a=n.slice(i,r);V(e,n,a,i,t)}return J(`Table format patch applied: ${r} changes, file size ${e.length} -> ${n.length}`),n};function Xo(e,t){let n=Math.min(e.length,t.length);for(let r=0;r<n;r++)if(e[r]!==t[r])return r;return e.length===t.length?-1:n}function Zo(e,t,n){let r=e.length-1,i=t.length-1;for(;r>=n&&i>=n&&e[r]===t[i];)r--,i--;return{oldEnd:r+1,newEnd:i+1}}const Qo=e=>Ju(e)?Xa(e,`, {
570
+ bottom: ["", "", "", ""]`),n!==e&&(r++,J(`Patched table border definition for clean format (spaced format)`))}else Y(`Could not find table border definition pattern - CLI may have changed`);{let{result:e,success:t}=qo(n);t&&(n=e,r++,J(`Removed inter-row separators`))}{let{result:e,success:t}=Jo(n);t&&(n=e,r++,J(`Removed top/bottom border pushes`))}}else if(t===`clean-top-bottom`){let{result:e,success:t}=qo(n);t&&(n=e,r++,J(`Removed inter-row separators (keeping top/bottom borders)`))}else return console.error(`patch: tableFormat: failed to find handler for unknown format "${t}"`),J(`Unknown table format "${t}", skipping`),null;if(r===0)return console.error(`patch: tableFormat: failed to find any table-rendering patterns to patch for format "${t}" (border-definition object, vertical-border chars, horizontal separator, or inter-row separator)`),Y(`No table format patches were applied - patterns may not have matched`),null;J(`[Table format patch: ${r} modifications for ${t} style]`);let i=Xo(e,n);if(i!==-1){let{oldEnd:t,newEnd:r}=Zo(e,n,i),a=n.slice(i,r);V(e,n,a,i,t)}return J(`Table format patch applied: ${r} changes, file size ${e.length} -> ${n.length}`),n};function Xo(e,t){let n=Math.min(e.length,t.length);for(let r=0;r<n;r++)if(e[r]!==t[r])return r;return e.length===t.length?-1:n}function Zo(e,t,n){let r=e.length-1,i=t.length-1;for(;r>=n&&i>=n&&e[r]===t[i];)r--,i--;return{oldEnd:r+1,newEnd:i+1}}const Qo=e=>ad(e)?Xa(e,`, {
571
571
  type: "local",
572
572
  name: "title",
573
573
  description: "Set the conversation title",
@@ -586,7 +586,7 @@ if (toolsets.hasOwnProperty(currentToolset)) {
586
586
  userFacingName() {
587
587
  return "title";
588
588
  },
589
- }`):(console.error(`patch: conversationTitle: failed to find React variable`),null),$o=e=>{let t=e.match(/class ([$\w]+)\{summaries;(?:customTitles;)?messages;(?:checkpoints;)?fileHistorySnapshots;/);return!t||t.index===void 0?(console.error(`patch: conversationTitle: findCustomNamingFunctionsLocation: failed to find class pattern`),null):t.index},es=e=>{let t=$o(e);if(t===null)return console.error(`patch: conversationTitle: failed to find custom naming functions location`),null;let n=Zu(e),r=`
589
+ }`):(console.error(`patch: conversationTitle: failed to find React variable`),null),$o=e=>{let t=e.match(/class ([$\w]+)\{summaries;(?:customTitles;)?messages;(?:checkpoints;)?fileHistorySnapshots;/);return!t||t.index===void 0?(console.error(`patch: conversationTitle: findCustomNamingFunctionsLocation: failed to find class pattern`),null):t.index},es=e=>{let t=$o(e);if(t===null)return console.error(`patch: conversationTitle: failed to find custom naming functions location`),null;let n=cd(e),r=`
590
590
  function getTweakccBaseDir() {
591
591
  const { join: pathJoin } = ${n}('path');
592
592
  const { homedir: osHomedir } = ${n}('os');
@@ -760,11 +760,11 @@ function onNewMessage(projectDir, projectSlug, msg) {
760
760
  }
761
761
  }
762
762
 
763
- `,i=e.slice(0,t)+r+e.slice(t);return V(e,i,r,t,t),i},ts=e=>{let t=e.match(/(if\(![$\w]+\.has\(([$\w]+)\.uuid\)\)\{)if\([$\w]+\.appendFileSync\(/);return!t||t.index===void 0?(console.error(`patch: conversationTitle: findAppendEntryInterceptorLocation: failed to find pattern`),null):{location:t.index+t[1].length,messageVar:t[2]}},ns=e=>{let t=ts(e);if(!t)return console.error(`patch: conversationTitle: failed to find append entry interceptor location`),null;let n=Zu(e),{location:r,messageVar:i}=t,a=`const { dirname: pathDirname, basename: pathBasename } = ${n}('path');
763
+ `,i=e.slice(0,t)+r+e.slice(t);return V(e,i,r,t,t),i},ts=e=>{let t=e.match(/(if\(![$\w]+\.has\(([$\w]+)\.uuid\)\)\{)if\([$\w]+\.appendFileSync\(/);return!t||t.index===void 0?(console.error(`patch: conversationTitle: findAppendEntryInterceptorLocation: failed to find pattern`),null):{location:t.index+t[1].length,messageVar:t[2]}},ns=e=>{let t=ts(e);if(!t)return console.error(`patch: conversationTitle: failed to find append entry interceptor location`),null;let n=cd(e),{location:r,messageVar:i}=t,a=`const { dirname: pathDirname, basename: pathBasename } = ${n}('path');
764
764
  const projectDir = pathDirname(this.sessionFile);
765
765
  const projectSlug = pathBasename(projectDir);
766
766
  onNewMessage(projectDir, projectSlug, ${i});
767
- `,o=e.slice(0,r)+a+e.slice(r);return V(e,o,a,r,r),o},rs=e=>{let t=e.match(/if\([$\w]+\.has\(([$\w]+)\.uuid\)\)continue;/);if(!t||t.index===void 0)return console.error(`patch: conversationTitle: findTweakccSummaryCheckLocations: failed to find continue pattern`),null;let n=t[1],r=t.index+t[0].length-10,i=Math.max(0,t.index-200),a=e.substring(i,t.index).match(/for\(let [$\w]+ of ([$\w]+)\)try/);if(!a)return console.error(`patch: conversationTitle: findTweakccSummaryCheckLocations: failed to find loop pattern`),null;let o=a[1];return{orLocation:r,loopLocation:i+(a.index??0),messageVar:n,fileListVar:o}},is=e=>{let t=rs(e);if(!t)return console.error(`patch: conversationTitle: failed to find tweakcc summary check locations`),null;let n=Zu(e),{orLocation:r,loopLocation:i,messageVar:a,fileListVar:o}=t,s=e,c=`const { readFileSync: fsReadFileSync } = ${n}('fs');
767
+ `,o=e.slice(0,r)+a+e.slice(r);return V(e,o,a,r,r),o},rs=e=>{let t=e.match(/if\([$\w]+\.has\(([$\w]+)\.uuid\)\)continue;/);if(!t||t.index===void 0)return console.error(`patch: conversationTitle: findTweakccSummaryCheckLocations: failed to find continue pattern`),null;let n=t[1],r=t.index+t[0].length-10,i=Math.max(0,t.index-200),a=e.substring(i,t.index).match(/for\(let [$\w]+ of ([$\w]+)\)try/);if(!a)return console.error(`patch: conversationTitle: findTweakccSummaryCheckLocations: failed to find loop pattern`),null;let o=a[1];return{orLocation:r,loopLocation:i+(a.index??0),messageVar:n,fileListVar:o}},is=e=>{let t=rs(e);if(!t)return console.error(`patch: conversationTitle: failed to find tweakcc summary check locations`),null;let n=cd(e),{orLocation:r,loopLocation:i,messageVar:a,fileListVar:o}=t,s=e,c=`const { readFileSync: fsReadFileSync } = ${n}('fs');
768
768
  const tweakccSummaries = new Set();
769
769
  for (const file of ${o}) {
770
770
  const contents = fsReadFileSync(file, "utf8").trim();
@@ -794,7 +794,7 @@ ${t}({
794
794
  return [{ type: "text", text: content }];
795
795
  },
796
796
  });
797
- return`+s,u=r.index,d=u+i.length,f=e.slice(0,u)+l+e.slice(d);return V(e,f,l,u,d),f},zs=e=>{let t=ed(e);if(!t)return console.error(`patch: thinkingBlockStyling: failed to find Text component`),null;let n=e.match(/\{thinking:([$\w]+)\}.{0,400}(?:∴|\\u2234) Thinking.{0,700}(?:…|\\u2026).{0,200}\b[$\w]+(?:\.default)?\.createElement\(([$\w]+,null),\1\)/);if(!n||n.index===void 0)return console.error(`patch: thinkingBlockStyling: failed to find thinking label pattern`),null;let r=n[0].replace(n[2],`${t},{dimColor:true,italic:true}`),i=n.index,a=i+n[0].length,o=e.slice(0,i)+r+e.slice(a);return V(e,o,r,i,a),o},Bs=e=>{let t=e.match(/=\s*[$\w]+\.MCP_CONNECTION_NONBLOCKING\s*!==?\s*(?:!1|false)/);if(t&&t.index!==void 0)return{startIndex:t.index,endIndex:t.index+t[0].length,replacement:`=true`};let n=e.match(/![$\w]+\(process\.env\.MCP_CONNECTION_NONBLOCKING\)/);return n&&n.index!==void 0?{startIndex:n.index,endIndex:n.index+n[0].length,replacement:`false`}:null},Vs=[/MCP_SERVER_CONNECTION_BATCH_SIZE\s*\?\?\s*(\d+)/g,/MCP_SERVER_CONNECTION_BATCH_SIZE\)\s*;\s*return\s*[$\w]+\s*>\s*0\s*\?\s*[$\w]+\s*:\s*(\d+)/g,/MCP_SERVER_CONNECTION_BATCH_SIZE\|\|"",10\)\s*;\s*return\s*[$\w]+\s*>\s*0\s*\?\s*[$\w]+\s*:\s*(\d+)/g,/MCP_SERVER_CONNECTION_BATCH_SIZE\|\|"",10\)\s*\|\|\s*(\d+)/g],Hs=e=>{let t=[];for(let n of Vs){n.lastIndex=0;for(let r of e.matchAll(n)){if(r.index===void 0)continue;let e=r.index+r[0].length;t.push({startIndex:e-r[1].length,endIndex:e})}}return t.length===0&&console.error(`patch: mcpStartup: failed to find MCP_SERVER_CONNECTION_BATCH_SIZE default`),t.sort((e,t)=>e.startIndex-t.startIndex)},Us=e=>{let t=Bs(e);if(!t)return e.includes(`MCP_CONNECTION_NONBLOCKING`)?(console.error(`patch: mcpStartup: failed to find MCP_CONNECTION_NONBLOCKING check`),null):(console.log(`patch: mcp-non-blocking: feature already promoted in this CC build — no-op`),e);let n=t.replacement,r=e.slice(0,t.startIndex)+n+e.slice(t.endIndex);return V(e,r,n,t.startIndex,t.endIndex),r},Ws=(e,t)=>{let n=Hs(e);if(n.length===0)return null;let r=String(t),i=e;for(let e of[...n].reverse()){let t=i.slice(0,e.startIndex)+r+i.slice(e.endIndex);V(i,t,r,e.startIndex,e.endIndex),i=t}return i},Gs=(e,t=300,n=!1)=>{let r=/(,([$\w]+)=([$\w]+(?:\.default)?)\.useCallback.{0,1000}statusLineText.{0,200}?),([$\w]+)=([$\w.]+\(\(\)=>(\2\(([$\w]+)\)),300\)|[$\w]+\(\(\)=>\{\2\(\)\},300\)|[$\w]+\(\2,300\)|.{0,100}\{[$\w]+\.current=void 0,\2\(\)\},300\)\},\[\2\]\)|[$\w]+\.useCallback\(\(\)=>\{if\([$\w]+\.current!==void 0\)clearTimeout\([$\w]+\.current\);[$\w]+\.current=setTimeout\(\([$\w]+,[$\w]+\)=>\{[$\w]+\.current=void 0,[$\w]+\(\)\},300,[$\w]+,\2\)\},\[\2\]\)|\3\.useCallback\(\(\)=>\{.{0,200}setTimeout\(\([$\w]+,[$\w]+\)=>\{[$\w]+\.current=void 0,[$\w]+\(\)\},300,[$\w]+,\2\)\},\[\2\]\))/,i=e.match(/(#[$\w]+)\(\)\{this\.(#[$\w]+)\?\.\(\),this\.\2=this\.(#[$\w]+)\.setTimeout\(\(\)=>\{this\.\2=null,this\.(#[$\w]+)\(\)\},[$\w]+\)\}/);if(i&&i.index!==void 0){let[r,a,o,s,c]=i,l=Number(t),u=Number.isFinite(l)&&l>=0?Math.trunc(l):300,d=n?`${a}(){if(this.${o})return;let t=()=>{this.${o}=this.${s}.setTimeout(t,${u}),this.${c}()};this.${o}=this.${s}.setTimeout(t,${u})}`:`${a}(){if(this.${o})return;let d=Math.max(0,${u}-(Date.now()-(this.tccLastStatusline||0)));this.${o}=this.${s}.setTimeout(()=>{this.${o}=null,this.tccLastStatusline=Date.now(),this.${c}()},d)}`,f=i.index,p=f+r.length,m=e.slice(0,f)+d+e.slice(p);return V(e,m,d,f,p),m}let a=e.match(r);if(!a||a.index===void 0)return console.error(`patch: statuslineUpdateThrottle: failed to find statusline update throttle pattern`),null;let o=a[1],s=a[2],c=a[3],l=a[4],u=a[6]??`${s}()`,d=a[7],f=Number(t),p=Number.isFinite(f)&&f>=0?Math.trunc(f):300,m=d?`${s}, ${d}`:s,h=s,g;g=n?d?o+`,argRef=${c}.useRef(${d}),unused1=${c}.useEffect(()=>{argRef.current=${d};},[${d}]),unused2=${c}.useEffect(()=>{const id=setInterval(()=>${s}(argRef.current),${p});return()=>clearInterval(id);},[${h}]),${l}=${c}.useCallback(()=>{},[])`:o+`,unused1=${c}.useEffect(()=>{const id=setInterval(()=>${u},${p});return()=>clearInterval(id);},[${h}]),${l}=${c}.useCallback(()=>{},[])`:o+`,lastCall=${c}.useRef(0),${l}=${c}.useCallback(()=>{let now=Date.now();if(now-lastCall.current>=${p}){lastCall.current=now;${u};}},[${m}])`;let _=a.index,v=_+a[0].length,y=e.slice(0,_)+g+e.slice(v);return V(e,y,g,_,v),y},Ks=e=>typeof e==`number`?e:e.threshold??1e3,qs=(e,t)=>{let n=e.match(/children:\[([$\w]+)," tokens"\][^]{0,80}?,"tokens"\)/);if(!n||n.index===void 0)return null;let r=n[1].replace(/\$/g,`\\$`),i=Math.max(0,n.index-4e3),a=e.slice(i,n.index+n[0].length),o=[...a.matchAll(RegExp(`(?<![$\\w])${r}=[$\\w]+\\(`,`g`))],s=RegExp(`(${r}=[$\\w]+\\()(${t})(\\)[^]{0,4000}?children:\\[${r}," tokens"\\])`,`y`),c=null;for(let e of o.reverse())if(s.lastIndex=e.index,c=s.exec(a),c)break;return c?{fullMatch:c[0],pre:c[1],partToWrap:c[2],post:c[3],startIndex:i+c.index}:null},Js=(e,t)=>{let n=e.match(/children:\[([$\w]+)," tokens"\][^]{0,80}?,"tokens"\)/);if(!n||n.index===void 0)return null;let r=n[1],i=r.replace(/\$/g,`\\$`),a=Math.max(0,n.index-6e3),o=e.slice(a,n.index+n[0].length),s=[...o.matchAll(RegExp(`([$\\w]+):${i}(?=[,}])`,`g`))];if(s.length===0)return null;let c=s[s.length-1],l=c[1].replace(/\$/g,`\\$`),u=c.index??0,d=[...o.slice(0,u).matchAll(RegExp(`${l}:([$\\w]+)(?=[,}])`,`g`))].filter(e=>e[1]!==r);if(d.length===0)return null;let f=d[d.length-1],p=f[1].replace(/\$/g,`\\$`),m=f.index??0,h=[...o.slice(0,m).matchAll(RegExp(`(?<![$\\w])${p}=[$\\w]+\\(`,`g`))];if(h.length===0)return null;let g=h[h.length-1].index??0,_=RegExp(`(${p}=[$\\w]+\\()(${t})(\\))`,`y`);_.lastIndex=g;let v=_.exec(o);return v?{fullMatch:v[0],pre:v[1],partToWrap:v[2],post:v[3],startIndex:a+v.index}:null},Ys=(e,t)=>{let n=Ks(t),r,i,a,o,s,c=`[$\\w]+(?:\\?\\.[$\\w]+)*(?:\\([^()]*\\))?`,l=Js(e,c)??qs(e,c);if(l)({fullMatch:r,pre:i,partToWrap:a,post:o,startIndex:s}=l);else{let t=e.match(RegExp(`(([$\\w]+)=[$\\w]+\\()(${c})(\\),.{0,2000}key:"tokens".{0,200},\\2," tokens")`));if(t&&t.index!==void 0)[r,i,,a,o]=t,s=t.index;else{let t=e.match(RegExp(`(overrideMessage:.{0,10000},([$\\w]+)=[$\\w]+\\()(${c})(\\),.{0,1000}key:"tokens".{0,200},\\2," tokens")`));if(t&&t.index!==void 0)[r,i,,a,o]=t,s=t.index;else{let t=e.match(/(overrideMessage:.{0,10000},key:"tokens".{0,200}[$\w]+\()(Math\.round\(.+?\))(\))/);if(t&&t.index!==void 0)[r,i,a,o]=t,s=t.index;else return console.error(`patch: tokenCountRounding: cannot find token count pattern in any CC format`),null}}}let u=`${i}Math.round((${a})/${n})*${n}${o}`,d=s+r.length,f=e.slice(0,s)+u+e.slice(d);return V(e,f,u,s,d),f},Xs=(e,t)=>{if(/CLAUDE\.md.{0,100}for\(let \w+ of \["AGENTS\.md"/.test(e))return console.log(`patch: agentsMd: alternative MD file support already present natively - skipping`),e;let n=Zs(e,t);if(n===null)return null;let r=Qs(n,t);return r===!1?null:r??n},Zs=(e,t)=>$s(e,t)||ec(e,t)||tc(e,t)||nc(e,t)||rc(e,t),Qs=(e,t)=>{let n=JSON.stringify(t),r=/(?<![$\w])([$\w]+)=async\(([$\w]+),([$\w]+)(?:,([$\w]+))?\)=>([$\w]+)\.has\(\2\)\?([$\w]+)\(\2,\3,([$\w]+),([$\w]+)\):([$\w]+)\(\2,\3,\7,([$\w]+),0,void 0,void 0,\8(?:,\4)?\)/,i=/([$\w]+)\.has\(([$\w]+)\)\?([$\w]+)\(\2,"User",([$\w]+),([$\w]+)\):await ([$\w]+)\(\2,"User",\4,!0,0,void 0,([$\w]+!==void 0\?\{backend:[$\w]+,key:[$\w]+\.state\("user-memory"\)\}:void 0),\5\)/,a=e.match(r),o=e.match(i);if(!a||!o){let t=/\.has\([$\w]+\)\?[$\w]+\([$\w]+,"User"/.test(e);return!a&&!o&&!t?null:(console.error(`patch: agentsMd: incomplete memory-walk precheck`),!1)}let s=e;if(a&&a.index!==void 0){let[t,r,i,o,c,l,u,d,f,p,m]=a,h=c?`${i},${o},${c}`:`${i},${o}`,g=c?`,${c}`:``,_=`${r}=async(${h})=>{if(${l}.has(${i})){if(${i}.endsWith("/CLAUDE.md")||${i}.endsWith("\\\\CLAUDE.md")){for(let alt of ${n}){let altPath=${i}.slice(0,-9)+alt;let found=await ${p}(altPath,${o},${d},${m},0,void 0,void 0,${f}${g});if(found.length)return found}}return ${u}(${i},${o},${d},${f})}return ${p}(${i},${o},${d},${m},0,void 0,void 0,${f}${g})}`,v=a.index;s=s.slice(0,v)+_+s.slice(v+t.length),V(e,s,_,v,v+t.length)}let c=s.match(i);if(c&&c.index!==void 0){let[e,t,r,i,a,o,l,u]=c,d=`${t}.has(${r})?await(async()=>{for(let alt of ${n}){let altPath=${r}.slice(0,-9)+alt;let found=await ${l}(altPath,"User",${a},!0,0,void 0,void 0,${o});if(found.length)return found}return ${i}(${r},"User",${a},${o})})():await ${l}(${r},"User",${a},!0,0,void 0,${u},${o})`,f=c.index,p=s;s=s.slice(0,f)+d+s.slice(f+e.length),V(p,s,d,f,f+e.length)}return s},$s=(e,t)=>{let n=e.match(/(async function ([$\w]+)\(([$\w]+),([$\w]+),([$\w]+),([$\w]+)(?:,([$\w]+))?)\)\{try\{let ([$\w]+),([$\w]+)=!1;((?:if\([$\w]+\)\{let [$\w]+=await [$\w]+\([$\w]+,[$\w]+\);return [$\w]+===void 0\?\{info:null,includePaths:\[\]\}:[$\w]+\([^()]*\)\})?)(if\(\6\)\{[\s\S]*?\}else\{[\s\S]*?\})if\(\8===null\)\{([\s\S]*?\[CLAUDE\.md\] skipping[\s\S]*?return\{info:null,includePaths:\[\]\})\}return ([$\w]+)\(\8,\3,\4,\5\)\}catch\(([$\w]+)\)\{return ([$\w]+)\(\14,\3\),\{info:null,includePaths:\[\]\}\}\}/);if(!n||n.index===void 0)return null;let r=n[1],i=n[2],a=n[3],o=n[4],s=n[5],c=n[7],l=n[8],u=n[9],d=n[10],f=n[11],p=n[12],m=n[13],h=n[14],g=n[15],_=JSON.stringify(t),v=`if(!didReroute&&(${a}.endsWith("/CLAUDE.md")||${a}.endsWith("\\\\CLAUDE.md"))){for(let alt of ${_}){let altPath=${a}.slice(0,-9)+alt;try{let rerouteResult=await ${i}(altPath,${o},${s},void 0,${c?`void 0,`:``}true);if(rerouteResult.info)return rerouteResult}catch{}}}`,y=`${r},didReroute){try{let ${l},${u}=!1;${c?d.replace(/^(if\([$\w]+\)\{let ([$\w]+)=await [$\w]+\([^()]*\);)/,(e,t,n)=>`${e}if(${n}===void 0&&!didReroute&&(${a}.endsWith("/CLAUDE.md")||${a}.endsWith("\\\\CLAUDE.md"))){for(let alt of ${_}){let altPath=${a}.slice(0,-9)+alt;try{let rerouteResult=await ${i}(altPath,${o},${s},void 0,${c},true);if(rerouteResult.info)return rerouteResult}catch{}}}`):d}${f.replace(`case"absent":return{info:null,includePaths:[]}`,`case"absent":{${v}return{info:null,includePaths:[]}}`).replace(/case"error":return ([$\w]+)\(([$\w]+)\.code,([$\w]+)\),\{info:null,includePaths:\[\]\}/,(e,t,n,r)=>`case"error":{if(!didReroute&&(${n}.code==="ENOENT"||${n}.code==="ENOTDIR")){${v}}return ${t}(${n}.code,${r}),{info:null,includePaths:[]}}`)}if(${l}===null){`+v+`${p}}return ${m}(${l},${a},${o},${s})}catch(${h}){if(!didReroute&&${h}&&(${h}.code==="ENOENT"||${h}.code==="ENOTDIR")){${v}}return ${g}(${h},${a}),{info:null,includePaths:[]}}}`,b=n.index,x=b+n[0].length,S=e.slice(0,b)+y+e.slice(x);return V(e,S,y,b,x),S},ec=(e,t)=>{let n=e.match(/(async function ([$\w]+)\(([$\w]+),([$\w]+),([$\w]+))\)\{try\{let ([$\w]+)=([$\w]+)\(\),([$\w]+)=!1,([$\w]+)=await ([$\w]+)\(\6,\3,([$\w]+),\(([$\w]+)\)=>\{\8=\12\.isDirectory\(\)\}\);if\(\9===null\)\{([\s\S]*?\[CLAUDE\.md\] skipping[\s\S]*?return\{info:null,includePaths:\[\]\})\}return ([$\w]+)\(\9,\3,\4,\5\)\}catch\(([$\w]+)\)\{return ([$\w]+)\(\15,\3\),\{info:null,includePaths:\[\]\}\}\}/);if(!n||n.index===void 0)return null;let r=n[1],i=n[2],a=n[3],o=n[4],s=n[5],c=n[6],l=n[7],u=n[8],d=n[9],f=n[10],p=n[11],m=n[12],h=n[13],g=n[14],_=n[15],v=n[16],y=`${r},didReroute){try{let ${c}=${l}(),${u}=!1,${d}=await ${f}(${c},${a},${p},(${m})=>{${u}=${m}.isDirectory()});if(${d}===null){if(!didReroute&&(${a}.endsWith("/CLAUDE.md")||${a}.endsWith("\\\\CLAUDE.md"))){for(let alt of ${JSON.stringify(t)}){let altPath=${a}.slice(0,-9)+alt;try{let rerouteResult=await ${i}(altPath,${o},${s},true);if(rerouteResult.info)return rerouteResult}catch{}}}${h}}return ${g}(${d},${a},${o},${s})}catch(${_}){return ${v}(${_},${a}),{info:null,includePaths:[]}}}`,b=n.index,x=b+n[0].length,S=e.slice(0,b)+y+e.slice(x);return V(e,S,y,b,x),S},tc=(e,t)=>{let n=e.match(/(async function ([$\w]+)\(([$\w]+),([$\w]+),([$\w]+))\)\{try\{let ([$\w]+)=([$\w]+)\(\),([$\w]+)=await ([$\w]+)\(\6,\3,([$\w]+)\);if\(\8===null\)return (([$\w]+)\(`\[CLAUDE\.md\] skipping[^`]*`\),\{info:null,includePaths:\[\]\});return ([$\w]+)\(\8,\3,\4,\5\)\}catch\(([$\w]+)\)\{return (([$\w]+)\(\14,\3\),\{info:null,includePaths:\[\]\})\}\}/);if(!n||n.index===void 0)return null;let r=n[1],i=n[2],a=n[3],o=n[4],s=n[5],c=n[6],l=n[7],u=n[8],d=n[9],f=n[10],p=n[11],m=n[13],h=n[14],g=n[15],_=`${r},didReroute){try{let ${c}=${l}(),${u}=await ${d}(${c},${a},${f});if(${u}===null){if(!didReroute&&(${a}.endsWith("/CLAUDE.md")||${a}.endsWith("\\\\CLAUDE.md"))){for(let alt of ${JSON.stringify(t)}){let altPath=${a}.slice(0,-9)+alt;try{let rerouteResult=await ${i}(altPath,${o},${s},true);if(rerouteResult.info)return rerouteResult}catch{}}}return ${p};}return ${m}(${u},${a},${o},${s})}catch(${h}){return ${g}}}`,v=n.index,y=v+n[0].length,b=e.slice(0,v)+_+e.slice(y);return V(e,b,_,v,y),b},nc=(e,t)=>{let n=e.match(/(async function ([$\w]+)\(([$\w]+),([$\w]+),([$\w]+))\)\{try\{let ([$\w]+)=await ([$\w]+)\(\)\.readFile\(\3,\{encoding:"utf-8"\}\);return ([$\w]+)\(\6,\3,\4,\5\)\}catch\(([$\w]+)\)\{return ([$\w]+)\(\9,\3\),\{info:null,includePaths:\[\]\}\}\}/);if(!n||n.index===void 0)return null;let r=n[0],i=n[1],a=n[2],o=n[3],s=n[4],c=n[5],l=n[6],u=n[7],d=n[8],f=n[9],p=n[10],m=`${i},didReroute){try{let ${l}=await ${u}().readFile(${o},{encoding:"utf-8"});return ${d}(${l},${o},${s},${c})}catch(${f}){if(!didReroute&&(${o}.endsWith("/CLAUDE.md")||${o}.endsWith("\\\\CLAUDE.md"))){for(let alt of ${JSON.stringify(t)}){let altPath=${o}.slice(0,-9)+alt;try{let r=await ${a}(altPath,${s},${c},true);if(r.info)return r}catch{}}}return ${p}(${f},${o}),{info:null,includePaths:[]}}}`,h=n.index,g=h+r.length,_=e.slice(0,h)+m+e.slice(g);return V(e,_,m,h,g),_},rc=(e,t)=>{let n=e.match(/(function ([$\w]+)\(([$\w]+),([^)]+?))\)(?:.|\n){0,500}Skipping non-text file in @include/);if(!n||n.index===void 0)return console.error(`patch: agentsMd: failed to find CLAUDE.md reading function`),null;let r=n[1],i=n[2],a=n[3],o=n[4],s=n.index,c=/([$\w]+(?:\(\))?)\.(?:readFileSync|existsSync|statSync)/,l=n[0].match(c),u=null;if(!l&&(u=e.slice(Math.max(0,s-5e3),s).match(c),!u))return console.error(`patch: agentsMd: failed to find fs expression in function or caller`),null;let d=l?l[1]:u?u[1]:`require("fs")`,f=JSON.stringify(t),p=s+r.length,m=e.slice(0,p)+`,didReroute`+e.slice(p);V(e,m,`,didReroute`,p,p);let h=m.slice(s),g=/\.isFile\(\)\)return null/,_=h.match(g)??h.match(/==="EISDIR"\)return null/);if(!_||_.index===void 0)return console.error(`patch: agentsMd: failed to find early return null for injection`),null;let v=!h.match(g),y=`if(!didReroute&&(${a}.endsWith("/CLAUDE.md")||${a}.endsWith("\\\\CLAUDE.md"))){for(let alt of ${f}){let altPath=${a}.slice(0,-9)+alt;if(${d}.existsSync(altPath)&&${d}.statSync(altPath).isFile())return ${i}(altPath,${o},true);}}`,b=s+_.index,x=_[0],S=v?`==="EISDIR"){${y}return null;}`:`.isFile()){${y}return null;}`;return m=m.slice(0,b)+S+m.slice(b+x.length),V(e,m,S,b,b),m},ic=(e,t)=>{let n=e.lastIndexOf(`function `,t);if(n===-1)return null;let r=e.indexOf(`{`,n);if(r===-1||r>t)return null;let i=0;for(let t=r;t<e.length;t++){let n=e[t];if(n===`{`)i++;else if(n===`}`&&(i--,i===0)){let n=e.slice(r,t+1),i=/return [$\w]+(?:\.default)?\.createElement/g,a,o=null;for(;(a=i.exec(n))!==null;)o=a;return o?r+o.index:null}}return null},ac=e=>{let t=[[/When ready, use \$\{([$\w]+)\} to present your plan for approval/g,(e,t)=>`When ready, use \${${t}} to exit plan mode. The plan will be approved automatically.`],[/Use this tool when you are in plan mode and have finished writing your plan to the plan file and are ready for user approval\./g,`Use this tool when you are in plan mode and have finished writing your plan to the plan file. Calling this tool exits plan mode and approves the plan automatically.`],[/This tool simply signals that you're done planning and ready for the user to review and approve/g,`This tool signals that you are done planning and that the plan should be approved automatically`],[/Once your plan is finalized, use THIS tool to request approval/g,`Once your plan is finalized, use THIS tool to approve the plan and proceed`],[/ExitPlanMode inherently requests user approval of your plan\./g,`ExitPlanMode inherently approves your plan and lets you proceed.`],[/Present your plan to the user for approval/g,`Exit plan mode; the plan will be approved automatically`],[/design an implementation approach for user approval/g,`design an implementation approach before automatic approval`],[/This tool REQUIRES user approval - they must consent to entering plan mode/g,`This tool enters plan mode; plan exit approval is handled automatically when auto-accept plan mode is enabled`],[/Claude has written up a plan and is ready to execute\. Would you like to proceed\?/g,`Claude has written up a plan and is ready to execute. The plan is approved automatically.`],[/Call `\$\{([$\w]+)\}` to present the plan for approval\./g,(e,t)=>`Call \`\${${t}}\` to exit plan mode; the plan will be approved automatically.`],[/## Phase 2: Spawn Workers \(After Plan Approval\)/g,`## Phase 2: Spawn Workers (After Automatic Plan Approval)`],[/Once the plan is approved, spawn/g,`After the plan is approved automatically, spawn`],[/searchHint:"present plan for approval and start coding \(plan mode only\)"/g,`searchHint:"approve plan and start coding (plan mode only)"`],[/async description\(\)\{return"Prompts the user to exit plan mode and start coding"\}/g,`async description(){return"Exits plan mode and starts coding"}`]],n=e;for(let[r,i]of t){let t=n;n=n.replace(r,i),n!==t&&V(e,n,String(i),0,0)}let r=`permissionUpdates:[{type:"setMode",mode:"acceptEdits",destination:"session"}]`,i=/kind:"permission_exit_plan_mode_v2",payload:([\s\S]{0,300}?),result:([\s\S]{0,180}?),default:\{behavior:"cancelled"\}/,a=n;n=n.replace(i,`kind:"permission_exit_plan_mode_v2",payload:$1,result:$2,default:{behavior:"allow",${r}}`),n!==a&&V(e,n,`permission_exit_plan_mode_v2 default allow`,0,0);let o=/async checkPermissions\(([$\w]+),([$\w]+)\)\{if\(([$\w]+)\(\)\)return\{behavior:"allow",updatedInput:\1\};return\{behavior:"ask",message:"Exit plan mode\?",updatedInput:\1\}\}/,s=n;return n=n.replace(o,`async checkPermissions($1,$2){return{behavior:"allow",updatedInput:$1,${r}}}`),n!==s&&V(e,n,`ExitPlanMode checkPermissions allow`,0,0),n},oc=e=>{let t=e.indexOf(`title:"Ready to code?"`);if(t===-1)return console.error(`patch: autoAcceptPlanMode: failed to find "Ready to code?" title`),null;if(/[$\w]+(?:\.current)?\("yes-accept-edits(?:-keep-context)?"\);return null;return/.test(e))return e;let n=e.slice(t,t+3e3),r=n.match(/onChange:\([$\w]+\)=>([$\w]+)\([$\w]+\),onCancel/),i=n.match(/onChange:([$\w]+),onCancel/),a=n.match(/onChange:\([$\w]+\)=>void ([$\w]+)\.current\([$\w]+\),onCancel/),o=n.match(/onChange:\([$\w]+\)=>void ([$\w]+)\([$\w]+\),onCancel/),s;if(r)s=r[1];else if(i)s=i[1];else if(a)s=`${a[1]}.current`;else if(o)s=o[1];else return console.error(`patch: autoAcceptPlanMode: failed to find onChange handler`),null;let c=e.match(/(\}\}\)\)\)\);)(return [$\w]+\.default\.createElement\([$\w]+\.default\.Fragment,null,[$\w]+\.default\.createElement\([$\w]+,\{color:"planMode",title:"Ready to code\?")/);if(c&&c.index!==void 0){let t=`${s}("yes-accept-edits-keep-context");return null;`,n=c[1]+t+c[2],r=c.index,i=r+c[0].length,a=e.slice(0,r)+n+e.slice(i);return V(e,a,n,r,i),ac(a)}let l=Math.max(0,t-2500),u=e.slice(l,t),d=u.match(/(return [$\w]+\.default\.createElement\([$\w]+,\{flexDirection:"column",tabIndex:0,autoFocus:!0.{0,200}[$\w]+\.default\.createElement\([$\w]+,\{color:"planMode",title:")$/);if(!d){let n=u.lastIndexOf(`return `);if(n===-1){let n=ic(e,t);if(n===null)return console.error(`patch: autoAcceptPlanMode: failed to find return before "Ready to code?"`),null;let r=`${s}("yes-accept-edits-keep-context");return null;`,i=e.slice(0,n)+r+e.slice(n);return V(e,i,r,n,n),ac(i)}let r=l+n,i=`${s}("yes-accept-edits-keep-context");return null;`,a=e.slice(0,r)+i+e.slice(r);return V(e,a,i,r,r),ac(a)}let f=l+d.index,p=`${s}("yes-accept-edits-keep-context");return null;`,m=e.slice(0,f)+p+e.slice(f);return V(e,m,p,f,f),ac(m)},sc=e=>{let t=e.match(/console\.error\("--dangerously-skip-permissions cannot be used with root\/sudo privileges for security reasons"\),process\.exit\(1\)/);if(!t||t.index===void 0)return e.includes(`root/sudo privileges`)?(console.error(`patch: allowBypassPermsInSudo: failed to find pattern`),null):e;let n=t.index,r=n+t[0].length,i=e.slice(0,n)+`{}`+e.slice(r);return V(e,i,`{}`,n,r),i},cc=[/Claude Code has switched from npm to native installer\. Run `claude install` or see https:\/\/docs\.anthropic\.com\/en\/docs\/claude-code\/getting-started for more options\./g,/installMethod is native, but directory [^"'`\n;]+/g,/installMethod is native, but claude command (?:is missing or invalid|not found) at [^"'`\n;]+/g,/Native installation exists but ~\/\.local\/bin is not in your PATH(?:\. Run: echo 'export PATH="\$HOME\/\.local\/bin:\$PATH"' >> [^"'`\n;]+ then open a new terminal or run: source [^"'`\n;]+)?/g,/Run: echo 'export PATH="\$HOME\/\.local\/bin:\$PATH"' >> [^"'`\n;]+ then open a new terminal or run: source [^"'`\n;]+/g],lc=e=>{let t=e,n=!1,r=-1,i=-1;for(let e of cc)t=t.replace(e,(e,t)=>(n||(r=t,i=t+e.length),n=!0,``));return n?(V(e,t,``,r,i),t):(console.warn(`patch: suppressNativeInstallerWarning: failed to find pattern`),null)},uc=e=>{let t=e.match(/=async\(([$\w]+),[$\w]+,([$\w]+)\)=>\{if\(\2=\2\?\.trim\(\)\|\|"",[$\w.]+\(\2\)\)return [$\w]+\("tengu_model_command_inline_help"/);if(!t||t.index===void 0)return console.error(`patch: modelAtEffort: failed to find the /model command handler`),null;let[,n,r]=t,i=t.index+t[0].indexOf(`{`)+1,a=`let tweakccModelEffort=/^(.+)@(low|med|medium|high|xhigh|max|auto)$/i.exec(${r}?.trim()||"");if(tweakccModelEffort){${r}=tweakccModelEffort[1];let tweakccOnDone=${n};${n}=(m,p)=>tweakccOnDone(m,p??{nextInput:"/effort "+tweakccModelEffort[2].toLowerCase(),submitNextInput:!0})}`,o=e.slice(0,i)+a+e.slice(i);return V(e,o,a,i,i),o},dc=e=>{let t=e.split(`
797
+ return`+s,u=r.index,d=u+i.length,f=e.slice(0,u)+l+e.slice(d);return V(e,f,l,u,d),f},zs=e=>{let t=dd(e);if(!t)return console.error(`patch: thinkingBlockStyling: failed to find Text component`),null;let n=e.match(/\{thinking:([$\w]+)\}.{0,400}(?:∴|\\u2234) Thinking.{0,700}(?:…|\\u2026).{0,200}\b[$\w]+(?:\.default)?\.createElement\(([$\w]+,null),\1\)/);if(!n||n.index===void 0)return console.error(`patch: thinkingBlockStyling: failed to find thinking label pattern`),null;let r=n[0].replace(n[2],`${t},{dimColor:true,italic:true}`),i=n.index,a=i+n[0].length,o=e.slice(0,i)+r+e.slice(a);return V(e,o,r,i,a),o},Bs=e=>{let t=e.match(/=\s*[$\w]+\.MCP_CONNECTION_NONBLOCKING\s*!==?\s*(?:!1|false)/);if(t&&t.index!==void 0)return{startIndex:t.index,endIndex:t.index+t[0].length,replacement:`=true`};let n=e.match(/![$\w]+\(process\.env\.MCP_CONNECTION_NONBLOCKING\)/);return n&&n.index!==void 0?{startIndex:n.index,endIndex:n.index+n[0].length,replacement:`false`}:null},Vs=[/MCP_SERVER_CONNECTION_BATCH_SIZE\s*\?\?\s*(\d+)/g,/MCP_SERVER_CONNECTION_BATCH_SIZE\)\s*;\s*return\s*[$\w]+\s*>\s*0\s*\?\s*[$\w]+\s*:\s*(\d+)/g,/MCP_SERVER_CONNECTION_BATCH_SIZE\|\|"",10\)\s*;\s*return\s*[$\w]+\s*>\s*0\s*\?\s*[$\w]+\s*:\s*(\d+)/g,/MCP_SERVER_CONNECTION_BATCH_SIZE\|\|"",10\)\s*\|\|\s*(\d+)/g],Hs=e=>{let t=[];for(let n of Vs){n.lastIndex=0;for(let r of e.matchAll(n)){if(r.index===void 0)continue;let e=r.index+r[0].length;t.push({startIndex:e-r[1].length,endIndex:e})}}return t.length===0&&console.error(`patch: mcpStartup: failed to find MCP_SERVER_CONNECTION_BATCH_SIZE default`),t.sort((e,t)=>e.startIndex-t.startIndex)},Us=e=>{let t=Bs(e);if(!t)return e.includes(`MCP_CONNECTION_NONBLOCKING`)?(console.error(`patch: mcpStartup: failed to find MCP_CONNECTION_NONBLOCKING check`),null):(console.log(`patch: mcp-non-blocking: feature already promoted in this CC build — no-op`),e);let n=t.replacement,r=e.slice(0,t.startIndex)+n+e.slice(t.endIndex);return V(e,r,n,t.startIndex,t.endIndex),r},Ws=(e,t)=>{let n=Hs(e);if(n.length===0)return null;let r=String(t),i=e;for(let e of[...n].reverse()){let t=i.slice(0,e.startIndex)+r+i.slice(e.endIndex);V(i,t,r,e.startIndex,e.endIndex),i=t}return i},Gs=(e,t=300,n=!1)=>{let r=/(,([$\w]+)=([$\w]+(?:\.default)?)\.useCallback.{0,1000}statusLineText.{0,200}?),([$\w]+)=([$\w.]+\(\(\)=>(\2\(([$\w]+)\)),300\)|[$\w]+\(\(\)=>\{\2\(\)\},300\)|[$\w]+\(\2,300\)|.{0,100}\{[$\w]+\.current=void 0,\2\(\)\},300\)\},\[\2\]\)|[$\w]+\.useCallback\(\(\)=>\{if\([$\w]+\.current!==void 0\)clearTimeout\([$\w]+\.current\);[$\w]+\.current=setTimeout\(\([$\w]+,[$\w]+\)=>\{[$\w]+\.current=void 0,[$\w]+\(\)\},300,[$\w]+,\2\)\},\[\2\]\)|\3\.useCallback\(\(\)=>\{.{0,200}setTimeout\(\([$\w]+,[$\w]+\)=>\{[$\w]+\.current=void 0,[$\w]+\(\)\},300,[$\w]+,\2\)\},\[\2\]\))/,i=e.match(/(#[$\w]+)\(\)\{this\.(#[$\w]+)\?\.\(\),this\.\2=this\.(#[$\w]+)\.setTimeout\(\(\)=>\{this\.\2=null,this\.(#[$\w]+)\(\)\},[$\w]+\)\}/);if(i&&i.index!==void 0){let[r,a,o,s,c]=i,l=Number(t),u=Number.isFinite(l)&&l>=0?Math.trunc(l):300,d=n?`${a}(){if(this.${o})return;let t=()=>{this.${o}=this.${s}.setTimeout(t,${u}),this.${c}()};this.${o}=this.${s}.setTimeout(t,${u})}`:`${a}(){if(this.${o})return;let d=Math.max(0,${u}-(Date.now()-(this.tccLastStatusline||0)));this.${o}=this.${s}.setTimeout(()=>{this.${o}=null,this.tccLastStatusline=Date.now(),this.${c}()},d)}`,f=i.index,p=f+r.length,m=e.slice(0,f)+d+e.slice(p);return V(e,m,d,f,p),m}let a=e.match(r);if(!a||a.index===void 0)return console.error(`patch: statuslineUpdateThrottle: failed to find statusline update throttle pattern`),null;let o=a[1],s=a[2],c=a[3],l=a[4],u=a[6]??`${s}()`,d=a[7],f=Number(t),p=Number.isFinite(f)&&f>=0?Math.trunc(f):300,m=d?`${s}, ${d}`:s,h=s,g;g=n?d?o+`,argRef=${c}.useRef(${d}),unused1=${c}.useEffect(()=>{argRef.current=${d};},[${d}]),unused2=${c}.useEffect(()=>{const id=setInterval(()=>${s}(argRef.current),${p});return()=>clearInterval(id);},[${h}]),${l}=${c}.useCallback(()=>{},[])`:o+`,unused1=${c}.useEffect(()=>{const id=setInterval(()=>${u},${p});return()=>clearInterval(id);},[${h}]),${l}=${c}.useCallback(()=>{},[])`:o+`,lastCall=${c}.useRef(0),${l}=${c}.useCallback(()=>{let now=Date.now();if(now-lastCall.current>=${p}){lastCall.current=now;${u};}},[${m}])`;let _=a.index,v=_+a[0].length,y=e.slice(0,_)+g+e.slice(v);return V(e,y,g,_,v),y},Ks=e=>typeof e==`number`?e:e.threshold??1e3,qs=(e,t)=>{let n=e.match(/children:\[([$\w]+)," tokens"\][^]{0,80}?,"tokens"\)/);if(!n||n.index===void 0)return null;let r=n[1].replace(/\$/g,`\\$`),i=Math.max(0,n.index-4e3),a=e.slice(i,n.index+n[0].length),o=[...a.matchAll(RegExp(`(?<![$\\w])${r}=[$\\w]+\\(`,`g`))],s=RegExp(`(${r}=[$\\w]+\\()(${t})(\\)[^]{0,4000}?children:\\[${r}," tokens"\\])`,`y`),c=null;for(let e of o.reverse())if(s.lastIndex=e.index,c=s.exec(a),c)break;return c?{fullMatch:c[0],pre:c[1],partToWrap:c[2],post:c[3],startIndex:i+c.index}:null},Js=(e,t)=>{let n=e.match(/children:\[([$\w]+)," tokens"\][^]{0,80}?,"tokens"\)/);if(!n||n.index===void 0)return null;let r=n[1],i=r.replace(/\$/g,`\\$`),a=Math.max(0,n.index-6e3),o=e.slice(a,n.index+n[0].length),s=[...o.matchAll(RegExp(`([$\\w]+):${i}(?=[,}])`,`g`))];if(s.length===0)return null;let c=s[s.length-1],l=c[1].replace(/\$/g,`\\$`),u=c.index??0,d=[...o.slice(0,u).matchAll(RegExp(`${l}:([$\\w]+)(?=[,}])`,`g`))].filter(e=>e[1]!==r);if(d.length===0)return null;let f=d[d.length-1],p=f[1].replace(/\$/g,`\\$`),m=f.index??0,h=[...o.slice(0,m).matchAll(RegExp(`(?<![$\\w])${p}=[$\\w]+\\(`,`g`))];if(h.length===0)return null;let g=h[h.length-1].index??0,_=RegExp(`(${p}=[$\\w]+\\()(${t})(\\))`,`y`);_.lastIndex=g;let v=_.exec(o);return v?{fullMatch:v[0],pre:v[1],partToWrap:v[2],post:v[3],startIndex:a+v.index}:null},Ys=(e,t)=>{let n=Ks(t),r,i,a,o,s,c=`[$\\w]+(?:\\?\\.[$\\w]+)*(?:\\([^()]*\\))?`,l=Js(e,c)??qs(e,c);if(l)({fullMatch:r,pre:i,partToWrap:a,post:o,startIndex:s}=l);else{let t=e.match(RegExp(`(([$\\w]+)=[$\\w]+\\()(${c})(\\),.{0,2000}key:"tokens".{0,200},\\2," tokens")`));if(t&&t.index!==void 0)[r,i,,a,o]=t,s=t.index;else{let t=e.match(RegExp(`(overrideMessage:.{0,10000},([$\\w]+)=[$\\w]+\\()(${c})(\\),.{0,1000}key:"tokens".{0,200},\\2," tokens")`));if(t&&t.index!==void 0)[r,i,,a,o]=t,s=t.index;else{let t=e.match(/(overrideMessage:.{0,10000},key:"tokens".{0,200}[$\w]+\()(Math\.round\(.+?\))(\))/);if(t&&t.index!==void 0)[r,i,a,o]=t,s=t.index;else return console.error(`patch: tokenCountRounding: cannot find token count pattern in any CC format`),null}}}let u=`${i}Math.round((${a})/${n})*${n}${o}`,d=s+r.length,f=e.slice(0,s)+u+e.slice(d);return V(e,f,u,s,d),f},Xs=(e,t)=>{if(/CLAUDE\.md.{0,100}for\(let \w+ of \["AGENTS\.md"/.test(e))return console.log(`patch: agentsMd: alternative MD file support already present natively - skipping`),e;let n=Zs(e,t);if(n===null)return null;let r=Qs(n,t);return r===!1?null:r??n},Zs=(e,t)=>$s(e,t)||ec(e,t)||tc(e,t)||nc(e,t)||rc(e,t),Qs=(e,t)=>{let n=JSON.stringify(t),r=/(?<![$\w])([$\w]+)=async\(([$\w]+),([$\w]+)(?:,([$\w]+))?\)=>([$\w]+)\.has\(\2\)\?([$\w]+)\(\2,\3,([$\w]+),([$\w]+)\):([$\w]+)\(\2,\3,\7,([$\w]+),0,void 0,void 0,\8(?:,\4)?\)/,i=/([$\w]+)\.has\(([$\w]+)\)\?([$\w]+)\(\2,"User",([$\w]+),([$\w]+)\):await ([$\w]+)\(\2,"User",\4,!0,0,void 0,([$\w]+!==void 0\?\{backend:[$\w]+,key:[$\w]+\.state\("user-memory"\)\}:void 0),\5\)/,a=e.match(r),o=e.match(i);if(!a||!o){let t=/\.has\([$\w]+\)\?[$\w]+\([$\w]+,"User"/.test(e);return!a&&!o&&!t?null:(console.error(`patch: agentsMd: incomplete memory-walk precheck`),!1)}let s=e;if(a&&a.index!==void 0){let[t,r,i,o,c,l,u,d,f,p,m]=a,h=c?`${i},${o},${c}`:`${i},${o}`,g=c?`,${c}`:``,_=`${r}=async(${h})=>{if(${l}.has(${i})){if(${i}.endsWith("/CLAUDE.md")||${i}.endsWith("\\\\CLAUDE.md")){for(let alt of ${n}){let altPath=${i}.slice(0,-9)+alt;let found=await ${p}(altPath,${o},${d},${m},0,void 0,void 0,${f}${g});if(found.length)return found}}return ${u}(${i},${o},${d},${f})}return ${p}(${i},${o},${d},${m},0,void 0,void 0,${f}${g})}`,v=a.index;s=s.slice(0,v)+_+s.slice(v+t.length),V(e,s,_,v,v+t.length)}let c=s.match(i);if(c&&c.index!==void 0){let[e,t,r,i,a,o,l,u]=c,d=`${t}.has(${r})?await(async()=>{for(let alt of ${n}){let altPath=${r}.slice(0,-9)+alt;let found=await ${l}(altPath,"User",${a},!0,0,void 0,void 0,${o});if(found.length)return found}return ${i}(${r},"User",${a},${o})})():await ${l}(${r},"User",${a},!0,0,void 0,${u},${o})`,f=c.index,p=s;s=s.slice(0,f)+d+s.slice(f+e.length),V(p,s,d,f,f+e.length)}return s},$s=(e,t)=>{let n=e.match(/(async function ([$\w]+)\(([$\w]+),([$\w]+),([$\w]+),([$\w]+)(?:,([$\w]+))?)\)\{try\{let ([$\w]+),([$\w]+)=!1;((?:if\([$\w]+\)\{let [$\w]+=await [$\w]+\([$\w]+,[$\w]+\);return [$\w]+===void 0\?\{info:null,includePaths:\[\]\}:[$\w]+\([^()]*\)\})?)(if\(\6\)\{[\s\S]*?\}else\{[\s\S]*?\})if\(\8===null\)\{([\s\S]*?\[CLAUDE\.md\] skipping[\s\S]*?return\{info:null,includePaths:\[\]\})\}return ([$\w]+)\(\8,\3,\4,\5\)\}catch\(([$\w]+)\)\{return ([$\w]+)\(\14,\3\),\{info:null,includePaths:\[\]\}\}\}/);if(!n||n.index===void 0)return null;let r=n[1],i=n[2],a=n[3],o=n[4],s=n[5],c=n[7],l=n[8],u=n[9],d=n[10],f=n[11],p=n[12],m=n[13],h=n[14],g=n[15],_=JSON.stringify(t),v=`if(!didReroute&&(${a}.endsWith("/CLAUDE.md")||${a}.endsWith("\\\\CLAUDE.md"))){for(let alt of ${_}){let altPath=${a}.slice(0,-9)+alt;try{let rerouteResult=await ${i}(altPath,${o},${s},void 0,${c?`void 0,`:``}true);if(rerouteResult.info)return rerouteResult}catch{}}}`,y=`${r},didReroute){try{let ${l},${u}=!1;${c?d.replace(/^(if\([$\w]+\)\{let ([$\w]+)=await [$\w]+\([^()]*\);)/,(e,t,n)=>`${e}if(${n}===void 0&&!didReroute&&(${a}.endsWith("/CLAUDE.md")||${a}.endsWith("\\\\CLAUDE.md"))){for(let alt of ${_}){let altPath=${a}.slice(0,-9)+alt;try{let rerouteResult=await ${i}(altPath,${o},${s},void 0,${c},true);if(rerouteResult.info)return rerouteResult}catch{}}}`):d}${f.replace(`case"absent":return{info:null,includePaths:[]}`,`case"absent":{${v}return{info:null,includePaths:[]}}`).replace(/case"error":return ([$\w]+)\(([$\w]+)\.code,([$\w]+)\),\{info:null,includePaths:\[\]\}/,(e,t,n,r)=>`case"error":{if(!didReroute&&(${n}.code==="ENOENT"||${n}.code==="ENOTDIR")){${v}}return ${t}(${n}.code,${r}),{info:null,includePaths:[]}}`)}if(${l}===null){`+v+`${p}}return ${m}(${l},${a},${o},${s})}catch(${h}){if(!didReroute&&${h}&&(${h}.code==="ENOENT"||${h}.code==="ENOTDIR")){${v}}return ${g}(${h},${a}),{info:null,includePaths:[]}}}`,b=n.index,x=b+n[0].length,S=e.slice(0,b)+y+e.slice(x);return V(e,S,y,b,x),S},ec=(e,t)=>{let n=e.match(/(async function ([$\w]+)\(([$\w]+),([$\w]+),([$\w]+))\)\{try\{let ([$\w]+)=([$\w]+)\(\),([$\w]+)=!1,([$\w]+)=await ([$\w]+)\(\6,\3,([$\w]+),\(([$\w]+)\)=>\{\8=\12\.isDirectory\(\)\}\);if\(\9===null\)\{([\s\S]*?\[CLAUDE\.md\] skipping[\s\S]*?return\{info:null,includePaths:\[\]\})\}return ([$\w]+)\(\9,\3,\4,\5\)\}catch\(([$\w]+)\)\{return ([$\w]+)\(\15,\3\),\{info:null,includePaths:\[\]\}\}\}/);if(!n||n.index===void 0)return null;let r=n[1],i=n[2],a=n[3],o=n[4],s=n[5],c=n[6],l=n[7],u=n[8],d=n[9],f=n[10],p=n[11],m=n[12],h=n[13],g=n[14],_=n[15],v=n[16],y=`${r},didReroute){try{let ${c}=${l}(),${u}=!1,${d}=await ${f}(${c},${a},${p},(${m})=>{${u}=${m}.isDirectory()});if(${d}===null){if(!didReroute&&(${a}.endsWith("/CLAUDE.md")||${a}.endsWith("\\\\CLAUDE.md"))){for(let alt of ${JSON.stringify(t)}){let altPath=${a}.slice(0,-9)+alt;try{let rerouteResult=await ${i}(altPath,${o},${s},true);if(rerouteResult.info)return rerouteResult}catch{}}}${h}}return ${g}(${d},${a},${o},${s})}catch(${_}){return ${v}(${_},${a}),{info:null,includePaths:[]}}}`,b=n.index,x=b+n[0].length,S=e.slice(0,b)+y+e.slice(x);return V(e,S,y,b,x),S},tc=(e,t)=>{let n=e.match(/(async function ([$\w]+)\(([$\w]+),([$\w]+),([$\w]+))\)\{try\{let ([$\w]+)=([$\w]+)\(\),([$\w]+)=await ([$\w]+)\(\6,\3,([$\w]+)\);if\(\8===null\)return (([$\w]+)\(`\[CLAUDE\.md\] skipping[^`]*`\),\{info:null,includePaths:\[\]\});return ([$\w]+)\(\8,\3,\4,\5\)\}catch\(([$\w]+)\)\{return (([$\w]+)\(\14,\3\),\{info:null,includePaths:\[\]\})\}\}/);if(!n||n.index===void 0)return null;let r=n[1],i=n[2],a=n[3],o=n[4],s=n[5],c=n[6],l=n[7],u=n[8],d=n[9],f=n[10],p=n[11],m=n[13],h=n[14],g=n[15],_=`${r},didReroute){try{let ${c}=${l}(),${u}=await ${d}(${c},${a},${f});if(${u}===null){if(!didReroute&&(${a}.endsWith("/CLAUDE.md")||${a}.endsWith("\\\\CLAUDE.md"))){for(let alt of ${JSON.stringify(t)}){let altPath=${a}.slice(0,-9)+alt;try{let rerouteResult=await ${i}(altPath,${o},${s},true);if(rerouteResult.info)return rerouteResult}catch{}}}return ${p};}return ${m}(${u},${a},${o},${s})}catch(${h}){return ${g}}}`,v=n.index,y=v+n[0].length,b=e.slice(0,v)+_+e.slice(y);return V(e,b,_,v,y),b},nc=(e,t)=>{let n=e.match(/(async function ([$\w]+)\(([$\w]+),([$\w]+),([$\w]+))\)\{try\{let ([$\w]+)=await ([$\w]+)\(\)\.readFile\(\3,\{encoding:"utf-8"\}\);return ([$\w]+)\(\6,\3,\4,\5\)\}catch\(([$\w]+)\)\{return ([$\w]+)\(\9,\3\),\{info:null,includePaths:\[\]\}\}\}/);if(!n||n.index===void 0)return null;let r=n[0],i=n[1],a=n[2],o=n[3],s=n[4],c=n[5],l=n[6],u=n[7],d=n[8],f=n[9],p=n[10],m=`${i},didReroute){try{let ${l}=await ${u}().readFile(${o},{encoding:"utf-8"});return ${d}(${l},${o},${s},${c})}catch(${f}){if(!didReroute&&(${o}.endsWith("/CLAUDE.md")||${o}.endsWith("\\\\CLAUDE.md"))){for(let alt of ${JSON.stringify(t)}){let altPath=${o}.slice(0,-9)+alt;try{let r=await ${a}(altPath,${s},${c},true);if(r.info)return r}catch{}}}return ${p}(${f},${o}),{info:null,includePaths:[]}}}`,h=n.index,g=h+r.length,_=e.slice(0,h)+m+e.slice(g);return V(e,_,m,h,g),_},rc=(e,t)=>{let n=e.match(/(function ([$\w]+)\(([$\w]+),([^)]+?))\)(?:.|\n){0,500}Skipping non-text file in @include/);if(!n||n.index===void 0)return console.error(`patch: agentsMd: failed to find CLAUDE.md reading function`),null;let r=n[1],i=n[2],a=n[3],o=n[4],s=n.index,c=/([$\w]+(?:\(\))?)\.(?:readFileSync|existsSync|statSync)/,l=n[0].match(c),u=null;if(!l&&(u=e.slice(Math.max(0,s-5e3),s).match(c),!u))return console.error(`patch: agentsMd: failed to find fs expression in function or caller`),null;let d=l?l[1]:u?u[1]:`require("fs")`,f=JSON.stringify(t),p=s+r.length,m=e.slice(0,p)+`,didReroute`+e.slice(p);V(e,m,`,didReroute`,p,p);let h=m.slice(s),g=/\.isFile\(\)\)return null/,_=h.match(g)??h.match(/==="EISDIR"\)return null/);if(!_||_.index===void 0)return console.error(`patch: agentsMd: failed to find early return null for injection`),null;let v=!h.match(g),y=`if(!didReroute&&(${a}.endsWith("/CLAUDE.md")||${a}.endsWith("\\\\CLAUDE.md"))){for(let alt of ${f}){let altPath=${a}.slice(0,-9)+alt;if(${d}.existsSync(altPath)&&${d}.statSync(altPath).isFile())return ${i}(altPath,${o},true);}}`,b=s+_.index,x=_[0],S=v?`==="EISDIR"){${y}return null;}`:`.isFile()){${y}return null;}`;return m=m.slice(0,b)+S+m.slice(b+x.length),V(e,m,S,b,b),m},ic=(e,t)=>{let n=e.lastIndexOf(`function `,t);if(n===-1)return null;let r=e.indexOf(`{`,n);if(r===-1||r>t)return null;let i=0;for(let t=r;t<e.length;t++){let n=e[t];if(n===`{`)i++;else if(n===`}`&&(i--,i===0)){let n=e.slice(r,t+1),i=/return [$\w]+(?:\.default)?\.createElement/g,a,o=null;for(;(a=i.exec(n))!==null;)o=a;return o?r+o.index:null}}return null},ac=e=>{let t=[[/When ready, use \$\{([$\w]+)\} to present your plan for approval/g,(e,t)=>`When ready, use \${${t}} to exit plan mode. The plan will be approved automatically.`],[/Use this tool when you are in plan mode and have finished writing your plan to the plan file and are ready for user approval\./g,`Use this tool when you are in plan mode and have finished writing your plan to the plan file. Calling this tool exits plan mode and approves the plan automatically.`],[/This tool simply signals that you're done planning and ready for the user to review and approve/g,`This tool signals that you are done planning and that the plan should be approved automatically`],[/Once your plan is finalized, use THIS tool to request approval/g,`Once your plan is finalized, use THIS tool to approve the plan and proceed`],[/ExitPlanMode inherently requests user approval of your plan\./g,`ExitPlanMode inherently approves your plan and lets you proceed.`],[/Present your plan to the user for approval/g,`Exit plan mode; the plan will be approved automatically`],[/design an implementation approach for user approval/g,`design an implementation approach before automatic approval`],[/This tool REQUIRES user approval - they must consent to entering plan mode/g,`This tool enters plan mode; plan exit approval is handled automatically when auto-accept plan mode is enabled`],[/Claude has written up a plan and is ready to execute\. Would you like to proceed\?/g,`Claude has written up a plan and is ready to execute. The plan is approved automatically.`],[/Call `\$\{([$\w]+)\}` to present the plan for approval\./g,(e,t)=>`Call \`\${${t}}\` to exit plan mode; the plan will be approved automatically.`],[/## Phase 2: Spawn Workers \(After Plan Approval\)/g,`## Phase 2: Spawn Workers (After Automatic Plan Approval)`],[/Once the plan is approved, spawn/g,`After the plan is approved automatically, spawn`],[/searchHint:"present plan for approval and start coding \(plan mode only\)"/g,`searchHint:"approve plan and start coding (plan mode only)"`],[/async description\(\)\{return"Prompts the user to exit plan mode and start coding"\}/g,`async description(){return"Exits plan mode and starts coding"}`]],n=e;for(let[r,i]of t){let t=n;n=n.replace(r,i),n!==t&&V(e,n,String(i),0,0)}let r=`permissionUpdates:[{type:"setMode",mode:"acceptEdits",destination:"session"}]`,i=/kind:"permission_exit_plan_mode_v2",payload:([\s\S]{0,300}?),result:([\s\S]{0,180}?),default:\{behavior:"cancelled"\}/,a=n;n=n.replace(i,`kind:"permission_exit_plan_mode_v2",payload:$1,result:$2,default:{behavior:"allow",${r}}`),n!==a&&V(e,n,`permission_exit_plan_mode_v2 default allow`,0,0);let o=/async checkPermissions\(([$\w]+),([$\w]+)\)\{if\(([$\w]+)\(\)\)return\{behavior:"allow",updatedInput:\1\};return\{behavior:"ask",message:"Exit plan mode\?",updatedInput:\1\}\}/,s=n;return n=n.replace(o,`async checkPermissions($1,$2){return{behavior:"allow",updatedInput:$1,${r}}}`),n!==s&&V(e,n,`ExitPlanMode checkPermissions allow`,0,0),n},oc=e=>{let t=e.indexOf(`title:"Ready to code?"`);if(t===-1)return console.error(`patch: autoAcceptPlanMode: failed to find "Ready to code?" title`),null;if(/[$\w]+(?:\.current)?\("yes-accept-edits(?:-keep-context)?"\);return null;return/.test(e))return e;let n=e.slice(t,t+3e3),r=n.match(/onChange:\([$\w]+\)=>([$\w]+)\([$\w]+\),onCancel/),i=n.match(/onChange:([$\w]+),onCancel/),a=n.match(/onChange:\([$\w]+\)=>void ([$\w]+)\.current\([$\w]+\),onCancel/),o=n.match(/onChange:\([$\w]+\)=>void ([$\w]+)\([$\w]+\),onCancel/),s;if(r)s=r[1];else if(i)s=i[1];else if(a)s=`${a[1]}.current`;else if(o)s=o[1];else return console.error(`patch: autoAcceptPlanMode: failed to find onChange handler`),null;let c=e.match(/(\}\}\)\)\)\);)(return [$\w]+\.default\.createElement\([$\w]+\.default\.Fragment,null,[$\w]+\.default\.createElement\([$\w]+,\{color:"planMode",title:"Ready to code\?")/);if(c&&c.index!==void 0){let t=`${s}("yes-accept-edits-keep-context");return null;`,n=c[1]+t+c[2],r=c.index,i=r+c[0].length,a=e.slice(0,r)+n+e.slice(i);return V(e,a,n,r,i),ac(a)}let l=Math.max(0,t-2500),u=e.slice(l,t),d=u.match(/(return [$\w]+\.default\.createElement\([$\w]+,\{flexDirection:"column",tabIndex:0,autoFocus:!0.{0,200}[$\w]+\.default\.createElement\([$\w]+,\{color:"planMode",title:")$/);if(!d){let n=u.lastIndexOf(`return `);if(n===-1){let n=ic(e,t);if(n===null)return console.error(`patch: autoAcceptPlanMode: failed to find return before "Ready to code?"`),null;let r=`${s}("yes-accept-edits-keep-context");return null;`,i=e.slice(0,n)+r+e.slice(n);return V(e,i,r,n,n),ac(i)}let r=l+n,i=`${s}("yes-accept-edits-keep-context");return null;`,a=e.slice(0,r)+i+e.slice(r);return V(e,a,i,r,r),ac(a)}let f=l+d.index,p=`${s}("yes-accept-edits-keep-context");return null;`,m=e.slice(0,f)+p+e.slice(f);return V(e,m,p,f,f),ac(m)},sc=e=>{let t=e.match(/console\.error\("--dangerously-skip-permissions cannot be used with root\/sudo privileges for security reasons"\),process\.exit\(1\)/);if(!t||t.index===void 0)return e.includes(`root/sudo privileges`)?(console.error(`patch: allowBypassPermsInSudo: failed to find pattern`),null):e;let n=t.index,r=n+t[0].length,i=e.slice(0,n)+`{}`+e.slice(r);return V(e,i,`{}`,n,r),i},cc=[/Claude Code has switched from npm to native installer\. Run `claude install` or see https:\/\/docs\.anthropic\.com\/en\/docs\/claude-code\/getting-started for more options\./g,/installMethod is native, but directory [^"'`\n;]+/g,/installMethod is native, but claude command (?:is missing or invalid|not found) at [^"'`\n;]+/g,/Native installation exists but ~\/\.local\/bin is not in your PATH(?:\. Run: echo 'export PATH="\$HOME\/\.local\/bin:\$PATH"' >> [^"'`\n;]+ then open a new terminal or run: source [^"'`\n;]+)?/g,/Run: echo 'export PATH="\$HOME\/\.local\/bin:\$PATH"' >> [^"'`\n;]+ then open a new terminal or run: source [^"'`\n;]+/g],lc=e=>{let t=e,n=!1,r=-1,i=-1;for(let e of cc)t=t.replace(e,(e,t)=>(n||(r=t,i=t+e.length),n=!0,``));return n?(V(e,t,``,r,i),t):(console.warn(`patch: suppressNativeInstallerWarning: failed to find pattern`),null)},uc=e=>{let t=e.match(/=async\(([$\w]+),[$\w]+,([$\w]+)\)=>\{if\(\2=\2\?\.trim\(\)\|\|"",[$\w.]+\(\2\)\)return [$\w]+\("tengu_model_command_inline_help"/);if(!t||t.index===void 0)return console.error(`patch: modelAtEffort: failed to find the /model command handler`),null;let[,n,r]=t,i=t.index+t[0].indexOf(`{`)+1,a=`let tweakccModelEffort=/^(.+)@(low|med|medium|high|xhigh|max|auto)$/i.exec(${r}?.trim()||"");if(tweakccModelEffort){${r}=tweakccModelEffort[1];let tweakccOnDone=${n};${n}=(m,p)=>tweakccOnDone(m,p??{nextInput:"/effort "+tweakccModelEffort[2].toLowerCase(),submitNextInput:!0})}`,o=e.slice(0,i)+a+e.slice(i);return V(e,o,a,i,i),o},dc=e=>{let t=e.split(`
798
798
  `),n=0;for(let e=0;e<t.length;e++){let r=t[e];if(!r.startsWith(`#!`)&&!(r.startsWith(`//`)&&(r.includes(`Version`)||r.includes(`(c)`)))&&!(r.trim()===``&&e<5)){n=e;break}}return n>0?t.slice(0,n).join(`
799
799
  `).length:0},fc=e=>{let t=dc(e),n=`// SCROLLING FIX PATCH START
800
800
  const _origStdoutWrite=process.stdout.write;
@@ -1084,8 +1084,8 @@ globalThis.__tweakccRouterSnapshotTurn=function(messages){
1084
1084
  var snapshot=__tweakccRouterTurnHistory.get(__tweakccRouterMessageKey(messages));return snapshot?{...snapshot}:void 0;
1085
1085
  };
1086
1086
  `+t[0].replace(`){return{`,`,__tweakccRouterSnapshot){return{...(__tweakccRouterSnapshot?{tweakccRouter:__tweakccRouterSnapshot}:{}),`)},{index:n.index,old:n[0],replacement:`${n[1]}(()=>{globalThis.__tweakccRouterResolution=void 0;let __tweakccResolved=${n[2].slice(0,-1)},${n[5]});globalThis.__tweakccRouterRecordTurn?.(${i[1]},${n[5]},__tweakccResolved,globalThis.__tweakccRouterResolution);return __tweakccResolved})`},{index:r.index,old:r[0],replacement:r[0].slice(0,-1)+`\${${o}.tweakccRouter?.effort?" \\xB7 Router \\u2192 "+${o}.tweakccRouter.effort+(${o}.tweakccRouter.source==="fallback"?" (fallback)":${o}.tweakccRouter.source==="pinned"?" (pinned)":${o}.tweakccRouter.source==="omitted"?" (incomplete input)":typeof ${o}.tweakccRouter.confidence==="number"&&Number.isFinite(${o}.tweakccRouter.confidence)&&${o}.tweakccRouter.confidence>=0&&${o}.tweakccRouter.confidence<=1?" (confidence "+Math.round(${o}.tweakccRouter.confidence*100)+"%)":""):""}\``},...u.map(e=>({index:e.index,old:e[0],replacement:e[0].slice(0,-1)+`${e[6]?``:`,void 0,void 0`},globalThis.__tweakccRouterSnapshotTurn?.(${e[4]}))`}))].sort((e,t)=>t.index-e.index),f=e;for(let e of d){let t=f.slice(0,e.index)+e.replacement+f.slice(e.index+e.old.length);V(f,t,e.replacement,e.index,e.index+e.old.length),f=t}return f},ul=`__tweakccRouterClassify`,dl=1e3,fl=(e,t,n,r)=>{let i=e.levels.map(e=>e.effort),a=JSON.stringify(i),o=e.pinPerTask?`true`:`false`,s=e.messageCap||1e5,c=e.assistantCap||1e5,l=e.timeoutMs||15e3,u=n?`${n}()`:`null`,d=i.length-1,f=e.levels.map((e,t)=>`Level ${t} (${e.label}): ${e.help}`).join(`
1087
- `),p=(typeof e.systemPrompt==`string`&&e.systemPrompt.trim()?e.systemPrompt:te).replace(/\{LEVELS\}/g,f).replace(/\{MAX\}/g,String(d)),m=X(JSON.stringify(p)),h=X(JSON.stringify(e.levels.map(e=>e.label)));return`function __tweakccRouterState(){return globalThis.__tweakccRouter||(globalThis.__tweakccRouter={level:void 0,effort:void 0,baseline:void 0,summary:void 0,prevUser:void 0,prevAssistant:void 0,pendingCompaction:void 0,pendingRewindCut:void 0,log:void 0,model:void 0,loaded:!1})}function __tweakccRouterSyncSelection(){var selected=null;try{selected=globalThis.__tweakccRouterSelectedModel?.()||null}catch(e){}var s=__tweakccRouterState();if(s.selectedModel!==selected){if(s.selectedModel!==void 0){s.generation=(s.generation||0)+1;s.routeAbort?.abort();s.level=void 0;s.effort=void 0;s.baseline=void 0;s.prevUser=void 0;s.prevAssistant=void 0;}s.selectedModel=selected;}return selected}globalThis.__tweakccRouterSyncSelection=__tweakccRouterSyncSelection;function __tweakccRouterTrunc(__s,__cap){if(typeof __s!=="string")return"";if(__s.length<=__cap)return __s;var __mk="\\n...["+(__s.length-__cap)+" chars omitted from the middle]...\\n";var __b=__cap-__mk.length;if(__b<0)__b=0;var __h=Math.floor(__b/2);return __s.slice(0,__h)+__mk+__s.slice(__s.length-(__b-__h))}function __tweakccRouterSid(){try{var __s=${u};return typeof __s==="string"&&__s?__s:null}catch(__e){return null}}function __tweakccRouterDir(){var __p=${r}("path"),__o=${r}("os");return __p.join(__o.homedir(),".tweakcc","router-state")}function __tweakccRouterFile(__sid){return ${r}("path").join(__tweakccRouterDir(),__sid+".json")}function __tweakccRouterLoad(__st){if(__st.loaded)return;__st.loaded=!0;try{var __sid=__tweakccRouterSid();if(!__sid)return;var __fs=${r}("fs"),__f=__tweakccRouterFile(__sid);if(__fs.existsSync(__f)){var __d=JSON.parse(__fs.readFileSync(__f,"utf8"));if(__d){if(typeof __d.summary==="string")__st.summary=__d.summary;if(Number.isInteger(__d.level))__st.level=__d.level;if(Array.isArray(__d.log))__st.log=__d.log}}__tweakccRouterPrune(__fs)}catch(__e){}}function __tweakccRouterSave(__st){try{var __sid=__tweakccRouterSid();if(!__sid)return;var __fs=${r}("fs"),__dir=__tweakccRouterDir(),__j=JSON.stringify({summary:__st.summary,level:__st.level,log:Array.isArray(__st.log)?__st.log:[],updatedAt:Date.now()});__fs.mkdir(__dir,{recursive:!0},function(){try{__fs.writeFile(__tweakccRouterFile(__sid),__j,function(){})}catch(__e){}})}catch(__e){}}function __tweakccRouterDrop(__st){try{var __sid=__tweakccRouterSid();if(!__sid)return;var __fs=${r}("fs"),__f=__tweakccRouterFile(__sid);if(__fs.existsSync(__f))__fs.unlinkSync(__f)}catch(__e){}}function __tweakccRouterPrune(__fs){try{var __dir=__tweakccRouterDir(),__ns=__fs.readdirSync(__dir),__now=Date.now(),__ttl=12096e5;for(var __i=0;__i<__ns.length;__i++){try{var __ff=${r}("path").join(__dir,__ns[__i]);if(__now-__fs.statSync(__ff).mtimeMs>__ttl)__fs.unlinkSync(__ff)}catch(__e){}}}catch(__e){}}function __tweakccRouterReadResult(__r){try{if(__r==null)return null;if(typeof __r==="object"&&typeof __r.level==="number")return{level:__r.level,summary:typeof __r.summary==="string"?__r.summary:void 0};var __x;if(typeof __r==="string")__x=__r;else{var __c=(__r.message&&__r.message.content)||__r.content;__x=(Array.isArray(__c)&&__c[0]&&typeof __c[0].text==="string")?__c[0].text:(typeof __r.text==="string"?__r.text:"")}if(!__x)return null;try{var __o=JSON.parse(__x);if(__o&&typeof __o.level==="number")return{level:__o.level,summary:typeof __o.summary==="string"?__o.summary:void 0}}catch(__e){}var __m=__x.match(/-?\\d+/);if(__m)return{level:parseInt(__m[0],10),summary:void 0};return null}catch(__e){return null}}async function __tweakccRouterClassifyLlm(__input,__max){var __schema={type:"object",properties:{level:{type:"integer",description:"effort level, 0 (least) to "+__max+" (most)"},summary:{type:"string",description:"the updated running TL;DR summary"}},required:["level","summary"],additionalProperties:false};var __sys=${m};var __ac=new AbortController();__tweakccRouterState().routeAbort=__ac;var __to=setTimeout(function(){try{__ac.abort()}catch(__e){}},${l});try{var __res=await ${t.gB}({systemPrompt:[__sys],userPrompt:__input,outputFormat:{type:"json_schema",schema:__schema},signal:__ac.signal,options:{querySource:"route_complexity",agents:[],isNonInteractiveSession:!1,hasAppendSystemPrompt:!1,mcpTools:[],agentContext:${t.km}()}});return __tweakccRouterReadResult(__res)}finally{clearTimeout(__to)}}async function ${ul}(__text,__mode,__model){try{var __selected=__tweakccRouterSyncSelection();if(!__selected)return;var __ef=${a},__pin=${o},__max=__ef.length-1,__labels=${h};if(!__ef||!__ef.length)return;var __st=__tweakccRouterState();if(typeof __text!=="string")return;var __tr=__text.replace(/^\\s+/,"");if(/^\\/clear(\\s|$)/.test(__tr)){__st.level=void 0;__st.effort=void 0;__st.baseline=void 0;__st.summary=void 0;__st.prevUser=void 0;__st.prevAssistant=void 0;__st.pendingCompaction=void 0;__st.pendingRewindCut=void 0;__st.log=void 0;__st.model=void 0;__tweakccRouterDrop(__st);return}if(__tr.charAt(0)==="/")return;if(__mode!==void 0&&__mode!=="prompt")return;__tweakccRouterLoad(__st);if(__st.pendingRewindCut!=null){var __rt=__st.pendingRewindCut;__st.pendingRewindCut=void 0;var __rms=typeof __rt==="number"?__rt:Date.parse(__rt),__ci=-1;if(__rms===__rms&&Array.isArray(__st.log))for(var __i=__st.log.length-1;__i>=0;__i--){if(__st.log[__i]&&__st.log[__i].ts<=__rms){__ci=__i;break}}if(__ci>=0){var __pe=__st.log[__ci];__st.summary=__pe.summary;__st.level=__pe.level;__st.log=__st.log.slice(0,__ci)}else{__st.summary=void 0;__st.level=void 0}__st.prevUser=void 0;__st.prevAssistant=void 0;__st.pendingCompaction=void 0;if(process.env.TWEAKCC_ROUTER_DEBUG)try{process.stderr.write("[tweakcc-router] rewind cut to "+__rt+" ("+(__ci>=0?"restored":"reset")+")\\n")}catch(__e){}}if(typeof __st.pendingCompaction==="string"){__st.summary=__st.pendingCompaction;__st.prevUser=void 0;__st.prevAssistant=void 0;__st.level=void 0;__st.pendingCompaction=void 0}if(!Array.isArray(__st.log))__st.log=[];__st.log.push({ts:Date.now(),summary:typeof __st.summary==="string"?__st.summary:"",level:__st.level});if(__st.log.length>${dl})__st.log.splice(0,__st.log.length-${dl});var __plv=__st.level,__pmod=__st.model;var __mch=__pmod&&__model&&__pmod!==__model;var __ctx="model in use: "+(__model||"unknown")+(__mch?" (switched from "+__pmod+" this turn)":"")+"\\nlevel you assigned last turn: "+(__plv!==void 0?__plv+" ("+(__labels[__plv]||"?")+")":"none yet - this is the first routed turn");var __nm=__tweakccRouterTrunc(__text,${s});var __pu=__tweakccRouterTrunc(__st.prevUser,${s});var __pa=__tweakccRouterTrunc(typeof __st.prevAssistant==="string"?__st.prevAssistant:"",${c});var __input="<summary>\\n"+(__st.summary||"(none - first turn of the session)")+"\\n</summary>\\n<context>\\n"+__ctx+"\\n</context>\\n<recent_exchange>\\nuser: "+(__pu||"(none)")+"\\nassistant: "+(__pa||"(none)")+"\\n</recent_exchange>\\n<new_message>\\n"+__nm+"\\n</new_message>";var __generation=__st.generation,__res=null;try{__res=await __tweakccRouterClassifyLlm(__input,__max)}catch(__e){__res=null}if(__tweakccRouterSyncSelection()!==__selected||__st.generation!==__generation)return;__st.routeAbort=null;var __hi=__ef.indexOf("high");if(__hi<0)__hi=Math.min(2,__max);var __lv,__sm=__st.summary;if(__res&&typeof __res.summary==="string"&&__res.summary)__sm=__res.summary;if(__res&&Number.isInteger(__res.level))__lv=__res.level;else __lv=(__st.level!==void 0?__st.level:__hi);if(__pin&&__st.level!==void 0&&__lv<__st.level)__lv=__st.level;if(__lv<0)__lv=0;if(__lv>__max)__lv=__max;__st.level=__lv;__st.effort=__ef[__lv];__st.summary=__sm;__st.prevUser=__text;__st.model=__model;__tweakccRouterSave(__st);if(process.env.TWEAKCC_ROUTER_DEBUG)try{process.stderr.write("[tweakcc-router] level="+__lv+" effort="+__st.effort+" chars="+__text.length+"\\n")}catch(__e){}}catch(__e){}}`},pl=(e,t,n,r)=>{let i=/(function [$\w]+\(([$\w]+),([$\w]+),\{honorLaunchPin:[$\w]+=!0\}=\{\}\)\{if\(![$\w]+\(\2\)\)return;let [$\w]+=[$\w]+&&[$\w]+\(\2\),[$\w]+=[$\w]+\(\2\),([$\w]+)=[$\w]+\(\);)if\(\4===null&&![$\w]+\)return;return ([$\w]+)\(\4\?\?\([$\w]+\?[$\w]+:void 0\)\?\?\3\?\?[$\w]+,\2\)\}/,a=/(function [$\w]+\(([$\w]+),([$\w]+)\)\{if\(![$\w]+\(\2\)\)return;let [$\w]+=[$\w]+\(\2\),[$\w]+=[$\w]+\(\2\),([$\w]+)=[$\w]+\(\);)if\(\4===null&&![$\w]+\)return;return ([$\w]+)\(\4\?\?\([$\w]+\?[$\w]+:void 0\)\?\?\3\?\?[$\w]+,\2\)\}/,o=/(function [$\w]+\(([$\w]+),([$\w]+)\)\{if\(![$\w]+\(\2\)\)return;let [$\w]+=[$\w]+\(\2\),[$\w]+=[$\w]+\(\2\),([$\w]+)=[$\w]+\(\);)if\(\4===null&&![$\w]+\)return;let ([$\w]+)=\4\?\?\([$\w]+\?[$\w]+:void 0\)\?\?\3\?\?[$\w]+;(?:if\(typeof \5==="string"&&[$\w]+\(\5\)\)\5=[$\w]+\(\5,\2\);)?if\(\5==="max"&&!([$\w]+)\(\2\)\)\5="high";if\(\5==="xhigh"&&!([$\w]+)\(\2\)\)\5="high";return \5\}/,s=/(function [$\w]+\(([$\w]+),([$\w]+)\)\{if\(![$\w]+\(\2\)\)return;let [$\w]+=[$\w]+\(\2\),[$\w]+=[$\w]+\(\2\),([$\w]+)=[$\w]+\(\);)if\(\4===null\)return [$\w]+\?[$\w]+:void 0;let ([$\w]+)=\4\?\?\([$\w]+\?[$\w]+:void 0\)\?\?\3\?\?[$\w]+;if\(\5==="max"&&!([$\w]+)\(\2\)\)return"high";if\(\5==="xhigh"&&!([$\w]+)\(\2\)\)return"high";return \5\}/,c=e.match(/(function [$\w]+\(([$\w]+),([$\w]+),\{turnEffort:([$\w]+),hookEffortValue:[$\w]+,carriedEffort:[$\w]+=[$\w]+\(\2\)\}=\{\}\)\{if\(![$\w]+\(\2\)\)return;let [$\w]+=[$\w]+\(\2\)!==null;if\([$\w]+!==void 0\)\{let [$\w]+=typeof [$\w]+==="number"&&[$\w]+\?[$\w]+\([$\w]+\):[$\w]+;return [$\w]+\([$\w]+,\2\)\}let ([$\w]+)=[$\w]+\(\);)if\(\5===null&&![$\w]+\)return;let [$\w]+=[$\w]+\(\2,[$\w]+\),([$\w]+)=\5\?\?\(\5===null\?[$\w]+:void 0\)\?\?\4\?\?\3\?\?[$\w]+;if\(typeof \6==="number"&&[$\w]+\)\6=[$\w]+\(\6\);return ([$\w]+)\(\6,\2\)\}/)||e.match(/(function [$\w]+\(([$\w]+),([$\w]+),\{turnEffort:([$\w]+),hookEffortValue:[$\w]+\}=\{\}\)\{if\(![$\w]+\(\2\)\)return;let [$\w]+=[$\w]+\(\2\)!==null;if\([$\w]+!==void 0\)\{let [$\w]+=typeof [$\w]+==="number"&&[$\w]+\?[$\w]+\([$\w]+\):[$\w]+;return [$\w]+\([$\w]+,\2\)\}let ([$\w]+)=[$\w]+\(\);)if\(\5===null&&![$\w]+\)return;let [$\w]+=[$\w]+\(\2\),([$\w]+)=\5\?\?\(\5===null\?[$\w]+:void 0\)\?\?\4\?\?\3\?\?[$\w]+;if\(typeof \6==="number"&&[$\w]+\)\6=[$\w]+\(\6\);return ([$\w]+)\(\6,\2\)\}/)||e.match(/(function [$\w]+\(([$\w]+),([$\w]+),\{honorLaunchPin:[$\w]+=!0,turnEffort:([$\w]+),hookEffortValue:[$\w]+\}=\{\}\)\{if\(![$\w]+\(\2\)\)return;let [$\w]+=[$\w]+\(\2\)!==null;if\([$\w]+!==void 0\)\{let [$\w]+=typeof [$\w]+==="number"&&[$\w]+\?[$\w]+\([$\w]+\):[$\w]+;return [$\w]+\([$\w]+,\2\)\}let [$\w]+=[$\w]+&&[$\w]+\(\2\),[$\w]+=[$\w]+\(\2\),([$\w]+)=[$\w]+\(\);)if\(\5===null&&![$\w]+&&![$\w]+\)return;let ([$\w]+)=\5\?\?\(\5===null\?[$\w]+:void 0\)\?\?\4\?\?\([$\w]+\?[$\w]+:void 0\)\?\?\3\?\?[$\w]+;if\(typeof \6==="number"&&[$\w]+\)\6=[$\w]+\(\6\);return ([$\w]+)\(\6,\2\)\}/)||e.match(/(function [$\w]+\(([$\w]+),([$\w]+),\{honorLaunchPin:[$\w]+=!0,turnEffort:([$\w]+)\}=\{\}\)\{if\(![$\w]+\(\2\)\)return;let [$\w]+=[$\w]+&&[$\w]+\(\2\),[$\w]+=[$\w]+\(\2\),([$\w]+)=[$\w]+\(\),[$\w]+=[$\w]+\(\2\)!==null;)if\(\5===null&&![$\w]+&&![$\w]+\)return;let ([$\w]+)=\5\?\?\(\5===null\?[$\w]+:void 0\)\?\?\4\?\?\([$\w]+\?[$\w]+:void 0\)\?\?\3\?\?[$\w]+;if\(typeof \6==="number"&&[$\w]+\)\6=[$\w]+\(\6\);return ([$\w]+)\(\6,\2\)\}/),l=c?null:e.match(i)||e.match(a),u=c||l||e.match(o)||e.match(s);if(!u||u.index===void 0)return e.includes(`CLAUDE_CODE_EFFORT_LEVEL`)?(console.error(`patch: complexityRouter: failed to find effort resolver (XQ shape)`),null):(J(`patch: complexityRouter: effort resolver absent in this CC build - no-op`),e);let d=u[1],f=u[2],p=u[3],m=c?c[4]:null,h=c?c[5]:u[4],g=u[6],_=u[7],v=c?c[7]:l?.[5];if(v){let t=v.replace(/[$]/g,`\\$`),n=RegExp(`function ${t}\\(([$\\w]+),([$\\w]+)\\)\\{let ([$\\w]+)=\\1;(?:if\\(typeof \\3==="string"&&[$\\w]+\\(\\3\\)\\)\\3=[$\\w]+\\(\\3,\\2\\);)?if\\(\\3==="max"&&!([$\\w]+)\\(\\2\\)\\)\\3="high";if\\(\\3==="xhigh"&&!([$\\w]+)\\(\\2\\)\\)\\3="high";return \\3\\}`),r=e.match(n);if(!r)return console.error(`patch: complexityRouter: failed to find effort normalizer (support guards)`),null;g=r[4],_=r[5]}let y=`var __request=arguments[3];if(!__request||(!__request.agentId&&(__request.querySource?.startsWith("repl_main_thread")||__request.querySource==="sdk"))){var __selected=__tweakccRouterSyncSelection();var __st=__tweakccRouterState();if(__selected===${f}&&__st.baseline===void 0)__st.baseline=(${p}==null?null:${p});let __twkRE=__selected===${f}?__st.effort:void 0;if(__twkRE&&${h}==null${m?`&&${m}==null`:``}&&(${p}==null||${p}===__st.baseline)){if(__twkRE==="max"&&!${g}(${f}))__twkRE="high";if(__twkRE==="xhigh"&&!${_}(${f}))__twkRE="high";globalThis.__tweakccRouterResolution={effort:__twkRE};return __twkRE}}`,b=(t.provider===`jev`?cl:fl)(t,n,r,Xc(e)?`process.getBuiltinModule`:Zu(e));Xc(e)&&t.provider!==`jev`&&(b+=`globalThis.__tweakccRouterState=__tweakccRouterState;globalThis.__tweakccRouterClassify=__tweakccRouterClassify;`);let x=b+d+y+u[0].slice(d.length),S=u.index,C=S+u[0].length,w=e.slice(0,S)+x+e.slice(C);return V(e,w,x,S,C),w},ml=(e,t)=>{let n=e.match(/if\(([$\w]+)===null&&([$\w]+)!=="prompt"\)throw Error\(`Mode: \$\{\2\} requires a string input\.`\);/);if(!n||n.index===void 0)return e.includes(`requires a string input.`)?(console.error(`patch: complexityRouter: failed to find submit handler throw-guard`),null):(J(`patch: complexityRouter: submit handler absent in this CC build - no-op`),e);let r=n[1],i=n[2],a=[...e.slice(Math.max(0,n.index-4e3),n.index).matchAll(/([$\w]+)\.options\.mainLoopModel/g)],o=a[a.length-1],s=o?`${o[1]}.options.mainLoopModel`:`void 0`,c=o?`${o[1]}.messages`:`void 0`,l=o?`${o[1]}.session?.id`:`void 0`,u=`await ${Xc(e)?`globalThis.${ul}`:ul}(${`${r},${i},${s}${t?`,${c},${l}`:``}`});`,d=t?`try{${o?`if(!${o[1]}.agentId)`:``}{${o?`${o[1]}.__tweakccRouterTurn=`:``}${u}}}catch(__tweakccRouterError){}`:u,f=n.index+n[0].length,p=e.slice(0,f)+d+e.slice(f);return V(e,p,d,f,f),p},hl=e=>{if(e.includes(`function __tweakccRouterObserve(`)){let t=e.match(/let [$\w]+;if\(([$\w]+)\.gates\.emitToolUseSummaries&&[$\w]+\.length>0&&!([$\w]+)\.abortController\.signal\.aborted&&!\2\.agentId\)\{let [$\w]+=([$\w]+)\.at\(-1\)/);if(t?.index!==void 0){let n=e.slice(t.index,t.index+2e3).match(/([$\w]+)\.find\(\([$\w]+\)=>[$\w]+\.type==="user"&&Array\.isArray/),r=Xc(e)?`globalThis.__tweakccRouterObserve`:`__tweakccRouterObserve`,i=`try{if(!${t[2]}.agentId)${r}(${t[3]}${n?`.concat(${n[1]})`:``},${t[2]}.session?.id,${t[2]}.__tweakccRouterTurn);}catch(__tweakccRouterError){}`;return e.slice(0,t.index)+i+e.slice(t.index)}return J(`patch: complexityRouter: round capture absent - transcript refresh occurs at submit`),e}let t=e.match(/([$\w]+)=([$\w]+)\.at\(-1\),([$\w]+);if\(\1\)\{let ([$\w]+)=\1\.message\.content\.filter\(\(([$\w]+)\)=>\5\.type==="text"\);if\(\4\.length>0\)\{let ([$\w]+)=\4\.at\(-1\);if\(\6&&"text"in \6\)\3=\6\.text\}\}/);if(!t||t.index===void 0)return J(`patch: complexityRouter: prev-assistant capture site absent - router runs without prior-assistant context`),e;let n=`try{var __twr=globalThis.__tweakccRouter;if(__twr&&globalThis.__tweakccRouterSyncSelection?.())__twr.prevAssistant=${t[3]}}catch(__e){}`,r=t.index+t[0].length,i=e.slice(0,r)+n+e.slice(r);return V(e,i,n,r,r),i},gl=e=>{let t=e.match(/return\{ok:!0,summaryText:([$\w]+),/);if(!t||t.index===void 0)return J(`patch: complexityRouter: compaction summary site absent - no compaction reseed`),e;let n=t[1],r=`return globalThis.__tweakccRouter&&((typeof globalThis.__tweakccRouterInvalidate==="function"&&globalThis.__tweakccRouterInvalidate(globalThis.__tweakccRouter),globalThis.__tweakccRouter.pendingCompaction=${n})),{ok:!0,summaryText:${n},`,i=t.index,a=i+t[0].length,o=e.slice(0,i)+r+e.slice(a);return V(e,o,r,i,a),o},_l=e=>{let t=e.match(/onRestoreMessage:\(([$\w]+)\)=>([$\w]+(?:\.[$\w]+)?)\(\1,"message_selector"\)/);if(!t||t.index===void 0)return J(`patch: complexityRouter: restore-conversation site absent - no rewind cut`),e;let n=t[1],r=`onRestoreMessage:(${n})=>(globalThis.__tweakccRouter&&((typeof globalThis.__tweakccRouterInvalidate==="function"&&globalThis.__tweakccRouterInvalidate(globalThis.__tweakccRouter),globalThis.__tweakccRouter.pendingRewindCut=${n}&&${n}.timestamp)),${t[2]}(${n},"message_selector"))`,i=t.index,a=i+t[0].length,o=e.slice(0,i)+r+e.slice(a);return V(e,o,r,i,a),o},vl=e=>{let t=e.match(/function ([$\w]+)\(\)\{return\{agentType:"main",agentId:[$\w]+\(\)\}\}/);if(!t)return null;let n=e.match(/async function ([$\w]+)\(([$\w]+)\)\{(let ([$\w]+)=)([$\w]+\([$\w]+\(\)\)),[\s\S]{0,600}?return await [$\w]+\(\2,[$\w]+\[[$\w]+\],[$\w]+\[[$\w]+\+1\]\)/);if(n){let[e,r,i,a,,o]=n,s=`async function ${r}(${i}){${a}${o},`;return{gB:r,km:t[1],gBIndex:n.index,kmIndex:t.index,gBSource:e,gBOptions:`${i}.options`,gBPatched:`async function ${r}(${i}){${a}${i}.options.querySource==="route_complexity"?"claude-haiku-4-5":${o},`+e.slice(s.length)}}let r=e.match(/async function ([$\w]+)\(\{systemPrompt:[$\w]+=[$\w]+\(\[\]\),userPrompt:[$\w]+,outputFormat:[$\w]+,signal:[$\w]+,options:([$\w]+)\}\)\{return\(await [$\w]+\([\s\S]{0,500}?,model:[$\w]+\(\),enablePromptCaching:/);return r?{gB:r[1],km:t[1],gBIndex:r.index,kmIndex:t.index,gBSource:r[0],gBOptions:r[2],gBPatched:r[0].replace(/model:([$\w]+)\(\),enablePromptCaching:$/,`model:${r[2]}.querySource==="route_complexity"?"claude-haiku-4-5":$1(),enablePromptCaching:`)}:null},yl=e=>{let t=e.match(/getSessionId\(\)\{return ([$\w]+)\(\)\}/);return t?t[1]:null},bl=(e,t)=>{if(e.includes(ul))return J(`patch: complexityRouter: already patched - skipping`),e;let n=vl(e);if(!n)return console.warn(`patch: complexityRouter: gB/km side-call helpers not found in this CC build - cannot maintain routing context; skipping the router`),e;let r=yl(e);r||J(`patch: complexityRouter: session-id accessor not found - cross-session summary persistence disabled (in-memory only)`);let i=Zc(e,n);if(!i)return null;i.file=i.file.replace(n.gBSource,()=>n.gBPatched);let a=pl(i.file,t,i.helpers,r);if(a===null)return null;if(a===i.file)return e;let o=ml(a,t.provider===`jev`);if(o===null)return null;if(o===a)return J(`patch: complexityRouter: submit handler absent - reverting the resolver wrap too (all-or-nothing no-op)`),e;let s=hl(o);return ll(_l(t.provider===`jev`?s:gl(s)))},xl=[[`opusrouter`,`claude-opus-5-5`,`Opus 5.5 + Effort Router`],[`fablerouter`,`claude-fable-5-1`,`Fable 5.1 + Effort Router`]],Sl=e=>`(${e}==="opusrouter"||${e}==="fablerouter")`,Cl=(e,t,n,r)=>{let i=e.match(t);if(!i||i.index===void 0)return console.error(`patch: complexityRouterModels: failed to find ${r}`),null;let a=X(n(i)),o=e.slice(0,i.index)+a+e.slice(i.index+i[0].length);return V(e,o,a,i.index,i.index+i[0].length),o},wl=e=>{let t=Cl(e,/(=[$\w]+\(\(([$\w]+)\)=>\{let ([$\w]+)=[$\w]+\(\),([$\w]+)=[$\w]+\.find\(\(([$\w]+)\)=>\5\.value===\3\);if\(\4===void 0\|\|\4\.disabled===!0\)return;)/,e=>`${e[0]}if(${Sl(e[3])})return;`,`picker effort adjustment`);if(t===null)return null;let n=/(([$\w]+)!==void 0&&![$\w]+&&[$\w]+\([$\w]+,\{marginBottom:1,flexDirection:"column",children:)/,r=t.match(/([$\w]+)\(([$\w]+),\{color:"subtle",children:\[[$\w]+\([$\w]+,\{effort:void 0\}\)," Effort not supported"/);if(!r||(t=Cl(t,n,e=>`${e[0]}${Sl(e[2])}?${r[1]}(${r[2]},{color:"subtle",children:"Automatic effort"+(globalThis.__tweakccRouterState?.()?.effort?" · currently "+globalThis.__tweakccRouterState().effort:"")}):`,`picker effort display`),t===null))return null;let i=[/(function ([$\w]+)\(([$\w]+)\)\{)((?:if\(\3==="fableplan"\)\{[$\w]+\(\3,void 0\);return\})?let ([$\w]+)=[$\w]+\(\3\),(?:[$\w]+=[$\w]+\(\),)*[$\w]+=\5&&([$\w]+)!==void 0\?[$\w]+\(\6,\5\):\6;[$\w]+\("tengu_model_command_menu_effort")/,/(function ([$\w]+)\(([$\w]+)\)\{)((?:if\(\3==="fableplan"\)\{[$\w]+\(\3,void 0\);return\})?let ([$\w]+)=[$\w]+\(\3\),(?:[$\w]+=[$\w]+\(\),)*[$\w]+=\5&&([$\w]+)!==void 0&&\6!=="ultracode"\?[$\w]+\(\6,\5\):\6;[$\w]+\("tengu_model_command_menu_effort")/],a=i.find(e=>e.test(t))??i[i.length-1];return Cl(t,a,e=>{let n=t.slice(e.index+e[0].length).match(RegExp(`^(?:(?!function )[^])*?if\\(${e[3].replace(/\$/g,`\\$`)}===[$\\w]+\\)\\{([$\\w]+)\\(null,[$\\w]+\\);return\\}`));if(!n)throw Error(`Router picker apply call is missing`);return`${e[1]}if(${Sl(e[3])}){${n[1]}(${e[3]},void 0);return}${e[4]}`},`picker model commit`)},Tl=e=>{if(e.includes(`globalThis.__tweakccRouterSelectedModel=function(`))return e;if(!e.includes(`"claude-opus-5-5"`))return J(`patch: complexityRouterModels: verified models unavailable — no-op`),e;let t=e.match(/function ([$\w]+)\(([$\w]+)\)\{let [$\w]+=\2\.trim\(\)[\s\S]{0,120}?if\([$\w]+\(([$\w]+)\)\)switch\(\3\)\{/);if(!t)return null;let n=xl.map(([e,t])=>`case"${e}":return"${t}";`).join(``),r=Cl(e,/(\[(?:"[\w[\]]+",)*"opusplan"(?:,"[\w[\]]+")*\])(\s*,\s*[$\w]+\s*=\s*\["sonnet","opus","haiku")/,e=>`${e[1].slice(0,-1)},"opusrouter","fablerouter"]${e[2]}`,`model alias whitelist`);if(r===null)return null;let i=r.indexOf(t[0]),a=r.replace(t[0],t[0]+n);if(V(r,a,t[0]+n,i,i+t[0].length),r=a,r=Cl(r,/(function [$\w]+\([$\w]+\)\{let [$\w]+=[$\w]+\(\);switch\([$\w]+\)\{case"opus":return [$\w]+\([$\w]+\);)/,e=>e[0]+n,`builtin model defaults`),r===null||(r=Cl(r,/function ([$\w]+)\(\)\{let ([$\w]+)=[$\w]+\(\);if\(\2!==void 0\)return [$\w]+\(\2,"explicit"\);return [$\w]+\(\)\}/,e=>`globalThis.__tweakccRouterSelectedModel=function(){let __tweakccSelected=${e[1]}();return __tweakccSelected==="opusrouter"?"claude-opus-5-5":__tweakccSelected==="fablerouter"?"claude-fable-5-1":null};${e[0]}`,`live selected model getter`),r===null))return null;for(let e of[`overrideMainLoopModel`,`replaceInitialMainLoopModel`])if(r=Cl(r,RegExp(`(${e}\\(([$\\w]+)\\)\\{this\\.#[$\\w]+=\\2)\\}`),e=>`${e[1]};queueMicrotask(()=>globalThis.__tweakccRouterSyncSelection?.())}`,`selected model setter`),r===null)return null;if(r=Cl(r,/function ([$\w]+)\(([$\w]+)=!1,([$\w]+)=null\)\{let ([$\w]+)=new Set,([$\w]+)=[$\w]+\(\2,\3\)\.filter\(\(([$\w]+)\)=>\{if\(\6\.value===null\)return!0;if\(\4\.has\(\6\.value\)\)/,e=>`function ${e[1]}(${e[2]}=!1,${e[3]}=null){let rows=__tweakccRouterBasePicker(${e[2]},${e[3]});let clean=rows.filter(row=>!${Sl(`row.value`)});for(let [alias,model,label] of ${JSON.stringify(xl)}){let index=clean.findIndex(row=>typeof row.value==="string"&&row.disabled!==!0&&${t[1]}(row.value)===model);if(index!==-1)clean.splice(index+1,0,{...clean[index],value:alias,label,description:"Automatic effort selected for each message"})}return clean}function __tweakccRouterBasePicker`+e[0].slice(`function ${e[1]}`.length),`filtered model picker`),r===null)return null;try{return wl(r)}catch{return console.error(`patch: complexityRouterModels: failed to find picker apply`),null}},W=`fableplan`,El=`globalThis.__tweakccFablePlanModelFor`,Dl=`__tweakccPermissionMode`,Ol=`/*@@TWEAKCC_MODULE:`,kl=(e,t)=>{let n=e.lastIndexOf(Ol,t);if(n===-1)return[0,e.length];let r=e.indexOf(Ol,n+1);return[n,r===-1?e.length:r]},Al=(e,t,n)=>{let[r,i]=kl(e,t),a=e.slice(r,i),o=q(n);return RegExp(`(?:^|[^$\\w.])function ${o}\\(`).test(a)?!0:RegExp(`import\\{(?:[^}]*,)?${o}(?:,[^}]*)?\\}from"`).test(a)},jl=e=>{let t=e.match(/(\[(?:"[\w[\]]+",)*"opusplan"(?:,"[\w[\]]+")*\])(\s*,\s*[$\w]+\s*=\s*\["sonnet","opus","haiku")/);if(t&&t[1].includes(`"${W}"`))return J(`patch: fablePlan: alias already in the whitelist — skipping`),e;if(!t||t.index===void 0)return console.error(`patch: fablePlan: failed to find the model alias whitelist`),null;let n=t[1].slice(0,-1)+`,"${W}"]`+t[2],r=e.slice(0,t.index)+n+e.slice(t.index+t[0].length);return V(e,r,n,t.index,t.index+t[0].length),r},Ml=(e,t,n)=>{let r=e.match(/(function ([$\w]+)\(([$\w]+)\)\{let\{permissionMode:([$\w]+),mainLoopModel:([$\w]+),exceeds200kTokens:([$\w]+)=!1\}=\3;)(if\(\4!=="plan"\)return\{model:\5,clampWarning:null\};)(let [$\w]+=([$\w]+)\(\),)/),i=r?null:e.match(/(function ([$\w]+)\(([$\w]+)\)\{let\{permissionMode:([$\w]+),mainLoopModel:([$\w]+),exceeds200kTokens:([$\w]+)=!1\}=\3;)(if\(\4!=="plan"\)return \5;)(let [$\w]+=([$\w]+)\(\),)/),a=r||i?null:e.match(/(function ([$\w]+)\(([$\w]+)\)\{let\{permissionMode:([$\w]+),mainLoopModel:([$\w]+),exceeds200kTokens:([$\w]+)=!1\}=\3,([$\w]+)=([$\w]+)\(\);)/),o=r??i??a;if(!o||o.index===void 0)return console.error(`patch: fablePlan: failed to find the plan-mode model resolver (uM shape)`),null;let s=o[4],c=r??i,l=c?o[9]:o[8];if(!Al(e,o.index,n))return console.error(`patch: fablePlan: ${n} is not in scope at the plan-mode model resolver`),null;let u=`${n}("${t.planModel}")`,d=`${El}=(m)=>m==="plan"&&${l}()==="${W}"?${u}:void 0;`,f=c?`${d}${o[1]}${o[7]}if(${l}()==="${W}")return${r?`{model:${u},clampWarning:null}`:` ${u}`};${o[8]}`:`${d}${o[1]}if(${s}==="plan"&&${o[7]}==="${W}")return ${u};`,p=e.slice(0,o.index)+f+e.slice(o.index+o[0].length);return V(e,p,f,o.index,o.index+o[0].length),p},Nl=(e,t)=>{let n=RegExp(`(switch\\(([$\\w]+)\\)\\{(?:case"[\\w]+":return [$\\w]+\\([$\\w]+\\);)*?case"${t.execModel}":return ([$\\w]+)\\(([$\\w]+)\\);)`),r=e.match(n);if(!r||r.index===void 0)return console.error(`patch: fablePlan: failed to find the builtin-default alias switch`),null;let i=`${r[1]}case"${W}":return ${r[3]}(${r[4]});`,a=e.slice(0,r.index)+i+e.slice(r.index+r[0].length);return V(e,a,i,r.index,r.index+r[0].length),a},Pl=(e,t)=>{let n=RegExp(`function ([$\\w]+)\\(([$\\w]+)\\)\\{let [$\\w]+=\\2\\.trim\\(\\)[\\s\\S]{0,120}?if\\([$\\w]+\\(([$\\w]+)\\)\\)switch\\(\\3\\)\\{([\\s\\S]{0,600}?case"${t.execModel}":(return [^;]+;))`),r=e.match(n);if(!r||r.index===void 0)return console.error(`patch: fablePlan: failed to find the alias-to-model resolver (as shape)`),null;let i=r[1],a=r[0],o=`${a}case"${W}":${r[5]}`,s=e.slice(0,r.index)+o+e.slice(r.index+a.length);return V(e,s,o,r.index,r.index+a.length),{file:s,resolver:i}},Fl=(e,t)=>{let n=/(function [$\w]+\(([$\w]+),([$\w]+)\)\{let ([$\w]+)=[$\w]+\(\2\),([$\w]+)=[$\w]+\.ANTHROPIC_CUSTOM_MODEL_OPTION;)/,r=e.match(/(function [$\w]+\(([$\w]+),([$\w]+)\)\{let ([$\w]+)=[$\w]+\(\2,\3\),([$\w]+)=\4\?\?[$\w]+\(\2\),[^;]*;)(?=(?:(?!function )[^])*?[$\w]+\.ANTHROPIC_CUSTOM_MODEL_OPTION;)/)??e.match(/(function [$\w]+\(([$\w]+),([$\w]+)\)\{let ([$\w]+)=[$\w]+\(\2,\3\),([$\w]+)=\4\?\?[$\w]+\(\2\),([$\w]+)=[$\w]+\.ANTHROPIC_CUSTOM_MODEL_OPTION;)/),i=r??e.match(n);if(!i||i.index===void 0)return console.error(`patch: fablePlan: failed to find the model picker options`),null;let a=r?i[5]:i[4],o=`${Vl(t.planModel)} Plan Mode`,s=`Use ${Vl(t.planModel)} in plan mode, ${Vl(t.execModel)} otherwise`,c=`if(!${a}.some((z)=>z.value==="${W}"))${a}.push(${JSON.stringify({value:W,label:o,description:s})});`,l=i[1]+c,u=e.slice(0,i.index)+l+e.slice(i.index+i[0].length);return V(e,u,l,i.index,i.index+i[0].length),u},Il=e=>{let t=e=>`${El}?.(${e}.${Dl}??${e}.toolPermissionContext?.mode)??`,n=(t,n)=>{let r=e.slice(e.lastIndexOf(`function `,t),t).match(/^function ([$\w]+)\(([$\w]+),([$\w]+)[,)]/);return r&&r[2]===n?{name:r[1],model:r[3]}:void 0},r=()=>(console.error(`patch: fablePlan: failed to find the per-model effort lookup's model argument`),null),i=e.match(/(case"inherit":\{if\(([$\w]+)\.settingsEffortTable===void 0\)return;if\(!?[$\w]+\(\2\.settingsEffortTable\)(?:&&!?[$\w]+\(\))?\)return \2\.settingsEffortTable\.default;let ([$\w]+)=)([^;]*?\2\.mainLoopModelForSession[^;]*;return [^;]*?[$\w]+\(\2\.settingsEffortTable,\3\)\})/);if(i&&i.index!==void 0){let a=n(i.index,i[2]);if(!a)return r();let o=a.name;if(i[4].startsWith(`${El}?.(`))return J(`patch: fablePlan: effort lookup already keyed — skipping`),{file:e,resolver:o,block:!0};if(!i[4].startsWith(`${a.model}??`))return r();let s=`${i[1]}${t(i[2])}${i[4]}`,c=e.slice(0,i.index)+s+e.slice(i.index+i[0].length);return V(e,c,s,i.index,i.index+i[0].length),{file:c,resolver:o,block:!0}}let a=e.match(/(case"inherit":if\(([$\w]+)\.settingsEffortTable===void 0\)return;if\(!?[$\w]+\(\2\.settingsEffortTable\)\)return \2\.settingsEffortTable\.default;return [$\w]+\(\2\.settingsEffortTable,)/);if(!a||a.index===void 0)return e.includes(`settingsEffortTable`)?(console.error(`patch: fablePlan: failed to find the per-model effort lookup`),null):(J(`patch: fablePlan: no per-model effort table in this build — effort follows the session`),{file:e,resolver:void 0,block:!1});let o=n(a.index,a[2]);if(!o)return r();let s=o.name,c=a.index+a[0].length;if(e.startsWith(`${El}?.(`,c))return J(`patch: fablePlan: effort lookup already keyed — skipping`),{file:e,resolver:s,block:!1};if(!e.startsWith(`${o.model}??`,c))return r();let l=`${a[1]}${t(a[2])}`,u=e.slice(0,a.index)+l+e.slice(c);return V(e,u,l,a.index,c),{file:u,resolver:s,block:!1}},Ll=`routed`,Rl=(e,t,n)=>{let r=t=>n?(console.error(`patch: fablePlan: ${t}`),null):(J(`patch: fablePlan: ${t} — effort follows the session's mode`),e);if(!t)return r(`failed to name the per-model effort lookup`);let i=e.match(/function ([$\w]+)\(([$\w]+)\)\{let ([$\w]+)=\2\.getAppState\(\)\.toolPermissionContext[,;]/);if(!i||i.index===void 0)return r(`failed to find the effective permission context function`);let a=i[1],o=q(t),s=[],c=RegExp(`([^$\\w.]${o}\\()([$\\w]+)\\.getAppState\\(\\),([$\\w]+)\\(\\2\\)(?=[,)])`,`g`),l=RegExp(`([^$\\w.]${o}\\()([$\\w]+)\\?\\.getAppState\\?\\.\\(\\)\\?\\?\\{\\},`,`g`),u=/model:([$\w]+),effortState:([$\w]+)[,}]/g,d=(t,...n)=>n.every(n=>Al(e,t,n)),f={a:0,b:0,c:0};for(let n of e.matchAll(c))n.index===void 0||!d(n.index,t,a)||(f.a++,s.push([n.index,n.index+n[0].length,`${n[1]}{...${n[2]}.getAppState(),${Dl}:${a}(${n[2]}).mode},${n[3]}(${n[2]})`]));for(let n of e.matchAll(l))n.index===void 0||!d(n.index,t,a)||(f.b++,s.push([n.index,n.index+n[0].length,`${n[1]}{...${n[2]}?.getAppState?.()??{},${Dl}:${n[2]}?.getAppState?${a}(${n[2]}).mode:void 0},`]));for(let n of e.matchAll(u)){if(n.index===void 0||!d(n.index,t))continue;let r=n.index+n[0].length,i=e.indexOf(`function `,r),a=RegExp(`[^$\\w.]${o}\\(${q(n[2])},${q(n[1])}\\)`).exec(e.slice(r,i===-1?void 0:i));if(!a)continue;f.c++;let c=r+a.index+1;s.push([c,c+a[0].length-1,`${t}({...${n[2]},${Dl}:"${Ll}"},${n[1]})`])}let p={a:e.includes(`.getAppState(),${Dl}:${a}(`),b:e.includes(`??{},${Dl}:`),c:e.includes(`${Dl}:"${Ll}"`)};for(let[e,t]of[[`a`,`the per-request effort resolver`],[`b`,`the hook-input effort caller`],[`c`,`the subagent-spawn effort caller`]])if(f[e]===0&&!p[e]&&r(`failed to find ${t}`)===null)return null;if(s.length===0)return J(`patch: fablePlan: effort callers already pass the mode — skipping`),e;let m=e;for(let[e,t,n]of s.sort((e,t)=>t[0]-e[0]))m=m.slice(0,e)+n+m.slice(t);return V(e,m,s.map(e=>e[2]).join(` … `),s[s.length-1][0],s[s.length-1][0]),m},zl=(e,t)=>{if(!e.includes(`"modelPicker:decreaseEffort"`))return J(`patch: fablePlan: no model-picker effort control in this build`),e;if(e.includes(`==="${W}")return;let `))return J(`patch: fablePlan: picker effort row already handled — skipping`),e;let n=/(=[$\w]+\(\(([$\w]+)\)=>\{let ([$\w]+)=[$\w]+\(\),([$\w]+)=[$\w]+\.find\(\(([$\w]+)\)=>\5\.value===\3\);if\(\4===void 0\|\|\4\.disabled===!0\)return;)(let ([$\w]+)=[$\w]+\(\3\);if\(!\7\.supportsEffort\)return;)/,r=/(([$\w]+)!==void 0&&![$\w]+&&[$\w]+\([$\w]+,\{marginBottom:1,flexDirection:"column",children:)([$\w]+\?)/,i=/([$\w]+)\(([$\w]+),\{color:"subtle",children:\[[$\w]+\([$\w]+,\{effort:void 0\}\)," Effort not supported"/,a=[/(function ([$\w]+)\(([$\w]+)\)\{)(let ([$\w]+)=[$\w]+\(\3\),(?:[$\w]+=[$\w]+\(\),)*[$\w]+=\5&&([$\w]+)!==void 0\?[$\w]+\(\6,\5\):\6;[$\w]+\("tengu_model_command_menu_effort")/,/(function ([$\w]+)\(([$\w]+)\)\{)(let ([$\w]+)=[$\w]+\(\3\),(?:[$\w]+=[$\w]+\(\),)*[$\w]+=\5&&([$\w]+)!==void 0&&\6!=="ultracode"\?[$\w]+\(\6,\5\):\6;[$\w]+\("tengu_model_command_menu_effort")/,/(function ([$\w]+)\(([$\w]+)\)\{)(let ([$\w]+)=[$\w]+\(\3\),[$\w]+=\5&&[$\w]+!==void 0&&[$\w]+!=="ultracode"\?[$\w]+\([$\w]+,\5\):[$\w]+;if\([$\w]+\("tengu_model_command_menu_effort")/],o=e.match(n),s=e.match(r),c=e.match(i),l=null;for(let t of a)if(l=e.match(t),l)break;if(!o||o.index===void 0||!s||s.index===void 0||!c||!l||l.index===void 0)return console.error(`patch: fablePlan: failed to find the model picker effort control`),null;let u=e.slice(l.index+l[1].length).match(RegExp(`^(?:(?!function )[^])*?if\\(${l[3].replace(/\$/g,`\\$`)}===[$\\w]+\\)\\{([$\\w]+)\\(null,[$\\w]+\\);return\\}`));if(!u)return console.error(`patch: fablePlan: failed to find the model picker apply call`),null;let d=JSON.stringify(`${Vl(t.planModel)} and ${Vl(t.execModel)} each use their own effort (set it on their rows)`),f=[[o.index,o.index+o[0].length,`${o[1]}if(${o[3]}==="${W}")return;${o[6]}`],[s.index,s.index+s[0].length,`${s[1]}${s[2]}==="${W}"?${c[1]}(${c[2]},{color:"subtle",children:[${d}]}):${s[3]}`],[l.index,l.index+l[0].length,`${l[1]}if(${l[3]}==="${W}"){${u[1]}(${l[3]},void 0);return}${l[4]}`]],p=e;for(let[e,t,n]of f.sort((e,t)=>t[0]-e[0]))p=p.slice(0,e)+n+p.slice(t);return V(e,p,f.map(e=>e[2]).join(` … `),o.index,o.index),p},Bl=e=>{let t=e.match(/(=[$\w]+\(\([$\w]+\)=>[$\w]+\.settings\.showClearContextOnPlanAccept\)\?\?)!1/);if(!t||t.index===void 0)return J(`patch: fablePlan: showClearContextOnPlanAccept gate not present — no-op`),e;let n=`${t[1]}!0`,r=e.slice(0,t.index)+n+e.slice(t.index+t[0].length);return V(e,r,n,t.index,t.index+t[0].length),r},Vl=e=>e.charAt(0).toUpperCase()+e.slice(1),Hl=RegExp(`\\["sonnet",(?:"[\\w[\\]]+",)*"${W}"[,\\]]`),Ul=(e,t)=>{if(Hl.test(e))return J(`patch: fablePlan: already applied — no-op`),e;if(t.planModel===t.execModel)return console.error(`patch: fablePlan: planModel and execModel are the same — nothing to pair`),null;let n=Pl(e,t);if(!n)return null;let r=n.file,i=jl(r);if(!i)return null;r=i;let a=Ml(r,t,n.resolver);if(!a)return null;r=a;let o=Nl(r,t);if(!o)return null;r=o;let s=Fl(r,t);if(!s)return null;r=s;let c=Il(r);if(!c)return null;r=c.file;let l=Rl(r,c.resolver,c.block);if(!l)return null;r=l;let u=zl(r,t);if(!u)return null;if(r=u,t.offerClearContextOnPlanAccept){let e=Bl(r);if(!e)return null;r=e}return r},Wl=(e,t)=>{let n=`return !0;`,r=e.slice(0,t)+n+e.slice(t);return V(e,r,n,t,t),r},Gl=e=>{let t=e.indexOf(`"allow_voice_mode"`);if(t!==-1){let n=Math.max(0,t-800),r=e.slice(n,t+400).match(/function ([$\w]+)\(\)\{return [$\w]+\(\)&&[$\w]+\(\)\}/);if(r&&r.index!==void 0){let t=n+r.index,i=e.indexOf(`{`,t);if(i!==-1)return e.startsWith(`return !0;`,i+1)?e:Wl(e,i+1)}let i=e.match(/name:"voice",description:"Toggle voice mode"[\s\S]{0,500}?get isHidden\(\)\{return![$\w]+\(\)\}/);if(i&&i.index!==void 0){let t=i[0].replace(/get isHidden\(\)\{return![$\w]+\(\)\}/,`get isHidden(){return!1}`);if(i[0]===t)return e;let n=e.slice(0,i.index)+t+e.slice(i.index+i[0].length);return V(e,n,t,i.index,i.index+i[0].length),n}}let n=e.match(/function [$\w]+\(\)\{return [$\w]+\("tengu_amber_quartz"/);if(n&&n.index!==void 0){let t=n.index+n[0].indexOf(`{`)+1,r=`return !0;`,i=e.slice(0,t)+r+e.slice(t);return V(e,i,r,t,t),i}let r=e.match(/function [$\w]+\(\)\{return![$\w]+\("tengu_amber_quartz_disabled"/);if(r&&r.index!==void 0){let t=r.index+r[0].indexOf(`{`)+1,n=`return !0;`,i=e.slice(0,t)+n+e.slice(t);return V(e,i,n,t,t),i}let i=e.match(/name:"voice",description:"Toggle voice mode"[\s\S]{0,500}?get isHidden\(\)\{return!([$\w]+)\(\)\}/);if(i&&i.index!==void 0){let t=i[1].replace(/[$]/g,`\\$`),n=RegExp(`function ${t}\\(\\)\\{`),r=e.match(n);if(r&&r.index!==void 0){let t=r.index+r[0].length,n=`return !0;`,i=e.slice(0,t)+n+e.slice(t);return V(e,i,n,t,t),i}}return console.error(`patch: voiceMode: failed to find tengu_amber_quartz gate`),null},Kl=e=>{let t=e.match(/if\([$\w]+\("tengu_sotto_voce",!1\)\)/);if(!t||t.index===void 0)return e;let n=`if(!0)`,r=e.slice(0,t.index)+n+e.slice(t.index+t[0].length);return V(e,r,n,t.index,t.index+t[0].length),r},ql=(e,t)=>{let n=Gl(e);return!n||t&&(n=Kl(n),!n)?null:n},Jl=e=>{for(let t of[/function [$\w]+\(\)\{return [$\w]+\("allow_channels"\)&&[$\w]+\("tengu_harbor",!1\)/,/function [$\w]+\(\)\{return [$\w]+\("tengu_harbor",!1\)/]){let n=e.match(t);if(!n||n.index===void 0)continue;let r=n.index+n[0].indexOf(`{`)+1,i=`return !0;`,a=e.slice(0,r)+i+e.slice(r);return V(e,a,i,r,r),a}return console.error(`patch: channelsMode: failed to find tengu_harbor gate`),null},Yl=e=>{let t=e.match(/function [$\w]+\(\)\{if\(![$\w]+\("tengu_harbor",!1\)\)return!0;/);if(!t||t.index===void 0)return e;let n=t.index+t[0].indexOf(`{`)+1,r=`return !1;`,i=e.slice(0,n)+r+e.slice(n);return V(e,i,r,n,n),i},Xl=e=>{let t=e.match(/reason:"server did not declare claude\/channel capability"\};?/);if(!t||t.index===void 0)return console.error(`patch: channelsMode: failed to find gateChannelServer capability check`),null;let n=t.index+t[0].length,r=`return{action:"register"};`,i=e.slice(0,n)+r+e.slice(n);return V(e,i,r,n,n),i},Zl=e=>{let t=e.match(/function [$\w]+\(\)\{return [$\w]+\("tengu_harbor_permissions",!1\)/);if(!t||t.index===void 0)return console.error(`patch: channelsMode: failed to find tengu_harbor_permissions gate`),null;let n=t.index+t[0].indexOf(`{`)+1,r=`return !0;`,i=e.slice(0,n)+r+e.slice(n);return V(e,i,r,n,n),i},Ql=e=>{let t=e.match(/"Channels \(experimental\) messages from ",([$\w]+),"[^"]*restart without "/);if(t&&t.index!==void 0){let n=`"Channels active \\xB7 messages from ",${t[1]}," \\xB7 restart without "`,r=t.index,i=r+t[0].length,a=e.slice(0,r)+n+e.slice(i);return V(e,a,n,r,i),a}let n=e.match(/Experimental[^"]*?inbound messages will be pushed into this session, this carries prompt injection risks\. Restart Claude Code without /);if(n&&n.index!==void 0){let t=`Channels active. Restart Claude Code without `,r=n.index,i=r+n[0].length,a=e.slice(0,r)+t+e.slice(i);return V(e,a,t,r,i),a}return console.error(`patch: channelsMode: failed to find ChannelsNotice warning text`),null},$l=e=>{let t=e.match(/if\(![$\w]+\.dev\)[$\w]+\.push\(\{[$\w]+:[$\w]+,[$\w]+:"server: entries need --dangerously-load-development-channels"\}\)/);if(!t||t.index===void 0)return console.error(`patch: channelsMode: failed to find server dev-flag warning block`),null;let n=t.index,r=n+t[0].length,i=e.slice(0,n)+``+e.slice(r);return V(e,i,``,n,r),i},eu=e=>{let t=Jl(e);return!t||(t=Yl(t),t=Xl(t),!t)||(t=Zl(t),!t)||(t=Ql(t),!t)||(t=$l(t),!t)?null:t},tu=e=>{if(/name:"clear-screen"/.test(e))return e;let t=e.match(/([,;{}])(function [$\w]+\(\)\{)([$\w]+\(\))\.get\(process\.stdout\)\?\.forceRedraw\(\)\}/)||e.match(/([,;{}])(function [$\w]+\(\)\{)([$\w]+)\.get\(process\.stdout\)\?\.forceRedraw\(\)\}/);if(!t||t.index===void 0)return J(`patch: clearScreen: failed to find forceRedraw function`),null;let n=`${t[1]}globalThis.__tweakccForceRedraw=()=>${t[3]}.get(process.stdout)?.forceRedraw();`+t[0].slice(1),r=e.slice(0,t.index)+n+e.slice(t.index+t[0].length);V(e,r,n,t.index,t.index+t[0].length);let i=nu(r);return i?(r=i,Xa(r,`,{type:"local",name:"clear-screen",description:"Clear screen without resetting conversation context",supportsNonInteractive:!1,load:()=>Promise.resolve().then(()=>({call:(H,$)=>{$.setMessages(m=>{globalThis.__tweakccHiddenUUIDs=new Set(m.map(x=>x.uuid?.slice(0,24)).filter(Boolean));return[...m]});process.stdout.write("\\x1b[2J\\x1b[H\\x1b[3J");globalThis.__tweakccForceRedraw?.();return{type:"skip"}}}))}`)||(J(`patch: clearScreen: failed to register slash command`),null)):(J(`patch: clearScreen: failed to patch render filter g97`),null)},nu=e=>{let t=e.match(/([,;{}])(function [$\w]+\(([$\w]+),[$\w]+\)\{)if\(\3\.type!=="user"\)return!0;if\(\3\.isMeta\)/);if(!t||t.index===void 0)return null;let n=t[1],r=t[2],i=`${n}${r}if(globalThis.__tweakccHiddenUUIDs?.has(${t[3]}.uuid?.slice(0,24)))return!1;`+t[0].slice(n.length+r.length),a=e.slice(0,t.index)+i+e.slice(t.index+t[0].length);return V(e,a,i,t.index,t.index+t[0].length),a},ru=[`red`,`blue`,`green`,`yellow`,`purple`,`orange`,`pink`,`cyan`],iu=/\.\.\.([$\w]+)&&\{standaloneAgentContext:\{name:\1\}\}/,au=e=>`,...(()=>{let __c=process.env.TWEAKCC_SESSION_COLOR;if(!__c||!${JSON.stringify(ru)}.includes(__c))return{};queueMicrotask(()=>{if(globalThis.__tweakccSaveAgentColor)globalThis.__tweakccSaveAgentColor(__c)});let __n=${e?`(typeof ${e}==="undefined"?"":${e}||"")`:`""`};return{standaloneAgentContext:{name:__n,color:__c}}})()`,ou=e=>{if(e.includes(`let __c=process.env.TWEAKCC_SESSION_COLOR;if(!__c`))return e;let t=au(e.match(iu)?.[1]??null),n=e.match(/,activeOverlays:new Set,fastMode:[$\w]+\([$\w]+\)/);if(!n||n.index===void 0)return console.error(`patch: sessionColor: failed to find the app state init`),null;let r=e.slice(0,n.index)+t+e.slice(n.index);return V(e,r,t,n.index,n.index+n[0].length),su(r)||(J(`patch: sessionColor: no saveAgentColor anchor; color applies without cross-session persistence`),r)},su=e=>{let t=RegExp(`([,;{}])(async function ([$\\w]+)\\(([$\\w]+),([$\\w]+),([$\\w]+)(?:,[$\\w]+)?\\)\\{let [$\\w]+=\\6\\?\\?[$\\w]+\\(\\4\\);try\\{await [$\\w]+\\([$\\w]+,\\{type:"agent-color",agentColor:\\5,sessionId:\\4\\}(?:,[$\\w]+)?\\)\\}catch\\([$\\w]+\\)\\{[\\s\\S]*?\\}if\\(\\4===([$\\w]+)\\(\\)\\))`),n=e.match(t);if(!n||n.index===void 0)return null;let r=n[1],i=n[2],a=`globalThis.__tweakccSaveAgentColor=(c)=>${n[3]}(${n[7]}(),c);`,o=`${r}${a}${i}`,s=e.slice(0,n.index)+o+e.slice(n.index+n[0].length);return V(e,s,a,n.index,n.index+n[0].length),s},cu=e=>{let t=e.match(/=2000,([$\w]+)="Read a file from the local filesystem\./);if(!t||t.index===void 0)return/=\(\+process\.env\.CLAUDE_CODE_READ_DEFAULT_LINES/.test(e)?e:(console.error(`patch: readDefaultLines: failed to find =2000 near Read tool prompt anchor`),null);let n=t.index,r=n+5,i=`=(+process.env.CLAUDE_CODE_READ_DEFAULT_LINES||2000)`,a=e.slice(0,n)+i+e.slice(r);return V(e,a,i,n,n+52),a},lu=e=>X(JSON.stringify(e)).replace(/`/g,"\\`").replace(/\$\{/g,"\\${"),uu=`"$_cc_bin"`,du=/\{mode:"embedded",command:process\.execPath,args:\[[^\]]*\],argv0:"rg"\}/,fu=`Search backend note (fff):`;``+fu;const pu=`most-relevant-first`;``+pu;const mu=(e,t)=>{let n=lu(t);if(e.includes(`ARGV0=\${t} ${n}`)||e.includes(`exec -a \${t} ${n}`))return e;if(e.split(uu).length-1==0)return console.error(`patch: swapRipgrepForFff: bash-search shadow anchor "$_cc_bin" not found`),null;let r=e.split(uu).join(n),i=`[[ ! -x $_cc_bin ]]`;return r.includes(i)&&(r=r.split(i).join(`[[ ! -x $_cc_bin || ! -x ${n} ]]`)),V(e,r,n,e.indexOf(uu),e.indexOf(uu)+10),r},hu=(e,t)=>{if(e.includes(`--fff-claude-bin=`))return e;let n=e.indexOf(`{mode:"embedded",command:process.execPath,args:["--no-config"],argv0:"rg"}`),r=n===-1?-1:n+74;if(n===-1){let t=e.match(du);if(!t||t.index===void 0)return J(`patch: swapRipgrepForFff: ripgrep resolver descriptor not found; skipping rg repoint`),e;n=t.index,r=t.index+t[0].length}let i=`{mode:"system",command:${X(JSON.stringify(t))},args:["--fff-claude-bin="+process.execPath]}`,a=e.slice(0,n)+i+e.slice(r);return V(e,a,i,n,r),a},gu=(e,t)=>{let n=e[t];for(t++;t<e.length;)if(e[t]===`\\`)t+=2;else if(e[t]===n)return t;else t++;return t},_u=(e,t)=>{let n=[{k:`tpl`}];for(let r=t;r<e.length;r++){let t=n[n.length-1],i=e[r];if(i===`\\`){r++;continue}if(t.k===`tpl`){if(i==="`"){if(n.pop(),n.length===0)return r;continue}i===`$`&&e[r+1]===`{`&&(n.push({k:`expr`,b:0}),r++);continue}if(i==="`"){n.push({k:`tpl`});continue}if(i===`"`||i===`'`){r=gu(e,r);continue}if(i===`{`){t.b++;continue}if(i===`}`){t.b===0?n.pop():t.b--;continue}}return-1},vu=(e,t,n,r,i)=>{if(e.includes(r))return e;if(n.includes("`"))return console.error(`patch: swapRipgrepForFff: ${i} guidance contains a backtick; skipping (would break template parity)`),e;let a=[],o=0;for(;;){let n=e.indexOf(t,o);if(n===-1)break;let r=_u(e,n);r===-1?console.error(`patch: swapRipgrepForFff: ${i} anchor at ${n} has no balanced closing backtick; skipping this site`):a.push(r),o=n+t.length}if(a.length===0)return J(`patch: swapRipgrepForFff: ${i} anchor not found; skipping`),e;let s=e;for(let e of a.sort((e,t)=>t-e))s=s.slice(0,e)+n+s.slice(e);return V(e,s,n,a[a.length-1],a[0]),s},yu=(e,t)=>{let n=mu(e,t);if(n===null)return null;let r=n;return r=hu(r,t),r=vu(r,`built on ripgrep`,`
1087
+ `),p=(typeof e.systemPrompt==`string`&&e.systemPrompt.trim()?e.systemPrompt:te).replace(/\{LEVELS\}/g,f).replace(/\{MAX\}/g,String(d)),m=X(JSON.stringify(p)),h=X(JSON.stringify(e.levels.map(e=>e.label)));return`function __tweakccRouterState(){return globalThis.__tweakccRouter||(globalThis.__tweakccRouter={level:void 0,effort:void 0,baseline:void 0,summary:void 0,prevUser:void 0,prevAssistant:void 0,pendingCompaction:void 0,pendingRewindCut:void 0,log:void 0,model:void 0,loaded:!1})}function __tweakccRouterSyncSelection(){var selected=null;try{selected=globalThis.__tweakccRouterSelectedModel?.()||null}catch(e){}var s=__tweakccRouterState();if(s.selectedModel!==selected){if(s.selectedModel!==void 0){s.generation=(s.generation||0)+1;s.routeAbort?.abort();s.level=void 0;s.effort=void 0;s.baseline=void 0;s.prevUser=void 0;s.prevAssistant=void 0;}s.selectedModel=selected;}return selected}globalThis.__tweakccRouterSyncSelection=__tweakccRouterSyncSelection;function __tweakccRouterTrunc(__s,__cap){if(typeof __s!=="string")return"";if(__s.length<=__cap)return __s;var __mk="\\n...["+(__s.length-__cap)+" chars omitted from the middle]...\\n";var __b=__cap-__mk.length;if(__b<0)__b=0;var __h=Math.floor(__b/2);return __s.slice(0,__h)+__mk+__s.slice(__s.length-(__b-__h))}function __tweakccRouterSid(){try{var __s=${u};return typeof __s==="string"&&__s?__s:null}catch(__e){return null}}function __tweakccRouterDir(){var __p=${r}("path"),__o=${r}("os");return __p.join(__o.homedir(),".tweakcc","router-state")}function __tweakccRouterFile(__sid){return ${r}("path").join(__tweakccRouterDir(),__sid+".json")}function __tweakccRouterLoad(__st){if(__st.loaded)return;__st.loaded=!0;try{var __sid=__tweakccRouterSid();if(!__sid)return;var __fs=${r}("fs"),__f=__tweakccRouterFile(__sid);if(__fs.existsSync(__f)){var __d=JSON.parse(__fs.readFileSync(__f,"utf8"));if(__d){if(typeof __d.summary==="string")__st.summary=__d.summary;if(Number.isInteger(__d.level))__st.level=__d.level;if(Array.isArray(__d.log))__st.log=__d.log}}__tweakccRouterPrune(__fs)}catch(__e){}}function __tweakccRouterSave(__st){try{var __sid=__tweakccRouterSid();if(!__sid)return;var __fs=${r}("fs"),__dir=__tweakccRouterDir(),__j=JSON.stringify({summary:__st.summary,level:__st.level,log:Array.isArray(__st.log)?__st.log:[],updatedAt:Date.now()});__fs.mkdir(__dir,{recursive:!0},function(){try{__fs.writeFile(__tweakccRouterFile(__sid),__j,function(){})}catch(__e){}})}catch(__e){}}function __tweakccRouterDrop(__st){try{var __sid=__tweakccRouterSid();if(!__sid)return;var __fs=${r}("fs"),__f=__tweakccRouterFile(__sid);if(__fs.existsSync(__f))__fs.unlinkSync(__f)}catch(__e){}}function __tweakccRouterPrune(__fs){try{var __dir=__tweakccRouterDir(),__ns=__fs.readdirSync(__dir),__now=Date.now(),__ttl=12096e5;for(var __i=0;__i<__ns.length;__i++){try{var __ff=${r}("path").join(__dir,__ns[__i]);if(__now-__fs.statSync(__ff).mtimeMs>__ttl)__fs.unlinkSync(__ff)}catch(__e){}}}catch(__e){}}function __tweakccRouterReadResult(__r){try{if(__r==null)return null;if(typeof __r==="object"&&typeof __r.level==="number")return{level:__r.level,summary:typeof __r.summary==="string"?__r.summary:void 0};var __x;if(typeof __r==="string")__x=__r;else{var __c=(__r.message&&__r.message.content)||__r.content;__x=(Array.isArray(__c)&&__c[0]&&typeof __c[0].text==="string")?__c[0].text:(typeof __r.text==="string"?__r.text:"")}if(!__x)return null;try{var __o=JSON.parse(__x);if(__o&&typeof __o.level==="number")return{level:__o.level,summary:typeof __o.summary==="string"?__o.summary:void 0}}catch(__e){}var __m=__x.match(/-?\\d+/);if(__m)return{level:parseInt(__m[0],10),summary:void 0};return null}catch(__e){return null}}async function __tweakccRouterClassifyLlm(__input,__max){var __schema={type:"object",properties:{level:{type:"integer",description:"effort level, 0 (least) to "+__max+" (most)"},summary:{type:"string",description:"the updated running TL;DR summary"}},required:["level","summary"],additionalProperties:false};var __sys=${m};var __ac=new AbortController();__tweakccRouterState().routeAbort=__ac;var __to=setTimeout(function(){try{__ac.abort()}catch(__e){}},${l});try{var __res=await ${t.gB}({systemPrompt:[__sys],userPrompt:__input,outputFormat:{type:"json_schema",schema:__schema},signal:__ac.signal,options:{querySource:"route_complexity",agents:[],isNonInteractiveSession:!1,hasAppendSystemPrompt:!1,mcpTools:[],agentContext:${t.km}()}});return __tweakccRouterReadResult(__res)}finally{clearTimeout(__to)}}async function ${ul}(__text,__mode,__model){try{var __selected=__tweakccRouterSyncSelection();if(!__selected)return;var __ef=${a},__pin=${o},__max=__ef.length-1,__labels=${h};if(!__ef||!__ef.length)return;var __st=__tweakccRouterState();if(typeof __text!=="string")return;var __tr=__text.replace(/^\\s+/,"");if(/^\\/clear(\\s|$)/.test(__tr)){__st.level=void 0;__st.effort=void 0;__st.baseline=void 0;__st.summary=void 0;__st.prevUser=void 0;__st.prevAssistant=void 0;__st.pendingCompaction=void 0;__st.pendingRewindCut=void 0;__st.log=void 0;__st.model=void 0;__tweakccRouterDrop(__st);return}if(__tr.charAt(0)==="/")return;if(__mode!==void 0&&__mode!=="prompt")return;__tweakccRouterLoad(__st);if(__st.pendingRewindCut!=null){var __rt=__st.pendingRewindCut;__st.pendingRewindCut=void 0;var __rms=typeof __rt==="number"?__rt:Date.parse(__rt),__ci=-1;if(__rms===__rms&&Array.isArray(__st.log))for(var __i=__st.log.length-1;__i>=0;__i--){if(__st.log[__i]&&__st.log[__i].ts<=__rms){__ci=__i;break}}if(__ci>=0){var __pe=__st.log[__ci];__st.summary=__pe.summary;__st.level=__pe.level;__st.log=__st.log.slice(0,__ci)}else{__st.summary=void 0;__st.level=void 0}__st.prevUser=void 0;__st.prevAssistant=void 0;__st.pendingCompaction=void 0;if(process.env.TWEAKCC_ROUTER_DEBUG)try{process.stderr.write("[tweakcc-router] rewind cut to "+__rt+" ("+(__ci>=0?"restored":"reset")+")\\n")}catch(__e){}}if(typeof __st.pendingCompaction==="string"){__st.summary=__st.pendingCompaction;__st.prevUser=void 0;__st.prevAssistant=void 0;__st.level=void 0;__st.pendingCompaction=void 0}if(!Array.isArray(__st.log))__st.log=[];__st.log.push({ts:Date.now(),summary:typeof __st.summary==="string"?__st.summary:"",level:__st.level});if(__st.log.length>${dl})__st.log.splice(0,__st.log.length-${dl});var __plv=__st.level,__pmod=__st.model;var __mch=__pmod&&__model&&__pmod!==__model;var __ctx="model in use: "+(__model||"unknown")+(__mch?" (switched from "+__pmod+" this turn)":"")+"\\nlevel you assigned last turn: "+(__plv!==void 0?__plv+" ("+(__labels[__plv]||"?")+")":"none yet - this is the first routed turn");var __nm=__tweakccRouterTrunc(__text,${s});var __pu=__tweakccRouterTrunc(__st.prevUser,${s});var __pa=__tweakccRouterTrunc(typeof __st.prevAssistant==="string"?__st.prevAssistant:"",${c});var __input="<summary>\\n"+(__st.summary||"(none - first turn of the session)")+"\\n</summary>\\n<context>\\n"+__ctx+"\\n</context>\\n<recent_exchange>\\nuser: "+(__pu||"(none)")+"\\nassistant: "+(__pa||"(none)")+"\\n</recent_exchange>\\n<new_message>\\n"+__nm+"\\n</new_message>";var __generation=__st.generation,__res=null;try{__res=await __tweakccRouterClassifyLlm(__input,__max)}catch(__e){__res=null}if(__tweakccRouterSyncSelection()!==__selected||__st.generation!==__generation)return;__st.routeAbort=null;var __hi=__ef.indexOf("high");if(__hi<0)__hi=Math.min(2,__max);var __lv,__sm=__st.summary;if(__res&&typeof __res.summary==="string"&&__res.summary)__sm=__res.summary;if(__res&&Number.isInteger(__res.level))__lv=__res.level;else __lv=(__st.level!==void 0?__st.level:__hi);if(__pin&&__st.level!==void 0&&__lv<__st.level)__lv=__st.level;if(__lv<0)__lv=0;if(__lv>__max)__lv=__max;__st.level=__lv;__st.effort=__ef[__lv];__st.summary=__sm;__st.prevUser=__text;__st.model=__model;__tweakccRouterSave(__st);if(process.env.TWEAKCC_ROUTER_DEBUG)try{process.stderr.write("[tweakcc-router] level="+__lv+" effort="+__st.effort+" chars="+__text.length+"\\n")}catch(__e){}}catch(__e){}}`},pl=(e,t,n,r)=>{let i=/(function [$\w]+\(([$\w]+),([$\w]+),\{honorLaunchPin:[$\w]+=!0\}=\{\}\)\{if\(![$\w]+\(\2\)\)return;let [$\w]+=[$\w]+&&[$\w]+\(\2\),[$\w]+=[$\w]+\(\2\),([$\w]+)=[$\w]+\(\);)if\(\4===null&&![$\w]+\)return;return ([$\w]+)\(\4\?\?\([$\w]+\?[$\w]+:void 0\)\?\?\3\?\?[$\w]+,\2\)\}/,a=/(function [$\w]+\(([$\w]+),([$\w]+)\)\{if\(![$\w]+\(\2\)\)return;let [$\w]+=[$\w]+\(\2\),[$\w]+=[$\w]+\(\2\),([$\w]+)=[$\w]+\(\);)if\(\4===null&&![$\w]+\)return;return ([$\w]+)\(\4\?\?\([$\w]+\?[$\w]+:void 0\)\?\?\3\?\?[$\w]+,\2\)\}/,o=/(function [$\w]+\(([$\w]+),([$\w]+)\)\{if\(![$\w]+\(\2\)\)return;let [$\w]+=[$\w]+\(\2\),[$\w]+=[$\w]+\(\2\),([$\w]+)=[$\w]+\(\);)if\(\4===null&&![$\w]+\)return;let ([$\w]+)=\4\?\?\([$\w]+\?[$\w]+:void 0\)\?\?\3\?\?[$\w]+;(?:if\(typeof \5==="string"&&[$\w]+\(\5\)\)\5=[$\w]+\(\5,\2\);)?if\(\5==="max"&&!([$\w]+)\(\2\)\)\5="high";if\(\5==="xhigh"&&!([$\w]+)\(\2\)\)\5="high";return \5\}/,s=/(function [$\w]+\(([$\w]+),([$\w]+)\)\{if\(![$\w]+\(\2\)\)return;let [$\w]+=[$\w]+\(\2\),[$\w]+=[$\w]+\(\2\),([$\w]+)=[$\w]+\(\);)if\(\4===null\)return [$\w]+\?[$\w]+:void 0;let ([$\w]+)=\4\?\?\([$\w]+\?[$\w]+:void 0\)\?\?\3\?\?[$\w]+;if\(\5==="max"&&!([$\w]+)\(\2\)\)return"high";if\(\5==="xhigh"&&!([$\w]+)\(\2\)\)return"high";return \5\}/,c=e.match(/(function [$\w]+\(([$\w]+),([$\w]+),\{turnEffort:([$\w]+),hookEffortValue:[$\w]+,carriedEffort:[$\w]+=[$\w]+\(\2\)\}=\{\}\)\{if\(![$\w]+\(\2\)\)return;let [$\w]+=[$\w]+\(\2\)!==null;if\([$\w]+!==void 0\)\{let [$\w]+=typeof [$\w]+==="number"&&[$\w]+\?[$\w]+\([$\w]+\):[$\w]+;return [$\w]+\([$\w]+,\2\)\}let ([$\w]+)=[$\w]+\(\);)if\(\5===null&&![$\w]+\)return;let [$\w]+=[$\w]+\(\2,[$\w]+\),([$\w]+)=\5\?\?\(\5===null\?[$\w]+:void 0\)\?\?\4\?\?\3\?\?[$\w]+;if\(typeof \6==="number"&&[$\w]+\)\6=[$\w]+\(\6\);return ([$\w]+)\(\6,\2\)\}/)||e.match(/(function [$\w]+\(([$\w]+),([$\w]+),\{turnEffort:([$\w]+),hookEffortValue:[$\w]+\}=\{\}\)\{if\(![$\w]+\(\2\)\)return;let [$\w]+=[$\w]+\(\2\)!==null;if\([$\w]+!==void 0\)\{let [$\w]+=typeof [$\w]+==="number"&&[$\w]+\?[$\w]+\([$\w]+\):[$\w]+;return [$\w]+\([$\w]+,\2\)\}let ([$\w]+)=[$\w]+\(\);)if\(\5===null&&![$\w]+\)return;let [$\w]+=[$\w]+\(\2\),([$\w]+)=\5\?\?\(\5===null\?[$\w]+:void 0\)\?\?\4\?\?\3\?\?[$\w]+;if\(typeof \6==="number"&&[$\w]+\)\6=[$\w]+\(\6\);return ([$\w]+)\(\6,\2\)\}/)||e.match(/(function [$\w]+\(([$\w]+),([$\w]+),\{honorLaunchPin:[$\w]+=!0,turnEffort:([$\w]+),hookEffortValue:[$\w]+\}=\{\}\)\{if\(![$\w]+\(\2\)\)return;let [$\w]+=[$\w]+\(\2\)!==null;if\([$\w]+!==void 0\)\{let [$\w]+=typeof [$\w]+==="number"&&[$\w]+\?[$\w]+\([$\w]+\):[$\w]+;return [$\w]+\([$\w]+,\2\)\}let [$\w]+=[$\w]+&&[$\w]+\(\2\),[$\w]+=[$\w]+\(\2\),([$\w]+)=[$\w]+\(\);)if\(\5===null&&![$\w]+&&![$\w]+\)return;let ([$\w]+)=\5\?\?\(\5===null\?[$\w]+:void 0\)\?\?\4\?\?\([$\w]+\?[$\w]+:void 0\)\?\?\3\?\?[$\w]+;if\(typeof \6==="number"&&[$\w]+\)\6=[$\w]+\(\6\);return ([$\w]+)\(\6,\2\)\}/)||e.match(/(function [$\w]+\(([$\w]+),([$\w]+),\{honorLaunchPin:[$\w]+=!0,turnEffort:([$\w]+)\}=\{\}\)\{if\(![$\w]+\(\2\)\)return;let [$\w]+=[$\w]+&&[$\w]+\(\2\),[$\w]+=[$\w]+\(\2\),([$\w]+)=[$\w]+\(\),[$\w]+=[$\w]+\(\2\)!==null;)if\(\5===null&&![$\w]+&&![$\w]+\)return;let ([$\w]+)=\5\?\?\(\5===null\?[$\w]+:void 0\)\?\?\4\?\?\([$\w]+\?[$\w]+:void 0\)\?\?\3\?\?[$\w]+;if\(typeof \6==="number"&&[$\w]+\)\6=[$\w]+\(\6\);return ([$\w]+)\(\6,\2\)\}/),l=c?null:e.match(i)||e.match(a),u=c||l||e.match(o)||e.match(s);if(!u||u.index===void 0)return e.includes(`CLAUDE_CODE_EFFORT_LEVEL`)?(console.error(`patch: complexityRouter: failed to find effort resolver (XQ shape)`),null):(J(`patch: complexityRouter: effort resolver absent in this CC build - no-op`),e);let d=u[1],f=u[2],p=u[3],m=c?c[4]:null,h=c?c[5]:u[4],g=u[6],_=u[7],v=c?c[7]:l?.[5];if(v){let t=v.replace(/[$]/g,`\\$`),n=RegExp(`function ${t}\\(([$\\w]+),([$\\w]+)\\)\\{let ([$\\w]+)=\\1;(?:if\\(typeof \\3==="string"&&[$\\w]+\\(\\3\\)\\)\\3=[$\\w]+\\(\\3,\\2\\);)?if\\(\\3==="max"&&!([$\\w]+)\\(\\2\\)\\)\\3="high";if\\(\\3==="xhigh"&&!([$\\w]+)\\(\\2\\)\\)\\3="high";return \\3\\}`),r=e.match(n);if(!r)return console.error(`patch: complexityRouter: failed to find effort normalizer (support guards)`),null;g=r[4],_=r[5]}let y=`var __request=arguments[3];if(!__request||(!__request.agentId&&(__request.querySource?.startsWith("repl_main_thread")||__request.querySource==="sdk"))){var __selected=__tweakccRouterSyncSelection();var __st=__tweakccRouterState();if(__selected===${f}&&__st.baseline===void 0)__st.baseline=(${p}==null?null:${p});let __twkRE=__selected===${f}?__st.effort:void 0;if(__twkRE&&${h}==null${m?`&&${m}==null`:``}&&(${p}==null||${p}===__st.baseline)){if(__twkRE==="max"&&!${g}(${f}))__twkRE="high";if(__twkRE==="xhigh"&&!${_}(${f}))__twkRE="high";globalThis.__tweakccRouterResolution={effort:__twkRE};return __twkRE}}`,b=(t.provider===`jev`?cl:fl)(t,n,r,Xc(e)?`process.getBuiltinModule`:cd(e));Xc(e)&&t.provider!==`jev`&&(b+=`globalThis.__tweakccRouterState=__tweakccRouterState;globalThis.__tweakccRouterClassify=__tweakccRouterClassify;`);let x=b+d+y+u[0].slice(d.length),S=u.index,C=S+u[0].length,w=e.slice(0,S)+x+e.slice(C);return V(e,w,x,S,C),w},ml=(e,t)=>{let n=e.match(/if\(([$\w]+)===null&&([$\w]+)!=="prompt"\)throw Error\(`Mode: \$\{\2\} requires a string input\.`\);/);if(!n||n.index===void 0)return e.includes(`requires a string input.`)?(console.error(`patch: complexityRouter: failed to find submit handler throw-guard`),null):(J(`patch: complexityRouter: submit handler absent in this CC build - no-op`),e);let r=n[1],i=n[2],a=[...e.slice(Math.max(0,n.index-4e3),n.index).matchAll(/([$\w]+)\.options\.mainLoopModel/g)],o=a[a.length-1],s=o?`${o[1]}.options.mainLoopModel`:`void 0`,c=o?`${o[1]}.messages`:`void 0`,l=o?`${o[1]}.session?.id`:`void 0`,u=`await ${Xc(e)?`globalThis.${ul}`:ul}(${`${r},${i},${s}${t?`,${c},${l}`:``}`});`,d=t?`try{${o?`if(!${o[1]}.agentId)`:``}{${o?`${o[1]}.__tweakccRouterTurn=`:``}${u}}}catch(__tweakccRouterError){}`:u,f=n.index+n[0].length,p=e.slice(0,f)+d+e.slice(f);return V(e,p,d,f,f),p},hl=e=>{if(e.includes(`function __tweakccRouterObserve(`)){let t=e.match(/let [$\w]+;if\(([$\w]+)\.gates\.emitToolUseSummaries&&[$\w]+\.length>0&&!([$\w]+)\.abortController\.signal\.aborted&&!\2\.agentId\)\{let [$\w]+=([$\w]+)\.at\(-1\)/);if(t?.index!==void 0){let n=e.slice(t.index,t.index+2e3).match(/([$\w]+)\.find\(\([$\w]+\)=>[$\w]+\.type==="user"&&Array\.isArray/),r=Xc(e)?`globalThis.__tweakccRouterObserve`:`__tweakccRouterObserve`,i=`try{if(!${t[2]}.agentId)${r}(${t[3]}${n?`.concat(${n[1]})`:``},${t[2]}.session?.id,${t[2]}.__tweakccRouterTurn);}catch(__tweakccRouterError){}`;return e.slice(0,t.index)+i+e.slice(t.index)}return J(`patch: complexityRouter: round capture absent - transcript refresh occurs at submit`),e}let t=e.match(/([$\w]+)=([$\w]+)\.at\(-1\),([$\w]+);if\(\1\)\{let ([$\w]+)=\1\.message\.content\.filter\(\(([$\w]+)\)=>\5\.type==="text"\);if\(\4\.length>0\)\{let ([$\w]+)=\4\.at\(-1\);if\(\6&&"text"in \6\)\3=\6\.text\}\}/);if(!t||t.index===void 0)return J(`patch: complexityRouter: prev-assistant capture site absent - router runs without prior-assistant context`),e;let n=`try{var __twr=globalThis.__tweakccRouter;if(__twr&&globalThis.__tweakccRouterSyncSelection?.())__twr.prevAssistant=${t[3]}}catch(__e){}`,r=t.index+t[0].length,i=e.slice(0,r)+n+e.slice(r);return V(e,i,n,r,r),i},gl=e=>{let t=e.match(/return\{ok:!0,summaryText:([$\w]+),/);if(!t||t.index===void 0)return J(`patch: complexityRouter: compaction summary site absent - no compaction reseed`),e;let n=t[1],r=`return globalThis.__tweakccRouter&&((typeof globalThis.__tweakccRouterInvalidate==="function"&&globalThis.__tweakccRouterInvalidate(globalThis.__tweakccRouter),globalThis.__tweakccRouter.pendingCompaction=${n})),{ok:!0,summaryText:${n},`,i=t.index,a=i+t[0].length,o=e.slice(0,i)+r+e.slice(a);return V(e,o,r,i,a),o},_l=e=>{let t=e.match(/onRestoreMessage:\(([$\w]+)\)=>([$\w]+(?:\.[$\w]+)?)\(\1,"message_selector"\)/);if(!t||t.index===void 0)return J(`patch: complexityRouter: restore-conversation site absent - no rewind cut`),e;let n=t[1],r=`onRestoreMessage:(${n})=>(globalThis.__tweakccRouter&&((typeof globalThis.__tweakccRouterInvalidate==="function"&&globalThis.__tweakccRouterInvalidate(globalThis.__tweakccRouter),globalThis.__tweakccRouter.pendingRewindCut=${n}&&${n}.timestamp)),${t[2]}(${n},"message_selector"))`,i=t.index,a=i+t[0].length,o=e.slice(0,i)+r+e.slice(a);return V(e,o,r,i,a),o},vl=e=>{let t=e.match(/function ([$\w]+)\(\)\{return\{agentType:"main",agentId:[$\w]+\(\)\}\}/);if(!t)return null;let n=e.match(/async function ([$\w]+)\(([$\w]+)\)\{(let ([$\w]+)=)([$\w]+\([$\w]+\(\)\)),[\s\S]{0,600}?return await [$\w]+\(\2,[$\w]+\[[$\w]+\],[$\w]+\[[$\w]+\+1\]\)/);if(n){let[e,r,i,a,,o]=n,s=`async function ${r}(${i}){${a}${o},`;return{gB:r,km:t[1],gBIndex:n.index,kmIndex:t.index,gBSource:e,gBOptions:`${i}.options`,gBPatched:`async function ${r}(${i}){${a}${i}.options.querySource==="route_complexity"?"claude-haiku-4-5":${o},`+e.slice(s.length)}}let r=e.match(/async function ([$\w]+)\(\{systemPrompt:[$\w]+=[$\w]+\(\[\]\),userPrompt:[$\w]+,outputFormat:[$\w]+,signal:[$\w]+,options:([$\w]+)\}\)\{return\(await [$\w]+\([\s\S]{0,500}?,model:[$\w]+\(\),enablePromptCaching:/);return r?{gB:r[1],km:t[1],gBIndex:r.index,kmIndex:t.index,gBSource:r[0],gBOptions:r[2],gBPatched:r[0].replace(/model:([$\w]+)\(\),enablePromptCaching:$/,`model:${r[2]}.querySource==="route_complexity"?"claude-haiku-4-5":$1(),enablePromptCaching:`)}:null},yl=e=>{let t=e.match(/getSessionId\(\)\{return ([$\w]+)\(\)\}/);return t?t[1]:null},bl=(e,t)=>{if(e.includes(ul))return J(`patch: complexityRouter: already patched - skipping`),e;let n=vl(e);if(!n)return console.warn(`patch: complexityRouter: gB/km side-call helpers not found in this CC build - cannot maintain routing context; skipping the router`),e;let r=yl(e);r||J(`patch: complexityRouter: session-id accessor not found - cross-session summary persistence disabled (in-memory only)`);let i=Zc(e,n);if(!i)return null;i.file=i.file.replace(n.gBSource,()=>n.gBPatched);let a=pl(i.file,t,i.helpers,r);if(a===null)return null;if(a===i.file)return e;let o=ml(a,t.provider===`jev`);if(o===null)return null;if(o===a)return J(`patch: complexityRouter: submit handler absent - reverting the resolver wrap too (all-or-nothing no-op)`),e;let s=hl(o);return ll(_l(t.provider===`jev`?s:gl(s)))},xl=[[`opusrouter`,`claude-opus-5-5`,`Opus 5.5 + Effort Router`],[`fablerouter`,`claude-fable-5-1`,`Fable 5.1 + Effort Router`]],Sl=e=>`(${e}==="opusrouter"||${e}==="fablerouter")`,Cl=(e,t,n,r)=>{let i=e.match(t);if(!i||i.index===void 0)return console.error(`patch: complexityRouterModels: failed to find ${r}`),null;let a=X(n(i)),o=e.slice(0,i.index)+a+e.slice(i.index+i[0].length);return V(e,o,a,i.index,i.index+i[0].length),o},wl=e=>{let t=Cl(e,/(=[$\w]+\(\(([$\w]+)\)=>\{let ([$\w]+)=[$\w]+\(\),([$\w]+)=[$\w]+\.find\(\(([$\w]+)\)=>\5\.value===\3\);if\(\4===void 0\|\|\4\.disabled===!0\)return;)/,e=>`${e[0]}if(${Sl(e[3])})return;`,`picker effort adjustment`);if(t===null)return null;let n=/(([$\w]+)!==void 0&&![$\w]+&&[$\w]+\([$\w]+,\{marginBottom:1,flexDirection:"column",children:)/,r=t.match(/([$\w]+)\(([$\w]+),\{color:"subtle",children:\[[$\w]+\([$\w]+,\{effort:void 0\}\)," Effort not supported"/);if(!r||(t=Cl(t,n,e=>`${e[0]}${Sl(e[2])}?${r[1]}(${r[2]},{color:"subtle",children:"Automatic effort"+(globalThis.__tweakccRouterState?.()?.effort?" · currently "+globalThis.__tweakccRouterState().effort:"")}):`,`picker effort display`),t===null))return null;let i=[/(function ([$\w]+)\(([$\w]+)\)\{)((?:if\(\3==="fableplan"\)\{[$\w]+\(\3,void 0\);return\})?let ([$\w]+)=[$\w]+\(\3\),(?:[$\w]+=[$\w]+\(\),)*[$\w]+=\5&&([$\w]+)!==void 0\?[$\w]+\(\6,\5\):\6;[$\w]+\("tengu_model_command_menu_effort")/,/(function ([$\w]+)\(([$\w]+)\)\{)((?:if\(\3==="fableplan"\)\{[$\w]+\(\3,void 0\);return\})?let ([$\w]+)=[$\w]+\(\3\),(?:[$\w]+=[$\w]+\(\),)*[$\w]+=\5&&([$\w]+)!==void 0&&\6!=="ultracode"\?[$\w]+\(\6,\5\):\6;[$\w]+\("tengu_model_command_menu_effort")/],a=i.find(e=>e.test(t))??i[i.length-1];return Cl(t,a,e=>{let n=t.slice(e.index+e[0].length).match(RegExp(`^(?:(?!function )[^])*?if\\(${e[3].replace(/\$/g,`\\$`)}===[$\\w]+\\)\\{([$\\w]+)\\(null,[$\\w]+\\);return\\}`));if(!n)throw Error(`Router picker apply call is missing`);return`${e[1]}if(${Sl(e[3])}){${n[1]}(${e[3]},void 0);return}${e[4]}`},`picker model commit`)},Tl=e=>{if(e.includes(`globalThis.__tweakccRouterSelectedModel=function(`))return e;if(!e.includes(`"claude-opus-5-5"`))return J(`patch: complexityRouterModels: verified models unavailable — no-op`),e;let t=e.match(/function ([$\w]+)\(([$\w]+)\)\{let [$\w]+=\2\.trim\(\)[\s\S]{0,120}?if\([$\w]+\(([$\w]+)\)\)switch\(\3\)\{/);if(!t)return null;let n=xl.map(([e,t])=>`case"${e}":return"${t}";`).join(``),r=Cl(e,/(\[(?:"[\w[\]]+",)*"opusplan"(?:,"[\w[\]]+")*\])(\s*,\s*[$\w]+\s*=\s*\["sonnet","opus","haiku")/,e=>`${e[1].slice(0,-1)},"opusrouter","fablerouter"]${e[2]}`,`model alias whitelist`);if(r===null)return null;let i=r.indexOf(t[0]),a=r.replace(t[0],t[0]+n);if(V(r,a,t[0]+n,i,i+t[0].length),r=a,r=Cl(r,/(function [$\w]+\([$\w]+\)\{let [$\w]+=[$\w]+\(\);switch\([$\w]+\)\{case"opus":return [$\w]+\([$\w]+\);)/,e=>e[0]+n,`builtin model defaults`),r===null||(r=Cl(r,/function ([$\w]+)\(\)\{let ([$\w]+)=[$\w]+\(\);if\(\2!==void 0\)return [$\w]+\(\2,"explicit"\);return [$\w]+\(\)\}/,e=>`globalThis.__tweakccRouterSelectedModel=function(){let __tweakccSelected=${e[1]}();return __tweakccSelected==="opusrouter"?"claude-opus-5-5":__tweakccSelected==="fablerouter"?"claude-fable-5-1":null};${e[0]}`,`live selected model getter`),r===null))return null;for(let e of[`overrideMainLoopModel`,`replaceInitialMainLoopModel`])if(r=Cl(r,RegExp(`(${e}\\(([$\\w]+)\\)\\{this\\.#[$\\w]+=\\2)\\}`),e=>`${e[1]};queueMicrotask(()=>globalThis.__tweakccRouterSyncSelection?.())}`,`selected model setter`),r===null)return null;if(r=Cl(r,/function ([$\w]+)\(([$\w]+)=!1,([$\w]+)=null\)\{let ([$\w]+)=new Set,([$\w]+)=[$\w]+\(\2,\3\)\.filter\(\(([$\w]+)\)=>\{if\(\6\.value===null\)return!0;if\(\4\.has\(\6\.value\)\)/,e=>`function ${e[1]}(${e[2]}=!1,${e[3]}=null){let rows=__tweakccRouterBasePicker(${e[2]},${e[3]});let clean=rows.filter(row=>!${Sl(`row.value`)});for(let [alias,model,label] of ${JSON.stringify(xl)}){let index=clean.findIndex(row=>typeof row.value==="string"&&row.disabled!==!0&&${t[1]}(row.value)===model);if(index!==-1)clean.splice(index+1,0,{...clean[index],value:alias,label,description:"Automatic effort selected for each message"})}return clean}function __tweakccRouterBasePicker`+e[0].slice(`function ${e[1]}`.length),`filtered model picker`),r===null)return null;try{return wl(r)}catch{return console.error(`patch: complexityRouterModels: failed to find picker apply`),null}},W=`fableplan`,El=`globalThis.__tweakccFablePlanModelFor`,Dl=`__tweakccPermissionMode`,Ol=`/*@@TWEAKCC_MODULE:`,kl=(e,t)=>{let n=e.lastIndexOf(Ol,t);if(n===-1)return[0,e.length];let r=e.indexOf(Ol,n+1);return[n,r===-1?e.length:r]},Al=(e,t,n)=>{let[r,i]=kl(e,t),a=e.slice(r,i),o=q(n);return RegExp(`(?:^|[^$\\w.])function ${o}\\(`).test(a)?!0:RegExp(`import\\{(?:[^}]*,)?${o}(?:,[^}]*)?\\}from"`).test(a)},jl=e=>{let t=e.match(/(\[(?:"[\w[\]]+",)*"opusplan"(?:,"[\w[\]]+")*\])(\s*,\s*[$\w]+\s*=\s*\["sonnet","opus","haiku")/);if(t&&t[1].includes(`"${W}"`))return J(`patch: fablePlan: alias already in the whitelist — skipping`),e;if(!t||t.index===void 0)return console.error(`patch: fablePlan: failed to find the model alias whitelist`),null;let n=t[1].slice(0,-1)+`,"${W}"]`+t[2],r=e.slice(0,t.index)+n+e.slice(t.index+t[0].length);return V(e,r,n,t.index,t.index+t[0].length),r},Ml=(e,t,n)=>{let r=e.match(/(function ([$\w]+)\(([$\w]+)\)\{let\{permissionMode:([$\w]+),mainLoopModel:([$\w]+),exceeds200kTokens:([$\w]+)=!1\}=\3;)(if\(\4!=="plan"\)return\{model:\5,clampWarning:null\};)(let [$\w]+=([$\w]+)\(\),)/),i=r?null:e.match(/(function ([$\w]+)\(([$\w]+)\)\{let\{permissionMode:([$\w]+),mainLoopModel:([$\w]+),exceeds200kTokens:([$\w]+)=!1\}=\3;)(if\(\4!=="plan"\)return \5;)(let [$\w]+=([$\w]+)\(\),)/),a=r||i?null:e.match(/(function ([$\w]+)\(([$\w]+)\)\{let\{permissionMode:([$\w]+),mainLoopModel:([$\w]+),exceeds200kTokens:([$\w]+)=!1\}=\3,([$\w]+)=([$\w]+)\(\);)/),o=r??i??a;if(!o||o.index===void 0)return console.error(`patch: fablePlan: failed to find the plan-mode model resolver (uM shape)`),null;let s=o[4],c=r??i,l=c?o[9]:o[8];if(!Al(e,o.index,n))return console.error(`patch: fablePlan: ${n} is not in scope at the plan-mode model resolver`),null;let u=`${n}("${t.planModel}")`,d=`${El}=(m)=>m==="plan"&&${l}()==="${W}"?${u}:void 0;`,f=c?`${d}${o[1]}${o[7]}if(${l}()==="${W}")return${r?`{model:${u},clampWarning:null}`:` ${u}`};${o[8]}`:`${d}${o[1]}if(${s}==="plan"&&${o[7]}==="${W}")return ${u};`,p=e.slice(0,o.index)+f+e.slice(o.index+o[0].length);return V(e,p,f,o.index,o.index+o[0].length),p},Nl=(e,t)=>{let n=RegExp(`(switch\\(([$\\w]+)\\)\\{(?:case"[\\w]+":return [$\\w]+\\([$\\w]+\\);)*?case"${t.execModel}":return ([$\\w]+)\\(([$\\w]+)\\);)`),r=e.match(n);if(!r||r.index===void 0)return console.error(`patch: fablePlan: failed to find the builtin-default alias switch`),null;let i=`${r[1]}case"${W}":return ${r[3]}(${r[4]});`,a=e.slice(0,r.index)+i+e.slice(r.index+r[0].length);return V(e,a,i,r.index,r.index+r[0].length),a},Pl=(e,t)=>{let n=RegExp(`function ([$\\w]+)\\(([$\\w]+)\\)\\{let [$\\w]+=\\2\\.trim\\(\\)[\\s\\S]{0,120}?if\\([$\\w]+\\(([$\\w]+)\\)\\)switch\\(\\3\\)\\{([\\s\\S]{0,600}?case"${t.execModel}":(return [^;]+;))`),r=e.match(n);if(!r||r.index===void 0)return console.error(`patch: fablePlan: failed to find the alias-to-model resolver (as shape)`),null;let i=r[1],a=r[0],o=`${a}case"${W}":${r[5]}`,s=e.slice(0,r.index)+o+e.slice(r.index+a.length);return V(e,s,o,r.index,r.index+a.length),{file:s,resolver:i}},Fl=(e,t)=>{let n=/(function [$\w]+\(([$\w]+),([$\w]+)\)\{let ([$\w]+)=[$\w]+\(\2\),([$\w]+)=[$\w]+\.ANTHROPIC_CUSTOM_MODEL_OPTION;)/,r=e.match(/(function [$\w]+\(([$\w]+),([$\w]+)\)\{let ([$\w]+)=[$\w]+\(\2,\3\),([$\w]+)=\4\?\?[$\w]+\(\2\),[^;]*;)(?=(?:(?!function )[^])*?[$\w]+\.ANTHROPIC_CUSTOM_MODEL_OPTION;)/)??e.match(/(function [$\w]+\(([$\w]+),([$\w]+)\)\{let ([$\w]+)=[$\w]+\(\2,\3\),([$\w]+)=\4\?\?[$\w]+\(\2\),([$\w]+)=[$\w]+\.ANTHROPIC_CUSTOM_MODEL_OPTION;)/),i=r??e.match(n);if(!i||i.index===void 0)return console.error(`patch: fablePlan: failed to find the model picker options`),null;let a=r?i[5]:i[4],o=`${Vl(t.planModel)} Plan Mode`,s=`Use ${Vl(t.planModel)} in plan mode, ${Vl(t.execModel)} otherwise`,c=`if(!${a}.some((z)=>z.value==="${W}"))${a}.push(${JSON.stringify({value:W,label:o,description:s})});`,l=i[1]+c,u=e.slice(0,i.index)+l+e.slice(i.index+i[0].length);return V(e,u,l,i.index,i.index+i[0].length),u},Il=e=>{let t=e=>`${El}?.(${e}.${Dl}??${e}.toolPermissionContext?.mode)??`,n=(t,n)=>{let r=e.slice(e.lastIndexOf(`function `,t),t).match(/^function ([$\w]+)\(([$\w]+),([$\w]+)[,)]/);return r&&r[2]===n?{name:r[1],model:r[3]}:void 0},r=()=>(console.error(`patch: fablePlan: failed to find the per-model effort lookup's model argument`),null),i=e.match(/(case"inherit":\{if\(([$\w]+)\.settingsEffortTable===void 0\)return;if\(!?[$\w]+\(\2\.settingsEffortTable\)(?:&&!?[$\w]+\(\))?\)return \2\.settingsEffortTable\.default;let ([$\w]+)=)([^;]*?\2\.mainLoopModelForSession[^;]*;return [^;]*?[$\w]+\(\2\.settingsEffortTable,\3\)\})/);if(i&&i.index!==void 0){let a=n(i.index,i[2]);if(!a)return r();let o=a.name;if(i[4].startsWith(`${El}?.(`))return J(`patch: fablePlan: effort lookup already keyed — skipping`),{file:e,resolver:o,block:!0};if(!i[4].startsWith(`${a.model}??`))return r();let s=`${i[1]}${t(i[2])}${i[4]}`,c=e.slice(0,i.index)+s+e.slice(i.index+i[0].length);return V(e,c,s,i.index,i.index+i[0].length),{file:c,resolver:o,block:!0}}let a=e.match(/(case"inherit":if\(([$\w]+)\.settingsEffortTable===void 0\)return;if\(!?[$\w]+\(\2\.settingsEffortTable\)\)return \2\.settingsEffortTable\.default;return [$\w]+\(\2\.settingsEffortTable,)/);if(!a||a.index===void 0)return e.includes(`settingsEffortTable`)?(console.error(`patch: fablePlan: failed to find the per-model effort lookup`),null):(J(`patch: fablePlan: no per-model effort table in this build — effort follows the session`),{file:e,resolver:void 0,block:!1});let o=n(a.index,a[2]);if(!o)return r();let s=o.name,c=a.index+a[0].length;if(e.startsWith(`${El}?.(`,c))return J(`patch: fablePlan: effort lookup already keyed — skipping`),{file:e,resolver:s,block:!1};if(!e.startsWith(`${o.model}??`,c))return r();let l=`${a[1]}${t(a[2])}`,u=e.slice(0,a.index)+l+e.slice(c);return V(e,u,l,a.index,c),{file:u,resolver:s,block:!1}},Ll=`routed`,Rl=(e,t,n)=>{let r=t=>n?(console.error(`patch: fablePlan: ${t}`),null):(J(`patch: fablePlan: ${t} — effort follows the session's mode`),e);if(!t)return r(`failed to name the per-model effort lookup`);let i=e.match(/function ([$\w]+)\(([$\w]+)\)\{let ([$\w]+)=\2\.getAppState\(\)\.toolPermissionContext[,;]/);if(!i||i.index===void 0)return r(`failed to find the effective permission context function`);let a=i[1],o=q(t),s=[],c=RegExp(`([^$\\w.]${o}\\()([$\\w]+)\\.getAppState\\(\\),([$\\w]+)\\(\\2\\)(?=[,)])`,`g`),l=RegExp(`([^$\\w.]${o}\\()([$\\w]+)\\?\\.getAppState\\?\\.\\(\\)\\?\\?\\{\\},`,`g`),u=/model:([$\w]+),effortState:([$\w]+)[,}]/g,d=(t,...n)=>n.every(n=>Al(e,t,n)),f={a:0,b:0,c:0};for(let n of e.matchAll(c))n.index===void 0||!d(n.index,t,a)||(f.a++,s.push([n.index,n.index+n[0].length,`${n[1]}{...${n[2]}.getAppState(),${Dl}:${a}(${n[2]}).mode},${n[3]}(${n[2]})`]));for(let n of e.matchAll(l))n.index===void 0||!d(n.index,t,a)||(f.b++,s.push([n.index,n.index+n[0].length,`${n[1]}{...${n[2]}?.getAppState?.()??{},${Dl}:${n[2]}?.getAppState?${a}(${n[2]}).mode:void 0},`]));for(let n of e.matchAll(u)){if(n.index===void 0||!d(n.index,t))continue;let r=n.index+n[0].length,i=e.indexOf(`function `,r),a=RegExp(`[^$\\w.]${o}\\(${q(n[2])},${q(n[1])}\\)`).exec(e.slice(r,i===-1?void 0:i));if(!a)continue;f.c++;let c=r+a.index+1;s.push([c,c+a[0].length-1,`${t}({...${n[2]},${Dl}:"${Ll}"},${n[1]})`])}let p={a:e.includes(`.getAppState(),${Dl}:${a}(`),b:e.includes(`??{},${Dl}:`),c:e.includes(`${Dl}:"${Ll}"`)};for(let[e,t]of[[`a`,`the per-request effort resolver`],[`b`,`the hook-input effort caller`],[`c`,`the subagent-spawn effort caller`]])if(f[e]===0&&!p[e]&&r(`failed to find ${t}`)===null)return null;if(s.length===0)return J(`patch: fablePlan: effort callers already pass the mode — skipping`),e;let m=e;for(let[e,t,n]of s.sort((e,t)=>t[0]-e[0]))m=m.slice(0,e)+n+m.slice(t);return V(e,m,s.map(e=>e[2]).join(` … `),s[s.length-1][0],s[s.length-1][0]),m},zl=(e,t)=>{if(!e.includes(`"modelPicker:decreaseEffort"`))return J(`patch: fablePlan: no model-picker effort control in this build`),e;if(e.includes(`==="${W}")return;let `))return J(`patch: fablePlan: picker effort row already handled — skipping`),e;let n=/(=[$\w]+\(\(([$\w]+)\)=>\{let ([$\w]+)=[$\w]+\(\),([$\w]+)=[$\w]+\.find\(\(([$\w]+)\)=>\5\.value===\3\);if\(\4===void 0\|\|\4\.disabled===!0\)return;)(let ([$\w]+)=[$\w]+\(\3\);if\(!\7\.supportsEffort\)return;)/,r=/(([$\w]+)!==void 0&&![$\w]+&&[$\w]+\([$\w]+,\{marginBottom:1,flexDirection:"column",children:)([$\w]+\?)/,i=/([$\w]+)\(([$\w]+),\{color:"subtle",children:\[[$\w]+\([$\w]+,\{effort:void 0\}\)," Effort not supported"/,a=[/(function ([$\w]+)\(([$\w]+)\)\{)(let ([$\w]+)=[$\w]+\(\3\),(?:[$\w]+=[$\w]+\(\),)*[$\w]+=\5&&([$\w]+)!==void 0\?[$\w]+\(\6,\5\):\6;[$\w]+\("tengu_model_command_menu_effort")/,/(function ([$\w]+)\(([$\w]+)\)\{)(let ([$\w]+)=[$\w]+\(\3\),(?:[$\w]+=[$\w]+\(\),)*[$\w]+=\5&&([$\w]+)!==void 0&&\6!=="ultracode"\?[$\w]+\(\6,\5\):\6;[$\w]+\("tengu_model_command_menu_effort")/,/(function ([$\w]+)\(([$\w]+)\)\{)(let ([$\w]+)=[$\w]+\(\3\),[$\w]+=\5&&[$\w]+!==void 0&&[$\w]+!=="ultracode"\?[$\w]+\([$\w]+,\5\):[$\w]+;if\([$\w]+\("tengu_model_command_menu_effort")/],o=e.match(n),s=e.match(r),c=e.match(i),l=null;for(let t of a)if(l=e.match(t),l)break;if(!o||o.index===void 0||!s||s.index===void 0||!c||!l||l.index===void 0)return console.error(`patch: fablePlan: failed to find the model picker effort control`),null;let u=e.slice(l.index+l[1].length).match(RegExp(`^(?:(?!function )[^])*?if\\(${l[3].replace(/\$/g,`\\$`)}===[$\\w]+\\)\\{([$\\w]+)\\(null,[$\\w]+\\);return\\}`));if(!u)return console.error(`patch: fablePlan: failed to find the model picker apply call`),null;let d=JSON.stringify(`${Vl(t.planModel)} and ${Vl(t.execModel)} each use their own effort (set it on their rows)`),f=[[o.index,o.index+o[0].length,`${o[1]}if(${o[3]}==="${W}")return;${o[6]}`],[s.index,s.index+s[0].length,`${s[1]}${s[2]}==="${W}"?${c[1]}(${c[2]},{color:"subtle",children:[${d}]}):${s[3]}`],[l.index,l.index+l[0].length,`${l[1]}if(${l[3]}==="${W}"){${u[1]}(${l[3]},void 0);return}${l[4]}`]],p=e;for(let[e,t,n]of f.sort((e,t)=>t[0]-e[0]))p=p.slice(0,e)+n+p.slice(t);return V(e,p,f.map(e=>e[2]).join(` … `),o.index,o.index),p},Bl=e=>{let t=e.match(/(=[$\w]+\(\([$\w]+\)=>[$\w]+\.settings\.showClearContextOnPlanAccept\)\?\?)!1/);if(!t||t.index===void 0)return J(`patch: fablePlan: showClearContextOnPlanAccept gate not present — no-op`),e;let n=`${t[1]}!0`,r=e.slice(0,t.index)+n+e.slice(t.index+t[0].length);return V(e,r,n,t.index,t.index+t[0].length),r},Vl=e=>e.charAt(0).toUpperCase()+e.slice(1),Hl=RegExp(`\\["sonnet",(?:"[\\w[\\]]+",)*"${W}"[,\\]]`),Ul=(e,t)=>{if(Hl.test(e))return J(`patch: fablePlan: already applied — no-op`),e;if(t.planModel===t.execModel)return console.error(`patch: fablePlan: planModel and execModel are the same — nothing to pair`),null;let n=Pl(e,t);if(!n)return null;let r=n.file,i=jl(r);if(!i)return null;r=i;let a=Ml(r,t,n.resolver);if(!a)return null;r=a;let o=Nl(r,t);if(!o)return null;r=o;let s=Fl(r,t);if(!s)return null;r=s;let c=Il(r);if(!c)return null;r=c.file;let l=Rl(r,c.resolver,c.block);if(!l)return null;r=l;let u=zl(r,t);if(!u)return null;if(r=u,t.offerClearContextOnPlanAccept){let e=Bl(r);if(!e)return null;r=e}return r},Wl=(e,t)=>{let n=`return !0;`,r=e.slice(0,t)+n+e.slice(t);return V(e,r,n,t,t),r},Gl=e=>{let t=e.indexOf(`"allow_voice_mode"`);if(t!==-1){let n=Math.max(0,t-800),r=e.slice(n,t+400).match(/function ([$\w]+)\(\)\{return [$\w]+\(\)&&[$\w]+\(\)\}/);if(r&&r.index!==void 0){let t=n+r.index,i=e.indexOf(`{`,t);if(i!==-1)return e.startsWith(`return !0;`,i+1)?e:Wl(e,i+1)}let i=e.match(/name:"voice",description:"Toggle voice mode"[\s\S]{0,500}?get isHidden\(\)\{return![$\w]+\(\)\}/);if(i&&i.index!==void 0){let t=i[0].replace(/get isHidden\(\)\{return![$\w]+\(\)\}/,`get isHidden(){return!1}`);if(i[0]===t)return e;let n=e.slice(0,i.index)+t+e.slice(i.index+i[0].length);return V(e,n,t,i.index,i.index+i[0].length),n}}let n=e.match(/function [$\w]+\(\)\{return [$\w]+\("tengu_amber_quartz"/);if(n&&n.index!==void 0){let t=n.index+n[0].indexOf(`{`)+1,r=`return !0;`,i=e.slice(0,t)+r+e.slice(t);return V(e,i,r,t,t),i}let r=e.match(/function [$\w]+\(\)\{return![$\w]+\("tengu_amber_quartz_disabled"/);if(r&&r.index!==void 0){let t=r.index+r[0].indexOf(`{`)+1,n=`return !0;`,i=e.slice(0,t)+n+e.slice(t);return V(e,i,n,t,t),i}let i=e.match(/name:"voice",description:"Toggle voice mode"[\s\S]{0,500}?get isHidden\(\)\{return!([$\w]+)\(\)\}/);if(i&&i.index!==void 0){let t=i[1].replace(/[$]/g,`\\$`),n=RegExp(`function ${t}\\(\\)\\{`),r=e.match(n);if(r&&r.index!==void 0){let t=r.index+r[0].length,n=`return !0;`,i=e.slice(0,t)+n+e.slice(t);return V(e,i,n,t,t),i}}return console.error(`patch: voiceMode: failed to find tengu_amber_quartz gate`),null},Kl=e=>{let t=e.match(/if\([$\w]+\("tengu_sotto_voce",!1\)\)/);if(!t||t.index===void 0)return e;let n=`if(!0)`,r=e.slice(0,t.index)+n+e.slice(t.index+t[0].length);return V(e,r,n,t.index,t.index+t[0].length),r},ql=(e,t)=>{let n=Gl(e);return!n||t&&(n=Kl(n),!n)?null:n},Jl=e=>{for(let t of[/function [$\w]+\(\)\{return [$\w]+\("allow_channels"\)&&[$\w]+\("tengu_harbor",!1\)/,/function [$\w]+\(\)\{return [$\w]+\("tengu_harbor",!1\)/]){let n=e.match(t);if(!n||n.index===void 0)continue;let r=n.index+n[0].indexOf(`{`)+1,i=`return !0;`,a=e.slice(0,r)+i+e.slice(r);return V(e,a,i,r,r),a}return console.error(`patch: channelsMode: failed to find tengu_harbor gate`),null},Yl=e=>{let t=e.match(/function [$\w]+\(\)\{if\(![$\w]+\("tengu_harbor",!1\)\)return!0;/);if(!t||t.index===void 0)return e;let n=t.index+t[0].indexOf(`{`)+1,r=`return !1;`,i=e.slice(0,n)+r+e.slice(n);return V(e,i,r,n,n),i},Xl=e=>{let t=e.match(/reason:"server did not declare claude\/channel capability"\};?/);if(!t||t.index===void 0)return console.error(`patch: channelsMode: failed to find gateChannelServer capability check`),null;let n=t.index+t[0].length,r=`return{action:"register"};`,i=e.slice(0,n)+r+e.slice(n);return V(e,i,r,n,n),i},Zl=e=>{let t=e.match(/function [$\w]+\(\)\{return [$\w]+\("tengu_harbor_permissions",!1\)/);if(!t||t.index===void 0)return console.error(`patch: channelsMode: failed to find tengu_harbor_permissions gate`),null;let n=t.index+t[0].indexOf(`{`)+1,r=`return !0;`,i=e.slice(0,n)+r+e.slice(n);return V(e,i,r,n,n),i},Ql=e=>{let t=e.match(/"Channels \(experimental\) messages from ",([$\w]+),"[^"]*restart without "/);if(t&&t.index!==void 0){let n=`"Channels active \\xB7 messages from ",${t[1]}," \\xB7 restart without "`,r=t.index,i=r+t[0].length,a=e.slice(0,r)+n+e.slice(i);return V(e,a,n,r,i),a}let n=e.match(/Experimental[^"]*?inbound messages will be pushed into this session, this carries prompt injection risks\. Restart Claude Code without /);if(n&&n.index!==void 0){let t=`Channels active. Restart Claude Code without `,r=n.index,i=r+n[0].length,a=e.slice(0,r)+t+e.slice(i);return V(e,a,t,r,i),a}return console.error(`patch: channelsMode: failed to find ChannelsNotice warning text`),null},$l=e=>{let t=e.match(/if\(![$\w]+\.dev\)[$\w]+\.push\(\{[$\w]+:[$\w]+,[$\w]+:"server: entries need --dangerously-load-development-channels"\}\)/);if(!t||t.index===void 0)return console.error(`patch: channelsMode: failed to find server dev-flag warning block`),null;let n=t.index,r=n+t[0].length,i=e.slice(0,n)+``+e.slice(r);return V(e,i,``,n,r),i},eu=e=>{let t=Jl(e);return!t||(t=Yl(t),t=Xl(t),!t)||(t=Zl(t),!t)||(t=Ql(t),!t)||(t=$l(t),!t)?null:t},tu=`globalThis.__tweakccUnattendedBg`,nu=tu.replace(`.`,`\\.`),ru=e=>{let t=e.match(/function ([$\w]+)\(\)\{let [$\w]+=[$\w]+\.CLAUDE_CODE_SESSION_KIND;[^}]*\}function ([$\w]+)\(\)\{return \1\(\)==="bg"\}/);if(!t||t.index===void 0)return console.error(`patch: attachedBackgroundInteractive: failed to find the background session predicate`),null;let n=t[2],r=t.index+t[0].length,i=e.indexOf(`/*@@TWEAKCC_MODULE:`,r),a=RegExp(`function ([$\\w]+)\\(\\)\\{return ${q(n)}\\(\\)&&![$\\w]+\\(\\)\\}`).exec(e.slice(r,i===-1?void 0:i));return a?{background:n,unattended:a[1],definedEnd:r+a.index+a[0].length}:(console.error(`patch: attachedBackgroundInteractive: failed to find the unattended background predicate`),null)},iu=(e,t)=>{let n=`${tu}=${t.unattended};`;if(e.startsWith(n,t.definedEnd))return J(`patch: attachedBackgroundInteractive: predicate already published`),e;let r=e.slice(0,t.definedEnd)+n+e.slice(t.definedEnd);return V(e,r,n,t.definedEnd,t.definedEnd),r},au=e=>`(${q(e.background)}|${nu})`,ou=[{name:`ProposeGoal isEnabled`,pattern:e=>RegExp(`(isEnabled\\(\\)\\{if\\([$\\w]+\\(\\)\\|\\|[$\\w]+\\(\\)\\)return!1;if\\()${au(e)}(\\(\\)\\)return!1;if\\(![$\\w]+\\(\\)\\)return!1;let [$\\w]+=[$\\w]+\\(\\);if\\([$\\w]+==="disabled"\\))`)},{name:`ProposeGoal call guard`,pattern:e=>RegExp(`(if\\([$\\w]+\\(\\)\\|\\|[$\\w]+\\(\\)\\|\\|)${au(e)}(\\(\\)\\)throw [$\\w]+\\("goal_propose","session_shape"\\))`)},{name:`usage-limit auto-resume offer`,pattern:e=>RegExp(`(var [$\\w]+="tengu_marble_heron";(?:(?!/\\*@@TWEAKCC_MODULE:)[^])*?function [$\\w]+\\(\\)\\{return [$\\w]+\\(\\)&&!)${au(e)}(\\(\\)&&![$\\w]+\\(\\)\\})`)},{name:`usage-limit auto-continuation`,pattern:e=>RegExp(`(function [$\\w]+\\(\\)\\{return [^{}]*?&&!)${au(e)}(\\(\\)\\}function [$\\w]+\\([$\\w]+\\)\\{return [$\\w]+\\(\\)&&[$\\w]+\\([$\\w]+\\)&&[$\\w]+\\.rateLimitType==="five_hour")`)},{name:`outside-read prompt`,pattern:e=>RegExp(`(if\\()${au(e)}(\\(\\)\\|\\|[$\\w]+\\(\\)\\)return!1;if\\(![$\\w]+\\("userSettings"\\)\\)return!1;return![$\\w]+\\.session\\.outsideReadPrompt)`)},{name:`workflow usage consent prompt`,pattern:e=>RegExp(`(if\\()${au(e)}(\\(\\)\\)return!1;if\\([$\\w]+\\(\\)\\)return!1;if\\([$\\w]+\\([$\\w]+\\([$\\w]+\\),[$\\w]+\\.options\\.mainLoopModel\\)\\)return!1;return![$\\w]+\\.session\\.workflowUsageConsent)`)}],su=(e,t,n)=>{let r=e.match(t.pattern(n));if(!r||r.index===void 0)return console.error(`patch: attachedBackgroundInteractive: failed to find the ${t.name}`),null;if(r[2]===tu)return J(`patch: attachedBackgroundInteractive: ${t.name} already patched`),e;let i=r.index+r[1].length,a=e.slice(0,i)+tu+e.slice(i+r[2].length);return V(e,a,tu,i,i+r[2].length),a},cu=`unattendedBg`,lu=e=>{let t=e.match(/(waitForMcpServersDeclared:[$\w]+\(\))(,unattendedBg:[^}]*)?(\},[$\w]+=this\.toolPoolCache;)/),n=e.match(/function [$\w]+\(([$\w]+),([$\w]+)\)\{return \1\.toolPermissionContext===\2\.toolPermissionContext[^}]*?&&\1\.waitForMcpServersDeclared===\2\.waitForMcpServersDeclared(&&\1\.unattendedBg===\2\.unattendedBg)?\}/);if(!t||t.index===void 0||!n||n.index===void 0)return console.error(`patch: attachedBackgroundInteractive: failed to find the tool pool cache key`),null;if(t[2]&&n[3])return e;let[r,i]=[n[1],n[2]],a=t.index+t[1].length,o=[[a,`,${cu}:${tu}()`],[n.index+n[0].length-1,`&&${r}.${cu}===${i}.${cu}`]],s=e;for(let[e,t]of o.sort((e,t)=>t[0]-e[0]))s=s.slice(0,e)+t+s.slice(e);return V(e,s,o[0][1],a,a),s},uu=e=>{let t=ru(e);if(!t)return null;let n=e;for(let e of ou){let r=su(n,e,t);if(r===null)return null;n=r}let r=lu(n);if(r===null)return null;let i=ru(r);return i?iu(r,i):null},du=e=>{let t=e.match(/function [$\w]+\(\)\{(return !0;)?return [$\w]+\("tengu_propose_goal",!1\)/);if(!t||t.index===void 0)return console.error(`patch: proposeGoal: failed to find the tengu_propose_goal gate`),null;if(t[1])return e;let n=t.index+t[0].indexOf(`{`)+1,r=`return !0;`,i=e.slice(0,n)+r+e.slice(n);return V(e,i,r,n,n),i},fu=e=>{if(/name:"clear-screen"/.test(e))return e;let t=e.match(/([,;{}])(function [$\w]+\(\)\{)([$\w]+\(\))\.get\(process\.stdout\)\?\.forceRedraw\(\)\}/)||e.match(/([,;{}])(function [$\w]+\(\)\{)([$\w]+)\.get\(process\.stdout\)\?\.forceRedraw\(\)\}/);if(!t||t.index===void 0)return J(`patch: clearScreen: failed to find forceRedraw function`),null;let n=`${t[1]}globalThis.__tweakccForceRedraw=()=>${t[3]}.get(process.stdout)?.forceRedraw();`+t[0].slice(1),r=e.slice(0,t.index)+n+e.slice(t.index+t[0].length);V(e,r,n,t.index,t.index+t[0].length);let i=pu(r);return i?(r=i,Xa(r,`,{type:"local",name:"clear-screen",description:"Clear screen without resetting conversation context",supportsNonInteractive:!1,load:()=>Promise.resolve().then(()=>({call:(H,$)=>{$.setMessages(m=>{globalThis.__tweakccHiddenUUIDs=new Set(m.map(x=>x.uuid?.slice(0,24)).filter(Boolean));return[...m]});process.stdout.write("\\x1b[2J\\x1b[H\\x1b[3J");globalThis.__tweakccForceRedraw?.();return{type:"skip"}}}))}`)||(J(`patch: clearScreen: failed to register slash command`),null)):(J(`patch: clearScreen: failed to patch render filter g97`),null)},pu=e=>{let t=e.match(/([,;{}])(function [$\w]+\(([$\w]+),[$\w]+\)\{)if\(\3\.type!=="user"\)return!0;if\(\3\.isMeta\)/);if(!t||t.index===void 0)return null;let n=t[1],r=t[2],i=`${n}${r}if(globalThis.__tweakccHiddenUUIDs?.has(${t[3]}.uuid?.slice(0,24)))return!1;`+t[0].slice(n.length+r.length),a=e.slice(0,t.index)+i+e.slice(t.index+t[0].length);return V(e,a,i,t.index,t.index+t[0].length),a},mu=[`red`,`blue`,`green`,`yellow`,`purple`,`orange`,`pink`,`cyan`],hu=/\.\.\.([$\w]+)&&\{standaloneAgentContext:\{name:\1\}\}/,gu=e=>`,...(()=>{let __c=process.env.TWEAKCC_SESSION_COLOR;if(!__c||!${JSON.stringify(mu)}.includes(__c))return{};queueMicrotask(()=>{if(globalThis.__tweakccSaveAgentColor)globalThis.__tweakccSaveAgentColor(__c)});let __n=${e?`(typeof ${e}==="undefined"?"":${e}||"")`:`""`};return{standaloneAgentContext:{name:__n,color:__c}}})()`,_u=e=>{if(e.includes(`let __c=process.env.TWEAKCC_SESSION_COLOR;if(!__c`))return e;let t=gu(e.match(hu)?.[1]??null),n=e.match(/,activeOverlays:new Set,fastMode:[$\w]+\([$\w]+\)/);if(!n||n.index===void 0)return console.error(`patch: sessionColor: failed to find the app state init`),null;let r=e.slice(0,n.index)+t+e.slice(n.index);return V(e,r,t,n.index,n.index+n[0].length),vu(r)||(J(`patch: sessionColor: no saveAgentColor anchor; color applies without cross-session persistence`),r)},vu=e=>{let t=RegExp(`([,;{}])(async function ([$\\w]+)\\(([$\\w]+),([$\\w]+),([$\\w]+)(?:,[$\\w]+)?\\)\\{let [$\\w]+=\\6\\?\\?[$\\w]+\\(\\4\\);try\\{await [$\\w]+\\([$\\w]+,\\{type:"agent-color",agentColor:\\5,sessionId:\\4\\}(?:,[$\\w]+)?\\)\\}catch\\([$\\w]+\\)\\{[\\s\\S]*?\\}if\\(\\4===([$\\w]+)\\(\\)\\))`),n=e.match(t);if(!n||n.index===void 0)return null;let r=n[1],i=n[2],a=`globalThis.__tweakccSaveAgentColor=(c)=>${n[3]}(${n[7]}(),c);`,o=`${r}${a}${i}`,s=e.slice(0,n.index)+o+e.slice(n.index+n[0].length);return V(e,s,a,n.index,n.index+n[0].length),s},yu=e=>{let t=e.match(/=2000,([$\w]+)="Read a file from the local filesystem\./);if(!t||t.index===void 0)return/=\(\+process\.env\.CLAUDE_CODE_READ_DEFAULT_LINES/.test(e)?e:(console.error(`patch: readDefaultLines: failed to find =2000 near Read tool prompt anchor`),null);let n=t.index,r=n+5,i=`=(+process.env.CLAUDE_CODE_READ_DEFAULT_LINES||2000)`,a=e.slice(0,n)+i+e.slice(r);return V(e,a,i,n,n+52),a},bu=e=>X(JSON.stringify(e)).replace(/`/g,"\\`").replace(/\$\{/g,"\\${"),xu=`"$_cc_bin"`,Su=/\{mode:"embedded",command:process\.execPath,args:\[[^\]]*\],argv0:"rg"\}/,Cu=`Search backend note (fff):`;``+Cu;const wu=`most-relevant-first`;``+wu;const Tu=(e,t)=>{let n=bu(t);if(e.includes(`ARGV0=\${t} ${n}`)||e.includes(`exec -a \${t} ${n}`))return e;if(e.split(xu).length-1==0)return console.error(`patch: swapRipgrepForFff: bash-search shadow anchor "$_cc_bin" not found`),null;let r=e.split(xu).join(n),i=`[[ ! -x $_cc_bin ]]`;return r.includes(i)&&(r=r.split(i).join(`[[ ! -x $_cc_bin || ! -x ${n} ]]`)),V(e,r,n,e.indexOf(xu),e.indexOf(xu)+10),r},Eu=(e,t)=>{if(e.includes(`--fff-claude-bin=`))return e;let n=e.indexOf(`{mode:"embedded",command:process.execPath,args:["--no-config"],argv0:"rg"}`),r=n===-1?-1:n+74;if(n===-1){let t=e.match(Su);if(!t||t.index===void 0)return J(`patch: swapRipgrepForFff: ripgrep resolver descriptor not found; skipping rg repoint`),e;n=t.index,r=t.index+t[0].length}let i=`{mode:"system",command:${X(JSON.stringify(t))},args:["--fff-claude-bin="+process.execPath]}`,a=e.slice(0,n)+i+e.slice(r);return V(e,a,i,n,r),a},Du=(e,t)=>{let n=e[t];for(t++;t<e.length;)if(e[t]===`\\`)t+=2;else if(e[t]===n)return t;else t++;return t},Ou=(e,t)=>{let n=[{k:`tpl`}];for(let r=t;r<e.length;r++){let t=n[n.length-1],i=e[r];if(i===`\\`){r++;continue}if(t.k===`tpl`){if(i==="`"){if(n.pop(),n.length===0)return r;continue}i===`$`&&e[r+1]===`{`&&(n.push({k:`expr`,b:0}),r++);continue}if(i==="`"){n.push({k:`tpl`});continue}if(i===`"`||i===`'`){r=Du(e,r);continue}if(i===`{`){t.b++;continue}if(i===`}`){t.b===0?n.pop():t.b--;continue}}return-1},ku=(e,t,n,r,i)=>{if(e.includes(r))return e;if(n.includes("`"))return console.error(`patch: swapRipgrepForFff: ${i} guidance contains a backtick; skipping (would break template parity)`),e;let a=[],o=0;for(;;){let n=e.indexOf(t,o);if(n===-1)break;let r=Ou(e,n);r===-1?console.error(`patch: swapRipgrepForFff: ${i} anchor at ${n} has no balanced closing backtick; skipping this site`):a.push(r),o=n+t.length}if(a.length===0)return J(`patch: swapRipgrepForFff: ${i} anchor not found; skipping`),e;let s=e;for(let e of a.sort((e,t)=>t-e))s=s.slice(0,e)+n+s.slice(e);return V(e,s,n,a[a.length-1],a[0]),s},Au=(e,t)=>{let n=Tu(e,t);if(n===null)return null;let r=n;return r=Eu(r,t),r=ku(r,`built on ripgrep`,`
1088
1088
 
1089
- Search backend note (fff): prefer one bare identifier over regex; results are relevance-ranked, so read the top hit first. A trailing [def] tag flags a line that likely defines the symbol.`,fu,`Grep description`),r=vu(r,`Prefer dedicated tools over`,` grep/find results are ranked most-relevant-first (read the top hit first); a trailing [def] tag flags a likely definition line, and a grep or find -name that matches nothing automatically lists the closest approximate hits tagged [~approx]. Add --fuzzy to force typo-tolerant or partial matching, e.g. grep --fuzzy SomeName.`,pu,`Bash description`),r},bu=3e4;function xu(){let{platform:e,arch:t}=process;return e===`darwin`&&t===`arm64`?`aarch64-apple-darwin`:e===`linux`&&t===`arm64`?`aarch64-unknown-linux-musl`:e===`linux`&&t===`x64`?`x86_64-unknown-linux-musl`:null}function Su(){try{let e=u.dirname(S(import.meta.url));for(let t=0;t<6;t++){let t=u.join(e,`package.json`);if(s.existsSync(t))try{let n=JSON.parse(s.readFileSync(t,`utf-8`)).version;if(typeof n==`string`)return{root:e,version:n}}catch{}let n=u.dirname(e);if(n===e)break;e=n}}catch{}return null}async function Cu(e){try{return await a.access(e,s.constants.X_OK),!0}catch{return!1}}async function wu(e,t){await a.mkdir(u.dirname(t),{recursive:!0});let n=`${t}.tmp-${process.pid}`;try{await a.copyFile(e,n),await a.chmod(n,493),await a.rename(n,t)}catch(e){throw await a.unlink(n).catch(()=>{}),e}}async function Tu(e){try{return(await a.stat(e)).mtimeMs}catch{return-1}}async function Eu(){let e=xu();if(!e)return null;let t=u.join(Z,`fff`,e,`rg-fff`),n=u.join(u.dirname(t),`.version`),r=Su();if(r)for(let e of[`release`,`debug`]){let n=u.join(r.root,`tools`,`rg-fff`,`target`,e,`rg-fff`);if(s.existsSync(n))return await Tu(n)>await Tu(t)&&await wu(n,t),t}let i=r?.version,o=await a.readFile(n,`utf-8`).then(e=>e.trim()).catch(()=>null);if(await Cu(t)&&(!i||o===i))return t;if(!i)return null;let c=`https://github.com/skrabe/tweakcc-fixed/releases/download/v${i}`;try{let r=await fetch(`${c}/rg-fff-${e}`,{signal:AbortSignal.timeout(bu)});if(!r.ok)return null;let o=Buffer.from(await r.arrayBuffer()),s=await fetch(`${c}/rg-fff-${e}.sha256`,{signal:AbortSignal.timeout(bu)});if(!s.ok)return console.error(`patch: swapRipgrepForFff: rg-fff-${e}.sha256 unavailable (${s.status}) — keeping ripgrep`),null;let l=(await s.text()).trim().split(/\s+/)[0]?.toLowerCase(),d=b.createHash(`sha256`).update(o).digest(`hex`);if(!l||l!==d)return console.error(`patch: swapRipgrepForFff: rg-fff-${e} checksum ${l?`mismatch`:`missing`} — keeping ripgrep`),null;await a.mkdir(u.dirname(t),{recursive:!0});let f=`${t}.tmp-${process.pid}`;try{await a.writeFile(f,o),await a.chmod(f,493),await a.rename(f,t)}catch(e){throw await a.unlink(f).catch(()=>{}),e}return await a.writeFile(n,i).catch(()=>{}),t}catch{return null}}const Du=e=>{if(/function [$\w]+\(([$\w]+),[$\w]+\)\{if\(Object\.entries\([$\w]+\)\.length===0\)return \1;var ([$\w]+)=\1\[0\];if\(\2&&\2\.isMeta/.test(e))return e;let t=e.match(/function ([$\w]+)\(([$\w]+),([$\w]+)\)\{if\(Object\.entries\(\3\)\.length===0\)return \2;return\[([\s\S]+?),\.\.\.\2\]\}/);if(!t||t.index===void 0){let t=e.indexOf(`"tengu_context_size"`);if(t>0){let n=e.slice(Math.max(0,t-5e3),t);if(/function [$\w]+\([$\w]+,[$\w]+\)\{return [$\w]+;?\}\s*async function/.test(n))return console.log(`patch: claudemd-context-once-per-conversation: claudemd-context override suppressed wrapper — no-op`),e}return console.error(`patch: claudemd-context-once-per-conversation: failed to find kY6 wrapper`),null}let[n,r,i,a,o]=t,s=`${i}_0`,c=`function ${r}(${i},${a}){if(Object.entries(${a}).length===0)return ${i};var ${s}=${i}[0];if(${s}&&${s}.isMeta&&${s}.message&&typeof ${s}.message.content==="string"&&${s}.message.content.indexOf("<system-reminder>\\nAs you answer the user")===0)return ${i};${i}.unshift(${o});return ${i}}`,l=t.index,u=l+n.length,d=e.slice(0,l)+c+e.slice(u);return V(e,d,c,l,u),d},Ou=e=>{let t=/function ([$\w]+)\(([$\w]+)\)\{return`\$\{([$\w]+)\}\n\$\{\2\}\n\$\{([$\w]+)\}`\}/g,n=(t,n)=>RegExp(`[,;{(\\s]${t.replace(/\$/g,`\\$`)}=${JSON.stringify(n)}[,;]`).test(e),r=null;for(let i of e.matchAll(t))if(n(i[3],`<system-reminder>`)&&n(i[4],`</system-reminder>`)){r=i;break}let i=r??e.match(/function ([$\w]+)\(([$\w]+)\)\{return`<system-reminder>\n\$\{\2\}\n<\/system-reminder>`\}/);if(!i||i.index===void 0)return/function [$\w]+\(([$\w]+)\)\{if\(!\1\|\|!\1\.trim\(\)\|\|\1==="\(no content\)"\)return"\(no content\)";return`(?:<system-reminder>|\$\{[$\w]+\}\n)/.test(e)?e:(console.error(`patch: strip-empty-system-reminders: failed to find LW(H) wrapper`),null);let[a,o,s]=i,c=`function ${o}(${s}){if(!${s}||!${s}.trim()||${s}==="(no content)")return"(no content)";return\`${r?`\${${r[3]}}`:`<system-reminder>`}\n\${${s}}\n${r?`\${${r[4]}}`:`</system-reminder>`}\`}`,l=i.index,u=l+a.length,d=e.slice(0,l)+c+e.slice(u);return V(e,d,c,l,u),d},ku=e=>{if(!e.includes(`The following deferred tools are now available via`))return console.log(`patch: suppress-deferred-tools: anchor not present in this CC build — no-op`),e;let t=`case"deferred_tools_delta":{`;if(e.includes(`case"deferred_tools_delta":{return [];`))return e;let n=e.indexOf(t);if(n<0)return console.error(`patch: suppress-deferred-tools: failed to find case header`),null;if(e.indexOf(t,n+1)>=0)return console.error(`patch: suppress-deferred-tools: case header is ambiguous (multiple matches)`),null;let r=n+28,i=`return [];`,a=e.slice(0,r)+i+e.slice(r);return V(e,a,i,r,r),a},Au=[`__tweakcc`,`tweakcc v`],ju=e=>Au.some(t=>e.includes(t)),Mu=Math.max(...Au.map(e=>e.length)),Nu=async e=>new Promise(t=>{let n;try{n=l(e,{encoding:`latin1`,highWaterMark:8<<20})}catch{t(!1);return}let r=``,i=!1,a=e=>{i||(i=!0,n.destroy(),t(e))};n.on(`data`,e=>{let t=r+e;if(ju(t)){a(!0);return}r=t.slice(-(Mu-1))}),n.on(`error`,()=>a(!1)),n.on(`close`,()=>a(!1)),n.on(`end`,()=>a(!1))});var Pu=class extends Error{constructor(e){super(`Refusing to back up ${e}: it carries tweakcc markers, so it is already patched. Backing it up would overwrite the only pristine copy with a patched one. Run \`tweakcc --restore\` first, or reinstall Claude Code, then try again.`),this.name=`NonPristineBackupError`}};const Fu=async e=>{if(await Nu(e))throw new Pu(e)},Iu=async(e,t)=>{let n=`${t}.tmp-${process.pid}`;try{await o.copyFile(e,n),await o.rename(n,t)}catch(e){try{await o.unlink(n)}catch{}throw e}},Lu=async e=>{if(!e.cliPath){J(`backupClijs: Skipping for native installation (no cliPath)`);return}await Fu(e.cliPath),await Yd(),J(`Backing up cli.js to ${Wd}`),await Iu(e.cliPath,Wd),await tf(t=>{t.changesApplied=!1,t.ccVersion=e.version})},Ru=async e=>{e.nativeInstallationPath&&(await Fu(e.nativeInstallationPath),await Yd(),J(`Backing up native binary to ${Gd}`),await Iu(e.nativeInstallationPath,Gd),await tf(t=>{t.changesApplied=!1,t.ccVersion=e.version}))},zu=async e=>e.cliPath?await Pd(Wd)?(J(`Restoring cli.js from backup to ${e.cliPath}`),await Nd(e.cliPath,Wd,`restore`),await Lt(),await tf(e=>{e.changesApplied=!1}),!0):(J(`restoreClijsFromBackup: No backup file exists, skipping`),!1):(J(`restoreClijsFromBackup: Skipping for native installation (no cliPath)`),!1),Bu=async e=>e.nativeInstallationPath?await Pd(Gd)?(J(`Restoring native binary from backup to ${e.nativeInstallationPath}`),await Nd(e.nativeInstallationPath,Gd,`restore`),await Lt(),await tf(e=>{e.changesApplied=!1}),!0):(J(`restoreNativeBinaryFromBackup: No backup file exists, skipping`),!1):(J(`restoreNativeBinaryFromBackup: No native installation path, skipping`),!1),Vu=`/*@@TWEAKCC_MODULE:`,Hu=(e,t)=>{let n=e.lastIndexOf(Vu,t);if(n===-1)return Uu(e);let r=e.indexOf(Vu,n+1);return Uu(e.slice(n,r===-1?e.length:r))},Uu=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},Wu=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`)},Gu=e=>{let t=e.match(/var ([$\w]+)=[$\w]+\((?:\([$\w]+\)=>|function\([$\w]+\))\{var [$\w]+=Symbol\.for\("react\.(transitional\.)?element"\)/);if(!t){console.log(`patch: getReactModuleNameNonBun: failed to find React module name`);return}return t[1]},Ku=e=>{let t=Gu(e);if(!t){console.log(`^ patch: getReactModuleFunctionBun: failed to find React module name (Bun)`);return}let n=RegExp(`var ([$\\w]+)=[$\\w]+\\((?:\\([$\\w]+,[$\\w]+\\)=>|function\\([$\\w]+,[$\\w]+\\))\\{[$\\w]+\\.exports=${q(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 G=null,qu=null;const Ju=e=>{if(G!=null)return G;let t=Wu(e);if(!t){console.log(`^ patch: getReactVar: failed to find moduleLoader`),G=void 0;return}let n=Gu(e);if(!n){console.log(`^ patch: getReactVar: failed to find reactModuleVarNonBun`),G=void 0;return}let r=RegExp(`[^$\\w]([$\\w]+)=${q(t)}\\(${q(n)}\\(\\),1\\)`),i=e.match(r);if(i)return G=i[1],G;let a=Ku(e);if(!a){console.log(`^ patch: getReactVar: failed to find reactModuleFunctionBun`),G=void 0;return}let o=RegExp(`[^$\\w]([$\\w]+)=${q(t)}\\(${q(a)}\\(\\),1\\)`),s=e.match(o);if(!s){console.log(`patch: getReactVar: failed to find bunPattern (moduleLoader=${t}, reactModuleVarNonBun=${n}, reactModuleFunctionBun=${a})`),G=void 0;return}return G=s[1],G},Yu=()=>{G=null},Xu=e=>{let t=e.match(/import\{createRequire as ([$\w]+)\}from"node:module";/);if(!t)return;let n=t[1],r=RegExp(`var ([$\\w]+)=${q(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]},Zu=e=>{if(qu!=null)return qu;let t=Xu(e);return t?(qu=t,qu):(qu=`require`,qu)},Qu=()=>{qu=null},$u=()=>{Yu(),Qu()},ed=e=>{let t=e.match(/function ([$\w]+)\([$\w]+\)\{let [$\w]+=[$\w]+\.c\(\d+\)[^;]{0,240};if\([$\w]+\[0\]!==[$\w]+\)\(\{color:[$\w]+,backgroundColor:[$\w]+,dimColor:[$\w]+,bold:[$\w]+/);if(t)return t[1];let n=e.match(/\bfunction ([$\w]+).{0,80}color:[$\w]+,backgroundColor:[$\w]+,dimColor:[$\w]+(?:=![01])?,bold:[$\w]+(?:=![01])?/);if(!n){console.log(`patch: findTextComponent: failed to find text component`);return}return n[1]},td=(e,t)=>{let n=`[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*)*`,r=RegExp(`var [^;]{0,120};var [$\\w]+=${n}\\(\\(\\)=>\\{[^}]{0,500}([$\\w]+)=${q(t)}\\}\\)`),i=e.match(r)?.[1]??t,a=RegExp(`function ([$\\w]+)\\([^)]+\\)\\{(?=[\\s\\S]{0,2500}createElement\\(${q(i)},\\{\\.\\.\\.[$\\w]+,borderColor:)[\\s\\S]{0,3000}?return [$\\w]+\\}var [^;]{0,160};var [$\\w]+=${n}\\(\\(\\)=>\\{[^}]{0,600}([$\\w]+)=\\1\\}\\)`);return e.match(a)?.[2]},nd=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]+.{0,600}?\.\.\.([$\w]+)\}\)\{.{0,2500}?"margin".{0,2500}?"padding".{0,1200}?"gap".{0,1200}?\3\.flexWrap\?\?="nowrap",\3\.flexDirection\?\?="row",\3\.flexGrow\?\?=0,\3\.flexShrink\?\?=1,\3\.overflowX=\3\.overflowX\?\?\3\.overflow\?\?"visible",\3\.overflowY=\3\.overflowY\?\?\3\.overflow\?\?"visible",[$\w]+(?:\.default)?\.createElement\("ink-box",\{[^}]*style:\3\},\2\)/);if(a)return td(e,a[1])??a[1];let o=e.match(/function ([$\w]+)\(\{children:[$\w]+,ref:[$\w]+,tabIndex:[$\w]+,autoFocus:[$\w]+/);if(o)return o[1];console.error(`patch: findBoxComponent: failed to find Box component (neither ink-box createElement nor displayName found)`)};let K=function(e){return e.SYSTEM_PROMPTS=`System Prompts`,e.ALWAYS_APPLIED=`Always Applied`,e.MISC_CONFIGURABLE=`Misc Configurable`,e.FEATURES=`Features`,e.SYSTEM_REMINDERS=`System Reminders`,e}({});const rd=[{id:`verbose-property`,name:`Verbose property`,group:K.ALWAYS_APPLIED,description:`Token counter will show (2s · ↓ 169 tokens · thinking)`},{id:`read-default-lines`,name:`Read default lines (env-gated)`,group:K.ALWAYS_APPLIED,description:`Read tool default line cap becomes CLAUDE_CODE_READ_DEFAULT_LINES env var (falls back to 2000 if unset)`},{id:`opusplan1m`,name:`Opusplan[1m] support`,group:K.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:K.ALWAYS_APPLIED,description:`Restore dim/gray + italic styling for thinking blocks`},{id:`fix-lsp-support`,name:`Fix LSP support`,group:K.ALWAYS_APPLIED,description:`Enable/fix nascent LSP support`},{id:`no-global-cache-scope`,name:`Keep a replaced identity line out of the global prompt cache`,group:K.ALWAYS_APPLIED,description:`When a prompt override replaces one of Claude Code's identity lines, turn off the "global" cache scope that the first-party API rejects after a non-stock identity, so the prompt caches at organization scope instead. Does nothing while the identity lines are stock.`},{id:`fix-summarize-from-here`,name:`Fix "Summarize from here"`,group:K.MISC_CONFIGURABLE,description:`Make "Summarize from here" summarize only the messages after the rewind point (feed the slice, not the whole conversation)`,modelFacing:!0},{id:`fix-rewind-summary-header`,name:`Honest rewind summary header`,group:K.MISC_CONFIGURABLE,description:`Label a rewind summary as a deliberate rewind instead of the misleading "ran out of context" header`,modelFacing:!0},{id:`statusline-update-throttle`,name:`Statusline update throttling correction`,group:K.ALWAYS_APPLIED,description:`Statusline updates will be properly throttled instead of queued (or debounced)`},{id:`clear-screen`,name:`Clear screen command`,group:K.ALWAYS_APPLIED,description:`Register a /clear-screen command that clears the terminal scrollback and redraws without resetting conversation context`},{id:`strip-empty-system-reminders`,name:`Strip empty <system-reminder> wrappers`,group:K.ALWAYS_APPLIED,description:`Short-circuits CC's universal system-reminder wrapper so empty / "(no content)" inputs produce no reminder. Kills the drift-inducing "<system-reminder>(no content)</system-reminder>" blocks that get appended to roughly every other tool call.`},{id:`model-customizations`,name:`Model customizations`,group:K.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:K.MISC_CONFIGURABLE,description:`Show 25 items in select menus instead of default 5`},{id:`context-limit`,name:`Context limit`,group:K.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:K.MISC_CONFIGURABLE,description:`Show "tweakcc patches applied" and tweakcc version inside CC`},{id:`table-format`,name:`Table format`,group:K.MISC_CONFIGURABLE,description:`Tables generated by Claude will be rendered more compactly`},{id:`themes`,name:`Themes`,group:K.MISC_CONFIGURABLE,description:`Your custom themes will be available via /theme`},{id:`thinking-verbs`,name:`Thinking verbs`,group:K.MISC_CONFIGURABLE,description:`Your custom list of thinking verbs will be cycled through`},{id:`thinker-format`,name:`Thinker format`,group:K.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:K.MISC_CONFIGURABLE,description:`Your custom thinking spinner will be rendered`},{id:`thinker-symbol-speed`,name:`Thinker symbol speed`,group:K.MISC_CONFIGURABLE,description:`The thinking spinner will play at a custom FPS`},{id:`thinker-symbol-width`,name:`Thinker symbol width`,group:K.MISC_CONFIGURABLE,description:`The thinking spinner will be in a box of custom width`},{id:`thinker-symbol-mirror`,name:`Thinker symbol mirror`,group:K.MISC_CONFIGURABLE,description:`The thinking spinner will reverse or restart when it finishes`},{id:`input-box-border`,name:`Input box border`,group:K.MISC_CONFIGURABLE,description:`Your custom styles to the main input box's border will be applied`},{id:`input-chevron-color`,name:`Input chevron idle color`,group:K.MISC_CONFIGURABLE,description:`The idle input chevron will use your chosen theme color instead of the default`},{id:`subagent-models`,name:`Subagent models`,group:K.MISC_CONFIGURABLE,description:`Use custom models for Plan, Explore, and General subagents`},{id:`thinking-visibility`,name:`Thinking block visibility`,group:K.MISC_CONFIGURABLE,description:`Thinking blocks outputted by the model will show without Ctrl+O`},{id:`hide-startup-banner`,name:`Hide startup banner`,group:K.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:K.MISC_CONFIGURABLE,description:`Note about using Ctrl+G to edit prompt will be hidden`},{id:`hide-startup-clawd`,name:`Hide startup Clawd`,group:K.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:K.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:K.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:K.MISC_CONFIGURABLE,description:`/rate-limit-options won't be injected when limits are reached`},{id:`suppress-rate-limit-warning`,name:`Suppress rate limit warning`,group:K.MISC_CONFIGURABLE,description:`Rate limit warning banners in the status bar will be hidden`},{id:`session-color`,name:`Session color from env`,group:K.MISC_CONFIGURABLE,description:`Session prompt bar color is read from the TWEAKCC_SESSION_COLOR env var at each launch`},{id:`token-count-rounding`,name:`Token count rounding`,group:K.MISC_CONFIGURABLE,description:`Round displayed token counts to the nearest multiple of chosen value`},{id:`remember-skill`,name:`Remember skill`,group:K.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:K.MISC_CONFIGURABLE,description:`Support AGENTS.md and others in addition to CLAUDE.md`},{id:`auto-accept-plan-mode`,name:`Auto-accept plan mode`,group:K.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:K.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:K.MISC_CONFIGURABLE,description:`Suppress the native installer warning message at startup`},{id:`model-at-effort`,name:`/model name@effort`,group:K.MISC_CONFIGURABLE,description:`/model opus@high sets the model and then runs /effort high, in one command`},{id:`filter-scroll-escape-sequences`,name:`Filter scroll escape sequences`,group:K.MISC_CONFIGURABLE,description:`Filter out terminal escape sequences that cause unwanted scrolling`},{id:`max-effort-default`,name:`Default Opus 4.7 to max effort`,group:K.MISC_CONFIGURABLE,description:`Opus 4.7 sessions default to "max" reasoning effort instead of "xhigh" (override with /effort or CLAUDE_CODE_EFFORT_LEVEL)`,modelFacing:!0},{id:`autonomous-operation-all-models`,name:`Fable/Mythos prompt set (all models)`,group:K.MISC_CONFIGURABLE,description:`Treats your selected model as Fable/Mythos everywhere CC branches on model family (flips the zQ gate): you get the autonomous-operation prompt (proceed without asking for reversible in-scope work; finish the job before ending the turn), the "# Communicating with the user" comms block in place of "# Text output", /loop dynamic-pacing behavior, and brief-mode comms shaping. Per-model feature-flag routing also follows fable but is inert on a local install`,modelFacing:!0},{id:`refusal-fallback-model`,name:`Route the refusal fallback, then switch back`,group:K.MISC_CONFIGURABLE,description:`When safeguards flag a message, Claude Code retries it on a fallback model from its own route table, keyed by the flagged model and the refusal category, and keeps the session on that model. This merges refusalFallbackRoutes from config.json over that table (a category you leave out keeps its stock route, one you route falls back to the stock route when none of your models is usable, and a route is a model id or a chain of them) and switches the session back to its own model once the flagged turn is answered, with a line in the transcript. refusalFallbackMaxReturns in config.json (default 1, null for no limit) caps consecutive returns, so a conversation that keeps being flagged stays on the fallback instead of paying a refusal and a retry every turn`,modelFacing:!1},{id:`output-style-turn-reminder`,name:`Custom output styles carry their own per-turn reminder`,group:K.MISC_CONFIGURABLE,description:`Claude Code restates which output style is active once per turn. Since 2.1.238 that reminder fires for custom styles as well as built-in ones, but its text is fixed: every style you write gets the same generic "Remember to follow the specific guidelines for this style." This lets a style supply its own sentence instead. Add \`turn-reminder:\` to the style's markdown frontmatter and that text is what gets restated each turn, the way the built-in styles carry their own. Without this, the key is read by the frontmatter parser and then dropped on the way to the renderer, so it has no effect. On Claude Code before 2.1.238 this also makes the reminder fire for custom styles at all, which stock builds of that era skipped entirely. The per-turn slot is the position Anthropic's own Opus 5 guidance points at for tone, where a short reminder late in a long prompt is their measured remedy.`,modelFacing:!0},{id:`auto-mode-classifier-model`,name:`Auto-mode classifier model`,group:K.MISC_CONFIGURABLE,description:`Pin auto-mode bash safety classifier to Sonnet 4.6 or Haiku 4.5 instead of the user main-loop model (avoids Opus 4.7 congestion denying tool calls)`,modelFacing:!0},{id:`complexity-router`,name:`[EXPERIMENTAL] Complexity effort router`,group:K.FEATURES,description:`Choose reasoning effort for each user message only while an Effort Router model entry is selected. Uses Haiku, or Jev decisions with asynchronous Haiku conversation summaries, and honors explicit effort overrides. Jev requires a TypeSafe API key and sends the current message and bounded conversation context to TypeSafe. Off by default.`,modelFacing:!0},{id:`fable-plan`,name:`Fable Plan mode`,group:K.FEATURES,description:`Adds a "fableplan" entry to /model: Fable while planning, Opus while executing, each at the reasoning effort you set for that model in /model (Claude Code's per-model effort). Mirrors the mechanism Claude Code already ships for opusplan, so it is a MODEL YOU SELECT — nothing changes for any other model, your selection stays "fableplan" throughout, and no model is ever switched underneath you mid-session. Also surfaces Claude Code's own "Yes, clear context (N% used)" option on the plan-approval dialog, which Claude Code defaults off: clearing hands only the plan to the executing model, where continuing re-sends the entire planning transcript to a different one. Off by default.`,modelFacing:!0},{id:`complexity-router-models`,name:`Effort Router model entries`,group:K.FEATURES,description:`Adds opt-in Opus 5.5 and Fable 5.1 + Effort Router entries to /model. Ordinary models keep native effort behavior. Selecting a router entry enables the configured effort provider; switching away stops routing and background summaries.`,modelFacing:!0},{id:`allow-custom-agent-models`,name:`Allow custom agent models`,group:K.FEATURES,description:`Allow arbitrary model names in custom agent frontmatter (e.g. gemini-2.5-flash)`},{id:`unlock-responsive-mode`,name:`Unlock responsive mode`,group:K.FEATURES,description:`Make Claude Code's bundled responsive-mode plugin selectable. Claude Code 2.1.280 ships the whole feature in the binary - a system-reminder telling Claude to answer the message before it thinks or picks up a tool, and a system-prompt section ruling out stock AI phrasing (eager openers, agreement reflexes, corporate vocabulary, wrap-ups) - but gates it behind a server flag that answers no. This drops the flag check and keeps the session-kind guard, so the plugin appears in /plugin. It is registered DISABLED, so nothing changes until you turn it on there. Off by default.`,modelFacing:!0},{id:`worktree-mode`,name:`Worktree mode`,group:K.FEATURES,description:`Enable the EnterWorktree tool for isolated git worktree sessions`},{id:`session-memory`,name:`Session memory`,group:K.FEATURES,description:`Enable session memory (auto-extraction + past session search)`},{id:`swap-ripgrep-for-fff`,name:`[EXPERIMENTAL] fff for Bash search (grep/find/rg → fff)`,group:K.FEATURES,description:"[EXPERIMENTAL] Route Claude Code's Bash search through fff (fast file finder). CC 2.1.186 shadows the shell `grep`→embedded ugrep and `find`→embedded bfs (and offers `rg`); the agent uses grep ~136x more than rg. This repoints all three at a per-platform fff wrapper that serves, relevance-ranked from a warm-index daemon: literal, regex (RE2 — the dialect the model writes), case-insensitive (-i), multi-word phrases, context (-A/-B/-C), extension globs (-g/--include '*.ts'), and multi-path (app lib scripts) searches. Anything fff can't serve faithfully — PCRE, multiline/newline- or empty-matching regex, only-matching (-o), single-file, non-recursive grep, --no-ignore, find, non-ASCII, lines over 512 bytes, piped stdin → re-exec the real embedded ugrep/bfs/ripgrep. Every engine still ships; any uncertainty falls back, so results never diverge from the model's intent. Transparent (no prompt-compliance reliance) and CC-scoped (the user's own terminal grep/find/rg are untouched). Installs the wrapper into ~/.tweakcc/fff."},{id:`dream-mode`,name:`Dream mode`,group:K.FEATURES,description:`Enable dream (/dream + auto-dream background memory consolidation)`,modelFacing:!0},{id:`lean-memory-types`,name:`Lean memory types`,group:K.FEATURES,description:`Compact "Types of memory" prompt block + on-demand memory-types skill`,modelFacing:!0},{id:`toolsets`,name:`Toolsets`,group:K.FEATURES,description:`Custom toolsets will be registered`},{id:`mcp-non-blocking`,name:`MCP non-blocking`,group:K.FEATURES,description:`If you have MCP servers, CC startup will be much faster`},{id:`mcp-batch-size`,name:`MCP batch size`,group:K.FEATURES,description:`Change the number of MCP servers started in parallel`},{id:`user-message-display`,name:`User message display`,group:K.FEATURES,description:`User messages in the chat history will be styled`},{id:`input-pattern-highlighters`,name:`Input pattern highlighters`,group:K.FEATURES,description:`Custom input highlighters will be registered`},{id:`conversation-title`,name:`Conversation title`,group:K.FEATURES,description:`/title command will be created & enabled`},{id:`voice-mode`,name:`Voice mode`,group:K.FEATURES,description:`Enable /voice command for speech-to-text input (hold Space to record)`},{id:`channels-mode`,name:`Channels mode`,group:K.FEATURES,description:`Enable MCP channel notifications (--channels without allowlist or dev flag)`},{id:`suppress-deferred-tools`,name:`Suppress deferred tools list (DANGEROUS)`,group:K.SYSTEM_REMINDERS,description:`Kill the "deferred tools are now available via ToolSearch" announcement. WARNING: MCP/Cron/EnterPlanMode/WebFetch/Monitor become invisible to the model unless explicitly named.`,modelFacing:!0},{id:`claudemd-context-once-per-conversation`,name:`claudeMd context: once per conversation`,group:K.SYSTEM_REMINDERS,description:`Inject the claudeMd / userEmail / currentDate <system-reminder> only on the first API call per conversation (re-fires after /clear). Default: ON. Toggle OFF for vanilla CC per-turn injection.`,modelFacing:!0}],id=()=>[...rd],q=e=>e.replace(/\$/g,`\\$`),ad=(e,t,n)=>{let r=[];for(let i of rd){let a=t[i.id];if(n&&!n.includes(i.id)&&i.id!==`no-global-cache-scope`){r.push({id:i.id,name:i.name,group:i.group,applied:!1,skipped:!0,details:`not in --patches filter`,description:i.description});continue}if(a.condition===!1){r.push({id:i.id,name:i.name,group:i.group,applied:!1,skipped:!0,details:`not enabled`,description:i.description});continue}J(`Applying patch: ${i.name}`);let o=[],s=console.error;console.error=(...e)=>{o.push(e.map(String).join(` `)),s(...e)};let c;try{c=a.fn(e)}finally{console.error=s}let l=c===null,u=!l&&c!==e,d=!l&&o.length>0;c!==null&&(e=c),r.push({id:i.id,name:i.name,group:i.group,applied:u,failed:l,...d&&{partial:d,details:`partially applied (${o[0].replace(/^patch: [^:]+: /,``)})`},description:i.description,modelFacing:i.modelFacing})}return{content:e,results:r}},od=e=>{if(process.env.TWEAKCC_ALLOW_CROSS_PLATFORM===`1`)return;let t=v(e,[`--version`],{encoding:`utf8`,timeout:15e3}),n=`${t.stdout??``}${t.stderr??``}`;if(t.error||t.status!==0||/Expected CommonJS module|Bun v|TypeError/.test(n)){let t=Error(`Patched native binary failed startup sanity check (${e}).\n`+n.trim());throw t.stack=t.message,t}},sd=async(e,r,i)=>{let o,c=!1;if(r.nativeInstallationPath){await Bu(r);let e=!1;try{await a.stat(Gd),e=!0}catch{}let t=e?Gd:r.nativeInstallationPath;J(`Extracting claude.js from ${e?`backup`:`native installation`}: ${t}`);let{data:n,clearBytecode:i,error:l}=await j(t,r.version);if(!n)throw Error(`Failed to extract claude.js from native installation${l?`: ${l}`:``}`);c=i;let d=u.join(Z,`native-claudejs-orig.js`);s.writeFileSync(d,n),J(`Saved original extracted JS from native to: ${d}`),o=n.toString(`utf8`)}else{if(await zu(r),!r.cliPath)throw Error(`cliPath is required for NPM installations`);o=await a.readFile(r.cliPath,{encoding:`utf8`})}let l=[],d=o;if(r.version){let e=await Pa({pristine:d,version:r.version,patchFilter:i}).catch(e=>(J(`system-prompt preflight skipped: ${e}`),null)),n=[];for(let r of e?.findings??[]){let e=`preflight: ${Fa(r)}`;r.severity===`error`?console.log(t.red(e)):(n.push(e),J(e))}n.length>0&&J(`system-prompt preflight: ${n.length} advisory finding(s) — run --validate-system-prompts for the full report`);let a=(e?.findings??[]).filter(e=>e.check===`raw-non-ascii`);if(a.length>0)throw Error(`system-prompt preflight found ${a.length} span(s) that would introduce raw non-ASCII into the binary; nothing was modified. Re-run with --validate-system-prompts for the full report.`)}let f=await ka(o);o=f.content;let p=f.results.filter(e=>e.applied),m=f.results.filter(e=>e.failed);if(f.results.length>0){J(`inlineBlobOverrides: ${p.length} applied, ${m.length} failed`);for(let e of m)console.log(`inline-blob: failed "${e.name}" (${e.filename}): ${e.details}`)}for(let e of f.results)l.push({id:`inline-blob:${e.filename}`,name:e.name,group:K.SYSTEM_PROMPTS,applied:e.applied,failed:e.failed,skipped:e.skipped,details:e.details});let h=await dr(o,r.version??``);o=h.content;for(let e of h.results)l.push({id:`reminder:${e.id}`,name:`Reminder: ${e.name} (${e.state})`,group:K.SYSTEM_REMINDERS,applied:e.applied,failed:e.failed,skipped:e.skipped,details:e.details,description:e.description});let g=await pa(o,r.version,void 0,i,d);o=g.newContent;let _=g.results.some(e=>e.applied&&[`system-prompt-identity`,`system-prompt-cli-identity-agent-sdk`,`system-prompt-claude-agent-identity-sdk`].includes(e.id)),v=[...g.results].sort((e,t)=>e.name.localeCompare(t.name));l.push(...v);let y=e=>e.replace(/\\/g,`\\\\`).replace(/`/g,"\\`").replace(/\$/g,`\\$`),b=v.filter(e=>e.applied&&e.details).map(e=>y(`${e.name}: ${e.details}`)),x=e.settings.misc?.tableFormat??`default`,S=e.settings.misc?.showTweakccVersion??!0,C=e.settings.misc?.showPatchesApplied??!0,w=e.settings.misc?.enableModelCustomizations??!0,T=!!e.settings.misc?.swapRipgrepForFff,E=null;T&&(E=await Eu(),E||console.log(`patch: swapRipgrepForFff: no fff wrapper available for this platform — keeping ripgrep`));let O={"verbose-property":{fn:e=>Ge(e),condition:!r.nativeInstallationPath},"read-default-lines":{fn:e=>cu(e)},"context-limit":{fn:e=>ge(e),condition:!!e.settings.misc?.enableContextLimitOverride},opusplan1m:{fn:e=>Qe(e),condition:w&&!r.nativeInstallationPath},"thinking-block-styling":{fn:e=>zs(e),condition:r.version==null||_t(r.version,`2.1.26`)<0},"fix-lsp-support":{fn:e=>La(e)},"no-global-cache-scope":{fn:e=>Ga(e,d,_)},"fix-summarize-from-here":{fn:e=>Ka(e),condition:e.settings.misc?.fixSummarizeFromHere!==!1},"fix-rewind-summary-header":{fn:e=>qa(e),condition:e.settings.misc?.fixRewindSummaryHeader!==!1},"statusline-update-throttle":{fn:t=>Gs(t,e.settings.misc?.statuslineThrottleMs??300,e.settings.misc?.statuslineUseFixedInterval??!1),condition:e.settings.misc?.statuslineThrottleMs!=null},"clear-screen":{fn:e=>tu(e)},"strip-empty-system-reminders":{fn:e=>Ou(e)},"patches-applied-indication":{fn:e=>gt(e,D,b,S,C)},"model-customizations":{fn:e=>ud(e),condition:w},"show-more-items-in-select-menus":{fn:e=>le(e,25),condition:w},"table-format":{fn:e=>Yo(e,x),condition:x!==`default`},themes:{fn:t=>me(t,e.settings.themes),condition:!!(e.settings.themes&&e.settings.themes.length>0&&JSON.stringify(e.settings.themes)!==JSON.stringify(P.themes))},"thinking-verbs":{fn:t=>ke(t,e.settings.thinkingVerbs.verbs),condition:!!e.settings.thinkingVerbs&&JSON.stringify(e.settings.thinkingVerbs.verbs)!==JSON.stringify(P.thinkingVerbs.verbs)},"thinker-format":{fn:t=>be(t,e.settings.thinkingVerbs.format),condition:!!e.settings.thinkingVerbs&&e.settings.thinkingVerbs.format!==P.thinkingVerbs.format},"thinker-symbol-chars":{fn:t=>Ce(t,e.settings.thinkingStyle.phases),condition:JSON.stringify(e.settings.thinkingStyle.phases)!==JSON.stringify(P.thinkingStyle.phases)},"thinker-symbol-speed":{fn:t=>we(t,e.settings.thinkingStyle.updateInterval),condition:e.settings.thinkingStyle.updateInterval!==P.thinkingStyle.updateInterval&&(r.version==null||_t(r.version,`2.1.27`)<0)},"thinker-symbol-width":{fn:t=>Ee(t,Math.max(...e.settings.thinkingStyle.phases.map(e=>e.length))+1),condition:JSON.stringify(e.settings.thinkingStyle.phases)!==JSON.stringify(P.thinkingStyle.phases)},"thinker-symbol-mirror":{fn:t=>Se(t,e.settings.thinkingStyle.reverseMirror),condition:e.settings.thinkingStyle.reverseMirror!==P.thinkingStyle.reverseMirror},"input-box-border":{fn:t=>_e(t,e.settings.inputBox.removeBorder),condition:!!(e.settings.inputBox&&e.settings.inputBox.removeBorder!==P.inputBox.removeBorder)},"input-chevron-color":{fn:t=>{let n=e.settings.inputBox.chevronIdleThemeColor;return ve(t,e.settings.themes?.[0]?.colors?.[n]??n)},condition:!!e.settings.inputBox?.chevronIdleThemeColor},"subagent-models":{fn:t=>rt(t,e.settings.subagentModels),condition:!!e.settings.subagentModels&&JSON.stringify(e.settings.subagentModels)!==JSON.stringify(P.subagentModels)},"thinking-visibility":{fn:e=>$e(e),condition:e.settings.misc?.expandThinkingBlocks??!0},"hide-startup-banner":{fn:e=>us(e),condition:!!e.settings.misc?.hideStartupBanner},"hide-ctrl-g-to-edit":{fn:e=>fs(e),condition:!!e.settings.misc?.hideCtrlGToEdit},"hide-startup-clawd":{fn:e=>gs(e),condition:!!e.settings.misc?.hideStartupClawd},"increase-file-read-limit":{fn:e=>vs(e),condition:!!e.settings.misc?.increaseFileReadLimit},"suppress-line-numbers":{fn:e=>bs(e),condition:!!e.settings.misc?.suppressLineNumbers},"suppress-rate-limit-options":{fn:e=>Cs(e),condition:!!e.settings.misc?.suppressRateLimitOptions},"suppress-rate-limit-warning":{fn:e=>ws(e),condition:!!e.settings.misc?.suppressRateLimitWarning},"session-color":{fn:e=>ou(e),condition:!!e.settings.misc?.sessionColor},"token-count-rounding":{fn:t=>Ys(t,e.settings.misc.tokenCountRounding),condition:!!e.settings.misc?.tokenCountRounding},"remember-skill":{fn:e=>Rs(e),condition:!!e.settings.misc?.enableRememberSkill},"agents-md":{fn:t=>Xs(t,e.settings.claudeMdAltNames),condition:!!(e.settings.claudeMdAltNames&&e.settings.claudeMdAltNames.length>0)},"auto-accept-plan-mode":{fn:e=>oc(e),condition:!!e.settings.misc?.autoAcceptPlanMode},"allow-sudo-bypass-permissions":{fn:e=>sc(e),condition:!!e.settings.misc?.allowBypassPermissionsInSudo},"suppress-native-installer-warning":{fn:e=>lc(e),condition:!!e.settings.misc?.suppressNativeInstallerWarning},"model-at-effort":{fn:e=>uc(e),condition:e.settings.misc?.modelAtEffort??!0},"filter-scroll-escape-sequences":{fn:e=>fc(e),condition:!!e.settings.misc?.filterScrollEscapeSequences},"max-effort-default":{fn:e=>gc(e),condition:!!e.settings.misc?.maxEffortDefault},"autonomous-operation-all-models":{fn:e=>_c(e),condition:!!e.settings.misc?.autonomousOperationAllModels},"refusal-fallback-model":{fn:t=>Wc(t,e.settings.misc?.refusalFallbackRoutes,e.settings.misc?.refusalFallbackMaxReturns),condition:!!e.settings.misc?.refusalFallbackModel},"output-style-turn-reminder":{fn:e=>Kc(e),condition:!!e.settings.misc?.outputStyleTurnReminder},"auto-mode-classifier-model":{fn:t=>Jc(t,e.settings.misc?.autoModeClassifierModel??`default`),condition:(e.settings.misc?.autoModeClassifierModel??`default`)!==`default`},"complexity-router":{fn:t=>bl(t,e.settings.complexityRouter),condition:e.settings.complexityRouter.enabled},"fable-plan":{fn:t=>Ul(t,e.settings.fablePlan),condition:e.settings.fablePlan.enabled},"complexity-router-models":{fn:e=>Tl(e),condition:e.settings.complexityRouter.enabled},"allow-custom-agent-models":{fn:e=>hc(e),condition:!!e.settings.misc?.allowCustomAgentModels},"unlock-responsive-mode":{fn:e=>mc(e),condition:!!e.settings.misc?.unlockResponsiveMode},"worktree-mode":{fn:e=>pc(e),condition:!!e.settings.misc?.enableWorktreeMode},"session-memory":{fn:e=>Ms(e),condition:!!e.settings.misc?.enableSessionMemory},"swap-ripgrep-for-fff":{fn:e=>yu(e,E),condition:T&&!!E},"dream-mode":{fn:e=>Ns(e),condition:!!e.settings.misc?.enableDreamMode},"lean-memory-types":{fn:e=>Ps(e),condition:!!e.settings.misc?.enableLeanMemoryTypes},toolsets:{fn:t=>Lo(t,e.settings.toolsets,e.settings.defaultToolset,e.settings.acceptEditsToolset,e.settings.planModeToolset),condition:!!(e.settings.toolsets&&e.settings.toolsets.length>0)},"mcp-non-blocking":{fn:e=>Us(e),condition:!!e.settings.misc?.mcpConnectionNonBlocking&&(r.version==null||_t(r.version,`2.1.85`)<0)},"mcp-batch-size":{fn:t=>Ws(t,e.settings.misc.mcpServerBatchSize),condition:!!e.settings.misc?.mcpServerBatchSize},"user-message-display":{fn:t=>Re(t,e.settings.userMessageDisplay),condition:!!(e.settings.userMessageDisplay&&JSON.stringify(e.settings.userMessageDisplay)!==JSON.stringify(P.userMessageDisplay))},"input-pattern-highlighters":{fn:t=>Ue(t,e.settings.inputPatternHighlighters),condition:!!(e.settings.inputPatternHighlighters&&e.settings.inputPatternHighlighters.length>0)},"conversation-title":{fn:e=>ss(e),condition:(e.settings.misc?.enableConversationTitle??!0)&&!r.nativeInstallationPath},"voice-mode":{fn:t=>ql(t,e.settings.misc?.enableVoiceConciseOutput??!0),condition:!!e.settings.misc?.enableVoiceMode},"channels-mode":{fn:e=>eu(e),condition:!!e.settings.misc?.enableChannelsMode},"suppress-deferred-tools":{fn:e=>ku(e),condition:!!e.settings.misc?.suppressDeferredTools},"claudemd-context-once-per-conversation":{fn:e=>Du(e),condition:e.settings.misc?.claudemdContextOncePerConversation??!1}},{content:k,results:A}=ad(o,O,i);o=k,l.push(...A);let N=A.filter(e=>e.failed);if(r.nativeInstallationPath&&N.length>0){let e=Error(`Refusing to repack the native binary: ${N.length} binary patch(es) failed (${N.map(e=>e.id).join(`, `)}) on Claude Code ${r.version}. The binary was left unchanged — your Claude Code still works. Each failure’s cause is in the "patch: … failed to …" line(s) above; this usually means Anthropic changed the code shape in CC ${r.version}, so a patch’s pattern no longer matches. Update tweakcc-fixed, or disable the failing optional patch(es) in ~/.tweakcc/config.json, then re-run --apply.`);throw e.stack=e.message,e}if(r.nativeInstallationPath){J(`Repacking modified claude.js into native installation: ${r.nativeInstallationPath}`);let e=u.join(Z,`native-claudejs-patched.js`);s.writeFileSync(e,o,`utf8`),J(`Saved patched JS from native to: ${e}`);let t=Buffer.from(o,`utf8`),i=await a.mkdtemp(u.join(n.tmpdir(),`tweakcc-native-`)),l=u.join(i,u.basename(r.nativeInstallationPath));try{await a.copyFile(r.nativeInstallationPath,l),await a.chmod(l,s.statSync(r.nativeInstallationPath).mode),await M(l,t,l,c),od(l);let e=r.nativeInstallationPath,n=u.join(u.dirname(e),`.${u.basename(e)}.tweakcc-${process.pid}`);try{await a.copyFile(l,n),await a.chmod(n,s.statSync(e).mode),await a.rename(n,e)}catch(e){throw await a.rm(n,{force:!0}),e}}finally{await a.rm(i,{recursive:!0,force:!0})}}else{if(!r.cliPath)throw Error(`cliPath is required for NPM installations`);N.length>0&&console.warn(`tweakcc: ${N.length} patch(es) did not apply on Claude Code ${r.version}: ${N.map(e=>e.id).join(`, `)}. Those feature(s) are skipped; everything else was applied. Each cause is in the "patch: … failed to …" line(s) above — usually a CC version whose code shape a patch does not match yet. Update tweakcc-fixed, or disable the failing optional patch(es) in ~/.tweakcc/config.json.`),await Md(r.cliPath,o,`patch`)}return{config:await tf(e=>{e.changesApplied=!0}),results:l}},cd=[{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)`}],ld=e=>{let t=e.match(/(?<![$\w])([$\w]+)\.push\(\{value:[$\w]+,label:[^,]{1,40},description:[^"]{0,40}"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-5e3),i=e.slice(r,t.index),a=`(?:(?:let|var|const) |,)${q(n)}=.+?;`,o=RegExp(`function [$\\w]+\\([^)]*\\)\\{[\\s\\S]{0,5000}?${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)},ud=e=>{if(e.includes(`"value":"claude-opus-4-6"`))return console.log(`patch: modelCustomizations: custom models already present — skipping`),e;let t=ld(e);if(!t)return null;let{insertionIndex:n,modelListVar:r}=t,i=cd.map(e=>`${r}.push(${JSON.stringify(e)});`).join(``),a=e.slice(0,n)+i+e.slice(n);return V(e,a,i,n,n),a};let dd=!1,fd=!1,pd=!1;const md=()=>dd,hd=()=>fd,gd=()=>pd,_d=()=>{dd=!0},vd=()=>{fd=!0,dd=!0},yd=()=>{pd=!0},J=(e,...t)=>{md()&&console.log(e,...t)},Y=(e,...t)=>{hd()&&console.log(e,...t)},X=e=>e.replace(/[\u0080-\uffff]/g,e=>`\\u`+e.charCodeAt(0).toString(16).padStart(4,`0`));function bd(){try{let e=p.join(m.homedir(),`.claude.json`);return JSON.parse(f.readFileSync(e,`utf8`)).theme||`dark`}catch{}return`dark`}function xd(e){try{let t=p.join(m.homedir(),`.claude.json`),n=JSON.parse(f.readFileSync(t,`utf8`));n.theme=e,f.writeFileSync(t,JSON.stringify(n,null,2))}catch{}}function Sd(){try{let e=p.join(m.homedir(),`.claude`,`.credentials.json`);switch(JSON.parse(f.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 Cd(){try{let e=p.join(m.homedir(),`.claude`,`settings.json`),t=JSON.parse(f.readFileSync(e,`utf8`))?.model||`default`;if(t===`opus`)return`Opus 4.5`;let n=cd.find(e=>e.value===t);if(n)return n.label}catch{}return`Opus 4.5`}function wd(e){process.platform===`win32`?h.spawn(`explorer`,[e],{detached:!0,stdio:`ignore`}).unref():process.platform===`darwin`?h.spawn(`open`,[e],{detached:!0,stdio:`ignore`}).unref():h.spawn(`xdg-open`,[e],{detached:!0,stdio:`ignore`}).unref()}function Td(e){if(process.platform===`win32`)h.spawn(`explorer`,[`/select,`,e],{detached:!0,stdio:`ignore`}).unref();else if(process.platform===`darwin`)h.spawn(`open`,[`-R`,e],{detached:!0,stdio:`ignore`}).unref();else{let t=p.dirname(e);h.spawn(`xdg-open`,[t],{detached:!0,stdio:`ignore`}).unref()}}function Ed(e,t=`md`){let n=process.env.VISUAL||process.env.EDITOR||(process.platform===`win32`?`notepad`:`vi`),r=p.join(m.tmpdir(),`tweakcc-edit-${process.pid}-${Date.now()}.${t}`);try{f.writeFileSync(r,e,`utf8`);let t=h.spawnSync(`${n} "${r}"`,{stdio:`inherit`,shell:!0});return t.error||typeof t.status==`number`&&t.status!==0?null:f.readFileSync(r,`utf8`)}catch{return null}finally{try{f.unlinkSync(r)}catch{}}}function Dd(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 Od(e){if(!Dd(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 kd(e,t=`sha256`,n=64*1024){return new Promise((r,i)=>{let a=g.createHash(t),o=f.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 Ad(e,t){try{let n=await o.stat(e);return J(`[${t}] Original file mode for ${e}: ${(n.mode&511).toString(8)}`),n.mode}catch(n){return J(`[${t}] Could not stat ${e} (error: ${n}), using default mode 755`),493}}async function jd(e,t,n,r){let i=`${e}.tweakcc-tmp-${process.pid}`;try{await r(i),await o.chmod(i,t),await o.rename(i,e)}catch(e){try{await o.unlink(i)}catch{}throw e}J(`[${n}] Replaced ${e} via atomic rename, mode ${(t&511).toString(8)}`)}async function Md(e,t,n=`replace`){await jd(e,await Ad(e,n),n,e=>o.writeFile(e,t))}async function Nd(e,t,n=`replace`){await jd(e,await Ad(e,n),n,e=>o.copyFile(t,e))}async function Pd(e){try{return await o.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 Fd=e=>e.startsWith(`~`)?p.join(m.homedir(),e.slice(1)):e,Id=(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]},Ld=e=>{let t=e.toString(),n=t.lastIndexOf(`/`);return`new RegExp(${JSON.stringify(t.substring(1,n))}, ${JSON.stringify(t.substring(n+1))})`};function Rd(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]=Rd(n[e],r)):n[e]=r}return n}const zd=async(e,t=33554432)=>{let n=Number(e.headers.get(`content-length`));if(Number.isFinite(n)&&n>t)throw Error(`Response body too large: ${n} bytes exceeds the ${t}-byte limit.`);let r=e.body;if(!r){let n=await e.text();if(Buffer.byteLength(n,`utf8`)>t)throw Error(`Response body exceeds the ${t}-byte limit.`);return n}let i=r.getReader(),a=[],o=0;for(;;){let{done:e,value:n}=await i.read();if(e)break;if(n){if(o+=n.byteLength,o>t)throw await i.cancel().catch(()=>{}),Error(`Response body exceeds the ${t}-byte limit — aborting download.`);a.push(Buffer.from(n))}}return Buffer.concat(a).toString(`utf8`)},Bd=e=>{let t=e?.settings?.userMessageDisplay;if(!t)return;let n=!!t.prefix,r=`borderStyle`in t,i=`padding`in t,a=`paddingX`in t,o=`fitBoxToContent`in t,s=t.padding;n&&(e.settings.userMessageDisplay={format:(t.prefix?.format||``)+(t.message?.format||`{}`),styling:[...t.prefix?.styling||[],...t.message?.styling||[]],foregroundColor:t.message?.foregroundColor===`rgb(0,0,0)`?`default`:t.message?.foregroundColor||t.prefix?.foregroundColor||`default`,backgroundColor:t.message?.backgroundColor===`rgb(0,0,0)`?null:t.message?.backgroundColor||t.prefix?.backgroundColor||null,borderStyle:`none`,borderColor:`rgb(255,255,255)`,paddingX:0,paddingY:0,fitBoxToContent:!1});let c=e.settings.userMessageDisplay;r||(c.borderStyle=`none`,c.borderColor=`rgb(255,255,255)`),i&&!a?(c.paddingX=s||0,c.paddingY=0,delete c.padding):a||(c.paddingX=0,c.paddingY=0),o||(c.fitBoxToContent=!1)},Vd=e=>{let t=e?.settings?.misc;t&&`hideCtrlGToEditPrompt`in t&&(t.hideCtrlGToEdit=t.hideCtrlGToEditPrompt,delete t.hideCtrlGToEditPrompt)};async function Hd(){try{let e=await o.readFile(Q,`utf8`),t=JSON.parse(e);return Object.hasOwn(t,`ccInstallationDir`)?(t.ccInstallationDir&&!t.ccInstallationPath&&(t.ccInstallationPath=d.join(t.ccInstallationDir,`cli.js`)),delete t.ccInstallationDir,t.lastModified=new Date().toISOString(),await Yd(),await o.writeFile(Q,JSON.stringify(t,null,2)),!0):!1}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`||e instanceof SyntaxError)return!1;throw e}}const Ud=()=>{let e=process.env.TWEAKCC_CONFIG_DIR?.trim();if(e&&e.length>0)return Fd(e);let t=d.join(r.homedir(),`.tweakcc`),n=d.join(r.homedir(),`.claude`,`tweakcc`),i=process.env.XDG_CONFIG_HOME;try{if(c.existsSync(t))return t}catch(e){J(`Failed to check if ${t} exists: ${e}`)}try{if(c.existsSync(n))return n}catch(e){J(`Failed to check if ${n} exists: ${e}`)}return i?d.join(i,`tweakcc`):t},Z=Ud(),Q=d.join(Z,`config.json`),Wd=d.join(Z,`cli.js.backup`),Gd=d.join(Z,`native-binary.backup`),$=d.join(Z,`system-prompts`),Kd=d.join(Z,`system-reminders`),qd=d.join(Z,`prompt-data-cache`),Jd=()=>{let e=Z,n=r.homedir(),i=[d.join(n,`.tweakcc`),d.join(n,`.claude`,`tweakcc`),process.env.XDG_CONFIG_HOME?d.join(process.env.XDG_CONFIG_HOME,`tweakcc`):null].filter(e=>e!==null).filter(t=>{try{return c.existsSync(t)&&t!==e}catch{return!1}});i.length>0&&(console.warn(t.yellow(`
1089
+ Search backend note (fff): prefer one bare identifier over regex; results are relevance-ranked, so read the top hit first. A trailing [def] tag flags a line that likely defines the symbol.`,Cu,`Grep description`),r=ku(r,`Prefer dedicated tools over`,` grep/find results are ranked most-relevant-first (read the top hit first); a trailing [def] tag flags a likely definition line, and a grep or find -name that matches nothing automatically lists the closest approximate hits tagged [~approx]. Add --fuzzy to force typo-tolerant or partial matching, e.g. grep --fuzzy SomeName.`,wu,`Bash description`),r},ju=3e4;function Mu(){let{platform:e,arch:t}=process;return e===`darwin`&&t===`arm64`?`aarch64-apple-darwin`:e===`linux`&&t===`arm64`?`aarch64-unknown-linux-musl`:e===`linux`&&t===`x64`?`x86_64-unknown-linux-musl`:null}function Nu(){try{let e=u.dirname(S(import.meta.url));for(let t=0;t<6;t++){let t=u.join(e,`package.json`);if(s.existsSync(t))try{let n=JSON.parse(s.readFileSync(t,`utf-8`)).version;if(typeof n==`string`)return{root:e,version:n}}catch{}let n=u.dirname(e);if(n===e)break;e=n}}catch{}return null}async function Pu(e){try{return await a.access(e,s.constants.X_OK),!0}catch{return!1}}async function Fu(e,t){await a.mkdir(u.dirname(t),{recursive:!0});let n=`${t}.tmp-${process.pid}`;try{await a.copyFile(e,n),await a.chmod(n,493),await a.rename(n,t)}catch(e){throw await a.unlink(n).catch(()=>{}),e}}async function Iu(e){try{return(await a.stat(e)).mtimeMs}catch{return-1}}async function Lu(){let e=Mu();if(!e)return null;let t=u.join(Z,`fff`,e,`rg-fff`),n=u.join(u.dirname(t),`.version`),r=Nu();if(r)for(let e of[`release`,`debug`]){let n=u.join(r.root,`tools`,`rg-fff`,`target`,e,`rg-fff`);if(s.existsSync(n))return await Iu(n)>await Iu(t)&&await Fu(n,t),t}let i=r?.version,o=await a.readFile(n,`utf-8`).then(e=>e.trim()).catch(()=>null);if(await Pu(t)&&(!i||o===i))return t;if(!i)return null;let c=`https://github.com/skrabe/tweakcc-fixed/releases/download/v${i}`;try{let r=await fetch(`${c}/rg-fff-${e}`,{signal:AbortSignal.timeout(ju)});if(!r.ok)return null;let o=Buffer.from(await r.arrayBuffer()),s=await fetch(`${c}/rg-fff-${e}.sha256`,{signal:AbortSignal.timeout(ju)});if(!s.ok)return console.error(`patch: swapRipgrepForFff: rg-fff-${e}.sha256 unavailable (${s.status}) — keeping ripgrep`),null;let l=(await s.text()).trim().split(/\s+/)[0]?.toLowerCase(),d=b.createHash(`sha256`).update(o).digest(`hex`);if(!l||l!==d)return console.error(`patch: swapRipgrepForFff: rg-fff-${e} checksum ${l?`mismatch`:`missing`} — keeping ripgrep`),null;await a.mkdir(u.dirname(t),{recursive:!0});let f=`${t}.tmp-${process.pid}`;try{await a.writeFile(f,o),await a.chmod(f,493),await a.rename(f,t)}catch(e){throw await a.unlink(f).catch(()=>{}),e}return await a.writeFile(n,i).catch(()=>{}),t}catch{return null}}const Ru=e=>{if(/function [$\w]+\(([$\w]+),[$\w]+\)\{if\(Object\.entries\([$\w]+\)\.length===0\)return \1;var ([$\w]+)=\1\[0\];if\(\2&&\2\.isMeta/.test(e))return e;let t=e.match(/function ([$\w]+)\(([$\w]+),([$\w]+)\)\{if\(Object\.entries\(\3\)\.length===0\)return \2;return\[([\s\S]+?),\.\.\.\2\]\}/);if(!t||t.index===void 0){let t=e.indexOf(`"tengu_context_size"`);if(t>0){let n=e.slice(Math.max(0,t-5e3),t);if(/function [$\w]+\([$\w]+,[$\w]+\)\{return [$\w]+;?\}\s*async function/.test(n))return console.log(`patch: claudemd-context-once-per-conversation: claudemd-context override suppressed wrapper — no-op`),e}return console.error(`patch: claudemd-context-once-per-conversation: failed to find kY6 wrapper`),null}let[n,r,i,a,o]=t,s=`${i}_0`,c=`function ${r}(${i},${a}){if(Object.entries(${a}).length===0)return ${i};var ${s}=${i}[0];if(${s}&&${s}.isMeta&&${s}.message&&typeof ${s}.message.content==="string"&&${s}.message.content.indexOf("<system-reminder>\\nAs you answer the user")===0)return ${i};${i}.unshift(${o});return ${i}}`,l=t.index,u=l+n.length,d=e.slice(0,l)+c+e.slice(u);return V(e,d,c,l,u),d},zu=e=>{let t=/function ([$\w]+)\(([$\w]+)\)\{return`\$\{([$\w]+)\}\n\$\{\2\}\n\$\{([$\w]+)\}`\}/g,n=(t,n)=>RegExp(`[,;{(\\s]${t.replace(/\$/g,`\\$`)}=${JSON.stringify(n)}[,;]`).test(e),r=null;for(let i of e.matchAll(t))if(n(i[3],`<system-reminder>`)&&n(i[4],`</system-reminder>`)){r=i;break}let i=r??e.match(/function ([$\w]+)\(([$\w]+)\)\{return`<system-reminder>\n\$\{\2\}\n<\/system-reminder>`\}/);if(!i||i.index===void 0)return/function [$\w]+\(([$\w]+)\)\{if\(!\1\|\|!\1\.trim\(\)\|\|\1==="\(no content\)"\)return"\(no content\)";return`(?:<system-reminder>|\$\{[$\w]+\}\n)/.test(e)?e:(console.error(`patch: strip-empty-system-reminders: failed to find LW(H) wrapper`),null);let[a,o,s]=i,c=`function ${o}(${s}){if(!${s}||!${s}.trim()||${s}==="(no content)")return"(no content)";return\`${r?`\${${r[3]}}`:`<system-reminder>`}\n\${${s}}\n${r?`\${${r[4]}}`:`</system-reminder>`}\`}`,l=i.index,u=l+a.length,d=e.slice(0,l)+c+e.slice(u);return V(e,d,c,l,u),d},Bu=e=>{if(!e.includes(`The following deferred tools are now available via`))return console.log(`patch: suppress-deferred-tools: anchor not present in this CC build — no-op`),e;let t=`case"deferred_tools_delta":{`;if(e.includes(`case"deferred_tools_delta":{return [];`))return e;let n=e.indexOf(t);if(n<0)return console.error(`patch: suppress-deferred-tools: failed to find case header`),null;if(e.indexOf(t,n+1)>=0)return console.error(`patch: suppress-deferred-tools: case header is ambiguous (multiple matches)`),null;let r=n+28,i=`return [];`,a=e.slice(0,r)+i+e.slice(r);return V(e,a,i,r,r),a},Vu=[`__tweakcc`,`tweakcc v`],Hu=e=>Vu.some(t=>e.includes(t)),Uu=Math.max(...Vu.map(e=>e.length)),Wu=async e=>new Promise(t=>{let n;try{n=l(e,{encoding:`latin1`,highWaterMark:8<<20})}catch{t(!1);return}let r=``,i=!1,a=e=>{i||(i=!0,n.destroy(),t(e))};n.on(`data`,e=>{let t=r+e;if(Hu(t)){a(!0);return}r=t.slice(-(Uu-1))}),n.on(`error`,()=>a(!1)),n.on(`close`,()=>a(!1)),n.on(`end`,()=>a(!1))});var Gu=class extends Error{constructor(e){super(`Refusing to back up ${e}: it carries tweakcc markers, so it is already patched. Backing it up would overwrite the only pristine copy with a patched one. Run \`tweakcc --restore\` first, or reinstall Claude Code, then try again.`),this.name=`NonPristineBackupError`}};const Ku=async e=>{if(await Wu(e))throw new Gu(e)},qu=async(e,t)=>{let n=`${t}.tmp-${process.pid}`;try{await o.copyFile(e,n),await o.rename(n,t)}catch(e){try{await o.unlink(n)}catch{}throw e}},Ju=async e=>{if(!e.cliPath){J(`backupClijs: Skipping for native installation (no cliPath)`);return}await Ku(e.cliPath),await sf(),J(`Backing up cli.js to ${tf}`),await qu(e.cliPath,tf),await pf(t=>{t.changesApplied=!1,t.ccVersion=e.version})},Yu=async e=>{e.nativeInstallationPath&&(await Ku(e.nativeInstallationPath),await sf(),J(`Backing up native binary to ${nf}`),await qu(e.nativeInstallationPath,nf),await pf(t=>{t.changesApplied=!1,t.ccVersion=e.version}))},Xu=async e=>e.cliPath?await Gd(tf)?(J(`Restoring cli.js from backup to ${e.cliPath}`),await Wd(e.cliPath,tf,`restore`),await Lt(),await pf(e=>{e.changesApplied=!1}),!0):(J(`restoreClijsFromBackup: No backup file exists, skipping`),!1):(J(`restoreClijsFromBackup: Skipping for native installation (no cliPath)`),!1),Zu=async e=>e.nativeInstallationPath?await Gd(nf)?(J(`Restoring native binary from backup to ${e.nativeInstallationPath}`),await Wd(e.nativeInstallationPath,nf,`restore`),await Lt(),await pf(e=>{e.changesApplied=!1}),!0):(J(`restoreNativeBinaryFromBackup: No backup file exists, skipping`),!1):(J(`restoreNativeBinaryFromBackup: No native installation path, skipping`),!1),Qu=`/*@@TWEAKCC_MODULE:`,$u=(e,t)=>{let n=e.lastIndexOf(Qu,t);if(n===-1)return ed(e);let r=e.indexOf(Qu,n+1);return ed(e.slice(n,r===-1?e.length:r))},ed=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},td=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`)},nd=e=>{let t=e.match(/var ([$\w]+)=[$\w]+\((?:\([$\w]+\)=>|function\([$\w]+\))\{var [$\w]+=Symbol\.for\("react\.(transitional\.)?element"\)/);if(!t){console.log(`patch: getReactModuleNameNonBun: failed to find React module name`);return}return t[1]},rd=e=>{let t=nd(e);if(!t){console.log(`^ patch: getReactModuleFunctionBun: failed to find React module name (Bun)`);return}let n=RegExp(`var ([$\\w]+)=[$\\w]+\\((?:\\([$\\w]+,[$\\w]+\\)=>|function\\([$\\w]+,[$\\w]+\\))\\{[$\\w]+\\.exports=${q(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 G=null,id=null;const ad=e=>{if(G!=null)return G;let t=td(e);if(!t){console.log(`^ patch: getReactVar: failed to find moduleLoader`),G=void 0;return}let n=nd(e);if(!n){console.log(`^ patch: getReactVar: failed to find reactModuleVarNonBun`),G=void 0;return}let r=RegExp(`[^$\\w]([$\\w]+)=${q(t)}\\(${q(n)}\\(\\),1\\)`),i=e.match(r);if(i)return G=i[1],G;let a=rd(e);if(!a){console.log(`^ patch: getReactVar: failed to find reactModuleFunctionBun`),G=void 0;return}let o=RegExp(`[^$\\w]([$\\w]+)=${q(t)}\\(${q(a)}\\(\\),1\\)`),s=e.match(o);if(!s){console.log(`patch: getReactVar: failed to find bunPattern (moduleLoader=${t}, reactModuleVarNonBun=${n}, reactModuleFunctionBun=${a})`),G=void 0;return}return G=s[1],G},od=()=>{G=null},sd=e=>{let t=e.match(/import\{createRequire as ([$\w]+)\}from"node:module";/);if(!t)return;let n=t[1],r=RegExp(`var ([$\\w]+)=${q(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]},cd=e=>{if(id!=null)return id;let t=sd(e);return t?(id=t,id):(id=`require`,id)},ld=()=>{id=null},ud=()=>{od(),ld()},dd=e=>{let t=e.match(/function ([$\w]+)\([$\w]+\)\{let [$\w]+=[$\w]+\.c\(\d+\)[^;]{0,240};if\([$\w]+\[0\]!==[$\w]+\)\(\{color:[$\w]+,backgroundColor:[$\w]+,dimColor:[$\w]+,bold:[$\w]+/);if(t)return t[1];let n=e.match(/\bfunction ([$\w]+).{0,80}color:[$\w]+,backgroundColor:[$\w]+,dimColor:[$\w]+(?:=![01])?,bold:[$\w]+(?:=![01])?/);if(!n){console.log(`patch: findTextComponent: failed to find text component`);return}return n[1]},fd=(e,t)=>{let n=`[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*)*`,r=RegExp(`var [^;]{0,120};var [$\\w]+=${n}\\(\\(\\)=>\\{[^}]{0,500}([$\\w]+)=${q(t)}\\}\\)`),i=e.match(r)?.[1]??t,a=RegExp(`function ([$\\w]+)\\([^)]+\\)\\{(?=[\\s\\S]{0,2500}createElement\\(${q(i)},\\{\\.\\.\\.[$\\w]+,borderColor:)[\\s\\S]{0,3000}?return [$\\w]+\\}var [^;]{0,160};var [$\\w]+=${n}\\(\\(\\)=>\\{[^}]{0,600}([$\\w]+)=\\1\\}\\)`);return e.match(a)?.[2]},pd=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]+.{0,600}?\.\.\.([$\w]+)\}\)\{.{0,2500}?"margin".{0,2500}?"padding".{0,1200}?"gap".{0,1200}?\3\.flexWrap\?\?="nowrap",\3\.flexDirection\?\?="row",\3\.flexGrow\?\?=0,\3\.flexShrink\?\?=1,\3\.overflowX=\3\.overflowX\?\?\3\.overflow\?\?"visible",\3\.overflowY=\3\.overflowY\?\?\3\.overflow\?\?"visible",[$\w]+(?:\.default)?\.createElement\("ink-box",\{[^}]*style:\3\},\2\)/);if(a)return fd(e,a[1])??a[1];let o=e.match(/function ([$\w]+)\(\{children:[$\w]+,ref:[$\w]+,tabIndex:[$\w]+,autoFocus:[$\w]+/);if(o)return o[1];console.error(`patch: findBoxComponent: failed to find Box component (neither ink-box createElement nor displayName found)`)};let K=function(e){return e.SYSTEM_PROMPTS=`System Prompts`,e.ALWAYS_APPLIED=`Always Applied`,e.MISC_CONFIGURABLE=`Misc Configurable`,e.FEATURES=`Features`,e.SYSTEM_REMINDERS=`System Reminders`,e}({});const md=[{id:`verbose-property`,name:`Verbose property`,group:K.ALWAYS_APPLIED,description:`Token counter will show (2s · ↓ 169 tokens · thinking)`},{id:`read-default-lines`,name:`Read default lines (env-gated)`,group:K.ALWAYS_APPLIED,description:`Read tool default line cap becomes CLAUDE_CODE_READ_DEFAULT_LINES env var (falls back to 2000 if unset)`},{id:`opusplan1m`,name:`Opusplan[1m] support`,group:K.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:K.ALWAYS_APPLIED,description:`Restore dim/gray + italic styling for thinking blocks`},{id:`fix-lsp-support`,name:`Fix LSP support`,group:K.ALWAYS_APPLIED,description:`Enable/fix nascent LSP support`},{id:`no-global-cache-scope`,name:`Keep a replaced identity line out of the global prompt cache`,group:K.ALWAYS_APPLIED,description:`When a prompt override replaces one of Claude Code's identity lines, turn off the "global" cache scope that the first-party API rejects after a non-stock identity, so the prompt caches at organization scope instead. Does nothing while the identity lines are stock.`},{id:`fix-summarize-from-here`,name:`Fix "Summarize from here"`,group:K.MISC_CONFIGURABLE,description:`Make "Summarize from here" summarize only the messages after the rewind point (feed the slice, not the whole conversation)`,modelFacing:!0},{id:`fix-rewind-summary-header`,name:`Honest rewind summary header`,group:K.MISC_CONFIGURABLE,description:`Label a rewind summary as a deliberate rewind instead of the misleading "ran out of context" header`,modelFacing:!0},{id:`statusline-update-throttle`,name:`Statusline update throttling correction`,group:K.ALWAYS_APPLIED,description:`Statusline updates will be properly throttled instead of queued (or debounced)`},{id:`clear-screen`,name:`Clear screen command`,group:K.ALWAYS_APPLIED,description:`Register a /clear-screen command that clears the terminal scrollback and redraws without resetting conversation context`},{id:`strip-empty-system-reminders`,name:`Strip empty <system-reminder> wrappers`,group:K.ALWAYS_APPLIED,description:`Short-circuits CC's universal system-reminder wrapper so empty / "(no content)" inputs produce no reminder. Kills the drift-inducing "<system-reminder>(no content)</system-reminder>" blocks that get appended to roughly every other tool call.`},{id:`model-customizations`,name:`Model customizations`,group:K.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:K.MISC_CONFIGURABLE,description:`Show 25 items in select menus instead of default 5`},{id:`context-limit`,name:`Context limit`,group:K.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:K.MISC_CONFIGURABLE,description:`Show "tweakcc patches applied" and tweakcc version inside CC`},{id:`table-format`,name:`Table format`,group:K.MISC_CONFIGURABLE,description:`Tables generated by Claude will be rendered more compactly`},{id:`themes`,name:`Themes`,group:K.MISC_CONFIGURABLE,description:`Your custom themes will be available via /theme`},{id:`thinking-verbs`,name:`Thinking verbs`,group:K.MISC_CONFIGURABLE,description:`Your custom list of thinking verbs will be cycled through`},{id:`thinker-format`,name:`Thinker format`,group:K.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:K.MISC_CONFIGURABLE,description:`Your custom thinking spinner will be rendered`},{id:`thinker-symbol-speed`,name:`Thinker symbol speed`,group:K.MISC_CONFIGURABLE,description:`The thinking spinner will play at a custom FPS`},{id:`thinker-symbol-width`,name:`Thinker symbol width`,group:K.MISC_CONFIGURABLE,description:`The thinking spinner will be in a box of custom width`},{id:`thinker-symbol-mirror`,name:`Thinker symbol mirror`,group:K.MISC_CONFIGURABLE,description:`The thinking spinner will reverse or restart when it finishes`},{id:`input-box-border`,name:`Input box border`,group:K.MISC_CONFIGURABLE,description:`Your custom styles to the main input box's border will be applied`},{id:`input-chevron-color`,name:`Input chevron idle color`,group:K.MISC_CONFIGURABLE,description:`The idle input chevron will use your chosen theme color instead of the default`},{id:`subagent-models`,name:`Subagent models`,group:K.MISC_CONFIGURABLE,description:`Use custom models for Plan, Explore, and General subagents`},{id:`thinking-visibility`,name:`Thinking block visibility`,group:K.MISC_CONFIGURABLE,description:`Thinking blocks outputted by the model will show without Ctrl+O`},{id:`hide-startup-banner`,name:`Hide startup banner`,group:K.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:K.MISC_CONFIGURABLE,description:`Note about using Ctrl+G to edit prompt will be hidden`},{id:`hide-startup-clawd`,name:`Hide startup Clawd`,group:K.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:K.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:K.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:K.MISC_CONFIGURABLE,description:`/rate-limit-options won't be injected when limits are reached`},{id:`suppress-rate-limit-warning`,name:`Suppress rate limit warning`,group:K.MISC_CONFIGURABLE,description:`Rate limit warning banners in the status bar will be hidden`},{id:`session-color`,name:`Session color from env`,group:K.MISC_CONFIGURABLE,description:`Session prompt bar color is read from the TWEAKCC_SESSION_COLOR env var at each launch`},{id:`token-count-rounding`,name:`Token count rounding`,group:K.MISC_CONFIGURABLE,description:`Round displayed token counts to the nearest multiple of chosen value`},{id:`remember-skill`,name:`Remember skill`,group:K.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:K.MISC_CONFIGURABLE,description:`Support AGENTS.md and others in addition to CLAUDE.md`},{id:`auto-accept-plan-mode`,name:`Auto-accept plan mode`,group:K.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:K.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:K.MISC_CONFIGURABLE,description:`Suppress the native installer warning message at startup`},{id:`model-at-effort`,name:`/model name@effort`,group:K.MISC_CONFIGURABLE,description:`/model opus@high sets the model and then runs /effort high, in one command`},{id:`filter-scroll-escape-sequences`,name:`Filter scroll escape sequences`,group:K.MISC_CONFIGURABLE,description:`Filter out terminal escape sequences that cause unwanted scrolling`},{id:`max-effort-default`,name:`Default Opus 4.7 to max effort`,group:K.MISC_CONFIGURABLE,description:`Opus 4.7 sessions default to "max" reasoning effort instead of "xhigh" (override with /effort or CLAUDE_CODE_EFFORT_LEVEL)`,modelFacing:!0},{id:`autonomous-operation-all-models`,name:`Fable/Mythos prompt set (all models)`,group:K.MISC_CONFIGURABLE,description:`Treats your selected model as Fable/Mythos everywhere CC branches on model family (flips the zQ gate): you get the autonomous-operation prompt (proceed without asking for reversible in-scope work; finish the job before ending the turn), the "# Communicating with the user" comms block in place of "# Text output", /loop dynamic-pacing behavior, and brief-mode comms shaping. Per-model feature-flag routing also follows fable but is inert on a local install`,modelFacing:!0},{id:`refusal-fallback-model`,name:`Route the refusal fallback, then switch back`,group:K.MISC_CONFIGURABLE,description:`When safeguards flag a message, Claude Code retries it on a fallback model from its own route table, keyed by the flagged model and the refusal category, and keeps the session on that model. This merges refusalFallbackRoutes from config.json over that table (a category you leave out keeps its stock route, one you route falls back to the stock route when none of your models is usable, and a route is a model id or a chain of them) and switches the session back to its own model once the flagged turn is answered, with a line in the transcript. refusalFallbackMaxReturns in config.json (default 1, null for no limit) caps consecutive returns, so a conversation that keeps being flagged stays on the fallback instead of paying a refusal and a retry every turn`,modelFacing:!1},{id:`output-style-turn-reminder`,name:`Custom output styles carry their own per-turn reminder`,group:K.MISC_CONFIGURABLE,description:`Claude Code restates which output style is active once per turn. Since 2.1.238 that reminder fires for custom styles as well as built-in ones, but its text is fixed: every style you write gets the same generic "Remember to follow the specific guidelines for this style." This lets a style supply its own sentence instead. Add \`turn-reminder:\` to the style's markdown frontmatter and that text is what gets restated each turn, the way the built-in styles carry their own. Without this, the key is read by the frontmatter parser and then dropped on the way to the renderer, so it has no effect. On Claude Code before 2.1.238 this also makes the reminder fire for custom styles at all, which stock builds of that era skipped entirely. The per-turn slot is the position Anthropic's own Opus 5 guidance points at for tone, where a short reminder late in a long prompt is their measured remedy.`,modelFacing:!0},{id:`auto-mode-classifier-model`,name:`Auto-mode classifier model`,group:K.MISC_CONFIGURABLE,description:`Pin auto-mode bash safety classifier to Sonnet 4.6 or Haiku 4.5 instead of the user main-loop model (avoids Opus 4.7 congestion denying tool calls)`,modelFacing:!0},{id:`complexity-router`,name:`[EXPERIMENTAL] Complexity effort router`,group:K.FEATURES,description:`Choose reasoning effort for each user message only while an Effort Router model entry is selected. Uses Haiku, or Jev decisions with asynchronous Haiku conversation summaries, and honors explicit effort overrides. Jev requires a TypeSafe API key and sends the current message and bounded conversation context to TypeSafe. Off by default.`,modelFacing:!0},{id:`fable-plan`,name:`Fable Plan mode`,group:K.FEATURES,description:`Adds a "fableplan" entry to /model: Fable while planning, Opus while executing, each at the reasoning effort you set for that model in /model (Claude Code's per-model effort). Mirrors the mechanism Claude Code already ships for opusplan, so it is a MODEL YOU SELECT — nothing changes for any other model, your selection stays "fableplan" throughout, and no model is ever switched underneath you mid-session. Also surfaces Claude Code's own "Yes, clear context (N% used)" option on the plan-approval dialog, which Claude Code defaults off: clearing hands only the plan to the executing model, where continuing re-sends the entire planning transcript to a different one. Off by default.`,modelFacing:!0},{id:`complexity-router-models`,name:`Effort Router model entries`,group:K.FEATURES,description:`Adds opt-in Opus 5.5 and Fable 5.1 + Effort Router entries to /model. Ordinary models keep native effort behavior. Selecting a router entry enables the configured effort provider; switching away stops routing and background summaries.`,modelFacing:!0},{id:`allow-custom-agent-models`,name:`Allow custom agent models`,group:K.FEATURES,description:`Allow arbitrary model names in custom agent frontmatter (e.g. gemini-2.5-flash)`},{id:`unlock-responsive-mode`,name:`Unlock responsive mode`,group:K.FEATURES,description:`Make Claude Code's bundled responsive-mode plugin selectable. Claude Code 2.1.280 ships the whole feature in the binary - a system-reminder telling Claude to answer the message before it thinks or picks up a tool, and a system-prompt section ruling out stock AI phrasing (eager openers, agreement reflexes, corporate vocabulary, wrap-ups) - but gates it behind a server flag that answers no. This drops the flag check and keeps the session-kind guard, so the plugin appears in /plugin. It is registered DISABLED, so nothing changes until you turn it on there. Off by default.`,modelFacing:!0},{id:`worktree-mode`,name:`Worktree mode`,group:K.FEATURES,description:`Enable the EnterWorktree tool for isolated git worktree sessions`},{id:`session-memory`,name:`Session memory`,group:K.FEATURES,description:`Enable session memory (auto-extraction + past session search)`},{id:`swap-ripgrep-for-fff`,name:`[EXPERIMENTAL] fff for Bash search (grep/find/rg → fff)`,group:K.FEATURES,description:"[EXPERIMENTAL] Route Claude Code's Bash search through fff (fast file finder). CC 2.1.186 shadows the shell `grep`→embedded ugrep and `find`→embedded bfs (and offers `rg`); the agent uses grep ~136x more than rg. This repoints all three at a per-platform fff wrapper that serves, relevance-ranked from a warm-index daemon: literal, regex (RE2 — the dialect the model writes), case-insensitive (-i), multi-word phrases, context (-A/-B/-C), extension globs (-g/--include '*.ts'), and multi-path (app lib scripts) searches. Anything fff can't serve faithfully — PCRE, multiline/newline- or empty-matching regex, only-matching (-o), single-file, non-recursive grep, --no-ignore, find, non-ASCII, lines over 512 bytes, piped stdin → re-exec the real embedded ugrep/bfs/ripgrep. Every engine still ships; any uncertainty falls back, so results never diverge from the model's intent. Transparent (no prompt-compliance reliance) and CC-scoped (the user's own terminal grep/find/rg are untouched). Installs the wrapper into ~/.tweakcc/fff."},{id:`dream-mode`,name:`Dream mode`,group:K.FEATURES,description:`Enable dream (/dream + auto-dream background memory consolidation)`,modelFacing:!0},{id:`lean-memory-types`,name:`Lean memory types`,group:K.FEATURES,description:`Compact "Types of memory" prompt block + on-demand memory-types skill`,modelFacing:!0},{id:`toolsets`,name:`Toolsets`,group:K.FEATURES,description:`Custom toolsets will be registered`},{id:`mcp-non-blocking`,name:`MCP non-blocking`,group:K.FEATURES,description:`If you have MCP servers, CC startup will be much faster`},{id:`mcp-batch-size`,name:`MCP batch size`,group:K.FEATURES,description:`Change the number of MCP servers started in parallel`},{id:`user-message-display`,name:`User message display`,group:K.FEATURES,description:`User messages in the chat history will be styled`},{id:`input-pattern-highlighters`,name:`Input pattern highlighters`,group:K.FEATURES,description:`Custom input highlighters will be registered`},{id:`conversation-title`,name:`Conversation title`,group:K.FEATURES,description:`/title command will be created & enabled`},{id:`voice-mode`,name:`Voice mode`,group:K.FEATURES,description:`Enable /voice command for speech-to-text input (hold Space to record)`},{id:`channels-mode`,name:`Channels mode`,group:K.FEATURES,description:`Enable MCP channel notifications (--channels without allowlist or dev flag)`},{id:`attached-background-interactive`,name:`Attached background sessions are interactive`,group:K.FEATURES,description:`While a client is attached, a background session offers ProposeGoal, usage-limit auto-resume and the auto mode and workflow prompts`,modelFacing:!0},{id:`enable-propose-goal`,name:`ProposeGoal`,group:K.FEATURES,description:`Force the tengu_propose_goal flag on, so the model can propose session goals and /config shows "Claude-proposed goals"`,modelFacing:!0},{id:`suppress-deferred-tools`,name:`Suppress deferred tools list (DANGEROUS)`,group:K.SYSTEM_REMINDERS,description:`Kill the "deferred tools are now available via ToolSearch" announcement. WARNING: MCP/Cron/EnterPlanMode/WebFetch/Monitor become invisible to the model unless explicitly named.`,modelFacing:!0},{id:`claudemd-context-once-per-conversation`,name:`claudeMd context: once per conversation`,group:K.SYSTEM_REMINDERS,description:`Inject the claudeMd / userEmail / currentDate <system-reminder> only on the first API call per conversation (re-fires after /clear). Default: ON. Toggle OFF for vanilla CC per-turn injection.`,modelFacing:!0}],hd=()=>[...md],q=e=>e.replace(/\$/g,`\\$`),gd=(e,t,n)=>{let r=[];for(let i of md){let a=t[i.id];if(n&&!n.includes(i.id)&&i.id!==`no-global-cache-scope`){r.push({id:i.id,name:i.name,group:i.group,applied:!1,skipped:!0,details:`not in --patches filter`,description:i.description});continue}if(a.condition===!1){r.push({id:i.id,name:i.name,group:i.group,applied:!1,skipped:!0,details:`not enabled`,description:i.description});continue}J(`Applying patch: ${i.name}`);let o=[],s=console.error;console.error=(...e)=>{o.push(e.map(String).join(` `)),s(...e)};let c;try{c=a.fn(e)}finally{console.error=s}let l=c===null,u=!l&&c!==e,d=!l&&o.length>0;c!==null&&(e=c),r.push({id:i.id,name:i.name,group:i.group,applied:u,failed:l,...d&&{partial:d,details:`partially applied (${o[0].replace(/^patch: [^:]+: /,``)})`},description:i.description,modelFacing:i.modelFacing})}return{content:e,results:r}},_d=e=>{if(process.env.TWEAKCC_ALLOW_CROSS_PLATFORM===`1`)return;let t=v(e,[`--version`],{encoding:`utf8`,timeout:15e3}),n=`${t.stdout??``}${t.stderr??``}`;if(t.error||t.status!==0||/Expected CommonJS module|Bun v|TypeError/.test(n)){let t=Error(`Patched native binary failed startup sanity check (${e}).\n`+n.trim());throw t.stack=t.message,t}},vd=async(e,r,i)=>{let o,c=!1;if(r.nativeInstallationPath){await Zu(r);let e=!1;try{await a.stat(nf),e=!0}catch{}let t=e?nf:r.nativeInstallationPath;J(`Extracting claude.js from ${e?`backup`:`native installation`}: ${t}`);let{data:n,clearBytecode:i,error:l}=await j(t,r.version);if(!n)throw Error(`Failed to extract claude.js from native installation${l?`: ${l}`:``}`);c=i;let d=u.join(Z,`native-claudejs-orig.js`);s.writeFileSync(d,n),J(`Saved original extracted JS from native to: ${d}`),o=n.toString(`utf8`)}else{if(await Xu(r),!r.cliPath)throw Error(`cliPath is required for NPM installations`);o=await a.readFile(r.cliPath,{encoding:`utf8`})}let l=[],d=o;if(r.version){let e=await Pa({pristine:d,version:r.version,patchFilter:i}).catch(e=>(J(`system-prompt preflight skipped: ${e}`),null)),n=[];for(let r of e?.findings??[]){let e=`preflight: ${Fa(r)}`;r.severity===`error`?console.log(t.red(e)):(n.push(e),J(e))}n.length>0&&J(`system-prompt preflight: ${n.length} advisory finding(s) — run --validate-system-prompts for the full report`);let a=(e?.findings??[]).filter(e=>e.check===`raw-non-ascii`);if(a.length>0)throw Error(`system-prompt preflight found ${a.length} span(s) that would introduce raw non-ASCII into the binary; nothing was modified. Re-run with --validate-system-prompts for the full report.`)}let f=await ka(o);o=f.content;let p=f.results.filter(e=>e.applied),m=f.results.filter(e=>e.failed);if(f.results.length>0){J(`inlineBlobOverrides: ${p.length} applied, ${m.length} failed`);for(let e of m)console.log(`inline-blob: failed "${e.name}" (${e.filename}): ${e.details}`)}for(let e of f.results)l.push({id:`inline-blob:${e.filename}`,name:e.name,group:K.SYSTEM_PROMPTS,applied:e.applied,failed:e.failed,skipped:e.skipped,details:e.details});let h=await dr(o,r.version??``);o=h.content;for(let e of h.results)l.push({id:`reminder:${e.id}`,name:`Reminder: ${e.name} (${e.state})`,group:K.SYSTEM_REMINDERS,applied:e.applied,failed:e.failed,skipped:e.skipped,details:e.details,description:e.description});let g=await pa(o,r.version,void 0,i,d);o=g.newContent;let _=g.results.some(e=>e.applied&&[`system-prompt-identity`,`system-prompt-cli-identity-agent-sdk`,`system-prompt-claude-agent-identity-sdk`].includes(e.id)),v=[...g.results].sort((e,t)=>e.name.localeCompare(t.name));l.push(...v);let y=e=>e.replace(/\\/g,`\\\\`).replace(/`/g,"\\`").replace(/\$/g,`\\$`),b=v.filter(e=>e.applied&&e.details).map(e=>y(`${e.name}: ${e.details}`)),x=e.settings.misc?.tableFormat??`default`,S=e.settings.misc?.showTweakccVersion??!0,C=e.settings.misc?.showPatchesApplied??!0,w=e.settings.misc?.enableModelCustomizations??!0,T=!!e.settings.misc?.swapRipgrepForFff,E=null;T&&(E=await Lu(),E||console.log(`patch: swapRipgrepForFff: no fff wrapper available for this platform — keeping ripgrep`));let O={"verbose-property":{fn:e=>Ge(e),condition:!r.nativeInstallationPath},"read-default-lines":{fn:e=>yu(e)},"context-limit":{fn:e=>ge(e),condition:!!e.settings.misc?.enableContextLimitOverride},opusplan1m:{fn:e=>Qe(e),condition:w&&!r.nativeInstallationPath},"thinking-block-styling":{fn:e=>zs(e),condition:r.version==null||_t(r.version,`2.1.26`)<0},"fix-lsp-support":{fn:e=>La(e)},"no-global-cache-scope":{fn:e=>Ga(e,d,_)},"fix-summarize-from-here":{fn:e=>Ka(e),condition:e.settings.misc?.fixSummarizeFromHere!==!1},"fix-rewind-summary-header":{fn:e=>qa(e),condition:e.settings.misc?.fixRewindSummaryHeader!==!1},"statusline-update-throttle":{fn:t=>Gs(t,e.settings.misc?.statuslineThrottleMs??300,e.settings.misc?.statuslineUseFixedInterval??!1),condition:e.settings.misc?.statuslineThrottleMs!=null},"clear-screen":{fn:e=>fu(e)},"strip-empty-system-reminders":{fn:e=>zu(e)},"patches-applied-indication":{fn:e=>gt(e,D,b,S,C)},"model-customizations":{fn:e=>xd(e),condition:w},"show-more-items-in-select-menus":{fn:e=>le(e,25),condition:w},"table-format":{fn:e=>Yo(e,x),condition:x!==`default`},themes:{fn:t=>me(t,e.settings.themes),condition:!!(e.settings.themes&&e.settings.themes.length>0&&JSON.stringify(e.settings.themes)!==JSON.stringify(P.themes))},"thinking-verbs":{fn:t=>ke(t,e.settings.thinkingVerbs.verbs),condition:!!e.settings.thinkingVerbs&&JSON.stringify(e.settings.thinkingVerbs.verbs)!==JSON.stringify(P.thinkingVerbs.verbs)},"thinker-format":{fn:t=>be(t,e.settings.thinkingVerbs.format),condition:!!e.settings.thinkingVerbs&&e.settings.thinkingVerbs.format!==P.thinkingVerbs.format},"thinker-symbol-chars":{fn:t=>Ce(t,e.settings.thinkingStyle.phases),condition:JSON.stringify(e.settings.thinkingStyle.phases)!==JSON.stringify(P.thinkingStyle.phases)},"thinker-symbol-speed":{fn:t=>we(t,e.settings.thinkingStyle.updateInterval),condition:e.settings.thinkingStyle.updateInterval!==P.thinkingStyle.updateInterval&&(r.version==null||_t(r.version,`2.1.27`)<0)},"thinker-symbol-width":{fn:t=>Ee(t,Math.max(...e.settings.thinkingStyle.phases.map(e=>e.length))+1),condition:JSON.stringify(e.settings.thinkingStyle.phases)!==JSON.stringify(P.thinkingStyle.phases)},"thinker-symbol-mirror":{fn:t=>Se(t,e.settings.thinkingStyle.reverseMirror),condition:e.settings.thinkingStyle.reverseMirror!==P.thinkingStyle.reverseMirror},"input-box-border":{fn:t=>_e(t,e.settings.inputBox.removeBorder),condition:!!(e.settings.inputBox&&e.settings.inputBox.removeBorder!==P.inputBox.removeBorder)},"input-chevron-color":{fn:t=>{let n=e.settings.inputBox.chevronIdleThemeColor;return ve(t,e.settings.themes?.[0]?.colors?.[n]??n)},condition:!!e.settings.inputBox?.chevronIdleThemeColor},"subagent-models":{fn:t=>rt(t,e.settings.subagentModels),condition:!!e.settings.subagentModels&&JSON.stringify(e.settings.subagentModels)!==JSON.stringify(P.subagentModels)},"thinking-visibility":{fn:e=>$e(e),condition:e.settings.misc?.expandThinkingBlocks??!0},"hide-startup-banner":{fn:e=>us(e),condition:!!e.settings.misc?.hideStartupBanner},"hide-ctrl-g-to-edit":{fn:e=>fs(e),condition:!!e.settings.misc?.hideCtrlGToEdit},"hide-startup-clawd":{fn:e=>gs(e),condition:!!e.settings.misc?.hideStartupClawd},"increase-file-read-limit":{fn:e=>vs(e),condition:!!e.settings.misc?.increaseFileReadLimit},"suppress-line-numbers":{fn:e=>bs(e),condition:!!e.settings.misc?.suppressLineNumbers},"suppress-rate-limit-options":{fn:e=>Cs(e),condition:!!e.settings.misc?.suppressRateLimitOptions},"suppress-rate-limit-warning":{fn:e=>ws(e),condition:!!e.settings.misc?.suppressRateLimitWarning},"session-color":{fn:e=>_u(e),condition:!!e.settings.misc?.sessionColor},"token-count-rounding":{fn:t=>Ys(t,e.settings.misc.tokenCountRounding),condition:!!e.settings.misc?.tokenCountRounding},"remember-skill":{fn:e=>Rs(e),condition:!!e.settings.misc?.enableRememberSkill},"agents-md":{fn:t=>Xs(t,e.settings.claudeMdAltNames),condition:!!(e.settings.claudeMdAltNames&&e.settings.claudeMdAltNames.length>0)},"auto-accept-plan-mode":{fn:e=>oc(e),condition:!!e.settings.misc?.autoAcceptPlanMode},"allow-sudo-bypass-permissions":{fn:e=>sc(e),condition:!!e.settings.misc?.allowBypassPermissionsInSudo},"suppress-native-installer-warning":{fn:e=>lc(e),condition:!!e.settings.misc?.suppressNativeInstallerWarning},"model-at-effort":{fn:e=>uc(e),condition:e.settings.misc?.modelAtEffort??!0},"filter-scroll-escape-sequences":{fn:e=>fc(e),condition:!!e.settings.misc?.filterScrollEscapeSequences},"max-effort-default":{fn:e=>gc(e),condition:!!e.settings.misc?.maxEffortDefault},"autonomous-operation-all-models":{fn:e=>_c(e),condition:!!e.settings.misc?.autonomousOperationAllModels},"refusal-fallback-model":{fn:t=>Wc(t,e.settings.misc?.refusalFallbackRoutes,e.settings.misc?.refusalFallbackMaxReturns),condition:!!e.settings.misc?.refusalFallbackModel},"output-style-turn-reminder":{fn:e=>Kc(e),condition:!!e.settings.misc?.outputStyleTurnReminder},"auto-mode-classifier-model":{fn:t=>Jc(t,e.settings.misc?.autoModeClassifierModel??`default`),condition:(e.settings.misc?.autoModeClassifierModel??`default`)!==`default`},"complexity-router":{fn:t=>bl(t,e.settings.complexityRouter),condition:e.settings.complexityRouter.enabled},"fable-plan":{fn:t=>Ul(t,e.settings.fablePlan),condition:e.settings.fablePlan.enabled},"complexity-router-models":{fn:e=>Tl(e),condition:e.settings.complexityRouter.enabled},"allow-custom-agent-models":{fn:e=>hc(e),condition:!!e.settings.misc?.allowCustomAgentModels},"unlock-responsive-mode":{fn:e=>mc(e),condition:!!e.settings.misc?.unlockResponsiveMode},"worktree-mode":{fn:e=>pc(e),condition:!!e.settings.misc?.enableWorktreeMode},"session-memory":{fn:e=>Ms(e),condition:!!e.settings.misc?.enableSessionMemory},"swap-ripgrep-for-fff":{fn:e=>Au(e,E),condition:T&&!!E},"dream-mode":{fn:e=>Ns(e),condition:!!e.settings.misc?.enableDreamMode},"lean-memory-types":{fn:e=>Ps(e),condition:!!e.settings.misc?.enableLeanMemoryTypes},toolsets:{fn:t=>Lo(t,e.settings.toolsets,e.settings.defaultToolset,e.settings.acceptEditsToolset,e.settings.planModeToolset),condition:!!(e.settings.toolsets&&e.settings.toolsets.length>0)},"mcp-non-blocking":{fn:e=>Us(e),condition:!!e.settings.misc?.mcpConnectionNonBlocking&&(r.version==null||_t(r.version,`2.1.85`)<0)},"mcp-batch-size":{fn:t=>Ws(t,e.settings.misc.mcpServerBatchSize),condition:!!e.settings.misc?.mcpServerBatchSize},"user-message-display":{fn:t=>Re(t,e.settings.userMessageDisplay),condition:!!(e.settings.userMessageDisplay&&JSON.stringify(e.settings.userMessageDisplay)!==JSON.stringify(P.userMessageDisplay))},"input-pattern-highlighters":{fn:t=>Ue(t,e.settings.inputPatternHighlighters),condition:!!(e.settings.inputPatternHighlighters&&e.settings.inputPatternHighlighters.length>0)},"conversation-title":{fn:e=>ss(e),condition:(e.settings.misc?.enableConversationTitle??!0)&&!r.nativeInstallationPath},"voice-mode":{fn:t=>ql(t,e.settings.misc?.enableVoiceConciseOutput??!0),condition:!!e.settings.misc?.enableVoiceMode},"channels-mode":{fn:e=>eu(e),condition:!!e.settings.misc?.enableChannelsMode},"attached-background-interactive":{fn:e=>uu(e),condition:!!e.settings.misc?.attachedBackgroundInteractive},"enable-propose-goal":{fn:e=>du(e),condition:!!e.settings.misc?.enableProposeGoal},"suppress-deferred-tools":{fn:e=>Bu(e),condition:!!e.settings.misc?.suppressDeferredTools},"claudemd-context-once-per-conversation":{fn:e=>Ru(e),condition:e.settings.misc?.claudemdContextOncePerConversation??!1}},{content:k,results:A}=gd(o,O,i);o=k,l.push(...A);let N=A.filter(e=>e.failed);if(r.nativeInstallationPath&&N.length>0){let e=Error(`Refusing to repack the native binary: ${N.length} binary patch(es) failed (${N.map(e=>e.id).join(`, `)}) on Claude Code ${r.version}. The binary was left unchanged — your Claude Code still works. Each failure’s cause is in the "patch: … failed to …" line(s) above; this usually means Anthropic changed the code shape in CC ${r.version}, so a patch’s pattern no longer matches. Update tweakcc-fixed, or disable the failing optional patch(es) in ~/.tweakcc/config.json, then re-run --apply.`);throw e.stack=e.message,e}if(r.nativeInstallationPath){J(`Repacking modified claude.js into native installation: ${r.nativeInstallationPath}`);let e=u.join(Z,`native-claudejs-patched.js`);s.writeFileSync(e,o,`utf8`),J(`Saved patched JS from native to: ${e}`);let t=Buffer.from(o,`utf8`),i=await a.mkdtemp(u.join(n.tmpdir(),`tweakcc-native-`)),l=u.join(i,u.basename(r.nativeInstallationPath));try{await a.copyFile(r.nativeInstallationPath,l),await a.chmod(l,s.statSync(r.nativeInstallationPath).mode),await M(l,t,l,c),_d(l);let e=r.nativeInstallationPath,n=u.join(u.dirname(e),`.${u.basename(e)}.tweakcc-${process.pid}`);try{await a.copyFile(l,n),await a.chmod(n,s.statSync(e).mode),await a.rename(n,e)}catch(e){throw await a.rm(n,{force:!0}),e}}finally{await a.rm(i,{recursive:!0,force:!0})}}else{if(!r.cliPath)throw Error(`cliPath is required for NPM installations`);N.length>0&&console.warn(`tweakcc: ${N.length} patch(es) did not apply on Claude Code ${r.version}: ${N.map(e=>e.id).join(`, `)}. Those feature(s) are skipped; everything else was applied. Each cause is in the "patch: … failed to …" line(s) above — usually a CC version whose code shape a patch does not match yet. Update tweakcc-fixed, or disable the failing optional patch(es) in ~/.tweakcc/config.json.`),await Ud(r.cliPath,o,`patch`)}return{config:await pf(e=>{e.changesApplied=!0}),results:l}},yd=[{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)`}],bd=e=>{let t=e.match(/(?<![$\w])([$\w]+)\.push\(\{value:[$\w]+,label:[^,]{1,40},description:[^"]{0,40}"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-5e3),i=e.slice(r,t.index),a=`(?:(?:let|var|const) |,)${q(n)}=.+?;`,o=RegExp(`function [$\\w]+\\([^)]*\\)\\{[\\s\\S]{0,5000}?${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)},xd=e=>{if(e.includes(`"value":"claude-opus-4-6"`))return console.log(`patch: modelCustomizations: custom models already present — skipping`),e;let t=bd(e);if(!t)return null;let{insertionIndex:n,modelListVar:r}=t,i=yd.map(e=>`${r}.push(${JSON.stringify(e)});`).join(``),a=e.slice(0,n)+i+e.slice(n);return V(e,a,i,n,n),a};let Sd=!1,Cd=!1,wd=!1;const Td=()=>Sd,Ed=()=>Cd,Dd=()=>wd,Od=()=>{Sd=!0},kd=()=>{Cd=!0,Sd=!0},Ad=()=>{wd=!0},J=(e,...t)=>{Td()&&console.log(e,...t)},Y=(e,...t)=>{Ed()&&console.log(e,...t)},X=e=>e.replace(/[\u0080-\uffff]/g,e=>`\\u`+e.charCodeAt(0).toString(16).padStart(4,`0`));function jd(){try{let e=p.join(m.homedir(),`.claude.json`);return JSON.parse(f.readFileSync(e,`utf8`)).theme||`dark`}catch{}return`dark`}function Md(e){try{let t=p.join(m.homedir(),`.claude.json`),n=JSON.parse(f.readFileSync(t,`utf8`));n.theme=e,f.writeFileSync(t,JSON.stringify(n,null,2))}catch{}}function Nd(){try{let e=p.join(m.homedir(),`.claude`,`.credentials.json`);switch(JSON.parse(f.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 Pd(){try{let e=p.join(m.homedir(),`.claude`,`settings.json`),t=JSON.parse(f.readFileSync(e,`utf8`))?.model||`default`;if(t===`opus`)return`Opus 4.5`;let n=yd.find(e=>e.value===t);if(n)return n.label}catch{}return`Opus 4.5`}function Fd(e){process.platform===`win32`?h.spawn(`explorer`,[e],{detached:!0,stdio:`ignore`}).unref():process.platform===`darwin`?h.spawn(`open`,[e],{detached:!0,stdio:`ignore`}).unref():h.spawn(`xdg-open`,[e],{detached:!0,stdio:`ignore`}).unref()}function Id(e){if(process.platform===`win32`)h.spawn(`explorer`,[`/select,`,e],{detached:!0,stdio:`ignore`}).unref();else if(process.platform===`darwin`)h.spawn(`open`,[`-R`,e],{detached:!0,stdio:`ignore`}).unref();else{let t=p.dirname(e);h.spawn(`xdg-open`,[t],{detached:!0,stdio:`ignore`}).unref()}}function Ld(e,t=`md`){let n=process.env.VISUAL||process.env.EDITOR||(process.platform===`win32`?`notepad`:`vi`),r=p.join(m.tmpdir(),`tweakcc-edit-${process.pid}-${Date.now()}.${t}`);try{f.writeFileSync(r,e,`utf8`);let t=h.spawnSync(`${n} "${r}"`,{stdio:`inherit`,shell:!0});return t.error||typeof t.status==`number`&&t.status!==0?null:f.readFileSync(r,`utf8`)}catch{return null}finally{try{f.unlinkSync(r)}catch{}}}function Rd(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 zd(e){if(!Rd(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 Bd(e,t=`sha256`,n=64*1024){return new Promise((r,i)=>{let a=g.createHash(t),o=f.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 Vd(e,t){try{let n=await o.stat(e);return J(`[${t}] Original file mode for ${e}: ${(n.mode&511).toString(8)}`),n.mode}catch(n){return J(`[${t}] Could not stat ${e} (error: ${n}), using default mode 755`),493}}async function Hd(e,t,n,r){let i=`${e}.tweakcc-tmp-${process.pid}`;try{await r(i),await o.chmod(i,t),await o.rename(i,e)}catch(e){try{await o.unlink(i)}catch{}throw e}J(`[${n}] Replaced ${e} via atomic rename, mode ${(t&511).toString(8)}`)}async function Ud(e,t,n=`replace`){await Hd(e,await Vd(e,n),n,e=>o.writeFile(e,t))}async function Wd(e,t,n=`replace`){await Hd(e,await Vd(e,n),n,e=>o.copyFile(t,e))}async function Gd(e){try{return await o.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 Kd=e=>e.startsWith(`~`)?p.join(m.homedir(),e.slice(1)):e,qd=(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]},Jd=e=>{let t=e.toString(),n=t.lastIndexOf(`/`);return`new RegExp(${JSON.stringify(t.substring(1,n))}, ${JSON.stringify(t.substring(n+1))})`};function Yd(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]=Yd(n[e],r)):n[e]=r}return n}const Xd=async(e,t=33554432)=>{let n=Number(e.headers.get(`content-length`));if(Number.isFinite(n)&&n>t)throw Error(`Response body too large: ${n} bytes exceeds the ${t}-byte limit.`);let r=e.body;if(!r){let n=await e.text();if(Buffer.byteLength(n,`utf8`)>t)throw Error(`Response body exceeds the ${t}-byte limit.`);return n}let i=r.getReader(),a=[],o=0;for(;;){let{done:e,value:n}=await i.read();if(e)break;if(n){if(o+=n.byteLength,o>t)throw await i.cancel().catch(()=>{}),Error(`Response body exceeds the ${t}-byte limit — aborting download.`);a.push(Buffer.from(n))}}return Buffer.concat(a).toString(`utf8`)},Zd=e=>{let t=e?.settings?.userMessageDisplay;if(!t)return;let n=!!t.prefix,r=`borderStyle`in t,i=`padding`in t,a=`paddingX`in t,o=`fitBoxToContent`in t,s=t.padding;n&&(e.settings.userMessageDisplay={format:(t.prefix?.format||``)+(t.message?.format||`{}`),styling:[...t.prefix?.styling||[],...t.message?.styling||[]],foregroundColor:t.message?.foregroundColor===`rgb(0,0,0)`?`default`:t.message?.foregroundColor||t.prefix?.foregroundColor||`default`,backgroundColor:t.message?.backgroundColor===`rgb(0,0,0)`?null:t.message?.backgroundColor||t.prefix?.backgroundColor||null,borderStyle:`none`,borderColor:`rgb(255,255,255)`,paddingX:0,paddingY:0,fitBoxToContent:!1});let c=e.settings.userMessageDisplay;r||(c.borderStyle=`none`,c.borderColor=`rgb(255,255,255)`),i&&!a?(c.paddingX=s||0,c.paddingY=0,delete c.padding):a||(c.paddingX=0,c.paddingY=0),o||(c.fitBoxToContent=!1)},Qd=e=>{let t=e?.settings?.misc;t&&`hideCtrlGToEditPrompt`in t&&(t.hideCtrlGToEdit=t.hideCtrlGToEditPrompt,delete t.hideCtrlGToEditPrompt)};async function $d(){try{let e=await o.readFile(Q,`utf8`),t=JSON.parse(e);return Object.hasOwn(t,`ccInstallationDir`)?(t.ccInstallationDir&&!t.ccInstallationPath&&(t.ccInstallationPath=d.join(t.ccInstallationDir,`cli.js`)),delete t.ccInstallationDir,t.lastModified=new Date().toISOString(),await sf(),await o.writeFile(Q,JSON.stringify(t,null,2)),!0):!1}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`||e instanceof SyntaxError)return!1;throw e}}const ef=()=>{let e=process.env.TWEAKCC_CONFIG_DIR?.trim();if(e&&e.length>0)return Kd(e);let t=d.join(r.homedir(),`.tweakcc`),n=d.join(r.homedir(),`.claude`,`tweakcc`),i=process.env.XDG_CONFIG_HOME;try{if(c.existsSync(t))return t}catch(e){J(`Failed to check if ${t} exists: ${e}`)}try{if(c.existsSync(n))return n}catch(e){J(`Failed to check if ${n} exists: ${e}`)}return i?d.join(i,`tweakcc`):t},Z=ef(),Q=d.join(Z,`config.json`),tf=d.join(Z,`cli.js.backup`),nf=d.join(Z,`native-binary.backup`),$=d.join(Z,`system-prompts`),rf=d.join(Z,`system-reminders`),af=d.join(Z,`prompt-data-cache`),of=()=>{let e=Z,n=r.homedir(),i=[d.join(n,`.tweakcc`),d.join(n,`.claude`,`tweakcc`),process.env.XDG_CONFIG_HOME?d.join(process.env.XDG_CONFIG_HOME,`tweakcc`):null].filter(e=>e!==null).filter(t=>{try{return c.existsSync(t)&&t!==e}catch{return!1}});i.length>0&&(console.warn(t.yellow(`
1090
1090
  Multiple configuration locations detected:`)),console.warn(t.gray(` Active: ${e}`)),console.warn(t.gray(` Other existing locations:`)),i.forEach(e=>{console.warn(t.gray(` - ${e}`))}),console.warn(t.gray(` Only the active location is used. To switch locations,`)),console.warn(t.gray(` move your config.json to the desired directory.
1091
- `)))},Yd=async()=>{await o.mkdir(Z,{recursive:!0}),await o.mkdir($,{recursive:!0}),await o.mkdir(Kd,{recursive:!0});let e=d.join(Z,`.gitignore`);try{await o.stat(e)}catch(t){t instanceof Error&&`code`in t&&t.code===`ENOENT`&&await o.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(i)+i)}};let Xd=null;const Zd=()=>({ccVersion:``,ccInstallationPath:null,lastModified:new Date().toISOString(),changesApplied:!0,settings:P}),Qd=e=>{let t=e?.settings?.thinkingVerbs;t?.punctuation&&(t.format=`{}`+t.punctuation,delete t.punctuation),Bd(e),e.settings=Rd(e.settings,P),e.settings.inputPatternHighlighters&&(e.settings.inputPatternHighlighters=e.settings.inputPatternHighlighters.map(e=>Rd(e,ne))),e.settings.toolsets&&(e.settings.toolsets=e.settings.toolsets.map(e=>Rd(e,re))),e.settings.themes&&(e.settings.themes=e.settings.themes.map(e=>Rd(e,ie)));{let t=e.settings.complexityRouter;delete t.mode;let n=P.complexityRouter,r=(e,t,n,r)=>typeof e==`number`&&Number.isFinite(e)?Math.min(r,Math.max(n,Math.round(e))):t;t.provider=t.provider===`jev`?`jev`:`haiku`,t.jevModel=`jev-1.13.0`,t.jevTimeoutMs=r(t.jevTimeoutMs,2e3,250,3e4),t.contextBudgetBytes=r(t.contextBudgetBytes,24e3,4e3,28e3),t.summaryMaxChars=r(t.summaryMaxChars,6e3,500,12e3),Reflect.deleteProperty(t,`jevConfidenceThreshold`),t.messageCap=r(t.messageCap,n.messageCap,500,4e5),t.assistantCap=r(t.assistantCap,n.assistantCap,500,4e5),t.timeoutMs=r(t.timeoutMs,n.timeoutMs,1e3,12e4),(typeof t.systemPrompt!=`string`||t.systemPrompt.trim().length===0)&&(t.systemPrompt=n.systemPrompt);let i=P.complexityRouter.levels,a=[`low`,`medium`,`high`,`xhigh`,`max`];t.levels=Array.isArray(t.levels)&&t.levels.length>0?t.levels.map((e,t)=>{let n=i[Math.min(t,i.length-1)],r=Rd(e,n);return a.includes(r.effort)||(r.effort=n.effort),t>=i.length&&(r.id=`level-${t}`),r}):i.map(e=>({...e}))}Vd(e),e.settings.misc&&delete e.settings.misc.adhdOutputStyle,delete e.settings.launchText},$d=async()=>{let e=Zd();try{J(`Reading config at ${Q}`),Jd();let t=await o.readFile(Q,`utf8`),n={...e,...JSON.parse(t)},r=JSON.stringify(n);Qd(n);let i=await Rt($);return i&&(n.changesApplied=!1),(JSON.stringify(n)!==r||i)&&await nf(n),Xd=n,n}catch(t){if(t instanceof Error&&`code`in t&&t.code===`ENOENT`)return e;if(t instanceof SyntaxError){let t=`${Q}.corrupt-${Date.now()}`;try{await o.rename(Q,t),console.error(`tweakcc: ${Q} was not valid JSON — moved it to ${t} and reset to defaults.`)}catch{console.error(`tweakcc: ${Q} was not valid JSON — falling back to defaults.`)}return e}throw t}},ef=async()=>{let e=Zd();try{let t=await o.readFile(Q,`utf8`),n=JSON.parse(t);return{...e,...n,ccInstallationPath:n.ccInstallationPath||(n.ccInstallationDir?d.join(n.ccInstallationDir,`cli.js`):e.ccInstallationPath)}}catch(t){if(t instanceof Error&&`code`in t&&t.code===`ENOENT`||t instanceof SyntaxError)return e;throw t}},tf=async e=>(J(`Updating config at ${Q}`),Xd||=await $d(),e(Xd),Xd.lastModified=new Date().toISOString(),await nf(Xd),Xd),nf=async e=>{e.lastModified=new Date().toISOString(),await Yd();let t=`${Q}.tmp-${process.pid}`;try{await o.writeFile(t,JSON.stringify(e,null,2)),await o.rename(t,Q)}catch(e){try{await o.unlink(t)}catch{}throw console.error(`Error saving config:`,e),e}},rf=async e=>{J(`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 o.readFile(Q,`utf8`);n=JSON.parse(e)}catch{n=Zd()}let r;try{r=await fetch(e,{headers:{Accept:`application/json`,"User-Agent":`tweakcc`},signal:AbortSignal.timeout(2e4)})}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 i;try{let e=await zd(r,8*1024*1024);i=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 a={sourceUrl:e,dateFetched:new Date().toISOString(),settings:i};await tf(e=>{e.remoteConfig=a});let s={...Zd(),ccVersion:n.ccVersion||``,ccInstallationPath:n.ccInstallationPath||null,settings:{...P,...i},remoteConfig:a};return Qd(s),J(`Successfully fetched and parsed config from ${e}`),s};export{il as $,zd as A,Uu as B,Cd as C,Dd as D,gd as E,K as F,Pu as G,Wu as H,sd as I,zu as J,Lu as K,id as L,Nd as M,Td as N,Od as O,xd as P,ol as Q,$u as R,bd as S,md as T,Ju as U,ed as V,Zu as W,ju as X,Bu as Y,al as Z,Ed as _,O as _t,$ as a,ui as at,vd as b,Ud as c,Fr as ct,tf as d,xt as dt,Fa as et,Hd as f,P as ft,Pd as g,N as gt,Rd as h,M as ht,Gd as i,V as it,Md as j,wd as k,$d as l,Lt as lt,J as m,j as mt,Z as n,Pa as nt,Kd as o,Br as ot,Id as p,ie as pt,Ru as q,Q as r,ha as rt,rf as s,Rr as st,Wd as t,Aa as tt,ef as u,bt as ut,_d as v,D as vt,kd as w,Sd as x,yd as y,nd as z};
1091
+ `)))},sf=async()=>{await o.mkdir(Z,{recursive:!0}),await o.mkdir($,{recursive:!0}),await o.mkdir(rf,{recursive:!0});let e=d.join(Z,`.gitignore`);try{await o.stat(e)}catch(t){t instanceof Error&&`code`in t&&t.code===`ENOENT`&&await o.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(i)+i)}};let cf=null;const lf=()=>({ccVersion:``,ccInstallationPath:null,lastModified:new Date().toISOString(),changesApplied:!0,settings:P}),uf=e=>{let t=e?.settings?.thinkingVerbs;t?.punctuation&&(t.format=`{}`+t.punctuation,delete t.punctuation),Zd(e),e.settings=Yd(e.settings,P),e.settings.inputPatternHighlighters&&(e.settings.inputPatternHighlighters=e.settings.inputPatternHighlighters.map(e=>Yd(e,ne))),e.settings.toolsets&&(e.settings.toolsets=e.settings.toolsets.map(e=>Yd(e,re))),e.settings.themes&&(e.settings.themes=e.settings.themes.map(e=>Yd(e,ie)));{let t=e.settings.complexityRouter;delete t.mode;let n=P.complexityRouter,r=(e,t,n,r)=>typeof e==`number`&&Number.isFinite(e)?Math.min(r,Math.max(n,Math.round(e))):t;t.provider=t.provider===`jev`?`jev`:`haiku`,t.jevModel=`jev-1.13.0`,t.jevTimeoutMs=r(t.jevTimeoutMs,2e3,250,3e4),t.contextBudgetBytes=r(t.contextBudgetBytes,24e3,4e3,28e3),t.summaryMaxChars=r(t.summaryMaxChars,6e3,500,12e3),Reflect.deleteProperty(t,`jevConfidenceThreshold`),t.messageCap=r(t.messageCap,n.messageCap,500,4e5),t.assistantCap=r(t.assistantCap,n.assistantCap,500,4e5),t.timeoutMs=r(t.timeoutMs,n.timeoutMs,1e3,12e4),(typeof t.systemPrompt!=`string`||t.systemPrompt.trim().length===0)&&(t.systemPrompt=n.systemPrompt);let i=P.complexityRouter.levels,a=[`low`,`medium`,`high`,`xhigh`,`max`];t.levels=Array.isArray(t.levels)&&t.levels.length>0?t.levels.map((e,t)=>{let n=i[Math.min(t,i.length-1)],r=Yd(e,n);return a.includes(r.effort)||(r.effort=n.effort),t>=i.length&&(r.id=`level-${t}`),r}):i.map(e=>({...e}))}Qd(e),e.settings.misc&&delete e.settings.misc.adhdOutputStyle,delete e.settings.launchText},df=async()=>{let e=lf();try{J(`Reading config at ${Q}`),of();let t=await o.readFile(Q,`utf8`),n={...e,...JSON.parse(t)},r=JSON.stringify(n);uf(n);let i=await Rt($);return i&&(n.changesApplied=!1),(JSON.stringify(n)!==r||i)&&await mf(n),cf=n,n}catch(t){if(t instanceof Error&&`code`in t&&t.code===`ENOENT`)return e;if(t instanceof SyntaxError){let t=`${Q}.corrupt-${Date.now()}`;try{await o.rename(Q,t),console.error(`tweakcc: ${Q} was not valid JSON — moved it to ${t} and reset to defaults.`)}catch{console.error(`tweakcc: ${Q} was not valid JSON — falling back to defaults.`)}return e}throw t}},ff=async()=>{let e=lf();try{let t=await o.readFile(Q,`utf8`),n=JSON.parse(t);return{...e,...n,ccInstallationPath:n.ccInstallationPath||(n.ccInstallationDir?d.join(n.ccInstallationDir,`cli.js`):e.ccInstallationPath)}}catch(t){if(t instanceof Error&&`code`in t&&t.code===`ENOENT`||t instanceof SyntaxError)return e;throw t}},pf=async e=>(J(`Updating config at ${Q}`),cf||=await df(),e(cf),cf.lastModified=new Date().toISOString(),await mf(cf),cf),mf=async e=>{e.lastModified=new Date().toISOString(),await sf();let t=`${Q}.tmp-${process.pid}`;try{await o.writeFile(t,JSON.stringify(e,null,2)),await o.rename(t,Q)}catch(e){try{await o.unlink(t)}catch{}throw console.error(`Error saving config:`,e),e}},hf=async e=>{J(`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 o.readFile(Q,`utf8`);n=JSON.parse(e)}catch{n=lf()}let r;try{r=await fetch(e,{headers:{Accept:`application/json`,"User-Agent":`tweakcc`},signal:AbortSignal.timeout(2e4)})}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 i;try{let e=await Xd(r,8*1024*1024);i=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 a={sourceUrl:e,dateFetched:new Date().toISOString(),settings:i};await pf(e=>{e.remoteConfig=a});let s={...lf(),ccVersion:n.ccVersion||``,ccInstallationPath:n.ccInstallationPath||null,settings:{...P,...i},remoteConfig:a};return uf(s),J(`Successfully fetched and parsed config from ${e}`),s};export{il as $,Xd as A,ed as B,Pd as C,Rd as D,Dd as E,K as F,Gu as G,td as H,vd as I,Xu as J,Ju as K,hd as L,Wd as M,Id as N,zd as O,Md as P,ol as Q,ud as R,jd as S,Td as T,ad as U,dd as V,cd as W,Hu as X,Zu as Y,al as Z,Ld as _,O as _t,$ as a,ui as at,kd as b,ef as c,Fr as ct,pf as d,xt as dt,Fa as et,$d as f,P as ft,Gd as g,N as gt,Yd as h,M as ht,nf as i,V as it,Ud as j,Fd as k,df as l,Lt as lt,J as m,j as mt,Z as n,Pa as nt,rf as o,Br as ot,qd as p,ie as pt,Yu as q,Q as r,ha as rt,hf as s,Rr as st,tf as t,Aa as tt,ff as u,bt as ut,Od as v,D as vt,Bd as w,Nd as x,Ad as y,pd as z};