@aiiware/aii 0.16.0 → 0.16.1
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.1
|
|
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 No(t,e,n,r,s,i){if(t.listenerCount("wsClientError")){let o=new Error(s);Error.captureStackTrace(o,No),t.emit("wsClientError",o,n,e)}else Hu(n,r,s,i)}});var FX,UX,BX,fR,$X,Hr,DS=O(()=>{FX=Ht(sR(),1),UX=Ht(_S(),1),BX=Ht(SS(),1),fR=Ht(zf(),1),$X=Ht(mR(),1),Hr=fR.default});var yR={};Le(yR,{configureLogger:()=>qf,debug:()=>W,error:()=>_R,formatError:()=>Yf,info:()=>hR,logger:()=>R,success:()=>ER,warn:()=>gR});function qf(t){qu={...qu,...t}}function Yu(t){return qu.emojis?t+" ":""}function Ro(t,e){return qu.colors?e(t):t}function W(t,...e){qu.debug&&console.debug(Ro(`[DEBUG] ${t}`,p.gray),...e)}function hR(t,...e){console.log(t,...e)}function gR(t,...e){console.warn(Ro(`${Yu("\u26A0\uFE0F")}${t}`,p.yellow),...e)}function _R(t,...e){console.error(Ro(`${Yu("\u274C")}${t}`,p.red),...e)}function ER(t,...e){console.log(Ro(`${Yu("\u2705")}${t}`,p.green),...e)}function Yf(t){let e=[];return e.push(Ro(`${Yu("\u274C")}${t.message}`,p.red)),t.suggestions&&t.suggestions.length>0&&(e.push(""),e.push(Ro(`${Yu("\u{1F4A1}")}Solutions:`,p.yellow)),t.suggestions.forEach((n,r)=>{e.push(Ro(` ${r+1}. ${n}`,p.gray))})),e.join(`
|
|
197
|
-
`)}var GX,qu,R,mt=O(()=>{"use strict";qe();GX={debug:!1,colors:!0,emojis:!0},qu={...GX};R={debug:W,info:hR,warn:gR,error:_R,success:ER,formatError:Yf,configure:qf}});var SR={};Le(SR,{MCPConfigManager:()=>Yt,MCP_CATALOG:()=>Oo});import*as Tr from"fs";import*as Wf from"path";import*as IS from"os";var Oo,Yt,xo=O(()=>{"use strict";Oo={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",IS.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"}},Yt=class{configPath;constructor(e){this.configPath=e||Wf.join(IS.homedir(),".aii","mcp_servers.json"),this.ensureConfigDir()}ensureConfigDir(){let e=Wf.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 tl={};Le(tl,{ClientMCPExecutor:()=>NS});import{Client as zX}from"@modelcontextprotocol/sdk/client/index.js";import{StdioClientTransport as HX}from"@modelcontextprotocol/sdk/client/stdio.js";var NS,nl=O(()=>{"use strict";xo();mt();NS=class{connections=new Map;toolToServer=new Map;initialized=!1;configManager;constructor(){this.configManager=new Yt}async initialize(){if(this.initialized)return!0;try{let n=this.configManager.loadConfig().mcpServers||{};W(`Initializing MCP executor with ${Object.keys(n).length} servers`);for(let[r,s]of Object.entries(n)){if(s.enabled===!1){W(`Skipping disabled server: ${r}`);continue}try{await this.connectToServer(r,s)}catch(i){W(`Failed to connect to ${r}: ${i}`)}}return this.initialized=!0,W(`MCP executor initialized with ${this.connections.size} connections`),!0}catch(e){return W(`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}W(`Connecting to MCP server: ${e}`),W(` command: ${r}`),W(` args: ${JSON.stringify(s)}`);let o=new HX({command:r,args:s,env:i,stderr:"pipe"}),a=new zX({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);W(`Connected to ${e}: discovered ${c.length} tools`)}async handleQueryTools(e){let n=e.request_id||"unknown";W(`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 W(`Found ${s.length} MCP tools across all servers`),{type:"mcp_query_tools_response",request_id:n,success:!0,tools:s}}catch(r){return W(`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(W(`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 W(`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 W(`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(){W("Shutting down MCP executor");for(let[e,n]of this.connections)try{await n.client.close(),W(`Closed connection to ${e}`)}catch(r){W(`Error closing ${e}: ${r}`)}this.connections.clear(),this.toolToServer.clear(),this.initialized=!1}isInitialized(){return this.initialized}getConnectionCount(){return this.connections.size}}});var AR=T((ICe,tJ)=>{tJ.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 BS=T((NCe,IR)=>{"use strict";var Jf=Object.assign({},AR()),DR=Object.keys(Jf);Object.defineProperty(Jf,"random",{get(){let t=Math.floor(Math.random()*DR.length),e=DR[t];return Jf[e]}});IR.exports=Jf});function Lo({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 Zf=O(()=>{});var LR=T((YCe,MR)=>{MR.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 mJ,fJ,hJ,gJ,_J,EJ,yJ,Po,th,Pi,XS=O(()=>{"use strict";qe();mJ={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")}},fJ={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")}},hJ={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")}},gJ={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")}},_J={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")}},EJ={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")}},yJ={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}},Po={classic:mJ,brand:fJ,teal:hJ,indigo:gJ,forest:_J,amber:EJ,grayscale:yJ},th="classic",Pi=["classic","brand","teal","indigo","forest","amber","grayscale"]});var Fo={};Le(Fo,{ThemeManager:()=>zs,getAccentColorName:()=>Re,getThemeColors:()=>q,getUserInputTextColorName:()=>sl});function q(){return zs.getInstance().getColors()}function Re(){return zs.getInstance().getAccentColorName()}function sl(){return zs.getInstance().getUserInputTextColorName()}var zs,Fi=O(()=>{"use strict";XS();zs=class t{static instance=null;activeTheme;constructor(){this.activeTheme=Po[th]}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=Po[e];if(!n){let r=Pi.join(", ");throw new Error(`Unknown theme: "${e}". Available themes: ${r}`)}this.activeTheme=n}isValidTheme(e){return e in Po}getAvailableThemes(){return Pi.map(e=>Po[e])}getAccentColorName(){return this.activeTheme.accentColorName}getUserInputTextColorName(){return this.activeTheme.userInputTextColorName}reset(){this.activeTheme=Po[th]}}});var vn=O(()=>{"use strict";XS();Fi()});import{resolve as SJ}from"path";function TJ(){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 Vu(){return JS===null&&(JS=TJ()),JS}function bJ(){return process.platform==="darwin"?"Cmd":"Ctrl"}function BR(){return UR||!Vu()?"":(UR=!0,` (${bJ()}+Click to open)`)}function CJ(t,e){return Vu()?`\x1B]8;;${e}\x07${t}\x1B]8;;\x07`:t}function $R(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(!Vu())return q().filePath(s);let i=q().accent(s),a=`file://${SJ(t)}`;return e!==void 0&&e>0&&(a+=`#L${e}`),CJ(i,a)}var JS,UR,GR=O(()=>{"use strict";vn();JS=null,UR=!1});var qR={};Le(qR,{VERSION:()=>Uo,colors:()=>x,formatCode:()=>OJ,formatPath:()=>Qu,getActionIndicator:()=>RJ,padEndAnsi:()=>PJ,printAction:()=>wJ,printDivider:()=>HR,printError:()=>IJ,printExitSummary:()=>ZS,printHeader:()=>NJ,printSuccess:()=>AJ,printToolComplete:()=>kJ,printToolFailed:()=>vJ,printToolResultCompact:()=>il,printWarning:()=>DJ,shortenPath:()=>MJ});function Ku(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 wJ(t,e,n=console.log){let r=Ku(e)?Qu(e):x.filePath(e);n(x.dim("\u25CB ")+p.bold(t)+" "+r)}function kJ(t,e,n=console.log){let r=Ku(e)?Qu(e):x.filePath(e);n(x.success("\u2713 ")+p.bold(t)+" "+r)}function vJ(t,e,n,r=console.log){let s=Ku(e)?Qu(e):x.filePath(e);r(x.error("\u2717 ")+p.bold(t)+" "+s),n&&r(x.dim(" \u2192 ")+x.error(n))}function il(t,e,n=!0,r,s=console.log){let i=n?x.success("\u25CF"):x.error("\u25CF"),o=60,a=e.length>o?e.slice(0,o-3)+"...":e;if(Ku(e)){let c=e.match(/:(\d+)$/),u=c?parseInt(c[1],10):void 0,d=c?e.replace(/:(\d+)$/,""):e;a=Qu(d,u)}s(`${i} ${p.bold(t)}(${a})`);let l=Ku(e)?x.dim(BR()):"";if(r){let c=n?x.dim:x.error;s(c(`\u2514 ${r}`)+l)}else{let c=n?"(No content)":"(Error)",u=n?x.dim:x.error;s(u(`\u2514 ${c}`)+l)}}function AJ(t){console.log(x.success("\u2713 ")+t)}function DJ(t){console.log(x.warning("\u26A0 ")+t)}function IJ(t){console.log(x.error("\u2717 ")+t)}function HR(t=60){console.log(x.dim("\u2500".repeat(t)))}function NJ(t){console.log(x.logo(t)),HR(t.length)}function RJ(t){return x.thinking(`[${t}]`)}function Qu(t,e){if(Vu())return $R(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}`),x.filePath(r)}function OJ(t){return x.code(t)}function xJ(){return process.stdout.columns||80}function MJ(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 LJ(t){return t.replace(/\x1b\[[0-9;]*m/g,"").length}function PJ(t,e){let n=LJ(t),r=Math.max(0,e-n);return t+" ".repeat(r)}function FJ(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 zR(t){return t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toString()}function ZS(t){let e=xJ(),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=>x.border("\u2502")+" "+s(m,r)+" "+x.border("\u2502"),o=(m,f,h,g)=>{let _=Math.floor(r/2),y=x.dim(m.padEnd(15))+f,S=x.dim(h.padEnd(15))+g;return i(s(y,_)+S)},a=FJ(t.durationSeconds),l=zR(t.tokensIn),c=zR(t.tokensOut),u=`$${t.totalCost.toFixed(4)}`,d=`${t.provider}/${t.model.replace("claude-","").replace("-latest","")}`;console.log(""),console.log(x.border("\u250C"+"\u2500".repeat(n-2)+"\u2510")),console.log(i(x.logo("Session complete. \u{1FABC}"))),console.log(x.border("\u251C"+"\u2500".repeat(n-2)+"\u2524")),console.log(i(x.logo("Session Summary"))),console.log(i(x.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(x.logo("Token Usage"))),console.log(i(x.dim("\u2500".repeat(11)))),console.log(o("Input",l,"Output",c)),console.log(i(x.dim("Cost".padEnd(15))+u)),console.log(i("")),console.log(i(x.dim("Model: ")+x.model(d))),console.log(x.border("\u2514"+"\u2500".repeat(n-2)+"\u2518")),console.log("")}var Uo,x,Wt=O(()=>{"use strict";qe();GR();vn();Uo="0.16.0",x={get logo(){return q().accent.bold},get prompt(){return q().accent.bold},get model(){return q().accent},get success(){return q().success},get warning(){return q().warning},get error(){return q().error},get thinking(){return q().dim},get filePath(){return q().filePath},get code(){return q().code},get muted(){return q().muted},get dim(){return q().dim},get safe(){return q().success},get risky(){return q().warning},get destructive(){return q().error},get border(){return q().accent},get bannerBorder(){return q().accent}}});var Cr,ol,eT=O(()=>{"use strict";Cr={maxConcurrent:5,maxIterations:100,timeout:3e5,autoBackgroundTimeout:12e4,compressionLevel:"medium",permissionMode:"default"},ol={maxConcurrent:3,timeout:30*60*1e3,permissionMode:"dontAsk"}});var nh,tT=O(()=>{"use strict";nh=`You are an expert codebase explorer. Your task is to efficiently explore and understand codebases.
|
|
197
|
+
`)}var GX,qu,R,mt=O(()=>{"use strict";qe();GX={debug:!1,colors:!0,emojis:!0},qu={...GX};R={debug:W,info:hR,warn:gR,error:_R,success:ER,formatError:Yf,configure:qf}});var SR={};Le(SR,{MCPConfigManager:()=>Yt,MCP_CATALOG:()=>Oo});import*as Tr from"fs";import*as Wf from"path";import*as IS from"os";var Oo,Yt,xo=O(()=>{"use strict";Oo={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",IS.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"}},Yt=class{configPath;constructor(e){this.configPath=e||Wf.join(IS.homedir(),".aii","mcp_servers.json"),this.ensureConfigDir()}ensureConfigDir(){let e=Wf.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 tl={};Le(tl,{ClientMCPExecutor:()=>NS});import{Client as zX}from"@modelcontextprotocol/sdk/client/index.js";import{StdioClientTransport as HX}from"@modelcontextprotocol/sdk/client/stdio.js";var NS,nl=O(()=>{"use strict";xo();mt();NS=class{connections=new Map;toolToServer=new Map;initialized=!1;configManager;constructor(){this.configManager=new Yt}async initialize(){if(this.initialized)return!0;try{let n=this.configManager.loadConfig().mcpServers||{};W(`Initializing MCP executor with ${Object.keys(n).length} servers`);for(let[r,s]of Object.entries(n)){if(s.enabled===!1){W(`Skipping disabled server: ${r}`);continue}try{await this.connectToServer(r,s)}catch(i){W(`Failed to connect to ${r}: ${i}`)}}return this.initialized=!0,W(`MCP executor initialized with ${this.connections.size} connections`),!0}catch(e){return W(`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}W(`Connecting to MCP server: ${e}`),W(` command: ${r}`),W(` args: ${JSON.stringify(s)}`);let o=new HX({command:r,args:s,env:i,stderr:"pipe"}),a=new zX({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);W(`Connected to ${e}: discovered ${c.length} tools`)}async handleQueryTools(e){let n=e.request_id||"unknown";W(`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 W(`Found ${s.length} MCP tools across all servers`),{type:"mcp_query_tools_response",request_id:n,success:!0,tools:s}}catch(r){return W(`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(W(`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 W(`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 W(`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(){W("Shutting down MCP executor");for(let[e,n]of this.connections)try{await n.client.close(),W(`Closed connection to ${e}`)}catch(r){W(`Error closing ${e}: ${r}`)}this.connections.clear(),this.toolToServer.clear(),this.initialized=!1}isInitialized(){return this.initialized}getConnectionCount(){return this.connections.size}}});var AR=T((ICe,tJ)=>{tJ.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 BS=T((NCe,IR)=>{"use strict";var Jf=Object.assign({},AR()),DR=Object.keys(Jf);Object.defineProperty(Jf,"random",{get(){let t=Math.floor(Math.random()*DR.length),e=DR[t];return Jf[e]}});IR.exports=Jf});function Lo({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 Zf=O(()=>{});var LR=T((YCe,MR)=>{MR.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 mJ,fJ,hJ,gJ,_J,EJ,yJ,Po,th,Pi,XS=O(()=>{"use strict";qe();mJ={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")}},fJ={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")}},hJ={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")}},gJ={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")}},_J={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")}},EJ={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")}},yJ={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}},Po={classic:mJ,brand:fJ,teal:hJ,indigo:gJ,forest:_J,amber:EJ,grayscale:yJ},th="classic",Pi=["classic","brand","teal","indigo","forest","amber","grayscale"]});var Fo={};Le(Fo,{ThemeManager:()=>zs,getAccentColorName:()=>Re,getThemeColors:()=>q,getUserInputTextColorName:()=>sl});function q(){return zs.getInstance().getColors()}function Re(){return zs.getInstance().getAccentColorName()}function sl(){return zs.getInstance().getUserInputTextColorName()}var zs,Fi=O(()=>{"use strict";XS();zs=class t{static instance=null;activeTheme;constructor(){this.activeTheme=Po[th]}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=Po[e];if(!n){let r=Pi.join(", ");throw new Error(`Unknown theme: "${e}". Available themes: ${r}`)}this.activeTheme=n}isValidTheme(e){return e in Po}getAvailableThemes(){return Pi.map(e=>Po[e])}getAccentColorName(){return this.activeTheme.accentColorName}getUserInputTextColorName(){return this.activeTheme.userInputTextColorName}reset(){this.activeTheme=Po[th]}}});var vn=O(()=>{"use strict";XS();Fi()});import{resolve as SJ}from"path";function TJ(){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 Vu(){return JS===null&&(JS=TJ()),JS}function bJ(){return process.platform==="darwin"?"Cmd":"Ctrl"}function BR(){return UR||!Vu()?"":(UR=!0,` (${bJ()}+Click to open)`)}function CJ(t,e){return Vu()?`\x1B]8;;${e}\x07${t}\x1B]8;;\x07`:t}function $R(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(!Vu())return q().filePath(s);let i=q().accent(s),a=`file://${SJ(t)}`;return e!==void 0&&e>0&&(a+=`#L${e}`),CJ(i,a)}var JS,UR,GR=O(()=>{"use strict";vn();JS=null,UR=!1});var qR={};Le(qR,{VERSION:()=>Uo,colors:()=>x,formatCode:()=>OJ,formatPath:()=>Qu,getActionIndicator:()=>RJ,padEndAnsi:()=>PJ,printAction:()=>wJ,printDivider:()=>HR,printError:()=>IJ,printExitSummary:()=>ZS,printHeader:()=>NJ,printSuccess:()=>AJ,printToolComplete:()=>kJ,printToolFailed:()=>vJ,printToolResultCompact:()=>il,printWarning:()=>DJ,shortenPath:()=>MJ});function Ku(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 wJ(t,e,n=console.log){let r=Ku(e)?Qu(e):x.filePath(e);n(x.dim("\u25CB ")+p.bold(t)+" "+r)}function kJ(t,e,n=console.log){let r=Ku(e)?Qu(e):x.filePath(e);n(x.success("\u2713 ")+p.bold(t)+" "+r)}function vJ(t,e,n,r=console.log){let s=Ku(e)?Qu(e):x.filePath(e);r(x.error("\u2717 ")+p.bold(t)+" "+s),n&&r(x.dim(" \u2192 ")+x.error(n))}function il(t,e,n=!0,r,s=console.log){let i=n?x.success("\u25CF"):x.error("\u25CF"),o=60,a=e.length>o?e.slice(0,o-3)+"...":e;if(Ku(e)){let c=e.match(/:(\d+)$/),u=c?parseInt(c[1],10):void 0,d=c?e.replace(/:(\d+)$/,""):e;a=Qu(d,u)}s(`${i} ${p.bold(t)}(${a})`);let l=Ku(e)?x.dim(BR()):"";if(r){let c=n?x.dim:x.error;s(c(`\u2514 ${r}`)+l)}else{let c=n?"(No content)":"(Error)",u=n?x.dim:x.error;s(u(`\u2514 ${c}`)+l)}}function AJ(t){console.log(x.success("\u2713 ")+t)}function DJ(t){console.log(x.warning("\u26A0 ")+t)}function IJ(t){console.log(x.error("\u2717 ")+t)}function HR(t=60){console.log(x.dim("\u2500".repeat(t)))}function NJ(t){console.log(x.logo(t)),HR(t.length)}function RJ(t){return x.thinking(`[${t}]`)}function Qu(t,e){if(Vu())return $R(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}`),x.filePath(r)}function OJ(t){return x.code(t)}function xJ(){return process.stdout.columns||80}function MJ(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 LJ(t){return t.replace(/\x1b\[[0-9;]*m/g,"").length}function PJ(t,e){let n=LJ(t),r=Math.max(0,e-n);return t+" ".repeat(r)}function FJ(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 zR(t){return t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toString()}function ZS(t){let e=xJ(),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=>x.border("\u2502")+" "+s(m,r)+" "+x.border("\u2502"),o=(m,f,h,g)=>{let _=Math.floor(r/2),y=x.dim(m.padEnd(15))+f,S=x.dim(h.padEnd(15))+g;return i(s(y,_)+S)},a=FJ(t.durationSeconds),l=zR(t.tokensIn),c=zR(t.tokensOut),u=`$${t.totalCost.toFixed(4)}`,d=`${t.provider}/${t.model.replace("claude-","").replace("-latest","")}`;console.log(""),console.log(x.border("\u250C"+"\u2500".repeat(n-2)+"\u2510")),console.log(i(x.logo("Session complete. \u{1FABC}"))),console.log(x.border("\u251C"+"\u2500".repeat(n-2)+"\u2524")),console.log(i(x.logo("Session Summary"))),console.log(i(x.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(x.logo("Token Usage"))),console.log(i(x.dim("\u2500".repeat(11)))),console.log(o("Input",l,"Output",c)),console.log(i(x.dim("Cost".padEnd(15))+u)),console.log(i("")),console.log(i(x.dim("Model: ")+x.model(d))),console.log(x.border("\u2514"+"\u2500".repeat(n-2)+"\u2518")),console.log("")}var Uo,x,Wt=O(()=>{"use strict";qe();GR();vn();Uo="0.16.1",x={get logo(){return q().accent.bold},get prompt(){return q().accent.bold},get model(){return q().accent},get success(){return q().success},get warning(){return q().warning},get error(){return q().error},get thinking(){return q().dim},get filePath(){return q().filePath},get code(){return q().code},get muted(){return q().muted},get dim(){return q().dim},get safe(){return q().success},get risky(){return q().warning},get destructive(){return q().error},get border(){return q().accent},get bannerBorder(){return q().accent}}});var Cr,ol,eT=O(()=>{"use strict";Cr={maxConcurrent:5,maxIterations:100,timeout:3e5,autoBackgroundTimeout:12e4,compressionLevel:"medium",permissionMode:"default"},ol={maxConcurrent:3,timeout:30*60*1e3,permissionMode:"dontAsk"}});var nh,tT=O(()=>{"use strict";nh=`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:
|
|
@@ -3445,7 +3445,7 @@ ${f}
|
|
|
3445
3445
|
|
|
3446
3446
|
`+t,mentionedFiles:n}}var RE,BH,xE=O(()=>{"use strict";RE=2e3,BH=10});var kq={};Le(kq,{handleWorktree:()=>vSe});async function vSe(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":{gc()&&(console.error("Already inside a worktree. Exit first."),process.exit(1));let s=await hc({name:n,projectPath:r});console.log(`Created worktree '${s.name}'`),console.log(` Path: ${s.path}`),console.log(` Branch: ${s.branch}`),console.log(`
|
|
3447
3447
|
To enter: cd ${s.path}`);break}case"list":{let s=await so(r);if(s.length===0){console.log("No worktrees found.");return}console.log(`Worktrees (${s.length}):
|
|
3448
|
-
`);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 io(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 Y_(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 vq=O(()=>{"use strict";oo()});var Dq={};Le(Dq,{handleSoul:()=>ASe});async function ASe(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 Aq(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 DSe(r,e);break}case"show":{let s=(await e.load()).soul??"thinker",i=Ss(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 Aq(e),process.exit(1)}}async function Aq(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(x.logo(" Soul System")),console.log(""),console.log(` Active soul: ${x.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} ${x.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 DSe(t,e){let n=cl[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=Ss(t);console.log(p.green(`Switched soul to: ${r.owner}/${r.name}`)),console.log(p.gray("Takes effect on next session."))}var Iq=O(()=>{"use strict";qe();Nr();Wt();os()});var Oq={};Le(Oq,{handleUpgrade:()=>ISe});import{execSync as Nq}from"node:child_process";async function ISe(t){let e=t.args[0]||null,n="0.16.
|
|
3448
|
+
`);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 io(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 Y_(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 vq=O(()=>{"use strict";oo()});var Dq={};Le(Dq,{handleSoul:()=>ASe});async function ASe(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 Aq(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 DSe(r,e);break}case"show":{let s=(await e.load()).soul??"thinker",i=Ss(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 Aq(e),process.exit(1)}}async function Aq(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(x.logo(" Soul System")),console.log(""),console.log(` Active soul: ${x.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} ${x.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 DSe(t,e){let n=cl[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=Ss(t);console.log(p.green(`Switched soul to: ${r.owner}/${r.name}`)),console.log(p.gray("Takes effect on next session."))}var Iq=O(()=>{"use strict";qe();Nr();Wt();os()});var Oq={};Le(Oq,{handleUpgrade:()=>ISe});import{execSync as Nq}from"node:child_process";async function ISe(t){let e=t.args[0]||null,n="0.16.1",r=e?`${Rq}@${e}`:`${Rq}@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{Nq(`npm install -g ${r}`,{stdio:"inherit",timeout:12e4})}catch{console.error(`
|
|
3449
3449
|
Upgrade failed. Try running with sudo or check npm permissions.`),console.error(` Manual: npm install -g ${r}`),process.exit(1)}try{let s=Nq("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 Rq,xq=O(()=>{"use strict";Rq="@aiiware/aii"});var Mq={};Le(Mq,{handleSkillCmd:()=>RSe});function NSe(t){return t.userInvocable&&t.modelInvocable?"":t.userInvocable?"(CLI only)":t.modelInvocable?"(agent only)":"(disabled)"}async function RSe(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 OSe();case"info":return xSe(r);case"install":return MSe(r);case"help":default:return LSe()}}async function OSe(){let{SkillManager:t}=await Promise.resolve().then(()=>(js(),Go)),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=NSe(a).padEnd(14),d=(a.description||"").slice(0,34);console.log(` ${l}${c}${u}${d}`)}}console.log("")}async function xSe(t){if(!t){console.log("Usage: aii skill info <name>");return}let{SkillManager:e}=await Promise.resolve().then(()=>(js(),Go)),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 MSe(t){if(!t){console.log("Usage: aii skill install <owner/repo/skill>");return}let{SkillInstaller:e}=await Promise.resolve().then(()=>(Ed(),Sh)),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 LSe(){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(`
|
|
3450
3450
|
`))}var Lq=O(()=>{"use strict";qe()});var Pq={};Le(Pq,{handlePluginCmd:()=>PSe});async function PSe(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 FSe(r,s);case"uninstall":case"remove":return USe(r);case"update":return BSe(r);case"list":case"ls":return $Se();case"help":default:return GSe()}}async function FSe(t,e){if(!t){console.log("Usage: aii plugin install <owner/repo>");return}let{PluginInstaller:n}=await Promise.resolve().then(()=>(zi(),$o)),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 USe(t){if(!t){console.log("Usage: aii plugin uninstall <name>");return}let{PluginInstaller:e}=await Promise.resolve().then(()=>(zi(),$o)),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 BSe(t){if(!t){console.log("Usage: aii plugin update <name>");return}let{PluginInstaller:e}=await Promise.resolve().then(()=>(zi(),$o)),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 $Se(){let{PluginManager:t}=await Promise.resolve().then(()=>(hd(),fd)),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 GSe(){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(`
|
|
3451
3451
|
`))}var Fq=O(()=>{"use strict";qe()});var Uq={};Le(Uq,{handlePersona:()=>zSe});async function zSe(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 HSe(r,s)}case"use":return qSe(r);case"list":return YSe();case"status":return WSe();case"show":return jSe(t.args.slice(1));case"add":return VSe(t.args.slice(1));case"remove":return KSe(t.args.slice(1));case"set":return QSe(t.args.slice(1));case"reset":return XSe(t.args.slice(1));case"help":default:return JSe()}}async function HSe(t,e=!1){if(!t){console.log("Usage: aii persona install <name> [--force]");return}let{PersonaInstaller:n}=await Promise.resolve().then(()=>(DE(),AE)),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 qSe(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]
|
|
@@ -3465,7 +3465,7 @@ Upgrade failed. Try running with sudo or check npm permissions.`),console.error(
|
|
|
3465
3465
|
${t}
|
|
3466
3466
|
</context>
|
|
3467
3467
|
|
|
3468
|
-
${e}`:e}var _Y="0.16.0",EY=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"]),yY=new Set(["--model","--openrouter-provider","--host","-c","--continue-chat","--auto-background-timeout","--output-format","--tools","--exclude-tools"]);function SY(t){let e=[];for(let n=0;n<t.length;n++){if(EY.has(t[n])){yY.has(t[n])&&n++;continue}e.push(t[n])}return e}function TY(){let t=new sA;return t.name("aii").description("AI-powered CLI assistant").version(_Y,"-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 oA(t){let e=TY();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 rA&&(c.code==="commander.version"||c.code==="commander.helpDisplayed")&&process.exit(0),s=SY(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;y1()&&(a=await iA()),(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 S1={translate:"clean",shell:"clean",shell_generate:"clean",mcp:"standard",explain:"standard",code_generate:"standard",code_review:"standard",summarize:"standard",research:"standard",_default:"standard"};function Eo(t,e,n,r){return t.clean?"clean":t.thinking||t.verbose?"thinking":t.standard?"standard":e&&n?.[e]?n[e]:e&&S1[e]?S1[e]:r||S1._default}var aA={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 T1(t){let e=aA[t.command]??Ae.SERVER;switch(t.command){case"config":return bY(t);case"mcp":return CY(t);case"prompt":return wY(t);case"stats":return kY(t);case"history":return vY(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 DY(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 bY(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 CY(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 wY(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 kY(t){let e=t.subcommand??t.args[0];return{tier:Ae.LOCAL,handler:e?`stats:${e}`:"stats",params:{}}}function vY(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 AY=new Set(["--model","--host","--continue-chat","-c"]);function DY(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(AY.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}}}kn();qe();import{createInterface as c1e}from"readline";import{spawn as u1e}from"child_process";DS();$r();mt();var qX={timeout:12e4,retries:3,retryDelay:1e3},br=class{options;ws=null;activityTimeout=null;mcpExecutor=null;constructor(e){this.options={...qX,...e}}async initializeMCP(){if(!this.mcpExecutor){let{ClientMCPExecutor:e}=await Promise.resolve().then(()=>(nl(),tl));this.mcpExecutor=new e,await this.mcpExecutor.initialize(),W(`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)),W(`Attempt ${s+1} failed: ${r.message}`),r instanceof xu||r.message.includes("Authentication"))throw r;if(s<this.options.retries-1){let o=this.options.retryDelay*Math.pow(2,s);W(`Retrying in ${o}ms...`),await this.sleep(o)}}throw r??new Ou("Max retries exceeded")}async executeWithRetry(e,n){return new Promise((r,s)=>{let i=this.buildWebSocketUrl();W(`Connecting to ${i}`);try{this.ws=new Hr(i)}catch{let l=new URL(this.options.url);s(new Nu(l.hostname||"localhost",l.port||"26169"));return}let o=!1,a=null;this.resetActivityTimeout(()=>{o||(this.cleanup(),s(new Ru("WebSocket activity",this.options.timeout)))}),this.ws.on("open",()=>{W("WebSocket connected, sending request"),this.ws?.send(JSON.stringify(e))}),this.ws.on("message",l=>{this.resetActivityTimeout(()=>{o||(this.cleanup(),s(new Ru("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>";W(`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(W(`WebSocket error: ${l.message}`),!o){o=!0,this.cleanup();let c=new URL(this.options.url);s(new Nu(c.hostname||"localhost",c.port||"26169"))}}),this.ws.on("close",(l,c)=>{W(`WebSocket closed: ${l} ${c.toString()}`),o||(o=!0,this.cleanup(),a?r(a):s(new Ou(`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 xu(i.code,i.message);n?.onError?.(o),s(o);break}case"mcp_query_tools":{W("Received mcp_query_tools request"),this.handleMCPQueryTools(e);break}case"mcp_tool_request":{W("Received mcp_tool_request"),this.handleMCPToolRequest(e);break}default:W(`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(()=>(nl(),tl));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;W(`Error handling mcp_query_tools: ${r}${s?`
|
|
3468
|
+
${e}`:e}var _Y="0.16.1",EY=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"]),yY=new Set(["--model","--openrouter-provider","--host","-c","--continue-chat","--auto-background-timeout","--output-format","--tools","--exclude-tools"]);function SY(t){let e=[];for(let n=0;n<t.length;n++){if(EY.has(t[n])){yY.has(t[n])&&n++;continue}e.push(t[n])}return e}function TY(){let t=new sA;return t.name("aii").description("AI-powered CLI assistant").version(_Y,"-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 oA(t){let e=TY();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 rA&&(c.code==="commander.version"||c.code==="commander.helpDisplayed")&&process.exit(0),s=SY(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;y1()&&(a=await iA()),(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 S1={translate:"clean",shell:"clean",shell_generate:"clean",mcp:"standard",explain:"standard",code_generate:"standard",code_review:"standard",summarize:"standard",research:"standard",_default:"standard"};function Eo(t,e,n,r){return t.clean?"clean":t.thinking||t.verbose?"thinking":t.standard?"standard":e&&n?.[e]?n[e]:e&&S1[e]?S1[e]:r||S1._default}var aA={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 T1(t){let e=aA[t.command]??Ae.SERVER;switch(t.command){case"config":return bY(t);case"mcp":return CY(t);case"prompt":return wY(t);case"stats":return kY(t);case"history":return vY(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 DY(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 bY(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 CY(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 wY(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 kY(t){let e=t.subcommand??t.args[0];return{tier:Ae.LOCAL,handler:e?`stats:${e}`:"stats",params:{}}}function vY(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 AY=new Set(["--model","--host","--continue-chat","-c"]);function DY(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(AY.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}}}kn();qe();import{createInterface as c1e}from"readline";import{spawn as u1e}from"child_process";DS();$r();mt();var qX={timeout:12e4,retries:3,retryDelay:1e3},br=class{options;ws=null;activityTimeout=null;mcpExecutor=null;constructor(e){this.options={...qX,...e}}async initializeMCP(){if(!this.mcpExecutor){let{ClientMCPExecutor:e}=await Promise.resolve().then(()=>(nl(),tl));this.mcpExecutor=new e,await this.mcpExecutor.initialize(),W(`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)),W(`Attempt ${s+1} failed: ${r.message}`),r instanceof xu||r.message.includes("Authentication"))throw r;if(s<this.options.retries-1){let o=this.options.retryDelay*Math.pow(2,s);W(`Retrying in ${o}ms...`),await this.sleep(o)}}throw r??new Ou("Max retries exceeded")}async executeWithRetry(e,n){return new Promise((r,s)=>{let i=this.buildWebSocketUrl();W(`Connecting to ${i}`);try{this.ws=new Hr(i)}catch{let l=new URL(this.options.url);s(new Nu(l.hostname||"localhost",l.port||"26169"));return}let o=!1,a=null;this.resetActivityTimeout(()=>{o||(this.cleanup(),s(new Ru("WebSocket activity",this.options.timeout)))}),this.ws.on("open",()=>{W("WebSocket connected, sending request"),this.ws?.send(JSON.stringify(e))}),this.ws.on("message",l=>{this.resetActivityTimeout(()=>{o||(this.cleanup(),s(new Ru("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>";W(`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(W(`WebSocket error: ${l.message}`),!o){o=!0,this.cleanup();let c=new URL(this.options.url);s(new Nu(c.hostname||"localhost",c.port||"26169"))}}),this.ws.on("close",(l,c)=>{W(`WebSocket closed: ${l} ${c.toString()}`),o||(o=!0,this.cleanup(),a?r(a):s(new Ou(`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 xu(i.code,i.message);n?.onError?.(o),s(o);break}case"mcp_query_tools":{W("Received mcp_query_tools request"),this.handleMCPQueryTools(e);break}case"mcp_tool_request":{W("Received mcp_tool_request"),this.handleMCPToolRequest(e);break}default:W(`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(()=>(nl(),tl));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;W(`Error handling mcp_query_tools: ${r}${s?`
|
|
3469
3469
|
${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(()=>(nl(),tl));this.mcpExecutor=new r,await this.mcpExecutor.initialize()}let n=await this.mcpExecutor.handleToolExecution(e);this.ws?.send(JSON.stringify(n))}catch(n){W(`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){W(`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 eh from"node:process";import vR from"node:process";import Qf from"node:process";var YX=(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);!WX(s,i)&&r||Object.defineProperty(t,n,i)},WX=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)},jX=(t,e)=>{let n=Object.getPrototypeOf(e);n!==Object.getPrototypeOf(t)&&Object.setPrototypeOf(t,n)},VX=(t,e)=>`/* Wrapped ${t}*/
|
|
3470
3470
|
${e}`,KX=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),QX=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),XX=(t,e,n)=>{let r=n===""?"":`with ${n.trim()}() `,s=VX.bind(null,r,e.toString());Object.defineProperty(s,"name",QX);let{writable:i,enumerable:o,configurable:a}=KX;Object.defineProperty(t,"toString",{value:s,writable:i,enumerable:o,configurable:a})};function RS(t,e,{ignoreNonConfigurable:n=!1}={}){let{name:r}=t;for(let s of Reflect.ownKeys(e))YX(t,e,s,n);return jX(t,e),XX(t,e,r),t}var jf=new WeakMap,TR=(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(jf.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 RS(i,t),jf.set(i,r),i};TR.callCount=t=>{if(!jf.has(t))throw new Error(`The given function \`${t.name}\` is not wrapped by the \`onetime\` package`);return jf.get(t)};var bR=TR;var Mo=[];Mo.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Mo.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Mo.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var Vf=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",OS=Symbol.for("signal-exit emitter"),xS=globalThis,JX=Object.defineProperty.bind(Object),MS=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(xS[OS])return xS[OS];JX(xS,OS,{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}},Kf=class{},ZX=t=>({onExit(e,n){return t.onExit(e,n)},load(){return t.load()},unload(){return t.unload()}}),LS=class extends Kf{onExit(){return()=>{}}load(){}unload(){}},PS=class extends Kf{#o=FS.platform==="win32"?"SIGINT":"SIGHUP";#n=new MS;#e;#s;#p;#t={};#i=!1;constructor(e){super(),this.#e=e,this.#t={};for(let n of Mo)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(!Vf(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 Mo)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,Mo.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 Vf(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"&&Vf(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)}},FS=globalThis.process,{onExit:CR,load:yCe,unload:SCe}=ZX(Vf(FS)?new PS(FS):new LS);var wR=Qf.stderr.isTTY?Qf.stderr:Qf.stdout.isTTY?Qf.stdout:void 0,eJ=wR?bR(()=>{CR(()=>{wR.write("\x1B[?25h")},{alwaysLast:!0})}):()=>{},kR=eJ;var Xf=!1,rl={};rl.show=(t=vR.stderr)=>{t.isTTY&&(Xf=!1,t.write("\x1B[?25h"))};rl.hide=(t=vR.stderr)=>{t.isTTY&&(kR(),Xf=!0,t.write("\x1B[?25l"))};rl.toggle=(t,e)=>{t!==void 0&&(Xf=t),Xf?rl.show(e):rl.hide(e)};var US=rl;var ju=Ht(BS(),1);qe();import qr from"node:process";function $S(){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 nJ={info:p.blue("\u2139"),success:p.green("\u2714"),warning:p.yellow("\u26A0"),error:p.red("\u2716")},rJ={info:p.blue("i"),success:p.green("\u221A"),warning:p.yellow("\u203C"),error:p.red("\xD7")},sJ=$S()?nJ:rJ,Wu=sJ;Zf();var iJ=Lo();function GS(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(iJ,"")}Zf();var oJ=Lo();function zS(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(oJ,"")}function NR(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 RR(t){return t===12288||t>=65281&&t<=65376||t>=65504&&t<=65510}function OR(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 aJ(t){if(!Number.isSafeInteger(t))throw new TypeError(`Expected a code point, got \`${typeof t}\`.`)}function xR(t,{ambiguousAsWide:e=!1}={}){return aJ(t),RR(t)||OR(t)||e&&NR(t)?2:1}var PR=Ht(LR(),1),lJ=new Intl.Segmenter,cJ=new RegExp("^\\p{Default_Ignorable_Code_Point}$","u");function HS(t,e={}){if(typeof t!="string"||t.length===0)return 0;let{ambiguousIsNarrow:n=!0,countAnsiEscapeCodes:r=!1}=e;if(r||(t=zS(t)),t.length===0)return 0;let s=0,i={ambiguousAsWide:!n};for(let{segment:o}of lJ.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)&&!cJ.test(o)){if((0,PR.default)().test(o)){s+=2;continue}s+=xR(a,i)}}return s}function qS({stream:t=process.stdout}={}){return!!(t&&t.isTTY&&process.env.TERM!=="dumb"&&!("CI"in process.env))}import FR from"node:process";function YS(){let{env:t}=FR,{TERM:e,TERM_PROGRAM:n}=t;return FR.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 ss from"node:process";var uJ=3,WS=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(){ss.platform==="win32"||!ss.stdin.isTTY||(ss.stdin.setRawMode(!0),ss.stdin.on("data",this.#s),ss.stdin.resume())}#e(){ss.stdin.isTTY&&(ss.stdin.off("data",this.#s),ss.stdin.pause(),ss.stdin.setRawMode(!1))}#s(e){e[0]===uJ&&ss.emit("SIGINT")}},dJ=new WS,jS=dJ;var pJ=Ht(BS(),1),VS=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:eh.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:qS({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,eh.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(!YS())this.#i=ju.default.line;else if(e===void 0)this.#i=ju.default.dots;else if(e!=="default"&&ju.default[e])this.#i=ju.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 GS(s).split(`
|
|
3471
3471
|
`))this.#e+=Math.max(1,Math.ceil(HS(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&&US.hide(this.#r),this.#t.discardStdin&&eh.stdin.isTTY&&(this.#n=!0,jS.start()),this.render(),this.#m=setInterval(this.render.bind(this),this.interval),this):(this.text&&this.#r.write(`- ${this.text}
|
|
@@ -3476,7 +3476,7 @@ ${e}`,KX=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),QX=Objec
|
|
|
3476
3476
|
`+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(`
|
|
3477
3477
|
`)}formatConfig(e){let n=[];n.push(this.color(`${this.emoji("\u{1F4CB} ")}Current AII Configuration:`,x.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(`
|
|
3478
3478
|
`)}formatHealthCheck(e,n){let r=[],s=n?`Aii Doctor v${n}`:"Aii Doctor";r.push(this.color(s,x.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(`
|
|
3479
|
-
`)}};function or(t={}){return new Ak(t)}$r();var ka={openrouter:"openrouter",ollama:"ollama",anthropic:"anthropic",openai:"openai",gemini:"gemini",google:"gemini",deepseek:"deepseek",moonshot:"moonshot",zai:"zai"},SEe=[{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 Zt(t){if(!t)return t;let e=t.indexOf(":");if(e>0){let n=t.substring(0,e).toLowerCase();if(n in ka)return n+"/"+t.substring(e+1)}return t}function Dk(t){if(!t)return;let e=t.toLowerCase();for(let{provider:n,patterns:r}of SEe)for(let s of r)if(s.test(e))return n}function en(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 ka?e&&ka[r]!==e?t:t.substring(n+1):t}function _E(t){if(!t)return;let e=t.indexOf("/");if(e>0){let r=t.substring(0,e).toLowerCase();if(r in ka){let s=ka[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 ka){let s=ka[r],i=t.substring(n+1),o=s==="ollama"?`ollama/${i}`:i;return{provider:s,model:o}}}}function va(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=Dk(t);if(n)return n}return e}qe();import*as EH from"readline";$r();import*as pr from"fs";import*as yE from"path";import*as mH from"os";var EE=yE.join(mH.homedir(),".aii","conversations"),Ik=yE.join(EE,"current.json");function SE(){pr.existsSync(EE)||pr.mkdirSync(EE,{recursive:!0})}function TEe(){return`conv_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}function bEe(t){let n=t.trim().replace(/\s+/g," ");return n.length>50&&(n=n.substring(0,50).trim()+"..."),n}function fH(t){return yE.join(EE,`${t}.json`)}function hH(){SE();try{if(pr.existsSync(Ik)){let t=pr.readFileSync(Ik,"utf-8"),e=JSON.parse(t),n=fH(e.id);if(pr.existsSync(n)){let r=pr.readFileSync(n,"utf-8");return JSON.parse(r)}}}catch{}return gH()}function gH(){SE();let t={id:TEe(),title:"New Conversation",messages:[],createdAt:Date.now(),updatedAt:Date.now()};return tm(t),CEe(t.id),t}function tm(t){if(SE(),t.title==="New Conversation"&&t.messages.length>0){let n=t.messages.find(r=>r.role==="user");n&&(t.title=bEe(n.content))}t.updatedAt=Date.now();let e=fH(t.id);pr.writeFileSync(e,JSON.stringify(t,null,2),"utf-8")}function CEe(t){SE(),pr.writeFileSync(Ik,JSON.stringify({id:t}),"utf-8")}function _H(){return gH()}la();var wEe="0.16.
|
|
3479
|
+
`)}};function or(t={}){return new Ak(t)}$r();var ka={openrouter:"openrouter",ollama:"ollama",anthropic:"anthropic",openai:"openai",gemini:"gemini",google:"gemini",deepseek:"deepseek",moonshot:"moonshot",zai:"zai"},SEe=[{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 Zt(t){if(!t)return t;let e=t.indexOf(":");if(e>0){let n=t.substring(0,e).toLowerCase();if(n in ka)return n+"/"+t.substring(e+1)}return t}function Dk(t){if(!t)return;let e=t.toLowerCase();for(let{provider:n,patterns:r}of SEe)for(let s of r)if(s.test(e))return n}function en(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 ka?e&&ka[r]!==e?t:t.substring(n+1):t}function _E(t){if(!t)return;let e=t.indexOf("/");if(e>0){let r=t.substring(0,e).toLowerCase();if(r in ka){let s=ka[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 ka){let s=ka[r],i=t.substring(n+1),o=s==="ollama"?`ollama/${i}`:i;return{provider:s,model:o}}}}function va(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=Dk(t);if(n)return n}return e}qe();import*as EH from"readline";$r();import*as pr from"fs";import*as yE from"path";import*as mH from"os";var EE=yE.join(mH.homedir(),".aii","conversations"),Ik=yE.join(EE,"current.json");function SE(){pr.existsSync(EE)||pr.mkdirSync(EE,{recursive:!0})}function TEe(){return`conv_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}function bEe(t){let n=t.trim().replace(/\s+/g," ");return n.length>50&&(n=n.substring(0,50).trim()+"..."),n}function fH(t){return yE.join(EE,`${t}.json`)}function hH(){SE();try{if(pr.existsSync(Ik)){let t=pr.readFileSync(Ik,"utf-8"),e=JSON.parse(t),n=fH(e.id);if(pr.existsSync(n)){let r=pr.readFileSync(n,"utf-8");return JSON.parse(r)}}}catch{}return gH()}function gH(){SE();let t={id:TEe(),title:"New Conversation",messages:[],createdAt:Date.now(),updatedAt:Date.now()};return tm(t),CEe(t.id),t}function tm(t){if(SE(),t.title==="New Conversation"&&t.messages.length>0){let n=t.messages.find(r=>r.role==="user");n&&(t.title=bEe(n.content))}t.updatedAt=Date.now();let e=fH(t.id);pr.writeFileSync(e,JSON.stringify(t,null,2),"utf-8")}function CEe(t){SE(),pr.writeFileSync(Ik,JSON.stringify({id:t}),"utf-8")}function _H(){return gH()}la();var wEe="0.16.1",Nk=class{configManager;parsed;running=!1;conversation;stats;formatter;effectiveProvider="";constructor(e,n){this.parsed=e,this.configManager=n,this.conversation=hH(),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()}),tm(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(`
|
|
3480
3480
|
\u26A0\uFE0F Interrupted. Type /exit to quit or continue chatting.`);continue}console.error(p.red(`
|
|
3481
3481
|
\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(),tm(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=EH.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(`
|
|
3482
3482
|
`).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 wn(r.issues.join(", "));let i=this.configManager.getServerApiKey()||"aii_sk_7WyvfQ0PRzufJ1G66Qn8Sm4gW9Tealpo6vOWDDUeiv4",o=Zt(this.parsed.flags.model??""),a=hn(o||void 0,n.llm.provider),l=en(o||n.llm.model,a);this.effectiveProvider=a;let c=this.configManager.getApiKey(a);if(!c)throw new Ot(`Missing API key for provider: ${a}`);this.stats.totalRequests++;let u=is(!this.parsed.flags.noAnimations);u.start("");let d=Ns({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:xn.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 b=S.result||_;!y&&b&&console.log(b),console.log(""),S.metadata&&this.displayExecutionSummary(S.metadata),b&&(this.conversation.messages.push({role:"assistant",content:b,timestamp:Date.now()}),tm(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=_H(),console.clear(),this.displayWelcome()}displayConversationHistory(){if(this.conversation.messages.length===0){console.log(`
|
|
@@ -4118,10 +4118,10 @@ Container logs:
|
|
|
4118
4118
|
${s}`:`
|
|
4119
4119
|
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 H1e(t){let e=HE()?"sudo ":"";try{let n=Cn(`${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 nq(t,e){let n=e||Y1e(t.showProgress);n("Checking Docker...","docker"),GE()||await $1e({interactive:t.interactive}),zE()||(n("Starting Docker daemon...","docker"),await B1e()),n("Docker ready","docker"),n("Setting up Aii Server...","server");let r=await G1e(t.port,n);if(n("Verifying server health...","health"),!await q1e(r.port,3e4,n)){let i=HE()?"sudo ":"",o="";try{o=Cn(`${i}docker logs aii-server --tail 15 2>&1`,{timeout:5e3,encoding:"utf-8",stdio:"pipe"})}catch{}throw new an("Server started but health check failed after 30 seconds.",`curl http://localhost:${r.port}/health`,"docker logs aii-server",o?`
|
|
4120
4120
|
Recent logs:
|
|
4121
|
-
${o}`:"")}return n("Server ready!","done"),{success:!0,port:r.port,upgraded:!1,freshInstall:!0}}async function q1e(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 Y1e(t){return t?(e,n)=>{process.stderr.write(`\r\x1B[K \u25CF ${e}`)}:()=>{}}function eq(t){return new Promise(e=>{let n=tq.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 rq(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 W1e(i.api.url);r.push({name:"Aii Server",status:a.ok?"ok":"error",message:a.message});let l=`${e.getConfigDir()}/mcp_servers.json`;if(Os.existsSync(l))try{let f=Os.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(GE())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)"});GE()?zE()?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 j1e();r.push(...d),console.log(n.formatHealthCheck(r,Uo)),r.some(f=>f.status==="error")&&process.exit(1)}async function W1e(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 j1e(){let t=[];try{let{getAiiHome:e}=await Promise.resolve().then(()=>(os(),ph)),n=`${e()}/skills`;if(!Os.existsSync(n))return t;let r=Os.readdirSync(n,{withFileTypes:!0});for(let s of r){if(!s.isDirectory()||s.name.startsWith("."))continue;let i=`${n}/${s.name}/SKILL.md`;Os.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}`;Os.existsSync(l)&&Os.existsSync(`${l}/SKILL.md`)&&t.push({name:"Skill Shadow",status:"ok",message:`"${a}" user-authored shadows persona-bundled (intentional?)`})}}}catch{}}catch{}return t}qe();Wt();import{execSync as Xk}from"node:child_process";var qE="@aiiware/aii";async function sq(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.
|
|
4122
|
-
`),await V1e(n)}async function V1e(t){let e="0.16.
|
|
4121
|
+
${o}`:"")}return n("Server ready!","done"),{success:!0,port:r.port,upgraded:!1,freshInstall:!0}}async function q1e(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 Y1e(t){return t?(e,n)=>{process.stderr.write(`\r\x1B[K \u25CF ${e}`)}:()=>{}}function eq(t){return new Promise(e=>{let n=tq.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 rq(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 W1e(i.api.url);r.push({name:"Aii Server",status:a.ok?"ok":"error",message:a.message});let l=`${e.getConfigDir()}/mcp_servers.json`;if(Os.existsSync(l))try{let f=Os.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(GE())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)"});GE()?zE()?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 j1e();r.push(...d),console.log(n.formatHealthCheck(r,Uo)),r.some(f=>f.status==="error")&&process.exit(1)}async function W1e(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 j1e(){let t=[];try{let{getAiiHome:e}=await Promise.resolve().then(()=>(os(),ph)),n=`${e()}/skills`;if(!Os.existsSync(n))return t;let r=Os.readdirSync(n,{withFileTypes:!0});for(let s of r){if(!s.isDirectory()||s.name.startsWith("."))continue;let i=`${n}/${s.name}/SKILL.md`;Os.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}`;Os.existsSync(l)&&Os.existsSync(`${l}/SKILL.md`)&&t.push({name:"Skill Shadow",status:"ok",message:`"${a}" user-authored shadows persona-bundled (intentional?)`})}}}catch{}}catch{}return t}qe();Wt();import{execSync as Xk}from"node:child_process";var qE="@aiiware/aii";async function sq(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.1";console.log(""),console.log(x.logo(" Install")),console.log(""),console.log(` Current version: ${x.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
|
|
4122
|
+
`),await V1e(n)}async function V1e(t){let e="0.16.1",n=t&&t!=="latest"?t:"";if(console.log(""),n){console.log(`\u{1FABC} Installing Aii CLI v${n}...`),console.log("");try{Xk(`npm install -g ${qE}@${n}`,{stdio:"inherit",timeout:12e4})}catch{console.error(`
|
|
4123
4123
|
\u274C Failed to install v${n}`),console.error(` Try manually: npm install -g ${qE}@${n}`),process.exit(1)}}else{console.log("\u{1FABC} Updating Aii CLI to latest..."),console.log(` Current version: ${e}`),console.log("");try{Xk(`npm install -g ${qE}@latest`,{stdio:"inherit",timeout:12e4})}catch{console.error(`
|
|
4124
|
-
\u274C Failed to update Aii CLI`),console.error(` Try manually: npm install -g ${qE}@latest`),process.exit(1)}}try{let r=Xk("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 iq="0.16.
|
|
4124
|
+
\u274C Failed to update Aii CLI`),console.error(` Try manually: npm install -g ${qE}@latest`),process.exit(1)}}try{let r=Xk("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 iq="0.16.1";function Jk(t){let n=!t.flags.noColors?p:{cyan:r=>r,yellow:r=>r,gray:r=>r,green:r=>r};console.log(`
|
|
4125
4125
|
${n.cyan("AII")} - AI-powered CLI assistant v${iq}
|
|
4126
4126
|
|
|
4127
4127
|
${n.yellow("USAGE:")}
|
|
@@ -4487,7 +4487,7 @@ Prompt validation coming soon.
|
|
|
4487
4487
|
\u274C Missing prompt name`),console.error(` Usage: aii prompt use <name> [--vars]
|
|
4488
4488
|
`),process.exit(1)),await _Se(t,n,r,c);break;case"validate":n||(console.error(`
|
|
4489
4489
|
\u274C Missing file path`),console.error(` Usage: aii prompt validate <file>
|
|
4490
|
-
`),process.exit(1)),await ESe(t,n);break;case"help":case"--help":case"-h":default:fSe(!t.flags.noColors);break}}import{execSync as xs,spawn as ySe}from"child_process";import{existsSync as SSe,mkdirSync as TSe}from"fs";import{homedir as bSe}from"os";import{join as CSe}from"path";var wSe="aiiware/aii-server:latest",kSe="aii-server",Ms=26169,Vc="v0.5.
|
|
4490
|
+
`),process.exit(1)),await ESe(t,n);break;case"help":case"--help":case"-h":default:fSe(!t.flags.noColors);break}}import{execSync as xs,spawn as ySe}from"child_process";import{existsSync as SSe,mkdirSync as TSe}from"fs";import{homedir as bSe}from"os";import{join as CSe}from"path";var wSe="aiiware/aii-server:latest",kSe="aii-server",Ms=26169,Vc="v0.5.14",Kc="https://aiiware.com/server.sh",JE=class t{port;host;containerName;image;configDir;constructor(e=Ms){this.port=e,this.host="127.0.0.1",this.containerName=kSe,this.image=wSe,this.configDir=CSe(bSe(),".aii")}isDockerAvailable(){try{return xs("docker info",{stdio:"pipe",timeout:5e3}),!0}catch{return!1}}isContainerExists(){try{return xs(`docker container inspect ${this.containerName}`,{stdio:"pipe",timeout:5e3}),!0}catch{return!1}}isContainerRunning(){try{return xs(`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,Vc),version:c}:{isCompatible:!0,version:null}}return{isCompatible:!0,version:null}}catch{return{isCompatible:!1,version:null}}}getContainerHostPort(){try{let e=xs(`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=Ms,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 xs(`docker start ${this.containerName}`,{stdio:"pipe",timeout:3e4}),!0}catch{return!1}}stopContainer(){try{return xs(`docker stop ${this.containerName}`,{stdio:"pipe",timeout:3e4}),!0}catch{return!1}}getContainerLogs(e=50){try{return xs(`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 ${Kc} | bash
|
|
4491
4491
|
`);let r=ySe("bash",["-c",`curl -fsSL ${Kc} | bash`],{stdio:e?["pipe","inherit","inherit"]:"pipe",detached:!1}),s=()=>{try{r.kill("SIGINT")}catch{}console.log(`
|
|
4492
4492
|
|
|
4493
4493
|
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(`
|