@aiiware/aii 0.16.4 → 0.16.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/aii +9 -9
- 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.16.
|
|
3
|
+
* @aiiware/aii v0.16.5
|
|
4
4
|
*
|
|
5
5
|
* AI-powered CLI assistant for terminal productivity
|
|
6
6
|
*
|
|
@@ -194,7 +194,7 @@ ${n.comment}`:n.comment}this.doc.range[2]=n.offset;break}default:this.errors.pus
|
|
|
194
194
|
`)+`\r
|
|
195
195
|
\r
|
|
196
196
|
`+n)}function Lo(t,e,n,r,s,i){if(t.listenerCount("wsClientError")){let o=new Error(s);Error.captureStackTrace(o,Lo),t.emit("wsClientError",o,n,e)}else id(n,r,s,i)}});var gJ,_J,EJ,PR,yJ,Hr,VS=R(()=>{gJ=zt(vR(),1),_J=zt(FS(),1),EJ=zt($S(),1),PR=zt(rh(),1),yJ=zt(LR(),1),Hr=PR.default});var GR={};Le(GR,{configureLogger:()=>ih,debug:()=>Y,error:()=>BR,formatError:()=>oh,info:()=>FR,logger:()=>O,success:()=>$R,warn:()=>UR});function ih(t){od={...od,...t}}function ad(t){return od.emojis?t+" ":""}function Po(t,e){return od.colors?e(t):t}function Y(t,...e){od.debug&&console.debug(Po(`[DEBUG] ${t}`,p.gray),...e)}function FR(t,...e){console.log(t,...e)}function UR(t,...e){console.warn(Po(`${ad("\u26A0\uFE0F")}${t}`,p.yellow),...e)}function BR(t,...e){console.error(Po(`${ad("\u274C")}${t}`,p.red),...e)}function $R(t,...e){console.log(Po(`${ad("\u2705")}${t}`,p.green),...e)}function oh(t){let e=[];return e.push(Po(`${ad("\u274C")}${t.message}`,p.red)),t.suggestions&&t.suggestions.length>0&&(e.push(""),e.push(Po(`${ad("\u{1F4A1}")}Solutions:`,p.yellow)),t.suggestions.forEach((n,r)=>{e.push(Po(` ${r+1}. ${n}`,p.gray))})),e.join(`
|
|
197
|
-
`)}var SJ,od,O,ft=R(()=>{"use strict";qe();SJ={debug:!1,colors:!0,emojis:!0},od={...SJ};O={debug:Y,info:FR,warn:UR,error:BR,success:$R,formatError:oh,configure:ih}});var zR={};Le(zR,{MCPConfigManager:()=>qt,MCP_CATALOG:()=>Fo});import*as Tr from"fs";import*as ah from"path";import*as KS from"os";var Fo,qt,Uo=R(()=>{"use strict";Fo={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",KS.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"}},qt=class{configPath;constructor(e){this.configPath=e||ah.join(KS.homedir(),".aii","mcp_servers.json"),this.ensureConfigDir()}ensureConfigDir(){let e=ah.dirname(this.configPath);Tr.existsSync(e)||Tr.mkdirSync(e,{recursive:!0})}loadConfig(){if(!Tr.existsSync(this.configPath))return{mcpServers:{}};try{let e=Tr.readFileSync(this.configPath,"utf-8"),n=JSON.parse(e);return typeof n=="object"&&n!==null?n:{mcpServers:{}}}catch{return{mcpServers:{}}}}saveConfig(e){try{return this.ensureConfigDir(),Tr.writeFileSync(this.configPath,JSON.stringify(e,null,2),"utf-8"),!0}catch{return!1}}backupConfig(){if(!Tr.existsSync(this.configPath))return!0;try{let e=this.configPath+".backup";return Tr.copyFileSync(this.configPath,e),!0}catch{return!1}}getConfigPath(){return this.configPath}}});var ll={};Le(ll,{ClientMCPExecutor:()=>QS});import{Client as TJ}from"@modelcontextprotocol/sdk/client/index.js";import{StdioClientTransport as bJ}from"@modelcontextprotocol/sdk/client/stdio.js";var QS,cl=R(()=>{"use strict";Uo();ft();QS=class{connections=new Map;toolToServer=new Map;initialized=!1;configManager;constructor(){this.configManager=new qt}async initialize(){if(this.initialized)return!0;try{let n=this.configManager.loadConfig().mcpServers||{};Y(`Initializing MCP executor with ${Object.keys(n).length} servers`);for(let[r,s]of Object.entries(n)){if(s.enabled===!1){Y(`Skipping disabled server: ${r}`);continue}try{await this.connectToServer(r,s)}catch(i){Y(`Failed to connect to ${r}: ${i}`)}}return this.initialized=!0,Y(`MCP executor initialized with ${this.connections.size} connections`),!0}catch(e){return Y(`Failed to initialize MCP executor: ${e}`),!1}}async connectToServer(e,n){let r=n.command,s=Array.isArray(n.args)?n.args:[n.args||""],i={...process.env};if(n.env)for(let[u,d]of Object.entries(n.env)){let m=String(d).replace(/\$\{(\w+)\}/g,(f,h)=>process.env[h]||"");i[u]=m}Y(`Connecting to MCP server: ${e}`),Y(` command: ${r}`),Y(` args: ${JSON.stringify(s)}`);let o=new bJ({command:r,args:s,env:i,stderr:"pipe"}),a=new TJ({name:"aii-cli",version:"0.1.0"},{capabilities:{}});await a.connect(o);let c=(await a.listTools()).tools.map(u=>({name:u.name,description:u.description||"",inputSchema:u.inputSchema,serverName:e}));this.connections.set(e,{client:a,transport:o,tools:c});for(let u of c)this.toolToServer.set(u.name,e);Y(`Connected to ${e}: discovered ${c.length} tools`)}async handleQueryTools(e){let n=e.request_id||"unknown";Y(`Handling mcp_query_tools request: ${n}`),this.initialized||await this.initialize();try{let r=[];for(let i of this.connections.values())r.push(...i.tools);let s=r.map(i=>({name:i.name,description:i.description,input_schema:i.inputSchema,server_name:i.serverName}));return Y(`Found ${s.length} MCP tools across all servers`),{type:"mcp_query_tools_response",request_id:n,success:!0,tools:s}}catch(r){return Y(`Error querying MCP tools: ${r}`),{type:"mcp_query_tools_response",request_id:n,success:!1,error:String(r),tools:[]}}}async handleToolExecution(e){let n=e.request_id||"unknown",r=e.tool_name,s=e.arguments||{};if(Y(`Handling mcp_tool_request: ${n} - Tool: ${r}`),!r)return{type:"mcp_tool_response",request_id:n,success:!1,error:"Missing tool_name in request"};this.initialized||await this.initialize();try{let i=this.toolToServer.get(r);if(!i)return{type:"mcp_tool_response",request_id:n,success:!1,error:`Tool '${r}' not found in any connected MCP server`};let o=this.connections.get(i);if(!o)return{type:"mcp_tool_response",request_id:n,success:!1,error:`Server '${i}' not connected`};let a=await Promise.race([o.client.callTool({name:r,arguments:s}),new Promise((c,u)=>setTimeout(()=>u(new Error(`Tool '${r}' timed out after 30 seconds`)),3e4))]),l=this.makeContentSerializable(a.content);return Y(`Tool '${r}' executed successfully (server: ${i})`),{type:"mcp_tool_response",request_id:n,success:!a.isError,content:l,server_name:i,error:a.isError?"Tool returned error":void 0}}catch(i){return Y(`Error executing MCP tool '${r}': ${i}`),{type:"mcp_tool_response",request_id:n,success:!1,error:String(i)}}}makeContentSerializable(e){if(e==null)return null;if(Array.isArray(e))return e.map(n=>this.makeContentSerializable(n));if(typeof e=="object"){let n=e;if(n.type==="text"&&typeof n.text=="string")return{type:"text",text:n.text};if(n.type==="image")return{type:"image",data:n.data,mimeType:n.mimeType};let r={};for(let[s,i]of Object.entries(n))r[s]=this.makeContentSerializable(i);return r}return e}async shutdown(){Y("Shutting down MCP executor");for(let[e,n]of this.connections)try{await n.client.close(),Y(`Closed connection to ${e}`)}catch(r){Y(`Error closing ${e}: ${r}`)}this.connections.clear(),this.toolToServer.clear(),this.initialized=!1}isInitialized(){return this.initialized}getConnectionCount(){return this.connections.size}}});var KR=T((rwe,MJ)=>{MJ.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 iT=T((swe,XR)=>{"use strict";var mh=Object.assign({},KR()),QR=Object.keys(mh);Object.defineProperty(mh,"random",{get(){let t=Math.floor(Math.random()*QR.length),e=QR[t];return mh[e]}});XR.exports=mh});function $o({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 fh=R(()=>{});var rO=T((ywe,nO)=>{nO.exports=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g});var WJ,jJ,VJ,KJ,QJ,XJ,JJ,Go,gh,Bi,_T=R(()=>{"use strict";qe();WJ={name:"classic",label:"Classic",description:"Aii jellyfish blue-purple (default)",accentColorName:"#3B82F6",userInputTextColorName:"#93C5FD",colors:{accent:p.hex("#3B82F6"),userInput:p.hex("#3B82F6"),userInputText:p.hex("#93C5FD"),success:p.hex("#22C55E"),warning:p.hex("#EAB308"),error:p.hex("#EF4444"),muted:p.hex("#94A3B8"),dim:p.dim,code:p.hex("#A855F7"),link:p.hex("#3B82F6").underline,heading:p.hex("#A855F7").bold,filePath:p.hex("#3B82F6"),indicator:p.hex("#3B82F6")}},jJ={name:"brand",label:"Brand",description:"aiiware.com official palette",accentColorName:"#4E6BF5",userInputTextColorName:"#A5B4FC",colors:{accent:p.hex("#4E6BF5"),userInput:p.hex("#4E6BF5"),userInputText:p.hex("#A5B4FC"),success:p.hex("#28CA41"),warning:p.hex("#EAB308"),error:p.hex("#EF4444"),muted:p.hex("#94A3B8"),dim:p.dim,code:p.hex("#4E6BF5"),link:p.hex("#4E6BF5").underline,heading:p.hex("#4E6BF5").bold,filePath:p.hex("#4E6BF5"),indicator:p.hex("#4E6BF5")}},VJ={name:"teal",label:"Teal",description:"Original teal accent",accentColorName:"#00BCD4",userInputTextColorName:"#67E8F9",colors:{accent:p.hex("#00BCD4"),userInput:p.hex("#00BCD4"),userInputText:p.hex("#67E8F9"),success:p.hex("#22C55E"),warning:p.hex("#EAB308"),error:p.hex("#EF4444"),muted:p.hex("#94A3B8"),dim:p.dim,code:p.hex("#00BCD4"),link:p.hex("#00BCD4").underline,heading:p.hex("#00BCD4").bold,filePath:p.hex("#00BCD4"),indicator:p.hex("#00BCD4")}},KJ={name:"indigo",label:"Indigo",description:"Bright periwinkle-blue",accentColorName:"#6B8AFF",userInputTextColorName:"#A5B4FC",colors:{accent:p.hex("#6B8AFF"),userInput:p.hex("#6B8AFF"),userInputText:p.hex("#A5B4FC"),success:p.hex("#28CA41"),warning:p.hex("#EAB308"),error:p.hex("#EF4444"),muted:p.hex("#94A3B8"),dim:p.dim,code:p.hex("#6B8AFF"),link:p.hex("#6B8AFF").underline,heading:p.hex("#6B8AFF").bold,filePath:p.hex("#6B8AFF"),indicator:p.hex("#6B8AFF")}},QJ={name:"forest",label:"Forest",description:"Natural green",accentColorName:"#22C55E",userInputTextColorName:"#86EFAC",colors:{accent:p.hex("#22C55E"),userInput:p.hex("#22C55E"),userInputText:p.hex("#86EFAC"),success:p.hex("#22C55E"),warning:p.hex("#EAB308"),error:p.hex("#EF4444"),muted:p.hex("#94A3B8"),dim:p.dim,code:p.hex("#22C55E"),link:p.hex("#22C55E").underline,heading:p.hex("#22C55E").bold,filePath:p.hex("#22C55E"),indicator:p.hex("#22C55E")}},XJ={name:"amber",label:"Amber",description:"Warm orange-gold",accentColorName:"#F59E0B",userInputTextColorName:"#FCD34D",colors:{accent:p.hex("#F59E0B"),userInput:p.hex("#F59E0B"),userInputText:p.hex("#FCD34D"),success:p.hex("#22C55E"),warning:p.hex("#EAB308"),error:p.hex("#EF4444"),muted:p.hex("#94A3B8"),dim:p.dim,code:p.hex("#F59E0B"),link:p.hex("#F59E0B").underline,heading:p.hex("#F59E0B").bold,filePath:p.hex("#F59E0B"),indicator:p.hex("#F59E0B")}},JJ={name:"grayscale",label:"Grayscale",description:"Accessible, no colors",accentColorName:"white",userInputTextColorName:"#CBD5E1",colors:{accent:p.reset,userInput:p.reset,userInputText:p.hex("#CBD5E1"),success:p.reset,warning:p.reset,error:p.bold,muted:p.dim,dim:p.dim,code:p.reset,link:p.underline,heading:p.bold,filePath:p.reset,indicator:p.bold}},Go={classic:WJ,brand:jJ,teal:VJ,indigo:KJ,forest:QJ,amber:XJ,grayscale:JJ},gh="classic",Bi=["classic","brand","teal","indigo","forest","amber","grayscale"]});var zo={};Le(zo,{ThemeManager:()=>Ys,getAccentColorName:()=>De,getThemeColors:()=>H,getUserInputTextColorName:()=>dl});function H(){return Ys.getInstance().getColors()}function De(){return Ys.getInstance().getAccentColorName()}function dl(){return Ys.getInstance().getUserInputTextColorName()}var Ys,$i=R(()=>{"use strict";_T();Ys=class t{static instance=null;activeTheme;constructor(){this.activeTheme=Go[gh]}static getInstance(){return t.instance||(t.instance=new t),t.instance}getTheme(){return this.activeTheme}getColors(){return this.activeTheme.colors}getThemeName(){return this.activeTheme.name}setTheme(e){let n=Go[e];if(!n){let r=Bi.join(", ");throw new Error(`Unknown theme: "${e}". Available themes: ${r}`)}this.activeTheme=n}isValidTheme(e){return e in Go}getAvailableThemes(){return Bi.map(e=>Go[e])}getAccentColorName(){return this.activeTheme.accentColorName}getUserInputTextColorName(){return this.activeTheme.userInputTextColorName}reset(){this.activeTheme=Go[gh]}}});var yn=R(()=>{"use strict";_T();$i()});import{resolve as ZJ}from"path";function eZ(){let t=process.env.TERM??"",e=process.env.TERM_PROGRAM??"",n=process.env.COLORTERM??"",r=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"||r||s||t.includes("xterm-256color")||t.includes("screen-256color")||t.includes("tmux")||t==="xterm-kitty"||n==="truecolor"?!0:!(t==="dumb"||!process.stdout.isTTY)}function ud(){return ET===null&&(ET=eZ()),ET}function tZ(){return process.platform==="darwin"?"Cmd":"Ctrl"}function aO(){return oO||!ud()?"":(oO=!0,` (${tZ()}+Click to open)`)}function nZ(t,e){return ud()?`\x1B]8;;${e}\x07${t}\x1B]8;;\x07`:t}function lO(t,e){let n=process.env.HOME??process.env.USERPROFILE??"",r=t;n&&t.startsWith(n)&&(r="~"+t.slice(n.length));let s=e?`${r}:${e}`:r;if(!ud())return H().filePath(s);let i=H().accent(s),a=`file://${ZJ(t)}`;return e!==void 0&&e>0&&(a+=`#L${e}`),nZ(i,a)}var ET,oO,cO=R(()=>{"use strict";yn();ET=null,oO=!1});var mO={};Le(mO,{VERSION:()=>Ho,colors:()=>M,formatCode:()=>dZ,formatPath:()=>pd,getActionIndicator:()=>uZ,padEndAnsi:()=>hZ,printAction:()=>rZ,printDivider:()=>pO,printError:()=>lZ,printExitSummary:()=>yT,printHeader:()=>cZ,printSuccess:()=>oZ,printToolComplete:()=>sZ,printToolFailed:()=>iZ,printToolResultCompact:()=>pl,printWarning:()=>aZ,shortenPath:()=>mZ});function dd(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 rZ(t,e,n=console.log){let r=dd(e)?pd(e):M.filePath(e);n(M.dim("\u25CB ")+p.bold(t)+" "+r)}function sZ(t,e,n=console.log){let r=dd(e)?pd(e):M.filePath(e);n(M.success("\u2713 ")+p.bold(t)+" "+r)}function iZ(t,e,n,r=console.log){let s=dd(e)?pd(e):M.filePath(e);r(M.error("\u2717 ")+p.bold(t)+" "+s),n&&r(M.dim(" \u2192 ")+M.error(n))}function pl(t,e,n=!0,r,s=console.log){let i=n?M.success("\u25CF"):M.error("\u25CF"),o=60,a=e.length>o?e.slice(0,o-3)+"...":e;if(dd(e)){let u=e.match(/:(\d+)$/),d=u?parseInt(u[1],10):void 0,m=u?e.replace(/:(\d+)$/,""):e;a=pd(m,d)}s(`${i} ${p.bold(t)}(${a})`);let l=dd(e)?M.dim(aO()):"",c=!l&&!uO?M.dim(" (ctrl+o to expand)"):"";if(c&&(uO=!0),r){let u=n?M.dim:M.error;s(u(`\u2514 ${r}`)+l+c)}else{let u=n?"(No content)":"(Error)",d=n?M.dim:M.error;s(d(`\u2514 ${u}`)+l+c)}}function oZ(t){console.log(M.success("\u2713 ")+t)}function aZ(t){console.log(M.warning("\u26A0 ")+t)}function lZ(t){console.log(M.error("\u2717 ")+t)}function pO(t=60){console.log(M.dim("\u2500".repeat(t)))}function cZ(t){console.log(M.logo(t)),pO(t.length)}function uZ(t){return M.thinking(`[${t}]`)}function pd(t,e){if(ud())return lO(t,e);let n=process.env.HOME??process.env.USERPROFILE??"",r=t;return n&&t.startsWith(n)&&(r="~"+t.slice(n.length)),e&&(r+=`:${e}`),M.filePath(r)}function dZ(t){return M.code(t)}function pZ(){return process.stdout.columns||80}function mZ(t,e=40){let n=process.env.HOME??process.env.USERPROFILE??"",r=t;if(n&&t.startsWith(n)&&(r="~"+t.slice(n.length)),r.length<=e)return r;let s=r.split("/").filter(o=>o.length>0);if(s.length>=2){let o=s.slice(-2).join("/");if(o.length<=e-4)return".../"+o}return".../"+(s[s.length-1]||s[s.length-2])}function fZ(t){return t.replace(/\x1b\[[0-9;]*m/g,"").length}function hZ(t,e){let n=fZ(t),r=Math.max(0,e-n);return t+" ".repeat(r)}function gZ(t){if(t<60)return`${t}s`;let e=Math.floor(t/60),n=t%60;return n>0?`${e}m ${n}s`:`${e}m`}function dO(t){return t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toString()}function yT(t){let e=pZ(),n=Math.min(e-2,76),r=n-4,s=(m,f)=>{let h=m.replace(/\x1b\[[0-9;]*m/g,"").length;return m+" ".repeat(Math.max(0,f-h))},i=m=>M.border("\u2502")+" "+s(m,r)+" "+M.border("\u2502"),o=(m,f,h,g)=>{let _=Math.floor(r/2),y=M.dim(m.padEnd(15))+f,S=M.dim(h.padEnd(15))+g;return i(s(y,_)+S)},a=gZ(t.durationSeconds),l=dO(t.tokensIn),c=dO(t.tokensOut),u=`$${t.totalCost.toFixed(4)}`,d=`${t.provider}/${t.model.replace("claude-","").replace("-latest","")}`;console.log(""),console.log(M.border("\u250C"+"\u2500".repeat(n-2)+"\u2510")),console.log(i(M.logo("Session complete. \u{1FABC}"))),console.log(M.border("\u251C"+"\u2500".repeat(n-2)+"\u2524")),console.log(i(M.logo("Session Summary"))),console.log(i(M.dim("\u2500".repeat(15)))),console.log(o("Duration",a,"Tool Calls",t.toolCalls.toString())),console.log(o("Turns",t.turns.toString(),"Files Modified",t.filesModified.toString())),console.log(i("")),console.log(i(M.logo("Token Usage"))),console.log(i(M.dim("\u2500".repeat(11)))),console.log(o("Input",l,"Output",c)),console.log(i(M.dim("Cost".padEnd(15))+u)),console.log(i("")),console.log(i(M.dim("Model: ")+M.model(d))),console.log(M.border("\u2514"+"\u2500".repeat(n-2)+"\u2518")),console.log("")}var Ho,M,uO,Yt=R(()=>{"use strict";qe();cO();yn();Ho="0.16.4",M={get logo(){return H().accent.bold},get prompt(){return H().accent.bold},get model(){return H().accent},get success(){return H().success},get warning(){return H().warning},get error(){return H().error},get thinking(){return H().dim},get filePath(){return H().filePath},get code(){return H().code},get muted(){return H().muted},get dim(){return H().dim},get safe(){return H().success},get risky(){return H().warning},get destructive(){return H().error},get border(){return H().accent},get bannerBorder(){return H().accent}};uO=!1});var Cr,ml,ST=R(()=>{"use strict";Cr={maxConcurrent:5,maxIterations:100,timeout:3e5,autoBackgroundTimeout:12e4,compressionLevel:"medium",permissionMode:"default"},ml={maxConcurrent:3,timeout:30*60*1e3,permissionMode:"dontAsk"}});var _h,TT=R(()=>{"use strict";_h=`You are an expert codebase explorer. Your task is to efficiently explore and understand codebases.
|
|
197
|
+
`)}var SJ,od,O,ft=R(()=>{"use strict";qe();SJ={debug:!1,colors:!0,emojis:!0},od={...SJ};O={debug:Y,info:FR,warn:UR,error:BR,success:$R,formatError:oh,configure:ih}});var zR={};Le(zR,{MCPConfigManager:()=>qt,MCP_CATALOG:()=>Fo});import*as Tr from"fs";import*as ah from"path";import*as KS from"os";var Fo,qt,Uo=R(()=>{"use strict";Fo={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",KS.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"}},qt=class{configPath;constructor(e){this.configPath=e||ah.join(KS.homedir(),".aii","mcp_servers.json"),this.ensureConfigDir()}ensureConfigDir(){let e=ah.dirname(this.configPath);Tr.existsSync(e)||Tr.mkdirSync(e,{recursive:!0})}loadConfig(){if(!Tr.existsSync(this.configPath))return{mcpServers:{}};try{let e=Tr.readFileSync(this.configPath,"utf-8"),n=JSON.parse(e);return typeof n=="object"&&n!==null?n:{mcpServers:{}}}catch{return{mcpServers:{}}}}saveConfig(e){try{return this.ensureConfigDir(),Tr.writeFileSync(this.configPath,JSON.stringify(e,null,2),"utf-8"),!0}catch{return!1}}backupConfig(){if(!Tr.existsSync(this.configPath))return!0;try{let e=this.configPath+".backup";return Tr.copyFileSync(this.configPath,e),!0}catch{return!1}}getConfigPath(){return this.configPath}}});var ll={};Le(ll,{ClientMCPExecutor:()=>QS});import{Client as TJ}from"@modelcontextprotocol/sdk/client/index.js";import{StdioClientTransport as bJ}from"@modelcontextprotocol/sdk/client/stdio.js";var QS,cl=R(()=>{"use strict";Uo();ft();QS=class{connections=new Map;toolToServer=new Map;initialized=!1;configManager;constructor(){this.configManager=new qt}async initialize(){if(this.initialized)return!0;try{let n=this.configManager.loadConfig().mcpServers||{};Y(`Initializing MCP executor with ${Object.keys(n).length} servers`);for(let[r,s]of Object.entries(n)){if(s.enabled===!1){Y(`Skipping disabled server: ${r}`);continue}try{await this.connectToServer(r,s)}catch(i){Y(`Failed to connect to ${r}: ${i}`)}}return this.initialized=!0,Y(`MCP executor initialized with ${this.connections.size} connections`),!0}catch(e){return Y(`Failed to initialize MCP executor: ${e}`),!1}}async connectToServer(e,n){let r=n.command,s=Array.isArray(n.args)?n.args:[n.args||""],i={...process.env};if(n.env)for(let[u,d]of Object.entries(n.env)){let m=String(d).replace(/\$\{(\w+)\}/g,(f,h)=>process.env[h]||"");i[u]=m}Y(`Connecting to MCP server: ${e}`),Y(` command: ${r}`),Y(` args: ${JSON.stringify(s)}`);let o=new bJ({command:r,args:s,env:i,stderr:"pipe"}),a=new TJ({name:"aii-cli",version:"0.1.0"},{capabilities:{}});await a.connect(o);let c=(await a.listTools()).tools.map(u=>({name:u.name,description:u.description||"",inputSchema:u.inputSchema,serverName:e}));this.connections.set(e,{client:a,transport:o,tools:c});for(let u of c)this.toolToServer.set(u.name,e);Y(`Connected to ${e}: discovered ${c.length} tools`)}async handleQueryTools(e){let n=e.request_id||"unknown";Y(`Handling mcp_query_tools request: ${n}`),this.initialized||await this.initialize();try{let r=[];for(let i of this.connections.values())r.push(...i.tools);let s=r.map(i=>({name:i.name,description:i.description,input_schema:i.inputSchema,server_name:i.serverName}));return Y(`Found ${s.length} MCP tools across all servers`),{type:"mcp_query_tools_response",request_id:n,success:!0,tools:s}}catch(r){return Y(`Error querying MCP tools: ${r}`),{type:"mcp_query_tools_response",request_id:n,success:!1,error:String(r),tools:[]}}}async handleToolExecution(e){let n=e.request_id||"unknown",r=e.tool_name,s=e.arguments||{};if(Y(`Handling mcp_tool_request: ${n} - Tool: ${r}`),!r)return{type:"mcp_tool_response",request_id:n,success:!1,error:"Missing tool_name in request"};this.initialized||await this.initialize();try{let i=this.toolToServer.get(r);if(!i)return{type:"mcp_tool_response",request_id:n,success:!1,error:`Tool '${r}' not found in any connected MCP server`};let o=this.connections.get(i);if(!o)return{type:"mcp_tool_response",request_id:n,success:!1,error:`Server '${i}' not connected`};let a=await Promise.race([o.client.callTool({name:r,arguments:s}),new Promise((c,u)=>setTimeout(()=>u(new Error(`Tool '${r}' timed out after 30 seconds`)),3e4))]),l=this.makeContentSerializable(a.content);return Y(`Tool '${r}' executed successfully (server: ${i})`),{type:"mcp_tool_response",request_id:n,success:!a.isError,content:l,server_name:i,error:a.isError?"Tool returned error":void 0}}catch(i){return Y(`Error executing MCP tool '${r}': ${i}`),{type:"mcp_tool_response",request_id:n,success:!1,error:String(i)}}}makeContentSerializable(e){if(e==null)return null;if(Array.isArray(e))return e.map(n=>this.makeContentSerializable(n));if(typeof e=="object"){let n=e;if(n.type==="text"&&typeof n.text=="string")return{type:"text",text:n.text};if(n.type==="image")return{type:"image",data:n.data,mimeType:n.mimeType};let r={};for(let[s,i]of Object.entries(n))r[s]=this.makeContentSerializable(i);return r}return e}async shutdown(){Y("Shutting down MCP executor");for(let[e,n]of this.connections)try{await n.client.close(),Y(`Closed connection to ${e}`)}catch(r){Y(`Error closing ${e}: ${r}`)}this.connections.clear(),this.toolToServer.clear(),this.initialized=!1}isInitialized(){return this.initialized}getConnectionCount(){return this.connections.size}}});var KR=T((rwe,MJ)=>{MJ.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 iT=T((swe,XR)=>{"use strict";var mh=Object.assign({},KR()),QR=Object.keys(mh);Object.defineProperty(mh,"random",{get(){let t=Math.floor(Math.random()*QR.length),e=QR[t];return mh[e]}});XR.exports=mh});function $o({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 fh=R(()=>{});var rO=T((ywe,nO)=>{nO.exports=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g});var WJ,jJ,VJ,KJ,QJ,XJ,JJ,Go,gh,Bi,_T=R(()=>{"use strict";qe();WJ={name:"classic",label:"Classic",description:"Aii jellyfish blue-purple (default)",accentColorName:"#3B82F6",userInputTextColorName:"#93C5FD",colors:{accent:p.hex("#3B82F6"),userInput:p.hex("#3B82F6"),userInputText:p.hex("#93C5FD"),success:p.hex("#22C55E"),warning:p.hex("#EAB308"),error:p.hex("#EF4444"),muted:p.hex("#94A3B8"),dim:p.dim,code:p.hex("#A855F7"),link:p.hex("#3B82F6").underline,heading:p.hex("#A855F7").bold,filePath:p.hex("#3B82F6"),indicator:p.hex("#3B82F6")}},jJ={name:"brand",label:"Brand",description:"aiiware.com official palette",accentColorName:"#4E6BF5",userInputTextColorName:"#A5B4FC",colors:{accent:p.hex("#4E6BF5"),userInput:p.hex("#4E6BF5"),userInputText:p.hex("#A5B4FC"),success:p.hex("#28CA41"),warning:p.hex("#EAB308"),error:p.hex("#EF4444"),muted:p.hex("#94A3B8"),dim:p.dim,code:p.hex("#4E6BF5"),link:p.hex("#4E6BF5").underline,heading:p.hex("#4E6BF5").bold,filePath:p.hex("#4E6BF5"),indicator:p.hex("#4E6BF5")}},VJ={name:"teal",label:"Teal",description:"Original teal accent",accentColorName:"#00BCD4",userInputTextColorName:"#67E8F9",colors:{accent:p.hex("#00BCD4"),userInput:p.hex("#00BCD4"),userInputText:p.hex("#67E8F9"),success:p.hex("#22C55E"),warning:p.hex("#EAB308"),error:p.hex("#EF4444"),muted:p.hex("#94A3B8"),dim:p.dim,code:p.hex("#00BCD4"),link:p.hex("#00BCD4").underline,heading:p.hex("#00BCD4").bold,filePath:p.hex("#00BCD4"),indicator:p.hex("#00BCD4")}},KJ={name:"indigo",label:"Indigo",description:"Bright periwinkle-blue",accentColorName:"#6B8AFF",userInputTextColorName:"#A5B4FC",colors:{accent:p.hex("#6B8AFF"),userInput:p.hex("#6B8AFF"),userInputText:p.hex("#A5B4FC"),success:p.hex("#28CA41"),warning:p.hex("#EAB308"),error:p.hex("#EF4444"),muted:p.hex("#94A3B8"),dim:p.dim,code:p.hex("#6B8AFF"),link:p.hex("#6B8AFF").underline,heading:p.hex("#6B8AFF").bold,filePath:p.hex("#6B8AFF"),indicator:p.hex("#6B8AFF")}},QJ={name:"forest",label:"Forest",description:"Natural green",accentColorName:"#22C55E",userInputTextColorName:"#86EFAC",colors:{accent:p.hex("#22C55E"),userInput:p.hex("#22C55E"),userInputText:p.hex("#86EFAC"),success:p.hex("#22C55E"),warning:p.hex("#EAB308"),error:p.hex("#EF4444"),muted:p.hex("#94A3B8"),dim:p.dim,code:p.hex("#22C55E"),link:p.hex("#22C55E").underline,heading:p.hex("#22C55E").bold,filePath:p.hex("#22C55E"),indicator:p.hex("#22C55E")}},XJ={name:"amber",label:"Amber",description:"Warm orange-gold",accentColorName:"#F59E0B",userInputTextColorName:"#FCD34D",colors:{accent:p.hex("#F59E0B"),userInput:p.hex("#F59E0B"),userInputText:p.hex("#FCD34D"),success:p.hex("#22C55E"),warning:p.hex("#EAB308"),error:p.hex("#EF4444"),muted:p.hex("#94A3B8"),dim:p.dim,code:p.hex("#F59E0B"),link:p.hex("#F59E0B").underline,heading:p.hex("#F59E0B").bold,filePath:p.hex("#F59E0B"),indicator:p.hex("#F59E0B")}},JJ={name:"grayscale",label:"Grayscale",description:"Accessible, no colors",accentColorName:"white",userInputTextColorName:"#CBD5E1",colors:{accent:p.reset,userInput:p.reset,userInputText:p.hex("#CBD5E1"),success:p.reset,warning:p.reset,error:p.bold,muted:p.dim,dim:p.dim,code:p.reset,link:p.underline,heading:p.bold,filePath:p.reset,indicator:p.bold}},Go={classic:WJ,brand:jJ,teal:VJ,indigo:KJ,forest:QJ,amber:XJ,grayscale:JJ},gh="classic",Bi=["classic","brand","teal","indigo","forest","amber","grayscale"]});var zo={};Le(zo,{ThemeManager:()=>Ys,getAccentColorName:()=>De,getThemeColors:()=>H,getUserInputTextColorName:()=>dl});function H(){return Ys.getInstance().getColors()}function De(){return Ys.getInstance().getAccentColorName()}function dl(){return Ys.getInstance().getUserInputTextColorName()}var Ys,$i=R(()=>{"use strict";_T();Ys=class t{static instance=null;activeTheme;constructor(){this.activeTheme=Go[gh]}static getInstance(){return t.instance||(t.instance=new t),t.instance}getTheme(){return this.activeTheme}getColors(){return this.activeTheme.colors}getThemeName(){return this.activeTheme.name}setTheme(e){let n=Go[e];if(!n){let r=Bi.join(", ");throw new Error(`Unknown theme: "${e}". Available themes: ${r}`)}this.activeTheme=n}isValidTheme(e){return e in Go}getAvailableThemes(){return Bi.map(e=>Go[e])}getAccentColorName(){return this.activeTheme.accentColorName}getUserInputTextColorName(){return this.activeTheme.userInputTextColorName}reset(){this.activeTheme=Go[gh]}}});var yn=R(()=>{"use strict";_T();$i()});import{resolve as ZJ}from"path";function eZ(){let t=process.env.TERM??"",e=process.env.TERM_PROGRAM??"",n=process.env.COLORTERM??"",r=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"||r||s||t.includes("xterm-256color")||t.includes("screen-256color")||t.includes("tmux")||t==="xterm-kitty"||n==="truecolor"?!0:!(t==="dumb"||!process.stdout.isTTY)}function ud(){return ET===null&&(ET=eZ()),ET}function tZ(){return process.platform==="darwin"?"Cmd":"Ctrl"}function aO(){return oO||!ud()?"":(oO=!0,` (${tZ()}+Click to open)`)}function nZ(t,e){return ud()?`\x1B]8;;${e}\x07${t}\x1B]8;;\x07`:t}function lO(t,e){let n=process.env.HOME??process.env.USERPROFILE??"",r=t;n&&t.startsWith(n)&&(r="~"+t.slice(n.length));let s=e?`${r}:${e}`:r;if(!ud())return H().filePath(s);let i=H().accent(s),a=`file://${ZJ(t)}`;return e!==void 0&&e>0&&(a+=`#L${e}`),nZ(i,a)}var ET,oO,cO=R(()=>{"use strict";yn();ET=null,oO=!1});var mO={};Le(mO,{VERSION:()=>Ho,colors:()=>M,formatCode:()=>dZ,formatPath:()=>pd,getActionIndicator:()=>uZ,padEndAnsi:()=>hZ,printAction:()=>rZ,printDivider:()=>pO,printError:()=>lZ,printExitSummary:()=>yT,printHeader:()=>cZ,printSuccess:()=>oZ,printToolComplete:()=>sZ,printToolFailed:()=>iZ,printToolResultCompact:()=>pl,printWarning:()=>aZ,shortenPath:()=>mZ});function dd(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 rZ(t,e,n=console.log){let r=dd(e)?pd(e):M.filePath(e);n(M.dim("\u25CB ")+p.bold(t)+" "+r)}function sZ(t,e,n=console.log){let r=dd(e)?pd(e):M.filePath(e);n(M.success("\u2713 ")+p.bold(t)+" "+r)}function iZ(t,e,n,r=console.log){let s=dd(e)?pd(e):M.filePath(e);r(M.error("\u2717 ")+p.bold(t)+" "+s),n&&r(M.dim(" \u2192 ")+M.error(n))}function pl(t,e,n=!0,r,s=console.log){let i=n?M.success("\u25CF"):M.error("\u25CF"),o=60,a=e.length>o?e.slice(0,o-3)+"...":e;if(dd(e)){let u=e.match(/:(\d+)$/),d=u?parseInt(u[1],10):void 0,m=u?e.replace(/:(\d+)$/,""):e;a=pd(m,d)}s(`${i} ${p.bold(t)}(${a})`);let l=dd(e)?M.dim(aO()):"",c=!l&&!uO?M.dim(" (ctrl+o to expand)"):"";if(c&&(uO=!0),r){let u=n?M.dim:M.error;s(u(`\u2514 ${r}`)+l+c)}else{let u=n?"(No content)":"(Error)",d=n?M.dim:M.error;s(d(`\u2514 ${u}`)+l+c)}}function oZ(t){console.log(M.success("\u2713 ")+t)}function aZ(t){console.log(M.warning("\u26A0 ")+t)}function lZ(t){console.log(M.error("\u2717 ")+t)}function pO(t=60){console.log(M.dim("\u2500".repeat(t)))}function cZ(t){console.log(M.logo(t)),pO(t.length)}function uZ(t){return M.thinking(`[${t}]`)}function pd(t,e){if(ud())return lO(t,e);let n=process.env.HOME??process.env.USERPROFILE??"",r=t;return n&&t.startsWith(n)&&(r="~"+t.slice(n.length)),e&&(r+=`:${e}`),M.filePath(r)}function dZ(t){return M.code(t)}function pZ(){return process.stdout.columns||80}function mZ(t,e=40){let n=process.env.HOME??process.env.USERPROFILE??"",r=t;if(n&&t.startsWith(n)&&(r="~"+t.slice(n.length)),r.length<=e)return r;let s=r.split("/").filter(o=>o.length>0);if(s.length>=2){let o=s.slice(-2).join("/");if(o.length<=e-4)return".../"+o}return".../"+(s[s.length-1]||s[s.length-2])}function fZ(t){return t.replace(/\x1b\[[0-9;]*m/g,"").length}function hZ(t,e){let n=fZ(t),r=Math.max(0,e-n);return t+" ".repeat(r)}function gZ(t){if(t<60)return`${t}s`;let e=Math.floor(t/60),n=t%60;return n>0?`${e}m ${n}s`:`${e}m`}function dO(t){return t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toString()}function yT(t){let e=pZ(),n=Math.min(e-2,76),r=n-4,s=(m,f)=>{let h=m.replace(/\x1b\[[0-9;]*m/g,"").length;return m+" ".repeat(Math.max(0,f-h))},i=m=>M.border("\u2502")+" "+s(m,r)+" "+M.border("\u2502"),o=(m,f,h,g)=>{let _=Math.floor(r/2),y=M.dim(m.padEnd(15))+f,S=M.dim(h.padEnd(15))+g;return i(s(y,_)+S)},a=gZ(t.durationSeconds),l=dO(t.tokensIn),c=dO(t.tokensOut),u=`$${t.totalCost.toFixed(4)}`,d=`${t.provider}/${t.model.replace("claude-","").replace("-latest","")}`;console.log(""),console.log(M.border("\u250C"+"\u2500".repeat(n-2)+"\u2510")),console.log(i(M.logo("Session complete. \u{1FABC}"))),console.log(M.border("\u251C"+"\u2500".repeat(n-2)+"\u2524")),console.log(i(M.logo("Session Summary"))),console.log(i(M.dim("\u2500".repeat(15)))),console.log(o("Duration",a,"Tool Calls",t.toolCalls.toString())),console.log(o("Turns",t.turns.toString(),"Files Modified",t.filesModified.toString())),console.log(i("")),console.log(i(M.logo("Token Usage"))),console.log(i(M.dim("\u2500".repeat(11)))),console.log(o("Input",l,"Output",c)),console.log(i(M.dim("Cost".padEnd(15))+u)),console.log(i("")),console.log(i(M.dim("Model: ")+M.model(d))),console.log(M.border("\u2514"+"\u2500".repeat(n-2)+"\u2518")),console.log("")}var Ho,M,uO,Yt=R(()=>{"use strict";qe();cO();yn();Ho="0.16.5",M={get logo(){return H().accent.bold},get prompt(){return H().accent.bold},get model(){return H().accent},get success(){return H().success},get warning(){return H().warning},get error(){return H().error},get thinking(){return H().dim},get filePath(){return H().filePath},get code(){return H().code},get muted(){return H().muted},get dim(){return H().dim},get safe(){return H().success},get risky(){return H().warning},get destructive(){return H().error},get border(){return H().accent},get bannerBorder(){return H().accent}};uO=!1});var Cr,ml,ST=R(()=>{"use strict";Cr={maxConcurrent:5,maxIterations:100,timeout:3e5,autoBackgroundTimeout:12e4,compressionLevel:"medium",permissionMode:"default"},ml={maxConcurrent:3,timeout:30*60*1e3,permissionMode:"dontAsk"}});var _h,TT=R(()=>{"use strict";_h=`You are an expert codebase explorer. Your task is to efficiently explore and understand codebases.
|
|
198
198
|
|
|
199
199
|
## Core Capabilities
|
|
200
200
|
You have access to these tools for codebase exploration:
|
|
@@ -3450,7 +3450,7 @@ ${f}
|
|
|
3450
3450
|
|
|
3451
3451
|
`+t,mentionedFiles:n}}var WE,Eq,VE=R(()=>{"use strict";WE=2e3,Eq=10});var sY={};Le(sY,{handleWorktree:()=>uTe});async function uTe(t){let e=t.subcommand??t.args[0]??"list",n=t.subcommand?t.args[0]:t.args[1],r=process.cwd();switch(e){case"create":{Fc()&&(console.error("Already inside a worktree. Exit first."),process.exit(1));let s=await Pc({name:n,projectPath:r});console.log(`Created worktree '${s.name}'`),console.log(` Path: ${s.path}`),console.log(` Branch: ${s.branch}`),console.log(`
|
|
3452
3452
|
To enter: cd ${s.path}`);break}case"list":{let s=await fo(r);if(s.length===0){console.log("No worktrees found.");return}console.log(`Worktrees (${s.length}):
|
|
3453
|
-
`);for(let i of s){let o=[];i.hasChanges&&o.push("modified"),i.hasCommits&&o.push("commits ahead");let a=o.length>0?` [${o.join(", ")}]`:"";console.log(` ${i.name}${a}`),console.log(` Branch: ${i.branch}`),console.log(` Path: ${i.path}`)}break}case"remove":{n||(console.error("Usage: aii worktree remove <name>"),process.exit(1));let s=await ho(n,r);switch(s.action){case"auto-removed":console.log(`Worktree '${n}' removed (no changes).`);break;case"removed":console.log(`Worktree '${n}' removed.`);break;case"kept":console.log(`Worktree '${n}' kept (${s.reason}).`);break}break}case"clean":{let{removed:s,kept:i}=await DE(r);s.length>0&&console.log(`Removed ${s.length} clean worktree(s): ${s.join(", ")}`),i.length>0&&console.log(`Kept ${i.length} worktree(s) with changes: ${i.join(", ")}`),s.length===0&&i.length===0&&console.log("No worktrees to clean.");break}default:console.error(`Unknown worktree action: ${e}`),console.error("Available: create, list, remove, clean"),process.exit(1)}}var iY=R(()=>{"use strict";go()});var aY={};Le(aY,{handleSoul:()=>dTe});async function dTe(t,e){console.warn(p.yellow("\u26A0 'aii soul' is deprecated. Use 'aii persona' instead."));let n=t.subcommand??t.args[0]??"show";switch(n){case"help":await oY(e);break;case"switch":{let r=t.subcommand?t.args[0]:t.args[1];r||(console.error(p.red("Usage: aii soul switch <name>")),console.error(p.gray(" Examples: aii soul switch doer")),console.error(p.gray(" aii soul switch clawsouls/academic-writer")),process.exit(1)),await pTe(r,e);break}case"show":{let s=(await e.load()).soul??"thinker",i=As(s);console.log(p.bold("Active soul:"),`${i.owner}/${i.name}`),s!==`${i.owner}/${i.name}`&&console.log(p.gray(` (shorthand: ${s})`));break}default:console.error(p.red(`Unknown soul action: ${n}`)),await oY(e),process.exit(1)}}async function oY(t){let e=["thinker","doer","coder"],n="thinker";try{n=(await t.load()).soul??"thinker"}catch{}console.log(""),console.log(p.yellow(" \u26A0 Soul commands are deprecated. Use persona commands instead.")),console.log(M.logo(" Soul System")),console.log(""),console.log(` Active soul: ${M.model(n)}`),console.log(""),console.log(p.yellow(" BUILT-IN SOULS:"));for(let r of e){let s=r===n?p.green("\u25BA"):" ",i=r==="thinker"?"Patient and collaborative \u2014 thinks out loud, walks through reasoning, and helps you understand the why, not just the what":r==="doer"?"Direct and efficient \u2014 leads with the answer, says it once, says it right, and every sentence earns its place":"Your pair-programming partner \u2014 reads the codebase, references specific lines and symbols, and explains what changed and why";console.log(` ${s} ${M.model(r.padEnd(10))} ${i}`)}console.log(""),console.log(p.yellow(" USAGE:")),console.log(` ${p.green("aii soul")} Show this help`),console.log(` ${p.green("aii soul show")} Show active soul`),console.log(` ${p.green("aii soul switch <name>")} Switch to a different soul`),console.log(""),console.log(p.yellow(" EXAMPLES:")),console.log(p.dim(" aii soul show")),console.log(p.dim(" aii soul switch doer")),console.log(p.dim(" aii soul switch thinker")),console.log(p.dim(" aii soul switch coder")),console.log("")}async function pTe(t,e){let n=gl[t]??t;console.warn(p.yellow(`\u26A0 'aii soul switch' is deprecated. Use 'aii persona use ${n}'`)),/^[a-z0-9/-]+$/.test(t)||(console.error(p.red(`Invalid soul name: "${t}"`)),console.error(p.gray("Names must be lowercase alphanumeric, hyphens, and optional owner/ prefix")),process.exit(1)),await e.load(),await e.set("soul",t);let r=As(t);console.log(p.green(`Switched soul to: ${r.owner}/${r.name}`)),console.log(p.gray("Takes effect on next session."))}var lY=R(()=>{"use strict";qe();Rr();Yt();as()});var dY={};Le(dY,{handleUpgrade:()=>mTe});import{execSync as cY}from"node:child_process";async function mTe(t){let e=t.args[0]||null,n="0.16.
|
|
3453
|
+
`);for(let i of s){let o=[];i.hasChanges&&o.push("modified"),i.hasCommits&&o.push("commits ahead");let a=o.length>0?` [${o.join(", ")}]`:"";console.log(` ${i.name}${a}`),console.log(` Branch: ${i.branch}`),console.log(` Path: ${i.path}`)}break}case"remove":{n||(console.error("Usage: aii worktree remove <name>"),process.exit(1));let s=await ho(n,r);switch(s.action){case"auto-removed":console.log(`Worktree '${n}' removed (no changes).`);break;case"removed":console.log(`Worktree '${n}' removed.`);break;case"kept":console.log(`Worktree '${n}' kept (${s.reason}).`);break}break}case"clean":{let{removed:s,kept:i}=await DE(r);s.length>0&&console.log(`Removed ${s.length} clean worktree(s): ${s.join(", ")}`),i.length>0&&console.log(`Kept ${i.length} worktree(s) with changes: ${i.join(", ")}`),s.length===0&&i.length===0&&console.log("No worktrees to clean.");break}default:console.error(`Unknown worktree action: ${e}`),console.error("Available: create, list, remove, clean"),process.exit(1)}}var iY=R(()=>{"use strict";go()});var aY={};Le(aY,{handleSoul:()=>dTe});async function dTe(t,e){console.warn(p.yellow("\u26A0 'aii soul' is deprecated. Use 'aii persona' instead."));let n=t.subcommand??t.args[0]??"show";switch(n){case"help":await oY(e);break;case"switch":{let r=t.subcommand?t.args[0]:t.args[1];r||(console.error(p.red("Usage: aii soul switch <name>")),console.error(p.gray(" Examples: aii soul switch doer")),console.error(p.gray(" aii soul switch clawsouls/academic-writer")),process.exit(1)),await pTe(r,e);break}case"show":{let s=(await e.load()).soul??"thinker",i=As(s);console.log(p.bold("Active soul:"),`${i.owner}/${i.name}`),s!==`${i.owner}/${i.name}`&&console.log(p.gray(` (shorthand: ${s})`));break}default:console.error(p.red(`Unknown soul action: ${n}`)),await oY(e),process.exit(1)}}async function oY(t){let e=["thinker","doer","coder"],n="thinker";try{n=(await t.load()).soul??"thinker"}catch{}console.log(""),console.log(p.yellow(" \u26A0 Soul commands are deprecated. Use persona commands instead.")),console.log(M.logo(" Soul System")),console.log(""),console.log(` Active soul: ${M.model(n)}`),console.log(""),console.log(p.yellow(" BUILT-IN SOULS:"));for(let r of e){let s=r===n?p.green("\u25BA"):" ",i=r==="thinker"?"Patient and collaborative \u2014 thinks out loud, walks through reasoning, and helps you understand the why, not just the what":r==="doer"?"Direct and efficient \u2014 leads with the answer, says it once, says it right, and every sentence earns its place":"Your pair-programming partner \u2014 reads the codebase, references specific lines and symbols, and explains what changed and why";console.log(` ${s} ${M.model(r.padEnd(10))} ${i}`)}console.log(""),console.log(p.yellow(" USAGE:")),console.log(` ${p.green("aii soul")} Show this help`),console.log(` ${p.green("aii soul show")} Show active soul`),console.log(` ${p.green("aii soul switch <name>")} Switch to a different soul`),console.log(""),console.log(p.yellow(" EXAMPLES:")),console.log(p.dim(" aii soul show")),console.log(p.dim(" aii soul switch doer")),console.log(p.dim(" aii soul switch thinker")),console.log(p.dim(" aii soul switch coder")),console.log("")}async function pTe(t,e){let n=gl[t]??t;console.warn(p.yellow(`\u26A0 'aii soul switch' is deprecated. Use 'aii persona use ${n}'`)),/^[a-z0-9/-]+$/.test(t)||(console.error(p.red(`Invalid soul name: "${t}"`)),console.error(p.gray("Names must be lowercase alphanumeric, hyphens, and optional owner/ prefix")),process.exit(1)),await e.load(),await e.set("soul",t);let r=As(t);console.log(p.green(`Switched soul to: ${r.owner}/${r.name}`)),console.log(p.gray("Takes effect on next session."))}var lY=R(()=>{"use strict";qe();Rr();Yt();as()});var dY={};Le(dY,{handleUpgrade:()=>mTe});import{execSync as cY}from"node:child_process";async function mTe(t){let e=t.args[0]||null,n="0.16.5",r=e?`${uY}@${e}`:`${uY}@latest`;console.log(""),console.log(e?`Upgrading Aii CLI to v${e}...`:"Upgrading Aii CLI to latest..."),console.log(` Current version: ${n}`),console.log("");try{cY(`npm install -g ${r}`,{stdio:"inherit",timeout:12e4})}catch{console.error(`
|
|
3454
3454
|
Upgrade failed. Try running with sudo or check npm permissions.`),console.error(` Manual: npm install -g ${r}`),process.exit(1)}try{let s=cY("aii --version 2>/dev/null",{encoding:"utf-8",timeout:1e4,stdio:"pipe"}).trim();console.log(""),console.log(s===n?`Already up to date (${n})`:`Upgraded: ${n} -> ${s}`)}catch{console.log(""),console.log("Installed. Restart your terminal to use the new version.")}}var uY,pY=R(()=>{"use strict";uY="@aiiware/aii"});var mY={};Le(mY,{handleSkillCmd:()=>hTe});function fTe(t){return t.userInvocable&&t.modelInvocable?"":t.userInvocable?"(CLI only)":t.modelInvocable?"(agent only)":"(disabled)"}async function hTe(t,e){let n=(t.subcommand??t.args[0]??"help").toLowerCase(),r=t.subcommand?t.args[0]:t.args[1]??null;switch(n){case"list":return gTe();case"info":return _Te(r);case"install":return ETe(r);case"help":default:return yTe()}}async function gTe(){let{SkillManager:t}=await Promise.resolve().then(()=>(Qs(),Wo)),e;if(t.hasInstance())e=t.getInstance();else{e=t.getInstance(process.cwd());let i;try{let{PersonaManager:o}=await Promise.resolve().then(()=>(St(),wt)),a=o.getInstance(process.cwd());await a.initialize(),a.isActive()&&(i=a.getActive()?.skillPaths)}catch{}await e.discover(i)}let n=e.getRegistry().getAll();if(n.length===0){console.log("No skills installed."),console.log(" Install one: aii skill install <owner/repo/skill>");return}let r=new Map;for(let i of n){let o=r.get(i.source)||[];o.push(i),r.set(i.source,o)}let s=["project","user","persona-bundled","universal","built-in","plugin","remote"];console.log(""),console.log(" Name Source Invocation Description"),console.log(" \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500");for(let i of s){let o=r.get(i);if(o)for(let a of o){let l=a.name.padEnd(18),c=a.source.padEnd(16),u=fTe(a).padEnd(14),d=(a.description||"").slice(0,34);console.log(` ${l}${c}${u}${d}`)}}console.log("")}async function _Te(t){if(!t){console.log("Usage: aii skill info <name>");return}let{SkillManager:e}=await Promise.resolve().then(()=>(Qs(),Wo)),n;if(e.hasInstance())n=e.getInstance();else{n=e.getInstance(process.cwd());let s;try{let{PersonaManager:i}=await Promise.resolve().then(()=>(St(),wt)),o=i.getInstance(process.cwd());await o.initialize(),o.isActive()&&(s=o.getActive()?.skillPaths)}catch{}await n.discover(s)}let r=n.getRegistry().getByName(t);if(!r){let i=n.getRegistry().getAll().map(o=>o.name).join(", ");console.error(`Skill "${t}" not found.`),i&&console.error(`Available skills: ${i}`),process.exit(1)}console.log(""),console.log(` Name: ${r.name}`),console.log(` Source: ${r.source}`),console.log(` Description: ${r.description||"(none)"}`),console.log(` Invocable: ${[r.userInvocable?"user":"",r.modelInvocable?"model":""].filter(Boolean).join(" + ")||"none"}`),r.allowedTools?.length&&console.log(` Tools: ${r.allowedTools.join(" ")}`),console.log(` Path: ${r.path||"(embedded)"}`),console.log("")}async function ETe(t){if(!t){console.log("Usage: aii skill install <owner/repo/skill>");return}let{SkillInstaller:e}=await Promise.resolve().then(()=>(Md(),Lh)),n=new e({projectRoot:process.cwd()});try{let r=await n.install(t,{scope:"user"});r.success?(console.log(`Installed skill: ${r.skillName}`),r.installPath&&console.log(` Location: ${r.installPath}`)):(console.error(`Failed to install skill: ${r.error||"Unknown error"}`),process.exit(1))}catch(r){let s=r instanceof Error?r.message:String(r);console.error(`Failed to install skill: ${s}`),process.exit(1)}}function yTe(){let t=[""];t.push(p.cyan.bold(" Skill System")),t.push(""),t.push(p.yellow(" USAGE:")),t.push(` ${p.green("aii skill list")} List all available skills`),t.push(` ${p.green("aii skill info <name>")} Show details for a skill`),t.push(` ${p.green("aii skill install <ref>")} Install a skill from GitHub`),t.push(` ${p.green("aii skill help")} Show this help`),t.push(""),t.push(p.yellow(" EXAMPLES:")),t.push(p.dim(" aii skill list")),t.push(p.dim(" aii skill info commit")),t.push(p.dim(" aii skill install aiiware/aii-skills/skills/commit --user")),t.push(""),console.log(t.join(`
|
|
3455
3455
|
`))}var fY=R(()=>{"use strict";qe()});var hY={};Le(hY,{handlePluginCmd:()=>STe});async function STe(t,e){let n=(t.subcommand??t.args[0]??"help").toLowerCase(),r=t.subcommand?t.args[0]:t.args[1]??null,s=t.subcommand?t.args.slice(1):t.args.slice(2);switch(n){case"install":return TTe(r,s);case"uninstall":case"remove":return bTe(r);case"update":return CTe(r);case"list":case"ls":return wTe();case"help":default:return kTe()}}async function TTe(t,e){if(!t){console.log("Usage: aii plugin install <owner/repo>");return}let{PluginInstaller:n}=await Promise.resolve().then(()=>(Yi(),Yo)),r=e.includes("--force")||e.includes("-f"),s=t,i;if(t.includes("@")){let a=t.lastIndexOf("@");s=t.slice(0,a),i=t.slice(a+1)}let o=new n({onProgress:a=>console.log(` ${p.dim(a)}`)});try{console.log(""),console.log(` Installing plugin from ${p.cyan(s)}...`),console.log("");let a=await o.install(s,{version:i,force:r});a.success?(console.log(""),console.log(` ${p.green("\u2713")} Plugin ${p.bold(a.pluginName)} v${a.version} installed`),console.log(` ${a.skillCount} skills available (use ${p.cyan("aii skill list")} to see them)`),a.installPath&&console.log(` Stored in ${p.dim(a.installPath)}`),console.log("")):(console.error(` ${p.red("\u2717")} ${a.error||"Unknown error"}`),process.exit(1))}catch(a){let l=a instanceof Error?a.message:String(a);console.error(` ${p.red("\u2717")} Failed to install plugin: ${l}`),process.exit(1)}}async function bTe(t){if(!t){console.log("Usage: aii plugin uninstall <name>");return}let{PluginInstaller:e}=await Promise.resolve().then(()=>(Yi(),Yo)),n=new e;try{let r=await n.uninstall(t);r.success?(console.log(""),console.log(` ${p.green("\u2713")} Plugin ${p.bold(t)} uninstalled`),r.skillCount&&console.log(` ${r.skillCount} skills removed`),console.log("")):(console.error(` ${p.red("\u2717")} ${r.error||"Unknown error"}`),process.exit(1))}catch(r){let s=r instanceof Error?r.message:String(r);console.error(` ${p.red("\u2717")} Failed to uninstall plugin: ${s}`),process.exit(1)}}async function CTe(t){if(!t){console.log("Usage: aii plugin update <name>");return}let{PluginInstaller:e}=await Promise.resolve().then(()=>(Yi(),Yo)),n=new e({onProgress:r=>console.log(` ${p.dim(r)}`)});try{console.log(""),console.log(` Checking for updates to ${p.cyan(t)}...`);let r=await n.update(t);r.success?(r.error?.includes("already up to date")?console.log(` ${p.green("\u2713")} ${r.error}`):(console.log(` ${p.green("\u2713")} Plugin ${p.bold(t)} updated to v${r.version}`),r.skillCount&&console.log(` ${r.skillCount} skills available`)),console.log("")):(console.error(` ${p.red("\u2717")} ${r.error||"Unknown error"}`),process.exit(1))}catch(r){let s=r instanceof Error?r.message:String(r);console.error(` ${p.red("\u2717")} Failed to update plugin: ${s}`),process.exit(1)}}async function wTe(){let{PluginManager:t}=await Promise.resolve().then(()=>(Rd(),Nd)),n=await new t().listInstalled();if(n.length===0){console.log(""),console.log(" No plugins installed."),console.log(` Install one: ${p.cyan("aii plugin install <owner/repo>")}`),console.log("");return}console.log(""),console.log(p.bold(" INSTALLED PLUGINS")),console.log(""),console.log(" Name Version Skills Installed"),console.log(" \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500");for(let r of n){let s=r.name.padEnd(18),i=`v${r.version}`.padEnd(12),o=String(r.skillCount).padEnd(8),a=new Date(r.installedAt).toLocaleDateString();console.log(` ${s}${i}${o}${a}`)}console.log("")}function kTe(){let t=[""];t.push(p.cyan.bold("Plugin System")),t.push(""),t.push(p.yellow("USAGE:")),t.push(` ${p.green("aii plugin install <source>")} Install a plugin from GitHub`),t.push(` ${p.green("aii plugin uninstall <name>")} Uninstall a plugin`),t.push(` ${p.green("aii plugin update <name>")} Update a plugin to latest`),t.push(` ${p.green("aii plugin list")} List installed plugins`),t.push(` ${p.green("aii plugin help")} Show this help`),t.push(""),t.push(p.yellow("EXAMPLES:")),t.push(p.dim(" aii plugin install aiiware/aii-skills")),t.push(p.dim(" aii plugin install aiiware/aii-skills@v0.1.0")),t.push(p.dim(" aii plugin list")),t.push(p.dim(" aii plugin update aii-skills")),t.push(p.dim(" aii plugin uninstall aii-skills")),t.push(""),console.log(t.join(`
|
|
3456
3456
|
`))}var gY=R(()=>{"use strict";qe()});var _Y={};Le(_Y,{handlePersona:()=>vTe});async function vTe(t,e){let n=(t.subcommand??t.args[0]??"help").toLowerCase(),r=t.subcommand?t.args[0]??null:t.args[1]??null;switch(n){case"install":{let s=t.flags.yes||process.argv.includes("--force");return ATe(r,s)}case"use":return DTe(r);case"list":return ITe();case"status":return NTe();case"show":return RTe(t.args.slice(1));case"add":return OTe(t.args.slice(1));case"remove":return xTe(t.args.slice(1));case"set":return MTe(t.args.slice(1));case"reset":return LTe(t.args.slice(1));case"help":default:return PTe()}}async function ATe(t,e=!1){if(!t){console.log("Usage: aii persona install <name> [--force]");return}let{PersonaInstaller:n}=await Promise.resolve().then(()=>(HE(),zE)),r=new n;try{let s=await r.install(t,{force:e});if(!s.isNew){console.log(`${s.name} v${s.version} already installed.`),console.log(" Use --force to re-install from source.");return}console.log(`Installed ${s.name} v${s.version}`);let i=s.manifest,o=i.skills?.length||i.components?.skills?.filter(d=>d.source==="bundled").length||0,a=!!(i.soul||i.components?.soul),l=!!(i.hooks||i.components?.hooks),c=!!(i.theme||i.components?.theme),u=[];u.push(`Skills: ${o} bundled`),a&&u.push("Soul: yes"),l&&u.push("Hooks: yes"),c&&u.push(`Theme: ${typeof i.theme=="string"?i.theme:"yes"}`),console.log(` ${u.join(" | ")}`)}catch(s){let i=s instanceof Error?s.message:String(s);console.error(`Error: ${i}`),process.exit(1)}}async function DTe(t){if(!t&&!process.argv.includes("--none")){console.log("Usage: aii persona use <name>"),console.log(" aii persona use --none (deactivate)");return}let{PersonaManager:e}=await Promise.resolve().then(()=>(St(),wt)),n=e.getInstance(process.cwd());if(await n.initialize(),!t||t==="--none"||process.argv.includes("--none")){await n.deactivate();let r=n.getActive(),s=r?.manifest.displayName??r?.manifest.name??"Aii Thinker",i=r?.state.name??"aiiware/thinker";console.log(`Persona: ${s} (${i}) [BUILT-IN]
|
|
@@ -3470,7 +3470,7 @@ Upgrade failed. Try running with sudo or check npm permissions.`),console.error(
|
|
|
3470
3470
|
${t}
|
|
3471
3471
|
</context>
|
|
3472
3472
|
|
|
3473
|
-
${e}`:e}var QY="0.16.4",XY=new Set(["--clean","--standard","--thinking","-v","--verbose","-d","--debug","--model","--openrouter-provider","--host","-y","--yes","--offline","-D","--direct","-i","--interactive","-c","--continue-chat","-n","--new-chat","--auto","--auto-background-timeout","--no-colors","--colors","--no-emojis","--emojis","--no-animations","--animations","--no-streaming","--streaming","--show-tokens","--show-cost","--output-format","--tools","--exclude-tools","-h","--help","-V","--version"]),JY=new Set(["--model","--openrouter-provider","--host","-c","--continue-chat","--auto-background-timeout","--output-format","--tools","--exclude-tools"]);function ZY(t){let e=[];for(let n=0;n<t.length;n++){if(XY.has(t[n])){JY.has(t[n])&&n++;continue}e.push(t[n])}return e}function eW(){let t=new vA;return t.name("aii").description("AI-powered CLI assistant").version(QY,"-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 (e.g., ollama/llama3.1:8b, deepseek/deepseek-chat)").option("--openrouter-provider <slug>","Pin OpenRouter requests to a specific backend provider").option("--host <host>","API server host:port").option("-y, --yes","Auto-confirm shell commands").option("--offline","Offline mode (no web/MCP)").option("-D, --direct","Direct mode (bypass server intent recognition)").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("--auto-background-timeout <seconds>","Auto-convert foreground agents to background after N seconds (0 to disable)","120").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("--output-format <format>","Output format: json or stream-json (one-shot only)").option("--tools <list>",'Allowlist of tools (comma-separated, e.g., "Read,Bash,Edit")').option("--exclude-tools <list>",'Exclude tools (comma-separated, e.g., "WebSearch,WebFetch")').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)").allowUnknownOption().helpOption(!1).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("install [target...]").description("Install or update Aii CLI, skills, or MCP servers").allowUnknownOption().helpOption(!1).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("telegram").description("Telegram bot channel (chat with Aii from Telegram)").argument("[action]","Action: start, pair, status, unpair").argument("[args...]","Additional arguments").allowUnknownOption().action(()=>{}),t.command("sessions").description("Manage server sessions (list, info, resume, rename, delete)").argument("[action]","Action: list, info, resume, rename, delete").argument("[args...]","Additional arguments (session ID, name, etc.)").allowUnknownOption().action(()=>{}),t.command("worktree").description("Manage git worktrees for isolated development").argument("[action]","Action: create, list, remove, clean").argument("[name]","Worktree name (for create/remove)").allowUnknownOption().action(()=>{}),t.command("soul").description("Manage agent soul (personality & identity)").argument("[action]","Action: switch, show").argument("[name]","Soul name (for switch)").allowUnknownOption().action(()=>{}),t.command("skill").description("Manage AI skills").allowUnknownOption().passThroughOptions().action(()=>{}),t.command("plugin").description("Manage skill plugins").allowUnknownOption().passThroughOptions().action(()=>{}),t.command("persona").description("Manage workspace personas").allowUnknownOption().passThroughOptions().action(()=>{}),t.command("upgrade").description("Update Aii CLI to latest version").argument("[version]","Target version (default: latest)").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 DA(t){let e=eW();e.exitOverride(),e.configureOutput({writeErr:()=>{}});let n="query",r,s=[];try{e.parse(t),s=e.args;let c=e.args[0];c&&["config","mcp","prompt","stats","history","doctor","install","chat","run","help","version","agent","loop","telegram","sessions","worktree","soul","skill","plugin","persona","upgrade"].includes(c)&&(n=c,r=e.args[1],s=e.args.slice(2))}catch(c){c instanceof kA&&(c.code==="commander.version"||c.code==="commander.helpDisplayed")&&process.exit(0),s=ZY(t.slice(2))}let i=e.opts(),o={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,openrouterProvider:i.openrouterProvider,yes:i.yes??!1,offline:i.offline??!1,direct:i.direct??!1,interactive:i.interactive??!1,continueChat:i.continueChat,newChat:i.newChat??!1,auto:i.auto??!1,quiet:!1,autoBackgroundTimeout:(()=>{let c=parseInt(i.autoBackgroundTimeout??"120",10);return isNaN(c)||c===0?0:Math.max(30,Math.min(600,c))*1e3})(),noColors:!i.colors,noEmojis:!i.emojis,noAnimations:!i.animations,noStreaming:!i.streaming,showTokens:i.showTokens??!1,showCost:i.showCost??!1,outputFormat:i.outputFormat,tools:i.tools,excludeTools:i.excludeTools,help:i.help??!1,version:i.version??!1},a;B1()&&(a=await AA()),(n==="chat"||o.interactive)&&(n="agent"),n==="query"&&!s.length&&!a&&(n="agent");let l;if(n==="query"&&s.length>0)l=s.join(" ");else if(n==="agent"){let c=[];r&&c.push(r),s.length>0&&c.push(...s),c.length>0&&(l=c.join(" "))}return{command:n,subcommand:r,args:s,flags:o,stdinContent:a,query:l}}var Ae;(function(t){t[t.LOCAL=1]="LOCAL",t[t.SERVER=2]="SERVER"})(Ae||(Ae={}));var $1={translate:"clean",shell:"clean",shell_generate:"clean",mcp:"standard",explain:"standard",code_generate:"standard",code_review:"standard",summarize:"standard",research:"standard",_default:"standard"};function Co(t,e,n,r){return t.clean?"clean":t.thinking||t.verbose?"thinking":t.standard?"standard":e&&n?.[e]?n[e]:e&&$1[e]?$1[e]:r||$1._default}var IA={config:Ae.LOCAL,help:Ae.LOCAL,version:Ae.LOCAL,doctor:Ae.LOCAL,mcp:Ae.LOCAL,prompt:Ae.LOCAL,stats:Ae.LOCAL,history:Ae.LOCAL,query:Ae.SERVER,chat:Ae.SERVER,run:Ae.SERVER,agent:Ae.SERVER,loop:Ae.SERVER,telegram:Ae.SERVER,sessions:Ae.SERVER,install:Ae.LOCAL,worktree:Ae.LOCAL,soul:Ae.LOCAL,skill:Ae.LOCAL,plugin:Ae.LOCAL,persona:Ae.LOCAL,upgrade:Ae.LOCAL};function G1(t){let e=IA[t.command]??Ae.SERVER;switch(t.command){case"config":return tW(t);case"mcp":return nW(t);case"prompt":return rW(t);case"stats":return sW(t);case"history":return iW(t);case"doctor":return{tier:Ae.LOCAL,handler:"doctor",params:{}};case"install":return{tier:Ae.LOCAL,handler:"install",params:{}};case"chat":return{tier:Ae.SERVER,handler:"chat",params:{continueChat:t.flags.continueChat}};case"run":return aW(t);case"agent":return{tier:Ae.SERVER,handler:"agent",params:{interactive:!t.query}};case"loop":return{tier:Ae.SERVER,handler:"loop",params:{}};case"telegram":return{tier:Ae.SERVER,handler:"telegram",params:{action:t.subcommand??t.args[0]??"start"}};case"sessions":return{tier:Ae.SERVER,handler:"sessions",params:{action:t.subcommand??t.args[0]??"list"}};case"worktree":return{tier:Ae.LOCAL,handler:"worktree",params:{action:t.subcommand??t.args[0]??"list",name:t.subcommand?t.args[0]:t.args[1]}};case"soul":return{tier:Ae.LOCAL,handler:"soul",params:{action:t.subcommand??t.args[0]??"show",name:t.subcommand?t.args[0]:t.args[1]}};case"skill":return{tier:Ae.LOCAL,handler:"skill",params:{action:t.args[0]||"help",target:t.args[1]||null,extraArgs:t.args.slice(2)}};case"plugin":return{tier:Ae.LOCAL,handler:"plugin",params:{action:t.args[0]||"help",target:t.args[1]||null,extraArgs:t.args.slice(2)}};case"persona":return{tier:Ae.LOCAL,handler:"persona",params:{action:t.args[0]||"help",target:t.args[1]||null,extraArgs:t.args.slice(2)}};case"upgrade":return{tier:Ae.LOCAL,handler:"upgrade",params:{version:t.args[0]||null}};case"help":return{tier:Ae.LOCAL,handler:"help",params:{command:t.subcommand}};case"version":return{tier:Ae.LOCAL,handler:"version",params:{}};case"query":default:return{tier:e,handler:"query",params:{query:t.query,stdinContent:t.stdinContent}}}}function tW(t){let e=t.subcommand??t.args[0]??"show";return{tier:Ae.LOCAL,handler:`config:${e}`,params:{key:t.args[0],value:t.args[1]}}}function nW(t){let e=t.subcommand??t.args[0]??"list";return{tier:Ae.LOCAL,handler:`mcp:${e}`,params:{name:t.args[0],args:t.args.slice(1)}}}function rW(t){let e=t.subcommand??t.args[0]??"list";return{tier:Ae.LOCAL,handler:`prompt:${e}`,params:{name:t.args[0],args:t.args.slice(1)}}}function sW(t){let e=t.subcommand??t.args[0];return{tier:Ae.LOCAL,handler:e?`stats:${e}`:"stats",params:{}}}function iW(t){let e=t.subcommand??t.args[0]??"list";return{tier:Ae.LOCAL,handler:`history:${e}`,params:{query:t.args[0],id:t.args[0]}}}var oW=new Set(["--model","--host","--continue-chat","-c"]);function aW(t){let e=[];t.subcommand&&e.push(t.subcommand);let n=[];for(let s=0;s<t.args.length;s++){let i=t.args[s];if(oW.has(i)){s++;continue}i.startsWith("-")||n.push(i)}e.push(...n);let r=e.join(" ");return{tier:Ae.SERVER,handler:"run",params:{operation:r}}}vn();qe();import{createInterface as j1e}from"readline";import{spawn as V1e}from"child_process";VS();$r();ft();var CJ={timeout:12e4,retries:3,retryDelay:1e3},br=class{options;ws=null;activityTimeout=null;mcpExecutor=null;constructor(e){this.options={...CJ,...e}}async initializeMCP(){if(!this.mcpExecutor){let{ClientMCPExecutor:e}=await Promise.resolve().then(()=>(cl(),ll));this.mcpExecutor=new e,await this.mcpExecutor.initialize(),Y(`MCP executor initialized with ${this.mcpExecutor.getConnectionCount()} connections`)}}async executeRequest(e,n){let r=null;for(let s=0;s<this.options.retries;s++)try{return await this.executeWithRetry(e,n)}catch(i){if(r=i instanceof Error?i:new Error(String(i)),Y(`Attempt ${s+1} failed: ${r.message}`),r instanceof Ku||r.message.includes("Authentication"))throw r;if(s<this.options.retries-1){let o=this.options.retryDelay*Math.pow(2,s);Y(`Retrying in ${o}ms...`),await this.sleep(o)}}throw r??new Vu("Max retries exceeded")}async executeWithRetry(e,n){return new Promise((r,s)=>{let i=this.buildWebSocketUrl();Y(`Connecting to ${i}`);try{this.ws=new Hr(i)}catch{let l=new URL(this.options.url);s(new Wu(l.hostname||"localhost",l.port||"26169"));return}let o=!1,a=null;this.resetActivityTimeout(()=>{o||(this.cleanup(),s(new ju("WebSocket activity",this.options.timeout)))}),this.ws.on("open",()=>{Y("WebSocket connected, sending request"),this.ws?.send(JSON.stringify(e))}),this.ws.on("message",l=>{this.resetActivityTimeout(()=>{o||(this.cleanup(),s(new ju("WebSocket activity",this.options.timeout)))});try{let c=JSON.parse(l.toString());this.handleMessage(c,n,u=>{o=!0,a=u,this.cleanup(),r(u)},u=>{o=!0,this.cleanup(),s(u)})}catch(c){let u=l?String(l):"<undefined>";Y(`Failed to parse message: ${u}`),o||(o=!0,this.cleanup(),s(new Error(`Failed to parse server message: ${c.message}`)))}}),this.ws.on("error",l=>{if(Y(`WebSocket error: ${l.message}`),!o){o=!0,this.cleanup();let c=new URL(this.options.url);s(new Wu(c.hostname||"localhost",c.port||"26169"))}}),this.ws.on("close",(l,c)=>{Y(`WebSocket closed: ${l} ${c.toString()}`),o||(o=!0,this.cleanup(),a?r(a):s(new Vu(`Connection closed unexpectedly: ${l}`)))})})}handleMessage(e,n,r,s){switch(e.type){case"token":{let i=e;n?.onToken?.(i.data);break}case"complete":{let i=e,o=i.metadata||{},a=this.convertServerMetadata(i),l={result:i.result,metadata:a,clientSideExecution:o.client_side_execution===!0,userRequest:o.user_request};n?.onComplete?.(l),r(l);break}case"error":{let i=e,o=new Ku(i.code,i.message);n?.onError?.(o),s(o);break}case"mcp_query_tools":{Y("Received mcp_query_tools request"),this.handleMCPQueryTools(e);break}case"mcp_tool_request":{Y("Received mcp_tool_request"),this.handleMCPToolRequest(e);break}default:Y(`Unknown message type: ${e.type}`)}}convertServerMetadata(e){let n=e.metadata||{},r,s;n.tokens?(r=n.tokens.input,s=n.tokens.output):(r=n.input_tokens,s=n.output_tokens);let i=n.cost??n.cost_usd,o=n.execution_time??n.total_time;return{function_name:e.function_name,tokens_in:r,tokens_out:s,cost:typeof i=="number"?i:void 0,model:typeof n.model=="string"?n.model:void 0,provider:typeof n.provider=="string"?n.provider:void 0,execution_time:typeof o=="number"?o: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:r}=await Promise.resolve().then(()=>(cl(),ll));this.mcpExecutor=new r,await this.mcpExecutor.initialize()}let n=await this.mcpExecutor.handleQueryTools(e);this.ws?.send(JSON.stringify(n))}catch(n){let r=n instanceof Error?n.message:String(n),s=n instanceof Error?n.stack:void 0;Y(`Error handling mcp_query_tools: ${r}${s?`
|
|
3473
|
+
${e}`:e}var QY="0.16.5",XY=new Set(["--clean","--standard","--thinking","-v","--verbose","-d","--debug","--model","--openrouter-provider","--host","-y","--yes","--offline","-D","--direct","-i","--interactive","-c","--continue-chat","-n","--new-chat","--auto","--auto-background-timeout","--no-colors","--colors","--no-emojis","--emojis","--no-animations","--animations","--no-streaming","--streaming","--show-tokens","--show-cost","--output-format","--tools","--exclude-tools","-h","--help","-V","--version"]),JY=new Set(["--model","--openrouter-provider","--host","-c","--continue-chat","--auto-background-timeout","--output-format","--tools","--exclude-tools"]);function ZY(t){let e=[];for(let n=0;n<t.length;n++){if(XY.has(t[n])){JY.has(t[n])&&n++;continue}e.push(t[n])}return e}function eW(){let t=new vA;return t.name("aii").description("AI-powered CLI assistant").version(QY,"-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 (e.g., ollama/llama3.1:8b, deepseek/deepseek-chat)").option("--openrouter-provider <slug>","Pin OpenRouter requests to a specific backend provider").option("--host <host>","API server host:port").option("-y, --yes","Auto-confirm shell commands").option("--offline","Offline mode (no web/MCP)").option("-D, --direct","Direct mode (bypass server intent recognition)").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("--auto-background-timeout <seconds>","Auto-convert foreground agents to background after N seconds (0 to disable)","120").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("--output-format <format>","Output format: json or stream-json (one-shot only)").option("--tools <list>",'Allowlist of tools (comma-separated, e.g., "Read,Bash,Edit")').option("--exclude-tools <list>",'Exclude tools (comma-separated, e.g., "WebSearch,WebFetch")').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)").allowUnknownOption().helpOption(!1).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("install [target...]").description("Install or update Aii CLI, skills, or MCP servers").allowUnknownOption().helpOption(!1).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("telegram").description("Telegram bot channel (chat with Aii from Telegram)").argument("[action]","Action: start, pair, status, unpair").argument("[args...]","Additional arguments").allowUnknownOption().action(()=>{}),t.command("sessions").description("Manage server sessions (list, info, resume, rename, delete)").argument("[action]","Action: list, info, resume, rename, delete").argument("[args...]","Additional arguments (session ID, name, etc.)").allowUnknownOption().action(()=>{}),t.command("worktree").description("Manage git worktrees for isolated development").argument("[action]","Action: create, list, remove, clean").argument("[name]","Worktree name (for create/remove)").allowUnknownOption().action(()=>{}),t.command("soul").description("Manage agent soul (personality & identity)").argument("[action]","Action: switch, show").argument("[name]","Soul name (for switch)").allowUnknownOption().action(()=>{}),t.command("skill").description("Manage AI skills").allowUnknownOption().passThroughOptions().action(()=>{}),t.command("plugin").description("Manage skill plugins").allowUnknownOption().passThroughOptions().action(()=>{}),t.command("persona").description("Manage workspace personas").allowUnknownOption().passThroughOptions().action(()=>{}),t.command("upgrade").description("Update Aii CLI to latest version").argument("[version]","Target version (default: latest)").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 DA(t){let e=eW();e.exitOverride(),e.configureOutput({writeErr:()=>{}});let n="query",r,s=[];try{e.parse(t),s=e.args;let c=e.args[0];c&&["config","mcp","prompt","stats","history","doctor","install","chat","run","help","version","agent","loop","telegram","sessions","worktree","soul","skill","plugin","persona","upgrade"].includes(c)&&(n=c,r=e.args[1],s=e.args.slice(2))}catch(c){c instanceof kA&&(c.code==="commander.version"||c.code==="commander.helpDisplayed")&&process.exit(0),s=ZY(t.slice(2))}let i=e.opts(),o={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,openrouterProvider:i.openrouterProvider,yes:i.yes??!1,offline:i.offline??!1,direct:i.direct??!1,interactive:i.interactive??!1,continueChat:i.continueChat,newChat:i.newChat??!1,auto:i.auto??!1,quiet:!1,autoBackgroundTimeout:(()=>{let c=parseInt(i.autoBackgroundTimeout??"120",10);return isNaN(c)||c===0?0:Math.max(30,Math.min(600,c))*1e3})(),noColors:!i.colors,noEmojis:!i.emojis,noAnimations:!i.animations,noStreaming:!i.streaming,showTokens:i.showTokens??!1,showCost:i.showCost??!1,outputFormat:i.outputFormat,tools:i.tools,excludeTools:i.excludeTools,help:i.help??!1,version:i.version??!1},a;B1()&&(a=await AA()),(n==="chat"||o.interactive)&&(n="agent"),n==="query"&&!s.length&&!a&&(n="agent");let l;if(n==="query"&&s.length>0)l=s.join(" ");else if(n==="agent"){let c=[];r&&c.push(r),s.length>0&&c.push(...s),c.length>0&&(l=c.join(" "))}return{command:n,subcommand:r,args:s,flags:o,stdinContent:a,query:l}}var Ae;(function(t){t[t.LOCAL=1]="LOCAL",t[t.SERVER=2]="SERVER"})(Ae||(Ae={}));var $1={translate:"clean",shell:"clean",shell_generate:"clean",mcp:"standard",explain:"standard",code_generate:"standard",code_review:"standard",summarize:"standard",research:"standard",_default:"standard"};function Co(t,e,n,r){return t.clean?"clean":t.thinking||t.verbose?"thinking":t.standard?"standard":e&&n?.[e]?n[e]:e&&$1[e]?$1[e]:r||$1._default}var IA={config:Ae.LOCAL,help:Ae.LOCAL,version:Ae.LOCAL,doctor:Ae.LOCAL,mcp:Ae.LOCAL,prompt:Ae.LOCAL,stats:Ae.LOCAL,history:Ae.LOCAL,query:Ae.SERVER,chat:Ae.SERVER,run:Ae.SERVER,agent:Ae.SERVER,loop:Ae.SERVER,telegram:Ae.SERVER,sessions:Ae.SERVER,install:Ae.LOCAL,worktree:Ae.LOCAL,soul:Ae.LOCAL,skill:Ae.LOCAL,plugin:Ae.LOCAL,persona:Ae.LOCAL,upgrade:Ae.LOCAL};function G1(t){let e=IA[t.command]??Ae.SERVER;switch(t.command){case"config":return tW(t);case"mcp":return nW(t);case"prompt":return rW(t);case"stats":return sW(t);case"history":return iW(t);case"doctor":return{tier:Ae.LOCAL,handler:"doctor",params:{}};case"install":return{tier:Ae.LOCAL,handler:"install",params:{}};case"chat":return{tier:Ae.SERVER,handler:"chat",params:{continueChat:t.flags.continueChat}};case"run":return aW(t);case"agent":return{tier:Ae.SERVER,handler:"agent",params:{interactive:!t.query}};case"loop":return{tier:Ae.SERVER,handler:"loop",params:{}};case"telegram":return{tier:Ae.SERVER,handler:"telegram",params:{action:t.subcommand??t.args[0]??"start"}};case"sessions":return{tier:Ae.SERVER,handler:"sessions",params:{action:t.subcommand??t.args[0]??"list"}};case"worktree":return{tier:Ae.LOCAL,handler:"worktree",params:{action:t.subcommand??t.args[0]??"list",name:t.subcommand?t.args[0]:t.args[1]}};case"soul":return{tier:Ae.LOCAL,handler:"soul",params:{action:t.subcommand??t.args[0]??"show",name:t.subcommand?t.args[0]:t.args[1]}};case"skill":return{tier:Ae.LOCAL,handler:"skill",params:{action:t.args[0]||"help",target:t.args[1]||null,extraArgs:t.args.slice(2)}};case"plugin":return{tier:Ae.LOCAL,handler:"plugin",params:{action:t.args[0]||"help",target:t.args[1]||null,extraArgs:t.args.slice(2)}};case"persona":return{tier:Ae.LOCAL,handler:"persona",params:{action:t.args[0]||"help",target:t.args[1]||null,extraArgs:t.args.slice(2)}};case"upgrade":return{tier:Ae.LOCAL,handler:"upgrade",params:{version:t.args[0]||null}};case"help":return{tier:Ae.LOCAL,handler:"help",params:{command:t.subcommand}};case"version":return{tier:Ae.LOCAL,handler:"version",params:{}};case"query":default:return{tier:e,handler:"query",params:{query:t.query,stdinContent:t.stdinContent}}}}function tW(t){let e=t.subcommand??t.args[0]??"show";return{tier:Ae.LOCAL,handler:`config:${e}`,params:{key:t.args[0],value:t.args[1]}}}function nW(t){let e=t.subcommand??t.args[0]??"list";return{tier:Ae.LOCAL,handler:`mcp:${e}`,params:{name:t.args[0],args:t.args.slice(1)}}}function rW(t){let e=t.subcommand??t.args[0]??"list";return{tier:Ae.LOCAL,handler:`prompt:${e}`,params:{name:t.args[0],args:t.args.slice(1)}}}function sW(t){let e=t.subcommand??t.args[0];return{tier:Ae.LOCAL,handler:e?`stats:${e}`:"stats",params:{}}}function iW(t){let e=t.subcommand??t.args[0]??"list";return{tier:Ae.LOCAL,handler:`history:${e}`,params:{query:t.args[0],id:t.args[0]}}}var oW=new Set(["--model","--host","--continue-chat","-c"]);function aW(t){let e=[];t.subcommand&&e.push(t.subcommand);let n=[];for(let s=0;s<t.args.length;s++){let i=t.args[s];if(oW.has(i)){s++;continue}i.startsWith("-")||n.push(i)}e.push(...n);let r=e.join(" ");return{tier:Ae.SERVER,handler:"run",params:{operation:r}}}vn();qe();import{createInterface as j1e}from"readline";import{spawn as V1e}from"child_process";VS();$r();ft();var CJ={timeout:12e4,retries:3,retryDelay:1e3},br=class{options;ws=null;activityTimeout=null;mcpExecutor=null;constructor(e){this.options={...CJ,...e}}async initializeMCP(){if(!this.mcpExecutor){let{ClientMCPExecutor:e}=await Promise.resolve().then(()=>(cl(),ll));this.mcpExecutor=new e,await this.mcpExecutor.initialize(),Y(`MCP executor initialized with ${this.mcpExecutor.getConnectionCount()} connections`)}}async executeRequest(e,n){let r=null;for(let s=0;s<this.options.retries;s++)try{return await this.executeWithRetry(e,n)}catch(i){if(r=i instanceof Error?i:new Error(String(i)),Y(`Attempt ${s+1} failed: ${r.message}`),r instanceof Ku||r.message.includes("Authentication"))throw r;if(s<this.options.retries-1){let o=this.options.retryDelay*Math.pow(2,s);Y(`Retrying in ${o}ms...`),await this.sleep(o)}}throw r??new Vu("Max retries exceeded")}async executeWithRetry(e,n){return new Promise((r,s)=>{let i=this.buildWebSocketUrl();Y(`Connecting to ${i}`);try{this.ws=new Hr(i)}catch{let l=new URL(this.options.url);s(new Wu(l.hostname||"localhost",l.port||"26169"));return}let o=!1,a=null;this.resetActivityTimeout(()=>{o||(this.cleanup(),s(new ju("WebSocket activity",this.options.timeout)))}),this.ws.on("open",()=>{Y("WebSocket connected, sending request"),this.ws?.send(JSON.stringify(e))}),this.ws.on("message",l=>{this.resetActivityTimeout(()=>{o||(this.cleanup(),s(new ju("WebSocket activity",this.options.timeout)))});try{let c=JSON.parse(l.toString());this.handleMessage(c,n,u=>{o=!0,a=u,this.cleanup(),r(u)},u=>{o=!0,this.cleanup(),s(u)})}catch(c){let u=l?String(l):"<undefined>";Y(`Failed to parse message: ${u}`),o||(o=!0,this.cleanup(),s(new Error(`Failed to parse server message: ${c.message}`)))}}),this.ws.on("error",l=>{if(Y(`WebSocket error: ${l.message}`),!o){o=!0,this.cleanup();let c=new URL(this.options.url);s(new Wu(c.hostname||"localhost",c.port||"26169"))}}),this.ws.on("close",(l,c)=>{Y(`WebSocket closed: ${l} ${c.toString()}`),o||(o=!0,this.cleanup(),a?r(a):s(new Vu(`Connection closed unexpectedly: ${l}`)))})})}handleMessage(e,n,r,s){switch(e.type){case"token":{let i=e;n?.onToken?.(i.data);break}case"complete":{let i=e,o=i.metadata||{},a=this.convertServerMetadata(i),l={result:i.result,metadata:a,clientSideExecution:o.client_side_execution===!0,userRequest:o.user_request};n?.onComplete?.(l),r(l);break}case"error":{let i=e,o=new Ku(i.code,i.message);n?.onError?.(o),s(o);break}case"mcp_query_tools":{Y("Received mcp_query_tools request"),this.handleMCPQueryTools(e);break}case"mcp_tool_request":{Y("Received mcp_tool_request"),this.handleMCPToolRequest(e);break}default:Y(`Unknown message type: ${e.type}`)}}convertServerMetadata(e){let n=e.metadata||{},r,s;n.tokens?(r=n.tokens.input,s=n.tokens.output):(r=n.input_tokens,s=n.output_tokens);let i=n.cost??n.cost_usd,o=n.execution_time??n.total_time;return{function_name:e.function_name,tokens_in:r,tokens_out:s,cost:typeof i=="number"?i:void 0,model:typeof n.model=="string"?n.model:void 0,provider:typeof n.provider=="string"?n.provider:void 0,execution_time:typeof o=="number"?o: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:r}=await Promise.resolve().then(()=>(cl(),ll));this.mcpExecutor=new r,await this.mcpExecutor.initialize()}let n=await this.mcpExecutor.handleQueryTools(e);this.ws?.send(JSON.stringify(n))}catch(n){let r=n instanceof Error?n.message:String(n),s=n instanceof Error?n.stack:void 0;Y(`Error handling mcp_query_tools: ${r}${s?`
|
|
3474
3474
|
${s}`:""}`),this.ws?.send(JSON.stringify({type:"mcp_query_tools_response",request_id:e.request_id||"unknown",success:!1,error:r,tools:[]}))}}async handleMCPToolRequest(e){try{if(!this.mcpExecutor){let{ClientMCPExecutor:r}=await Promise.resolve().then(()=>(cl(),ll));this.mcpExecutor=new r,await this.mcpExecutor.initialize()}let n=await this.mcpExecutor.handleToolExecution(e);this.ws?.send(JSON.stringify(n))}catch(n){Y(`Error handling mcp_tool_request: ${n}`),this.ws?.send(JSON.stringify({type:"mcp_tool_response",request_id:e.request_id||"unknown",success:!1,error:String(n)}))}}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){Y(`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(n=>setTimeout(n,e))}};qe();import hh from"node:process";import VR from"node:process";import dh from"node:process";var wJ=(t,e,n,r)=>{if(n==="length"||n==="prototype"||n==="arguments"||n==="caller")return;let s=Object.getOwnPropertyDescriptor(t,n),i=Object.getOwnPropertyDescriptor(e,n);!kJ(s,i)&&r||Object.defineProperty(t,n,i)},kJ=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)},vJ=(t,e)=>{let n=Object.getPrototypeOf(e);n!==Object.getPrototypeOf(t)&&Object.setPrototypeOf(t,n)},AJ=(t,e)=>`/* Wrapped ${t}*/
|
|
3475
3475
|
${e}`,DJ=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),IJ=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),NJ=(t,e,n)=>{let r=n===""?"":`with ${n.trim()}() `,s=AJ.bind(null,r,e.toString());Object.defineProperty(s,"name",IJ);let{writable:i,enumerable:o,configurable:a}=DJ;Object.defineProperty(t,"toString",{value:s,writable:i,enumerable:o,configurable:a})};function XS(t,e,{ignoreNonConfigurable:n=!1}={}){let{name:r}=t;for(let s of Reflect.ownKeys(e))wJ(t,e,s,n);return vJ(t,e),NJ(t,e,r),t}var lh=new WeakMap,HR=(t,e={})=>{if(typeof t!="function")throw new TypeError("Expected a function");let n,r=0,s=t.displayName||t.name||"<anonymous>",i=function(...o){if(lh.set(i,++r),r===1)n=t.apply(this,o),t=void 0;else if(e.throw===!0)throw new Error(`Function \`${s}\` can only be called once`);return n};return XS(i,t),lh.set(i,r),i};HR.callCount=t=>{if(!lh.has(t))throw new Error(`The given function \`${t.name}\` is not wrapped by the \`onetime\` package`);return lh.get(t)};var qR=HR;var Bo=[];Bo.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Bo.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Bo.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var ch=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",JS=Symbol.for("signal-exit emitter"),ZS=globalThis,RJ=Object.defineProperty.bind(Object),eT=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(ZS[JS])return ZS[JS];RJ(ZS,JS,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,n){this.listeners[e].push(n)}removeListener(e,n){let r=this.listeners[e],s=r.indexOf(n);s!==-1&&(s===0&&r.length===1?r.length=0:r.splice(s,1))}emit(e,n,r){if(this.emitted[e])return!1;this.emitted[e]=!0;let s=!1;for(let i of this.listeners[e])s=i(n,r)===!0||s;return e==="exit"&&(s=this.emit("afterExit",n,r)||s),s}},uh=class{},OJ=t=>({onExit(e,n){return t.onExit(e,n)},load(){return t.load()},unload(){return t.unload()}}),tT=class extends uh{onExit(){return()=>{}}load(){}unload(){}},nT=class extends uh{#o=rT.platform==="win32"?"SIGINT":"SIGHUP";#n=new eT;#e;#s;#p;#t={};#i=!1;constructor(e){super(),this.#e=e,this.#t={};for(let n of Bo)this.#t[n]=()=>{let r=this.#e.listeners(n),{count:s}=this.#n,i=e;if(typeof i.__signal_exit_emitter__=="object"&&typeof i.__signal_exit_emitter__.count=="number"&&(s+=i.__signal_exit_emitter__.count),r.length===s){this.unload();let o=this.#n.emit("exit",null,n),a=n==="SIGHUP"?this.#o:n;o||e.kill(e.pid,a)}};this.#p=e.reallyExit,this.#s=e.emit}onExit(e,n){if(!ch(this.#e))return()=>{};this.#i===!1&&this.load();let r=n?.alwaysLast?"afterExit":"exit";return this.#n.on(r,e),()=>{this.#n.removeListener(r,e),this.#n.listeners.exit.length===0&&this.#n.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#i){this.#i=!0,this.#n.count+=1;for(let e of Bo)try{let n=this.#t[e];n&&this.#e.on(e,n)}catch{}this.#e.emit=(e,...n)=>this.#m(e,...n),this.#e.reallyExit=e=>this.#r(e)}}unload(){this.#i&&(this.#i=!1,Bo.forEach(e=>{let n=this.#t[e];if(!n)throw new Error("Listener not defined for signal: "+e);try{this.#e.removeListener(e,n)}catch{}}),this.#e.emit=this.#s,this.#e.reallyExit=this.#p,this.#n.count-=1)}#r(e){return ch(this.#e)?(this.#e.exitCode=e||0,this.#n.emit("exit",this.#e.exitCode,null),this.#p.call(this.#e,this.#e.exitCode)):0}#m(e,...n){let r=this.#s;if(e==="exit"&&ch(this.#e)){typeof n[0]=="number"&&(this.#e.exitCode=n[0]);let s=r.call(this.#e,e,...n);return this.#n.emit("exit",this.#e.exitCode,null),s}else return r.call(this.#e,e,...n)}},rT=globalThis.process,{onExit:YR,load:jCe,unload:VCe}=OJ(ch(rT)?new nT(rT):new tT);var WR=dh.stderr.isTTY?dh.stderr:dh.stdout.isTTY?dh.stdout:void 0,xJ=WR?qR(()=>{YR(()=>{WR.write("\x1B[?25h")},{alwaysLast:!0})}):()=>{},jR=xJ;var ph=!1,ul={};ul.show=(t=VR.stderr)=>{t.isTTY&&(ph=!1,t.write("\x1B[?25h"))};ul.hide=(t=VR.stderr)=>{t.isTTY&&(jR(),ph=!0,t.write("\x1B[?25l"))};ul.toggle=(t,e)=>{t!==void 0&&(ph=t),ph?ul.show(e):ul.hide(e)};var sT=ul;var cd=zt(iT(),1);qe();import qr from"node:process";function oT(){return qr.platform!=="win32"?qr.env.TERM!=="linux":!!qr.env.CI||!!qr.env.WT_SESSION||!!qr.env.TERMINUS_SUBLIME||qr.env.ConEmuTask==="{cmd::Cmder}"||qr.env.TERM_PROGRAM==="Terminus-Sublime"||qr.env.TERM_PROGRAM==="vscode"||qr.env.TERM==="xterm-256color"||qr.env.TERM==="alacritty"||qr.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var LJ={info:p.blue("\u2139"),success:p.green("\u2714"),warning:p.yellow("\u26A0"),error:p.red("\u2716")},PJ={info:p.blue("i"),success:p.green("\u221A"),warning:p.yellow("\u203C"),error:p.red("\xD7")},FJ=oT()?LJ:PJ,ld=FJ;fh();var UJ=$o();function aT(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(UJ,"")}fh();var BJ=$o();function lT(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(BJ,"")}function JR(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 ZR(t){return t===12288||t>=65281&&t<=65376||t>=65504&&t<=65510}function eO(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 $J(t){if(!Number.isSafeInteger(t))throw new TypeError(`Expected a code point, got \`${typeof t}\`.`)}function tO(t,{ambiguousAsWide:e=!1}={}){return $J(t),ZR(t)||eO(t)||e&&JR(t)?2:1}var sO=zt(rO(),1),GJ=new Intl.Segmenter,zJ=new RegExp("^\\p{Default_Ignorable_Code_Point}$","u");function cT(t,e={}){if(typeof t!="string"||t.length===0)return 0;let{ambiguousIsNarrow:n=!0,countAnsiEscapeCodes:r=!1}=e;if(r||(t=lT(t)),t.length===0)return 0;let s=0,i={ambiguousAsWide:!n};for(let{segment:o}of GJ.segment(t)){let a=o.codePointAt(0);if(!(a<=31||a>=127&&a<=159)&&!(a>=8203&&a<=8207||a===65279)&&!(a>=768&&a<=879||a>=6832&&a<=6911||a>=7616&&a<=7679||a>=8400&&a<=8447||a>=65056&&a<=65071)&&!(a>=55296&&a<=57343)&&!(a>=65024&&a<=65039)&&!zJ.test(o)){if((0,sO.default)().test(o)){s+=2;continue}s+=tO(a,i)}}return s}function uT({stream:t=process.stdout}={}){return!!(t&&t.isTTY&&process.env.TERM!=="dumb"&&!("CI"in process.env))}import iO from"node:process";function dT(){let{env:t}=iO,{TERM:e,TERM_PROGRAM:n}=t;return iO.platform!=="win32"?e!=="linux":!!t.WT_SESSION||!!t.TERMINUS_SUBLIME||t.ConEmuTask==="{cmd::Cmder}"||n==="Terminus-Sublime"||n==="vscode"||e==="xterm-256color"||e==="alacritty"||e==="rxvt-unicode"||e==="rxvt-unicode-256color"||t.TERMINAL_EMULATOR==="JetBrains-JediTerm"}import is from"node:process";var HJ=3,pT=class{#o=0;start(){this.#o++,this.#o===1&&this.#n()}stop(){if(this.#o<=0)throw new Error("`stop` called more times than `start`");this.#o--,this.#o===0&&this.#e()}#n(){is.platform==="win32"||!is.stdin.isTTY||(is.stdin.setRawMode(!0),is.stdin.on("data",this.#s),is.stdin.resume())}#e(){is.stdin.isTTY&&(is.stdin.off("data",this.#s),is.stdin.pause(),is.stdin.setRawMode(!1))}#s(e){e[0]===HJ&&is.emit("SIGINT")}},qJ=new pT,mT=qJ;var YJ=zt(iT(),1),fT=class{#o=0;#n=!1;#e=0;#s=-1;#p=0;#t;#i;#r;#m;#h;#c;#u;#d;#g;#a;#l;color;constructor(e){typeof e=="string"&&(e={text:e}),this.#t={color:"cyan",stream:hh.stderr,discardStdin:!0,hideCursor:!0,...e},this.color=this.#t.color,this.spinner=this.#t.spinner,this.#h=this.#t.interval,this.#r=this.#t.stream,this.#c=typeof this.#t.isEnabled=="boolean"?this.#t.isEnabled:uT({stream:this.#r}),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,hh.env.NODE_ENV==="test"&&(this._stream=this.#r,this._isEnabled=this.#c,Object.defineProperty(this,"_linesToClear",{get(){return this.#o},set(n){this.#o=n}}),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.#f()}get interval(){return this.#h??this.#i.interval??100}get spinner(){return this.#i}set spinner(e){if(this.#s=-1,this.#h=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(!dT())this.#i=cd.default.line;else if(e===void 0)this.#i=cd.default.dots;else if(e!=="default"&&cd.default[e])this.#i=cd.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.#f()}get prefixText(){return this.#a}set prefixText(e=""){this.#a=e,this.#f()}get suffixText(){return this.#l}set suffixText(e=""){this.#l=e,this.#f()}get isSpinning(){return this.#m!==void 0}#_(e=this.#a,n=" "){return typeof e=="string"&&e!==""?e+n:typeof e=="function"?e()+n:""}#E(e=this.#l,n=" "){return typeof e=="string"&&e!==""?n+e:typeof e=="function"?n+e():""}#f(){let e=this.#r.columns??80,n=this.#_(this.#a,"-"),r=this.#E(this.#l,"-"),s=" ".repeat(this.#d)+n+"--"+this.#g+"--"+r;this.#e=0;for(let i of aT(s).split(`
|
|
3476
3476
|
`))this.#e+=Math.max(1,Math.ceil(cT(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:n}=this.#i,r=n[this.#s];this.color&&(r=p[this.color](r));let s=typeof this.#a=="string"&&this.#a!==""?this.#a+" ":"",i=typeof this.text=="string"?" "+this.text:"",o=typeof this.#l=="string"&&this.#l!==""?" "+this.#l:"";return s+r+i+o}clear(){if(!this.#c||!this.#r.isTTY)return this;this.#r.cursorTo(0);for(let e=0;e<this.#o;e++)e>0&&this.#r.moveCursor(0,-1),this.#r.clearLine(1);return(this.#d||this.lastIndent!==this.#d)&&this.#r.cursorTo(this.#d),this.lastIndent=this.#d,this.#o=0,this}render(){return this.#u?this:(this.clear(),this.#r.write(this.frame()),this.#o=this.#e,this)}start(e){return e&&(this.text=e),this.#u?this:this.#c?this.isSpinning?this:(this.#t.hideCursor&&sT.hide(this.#r),this.#t.discardStdin&&hh.stdin.isTTY&&(this.#n=!0,mT.start()),this.render(),this.#m=setInterval(this.render.bind(this),this.interval),this):(this.text&&this.#r.write(`- ${this.text}
|
|
@@ -3481,7 +3481,7 @@ ${e}`,DJ=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),IJ=Objec
|
|
|
3481
3481
|
`+this.color(s,p.dim)}formatError(e){let n=[];return n.push(this.color(`${this.emoji("\u274C ")}${e.message}`,p.red)),e.suggestions&&e.suggestions.length>0&&(n.push(""),n.push(this.color(`${this.emoji("\u{1F4A1} ")}Solutions:`,p.yellow)),e.suggestions.forEach((r,s)=>{n.push(this.color(` ${s+1}. ${r}`,p.gray))})),n.join(`
|
|
3482
3482
|
`)}formatConfig(e){let n=[];n.push(this.color(`${this.emoji("\u{1F4CB} ")}Current AII Configuration:`,M.model)),n.push(`- Config file: ${e.configFile}`),n.push(`- Storage path: ${e.storagePath}`),e.apiUrl&&n.push(`- Aii Server: ${e.apiUrl}`);let r=e.hasApiKey?this.color("\u2713",p.green):this.color("\u2717",p.red),s=e.model.startsWith(e.provider+"/")?e.model.slice(e.provider.length+1):e.model;if(n.push(`- LLM provider: ${e.provider} (${s}) - ${r}`),e.webSearch){let i=e.webSearch.enabled?this.color("\u2713",p.green):this.color("\u2717",p.red);n.push(`- Web search: ${e.webSearch.provider??"none"} - ${i}`)}return e.issues&&e.issues.length>0&&n.push(`- Configuration issues: ${e.issues.length}`),n.join(`
|
|
3483
3483
|
`)}formatHealthCheck(e,n){let r=[],s=n?`Aii Doctor v${n}`:"Aii Doctor";r.push(this.color(s,M.model)),r.push("");let i=22;for(let l of e){let c=i-l.name.length-1,u=".".repeat(Math.max(2,c)),d,m;switch(l.status){case"ok":d="OK",m=p.green;break;case"warn":d="WARN",m=p.yellow;break;case"error":d="FAIL",m=p.red;break}let f=this.color(d,m),h=l.message?` (${l.message})`:"";r.push(` ${l.name} ${this.color(u,p.gray)} ${f}${h}`)}let o=e.filter(l=>l.status==="error").length,a=e.filter(l=>l.status==="warn").length;return r.push(""),o>0?r.push(` ${this.color(`${o} check${o>1?"s":""} failed.`,p.red)}`):a>0?r.push(` ${this.color("All checks passed with warnings.",p.yellow)}`):r.push(` ${this.color("All checks passed.",p.green)}`),r.join(`
|
|
3484
|
-
`)}};function or(t={}){return new Kk(t)}$r();var xa={openrouter:"openrouter",ollama:"ollama",anthropic:"anthropic",openai:"openai",gemini:"gemini",google:"gemini",deepseek:"deepseek",moonshot:"moonshot",zai:"zai"},s1e=[{provider:"openrouter",patterns:[/^openrouter\//]},{provider:"ollama",patterns:[/^ollama\//]},{provider:"anthropic",patterns:[/^anthropic\//,/^claude-/,/^claude$/i]},{provider:"openai",patterns:[/^openai\//,/^gpt-/,/^o1-/,/^o3-/,/^chatgpt-/,/^text-davinci/]},{provider:"gemini",patterns:[/^gemini\//,/^google\//,/^gemini-/,/^gemini$/i]},{provider:"deepseek",patterns:[/^deepseek\//,/^deepseek-/,/^deepseek$/i]},{provider:"moonshot",patterns:[/^moonshot\//,/^kimi-/,/^moonshot-/,/^moonshot$/i]},{provider:"zai",patterns:[/^zai\//,/^glm-/,/^glm$/i,/^chatglm/i]}];function Jt(t){if(!t)return t;let e=t.indexOf(":");if(e>0){let n=t.substring(0,e).toLowerCase();if(n in xa)return n+"/"+t.substring(e+1)}return t}function Qk(t){if(!t)return;let e=t.toLowerCase();for(let{provider:n,patterns:r}of s1e)for(let s of r)if(s.test(e))return n}function Zt(t,e){if(!t)return t;let n=t.indexOf("/");if(n===-1)return t;let r=t.substring(0,n).toLowerCase();return r!=="ollama"&&r in xa?e&&xa[r]!==e?t:t.substring(n+1):t}function OE(t){if(!t)return;let e=t.indexOf("/");if(e>0){let r=t.substring(0,e).toLowerCase();if(r in xa){let s=xa[r],i=t.substring(e+1),o=s==="ollama"?`ollama/${i}`:i;return{provider:s,model:o}}}let n=t.indexOf(":");if(n>0){let r=t.substring(0,n).toLowerCase();if(r in xa){let s=xa[r],i=t.substring(n+1),o=s==="ollama"?`ollama/${i}`:i;return{provider:s,model:o}}}}function Ma(t){let e=t.lastIndexOf("@");return e===-1||e===t.length-1?{model:t,openrouterProvider:void 0}:{model:t.slice(0,e),openrouterProvider:t.slice(e+1)}}function hn(t,e){if(t){let n=Qk(t);if(n)return n}return e}qe();import*as XH from"readline";$r();import*as pr from"fs";import*as ME from"path";import*as WH from"os";var xE=ME.join(WH.homedir(),".aii","conversations"),Xk=ME.join(xE,"current.json");function LE(){pr.existsSync(xE)||pr.mkdirSync(xE,{recursive:!0})}function i1e(){return`conv_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}function o1e(t){let n=t.trim().replace(/\s+/g," ");return n.length>50&&(n=n.substring(0,50).trim()+"..."),n}function jH(t){return ME.join(xE,`${t}.json`)}function VH(){LE();try{if(pr.existsSync(Xk)){let t=pr.readFileSync(Xk,"utf-8"),e=JSON.parse(t),n=jH(e.id);if(pr.existsSync(n)){let r=pr.readFileSync(n,"utf-8");return JSON.parse(r)}}}catch{}return KH()}function KH(){LE();let t={id:i1e(),title:"New Conversation",messages:[],createdAt:Date.now(),updatedAt:Date.now()};return fm(t),a1e(t.id),t}function fm(t){if(LE(),t.title==="New Conversation"&&t.messages.length>0){let n=t.messages.find(r=>r.role==="user");n&&(t.title=o1e(n.content))}t.updatedAt=Date.now();let e=jH(t.id);pr.writeFileSync(e,JSON.stringify(t,null,2),"utf-8")}function a1e(t){LE(),pr.writeFileSync(Xk,JSON.stringify({id:t}),"utf-8")}function QH(){return KH()}ka();var l1e="0.16.
|
|
3484
|
+
`)}};function or(t={}){return new Kk(t)}$r();var xa={openrouter:"openrouter",ollama:"ollama",anthropic:"anthropic",openai:"openai",gemini:"gemini",google:"gemini",deepseek:"deepseek",moonshot:"moonshot",zai:"zai"},s1e=[{provider:"openrouter",patterns:[/^openrouter\//]},{provider:"ollama",patterns:[/^ollama\//]},{provider:"anthropic",patterns:[/^anthropic\//,/^claude-/,/^claude$/i]},{provider:"openai",patterns:[/^openai\//,/^gpt-/,/^o1-/,/^o3-/,/^chatgpt-/,/^text-davinci/]},{provider:"gemini",patterns:[/^gemini\//,/^google\//,/^gemini-/,/^gemini$/i]},{provider:"deepseek",patterns:[/^deepseek\//,/^deepseek-/,/^deepseek$/i]},{provider:"moonshot",patterns:[/^moonshot\//,/^kimi-/,/^moonshot-/,/^moonshot$/i]},{provider:"zai",patterns:[/^zai\//,/^glm-/,/^glm$/i,/^chatglm/i]}];function Jt(t){if(!t)return t;let e=t.indexOf(":");if(e>0){let n=t.substring(0,e).toLowerCase();if(n in xa)return n+"/"+t.substring(e+1)}return t}function Qk(t){if(!t)return;let e=t.toLowerCase();for(let{provider:n,patterns:r}of s1e)for(let s of r)if(s.test(e))return n}function Zt(t,e){if(!t)return t;let n=t.indexOf("/");if(n===-1)return t;let r=t.substring(0,n).toLowerCase();return r!=="ollama"&&r in xa?e&&xa[r]!==e?t:t.substring(n+1):t}function OE(t){if(!t)return;let e=t.indexOf("/");if(e>0){let r=t.substring(0,e).toLowerCase();if(r in xa){let s=xa[r],i=t.substring(e+1),o=s==="ollama"?`ollama/${i}`:i;return{provider:s,model:o}}}let n=t.indexOf(":");if(n>0){let r=t.substring(0,n).toLowerCase();if(r in xa){let s=xa[r],i=t.substring(n+1),o=s==="ollama"?`ollama/${i}`:i;return{provider:s,model:o}}}}function Ma(t){let e=t.lastIndexOf("@");return e===-1||e===t.length-1?{model:t,openrouterProvider:void 0}:{model:t.slice(0,e),openrouterProvider:t.slice(e+1)}}function hn(t,e){if(t){let n=Qk(t);if(n)return n}return e}qe();import*as XH from"readline";$r();import*as pr from"fs";import*as ME from"path";import*as WH from"os";var xE=ME.join(WH.homedir(),".aii","conversations"),Xk=ME.join(xE,"current.json");function LE(){pr.existsSync(xE)||pr.mkdirSync(xE,{recursive:!0})}function i1e(){return`conv_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}function o1e(t){let n=t.trim().replace(/\s+/g," ");return n.length>50&&(n=n.substring(0,50).trim()+"..."),n}function jH(t){return ME.join(xE,`${t}.json`)}function VH(){LE();try{if(pr.existsSync(Xk)){let t=pr.readFileSync(Xk,"utf-8"),e=JSON.parse(t),n=jH(e.id);if(pr.existsSync(n)){let r=pr.readFileSync(n,"utf-8");return JSON.parse(r)}}}catch{}return KH()}function KH(){LE();let t={id:i1e(),title:"New Conversation",messages:[],createdAt:Date.now(),updatedAt:Date.now()};return fm(t),a1e(t.id),t}function fm(t){if(LE(),t.title==="New Conversation"&&t.messages.length>0){let n=t.messages.find(r=>r.role==="user");n&&(t.title=o1e(n.content))}t.updatedAt=Date.now();let e=jH(t.id);pr.writeFileSync(e,JSON.stringify(t,null,2),"utf-8")}function a1e(t){LE(),pr.writeFileSync(Xk,JSON.stringify({id:t}),"utf-8")}function QH(){return KH()}ka();var l1e="0.16.5",Jk=class{configManager;parsed;running=!1;conversation;stats;formatter;effectiveProvider="";constructor(e,n){this.parsed=e,this.configManager=n,this.conversation=VH(),this.stats={startTime:Date.now(),totalRequests:0,cumulativeTokens:0,cumulativeCost:0},this.formatter=or({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()}),fm(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(`
|
|
3485
3485
|
\u26A0\uFE0F Interrupted. Type /exit to quit or continue chatting.`);continue}console.error(p.red(`
|
|
3486
3486
|
\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(),fm(this.conversation))}}displayWelcome(){console.log("\u{1FABC} 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,n)=>{let r=XH.createInterface({input:process.stdin,output:process.stdout}),s=[],i=!1,o=()=>{i=!0,r.close()},a=l=>{r.question(l,c=>{if(s.length===0&&c.trim().startsWith("/")){o(),e(c.trim());return}c.endsWith("\\")?(s.push(c.slice(0,-1)),a(" ")):(s.push(c),o(),e(s.join(`
|
|
3487
3487
|
`).trim()))})};r.on("SIGINT",()=>{o(),n(new Error("INTERRUPTED"))}),r.on("close",()=>{i||n(new Error("EXIT"))}),a("> ")})}async handleSpecialCommands(e){let n=e.trim().toLowerCase();if(n.startsWith("/"))n=n.slice(1);else return!1;switch(n){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(p.yellow(`Unknown command: /${n}. Type /help for available commands.`)),console.log(""),!0}}async processWithContext(e){let n=await this.configManager.load(),r=this.configManager.validate();if(!r.valid)throw new kn(r.issues.join(", "));let i=this.configManager.getServerApiKey()||"aii_sk_7WyvfQ0PRzufJ1G66Qn8Sm4gW9Tealpo6vOWDDUeiv4",o=Jt(this.parsed.flags.model??""),a=hn(o||void 0,n.llm.provider),l=Zt(o||n.llm.model,a);this.effectiveProvider=a;let c=this.configManager.getApiKey(a);if(!c)throw new Mt(`Missing API key for provider: ${a}`);this.stats.totalRequests++;let u=os(!this.parsed.flags.noAnimations);u.start("");let d=Os({spinner:u,enabled:!this.parsed.flags.noStreaming}),m=this.conversation.messages.slice(-21,-1).map(S=>({role:S.role,content:S.content})),f={api_key:i,system_prompt:null,user_prompt:e,user_message:e,output_mode:"CLEAN",streaming:!this.parsed.flags.noStreaming,model:l,llm_provider:a,llm_api_key:c,provider_api_key:c,client_type:"cli",offline:this.parsed.flags.offline,conversation_history:m.length>0?m:void 0,soul:Fn.getInstance().getSoulName()},h=this.parsed.flags.host?`http://${this.parsed.flags.host}`:n.api.url,g=new br({url:h}),_="",y=!1;try{let S=await g.executeRequest(f,{onToken:w=>{_+=w,y=!0,d.onToken(w)}});d.flush();let C=S.result||_;!y&&C&&console.log(C),console.log(""),S.metadata&&this.displayExecutionSummary(S.metadata),C&&(this.conversation.messages.push({role:"assistant",content:C,timestamp:Date.now()}),fm(this.conversation))}catch(S){throw u.stop(!0),S}finally{g.disconnect()}}displayExecutionSummary(e){let n=e.cost||0,r=e.tokens_in||0,s=e.tokens_out||0,i=r+s;this.stats.cumulativeTokens+=i,this.stats.cumulativeCost+=n;let o=e.provider,a=!o;console.log(this.formatter.formatExecutionSummary({provider:o||this.effectiveProvider,providerInferred:a,model:e.model,tokens_in:r,tokens_out:s,cost:n,execution_time:e.execution_time})),console.log("")}clearConversation(){this.conversation=QH(),console.clear(),this.displayWelcome()}displayConversationHistory(){if(this.conversation.messages.length===0){console.log(`
|
|
@@ -4123,10 +4123,10 @@ Container logs:
|
|
|
4123
4123
|
${s}`:`
|
|
4124
4124
|
Run: docker logs aii-server`}`}return n.includes("unknown option")||n.includes("unrecognized")?"server.sh rejected a flag (likely an older version). Try: curl -fsSL https://aiiware.com/server.sh | bash":`Server setup failed (exit code ${e}).`}function Aye(t){let e=s1()?"sudo ":"";try{let n=wn(`${e}docker port aii-server 26169 2>/dev/null | head -1 | cut -d: -f2`,{timeout:5e3,stdio:"pipe"}).toString().trim(),r=parseInt(n,10);return isNaN(r)?t:r}catch{return t}}async function Lq(t,e){let n=e||Iye(t.showProgress);n("Checking Docker...","docker"),n1()||await wye({interactive:t.interactive}),r1()||(n("Starting Docker daemon...","docker"),await Cye()),n("Docker ready","docker"),n("Setting up Aii Server...","server");let r=await kye(t.port,n);if(n("Verifying server health...","health"),!await Dye(r.port,3e4,n)){let i=s1()?"sudo ":"",o="";try{o=wn(`${i}docker logs aii-server --tail 15 2>&1`,{timeout:5e3,encoding:"utf-8",stdio:"pipe"})}catch{}throw new on("Server started but health check failed after 30 seconds.",`curl http://localhost:${r.port}/health`,"docker logs aii-server",o?`
|
|
4125
4125
|
Recent logs:
|
|
4126
|
-
${o}`:"")}return n("Server ready!","done"),{success:!0,port:r.port,upgraded:!1,freshInstall:!0}}async function Dye(t,e,n){let r=Date.now(),s=0;for(;Date.now()-r<e;){s++;try{let i=new AbortController,o=setTimeout(()=>i.abort(),3e3),a=await fetch(`http://localhost:${t}/health`,{signal:i.signal});if(clearTimeout(o),a.ok)return!0}catch{}if(s%5===0){let i=Math.round((Date.now()-r)/1e3);n(`Waiting for server health... (${i}s)`,"health")}await new Promise(i=>setTimeout(i,2e3))}return!1}function Iye(t){return t?(e,n)=>{process.stderr.write(`\r\x1B[K \u25CF ${e}`)}:()=>{}}function xq(t){return new Promise(e=>{let n=Mq.createInterface({input:process.stdin,output:process.stderr});n.question(t,r=>{n.close();let s=r.trim().toLowerCase();e(s===""||s==="y"||s==="yes")})})}async function Pq(t,e){let n=or({colors:!t.flags.noColors,emojis:!t.flags.noEmojis}),r=[],s=`${e.getConfigDir()}/config.yaml`;e.configExists()?r.push({name:"Config",status:"ok",message:s.replace(process.env.HOME||"","~")}):r.push({name:"Config",status:"warn",message:"Not found (using defaults)"});let i=await e.load();e.getApiKey()?r.push({name:"API Key",status:"ok",message:`${i.llm.provider}:${i.llm.model.replace(`${i.llm.provider}/`,"")}`}):r.push({name:"API Key",status:"error",message:`Not configured for ${i.llm.provider}`});let a=await Nye(i.api.url);r.push({name:"Aii Server",status:a.ok?"ok":"error",message:a.message});let l=`${e.getConfigDir()}/mcp_servers.json`;if(Ms.existsSync(l))try{let f=Ms.readFileSync(l,"utf-8"),h=JSON.parse(f),g=Object.keys(h.mcpServers??{}).length;g>0?r.push({name:"MCP Servers",status:"ok",message:`${g} configured`}):r.push({name:"MCP Servers",status:"warn",message:"Not configured"})}catch{r.push({name:"MCP Servers",status:"warn",message:"Invalid config"})}else r.push({name:"MCP Servers",status:"warn",message:"Not configured"});if(n1())try{let{execSync:f}=await import("child_process"),g=f("docker --version",{timeout:5e3,encoding:"utf-8"}).trim().match(/Docker version ([\d.]+)/);r.push({name:"Docker",status:"ok",message:g?`v${g[1]}`:"Installed"})}catch{r.push({name:"Docker",status:"ok",message:"Installed"})}else r.push({name:"Docker",status:"error",message:"Not installed (brew install --cask docker)"});n1()?r1()?r.push({name:"Docker Daemon",status:"ok",message:"Running"}):r.push({name:"Docker Daemon",status:"error",message:"Not running (open -a Docker)"}):r.push({name:"Docker Daemon",status:"warn",message:"N/A (Docker not installed)"});let c=process.version;parseInt(c.slice(1).split(".")[0],10)>=18?r.push({name:"Node.js",status:"ok",message:c}):r.push({name:"Node.js",status:"error",message:`${c} (requires >= 18)`});let d=await Rye();r.push(...d),console.log(n.formatHealthCheck(r,Ho)),r.some(f=>f.status==="error")&&process.exit(1)}async function Nye(t){try{let e=new AbortController,n=setTimeout(()=>e.abort(),3e3),r=await fetch(`${t}/api/status`,{signal:e.signal});if(clearTimeout(n),r.ok){let s=new URL(t);return{ok:!0,message:`${s.hostname}:${s.port||26169}`}}else return{ok:!1,message:`Not responding (${r.status})`}}catch(e){return e instanceof Error&&e.name==="AbortError"?{ok:!1,message:"Connection timeout"}:{ok:!1,message:"Not running"}}}async function Rye(){let t=[];try{let{getAiiHome:e}=await Promise.resolve().then(()=>(as(),Ah)),n=`${e()}/skills`;if(!Ms.existsSync(n))return t;let r=Ms.readdirSync(n,{withFileTypes:!0});for(let s of r){if(!s.isDirectory()||s.name.startsWith("."))continue;let i=`${n}/${s.name}/SKILL.md`;Ms.existsSync(i)||t.push({name:"Skill Shadow",status:"warn",message:`~/.aii/skills/${s.name}/ has no SKILL.md \u2014 may shadow other skills`})}try{let{PersonaManager:s}=await Promise.resolve().then(()=>(St(),wt));if(s.hasInstance()&&s.getInstance().isActive()){let i=s.getInstance().getActive();if(i)for(let o of i.skillPaths){let a=o.split("/").pop()||"",l=`${n}/${a}`;Ms.existsSync(l)&&Ms.existsSync(`${l}/SKILL.md`)&&t.push({name:"Skill Shadow",status:"ok",message:`"${a}" user-authored shadows persona-bundled (intentional?)`})}}}catch{}}catch{}return t}qe();Yt();import{execSync as yv}from"node:child_process";var i1="@aiiware/aii";async function Fq(t){let e=t.args||[],n=t.subcommand||e[0]||"";if(t.flags.help||n==="help"||n==="--help"||e.includes("--help")){let r="0.16.
|
|
4127
|
-
`),await Oye(n)}async function Oye(t){let e="0.16.
|
|
4126
|
+
${o}`:"")}return n("Server ready!","done"),{success:!0,port:r.port,upgraded:!1,freshInstall:!0}}async function Dye(t,e,n){let r=Date.now(),s=0;for(;Date.now()-r<e;){s++;try{let i=new AbortController,o=setTimeout(()=>i.abort(),3e3),a=await fetch(`http://localhost:${t}/health`,{signal:i.signal});if(clearTimeout(o),a.ok)return!0}catch{}if(s%5===0){let i=Math.round((Date.now()-r)/1e3);n(`Waiting for server health... (${i}s)`,"health")}await new Promise(i=>setTimeout(i,2e3))}return!1}function Iye(t){return t?(e,n)=>{process.stderr.write(`\r\x1B[K \u25CF ${e}`)}:()=>{}}function xq(t){return new Promise(e=>{let n=Mq.createInterface({input:process.stdin,output:process.stderr});n.question(t,r=>{n.close();let s=r.trim().toLowerCase();e(s===""||s==="y"||s==="yes")})})}async function Pq(t,e){let n=or({colors:!t.flags.noColors,emojis:!t.flags.noEmojis}),r=[],s=`${e.getConfigDir()}/config.yaml`;e.configExists()?r.push({name:"Config",status:"ok",message:s.replace(process.env.HOME||"","~")}):r.push({name:"Config",status:"warn",message:"Not found (using defaults)"});let i=await e.load();e.getApiKey()?r.push({name:"API Key",status:"ok",message:`${i.llm.provider}:${i.llm.model.replace(`${i.llm.provider}/`,"")}`}):r.push({name:"API Key",status:"error",message:`Not configured for ${i.llm.provider}`});let a=await Nye(i.api.url);r.push({name:"Aii Server",status:a.ok?"ok":"error",message:a.message});let l=`${e.getConfigDir()}/mcp_servers.json`;if(Ms.existsSync(l))try{let f=Ms.readFileSync(l,"utf-8"),h=JSON.parse(f),g=Object.keys(h.mcpServers??{}).length;g>0?r.push({name:"MCP Servers",status:"ok",message:`${g} configured`}):r.push({name:"MCP Servers",status:"warn",message:"Not configured"})}catch{r.push({name:"MCP Servers",status:"warn",message:"Invalid config"})}else r.push({name:"MCP Servers",status:"warn",message:"Not configured"});if(n1())try{let{execSync:f}=await import("child_process"),g=f("docker --version",{timeout:5e3,encoding:"utf-8"}).trim().match(/Docker version ([\d.]+)/);r.push({name:"Docker",status:"ok",message:g?`v${g[1]}`:"Installed"})}catch{r.push({name:"Docker",status:"ok",message:"Installed"})}else r.push({name:"Docker",status:"error",message:"Not installed (brew install --cask docker)"});n1()?r1()?r.push({name:"Docker Daemon",status:"ok",message:"Running"}):r.push({name:"Docker Daemon",status:"error",message:"Not running (open -a Docker)"}):r.push({name:"Docker Daemon",status:"warn",message:"N/A (Docker not installed)"});let c=process.version;parseInt(c.slice(1).split(".")[0],10)>=18?r.push({name:"Node.js",status:"ok",message:c}):r.push({name:"Node.js",status:"error",message:`${c} (requires >= 18)`});let d=await Rye();r.push(...d),console.log(n.formatHealthCheck(r,Ho)),r.some(f=>f.status==="error")&&process.exit(1)}async function Nye(t){try{let e=new AbortController,n=setTimeout(()=>e.abort(),3e3),r=await fetch(`${t}/api/status`,{signal:e.signal});if(clearTimeout(n),r.ok){let s=new URL(t);return{ok:!0,message:`${s.hostname}:${s.port||26169}`}}else return{ok:!1,message:`Not responding (${r.status})`}}catch(e){return e instanceof Error&&e.name==="AbortError"?{ok:!1,message:"Connection timeout"}:{ok:!1,message:"Not running"}}}async function Rye(){let t=[];try{let{getAiiHome:e}=await Promise.resolve().then(()=>(as(),Ah)),n=`${e()}/skills`;if(!Ms.existsSync(n))return t;let r=Ms.readdirSync(n,{withFileTypes:!0});for(let s of r){if(!s.isDirectory()||s.name.startsWith("."))continue;let i=`${n}/${s.name}/SKILL.md`;Ms.existsSync(i)||t.push({name:"Skill Shadow",status:"warn",message:`~/.aii/skills/${s.name}/ has no SKILL.md \u2014 may shadow other skills`})}try{let{PersonaManager:s}=await Promise.resolve().then(()=>(St(),wt));if(s.hasInstance()&&s.getInstance().isActive()){let i=s.getInstance().getActive();if(i)for(let o of i.skillPaths){let a=o.split("/").pop()||"",l=`${n}/${a}`;Ms.existsSync(l)&&Ms.existsSync(`${l}/SKILL.md`)&&t.push({name:"Skill Shadow",status:"ok",message:`"${a}" user-authored shadows persona-bundled (intentional?)`})}}}catch{}}catch{}return t}qe();Yt();import{execSync as yv}from"node:child_process";var i1="@aiiware/aii";async function Fq(t){let e=t.args||[],n=t.subcommand||e[0]||"";if(t.flags.help||n==="help"||n==="--help"||e.includes("--help")){let r="0.16.5";console.log(""),console.log(M.logo(" Install")),console.log(""),console.log(` Current version: ${M.model(r)}`),console.log(""),console.log(p.yellow(" USAGE:")),console.log(` ${p.green("aii install")} Update to latest version`),console.log(` ${p.green("aii install <version>")} Install specific version`),console.log(` ${p.green("aii install skill <src>")} Install a skill package ${p.dim("(coming soon)")}`),console.log(` ${p.green("aii install mcp <name>")} Install an MCP server ${p.dim("(coming soon)")}`),console.log(""),console.log(p.yellow(" EXAMPLES:")),console.log(` ${p.green("aii install")} ${p.dim("# Self-update to latest")}`),console.log(` ${p.green("aii install 0.13.10")} ${p.dim("# Pin to specific version")}`),console.log("");return}if(n==="skill"){console.log("Skill installation coming soon. For now use: /skills install owner/repo");return}if(n==="mcp"){console.log("MCP installation coming soon. For now use: aii mcp install <server>");return}console.log("\x1B[33m\u26A0 `aii install` for self-update is deprecated. Use `aii upgrade` instead.\x1B[0m"),console.log(`\x1B[33m This alias will be removed in v0.16.x.\x1B[0m
|
|
4127
|
+
`),await Oye(n)}async function Oye(t){let e="0.16.5",n=t&&t!=="latest"?t:"";if(console.log(""),n){console.log(`\u{1FABC} Installing Aii CLI v${n}...`),console.log("");try{yv(`npm install -g ${i1}@${n}`,{stdio:"inherit",timeout:12e4})}catch{console.error(`
|
|
4128
4128
|
\u274C Failed to install v${n}`),console.error(` Try manually: npm install -g ${i1}@${n}`),process.exit(1)}}else{console.log("\u{1FABC} Updating Aii CLI to latest..."),console.log(` Current version: ${e}`),console.log("");try{yv(`npm install -g ${i1}@latest`,{stdio:"inherit",timeout:12e4})}catch{console.error(`
|
|
4129
|
-
\u274C Failed to update Aii CLI`),console.error(` Try manually: npm install -g ${i1}@latest`),process.exit(1)}}try{let r=yv("aii --version 2>/dev/null",{encoding:"utf-8",timeout:1e4,stdio:"pipe"}).trim();console.log(""),console.log(r===e?`\u2713 Aii CLI is already up to date (${e})`:`\u2713 Aii CLI updated: ${e} \u2192 ${r}`)}catch{console.log(""),console.log("\u2713 Aii CLI installed. Restart your terminal to use the new version.")}}qe();var Uq="0.16.
|
|
4129
|
+
\u274C Failed to update Aii CLI`),console.error(` Try manually: npm install -g ${i1}@latest`),process.exit(1)}}try{let r=yv("aii --version 2>/dev/null",{encoding:"utf-8",timeout:1e4,stdio:"pipe"}).trim();console.log(""),console.log(r===e?`\u2713 Aii CLI is already up to date (${e})`:`\u2713 Aii CLI updated: ${e} \u2192 ${r}`)}catch{console.log(""),console.log("\u2713 Aii CLI installed. Restart your terminal to use the new version.")}}qe();var Uq="0.16.5";function Sv(t){let n=!t.flags.noColors?p:{cyan:r=>r,yellow:r=>r,gray:r=>r,green:r=>r};console.log(`
|
|
4130
4130
|
${n.cyan("AII")} - AI-powered CLI assistant v${Uq}
|
|
4131
4131
|
|
|
4132
4132
|
${n.yellow("USAGE:")}
|
|
@@ -4492,7 +4492,7 @@ Prompt validation coming soon.
|
|
|
4492
4492
|
\u274C Missing prompt name`),console.error(` Usage: aii prompt use <name> [--vars]
|
|
4493
4493
|
`),process.exit(1)),await tTe(t,n,r,c);break;case"validate":n||(console.error(`
|
|
4494
4494
|
\u274C Missing file path`),console.error(` Usage: aii prompt validate <file>
|
|
4495
|
-
`),process.exit(1)),await nTe(t,n);break;case"help":case"--help":case"-h":default:JSe(!t.flags.noColors);break}}import{execSync as Ls,spawn as rTe}from"child_process";import{existsSync as sTe,mkdirSync as iTe}from"fs";import{homedir as oTe}from"os";import{join as aTe}from"path";var lTe="aiiware/aii-server:latest",cTe="aii-server",Ps=26169,iu="v0.5.
|
|
4495
|
+
`),process.exit(1)),await nTe(t,n);break;case"help":case"--help":case"-h":default:JSe(!t.flags.noColors);break}}import{execSync as Ls,spawn as rTe}from"child_process";import{existsSync as sTe,mkdirSync as iTe}from"fs";import{homedir as oTe}from"os";import{join as aTe}from"path";var lTe="aiiware/aii-server:latest",cTe="aii-server",Ps=26169,iu="v0.5.16",ou="https://aiiware.com/server.sh",m1=class t{port;host;containerName;image;configDir;constructor(e=Ps){this.port=e,this.host="127.0.0.1",this.containerName=cTe,this.image=lTe,this.configDir=aTe(oTe(),".aii")}isDockerAvailable(){try{return Ls("docker info",{stdio:"pipe",timeout:5e3}),!0}catch{return!1}}isContainerExists(){try{return Ls(`docker container inspect ${this.containerName}`,{stdio:"pipe",timeout:5e3}),!0}catch{return!1}}isContainerRunning(){try{return Ls(`docker container inspect -f "{{.State.Running}}" ${this.containerName}`,{stdio:"pipe",timeout:5e3,encoding:"utf-8"}).trim()==="true"}catch{return!1}}async isServerHealthy(){try{let e=new AbortController,n=setTimeout(()=>e.abort(),2e3),r=await fetch(`http://${this.host}:${this.port}/health`,{signal:e.signal});return clearTimeout(n),r.ok}catch{return!1}}async getServerVersion(){try{let e=new AbortController,n=setTimeout(()=>e.abort(),2e3),r=await fetch(`http://${this.host}:${this.port}/v0/status`,{signal:e.signal});return clearTimeout(n),r.ok&&(await r.json()).version||null}catch{return null}}static isVersionBelow(e,n){try{let r=e?.replace(/^v/,"")||"0.0.0",s=n?.replace(/^v/,"")||"0.0.0",i=r.split(".").map(Number),o=s.split(".").map(Number),a=Math.max(i.length,o.length);for(;i.length<a;)i.push(0);for(;o.length<a;)o.push(0);for(let l=0;l<a;l++){if(i[l]<o[l])return!0;if(i[l]>o[l])return!1}return!1}catch{return!1}}async checkServerAtPort(e){try{let n=new AbortController,r=setTimeout(()=>n.abort(),2e3),s=await fetch(`http://${this.host}:${e}/health`,{signal:n.signal});if(clearTimeout(r),!s.ok)return{isCompatible:!1,version:null};let i=new AbortController,o=setTimeout(()=>i.abort(),2e3),a=await fetch(`http://${this.host}:${e}/v0/status`,{signal:i.signal});if(clearTimeout(o),a.ok){let c=(await a.json()).version||null;return c?{isCompatible:!t.isVersionBelow(c,iu),version:c}:{isCompatible:!0,version:null}}return{isCompatible:!0,version:null}}catch{return{isCompatible:!1,version:null}}}getContainerHostPort(){try{let e=Ls(`docker inspect --format='{{(index (index .NetworkSettings.Ports "26169/tcp") 0).HostPort}}' ${this.containerName}`,{stdio:"pipe",timeout:5e3,encoding:"utf-8"}),n=parseInt(e.trim(),10);return isNaN(n)?null:n}catch{return null}}async scanForServer(e=Ps,n=10){for(let r=0;r<n;r++){let s=e+r,{isCompatible:i}=await this.checkServerAtPort(s);if(i)return s}return null}startContainer(){try{return Ls(`docker start ${this.containerName}`,{stdio:"pipe",timeout:3e4}),!0}catch{return!1}}stopContainer(){try{return Ls(`docker stop ${this.containerName}`,{stdio:"pipe",timeout:3e4}),!0}catch{return!1}}getContainerLogs(e=50){try{return Ls(`docker logs --tail ${e} ${this.containerName}`,{stdio:"pipe",timeout:1e4,encoding:"utf-8"})}catch{return""}}async waitForHealthy(e=3e4){let n=Date.now(),r=!1,s=()=>{r=!0,process.exit(130)};process.on("SIGINT",s);try{for(;Date.now()-n<e&&!r;){if(await this.isServerHealthy())return!0;await new Promise(i=>setTimeout(i,500))}return!1}finally{process.removeListener("SIGINT",s)}}async runInstallScript(e=!0){return new Promise(n=>{e&&console.log(` Running: curl -fsSL ${ou} | bash
|
|
4496
4496
|
`);let r=rTe("bash",["-c",`curl -fsSL ${ou} | bash`],{stdio:e?["pipe","inherit","inherit"]:"pipe",detached:!1}),s=()=>{try{r.kill("SIGINT")}catch{}console.log(`
|
|
4497
4497
|
|
|
4498
4498
|
Cancelled.`),process.exit(130)},i=process.listeners("SIGINT");process.removeAllListeners("SIGINT"),process.on("SIGINT",s),r.on("close",o=>{process.removeListener("SIGINT",s),i.forEach(a=>process.on("SIGINT",a)),n(o===0)}),r.on("error",()=>{process.removeListener("SIGINT",s),i.forEach(o=>process.on("SIGINT",o)),n(!1)})})}async upgradeServer(e=!0){e&&console.log(`
|