aico-cli 2.0.33 → 2.0.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/bin/cli/cli.js +1 -1
  2. package/dist/chunks/simple-config.mjs +36 -15
  3. package/dist/cli.mjs +41 -37
  4. package/dist/index.d.mts +7 -1
  5. package/dist/index.d.ts +7 -1
  6. package/dist/index.mjs +1 -1
  7. package/package.json +1 -1
  8. package/templates/skills/.gitkeep +0 -0
  9. package/templates/skills/canvas-design/LICENSE.txt +202 -0
  10. package/templates/skills/canvas-design/SKILL.md +130 -0
  11. package/templates/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  12. package/templates/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  13. package/templates/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  14. package/templates/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
  15. package/templates/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  16. package/templates/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
  17. package/templates/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
  18. package/templates/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  19. package/templates/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  20. package/templates/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  21. package/templates/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  22. package/templates/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  23. package/templates/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  24. package/templates/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  25. package/templates/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
  26. package/templates/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
  27. package/templates/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
  28. package/templates/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
  29. package/templates/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
  30. package/templates/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
  31. package/templates/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
  32. package/templates/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
  33. package/templates/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
  34. package/templates/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  35. package/templates/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  36. package/templates/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  37. package/templates/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  38. package/templates/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  39. package/templates/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  40. package/templates/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  41. package/templates/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  42. package/templates/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  43. package/templates/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  44. package/templates/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  45. package/templates/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  46. package/templates/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  47. package/templates/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  48. package/templates/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
  49. package/templates/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
  50. package/templates/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  51. package/templates/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  52. package/templates/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  53. package/templates/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
  54. package/templates/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
  55. package/templates/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
  56. package/templates/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  57. package/templates/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  58. package/templates/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
  59. package/templates/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  60. package/templates/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
  61. package/templates/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
  62. package/templates/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
  63. package/templates/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
  64. package/templates/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
  65. package/templates/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
  66. package/templates/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  67. package/templates/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  68. package/templates/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
  69. package/templates/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
  70. package/templates/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
  71. package/templates/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  72. package/templates/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
  73. package/templates/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
  74. package/templates/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  75. package/templates/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  76. package/templates/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
  77. package/templates/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  78. package/templates/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
  79. package/templates/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  80. package/templates/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  81. package/templates/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
  82. package/templates/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
  83. package/templates/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
  84. package/templates/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
  85. package/templates/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
  86. package/templates/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  87. package/templates/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
  88. package/templates/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
  89. package/templates/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
  90. package/templates/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
  91. package/templates/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  92. package/templates/skills/frontend-design/LICENSE.txt +177 -0
  93. package/templates/skills/frontend-design/SKILL.md +42 -0
  94. package/templates/skills/mcp-builder/LICENSE.txt +202 -0
  95. package/templates/skills/mcp-builder/SKILL.md +236 -0
  96. package/templates/skills/mcp-builder/reference/evaluation.md +602 -0
  97. package/templates/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
  98. package/templates/skills/mcp-builder/reference/node_mcp_server.md +970 -0
  99. package/templates/skills/mcp-builder/reference/python_mcp_server.md +719 -0
  100. package/templates/skills/mcp-builder/scripts/connections.py +151 -0
  101. package/templates/skills/mcp-builder/scripts/evaluation.py +373 -0
  102. package/templates/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  103. package/templates/skills/mcp-builder/scripts/requirements.txt +2 -0
  104. package/templates/skills/skill-creator/LICENSE.txt +202 -0
  105. package/templates/skills/skill-creator/SKILL.md +356 -0
  106. package/templates/skills/skill-creator/references/output-patterns.md +82 -0
  107. package/templates/skills/skill-creator/references/workflows.md +28 -0
  108. package/templates/skills/skill-creator/scripts/init_skill.py +303 -0
  109. package/templates/skills/skill-creator/scripts/package_skill.py +110 -0
  110. package/templates/skills/skill-creator/scripts/quick_validate.py +95 -0
package/bin/cli/cli.js CHANGED
@@ -2835,7 +2835,7 @@ ${G}`;throw new rj(Z)}var cR3,pR3;var XjA=L(()=>{nV();$Z();D0();aG();nQ();cR3=/`
2835
2835
  ${W}`:W;if(R)if(y.includes("$ARGUMENTS"))y=y.replaceAll("$ARGUMENTS",R);else y=y+`
2836
2836
 
2837
2837
  ARGUMENTS: ${R}`;return y=Qb1(y,Z),y=await Ba(y,{...P,async getAppState(){let v=await P.getAppState();return{...v,toolPermissionContext:{...v.toolPermissionContext,alwaysAllowRules:{...v.toolPermissionContext.alwaysAllowRules,command:F}}}}},`/${A}`),[{type:"text",text:y}]}}}catch(J){return g(`Failed to create command from ${Q.filePath}: ${J}`,{level:"error"}),null}}function ZI1(){UQA.cache?.clear?.()}async function b89(A,Q,B,G,Z){let I=OA(),Y=[];try{if(!I.existsSync(A))return[];let J=bXA(A,"SKILL.md");if(I.existsSync(J)){try{let X=I.readFileSync(J,{encoding:"utf-8"}),{frontmatter:F,content:V}=yF(X),K=`${Q}:${fXA(A)}`,D={filePath:J,baseDir:Ga(J),frontmatter:F,content:V},H=FjA(K,D,B,G,Z,!0,{isSkillMode:!0});if(H)Y.push(H)}catch(X){g(`Failed to load skill from ${J}: ${X}`,{level:"error"})}return Y}let W=I.readdirSync(A);for(let X of W){if(!X.isDirectory()&&!X.isSymbolicLink())continue;let F=bXA(A,X.name),V=bXA(F,"SKILL.md");if(I.existsSync(V))try{let K=I.readFileSync(V,{encoding:"utf-8"}),{frontmatter:D,content:H}=yF(K),C=`${Q}:${X.name}`,E={filePath:V,baseDir:Ga(V),frontmatter:D,content:H},z=FjA(C,E,B,G,Z,!0,{isSkillMode:!0});if(z)Y.push(z)}catch(K){g(`Failed to load skill from ${V}: ${K}`,{level:"error"})}}}catch(J){g(`Failed to load skills from directory ${A}: ${J}`,{level:"error"})}return Y}function f89(){MW0.cache?.clear?.()}var iR3="plugin",nR3="plugin",UQA,MW0;var VjA=L(()=>{o2();o0();NF();D0();XjA();Ny();hQ();Bb1();UQA=t1(async()=>{let{enabled:A,errors:Q}=await y7(),B=[];if(Q.length>0)g(`Plugin loading errors: ${Q.map((G)=>BM(G)).join(", ")}`);for(let G of A){if(G.commandsPath)try{let Z=await v89(G.commandsPath,G.name,G.source,G.manifest,G.path);if(B.push(...Z),Z.length>0)g(`Loaded ${Z.length} commands from plugin ${G.name} default directory`)}catch(Z){g(`Failed to load commands from plugin ${G.name} default directory: ${Z}`,{level:"error"})}if(G.commandsPaths){g(`Plugin ${G.name} has commandsPaths: ${G.commandsPaths.join(", ")}`);for(let Z of G.commandsPaths)try{let I=OA(),Y=I.statSync(Z);if(g(`Checking commandPath ${Z} - isDirectory: ${Y.isDirectory()}, isFile: ${Y.isFile()}`),Y.isDirectory()){let J=await v89(Z,G.name,G.source,G.manifest,G.path);if(B.push(...J),J.length>0)g(`Loaded ${J.length} commands from plugin ${G.name} custom path: ${Z}`);else g(`Warning: No commands found in plugin ${G.name} custom directory: ${Z}. Expected .md files or SKILL.md in subdirectories.`,{level:"warn"})}else if(Y.isFile()&&Z.endsWith(".md")){let J=I.readFileSync(Z,{encoding:"utf-8"}),{frontmatter:W,content:X}=yF(J),F,V;if(G.commandsMetadata){for(let[C,E]of Object.entries(G.commandsMetadata))if(E.source){let z=bXA(G.path,E.source);if(Z===z){F=`${G.name}:${C}`,V=E;break}}}if(!F)F=`${G.name}:${fXA(Z).replace(/\.md$/,"")}`;let K=V?{...W,...V.description&&{description:V.description},...V.argumentHint&&{"argument-hint":V.argumentHint},...V.model&&{model:V.model},...V.allowedTools&&{"allowed-tools":V.allowedTools.join(",")}}:W,D={filePath:Z,baseDir:Ga(Z),frontmatter:K,content:X},H=FjA(F,D,G.source,G.manifest,G.path,!1);if(H)B.push(H),g(`Loaded command from plugin ${G.name} custom file: ${Z}${V?" (with metadata override)":""}`)}}catch(I){g(`Failed to load commands from plugin ${G.name} custom path ${Z}: ${I}`,{level:"error"})}}if(G.commandsMetadata){for(let[Z,I]of Object.entries(G.commandsMetadata))if(I.content&&!I.source)try{let{frontmatter:Y,content:J}=yF(I.content),W={...Y,...I.description&&{description:I.description},...I.argumentHint&&{"argument-hint":I.argumentHint},...I.model&&{model:I.model},...I.allowedTools&&{"allowed-tools":I.allowedTools.join(",")}},X=`${G.name}:${Z}`,F={filePath:`<inline:${X}>`,baseDir:G.path,frontmatter:W,content:J},V=FjA(X,F,G.source,G.manifest,G.path,!1);if(V)B.push(V),g(`Loaded inline content command from plugin ${G.name}: ${X}`)}catch(Y){g(`Failed to load inline content command ${Z} from plugin ${G.name}: ${Y}`,{level:"error"})}}}return g(`Total plugin commands loaded: ${B.length}`),B});MW0=t1(async()=>{g(">>>>> getPluginSkills CALLED <<<<<");let{enabled:A,errors:Q}=await y7(),B=[];if(Q.length>0)g(`Plugin loading errors: ${Q.map((G)=>BM(G)).join(", ")}`);g(`getPluginSkills: Processing ${A.length} enabled plugins`);for(let G of A){if(g(`Checking plugin ${G.name}: skillsPath=${G.skillsPath?"exists":"none"}, skillsPaths=${G.skillsPaths?G.skillsPaths.length:0} paths`),G.skillsPath){g(`Attempting to load skills from plugin ${G.name} default skillsPath: ${G.skillsPath}`);try{let Z=await b89(G.skillsPath,G.name,G.source,G.manifest,G.path);B.push(...Z),g(`Loaded ${Z.length} skills from plugin ${G.name} default directory`)}catch(Z){g(`Failed to load skills from plugin ${G.name} default directory: ${Z}`,{level:"error"})}}if(G.skillsPaths){g(`Attempting to load skills from plugin ${G.name} skillsPaths: ${G.skillsPaths.join(", ")}`);for(let Z of G.skillsPaths)try{g(`Loading from skillPath: ${Z} for plugin ${G.name}`);let I=await b89(Z,G.name,G.source,G.manifest,G.path);B.push(...I),g(`Loaded ${I.length} skills from plugin ${G.name} custom path: ${Z}`)}catch(I){g(`Failed to load skills from plugin ${G.name} custom path ${Z}: ${I}`,{level:"error"})}}}return g(`Total plugin skills loaded: ${B.length}`),B})});function YI1(){let[,A]=_Q(),Q=II1.useCallback(async()=>{try{let{enabled:B,disabled:G,errors:Z}=await y7(),I=[],Y=[];try{I=await UQA()}catch(J){let W=J instanceof Error?J.message:String(J);Z.push({type:"generic-error",source:"plugin-commands",error:`Failed to load plugin commands: ${W}`})}try{Y=await q0A()}catch(J){let W=J instanceof Error?J.message:String(J);Z.push({type:"generic-error",source:"plugin-agents",error:`Failed to load plugin agents: ${W}`})}try{await w1A()}catch(J){let W=J instanceof Error?J.message:String(J);Z.push({type:"generic-error",source:"plugin-hooks",error:`Failed to load plugin hooks: ${W}`})}A((J)=>({...J,plugins:{...J.plugins,enabled:B,disabled:G,commands:I,agents:Y,errors:Z}})),g(`Loaded plugins - Enabled: ${B.length}, Disabled: ${G.length}, Commands: ${I.length}, Agents: ${Y.length}, Errors: ${Z.length}`)}catch(B){let G=B instanceof Error?B:Error(String(B));e(G),g(`Error loading plugins: ${B}`),A((Z)=>({...Z,plugins:{...Z.plugins,enabled:[],disabled:[],commands:[],agents:[],errors:[{type:"generic-error",source:"plugin-system",error:G.message}]}}))}},[A]);return II1.useEffect(()=>{Q()},[Q]),{refreshPlugins:Q}}var II1;var OW0=L(()=>{H9();NF();VjA();ATA();MMA();D0();u1();II1=GA(VA(),1)});function KjA({state:A,percentage:Q}){if(!L1().terminalProgressBarEnabled)return null;return RW0.createElement(taA,{state:A,percentage:Q})}var RW0;var h89=L(()=>{hA();jQ();RW0=GA(VA(),1)});function TW0(A){if(A.type==="assistant"&&A.message.content[0]?.type==="tool_use"){let Q=A.message.content[0];return{messageId:A.message.id,toolUseId:Q.id,toolName:Q.name}}return null}function g89(A,Q,B=!1){if(B)return{messages:A};let G=new Set(Q.filter((F)=>F.renderGroupedToolUse).map((F)=>F.name)),Z=new Map;for(let F of A){let V=TW0(F);if(V&&G.has(V.toolName)){let K=`${V.messageId}:${V.toolName}`,D=Z.get(K)??[];D.push(F),Z.set(K,D)}}let I=new Map,Y=new Set;for(let[F,V]of Z)if(V.length>=2){I.set(F,V);for(let K of V){let D=TW0(K);if(D)Y.add(D.toolUseId)}}let J=new Map;for(let F of A)if(F.type==="user"){for(let V of F.message.content)if(V.type==="tool_result"&&Y.has(V.tool_use_id))J.set(V.tool_use_id,F)}let W=[],X=new Set;for(let F of A){let V=TW0(F);if(V){let K=`${V.messageId}:${V.toolName}`,D=I.get(K);if(D){if(!X.has(K)){X.add(K);let H=D[0],C=[];for(let z of D){let w=z.message.content[0].id,N=J.get(w);if(N)C.push(N)}let E={type:"grouped_tool_use",toolName:V.toolName,messages:D,results:C,displayMessage:H,uuid:`grouped-${H.uuid}`,timestamp:H.timestamp,messageId:V.messageId};W.push(E)}continue}}if(F.type==="user"){let K=F.message.content.filter((D)=>D.type==="tool_result");if(K.length>0){if(K.every((H)=>Y.has(H.tool_use_id)))continue}}W.push(F)}return{messages:W}}function DjA(A){if(!A)return 0;return A.activeAgents.filter((Q)=>Q.source!=="built-in").reduce((Q,B)=>{let G=`${B.agentType}: ${B.whenToUse}`;return Q+SG(G)},0)}var $QA=15000;var PW0=L(()=>{gM()});import{relative as oR3}from"path";function u89(A){return YT3.filter((Q)=>Q.isActive(A))}var xB,tR3,eR3,AT3,QT3,BT3,GT3,ZT3,IT3,YT3;var m89=L(()=>{hA();uE();n2();R2();hB();dK();S0();PW0();xB=GA(VA(),1),tR3={id:"large-memory-files",type:"warning",isActive:()=>{return D1A().length>0},render:()=>{let A=D1A();return xB.createElement(xB.Fragment,null,A.map((Q)=>{let B=Q.path.startsWith(H0())?oR3(H0(),Q.path):Q.path;return xB.createElement(j,{key:Q.path,flexDirection:"row"},xB.createElement($,{color:"warning"},V1.warning),xB.createElement($,{color:"warning"},"Large ",xB.createElement($,{bold:!0},B)," will impact performance (",QZ(Q.content.length)," chars >"," ",QZ(zh),")",xB.createElement($,{dimColor:!0}," • /memory to edit")))}))}},eR3={id:"ultra-claude-md",type:"warning",isActive:()=>{let A=H1A();return A!==null&&A.content.length>IYA},render:()=>{let A=H1A();if(!A)return null;let Q=A.content.length;return xB.createElement(j,{flexDirection:"row",gap:1},xB.createElement($,{color:"warning"},V1.warning),xB.createElement($,{color:"warning"},"CLAUDE.md entries marked as IMPORTANT exceed"," ",IYA," chars (",Q," chars)",xB.createElement($,{dimColor:!0}," • /memory to edit")))}},AT3={id:"claude-ai-external-token",type:"warning",isActive:()=>{let A=Kc();return AB()&&(A.source==="ANTHROPIC_AUTH_TOKEN"||A.source==="apiKeyHelper")},render:()=>{let A=Kc();return xB.createElement(j,{flexDirection:"row",marginTop:1},xB.createElement($,{color:"warning"},V1.warning),xB.createElement($,{color:"warning"},"Auth conflict: Using ",A.source," instead of Claude account subscription token. Either unset ",A.source,", or run `claude /logout`."))}},QT3={id:"api-key-conflict",type:"warning",isActive:()=>{let{source:A}=vw({skipRetrievingKeyFromApiKeyHelper:H5()});return!!rEA()&&(A==="ANTHROPIC_API_KEY"||A==="apiKeyHelper")},render:()=>{let{source:A}=vw({skipRetrievingKeyFromApiKeyHelper:H5()});return xB.createElement(j,{flexDirection:"row",marginTop:1},xB.createElement($,{color:"warning"},V1.warning),xB.createElement($,{color:"warning"},"Auth conflict: Using ",A," instead of Anthropic Console key. Either unset ",A,", or run `claude /logout`."))}},BT3={id:"both-auth-methods",type:"warning",isActive:()=>{let{source:A}=vw({skipRetrievingKeyFromApiKeyHelper:H5()}),Q=Kc();return A!=="none"&&Q.source!=="none"&&!(A==="apiKeyHelper"&&Q.source==="apiKeyHelper")},render:()=>{let{source:A}=vw({skipRetrievingKeyFromApiKeyHelper:H5()}),Q=Kc();return xB.createElement(j,{flexDirection:"column",marginTop:1},xB.createElement(j,{flexDirection:"row"},xB.createElement($,{color:"warning"},V1.warning),xB.createElement($,{color:"warning"},"Auth conflict: Both a token (",Q.source,") and an API key (",A,") are set. This may lead to unexpected behavior.")),xB.createElement(j,{flexDirection:"column",marginLeft:3},xB.createElement($,{color:"warning"},"• Trying to use"," ",Q.source==="claude.ai"?"claude.ai":Q.source,"?"," ",A==="ANTHROPIC_API_KEY"?'Unset the ANTHROPIC_API_KEY environment variable, or claude /logout then say "No" to the API key approval before login.':A==="apiKeyHelper"?"Unset the apiKeyHelper setting.":"claude /logout"),xB.createElement($,{color:"warning"},"• Trying to use ",A,"?"," ",Q.source==="claude.ai"?"claude /logout to sign out of claude.ai.":`Unset the ${Q.source} environment variable.`)))}},GT3={id:"sonnet-1m-welcome",type:"info",isActive:(A)=>A.showSonnet1MNotice===!0,render:()=>{return xB.createElement(j,{flexDirection:"column",marginTop:1},xB.createElement($,{bold:!0},"You now have access to Sonnet 4 with 1M context (uses more rate limits than Sonnet on long requests) • Update in /model"))}},ZT3={id:"opus-4.5-available",type:"info",isActive:(A)=>A.showOpus45Notice===!0,render:()=>{let Q=J6()!=="firstParty",B=x4(),G=B==="max",Z=B==="team",I=B==="pro",Y;if(G||Z)Y=xB.createElement($,{dimColor:!0},"Welcome to Opus 4.5");else if(I)Y=xB.createElement($,{dimColor:!0},"/upgrade or /extra-usage for Opus 4.5");else if(Q)Y=xB.createElement($,{dimColor:!0},"执行Shift+Tab切换模式. Note: you may need to request access from your cloud provider");else Y=xB.createElement($,{dimColor:!0},"执行Shift+Tab切换模式");return xB.createElement(j,{marginLeft:1},Y)}},IT3={id:"large-agent-descriptions",type:"warning",isActive:(A)=>{return DjA(A.agentDefinitions)>$QA},render:(A)=>{let Q=DjA(A.agentDefinitions);return xB.createElement(j,{flexDirection:"row"},xB.createElement($,{color:"warning"},V1.warning),xB.createElement($,{color:"warning"},"Large cumulative agent descriptions will impact performance (~",QZ(Q)," tokens >"," ",QZ($QA),")",xB.createElement($,{dimColor:!0}," • /agents to manage")))}},YT3=[tR3,eR3,IT3,AT3,QT3,BT3,GT3,ZT3]});function d89({agentDefinitions:A}={}){let Q=L1(),B=i6()?.organizationUuid,Z=(B?Q.s1mAccessCache?.[B]:void 0)?.hasAccessNotAsDefault,I=B&&Q.hasShownS1MWelcomeV2?.[B],Y=AB()&&Z&&!I,W=!(B&&Q.hasShownOpus45Notice?.[B]),X={config:Q,showSonnet1MNotice:Y,showOpus45Notice:W,agentDefinitions:A},F=u89(X);if(Og.useEffect(()=>{if(!B)return;let V=F.some((D)=>D.id==="sonnet-1m-welcome"),K=F.some((D)=>D.id==="opus-4.5-available");if(V)BA("tengu_sonnet_1m_notice_shown",{});if(K)BA("tengu_opus_45_notice_shown",{});if(V||K)d0({...Q,...V&&{hasShownS1MWelcomeV2:{...Q.hasShownS1MWelcomeV2,[B]:!0}},...K&&{hasShownOpus45Notice:{...Q.hasShownOpus45Notice,[B]:!0}}})},[F,Q,B]),F.length===0)return null;return Og.createElement(j,{flexDirection:"column",paddingLeft:1},F.map((V)=>Og.createElement(Og.Fragment,{key:V.id},V.render(X))))}var Og;var c89=L(()=>{hA();jQ();m89();w0();hB();Og=GA(VA(),1)});function p89(A,Q){let B=new Set;for(let G of A)if(!Q.has(G))B.add(G);return B}function l89(A,Q){for(let B of A)if(!Q.has(B))return!1;return!0}function i89({message:A,isTranscriptMode:Q}){if(!(Q&&A.timestamp&&A.type==="assistant"&&A.message.content.some((Z)=>Z.type==="text")))return null;let G=new Date(A.timestamp).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!0});return jW0.default.createElement(j,{marginTop:1,minWidth:G.length},jW0.default.createElement($,{dimColor:!0},G))}var jW0;var n89=L(()=>{hA();jW0=GA(VA(),1)});function a89({message:A,isTranscriptMode:Q}){if(!(Q&&A.type==="assistant"&&A.message.model&&A.message.content.some((G)=>G.type==="text")))return null;return SW0.default.createElement(j,{marginTop:1,marginLeft:1,minWidth:A.message.model.length+8},SW0.default.createElement($,{dimColor:!0},A.message.model))}var SW0;var s89=L(()=>{hA();SW0=GA(VA(),1)});function r89(A){let[Q,B]=hXA.useState(1),[G,Z]=hXA.useState(-1);return h1((I,Y)=>{if(Y.escape&&G===-1)Z(0)},{isActive:A}),hXA.useEffect(()=>{if(!A){Z(-1),B(0);return}},[A]),hXA.useEffect(()=>{if(G===-1)return;let I=[1,0,1,2,2,1,0,0,0,1,2,2,1];if(G>=I.length){Z(-1),B(1);return}B(I[G]);let Y=setTimeout(()=>{Z((J)=>J+1)},60);return()=>clearTimeout(Y)},[G]),Q}var hXA;var o89=L(()=>{hA();hXA=GA(VA(),1)});async function _W0(){if(H5())return;if(process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC)return;let A=await GQ.get(WT3);if(A.status===200){let Q=L1();d0({...Q,cachedChangelog:A.data,changelogLastFetched:Date.now()})}}function wQA(){return L1().cachedChangelog??""}function JI1(A){try{if(!A)return{};let Q={},B=A.split(/^## /gm).slice(1);for(let G of B){let Z=G.trim().split(`
2838
- `);if(Z.length===0)continue;let I=Z[0];if(!I)continue;let Y=I.split(" - ")[0]?.trim()||"";if(!Y)continue;let J=Z.slice(1).filter((W)=>W.trim().startsWith("- ")).map((W)=>W.trim().substring(2).trim()).filter(Boolean);if(J.length>0)Q[Y]=J}return Q}catch(Q){return e(Q instanceof Error?Q:Error("Failed to parse changelog")),{}}}function XT3(A,Q,B=wQA()){try{let G=JI1(B),Z=Za.coerce(A),I=Q?Za.coerce(Q):null;if(!I||Z&&Za.gt(Z,I,{loose:!0}))return Object.entries(G).filter(([Y])=>!I||Za.gt(Y,I,{loose:!0})).sort(([Y],[J])=>Za.gt(Y,J,{loose:!0})?-1:1).flatMap(([Y,J])=>J).filter(Boolean).slice(0,JT3)}catch(G){return e(G instanceof Error?G:Error("Failed to get release notes")),[]}return[]}function kW0(A=wQA()){try{let Q=JI1(A);return Object.keys(Q).sort((G,Z)=>Za.gt(G,Z,{loose:!0})?1:-1).map((G)=>{let Z=Q[G];if(!Z||Z.length===0)return null;let I=Z.filter(Boolean);if(I.length===0)return null;return[G,I]}).filter((G)=>G!==null)}catch(Q){return e(Q instanceof Error?Q:Error("Failed to get release notes")),[]}}function HjA(A,Q={ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.claude.com/s/claude-code",VERSION:"2.0.57",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues"}.VERSION){if(A!==Q||!wQA())_W0().catch((Z)=>e(Z instanceof Error?Z:Error("Failed to fetch changelog")));let B=XT3(Q,A);return{hasReleaseNotes:B.length>0,releaseNotes:B}}var Za,JT3=5,t89="https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md",WT3="https://raw.githubusercontent.com/anthropics/claude-code/refs/heads/main/CHANGELOG.md";var gXA=L(()=>{u1();w3();jQ();S0();Za=GA(WE(),1)});function Q69(A){if(A>=70)return"horizontal";return"compact"}function B69(A,Q,B){if(Q==="horizontal"){let Z=B,I=yW0+XI1+WI1+Z,Y=A-I,J=Math.max(30,Y),W=Math.min(Z+J+WI1+XI1,A-yW0);if(W<Z+J+WI1+XI1)J=W-Z-WI1-XI1;return{leftWidth:Z,rightWidth:J,totalWidth:W}}let G=Math.min(A-yW0,A69+20);return{leftWidth:G,rightWidth:G,totalWidth:G}}function G69(A,Q,B){let G=Math.max(A.length,Q.length,B.length,20);return Math.min(G+4,A69)}function VI1(A){if(!A||A.length>FT3)return"Welcome back!";return`欢迎使用${A}!`}function EjA(A,Q){if(A.length<=Q)return A;let B="/",G="…",Z=A.split(B),I=Z[0]||"",Y=Z[Z.length-1]||"";if(Z.length===1)return A.substring(0,Q-G.length)+G;if(I===""&&G.length+B.length+Y.length>=Q)return`${B}${Y.substring(0,Q-G.length-B.length)}${G}`;if(I!==""&&G.length*2+B.length+Y.length>=Q)return`${G}${B}${Y.substring(0,Q-G.length*2-B.length)}${G}`;if(Z.length===2)return`${I.substring(0,Q-G.length-B.length-Y.length)}${G}${B}${Y}`;let J=Q-I.length-Y.length-G.length-2*B.length;if(J<=0)return`${I.substring(0,Math.max(0,Q-Y.length-G.length-2*B.length))}${B}${G}${B}${Y}`;let W=[];for(let X=Z.length-2;X>0;X--){let F=Z[X];if(F&&F.length+B.length<=J)W.unshift(F),J-=F.length+B.length;else break}if(W.length===0)return`${I}${B}${G}${B}${Y}`;return`${I}${B}${G}${B}${W.join(B)}${B}${Y}`}async function Z69(){if(FI1)return FI1;let A=G0();return FI1=Qx(10).then((Q)=>{return CjA=Q.filter((B)=>{if(B.isSidechain)return!1;if(B.leafUuid===A)return!1;if(B.summary?.includes("I apologize"))return!1;let G=B.summary&&B.summary!=="No prompt",Z=B.firstPrompt&&B.firstPrompt!=="No prompt";return G||Z}).slice(0,3),CjA}).catch(()=>{return CjA=[],CjA}),FI1}function I69(){return CjA}function KI1(){let A={ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.claude.com/s/claude-code",VERSION:"2.0.57",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues"}.VERSION,Q=Q5(H0()),B=S3(),G=aRB(B),Z=AB()?oy1():"智能软件星工厂";return{version:A,cwd:Q,modelDisplayName:G,billingType:Z}}function Y69(A,Q,B){if(A.length+3+Q.length>B)return{shouldSplit:!0,truncatedModel:B7(A,B),truncatedBilling:B7(Q,B)};return{shouldSplit:!1,truncatedModel:B7(A,Math.max(B-Q.length-3,10)),truncatedBilling:Q}}function J69(A){let Q=wQA();if(!Q)return[];let B=JI1(Q),G=[],Z=Object.keys(B).sort((I,Y)=>e89.gt(I,Y,{loose:!0})?-1:1).slice(0,3);for(let I of Z){let Y=B[I];if(Y)G.push(...Y)}return G.slice(0,A)}var e89,A69=50,FT3=20,yW0=4,WI1=1,XI1=2,CjA,FI1=null;var DI1=L(()=>{gXA();GG();S0();R2();M9();hB();s2();e89=GA(WE(),1);CjA=[]});function xW0(){if(m0.terminal==="Apple_Terminal")return J5.createElement(VT3,null);return J5.createElement(j,{flexDirection:"column"},J5.createElement($,null,J5.createElement($,{color:"clawd_body"}," ▐"),J5.createElement($,{color:"clawd_body",backgroundColor:"clawd_background"},"▛███▜"),J5.createElement($,{color:"clawd_body"},"▌")),J5.createElement($,null,J5.createElement($,{color:"clawd_body"},"▝▜"),J5.createElement($,{color:"clawd_body",backgroundColor:"clawd_background"},"█████"),J5.createElement($,{color:"clawd_body"},"▛▘")),J5.createElement($,{color:"clawd_body"}," ","▘▘ ▝▝"," "))}function VT3(){return J5.createElement(j,{flexDirection:"column",alignItems:"center"},J5.createElement($,null,J5.createElement($,{color:"clawd_body"},"▗"),J5.createElement($,{color:"clawd_background",backgroundColor:"clawd_body"}," ","▗"," ","▖"," "),J5.createElement($,{color:"clawd_body"},"▖")),J5.createElement($,{backgroundColor:"clawd_body"}," ".repeat(7)),J5.createElement($,{color:"clawd_body"},"▘▘ ▝▝"))}var J5;var W69=L(()=>{hA();f5();J5=GA(VA(),1)});function X69(A){let{title:Q,lines:B,footer:G,emptyMessage:Z,customContent:I}=A,Y=Q.length;if(I!==void 0)Y=Math.max(Y,I.width);else if(B.length===0&&Z)Y=Math.max(Y,Z.length);else{let W=Math.max(0,...B.map((X)=>X.timestamp?X.timestamp.length:0));for(let X of B){let F=W>0?W:0,V=X.text.length+(F>0?F+2:0);Y=Math.max(Y,V)}}if(G)Y=Math.max(Y,G.length);return Y}function F69({config:A,actualWidth:Q}){let{title:B,lines:G,footer:Z,emptyMessage:I,customContent:Y}=A,J=" ",W=Math.max(0,...G.map((X)=>X.timestamp?X.timestamp.length:0));return l7.createElement(j,{flexDirection:"column",width:Q},l7.createElement($,{bold:!0,color:"claude"},B),Y?l7.createElement(l7.Fragment,null,Y.content,Z&&l7.createElement($,{dimColor:!0,italic:!0},B7(Z,Q))):G.length===0&&I?l7.createElement($,{dimColor:!0},B7(I,Q)):l7.createElement(l7.Fragment,null,G.map((X,F)=>{let V=Math.max(10,Q-(W>0?W+2:0));return l7.createElement($,{key:F},W>0&&l7.createElement(l7.Fragment,null,l7.createElement($,{dimColor:!0},(X.timestamp||"").padEnd(W))," "),l7.createElement($,null,B7(X.text,V)))}),Z&&l7.createElement($,{dimColor:!0,italic:!0},B7(Z,Q))))}var l7;var V69=L(()=>{hA();l7=GA(VA(),1)});function K69({feeds:A,maxWidth:Q}){let B=A.map((I)=>X69(I)),G=Math.max(...B),Z=Math.min(G,Q);return lP.createElement(j,{flexDirection:"column"},A.map((I,Y)=>lP.createElement(lP.Fragment,{key:Y},lP.createElement(F69,{config:I,actualWidth:Z}),Y<A.length-1&&lP.createElement(J3,{dividerColor:"claude"}))))}var lP;var D69=L(()=>{hA();V69();eV();lP=GA(VA(),1)});import{homedir as KT3}from"os";function HI1(A){let Q=A.map((B)=>{let G=Xp(B.modified);return{text:(B.summary&&B.summary!=="No prompt"?B.summary:B.firstPrompt)||"",timestamp:G}});return{title:"Recent activity",lines:Q,footer:Q.length>0?"/resume for more":void 0,emptyMessage:"No recent activity"}}function H69(A){let Q=A.map((G)=>{return{text:G}}),B="Check the AICO changelog for updates";return{title:"What's new",lines:Q,footer:Q.length>0?"/release-notes for more":void 0,emptyMessage:"Check the AICO changelog for updates"}}function C69(A){let B=A.filter(({isEnabled:Z})=>Z).sort((Z,I)=>Number(Z.isComplete)-Number(I.isComplete)).map(({text:Z,isComplete:I})=>{return{text:`${I?`${V1.tick} `:""}${Z}`}}),G=H0()===KT3()?"Note: You have launched claude in your home directory. For the best experience, launch it in a project directory instead.":void 0;if(G)B.push({text:G});return{title:"Tips for getting started",lines:B}}function E69(){return{title:"3 guest passes",lines:[],customContent:{content:SO.createElement(SO.Fragment,null,SO.createElement(j,{marginY:1},SO.createElement($,{color:"claude"},"[✻] [✻] [✻]")),SO.createElement($,{dimColor:!0},"Share AICO with friends")),width:30},footer:"/passes"}}var SO;var z69=L(()=>{n2();R2();hA();SO=GA(VA(),1)});async function DT3(A="claude_code_guest_pass"){let{accessToken:Q,orgUUID:B}=await J0A(),G={...BC(Q),"x-organization-uuid":B},Z=`${o9().BASE_API_URL}/api/oauth/organizations/${B}/referral/eligibility`;return(await GQ.get(Z,{headers:G,params:{campaign:A}})).data}async function w69(A="claude_code_guest_pass"){let{accessToken:Q,orgUUID:B}=await J0A(),G={...BC(Q),"x-organization-uuid":B},Z=`${o9().BASE_API_URL}/api/oauth/organizations/${B}/referral/redemptions`;return(await GQ.get(Z,{headers:G,params:{campaign:A}})).data}function q69(){return!!(i6()?.organizationUuid&&AB()&&x4()==="max")}function N69(){if(!q69())return{eligible:!1,needsRefresh:!1,hasCache:!1};let A=i6()?.organizationUuid;if(!A)return{eligible:!1,needsRefresh:!1,hasCache:!1};let B=L1().passesEligibilityCache?.[A];if(!B)return{eligible:!1,needsRefresh:!0,hasCache:!1};let{eligible:G,timestamp:Z}=B,Y=Date.now()-Z>$69;return{eligible:G,needsRefresh:Y,hasCache:!0}}async function U69(){if(zjA)return g("Passes: Reusing in-flight eligibility fetch"),zjA;let A=i6()?.organizationUuid;if(!A)return null;return zjA=(async()=>{try{let Q=await DT3(),B=L1(),G={...B.passesEligibilityCache,[A]:{...Q,timestamp:Date.now()}};return d0({...B,passesEligibilityCache:G}),g(`Passes eligibility cached for org ${A}: ${Q.eligible}`),Q}catch(Q){return g("Failed to fetch and cache passes eligibility"),e(Q),null}finally{zjA=null}})(),zjA}async function UjA(){if(!q69())return null;let A=i6()?.organizationUuid;if(!A)return null;let B=L1().passesEligibilityCache?.[A],G=Date.now();if(!B)return g("Passes: No cache, fetching eligibility"),await U69();if(G-B.timestamp>$69){g("Passes: Cache stale, returning cached data and refreshing in background"),U69();let{timestamp:Y,...J}=B;return J}g("Passes: Using fresh cached eligibility data");let{timestamp:Z,...I}=B;return I}async function L69(){UjA()}var $69=3600000,zjA=null;var $jA=L(()=>{w3();EX();An();jQ();hB();D0();u1()});function HT3(){let A=L1(),{eligible:Q,hasCache:B}=N69();if(!Q||!B)return!1;if((A.passesUpsellSeenCount??0)>=3)return!1;if(A.hasVisitedPasses)return!1;return!0}function CI1(){let[A]=M69.useState(()=>HT3());return A}function EI1(){let A=L1(),Q=(A.passesUpsellSeenCount??0)+1;d0({...A,passesUpsellSeenCount:Q}),BA("tengu_guest_passes_upsell_shown",{seen_count:Q})}function O69(){return Rg.createElement($,{dimColor:!0},Rg.createElement($,{color:"claude"},"[✻]")," ",Rg.createElement($,{color:"claude"},"[✻]")," ",Rg.createElement($,{color:"claude"},"[✻]")," · 3 guest passes at /passes")}var Rg,M69;var vW0=L(()=>{hA();jQ();$jA();w0();Rg=GA(VA(),1),M69=GA(VA(),1)});function CT3(){if(m0.terminal==="Apple_Terminal")return v2.createElement(j,{flexDirection:"column",alignItems:"center"},v2.createElement($,null,v2.createElement($,{color:"clawd_body"},"▗"),v2.createElement($,{color:"clawd_background",backgroundColor:"clawd_body"}," ","▗"," ","▖"," "),v2.createElement($,{color:"clawd_body"},"▖")),v2.createElement($,{backgroundColor:"clawd_body"}," ".repeat(7)),v2.createElement($,{color:"clawd_body"},"▘▘ ▝▝"));return v2.createElement(j,{flexDirection:"column"},v2.createElement($,null,v2.createElement($,{color:"clawd_body"}," ▐"),v2.createElement($,{color:"clawd_body",backgroundColor:"clawd_background"},"▛███▜"),v2.createElement($,{color:"clawd_body"},"▌")),v2.createElement($,null,v2.createElement($,{color:"clawd_body"},"▝▜"),v2.createElement($,{color:"clawd_body",backgroundColor:"clawd_background"},"█████"),v2.createElement($,{color:"clawd_body"},"▛▘")),v2.createElement($,{color:"clawd_body"}," ","▘▘ ▝▝"," "))}function T69(){let{columns:A}=YB(),{version:Q,cwd:B,modelDisplayName:G,billingType:Z}=KI1(),I=CI1();R69.useEffect(()=>{if(I)EI1()},[I]);let Y=Math.max(A-15,20),W=B7(Q,Math.max(Y-"AICO v".length,6)),{shouldSplit:X,truncatedModel:F,truncatedBilling:V}=Y69(G,Z,Y),K=EjA(B,Y);return v2.createElement(j,{flexDirection:"row",gap:2,alignItems:"center"},v2.createElement(CT3,null),v2.createElement(j,{flexDirection:"column"},v2.createElement($,null,v2.createElement($,{bold:!0},"AICO")," ",v2.createElement($,{dimColor:!0},"v",W)),X?v2.createElement(v2.Fragment,null,v2.createElement($,{dimColor:!0},F),v2.createElement($,{dimColor:!0},V)):v2.createElement($,{dimColor:!0},F," · ",V),v2.createElement($,{dimColor:!0},K),I&&v2.createElement(O69,null)))}var v2,R69;var P69=L(()=>{hA();f5();m8();DI1();vW0();v2=GA(VA(),1),R69=GA(VA(),1)});function bW0(){let A=zI1.useMemo(zT3,[]);if(zI1.useEffect(()=>{_69(j69)},[A.tip]),!A.tip)return null;return wjA.createElement(j,{paddingLeft:2,flexDirection:"column"},wjA.createElement($,{...A.color==="warning"?{color:"warning"}:A.color==="error"?{color:"error"}:{dimColor:!0}},A.tip))}function zT3(){return G7A(j69,ET3)}var wjA,zI1,j69="tengu-top-of-feed-tip",ET3;var S69=L(()=>{hA();O9();wjA=GA(VA(),1),zI1=GA(VA(),1);ET3={tip:"",color:"dim"}});function y69({isBeforeFirstMessage:A}){let Q=r89(A),B=I69(),G=L1().oauthAccount?.displayName??"",Z=J69(3),{columns:I}=YB(),Y=_jB(),J=lQ.isSandboxingEnabled(),W=CI1(),X=wg(),F=L1(),V=X.companyAnnouncements,[K]=qjA.useState(()=>V&&V.length>0?F.numStartups===1?V[0]:V[Math.floor(Math.random()*V.length)]:void 0),{hasReleaseNotes:D}=HjA(F.lastReleaseNotesSeen);qjA.useEffect(()=>{let l=L1();if(l.lastReleaseNotesSeen==={ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.claude.com/s/claude-code",VERSION:"2.0.57",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues"}.VERSION)return;if(d0({...l,lastReleaseNotesSeen:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.claude.com/s/claude-code",VERSION:"2.0.57",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues"}.VERSION}),Y)kjB()},[F,Y]),qjA.useEffect(()=>{if(W&&!Y)EI1()},[W,Y]);let{version:H,cwd:C,modelDisplayName:E,billingType:z}=KI1(),w=B7(E,k69-20);if(!D&&!Y&&!V0(process.env.CLAUDE_CODE_FORCE_FULL_LOGO))return NQ.createElement(NQ.Fragment,null,NQ.createElement(j,null),NQ.createElement(T69,null),tBA()&&NQ.createElement(j,{paddingLeft:2,flexDirection:"column"},NQ.createElement($,{color:"warning"},"Debug mode enabled"),NQ.createElement($,{dimColor:!0},"Logging to: ",Sj()?"stderr":WVA())),NQ.createElement(bW0,null),K&&NQ.createElement(j,{paddingLeft:2,flexDirection:"column"},NQ.createElement($,null,K)),!1,!1);let N=Q69(I),q=L1().theme,R=` ${tQ("claude",q)("AICO")} ${tQ("inactive",q)(`v${H}`)} `,P=tQ("claude",q)(" AICO ");if(N==="compact"){let k=VI1(G);if(k.length>I-4)k=VI1(null);let d=EjA(C,I-4);return NQ.createElement(NQ.Fragment,null,NQ.createElement(j,{flexDirection:"column",borderStyle:"round",borderColor:"claude",borderText:{content:P,position:"top",align:"start",offset:1},paddingX:1,paddingY:1,alignItems:"center",width:I},NQ.createElement($,{bold:!0},k),NQ.createElement(j,{marginY:1},NQ.createElement(j,{height:5,flexDirection:"column",justifyContent:"flex-end"},NQ.createElement(j,{marginBottom:Q},NQ.createElement(xW0,null)))),NQ.createElement($,{dimColor:!0},w),NQ.createElement($,{dimColor:!0},z),NQ.createElement($,{dimColor:!0},d)),J&&NQ.createElement(j,{marginTop:1,flexDirection:"column"},NQ.createElement($,{color:"warning"},"Your bash commands will be sandboxed. Disable with /sandbox.")))}let y=VI1(G),v=`${w} · ${z}`,x=EjA(C,k69),p=G69(y,x,v),{leftWidth:u,rightWidth:o}=B69(I,N,p);return NQ.createElement(NQ.Fragment,null,NQ.createElement(j,null),NQ.createElement(j,{flexDirection:"column",borderStyle:"round",borderColor:"claude",borderText:{content:R,position:"top",align:"start",offset:3}},NQ.createElement(j,{flexDirection:N==="horizontal"?"row":"column",paddingX:1,gap:1},NQ.createElement(j,{flexDirection:"column",width:u,justifyContent:"space-between",alignItems:"center",minHeight:9},NQ.createElement(j,{marginTop:1},NQ.createElement($,{bold:!0},y)),NQ.createElement(j,{height:5,flexDirection:"column",justifyContent:"flex-end"},NQ.createElement(j,{marginBottom:Q},NQ.createElement(xW0,null))),NQ.createElement(j,{flexDirection:"column",alignItems:"center"},NQ.createElement($,{dimColor:!0},v),NQ.createElement($,{dimColor:!0},x))),N==="horizontal"&&NQ.createElement(J3,{orientation:"vertical",dividerColor:"claude"}),N==="horizontal"&&NQ.createElement(K69,{feeds:Y?[C69(Od1()),HI1(B)]:W?[HI1(B),E69()]:[HI1(B),H69(Z)],maxWidth:o}))),tBA()&&NQ.createElement(j,{paddingLeft:2,flexDirection:"column"},NQ.createElement($,{color:"warning"},"Debug mode enabled"),NQ.createElement($,{dimColor:!0},"Logging to: ",Sj()?"stderr":WVA())),NQ.createElement(bW0,null),K&&NQ.createElement(j,{paddingLeft:2,flexDirection:"column"},NQ.createElement($,null,K)),J&&NQ.createElement(j,{paddingLeft:2,flexDirection:"column"},NQ.createElement($,{color:"warning"},"Your bash commands will be sandboxed. Disable with /sandbox.")),!1,!1)}var NQ,qjA,k69=50;var x69=L(()=>{hA();m8();o89();DI1();M9();W69();D69();z69();eV();jQ();gPA();D0();r$A();P69();gXA();nRA();hQ();Qe();S69();MJ();vW0();NQ=GA(VA(),1),qjA=GA(VA(),1)});function $T3(A,Q,B,G,Z,I,Y){if(I==="transcript")return!0;switch(A.type){case"attachment":case"user":case"assistant":{let J=MjA(A);if(!J)return!0;if(Q.has(J))return!1;if(G.has(J))return!1;if(g69(J,"PostToolUse",Y))return!1;return l89(Z,B)}case"system":return A.subtype!=="api_error";case"grouped_tool_use":return A.messages.every((W)=>{let X=W.message.content[0];return X?.type==="tool_use"&&B.has(X.id)})}}var t8,Tg,NjA=10,UT3=({messages:A,normalizedMessageHistory:Q,tools:B,verbose:G,toolJSX:Z,toolUseConfirmQueue:I,inProgressToolUseIDs:Y,isMessageSelectorVisible:J,conversationId:W,screen:X,screenToggleId:F,streamingToolUses:V,showAllInTranscript:K=!1,agentDefinitions:D,onOpenRateLimitOptions:H})=>{let{columns:C}=YB(),E=Tg.useContext(ec),z=Tg.useMemo(()=>[...Q,...lJ(A).filter(LjA)],[A,Q]),w=Tg.useMemo(()=>new Set(Object.keys($I1(z))),[z]),N=Tg.useMemo(()=>u69(z),[z]),q=Tg.useMemo(()=>V.filter((p)=>{if(Y.has(p.contentBlock.id))return!1;if(z.some((u)=>u.type==="assistant"&&u.message.content[0].type==="tool_use"&&u.message.content[0].id===p.contentBlock.id))return!1;return!0}),[V,Y,z]),R=Tg.useMemo(()=>q.flatMap((p)=>lJ([xD({content:[p.contentBlock]})])),[q]),P=Tg.useMemo(()=>{let p=X==="transcript",u=p&&!K,o=G?z:gk(z),l=v69(o.filter((IA)=>IA.type!=="progress").filter((IA)=>m69(IA,p)),R),k=u?l.slice(-NjA):l,d=u&&l.length>NjA;return[{type:"static",jsx:t8.createElement(j,{flexDirection:"column",gap:1,key:`logo-${W}-${F}`},t8.createElement(y69,{isBeforeFirstMessage:!1}),t8.createElement(d89,{agentDefinitions:D}))},...d?[{type:"static",jsx:t8.createElement(J3,{key:`truncation-indicator-${W}-${F}`,dividerChar:"─",title:`Ctrl+E to show ${oA.bold(z.length-NjA)} previous messages`,width:C})}]:[],...p&&K&&z.length>NjA?[{type:"static",jsx:t8.createElement(J3,{key:`hide-indicator-${W}-${F}`,dividerChar:"─",title:`Ctrl+E to hide ${oA.bold(z.length-NjA)} previous messages`,width:C})}]:[],...(()=>{let{messages:IA}=g89(k,B,G),HA=b69(z,k),wA=new Set(V.map((SA)=>SA.contentBlock.id)),KA=(!Z||!!Z.shouldContinueAnimation)&&!I.length&&!J;return IA.map((SA)=>{let sA=SA.type==="grouped_tool_use",NA=sA?SA.displayMessage:SA,qA=sA?[]:h69(SA,HA),DA=sA?new Set:f69(SA,HA),yA=$T3(SA,wA,w,Y,DA,X,HA)?"static":"transient",rA=!1;if(KA)if(sA)rA=SA.messages.some((K1)=>{let WA=K1.message.content[0];return WA?.type==="tool_use"&&Y.has(WA.id)});else{let K1=MjA(SA);rA=!K1||Y.has(K1)}return{type:yA,jsx:t8.createElement(j,{key:`${SA.uuid}-${W}-${F}`,width:C,flexDirection:"row",flexWrap:"nowrap",alignItems:"flex-start",justifyContent:"space-between",gap:1},t8.createElement(Mg,{message:SA,messages:z,addMargin:!0,tools:B,verbose:G,erroredToolUseIDs:N,inProgressToolUseIDs:Y,progressMessagesForMessage:qA,shouldAnimate:rA,shouldShowDot:!0,resolvedToolUseIDs:w,isTranscriptMode:p,isStatic:yA==="static",onOpenRateLimitOptions:H}),t8.createElement(i89,{message:NA,isTranscriptMode:p}),t8.createElement(a89,{message:NA,isTranscriptMode:p}))}})})()]},[X,K,G,z,R,W,F,D,C,V,w,B,N,Y,Z,I.length,J,H]),y=Y.size>0;if(E)return t8.createElement(t8.Fragment,null,P.map((p)=>p.jsx),y?t8.createElement(KjA,{state:"indeterminate"}):t8.createElement(KjA,{state:"completed"}));let v=P.filter((p)=>p.type==="static"),x=P.filter((p)=>p.type==="transient");return t8.createElement(t8.Fragment,null,t8.createElement(Ap,{key:`static-messages-${W}-${F}`,items:v},(p)=>p.jsx),x.map((p)=>p.jsx),y?t8.createElement(KjA,{state:"indeterminate"}):t8.createElement(KjA,{state:"completed"}))},uXA;var UI1=L(()=>{hA();hA();h89();rUA();nQ();c89();QjA();m8();eV();J9();n89();s89();x69();t8=GA(VA(),1),Tg=GA(VA(),1),uXA=t8.memo(UT3,(A,Q)=>{let B=Object.keys(A);for(let G of B){if(G==="onOpenRateLimitOptions")continue;if(A[G]!==Q[G]){if(G==="streamingToolUses"){let Z=A.streamingToolUses,I=Q.streamingToolUses;if(Z.length===I.length&&Z.every((Y,J)=>Y.contentBlock===I[J]?.contentBlock))continue}return!1}}return!0})});function c69(A,Q,B,G,Z){let I=d69.useContext(ec);h1(async(Y,J)=>{if(J.ctrl&&Y==="o"){if(Q((W)=>W==="transcript"?"prompt":"transcript"),B((W)=>W+1),G(!1),!I)await Z()}if(J.ctrl&&Y==="e"&&A==="transcript"){if(G((W)=>!W),B((W)=>W+1),!I)await Z()}if(J.ctrl&&Y==="c"&&A==="transcript"||J.escape&&A==="transcript"){if(Q("prompt"),B((W)=>W+1),G(!1),!I)await Z()}})}var d69;var p69=L(()=>{hA();rUA();d69=GA(VA(),1)});function l69(A,Q){let B=OjA.useRef(!1),G=OjA.useRef(null);OjA.useEffect(()=>{let Z=cU(A);if(G.current!==Z)B.current=!1,G.current=Z||null,Q({lineCount:0,lineStart:void 0,text:void 0,filePath:void 0});if(B.current||!Z)return;let I=(Y)=>{if(Y.selection?.start&&Y.selection?.end){let{start:J,end:W}=Y.selection,X=W.line-J.line+1;if(W.character===0)X--;let F={lineCount:X,lineStart:J.line,text:Y.text,filePath:Y.filePath};Q(F)}};Z.client.setNotificationHandler(wT3,(Y)=>{if(G.current!==Z)return;try{let J=Y.params;if(J.selection&&J.selection.start&&J.selection.end)I(J);else if(J.text!==void 0)I({selection:null,text:J.text,filePath:J.filePath})}catch(J){e(J)}}),B.current=!0},[A,Q])}var OjA,wT3;var i69=L(()=>{h2();yJ();u1();OjA=GA(VA(),1),wT3=_.object({method:_.literal("selection_changed"),params:_.object({selection:_.object({start:_.object({line:_.number(),character:_.number()}),end:_.object({line:_.number(),character:_.number()})}).nullable().optional(),text:_.string().optional(),filePath:_.string().optional()})})});function qT3(){return ZI("cache_warming","config",{enabled:!1,idleThresholdMs:240000,subsequentWarmupIntervalMs:300000,maxRequests:1})}function n69(A,Q){let B=wI1.useRef(null);wI1.useEffect(()=>{let G=qT3();if(!G.enabled)return;if(A||Q===0){if(B.current)B.current.abort(),B.current=null;return}let Z=0,I=null,Y=async()=>{let W=GkA();if(!W){g("Cache warming: No previous API request to replay");return}if(B.current)B.current.abort();B.current=s9();try{g(`Cache warming: Sending request ${Z+1}/${G.maxRequests}`);let X={...W,messages:[...W.messages,{role:"user",content:'Reply with just "OK"'}],max_tokens:10},V=(await Vq({maxRetries:0,model:W.model})).beta.messages.stream(X,{signal:B.current.signal});for await(let H of V)if(B.current?.signal.aborted)break;let D=(await V.finalMessage()).usage;if(g("Cache warming: Request completed"),BA("tengu_cache_warming_request",{warmup_number:Z+1,cache_read_tokens:D.cache_read_input_tokens??0,cache_creation_tokens:D.cache_creation_input_tokens??0,input_tokens:D.input_tokens,output_tokens:D.output_tokens}),Z++,Z<G.maxRequests)J(G.subsequentWarmupIntervalMs)}catch(X){if(X instanceof Error)e(X)}finally{B.current=null}},J=(W)=>{I=setTimeout(()=>{Y()},W)};return J(G.idleThresholdMs),()=>{if(I)clearTimeout(I);if(B.current)B.current.abort(),B.current=null}},[A,Q])}var wI1;var a69=L(()=>{EIA();S0();D0();UZ();O9();w0();u1();wI1=GA(VA(),1)});function r69({autoConnectIdeFlag:A,ideToInstallExtension:Q,setDynamicMcpConfig:B,setShowIdeOnboarding:G,setIDEInstallationState:Z}){s69.useEffect(()=>{function I(Y){if(!Y)return;if(!((L1().autoConnectIde||A||_F()||Q||V0(process.env.CLAUDE_CODE_AUTO_CONNECT_IDE))&&!Nj(process.env.CLAUDE_CODE_AUTO_CONNECT_IDE)))return;B((X)=>{if(X?.ide)return X;return{...X,ide:{type:Y.url.startsWith("ws:")?"ws-ide":"sse-ide",url:Y.url,ideName:Y.name,authToken:Y.authToken,ideRunningInWindows:Y.ideRunningInWindows,scope:"dynamic"}}})}$62(I,Q,()=>G(!0),(Y)=>Z(Y))},[A,Q,B,G,Z])}var s69;var o69=L(()=>{jQ();yJ();hQ();s69=GA(VA(),1)});var RjA=L(()=>{I6();R2();o0();ED();D0();jQ()});var fW0;var t69=L(()=>{hA();T5();RjA();zI();m_();I6();w0();Di();fW0=GA(VA(),1)});var DkZ;var e69=L(()=>{t69();_J();DkZ=GA(VA(),1)});function MT3(){return Zt(LT3)??"Goodbye!"}var NT3,LT3,OT3,qI1;var hW0=L(()=>{oiA();_J();RjA();e69();NT3=GA(VA(),1),LT3=["Goodbye!","See ya!","Bye!","Catch you later!"];OT3={type:"local-jsx",name:"exit",aliases:["quit"],description:"Exit the REPL",isEnabled:()=>!0,isHidden:!1,async call(A){return A(MT3()),await S6(0,"prompt_input_exit"),null},userFacingName(){return"exit"}},qI1=OT3});function A59(){let[A,Q]=iP.useState(_H.getInstance().getStatus());if(iP.useEffect(()=>{return _H.getInstance().subscribe(Q)},[]),!A.isAuthenticating&&!A.error&&A.output.length===0)return null;if(!A.isAuthenticating&&!A.error)return null;return iP.default.createElement(j,{flexDirection:"column",borderStyle:"round",borderColor:"permission",paddingX:1,marginY:1},iP.default.createElement($,{bold:!0,color:"permission"},"AWS Authentication"),A.output.length>0&&iP.default.createElement(j,{flexDirection:"column",marginTop:1},A.output.slice(-5).map((B,G)=>iP.default.createElement($,{key:G,dimColor:!0},B))),A.error&&iP.default.createElement(j,{marginTop:1},iP.default.createElement($,{color:"error"},A.error)))}var iP;var Q59=L(()=>{hA();iP=GA(VA(),1)});import{randomUUID as B59}from"crypto";function G59(A,Q,B){let G=mXA(A)?.message?.id||"unknown",[Z,I]=NC.useState("closed"),[Y,J]=_Q(),W=h81("tengu_feedback_survey_config",RT3),X=NC.useRef(B59()),F=NC.useRef(Date.now()),V=NC.useRef(B),K=NC.useCallback((N,q)=>{J((R)=>({...R,feedbackSurvey:{timeLastShown:N,submitCountAtLastAppearance:q}}))},[J]),D=NC.useCallback(()=>{if(Z!=="closed")return;I("open"),K(Date.now(),B),X.current=B59(),BA("tengu_feedback_survey_event",{event_type:"appeared",appearance_id:X.current,last_assistant_message_id:G})},[Z,G,B,K]),H=NC.useCallback(()=>{I("thanks"),setTimeout(()=>I("closed"),W.hideThanksAfterMs)},[W.hideThanksAfterMs]),C=S3(),E=NC.useMemo(()=>{if(W.onForModels.length===0)return!1;if(W.onForModels.includes("*"))return!0;return W.onForModels.includes(C)},[W.onForModels,C]),z=NC.useMemo(()=>{if(Z!=="closed")return!1;if(Q)return!1;if(process.env.CLAUDE_FORCE_DISPLAY_SURVEY&&!Y.feedbackSurvey.timeLastShown)return!0;if(!E)return!1;if(V0(process.env.CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY))return!1;if(hX())return!1;if(Y.feedbackSurvey.timeLastShown){if(Y.feedbackSurvey.submitCountAtLastAppearance!==null&&B<Y.feedbackSurvey.submitCountAtLastAppearance+W.minUserTurnsBetweenFeedback)return!1}else{if(Date.now()-F.current<W.minTimeBeforeFeedbackMs)return!1;if(B<V.current+W.minUserTurnsBeforeFeedback)return!1}if(Math.random()>W.probability)return!1;let N=L1().feedbackSurveyState;if(N?.lastShownTime){if(Date.now()-N.lastShownTime<W.minTimeBetweenGlobalFeedbackMs)return!1}return!0},[Z,Q,E,Y.feedbackSurvey.timeLastShown,Y.feedbackSurvey.submitCountAtLastAppearance,B,W.minTimeBetweenGlobalFeedbackMs,W.minUserTurnsBetweenFeedback,W.minTimeBeforeFeedbackMs,W.minUserTurnsBeforeFeedback,W.probability]);NC.useEffect(()=>{if(z)D()},[z,D]);let w=NC.useCallback((N)=>{if(K(Date.now(),B),N==="dismissed")I("closed");else H();BA("tengu_feedback_survey_event",{event_type:"responded",appearance_id:X.current,response:N,last_assistant_message_id:G})},[G,H,K,B]);return{state:Z,handleSelect:w}}var NC,RT3;var Z59=L(()=>{O9();w0();St();jQ();s2();hQ();H9();nQ();NC=GA(VA(),1),RT3={minTimeBeforeFeedbackMs:600000,minTimeBetweenGlobalFeedbackMs:1e8,minUserTurnsBeforeFeedback:5,minUserTurnsBetweenFeedback:10,hideThanksAfterMs:3000,onForModels:["*"],probability:0.005}});function I59({onSelect:A,inputValue:Q,setInputValue:B}){let G=zK.useRef(Q);return zK.useEffect(()=>{if(Q!==G.current){let Z=Q.slice(-1);if(gW0(Z))B(Q.slice(0,-1)),A(PT3[Z])}},[Q,A,B]),zK.default.createElement(j,{flexDirection:"column",marginTop:1},zK.default.createElement(j,null,zK.default.createElement($,null,oA.cyan("● ")),zK.default.createElement($,{bold:!0},"How is Claude doing this session? (optional)")),zK.default.createElement(j,{marginLeft:2},zK.default.createElement(j,{width:10},zK.default.createElement($,null,oA.cyan("1"),": Bad")),zK.default.createElement(j,{width:10},zK.default.createElement($,null,oA.cyan("2"),": Fine")),zK.default.createElement(j,{width:10},zK.default.createElement($,null,oA.cyan("3"),": Good")),zK.default.createElement(j,null,zK.default.createElement($,null,oA.cyan("0"),": Dismiss"))))}var zK,TT3,PT3,gW0=(A)=>TT3.includes(A);var Y59=L(()=>{J9();hA();zK=GA(VA(),1),TT3=["0","1","2","3"],PT3={"0":"dismissed","1":"bad","2":"fine","3":"good"}});function J59({state:A,handleSelect:Q,inputValue:B,setInputValue:G}){if(A==="closed")return null;if(A==="thanks")return TjA.default.createElement(j,{marginTop:1,flexDirection:"column"},TjA.default.createElement($,{color:"success"},"✓ Thanks for helping make Claude better!"),TjA.default.createElement($,{dimColor:!0},"Use /feedback to share detailed feedback or file a bug."));if(B&&!gW0(B))return null;return TjA.default.createElement(I59,{onSelect:Q,inputValue:B,setInputValue:G})}var TjA;var W59=L(()=>{hA();Y59();TjA=GA(VA(),1)});function F59(){let{addNotification:A}=_Z();X59.useEffect(()=>{yy().then((Q)=>{Q.forEach((B,G)=>{let Z="low";if(B.type==="error"||B.userActionRequired)Z="high";else if(B.type==="path"||B.type==="alias")Z="medium";A({key:`install-message-${G}-${B.type}`,text:B.message,priority:Z,color:B.type==="error"?"error":"warning"})})})},[A])}var X59;var V59=L(()=>{UU();xP();X59=GA(VA(),1)});function K59(){return L1().tipsHistory||{}}function jT3(A){let Q=L1();d0({...Q,tipsHistory:A})}function D59(A){let Q=K59(),B=L1().numStartups;Q[A]=B,jT3(Q)}function ST3(A){return K59()[A]||0}function NI1(A){let Q=ST3(A);if(Q===0)return 1/0;return L1().numStartups-Q}var uW0=L(()=>{jQ()});import{dirname as kT3,join as Bx}from"path";function MI1(){return Bx(PQ(),"plugins",yT3)}function dW0(){return Bx(PQ(),"plugins",xT3)}function PjA(){let A=OA(),Q=MI1();if(!A.existsSync(Q))return null;let B=A.readFileSync(Q,{encoding:"utf-8"}),G=JSON.parse(B);return{version:typeof G?.version==="number"?G.version:1,data:G}}function vT3(){let A=OA(),Q=dW0();if(!A.existsSync(Q))return null;let B=A.readFileSync(Q,{encoding:"utf-8"}),G=JSON.parse(B);return{version:typeof G?.version==="number"?G.version:2,data:G}}function bT3(A){let Q={};for(let[B,G]of Object.entries(A.plugins)){let Z=G[0];if(Z)Q[B]={version:Z.version||"unknown",installedAt:Z.installedAt||new Date().toISOString(),lastUpdated:Z.lastUpdated,installPath:Z.installPath,gitCommitSha:Z.gitCommitSha,isLocal:Z.isLocal}}return Q}function dXA(){if(Pg!==null)return Pg.plugins;let A=MI1();try{let Q=PjA();if(!Q)return g(`installed_plugins.json doesn't exist yet at ${A}, returning empty object`),Pg={version:1,plugins:{}},Pg.plugins;if(Q.version===2){let G=RlA.parse(Q.data),Z=bT3(G);return Pg={version:1,plugins:Z},g(`Loaded ${Object.keys(Z).length} installed plugins from V2 file at ${A}`),Z}let B=QzA.parse(Q.data);return Pg=B,g(`Loaded ${Object.keys(B.plugins).length} installed plugins from ${A} (schema version ${B.version})`),B.plugins}catch(Q){let B=Q instanceof Error?Q.message:String(Q);return g(`Failed to load installed_plugins.json: ${B}. Starting with empty state.`,{level:"error"}),e(Q instanceof Error?Q:Error(`Failed to load installed_plugins.json: ${B}`)),Pg={version:1,plugins:{}},Pg.plugins}}function OI1(A){let Q=OA(),B=MI1();try{let G=Bx(PQ(),"plugins");if(!Q.existsSync(G))Q.mkdirSync(G);let Z={version:1,plugins:A},I=JSON.stringify(Z,null,2);Q.writeFileSync(B,I,{encoding:"utf-8",flush:!0}),Pg=Z,g(`Saved ${Object.keys(A).length} installed plugins to ${B} (schema version ${qQA})`)}catch(G){let Z=G instanceof Error?G.message:String(G);throw e(G instanceof Error?G:Error(`Failed to save installed_plugins.json: ${Z}`)),G}}function cW0(A){let Q={};for(let[B,G]of Object.entries(A.plugins)){let Z=klA(B,G.version);Q[B]=[{scope:"user",installPath:Z,version:G.version,installedAt:G.installedAt,lastUpdated:G.lastUpdated,gitCommitSha:G.gitCommitSha,isLocal:G.isLocal}]}return{version:2,plugins:Q}}function fT3(A){return cW0(A)}function NQA(){if(M$!==null)return M$;if(j8("tengu_enable_versioned_plugins"))return hT3();return gT3()}function hT3(){let A=dW0();try{let Q=vT3();if(Q){let G=RlA.parse(Q.data);return M$=G,g(`Loaded ${Object.keys(G.plugins).length} installed plugins from V2 file at ${A}`),G}let B=PjA();if(B){let G=QzA.parse(B.data),Z=cW0(G);return C59(Z),g(`Migrated ${Object.keys(G.plugins).length} plugins from V1 to V2 file`),Z}return g("Neither V1 nor V2 installed_plugins file exists, returning empty V2 object"),M$={version:2,plugins:{}},M$}catch(Q){let B=Q instanceof Error?Q.message:String(Q);return g(`Failed to load installed_plugins_v2.json: ${B}. Starting with empty state.`,{level:"error"}),e(Q instanceof Error?Q:Error(`Failed to load installed_plugins_v2.json: ${B}`)),M$={version:2,plugins:{}},M$}}function gT3(){let A=MI1();try{let Q=PjA();if(!Q)return g(`installed_plugins.json doesn't exist yet at ${A}, returning empty V2 object`),M$={version:2,plugins:{}},M$;let B=QzA.parse(Q.data),G=fT3(B);return M$=G,g(`Loaded ${Object.keys(B.plugins).length} plugins from V1 file and wrapped as V2`),G}catch(Q){let B=Q instanceof Error?Q.message:String(Q);return g(`Failed to load installed_plugins.json (V2): ${B}. Starting with empty state.`,{level:"error"}),e(Q instanceof Error?Q:Error(`Failed to load installed_plugins.json (V2): ${B}`)),M$={version:2,plugins:{}},M$}}function C59(A){let Q=OA(),B=dW0();try{let G=Bx(PQ(),"plugins");if(!Q.existsSync(G))Q.mkdirSync(G);let Z=JSON.stringify(A,null,2);Q.writeFileSync(B,Z,{encoding:"utf-8",flush:!0}),M$=A,g(`Saved ${Object.keys(A.plugins).length} installed plugins to V2 file at ${B}`)}catch(G){let Z=G instanceof Error?G.message:String(G);throw e(G instanceof Error?G:Error(`Failed to save installed_plugins_v2.json: ${Z}`)),G}}function E59(A){let Q=j8("tengu_enable_versioned_plugins"),B=dT3(A);if(OI1(B),Q)C59(A);M$=A}function uT3(A){let Q=Ec(),[B]=A.split("@");if(!B)return Q;let G=B.replace(/[^a-zA-Z0-9-_]/g,"-");return Bx(Q,G)}function mT3(A){let[Q,B]=A.split("@");if(!Q||!B)return"";let G=Bx(PQ(),"plugins","marketplaces");return Bx(G,B,Q)}function dT3(A){let Q={};for(let[B,G]of Object.entries(A.plugins)){let Z=G[0];if(Z){let I=Z.isLocal?mT3(B):uT3(B);Q[B]={version:Z.version||"unknown",installedAt:Z.installedAt||new Date().toISOString(),lastUpdated:Z.lastUpdated,installPath:I,gitCommitSha:Z.gitCommitSha,isLocal:Z.isLocal}}}return Q}function RI1(A,Q,B){let G=NQA(),Z=G.plugins[A];if(!Z)return;if(G.plugins[A]=Z.filter((I)=>!(I.scope===Q&&I.projectPath===B)),G.plugins[A].length===0)delete G.plugins[A];E59(G),g(`Removed installation for ${A} at scope ${Q}`)}function pW0(){if(mW0===null)mW0=NQA();return mW0}async function z59(){try{await lW0()}catch(A){e(A instanceof Error?A:Error(String(A)))}if(j8("tengu_enable_versioned_plugins")){let A=pW0();g(`Initialized versioned plugins system with ${Object.keys(A.plugins).length} plugins`)}}function cT3(A){return dXA()[A]}function jg(A){return cT3(A)!==void 0}function U59(A,Q){let B=dXA(),G=A in B;B[A]=Q,OI1(B),g(`${G?"Updated":"Added"} installed plugin: ${A}`)}function $59(A){let Q=dXA(),B=Q[A];if(B)delete Q[A],OI1(Q),g(`Removed installed plugin: ${A}`);return B}function TI1(A){let Q=OA();try{if(Q.existsSync(A)){Q.rmSync(A,{recursive:!0,force:!0}),g(`Deleted plugin cache at ${A}`);let B=Ec();if(A.includes("/cache/")&&A.startsWith(B)){let G=kT3(A);if(Q.existsSync(G)&&G!==B&&G.startsWith(B)){if(Q.readdirSync(G).length===0)Q.rmdirSync(G),g(`Deleted empty plugin directory at ${G}`)}}}else g(`Plugin cache at ${A} doesn't exist, skipping deletion`)}catch(B){let G=B instanceof Error?B.message:String(B);throw e(B instanceof Error?B:Error(`Failed to delete plugin cache: ${G}`)),Error(`Failed to delete plugin cache at ${A}: ${G}`)}}function pT3(A){if(Object.keys(A).length===0)return!0;let Q=PjA();if(!Q)return!1;if(Q.version!==qQA)return!1;try{let G=Q.data?.plugins||{};for(let Z of Object.keys(A))if(Z.includes("@")&&!(Z in G))return!1}catch{return!1}return!0}function lT3(A,Q){if(!A.includes("@"))return!1;if(A in Q)return g(`Plugin ${A} already in installed_plugins.json, skipping`),!1;return!0}async function LI1(A){try{let Q=await ZQ("git",["-C",A,"rev-parse","HEAD"]);if(Q.code===0&&Q.stdout)return Q.stdout.trim();return}catch(Q){g(`Failed to get git commit SHA from ${A}: ${Q}`);return}}function H59(A,Q){let B=OA(),G=Bx(A,".claude-plugin","plugin.json");if(!B.existsSync(G))return"unknown";try{let Z=B.readFileSync(G,{encoding:"utf-8"});return JSON.parse(Z).version||"unknown"}catch{return g(`Could not read version from manifest for ${Q}`),"unknown"}}async function lW0(){let Q=c0().enabledPlugins||{},B=PjA(),G=B!==null,Z=B?.version??0;if(pT3(Q))return;if(!G||Z!==qQA)g(`Schema version mismatch (current: ${Z}, expected: ${qQA}), syncing installed_plugins.json`);else g("Syncing installed_plugins.json with enabledPlugins from settings");let I=OA(),Y=dXA(),J=new Date().toISOString(),W=0,X=0;for(let[F]of Object.entries(Q)){if(!lT3(F,Y)){X++;continue}let V=F.split("@"),K=V[0];if(!K||V.length!==2){g(`Invalid plugin ID format: ${F}, skipping migration`),X++;continue}try{let D,H="unknown",C=void 0,E=!1;try{let z=await Cc(F);if(!z){g(`Plugin ${F} not found in any marketplace, skipping`),X++;continue}let{entry:w,marketplaceInstallLocation:N}=z;if(typeof w.source==="string")E=!0,D=Bx(N,w.source),H=H59(D,F),C=await LI1(D);else{let q=Ec(),R=K.replace(/[^a-zA-Z0-9-_]/g,"-"),P=Bx(q,R);if(!I.existsSync(P)){g(`External plugin ${F} not in cache, skipping`),X++;continue}D=P,H=H59(P,F),C=await LI1(P)}if(H==="unknown"&&C)H=C.substring(0,12),g(`Using git SHA as version for ${F}: ${H}`)}catch(z){g(`Failed to get plugin info for ${F}: ${z}, skipping`),X++;continue}Y[F]={version:H,installedAt:J,lastUpdated:J,installPath:D,gitCommitSha:C,isLocal:E},W++,g(`Added ${F} to installed_plugins.json`)}catch(D){let H=D instanceof Error?D.message:String(D);g(`Failed to migrate plugin ${F}: ${H}`,{level:"warn"}),X++}}if(W>0||!G||Z!==qQA)if(j8("tengu_enable_versioned_plugins")){let V=cW0({version:1,plugins:Y});E59(V),g(`Sync completed (V2): ${W} plugins added to installed_plugins.json, ${X} skipped`)}else if(OI1(Y),!G||Z!==qQA)g(`Updated installed_plugins.json to schema version ${qQA} (${W} plugins added, ${X} skipped)`);else g(`Sync completed: ${W} plugins added to installed_plugins.json, ${X} skipped`);else if(X>0)g(`Sync completed: All ${X} plugins already in installed_plugins.json`)}var yT3="installed_plugins.json",xT3="installed_plugins_v2.json",qQA=1,Pg=null,M$=null,mW0=null;var Ia=L(()=>{o0();D0();u1();hQ();O9();ho();RB();NF();I6();kH()});async function iT3(){return"claude-code"in await TZ()}async function nT3(){let A=await ZQ("rg",["--files","--glob","*.{html,css,htm}","--max-count=1"],{timeout:5000});return A.code===0&&A.stdout.trim().length>0}async function PI1(){let A=[...aT3,...sT3],Q=await Promise.all(A.map((B)=>B.isRelevant()));return A.filter((B,G)=>Q[G]).filter((B)=>NI1(B.id)>=B.cooldownSessions)}var aT3,sT3;var iW0=L(()=>{jQ();ED();Ia();kH();I6();s2();DGA();f5();yJ();s5();jp();RB();uW0();iU();D0();mUA();aT3=[{id:"new-user-warmup",content:async()=>"Start with small features or bug fixes, tell Claude to propose a plan, and verify its suggested edits",cooldownSessions:3,async isRelevant(){return L1().numStartups<10}},{id:"plan-mode-for-complex-tasks",content:async()=>`Use Plan Mode to prepare for a complex request before making changes. Press ${EU.displayText} twice to enable.`,cooldownSessions:5,isRelevant:async()=>{let A=L1();return(A.lastPlanModeUse?(Date.now()-A.lastPlanModeUse)/86400000:1/0)>7}},{id:"default-permission-mode-config",content:async()=>"Use /config to change your default permission mode (including Plan Mode)",cooldownSessions:10,isRelevant:async()=>{try{let A=L1(),Q=c0(),B=Boolean(A.lastPlanModeUse),G=Boolean(Q?.permissions?.defaultMode);return B&&!G}catch(A){return g(`Failed to check default-permission-mode-config tip relevance: ${A}`,{level:"warn"}),!1}}},{id:"git-worktrees",content:async()=>"Use git worktrees to run multiple Claude sessions in parallel.",cooldownSessions:10,isRelevant:async()=>{try{let A=L1();return await zUA()<=1&&A.numStartups>50}catch(A){return!1}}},{id:"terminal-setup",content:async()=>m0.terminal==="Apple_Terminal"?"Run /terminal-setup to enable convenient terminal integration like Option + Enter for new line and more":"Run /terminal-setup to enable convenient terminal integration like Shift + Enter for new line and more",cooldownSessions:10,async isRelevant(){let A=L1();if(m0.terminal==="Apple_Terminal")return Tp.isEnabled()&&!A.optionAsMetaKeyInstalled;return Tp.isEnabled()&&!A.shiftEnterKeyBindingInstalled}},{id:"shift-enter",content:async()=>m0.terminal==="Apple_Terminal"?"Press Option+Enter to send a multi-line message":"Press Shift+Enter to send a multi-line message",cooldownSessions:10,async isRelevant(){let A=L1();return Boolean((m0.terminal==="Apple_Terminal"?A.optionAsMetaKeyInstalled:A.shiftEnterKeyBindingInstalled)&&A.numStartups>3)}},{id:"shift-enter-setup",content:async()=>m0.terminal==="Apple_Terminal"?"Run /terminal-setup to enable Option+Enter for new lines":"Run /terminal-setup to enable Shift+Enter for new lines",cooldownSessions:10,async isRelevant(){if(!t$A())return!1;let A=L1();return!(m0.terminal==="Apple_Terminal"?A.optionAsMetaKeyInstalled:A.shiftEnterKeyBindingInstalled)}},{id:"memory-command",content:async()=>"Use /memory to view and manage Claude memory",cooldownSessions:15,async isRelevant(){return L1().memoryUsageCount<=0}},{id:"theme-command",content:async()=>"Use /theme to change the color theme",cooldownSessions:20,isRelevant:async()=>!0},{id:"status-line",content:async()=>"Use /statusline to set up a custom status line that will display beneath the input box",cooldownSessions:25,isRelevant:async()=>c0().statusLine===void 0},{id:"stickers-command",content:async()=>"Use /stickers to order AICO swag",cooldownSessions:20,isRelevant:async()=>!0},{id:"prompt-queue",content:async()=>"Hit Enter to queue up additional messages while Claude is working.",cooldownSessions:5,async isRelevant(){return L1().promptQueueUseCount<=3}},{id:"enter-to-steer-in-relatime",content:async()=>"Send messages to Claude while it works to steer Claude in real-time",cooldownSessions:20,isRelevant:async()=>!0},{id:"todo-list",content:async()=>"Ask Claude to create a todo list when working on complex tasks to track progress and remain on track",cooldownSessions:20,isRelevant:async()=>!0},{id:"vscode-command-install",content:async()=>`Open the Command Palette (Cmd+Shift+P) and run "Shell Command: Install '${m0.terminal==="vscode"?"code":m0.terminal}' command in PATH" to enable IDE integration`,cooldownSessions:0,async isRelevant(){if(!uLA())return!1;if(uQ()!=="macos")return!1;switch(m0.terminal){case"vscode":return!z62();case"cursor":return!C62();case"windsurf":return!E62();default:return!1}}},{id:"ide-upsell-external-terminal",content:async()=>"Connect Claude to your IDE · /ide",cooldownSessions:4,async isRelevant(){if(_F())return!1;if(qB1().length!==0)return!1;return LB1().length>0}},{id:"# for memory",content:async()=>"Want Claude to remember something? Hit # to add preferences, tools, and instructions to Claude's memory",cooldownSessions:10,isRelevant:async()=>L1().memoryUsageCount<=10},{id:"install-github-app",content:async()=>"Run /install-github-app to tag @claude right from your Github issues and PRs",cooldownSessions:10,isRelevant:async()=>!L1().githubActionSetupCount},{id:"permissions",content:async()=>"Use /permissions to pre-approve and pre-deny bash, edit, and MCP tools",cooldownSessions:10,async isRelevant(){return L1().numStartups>10}},{id:"drag-and-drop-images",content:async()=>"Did you know you can drag and drop image files into your terminal?",cooldownSessions:10,isRelevant:async()=>!0},{id:"paste-images-mac",content:async()=>"Paste images into AICO using control+v (not cmd+v!)",cooldownSessions:10,isRelevant:async()=>uQ()==="macos"},{id:"double-esc",content:async()=>"Double-tap esc to rewind the conversation to a previous point in time",cooldownSessions:10,isRelevant:async()=>!JG()},{id:"double-esc-code-restore",content:async()=>"Double-tap esc to rewind the code and/or conversation to a previous point in time",cooldownSessions:10,isRelevant:async()=>JG()},{id:"continue",content:async()=>"Run claude --continue or claude --resume to resume a conversation",cooldownSessions:10,isRelevant:async()=>!0},{id:"custom-commands",content:async()=>"Create custom slash commands by adding .md files to .claude/commands/ in your project or ~/.claude/commands/ for commands that work in any project",cooldownSessions:15,async isRelevant(){return L1().numStartups>10}},{id:"shift-tab",content:async()=>`Hit ${EU.displayText} to cycle between default mode, auto-accept edit mode, and plan mode`,cooldownSessions:10,isRelevant:async()=>!0},{id:"image-paste",content:async()=>`Use ${Ye.displayText} to paste images from your clipboard`,cooldownSessions:20,isRelevant:async()=>!0},{id:"tab-toggle-thinking",content:async()=>"Hit tab to toggle thinking mode on and off",cooldownSessions:10,isRelevant:async()=>!0},{id:"ultrathink-keyword",content:async()=>"Type 'ultrathink' in your message to enable thinking for just that turn",cooldownSessions:10,isRelevant:async()=>!0},{id:"custom-agents",content:async()=>"Use /agents to optimize specific tasks. Eg. Software Architect, Code Writer, Code Reviewer",cooldownSessions:15,async isRelevant(){return L1().numStartups>5}},{id:"opusplan-mode-reminder",content:async()=>`Your default model setting is Opus Plan Mode. Press ${EU.displayText} twice to activate Plan Mode and plan with Claude Opus.`,cooldownSessions:2,async isRelevant(){let A=L1(),B=ot()==="opusplan",G=A.lastPlanModeUse?(Date.now()-A.lastPlanModeUse)/86400000:1/0;return B&&G>3}},{id:"frontend-design-plugin",content:async(A)=>{let Q=await iT3(),B=tQ("suggestion",A.theme);if(!Q)return`Working with HTML/CSS? Add the frontend-design plugin:
2838
+ `);if(Z.length===0)continue;let I=Z[0];if(!I)continue;let Y=I.split(" - ")[0]?.trim()||"";if(!Y)continue;let J=Z.slice(1).filter((W)=>W.trim().startsWith("- ")).map((W)=>W.trim().substring(2).trim()).filter(Boolean);if(J.length>0)Q[Y]=J}return Q}catch(Q){return e(Q instanceof Error?Q:Error("Failed to parse changelog")),{}}}function XT3(A,Q,B=wQA()){try{let G=JI1(B),Z=Za.coerce(A),I=Q?Za.coerce(Q):null;if(!I||Z&&Za.gt(Z,I,{loose:!0}))return Object.entries(G).filter(([Y])=>!I||Za.gt(Y,I,{loose:!0})).sort(([Y],[J])=>Za.gt(Y,J,{loose:!0})?-1:1).flatMap(([Y,J])=>J).filter(Boolean).slice(0,JT3)}catch(G){return e(G instanceof Error?G:Error("Failed to get release notes")),[]}return[]}function kW0(A=wQA()){try{let Q=JI1(A);return Object.keys(Q).sort((G,Z)=>Za.gt(G,Z,{loose:!0})?1:-1).map((G)=>{let Z=Q[G];if(!Z||Z.length===0)return null;let I=Z.filter(Boolean);if(I.length===0)return null;return[G,I]}).filter((G)=>G!==null)}catch(Q){return e(Q instanceof Error?Q:Error("Failed to get release notes")),[]}}function HjA(A,Q={ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.claude.com/s/claude-code",VERSION:"2.0.57",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues"}.VERSION){if(A!==Q||!wQA())_W0().catch((Z)=>e(Z instanceof Error?Z:Error("Failed to fetch changelog")));let B=XT3(Q,A);return{hasReleaseNotes:B.length>0,releaseNotes:B}}var Za,JT3=5,t89="https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md",WT3="https://raw.githubusercontent.com/anthropics/claude-code/refs/heads/main/CHANGELOG.md";var gXA=L(()=>{u1();w3();jQ();S0();Za=GA(WE(),1)});function Q69(A){if(A>=70)return"horizontal";return"compact"}function B69(A,Q,B){if(Q==="horizontal"){let Z=B,I=yW0+XI1+WI1+Z,Y=A-I,J=Math.max(30,Y),W=Math.min(Z+J+WI1+XI1,A-yW0);if(W<Z+J+WI1+XI1)J=W-Z-WI1-XI1;return{leftWidth:Z,rightWidth:J,totalWidth:W}}let G=Math.min(A-yW0,A69+20);return{leftWidth:G,rightWidth:G,totalWidth:G}}function G69(A,Q,B){let G=Math.max(A.length,Q.length,B.length,20);return Math.min(G+4,A69)}function VI1(A){if(!A||A.length>FT3)return"Welcome back!";return`欢迎使用${A}!`}function EjA(A,Q){if(A.length<=Q)return A;let B="/",G="…",Z=A.split(B),I=Z[0]||"",Y=Z[Z.length-1]||"";if(Z.length===1)return A.substring(0,Q-G.length)+G;if(I===""&&G.length+B.length+Y.length>=Q)return`${B}${Y.substring(0,Q-G.length-B.length)}${G}`;if(I!==""&&G.length*2+B.length+Y.length>=Q)return`${G}${B}${Y.substring(0,Q-G.length*2-B.length)}${G}`;if(Z.length===2)return`${I.substring(0,Q-G.length-B.length-Y.length)}${G}${B}${Y}`;let J=Q-I.length-Y.length-G.length-2*B.length;if(J<=0)return`${I.substring(0,Math.max(0,Q-Y.length-G.length-2*B.length))}${B}${G}${B}${Y}`;let W=[];for(let X=Z.length-2;X>0;X--){let F=Z[X];if(F&&F.length+B.length<=J)W.unshift(F),J-=F.length+B.length;else break}if(W.length===0)return`${I}${B}${G}${B}${Y}`;return`${I}${B}${G}${B}${W.join(B)}${B}${Y}`}async function Z69(){if(FI1)return FI1;let A=G0();return FI1=Qx(10).then((Q)=>{return CjA=Q.filter((B)=>{if(B.isSidechain)return!1;if(B.leafUuid===A)return!1;if(B.summary?.includes("I apologize"))return!1;let G=B.summary&&B.summary!=="No prompt",Z=B.firstPrompt&&B.firstPrompt!=="No prompt";return G||Z}).slice(0,3),CjA}).catch(()=>{return CjA=[],CjA}),FI1}function I69(){return CjA}function KI1(){let A={ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.claude.com/s/claude-code",VERSION:"2.0.57",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues"}.VERSION,Q=Q5(H0()),B=S3(),G=aRB(B),Z=AB()?oy1():"智能软件星工厂";return{version:A,cwd:Q,modelDisplayName:G,billingType:Z}}function Y69(A,Q,B){if(A.length+3+Q.length>B)return{shouldSplit:!0,truncatedModel:B7(A,B),truncatedBilling:B7(Q,B)};return{shouldSplit:!1,truncatedModel:B7(A,Math.max(B-Q.length-3,10)),truncatedBilling:Q}}function J69(A){let Q=wQA();if(!Q)return[];let B=JI1(Q),G=[],Z=Object.keys(B).sort((I,Y)=>e89.gt(I,Y,{loose:!0})?-1:1).slice(0,3);for(let I of Z){let Y=B[I];if(Y)G.push(...Y)}return G.slice(0,A)}var e89,A69=50,FT3=20,yW0=4,WI1=1,XI1=2,CjA,FI1=null;var DI1=L(()=>{gXA();GG();S0();R2();M9();hB();s2();e89=GA(WE(),1);CjA=[]});function xW0(){if(m0.terminal==="Apple_Terminal")return J5.createElement(VT3,null);return J5.createElement(j,{flexDirection:"column"},J5.createElement($,null,J5.createElement($,{color:"clawd_body"}," ▐"),J5.createElement($,{color:"clawd_body",backgroundColor:"clawd_background"},"▛███▜"),J5.createElement($,{color:"clawd_body"},"▌")),J5.createElement($,null,J5.createElement($,{color:"clawd_body"},"▝▜"),J5.createElement($,{color:"clawd_body",backgroundColor:"clawd_background"},"█████"),J5.createElement($,{color:"clawd_body"},"▛▘")),J5.createElement($,{color:"clawd_body"}," ","▘▘ ▝▝"," "))}function VT3(){return J5.createElement(j,{flexDirection:"column",alignItems:"center"},J5.createElement($,null,J5.createElement($,{color:"clawd_body"},"▗"),J5.createElement($,{color:"clawd_background",backgroundColor:"clawd_body"}," ","▗"," ","▖"," "),J5.createElement($,{color:"clawd_body"},"▖")),J5.createElement($,{backgroundColor:"clawd_body"}," ".repeat(7)),J5.createElement($,{color:"clawd_body"},"▘▘ ▝▝"))}var J5;var W69=L(()=>{hA();f5();J5=GA(VA(),1)});function X69(A){let{title:Q,lines:B,footer:G,emptyMessage:Z,customContent:I}=A,Y=Q.length;if(I!==void 0)Y=Math.max(Y,I.width);else if(B.length===0&&Z)Y=Math.max(Y,Z.length);else{let W=Math.max(0,...B.map((X)=>X.timestamp?X.timestamp.length:0));for(let X of B){let F=W>0?W:0,V=X.text.length+(F>0?F+2:0);Y=Math.max(Y,V)}}if(G)Y=Math.max(Y,G.length);return Y}function F69({config:A,actualWidth:Q}){let{title:B,lines:G,footer:Z,emptyMessage:I,customContent:Y}=A,J=" ",W=Math.max(0,...G.map((X)=>X.timestamp?X.timestamp.length:0));return l7.createElement(j,{flexDirection:"column",width:Q},l7.createElement($,{bold:!0,color:"claude"},B),Y?l7.createElement(l7.Fragment,null,Y.content,Z&&l7.createElement($,{dimColor:!0,italic:!0},B7(Z,Q))):G.length===0&&I?l7.createElement($,{dimColor:!0},B7(I,Q)):l7.createElement(l7.Fragment,null,G.map((X,F)=>{let V=Math.max(10,Q-(W>0?W+2:0));return l7.createElement($,{key:F},W>0&&l7.createElement(l7.Fragment,null,l7.createElement($,{dimColor:!0},(X.timestamp||"").padEnd(W))," "),l7.createElement($,null,B7(X.text,V)))}),Z&&l7.createElement($,{dimColor:!0,italic:!0},B7(Z,Q))))}var l7;var V69=L(()=>{hA();l7=GA(VA(),1)});function K69({feeds:A,maxWidth:Q}){let B=A.map((I)=>X69(I)),G=Math.max(...B),Z=Math.min(G,Q);return lP.createElement(j,{flexDirection:"column"},A.map((I,Y)=>lP.createElement(lP.Fragment,{key:Y},lP.createElement(F69,{config:I,actualWidth:Z}),Y<A.length-1&&lP.createElement(J3,{dividerColor:"claude"}))))}var lP;var D69=L(()=>{hA();V69();eV();lP=GA(VA(),1)});import{homedir as KT3}from"os";function HI1(A){let Q=A.map((B)=>{let G=Xp(B.modified);return{text:(B.summary&&B.summary!=="No prompt"?B.summary:B.firstPrompt)||"",timestamp:G}});return{title:"近期项目",lines:Q,footer:Q.length>0?"/resume for more":void 0,emptyMessage:"No 近期项目"}}function H69(A){let Q=A.map((G)=>{return{text:G}}),B="Check the AICO changelog for updates";return{title:"What's new",lines:Q,footer:Q.length>0?"/release-notes for more":void 0,emptyMessage:"Check the AICO changelog for updates"}}function C69(A){let B=A.filter(({isEnabled:Z})=>Z).sort((Z,I)=>Number(Z.isComplete)-Number(I.isComplete)).map(({text:Z,isComplete:I})=>{return{text:`${I?`${V1.tick} `:""}${Z}`}}),G=H0()===KT3()?"Note: You have launched claude in your home directory. For the best experience, launch it in a project directory instead.":void 0;if(G)B.push({text:G});return{title:"Tips for getting started",lines:B}}function E69(){return{title:"3 guest passes",lines:[],customContent:{content:SO.createElement(SO.Fragment,null,SO.createElement(j,{marginY:1},SO.createElement($,{color:"claude"},"[✻] [✻] [✻]")),SO.createElement($,{dimColor:!0},"Share AICO with friends")),width:30},footer:"/passes"}}var SO;var z69=L(()=>{n2();R2();hA();SO=GA(VA(),1)});async function DT3(A="claude_code_guest_pass"){let{accessToken:Q,orgUUID:B}=await J0A(),G={...BC(Q),"x-organization-uuid":B},Z=`${o9().BASE_API_URL}/api/oauth/organizations/${B}/referral/eligibility`;return(await GQ.get(Z,{headers:G,params:{campaign:A}})).data}async function w69(A="claude_code_guest_pass"){let{accessToken:Q,orgUUID:B}=await J0A(),G={...BC(Q),"x-organization-uuid":B},Z=`${o9().BASE_API_URL}/api/oauth/organizations/${B}/referral/redemptions`;return(await GQ.get(Z,{headers:G,params:{campaign:A}})).data}function q69(){return!!(i6()?.organizationUuid&&AB()&&x4()==="max")}function N69(){if(!q69())return{eligible:!1,needsRefresh:!1,hasCache:!1};let A=i6()?.organizationUuid;if(!A)return{eligible:!1,needsRefresh:!1,hasCache:!1};let B=L1().passesEligibilityCache?.[A];if(!B)return{eligible:!1,needsRefresh:!0,hasCache:!1};let{eligible:G,timestamp:Z}=B,Y=Date.now()-Z>$69;return{eligible:G,needsRefresh:Y,hasCache:!0}}async function U69(){if(zjA)return g("Passes: Reusing in-flight eligibility fetch"),zjA;let A=i6()?.organizationUuid;if(!A)return null;return zjA=(async()=>{try{let Q=await DT3(),B=L1(),G={...B.passesEligibilityCache,[A]:{...Q,timestamp:Date.now()}};return d0({...B,passesEligibilityCache:G}),g(`Passes eligibility cached for org ${A}: ${Q.eligible}`),Q}catch(Q){return g("Failed to fetch and cache passes eligibility"),e(Q),null}finally{zjA=null}})(),zjA}async function UjA(){if(!q69())return null;let A=i6()?.organizationUuid;if(!A)return null;let B=L1().passesEligibilityCache?.[A],G=Date.now();if(!B)return g("Passes: No cache, fetching eligibility"),await U69();if(G-B.timestamp>$69){g("Passes: Cache stale, returning cached data and refreshing in background"),U69();let{timestamp:Y,...J}=B;return J}g("Passes: Using fresh cached eligibility data");let{timestamp:Z,...I}=B;return I}async function L69(){UjA()}var $69=3600000,zjA=null;var $jA=L(()=>{w3();EX();An();jQ();hB();D0();u1()});function HT3(){let A=L1(),{eligible:Q,hasCache:B}=N69();if(!Q||!B)return!1;if((A.passesUpsellSeenCount??0)>=3)return!1;if(A.hasVisitedPasses)return!1;return!0}function CI1(){let[A]=M69.useState(()=>HT3());return A}function EI1(){let A=L1(),Q=(A.passesUpsellSeenCount??0)+1;d0({...A,passesUpsellSeenCount:Q}),BA("tengu_guest_passes_upsell_shown",{seen_count:Q})}function O69(){return Rg.createElement($,{dimColor:!0},Rg.createElement($,{color:"claude"},"[✻]")," ",Rg.createElement($,{color:"claude"},"[✻]")," ",Rg.createElement($,{color:"claude"},"[✻]")," · 3 guest passes at /passes")}var Rg,M69;var vW0=L(()=>{hA();jQ();$jA();w0();Rg=GA(VA(),1),M69=GA(VA(),1)});function CT3(){if(m0.terminal==="Apple_Terminal")return v2.createElement(j,{flexDirection:"column",alignItems:"center"},v2.createElement($,null,v2.createElement($,{color:"clawd_body"},"▗"),v2.createElement($,{color:"clawd_background",backgroundColor:"clawd_body"}," ","▗"," ","▖"," "),v2.createElement($,{color:"clawd_body"},"▖")),v2.createElement($,{backgroundColor:"clawd_body"}," ".repeat(7)),v2.createElement($,{color:"clawd_body"},"▘▘ ▝▝"));return v2.createElement(j,{flexDirection:"column"},v2.createElement($,null,v2.createElement($,{color:"clawd_body"}," ▐"),v2.createElement($,{color:"clawd_body",backgroundColor:"clawd_background"},"▛███▜"),v2.createElement($,{color:"clawd_body"},"▌")),v2.createElement($,null,v2.createElement($,{color:"clawd_body"},"▝▜"),v2.createElement($,{color:"clawd_body",backgroundColor:"clawd_background"},"█████"),v2.createElement($,{color:"clawd_body"},"▛▘")),v2.createElement($,{color:"clawd_body"}," ","▘▘ ▝▝"," "))}function T69(){let{columns:A}=YB(),{version:Q,cwd:B,modelDisplayName:G,billingType:Z}=KI1(),I=CI1();R69.useEffect(()=>{if(I)EI1()},[I]);let Y=Math.max(A-15,20),W=B7(Q,Math.max(Y-"AICO v".length,6)),{shouldSplit:X,truncatedModel:F,truncatedBilling:V}=Y69(G,Z,Y),K=EjA(B,Y);return v2.createElement(j,{flexDirection:"row",gap:2,alignItems:"center"},v2.createElement(CT3,null),v2.createElement(j,{flexDirection:"column"},v2.createElement($,null,v2.createElement($,{bold:!0},"AICO")," ",v2.createElement($,{dimColor:!0},"v",W)),X?v2.createElement(v2.Fragment,null,v2.createElement($,{dimColor:!0},F),v2.createElement($,{dimColor:!0},V)):v2.createElement($,{dimColor:!0},F," · ",V),v2.createElement($,{dimColor:!0},K),I&&v2.createElement(O69,null)))}var v2,R69;var P69=L(()=>{hA();f5();m8();DI1();vW0();v2=GA(VA(),1),R69=GA(VA(),1)});function bW0(){let A=zI1.useMemo(zT3,[]);if(zI1.useEffect(()=>{_69(j69)},[A.tip]),!A.tip)return null;return wjA.createElement(j,{paddingLeft:2,flexDirection:"column"},wjA.createElement($,{...A.color==="warning"?{color:"warning"}:A.color==="error"?{color:"error"}:{dimColor:!0}},A.tip))}function zT3(){return G7A(j69,ET3)}var wjA,zI1,j69="tengu-top-of-feed-tip",ET3;var S69=L(()=>{hA();O9();wjA=GA(VA(),1),zI1=GA(VA(),1);ET3={tip:"",color:"dim"}});function y69({isBeforeFirstMessage:A}){let Q=r89(A),B=I69(),G=L1().oauthAccount?.displayName??"",Z=J69(3),{columns:I}=YB(),Y=_jB(),J=lQ.isSandboxingEnabled(),W=CI1(),X=wg(),F=L1(),V=X.companyAnnouncements,[K]=qjA.useState(()=>V&&V.length>0?F.numStartups===1?V[0]:V[Math.floor(Math.random()*V.length)]:void 0),{hasReleaseNotes:D}=HjA(F.lastReleaseNotesSeen);qjA.useEffect(()=>{let l=L1();if(l.lastReleaseNotesSeen==={ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.claude.com/s/claude-code",VERSION:"2.0.57",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues"}.VERSION)return;if(d0({...l,lastReleaseNotesSeen:{ISSUES_EXPLAINER:"report the issue at https://github.com/anthropics/claude-code/issues",PACKAGE_URL:"@anthropic-ai/claude-code",README_URL:"https://docs.claude.com/s/claude-code",VERSION:"2.0.57",FEEDBACK_CHANNEL:"https://github.com/anthropics/claude-code/issues"}.VERSION}),Y)kjB()},[F,Y]),qjA.useEffect(()=>{if(W&&!Y)EI1()},[W,Y]);let{version:H,cwd:C,modelDisplayName:E,billingType:z}=KI1(),w=B7(E,k69-20);if(!D&&!Y&&!V0(process.env.CLAUDE_CODE_FORCE_FULL_LOGO))return NQ.createElement(NQ.Fragment,null,NQ.createElement(j,null),NQ.createElement(T69,null),tBA()&&NQ.createElement(j,{paddingLeft:2,flexDirection:"column"},NQ.createElement($,{color:"warning"},"Debug mode enabled"),NQ.createElement($,{dimColor:!0},"Logging to: ",Sj()?"stderr":WVA())),NQ.createElement(bW0,null),K&&NQ.createElement(j,{paddingLeft:2,flexDirection:"column"},NQ.createElement($,null,K)),!1,!1);let N=Q69(I),q=L1().theme,R=` ${tQ("claude",q)("AICO")} ${tQ("inactive",q)(`v${H}`)} `,P=tQ("claude",q)(" AICO ");if(N==="compact"){let k=VI1(G);if(k.length>I-4)k=VI1(null);let d=EjA(C,I-4);return NQ.createElement(NQ.Fragment,null,NQ.createElement(j,{flexDirection:"column",borderStyle:"round",borderColor:"claude",borderText:{content:P,position:"top",align:"start",offset:1},paddingX:1,paddingY:1,alignItems:"center",width:I},NQ.createElement($,{bold:!0},k),NQ.createElement(j,{marginY:1},NQ.createElement(j,{height:5,flexDirection:"column",justifyContent:"flex-end"},NQ.createElement(j,{marginBottom:Q},NQ.createElement(xW0,null)))),NQ.createElement($,{dimColor:!0},w),NQ.createElement($,{dimColor:!0},z),NQ.createElement($,{dimColor:!0},d)),J&&NQ.createElement(j,{marginTop:1,flexDirection:"column"},NQ.createElement($,{color:"warning"},"Your bash commands will be sandboxed. Disable with /sandbox.")))}let y=VI1(G),v=`${w} · ${z}`,x=EjA(C,k69),p=G69(y,x,v),{leftWidth:u,rightWidth:o}=B69(I,N,p);return NQ.createElement(NQ.Fragment,null,NQ.createElement(j,null),NQ.createElement(j,{flexDirection:"column",borderStyle:"round",borderColor:"claude",borderText:{content:R,position:"top",align:"start",offset:3}},NQ.createElement(j,{flexDirection:N==="horizontal"?"row":"column",paddingX:1,gap:1},NQ.createElement(j,{flexDirection:"column",width:u,justifyContent:"space-between",alignItems:"center",minHeight:9},NQ.createElement(j,{marginTop:1},NQ.createElement($,{bold:!0},y)),NQ.createElement(j,{height:5,flexDirection:"column",justifyContent:"flex-end"},NQ.createElement(j,{marginBottom:Q},NQ.createElement(xW0,null))),NQ.createElement(j,{flexDirection:"column",alignItems:"center"},NQ.createElement($,{dimColor:!0},v),NQ.createElement($,{dimColor:!0},x))),N==="horizontal"&&NQ.createElement(J3,{orientation:"vertical",dividerColor:"claude"}),N==="horizontal"&&NQ.createElement(K69,{feeds:Y?[C69(Od1()),HI1(B)]:W?[HI1(B),E69()]:[HI1(B),H69(Z)],maxWidth:o}))),tBA()&&NQ.createElement(j,{paddingLeft:2,flexDirection:"column"},NQ.createElement($,{color:"warning"},"Debug mode enabled"),NQ.createElement($,{dimColor:!0},"Logging to: ",Sj()?"stderr":WVA())),NQ.createElement(bW0,null),K&&NQ.createElement(j,{paddingLeft:2,flexDirection:"column"},NQ.createElement($,null,K)),J&&NQ.createElement(j,{paddingLeft:2,flexDirection:"column"},NQ.createElement($,{color:"warning"},"Your bash commands will be sandboxed. Disable with /sandbox.")),!1,!1)}var NQ,qjA,k69=50;var x69=L(()=>{hA();m8();o89();DI1();M9();W69();D69();z69();eV();jQ();gPA();D0();r$A();P69();gXA();nRA();hQ();Qe();S69();MJ();vW0();NQ=GA(VA(),1),qjA=GA(VA(),1)});function $T3(A,Q,B,G,Z,I,Y){if(I==="transcript")return!0;switch(A.type){case"attachment":case"user":case"assistant":{let J=MjA(A);if(!J)return!0;if(Q.has(J))return!1;if(G.has(J))return!1;if(g69(J,"PostToolUse",Y))return!1;return l89(Z,B)}case"system":return A.subtype!=="api_error";case"grouped_tool_use":return A.messages.every((W)=>{let X=W.message.content[0];return X?.type==="tool_use"&&B.has(X.id)})}}var t8,Tg,NjA=10,UT3=({messages:A,normalizedMessageHistory:Q,tools:B,verbose:G,toolJSX:Z,toolUseConfirmQueue:I,inProgressToolUseIDs:Y,isMessageSelectorVisible:J,conversationId:W,screen:X,screenToggleId:F,streamingToolUses:V,showAllInTranscript:K=!1,agentDefinitions:D,onOpenRateLimitOptions:H})=>{let{columns:C}=YB(),E=Tg.useContext(ec),z=Tg.useMemo(()=>[...Q,...lJ(A).filter(LjA)],[A,Q]),w=Tg.useMemo(()=>new Set(Object.keys($I1(z))),[z]),N=Tg.useMemo(()=>u69(z),[z]),q=Tg.useMemo(()=>V.filter((p)=>{if(Y.has(p.contentBlock.id))return!1;if(z.some((u)=>u.type==="assistant"&&u.message.content[0].type==="tool_use"&&u.message.content[0].id===p.contentBlock.id))return!1;return!0}),[V,Y,z]),R=Tg.useMemo(()=>q.flatMap((p)=>lJ([xD({content:[p.contentBlock]})])),[q]),P=Tg.useMemo(()=>{let p=X==="transcript",u=p&&!K,o=G?z:gk(z),l=v69(o.filter((IA)=>IA.type!=="progress").filter((IA)=>m69(IA,p)),R),k=u?l.slice(-NjA):l,d=u&&l.length>NjA;return[{type:"static",jsx:t8.createElement(j,{flexDirection:"column",gap:1,key:`logo-${W}-${F}`},t8.createElement(y69,{isBeforeFirstMessage:!1}),t8.createElement(d89,{agentDefinitions:D}))},...d?[{type:"static",jsx:t8.createElement(J3,{key:`truncation-indicator-${W}-${F}`,dividerChar:"─",title:`Ctrl+E to show ${oA.bold(z.length-NjA)} previous messages`,width:C})}]:[],...p&&K&&z.length>NjA?[{type:"static",jsx:t8.createElement(J3,{key:`hide-indicator-${W}-${F}`,dividerChar:"─",title:`Ctrl+E to hide ${oA.bold(z.length-NjA)} previous messages`,width:C})}]:[],...(()=>{let{messages:IA}=g89(k,B,G),HA=b69(z,k),wA=new Set(V.map((SA)=>SA.contentBlock.id)),KA=(!Z||!!Z.shouldContinueAnimation)&&!I.length&&!J;return IA.map((SA)=>{let sA=SA.type==="grouped_tool_use",NA=sA?SA.displayMessage:SA,qA=sA?[]:h69(SA,HA),DA=sA?new Set:f69(SA,HA),yA=$T3(SA,wA,w,Y,DA,X,HA)?"static":"transient",rA=!1;if(KA)if(sA)rA=SA.messages.some((K1)=>{let WA=K1.message.content[0];return WA?.type==="tool_use"&&Y.has(WA.id)});else{let K1=MjA(SA);rA=!K1||Y.has(K1)}return{type:yA,jsx:t8.createElement(j,{key:`${SA.uuid}-${W}-${F}`,width:C,flexDirection:"row",flexWrap:"nowrap",alignItems:"flex-start",justifyContent:"space-between",gap:1},t8.createElement(Mg,{message:SA,messages:z,addMargin:!0,tools:B,verbose:G,erroredToolUseIDs:N,inProgressToolUseIDs:Y,progressMessagesForMessage:qA,shouldAnimate:rA,shouldShowDot:!0,resolvedToolUseIDs:w,isTranscriptMode:p,isStatic:yA==="static",onOpenRateLimitOptions:H}),t8.createElement(i89,{message:NA,isTranscriptMode:p}),t8.createElement(a89,{message:NA,isTranscriptMode:p}))}})})()]},[X,K,G,z,R,W,F,D,C,V,w,B,N,Y,Z,I.length,J,H]),y=Y.size>0;if(E)return t8.createElement(t8.Fragment,null,P.map((p)=>p.jsx),y?t8.createElement(KjA,{state:"indeterminate"}):t8.createElement(KjA,{state:"completed"}));let v=P.filter((p)=>p.type==="static"),x=P.filter((p)=>p.type==="transient");return t8.createElement(t8.Fragment,null,t8.createElement(Ap,{key:`static-messages-${W}-${F}`,items:v},(p)=>p.jsx),x.map((p)=>p.jsx),y?t8.createElement(KjA,{state:"indeterminate"}):t8.createElement(KjA,{state:"completed"}))},uXA;var UI1=L(()=>{hA();hA();h89();rUA();nQ();c89();QjA();m8();eV();J9();n89();s89();x69();t8=GA(VA(),1),Tg=GA(VA(),1),uXA=t8.memo(UT3,(A,Q)=>{let B=Object.keys(A);for(let G of B){if(G==="onOpenRateLimitOptions")continue;if(A[G]!==Q[G]){if(G==="streamingToolUses"){let Z=A.streamingToolUses,I=Q.streamingToolUses;if(Z.length===I.length&&Z.every((Y,J)=>Y.contentBlock===I[J]?.contentBlock))continue}return!1}}return!0})});function c69(A,Q,B,G,Z){let I=d69.useContext(ec);h1(async(Y,J)=>{if(J.ctrl&&Y==="o"){if(Q((W)=>W==="transcript"?"prompt":"transcript"),B((W)=>W+1),G(!1),!I)await Z()}if(J.ctrl&&Y==="e"&&A==="transcript"){if(G((W)=>!W),B((W)=>W+1),!I)await Z()}if(J.ctrl&&Y==="c"&&A==="transcript"||J.escape&&A==="transcript"){if(Q("prompt"),B((W)=>W+1),G(!1),!I)await Z()}})}var d69;var p69=L(()=>{hA();rUA();d69=GA(VA(),1)});function l69(A,Q){let B=OjA.useRef(!1),G=OjA.useRef(null);OjA.useEffect(()=>{let Z=cU(A);if(G.current!==Z)B.current=!1,G.current=Z||null,Q({lineCount:0,lineStart:void 0,text:void 0,filePath:void 0});if(B.current||!Z)return;let I=(Y)=>{if(Y.selection?.start&&Y.selection?.end){let{start:J,end:W}=Y.selection,X=W.line-J.line+1;if(W.character===0)X--;let F={lineCount:X,lineStart:J.line,text:Y.text,filePath:Y.filePath};Q(F)}};Z.client.setNotificationHandler(wT3,(Y)=>{if(G.current!==Z)return;try{let J=Y.params;if(J.selection&&J.selection.start&&J.selection.end)I(J);else if(J.text!==void 0)I({selection:null,text:J.text,filePath:J.filePath})}catch(J){e(J)}}),B.current=!0},[A,Q])}var OjA,wT3;var i69=L(()=>{h2();yJ();u1();OjA=GA(VA(),1),wT3=_.object({method:_.literal("selection_changed"),params:_.object({selection:_.object({start:_.object({line:_.number(),character:_.number()}),end:_.object({line:_.number(),character:_.number()})}).nullable().optional(),text:_.string().optional(),filePath:_.string().optional()})})});function qT3(){return ZI("cache_warming","config",{enabled:!1,idleThresholdMs:240000,subsequentWarmupIntervalMs:300000,maxRequests:1})}function n69(A,Q){let B=wI1.useRef(null);wI1.useEffect(()=>{let G=qT3();if(!G.enabled)return;if(A||Q===0){if(B.current)B.current.abort(),B.current=null;return}let Z=0,I=null,Y=async()=>{let W=GkA();if(!W){g("Cache warming: No previous API request to replay");return}if(B.current)B.current.abort();B.current=s9();try{g(`Cache warming: Sending request ${Z+1}/${G.maxRequests}`);let X={...W,messages:[...W.messages,{role:"user",content:'Reply with just "OK"'}],max_tokens:10},V=(await Vq({maxRetries:0,model:W.model})).beta.messages.stream(X,{signal:B.current.signal});for await(let H of V)if(B.current?.signal.aborted)break;let D=(await V.finalMessage()).usage;if(g("Cache warming: Request completed"),BA("tengu_cache_warming_request",{warmup_number:Z+1,cache_read_tokens:D.cache_read_input_tokens??0,cache_creation_tokens:D.cache_creation_input_tokens??0,input_tokens:D.input_tokens,output_tokens:D.output_tokens}),Z++,Z<G.maxRequests)J(G.subsequentWarmupIntervalMs)}catch(X){if(X instanceof Error)e(X)}finally{B.current=null}},J=(W)=>{I=setTimeout(()=>{Y()},W)};return J(G.idleThresholdMs),()=>{if(I)clearTimeout(I);if(B.current)B.current.abort(),B.current=null}},[A,Q])}var wI1;var a69=L(()=>{EIA();S0();D0();UZ();O9();w0();u1();wI1=GA(VA(),1)});function r69({autoConnectIdeFlag:A,ideToInstallExtension:Q,setDynamicMcpConfig:B,setShowIdeOnboarding:G,setIDEInstallationState:Z}){s69.useEffect(()=>{function I(Y){if(!Y)return;if(!((L1().autoConnectIde||A||_F()||Q||V0(process.env.CLAUDE_CODE_AUTO_CONNECT_IDE))&&!Nj(process.env.CLAUDE_CODE_AUTO_CONNECT_IDE)))return;B((X)=>{if(X?.ide)return X;return{...X,ide:{type:Y.url.startsWith("ws:")?"ws-ide":"sse-ide",url:Y.url,ideName:Y.name,authToken:Y.authToken,ideRunningInWindows:Y.ideRunningInWindows,scope:"dynamic"}}})}$62(I,Q,()=>G(!0),(Y)=>Z(Y))},[A,Q,B,G,Z])}var s69;var o69=L(()=>{jQ();yJ();hQ();s69=GA(VA(),1)});var RjA=L(()=>{I6();R2();o0();ED();D0();jQ()});var fW0;var t69=L(()=>{hA();T5();RjA();zI();m_();I6();w0();Di();fW0=GA(VA(),1)});var DkZ;var e69=L(()=>{t69();_J();DkZ=GA(VA(),1)});function MT3(){return Zt(LT3)??"Goodbye!"}var NT3,LT3,OT3,qI1;var hW0=L(()=>{oiA();_J();RjA();e69();NT3=GA(VA(),1),LT3=["Goodbye!","See ya!","Bye!","Catch you later!"];OT3={type:"local-jsx",name:"exit",aliases:["quit"],description:"Exit the REPL",isEnabled:()=>!0,isHidden:!1,async call(A){return A(MT3()),await S6(0,"prompt_input_exit"),null},userFacingName(){return"exit"}},qI1=OT3});function A59(){let[A,Q]=iP.useState(_H.getInstance().getStatus());if(iP.useEffect(()=>{return _H.getInstance().subscribe(Q)},[]),!A.isAuthenticating&&!A.error&&A.output.length===0)return null;if(!A.isAuthenticating&&!A.error)return null;return iP.default.createElement(j,{flexDirection:"column",borderStyle:"round",borderColor:"permission",paddingX:1,marginY:1},iP.default.createElement($,{bold:!0,color:"permission"},"AWS Authentication"),A.output.length>0&&iP.default.createElement(j,{flexDirection:"column",marginTop:1},A.output.slice(-5).map((B,G)=>iP.default.createElement($,{key:G,dimColor:!0},B))),A.error&&iP.default.createElement(j,{marginTop:1},iP.default.createElement($,{color:"error"},A.error)))}var iP;var Q59=L(()=>{hA();iP=GA(VA(),1)});import{randomUUID as B59}from"crypto";function G59(A,Q,B){let G=mXA(A)?.message?.id||"unknown",[Z,I]=NC.useState("closed"),[Y,J]=_Q(),W=h81("tengu_feedback_survey_config",RT3),X=NC.useRef(B59()),F=NC.useRef(Date.now()),V=NC.useRef(B),K=NC.useCallback((N,q)=>{J((R)=>({...R,feedbackSurvey:{timeLastShown:N,submitCountAtLastAppearance:q}}))},[J]),D=NC.useCallback(()=>{if(Z!=="closed")return;I("open"),K(Date.now(),B),X.current=B59(),BA("tengu_feedback_survey_event",{event_type:"appeared",appearance_id:X.current,last_assistant_message_id:G})},[Z,G,B,K]),H=NC.useCallback(()=>{I("thanks"),setTimeout(()=>I("closed"),W.hideThanksAfterMs)},[W.hideThanksAfterMs]),C=S3(),E=NC.useMemo(()=>{if(W.onForModels.length===0)return!1;if(W.onForModels.includes("*"))return!0;return W.onForModels.includes(C)},[W.onForModels,C]),z=NC.useMemo(()=>{if(Z!=="closed")return!1;if(Q)return!1;if(process.env.CLAUDE_FORCE_DISPLAY_SURVEY&&!Y.feedbackSurvey.timeLastShown)return!0;if(!E)return!1;if(V0(process.env.CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY))return!1;if(hX())return!1;if(Y.feedbackSurvey.timeLastShown){if(Y.feedbackSurvey.submitCountAtLastAppearance!==null&&B<Y.feedbackSurvey.submitCountAtLastAppearance+W.minUserTurnsBetweenFeedback)return!1}else{if(Date.now()-F.current<W.minTimeBeforeFeedbackMs)return!1;if(B<V.current+W.minUserTurnsBeforeFeedback)return!1}if(Math.random()>W.probability)return!1;let N=L1().feedbackSurveyState;if(N?.lastShownTime){if(Date.now()-N.lastShownTime<W.minTimeBetweenGlobalFeedbackMs)return!1}return!0},[Z,Q,E,Y.feedbackSurvey.timeLastShown,Y.feedbackSurvey.submitCountAtLastAppearance,B,W.minTimeBetweenGlobalFeedbackMs,W.minUserTurnsBetweenFeedback,W.minTimeBeforeFeedbackMs,W.minUserTurnsBeforeFeedback,W.probability]);NC.useEffect(()=>{if(z)D()},[z,D]);let w=NC.useCallback((N)=>{if(K(Date.now(),B),N==="dismissed")I("closed");else H();BA("tengu_feedback_survey_event",{event_type:"responded",appearance_id:X.current,response:N,last_assistant_message_id:G})},[G,H,K,B]);return{state:Z,handleSelect:w}}var NC,RT3;var Z59=L(()=>{O9();w0();St();jQ();s2();hQ();H9();nQ();NC=GA(VA(),1),RT3={minTimeBeforeFeedbackMs:600000,minTimeBetweenGlobalFeedbackMs:1e8,minUserTurnsBeforeFeedback:5,minUserTurnsBetweenFeedback:10,hideThanksAfterMs:3000,onForModels:["*"],probability:0.005}});function I59({onSelect:A,inputValue:Q,setInputValue:B}){let G=zK.useRef(Q);return zK.useEffect(()=>{if(Q!==G.current){let Z=Q.slice(-1);if(gW0(Z))B(Q.slice(0,-1)),A(PT3[Z])}},[Q,A,B]),zK.default.createElement(j,{flexDirection:"column",marginTop:1},zK.default.createElement(j,null,zK.default.createElement($,null,oA.cyan("● ")),zK.default.createElement($,{bold:!0},"How is Claude doing this session? (optional)")),zK.default.createElement(j,{marginLeft:2},zK.default.createElement(j,{width:10},zK.default.createElement($,null,oA.cyan("1"),": Bad")),zK.default.createElement(j,{width:10},zK.default.createElement($,null,oA.cyan("2"),": Fine")),zK.default.createElement(j,{width:10},zK.default.createElement($,null,oA.cyan("3"),": Good")),zK.default.createElement(j,null,zK.default.createElement($,null,oA.cyan("0"),": Dismiss"))))}var zK,TT3,PT3,gW0=(A)=>TT3.includes(A);var Y59=L(()=>{J9();hA();zK=GA(VA(),1),TT3=["0","1","2","3"],PT3={"0":"dismissed","1":"bad","2":"fine","3":"good"}});function J59({state:A,handleSelect:Q,inputValue:B,setInputValue:G}){if(A==="closed")return null;if(A==="thanks")return TjA.default.createElement(j,{marginTop:1,flexDirection:"column"},TjA.default.createElement($,{color:"success"},"✓ Thanks for helping make Claude better!"),TjA.default.createElement($,{dimColor:!0},"Use /feedback to share detailed feedback or file a bug."));if(B&&!gW0(B))return null;return TjA.default.createElement(I59,{onSelect:Q,inputValue:B,setInputValue:G})}var TjA;var W59=L(()=>{hA();Y59();TjA=GA(VA(),1)});function F59(){let{addNotification:A}=_Z();X59.useEffect(()=>{yy().then((Q)=>{Q.forEach((B,G)=>{let Z="low";if(B.type==="error"||B.userActionRequired)Z="high";else if(B.type==="path"||B.type==="alias")Z="medium";A({key:`install-message-${G}-${B.type}`,text:B.message,priority:Z,color:B.type==="error"?"error":"warning"})})})},[A])}var X59;var V59=L(()=>{UU();xP();X59=GA(VA(),1)});function K59(){return L1().tipsHistory||{}}function jT3(A){let Q=L1();d0({...Q,tipsHistory:A})}function D59(A){let Q=K59(),B=L1().numStartups;Q[A]=B,jT3(Q)}function ST3(A){return K59()[A]||0}function NI1(A){let Q=ST3(A);if(Q===0)return 1/0;return L1().numStartups-Q}var uW0=L(()=>{jQ()});import{dirname as kT3,join as Bx}from"path";function MI1(){return Bx(PQ(),"plugins",yT3)}function dW0(){return Bx(PQ(),"plugins",xT3)}function PjA(){let A=OA(),Q=MI1();if(!A.existsSync(Q))return null;let B=A.readFileSync(Q,{encoding:"utf-8"}),G=JSON.parse(B);return{version:typeof G?.version==="number"?G.version:1,data:G}}function vT3(){let A=OA(),Q=dW0();if(!A.existsSync(Q))return null;let B=A.readFileSync(Q,{encoding:"utf-8"}),G=JSON.parse(B);return{version:typeof G?.version==="number"?G.version:2,data:G}}function bT3(A){let Q={};for(let[B,G]of Object.entries(A.plugins)){let Z=G[0];if(Z)Q[B]={version:Z.version||"unknown",installedAt:Z.installedAt||new Date().toISOString(),lastUpdated:Z.lastUpdated,installPath:Z.installPath,gitCommitSha:Z.gitCommitSha,isLocal:Z.isLocal}}return Q}function dXA(){if(Pg!==null)return Pg.plugins;let A=MI1();try{let Q=PjA();if(!Q)return g(`installed_plugins.json doesn't exist yet at ${A}, returning empty object`),Pg={version:1,plugins:{}},Pg.plugins;if(Q.version===2){let G=RlA.parse(Q.data),Z=bT3(G);return Pg={version:1,plugins:Z},g(`Loaded ${Object.keys(Z).length} installed plugins from V2 file at ${A}`),Z}let B=QzA.parse(Q.data);return Pg=B,g(`Loaded ${Object.keys(B.plugins).length} installed plugins from ${A} (schema version ${B.version})`),B.plugins}catch(Q){let B=Q instanceof Error?Q.message:String(Q);return g(`Failed to load installed_plugins.json: ${B}. Starting with empty state.`,{level:"error"}),e(Q instanceof Error?Q:Error(`Failed to load installed_plugins.json: ${B}`)),Pg={version:1,plugins:{}},Pg.plugins}}function OI1(A){let Q=OA(),B=MI1();try{let G=Bx(PQ(),"plugins");if(!Q.existsSync(G))Q.mkdirSync(G);let Z={version:1,plugins:A},I=JSON.stringify(Z,null,2);Q.writeFileSync(B,I,{encoding:"utf-8",flush:!0}),Pg=Z,g(`Saved ${Object.keys(A).length} installed plugins to ${B} (schema version ${qQA})`)}catch(G){let Z=G instanceof Error?G.message:String(G);throw e(G instanceof Error?G:Error(`Failed to save installed_plugins.json: ${Z}`)),G}}function cW0(A){let Q={};for(let[B,G]of Object.entries(A.plugins)){let Z=klA(B,G.version);Q[B]=[{scope:"user",installPath:Z,version:G.version,installedAt:G.installedAt,lastUpdated:G.lastUpdated,gitCommitSha:G.gitCommitSha,isLocal:G.isLocal}]}return{version:2,plugins:Q}}function fT3(A){return cW0(A)}function NQA(){if(M$!==null)return M$;if(j8("tengu_enable_versioned_plugins"))return hT3();return gT3()}function hT3(){let A=dW0();try{let Q=vT3();if(Q){let G=RlA.parse(Q.data);return M$=G,g(`Loaded ${Object.keys(G.plugins).length} installed plugins from V2 file at ${A}`),G}let B=PjA();if(B){let G=QzA.parse(B.data),Z=cW0(G);return C59(Z),g(`Migrated ${Object.keys(G.plugins).length} plugins from V1 to V2 file`),Z}return g("Neither V1 nor V2 installed_plugins file exists, returning empty V2 object"),M$={version:2,plugins:{}},M$}catch(Q){let B=Q instanceof Error?Q.message:String(Q);return g(`Failed to load installed_plugins_v2.json: ${B}. Starting with empty state.`,{level:"error"}),e(Q instanceof Error?Q:Error(`Failed to load installed_plugins_v2.json: ${B}`)),M$={version:2,plugins:{}},M$}}function gT3(){let A=MI1();try{let Q=PjA();if(!Q)return g(`installed_plugins.json doesn't exist yet at ${A}, returning empty V2 object`),M$={version:2,plugins:{}},M$;let B=QzA.parse(Q.data),G=fT3(B);return M$=G,g(`Loaded ${Object.keys(B.plugins).length} plugins from V1 file and wrapped as V2`),G}catch(Q){let B=Q instanceof Error?Q.message:String(Q);return g(`Failed to load installed_plugins.json (V2): ${B}. Starting with empty state.`,{level:"error"}),e(Q instanceof Error?Q:Error(`Failed to load installed_plugins.json (V2): ${B}`)),M$={version:2,plugins:{}},M$}}function C59(A){let Q=OA(),B=dW0();try{let G=Bx(PQ(),"plugins");if(!Q.existsSync(G))Q.mkdirSync(G);let Z=JSON.stringify(A,null,2);Q.writeFileSync(B,Z,{encoding:"utf-8",flush:!0}),M$=A,g(`Saved ${Object.keys(A.plugins).length} installed plugins to V2 file at ${B}`)}catch(G){let Z=G instanceof Error?G.message:String(G);throw e(G instanceof Error?G:Error(`Failed to save installed_plugins_v2.json: ${Z}`)),G}}function E59(A){let Q=j8("tengu_enable_versioned_plugins"),B=dT3(A);if(OI1(B),Q)C59(A);M$=A}function uT3(A){let Q=Ec(),[B]=A.split("@");if(!B)return Q;let G=B.replace(/[^a-zA-Z0-9-_]/g,"-");return Bx(Q,G)}function mT3(A){let[Q,B]=A.split("@");if(!Q||!B)return"";let G=Bx(PQ(),"plugins","marketplaces");return Bx(G,B,Q)}function dT3(A){let Q={};for(let[B,G]of Object.entries(A.plugins)){let Z=G[0];if(Z){let I=Z.isLocal?mT3(B):uT3(B);Q[B]={version:Z.version||"unknown",installedAt:Z.installedAt||new Date().toISOString(),lastUpdated:Z.lastUpdated,installPath:I,gitCommitSha:Z.gitCommitSha,isLocal:Z.isLocal}}}return Q}function RI1(A,Q,B){let G=NQA(),Z=G.plugins[A];if(!Z)return;if(G.plugins[A]=Z.filter((I)=>!(I.scope===Q&&I.projectPath===B)),G.plugins[A].length===0)delete G.plugins[A];E59(G),g(`Removed installation for ${A} at scope ${Q}`)}function pW0(){if(mW0===null)mW0=NQA();return mW0}async function z59(){try{await lW0()}catch(A){e(A instanceof Error?A:Error(String(A)))}if(j8("tengu_enable_versioned_plugins")){let A=pW0();g(`Initialized versioned plugins system with ${Object.keys(A.plugins).length} plugins`)}}function cT3(A){return dXA()[A]}function jg(A){return cT3(A)!==void 0}function U59(A,Q){let B=dXA(),G=A in B;B[A]=Q,OI1(B),g(`${G?"Updated":"Added"} installed plugin: ${A}`)}function $59(A){let Q=dXA(),B=Q[A];if(B)delete Q[A],OI1(Q),g(`Removed installed plugin: ${A}`);return B}function TI1(A){let Q=OA();try{if(Q.existsSync(A)){Q.rmSync(A,{recursive:!0,force:!0}),g(`Deleted plugin cache at ${A}`);let B=Ec();if(A.includes("/cache/")&&A.startsWith(B)){let G=kT3(A);if(Q.existsSync(G)&&G!==B&&G.startsWith(B)){if(Q.readdirSync(G).length===0)Q.rmdirSync(G),g(`Deleted empty plugin directory at ${G}`)}}}else g(`Plugin cache at ${A} doesn't exist, skipping deletion`)}catch(B){let G=B instanceof Error?B.message:String(B);throw e(B instanceof Error?B:Error(`Failed to delete plugin cache: ${G}`)),Error(`Failed to delete plugin cache at ${A}: ${G}`)}}function pT3(A){if(Object.keys(A).length===0)return!0;let Q=PjA();if(!Q)return!1;if(Q.version!==qQA)return!1;try{let G=Q.data?.plugins||{};for(let Z of Object.keys(A))if(Z.includes("@")&&!(Z in G))return!1}catch{return!1}return!0}function lT3(A,Q){if(!A.includes("@"))return!1;if(A in Q)return g(`Plugin ${A} already in installed_plugins.json, skipping`),!1;return!0}async function LI1(A){try{let Q=await ZQ("git",["-C",A,"rev-parse","HEAD"]);if(Q.code===0&&Q.stdout)return Q.stdout.trim();return}catch(Q){g(`Failed to get git commit SHA from ${A}: ${Q}`);return}}function H59(A,Q){let B=OA(),G=Bx(A,".claude-plugin","plugin.json");if(!B.existsSync(G))return"unknown";try{let Z=B.readFileSync(G,{encoding:"utf-8"});return JSON.parse(Z).version||"unknown"}catch{return g(`Could not read version from manifest for ${Q}`),"unknown"}}async function lW0(){let Q=c0().enabledPlugins||{},B=PjA(),G=B!==null,Z=B?.version??0;if(pT3(Q))return;if(!G||Z!==qQA)g(`Schema version mismatch (current: ${Z}, expected: ${qQA}), syncing installed_plugins.json`);else g("Syncing installed_plugins.json with enabledPlugins from settings");let I=OA(),Y=dXA(),J=new Date().toISOString(),W=0,X=0;for(let[F]of Object.entries(Q)){if(!lT3(F,Y)){X++;continue}let V=F.split("@"),K=V[0];if(!K||V.length!==2){g(`Invalid plugin ID format: ${F}, skipping migration`),X++;continue}try{let D,H="unknown",C=void 0,E=!1;try{let z=await Cc(F);if(!z){g(`Plugin ${F} not found in any marketplace, skipping`),X++;continue}let{entry:w,marketplaceInstallLocation:N}=z;if(typeof w.source==="string")E=!0,D=Bx(N,w.source),H=H59(D,F),C=await LI1(D);else{let q=Ec(),R=K.replace(/[^a-zA-Z0-9-_]/g,"-"),P=Bx(q,R);if(!I.existsSync(P)){g(`External plugin ${F} not in cache, skipping`),X++;continue}D=P,H=H59(P,F),C=await LI1(P)}if(H==="unknown"&&C)H=C.substring(0,12),g(`Using git SHA as version for ${F}: ${H}`)}catch(z){g(`Failed to get plugin info for ${F}: ${z}, skipping`),X++;continue}Y[F]={version:H,installedAt:J,lastUpdated:J,installPath:D,gitCommitSha:C,isLocal:E},W++,g(`Added ${F} to installed_plugins.json`)}catch(D){let H=D instanceof Error?D.message:String(D);g(`Failed to migrate plugin ${F}: ${H}`,{level:"warn"}),X++}}if(W>0||!G||Z!==qQA)if(j8("tengu_enable_versioned_plugins")){let V=cW0({version:1,plugins:Y});E59(V),g(`Sync completed (V2): ${W} plugins added to installed_plugins.json, ${X} skipped`)}else if(OI1(Y),!G||Z!==qQA)g(`Updated installed_plugins.json to schema version ${qQA} (${W} plugins added, ${X} skipped)`);else g(`Sync completed: ${W} plugins added to installed_plugins.json, ${X} skipped`);else if(X>0)g(`Sync completed: All ${X} plugins already in installed_plugins.json`)}var yT3="installed_plugins.json",xT3="installed_plugins_v2.json",qQA=1,Pg=null,M$=null,mW0=null;var Ia=L(()=>{o0();D0();u1();hQ();O9();ho();RB();NF();I6();kH()});async function iT3(){return"claude-code"in await TZ()}async function nT3(){let A=await ZQ("rg",["--files","--glob","*.{html,css,htm}","--max-count=1"],{timeout:5000});return A.code===0&&A.stdout.trim().length>0}async function PI1(){let A=[...aT3,...sT3],Q=await Promise.all(A.map((B)=>B.isRelevant()));return A.filter((B,G)=>Q[G]).filter((B)=>NI1(B.id)>=B.cooldownSessions)}var aT3,sT3;var iW0=L(()=>{jQ();ED();Ia();kH();I6();s2();DGA();f5();yJ();s5();jp();RB();uW0();iU();D0();mUA();aT3=[{id:"new-user-warmup",content:async()=>"Start with small features or bug fixes, tell Claude to propose a plan, and verify its suggested edits",cooldownSessions:3,async isRelevant(){return L1().numStartups<10}},{id:"plan-mode-for-complex-tasks",content:async()=>`Use Plan Mode to prepare for a complex request before making changes. Press ${EU.displayText} twice to enable.`,cooldownSessions:5,isRelevant:async()=>{let A=L1();return(A.lastPlanModeUse?(Date.now()-A.lastPlanModeUse)/86400000:1/0)>7}},{id:"default-permission-mode-config",content:async()=>"Use /config to change your default permission mode (including Plan Mode)",cooldownSessions:10,isRelevant:async()=>{try{let A=L1(),Q=c0(),B=Boolean(A.lastPlanModeUse),G=Boolean(Q?.permissions?.defaultMode);return B&&!G}catch(A){return g(`Failed to check default-permission-mode-config tip relevance: ${A}`,{level:"warn"}),!1}}},{id:"git-worktrees",content:async()=>"Use git worktrees to run multiple Claude sessions in parallel.",cooldownSessions:10,isRelevant:async()=>{try{let A=L1();return await zUA()<=1&&A.numStartups>50}catch(A){return!1}}},{id:"terminal-setup",content:async()=>m0.terminal==="Apple_Terminal"?"Run /terminal-setup to enable convenient terminal integration like Option + Enter for new line and more":"Run /terminal-setup to enable convenient terminal integration like Shift + Enter for new line and more",cooldownSessions:10,async isRelevant(){let A=L1();if(m0.terminal==="Apple_Terminal")return Tp.isEnabled()&&!A.optionAsMetaKeyInstalled;return Tp.isEnabled()&&!A.shiftEnterKeyBindingInstalled}},{id:"shift-enter",content:async()=>m0.terminal==="Apple_Terminal"?"Press Option+Enter to send a multi-line message":"Press Shift+Enter to send a multi-line message",cooldownSessions:10,async isRelevant(){let A=L1();return Boolean((m0.terminal==="Apple_Terminal"?A.optionAsMetaKeyInstalled:A.shiftEnterKeyBindingInstalled)&&A.numStartups>3)}},{id:"shift-enter-setup",content:async()=>m0.terminal==="Apple_Terminal"?"Run /terminal-setup to enable Option+Enter for new lines":"Run /terminal-setup to enable Shift+Enter for new lines",cooldownSessions:10,async isRelevant(){if(!t$A())return!1;let A=L1();return!(m0.terminal==="Apple_Terminal"?A.optionAsMetaKeyInstalled:A.shiftEnterKeyBindingInstalled)}},{id:"memory-command",content:async()=>"Use /memory to view and manage Claude memory",cooldownSessions:15,async isRelevant(){return L1().memoryUsageCount<=0}},{id:"theme-command",content:async()=>"Use /theme to change the color theme",cooldownSessions:20,isRelevant:async()=>!0},{id:"status-line",content:async()=>"Use /statusline to set up a custom status line that will display beneath the input box",cooldownSessions:25,isRelevant:async()=>c0().statusLine===void 0},{id:"stickers-command",content:async()=>"Use /stickers to order AICO swag",cooldownSessions:20,isRelevant:async()=>!0},{id:"prompt-queue",content:async()=>"Hit Enter to queue up additional messages while Claude is working.",cooldownSessions:5,async isRelevant(){return L1().promptQueueUseCount<=3}},{id:"enter-to-steer-in-relatime",content:async()=>"Send messages to Claude while it works to steer Claude in real-time",cooldownSessions:20,isRelevant:async()=>!0},{id:"todo-list",content:async()=>"Ask Claude to create a todo list when working on complex tasks to track progress and remain on track",cooldownSessions:20,isRelevant:async()=>!0},{id:"vscode-command-install",content:async()=>`Open the Command Palette (Cmd+Shift+P) and run "Shell Command: Install '${m0.terminal==="vscode"?"code":m0.terminal}' command in PATH" to enable IDE integration`,cooldownSessions:0,async isRelevant(){if(!uLA())return!1;if(uQ()!=="macos")return!1;switch(m0.terminal){case"vscode":return!z62();case"cursor":return!C62();case"windsurf":return!E62();default:return!1}}},{id:"ide-upsell-external-terminal",content:async()=>"Connect Claude to your IDE · /ide",cooldownSessions:4,async isRelevant(){if(_F())return!1;if(qB1().length!==0)return!1;return LB1().length>0}},{id:"# for memory",content:async()=>"Want Claude to remember something? Hit # to add preferences, tools, and instructions to Claude's memory",cooldownSessions:10,isRelevant:async()=>L1().memoryUsageCount<=10},{id:"install-github-app",content:async()=>"Run /install-github-app to tag @claude right from your Github issues and PRs",cooldownSessions:10,isRelevant:async()=>!L1().githubActionSetupCount},{id:"permissions",content:async()=>"Use /permissions to pre-approve and pre-deny bash, edit, and MCP tools",cooldownSessions:10,async isRelevant(){return L1().numStartups>10}},{id:"drag-and-drop-images",content:async()=>"Did you know you can drag and drop image files into your terminal?",cooldownSessions:10,isRelevant:async()=>!0},{id:"paste-images-mac",content:async()=>"Paste images into AICO using control+v (not cmd+v!)",cooldownSessions:10,isRelevant:async()=>uQ()==="macos"},{id:"double-esc",content:async()=>"Double-tap esc to rewind the conversation to a previous point in time",cooldownSessions:10,isRelevant:async()=>!JG()},{id:"double-esc-code-restore",content:async()=>"Double-tap esc to rewind the code and/or conversation to a previous point in time",cooldownSessions:10,isRelevant:async()=>JG()},{id:"continue",content:async()=>"Run claude --continue or claude --resume to resume a conversation",cooldownSessions:10,isRelevant:async()=>!0},{id:"custom-commands",content:async()=>"Create custom slash commands by adding .md files to .claude/commands/ in your project or ~/.claude/commands/ for commands that work in any project",cooldownSessions:15,async isRelevant(){return L1().numStartups>10}},{id:"shift-tab",content:async()=>`Hit ${EU.displayText} to cycle between default mode, auto-accept edit mode, and plan mode`,cooldownSessions:10,isRelevant:async()=>!0},{id:"image-paste",content:async()=>`Use ${Ye.displayText} to paste images from your clipboard`,cooldownSessions:20,isRelevant:async()=>!0},{id:"tab-toggle-thinking",content:async()=>"Hit tab to toggle thinking mode on and off",cooldownSessions:10,isRelevant:async()=>!0},{id:"ultrathink-keyword",content:async()=>"Type 'ultrathink' in your message to enable thinking for just that turn",cooldownSessions:10,isRelevant:async()=>!0},{id:"custom-agents",content:async()=>"Use /agents to optimize specific tasks. Eg. Software Architect, Code Writer, Code Reviewer",cooldownSessions:15,async isRelevant(){return L1().numStartups>5}},{id:"opusplan-mode-reminder",content:async()=>`Your default model setting is Opus Plan Mode. Press ${EU.displayText} twice to activate Plan Mode and plan with Claude Opus.`,cooldownSessions:2,async isRelevant(){let A=L1(),B=ot()==="opusplan",G=A.lastPlanModeUse?(Date.now()-A.lastPlanModeUse)/86400000:1/0;return B&&G>3}},{id:"frontend-design-plugin",content:async(A)=>{let Q=await iT3(),B=tQ("suggestion",A.theme);if(!Q)return`Working with HTML/CSS? Add the frontend-design plugin:
2839
2839
  ${B("/plugin marketplace add anthropics/claude-code")}
2840
2840
  ${B("/plugin install frontend-design@claude-code-plugins")}`;return`Working with HTML/CSS? Install the frontend-design plugin:
2841
2841
  ${B("/plugin install frontend-design@claude-code-plugins")}`},cooldownSessions:3,async isRelevant(){if(jg("frontend-design@claude-code-plugins"))return!1;return nT3()}}],sT3=[]});function rT3(A){if(A.length===0)return;if(A.length===1)return A[0];let Q=A.map((B)=>({tip:B,sessions:NI1(B.id)}));return Q.sort((B,G)=>G.sessions-B.sessions),Q[0]?.tip}async function w59(){if(c0().spinnerTipsEnabled===!1)return;let A=await PI1();if(A.length===0)return;return rT3(A)}function q59(A){D59(A.id),BA("tengu_tip_shown",{tipIdLength:A.id,cooldownSessions:A.cooldownSessions})}var N59=L(()=>{uW0();w0();jQ();RB();gXA();iW0()});function M59(){let[A,Q]=_Q(),{toolPermissionContext:B}=A;L59.useEffect(()=>{nW0(B,Q)},[])}var L59,nW0;var O59=L(()=>{o2();H9();zWA();L59=GA(VA(),1),nW0=t1(async(A,Q)=>{if(!A.isBypassPermissionsModeAvailable)return;if(!await aW0())return;Q((G)=>{return{...G,toolPermissionContext:R59(G.toolPermissionContext)}})})});function T59(A,Q,B){let G=jI1.useRef(!1);jI1.useEffect(()=>{if(!JG()||G.current)return;if(G.current=!0,A)$YA(A,B)},[Q,A,B])}var jI1;var P59=L(()=>{iU();jI1=GA(VA(),1)});function j59({hostPattern:{host:A},onUserResponse:Q}){function B(Z){switch(Z){case"yes":Q({allow:!0,persistToSettings:!1});break;case"yes-dont-ask-again":Q({allow:!0,persistToSettings:!0});break;case"no":Q({allow:!1,persistToSettings:!1});break}}let G=[{label:"Yes",value:"yes"},{label:`Yes, and don't ask again for ${oA.bold(A)}`,value:"yes-dont-ask-again"},{label:`No, and tell Claude what to do differently ${oA.bold.dim("(esc)")}`,value:"no"}];return nF.createElement(hJ,{title:"Network request outside of sandbox"},nF.createElement(j,{flexDirection:"column",paddingX:2,paddingY:1},nF.createElement(j,null,nF.createElement($,{dimColor:!0},"Host:"),nF.createElement($,null," ",A)),nF.createElement(j,{marginTop:1},nF.createElement($,null,"Do you want to allow this connection?")),nF.createElement(j,null,nF.createElement(M0,{options:G,onChange:B,onCancel:()=>{Q({allow:!1,persistToSettings:!1})}}))))}var nF;var S59=L(()=>{hA();T5();CO();J9();w0();nF=GA(VA(),1)});var oT3,cyZ,SI1=604800000,_59=86400000,sW0;var jjA=L(()=>{oT3=Math.pow(10,8)*24*60*60*1000,cyZ=-oT3,sW0=Symbol.for("constructDateFrom")});function O$(A,Q){if(typeof A==="function")return A(Q);if(A&&typeof A==="object"&&sW0 in A)return A[sW0](Q);if(A instanceof Date)return new A.constructor(Q);return new Date(Q)}var Ya=L(()=>{jjA()});function nJ(A,Q){return O$(Q||A,A)}var oq=L(()=>{Ya()});var k59=()=>{};var y59=()=>{};var x59=()=>{};var v59=()=>{};var b59=()=>{};var f59=()=>{};var h59=()=>{};var g59=()=>{};var u59=()=>{};function Ja(){return tT3}var tT3;var SjA=L(()=>{tT3={}});function Sg(A,Q){let B=Ja(),G=Q?.weekStartsOn??Q?.locale?.options?.weekStartsOn??B.weekStartsOn??B.locale?.options?.weekStartsOn??0,Z=nJ(A,Q?.in),I=Z.getDay(),Y=(I<G?7:0)+I-G;return Z.setDate(Z.getDate()-Y),Z.setHours(0,0,0,0),Z}var cXA=L(()=>{SjA();oq()});function LQA(A,Q){return Sg(A,{...Q,weekStartsOn:1})}var _jA=L(()=>{cXA()});function _I1(A,Q){let B=nJ(A,Q?.in),G=B.getFullYear(),Z=O$(B,0);Z.setFullYear(G+1,0,4),Z.setHours(0,0,0,0);let I=LQA(Z),Y=O$(B,0);Y.setFullYear(G,0,4),Y.setHours(0,0,0,0);let J=LQA(Y);if(B.getTime()>=I.getTime())return G+1;else if(B.getTime()>=J.getTime())return G;else return G-1}var kI1=L(()=>{Ya();_jA();oq()});function rW0(A){let Q=nJ(A),B=new Date(Date.UTC(Q.getFullYear(),Q.getMonth(),Q.getDate(),Q.getHours(),Q.getMinutes(),Q.getSeconds(),Q.getMilliseconds()));return B.setUTCFullYear(Q.getFullYear()),+A-+B}var m59=L(()=>{oq()});function d59(A,...Q){let B=O$.bind(null,A||Q.find((G)=>typeof G==="object"));return Q.map(B)}var c59=L(()=>{Ya()});function oW0(A,Q){let B=nJ(A,Q?.in);return B.setHours(0,0,0,0),B}var tW0=L(()=>{oq()});function p59(A,Q,B){let[G,Z]=d59(B?.in,A,Q),I=oW0(G),Y=oW0(Z),J=+I-rW0(I),W=+Y-rW0(Y);return Math.round((J-W)/_59)}var eW0=L(()=>{m59();c59();jjA();tW0()});function l59(A,Q){let B=_I1(A,Q),G=O$(Q?.in||A,0);return G.setFullYear(B,0,4),G.setHours(0,0,0,0),LQA(G)}var AX0=L(()=>{Ya();kI1();_jA()});var i59=()=>{};var n59=()=>{};var a59=()=>{};var s59=()=>{};var r59=()=>{};var o59=()=>{};var t59=()=>{};var e59=()=>{};var A39=()=>{};var Q39=()=>{};var B39=()=>{};var G39=()=>{};var Z39=()=>{};var I39=()=>{};var Y39=()=>{};var J39=()=>{};var W39=()=>{};var X39=()=>{};function F39(A){return A instanceof Date||typeof A==="object"&&Object.prototype.toString.call(A)==="[object Date]"}var QX0=()=>{};function V39(A){return!(!F39(A)&&typeof A!=="number"||isNaN(+nJ(A)))}var BX0=L(()=>{QX0();oq()});var K39=()=>{};var D39=()=>{};var H39=()=>{};var C39=()=>{};var E39=()=>{};var z39=()=>{};var U39=()=>{};var $39=()=>{};var w39=()=>{};var q39=()=>{};var N39=()=>{};var L39=()=>{};var M39=()=>{};var O39=()=>{};var R39=()=>{};var T39=()=>{};var P39=()=>{};var j39=()=>{};var S39=()=>{};var _39=()=>{};var k39=()=>{};var y39=()=>{};var x39=()=>{};var v39=()=>{};var b39=()=>{};var f39=()=>{};var h39=()=>{};var g39=()=>{};var u39=()=>{};var m39=()=>{};var d39=()=>{};var c39=()=>{};var p39=()=>{};function l39(A,Q){let B=nJ(A,Q?.in);return B.setFullYear(B.getFullYear(),0,1),B.setHours(0,0,0,0),B}var GX0=L(()=>{oq()});var i39=()=>{};var n39=()=>{};var a39=()=>{};var s39=()=>{};var r39=()=>{};var o39=()=>{};var t39=()=>{};var e39=()=>{};var A79=()=>{};var Q79=()=>{};var B79=()=>{};var G79=()=>{};var Z79=()=>{};var eT3,I79=(A,Q,B)=>{let G,Z=eT3[A];if(typeof Z==="string")G=Z;else if(Q===1)G=Z.one;else G=Z.other.replace("{{count}}",Q.toString());if(B?.addSuffix)if(B.comparison&&B.comparison>0)return"in "+G;else return G+" ago";return G};var Y79=L(()=>{eT3={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}}});function yI1(A){return(Q={})=>{let B=Q.width?String(Q.width):A.defaultWidth;return A.formats[B]||A.formats[A.defaultWidth]}}var AP3,QP3,BP3,J79;var W79=L(()=>{AP3={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},QP3={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},BP3={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},J79={date:yI1({formats:AP3,defaultWidth:"full"}),time:yI1({formats:QP3,defaultWidth:"full"}),dateTime:yI1({formats:BP3,defaultWidth:"full"})}});var GP3,X79=(A,Q,B,G)=>GP3[A];var F79=L(()=>{GP3={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"}});function pXA(A){return(Q,B)=>{let G=B?.context?String(B.context):"standalone",Z;if(G==="formatting"&&A.formattingValues){let Y=A.defaultFormattingWidth||A.defaultWidth,J=B?.width?String(B.width):Y;Z=A.formattingValues[J]||A.formattingValues[Y]}else{let Y=A.defaultWidth,J=B?.width?String(B.width):A.defaultWidth;Z=A.values[J]||A.values[Y]}let I=A.argumentCallback?A.argumentCallback(Q):Q;return Z[I]}}var ZP3,IP3,YP3,JP3,WP3,XP3,FP3=(A,Q)=>{let B=Number(A),G=B%100;if(G>20||G<10)switch(G%10){case 1:return B+"st";case 2:return B+"nd";case 3:return B+"rd"}return B+"th"},V79;var K79=L(()=>{ZP3={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},IP3={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},YP3={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},JP3={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},WP3={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},XP3={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},V79={ordinalNumber:FP3,era:pXA({values:ZP3,defaultWidth:"wide"}),quarter:pXA({values:IP3,defaultWidth:"wide",argumentCallback:(A)=>A-1}),month:pXA({values:YP3,defaultWidth:"wide"}),day:pXA({values:JP3,defaultWidth:"wide"}),dayPeriod:pXA({values:WP3,defaultWidth:"wide",formattingValues:XP3,defaultFormattingWidth:"wide"})}});function lXA(A){return(Q,B={})=>{let G=B.width,Z=G&&A.matchPatterns[G]||A.matchPatterns[A.defaultMatchWidth],I=Q.match(Z);if(!I)return null;let Y=I[0],J=G&&A.parsePatterns[G]||A.parsePatterns[A.defaultParseWidth],W=Array.isArray(J)?KP3(J,(V)=>V.test(Y)):VP3(J,(V)=>V.test(Y)),X;X=A.valueCallback?A.valueCallback(W):W,X=B.valueCallback?B.valueCallback(X):X;let F=Q.slice(Y.length);return{value:X,rest:F}}}function VP3(A,Q){for(let B in A)if(Object.prototype.hasOwnProperty.call(A,B)&&Q(A[B]))return B;return}function KP3(A,Q){for(let B=0;B<A.length;B++)if(Q(A[B]))return B;return}function D79(A){return(Q,B={})=>{let G=Q.match(A.matchPattern);if(!G)return null;let Z=G[0],I=Q.match(A.parsePattern);if(!I)return null;let Y=A.valueCallback?A.valueCallback(I[0]):I[0];Y=B.valueCallback?B.valueCallback(Y):Y;let J=Q.slice(Z.length);return{value:Y,rest:J}}}var DP3,HP3,CP3,EP3,zP3,UP3,$P3,wP3,qP3,NP3,LP3,MP3,H79;var C79=L(()=>{DP3=/^(\d+)(th|st|nd|rd)?/i,HP3=/\d+/i,CP3={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},EP3={any:[/^b/i,/^(a|c)/i]},zP3={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},UP3={any:[/1/i,/2/i,/3/i,/4/i]},$P3={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},wP3={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},qP3={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},NP3={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},LP3={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},MP3={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},H79={ordinalNumber:D79({matchPattern:DP3,parsePattern:HP3,valueCallback:(A)=>parseInt(A,10)}),era:lXA({matchPatterns:CP3,defaultMatchWidth:"wide",parsePatterns:EP3,defaultParseWidth:"any"}),quarter:lXA({matchPatterns:zP3,defaultMatchWidth:"wide",parsePatterns:UP3,defaultParseWidth:"any",valueCallback:(A)=>A+1}),month:lXA({matchPatterns:$P3,defaultMatchWidth:"wide",parsePatterns:wP3,defaultParseWidth:"any"}),day:lXA({matchPatterns:qP3,defaultMatchWidth:"wide",parsePatterns:NP3,defaultParseWidth:"any"}),dayPeriod:lXA({matchPatterns:LP3,defaultMatchWidth:"any",parsePatterns:MP3,defaultParseWidth:"any"})}});var ZX0;var E79=L(()=>{Y79();W79();F79();K79();C79();ZX0={code:"en-US",formatDistance:I79,formatLong:J79,formatRelative:X79,localize:V79,match:H79,options:{weekStartsOn:0,firstWeekContainsDate:1}}});var z79=L(()=>{E79()});function U79(A,Q){let B=nJ(A,Q?.in);return p59(B,l39(B))+1}var IX0=L(()=>{eW0();GX0();oq()});function $79(A,Q){let B=nJ(A,Q?.in),G=+LQA(B)-+l59(B);return Math.round(G/SI1)+1}var YX0=L(()=>{jjA();_jA();AX0();oq()});function xI1(A,Q){let B=nJ(A,Q?.in),G=B.getFullYear(),Z=Ja(),I=Q?.firstWeekContainsDate??Q?.locale?.options?.firstWeekContainsDate??Z.firstWeekContainsDate??Z.locale?.options?.firstWeekContainsDate??1,Y=O$(Q?.in||A,0);Y.setFullYear(G+1,0,I),Y.setHours(0,0,0,0);let J=Sg(Y,Q),W=O$(Q?.in||A,0);W.setFullYear(G,0,I),W.setHours(0,0,0,0);let X=Sg(W,Q);if(+B>=+J)return G+1;else if(+B>=+X)return G;else return G-1}var vI1=L(()=>{SjA();Ya();cXA();oq()});function w79(A,Q){let B=Ja(),G=Q?.firstWeekContainsDate??Q?.locale?.options?.firstWeekContainsDate??B.firstWeekContainsDate??B.locale?.options?.firstWeekContainsDate??1,Z=xI1(A,Q),I=O$(Q?.in||A,0);return I.setFullYear(Z,0,G),I.setHours(0,0,0,0),Sg(I,Q)}var JX0=L(()=>{SjA();Ya();vI1();cXA()});function q79(A,Q){let B=nJ(A,Q?.in),G=+Sg(B,Q)-+w79(B,Q);return Math.round(G/SI1)+1}var WX0=L(()=>{jjA();cXA();JX0();oq()});function T7(A,Q){let B=A<0?"-":"",G=Math.abs(A).toString().padStart(Q,"0");return B+G}var _g;var N79=L(()=>{_g={y(A,Q){let B=A.getFullYear(),G=B>0?B:1-B;return T7(Q==="yy"?G%100:G,Q.length)},M(A,Q){let B=A.getMonth();return Q==="M"?String(B+1):T7(B+1,2)},d(A,Q){return T7(A.getDate(),Q.length)},a(A,Q){let B=A.getHours()/12>=1?"pm":"am";switch(Q){case"a":case"aa":return B.toUpperCase();case"aaa":return B;case"aaaaa":return B[0];case"aaaa":default:return B==="am"?"a.m.":"p.m."}},h(A,Q){return T7(A.getHours()%12||12,Q.length)},H(A,Q){return T7(A.getHours(),Q.length)},m(A,Q){return T7(A.getMinutes(),Q.length)},s(A,Q){return T7(A.getSeconds(),Q.length)},S(A,Q){let B=Q.length,G=A.getMilliseconds(),Z=Math.trunc(G*Math.pow(10,B-3));return T7(Z,Q.length)}}});function L79(A,Q=""){let B=A>0?"-":"+",G=Math.abs(A),Z=Math.trunc(G/60),I=G%60;if(I===0)return B+String(Z);return B+String(Z)+Q+T7(I,2)}function M79(A,Q){if(A%60===0)return(A>0?"-":"+")+T7(Math.abs(A)/60,2);return MQA(A,Q)}function MQA(A,Q=""){let B=A>0?"-":"+",G=Math.abs(A),Z=T7(Math.trunc(G/60),2),I=T7(G%60,2);return B+Z+Q+I}var iXA,XX0;var O79=L(()=>{IX0();YX0();kI1();WX0();vI1();N79();iXA={am:"am",pm:"pm",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},XX0={G:function(A,Q,B){let G=A.getFullYear()>0?1:0;switch(Q){case"G":case"GG":case"GGG":return B.era(G,{width:"abbreviated"});case"GGGGG":return B.era(G,{width:"narrow"});case"GGGG":default:return B.era(G,{width:"wide"})}},y:function(A,Q,B){if(Q==="yo"){let G=A.getFullYear(),Z=G>0?G:1-G;return B.ordinalNumber(Z,{unit:"year"})}return _g.y(A,Q)},Y:function(A,Q,B,G){let Z=xI1(A,G),I=Z>0?Z:1-Z;if(Q==="YY"){let Y=I%100;return T7(Y,2)}if(Q==="Yo")return B.ordinalNumber(I,{unit:"year"});return T7(I,Q.length)},R:function(A,Q){let B=_I1(A);return T7(B,Q.length)},u:function(A,Q){let B=A.getFullYear();return T7(B,Q.length)},Q:function(A,Q,B){let G=Math.ceil((A.getMonth()+1)/3);switch(Q){case"Q":return String(G);case"QQ":return T7(G,2);case"Qo":return B.ordinalNumber(G,{unit:"quarter"});case"QQQ":return B.quarter(G,{width:"abbreviated",context:"formatting"});case"QQQQQ":return B.quarter(G,{width:"narrow",context:"formatting"});case"QQQQ":default:return B.quarter(G,{width:"wide",context:"formatting"})}},q:function(A,Q,B){let G=Math.ceil((A.getMonth()+1)/3);switch(Q){case"q":return String(G);case"qq":return T7(G,2);case"qo":return B.ordinalNumber(G,{unit:"quarter"});case"qqq":return B.quarter(G,{width:"abbreviated",context:"standalone"});case"qqqqq":return B.quarter(G,{width:"narrow",context:"standalone"});case"qqqq":default:return B.quarter(G,{width:"wide",context:"standalone"})}},M:function(A,Q,B){let G=A.getMonth();switch(Q){case"M":case"MM":return _g.M(A,Q);case"Mo":return B.ordinalNumber(G+1,{unit:"month"});case"MMM":return B.month(G,{width:"abbreviated",context:"formatting"});case"MMMMM":return B.month(G,{width:"narrow",context:"formatting"});case"MMMM":default:return B.month(G,{width:"wide",context:"formatting"})}},L:function(A,Q,B){let G=A.getMonth();switch(Q){case"L":return String(G+1);case"LL":return T7(G+1,2);case"Lo":return B.ordinalNumber(G+1,{unit:"month"});case"LLL":return B.month(G,{width:"abbreviated",context:"standalone"});case"LLLLL":return B.month(G,{width:"narrow",context:"standalone"});case"LLLL":default:return B.month(G,{width:"wide",context:"standalone"})}},w:function(A,Q,B,G){let Z=q79(A,G);if(Q==="wo")return B.ordinalNumber(Z,{unit:"week"});return T7(Z,Q.length)},I:function(A,Q,B){let G=$79(A);if(Q==="Io")return B.ordinalNumber(G,{unit:"week"});return T7(G,Q.length)},d:function(A,Q,B){if(Q==="do")return B.ordinalNumber(A.getDate(),{unit:"date"});return _g.d(A,Q)},D:function(A,Q,B){let G=U79(A);if(Q==="Do")return B.ordinalNumber(G,{unit:"dayOfYear"});return T7(G,Q.length)},E:function(A,Q,B){let G=A.getDay();switch(Q){case"E":case"EE":case"EEE":return B.day(G,{width:"abbreviated",context:"formatting"});case"EEEEE":return B.day(G,{width:"narrow",context:"formatting"});case"EEEEEE":return B.day(G,{width:"short",context:"formatting"});case"EEEE":default:return B.day(G,{width:"wide",context:"formatting"})}},e:function(A,Q,B,G){let Z=A.getDay(),I=(Z-G.weekStartsOn+8)%7||7;switch(Q){case"e":return String(I);case"ee":return T7(I,2);case"eo":return B.ordinalNumber(I,{unit:"day"});case"eee":return B.day(Z,{width:"abbreviated",context:"formatting"});case"eeeee":return B.day(Z,{width:"narrow",context:"formatting"});case"eeeeee":return B.day(Z,{width:"short",context:"formatting"});case"eeee":default:return B.day(Z,{width:"wide",context:"formatting"})}},c:function(A,Q,B,G){let Z=A.getDay(),I=(Z-G.weekStartsOn+8)%7||7;switch(Q){case"c":return String(I);case"cc":return T7(I,Q.length);case"co":return B.ordinalNumber(I,{unit:"day"});case"ccc":return B.day(Z,{width:"abbreviated",context:"standalone"});case"ccccc":return B.day(Z,{width:"narrow",context:"standalone"});case"cccccc":return B.day(Z,{width:"short",context:"standalone"});case"cccc":default:return B.day(Z,{width:"wide",context:"standalone"})}},i:function(A,Q,B){let G=A.getDay(),Z=G===0?7:G;switch(Q){case"i":return String(Z);case"ii":return T7(Z,Q.length);case"io":return B.ordinalNumber(Z,{unit:"day"});case"iii":return B.day(G,{width:"abbreviated",context:"formatting"});case"iiiii":return B.day(G,{width:"narrow",context:"formatting"});case"iiiiii":return B.day(G,{width:"short",context:"formatting"});case"iiii":default:return B.day(G,{width:"wide",context:"formatting"})}},a:function(A,Q,B){let Z=A.getHours()/12>=1?"pm":"am";switch(Q){case"a":case"aa":return B.dayPeriod(Z,{width:"abbreviated",context:"formatting"});case"aaa":return B.dayPeriod(Z,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return B.dayPeriod(Z,{width:"narrow",context:"formatting"});case"aaaa":default:return B.dayPeriod(Z,{width:"wide",context:"formatting"})}},b:function(A,Q,B){let G=A.getHours(),Z;if(G===12)Z=iXA.noon;else if(G===0)Z=iXA.midnight;else Z=G/12>=1?"pm":"am";switch(Q){case"b":case"bb":return B.dayPeriod(Z,{width:"abbreviated",context:"formatting"});case"bbb":return B.dayPeriod(Z,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return B.dayPeriod(Z,{width:"narrow",context:"formatting"});case"bbbb":default:return B.dayPeriod(Z,{width:"wide",context:"formatting"})}},B:function(A,Q,B){let G=A.getHours(),Z;if(G>=17)Z=iXA.evening;else if(G>=12)Z=iXA.afternoon;else if(G>=4)Z=iXA.morning;else Z=iXA.night;switch(Q){case"B":case"BB":case"BBB":return B.dayPeriod(Z,{width:"abbreviated",context:"formatting"});case"BBBBB":return B.dayPeriod(Z,{width:"narrow",context:"formatting"});case"BBBB":default:return B.dayPeriod(Z,{width:"wide",context:"formatting"})}},h:function(A,Q,B){if(Q==="ho"){let G=A.getHours()%12;if(G===0)G=12;return B.ordinalNumber(G,{unit:"hour"})}return _g.h(A,Q)},H:function(A,Q,B){if(Q==="Ho")return B.ordinalNumber(A.getHours(),{unit:"hour"});return _g.H(A,Q)},K:function(A,Q,B){let G=A.getHours()%12;if(Q==="Ko")return B.ordinalNumber(G,{unit:"hour"});return T7(G,Q.length)},k:function(A,Q,B){let G=A.getHours();if(G===0)G=24;if(Q==="ko")return B.ordinalNumber(G,{unit:"hour"});return T7(G,Q.length)},m:function(A,Q,B){if(Q==="mo")return B.ordinalNumber(A.getMinutes(),{unit:"minute"});return _g.m(A,Q)},s:function(A,Q,B){if(Q==="so")return B.ordinalNumber(A.getSeconds(),{unit:"second"});return _g.s(A,Q)},S:function(A,Q){return _g.S(A,Q)},X:function(A,Q,B){let G=A.getTimezoneOffset();if(G===0)return"Z";switch(Q){case"X":return M79(G);case"XXXX":case"XX":return MQA(G);case"XXXXX":case"XXX":default:return MQA(G,":")}},x:function(A,Q,B){let G=A.getTimezoneOffset();switch(Q){case"x":return M79(G);case"xxxx":case"xx":return MQA(G);case"xxxxx":case"xxx":default:return MQA(G,":")}},O:function(A,Q,B){let G=A.getTimezoneOffset();switch(Q){case"O":case"OO":case"OOO":return"GMT"+L79(G,":");case"OOOO":default:return"GMT"+MQA(G,":")}},z:function(A,Q,B){let G=A.getTimezoneOffset();switch(Q){case"z":case"zz":case"zzz":return"GMT"+L79(G,":");case"zzzz":default:return"GMT"+MQA(G,":")}},t:function(A,Q,B){let G=Math.trunc(+A/1000);return T7(G,Q.length)},T:function(A,Q,B){return T7(+A,Q.length)}}});var R79=(A,Q)=>{switch(A){case"P":return Q.date({width:"short"});case"PP":return Q.date({width:"medium"});case"PPP":return Q.date({width:"long"});case"PPPP":default:return Q.date({width:"full"})}},T79=(A,Q)=>{switch(A){case"p":return Q.time({width:"short"});case"pp":return Q.time({width:"medium"});case"ppp":return Q.time({width:"long"});case"pppp":default:return Q.time({width:"full"})}},OP3=(A,Q)=>{let B=A.match(/(P+)(p+)?/)||[],G=B[1],Z=B[2];if(!Z)return R79(A,Q);let I;switch(G){case"P":I=Q.dateTime({width:"short"});break;case"PP":I=Q.dateTime({width:"medium"});break;case"PPP":I=Q.dateTime({width:"long"});break;case"PPPP":default:I=Q.dateTime({width:"full"});break}return I.replace("{{date}}",R79(G,Q)).replace("{{time}}",T79(Z,Q))},P79;var j79=L(()=>{P79={p:T79,P:OP3}});function S79(A){return RP3.test(A)}function _79(A){return TP3.test(A)}function k79(A,Q,B){let G=jP3(A,Q,B);if(console.warn(G),PP3.includes(A))throw RangeError(G)}function jP3(A,Q,B){let G=A[0]==="Y"?"years":"days of the month";return`Use \`${A.toLowerCase()}\` instead of \`${A}\` (in \`${Q}\`) for formatting ${G} to the input \`${B}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}var RP3,TP3,PP3;var y79=L(()=>{RP3=/^D+$/,TP3=/^Y+$/,PP3=["D","DD","YY","YYYY"]});function x79(A,Q,B){let G=Ja(),Z=B?.locale??G.locale??ZX0,I=B?.firstWeekContainsDate??B?.locale?.options?.firstWeekContainsDate??G.firstWeekContainsDate??G.locale?.options?.firstWeekContainsDate??1,Y=B?.weekStartsOn??B?.locale?.options?.weekStartsOn??G.weekStartsOn??G.locale?.options?.weekStartsOn??0,J=nJ(A,B?.in);if(!V39(J))throw RangeError("Invalid time value");let W=Q.match(_P3).map((F)=>{let V=F[0];if(V==="p"||V==="P"){let K=P79[V];return K(F,Z.formatLong)}return F}).join("").match(SP3).map((F)=>{if(F==="''")return{isToken:!1,value:"'"};let V=F[0];if(V==="'")return{isToken:!1,value:vP3(F)};if(XX0[V])return{isToken:!0,value:F};if(V.match(xP3))throw RangeError("Format string contains an unescaped latin alphabet character `"+V+"`");return{isToken:!1,value:F}});if(Z.localize.preprocessor)W=Z.localize.preprocessor(J,W);let X={firstWeekContainsDate:I,weekStartsOn:Y,locale:Z};return W.map((F)=>{if(!F.isToken)return F.value;let V=F.value;if(!B?.useAdditionalWeekYearTokens&&_79(V)||!B?.useAdditionalDayOfYearTokens&&S79(V))k79(V,Q,String(A));let K=XX0[V[0]];return K(J,V,Z.localize,X)}).join("")}function vP3(A){let Q=A.match(kP3);if(!Q)return A;return Q[1].replace(yP3,"'")}var SP3,_P3,kP3,yP3,xP3;var v79=L(()=>{z79();SjA();O79();j79();y79();BX0();oq();SP3=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,_P3=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,kP3=/^'([^]*?)'?$/,yP3=/''/g,xP3=/[a-zA-Z]/});var b79=()=>{};var f79=()=>{};var h79=()=>{};var g79=()=>{};var u79=()=>{};var m79=()=>{};var d79=()=>{};var c79=()=>{};var p79=()=>{};var l79=()=>{};var i79=()=>{};var n79=()=>{};var a79=()=>{};var s79=()=>{};var r79=()=>{};var o79=()=>{};var t79=()=>{};var e79=()=>{};var AG9=()=>{};var QG9=()=>{};var BG9=()=>{};var GG9=()=>{};var ZG9=()=>{};var IG9=()=>{};var YG9=()=>{};var JG9=()=>{};var WG9=()=>{};var XG9=()=>{};var FG9=()=>{};var VG9=()=>{};var KG9=()=>{};var DG9=()=>{};var HG9=()=>{};var CG9=()=>{};var EG9=()=>{};var zG9=()=>{};var UG9=()=>{};var $G9=()=>{};var wG9=()=>{};var qG9=()=>{};var NG9=()=>{};var LG9=()=>{};var MG9=()=>{};var OG9=()=>{};var RG9=()=>{};var TG9=()=>{};var PG9=()=>{};var jG9=()=>{};var SG9=()=>{};var _G9=()=>{};var kG9=()=>{};var yG9=()=>{};var xG9=()=>{};var vG9=()=>{};var bG9=()=>{};var fG9=()=>{};var hG9=()=>{};var gG9=()=>{};var uG9=()=>{};var mG9=()=>{};var dG9=()=>{};var cG9=()=>{};var pG9=()=>{};var lG9=()=>{};var iG9=()=>{};var nG9=()=>{};var aG9=()=>{};var sG9=()=>{};var rG9=()=>{};var oG9=()=>{};var tG9=()=>{};var eG9=()=>{};var AZ9=()=>{};var QZ9=()=>{};var BZ9=()=>{};var GZ9=()=>{};var ZZ9=()=>{};var IZ9=()=>{};var YZ9=()=>{};var JZ9=()=>{};var WZ9=()=>{};var XZ9=()=>{};var FZ9=()=>{};var VZ9=()=>{};var KZ9=()=>{};var DZ9=()=>{};var HZ9=()=>{};var CZ9=()=>{};var EZ9=()=>{};var zZ9=()=>{};var UZ9=()=>{};var $Z9=()=>{};var wZ9=()=>{};var qZ9=()=>{};var NZ9=()=>{};var LZ9=()=>{};var MZ9=()=>{};var OZ9=()=>{};var RZ9=()=>{};var TZ9=()=>{};var PZ9=()=>{};var jZ9=()=>{};var SZ9=()=>{};var _Z9=()=>{};var kZ9=()=>{};var yZ9=()=>{};var xZ9=()=>{};var vZ9=()=>{};var bZ9=()=>{};var fZ9=()=>{};var hZ9=()=>{};var gZ9=()=>{};var uZ9=()=>{};var mZ9=()=>{};var dZ9=()=>{};var cZ9=()=>{};var pZ9=()=>{};var lZ9=()=>{};var iZ9=()=>{};var nZ9=()=>{};var aZ9=()=>{};var sZ9=()=>{};var rZ9=()=>{};var oZ9=()=>{};var tZ9=()=>{};var eZ9=()=>{};var AI9=()=>{};var QI9=()=>{};var BI9=()=>{};var GI9=()=>{};var ZI9=()=>{};var II9=()=>{};var YI9=()=>{};var JI9=()=>{};var WI9=()=>{};var XI9=()=>{};var FI9=()=>{};var VI9=()=>{};var KI9=()=>{};var DI9=()=>{};var HI9=()=>{};var CI9=()=>{};var EI9=()=>{};var zI9=()=>{};var UI9=()=>{};var $I9=()=>{};var wI9=()=>{};var qI9=()=>{};var NI9=()=>{};var LI9=()=>{};var MI9=()=>{};var OI9=()=>{};var RI9=()=>{};var TI9=()=>{};var PI9=()=>{};var jI9=L(()=>{x59();h59();k59();u59();n59();g59();a59();y59();s59();r59();o59();t59();e59();B39();G39();Z39();I39();Y39();Ya();J39();W39();K39();eW0();D39();H39();C39();z39();U39();$39();w39();q39();L39();M39();O39();j39();S39();_39();k39();y39();x39();v39();b39();f39();g39();u39();m39();c39();i39();n39();R39();a39();s39();o39();t39();e39();T39();A79();Q79();B79();G79();r39();p39();Z79();v79();b79();f79();h79();g79();u79();m79();d79();c79();p79();l79();i79();n79();a79();s79();IX0();r79();t79();e79();AG9();QG9();BG9();YX0();kI1();GG9();ZG9();IG9();YG9();JG9();E39();WG9();XG9();FG9();WX0();VG9();vI1();DG9();HG9();CG9();EG9();zG9();UG9();$G9();wG9();qG9();NG9();LG9();QX0();MG9();OG9();RG9();TG9();PG9();P39();o79();vG9();bG9();fG9();X39();gG9();mG9();dG9();pG9();lG9();iG9();aG9();uG9();sG9();v59();b59();rG9();oG9();tG9();eG9();AZ9();QZ9();BZ9();GZ9();ZZ9();IZ9();YZ9();JZ9();BX0();WZ9();f59();XZ9();VZ9();KZ9();HZ9();CZ9();KG9();EZ9();DZ9();zZ9();UZ9();A39();$Z9();wZ9();qZ9();NZ9();Q39();LZ9();MZ9();OZ9();RZ9();TZ9();PZ9();jZ9();SZ9();_Z9();kZ9();yZ9();xZ9();vZ9();xG9();bZ9();fZ9();hZ9();gZ9();uZ9();mZ9();dZ9();cZ9();pZ9();lZ9();iZ9();nZ9();aZ9();sZ9();rZ9();oZ9();tZ9();AI9();QI9();kG9();BI9();GI9();ZI9();yG9();_G9();i59();II9();YI9();eZ9();JI9();WI9();SG9();XI9();FI9();tW0();VI9();hG9();_jA();AX0();cG9();d39();h39();nG9();KI9();DI9();cXA();JX0();GX0();HI9();EI9();zI9();FZ9();UI9();N39();$I9();wI9();CI9();qI9();NI9();LI9();MI9();oq();jG9();OI9();RI9();TI9();PI9()});function SI9(){let[A,Q]=kjA.useState([]),[B,G]=kjA.useState(0);if(kjA.useEffect(()=>{let Z=lQ.getSandboxViolationStore();return Z.subscribe((Y)=>{Q(Y.slice(-10)),G(Z.getTotalCount())})},[]),!lQ.isSandboxingEnabled()||uQ()==="linux")return null;if(B===0)return null;return tE.createElement(j,{flexDirection:"column",marginTop:1},tE.createElement(j,{marginLeft:0},tE.createElement($,{color:"permission"},"⧈ Sandbox blocked ",B," total"," ",B===1?"operation":"operations")),A.map((Z,I)=>tE.createElement(j,{key:`${Z.timestamp.getTime()}-${I}`,paddingLeft:2},tE.createElement($,{dimColor:!0},x79(Z.timestamp,"h:mm:ssa"),Z.command?` ${Z.command}:`:""," ",Z.line))),tE.createElement(j,{paddingLeft:2},tE.createElement($,{dimColor:!0},"… showing last ",Math.min(10,A.length)," of ",B)))}var tE,kjA;var _I9=L(()=>{hA();MJ();jI9();s5();tE=GA(VA(),1),kjA=GA(VA(),1)});function bI1(){let{addNotification:A}=_Z(),[Q,B]=nXA.useState(()=>{let{errors:Z}=Wa();return Z}),G=nXA.useCallback(()=>{let{errors:Z}=Wa();B(Z)},[]);return CGA(G),nXA.useEffect(()=>{if(Q.length>0)A({key:"settings-errors",jsx:FX0.createElement($,{dimColor:!0},"Found ",Q.length," invalid settings"," ",Q.length===1?"file":"files"," · /doctor for details"),priority:"high"})},[Q,A]),Q}var nXA,FX0;var VX0=L(()=>{RB();QoA();UU();hA();nXA=GA(VA(),1),FX0=GA(VA(),1)});function yI9({mcpClients:A=[]}){let{addNotification:Q}=_Z();kI9.useEffect(()=>{let B=A.filter((Z)=>Z.type==="failed"&&Z.config.type!=="sse-ide"&&Z.config.type!=="ws-ide"),G=A.filter((Z)=>Z.type==="needs-auth");if(B.length===0&&G.length===0)return;if(B.length>0)Q({key:"mcp-failed",jsx:UK.createElement(UK.Fragment,null,UK.createElement($,{color:"error"},B.length," MCP"," ",B.length===1?"server":"servers"," failed"),UK.createElement($,{dimColor:!0}," · /mcp for info")),priority:"medium"});if(G.length)Q({key:"mcp-needs-auth",jsx:UK.createElement(UK.Fragment,null,UK.createElement($,{color:"warning"},G.length," MCP"," ",G.length===1?"server needs":"servers need"," ","auth"),UK.createElement($,{dimColor:!0}," · /mcp for info")),priority:"medium"})},[Q,A])}var UK,kI9;var xI9=L(()=>{hA();UU();UK=GA(VA(),1),kI9=GA(VA(),1)});function vI9(){let{addNotification:A}=_Z(),[Q]=_Q(),{installationStatus:B}=Q.plugins,{totalFailed:G,failedMarketplacesCount:Z,failedPluginsCount:I}=fI1.useMemo(()=>{if(!B)return{totalFailed:0,failedMarketplacesCount:0,failedPluginsCount:0};let Y=B.marketplaces.filter((W)=>W.status==="failed"),J=B.plugins.filter((W)=>W.status==="failed");return{totalFailed:Y.length+J.length,failedMarketplacesCount:Y.length,failedPluginsCount:J.length}},[B]);fI1.useEffect(()=>{if(!B){g("No installation status to monitor");return}if(G===0)return;if(g(`Plugin installation status: ${Z} failed marketplaces, ${I} failed plugins`),G===0)return;g(`Adding notification for ${G} failed installations`),A({key:"plugin-install-failed",jsx:Gx.createElement(Gx.Fragment,null,Gx.createElement($,{color:"error"},G," plugin",G===1?"":"s"," failed to install"),Gx.createElement($,{dimColor:!0}," · /plugin for details")),priority:"medium"})},[A,G,Z,I])}var Gx,fI1;var bI9=L(()=>{hA();UU();H9();D0();Gx=GA(VA(),1),fI1=GA(VA(),1)});async function fI9(){let A=c0(),Q=new Map;if(A.extraKnownMarketplaces)for(let[B,G]of Object.entries(A.extraKnownMarketplaces))Q.set(B,G);return Q}async function hI9(A){try{let Q=await TZ(),B=[];for(let[G]of A)if(!Q[G])B.push(G);return B}catch(Q){return e(Q instanceof Error?Q:Error(String(Q))),[]}}var gI9=L(()=>{RB();kH();u1()});function bP3(){return new Date().toISOString()}async function nP(A,Q){if(typeof Q.source==="string")throw Error("cacheAndRegisterPlugin should only be used for external plugins");let B=await U3A(Q.source,{manifest:Q}),G=await LI1(B.path),Z=bP3();return U59(A,{version:B.manifest.version||Q.version||"unknown",installedAt:Z,lastUpdated:Z,installPath:B.path,gitCommitSha:G,isLocal:!1}),B.path}var yjA=L(()=>{Ia();NF()});async function KX0(){let A=c0(),Q=[];if(A.enabledPlugins){for(let[B,G]of Object.entries(A.enabledPlugins))if(B.includes("@")&&G)Q.push(B)}return Q}async function DX0(){if(lW0().catch((B)=>{e(B instanceof Error?B:Error(String(B)))}),j8("tengu_enable_versioned_plugins")){let B=pW0(),G=Object.keys(B.plugins);return g(`Found ${G.length} installed plugins (V2 format, versioned plugins enabled)`),G}let A=dXA(),Q=Object.keys(A);return g(`Found ${Q.length} installed plugins`),Q}async function uI9(A){try{let Q=await DX0(),B=[];for(let G of A)if(!Q.includes(G))try{if(await Cc(G))B.push(G)}catch(Z){g(`Failed to check plugin ${G} in marketplace: ${Z}`)}return B}catch(Q){return e(Q instanceof Error?Q:Error(String(Q))),[]}}var mI9=L(()=>{RB();kH();u1();D0();O9();NF();RB();o0();yjA();Ia()});function HX0(A,Q,B,G){A((Z)=>({...Z,plugins:{...Z.plugins,installationStatus:{...Z.plugins.installationStatus,marketplaces:Z.plugins.installationStatus.marketplaces.map((I)=>I.name===Q?{...I,status:B,error:G}:I)}}}))}function CX0(A,Q,B,G){A((Z)=>({...Z,plugins:{...Z.plugins,installationStatus:{...Z.plugins.installationStatus,plugins:Z.plugins.installationStatus.plugins.map((I)=>I.id===Q?{...I,status:B,error:G}:I)}}}))}async function fP3(A,Q,B){let G=[],Z=[];for(let I of A){let Y=Q.get(I);if(!Y)continue;HX0(B,I,"installing");try{await go(Y.source),G.push(I),HX0(B,I,"installed"),fQB(),$3A(),await hP3(I,B)}catch(J){let W=J instanceof Error?J.message:String(J);Z.push({name:I,error:W}),HX0(B,I,"failed",W),e(J instanceof Error?J:Error(String(J)))}}return{installed:G,failed:Z}}async function hP3(A,Q){try{let G=(await KX0()).filter((Z)=>Z.endsWith(`@${A}`));if(G.length>0){let Z=await uI9(G);if(Z.length>0)g(`Installing ${Z.length} plugins from newly installed marketplace ${A}`),await dI9(Z,Q)}}catch(B){e(B instanceof Error?B:Error(String(B)))}}async function dI9(A,Q){let G={...LB("userSettings")?.enabledPlugins},Z=[],I=[];for(let Y of A){CX0(Q,Y,"installing");try{let J=await Cc(Y);if(!J)throw Error("Plugin not found in any marketplace");let{entry:W}=J;if(typeof W.source!=="string"||!W.source.startsWith("./"))await nP(Y,W);if(c0().enabledPlugins?.[Y]!==!0)G[Y]=!0;Z.push(Y),CX0(Q,Y,"installed")}catch(J){let W=J instanceof Error?J.message:String(J);I.push({name:Y,error:W}),CX0(Q,Y,"failed",W),e(J instanceof Error?J:Error(String(J)))}}if(Object.keys(G).length>0){let Y=LB("userSettings");cB("userSettings",{...Y,enabledPlugins:G})}return{installed:Z,failed:I}}async function hI1(A){g("performBackgroundPluginInstallations called");try{let Q=[],B=[],G=await TZ(),Z=await fI9();if(Z.size>0){g(`Found ${Z.size} extra marketplaces in settings`);let J=await hI9(Z);if(J.length>0){g(`Installing ${J.length} marketplaces automatically`);for(let W of J){let X=Z.get(W);if(X)Q.push({name:W,marketplace:X})}}}let I=await KX0(),Y=[];if(I.length>0){g(`Found ${I.length} enabled plugins`);let J=await DX0(),W=I.filter((F)=>!J.includes(F));g(`Found ${W.length} missing plugins (not installed): ${W.join(", ")}`);let X=[];for(let F of W){let[,V]=F.split("@");if(!V)X.push(F);else if(V in G||Z.has(V)||Q.some((K)=>K.name===V))X.push(F);else Y.push(F)}if(Y.length>0){let F=[...new Set(Y.map((V)=>V.split("@")[1]))];g(`Cannot install ${Y.length} plugins because their marketplaces are not installed or configured: ${F.join(", ")}`),g(`Uninstallable plugins: ${Y.join(", ")}`)}if(X.length>0)g(`Installing ${X.length} plugins automatically`),B.push(...X)}if(g(`Setting installation status: ${Q.length} marketplaces, ${B.length} installable plugins, ${Y.length} uninstallable plugins`),A((J)=>({...J,plugins:{...J.plugins,installationStatus:{marketplaces:Q.map(({name:W})=>({name:W,status:"pending"})),plugins:[...B.map((W)=>{let[X]=W.split("@");return{id:W,name:X||W,status:"pending"}}),...Y.map((W)=>{let[X,F]=W.split("@");return{id:W,name:X||W,status:"failed",error:`Marketplace '${F}' is not installed or configured`}})]}}})),Q.length>0)fP3(Q.map((J)=>J.name),Z,A).catch((J)=>{e(J instanceof Error?J:Error(String(J)))});if(B.length>0){let J=B.filter((W)=>{let[,X]=W.split("@");return!Q.some((F)=>F.name===X)});if(J.length>0)dI9(J,A).catch((W)=>{e(W instanceof Error?W:Error(String(W)))})}}catch(Q){e(Q instanceof Error?Q:Error(String(Q)))}}var EX0=L(()=>{D0();u1();gI9();mI9();kH();kH();NF();yjA();RB()});async function cI9(A){if(g("performStartupChecks called"),!_X(!0)){g("Trust not accepted for current directory - skipping plugin installations");return}try{g("Starting background plugin installations"),await hI1(A)}catch(Q){g(`Error initiating background plugin installations: ${Q}`)}}var pI9=L(()=>{D0();EX0();jQ()});function iI9(){let{addNotification:A}=_Z(),[{thinkingEnabled:Q}]=_Q();lI9.useEffect(()=>{A({key:"toggled-thinking-initial",jsx:Q?xjA.createElement($,{color:"suggestion"},"Thinking on (tab to toggle)"):xjA.createElement($,{dimColor:!0},"Thinking off (tab to toggle)"),priority:"low",timeoutMs:20000})},[A])}var xjA,lI9;var nI9=L(()=>{UU();hA();H9();xjA=GA(VA(),1),lI9=GA(VA(),1)});function aI9(A){let{addNotification:Q}=_Z(),B=i21(),G=C00(B,A),Z=E00(B),I=OQA.useRef(null),[Y,J]=OQA.useState(!1);OQA.useEffect(()=>{if(B.isUsingOverage&&!Y)Q({key:"limit-reached",text:Z,priority:"immediate"}),J(!0);else if(!B.isUsingOverage&&Y)J(!1)},[B.isUsingOverage,Z,Y,Q]),OQA.useEffect(()=>{if(G&&G!==I.current)I.current=G,Q({key:"rate-limit-warning",jsx:vjA.createElement($,null,vjA.createElement($,{color:"warning"},G)),priority:"high"})},[G,Q])}var vjA,OQA;var sI9=L(()=>{UU();zi();hA();vjA=GA(VA(),1),OQA=GA(VA(),1)});function oI9({ideSelection:A,mcpClients:Q,ideInstallationStatus:B}){let{addNotification:G}=_Z(),Z=wXA(Q),I=B?pM(B?.ideType):!1,Y=B?.error||I,J=Z==="connected"&&(A?.filePath||A?.text&&A.lineCount>0),W=Z==="connected"&&!J,X=Y&&!I&&!W&&!J,F=Y&&I&&!W&&!J;rI9.useEffect(()=>{if(_F()||Z!==null)return;mLA(!0).then((V)=>{if(V.length>0){let K=V[0]?.name;if(K&&!F)G({key:"ide-status-hint",jsx:aP.createElement($,{dimColor:!0},V1.circle," /ide for ",gP3(K)),priority:"low"});else if(!X&&Z==="disconnected")G({key:"ide-status-disconnected",jsx:aP.createElement($,{color:"error",key:"ide-status"},V1.circle," IDE disconnected"),priority:"medium"});else if(F)G({key:"ide-status-jetbrains-disconnected",jsx:aP.createElement($,{dimColor:!0},"IDE plugin not connected · /status for info"),priority:"medium"});else if(W)G({key:"ide-status-connected",jsx:aP.createElement($,{color:"ide",key:"ide-status"},V1.circle,"IDE connected"),priority:"low"});else if(X)G({key:"ide-status-install-error",jsx:aP.createElement($,{color:"error"},"IDE extension install failed (see /status for info)"),priority:"medium"})}})},[G,Z,W,X,F])}function gP3(A){if(A==="Visual Studio Code")return"VS Code";return A}var rI9,aP;var tI9=L(()=>{UU();yJ();XZ1();hA();n2();rI9=GA(VA(),1),aP=GA(VA(),1)});function AY9(){let{addNotification:A}=_Z();eI9.useEffect(()=>{let B=L1().sonnet45MigrationTimestamp;if(B){if(Date.now()-B<3000)A({key:"sonnet-4.5-update",text:"Model updated to Sonnet 4.5",color:"suggestion",priority:"high",timeoutMs:3000})}},[A])}var eI9;var QY9=L(()=>{UU();jQ();eI9=GA(VA(),1)});function GY9(){let{addNotification:A}=_Z();BY9.useEffect(()=>{if(L1().subscriptionNoticeCount??0>=uP3)return;mP3().then((Q)=>{if(Q===null)return;let B=L1();d0({...B,subscriptionNoticeCount:(B.subscriptionNoticeCount??0)+1}),BA("tengu_switch_to_subscription_notice_shown",{}),A({key:"switch-to-subscription",jsx:bjA.createElement($,{color:"suggestion"},"Use your existing Claude ",Q," plan with AICO",bjA.createElement($,{color:"text",dimColor:!0}," ","· /login to activate")),priority:"low"})})},[A])}async function mP3(){if(AB())return null;let A=await bvA();if(!A)return null;if(A.account.has_claude_max)return"Max";if(A.account.has_claude_pro)return"Pro";return null}var bjA,BY9,uP3=3;var ZY9=L(()=>{hA();pKA();jQ();w0();hB();UU();bjA=GA(VA(),1),BY9=GA(VA(),1)});function IY9({onRun:A,onCancel:Q,reason:B}){let G=aXA.useRef(!1);return h1(aXA.useCallback((Z,I)=>{if(I.escape)Q()},[Q])),aXA.useEffect(()=>{if(!G.current)G.current=!0,A()},[A]),eE.createElement(j,{flexDirection:"column",marginTop:1},eE.createElement(j,null,eE.createElement($,{bold:!0},"Running /issue to capture feedback...")),eE.createElement(j,null,eE.createElement($,{dimColor:!0},"Press Esc anytime to cancel")),eE.createElement(j,null,eE.createElement($,{dimColor:!0},"Reason: ",B)))}function zX0(A){return!1;switch(A){case"feedback_survey_bad":return!0;case"feedback_survey_good":default:return!1}}function YY9(A){switch(A){case"feedback_survey_bad":return'You responded "Bad" to the feedback survey';case"feedback_survey_good":return'You responded "Good" to the feedback survey';default:return"Unknown reason"}}var eE,aXA;var JY9=L(()=>{hA();eE=GA(VA(),1),aXA=GA(VA(),1)});import{randomUUID as UX0}from"crypto";function sXA({commands:A,debug:Q,initialPrompt:B,initialTools:G,initialMessages:Z,initialFileHistorySnapshots:I,mcpClients:Y,dynamicMcpConfig:J,mcpCliEndpoint:W,autoConnectIdeFlag:X,strictMcpConfig:F=!1,systemPrompt:V,appendSystemPrompt:K,onBeforeQuery:D,onTurnComplete:H,disabled:C=!1}){let[E,z]=_Q(),{toolPermissionContext:w,verbose:N,mcp:q,plugins:R,agentDefinitions:P}=E,y=tn(),v=GB.useMemo(()=>JC(w),[w]);M59();let[x,p]=GB.useState(J),u=GB.useCallback((AQ)=>{p(AQ)},[p]),[o,l]=GB.useState("prompt"),[k,d]=GB.useState(1),[QA,IA]=GB.useState(!1),{addNotification:HA}=_Z(),wA=P89(Y,q.clients),[KA,SA]=GB.useState(void 0),[sA,NA]=GB.useState(null),[qA,DA]=GB.useState(null),[yA,rA]=GB.useState(!1);AY9(),GY9(),oI9({ideSelection:KA,mcpClients:wA,ideInstallationStatus:qA}),yI9({mcpClients:wA}),vI9(),bI1(),iI9(),aI9(y),F59();let K1=GB.useMemo(()=>{return[...v,...G]},[v,G]);YI1(),GB.useEffect(()=>{cI9(z)},[z]);let WA=BI1(K1,q.tools),XA=LW0(A,R.commands),zA=LW0(XA,q.commands);fb2(q.clients),l69(q.clients,SA);let[$A,LA]=GB.useState("responding"),[TA,eA]=GB.useState([]),[aA,I1]=GB.useState(null),[w1,PA]=GB.useState(!1),[B1,Q0]=GB.useState(0),[b1,Y0]=GB.useState(void 0),x0=GB.useCallback((AQ)=>{if(PA(AQ),AQ)Q0(0)},[]);dY(()=>{if(w1&&I0!=="tool-permission")Q0((AQ)=>AQ+100)},100);let[u0,k1]=GB.useState(null);GB.useEffect(()=>{if(u0?.notifications)u0.notifications.forEach((AQ)=>{HA({key:"auto-updater-notification",text:AQ,priority:"low"})})},[u0,HA]);let[T0,fQ]=GB.useState(null),[F1,R1]=GB.useState([]),[N1,Z0]=GB.useState([]),[J0,s1]=GB.useState(Z??[]),[p0,HQ]=GB.useState([]),[ZB,rQ]=GB.useState(""),[PB,IQ]=GB.useState("prompt"),[l9,h4]=GB.useState({}),[p5,uG]=GB.useState(0),[DG,C3]=GB.useState(0),[CZ,LI]=GB.useState(0),[e8,_5]=GB.useState(null),[mG,dG]=GB.useState(null),[U1,nA]=GB.useState(null),[C1,O1]=GB.useState(!1),[y1,O0]=GB.useState(!1),[oQ,lB]=GB.useState(UX0()),[k9,C6]=GB.useState(L1().hasAcknowledgedCostThreshold),[y9,A6]=GB.useState(new Set),[v6,w8]=GB.useState("INSERT"),[i9,Q6]=GB.useState(!1),[$4,n7]=GB.useState(!1),B6=GB.useRef(!1),k5=GB.useRef(null),[g9]=$B(),g4=GB.useCallback(()=>{w59().then(async(AQ)=>{if(AQ){let C2=await AQ.content({theme:g9});z((xQ)=>({...xQ,spinnerTip:C2})),q59(AQ)}else z((C2)=>({...C2,spinnerTip:void 0}))})},[z,g9]),q8=GB.useCallback(()=>{x0(!1),Y0(void 0),C3(0),eA([]),_5(null),dG(null),nA(null),g4(),k81()},[x0,g4]),B8=U89(ZB),W5=(!T0||T0.showSpinner===!0)&&F1.length===0&&w1,u9=G59(J0,w1,p5),w4=GB.useMemo(()=>({...u9,handleSelect:(AQ)=>{if(u9.handleSelect(AQ),AQ==="bad"&&zX0("feedback_survey_bad")||AQ==="good"&&zX0("feedback_survey_good"))xA(AQ==="bad"?"feedback_survey_bad":"feedback_survey_good")}}),[u9]);r69({autoConnectIdeFlag:X,ideToInstallExtension:sA,setDynamicMcpConfig:p,setShowIdeOnboarding:rA,setIDEInstallationState:DA}),T59(I,E.fileHistory,(AQ)=>z((C2)=>({...C2,fileHistory:AQ})));let E3=GB.useCallback(async(AQ,C2)=>{let xQ=jMA(C2.messages),IB=await zq("resume",AQ);if(xQ.push(...IB),_21(C2),s01(C2),C2.fileHistorySnapshots)$YA(C2.fileHistorySnapshots,(E6)=>{z((X8)=>({...X8,fileHistory:E6}))}),D91(C2);if(q8(),I1(null),!bH())await SJ();lB(AQ),FR(AQ),await Zx(),VJ0(),s1(()=>xQ),fQ(null),rQ(""),HQ([])},[q8,z]),V9=G0(),Q4=GB.useMemo(()=>Ci(G0()),[]),dA=GB.useRef((()=>{let AQ=Gh($X0);return AQ.set(Q4,{content:JSON.stringify(E.todos[V9]||[]),timestamp:0,offset:void 0,limit:void 0}),AQ})()),{status:YA,reverify:ZA}=I89(),[jA,xA]=GB.useState(null),[mA,E1]=GB.useState(null),[S1,P1]=GB.useState(!1),c1=!w1&&y1;function l1(){if(S1||mA)return;if(C1)return"message-selector";if(N1[0])return"sandbox-permission";let AQ=!T0||T0.shouldContinueAnimation;if(AQ&&F1[0])return"tool-permission";if(AQ&&E.elicitation.queue[0])return"elicitation";if(AQ&&c1)return"cost";if(AQ&&yA)return"ide-onboarding";return}let I0=l1();function e0(){if(I0==="elicitation")return;if(q8(),I0==="tool-permission")F1[0]?.onAbort(),R1([]);else aA?.abort()}let dQ=GB.useCallback(async()=>{let AQ=await j51(ZB,0,async()=>new Promise((C2)=>z((xQ)=>{return C2(xQ),xQ})),z);if(!AQ)return;rQ(AQ.text),IQ("prompt")},[z,rQ,IQ,ZB]);F89(R1,e0,C1||i9,o,aA?.signal,dQ,v6,T0?.isLocalJSXCommand,$4),GB.useEffect(()=>{if(yK()>=5&&!y1&&!k9){if(BA("tengu_cost_threshold_reached",{}),NlA())O0(!0)}},[J0,y1,k9]);let iB=GB.useCallback(async(AQ)=>{return new Promise((C2)=>{Z0((xQ)=>[...xQ,{hostPattern:AQ,resolvePromise:C2}])})},[]);if(lQ.isSandboxingEnabled())lQ.initialize(iB).catch((AQ)=>{process.stderr.write(`
@@ -2,7 +2,7 @@ import ansis from 'ansis';
2
2
  import inquirer from 'inquirer';
3
3
  import { exec } from 'tinyexec';
4
4
  import { platform, homedir } from 'node:os';
5
- import { existsSync, readFileSync, writeFileSync, mkdirSync, copyFileSync, readdirSync, statSync, unlinkSync, rmSync } from 'node:fs';
5
+ import { existsSync, readFileSync, writeFileSync, mkdirSync, readdirSync, copyFileSync, statSync, rmSync, unlinkSync } from 'node:fs';
6
6
  import { exec as exec$2, spawn } from 'node:child_process';
7
7
  import { promisify as promisify$1 } from 'node:util';
8
8
  import { exec as exec$1 } from 'child_process';
@@ -14,7 +14,7 @@ import { join, dirname, basename } from 'pathe';
14
14
  import { fileURLToPath } from 'node:url';
15
15
  import { EventEmitter } from 'node:events';
16
16
 
17
- const version = "2.0.33";
17
+ const version = "2.0.34";
18
18
 
19
19
  function displayBanner(subtitle) {
20
20
  const defaultSubtitle = "\u4E00\u952E\u914D\u7F6E\u4F60\u7684\u5F00\u53D1\u73AF\u5883";
@@ -3186,19 +3186,14 @@ async function updateCcr(force = false) {
3186
3186
  const { installed, currentVersion, latestVersion, needsUpdate } = await checkCcrVersion();
3187
3187
  spinner.stop();
3188
3188
  if (!installed) {
3189
- console.log(ansis.yellow("CCR \u672A\u5B89\u88C5"));
3190
3189
  return false;
3191
3190
  }
3192
3191
  if (!needsUpdate && !force) {
3193
- console.log(ansis.green(`CCR \u5DF2\u662F\u6700\u65B0\u7248\u672C (${currentVersion || ""})`));
3194
3192
  return true;
3195
3193
  }
3196
3194
  if (!latestVersion) {
3197
- console.log(ansis.yellow("\u65E0\u6CD5\u68C0\u67E5\u7248\u672C"));
3198
3195
  return false;
3199
3196
  }
3200
- console.log(ansis.cyan(`\u5F53\u524D\u7248\u672C: ${currentVersion || ""}`));
3201
- console.log(ansis.cyan(`\u6700\u65B0\u7248\u672C: ${latestVersion}`));
3202
3197
  const updateSpinner = ora("\u6B63\u5728\u66F4\u65B0 CCR...").start();
3203
3198
  try {
3204
3199
  await execAsync$4("npm update -g @musistudio/claude-code-router");
@@ -3816,6 +3811,22 @@ function fixWindowsMcpConfig(config) {
3816
3811
  }
3817
3812
  return fixed;
3818
3813
  }
3814
+ function updateClaudeConfigEnv(envVars) {
3815
+ try {
3816
+ let config = readMcpConfig();
3817
+ if (!config) {
3818
+ config = { mcpServers: {} };
3819
+ }
3820
+ if (!config.env) {
3821
+ config.env = {};
3822
+ }
3823
+ Object.assign(config.env, envVars);
3824
+ writeMcpConfig(config);
3825
+ } catch (error) {
3826
+ console.error("Failed to update Claude config env", error);
3827
+ throw error;
3828
+ }
3829
+ }
3819
3830
  function addCompletedOnboarding() {
3820
3831
  try {
3821
3832
  let config = readMcpConfig();
@@ -4232,10 +4243,7 @@ async function setupCcrConfiguration(scriptLang = "zh-CN") {
4232
4243
  try {
4233
4244
  const existingConfig = readCcrConfig();
4234
4245
  if (existingConfig) {
4235
- console.log(ansis.green(`\u2714 CCR \u914D\u7F6E\u5DF2\u5B58\u5728`));
4236
- console.log(ansis.yellow(`\u4FDD\u6301\u73B0\u6709\u914D\u7F6E`));
4237
4246
  await configureCcrProxy(existingConfig);
4238
- console.log(ansis.green(`\u2714 \u4EE3\u7406\u914D\u7F6E\u5DF2\u66F4\u65B0`));
4239
4247
  return true;
4240
4248
  }
4241
4249
  const preset = await selectCcrPreset(scriptLang);
@@ -4700,13 +4708,18 @@ function copyConfigFilesWithConfig(configs = DEFAULT_FILE_COPY_CONFIGS) {
4700
4708
  const sourcePath = join(rootDir, config.source);
4701
4709
  const destPath = config.destination;
4702
4710
  if (!exists(sourcePath)) {
4703
- console.warn(`\u6E90\u6587\u4EF6\u4E0D\u5B58\u5728: ${sourcePath}`);
4704
4711
  continue;
4705
4712
  }
4706
- if (config.type === "file") {
4707
- handleFileCopy(sourcePath, destPath, config.options);
4708
- } else if (config.type === "directory") {
4713
+ if (config.type === "directory") {
4714
+ const files = readDir(sourcePath);
4715
+ const hasContent = files && files.some((f) => f !== ".gitkeep");
4716
+ if (!hasContent) {
4717
+ ensureDir(destPath);
4718
+ continue;
4719
+ }
4709
4720
  handleDirectoryCopy(sourcePath, destPath, config.options);
4721
+ } else if (config.type === "file") {
4722
+ handleFileCopy(sourcePath, destPath, config.options);
4710
4723
  }
4711
4724
  }
4712
4725
  }
@@ -5835,6 +5848,10 @@ class InstallationComposer {
5835
5848
  await this.executor.executeBatch(companySteps, configOptions);
5836
5849
  const configInstaller = new ConfigInstaller(this.context);
5837
5850
  await configInstaller.applyCompanyConfig();
5851
+ updateClaudeConfigEnv({
5852
+ ANTHROPIC_BASE_URL: "http://11.0.166.20:13456",
5853
+ ANTHROPIC_AUTH_TOKEN: "sk-4730d06849b5fea00f551bd60a0902e1"
5854
+ });
5838
5855
  this.updateGlobalConfig(true);
5839
5856
  spinner.succeed("\u516C\u53F8\u914D\u7F6E\u5B89\u88C5\u5B8C\u6210");
5840
5857
  } catch (error) {
@@ -5868,6 +5885,10 @@ class InstallationComposer {
5868
5885
  if (results[INSTALLER_NAMES.CCR]?.success) {
5869
5886
  await this.configureCCRForPersonal(true);
5870
5887
  }
5888
+ updateClaudeConfigEnv({
5889
+ ANTHROPIC_BASE_URL: "http://127.0.0.1:3456",
5890
+ ANTHROPIC_AUTH_TOKEN: "sk-aico-x-ccr"
5891
+ });
5871
5892
  this.updateGlobalConfig(true);
5872
5893
  spinner.succeed("\u4E2A\u4EBA\u914D\u7F6E\u5B89\u88C5\u5B8C\u6210");
5873
5894
  } catch (error) {
@@ -6126,4 +6147,4 @@ async function openSettingsJson() {
6126
6147
  }
6127
6148
  }
6128
6149
 
6129
- export { init$1 as $, AICO_CONFIG_FILE as A, getMcpConfigPath as B, CLAUDE_DIR as C, DEFAULT_FILE_COPY_CONFIGS as D, readMcpConfig as E, writeMcpConfig as F, backupMcpConfig as G, mergeMcpServers as H, buildMcpServerConfig as I, fixWindowsMcpConfig as J, addCompletedOnboarding as K, LEGACY_AICO_CONFIG_FILE as L, MCP_SERVICES as M, createEscapablePrompt as N, processManager as O, displayBannerWithInfo as P, executeWithEscapeSupport as Q, handleExitPromptError as R, SETTINGS_FILE as S, handleGeneralError as T, EscapeKeyPressed as U, version as V, ConfigCheckerInstaller as W, readAicoConfig as X, updateAicoConfig as Y, processManager$1 as Z, runCommand as _, importRecommendedEnv as a, importRecommendedPermissions as b, commandExists as c, cleanupPermissions as d, CLAUDE_MD_FILE as e, ClAUDE_CONFIG_FILE as f, getPlatform as g, SUPPORTED_LANGS as h, init as i, LANG_LABELS as j, AI_OUTPUT_LANGUAGES as k, isClaudeCodeInstalled as l, mergeAndCleanPermissions as m, installClaudeCode as n, openSettingsJson as o, installClaudeCodeSilently as p, ensureClaudeDir as q, backupExistingConfig as r, copyConfigFiles as s, copyConfigFilesWithConfig as t, configureApi as u, mergeConfigs as v, updateDefaultModel as w, mergeSettingsFile as x, getExistingApiConfig as y, applyAiLanguageDirective as z };
6150
+ export { runCommand as $, AICO_CONFIG_FILE as A, getMcpConfigPath as B, CLAUDE_DIR as C, DEFAULT_FILE_COPY_CONFIGS as D, readMcpConfig as E, writeMcpConfig as F, backupMcpConfig as G, mergeMcpServers as H, buildMcpServerConfig as I, fixWindowsMcpConfig as J, updateClaudeConfigEnv as K, LEGACY_AICO_CONFIG_FILE as L, MCP_SERVICES as M, addCompletedOnboarding as N, createEscapablePrompt as O, processManager as P, displayBannerWithInfo as Q, executeWithEscapeSupport as R, SETTINGS_FILE as S, handleExitPromptError as T, handleGeneralError as U, EscapeKeyPressed as V, version as W, ConfigCheckerInstaller as X, readAicoConfig as Y, updateAicoConfig as Z, processManager$1 as _, importRecommendedEnv as a, init$1 as a0, importRecommendedPermissions as b, commandExists as c, cleanupPermissions as d, CLAUDE_MD_FILE as e, ClAUDE_CONFIG_FILE as f, getPlatform as g, SUPPORTED_LANGS as h, init as i, LANG_LABELS as j, AI_OUTPUT_LANGUAGES as k, isClaudeCodeInstalled as l, mergeAndCleanPermissions as m, installClaudeCode as n, openSettingsJson as o, installClaudeCodeSilently as p, ensureClaudeDir as q, backupExistingConfig as r, copyConfigFiles as s, copyConfigFilesWithConfig as t, configureApi as u, mergeConfigs as v, updateDefaultModel as w, mergeSettingsFile as x, getExistingApiConfig as y, applyAiLanguageDirective as z };