@aiiware/aii 0.7.6 → 0.7.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/bin/aii +6 -6
  2. package/package.json +1 -1
package/bin/aii CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * @aiiware/aii v0.7.6
3
+ * @aiiware/aii v0.7.7
4
4
  *
5
5
  * AI-powered CLI assistant for terminal productivity
6
6
  *
@@ -186,7 +186,7 @@ ${r.comment}`:r.comment}this.doc.range[2]=r.offset;break}default:this.errors.pus
186
186
  `)+`\r
187
187
  \r
188
188
  `+r)}function Ls(t,e,r,n,s,i){if(t.listenerCount("wsClientError")){let a=new Error(s);Error.captureStackTrace(a,Ls),t.emit("wsClientError",a,r,e)}else yo(r,n,s,i)}});function Xf(t){To={...To,...t}}function bo(t){return To.emojis?t+" ":""}function Ps(t,e){return To.colors?e(t):t}function z(t,...e){To.debug&&console.debug(Ps(`[DEBUG] ${t}`,_.gray),...e)}function O6(t,...e){console.log(t,...e)}function k6(t,...e){console.warn(Ps(`${bo("\u26A0\uFE0F")}${t}`,_.yellow),...e)}function w6(t,...e){console.error(Ps(`${bo("\u274C")}${t}`,_.red),...e)}function v6(t,...e){console.log(Ps(`${bo("\u2705")}${t}`,_.green),...e)}function Zf(t){let e=[];return e.push(Ps(`${bo("\u274C")}${t.message}`,_.red)),t.suggestions&&t.suggestions.length>0&&(e.push(""),e.push(Ps(`${bo("\u{1F4A1}")}Solutions:`,_.yellow)),t.suggestions.forEach((r,n)=>{e.push(Ps(` ${n+1}. ${r}`,_.gray))})),e.join(`
189
- `)}var R6,To,U,wt=ae(()=>{"use strict";Le();R6={debug:!1,colors:!0,emojis:!0},To={...R6};U={debug:z,info:O6,warn:k6,error:w6,success:v6,formatError:Zf,configure:Xf}});import*as gr from"fs";import*as Cu from"path";import*as Jf from"os";var ki,St,wi=ae(()=>{"use strict";ki={github:{name:"GitHub",description:"GitHub API integration for repos, issues, PRs, and more",command:"npx",args:["-y","@modelcontextprotocol/server-github"],env:{GITHUB_PERSONAL_ACCESS_TOKEN:"${GITHUB_TOKEN}"},category:"development"},filesystem:{name:"Filesystem",description:"Read/write files on the local filesystem",command:"npx",args:["-y","@modelcontextprotocol/server-filesystem",Jf.homedir()],category:"system"},"brave-search":{name:"Brave Search",description:"Web search using Brave Search API",command:"npx",args:["-y","@brave/brave-search-mcp-server"],env:{BRAVE_API_KEY:"${BRAVE_API_KEY}"},category:"search"},sqlite:{name:"SQLite",description:"Query SQLite databases",command:"uvx",args:["mcp-server-sqlite","--db-path","./database.db"],category:"database"},postgres:{name:"PostgreSQL",description:"Query PostgreSQL databases",command:"npx",args:["-y","@anthropic/mcp-server-postgres"],env:{DATABASE_URL:"${DATABASE_URL}"},category:"database"},"chrome-devtools":{name:"Chrome DevTools",description:"Control Chrome browser via DevTools protocol",command:"npx",args:["chrome-devtools-mcp@latest"],category:"browser"},memory:{name:"Memory",description:"Persistent memory storage for conversation context",command:"npx",args:["-y","@modelcontextprotocol/server-memory"],category:"utility"},puppeteer:{name:"Puppeteer",description:"Browser automation with Puppeteer",command:"npx",args:["-y","@anthropic/mcp-server-puppeteer"],category:"browser"}},St=class{configPath;constructor(e){this.configPath=e||Cu.join(Jf.homedir(),".aii","mcp_servers.json"),this.ensureConfigDir()}ensureConfigDir(){let e=Cu.dirname(this.configPath);gr.existsSync(e)||gr.mkdirSync(e,{recursive:!0})}loadConfig(){if(!gr.existsSync(this.configPath))return{mcpServers:{}};try{let e=gr.readFileSync(this.configPath,"utf-8"),r=JSON.parse(e);return typeof r=="object"&&r!==null?r:{mcpServers:{}}}catch{return{mcpServers:{}}}}saveConfig(e){try{return this.ensureConfigDir(),gr.writeFileSync(this.configPath,JSON.stringify(e,null,2),"utf-8"),!0}catch{return!1}}backupConfig(){if(!gr.existsSync(this.configPath))return!0;try{let e=this.configPath+".backup";return gr.copyFileSync(this.configPath,e),!0}catch{return!1}}getConfigPath(){return this.configPath}}});var Du={};Jt(Du,{ClientMCPExecutor:()=>eg});import{Client as x6}from"@modelcontextprotocol/sdk/client/index.js";import{StdioClientTransport as M6}from"@modelcontextprotocol/sdk/client/stdio.js";var eg,Au=ae(()=>{"use strict";wi();wt();eg=class{connections=new Map;toolToServer=new Map;initialized=!1;configManager;constructor(){this.configManager=new St}async initialize(){if(this.initialized)return!0;try{let r=this.configManager.loadConfig().mcpServers||{};z(`Initializing MCP executor with ${Object.keys(r).length} servers`);for(let[n,s]of Object.entries(r)){if(s.enabled===!1){z(`Skipping disabled server: ${n}`);continue}try{await this.connectToServer(n,s)}catch(i){z(`Failed to connect to ${n}: ${i}`)}}return this.initialized=!0,z(`MCP executor initialized with ${this.connections.size} connections`),!0}catch(e){return z(`Failed to initialize MCP executor: ${e}`),!1}}async connectToServer(e,r){let n=r.command,s=Array.isArray(r.args)?r.args:[r.args||""],i={...process.env};if(r.env)for(let[u,d]of Object.entries(r.env)){let p=String(d).replace(/\$\{(\w+)\}/g,(h,m)=>process.env[m]||"");i[u]=p}z(`Connecting to MCP server: ${e}`),z(` command: ${n}`),z(` args: ${JSON.stringify(s)}`);let a=new M6({command:n,args:s,env:i,stderr:"pipe"}),o=new x6({name:"aii-cli",version:"0.1.0"},{capabilities:{}});await o.connect(a);let c=(await o.listTools()).tools.map(u=>({name:u.name,description:u.description||"",inputSchema:u.inputSchema,serverName:e}));this.connections.set(e,{client:o,transport:a,tools:c});for(let u of c)this.toolToServer.set(u.name,e);z(`Connected to ${e}: discovered ${c.length} tools`)}async handleQueryTools(e){let r=e.request_id||"unknown";z(`Handling mcp_query_tools request: ${r}`),this.initialized||await this.initialize();try{let n=[];for(let i of this.connections.values())n.push(...i.tools);let s=n.map(i=>({name:i.name,description:i.description,input_schema:i.inputSchema,server_name:i.serverName}));return z(`Found ${s.length} MCP tools across all servers`),{type:"mcp_query_tools_response",request_id:r,success:!0,tools:s}}catch(n){return z(`Error querying MCP tools: ${n}`),{type:"mcp_query_tools_response",request_id:r,success:!1,error:String(n),tools:[]}}}async handleToolExecution(e){let r=e.request_id||"unknown",n=e.tool_name,s=e.arguments||{};if(z(`Handling mcp_tool_request: ${r} - Tool: ${n}`),!n)return{type:"mcp_tool_response",request_id:r,success:!1,error:"Missing tool_name in request"};this.initialized||await this.initialize();try{let i=this.toolToServer.get(n);if(!i)return{type:"mcp_tool_response",request_id:r,success:!1,error:`Tool '${n}' not found in any connected MCP server`};let a=this.connections.get(i);if(!a)return{type:"mcp_tool_response",request_id:r,success:!1,error:`Server '${i}' not connected`};let o=await Promise.race([a.client.callTool({name:n,arguments:s}),new Promise((c,u)=>setTimeout(()=>u(new Error(`Tool '${n}' timed out after 30 seconds`)),3e4))]),l=this.makeContentSerializable(o.content);return z(`Tool '${n}' executed successfully (server: ${i})`),{type:"mcp_tool_response",request_id:r,success:!o.isError,content:l,server_name:i,error:o.isError?"Tool returned error":void 0}}catch(i){return z(`Error executing MCP tool '${n}': ${i}`),{type:"mcp_tool_response",request_id:r,success:!1,error:String(i)}}}makeContentSerializable(e){if(e==null)return null;if(Array.isArray(e))return e.map(r=>this.makeContentSerializable(r));if(typeof e=="object"){let r=e;if(r.type==="text"&&typeof r.text=="string")return{type:"text",text:r.text};if(r.type==="image")return{type:"image",data:r.data,mimeType:r.mimeType};let n={};for(let[s,i]of Object.entries(r))n[s]=this.makeContentSerializable(i);return n}return e}async shutdown(){z("Shutting down MCP executor");for(let[e,r]of this.connections)try{await r.client.close(),z(`Closed connection to ${e}`)}catch(n){z(`Error closing ${e}: ${n}`)}this.connections.clear(),this.toolToServer.clear(),this.initialized=!1}isInitialized(){return this.initialized}getConnectionCount(){return this.connections.size}}});var T0=S((bae,K6)=>{K6.exports={dots:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]},dots2:{interval:80,frames:["\u28FE","\u28FD","\u28FB","\u28BF","\u287F","\u28DF","\u28EF","\u28F7"]},dots3:{interval:80,frames:["\u280B","\u2819","\u281A","\u281E","\u2816","\u2826","\u2834","\u2832","\u2833","\u2813"]},dots4:{interval:80,frames:["\u2804","\u2806","\u2807","\u280B","\u2819","\u2838","\u2830","\u2820","\u2830","\u2838","\u2819","\u280B","\u2807","\u2806"]},dots5:{interval:80,frames:["\u280B","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B"]},dots6:{interval:80,frames:["\u2801","\u2809","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2824","\u2804","\u2804","\u2824","\u2834","\u2832","\u2812","\u2802","\u2802","\u2812","\u281A","\u2819","\u2809","\u2801"]},dots7:{interval:80,frames:["\u2808","\u2809","\u280B","\u2813","\u2812","\u2810","\u2810","\u2812","\u2816","\u2826","\u2824","\u2820","\u2820","\u2824","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B","\u2809","\u2808"]},dots8:{interval:80,frames:["\u2801","\u2801","\u2809","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2824","\u2804","\u2804","\u2824","\u2820","\u2820","\u2824","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B","\u2809","\u2808","\u2808"]},dots9:{interval:80,frames:["\u28B9","\u28BA","\u28BC","\u28F8","\u28C7","\u2867","\u2857","\u284F"]},dots10:{interval:80,frames:["\u2884","\u2882","\u2881","\u2841","\u2848","\u2850","\u2860"]},dots11:{interval:100,frames:["\u2801","\u2802","\u2804","\u2840","\u2880","\u2820","\u2810","\u2808"]},dots12:{interval:80,frames:["\u2880\u2800","\u2840\u2800","\u2804\u2800","\u2882\u2800","\u2842\u2800","\u2805\u2800","\u2883\u2800","\u2843\u2800","\u280D\u2800","\u288B\u2800","\u284B\u2800","\u280D\u2801","\u288B\u2801","\u284B\u2801","\u280D\u2809","\u280B\u2809","\u280B\u2809","\u2809\u2819","\u2809\u2819","\u2809\u2829","\u2808\u2899","\u2808\u2859","\u2888\u2829","\u2840\u2899","\u2804\u2859","\u2882\u2829","\u2842\u2898","\u2805\u2858","\u2883\u2828","\u2843\u2890","\u280D\u2850","\u288B\u2820","\u284B\u2880","\u280D\u2841","\u288B\u2801","\u284B\u2801","\u280D\u2809","\u280B\u2809","\u280B\u2809","\u2809\u2819","\u2809\u2819","\u2809\u2829","\u2808\u2899","\u2808\u2859","\u2808\u2829","\u2800\u2899","\u2800\u2859","\u2800\u2829","\u2800\u2898","\u2800\u2858","\u2800\u2828","\u2800\u2890","\u2800\u2850","\u2800\u2820","\u2800\u2880","\u2800\u2840"]},dots13:{interval:80,frames:["\u28FC","\u28F9","\u28BB","\u283F","\u285F","\u28CF","\u28E7","\u28F6"]},dots8Bit:{interval:80,frames:["\u2800","\u2801","\u2802","\u2803","\u2804","\u2805","\u2806","\u2807","\u2840","\u2841","\u2842","\u2843","\u2844","\u2845","\u2846","\u2847","\u2808","\u2809","\u280A","\u280B","\u280C","\u280D","\u280E","\u280F","\u2848","\u2849","\u284A","\u284B","\u284C","\u284D","\u284E","\u284F","\u2810","\u2811","\u2812","\u2813","\u2814","\u2815","\u2816","\u2817","\u2850","\u2851","\u2852","\u2853","\u2854","\u2855","\u2856","\u2857","\u2818","\u2819","\u281A","\u281B","\u281C","\u281D","\u281E","\u281F","\u2858","\u2859","\u285A","\u285B","\u285C","\u285D","\u285E","\u285F","\u2820","\u2821","\u2822","\u2823","\u2824","\u2825","\u2826","\u2827","\u2860","\u2861","\u2862","\u2863","\u2864","\u2865","\u2866","\u2867","\u2828","\u2829","\u282A","\u282B","\u282C","\u282D","\u282E","\u282F","\u2868","\u2869","\u286A","\u286B","\u286C","\u286D","\u286E","\u286F","\u2830","\u2831","\u2832","\u2833","\u2834","\u2835","\u2836","\u2837","\u2870","\u2871","\u2872","\u2873","\u2874","\u2875","\u2876","\u2877","\u2838","\u2839","\u283A","\u283B","\u283C","\u283D","\u283E","\u283F","\u2878","\u2879","\u287A","\u287B","\u287C","\u287D","\u287E","\u287F","\u2880","\u2881","\u2882","\u2883","\u2884","\u2885","\u2886","\u2887","\u28C0","\u28C1","\u28C2","\u28C3","\u28C4","\u28C5","\u28C6","\u28C7","\u2888","\u2889","\u288A","\u288B","\u288C","\u288D","\u288E","\u288F","\u28C8","\u28C9","\u28CA","\u28CB","\u28CC","\u28CD","\u28CE","\u28CF","\u2890","\u2891","\u2892","\u2893","\u2894","\u2895","\u2896","\u2897","\u28D0","\u28D1","\u28D2","\u28D3","\u28D4","\u28D5","\u28D6","\u28D7","\u2898","\u2899","\u289A","\u289B","\u289C","\u289D","\u289E","\u289F","\u28D8","\u28D9","\u28DA","\u28DB","\u28DC","\u28DD","\u28DE","\u28DF","\u28A0","\u28A1","\u28A2","\u28A3","\u28A4","\u28A5","\u28A6","\u28A7","\u28E0","\u28E1","\u28E2","\u28E3","\u28E4","\u28E5","\u28E6","\u28E7","\u28A8","\u28A9","\u28AA","\u28AB","\u28AC","\u28AD","\u28AE","\u28AF","\u28E8","\u28E9","\u28EA","\u28EB","\u28EC","\u28ED","\u28EE","\u28EF","\u28B0","\u28B1","\u28B2","\u28B3","\u28B4","\u28B5","\u28B6","\u28B7","\u28F0","\u28F1","\u28F2","\u28F3","\u28F4","\u28F5","\u28F6","\u28F7","\u28B8","\u28B9","\u28BA","\u28BB","\u28BC","\u28BD","\u28BE","\u28BF","\u28F8","\u28F9","\u28FA","\u28FB","\u28FC","\u28FD","\u28FE","\u28FF"]},sand:{interval:80,frames:["\u2801","\u2802","\u2804","\u2840","\u2848","\u2850","\u2860","\u28C0","\u28C1","\u28C2","\u28C4","\u28CC","\u28D4","\u28E4","\u28E5","\u28E6","\u28EE","\u28F6","\u28F7","\u28FF","\u287F","\u283F","\u289F","\u281F","\u285B","\u281B","\u282B","\u288B","\u280B","\u280D","\u2849","\u2809","\u2811","\u2821","\u2881"]},line:{interval:130,frames:["-","\\","|","/"]},line2:{interval:100,frames:["\u2802","-","\u2013","\u2014","\u2013","-"]},pipe:{interval:100,frames:["\u2524","\u2518","\u2534","\u2514","\u251C","\u250C","\u252C","\u2510"]},simpleDots:{interval:400,frames:[". ",".. ","..."," "]},simpleDotsScrolling:{interval:200,frames:[". ",".. ","..."," .."," ."," "]},star:{interval:70,frames:["\u2736","\u2738","\u2739","\u273A","\u2739","\u2737"]},star2:{interval:80,frames:["+","x","*"]},flip:{interval:70,frames:["_","_","_","-","`","`","'","\xB4","-","_","_","_"]},hamburger:{interval:100,frames:["\u2631","\u2632","\u2634"]},growVertical:{interval:120,frames:["\u2581","\u2583","\u2584","\u2585","\u2586","\u2587","\u2586","\u2585","\u2584","\u2583"]},growHorizontal:{interval:120,frames:["\u258F","\u258E","\u258D","\u258C","\u258B","\u258A","\u2589","\u258A","\u258B","\u258C","\u258D","\u258E"]},balloon:{interval:140,frames:[" ",".","o","O","@","*"," "]},balloon2:{interval:120,frames:[".","o","O","\xB0","O","o","."]},noise:{interval:100,frames:["\u2593","\u2592","\u2591"]},bounce:{interval:120,frames:["\u2801","\u2802","\u2804","\u2802"]},boxBounce:{interval:120,frames:["\u2596","\u2598","\u259D","\u2597"]},boxBounce2:{interval:100,frames:["\u258C","\u2580","\u2590","\u2584"]},triangle:{interval:50,frames:["\u25E2","\u25E3","\u25E4","\u25E5"]},binary:{interval:80,frames:["010010","001100","100101","111010","111101","010111","101011","111000","110011","110101"]},arc:{interval:100,frames:["\u25DC","\u25E0","\u25DD","\u25DE","\u25E1","\u25DF"]},circle:{interval:120,frames:["\u25E1","\u2299","\u25E0"]},squareCorners:{interval:180,frames:["\u25F0","\u25F3","\u25F2","\u25F1"]},circleQuarters:{interval:120,frames:["\u25F4","\u25F7","\u25F6","\u25F5"]},circleHalves:{interval:50,frames:["\u25D0","\u25D3","\u25D1","\u25D2"]},squish:{interval:100,frames:["\u256B","\u256A"]},toggle:{interval:250,frames:["\u22B6","\u22B7"]},toggle2:{interval:80,frames:["\u25AB","\u25AA"]},toggle3:{interval:120,frames:["\u25A1","\u25A0"]},toggle4:{interval:100,frames:["\u25A0","\u25A1","\u25AA","\u25AB"]},toggle5:{interval:100,frames:["\u25AE","\u25AF"]},toggle6:{interval:300,frames:["\u101D","\u1040"]},toggle7:{interval:80,frames:["\u29BE","\u29BF"]},toggle8:{interval:100,frames:["\u25CD","\u25CC"]},toggle9:{interval:100,frames:["\u25C9","\u25CE"]},toggle10:{interval:100,frames:["\u3282","\u3280","\u3281"]},toggle11:{interval:50,frames:["\u29C7","\u29C6"]},toggle12:{interval:120,frames:["\u2617","\u2616"]},toggle13:{interval:80,frames:["=","*","-"]},arrow:{interval:100,frames:["\u2190","\u2196","\u2191","\u2197","\u2192","\u2198","\u2193","\u2199"]},arrow2:{interval:80,frames:["\u2B06\uFE0F ","\u2197\uFE0F ","\u27A1\uFE0F ","\u2198\uFE0F ","\u2B07\uFE0F ","\u2199\uFE0F ","\u2B05\uFE0F ","\u2196\uFE0F "]},arrow3:{interval:120,frames:["\u25B9\u25B9\u25B9\u25B9\u25B9","\u25B8\u25B9\u25B9\u25B9\u25B9","\u25B9\u25B8\u25B9\u25B9\u25B9","\u25B9\u25B9\u25B8\u25B9\u25B9","\u25B9\u25B9\u25B9\u25B8\u25B9","\u25B9\u25B9\u25B9\u25B9\u25B8"]},bouncingBar:{interval:80,frames:["[ ]","[= ]","[== ]","[=== ]","[====]","[ ===]","[ ==]","[ =]","[ ]","[ =]","[ ==]","[ ===]","[====]","[=== ]","[== ]","[= ]"]},bouncingBall:{interval:80,frames:["( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF)","( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF )","(\u25CF )"]},smiley:{interval:200,frames:["\u{1F604} ","\u{1F61D} "]},monkey:{interval:300,frames:["\u{1F648} ","\u{1F648} ","\u{1F649} ","\u{1F64A} "]},hearts:{interval:100,frames:["\u{1F49B} ","\u{1F499} ","\u{1F49C} ","\u{1F49A} ","\u2764\uFE0F "]},clock:{interval:100,frames:["\u{1F55B} ","\u{1F550} ","\u{1F551} ","\u{1F552} ","\u{1F553} ","\u{1F554} ","\u{1F555} ","\u{1F556} ","\u{1F557} ","\u{1F558} ","\u{1F559} ","\u{1F55A} "]},earth:{interval:180,frames:["\u{1F30D} ","\u{1F30E} ","\u{1F30F} "]},material:{interval:17,frames:["\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581"]},moon:{interval:80,frames:["\u{1F311} ","\u{1F312} ","\u{1F313} ","\u{1F314} ","\u{1F315} ","\u{1F316} ","\u{1F317} ","\u{1F318} "]},runner:{interval:140,frames:["\u{1F6B6} ","\u{1F3C3} "]},pong:{interval:80,frames:["\u2590\u2802 \u258C","\u2590\u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802\u258C","\u2590 \u2820\u258C","\u2590 \u2840\u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590\u2820 \u258C"]},shark:{interval:120,frames:["\u2590|\\____________\u258C","\u2590_|\\___________\u258C","\u2590__|\\__________\u258C","\u2590___|\\_________\u258C","\u2590____|\\________\u258C","\u2590_____|\\_______\u258C","\u2590______|\\______\u258C","\u2590_______|\\_____\u258C","\u2590________|\\____\u258C","\u2590_________|\\___\u258C","\u2590__________|\\__\u258C","\u2590___________|\\_\u258C","\u2590____________|\\\u258C","\u2590____________/|\u258C","\u2590___________/|_\u258C","\u2590__________/|__\u258C","\u2590_________/|___\u258C","\u2590________/|____\u258C","\u2590_______/|_____\u258C","\u2590______/|______\u258C","\u2590_____/|_______\u258C","\u2590____/|________\u258C","\u2590___/|_________\u258C","\u2590__/|__________\u258C","\u2590_/|___________\u258C","\u2590/|____________\u258C"]},dqpb:{interval:100,frames:["d","q","p","b"]},weather:{interval:100,frames:["\u2600\uFE0F ","\u2600\uFE0F ","\u2600\uFE0F ","\u{1F324} ","\u26C5\uFE0F ","\u{1F325} ","\u2601\uFE0F ","\u{1F327} ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u26C8 ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u2601\uFE0F ","\u{1F325} ","\u26C5\uFE0F ","\u{1F324} ","\u2600\uFE0F ","\u2600\uFE0F "]},christmas:{interval:400,frames:["\u{1F332}","\u{1F384}"]},grenade:{interval:80,frames:["\u060C ","\u2032 "," \xB4 "," \u203E "," \u2E0C"," \u2E0A"," |"," \u204E"," \u2055"," \u0DF4 "," \u2053"," "," "," "]},point:{interval:125,frames:["\u2219\u2219\u2219","\u25CF\u2219\u2219","\u2219\u25CF\u2219","\u2219\u2219\u25CF","\u2219\u2219\u2219"]},layer:{interval:150,frames:["-","=","\u2261"]},betaWave:{interval:80,frames:["\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2","\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2","\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2","\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2","\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2","\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2","\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1"]},fingerDance:{interval:160,frames:["\u{1F918} ","\u{1F91F} ","\u{1F596} ","\u270B ","\u{1F91A} ","\u{1F446} "]},fistBump:{interval:80,frames:["\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u3000\u{1F91C}\u3000\u3000\u{1F91B}\u3000 ","\u3000\u3000\u{1F91C}\u{1F91B}\u3000\u3000 ","\u3000\u{1F91C}\u2728\u{1F91B}\u3000\u3000 ","\u{1F91C}\u3000\u2728\u3000\u{1F91B}\u3000 "]},soccerHeader:{interval:80,frames:[" \u{1F9D1}\u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F\u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} "]},mindblown:{interval:160,frames:["\u{1F610} ","\u{1F610} ","\u{1F62E} ","\u{1F62E} ","\u{1F626} ","\u{1F626} ","\u{1F627} ","\u{1F627} ","\u{1F92F} ","\u{1F4A5} ","\u2728 ","\u3000 ","\u3000 ","\u3000 "]},speaker:{interval:160,frames:["\u{1F508} ","\u{1F509} ","\u{1F50A} ","\u{1F509} "]},orangePulse:{interval:100,frames:["\u{1F538} ","\u{1F536} ","\u{1F7E0} ","\u{1F7E0} ","\u{1F536} "]},bluePulse:{interval:100,frames:["\u{1F539} ","\u{1F537} ","\u{1F535} ","\u{1F535} ","\u{1F537} "]},orangeBluePulse:{interval:100,frames:["\u{1F538} ","\u{1F536} ","\u{1F7E0} ","\u{1F7E0} ","\u{1F536} ","\u{1F539} ","\u{1F537} ","\u{1F535} ","\u{1F535} ","\u{1F537} "]},timeTravel:{interval:100,frames:["\u{1F55B} ","\u{1F55A} ","\u{1F559} ","\u{1F558} ","\u{1F557} ","\u{1F556} ","\u{1F555} ","\u{1F554} ","\u{1F553} ","\u{1F552} ","\u{1F551} ","\u{1F550} "]},aesthetic:{interval:80,frames:["\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0","\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1"]},dwarfFortress:{interval:80,frames:[" \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\xA3\xA3\xA3 "," \u263A \u2588\xA3\xA3\xA3 "," \u263A\u2588\xA3\xA3\xA3 "," \u263A\u2588\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3\xA3 "," \u263A\u2592\xA3\xA3\xA3 "," \u263A\u2592\xA3\xA3\xA3 "," \u263A\u2591\xA3\xA3\xA3 "," \u263A\u2591\xA3\xA3\xA3 "," \u263A \xA3\xA3\xA3 "," \u263A\xA3\xA3\xA3 "," \u263A\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3 "," \u263A\u2593\xA3\xA3 "," \u263A\u2592\xA3\xA3 "," \u263A\u2592\xA3\xA3 "," \u263A\u2591\xA3\xA3 "," \u263A\u2591\xA3\xA3 "," \u263A \xA3\xA3 "," \u263A\xA3\xA3 "," \u263A\xA3\xA3 "," \u263A\u2593\xA3 "," \u263A\u2593\xA3 "," \u263A\u2592\xA3 "," \u263A\u2592\xA3 "," \u263A\u2591\xA3 "," \u263A\u2591\xA3 "," \u263A \xA3 "," \u263A\xA3 "," \u263A\xA3 "," \u263A\u2593 "," \u263A\u2593 "," \u263A\u2592 "," \u263A\u2592 "," \u263A\u2591 "," \u263A\u2591 "," \u263A "," \u263A &"," \u263A \u263C&"," \u263A \u263C &"," \u263A\u263C &"," \u263A\u263C & "," \u203C & "," \u263A & "," \u203C & "," \u263A & "," \u203C & "," \u263A & ","\u203C & "," & "," & "," & \u2591 "," & \u2592 "," & \u2593 "," & \xA3 "," & \u2591\xA3 "," & \u2592\xA3 "," & \u2593\xA3 "," & \xA3\xA3 "," & \u2591\xA3\xA3 "," & \u2592\xA3\xA3 ","& \u2593\xA3\xA3 ","& \xA3\xA3\xA3 "," \u2591\xA3\xA3\xA3 "," \u2592\xA3\xA3\xA3 "," \u2593\xA3\xA3\xA3 "," \u2588\xA3\xA3\xA3 "," \u2591\u2588\xA3\xA3\xA3 "," \u2592\u2588\xA3\xA3\xA3 "," \u2593\u2588\xA3\xA3\xA3 "," \u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "]}}});var cg=S((Cae,C0)=>{"use strict";var wu=Object.assign({},T0()),b0=Object.keys(wu);Object.defineProperty(wu,"random",{get(){let t=Math.floor(Math.random()*b0.length),e=b0[t];return wu[e]}});C0.exports=wu});function Us({onlyFirst:t=!1}={}){let s="(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";return new RegExp(s,t?void 0:"g")}var vu=ae(()=>{});var O0=S((Uae,R0)=>{R0.exports=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g});function re(t,...e){process.env.AII_INK_DEBUG==="1"&&console.error(`[INK-DEBUG] ${t}`,...e)}var Mu=ae(()=>{"use strict"});import{resolve as sG}from"path";function iG(){let t=process.env.TERM??"",e=process.env.TERM_PROGRAM??"",r=process.env.COLORTERM??"",n=process.env.WT_SESSION??"",s=process.env.VSCODE_INJECTION??process.env.TERM_PROGRAM==="vscode";return e==="iTerm.app"||e==="Hyper"||e==="vscode"||e==="WezTerm"||e==="Alacritty"||n||s||t.includes("xterm-256color")||t.includes("screen-256color")||t.includes("tmux")||t==="xterm-kitty"||r==="truecolor"?!0:!(t==="dumb"||!process.stdout.isTTY)}function Ao(){return Tg===null&&(Tg=iG()),Tg}function aG(){return process.platform==="darwin"?"Cmd":"Ctrl"}function x0(){return v0||!Ao()?"":(v0=!0,` (${aG()}+Click to open)`)}function oG(t,e){return Ao()?`\x1B]8;;${e}\x07${t}\x1B]8;;\x07`:t}function M0(t,e){let r=process.env.HOME??process.env.USERPROFILE??"",n=t;r&&t.startsWith(r)&&(n="~"+t.slice(r.length));let s=e?`${n}:${e}`:n;if(!Ao())return _.cyan.underline(s);let i=_.cyan(s),o=`file://${sG(t)}`;return e!==void 0&&e>0&&(o+=`#L${e}`),oG(i,o)}var Tg,v0,L0=ae(()=>{"use strict";Le();Tg=null,v0=!1});function P0(t){return t.startsWith("/")||t.startsWith("~/")||t.startsWith("./")||t.startsWith("../")||/^[a-zA-Z]:\\/.test(t)||/\.(ts|tsx|js|jsx|json|md|py|go|rs|java|c|cpp|h|hpp|css|scss|html|xml|yaml|yml|toml|sh|bash|zsh)$/.test(t)||/^src\//.test(t)||/^lib\//.test(t)||/^test[s]?\//.test(t)}function U0(t,e,r=!0,n,s=console.log){let i=r?ze.success("\u25CF"):ze.error("\u25CF"),a=60,o=e.length>a?e.slice(0,a-3)+"...":e;if(P0(e)){let c=e.match(/:(\d+)$/),u=c?parseInt(c[1],10):void 0,d=c?e.replace(/:(\d+)$/,""):e;o=lG(d,u)}s(`${i} ${_.bold(t)}(${o})`);let l=P0(e)?ze.dim(x0()):"";if(n){let c=r?ze.dim:ze.error;s(c(`\u2514 ${n}`)+l)}else{let c=r?"(No content)":"(Error)",u=r?ze.dim:ze.error;s(u(`\u2514 ${c}`)+l)}}function lG(t,e){if(Ao())return M0(t,e);let r=process.env.HOME??process.env.USERPROFILE??"",n=t;return r&&t.startsWith(r)&&(n="~"+t.slice(r.length)),e&&(n+=`:${e}`),ze.filePath(n)}function cG(){return process.stdout.columns||80}function uG(t){if(t<60)return`${t}s`;let e=Math.floor(t/60),r=t%60;return r>0?`${e}m ${r}s`:`${e}m`}function F0(t){return t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toString()}function B0(t){let e=cG(),r=Math.min(e-2,76),n=r-4,s=(p,h)=>{let m=p.replace(/\x1b\[[0-9;]*m/g,"").length;return p+" ".repeat(Math.max(0,h-m))},i=p=>ze.border("\u2502")+" "+s(p,n)+" "+ze.border("\u2502"),a=(p,h,m,g)=>{let E=Math.floor(n/2),y=ze.dim(p.padEnd(15))+h,T=ze.dim(m.padEnd(15))+g;return i(s(y,E)+T)},o=uG(t.durationSeconds),l=F0(t.tokensIn),c=F0(t.tokensOut),u=`$${t.totalCost.toFixed(4)}`,d=`${t.provider}/${t.model.replace("claude-","").replace("-latest","")}`;console.log(""),console.log(ze.border("\u250C"+"\u2500".repeat(r-2)+"\u2510")),console.log(i(_.cyan.bold("Agent powering down. Goodbye!"))),console.log(ze.border("\u251C"+"\u2500".repeat(r-2)+"\u2524")),console.log(i(_.cyan.bold("Session Summary"))),console.log(i(ze.dim("\u2500".repeat(15)))),console.log(a("Duration",o,"Tool Calls",t.toolCalls.toString())),console.log(a("Turns",t.turns.toString(),"Files Modified",t.filesModified.toString())),console.log(i("")),console.log(i(_.cyan.bold("Token Usage"))),console.log(i(ze.dim("\u2500".repeat(11)))),console.log(a("Input",l,"Output",c)),console.log(i(ze.dim("Cost".padEnd(15))+u)),console.log(i("")),console.log(i(ze.dim("Model: ")+ze.model(d))),console.log(ze.border("\u2514"+"\u2500".repeat(r-2)+"\u2518")),console.log("")}var Lu,ze,No=ae(()=>{"use strict";Le();L0();Lu="0.7.6",ze={logo:_.cyan.bold,prompt:_.cyan.bold,model:_.cyan,success:_.green,warning:_.yellow,error:_.red,thinking:_.dim.cyan,filePath:_.blue,code:_.white,muted:_.gray,dim:_.dim,safe:_.green,risky:_.yellow,destructive:_.red,border:_.cyan,bannerBorder:_.cyan}});var $0={};Jt($0,{getUIStore:()=>Io,useUIStore:()=>En});import{create as dG}from"zustand";var G0,En,Io,bg=ae(()=>{"use strict";G0={mode:"welcome",agentMode:"normal",status:"",isThinking:!1,isStreaming:!1,currentIteration:0,iterationStartTime:Date.now(),iterationTokens:0,contextPercent:0,contextLevel:"normal",contextTokens:0,contextLimit:2e5,sessionCost:0,provider:"",model:"",projectPath:process.cwd(),branch:void 0,toolsCount:0,mcpServersCount:0,contextFilesCount:0,skillsCount:0,sessionStartTime:Date.now(),agentExecMs:0,agentTurnStartTime:null,renderEpoch:0,loopMode:!1},En=dG(t=>({...G0,setMode:e=>t({mode:e}),setAgentMode:e=>t({agentMode:e}),setStatus:e=>t({status:e}),setThinking:e=>t({isThinking:e}),setStreaming:e=>t(r=>{if(e&&!r.agentTurnStartTime)return{isStreaming:e,agentTurnStartTime:Date.now()};if(!e&&r.agentTurnStartTime){let n=Date.now()-r.agentTurnStartTime;return{isStreaming:e,agentExecMs:r.agentExecMs+n,agentTurnStartTime:null}}return{isStreaming:e}}),incrementIteration:()=>t(e=>({currentIteration:e.currentIteration+1,iterationStartTime:Date.now(),iterationTokens:0})),addIterationTokens:e=>t(r=>({iterationTokens:r.iterationTokens+e})),setIterationTokens:e=>t({iterationTokens:e}),updateContext:(e,r)=>{let n=r>0?Math.round(e/r*100):0,s=n>=90?"critical":n>=70?"warning":"normal";t({contextTokens:e,contextLimit:r,contextPercent:n,contextLevel:s})},updateSession:e=>t(e),updateResources:e=>t(e),setLoopMode:e=>t({loopMode:e}),incrementRenderEpoch:()=>t(e=>({renderEpoch:e.renderEpoch+1})),reset:()=>t(G0)})),Io=En.getState});function Ng(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function V0(t){Gs=t}function Re(t,e=""){let r=typeof t=="string"?t:t.source,n={replace:(s,i)=>{let a=typeof i=="string"?i:i.source;return a=a.replace(Ut.caret,"$1"),r=r.replace(s,a),n},getRegex:()=>new RegExp(r,e)};return n}function Yr(t,e){if(e){if(Ut.escapeTest.test(t))return t.replace(Ut.escapeReplace,H0)}else if(Ut.escapeTestNoEncode.test(t))return t.replace(Ut.escapeReplaceNoEncode,H0);return t}function Y0(t){try{t=encodeURI(t).replace(Ut.percentDecode,"%")}catch{return null}return t}function q0(t,e){let r=t.replace(Ut.findPipe,(i,a,o)=>{let l=!1,c=a;for(;--c>=0&&o[c]==="\\";)l=!l;return l?"|":" |"}),n=r.split(Ut.splitPipe),s=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length<e;)n.push("");for(;s<n.length;s++)n[s]=n[s].trim().replace(Ut.slashPipe,"|");return n}function Oo(t,e,r){let n=t.length;if(n===0)return"";let s=0;for(;s<n;){let i=t.charAt(n-s-1);if(i===e&&!r)s++;else if(i!==e&&r)s++;else break}return t.slice(0,n-s)}function qG(t,e){if(t.indexOf(e[1])===-1)return-1;let r=0;for(let n=0;n<t.length;n++)if(t[n]==="\\")n++;else if(t[n]===e[0])r++;else if(t[n]===e[1]&&(r--,r<0))return n;return r>0?-2:-1}function K0(t,e,r,n,s){let i=e.href,a=e.title||null,o=t[1].replace(s.other.outputLinkReplace,"$1");n.state.inLink=!0;let l={type:t[0].charAt(0)==="!"?"image":"link",raw:r,href:i,title:a,text:o,tokens:n.inlineTokens(o)};return n.state.inLink=!1,l}function KG(t,e,r){let n=t.match(r.other.indentCodeCompensation);if(n===null)return e;let s=n[1];return e.split(`
189
+ `)}var R6,To,U,wt=ae(()=>{"use strict";Le();R6={debug:!1,colors:!0,emojis:!0},To={...R6};U={debug:z,info:O6,warn:k6,error:w6,success:v6,formatError:Zf,configure:Xf}});import*as gr from"fs";import*as Cu from"path";import*as Jf from"os";var ki,St,wi=ae(()=>{"use strict";ki={github:{name:"GitHub",description:"GitHub API integration for repos, issues, PRs, and more",command:"npx",args:["-y","@modelcontextprotocol/server-github"],env:{GITHUB_PERSONAL_ACCESS_TOKEN:"${GITHUB_TOKEN}"},category:"development"},filesystem:{name:"Filesystem",description:"Read/write files on the local filesystem",command:"npx",args:["-y","@modelcontextprotocol/server-filesystem",Jf.homedir()],category:"system"},"brave-search":{name:"Brave Search",description:"Web search using Brave Search API",command:"npx",args:["-y","@brave/brave-search-mcp-server"],env:{BRAVE_API_KEY:"${BRAVE_API_KEY}"},category:"search"},sqlite:{name:"SQLite",description:"Query SQLite databases",command:"uvx",args:["mcp-server-sqlite","--db-path","./database.db"],category:"database"},postgres:{name:"PostgreSQL",description:"Query PostgreSQL databases",command:"npx",args:["-y","@anthropic/mcp-server-postgres"],env:{DATABASE_URL:"${DATABASE_URL}"},category:"database"},"chrome-devtools":{name:"Chrome DevTools",description:"Control Chrome browser via DevTools protocol",command:"npx",args:["chrome-devtools-mcp@latest"],category:"browser"},memory:{name:"Memory",description:"Persistent memory storage for conversation context",command:"npx",args:["-y","@modelcontextprotocol/server-memory"],category:"utility"},puppeteer:{name:"Puppeteer",description:"Browser automation with Puppeteer",command:"npx",args:["-y","@anthropic/mcp-server-puppeteer"],category:"browser"}},St=class{configPath;constructor(e){this.configPath=e||Cu.join(Jf.homedir(),".aii","mcp_servers.json"),this.ensureConfigDir()}ensureConfigDir(){let e=Cu.dirname(this.configPath);gr.existsSync(e)||gr.mkdirSync(e,{recursive:!0})}loadConfig(){if(!gr.existsSync(this.configPath))return{mcpServers:{}};try{let e=gr.readFileSync(this.configPath,"utf-8"),r=JSON.parse(e);return typeof r=="object"&&r!==null?r:{mcpServers:{}}}catch{return{mcpServers:{}}}}saveConfig(e){try{return this.ensureConfigDir(),gr.writeFileSync(this.configPath,JSON.stringify(e,null,2),"utf-8"),!0}catch{return!1}}backupConfig(){if(!gr.existsSync(this.configPath))return!0;try{let e=this.configPath+".backup";return gr.copyFileSync(this.configPath,e),!0}catch{return!1}}getConfigPath(){return this.configPath}}});var Du={};Jt(Du,{ClientMCPExecutor:()=>eg});import{Client as x6}from"@modelcontextprotocol/sdk/client/index.js";import{StdioClientTransport as M6}from"@modelcontextprotocol/sdk/client/stdio.js";var eg,Au=ae(()=>{"use strict";wi();wt();eg=class{connections=new Map;toolToServer=new Map;initialized=!1;configManager;constructor(){this.configManager=new St}async initialize(){if(this.initialized)return!0;try{let r=this.configManager.loadConfig().mcpServers||{};z(`Initializing MCP executor with ${Object.keys(r).length} servers`);for(let[n,s]of Object.entries(r)){if(s.enabled===!1){z(`Skipping disabled server: ${n}`);continue}try{await this.connectToServer(n,s)}catch(i){z(`Failed to connect to ${n}: ${i}`)}}return this.initialized=!0,z(`MCP executor initialized with ${this.connections.size} connections`),!0}catch(e){return z(`Failed to initialize MCP executor: ${e}`),!1}}async connectToServer(e,r){let n=r.command,s=Array.isArray(r.args)?r.args:[r.args||""],i={...process.env};if(r.env)for(let[u,d]of Object.entries(r.env)){let p=String(d).replace(/\$\{(\w+)\}/g,(h,m)=>process.env[m]||"");i[u]=p}z(`Connecting to MCP server: ${e}`),z(` command: ${n}`),z(` args: ${JSON.stringify(s)}`);let a=new M6({command:n,args:s,env:i,stderr:"pipe"}),o=new x6({name:"aii-cli",version:"0.1.0"},{capabilities:{}});await o.connect(a);let c=(await o.listTools()).tools.map(u=>({name:u.name,description:u.description||"",inputSchema:u.inputSchema,serverName:e}));this.connections.set(e,{client:o,transport:a,tools:c});for(let u of c)this.toolToServer.set(u.name,e);z(`Connected to ${e}: discovered ${c.length} tools`)}async handleQueryTools(e){let r=e.request_id||"unknown";z(`Handling mcp_query_tools request: ${r}`),this.initialized||await this.initialize();try{let n=[];for(let i of this.connections.values())n.push(...i.tools);let s=n.map(i=>({name:i.name,description:i.description,input_schema:i.inputSchema,server_name:i.serverName}));return z(`Found ${s.length} MCP tools across all servers`),{type:"mcp_query_tools_response",request_id:r,success:!0,tools:s}}catch(n){return z(`Error querying MCP tools: ${n}`),{type:"mcp_query_tools_response",request_id:r,success:!1,error:String(n),tools:[]}}}async handleToolExecution(e){let r=e.request_id||"unknown",n=e.tool_name,s=e.arguments||{};if(z(`Handling mcp_tool_request: ${r} - Tool: ${n}`),!n)return{type:"mcp_tool_response",request_id:r,success:!1,error:"Missing tool_name in request"};this.initialized||await this.initialize();try{let i=this.toolToServer.get(n);if(!i)return{type:"mcp_tool_response",request_id:r,success:!1,error:`Tool '${n}' not found in any connected MCP server`};let a=this.connections.get(i);if(!a)return{type:"mcp_tool_response",request_id:r,success:!1,error:`Server '${i}' not connected`};let o=await Promise.race([a.client.callTool({name:n,arguments:s}),new Promise((c,u)=>setTimeout(()=>u(new Error(`Tool '${n}' timed out after 30 seconds`)),3e4))]),l=this.makeContentSerializable(o.content);return z(`Tool '${n}' executed successfully (server: ${i})`),{type:"mcp_tool_response",request_id:r,success:!o.isError,content:l,server_name:i,error:o.isError?"Tool returned error":void 0}}catch(i){return z(`Error executing MCP tool '${n}': ${i}`),{type:"mcp_tool_response",request_id:r,success:!1,error:String(i)}}}makeContentSerializable(e){if(e==null)return null;if(Array.isArray(e))return e.map(r=>this.makeContentSerializable(r));if(typeof e=="object"){let r=e;if(r.type==="text"&&typeof r.text=="string")return{type:"text",text:r.text};if(r.type==="image")return{type:"image",data:r.data,mimeType:r.mimeType};let n={};for(let[s,i]of Object.entries(r))n[s]=this.makeContentSerializable(i);return n}return e}async shutdown(){z("Shutting down MCP executor");for(let[e,r]of this.connections)try{await r.client.close(),z(`Closed connection to ${e}`)}catch(n){z(`Error closing ${e}: ${n}`)}this.connections.clear(),this.toolToServer.clear(),this.initialized=!1}isInitialized(){return this.initialized}getConnectionCount(){return this.connections.size}}});var T0=S((bae,K6)=>{K6.exports={dots:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]},dots2:{interval:80,frames:["\u28FE","\u28FD","\u28FB","\u28BF","\u287F","\u28DF","\u28EF","\u28F7"]},dots3:{interval:80,frames:["\u280B","\u2819","\u281A","\u281E","\u2816","\u2826","\u2834","\u2832","\u2833","\u2813"]},dots4:{interval:80,frames:["\u2804","\u2806","\u2807","\u280B","\u2819","\u2838","\u2830","\u2820","\u2830","\u2838","\u2819","\u280B","\u2807","\u2806"]},dots5:{interval:80,frames:["\u280B","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B"]},dots6:{interval:80,frames:["\u2801","\u2809","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2824","\u2804","\u2804","\u2824","\u2834","\u2832","\u2812","\u2802","\u2802","\u2812","\u281A","\u2819","\u2809","\u2801"]},dots7:{interval:80,frames:["\u2808","\u2809","\u280B","\u2813","\u2812","\u2810","\u2810","\u2812","\u2816","\u2826","\u2824","\u2820","\u2820","\u2824","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B","\u2809","\u2808"]},dots8:{interval:80,frames:["\u2801","\u2801","\u2809","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2824","\u2804","\u2804","\u2824","\u2820","\u2820","\u2824","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B","\u2809","\u2808","\u2808"]},dots9:{interval:80,frames:["\u28B9","\u28BA","\u28BC","\u28F8","\u28C7","\u2867","\u2857","\u284F"]},dots10:{interval:80,frames:["\u2884","\u2882","\u2881","\u2841","\u2848","\u2850","\u2860"]},dots11:{interval:100,frames:["\u2801","\u2802","\u2804","\u2840","\u2880","\u2820","\u2810","\u2808"]},dots12:{interval:80,frames:["\u2880\u2800","\u2840\u2800","\u2804\u2800","\u2882\u2800","\u2842\u2800","\u2805\u2800","\u2883\u2800","\u2843\u2800","\u280D\u2800","\u288B\u2800","\u284B\u2800","\u280D\u2801","\u288B\u2801","\u284B\u2801","\u280D\u2809","\u280B\u2809","\u280B\u2809","\u2809\u2819","\u2809\u2819","\u2809\u2829","\u2808\u2899","\u2808\u2859","\u2888\u2829","\u2840\u2899","\u2804\u2859","\u2882\u2829","\u2842\u2898","\u2805\u2858","\u2883\u2828","\u2843\u2890","\u280D\u2850","\u288B\u2820","\u284B\u2880","\u280D\u2841","\u288B\u2801","\u284B\u2801","\u280D\u2809","\u280B\u2809","\u280B\u2809","\u2809\u2819","\u2809\u2819","\u2809\u2829","\u2808\u2899","\u2808\u2859","\u2808\u2829","\u2800\u2899","\u2800\u2859","\u2800\u2829","\u2800\u2898","\u2800\u2858","\u2800\u2828","\u2800\u2890","\u2800\u2850","\u2800\u2820","\u2800\u2880","\u2800\u2840"]},dots13:{interval:80,frames:["\u28FC","\u28F9","\u28BB","\u283F","\u285F","\u28CF","\u28E7","\u28F6"]},dots8Bit:{interval:80,frames:["\u2800","\u2801","\u2802","\u2803","\u2804","\u2805","\u2806","\u2807","\u2840","\u2841","\u2842","\u2843","\u2844","\u2845","\u2846","\u2847","\u2808","\u2809","\u280A","\u280B","\u280C","\u280D","\u280E","\u280F","\u2848","\u2849","\u284A","\u284B","\u284C","\u284D","\u284E","\u284F","\u2810","\u2811","\u2812","\u2813","\u2814","\u2815","\u2816","\u2817","\u2850","\u2851","\u2852","\u2853","\u2854","\u2855","\u2856","\u2857","\u2818","\u2819","\u281A","\u281B","\u281C","\u281D","\u281E","\u281F","\u2858","\u2859","\u285A","\u285B","\u285C","\u285D","\u285E","\u285F","\u2820","\u2821","\u2822","\u2823","\u2824","\u2825","\u2826","\u2827","\u2860","\u2861","\u2862","\u2863","\u2864","\u2865","\u2866","\u2867","\u2828","\u2829","\u282A","\u282B","\u282C","\u282D","\u282E","\u282F","\u2868","\u2869","\u286A","\u286B","\u286C","\u286D","\u286E","\u286F","\u2830","\u2831","\u2832","\u2833","\u2834","\u2835","\u2836","\u2837","\u2870","\u2871","\u2872","\u2873","\u2874","\u2875","\u2876","\u2877","\u2838","\u2839","\u283A","\u283B","\u283C","\u283D","\u283E","\u283F","\u2878","\u2879","\u287A","\u287B","\u287C","\u287D","\u287E","\u287F","\u2880","\u2881","\u2882","\u2883","\u2884","\u2885","\u2886","\u2887","\u28C0","\u28C1","\u28C2","\u28C3","\u28C4","\u28C5","\u28C6","\u28C7","\u2888","\u2889","\u288A","\u288B","\u288C","\u288D","\u288E","\u288F","\u28C8","\u28C9","\u28CA","\u28CB","\u28CC","\u28CD","\u28CE","\u28CF","\u2890","\u2891","\u2892","\u2893","\u2894","\u2895","\u2896","\u2897","\u28D0","\u28D1","\u28D2","\u28D3","\u28D4","\u28D5","\u28D6","\u28D7","\u2898","\u2899","\u289A","\u289B","\u289C","\u289D","\u289E","\u289F","\u28D8","\u28D9","\u28DA","\u28DB","\u28DC","\u28DD","\u28DE","\u28DF","\u28A0","\u28A1","\u28A2","\u28A3","\u28A4","\u28A5","\u28A6","\u28A7","\u28E0","\u28E1","\u28E2","\u28E3","\u28E4","\u28E5","\u28E6","\u28E7","\u28A8","\u28A9","\u28AA","\u28AB","\u28AC","\u28AD","\u28AE","\u28AF","\u28E8","\u28E9","\u28EA","\u28EB","\u28EC","\u28ED","\u28EE","\u28EF","\u28B0","\u28B1","\u28B2","\u28B3","\u28B4","\u28B5","\u28B6","\u28B7","\u28F0","\u28F1","\u28F2","\u28F3","\u28F4","\u28F5","\u28F6","\u28F7","\u28B8","\u28B9","\u28BA","\u28BB","\u28BC","\u28BD","\u28BE","\u28BF","\u28F8","\u28F9","\u28FA","\u28FB","\u28FC","\u28FD","\u28FE","\u28FF"]},sand:{interval:80,frames:["\u2801","\u2802","\u2804","\u2840","\u2848","\u2850","\u2860","\u28C0","\u28C1","\u28C2","\u28C4","\u28CC","\u28D4","\u28E4","\u28E5","\u28E6","\u28EE","\u28F6","\u28F7","\u28FF","\u287F","\u283F","\u289F","\u281F","\u285B","\u281B","\u282B","\u288B","\u280B","\u280D","\u2849","\u2809","\u2811","\u2821","\u2881"]},line:{interval:130,frames:["-","\\","|","/"]},line2:{interval:100,frames:["\u2802","-","\u2013","\u2014","\u2013","-"]},pipe:{interval:100,frames:["\u2524","\u2518","\u2534","\u2514","\u251C","\u250C","\u252C","\u2510"]},simpleDots:{interval:400,frames:[". ",".. ","..."," "]},simpleDotsScrolling:{interval:200,frames:[". ",".. ","..."," .."," ."," "]},star:{interval:70,frames:["\u2736","\u2738","\u2739","\u273A","\u2739","\u2737"]},star2:{interval:80,frames:["+","x","*"]},flip:{interval:70,frames:["_","_","_","-","`","`","'","\xB4","-","_","_","_"]},hamburger:{interval:100,frames:["\u2631","\u2632","\u2634"]},growVertical:{interval:120,frames:["\u2581","\u2583","\u2584","\u2585","\u2586","\u2587","\u2586","\u2585","\u2584","\u2583"]},growHorizontal:{interval:120,frames:["\u258F","\u258E","\u258D","\u258C","\u258B","\u258A","\u2589","\u258A","\u258B","\u258C","\u258D","\u258E"]},balloon:{interval:140,frames:[" ",".","o","O","@","*"," "]},balloon2:{interval:120,frames:[".","o","O","\xB0","O","o","."]},noise:{interval:100,frames:["\u2593","\u2592","\u2591"]},bounce:{interval:120,frames:["\u2801","\u2802","\u2804","\u2802"]},boxBounce:{interval:120,frames:["\u2596","\u2598","\u259D","\u2597"]},boxBounce2:{interval:100,frames:["\u258C","\u2580","\u2590","\u2584"]},triangle:{interval:50,frames:["\u25E2","\u25E3","\u25E4","\u25E5"]},binary:{interval:80,frames:["010010","001100","100101","111010","111101","010111","101011","111000","110011","110101"]},arc:{interval:100,frames:["\u25DC","\u25E0","\u25DD","\u25DE","\u25E1","\u25DF"]},circle:{interval:120,frames:["\u25E1","\u2299","\u25E0"]},squareCorners:{interval:180,frames:["\u25F0","\u25F3","\u25F2","\u25F1"]},circleQuarters:{interval:120,frames:["\u25F4","\u25F7","\u25F6","\u25F5"]},circleHalves:{interval:50,frames:["\u25D0","\u25D3","\u25D1","\u25D2"]},squish:{interval:100,frames:["\u256B","\u256A"]},toggle:{interval:250,frames:["\u22B6","\u22B7"]},toggle2:{interval:80,frames:["\u25AB","\u25AA"]},toggle3:{interval:120,frames:["\u25A1","\u25A0"]},toggle4:{interval:100,frames:["\u25A0","\u25A1","\u25AA","\u25AB"]},toggle5:{interval:100,frames:["\u25AE","\u25AF"]},toggle6:{interval:300,frames:["\u101D","\u1040"]},toggle7:{interval:80,frames:["\u29BE","\u29BF"]},toggle8:{interval:100,frames:["\u25CD","\u25CC"]},toggle9:{interval:100,frames:["\u25C9","\u25CE"]},toggle10:{interval:100,frames:["\u3282","\u3280","\u3281"]},toggle11:{interval:50,frames:["\u29C7","\u29C6"]},toggle12:{interval:120,frames:["\u2617","\u2616"]},toggle13:{interval:80,frames:["=","*","-"]},arrow:{interval:100,frames:["\u2190","\u2196","\u2191","\u2197","\u2192","\u2198","\u2193","\u2199"]},arrow2:{interval:80,frames:["\u2B06\uFE0F ","\u2197\uFE0F ","\u27A1\uFE0F ","\u2198\uFE0F ","\u2B07\uFE0F ","\u2199\uFE0F ","\u2B05\uFE0F ","\u2196\uFE0F "]},arrow3:{interval:120,frames:["\u25B9\u25B9\u25B9\u25B9\u25B9","\u25B8\u25B9\u25B9\u25B9\u25B9","\u25B9\u25B8\u25B9\u25B9\u25B9","\u25B9\u25B9\u25B8\u25B9\u25B9","\u25B9\u25B9\u25B9\u25B8\u25B9","\u25B9\u25B9\u25B9\u25B9\u25B8"]},bouncingBar:{interval:80,frames:["[ ]","[= ]","[== ]","[=== ]","[====]","[ ===]","[ ==]","[ =]","[ ]","[ =]","[ ==]","[ ===]","[====]","[=== ]","[== ]","[= ]"]},bouncingBall:{interval:80,frames:["( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF)","( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF )","(\u25CF )"]},smiley:{interval:200,frames:["\u{1F604} ","\u{1F61D} "]},monkey:{interval:300,frames:["\u{1F648} ","\u{1F648} ","\u{1F649} ","\u{1F64A} "]},hearts:{interval:100,frames:["\u{1F49B} ","\u{1F499} ","\u{1F49C} ","\u{1F49A} ","\u2764\uFE0F "]},clock:{interval:100,frames:["\u{1F55B} ","\u{1F550} ","\u{1F551} ","\u{1F552} ","\u{1F553} ","\u{1F554} ","\u{1F555} ","\u{1F556} ","\u{1F557} ","\u{1F558} ","\u{1F559} ","\u{1F55A} "]},earth:{interval:180,frames:["\u{1F30D} ","\u{1F30E} ","\u{1F30F} "]},material:{interval:17,frames:["\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581"]},moon:{interval:80,frames:["\u{1F311} ","\u{1F312} ","\u{1F313} ","\u{1F314} ","\u{1F315} ","\u{1F316} ","\u{1F317} ","\u{1F318} "]},runner:{interval:140,frames:["\u{1F6B6} ","\u{1F3C3} "]},pong:{interval:80,frames:["\u2590\u2802 \u258C","\u2590\u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802\u258C","\u2590 \u2820\u258C","\u2590 \u2840\u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590\u2820 \u258C"]},shark:{interval:120,frames:["\u2590|\\____________\u258C","\u2590_|\\___________\u258C","\u2590__|\\__________\u258C","\u2590___|\\_________\u258C","\u2590____|\\________\u258C","\u2590_____|\\_______\u258C","\u2590______|\\______\u258C","\u2590_______|\\_____\u258C","\u2590________|\\____\u258C","\u2590_________|\\___\u258C","\u2590__________|\\__\u258C","\u2590___________|\\_\u258C","\u2590____________|\\\u258C","\u2590____________/|\u258C","\u2590___________/|_\u258C","\u2590__________/|__\u258C","\u2590_________/|___\u258C","\u2590________/|____\u258C","\u2590_______/|_____\u258C","\u2590______/|______\u258C","\u2590_____/|_______\u258C","\u2590____/|________\u258C","\u2590___/|_________\u258C","\u2590__/|__________\u258C","\u2590_/|___________\u258C","\u2590/|____________\u258C"]},dqpb:{interval:100,frames:["d","q","p","b"]},weather:{interval:100,frames:["\u2600\uFE0F ","\u2600\uFE0F ","\u2600\uFE0F ","\u{1F324} ","\u26C5\uFE0F ","\u{1F325} ","\u2601\uFE0F ","\u{1F327} ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u26C8 ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u2601\uFE0F ","\u{1F325} ","\u26C5\uFE0F ","\u{1F324} ","\u2600\uFE0F ","\u2600\uFE0F "]},christmas:{interval:400,frames:["\u{1F332}","\u{1F384}"]},grenade:{interval:80,frames:["\u060C ","\u2032 "," \xB4 "," \u203E "," \u2E0C"," \u2E0A"," |"," \u204E"," \u2055"," \u0DF4 "," \u2053"," "," "," "]},point:{interval:125,frames:["\u2219\u2219\u2219","\u25CF\u2219\u2219","\u2219\u25CF\u2219","\u2219\u2219\u25CF","\u2219\u2219\u2219"]},layer:{interval:150,frames:["-","=","\u2261"]},betaWave:{interval:80,frames:["\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2","\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2","\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2","\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2","\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2","\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2","\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1"]},fingerDance:{interval:160,frames:["\u{1F918} ","\u{1F91F} ","\u{1F596} ","\u270B ","\u{1F91A} ","\u{1F446} "]},fistBump:{interval:80,frames:["\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u3000\u{1F91C}\u3000\u3000\u{1F91B}\u3000 ","\u3000\u3000\u{1F91C}\u{1F91B}\u3000\u3000 ","\u3000\u{1F91C}\u2728\u{1F91B}\u3000\u3000 ","\u{1F91C}\u3000\u2728\u3000\u{1F91B}\u3000 "]},soccerHeader:{interval:80,frames:[" \u{1F9D1}\u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F\u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} "]},mindblown:{interval:160,frames:["\u{1F610} ","\u{1F610} ","\u{1F62E} ","\u{1F62E} ","\u{1F626} ","\u{1F626} ","\u{1F627} ","\u{1F627} ","\u{1F92F} ","\u{1F4A5} ","\u2728 ","\u3000 ","\u3000 ","\u3000 "]},speaker:{interval:160,frames:["\u{1F508} ","\u{1F509} ","\u{1F50A} ","\u{1F509} "]},orangePulse:{interval:100,frames:["\u{1F538} ","\u{1F536} ","\u{1F7E0} ","\u{1F7E0} ","\u{1F536} "]},bluePulse:{interval:100,frames:["\u{1F539} ","\u{1F537} ","\u{1F535} ","\u{1F535} ","\u{1F537} "]},orangeBluePulse:{interval:100,frames:["\u{1F538} ","\u{1F536} ","\u{1F7E0} ","\u{1F7E0} ","\u{1F536} ","\u{1F539} ","\u{1F537} ","\u{1F535} ","\u{1F535} ","\u{1F537} "]},timeTravel:{interval:100,frames:["\u{1F55B} ","\u{1F55A} ","\u{1F559} ","\u{1F558} ","\u{1F557} ","\u{1F556} ","\u{1F555} ","\u{1F554} ","\u{1F553} ","\u{1F552} ","\u{1F551} ","\u{1F550} "]},aesthetic:{interval:80,frames:["\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0","\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1"]},dwarfFortress:{interval:80,frames:[" \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\xA3\xA3\xA3 "," \u263A \u2588\xA3\xA3\xA3 "," \u263A\u2588\xA3\xA3\xA3 "," \u263A\u2588\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3\xA3 "," \u263A\u2592\xA3\xA3\xA3 "," \u263A\u2592\xA3\xA3\xA3 "," \u263A\u2591\xA3\xA3\xA3 "," \u263A\u2591\xA3\xA3\xA3 "," \u263A \xA3\xA3\xA3 "," \u263A\xA3\xA3\xA3 "," \u263A\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3 "," \u263A\u2593\xA3\xA3 "," \u263A\u2592\xA3\xA3 "," \u263A\u2592\xA3\xA3 "," \u263A\u2591\xA3\xA3 "," \u263A\u2591\xA3\xA3 "," \u263A \xA3\xA3 "," \u263A\xA3\xA3 "," \u263A\xA3\xA3 "," \u263A\u2593\xA3 "," \u263A\u2593\xA3 "," \u263A\u2592\xA3 "," \u263A\u2592\xA3 "," \u263A\u2591\xA3 "," \u263A\u2591\xA3 "," \u263A \xA3 "," \u263A\xA3 "," \u263A\xA3 "," \u263A\u2593 "," \u263A\u2593 "," \u263A\u2592 "," \u263A\u2592 "," \u263A\u2591 "," \u263A\u2591 "," \u263A "," \u263A &"," \u263A \u263C&"," \u263A \u263C &"," \u263A\u263C &"," \u263A\u263C & "," \u203C & "," \u263A & "," \u203C & "," \u263A & "," \u203C & "," \u263A & ","\u203C & "," & "," & "," & \u2591 "," & \u2592 "," & \u2593 "," & \xA3 "," & \u2591\xA3 "," & \u2592\xA3 "," & \u2593\xA3 "," & \xA3\xA3 "," & \u2591\xA3\xA3 "," & \u2592\xA3\xA3 ","& \u2593\xA3\xA3 ","& \xA3\xA3\xA3 "," \u2591\xA3\xA3\xA3 "," \u2592\xA3\xA3\xA3 "," \u2593\xA3\xA3\xA3 "," \u2588\xA3\xA3\xA3 "," \u2591\u2588\xA3\xA3\xA3 "," \u2592\u2588\xA3\xA3\xA3 "," \u2593\u2588\xA3\xA3\xA3 "," \u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "]}}});var cg=S((Cae,C0)=>{"use strict";var wu=Object.assign({},T0()),b0=Object.keys(wu);Object.defineProperty(wu,"random",{get(){let t=Math.floor(Math.random()*b0.length),e=b0[t];return wu[e]}});C0.exports=wu});function Us({onlyFirst:t=!1}={}){let s="(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";return new RegExp(s,t?void 0:"g")}var vu=ae(()=>{});var O0=S((Uae,R0)=>{R0.exports=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g});function re(t,...e){process.env.AII_INK_DEBUG==="1"&&console.error(`[INK-DEBUG] ${t}`,...e)}var Mu=ae(()=>{"use strict"});import{resolve as sG}from"path";function iG(){let t=process.env.TERM??"",e=process.env.TERM_PROGRAM??"",r=process.env.COLORTERM??"",n=process.env.WT_SESSION??"",s=process.env.VSCODE_INJECTION??process.env.TERM_PROGRAM==="vscode";return e==="iTerm.app"||e==="Hyper"||e==="vscode"||e==="WezTerm"||e==="Alacritty"||n||s||t.includes("xterm-256color")||t.includes("screen-256color")||t.includes("tmux")||t==="xterm-kitty"||r==="truecolor"?!0:!(t==="dumb"||!process.stdout.isTTY)}function Ao(){return Tg===null&&(Tg=iG()),Tg}function aG(){return process.platform==="darwin"?"Cmd":"Ctrl"}function x0(){return v0||!Ao()?"":(v0=!0,` (${aG()}+Click to open)`)}function oG(t,e){return Ao()?`\x1B]8;;${e}\x07${t}\x1B]8;;\x07`:t}function M0(t,e){let r=process.env.HOME??process.env.USERPROFILE??"",n=t;r&&t.startsWith(r)&&(n="~"+t.slice(r.length));let s=e?`${n}:${e}`:n;if(!Ao())return _.cyan.underline(s);let i=_.cyan(s),o=`file://${sG(t)}`;return e!==void 0&&e>0&&(o+=`#L${e}`),oG(i,o)}var Tg,v0,L0=ae(()=>{"use strict";Le();Tg=null,v0=!1});function P0(t){return t.startsWith("/")||t.startsWith("~/")||t.startsWith("./")||t.startsWith("../")||/^[a-zA-Z]:\\/.test(t)||/\.(ts|tsx|js|jsx|json|md|py|go|rs|java|c|cpp|h|hpp|css|scss|html|xml|yaml|yml|toml|sh|bash|zsh)$/.test(t)||/^src\//.test(t)||/^lib\//.test(t)||/^test[s]?\//.test(t)}function U0(t,e,r=!0,n,s=console.log){let i=r?ze.success("\u25CF"):ze.error("\u25CF"),a=60,o=e.length>a?e.slice(0,a-3)+"...":e;if(P0(e)){let c=e.match(/:(\d+)$/),u=c?parseInt(c[1],10):void 0,d=c?e.replace(/:(\d+)$/,""):e;o=lG(d,u)}s(`${i} ${_.bold(t)}(${o})`);let l=P0(e)?ze.dim(x0()):"";if(n){let c=r?ze.dim:ze.error;s(c(`\u2514 ${n}`)+l)}else{let c=r?"(No content)":"(Error)",u=r?ze.dim:ze.error;s(u(`\u2514 ${c}`)+l)}}function lG(t,e){if(Ao())return M0(t,e);let r=process.env.HOME??process.env.USERPROFILE??"",n=t;return r&&t.startsWith(r)&&(n="~"+t.slice(r.length)),e&&(n+=`:${e}`),ze.filePath(n)}function cG(){return process.stdout.columns||80}function uG(t){if(t<60)return`${t}s`;let e=Math.floor(t/60),r=t%60;return r>0?`${e}m ${r}s`:`${e}m`}function F0(t){return t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toString()}function B0(t){let e=cG(),r=Math.min(e-2,76),n=r-4,s=(p,h)=>{let m=p.replace(/\x1b\[[0-9;]*m/g,"").length;return p+" ".repeat(Math.max(0,h-m))},i=p=>ze.border("\u2502")+" "+s(p,n)+" "+ze.border("\u2502"),a=(p,h,m,g)=>{let E=Math.floor(n/2),y=ze.dim(p.padEnd(15))+h,T=ze.dim(m.padEnd(15))+g;return i(s(y,E)+T)},o=uG(t.durationSeconds),l=F0(t.tokensIn),c=F0(t.tokensOut),u=`$${t.totalCost.toFixed(4)}`,d=`${t.provider}/${t.model.replace("claude-","").replace("-latest","")}`;console.log(""),console.log(ze.border("\u250C"+"\u2500".repeat(r-2)+"\u2510")),console.log(i(_.cyan.bold("Agent powering down. Goodbye!"))),console.log(ze.border("\u251C"+"\u2500".repeat(r-2)+"\u2524")),console.log(i(_.cyan.bold("Session Summary"))),console.log(i(ze.dim("\u2500".repeat(15)))),console.log(a("Duration",o,"Tool Calls",t.toolCalls.toString())),console.log(a("Turns",t.turns.toString(),"Files Modified",t.filesModified.toString())),console.log(i("")),console.log(i(_.cyan.bold("Token Usage"))),console.log(i(ze.dim("\u2500".repeat(11)))),console.log(a("Input",l,"Output",c)),console.log(i(ze.dim("Cost".padEnd(15))+u)),console.log(i("")),console.log(i(ze.dim("Model: ")+ze.model(d))),console.log(ze.border("\u2514"+"\u2500".repeat(r-2)+"\u2518")),console.log("")}var Lu,ze,No=ae(()=>{"use strict";Le();L0();Lu="0.7.7",ze={logo:_.cyan.bold,prompt:_.cyan.bold,model:_.cyan,success:_.green,warning:_.yellow,error:_.red,thinking:_.dim.cyan,filePath:_.blue,code:_.white,muted:_.gray,dim:_.dim,safe:_.green,risky:_.yellow,destructive:_.red,border:_.cyan,bannerBorder:_.cyan}});var $0={};Jt($0,{getUIStore:()=>Io,useUIStore:()=>En});import{create as dG}from"zustand";var G0,En,Io,bg=ae(()=>{"use strict";G0={mode:"welcome",agentMode:"normal",status:"",isThinking:!1,isStreaming:!1,currentIteration:0,iterationStartTime:Date.now(),iterationTokens:0,contextPercent:0,contextLevel:"normal",contextTokens:0,contextLimit:2e5,sessionCost:0,provider:"",model:"",projectPath:process.cwd(),branch:void 0,toolsCount:0,mcpServersCount:0,contextFilesCount:0,skillsCount:0,sessionStartTime:Date.now(),agentExecMs:0,agentTurnStartTime:null,renderEpoch:0,loopMode:!1},En=dG(t=>({...G0,setMode:e=>t({mode:e}),setAgentMode:e=>t({agentMode:e}),setStatus:e=>t({status:e}),setThinking:e=>t({isThinking:e}),setStreaming:e=>t(r=>{if(e&&!r.agentTurnStartTime)return{isStreaming:e,agentTurnStartTime:Date.now()};if(!e&&r.agentTurnStartTime){let n=Date.now()-r.agentTurnStartTime;return{isStreaming:e,agentExecMs:r.agentExecMs+n,agentTurnStartTime:null}}return{isStreaming:e}}),incrementIteration:()=>t(e=>({currentIteration:e.currentIteration+1,iterationStartTime:Date.now(),iterationTokens:0})),addIterationTokens:e=>t(r=>({iterationTokens:r.iterationTokens+e})),setIterationTokens:e=>t({iterationTokens:e}),updateContext:(e,r)=>{let n=r>0?Math.round(e/r*100):0,s=n>=90?"critical":n>=70?"warning":"normal";t({contextTokens:e,contextLimit:r,contextPercent:n,contextLevel:s})},updateSession:e=>t(e),updateResources:e=>t(e),setLoopMode:e=>t({loopMode:e}),incrementRenderEpoch:()=>t(e=>({renderEpoch:e.renderEpoch+1})),reset:()=>t(G0)})),Io=En.getState});function Ng(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function V0(t){Gs=t}function Re(t,e=""){let r=typeof t=="string"?t:t.source,n={replace:(s,i)=>{let a=typeof i=="string"?i:i.source;return a=a.replace(Ut.caret,"$1"),r=r.replace(s,a),n},getRegex:()=>new RegExp(r,e)};return n}function Yr(t,e){if(e){if(Ut.escapeTest.test(t))return t.replace(Ut.escapeReplace,H0)}else if(Ut.escapeTestNoEncode.test(t))return t.replace(Ut.escapeReplaceNoEncode,H0);return t}function Y0(t){try{t=encodeURI(t).replace(Ut.percentDecode,"%")}catch{return null}return t}function q0(t,e){let r=t.replace(Ut.findPipe,(i,a,o)=>{let l=!1,c=a;for(;--c>=0&&o[c]==="\\";)l=!l;return l?"|":" |"}),n=r.split(Ut.splitPipe),s=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length<e;)n.push("");for(;s<n.length;s++)n[s]=n[s].trim().replace(Ut.slashPipe,"|");return n}function Oo(t,e,r){let n=t.length;if(n===0)return"";let s=0;for(;s<n;){let i=t.charAt(n-s-1);if(i===e&&!r)s++;else if(i!==e&&r)s++;else break}return t.slice(0,n-s)}function qG(t,e){if(t.indexOf(e[1])===-1)return-1;let r=0;for(let n=0;n<t.length;n++)if(t[n]==="\\")n++;else if(t[n]===e[0])r++;else if(t[n]===e[1]&&(r--,r<0))return n;return r>0?-2:-1}function K0(t,e,r,n,s){let i=e.href,a=e.title||null,o=t[1].replace(s.other.outputLinkReplace,"$1");n.state.inLink=!0;let l={type:t[0].charAt(0)==="!"?"image":"link",raw:r,href:i,title:a,text:o,tokens:n.inlineTokens(o)};return n.state.inLink=!1,l}function KG(t,e,r){let n=t.match(r.other.indentCodeCompensation);if(n===null)return e;let s=n[1];return e.split(`
190
190
  `).map(i=>{let a=i.match(r.other.beginningSpace);if(a===null)return i;let[o]=a;return o.length>=s.length?i.slice(s.length):i}).join(`
191
191
  `)}function ke(t,e){return Bs.parse(t,e)}var Gs,ko,Ut,pG,_G,mG,wo,fG,Ig,W0,j0,gG,Rg,hG,Og,EG,SG,$u,kg,yG,Q0,TG,wg,z0,bG,CG,DG,AG,X0,NG,zu,vg,Z0,IG,J0,RG,OG,kG,eD,wG,vG,tD,xG,MG,LG,PG,FG,UG,BG,Uu,GG,rD,nD,$G,xg,zG,Cg,HG,Pu,Ro,YG,H0,Bu,Sn,Gu,Mg,yn,Fu,Lg,Bs,_oe,moe,foe,goe,hoe,Eoe,Soe,sD=ae(()=>{Gs=Ng();ko={exec:()=>null};Ut={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),htmlBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i")},pG=/^(?:[ \t]*(?:\n|$))+/,_G=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,mG=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,wo=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,fG=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Ig=/(?:[*+-]|\d{1,9}[.)])/,W0=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,j0=Re(W0).replace(/bull/g,Ig).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),gG=Re(W0).replace(/bull/g,Ig).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Rg=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,hG=/^[^\n]+/,Og=/(?!\s*\])(?:\\.|[^\[\]\\])+/,EG=Re(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Og).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),SG=Re(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Ig).getRegex(),$u="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",kg=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,yG=Re("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",kg).replace("tag",$u).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Q0=Re(Rg).replace("hr",wo).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",$u).getRegex(),TG=Re(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Q0).getRegex(),wg={blockquote:TG,code:_G,def:EG,fences:mG,heading:fG,hr:wo,html:yG,lheading:j0,list:SG,newline:pG,paragraph:Q0,table:ko,text:hG},z0=Re("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",wo).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",$u).getRegex(),bG={...wg,lheading:gG,table:z0,paragraph:Re(Rg).replace("hr",wo).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",z0).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",$u).getRegex()},CG={...wg,html:Re(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",kg).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:ko,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Re(Rg).replace("hr",wo).replace("heading",` *#{1,6} *[^
192
192
  ]`).replace("lheading",j0).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},DG=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,AG=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,X0=/^( {2,}|\\)\n(?!\s*$)/,NG=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,zu=/[\p{P}\p{S}]/u,vg=/[\s\p{P}\p{S}]/u,Z0=/[^\s\p{P}\p{S}]/u,IG=Re(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,vg).getRegex(),J0=/(?!~)[\p{P}\p{S}]/u,RG=/(?!~)[\s\p{P}\p{S}]/u,OG=/(?:[^\s\p{P}\p{S}]|~)/u,kG=/\[[^[\]]*?\]\((?:\\.|[^\\\(\)]|\((?:\\.|[^\\\(\)])*\))*\)|`[^`]*?`|<[^<>]*?>/g,eD=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,wG=Re(eD,"u").replace(/punct/g,zu).getRegex(),vG=Re(eD,"u").replace(/punct/g,J0).getRegex(),tD="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",xG=Re(tD,"gu").replace(/notPunctSpace/g,Z0).replace(/punctSpace/g,vg).replace(/punct/g,zu).getRegex(),MG=Re(tD,"gu").replace(/notPunctSpace/g,OG).replace(/punctSpace/g,RG).replace(/punct/g,J0).getRegex(),LG=Re("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Z0).replace(/punctSpace/g,vg).replace(/punct/g,zu).getRegex(),PG=Re(/\\(punct)/,"gu").replace(/punct/g,zu).getRegex(),FG=Re(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),UG=Re(kg).replace("(?:-->|$)","-->").getRegex(),BG=Re("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",UG).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Uu=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,GG=Re(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",Uu).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),rD=Re(/^!?\[(label)\]\[(ref)\]/).replace("label",Uu).replace("ref",Og).getRegex(),nD=Re(/^!?\[(ref)\](?:\[\])?/).replace("ref",Og).getRegex(),$G=Re("reflink|nolink(?!\\()","g").replace("reflink",rD).replace("nolink",nD).getRegex(),xg={_backpedal:ko,anyPunctuation:PG,autolink:FG,blockSkip:kG,br:X0,code:AG,del:ko,emStrongLDelim:wG,emStrongRDelimAst:xG,emStrongRDelimUnd:LG,escape:DG,link:GG,nolink:nD,punctuation:IG,reflink:rD,reflinkSearch:$G,tag:BG,text:NG,url:ko},zG={...xg,link:Re(/^!?\[(label)\]\((.*?)\)/).replace("label",Uu).getRegex(),reflink:Re(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Uu).getRegex()},Cg={...xg,emStrongRDelimAst:MG,emStrongLDelim:vG,url:Re(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},HG={...Cg,br:Re(X0).replace("{2,}","*").getRegex(),text:Re(Cg.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},Pu={normal:wg,gfm:bG,pedantic:CG},Ro={normal:xg,gfm:Cg,breaks:HG,pedantic:zG},YG={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},H0=t=>YG[t];Bu=class{options;rules;lexer;constructor(t){this.options=t||Gs}space(t){let e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){let e=this.rules.block.code.exec(t);if(e){let r=e[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?r:Oo(r,`
@@ -288,7 +288,7 @@ https://github.com/highlightjs/highlight.js/issues/2277`),Me=M,pe=P);let V={code
288
288
  `);return{historyIndex:n,lines:i,cursorLine:i.length-1,cursorCol:i[i.length-1].length}})},historyDown:()=>{t(r=>{if(r.historyIndex===-1)return r;let n=r.historyIndex+1;if(n>=r.history.length)return{historyIndex:-1,lines:[""],cursorLine:0,cursorCol:0};let i=r.history[n].split(`
289
289
  `);return{historyIndex:n,lines:i,cursorLine:i.length-1,cursorCol:i[i.length-1].length}})},addToHistory:r=>{r.trim()&&t(n=>{if(n.history.length>0&&n.history[n.history.length-1]===r)return{historyIndex:-1};let s=[...n.history,r];return s.length>MX&&s.shift(),{history:s,historyIndex:-1}})},getText:()=>e().lines.join(`
290
290
  `),getCurrentLine:()=>{let r=e();return r.lines[r.cursorLine]},reset:()=>t(n2)})),s2=ol.getState});var l2={};Jt(l2,{getCommandMenuStore:()=>o2,useCommandMenuStore:()=>Xs});import{create as PX}from"zustand";function FX(t,e){let r=e.startsWith("/")?e.slice(1).toLowerCase():e.toLowerCase();return r?t.filter(n=>!!(n.name.toLowerCase().startsWith(r)||n.aliases?.some(s=>s.toLowerCase().startsWith(r)))):t}var a2,Xs,o2,wE=ae(()=>{"use strict";a2={isVisible:!1,filter:"",selectedIndex:0,commands:[],filteredCommands:[]};Xs=PX((t,e)=>({...a2,show:()=>{t(r=>({isVisible:!0,selectedIndex:0,filter:"",filteredCommands:r.commands}))},hide:()=>{t({isVisible:!1,filter:"",selectedIndex:0})},setFilter:r=>{t(n=>{let s=FX(n.commands,r);return{filter:r,filteredCommands:s,selectedIndex:0}})},moveUp:()=>{t(r=>r.filteredCommands.length===0?r:{selectedIndex:(r.selectedIndex-1+r.filteredCommands.length)%r.filteredCommands.length})},moveDown:()=>{t(r=>r.filteredCommands.length===0?r:{selectedIndex:(r.selectedIndex+1)%r.filteredCommands.length})},setCommands:r=>{t({commands:r,filteredCommands:r,selectedIndex:0})},getSelected:()=>{let r=e();return r.filteredCommands[r.selectedIndex]??null},reset:()=>t(a2)})),o2=Xs.getState});import{jsx as et,jsxs as sa}from"react/jsx-runtime";import{Box as xn,Text as bt}from"ink";function u2({version:t,width:e=90}){let r=Math.min(e,90),n=r-5,s=Math.floor(n*.42),i=n-s,a=` Aii CLI v${t} `;return sa(xn,{flexDirection:"column",width:r,children:[sa(xn,{children:[et(bt,{color:"cyan",children:"\u250C\u2500"}),et(bt,{bold:!0,color:"white",children:a}),sa(bt,{color:"cyan",children:["\u2500".repeat(Math.max(0,r-4-a.length)),"\u2500\u2510"]})]}),sa(xn,{children:[et(bt,{color:"cyan",children:"\u2502"}),et(bt,{children:" "}),et(xn,{width:s,children:et(bt,{children:" "})}),et(bt,{color:"cyan",children:"\u2502"}),et(bt,{children:" "}),et(xn,{width:i,children:et(bt,{color:"cyan",children:"Tips for getting started"})}),et(bt,{color:"cyan",children:"\u2502"})]}),[0,1,2,3,4,5].map(o=>sa(xn,{children:[et(bt,{color:"cyan",children:"\u2502"}),et(bt,{children:" "}),et(xn,{width:s,children:o<6&&et(UX,{index:o})}),et(bt,{color:"cyan",children:"\u2502"}),et(bt,{children:" "}),et(xn,{width:i,children:o<c2.length&&et(bt,{dimColor:o===2,children:c2[o]})}),et(bt,{color:"cyan",children:"\u2502"})]},o)),et(xn,{children:sa(bt,{color:"cyan",children:["\u2514","\u2500".repeat(r-2),"\u2518"]})})]})}function UX({index:t}){return et(bt,{bold:!0,color:"cyan",children:[" \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 \u255A\u2550\u255D \u255A\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551 \u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D"][t]||""})}var c2,d2=ae(()=>{"use strict";c2=["Ask questions, edit files, or run commands.","Be specific for the best results.","/help for more information."]});function BX(t){return t>=19968&&t<=40959||t>=13312&&t<=19903||t>=131072&&t<=173791||t>=173824&&t<=177983||t>=177984&&t<=178207||t>=178208&&t<=183983||t>=183984&&t<=191471||t>=196608&&t<=201551||t>=63744&&t<=64255||t>=12352&&t<=12447||t>=12448&&t<=12543||t>=12784&&t<=12799||t>=44032&&t<=55215||t>=4352&&t<=4607||t>=12592&&t<=12687||t>=65280&&t<=65519&&(t>=65281&&t<=65376||t>=65504&&t<=65510)||t>=12288&&t<=12351||t>=12800&&t<=13055||t>=13056&&t<=13311||t>=127744&&t<=129535||t>=129536&&t<=129791||t>=128512&&t<=128591||t>=128640&&t<=128767||t>=129648&&t<=129791||t>=9984&&t<=10175||t>=9728&&t<=9983}function GX(t){return t<32&&t!==9||t===127||t>=768&&t<=879||t>=6832&&t<=6911||t>=7616&&t<=7679||t>=8400&&t<=8447||t>=65056&&t<=65071||t===8203||t===8204||t===8205||t===65279||t>=65024&&t<=65039||t>=917760&&t<=917999}function Qr(t){let e=t.replace(/\x1B\[[0-9;]*[a-zA-Z]/g,""),r=0;for(let n of e){let s=n.codePointAt(0)??0;GX(s)||(BX(s)?r+=2:r+=1)}return r}function ll(t,e){if(e<=0)return"";let r=0,n="";for(let s of t){let i=Qr(s);if(r+i>e)break;n+=s,r+=i}return n}var vE=ae(()=>{"use strict"});import{jsxs as xE,jsx as rp,Fragment as $X}from"react/jsx-runtime";import{Box as zX,Text as cl}from"ink";function p2({content:t,cursorCol:e,hasCursor:r,maxWidth:n,showLineNumber:s=!1,lineNumber:i=1}){let a=Array.from(t),o=a.slice(0,e).join(""),l=a[e]||" ",c=a.slice(e+1).join(""),u=n??process.stdout.columns??80,d=o,p=l,h=c;if(Qr(o)+Qr(l)+Qr(c)>u-4){let g=u-8,E=Qr(o),y=Qr(c);if(E>g/2){let T=Math.floor(g/2);d="..."+ll(o.split("").reverse().join(""),T).split("").reverse().join("")}y>g/2&&(h=ll(c,Math.floor(g/2))+"...")}return xE(zX,{children:[s&&xE(cl,{dimColor:!0,children:[String(i).padStart(3," ")," "]}),r?xE($X,{children:[rp(cl,{color:"whiteBright",children:d}),rp(cl,{backgroundColor:"cyan",color:"black",children:p}),rp(cl,{color:"whiteBright",children:h})]}):rp(cl,{color:"whiteBright",children:t})]})}var _2=ae(()=>{"use strict";vE()});import{jsxs as Zs,jsx as ds}from"react/jsx-runtime";import{Box as ul,Text as Mn}from"ink";function f2({lines:t,cursorLine:e,cursorCol:r,prompt:n="> ",isFocused:s=!0,width:i}){let a=i??(process.stdout.columns||80),o=a-4,l=t.length===1&&t[0]==="";return Zs(ul,{flexDirection:"column",width:a,children:[ds(ul,{children:Zs(Mn,{dimColor:!0,children:["\u250C","\u2500".repeat(a-2),"\u2510"]})}),l?(()=>{let c=s?1:0,d=n.length+c+1+m2.length,p=Math.max(0,o-d);return Zs(ul,{children:[ds(Mn,{dimColor:!0,children:"\u2502 "}),ds(Mn,{color:"cyan",children:n}),s&&ds(Mn,{backgroundColor:"cyan",color:"black",children:" "}),Zs(Mn,{dimColor:!0,children:[" ",m2," ".repeat(p)," \u2502"]})]})})():t.map((c,u)=>{let p=u===0?n:"... ",h=s&&u===e,m=o-p.length,g=Qr(c),E=Array.from(c),T=h&&r>=E.length?1:0,N=m-T,R,D;g>N?(R=ll(c,N-3)+"...",D=Qr(R)):(R=c,D=g);let O=Array.from(R),w=Math.min(r,O.length),k;h&&w>=O.length?k=D+1:k=D;let v=Math.max(0,m-k);return Zs(ul,{width:a,children:[ds(Mn,{dimColor:!0,children:"\u2502 "}),ds(Mn,{color:"cyan",children:p}),ds(p2,{content:R,cursorCol:w,hasCursor:h,maxWidth:m}),Zs(Mn,{dimColor:!0,children:[" ".repeat(v)," \u2502"]})]},u)}),ds(ul,{children:Zs(Mn,{dimColor:!0,children:["\u2514","\u2500".repeat(a-2),"\u2518"]})})]})}var m2,g2=ae(()=>{"use strict";_2();vE();m2="Ask Aii to build anything... (/ commands, Ctrl+J new line, Ctrl+L clear)"});import{jsx as Mt,Fragment as np,jsxs as Xr}from"react/jsx-runtime";import HX from"react";import{Box as ME,Text as mt}from"ink";function YX(t){return t.replace(/-latest$/,"")}function qX(t,e=40){let r=process.env.HOME??process.env.USERPROFILE??"",n=t;if(r&&t.startsWith(r)&&(n="~"+t.slice(r.length)),n.length<=e)return n;let s=n.split("/").filter(a=>a.length>0);if(s.length>=2){let a=s.slice(-2).join("/");if(a.length<=e-4)return".../"+a}return".../"+(s[s.length-1]||s[s.length-2])}function KX(t){switch(t){case"auto":return"yellow";case"plan":return"cyan";case"normal":default:return"green"}}function VX(t){switch(t){case"critical":return"red";case"warning":return"yellow";default:return"green"}}function h2(t){return t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${Math.round(t/1e3)}K`:t.toString()}function WX(t){return t===0?"$0.00":t>=1?`$${t.toFixed(2)}`:t>=.01?`$${t.toFixed(4)}`:`$${t.toFixed(6)}`}function E2(t){if(t<60)return`${t}s`;let e=Math.floor(t/60),r=t%60;if(e<60)return`${e}m ${r}s`;let n=Math.floor(e/60),s=e%60;return`${n}h ${s}m`}var jX,S2,y2=ae(()=>{"use strict";jX="\u25CF",S2=HX.memo(function({projectPath:e,branch:r,mode:n,provider:s,model:i,contextPercent:a=0,contextLevel:o="normal",contextTokens:l,contextLimit:c,sessionCost:u,memoryMB:d,sessionDuration:p,agentExecTime:h,width:m=80}){let g=qX(e),E=YX(i),y=KX(n),T=VX(o),N=n.charAt(0).toUpperCase()+n.slice(1),R=s?`${s}/${E}`:E;return Xr(ME,{width:m,justifyContent:"space-between",children:[Xr(ME,{children:[Mt(mt,{dimColor:!0,children:g}),r&&Xr(np,{children:[Mt(mt,{dimColor:!0,children:" ("}),Mt(mt,{color:"green",children:r}),Mt(mt,{dimColor:!0,children:")"})]})]}),Xr(ME,{children:[Mt(mt,{color:y,children:N}),Mt(mt,{dimColor:!0,children:" ("}),Mt(mt,{color:"cyan",children:R}),Mt(mt,{dimColor:!0,children:")"}),Mt(mt,{dimColor:!0,children:" | "}),Xr(mt,{color:T,children:[jX," ",a,"%"]}),l!==void 0&&c!==void 0&&Xr(mt,{dimColor:!0,children:[" \xB7 ",h2(l),"/",h2(c)]}),u!==void 0&&Xr(np,{children:[Mt(mt,{dimColor:!0,children:" | "}),Mt(mt,{color:"yellow",children:WX(u)})]}),d!==void 0&&Xr(np,{children:[Mt(mt,{dimColor:!0,children:" | "}),Xr(mt,{dimColor:!0,children:[d.toFixed(1)," MB"]})]}),(h!==void 0||p!==void 0)&&Xr(np,{children:[Mt(mt,{dimColor:!0,children:" | "}),h!==void 0&&Mt(mt,{color:"cyan",children:E2(h)}),h!==void 0&&p!==void 0&&Mt(mt,{dimColor:!0,children:"/"}),p!==void 0&&Mt(mt,{dimColor:!0,children:E2(p)})]})]})]})})});import{jsxs as QX}from"react/jsx-runtime";import{Text as XX}from"ink";function T2({tools:t=0,mcpServers:e=0,contextFiles:r=0,skills:n=0}){let s=[];return t>0&&s.push(`${t} tool${t>1?"s":""}`),e>0&&s.push(`${e} MCP server${e>1?"s":""}`),n>0&&s.push(`${n} skill${n>1?"s":""}`),r>0&&s.push(`${r} context file${r>1?"s":""}`),s.length===0?null:QX(XX,{dimColor:!0,children:["Using: ",s.join(" | ")]})}var b2=ae(()=>{"use strict"});import{jsx as sp,jsxs as ZX}from"react/jsx-runtime";import JX,{useState as C2,useEffect as D2,useRef as A2}from"react";import{Box as eZ,Text as ip}from"ink";var ap,N2,I2=ae(()=>{"use strict";ap=["Thinking","Pondering","Reasoning","Contemplating","Deliberating","Mulling","Considering","Reflecting","Processing","Analyzing","Computing","Synthesizing","Evaluating","Examining","Crunching","Boogieing","Grooving","Jamming","Vibing","Cooking","Brewing","Conjuring","Crafting","Weaving","Spinning","Percolating","Simmering","Marinating","Fermenting","Distilling","Churning","Whipping up","Stirring","Mixing","Blending"],N2=JX.memo(function({status:e,isActive:r=!0,elapsedSeconds:n,tokensGenerated:s,showInterruptHint:i=!0,resetKey:a}){let o=A2(!0),[l,c]=C2(()=>ap[Math.floor(Math.random()*ap.length)]),u=A2(Date.now()),[d,p]=C2(0);if(D2(()=>{u.current=Date.now(),p(0),o.current=!0,c(ap[Math.floor(Math.random()*ap.length)])},[a]),D2(()=>{if(!r||n!==void 0)return;u.current=Date.now();let T=setInterval(()=>{o.current=!o.current,p(Math.floor((Date.now()-u.current)/1e3))},1e3);return()=>clearInterval(T)},[r,n,a]),!r)return null;let h=n??d,g=e&&!e.match(/^(Generating|Thinking|Processing)\.{0,3}$/i)?e:`${l}...`,E=[];i&&E.push("esc to interrupt"),h>0&&E.push(`${h}s`),s!==void 0&&s>0&&E.push(`+ ${s} tokens`);let y=E.length>0?` (${E.join(" \u2022 ")})`:"";return ZX(eZ,{children:[sp(ip,{color:o.current?"cyan":"gray",children:"\u25CF"}),sp(ip,{children:" "}),sp(ip,{color:"cyan",children:g}),sp(ip,{dimColor:!0,children:y})]})})});import{jsx as LE,jsxs as tZ}from"react/jsx-runtime";import rZ,{useRef as PE,useMemo as nZ}from"react";import{Box as R2,Text as O2}from"ink";var sZ,k2,w2=ae(()=>{"use strict";RE();sZ=150,k2=rZ.memo(function({content:e,isStreaming:r=!1,width:n,enableMarkdown:s=!0,maxVisibleLines:i}){let a=n??(process.stdout.columns||80),o=PE(0),l=PE(""),c=PE(""),d=nZ(()=>{if(!e)return"";if(!s)return e;if(r){let m=Date.now();return(m-o.current>=sZ||!l.current)&&(l.current=al(e),o.current=m,c.current=e),l.current}return l.current=al(e),c.current=e,l.current},[e,s,r]).split(`
291
- `),p=0;for(;d.length>1&&d[d.length-1]==="";)d.pop(),p++;p>0&&d.length>0&&d.push("");let h=i&&d.length>i?d.slice(-i):d;return LE(R2,{flexDirection:"column",width:a,children:h.map((m,g)=>tZ(R2,{children:[LE(O2,{children:m}),r&&g===h.length-1&&LE(O2,{backgroundColor:"white",color:"black",children:" "})]},g))})})});import{jsx as $t,jsxs as op}from"react/jsx-runtime";import{Box as lp,Text as zt}from"ink";function v2({commands:t,selectedIndex:e,isVisible:r,maxItems:n=8,menuWidth:s=60}){if(!r||t.length===0)return null;let i=t.length,a=0;e>=n&&(a=e-n+1);let o=Math.min(a+n,i),l=t.slice(a,o),c=i>n,u=s-2,d=` Commands (${i}) `,p=Math.max(0,u-d.length-2),h="\u2191\u2193 navigate \u2022 Enter select \u2022 Esc cancel",m=Math.max(0,u-h.length-2);return op(lp,{flexDirection:"column",children:[$t(zt,{color:"cyan",children:"\u250C\u2500"+d+"\u2500".repeat(p)+"\u2500\u2510"}),l.map((g,E)=>{let T=a+E===e,N=`/${g.name}`,R=u-N.length-3,D=g.description.length>R?g.description.slice(0,R-1)+"\u2026":g.description,O=` ${N} ${D}`,w=O.length,k=Math.max(0,u-w);return T?op(lp,{children:[$t(zt,{color:"cyan",children:"\u2502"}),$t(zt,{backgroundColor:"cyan",color:"black",children:O+" ".repeat(k)}),$t(zt,{color:"cyan",children:"\u2502"})]},g.name):op(lp,{children:[$t(zt,{color:"cyan",children:"\u2502"}),$t(zt,{children:" "}),$t(zt,{color:"cyan",children:N}),$t(zt,{dimColor:!0,children:" "+D}),$t(zt,{children:" ".repeat(k)}),$t(zt,{color:"cyan",children:"\u2502"})]},g.name)}),c&&(()=>{let g=a>0?"\u25B2":" ",E=o<i?"\u25BC":" ",y=` ${g} ${e+1}/${i} ${E}`,T=Math.max(0,u-y.length);return op(lp,{children:[$t(zt,{color:"cyan",children:"\u2502"}),$t(zt,{dimColor:!0,children:y}),$t(zt,{children:" ".repeat(T)}),$t(zt,{color:"cyan",children:"\u2502"})]})})(),$t(zt,{color:"cyan",children:"\u2514\u2500"+h+"\u2500".repeat(m)+"\u2500\u2518"})]})}var x2=ae(()=>{"use strict"});var FE=ae(()=>{"use strict";bg();OE();kE();wE()});import{jsx as Pr,Fragment as iZ,jsxs as UE}from"react/jsx-runtime";import aZ from"react";import{Box as M2,Static as oZ,Text as BE}from"ink";function lZ(){let t=Xs(n=>n.isVisible),e=Xs(n=>n.selectedIndex),r=Xs(n=>n.filteredCommands);return t?Pr(v2,{commands:r,selectedIndex:e,isVisible:t}):null}var L2,P2=ae(()=>{"use strict";g2();y2();b2();I2();w2();x2();FE();L2=aZ.memo(function({permanentContent:e,streamingContent:r,isStreaming:n,isThinking:s,thinkingStatus:i,thinkingElapsedSeconds:a,thinkingTokensGenerated:o,currentIteration:l,iterationStartTime:c,inputLines:u,inputCursorLine:d,inputCursorCol:p,inputFocused:h=!0,resourceCounts:m,loopMode:g=!1,statusBar:E,width:y}){let T=y??(process.stdout.columns||80),N=process.stdout.rows||24,R=n||s,D=!g&&m&&(m.tools>0||m.mcpServers>0||m.contextFiles>0||m.skills>0),O=(R?2:0)+(D?2:0)+(2+u.length)+1+2,w=Math.max(3,N-O-1);return UE(M2,{flexDirection:"column",width:T,children:[e.length>0&&Pr(oZ,{items:e,children:(k,v)=>Pr(BE,{children:k},v)}),r&&Pr(k2,{content:r,isStreaming:n,width:T,maxVisibleLines:w}),(s||n)&&UE(iZ,{children:[Pr(BE,{children:" "}),Pr(N2,{status:i,isActive:!0,elapsedSeconds:a,tokensGenerated:o,showInterruptHint:!0,resetKey:l})]}),UE(M2,{flexDirection:"column",children:[D&&Pr(BE,{children:" "}),D&&m&&Pr(T2,{tools:m.tools,mcpServers:m.mcpServers,contextFiles:m.contextFiles,skills:m.skills}),Pr(f2,{lines:u,cursorLine:d,cursorCol:p,isFocused:h,width:T}),Pr(S2,{projectPath:E.projectPath,branch:E.branch,mode:E.mode,provider:E.provider,model:E.model,contextPercent:E.contextPercent,contextLevel:E.contextLevel,contextTokens:E.contextTokens,contextLimit:E.contextLimit,sessionCost:E.sessionCost,memoryMB:E.memoryMB,sessionDuration:E.sessionDuration,agentExecTime:E.agentExecTime,width:T}),Pr(lZ,{})]})]})})});import{jsx as ps,jsxs as cp}from"react/jsx-runtime";import{Box as $2,Text as Ln}from"ink";function dZ(t){let e=t.match(/^(\s*\d+\s*)([+-])(.*)$/);if(e){let[,n,s,i]=e;return{text:s+i,color:s==="+"?F2:U2,backgroundColor:s==="+"?B2:G2,lineNumber:n}}let r=t.match(/^(\s*\d+)(\s{3})(.*)$/);if(r){let[,n,s,i]=r;return{text:" "+s+i,color:GE,lineNumber:n,isContext:!0}}return t.startsWith("+")?{text:t,color:F2,backgroundColor:B2}:t.startsWith("-")?{text:t,color:U2,backgroundColor:G2}:t.startsWith("@@")?{text:t,color:cZ}:t.startsWith("$")?{text:t,color:GE}:{text:t,color:GE,isContext:!0}}function pZ({line:t,width:e}){let r=dZ(t),n=r.lineNumber?r.lineNumber.length:0,s=Math.max(0,e-n),i=r.text;i.length>s&&(i=i.slice(0,s-3)+"...");let a=r.backgroundColor?i+" ".repeat(Math.max(0,s-i.length)):i;return r.lineNumber?cp($2,{children:[ps(Ln,{color:uZ,children:r.lineNumber}),r.backgroundColor?ps(Ln,{backgroundColor:r.backgroundColor,color:r.color,children:a}):ps(Ln,{color:r.color,children:a})]}):r.backgroundColor?ps(Ln,{backgroundColor:r.backgroundColor,color:r.color,children:a}):ps(Ln,{color:r.color,children:i})}function $E({lines:t,scrollOffset:e=0,maxVisibleLines:r=15,isScrollMode:n=!1,width:s}){let i=s??(process.stdout.columns||80),a=i-4,o=e,l=Math.min(o+r,t.length),c=t.slice(o,l),u=e,d=t.length-l,p=t.length>r;return cp($2,{flexDirection:"column",width:i,children:[p&&(u>0?cp(Ln,{color:"yellow",children:["\u2191 ",u," more lines above"]}):ps(Ln,{children:" "})),c.map((h,m)=>ps(pZ,{line:h,width:a},o+m)),p&&(d>0?cp(Ln,{color:"yellow",children:["\u2193 +",d," more lines below"]}):ps(Ln,{children:" "}))]})}var F2,U2,B2,G2,cZ,GE,uZ,z2=ae(()=>{"use strict";F2="#A6E22E",U2="#F92672",B2="#243524",G2="#3b2028",cZ="#66D9EF",GE="#F8F8F2",uZ="#75715E"});import{jsxs as zE,jsx as H2}from"react/jsx-runtime";import{Box as q2,Text as Y2}from"ink";function _Z({option:t,isSelected:e,isActive:r}){let n=e&&r?">":" ",s=e&&r?"cyan":"white";return zE(q2,{children:[zE(Y2,{color:e&&r?"cyan":void 0,children:[n," "]}),zE(Y2,{color:s,children:[t.key,". ",t.label]})]})}function V2({options:t,selectedIndex:e,isActive:r=!0}){return H2(q2,{flexDirection:"column",children:t.map((n,s)=>H2(_Z,{option:n,isSelected:s===e,isActive:r},n.key))})}var K2,W2=ae(()=>{"use strict";K2=[{key:"1",label:"Yes",value:"yes"},{key:"2",label:"Yes, and don't ask again for this session",value:"session"},{key:"3",label:"No",value:"no"}]});import{jsxs as Zr,Fragment as j2,jsx as Lt}from"react/jsx-runtime";import{Box as _s,Text as nr}from"ink";function Q2({toolName:t,description:e,details:r,showDiff:n=!1,options:s=K2,selectedIndex:i,isScrollMode:a=!1,scrollOffset:o=0,maxVisibleDiffLines:l=15,width:c,isResolved:u=!1,result:d}){let p=c??(process.stdout.columns||80),h=r&&r.length>0;if(u&&d){let m=d==="yes"||d==="session"||d==="always",g=m?"\u2713":"\u2717",E=m?"green":"red",y=t==="Edit"||t==="Write";return Zr(_s,{flexDirection:"column",children:[Zr(_s,{children:[Zr(nr,{color:E,children:[g," "]}),y?Lt(j2,{children:Zr(nr,{bold:!0,children:[t," file"]})}):Lt(nr,{bold:!0,color:"cyan",children:t}),Zr(nr,{dimColor:!0,children:[": ",e]})]}),h&&n&&Zr(_s,{flexDirection:"column",marginTop:1,marginLeft:2,children:[Lt($E,{lines:r.slice(0,10),maxVisibleLines:10,width:p-4}),r.length>10&&Zr(nr,{dimColor:!0,children:[" ... +",r.length-10," more lines"]})]})]})}return Zr(_s,{flexDirection:"column",children:[Lt(nr,{dimColor:!0,children:"\u2500".repeat(Math.min(p,60))}),Lt(_s,{marginTop:1,children:t==="Edit"||t==="Write"?Zr(nr,{bold:!0,children:[t," file"]}):Zr(j2,{children:[Lt(nr,{bold:!0,color:"cyan",children:"Aii"}),Lt(nr,{children:" wants to execute "}),Lt(nr,{bold:!0,children:t})]})}),Lt(_s,{marginLeft:2,children:Lt(nr,{dimColor:!0,children:e})}),h&&Lt(_s,{flexDirection:"column",marginTop:1,marginLeft:2,children:Lt($E,{lines:r,scrollOffset:o,maxVisibleLines:l,isScrollMode:a,width:p-4})}),Lt(nr,{children:" "}),Lt(V2,{options:s,selectedIndex:i,isActive:!a}),Lt(_s,{marginTop:1,children:Lt(nr,{dimColor:!0,children:"\u2500".repeat(Math.min(p,60))})})]})}var X2=ae(()=>{"use strict";z2();W2()});var r9={};Jt(r9,{App:()=>t9,default:()=>bZ});import{jsx as jt,jsxs as Z2,Fragment as mZ}from"react/jsx-runtime";import fZ,{useEffect as _p,useCallback as up,useState as dp,useRef as Pn,useMemo as gZ}from"react";import{Box as dl,Text as pp,Static as hZ}from"ink";import{useShallow as ia}from"zustand/react/shallow";function EZ({onInterrupt:t}){return _p(()=>{if(!process.stdin.isTTY){process.env.AII_INK_DEBUG&&console.error("[INK-DEBUG] InterruptHandler: stdin is not a TTY, skipping");return}process.env.AII_INK_DEBUG&&(console.error("[INK-DEBUG] InterruptHandler: mounting, setting up ESC listener"),console.error(`[INK-DEBUG] InterruptHandler: stdin.isRaw=${process.stdin.isRaw}, listenerCount=${process.stdin.listenerCount("data")}`)),process.stdin.resume();let e=r=>{r.toString()==="\x1B"&&(process.env.AII_INK_DEBUG&&console.error("[INK-DEBUG] InterruptHandler: ESC detected, calling onInterrupt"),t())};return process.stdin.on("data",e),()=>{process.env.AII_INK_DEBUG&&(console.error("[INK-DEBUG] InterruptHandler: unmounting, removing listener"),console.error(`[INK-DEBUG] InterruptHandler: listenerCount before=${process.stdin.listenerCount("data")}`)),process.stdin.removeListener("data",e),process.env.AII_INK_DEBUG&&console.error(`[INK-DEBUG] InterruptHandler: listenerCount after=${process.stdin.listenerCount("data")}`)}},[t]),null}function SZ({optionsCount:t,selectedIndex:e,hasScrollableContent:r,isScrollMode:n,onScroll:s,onNavigate:i,onSelect:a,onToggleMode:o}){let l=Pn(e),c=Pn(t),u=Pn(r),d=Pn(n),p=Pn(s),h=Pn(i),m=Pn(a),g=Pn(o);return l.current=e,c.current=t,u.current=r,d.current=n,p.current=s,h.current=i,m.current=a,g.current=o,_p(()=>{if(!process.stdin.isTTY)return;process.env.AII_INK_DEBUG&&console.error("[INK-DEBUG] DialogKeyHandler: mounting, setting up keyboard listener");let E=process.stdin.isRaw;process.stdin.setRawMode(!0),process.stdin.resume();let y=T=>{let N=T.toString();if(process.env.AII_INK_DEBUG&&console.error(`[INK-DEBUG] DialogKeyHandler: received input: ${JSON.stringify(N)}, isScrollMode=${d.current}`),N===" "){u.current&&g.current();return}if(N==="\x1B[A"){d.current?p.current("up"):h.current("up");return}if(N==="\x1B[B"){d.current?p.current("down"):h.current("down");return}if(N==="\x1B[5~"){u.current&&p.current("up");return}if(N==="\x1B[6~"){u.current&&p.current("down");return}if(N==="\r"||N===`
291
+ `),p=0;for(;d.length>1&&d[d.length-1]==="";)d.pop(),p++;p>0&&d.length>0&&d.push("");let h=i&&d.length>i?d.slice(-i):d;return LE(R2,{flexDirection:"column",width:a,children:h.map((m,g)=>tZ(R2,{children:[LE(O2,{children:m}),r&&g===h.length-1&&LE(O2,{backgroundColor:"white",color:"black",children:" "})]},g))})})});import{jsx as $t,jsxs as op}from"react/jsx-runtime";import{Box as lp,Text as zt}from"ink";function v2({commands:t,selectedIndex:e,isVisible:r,maxItems:n=8,menuWidth:s=60}){if(!r||t.length===0)return null;let i=t.length,a=0;e>=n&&(a=e-n+1);let o=Math.min(a+n,i),l=t.slice(a,o),c=i>n,u=s-2,d=` Commands (${i}) `,p=Math.max(0,u-d.length-2),h="\u2191\u2193 navigate \u2022 Enter select \u2022 Esc cancel",m=Math.max(0,u-h.length-2);return op(lp,{flexDirection:"column",children:[$t(zt,{color:"cyan",children:"\u250C\u2500"+d+"\u2500".repeat(p)+"\u2500\u2510"}),l.map((g,E)=>{let T=a+E===e,N=`/${g.name}`,R=u-N.length-3,D=g.description.length>R?g.description.slice(0,R-1)+"\u2026":g.description,O=` ${N} ${D}`,w=O.length,k=Math.max(0,u-w);return T?op(lp,{children:[$t(zt,{color:"cyan",children:"\u2502"}),$t(zt,{backgroundColor:"cyan",color:"black",children:O+" ".repeat(k)}),$t(zt,{color:"cyan",children:"\u2502"})]},g.name):op(lp,{children:[$t(zt,{color:"cyan",children:"\u2502"}),$t(zt,{children:" "}),$t(zt,{color:"cyan",children:N}),$t(zt,{dimColor:!0,children:" "+D}),$t(zt,{children:" ".repeat(k)}),$t(zt,{color:"cyan",children:"\u2502"})]},g.name)}),c&&(()=>{let g=a>0?"\u25B2":" ",E=o<i?"\u25BC":" ",y=` ${g} ${e+1}/${i} ${E}`,T=Math.max(0,u-y.length);return op(lp,{children:[$t(zt,{color:"cyan",children:"\u2502"}),$t(zt,{dimColor:!0,children:y}),$t(zt,{children:" ".repeat(T)}),$t(zt,{color:"cyan",children:"\u2502"})]})})(),$t(zt,{color:"cyan",children:"\u2514\u2500"+h+"\u2500".repeat(m)+"\u2500\u2518"})]})}var x2=ae(()=>{"use strict"});var FE=ae(()=>{"use strict";bg();OE();kE();wE()});import{jsx as Pr,Fragment as iZ,jsxs as UE}from"react/jsx-runtime";import aZ from"react";import{Box as M2,Static as oZ,Text as BE}from"ink";function lZ(){let t=Xs(n=>n.isVisible),e=Xs(n=>n.selectedIndex),r=Xs(n=>n.filteredCommands);return t?Pr(v2,{commands:r,selectedIndex:e,isVisible:t}):null}var L2,P2=ae(()=>{"use strict";g2();y2();b2();I2();w2();x2();FE();L2=aZ.memo(function({permanentContent:e,streamingContent:r,isStreaming:n,isThinking:s,thinkingStatus:i,thinkingElapsedSeconds:a,thinkingTokensGenerated:o,currentIteration:l,iterationStartTime:c,inputLines:u,inputCursorLine:d,inputCursorCol:p,inputFocused:h=!0,resourceCounts:m,loopMode:g=!1,statusBar:E,width:y}){let T=y??(process.stdout.columns||80),N=process.stdout.rows||24,R=n||s,D=m&&(m.tools>0||m.mcpServers>0||m.contextFiles>0||m.skills>0),O=(R?2:0)+(D?2:0)+(2+u.length)+1+2,w=Math.max(3,N-O-1);return UE(M2,{flexDirection:"column",width:T,children:[e.length>0&&Pr(oZ,{items:e,children:(k,v)=>Pr(BE,{children:k},v)}),r&&Pr(k2,{content:r,isStreaming:n,width:T,maxVisibleLines:w}),(s||n)&&UE(iZ,{children:[Pr(BE,{children:" "}),Pr(N2,{status:i,isActive:!0,elapsedSeconds:a,tokensGenerated:o,showInterruptHint:!0,resetKey:l})]}),UE(M2,{flexDirection:"column",children:[D&&Pr(BE,{children:" "}),D&&m&&Pr(T2,{tools:m.tools,mcpServers:m.mcpServers,contextFiles:m.contextFiles,skills:m.skills}),Pr(f2,{lines:u,cursorLine:d,cursorCol:p,isFocused:h,width:T}),Pr(S2,{projectPath:E.projectPath,branch:E.branch,mode:E.mode,provider:E.provider,model:E.model,contextPercent:E.contextPercent,contextLevel:E.contextLevel,contextTokens:E.contextTokens,contextLimit:E.contextLimit,sessionCost:E.sessionCost,memoryMB:E.memoryMB,sessionDuration:E.sessionDuration,agentExecTime:E.agentExecTime,width:T}),Pr(lZ,{})]})]})})});import{jsx as ps,jsxs as cp}from"react/jsx-runtime";import{Box as $2,Text as Ln}from"ink";function dZ(t){let e=t.match(/^(\s*\d+\s*)([+-])(.*)$/);if(e){let[,n,s,i]=e;return{text:s+i,color:s==="+"?F2:U2,backgroundColor:s==="+"?B2:G2,lineNumber:n}}let r=t.match(/^(\s*\d+)(\s{3})(.*)$/);if(r){let[,n,s,i]=r;return{text:" "+s+i,color:GE,lineNumber:n,isContext:!0}}return t.startsWith("+")?{text:t,color:F2,backgroundColor:B2}:t.startsWith("-")?{text:t,color:U2,backgroundColor:G2}:t.startsWith("@@")?{text:t,color:cZ}:t.startsWith("$")?{text:t,color:GE}:{text:t,color:GE,isContext:!0}}function pZ({line:t,width:e}){let r=dZ(t),n=r.lineNumber?r.lineNumber.length:0,s=Math.max(0,e-n),i=r.text;i.length>s&&(i=i.slice(0,s-3)+"...");let a=r.backgroundColor?i+" ".repeat(Math.max(0,s-i.length)):i;return r.lineNumber?cp($2,{children:[ps(Ln,{color:uZ,children:r.lineNumber}),r.backgroundColor?ps(Ln,{backgroundColor:r.backgroundColor,color:r.color,children:a}):ps(Ln,{color:r.color,children:a})]}):r.backgroundColor?ps(Ln,{backgroundColor:r.backgroundColor,color:r.color,children:a}):ps(Ln,{color:r.color,children:i})}function $E({lines:t,scrollOffset:e=0,maxVisibleLines:r=15,isScrollMode:n=!1,width:s}){let i=s??(process.stdout.columns||80),a=i-4,o=e,l=Math.min(o+r,t.length),c=t.slice(o,l),u=e,d=t.length-l,p=t.length>r;return cp($2,{flexDirection:"column",width:i,children:[p&&(u>0?cp(Ln,{color:"yellow",children:["\u2191 ",u," more lines above"]}):ps(Ln,{children:" "})),c.map((h,m)=>ps(pZ,{line:h,width:a},o+m)),p&&(d>0?cp(Ln,{color:"yellow",children:["\u2193 +",d," more lines below"]}):ps(Ln,{children:" "}))]})}var F2,U2,B2,G2,cZ,GE,uZ,z2=ae(()=>{"use strict";F2="#A6E22E",U2="#F92672",B2="#243524",G2="#3b2028",cZ="#66D9EF",GE="#F8F8F2",uZ="#75715E"});import{jsxs as zE,jsx as H2}from"react/jsx-runtime";import{Box as q2,Text as Y2}from"ink";function _Z({option:t,isSelected:e,isActive:r}){let n=e&&r?">":" ",s=e&&r?"cyan":"white";return zE(q2,{children:[zE(Y2,{color:e&&r?"cyan":void 0,children:[n," "]}),zE(Y2,{color:s,children:[t.key,". ",t.label]})]})}function V2({options:t,selectedIndex:e,isActive:r=!0}){return H2(q2,{flexDirection:"column",children:t.map((n,s)=>H2(_Z,{option:n,isSelected:s===e,isActive:r},n.key))})}var K2,W2=ae(()=>{"use strict";K2=[{key:"1",label:"Yes",value:"yes"},{key:"2",label:"Yes, and don't ask again for this session",value:"session"},{key:"3",label:"No",value:"no"}]});import{jsxs as Zr,Fragment as j2,jsx as Lt}from"react/jsx-runtime";import{Box as _s,Text as nr}from"ink";function Q2({toolName:t,description:e,details:r,showDiff:n=!1,options:s=K2,selectedIndex:i,isScrollMode:a=!1,scrollOffset:o=0,maxVisibleDiffLines:l=15,width:c,isResolved:u=!1,result:d}){let p=c??(process.stdout.columns||80),h=r&&r.length>0;if(u&&d){let m=d==="yes"||d==="session"||d==="always",g=m?"\u2713":"\u2717",E=m?"green":"red",y=t==="Edit"||t==="Write";return Zr(_s,{flexDirection:"column",children:[Zr(_s,{children:[Zr(nr,{color:E,children:[g," "]}),y?Lt(j2,{children:Zr(nr,{bold:!0,children:[t," file"]})}):Lt(nr,{bold:!0,color:"cyan",children:t}),Zr(nr,{dimColor:!0,children:[": ",e]})]}),h&&n&&Zr(_s,{flexDirection:"column",marginTop:1,marginLeft:2,children:[Lt($E,{lines:r.slice(0,10),maxVisibleLines:10,width:p-4}),r.length>10&&Zr(nr,{dimColor:!0,children:[" ... +",r.length-10," more lines"]})]})]})}return Zr(_s,{flexDirection:"column",children:[Lt(nr,{dimColor:!0,children:"\u2500".repeat(Math.min(p,60))}),Lt(_s,{marginTop:1,children:t==="Edit"||t==="Write"?Zr(nr,{bold:!0,children:[t," file"]}):Zr(j2,{children:[Lt(nr,{bold:!0,color:"cyan",children:"Aii"}),Lt(nr,{children:" wants to execute "}),Lt(nr,{bold:!0,children:t})]})}),Lt(_s,{marginLeft:2,children:Lt(nr,{dimColor:!0,children:e})}),h&&Lt(_s,{flexDirection:"column",marginTop:1,marginLeft:2,children:Lt($E,{lines:r,scrollOffset:o,maxVisibleLines:l,isScrollMode:a,width:p-4})}),Lt(nr,{children:" "}),Lt(V2,{options:s,selectedIndex:i,isActive:!a}),Lt(_s,{marginTop:1,children:Lt(nr,{dimColor:!0,children:"\u2500".repeat(Math.min(p,60))})})]})}var X2=ae(()=>{"use strict";z2();W2()});var r9={};Jt(r9,{App:()=>t9,default:()=>bZ});import{jsx as jt,jsxs as Z2,Fragment as mZ}from"react/jsx-runtime";import fZ,{useEffect as _p,useCallback as up,useState as dp,useRef as Pn,useMemo as gZ}from"react";import{Box as dl,Text as pp,Static as hZ}from"ink";import{useShallow as ia}from"zustand/react/shallow";function EZ({onInterrupt:t}){return _p(()=>{if(!process.stdin.isTTY){process.env.AII_INK_DEBUG&&console.error("[INK-DEBUG] InterruptHandler: stdin is not a TTY, skipping");return}process.env.AII_INK_DEBUG&&(console.error("[INK-DEBUG] InterruptHandler: mounting, setting up ESC listener"),console.error(`[INK-DEBUG] InterruptHandler: stdin.isRaw=${process.stdin.isRaw}, listenerCount=${process.stdin.listenerCount("data")}`)),process.stdin.resume();let e=r=>{r.toString()==="\x1B"&&(process.env.AII_INK_DEBUG&&console.error("[INK-DEBUG] InterruptHandler: ESC detected, calling onInterrupt"),t())};return process.stdin.on("data",e),()=>{process.env.AII_INK_DEBUG&&(console.error("[INK-DEBUG] InterruptHandler: unmounting, removing listener"),console.error(`[INK-DEBUG] InterruptHandler: listenerCount before=${process.stdin.listenerCount("data")}`)),process.stdin.removeListener("data",e),process.env.AII_INK_DEBUG&&console.error(`[INK-DEBUG] InterruptHandler: listenerCount after=${process.stdin.listenerCount("data")}`)}},[t]),null}function SZ({optionsCount:t,selectedIndex:e,hasScrollableContent:r,isScrollMode:n,onScroll:s,onNavigate:i,onSelect:a,onToggleMode:o}){let l=Pn(e),c=Pn(t),u=Pn(r),d=Pn(n),p=Pn(s),h=Pn(i),m=Pn(a),g=Pn(o);return l.current=e,c.current=t,u.current=r,d.current=n,p.current=s,h.current=i,m.current=a,g.current=o,_p(()=>{if(!process.stdin.isTTY)return;process.env.AII_INK_DEBUG&&console.error("[INK-DEBUG] DialogKeyHandler: mounting, setting up keyboard listener");let E=process.stdin.isRaw;process.stdin.setRawMode(!0),process.stdin.resume();let y=T=>{let N=T.toString();if(process.env.AII_INK_DEBUG&&console.error(`[INK-DEBUG] DialogKeyHandler: received input: ${JSON.stringify(N)}, isScrollMode=${d.current}`),N===" "){u.current&&g.current();return}if(N==="\x1B[A"){d.current?p.current("up"):h.current("up");return}if(N==="\x1B[B"){d.current?p.current("down"):h.current("down");return}if(N==="\x1B[5~"){u.current&&p.current("up");return}if(N==="\x1B[6~"){u.current&&p.current("down");return}if(N==="\r"||N===`
292
292
  `){m.current(l.current);return}if(N==="\x1B"){m.current(c.current-1);return}let R=parseInt(N,10);if(R>=1&&R<=c.current){m.current(R-1);return}};return process.stdin.on("data",y),()=>{process.env.AII_INK_DEBUG&&console.error("[INK-DEBUG] DialogKeyHandler: unmounting, removing listener"),process.stdin.removeListener("data",y),!E&&process.stdin.isTTY&&process.stdin.setRawMode(!1)}},[]),null}function yZ(){let t=Date.now();return t-e9>1e3&&(J2=process.memoryUsage().heapUsed/1024/1024,e9=t),J2}function TZ(t,e){_p(()=>{if(!t)return;let r=Io(),n=tp(),s=a=>{n.appendToken(a)},i=(a,o,l,c)=>{r.updateContext(o,e)};return t.on("token",s),t.on("iterationUsage",i),()=>{t.off("token",s),t.off("iterationUsage",i)}},[t,e])}function t9({initialMode:t="welcome",agentEmitter:e,projectPath:r=process.cwd(),branch:n,model:s="sonnet-4",contextLimit:i=2e5,width:a,version:o="0.0.0",initialToolsCount:l=0,initialMcpServersCount:c=0,initialContextFilesCount:u=0,initialSkillsCount:d=0,permissionDialog:p,onInterrupt:h}){let m=a??(process.stdout.columns||80);_p(()=>{let X=Io();X.updateSession({projectPath:r,model:s,branch:n}),(l>0||c>0||u>0||d>0)&&X.updateResources({toolsCount:l,mcpServersCount:c,contextFilesCount:u,skillsCount:d})},[r,s,n,l,c,u,d]),TZ(e,i);let{mode:g,isThinking:E,isStreaming:y,status:T,renderEpoch:N}=En(ia(X=>({mode:X.mode,isThinking:X.isThinking,isStreaming:X.isStreaming,status:X.status,renderEpoch:X.renderEpoch}))),R=y||E,{currentIteration:D,iterationStartTime:O,iterationTokens:w}=En(ia(X=>({currentIteration:X.currentIteration,iterationStartTime:X.iterationStartTime,iterationTokens:X.iterationTokens}))),{contextPercent:k,contextLevel:v,contextTokens:K,uiContextLimit:F}=En(ia(X=>({contextPercent:X.contextPercent,contextLevel:X.contextLevel,contextTokens:X.contextTokens,uiContextLimit:X.contextLimit}))),{sessionCost:B,provider:j,uiModel:le,agentMode:me,sessionStartTime:tt,agentExecMs:Ve,agentTurnStartTime:Ae}=En(ia(X=>({sessionCost:X.sessionCost,provider:X.provider,uiModel:X.model,agentMode:X.agentMode,sessionStartTime:X.sessionStartTime,agentExecMs:X.agentExecMs,agentTurnStartTime:X.agentTurnStartTime}))),{toolsCount:ft,mcpServersCount:Ge,contextFilesCount:Ct,skillsCount:Pt,loopMode:M}=En(ia(X=>({toolsCount:X.toolsCount,mcpServersCount:X.mcpServersCount,contextFilesCount:X.contextFilesCount,skillsCount:X.skillsCount,loopMode:X.loopMode}))),P=na(X=>X.renderedContent),Q=na(X=>X.permanentContent),{inputLines:ie,cursorLine:pe,cursorCol:Me}=ol(ia(X=>({inputLines:X.lines,cursorLine:X.cursorLine,cursorCol:X.cursorCol}))),[V,q]=dp(0),[oe,ye]=dp(0),[at,Ar]=dp(!1),[Ft,Zt]=dp(0);fZ.useEffect(()=>(globalThis.__inkResetHeader=()=>Zt(X=>X+1),()=>{delete globalThis.__inkResetHeader}),[]);let Qe=!0,gt=process.stdout.rows||24,$e=14+(p?.options?.length??3)+2+2,cr=Math.max(3,Math.min(15,gt-$e)),ce=p?.details?.length??0,$n=ce>cr,ut=Math.max(0,ce-cr),We=up(X=>{if(!p||!$n)return;let ur=3;ye(X==="up"?Nr=>Math.max(0,Nr-ur):Nr=>Math.min(ut,Nr+ur))},[p,$n,ut]),Cs=up(X=>{if(!p)return;let ur=p.options?.length??3;q(X==="up"?Nr=>Math.max(0,Nr-1):Nr=>Math.min(ur-1,Nr+1))},[p]),ln=up(X=>{if(!p)return;let ur=p.options??[{key:"1",label:"Yes",value:"yes"},{key:"2",label:"Yes, and don't ask again for this session",value:"session"},{key:"3",label:"No",value:"no"}];if(X>=0&&X<ur.length){let Nr=ur[X].value;process.env.AII_INK_DEBUG&&console.error(`[INK-DEBUG] Dialog: selected option ${X+1} = ${Nr}`),p.onResult?.(Nr)}},[p]),oi=up(()=>{Ar(X=>!X),process.env.AII_INK_DEBUG&&console.error(`[INK-DEBUG] Dialog: toggled mode, now isScrollMode=${!at}`)},[at]),li=ft||l,ee=Ge||c,se=Ct||u,de=Pt||d,Se=g==="dialog"&&p,rt=Pn(null);Se&&rt.current===null?rt.current=Q.length:!Se&&rt.current!==null&&(rt.current=null);let cn=rt.current,sc=gZ(()=>{let X=cn!==null?Q.slice(0,cn):Q;return[...Qe?[{id:`__header__:welcome:${Ft}`,type:"welcome",line:""},{id:`__header__:spacer:${Ft}`,type:"spacer",line:""}]:[],...X.map(ur=>({id:ur.id,type:"content",line:ur.line}))]},[Q,cn,Qe,Ft]);return Z2(dl,{flexDirection:"column",width:m,children:[jt(hZ,{items:sc,children:X=>X.type==="welcome"?jt(dl,{marginBottom:1,children:jt(u2,{version:o,width:m})},X.id):X.type==="spacer"?jt(dl,{},X.id):X.id.startsWith("blank-")||X.line===""||X.line===" "||X.line==="\xA0"?process.env.AII_INK_DEBUG?jt(pp,{dimColor:!0,children:"[blank]"},X.id):jt(pp,{children:"\u200B"},X.id):jt(pp,{children:X.line},X.id)}),Se&&p&&Z2(dl,{flexDirection:"column",children:[jt(Q2,{toolName:p.toolName,description:p.description,details:p.details,showDiff:p.showDiff,options:p.options,selectedIndex:V,isScrollMode:at,scrollOffset:oe,maxVisibleDiffLines:cr,width:m}),jt(dl,{marginTop:1,children:jt(pp,{dimColor:!0,children:$n?"\u2191/\u2193 select \u2022 Tab to scroll diff \u2022 1-3 direct select":"\u2191/\u2193 select option \u2022 Enter to confirm"})}),jt(SZ,{optionsCount:p.options?.length??3,selectedIndex:V,hasScrollableContent:$n,isScrollMode:at,onScroll:We,onNavigate:Cs,onSelect:ln,onToggleMode:oi})]}),!Se&&jt(mZ,{children:R&&h&&jt(EZ,{onInterrupt:h})}),!Se&&jt(L2,{permanentContent:[],streamingContent:P,isStreaming:y,isThinking:E,thinkingStatus:T||"Thinking...",currentIteration:D,thinkingTokensGenerated:w,iterationStartTime:O,inputLines:ie,inputCursorLine:pe,inputCursorCol:Me,inputFocused:!y,resourceCounts:{tools:li,mcpServers:ee,contextFiles:se,skills:de},loopMode:M,statusBar:{projectPath:r,branch:n,mode:me,provider:j,model:le||s,contextPercent:k,contextLevel:v,contextTokens:K,contextLimit:F,sessionCost:B,memoryMB:yZ(),sessionDuration:Math.floor((Date.now()-tt)/1e3),agentExecTime:Math.floor((Ve+(Ae?Date.now()-Ae:0))/1e3)},width:m})]})}var J2,e9,bZ,n9=ae(()=>{"use strict";d2();P2();X2();FE();J2=0,e9=0;bZ=t9});var XE={};Jt(XE,{appendToken:()=>wZ,clearStream:()=>xZ,commitToStatic:()=>vZ,createAgentEmitter:()=>GZ,getCommandMenuStore:()=>NZ,getInputStore:()=>AZ,getStreamStore:()=>Ep,getUIStore:()=>Js,hidePermissionDialog:()=>i9,isInkAppRunning:()=>FZ,loadInkModules:()=>DZ,resetRenderState:()=>PZ,setAppMode:()=>hp,setInterruptCallback:()=>$Z,setStreaming:()=>OZ,setThinking:()=>RZ,showPermissionDialog:()=>s9,showPermissionDialogAsync:()=>LZ,startInkApp:()=>IZ,stopInkApp:()=>UZ,updateContext:()=>MZ,updateInkApp:()=>Sp,waitForInkApp:()=>BZ});import{EventEmitter as CZ}from"node:events";async function DZ(){if(fp&&aa&&oa&&gp)return;re("Loading Ink modules dynamically..."),aa=await import("react"),re("React loaded"),fp=await import("ink"),re("Ink loaded");try{let e=await import("ansi-escapes"),r=e.default??e;WE=r,r.clearTerminal&&(r.clearTerminal="\x1B[2J\x1B[H",re("Patched ansi-escapes.clearTerminal to preserve scrollback"))}catch{re("Warning: could not patch ansi-escapes.clearTerminal")}try{let e=import.meta.resolve("ink"),r=await import(new URL("instances.js",e).href);KE=r.default??r;let n=await import(new URL("renderer.js",e).href);VE=n.default??n,mp=(await import("es-toolkit/compat")).throttle,re("Ink internals for onRender patch pre-loaded (via import.meta.resolve)")}catch(e){re("Warning: could not pre-load Ink internals for onRender patch:",e)}gp=await Promise.resolve().then(()=>(bg(),$0)),HE=await Promise.resolve().then(()=>(OE(),r2)),YE=await Promise.resolve().then(()=>(kE(),i2)),qE=await Promise.resolve().then(()=>(wE(),l2)),re("Stores loaded"),oa={App:(await Promise.resolve().then(()=>(n9(),r9))).App},re("Ink modules loaded successfully")}function Js(){if(!gp)throw new Error("Ink modules not loaded. Call loadInkModules() first.");return gp.getUIStore()}function Ep(){if(!HE)throw new Error("Ink modules not loaded. Call loadInkModules() first.");return HE.getStreamStore()}function AZ(){if(!YE)throw new Error("Ink modules not loaded. Call loadInkModules() first.");return YE.getInputStore()}function NZ(){if(!qE)throw new Error("Ink modules not loaded. Call loadInkModules() first.");return qE.getCommandMenuStore()}function IZ(t={}){if(re("Starting Ink app with props:",t),!fp||!aa||!oa)throw new Error("Ink modules not loaded. Call loadInkModules() first.");Rt&&(re("Ink instance already exists, unmounting first"),Rt.unmount()),pl={...t};let{render:e}=fp,r=aa,{App:n}=oa;if(process.stdout.write("\x1B[?25l"),Rt=e(r.createElement(n,pl),{exitOnCtrlC:!1,patchConsole:!1}),re("Ink app rendered"),KE&&VE&&mp&&WE)try{let s=KE.get(process.stdout);if(s&&typeof s.onRender=="function"){let i=VE,a=s.options.stdout,o=WE,l=s.log,c=0,u="",d=p=>{let h=p+`
293
293
  `;if(h===u)return;let m=h.split(`
294
294
  `),g=(a.rows||24)-1;m.length>g&&(m=m.slice(m.length-g));let E="\x1B[0m"+m.join(`
@@ -415,7 +415,7 @@ Review PR #$ARGUMENTS using the review checklist.
415
415
  ${t}
416
416
  </context>
417
417
 
418
- ${e}`:e}var u5="0.7.6";function d5(){let t=new sy;return t.name("aii").description("AI-powered CLI assistant").version(u5,"-V, --version","Show version number").helpOption(!1).enablePositionalOptions().argument("[query...]","Natural language query").option("--clean","Clean output mode (just the result)").option("--standard","Standard output mode (result + metrics)").option("--thinking","Thinking mode (full reasoning)").option("-v, --verbose","Verbose output (alias for --thinking)").option("-d, --debug","Debug output").option("--model <model>","Override LLM model").option("--host <host>","API server host:port").option("-y, --yes","Auto-confirm shell commands").option("--offline","Offline mode (no web/MCP)").option("-i, --interactive","Interactive chat mode").option("-c, --continue-chat <id>","Continue chat session").option("-n, --new-chat","Force new chat session").option("--auto","Auto mode - auto-approve all actions").option("-q, --quiet","Quiet mode - minimal output").option("--no-colors","Disable colored output").option("--no-emojis","Disable emoji icons").option("--no-animations","Disable animations").option("--no-streaming","Disable streaming").option("--show-tokens","Show token usage").option("--show-cost","Show cost estimates").option("-h, --help","Show help"),t.command("config").description("Configuration management").argument("[action]","Action: init, show, validate, set").argument("[key]","Config key (for set)").argument("[value]","Config value (for set)").action(()=>{}),t.command("mcp").description("MCP server management").argument("[action]","Action: list, add, remove, status, etc.").argument("[rest...]","Server name and arguments").passThroughOptions().action(()=>{}),t.command("prompt").description("Prompt library").argument("[action]","Action: list, show, use, create").argument("[rest...]","Prompt name and arguments").allowUnknownOption().action(()=>{}),t.command("stats").description("Usage statistics").argument("[type]","Type: models, cost").action(()=>{}),t.command("history").description("Chat history").argument("[action]","Action: list, search, export, delete").argument("[query]","Search query or ID").action(()=>{}),t.command("doctor").description("System health check").action(()=>{}),t.command("chat").description("Interactive chat mode").action(()=>{}),t.command("agent").description("Interactive agent mode with tool execution").argument("[query...]","Optional query (non-interactive if provided)").action(()=>{}),t.command("loop").description("Autonomous agent loop (Ralph Wiggum pattern)").argument("[args...]","Loop arguments (prompt, --max, --verify, --budget, etc.)").allowUnknownOption().action(()=>{}),t.command("run").description("Run domain-specific operations").argument("<operation>","Operation (e.g., git commit)").argument("[args...]","Additional arguments").allowUnknownOption().action(()=>{}),t.command("help").description("display help for command").argument("[command]","Command to show help for").action(()=>{}),t.command("version").description("Show version number").action(()=>{}),t}async function ay(t){let e=d5();e.exitOverride(),e.configureOutput({writeErr:()=>{}});let r="query",n,s=[];try{e.parse(t),s=e.args;let c=e.args[0];c&&["config","mcp","prompt","stats","history","doctor","chat","run","help","version","agent","loop"].includes(c)&&(r=c,n=e.args[1],s=e.args.slice(2))}catch(c){c instanceof ny&&(c.code==="commander.version"||c.code==="commander.helpDisplayed")&&process.exit(0),s=t.slice(2)}let i=e.opts(),a={clean:i.clean??!1,standard:i.standard??!1,thinking:i.thinking??!1,verbose:i.verbose??!1,debug:i.debug??!1,model:i.model,host:i.host,yes:i.yes??!1,offline:i.offline??!1,interactive:i.interactive??!1,continueChat:i.continueChat,newChat:i.newChat??!1,auto:i.auto??!1,quiet:i.quiet??!1,noColors:!i.colors,noEmojis:!i.emojis,noAnimations:!i.animations,noStreaming:!i.streaming,showTokens:i.showTokens??!1,showCost:i.showCost??!1,help:i.help??!1,version:i.version??!1},o;B_()&&(o=await iy()),(r==="chat"||a.interactive)&&(r="agent"),r==="query"&&!s.length&&!o&&(r="agent");let l;if(r==="query"&&s.length>0)l=s.join(" ");else if(r==="agent"){let c=[];n&&c.push(n),s.length>0&&c.push(...s),c.length>0&&(l=c.join(" "))}return{command:r,subcommand:n,args:s,flags:a,stdinContent:o,query:l}}var Ne;(function(t){t[t.LOCAL=1]="LOCAL",t[t.SERVER=2]="SERVER"})(Ne||(Ne={}));var G_={translate:"clean",shell:"clean",shell_generate:"clean",mcp:"standard",explain:"standard",code_generate:"standard",code_review:"standard",summarize:"standard",research:"standard",_default:"standard"};function ci(t,e,r,n){return t.clean?"clean":t.thinking||t.verbose?"thinking":t.standard?"standard":e&&r?.[e]?r[e]:e&&G_[e]?G_[e]:n||G_._default}var oy={config:Ne.LOCAL,help:Ne.LOCAL,version:Ne.LOCAL,doctor:Ne.LOCAL,mcp:Ne.LOCAL,prompt:Ne.LOCAL,stats:Ne.LOCAL,history:Ne.LOCAL,query:Ne.SERVER,chat:Ne.SERVER,run:Ne.SERVER,agent:Ne.SERVER,loop:Ne.SERVER};function $_(t){let e=oy[t.command]??Ne.SERVER;switch(t.command){case"config":return p5(t);case"mcp":return _5(t);case"prompt":return m5(t);case"stats":return f5(t);case"history":return g5(t);case"doctor":return{tier:Ne.LOCAL,handler:"doctor",params:{}};case"chat":return{tier:Ne.SERVER,handler:"chat",params:{continueChat:t.flags.continueChat}};case"run":return h5(t);case"agent":return{tier:Ne.SERVER,handler:"agent",params:{interactive:!t.query}};case"loop":return{tier:Ne.SERVER,handler:"loop",params:{}};case"help":return{tier:Ne.LOCAL,handler:"help",params:{command:t.subcommand}};case"version":return{tier:Ne.LOCAL,handler:"version",params:{}};case"query":default:return{tier:e,handler:"query",params:{query:t.query,stdinContent:t.stdinContent}}}}function p5(t){let e=t.subcommand??t.args[0]??"show";return{tier:Ne.LOCAL,handler:`config:${e}`,params:{key:t.args[0],value:t.args[1]}}}function _5(t){let e=t.subcommand??t.args[0]??"list";return{tier:Ne.LOCAL,handler:`mcp:${e}`,params:{name:t.args[0],args:t.args.slice(1)}}}function m5(t){let e=t.subcommand??t.args[0]??"list";return{tier:Ne.LOCAL,handler:`prompt:${e}`,params:{name:t.args[0],args:t.args.slice(1)}}}function f5(t){let e=t.subcommand??t.args[0];return{tier:Ne.LOCAL,handler:e?`stats:${e}`:"stats",params:{}}}function g5(t){let e=t.subcommand??t.args[0]??"list";return{tier:Ne.LOCAL,handler:`history:${e}`,params:{query:t.args[0],id:t.args[0]}}}function h5(t){let e=[];t.subcommand&&e.push(t.subcommand);let r=t.args.filter(s=>!s.startsWith("-"));e.push(...r);let n=e.join(" ");return{tier:Ne.SERVER,handler:"run",params:{operation:n}}}var ks=dt(iu(),1);import*as At from"fs";import*as ou from"path";import*as jb from"os";var Cf={llm:{provider:"anthropic",model:"claude-sonnet-4-20250514",temperature:.7,max_tokens:4e3},api:{url:"http://localhost:26169"},streaming:{enabled:!0,buffer_size:10},output_modes:{default:"standard"}},au={configDir:".aii",configFile:"config.yaml",secretsFile:"secrets.yaml",mcpFile:"mcp.json"};var Zn=class t extends Error{code;suggestions;constructor(e,r,n=[]){super(e),this.name="AiiError",this.code=r,this.suggestions=n,Object.setPrototypeOf(this,t.prototype)}},ao=class t extends Zn{constructor(e,r){super(`Cannot connect to Aii Server at ${e}:${r}`,"CONNECTION_ERROR",[`Check if Aii Server is running: curl ${e}:${r}/api/status`,"Start the Aii Server (separate process)","Verify host in config: aii config show",`Try a different host: aii "hello" --host ${e}:${r}`]),this.name="ConnectionError",Object.setPrototypeOf(this,t.prototype)}},kt=class t extends Zn{constructor(e,r){super(`Configuration error: ${e}`,"CONFIG_ERROR",r??["Run 'aii config init' to complete setup"]),this.name="ConfigError",Object.setPrototypeOf(this,t.prototype)}},oo=class t extends Zn{constructor(e,r){super(`Operation timed out: ${e} (${r}ms)`,"TIMEOUT_ERROR",["Try again","Check network connectivity","The server might be overloaded"]),this.name="TimeoutError",Object.setPrototypeOf(this,t.prototype)}},lo=class t extends Zn{constructor(e){super(e,"WEBSOCKET_ERROR",["Check if Aii Server is running","Verify the server URL in config","Check network connectivity"]),this.name="WebSocketError",Object.setPrototypeOf(this,t.prototype)}},co=class t extends Zn{constructor(e,r){super(r,e,["Check server logs for more details","Try again with a different query"]),this.name="ServerError",Object.setPrototypeOf(this,t.prototype)}},ht=class t extends Zn{constructor(e="Missing or invalid API key"){super(`Authentication error: ${e}`,"AUTH_ERROR",["Run 'aii config init' to set up your API key","Check that your API key is valid","Verify the API key in ~/.aii/secrets.yaml"]),this.name="AuthError",Object.setPrototypeOf(this,t.prototype)}};var Af=class{configDir;configPath;secretsPath;config=null;secrets=null;constructor(e){this.configDir=e??ou.join(jb.homedir(),au.configDir),this.configPath=ou.join(this.configDir,au.configFile),this.secretsPath=ou.join(this.configDir,au.secretsFile)}getConfigDir(){return this.configDir}configExists(){return At.existsSync(this.configPath)}async load(){if(this.config)return this.config;let e={...Cf};if(At.existsSync(this.configPath))try{let r=At.readFileSync(this.configPath,"utf-8"),n=ks.parse(r);e=this.mergeConfig(Cf,n)}catch{throw new kt(`Failed to parse config file: ${this.configPath}`,["Check if the YAML syntax is valid","Try running: aii config init"])}return await this.loadSecrets(),e=this.applyEnvOverrides(e),this.config=e,e}async loadSecrets(){if(this.secrets)return this.secrets;let e={};if(At.existsSync(this.secretsPath))try{let r=At.readFileSync(this.secretsPath,"utf-8");e=ks.parse(r)}catch{}return this.secrets=e,e}mergeConfig(e,r){let n={...e};return r.llm&&(n.llm={...e.llm,...r.llm}),r.api&&(n.api={...e.api,...r.api},n.api.url&&!n.api.url.startsWith("http://")&&!n.api.url.startsWith("https://")&&(n.api.url=`http://${n.api.url}`)),r.streaming&&(n.streaming={...e.streaming,...r.streaming}),r.output_modes&&(n.output_modes={...e.output_modes,...r.output_modes}),r.mcp&&(n.mcp=r.mcp),r.web_search&&(n.web_search=r.web_search),n}applyEnvOverrides(e){let r={...e};return process.env.AII_LLM_PROVIDER&&(r.llm.provider=process.env.AII_LLM_PROVIDER),process.env.AII_MODEL&&(r.llm.model=process.env.AII_MODEL),process.env.AII_API_URL&&(r.api.url=process.env.AII_API_URL),r}getServerApiKey(){let e=this.config?.api.keys;return e&&e.length>0?e[0]:this.config?.api.key?this.config.api.key:process.env.AII_API_KEY}getApiKey(e){let r=e??this.config?.llm.provider??"anthropic";if(this.secrets){let a=this.secrets[`${r}_api_key`];if(a)return a;let o=this.secrets.api_keys?.[r];if(o)return o}let n={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY",gemini:"GEMINI_API_KEY",deepseek:"DEEPSEEK_API_KEY",moonshot:"MOONSHOT_API_KEY",zai:"ZAI_API_KEY"},s=process.env[n[r]];if(s)return s;let i=process.env[`AII_${n[r]}`];if(i)return i}get(e){if(!this.config)return;let r=e.split("."),n=this.config;for(let s of r){if(n==null)return;n=n[s]}return n}async set(e,r){this.config||await this.load();let n=r;e==="api.url"&&typeof r=="string"&&!r.startsWith("http://")&&!r.startsWith("https://")&&(n=`http://${r}`);let s=e.split("."),i=this.config;for(let a=0;a<s.length-1;a++){let o=s[a];i[o]===void 0&&(i[o]={}),i=i[o]}i[s[s.length-1]]=n,await this.save()}async save(){if(!this.config)throw new kt("No config loaded to save");At.existsSync(this.configDir)||At.mkdirSync(this.configDir,{recursive:!0,mode:448});let e=ks.stringify(this.config);At.writeFileSync(this.configPath,e,{encoding:"utf-8",mode:384})}loadSecretsSync(){if(this.secrets)return;let e={};if(At.existsSync(this.secretsPath))try{let r=At.readFileSync(this.secretsPath,"utf-8");e=ks.parse(r)}catch{}this.secrets=e}getSecret(e){this.secrets||this.loadSecretsSync();let r=this.secrets?.[e];return typeof r=="string"?r:void 0}async setSecret(e,r){At.existsSync(this.configDir)||At.mkdirSync(this.configDir,{recursive:!0,mode:448}),this.secrets||await this.loadSecrets(),this.secrets=this.secrets||{},this.secrets[e]=r;let n=ks.stringify(this.secrets);At.writeFileSync(this.secretsPath,n,{encoding:"utf-8",mode:384})}getConfig(){if(!this.config)throw new kt("Config not loaded. Call load() first.");return this.config}validate(){let e=[];return this.config?(this.config.llm.provider||e.push("Missing LLM provider"),this.config.llm.model||e.push("Missing LLM model"),this.getApiKey()||e.push(`Missing API key for provider: ${this.config.llm.provider}`),this.config.api.url||e.push("Missing API URL"),{valid:e.length===0,issues:e}):(e.push("Configuration not loaded"),{valid:!1,issues:e})}},Df=null;function er(){return Df||(Df=new Af),Df}Le();import{createInterface as iJ}from"readline";import{spawn as aJ}from"child_process";var D6=dt(s0(),1),A6=dt(Gf(),1),N6=dt(Hf(),1),m0=dt(Tu(),1),I6=dt(_0(),1);var hn=m0.default;wt();var L6={timeout:12e4,retries:3,retryDelay:1e3},hr=class{options;ws=null;activityTimeout=null;mcpExecutor=null;constructor(e){this.options={...L6,...e}}async initializeMCP(){if(!this.mcpExecutor){let{ClientMCPExecutor:e}=await Promise.resolve().then(()=>(Au(),Du));this.mcpExecutor=new e,await this.mcpExecutor.initialize(),z(`MCP executor initialized with ${this.mcpExecutor.getConnectionCount()} connections`)}}async executeRequest(e,r){let n=null;for(let s=0;s<this.options.retries;s++)try{return await this.executeWithRetry(e,r)}catch(i){if(n=i instanceof Error?i:new Error(String(i)),z(`Attempt ${s+1} failed: ${n.message}`),n instanceof co||n.message.includes("Authentication"))throw n;if(s<this.options.retries-1){let a=this.options.retryDelay*Math.pow(2,s);z(`Retrying in ${a}ms...`),await this.sleep(a)}}throw n??new lo("Max retries exceeded")}async executeWithRetry(e,r){return new Promise((n,s)=>{let i=this.buildWebSocketUrl();z(`Connecting to ${i}`);try{this.ws=new hn(i)}catch{let l=new URL(this.options.url);s(new ao(l.hostname||"localhost",l.port||"26169"));return}let a=!1,o=null;this.resetActivityTimeout(()=>{a||(this.cleanup(),s(new oo("WebSocket activity",this.options.timeout)))}),this.ws.on("open",()=>{z("WebSocket connected, sending request"),this.ws?.send(JSON.stringify(e))}),this.ws.on("message",l=>{this.resetActivityTimeout(()=>{a||(this.cleanup(),s(new oo("WebSocket activity",this.options.timeout)))});try{let c=JSON.parse(l.toString());this.handleMessage(c,r,u=>{a=!0,o=u,this.cleanup(),n(u)},u=>{a=!0,this.cleanup(),s(u)})}catch(c){let u=l?String(l):"<undefined>";z(`Failed to parse message: ${u}`),a||(a=!0,this.cleanup(),s(new Error(`Failed to parse server message: ${c.message}`)))}}),this.ws.on("error",l=>{if(z(`WebSocket error: ${l.message}`),!a){a=!0,this.cleanup();let c=new URL(this.options.url);s(new ao(c.hostname||"localhost",c.port||"26169"))}}),this.ws.on("close",(l,c)=>{z(`WebSocket closed: ${l} ${c.toString()}`),a||(a=!0,this.cleanup(),o?n(o):s(new lo(`Connection closed unexpectedly: ${l}`)))})})}handleMessage(e,r,n,s){switch(e.type){case"token":{let i=e;r?.onToken?.(i.data);break}case"complete":{let i=e,a=i.metadata||{},o=this.convertServerMetadata(i),l={result:i.result,metadata:o,clientSideExecution:a.client_side_execution===!0,userRequest:a.user_request};r?.onComplete?.(l),n(l);break}case"error":{let i=e,a=new co(i.code,i.message);r?.onError?.(a),s(a);break}case"mcp_query_tools":{z("Received mcp_query_tools request"),this.handleMCPQueryTools(e);break}case"mcp_tool_request":{z("Received mcp_tool_request"),this.handleMCPToolRequest(e);break}default:z(`Unknown message type: ${e.type}`)}}convertServerMetadata(e){let r=e.metadata||{},n,s;r.tokens?(n=r.tokens.input,s=r.tokens.output):(n=r.input_tokens,s=r.output_tokens);let i=r.cost??r.cost_usd,a=r.execution_time??r.total_time;return{function_name:e.function_name,tokens_in:n,tokens_out:s,cost:typeof i=="number"?i:void 0,model:typeof r.model=="string"?r.model:void 0,execution_time:typeof a=="number"?a:void 0}}buildWebSocketUrl(){let e=new URL(this.options.url);return`${e.protocol==="https:"?"wss:":"ws:"}//${e.host}/ws/execute`}async handleMCPQueryTools(e){try{if(!this.mcpExecutor){let{ClientMCPExecutor:n}=await Promise.resolve().then(()=>(Au(),Du));this.mcpExecutor=new n,await this.mcpExecutor.initialize()}let r=await this.mcpExecutor.handleQueryTools(e);this.ws?.send(JSON.stringify(r))}catch(r){let n=r instanceof Error?r.message:String(r),s=r instanceof Error?r.stack:void 0;z(`Error handling mcp_query_tools: ${n}${s?`
418
+ ${e}`:e}var u5="0.7.7";function d5(){let t=new sy;return t.name("aii").description("AI-powered CLI assistant").version(u5,"-V, --version","Show version number").helpOption(!1).enablePositionalOptions().argument("[query...]","Natural language query").option("--clean","Clean output mode (just the result)").option("--standard","Standard output mode (result + metrics)").option("--thinking","Thinking mode (full reasoning)").option("-v, --verbose","Verbose output (alias for --thinking)").option("-d, --debug","Debug output").option("--model <model>","Override LLM model").option("--host <host>","API server host:port").option("-y, --yes","Auto-confirm shell commands").option("--offline","Offline mode (no web/MCP)").option("-i, --interactive","Interactive chat mode").option("-c, --continue-chat <id>","Continue chat session").option("-n, --new-chat","Force new chat session").option("--auto","Auto mode - auto-approve all actions").option("-q, --quiet","Quiet mode - minimal output").option("--no-colors","Disable colored output").option("--no-emojis","Disable emoji icons").option("--no-animations","Disable animations").option("--no-streaming","Disable streaming").option("--show-tokens","Show token usage").option("--show-cost","Show cost estimates").option("-h, --help","Show help"),t.command("config").description("Configuration management").argument("[action]","Action: init, show, validate, set").argument("[key]","Config key (for set)").argument("[value]","Config value (for set)").action(()=>{}),t.command("mcp").description("MCP server management").argument("[action]","Action: list, add, remove, status, etc.").argument("[rest...]","Server name and arguments").passThroughOptions().action(()=>{}),t.command("prompt").description("Prompt library").argument("[action]","Action: list, show, use, create").argument("[rest...]","Prompt name and arguments").allowUnknownOption().action(()=>{}),t.command("stats").description("Usage statistics").argument("[type]","Type: models, cost").action(()=>{}),t.command("history").description("Chat history").argument("[action]","Action: list, search, export, delete").argument("[query]","Search query or ID").action(()=>{}),t.command("doctor").description("System health check").action(()=>{}),t.command("chat").description("Interactive chat mode").action(()=>{}),t.command("agent").description("Interactive agent mode with tool execution").argument("[query...]","Optional query (non-interactive if provided)").action(()=>{}),t.command("loop").description("Autonomous agent loop (Ralph Wiggum pattern)").argument("[args...]","Loop arguments (prompt, --max, --verify, --budget, etc.)").allowUnknownOption().action(()=>{}),t.command("run").description("Run domain-specific operations").argument("<operation>","Operation (e.g., git commit)").argument("[args...]","Additional arguments").allowUnknownOption().action(()=>{}),t.command("help").description("display help for command").argument("[command]","Command to show help for").action(()=>{}),t.command("version").description("Show version number").action(()=>{}),t}async function ay(t){let e=d5();e.exitOverride(),e.configureOutput({writeErr:()=>{}});let r="query",n,s=[];try{e.parse(t),s=e.args;let c=e.args[0];c&&["config","mcp","prompt","stats","history","doctor","chat","run","help","version","agent","loop"].includes(c)&&(r=c,n=e.args[1],s=e.args.slice(2))}catch(c){c instanceof ny&&(c.code==="commander.version"||c.code==="commander.helpDisplayed")&&process.exit(0),s=t.slice(2)}let i=e.opts(),a={clean:i.clean??!1,standard:i.standard??!1,thinking:i.thinking??!1,verbose:i.verbose??!1,debug:i.debug??!1,model:i.model,host:i.host,yes:i.yes??!1,offline:i.offline??!1,interactive:i.interactive??!1,continueChat:i.continueChat,newChat:i.newChat??!1,auto:i.auto??!1,quiet:i.quiet??!1,noColors:!i.colors,noEmojis:!i.emojis,noAnimations:!i.animations,noStreaming:!i.streaming,showTokens:i.showTokens??!1,showCost:i.showCost??!1,help:i.help??!1,version:i.version??!1},o;B_()&&(o=await iy()),(r==="chat"||a.interactive)&&(r="agent"),r==="query"&&!s.length&&!o&&(r="agent");let l;if(r==="query"&&s.length>0)l=s.join(" ");else if(r==="agent"){let c=[];n&&c.push(n),s.length>0&&c.push(...s),c.length>0&&(l=c.join(" "))}return{command:r,subcommand:n,args:s,flags:a,stdinContent:o,query:l}}var Ne;(function(t){t[t.LOCAL=1]="LOCAL",t[t.SERVER=2]="SERVER"})(Ne||(Ne={}));var G_={translate:"clean",shell:"clean",shell_generate:"clean",mcp:"standard",explain:"standard",code_generate:"standard",code_review:"standard",summarize:"standard",research:"standard",_default:"standard"};function ci(t,e,r,n){return t.clean?"clean":t.thinking||t.verbose?"thinking":t.standard?"standard":e&&r?.[e]?r[e]:e&&G_[e]?G_[e]:n||G_._default}var oy={config:Ne.LOCAL,help:Ne.LOCAL,version:Ne.LOCAL,doctor:Ne.LOCAL,mcp:Ne.LOCAL,prompt:Ne.LOCAL,stats:Ne.LOCAL,history:Ne.LOCAL,query:Ne.SERVER,chat:Ne.SERVER,run:Ne.SERVER,agent:Ne.SERVER,loop:Ne.SERVER};function $_(t){let e=oy[t.command]??Ne.SERVER;switch(t.command){case"config":return p5(t);case"mcp":return _5(t);case"prompt":return m5(t);case"stats":return f5(t);case"history":return g5(t);case"doctor":return{tier:Ne.LOCAL,handler:"doctor",params:{}};case"chat":return{tier:Ne.SERVER,handler:"chat",params:{continueChat:t.flags.continueChat}};case"run":return h5(t);case"agent":return{tier:Ne.SERVER,handler:"agent",params:{interactive:!t.query}};case"loop":return{tier:Ne.SERVER,handler:"loop",params:{}};case"help":return{tier:Ne.LOCAL,handler:"help",params:{command:t.subcommand}};case"version":return{tier:Ne.LOCAL,handler:"version",params:{}};case"query":default:return{tier:e,handler:"query",params:{query:t.query,stdinContent:t.stdinContent}}}}function p5(t){let e=t.subcommand??t.args[0]??"show";return{tier:Ne.LOCAL,handler:`config:${e}`,params:{key:t.args[0],value:t.args[1]}}}function _5(t){let e=t.subcommand??t.args[0]??"list";return{tier:Ne.LOCAL,handler:`mcp:${e}`,params:{name:t.args[0],args:t.args.slice(1)}}}function m5(t){let e=t.subcommand??t.args[0]??"list";return{tier:Ne.LOCAL,handler:`prompt:${e}`,params:{name:t.args[0],args:t.args.slice(1)}}}function f5(t){let e=t.subcommand??t.args[0];return{tier:Ne.LOCAL,handler:e?`stats:${e}`:"stats",params:{}}}function g5(t){let e=t.subcommand??t.args[0]??"list";return{tier:Ne.LOCAL,handler:`history:${e}`,params:{query:t.args[0],id:t.args[0]}}}function h5(t){let e=[];t.subcommand&&e.push(t.subcommand);let r=t.args.filter(s=>!s.startsWith("-"));e.push(...r);let n=e.join(" ");return{tier:Ne.SERVER,handler:"run",params:{operation:n}}}var ks=dt(iu(),1);import*as At from"fs";import*as ou from"path";import*as jb from"os";var Cf={llm:{provider:"anthropic",model:"claude-sonnet-4-20250514",temperature:.7,max_tokens:4e3},api:{url:"http://localhost:26169"},streaming:{enabled:!0,buffer_size:10},output_modes:{default:"standard"}},au={configDir:".aii",configFile:"config.yaml",secretsFile:"secrets.yaml",mcpFile:"mcp.json"};var Zn=class t extends Error{code;suggestions;constructor(e,r,n=[]){super(e),this.name="AiiError",this.code=r,this.suggestions=n,Object.setPrototypeOf(this,t.prototype)}},ao=class t extends Zn{constructor(e,r){super(`Cannot connect to Aii Server at ${e}:${r}`,"CONNECTION_ERROR",[`Check if Aii Server is running: curl ${e}:${r}/api/status`,"Start the Aii Server (separate process)","Verify host in config: aii config show",`Try a different host: aii "hello" --host ${e}:${r}`]),this.name="ConnectionError",Object.setPrototypeOf(this,t.prototype)}},kt=class t extends Zn{constructor(e,r){super(`Configuration error: ${e}`,"CONFIG_ERROR",r??["Run 'aii config init' to complete setup"]),this.name="ConfigError",Object.setPrototypeOf(this,t.prototype)}},oo=class t extends Zn{constructor(e,r){super(`Operation timed out: ${e} (${r}ms)`,"TIMEOUT_ERROR",["Try again","Check network connectivity","The server might be overloaded"]),this.name="TimeoutError",Object.setPrototypeOf(this,t.prototype)}},lo=class t extends Zn{constructor(e){super(e,"WEBSOCKET_ERROR",["Check if Aii Server is running","Verify the server URL in config","Check network connectivity"]),this.name="WebSocketError",Object.setPrototypeOf(this,t.prototype)}},co=class t extends Zn{constructor(e,r){super(r,e,["Check server logs for more details","Try again with a different query"]),this.name="ServerError",Object.setPrototypeOf(this,t.prototype)}},ht=class t extends Zn{constructor(e="Missing or invalid API key"){super(`Authentication error: ${e}`,"AUTH_ERROR",["Run 'aii config init' to set up your API key","Check that your API key is valid","Verify the API key in ~/.aii/secrets.yaml"]),this.name="AuthError",Object.setPrototypeOf(this,t.prototype)}};var Af=class{configDir;configPath;secretsPath;config=null;secrets=null;constructor(e){this.configDir=e??ou.join(jb.homedir(),au.configDir),this.configPath=ou.join(this.configDir,au.configFile),this.secretsPath=ou.join(this.configDir,au.secretsFile)}getConfigDir(){return this.configDir}configExists(){return At.existsSync(this.configPath)}async load(){if(this.config)return this.config;let e={...Cf};if(At.existsSync(this.configPath))try{let r=At.readFileSync(this.configPath,"utf-8"),n=ks.parse(r);e=this.mergeConfig(Cf,n)}catch{throw new kt(`Failed to parse config file: ${this.configPath}`,["Check if the YAML syntax is valid","Try running: aii config init"])}return await this.loadSecrets(),e=this.applyEnvOverrides(e),this.config=e,e}async loadSecrets(){if(this.secrets)return this.secrets;let e={};if(At.existsSync(this.secretsPath))try{let r=At.readFileSync(this.secretsPath,"utf-8");e=ks.parse(r)}catch{}return this.secrets=e,e}mergeConfig(e,r){let n={...e};return r.llm&&(n.llm={...e.llm,...r.llm}),r.api&&(n.api={...e.api,...r.api},n.api.url&&!n.api.url.startsWith("http://")&&!n.api.url.startsWith("https://")&&(n.api.url=`http://${n.api.url}`)),r.streaming&&(n.streaming={...e.streaming,...r.streaming}),r.output_modes&&(n.output_modes={...e.output_modes,...r.output_modes}),r.mcp&&(n.mcp=r.mcp),r.web_search&&(n.web_search=r.web_search),n}applyEnvOverrides(e){let r={...e};return process.env.AII_LLM_PROVIDER&&(r.llm.provider=process.env.AII_LLM_PROVIDER),process.env.AII_MODEL&&(r.llm.model=process.env.AII_MODEL),process.env.AII_API_URL&&(r.api.url=process.env.AII_API_URL),r}getServerApiKey(){let e=this.config?.api.keys;return e&&e.length>0?e[0]:this.config?.api.key?this.config.api.key:process.env.AII_API_KEY}getApiKey(e){let r=e??this.config?.llm.provider??"anthropic";if(this.secrets){let a=this.secrets[`${r}_api_key`];if(a)return a;let o=this.secrets.api_keys?.[r];if(o)return o}let n={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY",gemini:"GEMINI_API_KEY",deepseek:"DEEPSEEK_API_KEY",moonshot:"MOONSHOT_API_KEY",zai:"ZAI_API_KEY"},s=process.env[n[r]];if(s)return s;let i=process.env[`AII_${n[r]}`];if(i)return i}get(e){if(!this.config)return;let r=e.split("."),n=this.config;for(let s of r){if(n==null)return;n=n[s]}return n}async set(e,r){this.config||await this.load();let n=r;e==="api.url"&&typeof r=="string"&&!r.startsWith("http://")&&!r.startsWith("https://")&&(n=`http://${r}`);let s=e.split("."),i=this.config;for(let a=0;a<s.length-1;a++){let o=s[a];i[o]===void 0&&(i[o]={}),i=i[o]}i[s[s.length-1]]=n,await this.save()}async save(){if(!this.config)throw new kt("No config loaded to save");At.existsSync(this.configDir)||At.mkdirSync(this.configDir,{recursive:!0,mode:448});let e=ks.stringify(this.config);At.writeFileSync(this.configPath,e,{encoding:"utf-8",mode:384})}loadSecretsSync(){if(this.secrets)return;let e={};if(At.existsSync(this.secretsPath))try{let r=At.readFileSync(this.secretsPath,"utf-8");e=ks.parse(r)}catch{}this.secrets=e}getSecret(e){this.secrets||this.loadSecretsSync();let r=this.secrets?.[e];return typeof r=="string"?r:void 0}async setSecret(e,r){At.existsSync(this.configDir)||At.mkdirSync(this.configDir,{recursive:!0,mode:448}),this.secrets||await this.loadSecrets(),this.secrets=this.secrets||{},this.secrets[e]=r;let n=ks.stringify(this.secrets);At.writeFileSync(this.secretsPath,n,{encoding:"utf-8",mode:384})}getConfig(){if(!this.config)throw new kt("Config not loaded. Call load() first.");return this.config}validate(){let e=[];return this.config?(this.config.llm.provider||e.push("Missing LLM provider"),this.config.llm.model||e.push("Missing LLM model"),this.getApiKey()||e.push(`Missing API key for provider: ${this.config.llm.provider}`),this.config.api.url||e.push("Missing API URL"),{valid:e.length===0,issues:e}):(e.push("Configuration not loaded"),{valid:!1,issues:e})}},Df=null;function er(){return Df||(Df=new Af),Df}Le();import{createInterface as iJ}from"readline";import{spawn as aJ}from"child_process";var D6=dt(s0(),1),A6=dt(Gf(),1),N6=dt(Hf(),1),m0=dt(Tu(),1),I6=dt(_0(),1);var hn=m0.default;wt();var L6={timeout:12e4,retries:3,retryDelay:1e3},hr=class{options;ws=null;activityTimeout=null;mcpExecutor=null;constructor(e){this.options={...L6,...e}}async initializeMCP(){if(!this.mcpExecutor){let{ClientMCPExecutor:e}=await Promise.resolve().then(()=>(Au(),Du));this.mcpExecutor=new e,await this.mcpExecutor.initialize(),z(`MCP executor initialized with ${this.mcpExecutor.getConnectionCount()} connections`)}}async executeRequest(e,r){let n=null;for(let s=0;s<this.options.retries;s++)try{return await this.executeWithRetry(e,r)}catch(i){if(n=i instanceof Error?i:new Error(String(i)),z(`Attempt ${s+1} failed: ${n.message}`),n instanceof co||n.message.includes("Authentication"))throw n;if(s<this.options.retries-1){let a=this.options.retryDelay*Math.pow(2,s);z(`Retrying in ${a}ms...`),await this.sleep(a)}}throw n??new lo("Max retries exceeded")}async executeWithRetry(e,r){return new Promise((n,s)=>{let i=this.buildWebSocketUrl();z(`Connecting to ${i}`);try{this.ws=new hn(i)}catch{let l=new URL(this.options.url);s(new ao(l.hostname||"localhost",l.port||"26169"));return}let a=!1,o=null;this.resetActivityTimeout(()=>{a||(this.cleanup(),s(new oo("WebSocket activity",this.options.timeout)))}),this.ws.on("open",()=>{z("WebSocket connected, sending request"),this.ws?.send(JSON.stringify(e))}),this.ws.on("message",l=>{this.resetActivityTimeout(()=>{a||(this.cleanup(),s(new oo("WebSocket activity",this.options.timeout)))});try{let c=JSON.parse(l.toString());this.handleMessage(c,r,u=>{a=!0,o=u,this.cleanup(),n(u)},u=>{a=!0,this.cleanup(),s(u)})}catch(c){let u=l?String(l):"<undefined>";z(`Failed to parse message: ${u}`),a||(a=!0,this.cleanup(),s(new Error(`Failed to parse server message: ${c.message}`)))}}),this.ws.on("error",l=>{if(z(`WebSocket error: ${l.message}`),!a){a=!0,this.cleanup();let c=new URL(this.options.url);s(new ao(c.hostname||"localhost",c.port||"26169"))}}),this.ws.on("close",(l,c)=>{z(`WebSocket closed: ${l} ${c.toString()}`),a||(a=!0,this.cleanup(),o?n(o):s(new lo(`Connection closed unexpectedly: ${l}`)))})})}handleMessage(e,r,n,s){switch(e.type){case"token":{let i=e;r?.onToken?.(i.data);break}case"complete":{let i=e,a=i.metadata||{},o=this.convertServerMetadata(i),l={result:i.result,metadata:o,clientSideExecution:a.client_side_execution===!0,userRequest:a.user_request};r?.onComplete?.(l),n(l);break}case"error":{let i=e,a=new co(i.code,i.message);r?.onError?.(a),s(a);break}case"mcp_query_tools":{z("Received mcp_query_tools request"),this.handleMCPQueryTools(e);break}case"mcp_tool_request":{z("Received mcp_tool_request"),this.handleMCPToolRequest(e);break}default:z(`Unknown message type: ${e.type}`)}}convertServerMetadata(e){let r=e.metadata||{},n,s;r.tokens?(n=r.tokens.input,s=r.tokens.output):(n=r.input_tokens,s=r.output_tokens);let i=r.cost??r.cost_usd,a=r.execution_time??r.total_time;return{function_name:e.function_name,tokens_in:n,tokens_out:s,cost:typeof i=="number"?i:void 0,model:typeof r.model=="string"?r.model:void 0,execution_time:typeof a=="number"?a:void 0}}buildWebSocketUrl(){let e=new URL(this.options.url);return`${e.protocol==="https:"?"wss:":"ws:"}//${e.host}/ws/execute`}async handleMCPQueryTools(e){try{if(!this.mcpExecutor){let{ClientMCPExecutor:n}=await Promise.resolve().then(()=>(Au(),Du));this.mcpExecutor=new n,await this.mcpExecutor.initialize()}let r=await this.mcpExecutor.handleQueryTools(e);this.ws?.send(JSON.stringify(r))}catch(r){let n=r instanceof Error?r.message:String(r),s=r instanceof Error?r.stack:void 0;z(`Error handling mcp_query_tools: ${n}${s?`
419
419
  ${s}`:""}`),this.ws?.send(JSON.stringify({type:"mcp_query_tools_response",request_id:e.request_id||"unknown",success:!1,error:n,tools:[]}))}}async handleMCPToolRequest(e){try{if(!this.mcpExecutor){let{ClientMCPExecutor:n}=await Promise.resolve().then(()=>(Au(),Du));this.mcpExecutor=new n,await this.mcpExecutor.initialize()}let r=await this.mcpExecutor.handleToolExecution(e);this.ws?.send(JSON.stringify(r))}catch(r){z(`Error handling mcp_tool_request: ${r}`),this.ws?.send(JSON.stringify({type:"mcp_tool_response",request_id:e.request_id||"unknown",success:!1,error:String(r)}))}}resetActivityTimeout(e){this.activityTimeout&&clearTimeout(this.activityTimeout),this.activityTimeout=setTimeout(e,this.options.timeout)}cleanup(){if(this.activityTimeout&&(clearTimeout(this.activityTimeout),this.activityTimeout=null),this.ws){try{this.ws.close()}catch(e){z(`WebSocket close error: ${e instanceof Error?e.message:String(e)}`)}this.ws=null}}async shutdownMCP(){this.mcpExecutor&&(await this.mcpExecutor.shutdown(),this.mcpExecutor=null)}disconnect(){this.cleanup()}sleep(e){return new Promise(r=>setTimeout(r,e))}};Le();import xu from"node:process";import y0 from"node:process";import Ou from"node:process";var P6=(t,e,r,n)=>{if(r==="length"||r==="prototype"||r==="arguments"||r==="caller")return;let s=Object.getOwnPropertyDescriptor(t,r),i=Object.getOwnPropertyDescriptor(e,r);!F6(s,i)&&n||Object.defineProperty(t,r,i)},F6=function(t,e){return t===void 0||t.configurable||t.writable===e.writable&&t.enumerable===e.enumerable&&t.configurable===e.configurable&&(t.writable||t.value===e.value)},U6=(t,e)=>{let r=Object.getPrototypeOf(e);r!==Object.getPrototypeOf(t)&&Object.setPrototypeOf(t,r)},B6=(t,e)=>`/* Wrapped ${t}*/
420
420
  ${e}`,G6=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),$6=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),z6=(t,e,r)=>{let n=r===""?"":`with ${r.trim()}() `,s=B6.bind(null,n,e.toString());Object.defineProperty(s,"name",$6);let{writable:i,enumerable:a,configurable:o}=G6;Object.defineProperty(t,"toString",{value:s,writable:i,enumerable:a,configurable:o})};function tg(t,e,{ignoreNonConfigurable:r=!1}={}){let{name:n}=t;for(let s of Reflect.ownKeys(e))P6(t,e,s,r);return U6(t,e),z6(t,e,n),t}var Nu=new WeakMap,f0=(t,e={})=>{if(typeof t!="function")throw new TypeError("Expected a function");let r,n=0,s=t.displayName||t.name||"<anonymous>",i=function(...a){if(Nu.set(i,++n),n===1)r=t.apply(this,a),t=void 0;else if(e.throw===!0)throw new Error(`Function \`${s}\` can only be called once`);return r};return tg(i,t),Nu.set(i,n),i};f0.callCount=t=>{if(!Nu.has(t))throw new Error(`The given function \`${t.name}\` is not wrapped by the \`onetime\` package`);return Nu.get(t)};var g0=f0;var Fs=[];Fs.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Fs.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Fs.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var Iu=t=>!!t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function",rg=Symbol.for("signal-exit emitter"),ng=globalThis,H6=Object.defineProperty.bind(Object),sg=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(ng[rg])return ng[rg];H6(ng,rg,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,r){this.listeners[e].push(r)}removeListener(e,r){let n=this.listeners[e],s=n.indexOf(r);s!==-1&&(s===0&&n.length===1?n.length=0:n.splice(s,1))}emit(e,r,n){if(this.emitted[e])return!1;this.emitted[e]=!0;let s=!1;for(let i of this.listeners[e])s=i(r,n)===!0||s;return e==="exit"&&(s=this.emit("afterExit",r,n)||s),s}},Ru=class{},Y6=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),ig=class extends Ru{onExit(){return()=>{}}load(){}unload(){}},ag=class extends Ru{#a=og.platform==="win32"?"SIGINT":"SIGHUP";#r=new sg;#e;#s;#p;#t={};#i=!1;constructor(e){super(),this.#e=e,this.#t={};for(let r of Fs)this.#t[r]=()=>{let n=this.#e.listeners(r),{count:s}=this.#r,i=e;if(typeof i.__signal_exit_emitter__=="object"&&typeof i.__signal_exit_emitter__.count=="number"&&(s+=i.__signal_exit_emitter__.count),n.length===s){this.unload();let a=this.#r.emit("exit",null,r),o=r==="SIGHUP"?this.#a:r;a||e.kill(e.pid,o)}};this.#p=e.reallyExit,this.#s=e.emit}onExit(e,r){if(!Iu(this.#e))return()=>{};this.#i===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#r.on(n,e),()=>{this.#r.removeListener(n,e),this.#r.listeners.exit.length===0&&this.#r.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#i){this.#i=!0,this.#r.count+=1;for(let e of Fs)try{let r=this.#t[e];r&&this.#e.on(e,r)}catch{}this.#e.emit=(e,...r)=>this.#_(e,...r),this.#e.reallyExit=e=>this.#n(e)}}unload(){this.#i&&(this.#i=!1,Fs.forEach(e=>{let r=this.#t[e];if(!r)throw new Error("Listener not defined for signal: "+e);try{this.#e.removeListener(e,r)}catch{}}),this.#e.emit=this.#s,this.#e.reallyExit=this.#p,this.#r.count-=1)}#n(e){return Iu(this.#e)?(this.#e.exitCode=e||0,this.#r.emit("exit",this.#e.exitCode,null),this.#p.call(this.#e,this.#e.exitCode)):0}#_(e,...r){let n=this.#s;if(e==="exit"&&Iu(this.#e)){typeof r[0]=="number"&&(this.#e.exitCode=r[0]);let s=n.call(this.#e,e,...r);return this.#r.emit("exit",this.#e.exitCode,null),s}else return n.call(this.#e,e,...r)}},og=globalThis.process,{onExit:h0,load:pae,unload:_ae}=Y6(Iu(og)?new ag(og):new ig);var E0=Ou.stderr.isTTY?Ou.stderr:Ou.stdout.isTTY?Ou.stdout:void 0,q6=E0?g0(()=>{h0(()=>{E0.write("\x1B[?25h")},{alwaysLast:!0})}):()=>{},S0=q6;var ku=!1,vi={};vi.show=(t=y0.stderr)=>{t.isTTY&&(ku=!1,t.write("\x1B[?25h"))};vi.hide=(t=y0.stderr)=>{t.isTTY&&(S0(),ku=!0,t.write("\x1B[?25l"))};vi.toggle=(t,e)=>{t!==void 0&&(ku=t),ku?vi.show(e):vi.hide(e)};var lg=vi;var Do=dt(cg(),1);Le();import wr from"node:process";function ug(){return wr.platform!=="win32"?wr.env.TERM!=="linux":!!wr.env.CI||!!wr.env.WT_SESSION||!!wr.env.TERMINUS_SUBLIME||wr.env.ConEmuTask==="{cmd::Cmder}"||wr.env.TERM_PROGRAM==="Terminus-Sublime"||wr.env.TERM_PROGRAM==="vscode"||wr.env.TERM==="xterm-256color"||wr.env.TERM==="alacritty"||wr.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var V6={info:_.blue("\u2139"),success:_.green("\u2714"),warning:_.yellow("\u26A0"),error:_.red("\u2716")},W6={info:_.blue("i"),success:_.green("\u221A"),warning:_.yellow("\u203C"),error:_.red("\xD7")},j6=ug()?V6:W6,Co=j6;vu();var Q6=Us();function dg(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(Q6,"")}vu();var X6=Us();function pg(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(X6,"")}function D0(t){return t===161||t===164||t===167||t===168||t===170||t===173||t===174||t>=176&&t<=180||t>=182&&t<=186||t>=188&&t<=191||t===198||t===208||t===215||t===216||t>=222&&t<=225||t===230||t>=232&&t<=234||t===236||t===237||t===240||t===242||t===243||t>=247&&t<=250||t===252||t===254||t===257||t===273||t===275||t===283||t===294||t===295||t===299||t>=305&&t<=307||t===312||t>=319&&t<=322||t===324||t>=328&&t<=331||t===333||t===338||t===339||t===358||t===359||t===363||t===462||t===464||t===466||t===468||t===470||t===472||t===474||t===476||t===593||t===609||t===708||t===711||t>=713&&t<=715||t===717||t===720||t>=728&&t<=731||t===733||t===735||t>=768&&t<=879||t>=913&&t<=929||t>=931&&t<=937||t>=945&&t<=961||t>=963&&t<=969||t===1025||t>=1040&&t<=1103||t===1105||t===8208||t>=8211&&t<=8214||t===8216||t===8217||t===8220||t===8221||t>=8224&&t<=8226||t>=8228&&t<=8231||t===8240||t===8242||t===8243||t===8245||t===8251||t===8254||t===8308||t===8319||t>=8321&&t<=8324||t===8364||t===8451||t===8453||t===8457||t===8467||t===8470||t===8481||t===8482||t===8486||t===8491||t===8531||t===8532||t>=8539&&t<=8542||t>=8544&&t<=8555||t>=8560&&t<=8569||t===8585||t>=8592&&t<=8601||t===8632||t===8633||t===8658||t===8660||t===8679||t===8704||t===8706||t===8707||t===8711||t===8712||t===8715||t===8719||t===8721||t===8725||t===8730||t>=8733&&t<=8736||t===8739||t===8741||t>=8743&&t<=8748||t===8750||t>=8756&&t<=8759||t===8764||t===8765||t===8776||t===8780||t===8786||t===8800||t===8801||t>=8804&&t<=8807||t===8810||t===8811||t===8814||t===8815||t===8834||t===8835||t===8838||t===8839||t===8853||t===8857||t===8869||t===8895||t===8978||t>=9312&&t<=9449||t>=9451&&t<=9547||t>=9552&&t<=9587||t>=9600&&t<=9615||t>=9618&&t<=9621||t===9632||t===9633||t>=9635&&t<=9641||t===9650||t===9651||t===9654||t===9655||t===9660||t===9661||t===9664||t===9665||t>=9670&&t<=9672||t===9675||t>=9678&&t<=9681||t>=9698&&t<=9701||t===9711||t===9733||t===9734||t===9737||t===9742||t===9743||t===9756||t===9758||t===9792||t===9794||t===9824||t===9825||t>=9827&&t<=9829||t>=9831&&t<=9834||t===9836||t===9837||t===9839||t===9886||t===9887||t===9919||t>=9926&&t<=9933||t>=9935&&t<=9939||t>=9941&&t<=9953||t===9955||t===9960||t===9961||t>=9963&&t<=9969||t===9972||t>=9974&&t<=9977||t===9979||t===9980||t===9982||t===9983||t===10045||t>=10102&&t<=10111||t>=11094&&t<=11097||t>=12872&&t<=12879||t>=57344&&t<=63743||t>=65024&&t<=65039||t===65533||t>=127232&&t<=127242||t>=127248&&t<=127277||t>=127280&&t<=127337||t>=127344&&t<=127373||t===127375||t===127376||t>=127387&&t<=127404||t>=917760&&t<=917999||t>=983040&&t<=1048573||t>=1048576&&t<=1114109}function A0(t){return t===12288||t>=65281&&t<=65376||t>=65504&&t<=65510}function N0(t){return t>=4352&&t<=4447||t===8986||t===8987||t===9001||t===9002||t>=9193&&t<=9196||t===9200||t===9203||t===9725||t===9726||t===9748||t===9749||t>=9776&&t<=9783||t>=9800&&t<=9811||t===9855||t>=9866&&t<=9871||t===9875||t===9889||t===9898||t===9899||t===9917||t===9918||t===9924||t===9925||t===9934||t===9940||t===9962||t===9970||t===9971||t===9973||t===9978||t===9981||t===9989||t===9994||t===9995||t===10024||t===10060||t===10062||t>=10067&&t<=10069||t===10071||t>=10133&&t<=10135||t===10160||t===10175||t===11035||t===11036||t===11088||t===11093||t>=11904&&t<=11929||t>=11931&&t<=12019||t>=12032&&t<=12245||t>=12272&&t<=12287||t>=12289&&t<=12350||t>=12353&&t<=12438||t>=12441&&t<=12543||t>=12549&&t<=12591||t>=12593&&t<=12686||t>=12688&&t<=12773||t>=12783&&t<=12830||t>=12832&&t<=12871||t>=12880&&t<=42124||t>=42128&&t<=42182||t>=43360&&t<=43388||t>=44032&&t<=55203||t>=63744&&t<=64255||t>=65040&&t<=65049||t>=65072&&t<=65106||t>=65108&&t<=65126||t>=65128&&t<=65131||t>=94176&&t<=94180||t>=94192&&t<=94198||t>=94208&&t<=101589||t>=101631&&t<=101662||t>=101760&&t<=101874||t>=110576&&t<=110579||t>=110581&&t<=110587||t===110589||t===110590||t>=110592&&t<=110882||t===110898||t>=110928&&t<=110930||t===110933||t>=110948&&t<=110951||t>=110960&&t<=111355||t>=119552&&t<=119638||t>=119648&&t<=119670||t===126980||t===127183||t===127374||t>=127377&&t<=127386||t>=127488&&t<=127490||t>=127504&&t<=127547||t>=127552&&t<=127560||t===127568||t===127569||t>=127584&&t<=127589||t>=127744&&t<=127776||t>=127789&&t<=127797||t>=127799&&t<=127868||t>=127870&&t<=127891||t>=127904&&t<=127946||t>=127951&&t<=127955||t>=127968&&t<=127984||t===127988||t>=127992&&t<=128062||t===128064||t>=128066&&t<=128252||t>=128255&&t<=128317||t>=128331&&t<=128334||t>=128336&&t<=128359||t===128378||t===128405||t===128406||t===128420||t>=128507&&t<=128591||t>=128640&&t<=128709||t===128716||t>=128720&&t<=128722||t>=128725&&t<=128728||t>=128732&&t<=128735||t===128747||t===128748||t>=128756&&t<=128764||t>=128992&&t<=129003||t===129008||t>=129292&&t<=129338||t>=129340&&t<=129349||t>=129351&&t<=129535||t>=129648&&t<=129660||t>=129664&&t<=129674||t>=129678&&t<=129734||t===129736||t>=129741&&t<=129756||t>=129759&&t<=129770||t>=129775&&t<=129784||t>=131072&&t<=196605||t>=196608&&t<=262141}function Z6(t){if(!Number.isSafeInteger(t))throw new TypeError(`Expected a code point, got \`${typeof t}\`.`)}function I0(t,{ambiguousAsWide:e=!1}={}){return Z6(t),A0(t)||N0(t)||e&&D0(t)?2:1}var k0=dt(O0(),1),J6=new Intl.Segmenter,eG=new RegExp("^\\p{Default_Ignorable_Code_Point}$","u");function _g(t,e={}){if(typeof t!="string"||t.length===0)return 0;let{ambiguousIsNarrow:r=!0,countAnsiEscapeCodes:n=!1}=e;if(n||(t=pg(t)),t.length===0)return 0;let s=0,i={ambiguousAsWide:!r};for(let{segment:a}of J6.segment(t)){let o=a.codePointAt(0);if(!(o<=31||o>=127&&o<=159)&&!(o>=8203&&o<=8207||o===65279)&&!(o>=768&&o<=879||o>=6832&&o<=6911||o>=7616&&o<=7679||o>=8400&&o<=8447||o>=65056&&o<=65071)&&!(o>=55296&&o<=57343)&&!(o>=65024&&o<=65039)&&!eG.test(a)){if((0,k0.default)().test(a)){s+=2;continue}s+=I0(o,i)}}return s}function mg({stream:t=process.stdout}={}){return!!(t&&t.isTTY&&process.env.TERM!=="dumb"&&!("CI"in process.env))}import w0 from"node:process";function fg(){let{env:t}=w0,{TERM:e,TERM_PROGRAM:r}=t;return w0.platform!=="win32"?e!=="linux":!!t.WT_SESSION||!!t.TERMINUS_SUBLIME||t.ConEmuTask==="{cmd::Cmder}"||r==="Terminus-Sublime"||r==="vscode"||e==="xterm-256color"||e==="alacritty"||e==="rxvt-unicode"||e==="rxvt-unicode-256color"||t.TERMINAL_EMULATOR==="JetBrains-JediTerm"}import zr from"node:process";var tG=3,gg=class{#a=0;start(){this.#a++,this.#a===1&&this.#r()}stop(){if(this.#a<=0)throw new Error("`stop` called more times than `start`");this.#a--,this.#a===0&&this.#e()}#r(){zr.platform==="win32"||!zr.stdin.isTTY||(zr.stdin.setRawMode(!0),zr.stdin.on("data",this.#s),zr.stdin.resume())}#e(){zr.stdin.isTTY&&(zr.stdin.off("data",this.#s),zr.stdin.pause(),zr.stdin.setRawMode(!1))}#s(e){e[0]===tG&&zr.emit("SIGINT")}},rG=new gg,hg=rG;var nG=dt(cg(),1),Eg=class{#a=0;#r=!1;#e=0;#s=-1;#p=0;#t;#i;#n;#_;#f;#c;#u;#d;#g;#o;#l;color;constructor(e){typeof e=="string"&&(e={text:e}),this.#t={color:"cyan",stream:xu.stderr,discardStdin:!0,hideCursor:!0,...e},this.color=this.#t.color,this.spinner=this.#t.spinner,this.#f=this.#t.interval,this.#n=this.#t.stream,this.#c=typeof this.#t.isEnabled=="boolean"?this.#t.isEnabled:mg({stream:this.#n}),this.#u=typeof this.#t.isSilent=="boolean"?this.#t.isSilent:!1,this.text=this.#t.text,this.prefixText=this.#t.prefixText,this.suffixText=this.#t.suffixText,this.indent=this.#t.indent,xu.env.NODE_ENV==="test"&&(this._stream=this.#n,this._isEnabled=this.#c,Object.defineProperty(this,"_linesToClear",{get(){return this.#a},set(r){this.#a=r}}),Object.defineProperty(this,"_frameIndex",{get(){return this.#s}}),Object.defineProperty(this,"_lineCount",{get(){return this.#e}}))}get indent(){return this.#d}set indent(e=0){if(!(e>=0&&Number.isInteger(e)))throw new Error("The `indent` option must be an integer from 0 and up");this.#d=e,this.#m()}get interval(){return this.#f??this.#i.interval??100}get spinner(){return this.#i}set spinner(e){if(this.#s=-1,this.#f=void 0,typeof e=="object"){if(e.frames===void 0)throw new Error("The given spinner must have a `frames` property");this.#i=e}else if(!fg())this.#i=Do.default.line;else if(e===void 0)this.#i=Do.default.dots;else if(e!=="default"&&Do.default[e])this.#i=Do.default[e];else throw new Error(`There is no built-in spinner named '${e}'. See https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json for a full list.`)}get text(){return this.#g}set text(e=""){this.#g=e,this.#m()}get prefixText(){return this.#o}set prefixText(e=""){this.#o=e,this.#m()}get suffixText(){return this.#l}set suffixText(e=""){this.#l=e,this.#m()}get isSpinning(){return this.#_!==void 0}#h(e=this.#o,r=" "){return typeof e=="string"&&e!==""?e+r:typeof e=="function"?e()+r:""}#E(e=this.#l,r=" "){return typeof e=="string"&&e!==""?r+e:typeof e=="function"?r+e():""}#m(){let e=this.#n.columns??80,r=this.#h(this.#o,"-"),n=this.#E(this.#l,"-"),s=" ".repeat(this.#d)+r+"--"+this.#g+"--"+n;this.#e=0;for(let i of dg(s).split(`
421
421
  `))this.#e+=Math.max(1,Math.ceil(_g(i,{countAnsiEscapeCodes:!0})/e))}get isEnabled(){return this.#c&&!this.#u}set isEnabled(e){if(typeof e!="boolean")throw new TypeError("The `isEnabled` option must be a boolean");this.#c=e}get isSilent(){return this.#u}set isSilent(e){if(typeof e!="boolean")throw new TypeError("The `isSilent` option must be a boolean");this.#u=e}frame(){let e=Date.now();(this.#s===-1||e-this.#p>=this.interval)&&(this.#s=++this.#s%this.#i.frames.length,this.#p=e);let{frames:r}=this.#i,n=r[this.#s];this.color&&(n=_[this.color](n));let s=typeof this.#o=="string"&&this.#o!==""?this.#o+" ":"",i=typeof this.text=="string"?" "+this.text:"",a=typeof this.#l=="string"&&this.#l!==""?" "+this.#l:"";return s+n+i+a}clear(){if(!this.#c||!this.#n.isTTY)return this;this.#n.cursorTo(0);for(let e=0;e<this.#a;e++)e>0&&this.#n.moveCursor(0,-1),this.#n.clearLine(1);return(this.#d||this.lastIndent!==this.#d)&&this.#n.cursorTo(this.#d),this.lastIndent=this.#d,this.#a=0,this}render(){return this.#u?this:(this.clear(),this.#n.write(this.frame()),this.#a=this.#e,this)}start(e){return e&&(this.text=e),this.#u?this:this.#c?this.isSpinning?this:(this.#t.hideCursor&&lg.hide(this.#n),this.#t.discardStdin&&xu.stdin.isTTY&&(this.#r=!0,hg.start()),this.render(),this.#_=setInterval(this.render.bind(this),this.interval),this):(this.text&&this.#n.write(`- ${this.text}
@@ -425,7 +425,7 @@ ${e}`,G6=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),$6=Objec
425
425
  `)}formatExecutionSummary(e){let r=[];if(e.function_name&&r.push(`${this.emoji("\u{1F527} ")}${e.function_name}`),e.model&&r.push(`${this.emoji("\u{1F916} ")}${e.model}`),e.tokens_in!==void 0||e.tokens_out!==void 0){let s=e.tokens_in??0,i=e.tokens_out??0;r.push(`${this.emoji("\u{1F522} ")}${s}\u2197 ${i}\u2198`)}if(e.cost!==void 0&&r.push(`${this.emoji("\u{1F4B0} ")}$${e.cost.toFixed(6)}`),e.execution_time!==void 0&&r.push(`${this.emoji("\u26A1 ")}${e.execution_time.toFixed(1)}s`),r.length===0)return"";let n=r.join(" \u2022 ");return this.color(n,_.dim)}formatError(e){let r=[];return r.push(this.color(`${this.emoji("\u274C ")}${e.message}`,_.red)),e.suggestions&&e.suggestions.length>0&&(r.push(""),r.push(this.color(`${this.emoji("\u{1F4A1} ")}Solutions:`,_.yellow)),e.suggestions.forEach((n,s)=>{r.push(this.color(` ${s+1}. ${n}`,_.gray))})),r.join(`
426
426
  `)}formatConfig(e){let r=[];r.push(this.color(`${this.emoji("\u{1F4CB} ")}Current AII Configuration:`,_.cyan)),r.push(`- Config file: ${e.configFile}`),r.push(`- Storage path: ${e.storagePath}`),e.apiUrl&&r.push(`- Aii Server: ${e.apiUrl}`);let n=e.hasApiKey?this.color("\u2713",_.green):this.color("\u2717",_.red);if(r.push(`- LLM provider: ${e.provider} (${e.model}) - ${n}`),e.webSearch){let s=e.webSearch.enabled?this.color("\u2713",_.green):this.color("\u2717",_.red);r.push(`- Web search: ${e.webSearch.provider??"none"} - ${s}`)}return e.issues&&e.issues.length>0&&r.push(`- Configuration issues: ${e.issues.length}`),r.join(`
427
427
  `)}formatHealthCheck(e){let r=[];r.push(this.color(`${this.emoji("\u{1F3E5} ")}AII Health Check`,_.cyan)),r.push("");for(let i of e){let a,o;switch(i.status){case"ok":a="\u2713",o=_.green;break;case"warn":a="\u26A0",o=_.yellow;break;case"error":a="\u2717",o=_.red;break}let l=this.color(a,o),c=this.color(i.message,o);r.push(` ${l} ${i.name.padEnd(20)} ${c}`)}let n=e.some(i=>i.status==="error"),s=e.some(i=>i.status==="warn");return r.push(""),n?r.push(this.color(`${this.emoji("\u274C ")}Some checks failed!`,_.red)):s?r.push(this.color(`${this.emoji("\u26A0\uFE0F ")}All checks passed with warnings`,_.yellow)):r.push(this.color(`${this.emoji("\u2705 ")}All checks passed!`,_.green)),r.join(`
428
- `)}};function Qt(t={}){return new o1(t)}var qZ=[{provider:"anthropic",patterns:[/^claude-/,/^claude$/i]},{provider:"openai",patterns:[/^gpt-/,/^o1-/,/^o3-/,/^chatgpt-/,/^text-davinci/]},{provider:"gemini",patterns:[/^gemini-/,/^gemini$/i]},{provider:"deepseek",patterns:[/^deepseek-/,/^deepseek$/i]},{provider:"moonshot",patterns:[/^kimi-/,/^moonshot-/,/^moonshot$/i]},{provider:"zai",patterns:[/^glm-/,/^glm$/i,/^chatglm/i]}];function KZ(t){if(!t)return;let e=t.toLowerCase();for(let{provider:r,patterns:n}of qZ)for(let s of n)if(s.test(e))return r}function Fn(t,e){return t?KZ(t)??e:e}Le();import*as f9 from"readline";import*as sr from"fs";import*as bp from"path";import*as u9 from"os";var Tp=bp.join(u9.homedir(),".aii","conversations"),l1=bp.join(Tp,"current.json");function Cp(){sr.existsSync(Tp)||sr.mkdirSync(Tp,{recursive:!0})}function VZ(){return`conv_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}function WZ(t){let r=t.trim().replace(/\s+/g," ");return r.length>50&&(r=r.substring(0,50).trim()+"..."),r}function d9(t){return bp.join(Tp,`${t}.json`)}function p9(){Cp();try{if(sr.existsSync(l1)){let t=sr.readFileSync(l1,"utf-8"),e=JSON.parse(t),r=d9(e.id);if(sr.existsSync(r)){let n=sr.readFileSync(r,"utf-8");return JSON.parse(n)}}}catch{}return _9()}function _9(){Cp();let t={id:VZ(),title:"New Conversation",messages:[],createdAt:Date.now(),updatedAt:Date.now()};return El(t),jZ(t.id),t}function El(t){if(Cp(),t.title==="New Conversation"&&t.messages.length>0){let r=t.messages.find(n=>n.role==="user");r&&(t.title=WZ(r.content))}t.updatedAt=Date.now();let e=d9(t.id);sr.writeFileSync(e,JSON.stringify(t,null,2),"utf-8")}function jZ(t){Cp(),sr.writeFileSync(l1,JSON.stringify({id:t}),"utf-8")}function m9(){return _9()}var QZ="0.7.6",c1=class{configManager;parsed;running=!1;conversation;stats;formatter;constructor(e,r){this.parsed=e,this.configManager=r,this.conversation=p9(),this.stats={startTime:Date.now(),totalRequests:0,cumulativeTokens:0,cumulativeCost:0},this.formatter=Qt({colors:!e.flags.noColors,emojis:!e.flags.noEmojis})}async start(){for(this.running=!0,this.displayWelcome();this.running;)try{let e=await this.getUserInput();if(!e.trim()||await this.handleSpecialCommands(e))continue;this.conversation.messages.push({role:"user",content:e,timestamp:Date.now()}),El(this.conversation),await this.processWithContext(e)}catch(e){if(e instanceof Error&&e.message==="EXIT")break;if(e instanceof Error&&e.message==="INTERRUPTED"){console.log(`
428
+ `)}};function Qt(t={}){return new o1(t)}var qZ=[{provider:"anthropic",patterns:[/^claude-/,/^claude$/i]},{provider:"openai",patterns:[/^gpt-/,/^o1-/,/^o3-/,/^chatgpt-/,/^text-davinci/]},{provider:"gemini",patterns:[/^gemini-/,/^gemini$/i]},{provider:"deepseek",patterns:[/^deepseek-/,/^deepseek$/i]},{provider:"moonshot",patterns:[/^kimi-/,/^moonshot-/,/^moonshot$/i]},{provider:"zai",patterns:[/^glm-/,/^glm$/i,/^chatglm/i]}];function KZ(t){if(!t)return;let e=t.toLowerCase();for(let{provider:r,patterns:n}of qZ)for(let s of n)if(s.test(e))return r}function Fn(t,e){return t?KZ(t)??e:e}Le();import*as f9 from"readline";import*as sr from"fs";import*as bp from"path";import*as u9 from"os";var Tp=bp.join(u9.homedir(),".aii","conversations"),l1=bp.join(Tp,"current.json");function Cp(){sr.existsSync(Tp)||sr.mkdirSync(Tp,{recursive:!0})}function VZ(){return`conv_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}function WZ(t){let r=t.trim().replace(/\s+/g," ");return r.length>50&&(r=r.substring(0,50).trim()+"..."),r}function d9(t){return bp.join(Tp,`${t}.json`)}function p9(){Cp();try{if(sr.existsSync(l1)){let t=sr.readFileSync(l1,"utf-8"),e=JSON.parse(t),r=d9(e.id);if(sr.existsSync(r)){let n=sr.readFileSync(r,"utf-8");return JSON.parse(n)}}}catch{}return _9()}function _9(){Cp();let t={id:VZ(),title:"New Conversation",messages:[],createdAt:Date.now(),updatedAt:Date.now()};return El(t),jZ(t.id),t}function El(t){if(Cp(),t.title==="New Conversation"&&t.messages.length>0){let r=t.messages.find(n=>n.role==="user");r&&(t.title=WZ(r.content))}t.updatedAt=Date.now();let e=d9(t.id);sr.writeFileSync(e,JSON.stringify(t,null,2),"utf-8")}function jZ(t){Cp(),sr.writeFileSync(l1,JSON.stringify({id:t}),"utf-8")}function m9(){return _9()}var QZ="0.7.7",c1=class{configManager;parsed;running=!1;conversation;stats;formatter;constructor(e,r){this.parsed=e,this.configManager=r,this.conversation=p9(),this.stats={startTime:Date.now(),totalRequests:0,cumulativeTokens:0,cumulativeCost:0},this.formatter=Qt({colors:!e.flags.noColors,emojis:!e.flags.noEmojis})}async start(){for(this.running=!0,this.displayWelcome();this.running;)try{let e=await this.getUserInput();if(!e.trim()||await this.handleSpecialCommands(e))continue;this.conversation.messages.push({role:"user",content:e,timestamp:Date.now()}),El(this.conversation),await this.processWithContext(e)}catch(e){if(e instanceof Error&&e.message==="EXIT")break;if(e instanceof Error&&e.message==="INTERRUPTED"){console.log(`
429
429
  \u26A0\uFE0F Interrupted. Type /exit to quit or continue chatting.`);continue}console.error(_.red(`
430
430
  \u274C Error: ${e instanceof Error?e.message:String(e)}`)),this.conversation.messages.length>0&&this.conversation.messages[this.conversation.messages.length-1].role==="user"&&(this.conversation.messages.pop(),El(this.conversation))}}displayWelcome(){console.log("\u{1F916} Entering interactive mode."),console.log(""),console.log("Controls:"),console.log(" \u2022 Enter - Send message"),console.log(" \u2022 End with \\ - Multi-line mode"),console.log(" \u2022 /exit - Quit chat"),console.log(" \u2022 /help - Show all commands"),console.log("")}getUserInput(){return new Promise((e,r)=>{let n=f9.createInterface({input:process.stdin,output:process.stdout}),s=[],i=!1,a=()=>{i=!0,n.close()},o=l=>{n.question(l,c=>{if(s.length===0&&c.trim().startsWith("/")){a(),e(c.trim());return}c.endsWith("\\")?(s.push(c.slice(0,-1)),o(" ")):(s.push(c),a(),e(s.join(`
431
431
  `).trim()))})};n.on("SIGINT",()=>{a(),r(new Error("INTERRUPTED"))}),n.on("close",()=>{i||r(new Error("EXIT"))}),o("> ")})}async handleSpecialCommands(e){let r=e.trim().toLowerCase();if(r.startsWith("/"))r=r.slice(1);else return!1;switch(r){case"exit":case"quit":return await this.handleExit(),!0;case"help":return this.displayHelp(),!0;case"clear":case"new":return this.clearConversation(),!0;case"history":return this.displayConversationHistory(),!0;case"stats":return this.displayStats(),!0;case"version":return this.displayVersion(),!0;default:return console.log(_.yellow(`Unknown command: /${r}. Type /help for available commands.`)),console.log(""),!0}}async processWithContext(e){let r=await this.configManager.load(),n=this.configManager.validate();if(!n.valid)throw new kt(n.issues.join(", "));let i=this.configManager.getServerApiKey()||"aii_sk_7WyvfQ0PRzufJ1G66Qn8Sm4gW9Tealpo6vOWDDUeiv4",a=this.parsed.flags.model??r.llm.model,o=Fn(this.parsed.flags.model,r.llm.provider),l=this.configManager.getApiKey(o);if(!l)throw new ht(`Missing API key for provider: ${o}`);this.stats.totalRequests++;let c=Hr(!this.parsed.flags.noAnimations);c.start("");let u=en({spinner:c,enabled:!this.parsed.flags.noStreaming}),d=this.conversation.messages.slice(-21,-1).map(y=>({role:y.role,content:y.content})),p={api_key:i,system_prompt:null,user_prompt:e,user_message:e,output_mode:"CLEAN",streaming:!this.parsed.flags.noStreaming,model:a,llm_provider:o,llm_api_key:l,provider_api_key:l,client_type:"cli",offline:this.parsed.flags.offline,conversation_history:d.length>0?d:void 0},h=this.parsed.flags.host?`http://${this.parsed.flags.host}`:r.api.url,m=new hr({url:h}),g="",E=!1;try{let y=await m.executeRequest(p,{onToken:N=>{g+=N,E=!0,u.onToken(N)}});u.flush();let T=y.result||g;!E&&T&&console.log(T),console.log(""),y.metadata&&this.displayExecutionSummary(y.metadata),T&&(this.conversation.messages.push({role:"assistant",content:T,timestamp:Date.now()}),El(this.conversation))}catch(y){throw c.stop(!0),y}finally{m.disconnect()}}displayExecutionSummary(e){let r=e.cost||0,n=e.tokens_in||0,s=e.tokens_out||0,i=n+s;this.stats.cumulativeTokens+=i,this.stats.cumulativeCost+=r,console.log(this.formatter.formatExecutionSummary({model:e.model,tokens_in:n,tokens_out:s,cost:r,execution_time:e.execution_time})),console.log("")}clearConversation(){this.conversation=m9(),console.clear(),this.displayWelcome()}displayConversationHistory(){if(this.conversation.messages.length===0){console.log(`
@@ -550,7 +550,7 @@ ${r.yellow("EXAMPLES:")}
550
550
  ${r.yellow("CONFIG FILE:")}
551
551
  ~/.aii/config.yaml Main configuration
552
552
  ~/.aii/secrets.yaml API keys (secure storage)
553
- `)}import*as bl from"fs";async function S9(t,e){let r=Qt({colors:!t.flags.noColors,emojis:!t.flags.noEmojis}),n=[];e.configExists()?n.push({name:"Configuration file",status:"ok",message:"Found"}):n.push({name:"Configuration file",status:"warn",message:"Not found (using defaults)"});let s=await e.load(),i=e.getApiKey();if(i){let p=vJ(i);n.push({name:"LLM Model",status:"ok",message:`${s.llm.model}@${s.llm.provider} (${p})`})}else n.push({name:"LLM Model",status:"error",message:`Not configured for ${s.llm.provider}`});let a=await wJ(s.api.url);n.push({name:"AII Server",status:a.ok?"ok":"error",message:a.message});let o=`${e.getConfigDir()}/mcp_servers.json`;if(bl.existsSync(o))try{let p=bl.readFileSync(o,"utf-8"),h=JSON.parse(p),m=Object.keys(h.mcpServers??{}).length;m>0?n.push({name:"MCP Servers",status:"ok",message:`${m} configured`}):n.push({name:"MCP Servers",status:"warn",message:"Not configured"})}catch{n.push({name:"MCP Servers",status:"warn",message:"Invalid config"})}else n.push({name:"MCP Servers",status:"warn",message:"Not configured"});let l=e.getConfigDir();bl.existsSync(l)?n.push({name:"Storage Directory",status:"ok",message:l}):n.push({name:"Storage Directory",status:"warn",message:"Not created"});let c=process.version;parseInt(c.slice(1).split(".")[0],10)>=18?n.push({name:"Node.js Version",status:"ok",message:c}):n.push({name:"Node.js Version",status:"error",message:`${c} (requires >= 18)`}),console.log(r.formatHealthCheck(n)),n.some(p=>p.status==="error")&&process.exit(1)}async function wJ(t){try{let e=new AbortController,r=setTimeout(()=>e.abort(),3e3),n=await fetch(`${t}/api/status`,{signal:e.signal});if(clearTimeout(r),n.ok){let s=new URL(t);return{ok:!0,message:`Running at ${s.hostname}:${s.port||26169}`}}else return{ok:!1,message:`Not responding (${n.status})`}}catch(e){return e instanceof Error&&e.name==="AbortError"?{ok:!1,message:"Connection timeout"}:{ok:!1,message:"Not running"}}}function vJ(t){return t.length<=10?"***":t.slice(0,6)+"..."+t.slice(-4)}Le();var y9="0.7.6";function g1(t){let r=!t.flags.noColors?_:{cyan:n=>n,yellow:n=>n,gray:n=>n,green:n=>n};console.log(`
553
+ `)}import*as bl from"fs";async function S9(t,e){let r=Qt({colors:!t.flags.noColors,emojis:!t.flags.noEmojis}),n=[];e.configExists()?n.push({name:"Configuration file",status:"ok",message:"Found"}):n.push({name:"Configuration file",status:"warn",message:"Not found (using defaults)"});let s=await e.load(),i=e.getApiKey();if(i){let p=vJ(i);n.push({name:"LLM Model",status:"ok",message:`${s.llm.model}@${s.llm.provider} (${p})`})}else n.push({name:"LLM Model",status:"error",message:`Not configured for ${s.llm.provider}`});let a=await wJ(s.api.url);n.push({name:"AII Server",status:a.ok?"ok":"error",message:a.message});let o=`${e.getConfigDir()}/mcp_servers.json`;if(bl.existsSync(o))try{let p=bl.readFileSync(o,"utf-8"),h=JSON.parse(p),m=Object.keys(h.mcpServers??{}).length;m>0?n.push({name:"MCP Servers",status:"ok",message:`${m} configured`}):n.push({name:"MCP Servers",status:"warn",message:"Not configured"})}catch{n.push({name:"MCP Servers",status:"warn",message:"Invalid config"})}else n.push({name:"MCP Servers",status:"warn",message:"Not configured"});let l=e.getConfigDir();bl.existsSync(l)?n.push({name:"Storage Directory",status:"ok",message:l}):n.push({name:"Storage Directory",status:"warn",message:"Not created"});let c=process.version;parseInt(c.slice(1).split(".")[0],10)>=18?n.push({name:"Node.js Version",status:"ok",message:c}):n.push({name:"Node.js Version",status:"error",message:`${c} (requires >= 18)`}),console.log(r.formatHealthCheck(n)),n.some(p=>p.status==="error")&&process.exit(1)}async function wJ(t){try{let e=new AbortController,r=setTimeout(()=>e.abort(),3e3),n=await fetch(`${t}/api/status`,{signal:e.signal});if(clearTimeout(r),n.ok){let s=new URL(t);return{ok:!0,message:`Running at ${s.hostname}:${s.port||26169}`}}else return{ok:!1,message:`Not responding (${n.status})`}}catch(e){return e instanceof Error&&e.name==="AbortError"?{ok:!1,message:"Connection timeout"}:{ok:!1,message:"Not running"}}}function vJ(t){return t.length<=10?"***":t.slice(0,6)+"..."+t.slice(-4)}Le();var y9="0.7.7";function g1(t){let r=!t.flags.noColors?_:{cyan:n=>n,yellow:n=>n,gray:n=>n,green:n=>n};console.log(`
554
554
  ${r.cyan("AII")} - AI-powered CLI assistant v${y9}
555
555
 
556
556
  ${r.yellow("USAGE:")}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiiware/aii",
3
- "version": "0.7.6",
3
+ "version": "0.7.7",
4
4
  "type": "module",
5
5
  "description": "AI-powered CLI assistant for terminal productivity",
6
6
  "author": "AiiWare <support@aiiware.com>",