makecoder 2.0.96 → 2.0.97

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cc.mjs CHANGED
@@ -20,13 +20,13 @@ import{createRequire as vP5}from"node:module";var MP5=Object.create;var{getProto
20
20
  Object.assign(A, {
21
21
  post(...args) {
22
22
  const [url, payload, ...remainArgs] = args;
23
- const patchedUrl = url + (url.includes('?') ? '&' : ':') + '&app=codev-cli' + '&version=2.0.96' + '&session_id=' + I8();
23
+ const patchedUrl = url + (url.includes('?') ? '&' : ':') + '&app=codev-cli' + '&version=2.0.97' + '&session_id=' + I8();
24
24
  if (process.env.CODEV_AUTH_SK && process.env.CODEV_AUTH_AK) {
25
25
  const headerValues = payload.headers.values;
26
26
  headerValues.set('AUTHORIZATION', `Bearer ${process.env.CODEV_AUTH_AK}.${process.env.CODEV_AUTH_SK}`)
27
27
  }
28
28
 
29
- payload.headers.values.set('X-Coder-Version', '2.0.96');
29
+ payload.headers.values.set('X-Coder-Version', '2.0.97');
30
30
  payload.headers.values.set('X-Coder-Platform', process.platform);
31
31
  payload.headers.values.set('X-Coder-Arch', process.arch);
32
32
 
@@ -4120,7 +4120,7 @@ If called outside an EnterWorktree session, the tool is a **no-op**: it reports
4120
4120
  - If a tmux session was attached to the worktree: killed on \`remove\`, left running on \`keep\` (its name is returned so the user can reattach)
4121
4121
  - Once exited, EnterWorktree can be called again to create a fresh worktree
4122
4122
  `}function TvK({action:q}){return q??""}function VvK(q,K,_){let z=q.action==="keep"?"Kept worktree":"Removed worktree";return ST.createElement(_1,null,ST.createElement(u,{flexDirection:"column"},ST.createElement(T,null,z,q.worktreeBranch?ST.createElement(ST.Fragment,null," ","(branch ",ST.createElement(T,{bold:!0},q.worktreeBranch),")"):null),ST.createElement(T,{dimColor:!0},"Returned to ",q.originalCwd)))}var ST;var kvK=L(()=>{GK();g6();ST=K6(P6(),1)});async function NvK(q,K){let _=await w1("git",["-C",q,"status","--porcelain"]);if(_.code!==0)return null;let z=w7(_.stdout.split(`
4123
- `),(O)=>O.trim()!=="");if(!K)return null;let Y=await w1("git",["-C",q,"rev-list","--count",`${K}..HEAD`]);if(Y.code!==0)return null;let A=parseInt(Y.stdout.trim(),10)||0;return{changedFiles:z,commits:A}}function EvK(q,K){if(l$(q),dL(q),K)pB6(q),KR6();zL(null),nc(),Lk(),aO.cache.clear?.()}var IjY,xjY,yvK;var LvK=L(()=>{p7();y8();OR6();C8();gq();PM();n7();Q4();Bc();NJ();$G();g4();tD();kvK();IjY=C6(()=>y.strictObject({action:y.enum(["keep","remove"]).describe('"keep" leaves the worktree and branch on disk; "remove" deletes both.'),discard_changes:y.boolean().optional().describe('Required true when action is "remove" and the worktree has uncommitted files or unmerged commits. The tool will refuse and list them otherwise.')})),xjY=C6(()=>y.object({action:y.enum(["keep","remove"]),originalCwd:y.string(),worktreePath:y.string(),worktreeBranch:y.string().optional(),tmuxSessionName:y.string().optional(),discardedFiles:y.number().optional(),discardedCommits:y.number().optional(),message:y.string()}));yvK=Iq({name:AI8,searchHint:"exit a worktree session and return to the original directory",maxResultSizeChars:1e5,async description(){return"Exits a worktree session created by EnterWorktree and restores the original working directory"},async prompt(){return vvK()},get inputSchema(){return IjY()},get outputSchema(){return xjY()},userFacingName(){return"Exiting worktree"},shouldDefer:!0,isDestructive(q){return q.action==="remove"},toAutoClassifierInput(q){return q.action},async validateInput(q){if(Sf6())return{result:!1,message:'ExitWorktree cannot be called from a subagent with a cwd override (isolation: "worktree" or explicit cwd) — it would mutate the parent session\'s process-wide working directory. This agent is already isolated; use Bash with `cd` for directory changes within it.',errorCode:5};let K=sO();if(!K)return{result:!1,message:"No-op: there is no active EnterWorktree session to exit. This tool only operates on worktrees created by EnterWorktree in the current session — it will not touch worktrees created manually or in a previous session. No filesystem changes were made.",errorCode:1};if(q.action==="remove"&&K.enteredExisting)return{result:!1,message:`This session entered an existing worktree (${K.worktreePath}); it was not created by EnterWorktree, so this tool will not remove it. Use action: "keep" to return to ${K.originalCwd}, then remove the worktree manually with \`git worktree remove\` if desired.`,errorCode:4};if(q.action==="remove"&&!q.discard_changes){let _=await NvK(K.worktreePath,K.originalHeadCommit);if(_===null)return{result:!1,message:`Could not verify worktree state at ${K.worktreePath}. Refusing to remove without explicit confirmation. Re-invoke with discard_changes: true to proceed — or use action: "keep" to preserve the worktree.`,errorCode:3};let{changedFiles:z,commits:Y}=_;if(z>0||Y>0){let A=[];if(z>0)A.push(`${z} uncommitted ${z===1?"file":"files"}`);if(Y>0)A.push(`${Y} ${Y===1?"commit":"commits"} on ${K.worktreeBranch??"the worktree branch"}`);return{result:!1,message:`Worktree has ${A.join(" and ")}. Removing will discard this work permanently. Confirm with the user, then re-invoke with discard_changes: true — or use action: "keep" to preserve the worktree.`,errorCode:2}}}return{result:!0}},renderToolUseMessage:TvK,renderToolResultMessage:VvK,async call(q){let K=sO();if(!K)throw Error("Not in a worktree session");let{originalCwd:_,worktreePath:z,worktreeBranch:Y,tmuxSessionName:A,originalHeadCommit:O}=K,w=c9()===Y7(),{changedFiles:$,commits:j}=await NvK(z,O)??{changedFiles:0,commits:0};if(q.action==="keep"){await hM6(),EvK(_,w),d("tengu_worktree_kept",{mid_session:!0,commits:j,changed_files:$});let X=A?` Tmux session ${A} is still running; reattach with: tmux attach -t ${A}`:"";return{data:{action:"keep",originalCwd:_,worktreePath:z,worktreeBranch:Y,tmuxSessionName:A,message:`Exited worktree. Your work is preserved at ${z}${Y?` on branch ${Y}`:""}. Session is now back in ${_}.${X}`}}}if(A)await AI6(A);await OI6(),EvK(_,w),d("tengu_worktree_removed",{source:"exit_tool",mid_session:!0,commits:j,changed_files:$});let H=[];if(j>0)H.push(`${j} ${j===1?"commit":"commits"}`);if($>0)H.push(`${$} uncommitted ${$===1?"file":"files"}`);let J=H.length>0?` Discarded ${H.join(" and ")}.`:"";return{data:{action:"remove",originalCwd:_,worktreePath:z,worktreeBranch:Y,discardedFiles:$,discardedCommits:j,message:`Exited and removed worktree at ${z}.${J} Session is now back in ${_}.`}}},mapToolResultToToolResultBlockParam({message:q},K){return{type:"tool_result",content:q,tool_use_id:K}}})});var hvK="Config";function Td8(q=!1){if(i7())return{value:null,label:"Default (recommended)",description:uT6(q)};let K=!KA();return{value:null,label:K?"Default":"Default (recommended)",description:`Use the default model (currently ${Hn6(hv())})${K?"":` · ${Yf(GQ)}`}`}}function ujY(){let q=!KA(),K=process.env.ANTHROPIC_DEFAULT_SONNET_MODEL;if(q&&K){let _=DP(K);return{value:"sonnet",label:process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_NAME??K,description:process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION??`Custom Sonnet model${_?" (1M context)":""}`,descriptionForModel:`${process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION??`Custom Sonnet model${_?" with 1M context":""}`} (${K})`}}}function mjY(){let q=!KA();return{value:q?ZO().sonnet46:"sonnet",label:"Sonnet",description:`Sonnet 4.6 · Best for everyday tasks${q?"":` · ${Yf(GQ)}`}`,descriptionForModel:"Sonnet 4.6 - best for everyday tasks. Generally recommended for most coding tasks"}}function BjY(){let q=!KA(),K=process.env.ANTHROPIC_DEFAULT_OPUS_MODEL;if(q&&K){let _=DP(K);return{value:"opus",label:process.env.ANTHROPIC_DEFAULT_OPUS_MODEL_NAME??K,description:process.env.ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION??`Custom Opus model${_?" (1M context)":""}`,descriptionForModel:`${process.env.ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION??`Custom Opus model${_?" with 1M context":""}`} (${K})`}}}function pjY(){return{value:"opus",label:"Opus 4.1",description:"Opus 4.1 · Legacy",descriptionForModel:"Opus 4.1 - legacy version"}}function uvK(q=!1,K=!0){return{value:!KA()?ZO().opus46:"claude-opus-4-6",label:"Opus 4.6",description:`Opus 4.6 · Most capable for complex work${K?QZ8(q):""}`,descriptionForModel:"Opus 4.6 - most capable for complex work"}}function RvK(){let q=!KA();return{value:q?ZO().opus47:"opus",label:"Opus",description:`Opus 4.7 · Most capable for complex work${q?"":` · ${Yf(jB)}`}`,descriptionForModel:"Opus 4.7 - most capable for complex work"}}function SvK(){let q=!KA();return{value:q?ZO().sonnet46+"[1m]":"sonnet[1m]",label:"Sonnet (1M context)",description:`Sonnet 4.6 for long sessions${q?"":` · ${Yf(GQ)}`}`,descriptionForModel:"Sonnet 4.6 with 1M context window - for long sessions with large codebases"}}function mvK(q=!1,K=!0){return{value:!KA()?ZO().opus46+"[1m]":"claude-opus-4-6[1m]",label:"Opus 4.6 (1M context)",description:`Opus 4.6 for long sessions${K?QZ8(q):""}`,descriptionForModel:"Opus 4.6 with 1M context window - for long sessions with large codebases"}}function CvK(){let q=!KA();return{value:q?ZO().opus47+"[1m]":"opus[1m]",label:"Opus (1M context)",description:`Opus 4.7 for long sessions${q?"":` · ${Yf(jB)}`}`,descriptionForModel:"Opus 4.7 with 1M context window - for long sessions with large codebases"}}function FjY(){let q=!KA(),K=process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL;if(q&&K)return{value:"haiku",label:process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME??K,description:process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION??"Custom Haiku model",descriptionForModel:`${process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION??"Custom Haiku model"} (${K})`}}function BvK(){return{value:"haiku",label:"Haiku",description:`Haiku 4.5 · Fastest for quick answers${!KA()?"":` · ${Yf(_T1)}`}`,descriptionForModel:"Haiku 4.5 - fastest for quick answers. Lower cost but less capable than Sonnet 4.6."}}function gjY(){return{value:"haiku",label:"Haiku",description:`Haiku 3.5 for simple tasks${!KA()?"":` · ${Yf(KT1)}`}`,descriptionForModel:"Haiku 3.5 - faster and lower cost, but less capable than Sonnet. Use for simple tasks."}}function UjY(){return xT6()===ZO().haiku45?BvK():gjY()}function k37(){if(MK()==="pro"&&u8("tengu_gypsum_kite",!1))return" · ~2× usage vs Sonnet";return""}function pvK(q=!1){let K=!KA();return{value:"opus",label:"Opus",description:`Opus 4.7 · Most capable for complex work${k37()}${K||!q?"":` · ${Yf(jB)}`}`}}function bvK(){let q=!KA(),K=i7()?" · Billed as extra usage":"";return{value:"sonnet[1m]",label:"Sonnet (1M context)",description:`Sonnet 4.6 with 1M context${K}${!(K!==""&&!q)?"":` · ${Yf(GQ)}`}`}}function IvK(){let q=!KA(),K=i7()?" · Billed as extra usage":"",_=K!==""&&!q;return{value:"opus[1m]",label:"Opus (1M context)",description:`Opus 4.7 with 1M context${k37()}${K}${!_?"":` · ${Yf(jB)}`}`}}function V37(q=!1){let K=!KA();return{value:K?ZO().opus47+"[1m]":"opus[1m]",label:"Opus (1M context)",description:`Opus 4.7 with 1M context · Most capable for complex work${k37()}${K||!q?"":` · ${Yf(jB)}`}`,descriptionForModel:"Opus 4.7 with 1M context - most capable for complex work"}}function djY(){return{value:"opusplan",label:"Opus Plan Mode",description:"Use Opus in plan mode, Sonnet otherwise"}}function cjY(q=!1){if(i7()){if(ch()||Yq6()){let O=[Td8(q)];if(!YX()&&Ql())O.push(IvK());if(O.push(QjY),rt())O.push(bvK());return O.push(xvK),O}let A=[Td8(q)];if(rt())A.push(bvK());if(YX())A.push(V37(!1));else if(A.push(pvK(!1)),Ql())A.push(IvK());return A.push(xvK),A}if(KA()){let A=[Td8(q)];if(rt())A.push(SvK());if(YX())A.push(V37(!0));else if(A.push(RvK()),Ql())A.push(CvK());return A.push(BvK()),A}let K=[Td8(q)],_=ujY();if(_!==void 0)K.push(_);else if(K.push(mjY()),rt())K.push(SvK());let z=BjY();if(z!==void 0)K.push(z);else{if(K.push(pjY()),K.push(RvK()),Ql())K.push(CvK());if(K.push(uvK(q,!1)),Ql())K.push(mvK(q))}let Y=FjY();if(Y!==void 0)K.push(Y);else K.push(UjY());return K}function ljY(q){let K=o5(q);if(K.includes("claude-sonnet-4-6")||K.includes("claude-sonnet-4-5")||K.includes("claude-sonnet-4-")||K.includes("claude-3-7-sonnet")||K.includes("claude-3-5-sonnet")){let _=xW(Af());if(_)return{alias:"Sonnet",currentVersionName:_}}if(K.includes("claude-opus-4")){let _=xW(LE());if(_)return{alias:"Opus",currentVersionName:_}}if(K.includes("claude-haiku")||K.includes("claude-3-5-haiku")){let _=xW(xT6());if(_)return{alias:"Haiku",currentVersionName:_}}return null}function njY(q){let K=xW(q);if(!K)return null;let _=ljY(q);if(!_)return{value:q,label:K,description:q};if(K!==_.currentVersionName)return{value:q,label:K,description:`Newer version available · select ${_.alias} for ${_.currentVersionName}`};return{value:q,label:K,description:q}}function q_6(q=!1){return [{"value":"Claude Sonnet 4.6","label":"Claude Sonnet 4.6","description":"Use the default model Claude Sonnet 4.6 · 1.5x/1.88x per Mtok"},{"value":"Claude Haiku 4.5","label":"Claude Haiku 4.5","description":"Claude Haiku 4.5 模型。0.53x~"},{"value":"Claude Opus 4.6","label":"Claude Opus 4.6","description":"Claude Opus 4.6 for complex tasks · 2.5x/3.12x per Mtok"},{"value":"GPT-5.4","label":"GPT-5.4","description":"GPT-5.4 for complex tasks · 2x/1.5x per Mtok"},{"value":"GPT o3","label":"GPT o3","description":"GPT o3 for complex tasks · 1x/1x per Mtok"},{"value":"Gemini 3 Flash","label":"Gemini 3 Flash","description":"Gemini 2.5 Flash for complex tasks · 0.4x/0.3x per Mtok"},{"value":"Gemini 3.1 Pro Preview","label":"Gemini 3.1 Pro Preview","description":"Gemini 3.1 Pro Preview for complex tasks · 1.6x/1.2x per Mtok"},{"value":"DeepSeek-V3.2","label":"DeepSeek-V3.2","description":"DeepSeek-V3.2 for complex tasks · 0.23x/0.04x per Mtok"},{"value":"DeepSeek-R1","label":"DeepSeek-R1","description":"DeepSeek-R1 for complex tasks · 0.29x/0.29x per Mtok"},{"value":"Qwen-max","label":"Qwen Max","description":"Qwen Max for complex tasks · 0.17x/0.17x per Mtok"},{"value":"Qwen3-Coder-Plus","label":"Qwen3 Coder Plus","description":"Qwen3 Coder Plus for complex tasks · 0.29x/0.29x per Mtok"},{"value":"Kimi-K2-Thinking","label":"Kimi-K2-Thinking","description":"Kimi-K2-Thinking for complex tasks · 0.29x/0.29x per Mtok"},{"value":"Kimi-K2.5","label":"Kimi K2.5","description":"Kimi-K2.5 for complex tasks · 0.36x/0.36x per Mtok"},{"value":"MiniMax-M2.5","label":"MiniMax M2.5","description":"MiniMax-M2.5 for complex tasks · 0.19x/0.19x per Mtok"},{"value":"Doubao-Seed-1.6","label":"Doubao Seed 1.6","description":"DoubanSeed-1.6 for complex tasks · 0.06x/0.04x per Mtok"},{"value":"GLM-5","label":"GLM 5","description":"GLM-5 for complex tasks · 0.46x/0.25x per Mtok"}];let K=cjY(q),_=process.env.ANTHROPIC_CUSTOM_MODEL_OPTION;if(_&&!K.some((w)=>w.value===_))K.push({value:_,label:process.env.ANTHROPIC_CUSTOM_MODEL_OPTION_NAME??_,description:process.env.ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION??`Custom model (${_})`});for(let w of H8().additionalModelOptionsCache??[])if(!K.some(($)=>$.value===w.value))K.push(w);let{availableModels:z}=y7()??{};if(z)for(let w of z){let $=w.trim();if(!$.startsWith("anthropic.")||K.some((j)=>j.value===$))continue;K.push({value:$,label:$,description:"Custom model"})}let Y=null,A=Ub(),O=cB6();if(A!==void 0&&A!==null)Y=A;else if(O!==null)Y=O;if(Y===null||K.some((w)=>w.value===Y))return RM6(K);else if(Y==="opusplan")return RM6([...K,djY()]);else if(Y==="opus"&&KA())return RM6([...K,pvK(!1)]);else if(Y==="opus[1m]"&&KA())return RM6([...K,V37(!1)]);else if(Y==="claude-opus-4-6"&&KA())return RM6([...K,uvK(q,!1)]);else if(Y==="claude-opus-4-6[1m]"&&KA())return RM6([...K,mvK(q,!1)]);else{let w=njY(Y);if(w)K.push(w);else K.push({value:Y,label:Y,description:"Custom model"});return RM6(K)}}function RM6(q){if(!(y7()||{}).availableModels)return q;return q.filter((_)=>_.value===null||_.value!==null&&Kq6(_.value))}var QjY,xvK;var s58=L(()=>{y8();B1();T7();jQ();fo();a1();bg8();x9();jn6();Sq();AJ();h1();QjY={value:"sonnet",label:"Sonnet",description:"Sonnet 4.6 · Best for everyday tasks"},xvK={value:"haiku",label:"Haiku",description:"Haiku 4.5 · Fastest for quick answers"}});var N37={};h8(N37,{isVoiceModeEnabled:()=>SM6,isVoiceGrowthBookEnabled:()=>K_6,hasVoiceAuth:()=>Vd8});function K_6(){return!u8("tengu_amber_quartz_disabled",!1)}function Vd8(){if(!jX())return!1;let q=o7();return Boolean(q?.accessToken)}function SM6(){return Vd8()&&K_6()}var __6=L(()=>{B1();T7()});async function wI6(q){let K=q.trim();if(!K)return{valid:!1,error:"Model name cannot be empty"};if(!Kq6(K))return{valid:!1,error:`Model '${K}' is not in the list of available models`};let _=K.toLowerCase();if(Yw6.includes(_))return{valid:!0};if(K===process.env.ANTHROPIC_CUSTOM_MODEL_OPTION)return{valid:!0};if(FvK.has(K))return{valid:!0};try{return await dR({model:K,max_tokens:1,maxRetries:0,querySource:"model_validation",messages:[{role:"user",content:[{type:"text",text:"Hi",cache_control:{type:"ephemeral"}}]}]}),FvK.set(K,!0),{valid:!0}}catch(z){return ijY(z,K)}}function ijY(q,K){if(q instanceof fY6){let z=rjY(K),Y=z?`. Try '${z}' instead`:"";return{valid:!1,error:`Model '${K}' not found${Y}`}}if(q instanceof vq){if(q instanceof ZY6)return{valid:!1,error:"Authentication failed. Please check your API credentials."};if(q instanceof bZ)return{valid:!1,error:"Network error. Please check your internet connection."};let z=q.error;if(z&&typeof z==="object"&&"type"in z&&z.type==="not_found_error"&&"message"in z&&typeof z.message==="string"&&z.message.includes("model:"))return{valid:!1,error:`Model '${K}' not found`};return{valid:!1,error:`API error: ${q.message}`}}return{valid:!1,error:`Unable to validate model: ${q instanceof Error?q.message:String(q)}`}}function rjY(q){if(KA())return;let K=q.toLowerCase();if(K.includes("opus-4-7")||K.includes("opus_4_7"))return ZO().opus41;if(K.includes("opus-4-6")||K.includes("opus_4_6"))return ZO().opus41;if(K.includes("opus-4-5")||K.includes("opus_4_5"))return ZO().opus41;if(K.includes("sonnet-4-6")||K.includes("sonnet_4_6"))return ZO().sonnet45;if(K.includes("sonnet-4-5")||K.includes("sonnet_4_5"))return ZO().sonnet40;return}var FvK;var kd8=L(()=>{IT6();jn6();x9();tH6();eG();jQ();FvK=new Map});function gvK(q){return q in $I6}function UvK(q){return $I6[q]}function Nd8(q){let K=$I6[q];if(!K)return;if(K.options)return[...K.options];if(K.getOptions)return K.getOptions();return}function QvK(q){return $I6[q]?.path??q.split(".")}var $I6;var y37=L(()=>{h1();$b1();s58();kd8();tB();$I6={theme:{source:"global",type:"string",description:"Color theme for the UI",options:ZY4},editorMode:{source:"global",type:"string",description:"Key binding mode",options:Ck8},verbose:{source:"global",type:"boolean",description:"Show detailed debug output",appStateKey:"verbose"},preferredNotifChannel:{source:"global",type:"string",description:"Preferred notification channel",options:Sk8},autoCompactEnabled:{source:"global",type:"boolean",description:"Auto-compact when context is full"},autoScrollEnabled:{source:"global",type:"boolean",description:"Auto-scroll conversation to bottom (fullscreen mode only)"},autoMemoryEnabled:{source:"settings",type:"boolean",description:"Enable auto-memory"},autoDreamEnabled:{source:"settings",type:"boolean",description:"Enable background memory consolidation"},fileCheckpointingEnabled:{source:"global",type:"boolean",description:"Enable file checkpointing for code rewind"},showTurnDuration:{source:"global",type:"boolean",description:'Show turn duration message after responses (e.g., "Cooked for 1m 6s")'},terminalProgressBarEnabled:{source:"global",type:"boolean",description:"Show OSC 9;4 progress indicator in supported terminals"},todoFeatureEnabled:{source:"global",type:"boolean",description:"Enable todo/task tracking"},model:{source:"settings",type:"string",description:"Override the default model",appStateKey:"mainLoopModel",getOptions:()=>{try{return q_6().filter((q)=>q.value!==null).map((q)=>q.value)}catch{return["sonnet","opus","haiku"]}},validateOnWrite:(q)=>wI6(String(q)),formatOnRead:(q)=>q===null?"default":q},alwaysThinkingEnabled:{source:"settings",type:"boolean",description:"Enable extended thinking (false to disable)",appStateKey:"thinkingEnabled"},"permissions.defaultMode":{source:"settings",type:"string",description:"Default permission mode for tool usage",options:["default","plan","acceptEdits","dontAsk","auto"]},language:{source:"settings",type:"string",description:'Preferred language for Claude responses and voice dictation (e.g., "japanese", "spanish")'},teammateMode:{source:"global",type:"string",description:'How to spawn teammates: "tmux" for traditional tmux, "in-process" for same process, "auto" to choose automatically',options:Nq4},tui:{source:"settings",type:"string",description:'Terminal UI renderer: "fullscreen" for flicker-free alt-screen rendering, "default" for the classic renderer',options:["default","fullscreen"]},...!1,...{voiceEnabled:{source:"settings",type:"boolean",description:"Enable voice dictation (hold-to-talk)"}},remoteControlAtStartup:{source:"global",type:"boolean",description:"Enable Remote Control for all sessions (true | false | default)",formatOnRead:()=>zd()},...{inputNeededNotifEnabled:{source:"global",type:"boolean",description:"Push to your mobile device when a permission prompt or question is waiting (requires Remote Control)"},agentPushNotifEnabled:{source:"global",type:"boolean",description:"Allow Claude to push to your mobile device when it deems it appropriate (requires Remote Control)"}}}});function cvK(){let q=[],K=[];for(let[z,Y]of Object.entries($I6)){if(z==="model")continue;if(z==="voiceEnabled"&&!K_6())continue;let A=Nd8(z),O=`- ${z}`;if(A)O+=`: ${A.map((w)=>`"${w}"`).join(", ")}`;else if(Y.type==="boolean")O+=": true/false";if(O+=` - ${Y.description}`,Y.source==="global")q.push(O);else K.push(O)}let _=ojY();return`Get or set Claude Code configuration settings.
4123
+ `),(O)=>O.trim()!=="");if(!K)return null;let Y=await w1("git",["-C",q,"rev-list","--count",`${K}..HEAD`]);if(Y.code!==0)return null;let A=parseInt(Y.stdout.trim(),10)||0;return{changedFiles:z,commits:A}}function EvK(q,K){if(l$(q),dL(q),K)pB6(q),KR6();zL(null),nc(),Lk(),aO.cache.clear?.()}var IjY,xjY,yvK;var LvK=L(()=>{p7();y8();OR6();C8();gq();PM();n7();Q4();Bc();NJ();$G();g4();tD();kvK();IjY=C6(()=>y.strictObject({action:y.enum(["keep","remove"]).describe('"keep" leaves the worktree and branch on disk; "remove" deletes both.'),discard_changes:y.boolean().optional().describe('Required true when action is "remove" and the worktree has uncommitted files or unmerged commits. The tool will refuse and list them otherwise.')})),xjY=C6(()=>y.object({action:y.enum(["keep","remove"]),originalCwd:y.string(),worktreePath:y.string(),worktreeBranch:y.string().optional(),tmuxSessionName:y.string().optional(),discardedFiles:y.number().optional(),discardedCommits:y.number().optional(),message:y.string()}));yvK=Iq({name:AI8,searchHint:"exit a worktree session and return to the original directory",maxResultSizeChars:1e5,async description(){return"Exits a worktree session created by EnterWorktree and restores the original working directory"},async prompt(){return vvK()},get inputSchema(){return IjY()},get outputSchema(){return xjY()},userFacingName(){return"Exiting worktree"},shouldDefer:!0,isDestructive(q){return q.action==="remove"},toAutoClassifierInput(q){return q.action},async validateInput(q){if(Sf6())return{result:!1,message:'ExitWorktree cannot be called from a subagent with a cwd override (isolation: "worktree" or explicit cwd) — it would mutate the parent session\'s process-wide working directory. This agent is already isolated; use Bash with `cd` for directory changes within it.',errorCode:5};let K=sO();if(!K)return{result:!1,message:"No-op: there is no active EnterWorktree session to exit. This tool only operates on worktrees created by EnterWorktree in the current session — it will not touch worktrees created manually or in a previous session. No filesystem changes were made.",errorCode:1};if(q.action==="remove"&&K.enteredExisting)return{result:!1,message:`This session entered an existing worktree (${K.worktreePath}); it was not created by EnterWorktree, so this tool will not remove it. Use action: "keep" to return to ${K.originalCwd}, then remove the worktree manually with \`git worktree remove\` if desired.`,errorCode:4};if(q.action==="remove"&&!q.discard_changes){let _=await NvK(K.worktreePath,K.originalHeadCommit);if(_===null)return{result:!1,message:`Could not verify worktree state at ${K.worktreePath}. Refusing to remove without explicit confirmation. Re-invoke with discard_changes: true to proceed — or use action: "keep" to preserve the worktree.`,errorCode:3};let{changedFiles:z,commits:Y}=_;if(z>0||Y>0){let A=[];if(z>0)A.push(`${z} uncommitted ${z===1?"file":"files"}`);if(Y>0)A.push(`${Y} ${Y===1?"commit":"commits"} on ${K.worktreeBranch??"the worktree branch"}`);return{result:!1,message:`Worktree has ${A.join(" and ")}. Removing will discard this work permanently. Confirm with the user, then re-invoke with discard_changes: true — or use action: "keep" to preserve the worktree.`,errorCode:2}}}return{result:!0}},renderToolUseMessage:TvK,renderToolResultMessage:VvK,async call(q){let K=sO();if(!K)throw Error("Not in a worktree session");let{originalCwd:_,worktreePath:z,worktreeBranch:Y,tmuxSessionName:A,originalHeadCommit:O}=K,w=c9()===Y7(),{changedFiles:$,commits:j}=await NvK(z,O)??{changedFiles:0,commits:0};if(q.action==="keep"){await hM6(),EvK(_,w),d("tengu_worktree_kept",{mid_session:!0,commits:j,changed_files:$});let X=A?` Tmux session ${A} is still running; reattach with: tmux attach -t ${A}`:"";return{data:{action:"keep",originalCwd:_,worktreePath:z,worktreeBranch:Y,tmuxSessionName:A,message:`Exited worktree. Your work is preserved at ${z}${Y?` on branch ${Y}`:""}. Session is now back in ${_}.${X}`}}}if(A)await AI6(A);await OI6(),EvK(_,w),d("tengu_worktree_removed",{source:"exit_tool",mid_session:!0,commits:j,changed_files:$});let H=[];if(j>0)H.push(`${j} ${j===1?"commit":"commits"}`);if($>0)H.push(`${$} uncommitted ${$===1?"file":"files"}`);let J=H.length>0?` Discarded ${H.join(" and ")}.`:"";return{data:{action:"remove",originalCwd:_,worktreePath:z,worktreeBranch:Y,discardedFiles:$,discardedCommits:j,message:`Exited and removed worktree at ${z}.${J} Session is now back in ${_}.`}}},mapToolResultToToolResultBlockParam({message:q},K){return{type:"tool_result",content:q,tool_use_id:K}}})});var hvK="Config";function Td8(q=!1){if(i7())return{value:null,label:"Default (recommended)",description:uT6(q)};let K=!KA();return{value:null,label:K?"Default":"Default (recommended)",description:`Use the default model (currently ${Hn6(hv())})${K?"":` · ${Yf(GQ)}`}`}}function ujY(){let q=!KA(),K=process.env.ANTHROPIC_DEFAULT_SONNET_MODEL;if(q&&K){let _=DP(K);return{value:"sonnet",label:process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_NAME??K,description:process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION??`Custom Sonnet model${_?" (1M context)":""}`,descriptionForModel:`${process.env.ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION??`Custom Sonnet model${_?" with 1M context":""}`} (${K})`}}}function mjY(){let q=!KA();return{value:q?ZO().sonnet46:"sonnet",label:"Sonnet",description:`Sonnet 4.6 · Best for everyday tasks${q?"":` · ${Yf(GQ)}`}`,descriptionForModel:"Sonnet 4.6 - best for everyday tasks. Generally recommended for most coding tasks"}}function BjY(){let q=!KA(),K=process.env.ANTHROPIC_DEFAULT_OPUS_MODEL;if(q&&K){let _=DP(K);return{value:"opus",label:process.env.ANTHROPIC_DEFAULT_OPUS_MODEL_NAME??K,description:process.env.ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION??`Custom Opus model${_?" (1M context)":""}`,descriptionForModel:`${process.env.ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION??`Custom Opus model${_?" with 1M context":""}`} (${K})`}}}function pjY(){return{value:"opus",label:"Opus 4.1",description:"Opus 4.1 · Legacy",descriptionForModel:"Opus 4.1 - legacy version"}}function uvK(q=!1,K=!0){return{value:!KA()?ZO().opus46:"claude-opus-4-6",label:"Opus 4.6",description:`Opus 4.6 · Most capable for complex work${K?QZ8(q):""}`,descriptionForModel:"Opus 4.6 - most capable for complex work"}}function RvK(){let q=!KA();return{value:q?ZO().opus47:"opus",label:"Opus",description:`Opus 4.7 · Most capable for complex work${q?"":` · ${Yf(jB)}`}`,descriptionForModel:"Opus 4.7 - most capable for complex work"}}function SvK(){let q=!KA();return{value:q?ZO().sonnet46+"[1m]":"sonnet[1m]",label:"Sonnet (1M context)",description:`Sonnet 4.6 for long sessions${q?"":` · ${Yf(GQ)}`}`,descriptionForModel:"Sonnet 4.6 with 1M context window - for long sessions with large codebases"}}function mvK(q=!1,K=!0){return{value:!KA()?ZO().opus46+"[1m]":"claude-opus-4-6[1m]",label:"Opus 4.6 (1M context)",description:`Opus 4.6 for long sessions${K?QZ8(q):""}`,descriptionForModel:"Opus 4.6 with 1M context window - for long sessions with large codebases"}}function CvK(){let q=!KA();return{value:q?ZO().opus47+"[1m]":"opus[1m]",label:"Opus (1M context)",description:`Opus 4.7 for long sessions${q?"":` · ${Yf(jB)}`}`,descriptionForModel:"Opus 4.7 with 1M context window - for long sessions with large codebases"}}function FjY(){let q=!KA(),K=process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL;if(q&&K)return{value:"haiku",label:process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME??K,description:process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION??"Custom Haiku model",descriptionForModel:`${process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION??"Custom Haiku model"} (${K})`}}function BvK(){return{value:"haiku",label:"Haiku",description:`Haiku 4.5 · Fastest for quick answers${!KA()?"":` · ${Yf(_T1)}`}`,descriptionForModel:"Haiku 4.5 - fastest for quick answers. Lower cost but less capable than Sonnet 4.6."}}function gjY(){return{value:"haiku",label:"Haiku",description:`Haiku 3.5 for simple tasks${!KA()?"":` · ${Yf(KT1)}`}`,descriptionForModel:"Haiku 3.5 - faster and lower cost, but less capable than Sonnet. Use for simple tasks."}}function UjY(){return xT6()===ZO().haiku45?BvK():gjY()}function k37(){if(MK()==="pro"&&u8("tengu_gypsum_kite",!1))return" · ~2× usage vs Sonnet";return""}function pvK(q=!1){let K=!KA();return{value:"opus",label:"Opus",description:`Opus 4.7 · Most capable for complex work${k37()}${K||!q?"":` · ${Yf(jB)}`}`}}function bvK(){let q=!KA(),K=i7()?" · Billed as extra usage":"";return{value:"sonnet[1m]",label:"Sonnet (1M context)",description:`Sonnet 4.6 with 1M context${K}${!(K!==""&&!q)?"":` · ${Yf(GQ)}`}`}}function IvK(){let q=!KA(),K=i7()?" · Billed as extra usage":"",_=K!==""&&!q;return{value:"opus[1m]",label:"Opus (1M context)",description:`Opus 4.7 with 1M context${k37()}${K}${!_?"":` · ${Yf(jB)}`}`}}function V37(q=!1){let K=!KA();return{value:K?ZO().opus47+"[1m]":"opus[1m]",label:"Opus (1M context)",description:`Opus 4.7 with 1M context · Most capable for complex work${k37()}${K||!q?"":` · ${Yf(jB)}`}`,descriptionForModel:"Opus 4.7 with 1M context - most capable for complex work"}}function djY(){return{value:"opusplan",label:"Opus Plan Mode",description:"Use Opus in plan mode, Sonnet otherwise"}}function cjY(q=!1){if(i7()){if(ch()||Yq6()){let O=[Td8(q)];if(!YX()&&Ql())O.push(IvK());if(O.push(QjY),rt())O.push(bvK());return O.push(xvK),O}let A=[Td8(q)];if(rt())A.push(bvK());if(YX())A.push(V37(!1));else if(A.push(pvK(!1)),Ql())A.push(IvK());return A.push(xvK),A}if(KA()){let A=[Td8(q)];if(rt())A.push(SvK());if(YX())A.push(V37(!0));else if(A.push(RvK()),Ql())A.push(CvK());return A.push(BvK()),A}let K=[Td8(q)],_=ujY();if(_!==void 0)K.push(_);else if(K.push(mjY()),rt())K.push(SvK());let z=BjY();if(z!==void 0)K.push(z);else{if(K.push(pjY()),K.push(RvK()),Ql())K.push(CvK());if(K.push(uvK(q,!1)),Ql())K.push(mvK(q))}let Y=FjY();if(Y!==void 0)K.push(Y);else K.push(UjY());return K}function ljY(q){let K=o5(q);if(K.includes("claude-sonnet-4-6")||K.includes("claude-sonnet-4-5")||K.includes("claude-sonnet-4-")||K.includes("claude-3-7-sonnet")||K.includes("claude-3-5-sonnet")){let _=xW(Af());if(_)return{alias:"Sonnet",currentVersionName:_}}if(K.includes("claude-opus-4")){let _=xW(LE());if(_)return{alias:"Opus",currentVersionName:_}}if(K.includes("claude-haiku")||K.includes("claude-3-5-haiku")){let _=xW(xT6());if(_)return{alias:"Haiku",currentVersionName:_}}return null}function njY(q){let K=xW(q);if(!K)return null;let _=ljY(q);if(!_)return{value:q,label:K,description:q};if(K!==_.currentVersionName)return{value:q,label:K,description:`Newer version available · select ${_.alias} for ${_.currentVersionName}`};return{value:q,label:K,description:q}}function q_6(q=!1){return [{"value":"Claude Sonnet 4.6","label":"Claude Sonnet 4.6","description":"Use the default model Claude Sonnet 4.6 · 1.5x/1.88x per Mtok"},{"value":"Claude Haiku 4.5","label":"Claude Haiku 4.5","description":"Claude Haiku 4.5 模型。0.53x~"},{"value":"Claude Opus 4.7","label":"Claude Opus 4.7","description":"Claude Opus 4.7 for complex tasks · 2.5x/3.12x per Mtok"},{"value":"GPT-5.4","label":"GPT-5.4","description":"GPT-5.4 for complex tasks · 2x/1.5x per Mtok"},{"value":"GPT o3","label":"GPT o3","description":"GPT o3 for complex tasks · 1x/1x per Mtok"},{"value":"Gemini 3 Flash","label":"Gemini 3 Flash","description":"Gemini 2.5 Flash for complex tasks · 0.4x/0.3x per Mtok"},{"value":"Gemini 3.1 Pro Preview","label":"Gemini 3.1 Pro Preview","description":"Gemini 3.1 Pro Preview for complex tasks · 1.6x/1.2x per Mtok"},{"value":"DeepSeek-V3.2","label":"DeepSeek-V3.2","description":"DeepSeek-V3.2 for complex tasks · 0.23x/0.04x per Mtok"},{"value":"DeepSeek-R1","label":"DeepSeek-R1","description":"DeepSeek-R1 for complex tasks · 0.29x/0.29x per Mtok"},{"value":"Qwen-max","label":"Qwen Max","description":"Qwen Max for complex tasks · 0.17x/0.17x per Mtok"},{"value":"Qwen3-Coder-Plus","label":"Qwen3 Coder Plus","description":"Qwen3 Coder Plus for complex tasks · 0.29x/0.29x per Mtok"},{"value":"Kimi-K2-Thinking","label":"Kimi-K2-Thinking","description":"Kimi-K2-Thinking for complex tasks · 0.29x/0.29x per Mtok"},{"value":"Kimi-K2.5","label":"Kimi K2.5","description":"Kimi-K2.5 for complex tasks · 0.36x/0.36x per Mtok"},{"value":"MiniMax-M2.5","label":"MiniMax M2.5","description":"MiniMax-M2.5 for complex tasks · 0.19x/0.19x per Mtok"},{"value":"Doubao-Seed-1.6","label":"Doubao Seed 1.6","description":"DoubanSeed-1.6 for complex tasks · 0.06x/0.04x per Mtok"},{"value":"GLM-5","label":"GLM 5","description":"GLM-5 for complex tasks · 0.46x/0.25x per Mtok"}];let K=cjY(q),_=process.env.ANTHROPIC_CUSTOM_MODEL_OPTION;if(_&&!K.some((w)=>w.value===_))K.push({value:_,label:process.env.ANTHROPIC_CUSTOM_MODEL_OPTION_NAME??_,description:process.env.ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION??`Custom model (${_})`});for(let w of H8().additionalModelOptionsCache??[])if(!K.some(($)=>$.value===w.value))K.push(w);let{availableModels:z}=y7()??{};if(z)for(let w of z){let $=w.trim();if(!$.startsWith("anthropic.")||K.some((j)=>j.value===$))continue;K.push({value:$,label:$,description:"Custom model"})}let Y=null,A=Ub(),O=cB6();if(A!==void 0&&A!==null)Y=A;else if(O!==null)Y=O;if(Y===null||K.some((w)=>w.value===Y))return RM6(K);else if(Y==="opusplan")return RM6([...K,djY()]);else if(Y==="opus"&&KA())return RM6([...K,pvK(!1)]);else if(Y==="opus[1m]"&&KA())return RM6([...K,V37(!1)]);else if(Y==="claude-opus-4-6"&&KA())return RM6([...K,uvK(q,!1)]);else if(Y==="claude-opus-4-6[1m]"&&KA())return RM6([...K,mvK(q,!1)]);else{let w=njY(Y);if(w)K.push(w);else K.push({value:Y,label:Y,description:"Custom model"});return RM6(K)}}function RM6(q){if(!(y7()||{}).availableModels)return q;return q.filter((_)=>_.value===null||_.value!==null&&Kq6(_.value))}var QjY,xvK;var s58=L(()=>{y8();B1();T7();jQ();fo();a1();bg8();x9();jn6();Sq();AJ();h1();QjY={value:"sonnet",label:"Sonnet",description:"Sonnet 4.6 · Best for everyday tasks"},xvK={value:"haiku",label:"Haiku",description:"Haiku 4.5 · Fastest for quick answers"}});var N37={};h8(N37,{isVoiceModeEnabled:()=>SM6,isVoiceGrowthBookEnabled:()=>K_6,hasVoiceAuth:()=>Vd8});function K_6(){return!u8("tengu_amber_quartz_disabled",!1)}function Vd8(){if(!jX())return!1;let q=o7();return Boolean(q?.accessToken)}function SM6(){return Vd8()&&K_6()}var __6=L(()=>{B1();T7()});async function wI6(q){let K=q.trim();if(!K)return{valid:!1,error:"Model name cannot be empty"};if(!Kq6(K))return{valid:!1,error:`Model '${K}' is not in the list of available models`};let _=K.toLowerCase();if(Yw6.includes(_))return{valid:!0};if(K===process.env.ANTHROPIC_CUSTOM_MODEL_OPTION)return{valid:!0};if(FvK.has(K))return{valid:!0};try{return await dR({model:K,max_tokens:1,maxRetries:0,querySource:"model_validation",messages:[{role:"user",content:[{type:"text",text:"Hi",cache_control:{type:"ephemeral"}}]}]}),FvK.set(K,!0),{valid:!0}}catch(z){return ijY(z,K)}}function ijY(q,K){if(q instanceof fY6){let z=rjY(K),Y=z?`. Try '${z}' instead`:"";return{valid:!1,error:`Model '${K}' not found${Y}`}}if(q instanceof vq){if(q instanceof ZY6)return{valid:!1,error:"Authentication failed. Please check your API credentials."};if(q instanceof bZ)return{valid:!1,error:"Network error. Please check your internet connection."};let z=q.error;if(z&&typeof z==="object"&&"type"in z&&z.type==="not_found_error"&&"message"in z&&typeof z.message==="string"&&z.message.includes("model:"))return{valid:!1,error:`Model '${K}' not found`};return{valid:!1,error:`API error: ${q.message}`}}return{valid:!1,error:`Unable to validate model: ${q instanceof Error?q.message:String(q)}`}}function rjY(q){if(KA())return;let K=q.toLowerCase();if(K.includes("opus-4-7")||K.includes("opus_4_7"))return ZO().opus41;if(K.includes("opus-4-6")||K.includes("opus_4_6"))return ZO().opus41;if(K.includes("opus-4-5")||K.includes("opus_4_5"))return ZO().opus41;if(K.includes("sonnet-4-6")||K.includes("sonnet_4_6"))return ZO().sonnet45;if(K.includes("sonnet-4-5")||K.includes("sonnet_4_5"))return ZO().sonnet40;return}var FvK;var kd8=L(()=>{IT6();jn6();x9();tH6();eG();jQ();FvK=new Map});function gvK(q){return q in $I6}function UvK(q){return $I6[q]}function Nd8(q){let K=$I6[q];if(!K)return;if(K.options)return[...K.options];if(K.getOptions)return K.getOptions();return}function QvK(q){return $I6[q]?.path??q.split(".")}var $I6;var y37=L(()=>{h1();$b1();s58();kd8();tB();$I6={theme:{source:"global",type:"string",description:"Color theme for the UI",options:ZY4},editorMode:{source:"global",type:"string",description:"Key binding mode",options:Ck8},verbose:{source:"global",type:"boolean",description:"Show detailed debug output",appStateKey:"verbose"},preferredNotifChannel:{source:"global",type:"string",description:"Preferred notification channel",options:Sk8},autoCompactEnabled:{source:"global",type:"boolean",description:"Auto-compact when context is full"},autoScrollEnabled:{source:"global",type:"boolean",description:"Auto-scroll conversation to bottom (fullscreen mode only)"},autoMemoryEnabled:{source:"settings",type:"boolean",description:"Enable auto-memory"},autoDreamEnabled:{source:"settings",type:"boolean",description:"Enable background memory consolidation"},fileCheckpointingEnabled:{source:"global",type:"boolean",description:"Enable file checkpointing for code rewind"},showTurnDuration:{source:"global",type:"boolean",description:'Show turn duration message after responses (e.g., "Cooked for 1m 6s")'},terminalProgressBarEnabled:{source:"global",type:"boolean",description:"Show OSC 9;4 progress indicator in supported terminals"},todoFeatureEnabled:{source:"global",type:"boolean",description:"Enable todo/task tracking"},model:{source:"settings",type:"string",description:"Override the default model",appStateKey:"mainLoopModel",getOptions:()=>{try{return q_6().filter((q)=>q.value!==null).map((q)=>q.value)}catch{return["sonnet","opus","haiku"]}},validateOnWrite:(q)=>wI6(String(q)),formatOnRead:(q)=>q===null?"default":q},alwaysThinkingEnabled:{source:"settings",type:"boolean",description:"Enable extended thinking (false to disable)",appStateKey:"thinkingEnabled"},"permissions.defaultMode":{source:"settings",type:"string",description:"Default permission mode for tool usage",options:["default","plan","acceptEdits","dontAsk","auto"]},language:{source:"settings",type:"string",description:'Preferred language for Claude responses and voice dictation (e.g., "japanese", "spanish")'},teammateMode:{source:"global",type:"string",description:'How to spawn teammates: "tmux" for traditional tmux, "in-process" for same process, "auto" to choose automatically',options:Nq4},tui:{source:"settings",type:"string",description:'Terminal UI renderer: "fullscreen" for flicker-free alt-screen rendering, "default" for the classic renderer',options:["default","fullscreen"]},...!1,...{voiceEnabled:{source:"settings",type:"boolean",description:"Enable voice dictation (hold-to-talk)"}},remoteControlAtStartup:{source:"global",type:"boolean",description:"Enable Remote Control for all sessions (true | false | default)",formatOnRead:()=>zd()},...{inputNeededNotifEnabled:{source:"global",type:"boolean",description:"Push to your mobile device when a permission prompt or question is waiting (requires Remote Control)"},agentPushNotifEnabled:{source:"global",type:"boolean",description:"Allow Claude to push to your mobile device when it deems it appropriate (requires Remote Control)"}}}});function cvK(){let q=[],K=[];for(let[z,Y]of Object.entries($I6)){if(z==="model")continue;if(z==="voiceEnabled"&&!K_6())continue;let A=Nd8(z),O=`- ${z}`;if(A)O+=`: ${A.map((w)=>`"${w}"`).join(", ")}`;else if(Y.type==="boolean")O+=": true/false";if(O+=` - ${Y.description}`,Y.source==="global")q.push(O);else K.push(O)}let _=ojY();return`Get or set Claude Code configuration settings.
4124
4124
 
4125
4125
  View or change Claude Code settings. Use when the user requests configuration changes, asks about current settings, or when adjusting a setting would benefit them.
4126
4126
 
package/dist/coder.js CHANGED
@@ -190,7 +190,7 @@ AI \u4EE3\u7406:
190
190
  \u914D\u7F6E\u6587\u4EF6: ~/.coder/config.json
191
191
  `)}};Se.exports=J});var R=m((cs,Ee)=>{function Ct(h=process.argv.slice(2)){return h.includes("--print")||h.includes("-p")}Ee.exports={isPrintMode:Ct}});var H=m((ls,Ie)=>{var{spawn:Et}=require("child_process"),M=require("path"),k=require("fs"),ve=require("os"),{isPrintMode:be}=R(),Q=class{constructor(e){this.config=e}resloveSettingFilePath(e){return M.join(e,this.config.configDir,"settings.json")}readModelFromSettingsFile(e){try{let t=this.resloveSettingFilePath(e);if(k.existsSync(t)){let s=k.readFileSync(t,"utf8"),o=JSON.parse(s);if(o&&o.model)return o.model}}catch(t){console.warn(e,t.message)}return null}getCurrentModel(e){let t=e.findIndex(o=>o==="--model");if(t!==-1&&t+1<e.length)return e[t+1];let s=this.readModelFromSettingsFile(process.cwd());return s||(s=this.readModelFromSettingsFile(ve.homedir()),s)?s:this.config.defaultModel}async ensureConfig(e=0){let t=M.join(ve.homedir(),this.config.configDir,this.config.configFile),s=M.dirname(t);if(!k.existsSync(t)){let o=this.config.defaultConfig||{};try{k.existsSync(s)||k.mkdirSync(s,{recursive:!0}),k.writeFileSync(t,JSON.stringify(o,null,2)),e>0&&await new Promise(r=>setTimeout(r,e))}catch(r){console.warn(`Failed to create ${this.config.configFile}: ${r.message}`)}}}findExecutablePath(){let e=M.dirname(require.main.filename);for(let t of this.config.executablePaths){let s=M.resolve(e,t);if(k.existsSync(s))return s}throw new Error(`Could not find executable in any of the configured paths: ${this.config.executablePaths.join(", ")}`)}handleChildMessages(e){process.env.CODEV_DEBUG&&console.log("Child process message handler initialized"),e.connected&&(e.on("message",t=>{this.onChildMessage(t)}),e.on("exit",async(t,s)=>{try{await this.handleChildProcessExit(t,s)}catch(o){console.error("Error in handleChildProcessExit:",o.message)}}),e.on("error",t=>{this.handleChildProcessError(t)}))}onChildMessage(e){process.env.CODEV_DEBUG&&console.log("Received IPC message from child:",e)}handleChildProcessExit(e,t){}handleChildProcessError(e){}async launch(e={}){let{remainingArgs:t=[],codevServer:s,auth_ak:o=null,auth_sk:r=null}=e;try{let n=this.getCurrentModel(t);be(t)||console.log(`model:\x1B[90m\x1B[3m ${n} (use /model to switch models) \x1B[0m`),await this.ensureConfig(1e3);let i=this.findExecutablePath();return process.env.CODEV_DEBUG&&console.log(`executablePath: ${i}`),new Promise((a,c)=>{let l={...process.env,...this.config.environmentVariables(s)};o&&(l.CODEV_AUTH_AK=o),r&&(l.CODEV_AUTH_SK=r);let u=["--no-warnings"];process.env.CODEV_INSPECT_BRK==="True"&&u.push("--inspect-brk"),u.push(i,...t);let d=Et("node",u,{env:l,stdio:["inherit","inherit","inherit","ipc"]});this.handleChildMessages(d),d.on("error",p=>{console.error(`Failed to start: ${p.message}`),c(p)}),d.on("exit",async(p,C)=>{be(t)||C&&console.log(`terminated by signal: ${C}`)}),process.on("SIGINT",async()=>{console.log(`
192
192
  Terminating ...`),d.kill("SIGTERM"),setTimeout(()=>{d.killed||d.kill("SIGKILL")},8e3)}),process.on("SIGTERM",async()=>{console.log(`
193
- Terminating ...`),d.kill("SIGTERM"),setTimeout(()=>{d.killed||d.kill("SIGKILL")},8e3)})})}catch(n){throw n}}};Ie.exports=Q});var $e=m((us,xe)=>{var g=process.env.CODEV_DEBUG==="True",Y=class{constructor(e={}){this.queue=[],this.processing=!1,this.shuttingDown=!1,this.shutdownTimeout=e.shutdownTimeout||5e3,this.maxRetries=e.maxRetries||3,this.retryDelay=e.retryDelay||1e3,this.onProcessMessage=e.onProcessMessage||null,this.shutdownPromise=null,this.currentlyProcessing=null}enqueue(e){if(this.shuttingDown)return g&&console.log("Queue is shutting down, skipping new messages"),null;let t={id:Date.now()+Math.random(),data:e,timestamp:Date.now(),retryCount:0,processing:!1};return this.queue.push(t),g&&console.log(`Message enqueued, queue length: ${this.queue.length}`),this.processQueue(),t.id}dequeue(){let e=this.queue.shift();return g&&e&&console.log(`Message dequeued, remaining queue length: ${this.queue.length}`),e}removeById(e){let t=this.queue.findIndex(s=>s.id===e);return t>-1?(this.queue.splice(t,1),g&&console.log(`Message ${e} removed from queue`),!0):!1}async processQueue(){if(!(this.processing||this.queue.length===0)){this.processing=!0;try{for(;this.queue.length>0&&!this.shuttingDown;){let e=this.queue[0];e.processing=!0;try{this.onProcessMessage&&await this.onProcessMessage(e),this.dequeue()}catch(t){if(g&&console.error(`Failed to process message: ${t.message}`),e.retryCount++,g&&console.log("Start Retry:",e.retryCount,"times..."),e.retryCount>=this.maxRetries)g&&console.error("Message exceeded max retries, removing from queue"),this.dequeue();else{e.processing=!1;let s=this.shuttingDown?100:this.retryDelay*e.retryCount;await new Promise(o=>setTimeout(o,s))}}}}finally{this.processing=!1}}}getQueueSize(){return this.queue.length}clear(){this.queue=[],g&&console.log("Message queue cleared")}setMessageProcessor(e){this.onProcessMessage=e}async waitForProcessingMessages(e=5e3){let t=this.queue.filter(o=>o.processing);if(t.length===0)return;g&&console.log(`Waiting for ${t.length} processing messages to complete (timeout: ${e}ms)`);let s=Date.now();for(;Date.now()-s<e;){if(this.queue.filter(r=>r.processing).length===0){g&&console.log(`All processing messages completed in ${Date.now()-s}ms`);return}await new Promise(r=>setTimeout(r,50))}if(g){let o=this.queue.filter(r=>r.processing);console.log(`Timeout waiting for processing messages. ${o.length} messages still processing`)}}async gracefulShutdown(e={}){if(this.shutdownPromise)return this.shutdownPromise;let{timeoutMs:t=this.shutdownTimeout,batchSize:s=10,fastMode:o=!1}=e;return this.shutdownPromise=new Promise(async r=>{this.shuttingDown=!0,await this.waitForProcessingMessages(Math.min(t*.3,3e3));let n=this.queue.filter(p=>!p.processing),i=n.length;g&&(console.log(`Starting graceful shutdown with ${i} pending messages (${this.queue.length-i} already processing)`),console.log(`Mode: ${o?"fast (parallel)":"sequential"}, timeout: ${t}ms`));let a=Date.now(),c=0,l=0;try{if(o){let p=await this.processAllParallel(t-(Date.now()-a),n);c=p.processed,l=p.failed}else{let p=await this.processInBatches(s,t-(Date.now()-a),n);c=p.processed,l=p.failed}}catch(p){g&&console.error("Error during shutdown processing:",p.message)}let u=Date.now()-a,d=this.queue.length;g&&(console.log(`Shutdown completed in ${u}ms:`),console.log(` - Total: ${i} messages`),console.log(` - Processed: ${c}`),console.log(` - Failed: ${l}`),console.log(` - Remaining: ${d}`)),r({totalMessages:i,processedMessages:c,failedMessages:l,remainingMessages:d,duration:u,allMessagesSent:d===0&&l===0})}),this.shutdownPromise}async processAllParallel(e){if(this.queue.length===0)return{processed:0,failed:0};g&&console.log(`Processing ${this.queue.length} messages in parallel...`);let t=[...this.queue];this.queue=[];let s=t.map(async a=>{try{return this.onProcessMessage&&await this.onProcessMessage(a),{success:!0,messageId:a.id}}catch(c){return g&&console.warn(`Message ${a.id} processing failed: ${c.message}`),{success:!1,messageId:a.id,error:c}}}),o=new Promise(a=>{setTimeout(()=>a({timedOut:!0}),e)}),r=await Promise.race([Promise.allSettled(s).then(a=>({results:a})),o]);if(r.timedOut)return g&&console.log(`Parallel processing timed out after ${e}ms`),{processed:0,failed:t.length};let n=r.results.filter(a=>a.status==="fulfilled"&&a.value?.success).length,i=t.length-n;return{processed:n,failed:i}}async processInBatches(e,t){if(this.queue.length===0)return{processed:0,failed:0};g&&console.log(`Processing ${this.queue.length} messages in batches of ${e}...`);let s=Date.now(),o=0,r=0;for(;this.queue.length>0&&Date.now()-s<t;){let n=this.queue.splice(0,e),i=n.map(async u=>{try{return this.onProcessMessage&&await this.onProcessMessage(u),{success:!0}}catch(d){return g&&console.warn(`Batch message processing failed: ${d.message}`),{success:!1,error:d}}}),c=(await Promise.allSettled(i)).filter(u=>u.status==="fulfilled"&&u.value?.success).length,l=n.length-c;o+=c,r+=l,g&&n.length>0&&console.log(`Batch completed: ${c}/${n.length} successful`),this.queue.length>0&&await new Promise(u=>setTimeout(u,10))}return this.queue.length>0&&(r+=this.queue.length,g&&console.log(`${this.queue.length} messages not processed due to timeout`),this.queue=[]),{processed:o,failed:r}}async forceFlushAndShutdown(e=2e3){this.shuttingDown=!0,await this.waitForProcessingMessages(Math.min(e*.4,1e3));let t=this.queue.filter(a=>!a.processing);g&&console.log(`Force flush: attempting to send ${t.length} pending messages within ${e}ms (${this.queue.length-t.length} already processing)`);let s=Date.now(),o=t.map(async a=>{try{return this.onProcessMessage&&Date.now()-s<e?(await this.onProcessMessage(a),{success:!0,messageId:a.id}):{success:!1,messageId:a.id,reason:"timeout"}}catch(c){return{success:!1,messageId:a.id,error:c.message}}}),r=e-(Date.now()-s),n=new Promise(a=>{setTimeout(()=>a({timedOut:!0}),Math.max(100,r))}),i=await Promise.race([Promise.allSettled(o).then(a=>({results:a})),n]);if(t.forEach(a=>{let c=this.queue.findIndex(l=>l.id===a.id);c>-1&&this.queue.splice(c,1)}),this.processing=!1,i.timedOut)return g&&console.log(`Force flush timed out after ${e}ms`),{success:!1,reason:"timeout",attemptedCount:t.length};{let a=i.results.filter(c=>c.status==="fulfilled"&&c.value.success).length;return g&&console.log(`Force flush completed: ${a}/${t.length} messages sent`),{success:a===t.length,successCount:a,totalCount:t.length,results:i.results}}}forceShutdown(){this.shuttingDown=!0,this.queue=[],this.processing=!1,g&&console.log("Force shutdown: Queue cleared")}};xe.exports=Y});var q=m((ds,vt)=>{vt.exports={name:"makecoder",version:"2.0.96",description:"MakeCoder: Unified AI agent CLI tool integrating Claude Code, Codex and Gemini CLI",main:"./dist/coder.js",bin:{coder:"./dist/coder.js"},scripts:{test:'echo "Error: no test specified" && exit 1',start:"node ./src/coder.js",build:"node scripts/build.js","build:clean":"node scripts/build.js --clean","build:dev":"node scripts/build.js --no-minify --sourcemap",postinstall:"node scripts/postinstall.js"},keywords:["cli","ai","claude","gemini","codex","agent"],author:"makecoder",license:"MIT",repository:{type:"git",url:"https://github.com/makecoderai/coder.git"},homepage:"https://github.com/makecoderai/coder",dependencies:{"node-fetch":"^3.3.2",open:"^10.1.0",zod:"^3.25.76"},optionalDependencies:{"makecoder-codex-linux-x64":"*","makecoder-codex-darwin-arm64":"*","makecoder-codex-win32-x64":"*"},engines:{node:">=20.0.0"},devDependencies:{chokidar:"^4.0.3"},files:["dist","claude","scripts/postinstall.js"]}});var _e=m((hs,ke)=>{var bt=require("http"),It=require("https"),{URL:De}=require("url"),{version:xt}=q(),Pe=process.env.CODEV_DEBUG==="True",Z=class{constructor(e={}){this.baseUrl=e.baseUrl||"",this.timeout=e.timeout||3e4,this.defaultHeaders={"Content-Type":"application/json","User-Agent":`codev-cli/${xt}`,...e.headers}}setBaseUrl(e){this.baseUrl=e}setDefaultHeaders(e){this.defaultHeaders={...this.defaultHeaders,...e}}async post(e,t,s={}){let o=this.resolveUrl(e),r={...this.defaultHeaders,...s.headers};return new Promise((n,i)=>{this.validateRequest(o,t,i);let a=this.serializeData(t,i);if(!a)return;r["Content-Length"]=Buffer.byteLength(a);let c=this.buildRequestOptions(o,"POST",r),l=this.getHttpModule(o);Pe&&console.debug(`HTTP POST to ${o} with data length: ${a.length}`);let u=l.request(c,d=>{this.handleResponse(d,n,i)});this.attachErrorHandlers(u,o,i),u.setTimeout(this.timeout),u.write(a),u.end()})}resolveUrl(e){return e.startsWith("http")?e:`${this.baseUrl}${e.startsWith("/")?"":"/"}${e}`}validateRequest(e,t,s){return!e||typeof e!="string"?(s(new Error(`Invalid URL: ${e}`)),!1):t?!0:(s(new Error("No data provided for HTTP POST")),!1)}serializeData(e,t){try{return typeof e=="string"?e:JSON.stringify(e)}catch(s){return t(new Error(`Failed to serialize data: ${s.message}`)),null}}buildRequestOptions(e,t,s){let o=new De(e),r=o.protocol==="https:";return{hostname:o.hostname,port:o.port||(r?443:80),path:o.pathname+o.search,method:t,headers:s}}getHttpModule(e){return new De(e).protocol==="https:"?It:bt}handleResponse(e,t,s){Pe&&console.debug(`HTTP response status: ${e.statusCode}`);let o="";e.on("data",r=>{o+=r}),e.on("end",()=>{e.statusCode>=200&&e.statusCode<300?t({statusCode:e.statusCode,data:o,headers:e.headers}):s(new Error(`HTTP request returned status ${e.statusCode}: ${o}`))})}attachErrorHandlers(e,t,s){e.on("error",o=>{s(new Error(`HTTP POST request failed: ${o.message}`))}),e.on("timeout",()=>{s(new Error(`HTTP POST request timed out for URL: ${t}`)),e.destroy()})}};ke.exports=Z});var Te=m((ps,Oe)=>{var $t=require("crypto"),{URL:Dt}=require("url"),X=class{static generateSignature(e,t,s,o){try{let r=new Dt(e),n=Buffer.from(r.pathname),i=Buffer.from(n),a=t?typeof t=="string"?Buffer.from(t):Buffer.from(JSON.stringify(t)):Buffer.alloc(0),c=Buffer.concat([i,a,Buffer.from(o)]),l=$t.createHmac("sha256",s);return l.update(c),l.digest("hex")}catch(r){throw new Error(`Failed to generate signature: ${r.message}`)}}static validateSignature(e,t,s,o,r){return this.generateSignature(e,t,s,o)===r}static generateTimestamp(){return Date.now().toString()}};Oe.exports=X});var Me=m((fs,Ae)=>{var Pt=Te(),ee=class{constructor(e={}){this.accessKey=null,this.secretKey=null,this.validateCredentials=e.validateCredentials!==!1}setCredentials(e,t){if(this.validateCredentials&&(!e||!t))throw new Error("Both access key and secret key are required");this.accessKey=e,this.secretKey=t}hasCredentials(){return!!(this.accessKey&&this.secretKey)}generateAuthHeaders(e,t=null){if(!this.hasCredentials())return{};try{return{AUTHORIZATION:`Bearer ${this.accessKey}.${this.secretKey}`}}catch(s){throw new Error(`Failed to generate auth headers: ${s.message}`)}}validateAuthHeaders(e,t,s,o){if(!this.hasCredentials())throw new Error("No credentials available for validation");return Pt.validateSignature(e,t,this.secretKey,s,o)}clearCredentials(){this.accessKey=null,this.secretKey=null}getCredentials(){return{accessKey:this.accessKey,hasCredentials:this.hasCredentials()}}};Ae.exports=ee});var Ue=m((gs,qe)=>{var U=process.env.CODEV_DEBUG==="True",te=class{constructor(e={}){this.currentSessionId=null,this.previousSessionId=null,this.onSessionSwitch=e.onSessionSwitch||null,this.terminateSignal=e.terminateSignal||"CODEV_TERMINATE_SIGNAL"}handleSessionSwitch(e){if(!e)return U&&console.warn("Received empty session ID"),!1;let t=this.previousSessionId!==null&&this.previousSessionId!==e;return t&&(U&&console.log(`Session switch detected: ${this.previousSessionId} -> ${e}`),this.onSessionSwitch&&this.onSessionSwitch({type:this.terminateSignal,reason:"User switch session",agent:"claude",previousSessionId:this.previousSessionId,newSessionId:e})),this.previousSessionId=this.currentSessionId,this.currentSessionId=e,t}getCurrentSessionId(){return this.currentSessionId}getPreviousSessionId(){return this.previousSessionId}hasActiveSession(){return!!this.currentSessionId}terminateCurrentSession(e="Session terminated",t=null,s=null){if(!this.hasActiveSession())return U&&console.log("No active session to terminate"),null;let o={type:this.terminateSignal,reason:s?`terminated by signal: ${s}`:e,code:t,signal:s,timestamp:Date.now(),agent:"claude",sessionId:this.currentSessionId};return U&&console.log("Terminating session:",o),this.previousSessionId=null,this.currentSessionId=null,o}createErrorTermination(e){return this.hasActiveSession()?{type:this.terminateSignal,error:e.message,stack:e.stack,timestamp:Date.now(),agent:"claude",sessionId:this.currentSessionId}:null}reset(){U&&console.log("Resetting session manager"),this.currentSessionId=null,this.previousSessionId=null}setSessionSwitchCallback(e){this.onSessionSwitch=e}getSessionInfo(){return{currentSessionId:this.currentSessionId,previousSessionId:this.previousSessionId,hasActiveSession:this.hasActiveSession()}}};qe.exports=te});var Ne=m((ms,Fe)=>{var _=require("fs"),T=require("path"),kt=require("events"),_t=require("crypto"),S=process.env.CODEV_DEBUG==="True",se=class extends kt{constructor(e={}){super(),this.watchPaths=e.watchPaths||[],this.excludePatterns=e.excludePatterns||[/node_modules/,/\.git/,/\.DS_Store/,/\.tmp/,/\.log$/,/\.swp$/,/codev\.log/],this.includePatterns=e.includePatterns||[/\.(js|jsx|ts|tsx|py|java|c|cpp|h|hpp|go|rs|rb|php|html|css|scss|sass|less|json|xml|yaml|yml|md|txt)$/],this.watchers=new Map,this.isWatching=!1,this.debounceTimeout=e.debounceTimeout||300,this.pendingChanges=new Map,this.fileContentHashes=new Map,this.enableContentComparison=e.enableContentComparison!==!1,this.onFileChange=e.onFileChange||null}calculateFileHash(e){try{let t=_.readFileSync(e,"utf8");return _t.createHash("sha256").update(t).digest("hex")}catch{return null}}hasContentChanged(e){if(!this.enableContentComparison)return!0;let t=this.calculateFileHash(e),s=this.fileContentHashes.get(e);return t===null?s!==void 0?(this.fileContentHashes.delete(e),!0):!1:s===void 0||t!==s?(this.fileContentHashes.set(e,t),!0):!1}preloadFileHashes(e){if(!(!this.enableContentComparison||!_.existsSync(e)))try{let t=_.readdirSync(e,{withFileTypes:!0});for(let s of t){let o=T.join(e,s.name);s.isFile()&&this.shouldWatchFile(o)?(this.calculateFileHash(o),this.fileContentHashes.set(o,this.calculateFileHash(o))):s.isDirectory()&&!this.shouldExcludeDirectory(o)&&this.preloadFileHashes(o)}}catch(t){S&&console.warn(`Failed to preload hashes for ${e}:`,t.message)}}shouldExcludeDirectory(e){let t=e.replace(/\\/g,"/");for(let s of this.excludePatterns)if(s.test(t)||s.test(T.basename(e)))return!0;return!1}startWatching(e=null){if(this.isWatching){S&&console.log("FileWatchService is already watching");return}let t=e||this.watchPaths;if(t.length===0){S&&console.log("No watch paths specified");return}this.isWatching=!0;for(let s of t)this.enableContentComparison&&this.preloadFileHashes(s),this.watchDirectory(s);S&&(console.log(`FileWatchService started watching ${t.length} paths`),this.enableContentComparison&&console.log(`Preloaded hashes for ${this.fileContentHashes.size} files`))}stopWatching(){if(this.isWatching){this.isWatching=!1;for(let[e,t]of this.watchers)try{t.close(),S&&console.log(`Stopped watching: ${e}`)}catch(s){S&&console.error(`Error stopping watcher for ${e}:`,s.message)}this.watchers.clear(),this.pendingChanges.clear(),this.fileContentHashes.clear(),S&&console.log("FileWatchService stopped watching all paths")}}watchDirectory(e){if(!_.existsSync(e)){S&&console.warn(`Watch path does not exist: ${e}`);return}if(!_.statSync(e).isDirectory()){S&&console.warn(`Watch path is not a directory: ${e}`);return}try{let s=_.watch(e,{recursive:!0,persistent:!1},(o,r)=>{if(!r)return;let n=T.join(e,r);this.handleFileChange(o,n,e)});this.watchers.set(e,s),S&&console.log(`Started watching directory: ${e}`),s.on("error",o=>{S&&console.error(`Watcher error for ${e}:`,o.message),this.watchers.delete(e)})}catch(s){S&&console.error(`Failed to start watching ${e}:`,s.message)}}handleFileChange(e,t,s){if(!this.shouldWatchFile(t))return;let o=`${e}:${t}`;this.pendingChanges.has(o)&&clearTimeout(this.pendingChanges.get(o)),this.pendingChanges.set(o,setTimeout(()=>{this.pendingChanges.delete(o),this.processFileChange(e,t,s)},this.debounceTimeout))}processFileChange(e,t,s){if(!this.isWatching)return;let o="modified",r=!1;try{_.statSync(t),r=!0,e==="rename"?o="created":e==="change"&&(o="modified")}catch{e==="rename"&&(o="deleted")}if(r&&(o==="modified"||o==="created")&&!this.hasContentChanged(t)){S&&console.log(`Ignoring false change for: ${T.relative(s,t)}`);return}!r&&o==="deleted"&&this.fileContentHashes.delete(t);let n={type:"CODEV_FILE_CHANGE_DETECTTED",data:{eventType:e,changeType:o,filePath:t,relativePath:T.relative(s,t),watchPath:s,fileExists:r,timestamp:Date.now(),sessionId:process.env.SESSION_ID||"default"}};if(S&&console.log(`File ${o}: ${n.data.relativePath}`),this.emit("fileChange",n),this.onFileChange&&typeof this.onFileChange=="function")try{this.onFileChange(n)}catch(i){S&&console.error("Error in file change callback:",i.message)}}shouldWatchFile(e){let t=T.basename(e),s=e.replace(/\\/g,"/");for(let o of this.excludePatterns)if(o.test(s)||o.test(t))return!1;if(this.includePatterns.length===0)return!0;for(let o of this.includePatterns)if(o.test(s)||o.test(t))return!0;return!1}addWatchPath(e){this.watchPaths.includes(e)||(this.watchPaths.push(e),this.isWatching&&this.watchDirectory(e))}removeWatchPath(e){let t=this.watchPaths.indexOf(e);if(t>-1&&(this.watchPaths.splice(t,1),this.watchers.has(e)))try{this.watchers.get(e).close(),this.watchers.delete(e),S&&console.log(`Removed watch path: ${e}`)}catch(s){S&&console.error(`Error removing watch path ${e}:`,s.message)}}getStatus(){return{isWatching:this.isWatching,watchPaths:[...this.watchPaths],activeWatchers:this.watchers.size,pendingChanges:this.pendingChanges.size}}setFileChangeCallback(e){this.onFileChange=e}};Fe.exports=se});var je=m((Ss,Be)=>{var Ot=H(),Tt=require("path"),ys=require("fs"),ws=require("os"),At=$e(),Mt=_e(),qt=Me(),Ut=Ue(),Ft=Ne(),w=process.env.CODEV_DEBUG==="True",oe=class extends Ot{constructor(){super({configDir:".",configFile:".claude.json",defaultModel:"Claude Sonnet 4.5",executablePaths:["cc.mjs","/tmp/claude-code/package/cc.mjs"],environmentVariables:e=>({ANTHROPIC_BASE_URL:`${e}/claude`,ANTHROPIC_API_KEY:"codev",DISABLE_TELEMETRY:!0,CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC:!0,DISABLE_COST_WARNINGS:!0,DISABLE_NON_ESSENTIAL_MODEL_CALLS:!0,CODEV_SERVER:e,CLAUDE_CODE_ATTRIBUTION_HEADER:"0"}),defaultConfig:{numStartups:1,installMethod:"unknown",autoUpdates:!1,theme:"Coder Dark",customApiKeyResponses:{approved:["codev"]},shiftEnterKeyBindingInstalled:!0,hasCompletedOnboarding:!0,subscriptionNoticeCount:0,hasAvailableSubscription:!0,projects:{}}}),this.fileWatchService=null,this.shutdownInProgress=!1,this.initializeServices()}initializeServices(){this.httpClient=new Mt({timeout:1e4}),this.authService=new qt({validateCredentials:!1}),this.sessionManager=new Ut({onSessionSwitch:e=>{this.sendTerminationMessage(e)}}),this.messageQueue=new At({maxRetries:2,retryDelay:500,shutdownTimeout:3e3,onProcessMessage:e=>this.processMessage(e)}),this.initializeFileWatchService()}resloveSettingFilePath(e){return Tt.join(e,this.config.configDir,".claude","settings.json")}initializeFileWatchService(){if(!process.env.SESSION_ID){w&&console.log("FileWatchService disabled: SESSION_ID environment variable not found");return}try{this.fileWatchService=new Ft({watchPaths:this.getFileWatchPaths(),onFileChange:e=>this.handleFileChange(e),debounceTimeout:300}),w&&console.log("FileWatchService initialized with SESSION_ID:",process.env.SESSION_ID)}catch(e){w&&console.error("Failed to initialize FileWatchService:",e.message)}}getFileWatchPaths(){let e=[],t=process.cwd();e.push(t);let s=process.env.CODEV_WATCH_PATHS;if(s){let o=s.split(",").map(r=>r.trim());e.push(...o)}return e}handleFileChange(e){if(w&&console.log("File change detected:",e.data.relativePath),this.shutdownInProgress)return;let t={message:e,sessionId:e.data.sessionId||process.env.SESSION_ID};this.messageQueue.enqueue(t)}startFileWatching(){this.fileWatchService&&!this.fileWatchService.isWatching&&(this.fileWatchService.startWatching(),w&&console.log("File watching started"))}stopFileWatching(){this.fileWatchService&&this.fileWatchService.isWatching&&(this.fileWatchService.stopWatching(),w&&console.log("File watching stopped"))}onChildMessage(e){e&&e.type==="claude:send-msg"&&this.handleClaudeSendMessage(e.data),super.onChildMessage(e)}handleClaudeSendMessage(e){if(w&&console.log("Handling claude:send-msg message:",e),!e||typeof e!="object"){console.error(`handleClaudeSendMessage: Invalid message data. Expected object, got: ${typeof e}`);return}if(this.shutdownInProgress){w&&console.log("Shutdown in progress, ignoring new message");return}let t=e.sessionId||process.env.SESSION_ID;this.sessionManager.handleSessionSwitch(t),this.messageQueue.enqueue(e)}async processMessage(e){let t=e.data.message,s=e.data.sessionId||process.env.SESSION_ID;if(!s)throw new Error("No session ID available");let o;try{o=typeof t=="string"?JSON.parse(t):t}catch(i){throw new Error(`Failed to parse message data: ${i.message}`)}let r=`/conversations/${s}/@append?task_type=codev`,n=this.authService.hasCredentials()?this.authService.generateAuthHeaders(`${this.httpClient.baseUrl}${r}`,o):{};w&&(console.debug("Sending message to:",r),console.debug("Send Message: ",JSON.stringify(o))),e.type!=="CODEV_TERMINATE_SIGNAL"&&(this.sessionManager.currentSessionId=s)}sendTerminationMessage(e){let t={message:e,sessionId:e.sessionId||this.sessionManager.getCurrentSessionId()};this.messageQueue.enqueue(t)}async handleChildProcessExit(e,t){w&&console.log(`Child process exited with code: ${e}, signal: ${t}`),this.stopFileWatching();let s=this.messageQueue.getQueueSize(),o=this.sessionManager.terminateCurrentSession("process exited normally",e,t);if(o&&this.sendTerminationMessage(o),s>0||o){w&&console.log("Starting graceful shutdown of message queue...");try{let r=!t||t==="SIGTERM",n=this.messageQueue.getQueueSize(),i={timeoutMs:r?8e3:3e3,batchSize:Math.min(n,15),fastMode:!r||n>30};w&&console.log("Shutdown options:",i);let a=await this.messageQueue.gracefulShutdown(i);w&&console.log("Message queue shutdown completed:",a),a.failedMessages>0&&w&&console.warn(`Shutdown summary: ${a.processedMessages} sent, ${a.failedMessages} failed, ${a.remainingMessages} remaining`)}catch(r){w&&console.error("Error during message queue shutdown:",r.message)}}}handleChildProcessError(e){w&&console.error(`Child process error: ${e.message}`);let t=this.sessionManager.createErrorTermination(e);t&&this.sendTerminationMessage(t)}async forceFlushMessages(e=3e3){if(this.messageQueue.getQueueSize()===0)return{success:!0,message:"No messages to flush"};w&&console.log(`Force flushing ${this.messageQueue.getQueueSize()} messages...`);try{return await this.messageQueue.forceFlushAndShutdown(e)}catch(t){return w&&console.error("Force flush failed:",t.message),{success:!1,error:t.message}}}async launch(e={}){let{codevServer:t,auth_ak:s=null,auth_sk:o=null}=e;return this.httpClient.setBaseUrl(t),s&&o&&this.authService.setCredentials(s,o),this.startFileWatching(),super.launch(e)}};Be.exports=oe});var Re=m((Es,Le)=>{var Nt=H(),Cs=require("path"),ne=class extends Nt{constructor(){super({configDir:".gemini",configFile:"settings.json",defaultModel:"gemini-2.5-pro",executablePaths:["gemini/gemini.js","../dist/gemini/gemini.js"],environmentVariables:e=>({GOOGLE_GEMINI_BASE_URL:`${e}/gemini`,GEMINI_API_KEY:"coder",GOOGLE_API_KEY:"coder",GOOGLE_CLOUD_PROJECT:"coder",GOOGLE_CLOUD_LOCATION:"coder",DISABLE_TELEMETRY:!0,GEMINI_CODE_DISABLE_NONESSENTIAL_TRAFFIC:!0,DISABLE_COST_WARNINGS:!0,DISABLE_NON_ESSENTIAL_MODEL_CALLS:!0,USE_VERTEX:!0}),defaultConfig:{ide:{hasSeenNudge:!0},telemetry:{enabled:!1,logPrompts:!1},privacy:{usageStatisticsEnabled:!1},general:{disableUpdateNag:!0,preferredEditor:"vscode",previewFeatures:!0},ui:{hideBanner:!0,theme:"Default"},security:{auth:{selectedType:"vertex-ai"}}}})}};Le.exports=ne});var Ge=m((vs,He)=>{var Bt=H(),F=require("path"),$=require("fs"),jt=require("os"),{spawn:Lt}=require("child_process"),G=process.env.CODEV_DEBUG==="True",re=class extends Bt{constructor(){super({configDir:".codex",configFile:"config.toml",defaultModel:"o4-mini",executablePaths:["codex.mjs","../dist/codex.mjs"],environmentVariables:e=>({OPENAI_BASE_URL:`${e}/codex`,OPENAI_API_KEY:"codev-proxy-key",DEBUG:G?"true":"false",CODEX_QUIET_MODE:"0",OPENAI_DISABLE_TELEMETRY:"true",CODEX_DISABLE_PROJECT_DOC:"0",CODEV_SERVER:e}),defaultConfig:{model:"gpt-5-codex",approvalMode:"suggest",fullAutoErrorMode:"ask-user",notify:[],history:{maxSize:1e3,saveHistory:!0,sensitivePatterns:[],persistence:"save-all"}}})}checkCodexAvailability(){try{let e=this.findExecutablePath();return $.existsSync(e)}catch{return!1}}resloveSettingFilePath(e){return F.join(e,this.config.configDir,"config.toml")}async ensureConfig(e,t=0){let s=F.join(jt.homedir(),this.config.configDir,this.config.configFile),o=F.dirname(s);try{$.existsSync(o)||$.mkdirSync(o,{recursive:!0});let r=`${e}/codex`;if($.existsSync(s)){let n=$.readFileSync(s,"utf8"),i=`openai_base_url = "${r}"`;/^openai_base_url\s*=/m.test(n)?n=n.replace(/^openai_base_url\s*=.*/m,i):n=n.trimEnd()+`
193
+ Terminating ...`),d.kill("SIGTERM"),setTimeout(()=>{d.killed||d.kill("SIGKILL")},8e3)})})}catch(n){throw n}}};Ie.exports=Q});var $e=m((us,xe)=>{var g=process.env.CODEV_DEBUG==="True",Y=class{constructor(e={}){this.queue=[],this.processing=!1,this.shuttingDown=!1,this.shutdownTimeout=e.shutdownTimeout||5e3,this.maxRetries=e.maxRetries||3,this.retryDelay=e.retryDelay||1e3,this.onProcessMessage=e.onProcessMessage||null,this.shutdownPromise=null,this.currentlyProcessing=null}enqueue(e){if(this.shuttingDown)return g&&console.log("Queue is shutting down, skipping new messages"),null;let t={id:Date.now()+Math.random(),data:e,timestamp:Date.now(),retryCount:0,processing:!1};return this.queue.push(t),g&&console.log(`Message enqueued, queue length: ${this.queue.length}`),this.processQueue(),t.id}dequeue(){let e=this.queue.shift();return g&&e&&console.log(`Message dequeued, remaining queue length: ${this.queue.length}`),e}removeById(e){let t=this.queue.findIndex(s=>s.id===e);return t>-1?(this.queue.splice(t,1),g&&console.log(`Message ${e} removed from queue`),!0):!1}async processQueue(){if(!(this.processing||this.queue.length===0)){this.processing=!0;try{for(;this.queue.length>0&&!this.shuttingDown;){let e=this.queue[0];e.processing=!0;try{this.onProcessMessage&&await this.onProcessMessage(e),this.dequeue()}catch(t){if(g&&console.error(`Failed to process message: ${t.message}`),e.retryCount++,g&&console.log("Start Retry:",e.retryCount,"times..."),e.retryCount>=this.maxRetries)g&&console.error("Message exceeded max retries, removing from queue"),this.dequeue();else{e.processing=!1;let s=this.shuttingDown?100:this.retryDelay*e.retryCount;await new Promise(o=>setTimeout(o,s))}}}}finally{this.processing=!1}}}getQueueSize(){return this.queue.length}clear(){this.queue=[],g&&console.log("Message queue cleared")}setMessageProcessor(e){this.onProcessMessage=e}async waitForProcessingMessages(e=5e3){let t=this.queue.filter(o=>o.processing);if(t.length===0)return;g&&console.log(`Waiting for ${t.length} processing messages to complete (timeout: ${e}ms)`);let s=Date.now();for(;Date.now()-s<e;){if(this.queue.filter(r=>r.processing).length===0){g&&console.log(`All processing messages completed in ${Date.now()-s}ms`);return}await new Promise(r=>setTimeout(r,50))}if(g){let o=this.queue.filter(r=>r.processing);console.log(`Timeout waiting for processing messages. ${o.length} messages still processing`)}}async gracefulShutdown(e={}){if(this.shutdownPromise)return this.shutdownPromise;let{timeoutMs:t=this.shutdownTimeout,batchSize:s=10,fastMode:o=!1}=e;return this.shutdownPromise=new Promise(async r=>{this.shuttingDown=!0,await this.waitForProcessingMessages(Math.min(t*.3,3e3));let n=this.queue.filter(p=>!p.processing),i=n.length;g&&(console.log(`Starting graceful shutdown with ${i} pending messages (${this.queue.length-i} already processing)`),console.log(`Mode: ${o?"fast (parallel)":"sequential"}, timeout: ${t}ms`));let a=Date.now(),c=0,l=0;try{if(o){let p=await this.processAllParallel(t-(Date.now()-a),n);c=p.processed,l=p.failed}else{let p=await this.processInBatches(s,t-(Date.now()-a),n);c=p.processed,l=p.failed}}catch(p){g&&console.error("Error during shutdown processing:",p.message)}let u=Date.now()-a,d=this.queue.length;g&&(console.log(`Shutdown completed in ${u}ms:`),console.log(` - Total: ${i} messages`),console.log(` - Processed: ${c}`),console.log(` - Failed: ${l}`),console.log(` - Remaining: ${d}`)),r({totalMessages:i,processedMessages:c,failedMessages:l,remainingMessages:d,duration:u,allMessagesSent:d===0&&l===0})}),this.shutdownPromise}async processAllParallel(e){if(this.queue.length===0)return{processed:0,failed:0};g&&console.log(`Processing ${this.queue.length} messages in parallel...`);let t=[...this.queue];this.queue=[];let s=t.map(async a=>{try{return this.onProcessMessage&&await this.onProcessMessage(a),{success:!0,messageId:a.id}}catch(c){return g&&console.warn(`Message ${a.id} processing failed: ${c.message}`),{success:!1,messageId:a.id,error:c}}}),o=new Promise(a=>{setTimeout(()=>a({timedOut:!0}),e)}),r=await Promise.race([Promise.allSettled(s).then(a=>({results:a})),o]);if(r.timedOut)return g&&console.log(`Parallel processing timed out after ${e}ms`),{processed:0,failed:t.length};let n=r.results.filter(a=>a.status==="fulfilled"&&a.value?.success).length,i=t.length-n;return{processed:n,failed:i}}async processInBatches(e,t){if(this.queue.length===0)return{processed:0,failed:0};g&&console.log(`Processing ${this.queue.length} messages in batches of ${e}...`);let s=Date.now(),o=0,r=0;for(;this.queue.length>0&&Date.now()-s<t;){let n=this.queue.splice(0,e),i=n.map(async u=>{try{return this.onProcessMessage&&await this.onProcessMessage(u),{success:!0}}catch(d){return g&&console.warn(`Batch message processing failed: ${d.message}`),{success:!1,error:d}}}),c=(await Promise.allSettled(i)).filter(u=>u.status==="fulfilled"&&u.value?.success).length,l=n.length-c;o+=c,r+=l,g&&n.length>0&&console.log(`Batch completed: ${c}/${n.length} successful`),this.queue.length>0&&await new Promise(u=>setTimeout(u,10))}return this.queue.length>0&&(r+=this.queue.length,g&&console.log(`${this.queue.length} messages not processed due to timeout`),this.queue=[]),{processed:o,failed:r}}async forceFlushAndShutdown(e=2e3){this.shuttingDown=!0,await this.waitForProcessingMessages(Math.min(e*.4,1e3));let t=this.queue.filter(a=>!a.processing);g&&console.log(`Force flush: attempting to send ${t.length} pending messages within ${e}ms (${this.queue.length-t.length} already processing)`);let s=Date.now(),o=t.map(async a=>{try{return this.onProcessMessage&&Date.now()-s<e?(await this.onProcessMessage(a),{success:!0,messageId:a.id}):{success:!1,messageId:a.id,reason:"timeout"}}catch(c){return{success:!1,messageId:a.id,error:c.message}}}),r=e-(Date.now()-s),n=new Promise(a=>{setTimeout(()=>a({timedOut:!0}),Math.max(100,r))}),i=await Promise.race([Promise.allSettled(o).then(a=>({results:a})),n]);if(t.forEach(a=>{let c=this.queue.findIndex(l=>l.id===a.id);c>-1&&this.queue.splice(c,1)}),this.processing=!1,i.timedOut)return g&&console.log(`Force flush timed out after ${e}ms`),{success:!1,reason:"timeout",attemptedCount:t.length};{let a=i.results.filter(c=>c.status==="fulfilled"&&c.value.success).length;return g&&console.log(`Force flush completed: ${a}/${t.length} messages sent`),{success:a===t.length,successCount:a,totalCount:t.length,results:i.results}}}forceShutdown(){this.shuttingDown=!0,this.queue=[],this.processing=!1,g&&console.log("Force shutdown: Queue cleared")}};xe.exports=Y});var q=m((ds,vt)=>{vt.exports={name:"makecoder",version:"2.0.97",description:"MakeCoder: Unified AI agent CLI tool integrating Claude Code, Codex and Gemini CLI",main:"./dist/coder.js",bin:{coder:"./dist/coder.js"},scripts:{test:'echo "Error: no test specified" && exit 1',start:"node ./src/coder.js",build:"node scripts/build.js","build:clean":"node scripts/build.js --clean","build:dev":"node scripts/build.js --no-minify --sourcemap",postinstall:"node scripts/postinstall.js"},keywords:["cli","ai","claude","gemini","codex","agent"],author:"makecoder",license:"MIT",repository:{type:"git",url:"https://github.com/makecoderai/coder.git"},homepage:"https://github.com/makecoderai/coder",dependencies:{"node-fetch":"^3.3.2",open:"^10.1.0",zod:"^3.25.76"},optionalDependencies:{"makecoder-codex-linux-x64":"*","makecoder-codex-darwin-arm64":"*","makecoder-codex-win32-x64":"*"},engines:{node:">=20.0.0"},devDependencies:{chokidar:"^4.0.3"},files:["dist","claude","scripts/postinstall.js"]}});var _e=m((hs,ke)=>{var bt=require("http"),It=require("https"),{URL:De}=require("url"),{version:xt}=q(),Pe=process.env.CODEV_DEBUG==="True",Z=class{constructor(e={}){this.baseUrl=e.baseUrl||"",this.timeout=e.timeout||3e4,this.defaultHeaders={"Content-Type":"application/json","User-Agent":`codev-cli/${xt}`,...e.headers}}setBaseUrl(e){this.baseUrl=e}setDefaultHeaders(e){this.defaultHeaders={...this.defaultHeaders,...e}}async post(e,t,s={}){let o=this.resolveUrl(e),r={...this.defaultHeaders,...s.headers};return new Promise((n,i)=>{this.validateRequest(o,t,i);let a=this.serializeData(t,i);if(!a)return;r["Content-Length"]=Buffer.byteLength(a);let c=this.buildRequestOptions(o,"POST",r),l=this.getHttpModule(o);Pe&&console.debug(`HTTP POST to ${o} with data length: ${a.length}`);let u=l.request(c,d=>{this.handleResponse(d,n,i)});this.attachErrorHandlers(u,o,i),u.setTimeout(this.timeout),u.write(a),u.end()})}resolveUrl(e){return e.startsWith("http")?e:`${this.baseUrl}${e.startsWith("/")?"":"/"}${e}`}validateRequest(e,t,s){return!e||typeof e!="string"?(s(new Error(`Invalid URL: ${e}`)),!1):t?!0:(s(new Error("No data provided for HTTP POST")),!1)}serializeData(e,t){try{return typeof e=="string"?e:JSON.stringify(e)}catch(s){return t(new Error(`Failed to serialize data: ${s.message}`)),null}}buildRequestOptions(e,t,s){let o=new De(e),r=o.protocol==="https:";return{hostname:o.hostname,port:o.port||(r?443:80),path:o.pathname+o.search,method:t,headers:s}}getHttpModule(e){return new De(e).protocol==="https:"?It:bt}handleResponse(e,t,s){Pe&&console.debug(`HTTP response status: ${e.statusCode}`);let o="";e.on("data",r=>{o+=r}),e.on("end",()=>{e.statusCode>=200&&e.statusCode<300?t({statusCode:e.statusCode,data:o,headers:e.headers}):s(new Error(`HTTP request returned status ${e.statusCode}: ${o}`))})}attachErrorHandlers(e,t,s){e.on("error",o=>{s(new Error(`HTTP POST request failed: ${o.message}`))}),e.on("timeout",()=>{s(new Error(`HTTP POST request timed out for URL: ${t}`)),e.destroy()})}};ke.exports=Z});var Te=m((ps,Oe)=>{var $t=require("crypto"),{URL:Dt}=require("url"),X=class{static generateSignature(e,t,s,o){try{let r=new Dt(e),n=Buffer.from(r.pathname),i=Buffer.from(n),a=t?typeof t=="string"?Buffer.from(t):Buffer.from(JSON.stringify(t)):Buffer.alloc(0),c=Buffer.concat([i,a,Buffer.from(o)]),l=$t.createHmac("sha256",s);return l.update(c),l.digest("hex")}catch(r){throw new Error(`Failed to generate signature: ${r.message}`)}}static validateSignature(e,t,s,o,r){return this.generateSignature(e,t,s,o)===r}static generateTimestamp(){return Date.now().toString()}};Oe.exports=X});var Me=m((fs,Ae)=>{var Pt=Te(),ee=class{constructor(e={}){this.accessKey=null,this.secretKey=null,this.validateCredentials=e.validateCredentials!==!1}setCredentials(e,t){if(this.validateCredentials&&(!e||!t))throw new Error("Both access key and secret key are required");this.accessKey=e,this.secretKey=t}hasCredentials(){return!!(this.accessKey&&this.secretKey)}generateAuthHeaders(e,t=null){if(!this.hasCredentials())return{};try{return{AUTHORIZATION:`Bearer ${this.accessKey}.${this.secretKey}`}}catch(s){throw new Error(`Failed to generate auth headers: ${s.message}`)}}validateAuthHeaders(e,t,s,o){if(!this.hasCredentials())throw new Error("No credentials available for validation");return Pt.validateSignature(e,t,this.secretKey,s,o)}clearCredentials(){this.accessKey=null,this.secretKey=null}getCredentials(){return{accessKey:this.accessKey,hasCredentials:this.hasCredentials()}}};Ae.exports=ee});var Ue=m((gs,qe)=>{var U=process.env.CODEV_DEBUG==="True",te=class{constructor(e={}){this.currentSessionId=null,this.previousSessionId=null,this.onSessionSwitch=e.onSessionSwitch||null,this.terminateSignal=e.terminateSignal||"CODEV_TERMINATE_SIGNAL"}handleSessionSwitch(e){if(!e)return U&&console.warn("Received empty session ID"),!1;let t=this.previousSessionId!==null&&this.previousSessionId!==e;return t&&(U&&console.log(`Session switch detected: ${this.previousSessionId} -> ${e}`),this.onSessionSwitch&&this.onSessionSwitch({type:this.terminateSignal,reason:"User switch session",agent:"claude",previousSessionId:this.previousSessionId,newSessionId:e})),this.previousSessionId=this.currentSessionId,this.currentSessionId=e,t}getCurrentSessionId(){return this.currentSessionId}getPreviousSessionId(){return this.previousSessionId}hasActiveSession(){return!!this.currentSessionId}terminateCurrentSession(e="Session terminated",t=null,s=null){if(!this.hasActiveSession())return U&&console.log("No active session to terminate"),null;let o={type:this.terminateSignal,reason:s?`terminated by signal: ${s}`:e,code:t,signal:s,timestamp:Date.now(),agent:"claude",sessionId:this.currentSessionId};return U&&console.log("Terminating session:",o),this.previousSessionId=null,this.currentSessionId=null,o}createErrorTermination(e){return this.hasActiveSession()?{type:this.terminateSignal,error:e.message,stack:e.stack,timestamp:Date.now(),agent:"claude",sessionId:this.currentSessionId}:null}reset(){U&&console.log("Resetting session manager"),this.currentSessionId=null,this.previousSessionId=null}setSessionSwitchCallback(e){this.onSessionSwitch=e}getSessionInfo(){return{currentSessionId:this.currentSessionId,previousSessionId:this.previousSessionId,hasActiveSession:this.hasActiveSession()}}};qe.exports=te});var Ne=m((ms,Fe)=>{var _=require("fs"),T=require("path"),kt=require("events"),_t=require("crypto"),S=process.env.CODEV_DEBUG==="True",se=class extends kt{constructor(e={}){super(),this.watchPaths=e.watchPaths||[],this.excludePatterns=e.excludePatterns||[/node_modules/,/\.git/,/\.DS_Store/,/\.tmp/,/\.log$/,/\.swp$/,/codev\.log/],this.includePatterns=e.includePatterns||[/\.(js|jsx|ts|tsx|py|java|c|cpp|h|hpp|go|rs|rb|php|html|css|scss|sass|less|json|xml|yaml|yml|md|txt)$/],this.watchers=new Map,this.isWatching=!1,this.debounceTimeout=e.debounceTimeout||300,this.pendingChanges=new Map,this.fileContentHashes=new Map,this.enableContentComparison=e.enableContentComparison!==!1,this.onFileChange=e.onFileChange||null}calculateFileHash(e){try{let t=_.readFileSync(e,"utf8");return _t.createHash("sha256").update(t).digest("hex")}catch{return null}}hasContentChanged(e){if(!this.enableContentComparison)return!0;let t=this.calculateFileHash(e),s=this.fileContentHashes.get(e);return t===null?s!==void 0?(this.fileContentHashes.delete(e),!0):!1:s===void 0||t!==s?(this.fileContentHashes.set(e,t),!0):!1}preloadFileHashes(e){if(!(!this.enableContentComparison||!_.existsSync(e)))try{let t=_.readdirSync(e,{withFileTypes:!0});for(let s of t){let o=T.join(e,s.name);s.isFile()&&this.shouldWatchFile(o)?(this.calculateFileHash(o),this.fileContentHashes.set(o,this.calculateFileHash(o))):s.isDirectory()&&!this.shouldExcludeDirectory(o)&&this.preloadFileHashes(o)}}catch(t){S&&console.warn(`Failed to preload hashes for ${e}:`,t.message)}}shouldExcludeDirectory(e){let t=e.replace(/\\/g,"/");for(let s of this.excludePatterns)if(s.test(t)||s.test(T.basename(e)))return!0;return!1}startWatching(e=null){if(this.isWatching){S&&console.log("FileWatchService is already watching");return}let t=e||this.watchPaths;if(t.length===0){S&&console.log("No watch paths specified");return}this.isWatching=!0;for(let s of t)this.enableContentComparison&&this.preloadFileHashes(s),this.watchDirectory(s);S&&(console.log(`FileWatchService started watching ${t.length} paths`),this.enableContentComparison&&console.log(`Preloaded hashes for ${this.fileContentHashes.size} files`))}stopWatching(){if(this.isWatching){this.isWatching=!1;for(let[e,t]of this.watchers)try{t.close(),S&&console.log(`Stopped watching: ${e}`)}catch(s){S&&console.error(`Error stopping watcher for ${e}:`,s.message)}this.watchers.clear(),this.pendingChanges.clear(),this.fileContentHashes.clear(),S&&console.log("FileWatchService stopped watching all paths")}}watchDirectory(e){if(!_.existsSync(e)){S&&console.warn(`Watch path does not exist: ${e}`);return}if(!_.statSync(e).isDirectory()){S&&console.warn(`Watch path is not a directory: ${e}`);return}try{let s=_.watch(e,{recursive:!0,persistent:!1},(o,r)=>{if(!r)return;let n=T.join(e,r);this.handleFileChange(o,n,e)});this.watchers.set(e,s),S&&console.log(`Started watching directory: ${e}`),s.on("error",o=>{S&&console.error(`Watcher error for ${e}:`,o.message),this.watchers.delete(e)})}catch(s){S&&console.error(`Failed to start watching ${e}:`,s.message)}}handleFileChange(e,t,s){if(!this.shouldWatchFile(t))return;let o=`${e}:${t}`;this.pendingChanges.has(o)&&clearTimeout(this.pendingChanges.get(o)),this.pendingChanges.set(o,setTimeout(()=>{this.pendingChanges.delete(o),this.processFileChange(e,t,s)},this.debounceTimeout))}processFileChange(e,t,s){if(!this.isWatching)return;let o="modified",r=!1;try{_.statSync(t),r=!0,e==="rename"?o="created":e==="change"&&(o="modified")}catch{e==="rename"&&(o="deleted")}if(r&&(o==="modified"||o==="created")&&!this.hasContentChanged(t)){S&&console.log(`Ignoring false change for: ${T.relative(s,t)}`);return}!r&&o==="deleted"&&this.fileContentHashes.delete(t);let n={type:"CODEV_FILE_CHANGE_DETECTTED",data:{eventType:e,changeType:o,filePath:t,relativePath:T.relative(s,t),watchPath:s,fileExists:r,timestamp:Date.now(),sessionId:process.env.SESSION_ID||"default"}};if(S&&console.log(`File ${o}: ${n.data.relativePath}`),this.emit("fileChange",n),this.onFileChange&&typeof this.onFileChange=="function")try{this.onFileChange(n)}catch(i){S&&console.error("Error in file change callback:",i.message)}}shouldWatchFile(e){let t=T.basename(e),s=e.replace(/\\/g,"/");for(let o of this.excludePatterns)if(o.test(s)||o.test(t))return!1;if(this.includePatterns.length===0)return!0;for(let o of this.includePatterns)if(o.test(s)||o.test(t))return!0;return!1}addWatchPath(e){this.watchPaths.includes(e)||(this.watchPaths.push(e),this.isWatching&&this.watchDirectory(e))}removeWatchPath(e){let t=this.watchPaths.indexOf(e);if(t>-1&&(this.watchPaths.splice(t,1),this.watchers.has(e)))try{this.watchers.get(e).close(),this.watchers.delete(e),S&&console.log(`Removed watch path: ${e}`)}catch(s){S&&console.error(`Error removing watch path ${e}:`,s.message)}}getStatus(){return{isWatching:this.isWatching,watchPaths:[...this.watchPaths],activeWatchers:this.watchers.size,pendingChanges:this.pendingChanges.size}}setFileChangeCallback(e){this.onFileChange=e}};Fe.exports=se});var je=m((Ss,Be)=>{var Ot=H(),Tt=require("path"),ys=require("fs"),ws=require("os"),At=$e(),Mt=_e(),qt=Me(),Ut=Ue(),Ft=Ne(),w=process.env.CODEV_DEBUG==="True",oe=class extends Ot{constructor(){super({configDir:".",configFile:".claude.json",defaultModel:"Claude Sonnet 4.5",executablePaths:["cc.mjs","/tmp/claude-code/package/cc.mjs"],environmentVariables:e=>({ANTHROPIC_BASE_URL:`${e}/claude`,ANTHROPIC_API_KEY:"codev",DISABLE_TELEMETRY:!0,CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC:!0,DISABLE_COST_WARNINGS:!0,DISABLE_NON_ESSENTIAL_MODEL_CALLS:!0,CODEV_SERVER:e,CLAUDE_CODE_ATTRIBUTION_HEADER:"0"}),defaultConfig:{numStartups:1,installMethod:"unknown",autoUpdates:!1,theme:"Coder Dark",customApiKeyResponses:{approved:["codev"]},shiftEnterKeyBindingInstalled:!0,hasCompletedOnboarding:!0,subscriptionNoticeCount:0,hasAvailableSubscription:!0,projects:{}}}),this.fileWatchService=null,this.shutdownInProgress=!1,this.initializeServices()}initializeServices(){this.httpClient=new Mt({timeout:1e4}),this.authService=new qt({validateCredentials:!1}),this.sessionManager=new Ut({onSessionSwitch:e=>{this.sendTerminationMessage(e)}}),this.messageQueue=new At({maxRetries:2,retryDelay:500,shutdownTimeout:3e3,onProcessMessage:e=>this.processMessage(e)}),this.initializeFileWatchService()}resloveSettingFilePath(e){return Tt.join(e,this.config.configDir,".claude","settings.json")}initializeFileWatchService(){if(!process.env.SESSION_ID){w&&console.log("FileWatchService disabled: SESSION_ID environment variable not found");return}try{this.fileWatchService=new Ft({watchPaths:this.getFileWatchPaths(),onFileChange:e=>this.handleFileChange(e),debounceTimeout:300}),w&&console.log("FileWatchService initialized with SESSION_ID:",process.env.SESSION_ID)}catch(e){w&&console.error("Failed to initialize FileWatchService:",e.message)}}getFileWatchPaths(){let e=[],t=process.cwd();e.push(t);let s=process.env.CODEV_WATCH_PATHS;if(s){let o=s.split(",").map(r=>r.trim());e.push(...o)}return e}handleFileChange(e){if(w&&console.log("File change detected:",e.data.relativePath),this.shutdownInProgress)return;let t={message:e,sessionId:e.data.sessionId||process.env.SESSION_ID};this.messageQueue.enqueue(t)}startFileWatching(){this.fileWatchService&&!this.fileWatchService.isWatching&&(this.fileWatchService.startWatching(),w&&console.log("File watching started"))}stopFileWatching(){this.fileWatchService&&this.fileWatchService.isWatching&&(this.fileWatchService.stopWatching(),w&&console.log("File watching stopped"))}onChildMessage(e){e&&e.type==="claude:send-msg"&&this.handleClaudeSendMessage(e.data),super.onChildMessage(e)}handleClaudeSendMessage(e){if(w&&console.log("Handling claude:send-msg message:",e),!e||typeof e!="object"){console.error(`handleClaudeSendMessage: Invalid message data. Expected object, got: ${typeof e}`);return}if(this.shutdownInProgress){w&&console.log("Shutdown in progress, ignoring new message");return}let t=e.sessionId||process.env.SESSION_ID;this.sessionManager.handleSessionSwitch(t),this.messageQueue.enqueue(e)}async processMessage(e){let t=e.data.message,s=e.data.sessionId||process.env.SESSION_ID;if(!s)throw new Error("No session ID available");let o;try{o=typeof t=="string"?JSON.parse(t):t}catch(i){throw new Error(`Failed to parse message data: ${i.message}`)}let r=`/conversations/${s}/@append?task_type=codev`,n=this.authService.hasCredentials()?this.authService.generateAuthHeaders(`${this.httpClient.baseUrl}${r}`,o):{};w&&(console.debug("Sending message to:",r),console.debug("Send Message: ",JSON.stringify(o))),e.type!=="CODEV_TERMINATE_SIGNAL"&&(this.sessionManager.currentSessionId=s)}sendTerminationMessage(e){let t={message:e,sessionId:e.sessionId||this.sessionManager.getCurrentSessionId()};this.messageQueue.enqueue(t)}async handleChildProcessExit(e,t){w&&console.log(`Child process exited with code: ${e}, signal: ${t}`),this.stopFileWatching();let s=this.messageQueue.getQueueSize(),o=this.sessionManager.terminateCurrentSession("process exited normally",e,t);if(o&&this.sendTerminationMessage(o),s>0||o){w&&console.log("Starting graceful shutdown of message queue...");try{let r=!t||t==="SIGTERM",n=this.messageQueue.getQueueSize(),i={timeoutMs:r?8e3:3e3,batchSize:Math.min(n,15),fastMode:!r||n>30};w&&console.log("Shutdown options:",i);let a=await this.messageQueue.gracefulShutdown(i);w&&console.log("Message queue shutdown completed:",a),a.failedMessages>0&&w&&console.warn(`Shutdown summary: ${a.processedMessages} sent, ${a.failedMessages} failed, ${a.remainingMessages} remaining`)}catch(r){w&&console.error("Error during message queue shutdown:",r.message)}}}handleChildProcessError(e){w&&console.error(`Child process error: ${e.message}`);let t=this.sessionManager.createErrorTermination(e);t&&this.sendTerminationMessage(t)}async forceFlushMessages(e=3e3){if(this.messageQueue.getQueueSize()===0)return{success:!0,message:"No messages to flush"};w&&console.log(`Force flushing ${this.messageQueue.getQueueSize()} messages...`);try{return await this.messageQueue.forceFlushAndShutdown(e)}catch(t){return w&&console.error("Force flush failed:",t.message),{success:!1,error:t.message}}}async launch(e={}){let{codevServer:t,auth_ak:s=null,auth_sk:o=null}=e;return this.httpClient.setBaseUrl(t),s&&o&&this.authService.setCredentials(s,o),this.startFileWatching(),super.launch(e)}};Be.exports=oe});var Re=m((Es,Le)=>{var Nt=H(),Cs=require("path"),ne=class extends Nt{constructor(){super({configDir:".gemini",configFile:"settings.json",defaultModel:"gemini-2.5-pro",executablePaths:["gemini/gemini.js","../dist/gemini/gemini.js"],environmentVariables:e=>({GOOGLE_GEMINI_BASE_URL:`${e}/gemini`,GEMINI_API_KEY:"coder",GOOGLE_API_KEY:"coder",GOOGLE_CLOUD_PROJECT:"coder",GOOGLE_CLOUD_LOCATION:"coder",DISABLE_TELEMETRY:!0,GEMINI_CODE_DISABLE_NONESSENTIAL_TRAFFIC:!0,DISABLE_COST_WARNINGS:!0,DISABLE_NON_ESSENTIAL_MODEL_CALLS:!0,USE_VERTEX:!0}),defaultConfig:{ide:{hasSeenNudge:!0},telemetry:{enabled:!1,logPrompts:!1},privacy:{usageStatisticsEnabled:!1},general:{disableUpdateNag:!0,preferredEditor:"vscode",previewFeatures:!0},ui:{hideBanner:!0,theme:"Default"},security:{auth:{selectedType:"vertex-ai"}}}})}};Le.exports=ne});var Ge=m((vs,He)=>{var Bt=H(),F=require("path"),$=require("fs"),jt=require("os"),{spawn:Lt}=require("child_process"),G=process.env.CODEV_DEBUG==="True",re=class extends Bt{constructor(){super({configDir:".codex",configFile:"config.toml",defaultModel:"o4-mini",executablePaths:["codex.mjs","../dist/codex.mjs"],environmentVariables:e=>({OPENAI_BASE_URL:`${e}/codex`,OPENAI_API_KEY:"codev-proxy-key",DEBUG:G?"true":"false",CODEX_QUIET_MODE:"0",OPENAI_DISABLE_TELEMETRY:"true",CODEX_DISABLE_PROJECT_DOC:"0",CODEV_SERVER:e}),defaultConfig:{model:"gpt-5-codex",approvalMode:"suggest",fullAutoErrorMode:"ask-user",notify:[],history:{maxSize:1e3,saveHistory:!0,sensitivePatterns:[],persistence:"save-all"}}})}checkCodexAvailability(){try{let e=this.findExecutablePath();return $.existsSync(e)}catch{return!1}}resloveSettingFilePath(e){return F.join(e,this.config.configDir,"config.toml")}async ensureConfig(e,t=0){let s=F.join(jt.homedir(),this.config.configDir,this.config.configFile),o=F.dirname(s);try{$.existsSync(o)||$.mkdirSync(o,{recursive:!0});let r=`${e}/codex`;if($.existsSync(s)){let n=$.readFileSync(s,"utf8"),i=`openai_base_url = "${r}"`;/^openai_base_url\s*=/m.test(n)?n=n.replace(/^openai_base_url\s*=.*/m,i):n=n.trimEnd()+`
194
194
  `+i+`
195
195
  `,$.writeFileSync(s,n),G&&console.log(`Updated openai_base_url in ${s}`)}else{let n=this.config.defaultConfig||{},i=this.generateTOMLConfig(n,r);$.writeFileSync(s,i),G&&console.log(`Created Codex config file: ${s}`)}t>0&&await new Promise(n=>setTimeout(n,t))}catch(r){console.warn(`Failed to update ${this.config.configFile}: ${r.message}`)}}generateTOMLConfig(e,t){return`model = "${e.model||"gpt-5-codex"}"
196
196
  openai_base_url = "${t}"
@@ -1,5 +1,5 @@
1
1
  const require = (await import('node:module')).createRequire(import.meta.url); const __chunk_filename = (await import('node:url')).fileURLToPath(import.meta.url); const __chunk_dirname = (await import('node:path')).dirname(__chunk_filename);
2
- import{$b as ik,$c as hk,$e as vk,$k as Mc,Ag as Bp,Ah as t_,Ai as vd,B as zF,Bm as B_,Bn as __,Cb as pp,Ce as Sk,Cf as K$,Db as zb,Dc as Xb,De as Zb,Df as Fk,Dm as sS,Ee as Dk,Ef as kk,Em as w_,Fb as tk,Fe as eS,Fm as v_,Ge as xk,Gf as mo,Gg as Gk,Gl as iS,He as Bk,Hf as _k,Hg as Hk,If as Nk,Ih as n_,Ij as _c,Jc as Ak,Jh as qo,Kl as f_,Km as T_,L as JF,Lm as Qp,Me as OA,Ml as A_,Mm as R_,N as VF,Nf as Mk,Oe as Sp,Pe as wk,Pf as tS,Rb as nk,Rm as Q_,Sm as F_,T as Mr,Ub as yp,Ui as s_,Uk as Tp,V as Yb,W as bd,X as XF,Xb as Jb,Xh as r_,Y as ZF,Yl as h_,Zb as rk,_b as Vb,_l as oS,a as j$,ac as ok,af as Tk,al as c_,am as m_,bc as sk,ce as pk,eh as jk,ei as i_,en as k_,ff as Rk,ge as Ip,gk as Nc,ih as qk,ii as o_,jm as g_,ka as W$,kc as Ep,ke as yk,kg as Ok,kh as er,km as Rp,la as ek,lg as Lk,lh as wp,lj as nS,lk as l_,lm as p_,ma as Sd,me as Ek,mf as Qk,mg as Dp,mh as Wk,na as Dd,ne as Ck,ng as Uk,nh as vp,nm as y_,oe as Ik,og as Y$,oh as Kk,om as E_,pg as yi,ph as Yk,q as jF,qg as xp,qh as zk,qk as rS,rc as $b,rf as Bd,rg as z$,rh as Jk,rm as C_,s as qF,sc as ak,sd as mk,sg as J$,sh as LA,sm as I_,t as mp,tc as lk,td as gk,th as UA,tm as b_,uc as ck,ud as MA,uh as Vk,um as S_,vc as uk,vh as $k,vm as D_,wc as dk,wh as Xk,wi as Ei,wl as u_,wm as x_,x as WF,xc as fk,xd as Cp,xe as bk,xg as Pk,xh as Zk,y as KF,ye as bp,yh as wd,z as YF,zh as e_,zi as Dl,zl as d_,zm as Td}from"./chunk-YPVCYLBU.js";import{D as qb,Ld as gp,Nd as et,Sa as GF,Td as NA,a as je,aa as Sl,b as ne,bd as HF,ca as Wn,ce as $F,ea as Wb,ee as xd,fa as OF,ge as Le,ha as Kb,ia as dp,la as LF,oa as fp,qa as q$,sa as tn,ua as UF,va as PF,yc as Ap,ye as a_,zc as hp}from"./chunk-F34TWSY4.js";import{b as Fp,c as xl}from"./chunk-TU3BMADG.js";import{a as Jt,c as V,d as H$,e as te}from"./chunk-YUXORC52.js";var W_=V(ct=>{"use strict";var cS=Symbol.for("react.transitional.element"),V$=Symbol.for("react.portal"),$$=Symbol.for("react.fragment"),X$=Symbol.for("react.strict_mode"),Z$=Symbol.for("react.profiler"),eX=Symbol.for("react.consumer"),tX=Symbol.for("react.context"),nX=Symbol.for("react.forward_ref"),rX=Symbol.for("react.suspense"),iX=Symbol.for("react.memo"),U_=Symbol.for("react.lazy"),oX=Symbol.for("react.activity"),N_=Symbol.iterator;function sX(e){return e===null||typeof e!="object"?null:(e=N_&&e[N_]||e["@@iterator"],typeof e=="function"?e:null)}var P_={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},G_=Object.assign,H_={};function Qd(e,t,n){this.props=e,this.context=t,this.refs=H_,this.updater=n||P_}Qd.prototype.isReactComponent={};Qd.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Qd.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function j_(){}j_.prototype=Qd.prototype;function uS(e,t,n){this.props=e,this.context=t,this.refs=H_,this.updater=n||P_}var dS=uS.prototype=new j_;dS.constructor=uS;G_(dS,Qd.prototype);dS.isPureReactComponent=!0;var M_=Array.isArray;function lS(){}var An={H:null,A:null,T:null,S:null},q_=Object.prototype.hasOwnProperty;function fS(e,t,n){var r=n.ref;return{$$typeof:cS,type:e,key:t,ref:r!==void 0?r:null,props:n}}function aX(e,t){return fS(e.type,t,e.props)}function AS(e){return typeof e=="object"&&e!==null&&e.$$typeof===cS}function lX(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var O_=/\/+/g;function aS(e,t){return typeof e=="object"&&e!==null&&e.key!=null?lX(""+e.key):t.toString(36)}function cX(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(lS,lS):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function Rd(e,t,n,r,i){var o=typeof e;(o==="undefined"||o==="boolean")&&(e=null);var s=!1;if(e===null)s=!0;else switch(o){case"bigint":case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case cS:case V$:s=!0;break;case U_:return s=e._init,Rd(s(e._payload),t,n,r,i)}}if(s)return i=i(e),s=r===""?"."+aS(e,0):r,M_(i)?(n="",s!=null&&(n=s.replace(O_,"$&/")+"/"),Rd(i,t,n,"",function(d){return d})):i!=null&&(AS(i)&&(i=aX(i,n+(i.key==null||e&&e.key===i.key?"":(""+i.key).replace(O_,"$&/")+"/")+s)),t.push(i)),1;s=0;var a=r===""?".":r+":";if(M_(e))for(var u=0;u<e.length;u++)r=e[u],o=a+aS(r,u),s+=Rd(r,t,n,o,i);else if(u=sX(e),typeof u=="function")for(e=u.call(e),u=0;!(r=e.next()).done;)r=r.value,o=a+aS(r,u++),s+=Rd(r,t,n,o,i);else if(o==="object"){if(typeof e.then=="function")return Rd(cX(e),t,n,r,i);throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.")}return s}function kp(e,t,n){if(e==null)return e;var r=[],i=0;return Rd(e,r,"","",function(o){return t.call(n,o,i++)}),r}function uX(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var L_=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},dX={map:kp,forEach:function(e,t,n){kp(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return kp(e,function(){t++}),t},toArray:function(e){return kp(e,function(t){return t})||[]},only:function(e){if(!AS(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};ct.Activity=oX;ct.Children=dX;ct.Component=Qd;ct.Fragment=$$;ct.Profiler=Z$;ct.PureComponent=uS;ct.StrictMode=X$;ct.Suspense=rX;ct.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=An;ct.__COMPILER_RUNTIME={__proto__:null,c:function(e){return An.H.useMemoCache(e)}};ct.cache=function(e){return function(){return e.apply(null,arguments)}};ct.cacheSignal=function(){return null};ct.cloneElement=function(e,t,n){if(e==null)throw Error("The argument must be a React element, but you passed "+e+".");var r=G_({},e.props),i=e.key;if(t!=null)for(o in t.key!==void 0&&(i=""+t.key),t)!q_.call(t,o)||o==="key"||o==="__self"||o==="__source"||o==="ref"&&t.ref===void 0||(r[o]=t[o]);var o=arguments.length-2;if(o===1)r.children=n;else if(1<o){for(var s=Array(o),a=0;a<o;a++)s[a]=arguments[a+2];r.children=s}return fS(e.type,i,r)};ct.createContext=function(e){return e={$$typeof:tX,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:eX,_context:e},e};ct.createElement=function(e,t,n){var r,i={},o=null;if(t!=null)for(r in t.key!==void 0&&(o=""+t.key),t)q_.call(t,r)&&r!=="key"&&r!=="__self"&&r!=="__source"&&(i[r]=t[r]);var s=arguments.length-2;if(s===1)i.children=n;else if(1<s){for(var a=Array(s),u=0;u<s;u++)a[u]=arguments[u+2];i.children=a}if(e&&e.defaultProps)for(r in s=e.defaultProps,s)i[r]===void 0&&(i[r]=s[r]);return fS(e,o,i)};ct.createRef=function(){return{current:null}};ct.forwardRef=function(e){return{$$typeof:nX,render:e}};ct.isValidElement=AS;ct.lazy=function(e){return{$$typeof:U_,_payload:{_status:-1,_result:e},_init:uX}};ct.memo=function(e,t){return{$$typeof:iX,type:e,compare:t===void 0?null:t}};ct.startTransition=function(e){var t=An.T,n={};An.T=n;try{var r=e(),i=An.S;i!==null&&i(n,r),typeof r=="object"&&r!==null&&typeof r.then=="function"&&r.then(lS,L_)}catch(o){L_(o)}finally{t!==null&&n.types!==null&&(t.types=n.types),An.T=t}};ct.unstable_useCacheRefresh=function(){return An.H.useCacheRefresh()};ct.use=function(e){return An.H.use(e)};ct.useActionState=function(e,t,n){return An.H.useActionState(e,t,n)};ct.useCallback=function(e,t){return An.H.useCallback(e,t)};ct.useContext=function(e){return An.H.useContext(e)};ct.useDebugValue=function(){};ct.useDeferredValue=function(e,t){return An.H.useDeferredValue(e,t)};ct.useEffect=function(e,t){return An.H.useEffect(e,t)};ct.useEffectEvent=function(e){return An.H.useEffectEvent(e)};ct.useId=function(){return An.H.useId()};ct.useImperativeHandle=function(e,t,n){return An.H.useImperativeHandle(e,t,n)};ct.useInsertionEffect=function(e,t){return An.H.useInsertionEffect(e,t)};ct.useLayoutEffect=function(e,t){return An.H.useLayoutEffect(e,t)};ct.useMemo=function(e,t){return An.H.useMemo(e,t)};ct.useOptimistic=function(e,t){return An.H.useOptimistic(e,t)};ct.useReducer=function(e,t,n){return An.H.useReducer(e,t,n)};ct.useRef=function(e){return An.H.useRef(e)};ct.useState=function(e){return An.H.useState(e)};ct.useSyncExternalStore=function(e,t,n){return An.H.useSyncExternalStore(e,t,n)};ct.useTransition=function(){return An.H.useTransition()};ct.version="19.2.4"});var _e=V((aDe,K_)=>{"use strict";K_.exports=W_()});var tN=V((ZDe,Op)=>{Op.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&Op.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Op.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var sN=V((exe,Nd)=>{var En=global.process,Lc=function(e){return e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function"};Lc(En)?(nN=Jt("assert"),kd=tN(),rN=/^win/i.test(En.platform),qA=Jt("events"),typeof qA!="function"&&(qA=qA.EventEmitter),En.__signal_exit_emitter__?Sr=En.__signal_exit_emitter__:(Sr=En.__signal_exit_emitter__=new qA,Sr.count=0,Sr.emitted={}),Sr.infinite||(Sr.setMaxListeners(1/0),Sr.infinite=!0),Nd.exports=function(e,t){if(!Lc(global.process))return function(){};nN.equal(typeof e,"function","a callback must be provided for exit handler"),_d===!1&&bS();var n="exit";t&&t.alwaysLast&&(n="afterexit");var r=function(){Sr.removeListener(n,e),Sr.listeners("exit").length===0&&Sr.listeners("afterexit").length===0&&Lp()};return Sr.on(n,e),r},Lp=function(){!_d||!Lc(global.process)||(_d=!1,kd.forEach(function(t){try{En.removeListener(t,Up[t])}catch{}}),En.emit=Pp,En.reallyExit=SS,Sr.count-=1)},Nd.exports.unload=Lp,Uc=function(t,n,r){Sr.emitted[t]||(Sr.emitted[t]=!0,Sr.emit(t,n,r))},Up={},kd.forEach(function(e){Up[e]=function(){if(Lc(global.process)){var n=En.listeners(e);n.length===Sr.count&&(Lp(),Uc("exit",null,e),Uc("afterexit",null,e),rN&&e==="SIGHUP"&&(e="SIGINT"),En.kill(En.pid,e))}}}),Nd.exports.signals=function(){return kd},_d=!1,bS=function(){_d||!Lc(global.process)||(_d=!0,Sr.count+=1,kd=kd.filter(function(t){try{return En.on(t,Up[t]),!0}catch{return!1}}),En.emit=oN,En.reallyExit=iN)},Nd.exports.load=bS,SS=En.reallyExit,iN=function(t){Lc(global.process)&&(En.exitCode=t||0,Uc("exit",En.exitCode,null),Uc("afterexit",En.exitCode,null),SS.call(En,En.exitCode))},Pp=En.emit,oN=function(t,n){if(t==="exit"&&Lc(global.process)){n!==void 0&&(En.exitCode=n);var r=Pp.apply(this,arguments);return Uc("exit",En.exitCode,null),Uc("afterexit",En.exitCode,null),r}else return Pp.apply(this,arguments)}):Nd.exports=function(){return function(){}};var nN,kd,rN,qA,Sr,Lp,Uc,Up,_d,bS,SS,iN,Pp,oN});var uN=V(Bl=>{"use strict";Bl.ConcurrentRoot=1;Bl.ContinuousEventPriority=8;Bl.DefaultEventPriority=32;Bl.DiscreteEventPriority=2;Bl.IdleEventPriority=268435456;Bl.LegacyRoot=0;Bl.NoEventPriority=0});var xS=V((ixe,dN)=>{"use strict";dN.exports=uN()});var EN=V((Exe,yN)=>{yN.exports=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g});var LN=V(In=>{"use strict";function US(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,i=e[r];if(0<qp(i,t))e[r]=t,e[n]=i,n=r;else break e}}function bs(e){return e.length===0?null:e[0]}function Kp(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,i=e.length,o=i>>>1;r<o;){var s=2*(r+1)-1,a=e[s],u=s+1,d=e[u];if(0>qp(a,n))u<i&&0>qp(d,a)?(e[r]=d,e[u]=n,r=u):(e[r]=a,e[s]=n,r=s);else if(u<i&&0>qp(d,n))e[r]=d,e[u]=n,r=u;else break e}}return t}function qp(e,t){var n=e.sortIndex-t.sortIndex;return n!==0?n:e.id-t.id}In.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(TN=performance,In.unstable_now=function(){return TN.now()}):(MS=Date,RN=MS.now(),In.unstable_now=function(){return MS.now()-RN});var TN,MS,RN,ya=[],vl=[],uZ=1,go=null,Gr=3,PS=!1,zA=!1,JA=!1,GS=!1,kN=typeof setTimeout=="function"?setTimeout:null,_N=typeof clearTimeout=="function"?clearTimeout:null,QN=typeof setImmediate<"u"?setImmediate:null;function Wp(e){for(var t=bs(vl);t!==null;){if(t.callback===null)Kp(vl);else if(t.startTime<=e)Kp(vl),t.sortIndex=t.expirationTime,US(ya,t);else break;t=bs(vl)}}function HS(e){if(JA=!1,Wp(e),!zA)if(bs(ya)!==null)zA=!0,Pd||(Pd=!0,Ud());else{var t=bs(vl);t!==null&&jS(HS,t.startTime-e)}}var Pd=!1,VA=-1,NN=5,MN=-1;function ON(){return GS?!0:!(In.unstable_now()-MN<NN)}function OS(){if(GS=!1,Pd){var e=In.unstable_now();MN=e;var t=!0;try{e:{zA=!1,JA&&(JA=!1,_N(VA),VA=-1),PS=!0;var n=Gr;try{t:{for(Wp(e),go=bs(ya);go!==null&&!(go.expirationTime>e&&ON());){var r=go.callback;if(typeof r=="function"){go.callback=null,Gr=go.priorityLevel;var i=r(go.expirationTime<=e);if(e=In.unstable_now(),typeof i=="function"){go.callback=i,Wp(e),t=!0;break t}go===bs(ya)&&Kp(ya),Wp(e)}else Kp(ya);go=bs(ya)}if(go!==null)t=!0;else{var o=bs(vl);o!==null&&jS(HS,o.startTime-e),t=!1}}break e}finally{go=null,Gr=n,PS=!1}t=void 0}}finally{t?Ud():Pd=!1}}}var Ud;typeof QN=="function"?Ud=function(){QN(OS)}:typeof MessageChannel<"u"?(LS=new MessageChannel,FN=LS.port2,LS.port1.onmessage=OS,Ud=function(){FN.postMessage(null)}):Ud=function(){kN(OS,0)};var LS,FN;function jS(e,t){VA=kN(function(){e(In.unstable_now())},t)}In.unstable_IdlePriority=5;In.unstable_ImmediatePriority=1;In.unstable_LowPriority=4;In.unstable_NormalPriority=3;In.unstable_Profiling=null;In.unstable_UserBlockingPriority=2;In.unstable_cancelCallback=function(e){e.callback=null};In.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):NN=0<e?Math.floor(1e3/e):5};In.unstable_getCurrentPriorityLevel=function(){return Gr};In.unstable_next=function(e){switch(Gr){case 1:case 2:case 3:var t=3;break;default:t=Gr}var n=Gr;Gr=t;try{return e()}finally{Gr=n}};In.unstable_requestPaint=function(){GS=!0};In.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=Gr;Gr=e;try{return t()}finally{Gr=n}};In.unstable_scheduleCallback=function(e,t,n){var r=In.unstable_now();switch(typeof n=="object"&&n!==null?(n=n.delay,n=typeof n=="number"&&0<n?r+n:r):n=r,e){case 1:var i=-1;break;case 2:i=250;break;case 5:i=1073741823;break;case 4:i=1e4;break;default:i=5e3}return i=n+i,e={id:uZ++,callback:t,priorityLevel:e,startTime:n,expirationTime:i,sortIndex:-1},n>r?(e.sortIndex=n,US(vl,e),bs(ya)===null&&e===bs(vl)&&(JA?(_N(VA),VA=-1):JA=!0,jS(HS,n-r))):(e.sortIndex=i,US(ya,e),zA||PS||(zA=!0,Pd||(Pd=!0,Ud()))),e};In.unstable_shouldYield=ON;In.unstable_wrapCallback=function(e){var t=Gr;return function(){var n=Gr;Gr=t;try{return e.apply(this,arguments)}finally{Gr=n}}}});var PN=V((Qxe,UN)=>{"use strict";UN.exports=LN()});var GN=V((Fxe,$A)=>{"use strict";$A.exports=function(e){function t(l,c,m,E){return new nV(l,c,m,E)}function n(){}function r(l){var c="https://react.dev/errors/"+l;if(1<arguments.length){c+="?args[]="+encodeURIComponent(arguments[1]);for(var m=2;m<arguments.length;m++)c+="&args[]="+encodeURIComponent(arguments[m])}return"Minified React error #"+l+"; visit "+c+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function i(l){var c=l,m=l;if(l.alternate)for(;c.return;)c=c.return;else{l=c;do c=l,(c.flags&4098)!==0&&(m=c.return),l=c.return;while(l)}return c.tag===3?m:null}function o(l){if(i(l)!==l)throw Error(r(188))}function s(l){var c=l.alternate;if(!c){if(c=i(l),c===null)throw Error(r(188));return c!==l?null:l}for(var m=l,E=c;;){var I=m.return;if(I===null)break;var S=I.alternate;if(S===null){if(E=I.return,E!==null){m=E;continue}break}if(I.child===S.child){for(S=I.child;S;){if(S===m)return o(I),l;if(S===E)return o(I),c;S=S.sibling}throw Error(r(188))}if(m.return!==E.return)m=I,E=S;else{for(var T=!1,U=I.child;U;){if(U===m){T=!0,m=I,E=S;break}if(U===E){T=!0,E=I,m=S;break}U=U.sibling}if(!T){for(U=S.child;U;){if(U===m){T=!0,m=S,E=I;break}if(U===E){T=!0,E=S,m=I;break}U=U.sibling}if(!T)throw Error(r(189))}}if(m.alternate!==E)throw Error(r(190))}if(m.tag!==3)throw Error(r(188));return m.stateNode.current===m?l:c}function a(l){var c=l.tag;if(c===5||c===26||c===27||c===6)return l;for(l=l.child;l!==null;){if(c=a(l),c!==null)return c;l=l.sibling}return null}function u(l){var c=l.tag;if(c===5||c===26||c===27||c===6)return l;for(l=l.child;l!==null;){if(l.tag!==4&&(c=u(l),c!==null))return c;l=l.sibling}return null}function d(l){return l===null||typeof l!="object"?null:(l=nF&&l[nF]||l["@@iterator"],typeof l=="function"?l:null)}function f(l){if(l==null)return null;if(typeof l=="function")return l.$$typeof===lV?null:l.displayName||l.name||null;if(typeof l=="string")return l;switch(l){case Zu:return"Fragment";case fb:return"Profiler";case eF:return"StrictMode";case hb:return"Suspense";case mb:return"SuspenseList";case pb:return"Activity"}if(typeof l=="object")switch(l.$$typeof){case Xu:return"Portal";case fl:return(l.displayName||"Context")+".Provider";case tF:return(l._context.displayName||"Context")+".Consumer";case Ab:var c=l.render;return l=l.displayName,l||(l=c.displayName||c.name||"",l=l!==""?"ForwardRef("+l+")":"ForwardRef"),l;case gb:return c=l.displayName||null,c!==null?c:f(l.type)||"Memo";case Al:c=l._payload,l=l._init;try{return f(l(c))}catch{}}return null}function g(l){return{current:l}}function p(l){0>nd||(l.current=bb[nd],bb[nd]=null,nd--)}function A(l,c){nd++,bb[nd]=l.current,l.current=c}function h(l){return l>>>=0,l===0?32:31-(x$(l)/B$|0)|0}function y(l){var c=l&42;if(c!==0)return c;switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return l&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return l&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return l}}function C(l,c,m){var E=l.pendingLanes;if(E===0)return 0;var I=0,S=l.suspendedLanes,T=l.pingedLanes;l=l.warmLanes;var U=E&134217727;return U!==0?(E=U&~S,E!==0?I=y(E):(T&=U,T!==0?I=y(T):m||(m=U&~l,m!==0&&(I=y(m))))):(U=E&~S,U!==0?I=y(U):T!==0?I=y(T):m||(m=E&~l,m!==0&&(I=y(m)))),I===0?0:c!==0&&c!==I&&(c&S)===0&&(S=I&-I,m=c&-c,S>=m||S===32&&(m&4194048)!==0)?c:I}function b(l,c){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&c)===0}function D(l,c){switch(l){case 1:case 2:case 4:case 8:case 64:return c+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return c+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function x(){var l=qg;return qg<<=1,(qg&4194048)===0&&(qg=256),l}function w(){var l=Wg;return Wg<<=1,(Wg&62914560)===0&&(Wg=4194304),l}function Q(l){for(var c=[],m=0;31>m;m++)c.push(l);return c}function k(l,c){l.pendingLanes|=c,c!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function P(l,c,m,E,I,S){var T=l.pendingLanes;l.pendingLanes=m,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=m,l.entangledLanes&=m,l.errorRecoveryDisabledLanes&=m,l.shellSuspendCounter=0;var U=l.entanglements,oe=l.expirationTimes,Ce=l.hiddenUpdates;for(m=T&~m;0<m;){var xe=31-Mi(m),Fe=1<<xe;U[xe]=0,oe[xe]=-1;var Me=Ce[xe];if(Me!==null)for(Ce[xe]=null,xe=0;xe<Me.length;xe++){var dt=Me[xe];dt!==null&&(dt.lane&=-536870913)}m&=~Fe}E!==0&&Y(l,E,0),S!==0&&I===0&&l.tag!==0&&(l.suspendedLanes|=S&~(T&~c))}function Y(l,c,m){l.pendingLanes|=c,l.suspendedLanes&=~c;var E=31-Mi(c);l.entangledLanes|=c,l.entanglements[E]=l.entanglements[E]|1073741824|m&4194090}function M(l,c){var m=l.entangledLanes|=c;for(l=l.entanglements;m;){var E=31-Mi(m),I=1<<E;I&c|l[E]&c&&(l[E]|=c),m&=~I}}function q(l){switch(l){case 2:l=1;break;case 8:l=4;break;case 32:l=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:l=128;break;case 268435456:l=134217728;break;default:l=0}return l}function ae(l){return l&=-l,2<l?8<l?(l&134217727)!==0?32:268435456:8:2}function z(l){if(typeof Q$=="function"&&F$(l),Oi&&typeof Oi.setStrictMode=="function")try{Oi.setStrictMode(DA,l)}catch{}}function j(l){if(xb===void 0)try{throw Error()}catch(m){var c=m.stack.trim().match(/\n( *(at )?)/);xb=c&&c[1]||"",wF=-1<m.stack.indexOf(`
2
+ import{$b as ik,$c as hk,$e as vk,$k as Mc,Ag as Bp,Ah as t_,Ai as vd,B as zF,Bm as B_,Bn as __,Cb as pp,Ce as Sk,Cf as K$,Db as zb,Dc as Xb,De as Zb,Df as Fk,Dm as sS,Ee as Dk,Ef as kk,Em as w_,Fb as tk,Fe as eS,Fm as v_,Ge as xk,Gf as mo,Gg as Gk,Gl as iS,He as Bk,Hf as _k,Hg as Hk,If as Nk,Ih as n_,Ij as _c,Jc as Ak,Jh as qo,Kl as f_,Km as T_,L as JF,Lm as Qp,Me as OA,Ml as A_,Mm as R_,N as VF,Nf as Mk,Oe as Sp,Pe as wk,Pf as tS,Rb as nk,Rm as Q_,Sm as F_,T as Mr,Ub as yp,Ui as s_,Uk as Tp,V as Yb,W as bd,X as XF,Xb as Jb,Xh as r_,Y as ZF,Yl as h_,Zb as rk,_b as Vb,_l as oS,a as j$,ac as ok,af as Tk,al as c_,am as m_,bc as sk,ce as pk,eh as jk,ei as i_,en as k_,ff as Rk,ge as Ip,gk as Nc,ih as qk,ii as o_,jm as g_,ka as W$,kc as Ep,ke as yk,kg as Ok,kh as er,km as Rp,la as ek,lg as Lk,lh as wp,lj as nS,lk as l_,lm as p_,ma as Sd,me as Ek,mf as Qk,mg as Dp,mh as Wk,na as Dd,ne as Ck,ng as Uk,nh as vp,nm as y_,oe as Ik,og as Y$,oh as Kk,om as E_,pg as yi,ph as Yk,q as jF,qg as xp,qh as zk,qk as rS,rc as $b,rf as Bd,rg as z$,rh as Jk,rm as C_,s as qF,sc as ak,sd as mk,sg as J$,sh as LA,sm as I_,t as mp,tc as lk,td as gk,th as UA,tm as b_,uc as ck,ud as MA,uh as Vk,um as S_,vc as uk,vh as $k,vm as D_,wc as dk,wh as Xk,wi as Ei,wl as u_,wm as x_,x as WF,xc as fk,xd as Cp,xe as bk,xg as Pk,xh as Zk,y as KF,ye as bp,yh as wd,z as YF,zh as e_,zi as Dl,zl as d_,zm as Td}from"./chunk-SZCTACC4.js";import{D as qb,Ld as gp,Nd as et,Sa as GF,Td as NA,a as je,aa as Sl,b as ne,bd as HF,ca as Wn,ce as $F,ea as Wb,ee as xd,fa as OF,ge as Le,ha as Kb,ia as dp,la as LF,oa as fp,qa as q$,sa as tn,ua as UF,va as PF,yc as Ap,ye as a_,zc as hp}from"./chunk-F34TWSY4.js";import{b as Fp,c as xl}from"./chunk-TU3BMADG.js";import{a as Jt,c as V,d as H$,e as te}from"./chunk-YUXORC52.js";var W_=V(ct=>{"use strict";var cS=Symbol.for("react.transitional.element"),V$=Symbol.for("react.portal"),$$=Symbol.for("react.fragment"),X$=Symbol.for("react.strict_mode"),Z$=Symbol.for("react.profiler"),eX=Symbol.for("react.consumer"),tX=Symbol.for("react.context"),nX=Symbol.for("react.forward_ref"),rX=Symbol.for("react.suspense"),iX=Symbol.for("react.memo"),U_=Symbol.for("react.lazy"),oX=Symbol.for("react.activity"),N_=Symbol.iterator;function sX(e){return e===null||typeof e!="object"?null:(e=N_&&e[N_]||e["@@iterator"],typeof e=="function"?e:null)}var P_={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},G_=Object.assign,H_={};function Qd(e,t,n){this.props=e,this.context=t,this.refs=H_,this.updater=n||P_}Qd.prototype.isReactComponent={};Qd.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Qd.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function j_(){}j_.prototype=Qd.prototype;function uS(e,t,n){this.props=e,this.context=t,this.refs=H_,this.updater=n||P_}var dS=uS.prototype=new j_;dS.constructor=uS;G_(dS,Qd.prototype);dS.isPureReactComponent=!0;var M_=Array.isArray;function lS(){}var An={H:null,A:null,T:null,S:null},q_=Object.prototype.hasOwnProperty;function fS(e,t,n){var r=n.ref;return{$$typeof:cS,type:e,key:t,ref:r!==void 0?r:null,props:n}}function aX(e,t){return fS(e.type,t,e.props)}function AS(e){return typeof e=="object"&&e!==null&&e.$$typeof===cS}function lX(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var O_=/\/+/g;function aS(e,t){return typeof e=="object"&&e!==null&&e.key!=null?lX(""+e.key):t.toString(36)}function cX(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(lS,lS):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function Rd(e,t,n,r,i){var o=typeof e;(o==="undefined"||o==="boolean")&&(e=null);var s=!1;if(e===null)s=!0;else switch(o){case"bigint":case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case cS:case V$:s=!0;break;case U_:return s=e._init,Rd(s(e._payload),t,n,r,i)}}if(s)return i=i(e),s=r===""?"."+aS(e,0):r,M_(i)?(n="",s!=null&&(n=s.replace(O_,"$&/")+"/"),Rd(i,t,n,"",function(d){return d})):i!=null&&(AS(i)&&(i=aX(i,n+(i.key==null||e&&e.key===i.key?"":(""+i.key).replace(O_,"$&/")+"/")+s)),t.push(i)),1;s=0;var a=r===""?".":r+":";if(M_(e))for(var u=0;u<e.length;u++)r=e[u],o=a+aS(r,u),s+=Rd(r,t,n,o,i);else if(u=sX(e),typeof u=="function")for(e=u.call(e),u=0;!(r=e.next()).done;)r=r.value,o=a+aS(r,u++),s+=Rd(r,t,n,o,i);else if(o==="object"){if(typeof e.then=="function")return Rd(cX(e),t,n,r,i);throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.")}return s}function kp(e,t,n){if(e==null)return e;var r=[],i=0;return Rd(e,r,"","",function(o){return t.call(n,o,i++)}),r}function uX(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var L_=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},dX={map:kp,forEach:function(e,t,n){kp(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return kp(e,function(){t++}),t},toArray:function(e){return kp(e,function(t){return t})||[]},only:function(e){if(!AS(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};ct.Activity=oX;ct.Children=dX;ct.Component=Qd;ct.Fragment=$$;ct.Profiler=Z$;ct.PureComponent=uS;ct.StrictMode=X$;ct.Suspense=rX;ct.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=An;ct.__COMPILER_RUNTIME={__proto__:null,c:function(e){return An.H.useMemoCache(e)}};ct.cache=function(e){return function(){return e.apply(null,arguments)}};ct.cacheSignal=function(){return null};ct.cloneElement=function(e,t,n){if(e==null)throw Error("The argument must be a React element, but you passed "+e+".");var r=G_({},e.props),i=e.key;if(t!=null)for(o in t.key!==void 0&&(i=""+t.key),t)!q_.call(t,o)||o==="key"||o==="__self"||o==="__source"||o==="ref"&&t.ref===void 0||(r[o]=t[o]);var o=arguments.length-2;if(o===1)r.children=n;else if(1<o){for(var s=Array(o),a=0;a<o;a++)s[a]=arguments[a+2];r.children=s}return fS(e.type,i,r)};ct.createContext=function(e){return e={$$typeof:tX,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:eX,_context:e},e};ct.createElement=function(e,t,n){var r,i={},o=null;if(t!=null)for(r in t.key!==void 0&&(o=""+t.key),t)q_.call(t,r)&&r!=="key"&&r!=="__self"&&r!=="__source"&&(i[r]=t[r]);var s=arguments.length-2;if(s===1)i.children=n;else if(1<s){for(var a=Array(s),u=0;u<s;u++)a[u]=arguments[u+2];i.children=a}if(e&&e.defaultProps)for(r in s=e.defaultProps,s)i[r]===void 0&&(i[r]=s[r]);return fS(e,o,i)};ct.createRef=function(){return{current:null}};ct.forwardRef=function(e){return{$$typeof:nX,render:e}};ct.isValidElement=AS;ct.lazy=function(e){return{$$typeof:U_,_payload:{_status:-1,_result:e},_init:uX}};ct.memo=function(e,t){return{$$typeof:iX,type:e,compare:t===void 0?null:t}};ct.startTransition=function(e){var t=An.T,n={};An.T=n;try{var r=e(),i=An.S;i!==null&&i(n,r),typeof r=="object"&&r!==null&&typeof r.then=="function"&&r.then(lS,L_)}catch(o){L_(o)}finally{t!==null&&n.types!==null&&(t.types=n.types),An.T=t}};ct.unstable_useCacheRefresh=function(){return An.H.useCacheRefresh()};ct.use=function(e){return An.H.use(e)};ct.useActionState=function(e,t,n){return An.H.useActionState(e,t,n)};ct.useCallback=function(e,t){return An.H.useCallback(e,t)};ct.useContext=function(e){return An.H.useContext(e)};ct.useDebugValue=function(){};ct.useDeferredValue=function(e,t){return An.H.useDeferredValue(e,t)};ct.useEffect=function(e,t){return An.H.useEffect(e,t)};ct.useEffectEvent=function(e){return An.H.useEffectEvent(e)};ct.useId=function(){return An.H.useId()};ct.useImperativeHandle=function(e,t,n){return An.H.useImperativeHandle(e,t,n)};ct.useInsertionEffect=function(e,t){return An.H.useInsertionEffect(e,t)};ct.useLayoutEffect=function(e,t){return An.H.useLayoutEffect(e,t)};ct.useMemo=function(e,t){return An.H.useMemo(e,t)};ct.useOptimistic=function(e,t){return An.H.useOptimistic(e,t)};ct.useReducer=function(e,t,n){return An.H.useReducer(e,t,n)};ct.useRef=function(e){return An.H.useRef(e)};ct.useState=function(e){return An.H.useState(e)};ct.useSyncExternalStore=function(e,t,n){return An.H.useSyncExternalStore(e,t,n)};ct.useTransition=function(){return An.H.useTransition()};ct.version="19.2.4"});var _e=V((aDe,K_)=>{"use strict";K_.exports=W_()});var tN=V((ZDe,Op)=>{Op.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&Op.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Op.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var sN=V((exe,Nd)=>{var En=global.process,Lc=function(e){return e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function"};Lc(En)?(nN=Jt("assert"),kd=tN(),rN=/^win/i.test(En.platform),qA=Jt("events"),typeof qA!="function"&&(qA=qA.EventEmitter),En.__signal_exit_emitter__?Sr=En.__signal_exit_emitter__:(Sr=En.__signal_exit_emitter__=new qA,Sr.count=0,Sr.emitted={}),Sr.infinite||(Sr.setMaxListeners(1/0),Sr.infinite=!0),Nd.exports=function(e,t){if(!Lc(global.process))return function(){};nN.equal(typeof e,"function","a callback must be provided for exit handler"),_d===!1&&bS();var n="exit";t&&t.alwaysLast&&(n="afterexit");var r=function(){Sr.removeListener(n,e),Sr.listeners("exit").length===0&&Sr.listeners("afterexit").length===0&&Lp()};return Sr.on(n,e),r},Lp=function(){!_d||!Lc(global.process)||(_d=!1,kd.forEach(function(t){try{En.removeListener(t,Up[t])}catch{}}),En.emit=Pp,En.reallyExit=SS,Sr.count-=1)},Nd.exports.unload=Lp,Uc=function(t,n,r){Sr.emitted[t]||(Sr.emitted[t]=!0,Sr.emit(t,n,r))},Up={},kd.forEach(function(e){Up[e]=function(){if(Lc(global.process)){var n=En.listeners(e);n.length===Sr.count&&(Lp(),Uc("exit",null,e),Uc("afterexit",null,e),rN&&e==="SIGHUP"&&(e="SIGINT"),En.kill(En.pid,e))}}}),Nd.exports.signals=function(){return kd},_d=!1,bS=function(){_d||!Lc(global.process)||(_d=!0,Sr.count+=1,kd=kd.filter(function(t){try{return En.on(t,Up[t]),!0}catch{return!1}}),En.emit=oN,En.reallyExit=iN)},Nd.exports.load=bS,SS=En.reallyExit,iN=function(t){Lc(global.process)&&(En.exitCode=t||0,Uc("exit",En.exitCode,null),Uc("afterexit",En.exitCode,null),SS.call(En,En.exitCode))},Pp=En.emit,oN=function(t,n){if(t==="exit"&&Lc(global.process)){n!==void 0&&(En.exitCode=n);var r=Pp.apply(this,arguments);return Uc("exit",En.exitCode,null),Uc("afterexit",En.exitCode,null),r}else return Pp.apply(this,arguments)}):Nd.exports=function(){return function(){}};var nN,kd,rN,qA,Sr,Lp,Uc,Up,_d,bS,SS,iN,Pp,oN});var uN=V(Bl=>{"use strict";Bl.ConcurrentRoot=1;Bl.ContinuousEventPriority=8;Bl.DefaultEventPriority=32;Bl.DiscreteEventPriority=2;Bl.IdleEventPriority=268435456;Bl.LegacyRoot=0;Bl.NoEventPriority=0});var xS=V((ixe,dN)=>{"use strict";dN.exports=uN()});var EN=V((Exe,yN)=>{yN.exports=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g});var LN=V(In=>{"use strict";function US(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,i=e[r];if(0<qp(i,t))e[r]=t,e[n]=i,n=r;else break e}}function bs(e){return e.length===0?null:e[0]}function Kp(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,i=e.length,o=i>>>1;r<o;){var s=2*(r+1)-1,a=e[s],u=s+1,d=e[u];if(0>qp(a,n))u<i&&0>qp(d,a)?(e[r]=d,e[u]=n,r=u):(e[r]=a,e[s]=n,r=s);else if(u<i&&0>qp(d,n))e[r]=d,e[u]=n,r=u;else break e}}return t}function qp(e,t){var n=e.sortIndex-t.sortIndex;return n!==0?n:e.id-t.id}In.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(TN=performance,In.unstable_now=function(){return TN.now()}):(MS=Date,RN=MS.now(),In.unstable_now=function(){return MS.now()-RN});var TN,MS,RN,ya=[],vl=[],uZ=1,go=null,Gr=3,PS=!1,zA=!1,JA=!1,GS=!1,kN=typeof setTimeout=="function"?setTimeout:null,_N=typeof clearTimeout=="function"?clearTimeout:null,QN=typeof setImmediate<"u"?setImmediate:null;function Wp(e){for(var t=bs(vl);t!==null;){if(t.callback===null)Kp(vl);else if(t.startTime<=e)Kp(vl),t.sortIndex=t.expirationTime,US(ya,t);else break;t=bs(vl)}}function HS(e){if(JA=!1,Wp(e),!zA)if(bs(ya)!==null)zA=!0,Pd||(Pd=!0,Ud());else{var t=bs(vl);t!==null&&jS(HS,t.startTime-e)}}var Pd=!1,VA=-1,NN=5,MN=-1;function ON(){return GS?!0:!(In.unstable_now()-MN<NN)}function OS(){if(GS=!1,Pd){var e=In.unstable_now();MN=e;var t=!0;try{e:{zA=!1,JA&&(JA=!1,_N(VA),VA=-1),PS=!0;var n=Gr;try{t:{for(Wp(e),go=bs(ya);go!==null&&!(go.expirationTime>e&&ON());){var r=go.callback;if(typeof r=="function"){go.callback=null,Gr=go.priorityLevel;var i=r(go.expirationTime<=e);if(e=In.unstable_now(),typeof i=="function"){go.callback=i,Wp(e),t=!0;break t}go===bs(ya)&&Kp(ya),Wp(e)}else Kp(ya);go=bs(ya)}if(go!==null)t=!0;else{var o=bs(vl);o!==null&&jS(HS,o.startTime-e),t=!1}}break e}finally{go=null,Gr=n,PS=!1}t=void 0}}finally{t?Ud():Pd=!1}}}var Ud;typeof QN=="function"?Ud=function(){QN(OS)}:typeof MessageChannel<"u"?(LS=new MessageChannel,FN=LS.port2,LS.port1.onmessage=OS,Ud=function(){FN.postMessage(null)}):Ud=function(){kN(OS,0)};var LS,FN;function jS(e,t){VA=kN(function(){e(In.unstable_now())},t)}In.unstable_IdlePriority=5;In.unstable_ImmediatePriority=1;In.unstable_LowPriority=4;In.unstable_NormalPriority=3;In.unstable_Profiling=null;In.unstable_UserBlockingPriority=2;In.unstable_cancelCallback=function(e){e.callback=null};In.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):NN=0<e?Math.floor(1e3/e):5};In.unstable_getCurrentPriorityLevel=function(){return Gr};In.unstable_next=function(e){switch(Gr){case 1:case 2:case 3:var t=3;break;default:t=Gr}var n=Gr;Gr=t;try{return e()}finally{Gr=n}};In.unstable_requestPaint=function(){GS=!0};In.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=Gr;Gr=e;try{return t()}finally{Gr=n}};In.unstable_scheduleCallback=function(e,t,n){var r=In.unstable_now();switch(typeof n=="object"&&n!==null?(n=n.delay,n=typeof n=="number"&&0<n?r+n:r):n=r,e){case 1:var i=-1;break;case 2:i=250;break;case 5:i=1073741823;break;case 4:i=1e4;break;default:i=5e3}return i=n+i,e={id:uZ++,callback:t,priorityLevel:e,startTime:n,expirationTime:i,sortIndex:-1},n>r?(e.sortIndex=n,US(vl,e),bs(ya)===null&&e===bs(vl)&&(JA?(_N(VA),VA=-1):JA=!0,jS(HS,n-r))):(e.sortIndex=i,US(ya,e),zA||PS||(zA=!0,Pd||(Pd=!0,Ud()))),e};In.unstable_shouldYield=ON;In.unstable_wrapCallback=function(e){var t=Gr;return function(){var n=Gr;Gr=t;try{return e.apply(this,arguments)}finally{Gr=n}}}});var PN=V((Qxe,UN)=>{"use strict";UN.exports=LN()});var GN=V((Fxe,$A)=>{"use strict";$A.exports=function(e){function t(l,c,m,E){return new nV(l,c,m,E)}function n(){}function r(l){var c="https://react.dev/errors/"+l;if(1<arguments.length){c+="?args[]="+encodeURIComponent(arguments[1]);for(var m=2;m<arguments.length;m++)c+="&args[]="+encodeURIComponent(arguments[m])}return"Minified React error #"+l+"; visit "+c+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function i(l){var c=l,m=l;if(l.alternate)for(;c.return;)c=c.return;else{l=c;do c=l,(c.flags&4098)!==0&&(m=c.return),l=c.return;while(l)}return c.tag===3?m:null}function o(l){if(i(l)!==l)throw Error(r(188))}function s(l){var c=l.alternate;if(!c){if(c=i(l),c===null)throw Error(r(188));return c!==l?null:l}for(var m=l,E=c;;){var I=m.return;if(I===null)break;var S=I.alternate;if(S===null){if(E=I.return,E!==null){m=E;continue}break}if(I.child===S.child){for(S=I.child;S;){if(S===m)return o(I),l;if(S===E)return o(I),c;S=S.sibling}throw Error(r(188))}if(m.return!==E.return)m=I,E=S;else{for(var T=!1,U=I.child;U;){if(U===m){T=!0,m=I,E=S;break}if(U===E){T=!0,E=I,m=S;break}U=U.sibling}if(!T){for(U=S.child;U;){if(U===m){T=!0,m=S,E=I;break}if(U===E){T=!0,E=S,m=I;break}U=U.sibling}if(!T)throw Error(r(189))}}if(m.alternate!==E)throw Error(r(190))}if(m.tag!==3)throw Error(r(188));return m.stateNode.current===m?l:c}function a(l){var c=l.tag;if(c===5||c===26||c===27||c===6)return l;for(l=l.child;l!==null;){if(c=a(l),c!==null)return c;l=l.sibling}return null}function u(l){var c=l.tag;if(c===5||c===26||c===27||c===6)return l;for(l=l.child;l!==null;){if(l.tag!==4&&(c=u(l),c!==null))return c;l=l.sibling}return null}function d(l){return l===null||typeof l!="object"?null:(l=nF&&l[nF]||l["@@iterator"],typeof l=="function"?l:null)}function f(l){if(l==null)return null;if(typeof l=="function")return l.$$typeof===lV?null:l.displayName||l.name||null;if(typeof l=="string")return l;switch(l){case Zu:return"Fragment";case fb:return"Profiler";case eF:return"StrictMode";case hb:return"Suspense";case mb:return"SuspenseList";case pb:return"Activity"}if(typeof l=="object")switch(l.$$typeof){case Xu:return"Portal";case fl:return(l.displayName||"Context")+".Provider";case tF:return(l._context.displayName||"Context")+".Consumer";case Ab:var c=l.render;return l=l.displayName,l||(l=c.displayName||c.name||"",l=l!==""?"ForwardRef("+l+")":"ForwardRef"),l;case gb:return c=l.displayName||null,c!==null?c:f(l.type)||"Memo";case Al:c=l._payload,l=l._init;try{return f(l(c))}catch{}}return null}function g(l){return{current:l}}function p(l){0>nd||(l.current=bb[nd],bb[nd]=null,nd--)}function A(l,c){nd++,bb[nd]=l.current,l.current=c}function h(l){return l>>>=0,l===0?32:31-(x$(l)/B$|0)|0}function y(l){var c=l&42;if(c!==0)return c;switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return l&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return l&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return l}}function C(l,c,m){var E=l.pendingLanes;if(E===0)return 0;var I=0,S=l.suspendedLanes,T=l.pingedLanes;l=l.warmLanes;var U=E&134217727;return U!==0?(E=U&~S,E!==0?I=y(E):(T&=U,T!==0?I=y(T):m||(m=U&~l,m!==0&&(I=y(m))))):(U=E&~S,U!==0?I=y(U):T!==0?I=y(T):m||(m=E&~l,m!==0&&(I=y(m)))),I===0?0:c!==0&&c!==I&&(c&S)===0&&(S=I&-I,m=c&-c,S>=m||S===32&&(m&4194048)!==0)?c:I}function b(l,c){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&c)===0}function D(l,c){switch(l){case 1:case 2:case 4:case 8:case 64:return c+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return c+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function x(){var l=qg;return qg<<=1,(qg&4194048)===0&&(qg=256),l}function w(){var l=Wg;return Wg<<=1,(Wg&62914560)===0&&(Wg=4194304),l}function Q(l){for(var c=[],m=0;31>m;m++)c.push(l);return c}function k(l,c){l.pendingLanes|=c,c!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function P(l,c,m,E,I,S){var T=l.pendingLanes;l.pendingLanes=m,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=m,l.entangledLanes&=m,l.errorRecoveryDisabledLanes&=m,l.shellSuspendCounter=0;var U=l.entanglements,oe=l.expirationTimes,Ce=l.hiddenUpdates;for(m=T&~m;0<m;){var xe=31-Mi(m),Fe=1<<xe;U[xe]=0,oe[xe]=-1;var Me=Ce[xe];if(Me!==null)for(Ce[xe]=null,xe=0;xe<Me.length;xe++){var dt=Me[xe];dt!==null&&(dt.lane&=-536870913)}m&=~Fe}E!==0&&Y(l,E,0),S!==0&&I===0&&l.tag!==0&&(l.suspendedLanes|=S&~(T&~c))}function Y(l,c,m){l.pendingLanes|=c,l.suspendedLanes&=~c;var E=31-Mi(c);l.entangledLanes|=c,l.entanglements[E]=l.entanglements[E]|1073741824|m&4194090}function M(l,c){var m=l.entangledLanes|=c;for(l=l.entanglements;m;){var E=31-Mi(m),I=1<<E;I&c|l[E]&c&&(l[E]|=c),m&=~I}}function q(l){switch(l){case 2:l=1;break;case 8:l=4;break;case 32:l=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:l=128;break;case 268435456:l=134217728;break;default:l=0}return l}function ae(l){return l&=-l,2<l?8<l?(l&134217727)!==0?32:268435456:8:2}function z(l){if(typeof Q$=="function"&&F$(l),Oi&&typeof Oi.setStrictMode=="function")try{Oi.setStrictMode(DA,l)}catch{}}function j(l){if(xb===void 0)try{throw Error()}catch(m){var c=m.stack.trim().match(/\n( *(at )?)/);xb=c&&c[1]||"",wF=-1<m.stack.indexOf(`
3
3
  at`)?" (<anonymous>)":-1<m.stack.indexOf("@")?"@unknown:0:0":""}return`
4
4
  `+xb+l+wF}function le(l,c){if(!l||Bb)return"";Bb=!0;var m=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var E={DetermineComponentFrameRoot:function(){try{if(c){var Fe=function(){throw Error()};if(Object.defineProperty(Fe.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Fe,[])}catch(dt){var Me=dt}Reflect.construct(l,[],Fe)}else{try{Fe.call()}catch(dt){Me=dt}l.call(Fe.prototype)}}else{try{throw Error()}catch(dt){Me=dt}(Fe=l())&&typeof Fe.catch=="function"&&Fe.catch(function(){})}}catch(dt){if(dt&&Me&&typeof dt.stack=="string")return[dt.stack,Me.stack]}return[null,null]}};E.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var I=Object.getOwnPropertyDescriptor(E.DetermineComponentFrameRoot,"name");I&&I.configurable&&Object.defineProperty(E.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var S=E.DetermineComponentFrameRoot(),T=S[0],U=S[1];if(T&&U){var oe=T.split(`
5
5
  `),Ce=U.split(`
@@ -520,7 +520,7 @@ ${e.map(i=>{let o=bI.basename(i.path),s=(t.get(o)||0)>1,a=bI.basename(bI.dirname
520
520
  ${f.map(g=>` - ${g}`).join(`
521
521
  `)}
522
522
 
523
- Use /mcp auth <server-name> to authenticate.`}}let s=o[n];if(!s)return{type:"message",messageType:"error",content:`MCP server '${n}' not found.`};let a=u=>{e.ui.addItem({type:"info",text:u})};Le.on("oauth-display-message",a);try{e.ui.addItem({type:"info",text:`Starting OAuth authentication for MCP server '${n}'...`});let{MCPOAuthProvider:u}=await import("./core-PKUUGZC6.js"),d=s.oauth;d||(d={enabled:!1});let f=s.httpUrl||s.url;await new u(new rS).authenticate(n,d,f),e.ui.addItem({type:"info",text:`\u2705 Successfully authenticated with MCP server '${n}'!`});let p=i.getMcpClientManager();p&&(e.ui.addItem({type:"info",text:`Restarting MCP server '${n}'...`}),await p.restartServer(n));let A=e.services.agentContext?.geminiClient;return A?.isInitialized()&&await A.setTools(),e.ui.reloadCommands(),{type:"message",messageType:"info",content:`Successfully authenticated and reloaded tools for '${n}'`}}catch(u){return{type:"message",messageType:"error",content:`Failed to authenticate with MCP server '${n}': ${et(u)}`}}finally{Le.removeListener("oauth-display-message",a)}},completion:async(e,t)=>{let r=e.services.agentContext?.config;if(!r)return[];let i=r.getMcpClientManager()?.getMcpServers()||{};return Object.keys(i).filter(o=>o.startsWith(t))}},Ig=async(e,t=!1,n=!1,r)=>{let i=e.services.agentContext,o=i?.config;if(!o)return{type:"message",messageType:"error",content:"Config not loaded."};o.setUserInteractedWithMcp();let s=i.toolRegistry;if(!s)return{type:"message",messageType:"error",content:"Could not retrieve tool registry."};let a=o.getMcpClientManager()?.getMcpServers()||{},u=o.getMcpClientManager()?.getBlockedMcpServers()||[];if(r){let M=r.trim().toLowerCase();M&&(a=Object.fromEntries(Object.entries(a).filter(([q])=>q.toLowerCase().includes(M)||ci(q).includes(M))))}let d=Object.keys(a),f=d.filter(M=>f_(M)==="connecting"),p=A_()==="in_progress"||f.length>0,h=s.getAllTools().filter(M=>M instanceof HF),C=o.getPromptRegistry().getAllPrompts().filter(M=>"serverName"in M&&d.includes(M.serverName)),D=o.getResourceRegistry().getAllResources().filter(M=>d.includes(M.serverName)),x={},w=new rS;for(let M of d)if(a[M].oauth?.enabled||iS.has(M)){let ae=await w.getCredentials(M);ae?ae.token.expiresAt&&ae.token.expiresAt<Date.now()?x[M]="expired":x[M]="authenticated":x[M]="unauthenticated"}else x[M]="not-configured";let Q=fc.getInstance(),k={};for(let M of d)k[M]=await Q.getDisplayState(M);let P={};for(let M of d){let q=o.getMcpClientManager()?.getLastError(M);q&&(P[M]=q)}let Y={type:"mcp_status",servers:a,tools:h.map(M=>({serverName:M.serverName,name:M.name,description:M.description,schema:M.schema})),prompts:C.map(M=>({serverName:M.serverName,name:M.name,description:M.description})),resources:D.map(M=>({serverName:M.serverName,name:M.name,uri:M.uri,mimeType:M.mimeType,description:M.description})),authStatus:x,enablementState:k,errors:P,blockedServers:u.map(M=>({name:M.name,extensionName:M.extensionName})),discoveryInProgress:p,connectingServers:f,showDescriptions:!!t,showSchema:!!n};e.ui.addItem(Y)},H7={name:"list",altNames:["ls","nodesc","nodescription"],description:"List configured MCP servers and tools",kind:"built-in",autoExecute:!0,action:(e,t)=>Ig(e,!1,!1,t)},xSe={name:"desc",altNames:["description"],description:"List configured MCP servers and tools with descriptions",kind:"built-in",autoExecute:!0,action:(e,t)=>Ig(e,!0,!1,t)},BSe={name:"schema",description:"List configured MCP servers and tools with descriptions and schemas",kind:"built-in",autoExecute:!0,action:(e,t)=>Ig(e,!0,!0,t)},wSe={name:"reload",altNames:["refresh"],description:"Reloads MCP servers",kind:"built-in",autoExecute:!0,takesArgs:!1,action:async e=>{let t=e.services.agentContext,n=t?.config;if(!n)return{type:"message",messageType:"error",content:"Config not loaded."};let r=n.getMcpClientManager();if(!r)return{type:"message",messageType:"error",content:"Could not retrieve mcp client manager."};e.ui.addItem({type:"info",text:"Reloading MCP servers..."}),await r.restart();let i=t.geminiClient;return i?.isInitialized()&&await i.setTools(),e.ui.reloadCommands(),H7.action(e,"")}};async function j7(e,t,n){let r=e.services.agentContext,i=r?.config;if(!i)return{type:"message",messageType:"error",content:"Config not loaded."};i.setUserInteractedWithMcp();let o=t.trim().split(/\s+/),s=o.includes("--session"),a=o.filter(y=>y!=="--session")[0],u=n?"enable":"disable";if(!a)return{type:"message",messageType:"error",content:`Server name required. Usage: /mcp ${u} <server-name> [--session]`};let d=ci(a),f=i.getMcpClientManager()?.getMcpServers()||{};if(!Object.keys(f).map(ci).includes(d))return{type:"message",messageType:"error",content:`Server '${a}' not found. Use /mcp list to see available servers.`};let p=fc.getInstance();if(n){let y=Af(),C=await tz(d,{adminMcpEnabled:y.merged.admin?.mcp?.enabled??!0,allowedList:y.merged.mcp?.allowed,excludedList:y.merged.mcp?.excluded});if(!C.allowed&&(C.blockType==="allowlist"||C.blockType==="excludelist"))return{type:"message",messageType:"error",content:C.reason??"Blocked by settings."};s?p.clearSessionDisable(d):await p.enable(d),C.blockType==="admin"&&e.ui.addItem({type:"warning",text:"MCP disabled by admin. Will load when enabled."},Date.now())}else s?p.disableForSession(d):await p.disable(d);let A=`MCP server '${d}' ${n?"enabled":"disabled"}${s?" for this session":""}.`,h=i.getMcpClientManager();return h&&(e.ui.addItem({type:"info",text:"Reloading MCP servers..."},Date.now()),await h.restart()),r.geminiClient?.isInitialized()&&await r.geminiClient.setTools(),e.ui.reloadCommands(),{type:"message",messageType:"info",content:A}}async function q7(e,t,n){let i=e.services.agentContext?.config;if(!i)return[];let o=Object.keys(i.getMcpClientManager()?.getMcpServers()||{}),s=fc.getInstance(),a=[];for(let u of o)(await s.getDisplayState(u)).enabled===n&&u.startsWith(t)&&a.push(u);return a}var vSe={name:"enable",description:"Enable a disabled MCP server",kind:"built-in",autoExecute:!0,action:(e,t)=>j7(e,t,!0),completion:(e,t)=>q7(e,t,!1)},TSe={name:"disable",description:"Disable an MCP server",kind:"built-in",autoExecute:!0,action:(e,t)=>j7(e,t,!1),completion:(e,t)=>q7(e,t,!0)},d1={name:"mcp",description:"Manage configured Model Context Protocol (MCP) servers",kind:"built-in",autoExecute:!1,subCommands:[H7,xSe,BSe,DSe,wSe,vSe,TSe],action:async(e,t)=>{if(t){let n=uc(`/${t}`,d1.subCommands);return n.commandToExecute?.action?n.commandToExecute.action(e,n.args):Ig(e,!1,!1,t)}return Ig(e)}};var W7={name:"memory",description:"Commands for interacting with memory",kind:"built-in",autoExecute:!1,subCommands:[{name:"show",description:"Show the current memory contents",kind:"built-in",autoExecute:!0,action:async e=>{let t=e.services.agentContext?.config;if(!t)return;let n=b_(t);e.ui.addItem({type:"info",text:n.content},Date.now())}},{name:"add",description:"Add content to the memory",kind:"built-in",autoExecute:!1,action:(e,t)=>{let n=S_(t);return n.type==="message"||e.ui.addItem({type:"info",text:`Attempting to save to memory: "${t.trim()}"`},Date.now()),n}},{name:"reload",altNames:["refresh"],description:"Reload the memory from the source",kind:"built-in",autoExecute:!0,action:async e=>{e.ui.addItem({type:"info",text:"Reloading memory from source files..."},Date.now());try{let t=e.services.agentContext?.config;if(t){let n=await D_(t);e.ui.addItem({type:"info",text:n.content},Date.now())}}catch(t){e.ui.addItem({type:"error",text:`Error reloading memory: ${t.message}`},Date.now())}}},{name:"list",description:"Lists the paths of the GEMINI.md files in use",kind:"built-in",autoExecute:!0,action:async e=>{let t=e.services.agentContext?.config;if(!t)return;let n=x_(t);e.ui.addItem({type:"info",text:n.content},Date.now())}}]};var RSe={name:"set",description:"Set the model to use. Usage: /model set <model-name> [--persist]",kind:"built-in",autoExecute:!1,action:async(e,t)=>{let n=t.trim().split(/\s+/).filter(Boolean);if(n.length===0){e.ui.addItem({type:"error",text:"Usage: /model set <model-name> [--persist]"});return}let r=n[0],i=n.includes("--persist");if(e.services.agentContext?.config){e.services.agentContext.config.setModel(r,!i);let o=new ok(r);Sk(e.services.agentContext.config,o),e.ui.addItem({type:"info",text:`Model set to ${r}${i?" (persisted)":""}`})}}},K7={name:"manage",description:"Opens a dialog to configure the model",kind:"built-in",autoExecute:!0,action:async e=>(e.services.agentContext?.config&&await e.services.agentContext.config.refreshUserQuota(),{type:"dialog",dialog:"model"})},Y7={name:"model",description:"Manage model configuration",kind:"built-in",autoExecute:!1,subCommands:[K7,RSe],action:async(e,t)=>K7.action(e,t)};var ir=te(_e(),1);var Re=te(Ge(),1);var f1=6,A1=20,DI=25,Wu=5,z7=10,bg=e=>!e||!e.reactionGroups?0:e.reactionGroups.reduce((t,n)=>t+n.users.totalCount,0),FSe=(e,t)=>t?.toLowerCase()==="duplicate"?"magenta":e==="OPEN"?"green":"red",J7=({config:e,onExit:t,initialLimit:n=50})=>{let r=Pn(),[i,o]=(0,ir.useState)({status:"loading",issues:[],currentIndex:0,analysisCache:new Map,analyzingIds:new Set,message:"Fetching issues..."}),[s,a]=(0,ir.useState)("target"),[u,d]=(0,ir.useState)(0),[f,g]=(0,ir.useState)(!1),[p,A]=(0,ir.useState)(0),[h,y]=(0,ir.useState)(0),[C,b]=(0,ir.useState)(""),[D,x]=(0,ir.useState)([]),[w,Q]=(0,ir.useState)(!1),[k,P]=(0,ir.useState)(0);(0,ir.useEffect)(()=>{u<k?P(u):u>=k+Wu&&P(u-Wu+1)},[u,k]);let Y=async de=>{try{let{stdout:he}=await Mr("gh",["issue","view",String(de),"--json","number,title,body,state,stateReason,labels,url,comments,author,reactionGroups"]);return JSON.parse(he)}catch(he){return ne.error(`Failed to fetch details for candidate #${de}`,he),null}},M=(0,ir.useCallback)(async de=>{let he=de.comments.find(pe=>pe.body.includes("Found possible duplicate issues:"));if(!he)return null;let Be=he.body.split(`
523
+ Use /mcp auth <server-name> to authenticate.`}}let s=o[n];if(!s)return{type:"message",messageType:"error",content:`MCP server '${n}' not found.`};let a=u=>{e.ui.addItem({type:"info",text:u})};Le.on("oauth-display-message",a);try{e.ui.addItem({type:"info",text:`Starting OAuth authentication for MCP server '${n}'...`});let{MCPOAuthProvider:u}=await import("./core-6CSJEUHD.js"),d=s.oauth;d||(d={enabled:!1});let f=s.httpUrl||s.url;await new u(new rS).authenticate(n,d,f),e.ui.addItem({type:"info",text:`\u2705 Successfully authenticated with MCP server '${n}'!`});let p=i.getMcpClientManager();p&&(e.ui.addItem({type:"info",text:`Restarting MCP server '${n}'...`}),await p.restartServer(n));let A=e.services.agentContext?.geminiClient;return A?.isInitialized()&&await A.setTools(),e.ui.reloadCommands(),{type:"message",messageType:"info",content:`Successfully authenticated and reloaded tools for '${n}'`}}catch(u){return{type:"message",messageType:"error",content:`Failed to authenticate with MCP server '${n}': ${et(u)}`}}finally{Le.removeListener("oauth-display-message",a)}},completion:async(e,t)=>{let r=e.services.agentContext?.config;if(!r)return[];let i=r.getMcpClientManager()?.getMcpServers()||{};return Object.keys(i).filter(o=>o.startsWith(t))}},Ig=async(e,t=!1,n=!1,r)=>{let i=e.services.agentContext,o=i?.config;if(!o)return{type:"message",messageType:"error",content:"Config not loaded."};o.setUserInteractedWithMcp();let s=i.toolRegistry;if(!s)return{type:"message",messageType:"error",content:"Could not retrieve tool registry."};let a=o.getMcpClientManager()?.getMcpServers()||{},u=o.getMcpClientManager()?.getBlockedMcpServers()||[];if(r){let M=r.trim().toLowerCase();M&&(a=Object.fromEntries(Object.entries(a).filter(([q])=>q.toLowerCase().includes(M)||ci(q).includes(M))))}let d=Object.keys(a),f=d.filter(M=>f_(M)==="connecting"),p=A_()==="in_progress"||f.length>0,h=s.getAllTools().filter(M=>M instanceof HF),C=o.getPromptRegistry().getAllPrompts().filter(M=>"serverName"in M&&d.includes(M.serverName)),D=o.getResourceRegistry().getAllResources().filter(M=>d.includes(M.serverName)),x={},w=new rS;for(let M of d)if(a[M].oauth?.enabled||iS.has(M)){let ae=await w.getCredentials(M);ae?ae.token.expiresAt&&ae.token.expiresAt<Date.now()?x[M]="expired":x[M]="authenticated":x[M]="unauthenticated"}else x[M]="not-configured";let Q=fc.getInstance(),k={};for(let M of d)k[M]=await Q.getDisplayState(M);let P={};for(let M of d){let q=o.getMcpClientManager()?.getLastError(M);q&&(P[M]=q)}let Y={type:"mcp_status",servers:a,tools:h.map(M=>({serverName:M.serverName,name:M.name,description:M.description,schema:M.schema})),prompts:C.map(M=>({serverName:M.serverName,name:M.name,description:M.description})),resources:D.map(M=>({serverName:M.serverName,name:M.name,uri:M.uri,mimeType:M.mimeType,description:M.description})),authStatus:x,enablementState:k,errors:P,blockedServers:u.map(M=>({name:M.name,extensionName:M.extensionName})),discoveryInProgress:p,connectingServers:f,showDescriptions:!!t,showSchema:!!n};e.ui.addItem(Y)},H7={name:"list",altNames:["ls","nodesc","nodescription"],description:"List configured MCP servers and tools",kind:"built-in",autoExecute:!0,action:(e,t)=>Ig(e,!1,!1,t)},xSe={name:"desc",altNames:["description"],description:"List configured MCP servers and tools with descriptions",kind:"built-in",autoExecute:!0,action:(e,t)=>Ig(e,!0,!1,t)},BSe={name:"schema",description:"List configured MCP servers and tools with descriptions and schemas",kind:"built-in",autoExecute:!0,action:(e,t)=>Ig(e,!0,!0,t)},wSe={name:"reload",altNames:["refresh"],description:"Reloads MCP servers",kind:"built-in",autoExecute:!0,takesArgs:!1,action:async e=>{let t=e.services.agentContext,n=t?.config;if(!n)return{type:"message",messageType:"error",content:"Config not loaded."};let r=n.getMcpClientManager();if(!r)return{type:"message",messageType:"error",content:"Could not retrieve mcp client manager."};e.ui.addItem({type:"info",text:"Reloading MCP servers..."}),await r.restart();let i=t.geminiClient;return i?.isInitialized()&&await i.setTools(),e.ui.reloadCommands(),H7.action(e,"")}};async function j7(e,t,n){let r=e.services.agentContext,i=r?.config;if(!i)return{type:"message",messageType:"error",content:"Config not loaded."};i.setUserInteractedWithMcp();let o=t.trim().split(/\s+/),s=o.includes("--session"),a=o.filter(y=>y!=="--session")[0],u=n?"enable":"disable";if(!a)return{type:"message",messageType:"error",content:`Server name required. Usage: /mcp ${u} <server-name> [--session]`};let d=ci(a),f=i.getMcpClientManager()?.getMcpServers()||{};if(!Object.keys(f).map(ci).includes(d))return{type:"message",messageType:"error",content:`Server '${a}' not found. Use /mcp list to see available servers.`};let p=fc.getInstance();if(n){let y=Af(),C=await tz(d,{adminMcpEnabled:y.merged.admin?.mcp?.enabled??!0,allowedList:y.merged.mcp?.allowed,excludedList:y.merged.mcp?.excluded});if(!C.allowed&&(C.blockType==="allowlist"||C.blockType==="excludelist"))return{type:"message",messageType:"error",content:C.reason??"Blocked by settings."};s?p.clearSessionDisable(d):await p.enable(d),C.blockType==="admin"&&e.ui.addItem({type:"warning",text:"MCP disabled by admin. Will load when enabled."},Date.now())}else s?p.disableForSession(d):await p.disable(d);let A=`MCP server '${d}' ${n?"enabled":"disabled"}${s?" for this session":""}.`,h=i.getMcpClientManager();return h&&(e.ui.addItem({type:"info",text:"Reloading MCP servers..."},Date.now()),await h.restart()),r.geminiClient?.isInitialized()&&await r.geminiClient.setTools(),e.ui.reloadCommands(),{type:"message",messageType:"info",content:A}}async function q7(e,t,n){let i=e.services.agentContext?.config;if(!i)return[];let o=Object.keys(i.getMcpClientManager()?.getMcpServers()||{}),s=fc.getInstance(),a=[];for(let u of o)(await s.getDisplayState(u)).enabled===n&&u.startsWith(t)&&a.push(u);return a}var vSe={name:"enable",description:"Enable a disabled MCP server",kind:"built-in",autoExecute:!0,action:(e,t)=>j7(e,t,!0),completion:(e,t)=>q7(e,t,!1)},TSe={name:"disable",description:"Disable an MCP server",kind:"built-in",autoExecute:!0,action:(e,t)=>j7(e,t,!1),completion:(e,t)=>q7(e,t,!0)},d1={name:"mcp",description:"Manage configured Model Context Protocol (MCP) servers",kind:"built-in",autoExecute:!1,subCommands:[H7,xSe,BSe,DSe,wSe,vSe,TSe],action:async(e,t)=>{if(t){let n=uc(`/${t}`,d1.subCommands);return n.commandToExecute?.action?n.commandToExecute.action(e,n.args):Ig(e,!1,!1,t)}return Ig(e)}};var W7={name:"memory",description:"Commands for interacting with memory",kind:"built-in",autoExecute:!1,subCommands:[{name:"show",description:"Show the current memory contents",kind:"built-in",autoExecute:!0,action:async e=>{let t=e.services.agentContext?.config;if(!t)return;let n=b_(t);e.ui.addItem({type:"info",text:n.content},Date.now())}},{name:"add",description:"Add content to the memory",kind:"built-in",autoExecute:!1,action:(e,t)=>{let n=S_(t);return n.type==="message"||e.ui.addItem({type:"info",text:`Attempting to save to memory: "${t.trim()}"`},Date.now()),n}},{name:"reload",altNames:["refresh"],description:"Reload the memory from the source",kind:"built-in",autoExecute:!0,action:async e=>{e.ui.addItem({type:"info",text:"Reloading memory from source files..."},Date.now());try{let t=e.services.agentContext?.config;if(t){let n=await D_(t);e.ui.addItem({type:"info",text:n.content},Date.now())}}catch(t){e.ui.addItem({type:"error",text:`Error reloading memory: ${t.message}`},Date.now())}}},{name:"list",description:"Lists the paths of the GEMINI.md files in use",kind:"built-in",autoExecute:!0,action:async e=>{let t=e.services.agentContext?.config;if(!t)return;let n=x_(t);e.ui.addItem({type:"info",text:n.content},Date.now())}}]};var RSe={name:"set",description:"Set the model to use. Usage: /model set <model-name> [--persist]",kind:"built-in",autoExecute:!1,action:async(e,t)=>{let n=t.trim().split(/\s+/).filter(Boolean);if(n.length===0){e.ui.addItem({type:"error",text:"Usage: /model set <model-name> [--persist]"});return}let r=n[0],i=n.includes("--persist");if(e.services.agentContext?.config){e.services.agentContext.config.setModel(r,!i);let o=new ok(r);Sk(e.services.agentContext.config,o),e.ui.addItem({type:"info",text:`Model set to ${r}${i?" (persisted)":""}`})}}},K7={name:"manage",description:"Opens a dialog to configure the model",kind:"built-in",autoExecute:!0,action:async e=>(e.services.agentContext?.config&&await e.services.agentContext.config.refreshUserQuota(),{type:"dialog",dialog:"model"})},Y7={name:"model",description:"Manage model configuration",kind:"built-in",autoExecute:!1,subCommands:[K7,RSe],action:async(e,t)=>K7.action(e,t)};var ir=te(_e(),1);var Re=te(Ge(),1);var f1=6,A1=20,DI=25,Wu=5,z7=10,bg=e=>!e||!e.reactionGroups?0:e.reactionGroups.reduce((t,n)=>t+n.users.totalCount,0),FSe=(e,t)=>t?.toLowerCase()==="duplicate"?"magenta":e==="OPEN"?"green":"red",J7=({config:e,onExit:t,initialLimit:n=50})=>{let r=Pn(),[i,o]=(0,ir.useState)({status:"loading",issues:[],currentIndex:0,analysisCache:new Map,analyzingIds:new Set,message:"Fetching issues..."}),[s,a]=(0,ir.useState)("target"),[u,d]=(0,ir.useState)(0),[f,g]=(0,ir.useState)(!1),[p,A]=(0,ir.useState)(0),[h,y]=(0,ir.useState)(0),[C,b]=(0,ir.useState)(""),[D,x]=(0,ir.useState)([]),[w,Q]=(0,ir.useState)(!1),[k,P]=(0,ir.useState)(0);(0,ir.useEffect)(()=>{u<k?P(u):u>=k+Wu&&P(u-Wu+1)},[u,k]);let Y=async de=>{try{let{stdout:he}=await Mr("gh",["issue","view",String(de),"--json","number,title,body,state,stateReason,labels,url,comments,author,reactionGroups"]);return JSON.parse(he)}catch(he){return ne.error(`Failed to fetch details for candidate #${de}`,he),null}},M=(0,ir.useCallback)(async de=>{let he=de.comments.find(pe=>pe.body.includes("Found possible duplicate issues:"));if(!he)return null;let Be=he.body.split(`
524
524
  `),Te=[];for(let pe of Be){let Ye=pe.match(/#(\d+)/);if(Ye){let ut=parseInt(Ye[1],10);ut!==de.number&&Te.push(ut)}}if(Te.length===0)return null;let $e=[];for(let pe of Te){let Ye=await Y(pe);Ye&&$e.push(Ye)}let We=e.getBaseLlmClient(),_=`
525
525
  I am triaging a GitHub issue labeled as 'possible-duplicate'. I need to decide if it should be marked as a duplicate of another issue, or if one of the other issues should be marked as a duplicate of this one.
526
526