woozlit 1.0.0

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/README.md ADDED
@@ -0,0 +1,132 @@
1
+ # Woozlit CLI
2
+
3
+ Command-line interface for Woozlit AI - an agentic coding assistant.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ cd cli
9
+ pnpm install
10
+ pnpm build
11
+ pnpm link --global
12
+ ```
13
+
14
+ ## Features
15
+
16
+ - **Agentic AI**: Executes complex tasks (coding, testing, deployment) autonomously.
17
+ - **MCP Support**: Use external tools (Computer Use, Filesystem, etc.) via Model Context Protocol.
18
+ - **System Control**: Full access to shell commands, file system, and background processes.
19
+ - **Auto-Correction**: Automatically detects and attempts to fix errors during execution.
20
+ - **CLI Integration**: Works directly in your terminal with rich UI and interactive prompts.
21
+
22
+ ## Usage
23
+
24
+ ### Start Chat
25
+
26
+ ```bash
27
+ woozlit
28
+ # or
29
+ woozlit chat
30
+ ```
31
+
32
+ ### Login
33
+
34
+ ```bash
35
+ woozlit login
36
+ ```
37
+
38
+ Opens browser for Google authentication. Required before using chat.
39
+
40
+ ### Logout
41
+
42
+ ```bash
43
+ woozlit logout
44
+ ```
45
+
46
+ ### Check Current User
47
+
48
+ ```bash
49
+ woozlit whoami
50
+ ```
51
+
52
+ ### Single Question
53
+
54
+ ```bash
55
+ woozlit ask "create a hello world file"
56
+ ```
57
+
58
+ ### Select Model
59
+
60
+ ```bash
61
+ woozlit config model
62
+ ```
63
+
64
+ ### Manage Rules
65
+
66
+ ```bash
67
+ woozlit rules list
68
+ woozlit rules add "always use typescript"
69
+ woozlit rules clear
70
+ ```
71
+
72
+ ### Initialize Project
73
+
74
+ ```bash
75
+ woozlit init
76
+ ```
77
+
78
+ Creates `.woozlit/` folder with `rules.md` and `context.md`.
79
+
80
+ ## Chat Commands
81
+
82
+ Inside chat session:
83
+
84
+ - `/exit` - Exit chat
85
+ - `/clear` - Clear conversation
86
+ - `/model` - Switch AI model
87
+ - `/usage` - Check token usage
88
+ - `/help` - Show help
89
+
90
+ ## Available Models
91
+
92
+ All models are provided via OpenRouter:
93
+
94
+ - MiMo V2 (default)
95
+ - Qwen3 235B
96
+ - Qwen3 Coder
97
+ - Llama 3.3 70B
98
+ - Llama 4 Maverick
99
+ - Devstral Small
100
+ - Mistral Small 3.2
101
+ - Nemotron Nano 12B
102
+ - Kimi K2
103
+ - GLM 4.5 Air
104
+ - Kat Coder Pro
105
+ - DeepSeek R1T Chimera
106
+
107
+ ## Security
108
+
109
+ - Requires Google authentication
110
+ - Uses Firebase auth tokens
111
+ - No secrets stored in CLI code
112
+ - All requests verified server-side
113
+
114
+ ## MCP Support (New in v1.2.0)
115
+
116
+ Woozlit CLI supports the **Model Context Protocol (MCP)**, allowing the AI to use external tools.
117
+
118
+ **Manage MCP Servers:**
119
+ ```bash
120
+ # Add an MCP server
121
+ woozlit mcp add sqlite uvx mcp-server-sqlite --db test.db
122
+
123
+ # List connected servers
124
+ woozlit mcp list
125
+
126
+ # Remove a server
127
+ woozlit mcp remove sqlite
128
+ ```
129
+
130
+ Once added, the AI can automatically discover and use tools provided by these servers (e.g., querying a database).
131
+
132
+ Use `/mcp` in the chat to see currently active tools.
@@ -0,0 +1,4 @@
1
+ import { isLoggedIn } from "../utils/storage.js";
2
+ export declare function login(): Promise<boolean>;
3
+ export declare function logout(): void;
4
+ export { isLoggedIn };
@@ -0,0 +1 @@
1
+ (function(_0x4dbb41,_0x9a4a4f){const _0x18b43e=a0_0x1040,_0x279d39=_0x4dbb41();while(!![]){try{const _0x225b1d=-parseInt(_0x18b43e(0xe5))/0x1+-parseInt(_0x18b43e(0xf5))/0x2*(parseInt(_0x18b43e(0xed))/0x3)+parseInt(_0x18b43e(0xf9))/0x4+parseInt(_0x18b43e(0xea))/0x5*(parseInt(_0x18b43e(0xe6))/0x6)+-parseInt(_0x18b43e(0xf3))/0x7*(-parseInt(_0x18b43e(0xe7))/0x8)+parseInt(_0x18b43e(0xfb))/0x9+-parseInt(_0x18b43e(0xf8))/0xa;if(_0x225b1d===_0x9a4a4f)break;else _0x279d39['push'](_0x279d39['shift']());}catch(_0xd94462){_0x279d39['push'](_0x279d39['shift']());}}}(a0_0x6802,0xa9041));import a0_0x3f7396 from'open';function a0_0x1040(_0x2beae0,_0x167141){_0x2beae0=_0x2beae0-0xe4;const _0x68029e=a0_0x6802();let _0x1040d1=_0x68029e[_0x2beae0];return _0x1040d1;}import{createServer}from'http';function a0_0x6802(){const _0x52427a=['token','6VLovyU','/auth/cli?callback=http://localhost:','displayName','get','searchParams','email','1175083KUHqMy','close','350634JkiGUG','text/html','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!DOCTYPE\x20html>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<html>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<head>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<title>Woozlit\x20CLI</title>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<style>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20body\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20system-ui,\x20-apple-system,\x20sans-serif;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height:\x20100vh;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#0a0a0a;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#fff;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.container\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20text-align:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x202rem;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20h1\x20{\x20color:\x20#10b981;\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20p\x20{\x20color:\x20#9ca3af;\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</style>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</head>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<body>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22container\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h1>Login\x20Successful</h1>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20the\x20terminal.</p>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</body>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</html>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','15700110cUjBXl','437096YYmStG','writeHead','9765648zMbOJC','pathname','129615oJocnE','122334UShICO','32ujznaW','end','http://localhost:','215KHSfkR','/callback'];a0_0x6802=function(){return _0x52427a;};return a0_0x6802();}import{getApiUrl}from'../config/settings.js';import{setToken,setUser,isLoggedIn,logout as a0_0x232d40}from'../utils/storage.js';export async function login(){const _0x185242=getApiUrl(),_0x4e58c3=0x2694;return new Promise(_0x2f28b1=>{const _0x442a76=createServer(async(_0x13bf2d,_0xa9ae62)=>{const _0x39340b=a0_0x1040,_0x290ec6=new URL(_0x13bf2d['url']||'',_0x39340b(0xe9)+_0x4e58c3);if(_0x290ec6[_0x39340b(0xe4)]===_0x39340b(0xeb)){const _0x3ec428=_0x290ec6[_0x39340b(0xf1)][_0x39340b(0xf0)](_0x39340b(0xec)),_0x45cca9=_0x290ec6[_0x39340b(0xf1)][_0x39340b(0xf0)]('userId'),_0x288ccc=_0x290ec6['searchParams'][_0x39340b(0xf0)](_0x39340b(0xf2)),_0x45783c=_0x290ec6['searchParams']['get'](_0x39340b(0xef));_0x3ec428&&_0x45cca9?(setToken(_0x3ec428),setUser(_0x45cca9,_0x288ccc||'',_0x45783c||''),_0xa9ae62[_0x39340b(0xfa)](0xc8,{'Content-Type':_0x39340b(0xf6)}),_0xa9ae62[_0x39340b(0xe8)](_0x39340b(0xf7)),_0x442a76[_0x39340b(0xf4)](),_0x2f28b1(!![])):(_0xa9ae62[_0x39340b(0xfa)](0x190,{'Content-Type':'text/html'}),_0xa9ae62[_0x39340b(0xe8)]('\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<!DOCTYPE\x20html>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<html>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<head><title>Woozlit\x20CLI</title></head>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<body\x20style=\x22font-family:\x20sans-serif;\x20text-align:\x20center;\x20padding:\x202rem;\x20background:\x20#0a0a0a;\x20color:\x20#fff;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h1\x20style=\x22color:\x20#ef4444;\x22>Login\x20Failed</h1>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<p>Missing\x20authentication\x20data.\x20Please\x20try\x20again.</p>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</body>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</html>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'),_0x442a76['close'](),_0x2f28b1(![]));}});_0x442a76['listen'](_0x4e58c3,()=>{const _0x1db3e0=a0_0x1040,_0x2b99c1=_0x185242+_0x1db3e0(0xee)+_0x4e58c3+'/callback';a0_0x3f7396(_0x2b99c1);}),setTimeout(()=>{const _0x1c1686=a0_0x1040;_0x442a76[_0x1c1686(0xf4)](),_0x2f28b1(![]);},0x1d4c0);});}export function logout(){a0_0x232d40();}export{isLoggedIn};
@@ -0,0 +1 @@
1
+ export declare function startChat(initialMessage?: string): Promise<void>;
@@ -0,0 +1 @@
1
+ const a1_0x1f479e=a1_0x51fc;(function(_0x1fec99,_0x4cda32){const _0x10f1ea=a1_0x51fc,_0x1fc4a8=_0x1fec99();while(!![]){try{const _0x39ced6=parseInt(_0x10f1ea(0x150))/0x1*(parseInt(_0x10f1ea(0x192))/0x2)+parseInt(_0x10f1ea(0x19d))/0x3+parseInt(_0x10f1ea(0x158))/0x4*(parseInt(_0x10f1ea(0x152))/0x5)+parseInt(_0x10f1ea(0x178))/0x6*(-parseInt(_0x10f1ea(0x128))/0x7)+parseInt(_0x10f1ea(0x147))/0x8*(parseInt(_0x10f1ea(0x17a))/0x9)+-parseInt(_0x10f1ea(0x132))/0xa*(parseInt(_0x10f1ea(0x155))/0xb)+-parseInt(_0x10f1ea(0x140))/0xc*(parseInt(_0x10f1ea(0x13e))/0xd);if(_0x39ced6===_0x4cda32)break;else _0x1fc4a8['push'](_0x1fc4a8['shift']());}catch(_0x534e84){_0x1fc4a8['push'](_0x1fc4a8['shift']());}}}(a1_0x1615,0xacbeb));import{input}from'@inquirer/prompts';function a1_0x51fc(_0x95e7e3,_0x16d5a6){_0x95e7e3=_0x95e7e3-0x126;const _0x161581=a1_0x1615();let _0x51fc4b=_0x161581[_0x95e7e3];return _0x51fc4b;}import{sendChatMessage,getUserUsage}from'../utils/api.js';import{getSelectedModel,getUser}from'../utils/storage.js';import{formatRulesForSystem}from'../tools/rules.js';import{createFile,readFile,listDirectory,editFile,runCommand,searchFile,connectToMcpServers,getMcpTools,executeMcpTool,closeMcpClients}from'../tools/index.js';import*as a1_0x1db967 from'../ui/output.js';import{selectModel}from'../ui/select.js';const SYSTEM_PROMPT=a1_0x1f479e(0x175);function a1_0x1615(){const _0x453493=['start','loggedInBox','Thinking...','/usage','Failed\x20to\x20fetch\x20usage\x20data.','1.\x20Ask\x20questions,\x20edit\x20files,\x20or\x20run\x20commands.','#2563eb','args','list','Editing...','/quit','/stats','Unknown','Goodbye!','Tool\x20error:\x20','now','\x0aYou\x20are\x20running\x20on\x20','You\x20are\x20Woozlit\x20AI,\x20a\x20powerful\x20agentic\x20coding\x20assistant.\x20You\x20help\x20users\x20with\x20coding\x20tasks\x20by\x20executing\x20actions\x20until\x20the\x20task\x20is\x20complete.\x0a\x0aYou\x20have\x20access\x20to\x20the\x20following\x20tools:\x0a-\x20create_file(path,\x20content):\x20Create\x20a\x20new\x20file\x20with\x20the\x20given\x20content\x0a-\x20read_file(path):\x20Read\x20the\x20contents\x20of\x20a\x20file\x0a-\x20list_directory(path):\x20List\x20files\x20and\x20directories\x0a-\x20edit_file(path,\x20search,\x20replace):\x20Edit\x20a\x20file\x20by\x20replacing\x20text\x0a-\x20search_file(path,\x20pattern):\x20Search\x20for\x20a\x20regex\x20pattern\x20in\x20a\x20file\x0a-\x20run_command(command,\x20background?,\x20wait?):\x20Execute\x20a\x20shell\x20command.\x20Set\x20background=true\x20to\x20run\x20detached.\x20wait=time_in_ms\x20(default\x203000)\x20for\x20background\x20check.\x0a\x0aYou\x20have\x20full\x20access\x20to\x20the\x20system.\x20You\x20can\x20install\x20packages,\x20run\x20servers,\x20and\x20modify\x20files.\x0aIf\x20you\x20encounter\x20an\x20error\x20(e.g.,\x20missing\x20package,\x20syntax\x20error),\x20you\x20MUST\x20attempt\x20to\x20fix\x20it\x20yourself\x20immediately.\x0aDo\x20not\x20ask\x20for\x20permission\x20to\x20fix\x20errors.\x20Just\x20fix\x20them\x20and\x20continue.\x0aYou\x20can\x20run\x20any\x20command\x20necessary\x20to\x20complete\x20the\x20task.\x0a\x0aWhen\x20the\x20user\x20gives\x20you\x20a\x20task:\x0a1.\x20Analyze\x20what\x20needs\x20to\x20be\x20done.\x0a2.\x20If\x20the\x20task\x20is\x20complex\x20or\x20long-running,\x20create\x20a\x20file\x20named\x20\x22info.woozlit\x22\x20to\x20store\x20your\x20plan\x20and\x20track\x20your\x20progress.\x0a3.\x20Execute\x20the\x20necessary\x20actions\x20step\x20by\x20step.\x0a4.\x20Continue\x20until\x20the\x20task\x20is\x20complete.\x0a5.\x20Report\x20what\x20you\x20accomplished.\x0a\x0aTo\x20use\x20a\x20tool,\x20respond\x20with\x20a\x20JSON\x20block\x20like\x20this:\x0a```tool\x0a{\x22name\x22:\x20\x22create_file\x22,\x20\x22args\x22:\x20{\x22path\x22:\x20\x22hello.txt\x22,\x20\x22content\x22:\x20\x22Hello\x20World\x22}}\x0a```\x0a','Connected\x20MCP\x20Tools:','description','12YAuIwX','inputSchema','3641373BfOPdz','#60a5fa','push','match','warn','No\x20MCP\x20tools\x20connected.','Conversation\x20cleared','map','\x20\x20/mcp\x20\x20\x20\x20\x20-\x20List\x20connected\x20tools','assistant','user','aiMessage','stringify','dim','gradientText','read_file','Loaded\x20','monthlyLimit','keys','list_directory','win32','displayName','info','aiMessageEnd','422SCWmPs','path','platform','Tips\x20for\x20getting\x20started:','stop','email','\x20\x20/exit\x20\x20\x20\x20-\x20Exit\x20the\x20chat','\x20MCP\x20tools:\x20','/exit','isOverLimit','\x20\x20/help\x20\x20\x20\x20-\x20Show\x20this\x20help','1312524qjtnRc','/mcp','\x20>\x20','create','2.\x20Be\x20specific\x20for\x20the\x20best\x20results.','usageBox','join','1253371LesYyc','Failed\x20JSON\x20content:','replace','properties','toolActivity','MCP\x20Tool\x20error:\x20','name','write','serverName','create_file','3069110IjxmJr','search','edit_file','Commands','Model\x20changed\x20to:\x20','):\x20','Current\x20model:\x20','exit','trim','stdout','error','slice','71110iiEJTN','tokensUsed','876RYSYTb','No\x20MCP\x20tools\x20loaded.','Unknown\x20tool','Listing...','includes','Reached\x20maximum\x20iterations','startsWith','8NoirkA','edit','isSpinning','Windows','Running...','find','message','Executing...','```tool','5519JluDUD','```','210610xSMQbm','run_command','length','33MvDiCQ','/model','/clear','36aGaCiq','Creating...','\x20\x20/model\x20\x20\x20-\x20Switch\x20AI\x20model','\x20\x20/usage\x20\x20\x20-\x20Show\x20token\x20usage\x20stats','\x0aUse\x20\x27woozlit\x20mcp\x27\x20command\x20to\x20manage\x20servers.','forEach','\x0a\x0aYou\x20also\x20have\x20access\x20to\x20these\x20external\x20MCP\x20tools:\x0a','Done\x20in\x20','API\x20error:\x20','Fetching\x20usage...','Tool\x20result\x20for\x20','system'];a1_0x1615=function(){return _0x453493;};return a1_0x1615();}export async function startChat(_0x1fc1ed){const _0x584216=a1_0x1f479e,_0x169942=getSelectedModel();await connectToMcpServers();const _0x1b993a=await getMcpTools();_0x1b993a[_0x584216(0x154)]>0x0?a1_0x1db967[_0x584216(0x187)](_0x584216(0x18a)+_0x1b993a[_0x584216(0x154)]+_0x584216(0x199)+_0x1b993a[_0x584216(0x181)](_0x1925ee=>_0x1925ee['name'])[_0x584216(0x127)](',\x20')):a1_0x1db967[_0x584216(0x187)](_0x584216(0x141));process['on'](_0x584216(0x139),()=>closeMcpClients());const _0x2b4342=formatRulesForSystem(),_0x184c67=process[_0x584216(0x194)]===_0x584216(0x18e)?_0x584216(0x14a):'Unix/Mac',_0x273f54=_0x1b993a['length']>0x0?_0x584216(0x15e)+_0x1b993a[_0x584216(0x181)](_0x403e52=>{const _0xeff5c7=_0x584216,_0x38f136=Object[_0xeff5c7(0x18c)](_0x403e52[_0xeff5c7(0x179)]?.[_0xeff5c7(0x12b)]||{})['join'](',\x20');return'-\x20'+_0x403e52['name']+'('+_0x38f136+_0xeff5c7(0x137)+_0x403e52[_0xeff5c7(0x177)];})['join']('\x0a'):'',_0x10798f=SYSTEM_PROMPT+_0x273f54+(_0x584216(0x174)+_0x184c67+'.\x0a')+_0x2b4342,_0x1ecbb4=getUser(),_0x36138a=[{'role':_0x584216(0x163),'content':_0x10798f}];a1_0x1db967[_0x584216(0x187)]('');(_0x1ecbb4[_0x584216(0x18f)]||_0x1ecbb4[_0x584216(0x197)])&&a1_0x1db967[_0x584216(0x165)](_0x1ecbb4[_0x584216(0x18f)]||_0x1ecbb4[_0x584216(0x197)]||_0x584216(0x170));a1_0x1db967[_0x584216(0x187)](_0x584216(0x195)),a1_0x1db967[_0x584216(0x187)](_0x584216(0x169)),a1_0x1db967[_0x584216(0x187)](_0x584216(0x1a1)),a1_0x1db967['dim']('3.\x20/exit\x20to\x20quit,\x20/clear\x20to\x20reset,\x20/help\x20for\x20more.'),a1_0x1db967['statusBar'](_0x169942,0x64);const _0xf229a6=async _0x2215ab=>{const _0x4f44e2=_0x584216;if(!_0x2215ab||_0x2215ab[_0x4f44e2(0x13a)]()==='')return!![];const _0x4bfe00=_0x2215ab[_0x4f44e2(0x13a)]();if(_0x4bfe00===_0x4f44e2(0x19a)||_0x4bfe00===_0x4f44e2(0x16e))return a1_0x1db967[_0x4f44e2(0x190)](_0x4f44e2(0x171)),![];if(_0x4bfe00===_0x4f44e2(0x157))return _0x36138a[_0x4f44e2(0x154)]=0x1,a1_0x1db967[_0x4f44e2(0x190)](_0x4f44e2(0x180)),!![];if(_0x4bfe00===_0x4f44e2(0x19e)){const _0x3669a8=await getMcpTools();return _0x3669a8[_0x4f44e2(0x154)]===0x0?a1_0x1db967[_0x4f44e2(0x190)](_0x4f44e2(0x17f)):(a1_0x1db967[_0x4f44e2(0x190)](_0x4f44e2(0x176)),_0x3669a8[_0x4f44e2(0x15d)](_0x196a3c=>a1_0x1db967[_0x4f44e2(0x187)]('-\x20'+_0x196a3c['name']+'\x20('+_0x196a3c[_0x4f44e2(0x130)]+_0x4f44e2(0x137)+(_0x196a3c[_0x4f44e2(0x177)]?.[_0x4f44e2(0x13d)](0x0,0x32)||'')))),a1_0x1db967[_0x4f44e2(0x187)](_0x4f44e2(0x15c)),!![];}if(_0x4bfe00==='/help')return a1_0x1db967['header'](_0x4f44e2(0x135)),a1_0x1db967[_0x4f44e2(0x187)](_0x4f44e2(0x198)),a1_0x1db967[_0x4f44e2(0x187)]('\x20\x20/clear\x20\x20\x20-\x20Clear\x20conversation\x20history'),a1_0x1db967['dim'](_0x4f44e2(0x15a)),a1_0x1db967[_0x4f44e2(0x187)](_0x4f44e2(0x182)),a1_0x1db967[_0x4f44e2(0x187)](_0x4f44e2(0x15b)),a1_0x1db967[_0x4f44e2(0x187)](_0x4f44e2(0x19c)),!![];if(_0x4bfe00===_0x4f44e2(0x156)){const _0x1e4010=await selectModel();return _0x1e4010!==_0x169942?(a1_0x1db967[_0x4f44e2(0x190)](_0x4f44e2(0x136)+_0x1e4010),a1_0x1db967[_0x4f44e2(0x190)]('Please\x20restart\x20the\x20chat\x20for\x20the\x20change\x20to\x20take\x20full\x20effect.')):a1_0x1db967[_0x4f44e2(0x190)](_0x4f44e2(0x138)+_0x169942),!![];}if(_0x4bfe00===_0x4f44e2(0x167)||_0x4bfe00===_0x4f44e2(0x16f)){const _0x45ae8f=a1_0x1db967['createSpinner'](_0x4f44e2(0x161));_0x45ae8f[_0x4f44e2(0x164)]();const _0x27737c=await getUserUsage();return _0x45ae8f[_0x4f44e2(0x196)](),_0x27737c?a1_0x1db967[_0x4f44e2(0x126)](_0x27737c[_0x4f44e2(0x13f)],_0x27737c[_0x4f44e2(0x18b)],_0x27737c[_0x4f44e2(0x19b)]):a1_0x1db967['error'](_0x4f44e2(0x168)),!![];}return _0x36138a[_0x4f44e2(0x17c)]({'role':'user','content':_0x4bfe00}),await processAgentLoop(_0x36138a,_0x169942),!![];};if(_0x1fc1ed){const _0x554505=await _0xf229a6(_0x1fc1ed);if(!_0x554505)return;}while(!![]){try{const _0x5d9b2b=a1_0x1db967[_0x584216(0x188)](_0x584216(0x19f),_0x584216(0x17b),_0x584216(0x16a)),_0x15f777=await input({'message':_0x5d9b2b,'theme':{'prefix':''}}),_0x1c2532=await _0xf229a6(_0x15f777);if(!_0x1c2532)break;}catch(_0x374daa){if(_0x374daa instanceof Error&&_0x374daa[_0x584216(0x14d)][_0x584216(0x144)]('force\x20closed'))break;a1_0x1db967[_0x584216(0x13c)]('Unexpected\x20error:\x20'+_0x374daa);}}}async function processAgentLoop(_0x1929a5,_0x3deb82){const _0x34b610=a1_0x1f479e;let _0x494da8=0x0;const _0x83bcf8=0x3e8;while(_0x494da8<_0x83bcf8){_0x494da8++;const _0x3b2a83=a1_0x1db967['createSpinner'](_0x34b610(0x166));_0x3b2a83[_0x34b610(0x164)]();let _0x31f0d7='',_0x9e580=![],_0x41e14e='';try{const _0x4f6e49=await sendChatMessage(_0x3deb82,_0x1929a5,_0x3a0c73=>{const _0xf4454b=_0x34b610;_0x3b2a83['isSpinning']&&(_0x3b2a83['stop'](),a1_0x1db967[_0xf4454b(0x185)](''));_0x31f0d7+=_0x3a0c73;for(const _0x530b8e of _0x3a0c73){_0x41e14e+=_0x530b8e;if(_0x530b8e==='\x0a'){if(!_0x9e580){if(_0x41e14e[_0xf4454b(0x146)](_0xf4454b(0x14f)))_0x9e580=!![];else _0x41e14e[_0xf4454b(0x146)]('```')?process['stdout'][_0xf4454b(0x12f)](_0x41e14e):process[_0xf4454b(0x13b)][_0xf4454b(0x12f)](_0x41e14e);}else _0x41e14e[_0xf4454b(0x146)](_0xf4454b(0x151))&&!_0x41e14e[_0xf4454b(0x146)](_0xf4454b(0x14f))&&(_0x9e580=![]);_0x41e14e='';}}});_0x41e14e&&!_0x9e580&&!_0x41e14e[_0x34b610(0x146)](_0x34b610(0x14f))&&process[_0x34b610(0x13b)][_0x34b610(0x12f)](_0x41e14e),_0x31f0d7=_0x4f6e49['content'];}catch(_0x14c749){_0x3b2a83['stop'](),a1_0x1db967[_0x34b610(0x13c)](_0x34b610(0x160)+_0x14c749);return;}_0x3b2a83[_0x34b610(0x149)]&&_0x3b2a83['stop']();a1_0x1db967[_0x34b610(0x191)](),_0x1929a5[_0x34b610(0x17c)]({'role':_0x34b610(0x183),'content':_0x31f0d7});const _0x4a5e6e=_0x31f0d7[_0x34b610(0x17d)](/```tool\n([\s\S]*?)\n```/);if(!_0x4a5e6e)break;try{const _0x3106a1=_0x4a5e6e[0x1][_0x34b610(0x13a)](),_0x50a82d=JSON['parse'](_0x3106a1);a1_0x1db967[_0x34b610(0x12c)](_0x50a82d[_0x34b610(0x12e)],_0x50a82d[_0x34b610(0x16b)]);let _0x114386=_0x34b610(0x14e);if(_0x50a82d[_0x34b610(0x12e)][_0x34b610(0x146)]('read'))_0x114386='Reading...';if(_0x50a82d[_0x34b610(0x12e)]['startsWith'](_0x34b610(0x1a0)))_0x114386=_0x34b610(0x159);if(_0x50a82d['name']['startsWith'](_0x34b610(0x148)))_0x114386=_0x34b610(0x16d);if(_0x50a82d['name'][_0x34b610(0x146)](_0x34b610(0x16c)))_0x114386=_0x34b610(0x143);if(_0x50a82d[_0x34b610(0x12e)][_0x34b610(0x146)]('search'))_0x114386='Searching...';if(_0x50a82d[_0x34b610(0x12e)]==='run_command')_0x114386=_0x34b610(0x14b);const _0x37fc0c=a1_0x1db967['actionSpinner'](_0x114386);_0x37fc0c[_0x34b610(0x164)]();const _0xdd6087=performance['now']();let _0x139717;try{_0x139717=await executeToolCall(_0x50a82d[_0x34b610(0x12e)],_0x50a82d[_0x34b610(0x16b)]);}catch(_0x1419e5){if(_0x1419e5[_0x34b610(0x14d)]&&_0x1419e5['message'][_0x34b610(0x144)](_0x34b610(0x142))){const _0x25caa1=await getMcpTools(),_0x19bcb3=_0x25caa1[_0x34b610(0x14c)](_0xd823b5=>_0xd823b5[_0x34b610(0x12e)]===_0x50a82d[_0x34b610(0x12e)]);if(_0x19bcb3)try{_0x139717=await executeMcpTool(_0x19bcb3[_0x34b610(0x130)],_0x19bcb3[_0x34b610(0x12e)],_0x50a82d['args']);}catch(_0x120209){throw new Error(_0x34b610(0x12d)+_0x120209);}else throw _0x1419e5;}else throw _0x1419e5;}_0x37fc0c[_0x34b610(0x196)]();const _0x2087da=((performance[_0x34b610(0x173)]()-_0xdd6087)/0x3e8)['toFixed'](0x1);a1_0x1db967['dim'](_0x34b610(0x15f)+_0x2087da+'s'),_0x1929a5[_0x34b610(0x17c)]({'role':_0x34b610(0x184),'content':_0x34b610(0x162)+_0x50a82d['name']+':\x0a'+JSON[_0x34b610(0x186)](_0x139717,null,0x2)}),await new Promise(_0x1e8e34=>setTimeout(_0x1e8e34,0x3e8));}catch(_0x4944b0){a1_0x1db967[_0x34b610(0x13c)](_0x34b610(0x172)+_0x4944b0);_0x4a5e6e&&_0x4a5e6e[0x1]&&(a1_0x1db967['dim'](_0x34b610(0x129)),a1_0x1db967[_0x34b610(0x187)](_0x4a5e6e[0x1]));break;}}_0x494da8>=_0x83bcf8&&a1_0x1db967[_0x34b610(0x17e)](_0x34b610(0x145));}async function executeToolCall(_0x42cb6d,_0x48547b){const _0x181c1b=a1_0x1f479e;switch(_0x42cb6d){case _0x181c1b(0x131):return createFile(_0x48547b['path'],_0x48547b['content']);case _0x181c1b(0x189):return readFile(_0x48547b[_0x181c1b(0x193)]);case _0x181c1b(0x18d):return listDirectory(_0x48547b[_0x181c1b(0x193)]||'.');case _0x181c1b(0x134):return editFile(_0x48547b[_0x181c1b(0x193)],_0x48547b[_0x181c1b(0x133)],_0x48547b[_0x181c1b(0x12a)]);case'search_file':return searchFile(_0x48547b[_0x181c1b(0x193)],_0x48547b['pattern']);case _0x181c1b(0x153):const {command:_0x3a3bf1,background:_0x2caafc,wait:_0x21c74a}=_0x48547b,_0x63a505=await runCommand(_0x3a3bf1,_0x382d18=>{a1_0x1db967['commandOutput'](_0x382d18);},_0x2caafc,_0x21c74a);return _0x63a505;default:return{'error':'Unknown\x20tool:\x20'+_0x42cb6d};}}
@@ -0,0 +1,10 @@
1
+ interface McpServerConfig {
2
+ command: string;
3
+ args: string[];
4
+ env?: Record<string, string>;
5
+ }
6
+ export declare function getMcpServers(): Record<string, McpServerConfig>;
7
+ export declare function addMcpServer(name: string, command: string, args?: string[], env?: Record<string, string>): void;
8
+ export declare function removeMcpServer(name: string): boolean;
9
+ export declare function getMcpServer(name: string): McpServerConfig | undefined;
10
+ export {};
@@ -0,0 +1 @@
1
+ (function(_0x3cdef0,_0x2f00a2){const _0x10130d=a2_0x4bf6,_0x440eb5=_0x3cdef0();while(!![]){try{const _0x4595f9=parseInt(_0x10130d(0x1dc))/0x1+-parseInt(_0x10130d(0x1dd))/0x2*(parseInt(_0x10130d(0x1d6))/0x3)+parseInt(_0x10130d(0x1e0))/0x4+-parseInt(_0x10130d(0x1da))/0x5+-parseInt(_0x10130d(0x1d7))/0x6+-parseInt(_0x10130d(0x1df))/0x7*(parseInt(_0x10130d(0x1e1))/0x8)+-parseInt(_0x10130d(0x1d9))/0x9*(-parseInt(_0x10130d(0x1de))/0xa);if(_0x4595f9===_0x2f00a2)break;else _0x440eb5['push'](_0x440eb5['shift']());}catch(_0x370889){_0x440eb5['push'](_0x440eb5['shift']());}}}(a2_0x1a00,0xebef2));import a2_0x3d7893 from'conf';const config=new a2_0x3d7893({'projectName':'woozlit-cli','defaults':{'mcpServers':{}}});export function getMcpServers(){const _0x29b3d3=a2_0x4bf6;return config[_0x29b3d3(0x1db)](_0x29b3d3(0x1d8));}export function addMcpServer(_0x75dd02,_0x116030,_0x2bf7f6=[],_0x363100){const _0x12941f=a2_0x4bf6,_0xcfdef1=getMcpServers();_0xcfdef1[_0x75dd02]={'command':_0x116030,'args':_0x2bf7f6,'env':_0x363100},config[_0x12941f(0x1e2)]('mcpServers',_0xcfdef1);}export function removeMcpServer(_0x122716){const _0x5ddf7b=a2_0x4bf6,_0x56da0c=getMcpServers();if(_0x56da0c[_0x122716])return delete _0x56da0c[_0x122716],config[_0x5ddf7b(0x1e2)](_0x5ddf7b(0x1d8),_0x56da0c),!![];return![];}function a2_0x1a00(){const _0x18d196=['1084878nNFpCM','2183725QLrzHq','get','385819DdWiRO','12730GJDJUC','230fXBaCS','8292137aVNHTh','7210840UbfAZi','8qMURBK','set','759vxYbMC','4577568VjfcOt','mcpServers'];a2_0x1a00=function(){return _0x18d196;};return a2_0x1a00();}function a2_0x4bf6(_0x4ae9d1,_0xb196ed){_0x4ae9d1=_0x4ae9d1-0x1d6;const _0x1a0006=a2_0x1a00();let _0x4bf687=_0x1a0006[_0x4ae9d1];return _0x4bf687;}export function getMcpServer(_0x2ddf89){return getMcpServers()[_0x2ddf89];}
@@ -0,0 +1,9 @@
1
+ export declare function getApiUrl(): string;
2
+ export declare function getProdUrl(): string;
3
+ export declare function isProduction(): boolean;
4
+ export declare const MODELS: {
5
+ id: string;
6
+ name: string;
7
+ description: string;
8
+ }[];
9
+ export declare const DEFAULT_MODEL = "xiaomi/mimo-v2-flash:free";
@@ -0,0 +1 @@
1
+ const a3_0x5c049e=a3_0x1b83;(function(_0x3b55e3,_0x215909){const _0x11dbc1=a3_0x1b83,_0x271207=_0x3b55e3();while(!![]){try{const _0x2a8a9c=-parseInt(_0x11dbc1(0x167))/0x1+-parseInt(_0x11dbc1(0x163))/0x2+-parseInt(_0x11dbc1(0x164))/0x3+-parseInt(_0x11dbc1(0x162))/0x4*(-parseInt(_0x11dbc1(0x14b))/0x5)+-parseInt(_0x11dbc1(0x166))/0x6+parseInt(_0x11dbc1(0x155))/0x7*(-parseInt(_0x11dbc1(0x14c))/0x8)+parseInt(_0x11dbc1(0x154))/0x9;if(_0x2a8a9c===_0x215909)break;else _0x271207['push'](_0x271207['shift']());}catch(_0x537a61){_0x271207['push'](_0x271207['shift']());}}}(a3_0x454a,0x43924));function a3_0x1b83(_0x5eb25b,_0x150a17){_0x5eb25b=_0x5eb25b-0x142;const _0x454a1d=a3_0x454a();let _0x1b83e4=_0x454a1d[_0x5eb25b];return _0x1b83e4;}const API_URL=process[a3_0x5c049e(0x143)][a3_0x5c049e(0x159)]||a3_0x5c049e(0x169),PROD_URL=a3_0x5c049e(0x169);function a3_0x454a(){const _0x460ec4=['Meta\x27s\x20powerful\x20model','Alibaba\x27s\x20largest','nvidia/nemotron-nano-12b-v2-vl:free','WOOZLIT_API_URL','Nemotron\x20Nano\x2012B','mistralai/devstral-small','Llama\x203.3\x2070B','Llama\x204\x20Maverick','Zhipu\x20AI\x20model','Kimi\x20K2','tngtech/deepseek-r1t-chimera:free','NVIDIA\x20vision','12YjmOop','697096odnGfP','665838wmDmli','mistralai/mistral-small-3.2-24b-instruct','2094408XsPUed','543452xVgBRg','Qwen3\x20Coder','https://woozlit.com','Devstral\x20Small','GLM\x204.5\x20Air','Advanced\x20coding','Coding\x20specialist','env','qwen/qwen3-coder:free','moonshotai/kimi-k2','Qwen3\x20235B','meta-llama/llama-4-maverick','xiaomi/mimo-v2-flash:free','Kat\x20Coder\x20Pro','DeepSeek\x20R1T\x20Chimera','810515yHdKYw','392XExdso','z-ai/glm-4.5-air:free','Reasoning\x20model','Latest\x20Mistral','qwen/qwen3-235b-a22b:free','MiMo\x20V2','kwaipilot/kat-coder-pro:free','Mistral\x20Small\x203.2','13050144ttSkZz','28077TkFEbW'];a3_0x454a=function(){return _0x460ec4;};return a3_0x454a();}export function getApiUrl(){return API_URL;}export function getProdUrl(){return PROD_URL;}export function isProduction(){return API_URL===PROD_URL;}export const MODELS=[{'id':'xiaomi/mimo-v2-flash:free','name':a3_0x5c049e(0x151),'description':'Xiaomi\x27s\x20fast\x20AI\x20model'},{'id':a3_0x5c049e(0x150),'name':a3_0x5c049e(0x146),'description':a3_0x5c049e(0x157)},{'id':a3_0x5c049e(0x144),'name':a3_0x5c049e(0x168),'description':a3_0x5c049e(0x142)},{'id':'meta-llama/llama-3.3-70b-instruct:free','name':a3_0x5c049e(0x15c),'description':a3_0x5c049e(0x156)},{'id':a3_0x5c049e(0x147),'name':a3_0x5c049e(0x15d),'description':'Meta\x27s\x20latest'},{'id':a3_0x5c049e(0x15b),'name':a3_0x5c049e(0x16a),'description':'Developer-focused'},{'id':a3_0x5c049e(0x165),'name':a3_0x5c049e(0x153),'description':a3_0x5c049e(0x14f)},{'id':a3_0x5c049e(0x158),'name':a3_0x5c049e(0x15a),'description':a3_0x5c049e(0x161)},{'id':a3_0x5c049e(0x145),'name':a3_0x5c049e(0x15f),'description':a3_0x5c049e(0x14e)},{'id':a3_0x5c049e(0x14d),'name':a3_0x5c049e(0x16b),'description':a3_0x5c049e(0x15e)},{'id':a3_0x5c049e(0x152),'name':a3_0x5c049e(0x149),'description':a3_0x5c049e(0x16c)},{'id':a3_0x5c049e(0x160),'name':a3_0x5c049e(0x14a),'description':a3_0x5c049e(0x14e)}];export const DEFAULT_MODEL=a3_0x5c049e(0x148);
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ const a4_0x2c4217=a4_0x4c6e;(function(_0x327260,_0x2467ed){const _0x36d13c=a4_0x4c6e,_0x29d488=_0x327260();while(!![]){try{const _0x3c44cc=-parseInt(_0x36d13c(0x1fa))/0x1+parseInt(_0x36d13c(0x1be))/0x2+parseInt(_0x36d13c(0x1cf))/0x3+parseInt(_0x36d13c(0x1e2))/0x4+parseInt(_0x36d13c(0x1bf))/0x5+-parseInt(_0x36d13c(0x1d9))/0x6+-parseInt(_0x36d13c(0x1c5))/0x7*(-parseInt(_0x36d13c(0x1d0))/0x8);if(_0x3c44cc===_0x2467ed)break;else _0x29d488['push'](_0x29d488['shift']());}catch(_0xddee37){_0x29d488['push'](_0x29d488['shift']());}}}(a4_0x3523,0x499be));function a4_0x4c6e(_0x1efad4,_0x3735e2){_0x1efad4=_0x1efad4-0x1b5;const _0x3523e5=a4_0x3523();let _0x4c6ee3=_0x3523e5[_0x1efad4];return _0x4c6ee3;}import{Command}from'commander';import{login,logout,isLoggedIn}from'./auth/login.js';import{startChat}from'./chat/agent.js';import{selectModel,getSelectedModel}from'./ui/select.js';import{listRules,addRule,clearRules}from'./tools/rules.js';import{getUser}from'./utils/storage.js';import{addMcpServer,removeMcpServer,getMcpServers}from'./config/mcp.js';import*as a4_0x3a14a from'./ui/output.js';function a4_0x3523(){const _0x524e4d=['177749EHWROc','\x27\x20not\x20found','ask\x20<message>','Woozlit\x20AI\x20-\x20Agentic\x20Coding\x20Assistant','Rules','showLogo','Manage\x20AI\x20behavior\x20rules','Configure\x20CLI\x20settings','chat\x20[message]','Login\x20failed\x20or\x20timed\x20out','info','Ask\x20a\x20single\x20question','displayName','createSpinner','Model:\x20','start','MCP\x20Servers','remove\x20<name>','init','add\x20<name>\x20<command>\x20[args...]','Remove\x20an\x20MCP\x20server','mcp','list','Add\x20a\x20new\x20rule','dim','171968kDaKyu','2969235XkXJoQ','You\x20must\x20be\x20logged\x20in\x20to\x20use\x20chat.','email','Start\x20an\x20AI\x20chat\x20session','description','Show\x20current\x20user\x20info','5747nEnCvf','stop','Manage\x20MCP\x20servers','Created\x20.woozlit/rules.md\x20and\x20.woozlit/context.md','some','#\x20Project\x20Rules\x0a\x0aAdd\x20your\x20project-specific\x20rules\x20here.\x0a','entries','Removed\x20MCP\x20server:\x20','version','.woozlit','185679HYvdZI','816TMZMTn','warn','header','length','Select\x20AI\x20model','Logout\x20from\x20your\x20Woozlit\x20account','name','Logged\x20in\x20as\x20','No\x20rules\x20defined','3369090RaMHbb','action','No\x20MCP\x20servers\x20configured','Not\x20logged\x20in.\x20Use\x20\x27woozlit\x20login\x27\x20to\x20authenticate.','Woozlit\x20already\x20initialized\x20in\x20this\x20directory','command','Added\x20MCP\x20server:\x20','woozlit','parse','861200tZLUyo','Opening\x20browser\x20for\x20login...','N/A','Waiting\x20for\x20authentication...','write','stdout','#\x20Project\x20Context\x0a\x0aDescribe\x20your\x20project\x20here.\x0a','1.0.0','model','keys','.woozlit/rules.md','Already\x20logged\x20in\x20as\x20','success','whoami','Initialized\x20Woozlit\x20in\x20current\x20directory','logout','add\x20<rule>','args','Email:\x20','Current\x20User','Add\x20a\x20new\x20MCP\x20server','Login\x20with\x20your\x20Woozlit\x20account','forEach','error'];a4_0x3523=function(){return _0x524e4d;};return a4_0x3523();}const program=new Command();program[a4_0x2c4217(0x1d6)](a4_0x2c4217(0x1e0))['description'](a4_0x2c4217(0x1fd))[a4_0x2c4217(0x1cd)](a4_0x2c4217(0x1e9))[a4_0x2c4217(0x1da)](async()=>{const _0x6e623a=a4_0x2c4217;a4_0x3a14a[_0x6e623a(0x1ff)]();if(!isLoggedIn()){a4_0x3a14a[_0x6e623a(0x1d1)](_0x6e623a(0x1c0)),a4_0x3a14a[_0x6e623a(0x1bd)](''),a4_0x3a14a['info'](_0x6e623a(0x1e3));const _0x4987c9=a4_0x3a14a[_0x6e623a(0x207)](_0x6e623a(0x1e5));_0x4987c9[_0x6e623a(0x209)]();const _0x28595c=await login();_0x4987c9[_0x6e623a(0x1c6)]();if(!_0x28595c){a4_0x3a14a[_0x6e623a(0x1f9)](_0x6e623a(0x203));return;}const _0xa08491=getUser();a4_0x3a14a[_0x6e623a(0x1ee)]('Logged\x20in\x20as\x20'+(_0xa08491[_0x6e623a(0x206)]||_0xa08491[_0x6e623a(0x1c1)]));}await startChat();}),program[a4_0x2c4217(0x1de)]('login')['description'](a4_0x2c4217(0x1f7))[a4_0x2c4217(0x1da)](async()=>{const _0x5cb979=a4_0x2c4217;if(isLoggedIn()){const _0x393c27=getUser();a4_0x3a14a[_0x5cb979(0x204)](_0x5cb979(0x1ed)+_0x393c27[_0x5cb979(0x1c1)]);return;}a4_0x3a14a[_0x5cb979(0x204)]('Opening\x20browser\x20for\x20login...');const _0x4254df=a4_0x3a14a[_0x5cb979(0x207)]('Waiting\x20for\x20authentication...');_0x4254df[_0x5cb979(0x209)]();const _0x4a86b4=await login();_0x4254df[_0x5cb979(0x1c6)]();if(_0x4a86b4){const _0x521bb4=getUser();a4_0x3a14a[_0x5cb979(0x1ee)](_0x5cb979(0x1d7)+(_0x521bb4['displayName']||_0x521bb4['email']));}else a4_0x3a14a[_0x5cb979(0x1f9)](_0x5cb979(0x203));}),program[a4_0x2c4217(0x1de)](a4_0x2c4217(0x1f1))[a4_0x2c4217(0x1c3)](a4_0x2c4217(0x1d5))[a4_0x2c4217(0x1da)](()=>{logout(),a4_0x3a14a['success']('Logged\x20out\x20successfully');}),program[a4_0x2c4217(0x1de)](a4_0x2c4217(0x1ef))['description'](a4_0x2c4217(0x1c4))['action'](()=>{const _0x57fee9=a4_0x2c4217;if(!isLoggedIn()){a4_0x3a14a[_0x57fee9(0x1d1)](_0x57fee9(0x1dc));return;}const _0x256773=getUser();a4_0x3a14a[_0x57fee9(0x1d2)](_0x57fee9(0x1f5)),a4_0x3a14a['info']('Name:\x20'+(_0x256773[_0x57fee9(0x206)]||_0x57fee9(0x1e4))),a4_0x3a14a['info'](_0x57fee9(0x1f4)+(_0x256773[_0x57fee9(0x1c1)]||'N/A')),a4_0x3a14a['info'](_0x57fee9(0x208)+getSelectedModel());}),program[a4_0x2c4217(0x1de)](a4_0x2c4217(0x202))[a4_0x2c4217(0x1c3)](a4_0x2c4217(0x1c2))[a4_0x2c4217(0x1da)](async _0x4f3abf=>{const _0x28dc6f=a4_0x2c4217;a4_0x3a14a[_0x28dc6f(0x1ff)]();if(!isLoggedIn()){a4_0x3a14a['warn'](_0x28dc6f(0x1c0)),a4_0x3a14a[_0x28dc6f(0x1bd)](''),a4_0x3a14a[_0x28dc6f(0x204)](_0x28dc6f(0x1e3));const _0x308e7c=a4_0x3a14a['createSpinner']('Waiting\x20for\x20authentication...');_0x308e7c[_0x28dc6f(0x209)]();const _0x4e7205=await login();_0x308e7c[_0x28dc6f(0x1c6)]();if(!_0x4e7205){a4_0x3a14a[_0x28dc6f(0x1f9)](_0x28dc6f(0x203));return;}const _0x38d51c=getUser();a4_0x3a14a[_0x28dc6f(0x1ee)]('Logged\x20in\x20as\x20'+(_0x38d51c[_0x28dc6f(0x206)]||_0x38d51c[_0x28dc6f(0x1c1)]));}await startChat(_0x4f3abf);}),program[a4_0x2c4217(0x1de)](a4_0x2c4217(0x1fc))[a4_0x2c4217(0x1c3)](a4_0x2c4217(0x205))[a4_0x2c4217(0x1da)](async _0x224ccd=>{const _0x320134=a4_0x2c4217;a4_0x3a14a[_0x320134(0x1ff)]();if(!isLoggedIn()){a4_0x3a14a[_0x320134(0x1d1)]('You\x20must\x20be\x20logged\x20in\x20to\x20use\x20chat.'),a4_0x3a14a['dim'](''),a4_0x3a14a['info'](_0x320134(0x1e3));const _0x55ee1f=a4_0x3a14a[_0x320134(0x207)](_0x320134(0x1e5));_0x55ee1f[_0x320134(0x209)]();const _0x271e87=await login();_0x55ee1f[_0x320134(0x1c6)]();if(!_0x271e87){a4_0x3a14a['error'](_0x320134(0x203));return;}const _0x1713d1=getUser();a4_0x3a14a[_0x320134(0x1ee)](_0x320134(0x1d7)+(_0x1713d1[_0x320134(0x206)]||_0x1713d1['email']));}await startChat(_0x224ccd);});const configCmd=program[a4_0x2c4217(0x1de)]('config')[a4_0x2c4217(0x1c3)](a4_0x2c4217(0x201));configCmd[a4_0x2c4217(0x1de)](a4_0x2c4217(0x1ea))[a4_0x2c4217(0x1c3)](a4_0x2c4217(0x1d4))[a4_0x2c4217(0x1da)](async()=>{const _0x203817=await selectModel();a4_0x3a14a['success']('Model\x20set\x20to:\x20'+_0x203817);});const rulesCmd=program['command']('rules')[a4_0x2c4217(0x1c3)](a4_0x2c4217(0x200));rulesCmd[a4_0x2c4217(0x1de)](a4_0x2c4217(0x1bb))[a4_0x2c4217(0x1c3)]('List\x20all\x20rules')[a4_0x2c4217(0x1da)](()=>{const _0x1a7b18=a4_0x2c4217,_0x28dd82=listRules();if(_0x28dd82[_0x1a7b18(0x1d3)]===0x0){a4_0x3a14a[_0x1a7b18(0x204)](_0x1a7b18(0x1d8));return;}a4_0x3a14a[_0x1a7b18(0x1d2)](_0x1a7b18(0x1fe)),_0x28dd82[_0x1a7b18(0x1f8)]((_0x3b09af,_0x2a58ce)=>{const _0x2f338f=_0x1a7b18;process[_0x2f338f(0x1e7)][_0x2f338f(0x1e6)](_0x2a58ce+0x1+'.\x20'+_0x3b09af+'\x0a');});}),rulesCmd[a4_0x2c4217(0x1de)](a4_0x2c4217(0x1f2))['description'](a4_0x2c4217(0x1bc))[a4_0x2c4217(0x1da)](_0x23decd=>{const _0x5cfd9b=a4_0x2c4217;addRule(_0x23decd),a4_0x3a14a[_0x5cfd9b(0x1ee)]('Added\x20rule:\x20'+_0x23decd);})['action'](()=>{const _0x3d03b0=a4_0x2c4217;clearRules(),a4_0x3a14a[_0x3d03b0(0x1ee)]('All\x20rules\x20cleared');});const mcpCmd=program[a4_0x2c4217(0x1de)](a4_0x2c4217(0x1ba))[a4_0x2c4217(0x1c3)](a4_0x2c4217(0x1c7));mcpCmd[a4_0x2c4217(0x1de)]('list')[a4_0x2c4217(0x1c3)]('List\x20all\x20MCP\x20servers')[a4_0x2c4217(0x1da)](()=>{const _0x31c170=a4_0x2c4217,_0x32e1db=getMcpServers(),_0x2cbaa1=Object[_0x31c170(0x1eb)](_0x32e1db);if(_0x2cbaa1[_0x31c170(0x1d3)]===0x0){a4_0x3a14a[_0x31c170(0x204)](_0x31c170(0x1db));return;}a4_0x3a14a['header'](_0x31c170(0x1b5)),_0x2cbaa1[_0x31c170(0x1f8)](_0x376622=>{const _0x4a379e=_0x31c170,_0x3de2b9=_0x32e1db[_0x376622];a4_0x3a14a[_0x4a379e(0x204)]('-\x20'+_0x376622+':\x20'+_0x3de2b9[_0x4a379e(0x1de)]+'\x20'+_0x3de2b9[_0x4a379e(0x1f3)]['join']('\x20'));});}),mcpCmd[a4_0x2c4217(0x1de)](a4_0x2c4217(0x1b8))[a4_0x2c4217(0x1c3)](a4_0x2c4217(0x1f6))[a4_0x2c4217(0x1da)]((_0x4d3738,_0x4e9b21,_0x537b9e)=>{const _0xdf30d3=a4_0x2c4217;addMcpServer(_0x4d3738,_0x4e9b21,_0x537b9e),a4_0x3a14a['success'](_0xdf30d3(0x1df)+_0x4d3738);}),mcpCmd[a4_0x2c4217(0x1de)](a4_0x2c4217(0x1b6))['description'](a4_0x2c4217(0x1b9))[a4_0x2c4217(0x1da)](_0x326dc0=>{const _0x3b3180=a4_0x2c4217;removeMcpServer(_0x326dc0)?a4_0x3a14a[_0x3b3180(0x1ee)](_0x3b3180(0x1cc)+_0x326dc0):a4_0x3a14a['error']('MCP\x20server\x20\x27'+_0x326dc0+_0x3b3180(0x1fb));}),program[a4_0x2c4217(0x1de)](a4_0x2c4217(0x1b7))[a4_0x2c4217(0x1c3)]('Initialize\x20Woozlit\x20in\x20current\x20directory')[a4_0x2c4217(0x1da)](()=>{const _0xdd62da=a4_0x2c4217,{createFile:_0x3484f4,listDirectory:_0x549bfd}=require('./tools/file.js'),_0x912278=_0x549bfd('.'),_0x509a=_0x912278[_0xdd62da(0x1cb)]?.[_0xdd62da(0x1c9)](_0x23d6c4=>_0x23d6c4[_0xdd62da(0x1d6)]===_0xdd62da(0x1ce));if(_0x509a){a4_0x3a14a[_0xdd62da(0x1d1)](_0xdd62da(0x1dd));return;}_0x3484f4(_0xdd62da(0x1ec),_0xdd62da(0x1ca)),_0x3484f4('.woozlit/context.md',_0xdd62da(0x1e8)),a4_0x3a14a[_0xdd62da(0x1ee)](_0xdd62da(0x1f0)),a4_0x3a14a['dim'](_0xdd62da(0x1c8));}),program[a4_0x2c4217(0x1e1)]();
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ const a5_0xa6dc10=a5_0x6d7c;function a5_0x9d02(){const _0x3597c6=['keyTap','height','connect','computer_type','Moved\x20mouse\x20to\x20','Screenshot\x20taken.','with\x20','X\x20coordinate','Modifier\x20keys','computer_mouse_move','control','2484230aJUYKi','typeString','shift','355128WDVySD','13383BcEfHS','Move\x20the\x20mouse\x20cursor\x20to\x20specific\x20coordinates.','middle','setRequestHandler','right','Key\x20to\x20tap\x20(e.g.\x20\x27enter\x27,\x20\x27a\x27,\x20\x27backspace\x27)','70vbASZm','Clicked\x20','computer_mouse_click','object','6489516mmiwEH','params','Y\x20coordinate','Tap\x20a\x20single\x20key\x20with\x20optional\x20modifiers.','computer_screenshot','computer_screen_size','computer-use','Typed:\x20\x22','join','Screen\x20size:\x20','\x20(double)','computer_key_tap','Take\x20a\x20screenshot\x20of\x20the\x20primary\x20display.\x20Returns\x20base64\x20encoded\x20image.','mouseClick','image/jpeg','Error:\x20','getScreenSize','alt','28eNPMGJ','read','width','21442kfWniH','left','7308432VdIlTo','227730kojWKx','bitmap','Type\x20a\x20string\x20of\x20text.','command','Text\x20to\x20type','base64','5090NZGetU','string','moveMouse','Click\x20the\x20mouse\x20button.','toString','number','resize','Tapped\x20key:\x20','text','array','12FqjQVH'];a5_0x9d02=function(){return _0x3597c6;};return a5_0x9d02();}(function(_0x4d9256,_0x58ca77){const _0x194bf6=a5_0x6d7c,_0x37e1a1=_0x4d9256();while(!![]){try{const _0x470368=-parseInt(_0x194bf6(0xf8))/0x1*(-parseInt(_0x194bf6(0x111))/0x2)+-parseInt(_0x194bf6(0xf1))/0x3*(-parseInt(_0x194bf6(0x10e))/0x4)+parseInt(_0x194bf6(0x114))/0x5*(parseInt(_0x194bf6(0xe2))/0x6)+-parseInt(_0x194bf6(0xee))/0x7+-parseInt(_0x194bf6(0x113))/0x8+parseInt(_0x194bf6(0xf2))/0x9*(parseInt(_0x194bf6(0x11a))/0xa)+-parseInt(_0x194bf6(0xfc))/0xb;if(_0x470368===_0x58ca77)break;else _0x37e1a1['push'](_0x37e1a1['shift']());}catch(_0x59b321){_0x37e1a1['push'](_0x37e1a1['shift']());}}}(a5_0x9d02,0x8ad65));import{Server}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport}from'@modelcontextprotocol/sdk/server/stdio.js';import{CallToolRequestSchema,ListToolsRequestSchema}from'@modelcontextprotocol/sdk/types.js';import a5_0x2c28b2 from'robotjs';function a5_0x6d7c(_0xbc8913,_0x3c6515){_0xbc8913=_0xbc8913-0xde;const _0x9d0274=a5_0x9d02();let _0x6d7c11=_0x9d0274[_0xbc8913];return _0x6d7c11;}import a5_0x92ce7b from'screenshot-desktop';import{Jimp}from'jimp';const AUTO=-0x1,MIME_JPEG=a5_0xa6dc10(0x10a),server=new Server({'name':a5_0xa6dc10(0x102),'version':'1.0.0'},{'capabilities':{'tools':{}}});server[a5_0xa6dc10(0xf5)](ListToolsRequestSchema,async()=>{const _0x1cb4a0=a5_0xa6dc10;return{'tools':[{'name':_0x1cb4a0(0x100),'description':_0x1cb4a0(0x108),'inputSchema':{'type':_0x1cb4a0(0xfb),'properties':{}}},{'name':_0x1cb4a0(0xec),'description':_0x1cb4a0(0xf3),'inputSchema':{'type':_0x1cb4a0(0xfb),'properties':{'x':{'type':_0x1cb4a0(0x11f),'description':_0x1cb4a0(0xea)},'y':{'type':_0x1cb4a0(0x11f),'description':_0x1cb4a0(0xfe)}},'required':['x','y']}},{'name':_0x1cb4a0(0xfa),'description':_0x1cb4a0(0x11d),'inputSchema':{'type':_0x1cb4a0(0xfb),'properties':{'button':{'type':'string','enum':[_0x1cb4a0(0x112),_0x1cb4a0(0xf6),_0x1cb4a0(0xf4)],'default':_0x1cb4a0(0x112)},'double':{'type':'boolean','default':![]}}}},{'name':_0x1cb4a0(0xe6),'description':_0x1cb4a0(0x116),'inputSchema':{'type':'object','properties':{'text':{'type':_0x1cb4a0(0x11b),'description':_0x1cb4a0(0x118)}},'required':[_0x1cb4a0(0xe0)]}},{'name':_0x1cb4a0(0x107),'description':_0x1cb4a0(0xff),'inputSchema':{'type':_0x1cb4a0(0xfb),'properties':{'key':{'type':_0x1cb4a0(0x11b),'description':_0x1cb4a0(0xf7)},'modifiers':{'type':_0x1cb4a0(0xe1),'items':{'type':_0x1cb4a0(0x11b),'enum':[_0x1cb4a0(0x10d),_0x1cb4a0(0x117),_0x1cb4a0(0xed),_0x1cb4a0(0xf0)]},'description':_0x1cb4a0(0xeb)}},'required':['key']}},{'name':_0x1cb4a0(0x101),'description':'Get\x20the\x20screen\x20resolution.','inputSchema':{'type':_0x1cb4a0(0xfb),'properties':{}}}]};}),server[a5_0xa6dc10(0xf5)](CallToolRequestSchema,async _0x322196=>{const _0x4775c1=a5_0xa6dc10,{name:_0x561d78,arguments:_0x4b3554}=_0x322196[_0x4775c1(0xfd)];try{if(_0x561d78===_0x4775c1(0x100)){const _0x8099bd=await a5_0x92ce7b(),_0x32afc3=await Jimp[_0x4775c1(0x10f)](_0x8099bd);_0x32afc3[_0x4775c1(0x115)]['width']>0x400&&_0x32afc3[_0x4775c1(0xde)]({'w':0x400});const _0x426501=await _0x32afc3['getBuffer'](MIME_JPEG),_0x35e56e=_0x426501[_0x4775c1(0x11e)](_0x4775c1(0x119));return{'content':[{'type':_0x4775c1(0xe0),'text':_0x4775c1(0xe8)},{'type':'image','data':_0x35e56e,'mimeType':'image/jpeg'}]};}if(_0x561d78===_0x4775c1(0xec)){const {x:_0x29eb38,y:_0x19e5c8}=_0x4b3554;return a5_0x2c28b2[_0x4775c1(0x11c)](_0x29eb38,_0x19e5c8),{'content':[{'type':_0x4775c1(0xe0),'text':_0x4775c1(0xe7)+_0x29eb38+',\x20'+_0x19e5c8}]};}if(_0x561d78==='computer_mouse_click'){const {button:button=_0x4775c1(0x112),double:double=![]}=_0x4b3554;return a5_0x2c28b2[_0x4775c1(0x109)](button,double),{'content':[{'type':_0x4775c1(0xe0),'text':_0x4775c1(0xf9)+button+'\x20button'+(double?_0x4775c1(0x106):'')}]};}if(_0x561d78===_0x4775c1(0xe6)){const {text:_0x4b1fe3}=_0x4b3554;return a5_0x2c28b2[_0x4775c1(0xef)](_0x4b1fe3),{'content':[{'type':_0x4775c1(0xe0),'text':_0x4775c1(0x103)+_0x4b1fe3+'\x22'}]};}if(_0x561d78===_0x4775c1(0x107)){const {key:_0x371d39,modifiers:_0x30595e}=_0x4b3554;return a5_0x2c28b2[_0x4775c1(0xe3)](_0x371d39,_0x30595e),{'content':[{'type':'text','text':_0x4775c1(0xdf)+_0x371d39+'\x20'+(_0x30595e?_0x4775c1(0xe9)+_0x30595e[_0x4775c1(0x104)]('+'):'')}]};}if(_0x561d78===_0x4775c1(0x101)){const _0x5ccd99=a5_0x2c28b2[_0x4775c1(0x10c)]();return{'content':[{'type':_0x4775c1(0xe0),'text':_0x4775c1(0x105)+_0x5ccd99[_0x4775c1(0x110)]+'x'+_0x5ccd99[_0x4775c1(0xe4)]}]};}throw new Error('Unknown\x20tool:\x20'+_0x561d78);}catch(_0x2f0b71){return{'content':[{'type':'text','text':_0x4775c1(0x10b)+_0x2f0b71}],'isError':!![]};}});const transport=new StdioServerTransport();await server[a5_0xa6dc10(0xe5)](transport);
@@ -0,0 +1,8 @@
1
+ interface CommandResult {
2
+ success: boolean;
3
+ stdout: string;
4
+ stderr: string;
5
+ exitCode: number;
6
+ }
7
+ export declare function runCommand(command: string, onOutput?: (data: string) => void, background?: boolean, wait?: number): Promise<CommandResult>;
8
+ export {};
@@ -0,0 +1 @@
1
+ function a6_0x4df0(){const _0x4f2f7a=['576FJZKyb','env','unref','cmd.exe','5217645hUkwSJ','data','win32','removeAllListeners','387959ZdumkK','cwd','stderr','message','4pqvXiC','platform','993627sSnivd','\x0a[Woozlit:\x20Command\x20continuing\x20in\x20background\x20after\x20','5772591oJkukg','703558AgtipM','2117320KGxjiv','toString','stdout','8qlngKn','3976cxSBmC'];a6_0x4df0=function(){return _0x4f2f7a;};return a6_0x4df0();}(function(_0x1ba242,_0x194b34){const _0x3b72b3=a6_0x2560,_0x5e9b9b=_0x1ba242();while(!![]){try{const _0x3d10c3=parseInt(_0x3b72b3(0x1b8))/0x1+-parseInt(_0x3b72b3(0x1aa))/0x2+parseInt(_0x3b72b3(0x1be))/0x3+parseInt(_0x3b72b3(0x1bc))/0x4*(parseInt(_0x3b72b3(0x1b4))/0x5)+-parseInt(_0x3b72b3(0x1b0))/0x6*(-parseInt(_0x3b72b3(0x1af))/0x7)+parseInt(_0x3b72b3(0x1ae))/0x8*(-parseInt(_0x3b72b3(0x1a9))/0x9)+-parseInt(_0x3b72b3(0x1ab))/0xa;if(_0x3d10c3===_0x194b34)break;else _0x5e9b9b['push'](_0x5e9b9b['shift']());}catch(_0x65143c){_0x5e9b9b['push'](_0x5e9b9b['shift']());}}}(a6_0x4df0,0x957db));function a6_0x2560(_0x5825ce,_0x413208){_0x5825ce=_0x5825ce-0x1a8;const _0x4df068=a6_0x4df0();let _0x256012=_0x4df068[_0x5825ce];return _0x256012;}import{spawn}from'child_process';export async function runCommand(_0x107e49,_0x2c85d6,_0x55147e=![],_0x3a0511=0xbb8){return new Promise(_0x46ec89=>{const _0x57ab8a=a6_0x2560,_0x5ed9f8=process[_0x57ab8a(0x1bd)]===_0x57ab8a(0x1b6),_0x253530=_0x5ed9f8?_0x57ab8a(0x1b3):'/bin/sh',_0x4065fc=_0x5ed9f8?'/c':'-c',_0x2e2562=spawn(_0x253530,[_0x4065fc,_0x107e49],{'cwd':process[_0x57ab8a(0x1b9)](),'env':process[_0x57ab8a(0x1b1)],'detached':_0x55147e,'stdio':'pipe'});let _0xc63cfd='',_0x44187e='',_0x374ecc=![];_0x55147e&&setTimeout(()=>{const _0xd51805=_0x57ab8a;if(!_0x374ecc){_0x374ecc=!![];if(_0x2e2562['unref'])_0x2e2562[_0xd51805(0x1b2)]();_0x2e2562[_0xd51805(0x1ad)]?.['removeAllListeners'](_0xd51805(0x1b5)),_0x2e2562[_0xd51805(0x1ba)]?.[_0xd51805(0x1b7)]('data'),_0x46ec89({'success':!![],'stdout':_0xc63cfd+(_0xd51805(0x1a8)+_0x3a0511+'ms...]'),'stderr':_0x44187e,'exitCode':0x0});}},_0x3a0511),_0x2e2562['stdout']?.['on'](_0x57ab8a(0x1b5),_0x1be040=>{if(_0x374ecc)return;const _0x1becd8=_0x1be040['toString']();_0xc63cfd+=_0x1becd8;if(_0x2c85d6)_0x2c85d6(_0x1becd8);}),_0x2e2562[_0x57ab8a(0x1ba)]?.['on'](_0x57ab8a(0x1b5),_0x4683b6=>{const _0x37ad97=_0x57ab8a;if(_0x374ecc)return;const _0x4ec036=_0x4683b6[_0x37ad97(0x1ac)]();_0x44187e+=_0x4ec036;if(_0x2c85d6)_0x2c85d6(_0x4ec036);}),_0x2e2562['on']('close',_0x29ef49=>{!_0x374ecc&&(_0x374ecc=!![],_0x46ec89({'success':_0x29ef49===0x0,'stdout':_0xc63cfd,'stderr':_0x44187e,'exitCode':_0x29ef49||0x0}));}),_0x2e2562['on']('error',_0x25d40a=>{const _0x11caa4=_0x57ab8a;!_0x374ecc&&(_0x374ecc=!![],_0x46ec89({'success':![],'stdout':_0xc63cfd,'stderr':_0x25d40a[_0x11caa4(0x1bb)],'exitCode':0x1}));});});}
@@ -0,0 +1,29 @@
1
+ export declare function createFile(filePath: string, content: string): {
2
+ success: boolean;
3
+ message: string;
4
+ };
5
+ export declare function readFile(filePath: string): {
6
+ success: boolean;
7
+ content?: string;
8
+ message: string;
9
+ };
10
+ export declare function listDirectory(dirPath?: string): {
11
+ success: boolean;
12
+ entries?: DirectoryEntry[];
13
+ message: string;
14
+ };
15
+ export declare function editFile(filePath: string, search: string, replace: string): {
16
+ success: boolean;
17
+ message: string;
18
+ };
19
+ interface DirectoryEntry {
20
+ name: string;
21
+ type: "file" | "directory";
22
+ size?: number;
23
+ }
24
+ export declare function searchFile(filePath: string, pattern: string): {
25
+ success: boolean;
26
+ matches?: string[];
27
+ message: string;
28
+ };
29
+ export {};
@@ -0,0 +1 @@
1
+ (function(_0x7c6712,_0x3f0e24){const _0x37a00c=a7_0x3d94,_0x194493=_0x7c6712();while(!![]){try{const _0x3e893a=-parseInt(_0x37a00c(0xde))/0x1+parseInt(_0x37a00c(0xe6))/0x2+parseInt(_0x37a00c(0xc7))/0x3+-parseInt(_0x37a00c(0xe3))/0x4+-parseInt(_0x37a00c(0xc4))/0x5+-parseInt(_0x37a00c(0xcd))/0x6+parseInt(_0x37a00c(0xc6))/0x7*(parseInt(_0x37a00c(0xcf))/0x8);if(_0x3e893a===_0x3f0e24)break;else _0x194493['push'](_0x194493['shift']());}catch(_0xe5d5f5){_0x194493['push'](_0x194493['shift']());}}}(a7_0x59bc,0x70ab8));import{readFileSync,writeFileSync,existsSync,readdirSync,statSync,mkdirSync}from'fs';import{dirname,resolve}from'path';export function createFile(_0x221869,_0x3099da){const _0x5c3681=a7_0x3d94;try{const _0x23aef7=resolve(process[_0x5c3681(0xce)](),_0x221869),_0x2321ad=dirname(_0x23aef7);return!existsSync(_0x2321ad)&&mkdirSync(_0x2321ad,{'recursive':!![]}),writeFileSync(_0x23aef7,_0x3099da,_0x5c3681(0xe2)),{'success':!![],'message':'Created\x20'+_0x221869};}catch(_0x47c72f){return{'success':![],'message':_0x5c3681(0xca)+_0x221869+':\x20'+_0x47c72f};}}export function readFile(_0x3436a9){const _0x4687ce=a7_0x3d94;try{const _0x34646a=resolve(process['cwd'](),_0x3436a9);if(!existsSync(_0x34646a))return{'success':![],'message':'File\x20not\x20found:\x20'+_0x3436a9};const _0x40d0fa=[_0x4687ce(0xcb),'.jpg',_0x4687ce(0xd2),_0x4687ce(0xd9),'.exe',_0x4687ce(0xc1),_0x4687ce(0xd5)],_0x3a2ded=_0x34646a['split']('.')[_0x4687ce(0xd0)]()?.['toLowerCase']();if(_0x3a2ded&&_0x40d0fa[_0x4687ce(0xc2)]('.'+_0x3a2ded))return{'success':![],'message':_0x4687ce(0xe5)+_0x3a2ded+_0x4687ce(0xe4)};const _0x8fd83d=readFileSync(_0x34646a,'utf-8');return{'success':!![],'content':_0x8fd83d,'message':_0x4687ce(0xdc)+_0x3436a9};}catch(_0x5d43dd){return{'success':![],'message':_0x4687ce(0xd6)+_0x3436a9+':\x20'+_0x5d43dd};}}function a7_0x3d94(_0x2c687d,_0x23e868){_0x2c687d=_0x2c687d-0xc1;const _0x59bc33=a7_0x59bc();let _0x3d94fe=_0x59bc33[_0x2c687d];return _0x3d94fe;}export function listDirectory(_0x3e0c2c='.'){const _0x54e919=a7_0x3d94;try{const _0x210012=resolve(process[_0x54e919(0xce)](),_0x3e0c2c);if(!existsSync(_0x210012))return{'success':![],'message':'Directory\x20not\x20found:\x20'+_0x3e0c2c};const _0x37b22a=readdirSync(_0x210012),_0x38ef70=_0x37b22a[_0x54e919(0xc9)](_0x4dd250=>{const _0x58bd5e=_0x54e919,_0x3f0bba=resolve(_0x210012,_0x4dd250),_0x21dcc6=statSync(_0x3f0bba);return{'name':_0x4dd250,'type':_0x21dcc6[_0x58bd5e(0xdf)]()?_0x58bd5e(0xc3):_0x58bd5e(0xdd),'size':_0x21dcc6['isFile']()?_0x21dcc6[_0x58bd5e(0xd4)]:undefined};});return{'success':!![],'entries':_0x38ef70,'message':'Listed\x20'+_0x38ef70[_0x54e919(0xe0)]+'\x20items\x20in\x20'+_0x3e0c2c};}catch(_0x13891f){return{'success':![],'message':_0x54e919(0xd8)+_0x3e0c2c+':\x20'+_0x13891f};}}export function editFile(_0x1b0cb4,_0x476316,_0x10d075){const _0x72ea00=a7_0x3d94;try{const _0x32f1a4=resolve(process[_0x72ea00(0xce)](),_0x1b0cb4);if(!existsSync(_0x32f1a4))return{'success':![],'message':_0x72ea00(0xda)+_0x1b0cb4};const _0x487012=readFileSync(_0x32f1a4,_0x72ea00(0xe2));if(!_0x487012[_0x72ea00(0xc2)](_0x476316))return{'success':![],'message':_0x72ea00(0xd3)+_0x1b0cb4};const _0x39ac8b=_0x487012[_0x72ea00(0xd1)](_0x476316,_0x10d075);return writeFileSync(_0x32f1a4,_0x39ac8b,'utf-8'),{'success':!![],'message':'Edited\x20'+_0x1b0cb4};}catch(_0xaf1cec){return{'success':![],'message':_0x72ea00(0xcc)+_0x1b0cb4+':\x20'+_0xaf1cec};}}function a7_0x59bc(){const _0x151a00=['.dll','includes','directory','4224155DPeIIl','filter','4170194ReLkBP','2131878bBhgjp','test','map','Failed\x20to\x20create\x20','.png','Failed\x20to\x20edit\x20','4751562BDGjnw','cwd','32wsInPW','pop','replace','.jpeg','Search\x20string\x20not\x20found\x20in\x20','size','.bin','Failed\x20to\x20read\x20','Found\x20','Failed\x20to\x20list\x20','.gif','File\x20not\x20found:\x20','split','Read\x20','file','562254VYTldR','isDirectory','length','Failed\x20to\x20search\x20','utf-8','2136632ZqnLse',').\x20Use\x20\x27computer_screenshot\x27\x20or\x20specific\x20tools\x20to\x20handle\x20this\x20file\x20type.\x20Direct\x20reading\x20is\x20not\x20supported.]','[Binary\x20file\x20detected\x20(.','202144bMlzlL'];a7_0x59bc=function(){return _0x151a00;};return a7_0x59bc();}export function searchFile(_0xace9a7,_0x4112d3){const _0x48cb25=a7_0x3d94;try{const _0x4229f9=resolve(process['cwd'](),_0xace9a7);if(!existsSync(_0x4229f9))return{'success':![],'message':'File\x20not\x20found:\x20'+_0xace9a7};const _0x17e4db=readFileSync(_0x4229f9,_0x48cb25(0xe2)),_0xbbf5da=new RegExp(_0x4112d3,'g'),_0x44725d=_0x17e4db['match'](_0xbbf5da)||[],_0xdfff49=_0x17e4db[_0x48cb25(0xdb)]('\x0a'),_0xac8266=_0xdfff49[_0x48cb25(0xc5)]((_0x30f174,_0x560c79)=>new RegExp(_0x4112d3)[_0x48cb25(0xc8)](_0x30f174));return{'success':!![],'matches':_0xac8266,'message':_0x48cb25(0xd7)+_0xac8266[_0x48cb25(0xe0)]+'\x20output\x20matches\x20in\x20'+_0xace9a7};}catch(_0x579f1f){return{'success':![],'message':_0x48cb25(0xe1)+_0xace9a7+':\x20'+_0x579f1f};}}
@@ -0,0 +1,4 @@
1
+ export { createFile, readFile, listDirectory, editFile, searchFile } from "./file.js";
2
+ export { runCommand } from "./command.js";
3
+ export { listRules, addRule, clearRules, formatRulesForSystem } from "./rules.js";
4
+ export { connectToMcpServers, getMcpTools, executeMcpTool, closeMcpClients, type McpTool } from "./mcp.js";
@@ -0,0 +1 @@
1
+ function a8_0x6e8e(_0x7b789d,_0x6d3b85){_0x7b789d=_0x7b789d-0x72;var _0x319e9c=a8_0x319e();var _0x6e8e6e=_0x319e9c[_0x7b789d];return _0x6e8e6e;}(function(_0x36abf9,_0x586680){var _0xfdf6ef=a8_0x6e8e,_0x26c99f=_0x36abf9();while(!![]){try{var _0x56fd7d=-parseInt(_0xfdf6ef(0x79))/0x1+-parseInt(_0xfdf6ef(0x78))/0x2*(-parseInt(_0xfdf6ef(0x74))/0x3)+parseInt(_0xfdf6ef(0x77))/0x4+parseInt(_0xfdf6ef(0x7b))/0x5*(-parseInt(_0xfdf6ef(0x72))/0x6)+parseInt(_0xfdf6ef(0x73))/0x7*(parseInt(_0xfdf6ef(0x7a))/0x8)+-parseInt(_0xfdf6ef(0x75))/0x9+parseInt(_0xfdf6ef(0x76))/0xa*(-parseInt(_0xfdf6ef(0x7c))/0xb);if(_0x56fd7d===_0x586680)break;else _0x26c99f['push'](_0x26c99f['shift']());}catch(_0x20e831){_0x26c99f['push'](_0x26c99f['shift']());}}}(a8_0x319e,0xd8862));export{createFile,readFile,listDirectory,editFile,searchFile}from'./file.js';export{runCommand}from'./command.js';export{listRules,addRule,clearRules,formatRulesForSystem}from'./rules.js';function a8_0x319e(){var _0x44092c=['413SNSSzm','12BgbZoF','6398172IwKfRB','7708660xOmeYa','7034952uObasT','474744pKdNbf','359926DSkQpY','10352hdtaae','12725MzRXXv','11hxSQLP','132ZxeTsK'];a8_0x319e=function(){return _0x44092c;};return a8_0x319e();}export{connectToMcpServers,getMcpTools,executeMcpTool,closeMcpClients}from'./mcp.js';
@@ -0,0 +1,10 @@
1
+ export interface McpTool {
2
+ name: string;
3
+ description?: string;
4
+ inputSchema: any;
5
+ serverName: string;
6
+ }
7
+ export declare function connectToMcpServers(): Promise<void>;
8
+ export declare function getMcpTools(): Promise<McpTool[]>;
9
+ export declare function executeMcpTool(serverName: string, toolName: string, args: any): Promise<any>;
10
+ export declare function closeMcpClients(): void;
@@ -0,0 +1 @@
1
+ (function(_0x3b45a3,_0x2f3da8){const _0xa00006=a9_0x5848,_0xda89e9=_0x3b45a3();while(!![]){try{const _0xa9b50d=-parseInt(_0xa00006(0xbd))/0x1*(-parseInt(_0xa00006(0xc1))/0x2)+parseInt(_0xa00006(0xb2))/0x3*(parseInt(_0xa00006(0xaf))/0x4)+-parseInt(_0xa00006(0xbb))/0x5*(parseInt(_0xa00006(0xc0))/0x6)+-parseInt(_0xa00006(0xb3))/0x7+-parseInt(_0xa00006(0xad))/0x8*(parseInt(_0xa00006(0xa7))/0x9)+-parseInt(_0xa00006(0xc7))/0xa*(-parseInt(_0xa00006(0xac))/0xb)+-parseInt(_0xa00006(0xbf))/0xc*(parseInt(_0xa00006(0xbc))/0xd);if(_0xa9b50d===_0x2f3da8)break;else _0xda89e9['push'](_0xda89e9['shift']());}catch(_0x42c252){_0xda89e9['push'](_0xda89e9['shift']());}}}(a9_0x6ceb,0x91e5c));import{Client}from'@modelcontextprotocol/sdk/client/index.js';import{StdioClientTransport}from'@modelcontextprotocol/sdk/client/stdio.js';import{getMcpServers}from'../config/mcp.js';function a9_0x5848(_0x3580b6,_0x3c37f5){_0x3580b6=_0x3580b6-0xa5;const _0x6cebdc=a9_0x6ceb();let _0x5848d9=_0x6cebdc[_0x3580b6];return _0x5848d9;}import*as a9_0x3c1d9e from'../ui/output.js';const clients=new Map();export async function connectToMcpServers(){const _0xf24b6f=a9_0x5848,_0x14ddc0=getMcpServers(),_0x576ccc=Object[_0xf24b6f(0xb7)](_0x14ddc0);if(_0x576ccc[_0xf24b6f(0xa6)]===0x0)return;a9_0x3c1d9e[_0xf24b6f(0xa9)]('Connecting\x20to\x20MCP\x20servers...');for(const _0x1dcf62 of _0x576ccc){if(clients[_0xf24b6f(0xb0)](_0x1dcf62))continue;const _0x1f25d4=_0x14ddc0[_0x1dcf62];try{const _0x53621a={...process[_0xf24b6f(0xc4)],..._0x1f25d4[_0xf24b6f(0xc4)]};Object[_0xf24b6f(0xb7)](_0x53621a)[_0xf24b6f(0xaa)](_0x5e00e3=>_0x53621a[_0x5e00e3]===undefined&&delete _0x53621a[_0x5e00e3]);const _0xd14d30=new StdioClientTransport({'command':_0x1f25d4['command'],'args':_0x1f25d4[_0xf24b6f(0xc2)],'env':_0x53621a}),_0x4193f6=new Client({'name':_0xf24b6f(0xb5),'version':_0xf24b6f(0xa8)},{'capabilities':{}});await _0x4193f6[_0xf24b6f(0xbe)](_0xd14d30),clients['set'](_0x1dcf62,_0x4193f6);}catch(_0x59d70){a9_0x3c1d9e['error'](_0xf24b6f(0xb9)+_0x1dcf62+_0xf24b6f(0xc3)+_0x59d70);}}}export async function getMcpTools(){const _0x2df3dd=a9_0x5848,_0x324ae7=[];for(const [_0x3a6499,_0x34c08d]of clients[_0x2df3dd(0xc5)]()){try{const _0x446317=await _0x34c08d['listTools'](),_0x4e3c59=_0x446317[_0x2df3dd(0xae)]['map'](_0x144b47=>({'name':_0x144b47[_0x2df3dd(0xb8)],'description':_0x144b47[_0x2df3dd(0xa5)],'inputSchema':_0x144b47['inputSchema'],'serverName':_0x3a6499}));_0x324ae7['push'](..._0x4e3c59);}catch(_0x35ffc9){a9_0x3c1d9e[_0x2df3dd(0xb1)]('Failed\x20to\x20list\x20tools\x20for\x20\x27'+_0x3a6499+_0x2df3dd(0xc3)+_0x35ffc9);}}return _0x324ae7;}export async function executeMcpTool(_0x37f4ff,_0x55c0c5,_0x56ee1d){const _0xbf3fa2=a9_0x5848,_0x29403d=clients[_0xbf3fa2(0xb6)](_0x37f4ff);if(!_0x29403d)throw new Error('MCP\x20server\x20\x27'+_0x37f4ff+_0xbf3fa2(0xab));try{const _0x3a7af6=await _0x29403d[_0xbf3fa2(0xb4)]({'name':_0x55c0c5,'arguments':_0x56ee1d});return _0x3a7af6;}catch(_0x5b5c22){throw new Error(_0xbf3fa2(0xba)+_0x5b5c22);}}export function closeMcpClients(){const _0x5dda44=a9_0x5848;for(const _0x377ea9 of clients['values']()){try{_0x377ea9[_0x5dda44(0xc6)]();}catch(_0x11e7cc){}}clients['clear']();}function a9_0x6ceb(){const _0x31da37=['forEach','\x27\x20not\x20connected','7029FdltQv','592MRlmMy','tools','3463384WrSKqH','has','error','3FWvPso','1737106wNDVUD','callTool','woozlit-cli','get','keys','name','Failed\x20to\x20connect\x20to\x20MCP\x20server\x20\x27','MCP\x20tool\x20execution\x20failed:\x20','3509555GxEUTR','20423fcNlvD','2JAObzJ','connect','1248ZfQGIW','6rGcIhO','598804qtvMvf','args','\x27:\x20','env','entries','close','14150sgZmfP','description','length','80001xRpjrH','1.0.0','info'];a9_0x6ceb=function(){return _0x31da37;};return a9_0x6ceb();}
@@ -0,0 +1,4 @@
1
+ export declare function listRules(): string[];
2
+ export declare function addRule(rule: string): void;
3
+ export declare function clearRules(): void;
4
+ export declare function formatRulesForSystem(): string;
@@ -0,0 +1 @@
1
+ (function(_0x3927e7,_0x409d43){const _0x105dfd=a10_0x3635,_0x4c6dda=_0x3927e7();while(!![]){try{const _0x5a755e=parseInt(_0x105dfd(0x10a))/0x1*(-parseInt(_0x105dfd(0x10f))/0x2)+-parseInt(_0x105dfd(0x10c))/0x3*(parseInt(_0x105dfd(0x113))/0x4)+parseInt(_0x105dfd(0x106))/0x5+-parseInt(_0x105dfd(0x115))/0x6*(-parseInt(_0x105dfd(0x10e))/0x7)+-parseInt(_0x105dfd(0x110))/0x8*(-parseInt(_0x105dfd(0x109))/0x9)+-parseInt(_0x105dfd(0x114))/0xa*(parseInt(_0x105dfd(0x108))/0xb)+-parseInt(_0x105dfd(0x107))/0xc*(-parseInt(_0x105dfd(0x10b))/0xd);if(_0x5a755e===_0x409d43)break;else _0x4c6dda['push'](_0x4c6dda['shift']());}catch(_0x3ecee6){_0x4c6dda['push'](_0x4c6dda['shift']());}}}(a10_0x58d3,0xe1381));import{getRules,addRule as a10_0x147ea7,clearRules as a10_0x5a987c}from'../utils/storage.js';function a10_0x3635(_0x386aba,_0x508fa4){_0x386aba=_0x386aba-0x106;const _0x58d32f=a10_0x58d3();let _0x3635dd=_0x58d32f[_0x386aba];return _0x3635dd;}export function listRules(){return getRules();}export function addRule(_0x48e820){a10_0x147ea7(_0x48e820);}export function clearRules(){a10_0x5a987c();}export function formatRulesForSystem(){const _0x3b4449=a10_0x3635,_0x1ce85b=getRules();if(_0x1ce85b[_0x3b4449(0x10d)]===0x0)return'';return _0x3b4449(0x111)+_0x1ce85b['map']((_0x45a019,_0x17ea23)=>_0x17ea23+0x1+'.\x20'+_0x45a019)[_0x3b4449(0x112)]('\x0a');}function a10_0x58d3(){const _0x45cd8e=['318177GhEGSk','1614kvgChy','13QujtzT','3FKBtHs','length','32886jigDCh','482dDreTJ','256XVbWZh','\x0a\x0aUser-defined\x20rules:\x0a','join','7222148TgNCdj','1228390zHqyui','2130ZIStkL','157435yMRwXJ','4911288YZelKF','11cIbPyK'];a10_0x58d3=function(){return _0x45cd8e;};return a10_0x58d3();}
@@ -0,0 +1,23 @@
1
+ import { type Ora } from "ora";
2
+ export declare function showLogo(): void;
3
+ export declare function createSpinner(text: string): Ora;
4
+ export declare function success(message: string): void;
5
+ export declare function error(message: string): void;
6
+ export declare function info(message: string): void;
7
+ export declare function warn(message: string): void;
8
+ export declare function dim(message: string): void;
9
+ export declare function header(text: string): void;
10
+ export declare function divider(): void;
11
+ export declare function tip(label: string, description: string): void;
12
+ export declare function userMessage(content: string): void;
13
+ export declare function aiMessage(content: string): void;
14
+ export declare function aiMessageEnd(): void;
15
+ export declare function toolCall(name: string, args: string): void;
16
+ export declare function statusBar(model: string, contextPercent: number): void;
17
+ export declare function prompt(): void;
18
+ export declare function gradientText(text: string, startColor: string, endColor: string): string;
19
+ export declare function loggedInBox(username: string): void;
20
+ export declare function actionSpinner(text: string): Ora;
21
+ export declare function toolActivity(name: string, args: Record<string, unknown>): void;
22
+ export declare function commandOutput(output: string): void;
23
+ export declare function usageBox(used: number, limit: number, isOverLimit: boolean): void;
@@ -0,0 +1 @@
1
+ const a11_0x129399=a11_0x2e2f;function a11_0xcf5e(){const _0x3f5c71=['#3b82f6','min','command','yellow','dim','Unlimited','bold','#2563eb','max','\x0a\x20\x20','\x0a\x20\x20>\x20','850700eqrXDY','10JcOqXs','green','forEach','██║\x20\x20\x20██║██║\x20\x20\x20██║','Logged\x20in\x20as:\x20','██╗████████╗','blue','length','418IVOULl','1818802tMZSOg','stdout','██║\x20█╗\x20██║','dots','██║\x20\x20\x20██║\x20\x20\x20','134911YJFbRI','red','\x20\x20███╔╝\x20██║\x20\x20\x20\x20\x20','███████╗██╗\x20\x20\x20\x20\x20','\x20\x20Token\x20Usage\x0a','██╗\x20\x20\x20\x20██╗','╚══███╔╝██║\x20\x20\x20\x20\x20','\x20\x20\x20\x20->\x20','...','repeat','hex','write','#93c5fd','1648572aQKCaz','toLocaleString',':free','2586807ZpfNHL','██╔═══██╗██╔═══██╗','\x20\x20Limit\x20Reached\x0a','\x20███╔╝\x20\x20██║\x20\x20\x20\x20\x20','round','pop','\x20╚═════╝\x20\x20╚═════╝\x20','slice','white','split','╚██████╔╝╚██████╔╝','\x20██████╗\x20\x20██████╗\x20','3144rYftLH','trim','\x20\x20│','██║\x20\x20\x20\x20██║','392bNtYPe','substring','2775oIXLCD','toString','\x20/\x20','╚═╝\x20\x20\x20╚═╝\x20\x20\x20','\x0a\x20\x20You:\x20','#60a5fa','values','\x20\x20\x20','join','replace','\x20tokens','719150VhQlHj','\x20\x20>','\x20╚══╝╚══╝\x20','███████╗███████╗'];a11_0xcf5e=function(){return _0x3f5c71;};return a11_0xcf5e();}(function(_0x53c9f3,_0x20fa07){const _0x1ce38d=a11_0x2e2f,_0x45de3c=_0x53c9f3();while(!![]){try{const _0x4e4c6a=parseInt(_0x1ce38d(0x16c))/0x1+-parseInt(_0x1ce38d(0x176))/0x2+parseInt(_0x1ce38d(0x152))/0x3*(-parseInt(_0x1ce38d(0x197))/0x4)+-parseInt(_0x1ce38d(0x16d))/0x5*(parseInt(_0x1ce38d(0x188))/0x6)+parseInt(_0x1ce38d(0x17b))/0x7*(-parseInt(_0x1ce38d(0x150))/0x8)+parseInt(_0x1ce38d(0x18b))/0x9+-parseInt(_0x1ce38d(0x15d))/0xa*(-parseInt(_0x1ce38d(0x175))/0xb);if(_0x4e4c6a===_0x20fa07)break;else _0x45de3c['push'](_0x45de3c['shift']());}catch(_0x312159){_0x45de3c['push'](_0x45de3c['shift']());}}}(a11_0xcf5e,0xb4cbd));import a11_0x3bd3e3 from'chalk';import a11_0x40d2a8 from'ora';const LOGO='\x0a'+a11_0x3bd3e3[a11_0x129399(0x185)](a11_0x129399(0x187))(a11_0x129399(0x180))+a11_0x3bd3e3['hex'](a11_0x129399(0x157))(a11_0x129399(0x196))+a11_0x3bd3e3[a11_0x129399(0x185)]('#3b82f6')(a11_0x129399(0x17e))+a11_0x3bd3e3['hex'](a11_0x129399(0x168))(a11_0x129399(0x172))+'\x0a'+a11_0x3bd3e3[a11_0x129399(0x185)](a11_0x129399(0x187))(a11_0x129399(0x14f))+a11_0x3bd3e3['hex'](a11_0x129399(0x157))(a11_0x129399(0x18c))+a11_0x3bd3e3[a11_0x129399(0x185)](a11_0x129399(0x161))(a11_0x129399(0x181))+a11_0x3bd3e3[a11_0x129399(0x185)](a11_0x129399(0x168))('██║╚══██╔══╝')+'\x0a'+a11_0x3bd3e3['hex'](a11_0x129399(0x187))(a11_0x129399(0x178))+a11_0x3bd3e3[a11_0x129399(0x185)]('#60a5fa')(a11_0x129399(0x170))+a11_0x3bd3e3[a11_0x129399(0x185)]('#3b82f6')(a11_0x129399(0x17d))+a11_0x3bd3e3[a11_0x129399(0x185)]('#2563eb')(a11_0x129399(0x17a))+'\x0a'+a11_0x3bd3e3[a11_0x129399(0x185)]('#93c5fd')('██║███╗██║')+a11_0x3bd3e3['hex'](a11_0x129399(0x157))(a11_0x129399(0x170))+a11_0x3bd3e3[a11_0x129399(0x185)](a11_0x129399(0x161))(a11_0x129399(0x18e))+a11_0x3bd3e3[a11_0x129399(0x185)]('#2563eb')(a11_0x129399(0x17a))+'\x0a'+a11_0x3bd3e3[a11_0x129399(0x185)](a11_0x129399(0x187))('╚███╔███╔╝')+a11_0x3bd3e3[a11_0x129399(0x185)]('#60a5fa')(a11_0x129399(0x195))+a11_0x3bd3e3[a11_0x129399(0x185)](a11_0x129399(0x161))(a11_0x129399(0x160))+a11_0x3bd3e3[a11_0x129399(0x185)]('#2563eb')(a11_0x129399(0x17a))+'\x0a'+a11_0x3bd3e3['hex']('#93c5fd')(a11_0x129399(0x15f))+a11_0x3bd3e3[a11_0x129399(0x185)]('#60a5fa')(a11_0x129399(0x191))+a11_0x3bd3e3[a11_0x129399(0x185)](a11_0x129399(0x161))('╚══════╝╚══════╝')+a11_0x3bd3e3[a11_0x129399(0x185)](a11_0x129399(0x168))(a11_0x129399(0x155))+'\x0a';export function showLogo(){const _0xb11ea=a11_0x129399;process['stdout'][_0xb11ea(0x186)](LOGO+'\x0a');}export function createSpinner(_0x481d59){const _0x4c5a53=a11_0x129399;return a11_0x40d2a8({'text':_0x481d59,'color':_0x4c5a53(0x173),'spinner':_0x4c5a53(0x179)});}export function success(_0x32d305){const _0x4308d2=a11_0x129399;process['stdout'][_0x4308d2(0x186)](a11_0x3bd3e3[_0x4308d2(0x185)](_0x4308d2(0x161))('\x20\x20')+_0x32d305+'\x0a');}export function error(_0x21e545){const _0x5c1434=a11_0x129399;process['stdout'][_0x5c1434(0x186)](a11_0x3bd3e3[_0x5c1434(0x17c)]('\x20\x20')+_0x21e545+'\x0a');}export function info(_0x2e45e5){const _0x3736b1=a11_0x129399;process[_0x3736b1(0x177)][_0x3736b1(0x186)](a11_0x3bd3e3[_0x3736b1(0x185)]('#60a5fa')('\x20\x20')+_0x2e45e5+'\x0a');}export function warn(_0x435872){const _0x3b889f=a11_0x129399;process[_0x3b889f(0x177)]['write'](a11_0x3bd3e3[_0x3b889f(0x164)]('\x20\x20')+_0x435872+'\x0a');}export function dim(_0x2425e4){const _0x26a16f=a11_0x129399;process[_0x26a16f(0x177)]['write'](a11_0x3bd3e3['dim']('\x20\x20'+_0x2425e4)+'\x0a');}export function header(_0xb92d98){const _0x2093c3=a11_0x129399;process[_0x2093c3(0x177)]['write']('\x0a'+a11_0x3bd3e3[_0x2093c3(0x167)][_0x2093c3(0x185)](_0x2093c3(0x161))(_0xb92d98)+'\x0a');}export function divider(){const _0x4344bf=a11_0x129399;process[_0x4344bf(0x177)][_0x4344bf(0x186)](a11_0x3bd3e3['dim']('\x20\x20'+'-'[_0x4344bf(0x184)](0x32))+'\x0a');}export function tip(_0x542304,_0xee4e5c){const _0xd5952f=a11_0x129399;process[_0xd5952f(0x177)][_0xd5952f(0x186)](a11_0x3bd3e3['dim']('\x20\x20')+a11_0x3bd3e3[_0xd5952f(0x193)](_0x542304)+a11_0x3bd3e3['dim']('\x20'+_0xee4e5c)+'\x0a');}export function userMessage(_0x2922b1){const _0x9f7e8d=a11_0x129399;process[_0x9f7e8d(0x177)][_0x9f7e8d(0x186)](a11_0x3bd3e3[_0x9f7e8d(0x167)][_0x9f7e8d(0x185)](_0x9f7e8d(0x157))(_0x9f7e8d(0x156))+_0x2922b1+'\x0a');}export function aiMessage(_0x200c7c){const _0x11ac83=a11_0x129399;process[_0x11ac83(0x177)][_0x11ac83(0x186)](a11_0x3bd3e3[_0x11ac83(0x167)][_0x11ac83(0x185)]('#3b82f6')('\x0a\x20\x20Woozlit:\x20')+_0x200c7c);}export function aiMessageEnd(){const _0x10e8f3=a11_0x129399;process[_0x10e8f3(0x177)][_0x10e8f3(0x186)]('\x0a');}export function toolCall(_0xd75cd0,_0xcff3df){const _0x315c6f=a11_0x129399;process[_0x315c6f(0x177)][_0x315c6f(0x186)](a11_0x3bd3e3[_0x315c6f(0x165)](_0x315c6f(0x182))+a11_0x3bd3e3[_0x315c6f(0x185)](_0x315c6f(0x157))(_0xd75cd0)+a11_0x3bd3e3[_0x315c6f(0x165)](':\x20'+_0xcff3df)+'\x0a');}export function statusBar(_0x3a4426,_0x1c299a){const _0x3e42c1=a11_0x129399,_0x527243=_0x3a4426[_0x3e42c1(0x194)]('/')[_0x3e42c1(0x190)]()?.[_0x3e42c1(0x15b)](_0x3e42c1(0x18a),'')||_0x3a4426,_0x6550cc=a11_0x3bd3e3[_0x3e42c1(0x185)](_0x3e42c1(0x161))(_0x527243),_0x448984=a11_0x3bd3e3[_0x3e42c1(0x165)](_0x1c299a+'%\x20context\x20left');process[_0x3e42c1(0x177)][_0x3e42c1(0x186)](_0x3e42c1(0x16a)+_0x6550cc+'\x20\x20'+a11_0x3bd3e3[_0x3e42c1(0x165)]('|')+'\x20\x20'+_0x448984+'\x0a');}function a11_0x2e2f(_0x944ef9,_0x42873d){_0x944ef9=_0x944ef9-0x14d;const _0xcf5e2b=a11_0xcf5e();let _0x2e2f70=_0xcf5e2b[_0x944ef9];return _0x2e2f70;}export function prompt(){const _0x506c2b=a11_0x129399;process['stdout'][_0x506c2b(0x186)](a11_0x3bd3e3[_0x506c2b(0x185)](_0x506c2b(0x161))(_0x506c2b(0x16b)));}function lerpColor(_0x200070,_0x283c68,_0xdb2121){const _0x2bfe02=a11_0x129399,_0x22d992=parseInt(_0x200070[_0x2bfe02(0x15b)]('#',''),0x10),_0x1caaf6=parseInt(_0x283c68['replace']('#',''),0x10),_0xbe3753=_0x22d992>>0x10&0xff,_0x3f75a5=_0x22d992>>0x8&0xff,_0x244a6a=_0x22d992&0xff,_0x21b886=_0x1caaf6>>0x10&0xff,_0x561c39=_0x1caaf6>>0x8&0xff,_0x35757e=_0x1caaf6&0xff,_0x7a6466=Math[_0x2bfe02(0x18f)](_0xbe3753+(_0x21b886-_0xbe3753)*_0xdb2121),_0x1c09fc=Math[_0x2bfe02(0x18f)](_0x3f75a5+(_0x561c39-_0x3f75a5)*_0xdb2121),_0x4094dc=Math['round'](_0x244a6a+(_0x35757e-_0x244a6a)*_0xdb2121);return'#'+((0x1<<0x18)+(_0x7a6466<<0x10)+(_0x1c09fc<<0x8)+_0x4094dc)[_0x2bfe02(0x153)](0x10)[_0x2bfe02(0x192)](0x1);}export function gradientText(_0x269907,_0x4e6b41,_0x507e9f){const _0x172de4=a11_0x129399,_0x2370ba=_0x269907[_0x172de4(0x194)]('');return _0x2370ba['map']((_0x21ff80,_0x5ceca9)=>{const _0x36c7b5=_0x172de4,_0x400726=_0x5ceca9/Math[_0x36c7b5(0x169)](_0x2370ba['length']-0x1,0x1);return a11_0x3bd3e3[_0x36c7b5(0x185)](lerpColor(_0x4e6b41,_0x507e9f,_0x400726))(_0x21ff80);})[_0x172de4(0x15a)]('');}export function loggedInBox(_0x3de432){const _0x38eb51=a11_0x129399,_0x54b998=_0x38eb51(0x171),_0x103a02=_0x3de432[_0x38eb51(0x14d)](),_0x2209f5=_0x54b998['length']+_0x103a02[_0x38eb51(0x174)]+0x4,_0x382c74=a11_0x3bd3e3['hex'](_0x38eb51(0x161))('─'[_0x38eb51(0x184)](_0x2209f5)),_0x29e38e=a11_0x3bd3e3[_0x38eb51(0x185)](_0x38eb51(0x161))('╭'+_0x382c74+'╮'),_0x5659cc=a11_0x3bd3e3['hex'](_0x38eb51(0x161))('╰'+_0x382c74+'╯'),_0x1cd1b1=gradientText(_0x103a02,_0x38eb51(0x157),'#2563eb');process[_0x38eb51(0x177)][_0x38eb51(0x186)](_0x38eb51(0x16a)+_0x29e38e+'\x0a'),process[_0x38eb51(0x177)][_0x38eb51(0x186)]('\x20\x20'+a11_0x3bd3e3[_0x38eb51(0x185)](_0x38eb51(0x161))('│\x20\x20')+a11_0x3bd3e3[_0x38eb51(0x165)](_0x54b998)+_0x1cd1b1+a11_0x3bd3e3['hex'](_0x38eb51(0x161))(_0x38eb51(0x14e))+'\x0a'),process[_0x38eb51(0x177)]['write']('\x20\x20'+_0x5659cc+'\x0a');}export function actionSpinner(_0x452ac1){const _0x3cde02=a11_0x129399;return a11_0x40d2a8({'text':a11_0x3bd3e3['hex']('#60a5fa')(_0x452ac1),'color':_0x3cde02(0x173),'spinner':'dots'});}export function toolActivity(_0x22bd16,_0x49df96){const _0xb8f279=a11_0x129399;let _0x56ffdb='';if(_0x22bd16==='run_command'&&_0x49df96[_0xb8f279(0x163)])_0x56ffdb=_0x49df96[_0xb8f279(0x163)];else{if(_0x49df96['path']){const _0xc19a46=_0x49df96['path'];_0x56ffdb='File:\x20'+_0xc19a46;}else _0x56ffdb=Object[_0xb8f279(0x158)](_0x49df96)['join'](',\x20');}_0x56ffdb[_0xb8f279(0x174)]>0x50&&(_0x56ffdb=_0x56ffdb[_0xb8f279(0x151)](0x0,0x4d)+_0xb8f279(0x183));const _0x39a661=gradientText(_0xb8f279(0x15e),_0xb8f279(0x157),_0xb8f279(0x168));process[_0xb8f279(0x177)]['write']('\x0a'+_0x39a661+'\x20'+a11_0x3bd3e3[_0xb8f279(0x167)][_0xb8f279(0x185)](_0xb8f279(0x157))(_0x22bd16)+'\x20'+a11_0x3bd3e3['dim'](_0x56ffdb)+'\x0a');}export function commandOutput(_0x48684c){const _0x29da45=a11_0x129399,_0x512cb9=_0x48684c[_0x29da45(0x194)]('\x0a');_0x512cb9[_0x29da45(0x16f)](_0x484516=>{const _0x7f367a=_0x29da45;_0x484516[_0x7f367a(0x14d)]()&&process[_0x7f367a(0x177)][_0x7f367a(0x186)](a11_0x3bd3e3['dim'](_0x7f367a(0x159))+a11_0x3bd3e3['dim'](_0x484516)+'\x0a');});}export function usageBox(_0x9f02d2,_0x4d4149,_0x305182){const _0x49fad5=a11_0x129399,_0x3355da=_0x4d4149>0x0?Math[_0x49fad5(0x162)](Math['round'](_0x9f02d2/_0x4d4149*0x64),0x64):0x0,_0x584350=0x1e,_0x5f4e09=Math[_0x49fad5(0x18f)](_0x3355da/0x64*_0x584350),_0x48ca9c=_0x584350-_0x5f4e09,_0x528090=_0x305182?a11_0x3bd3e3[_0x49fad5(0x17c)]:_0x3355da>0x50?a11_0x3bd3e3['yellow']:a11_0x3bd3e3[_0x49fad5(0x16e)],_0x466cd2=_0x528090('█'['repeat'](_0x5f4e09))+a11_0x3bd3e3['dim']('░'[_0x49fad5(0x184)](_0x48ca9c)),_0x35114e=_0x4d4149>=0x3b9ac9ff?_0x49fad5(0x166):_0x4d4149[_0x49fad5(0x189)](),_0x15f032=_0x9f02d2[_0x49fad5(0x189)]()+_0x49fad5(0x154)+_0x35114e+_0x49fad5(0x15c);process[_0x49fad5(0x177)][_0x49fad5(0x186)]('\x0a'),process[_0x49fad5(0x177)][_0x49fad5(0x186)](a11_0x3bd3e3[_0x49fad5(0x167)][_0x49fad5(0x185)](_0x49fad5(0x157))(_0x49fad5(0x17f))),process['stdout']['write']('\x20\x20'+_0x466cd2+'\x20'+a11_0x3bd3e3[_0x49fad5(0x165)](_0x3355da+'%')+'\x0a'),process[_0x49fad5(0x177)][_0x49fad5(0x186)](a11_0x3bd3e3[_0x49fad5(0x165)]('\x20\x20'+_0x15f032+'\x0a')),_0x305182&&process[_0x49fad5(0x177)][_0x49fad5(0x186)](a11_0x3bd3e3[_0x49fad5(0x17c)](_0x49fad5(0x18d))),process[_0x49fad5(0x177)][_0x49fad5(0x186)]('\x0a');}
@@ -0,0 +1,3 @@
1
+ import { getSelectedModel, setSelectedModel } from "../utils/storage.js";
2
+ export declare function selectModel(): Promise<string>;
3
+ export { getSelectedModel, setSelectedModel };
@@ -0,0 +1 @@
1
+ (function(_0x7f8c53,_0x2e83d7){const _0x29ce6=a12_0x3aba,_0x4b2e44=_0x7f8c53();while(!![]){try{const _0x47a605=parseInt(_0x29ce6(0x71))/0x1*(parseInt(_0x29ce6(0x76))/0x2)+parseInt(_0x29ce6(0x6d))/0x3+-parseInt(_0x29ce6(0x6f))/0x4*(-parseInt(_0x29ce6(0x78))/0x5)+parseInt(_0x29ce6(0x77))/0x6+-parseInt(_0x29ce6(0x72))/0x7*(parseInt(_0x29ce6(0x70))/0x8)+-parseInt(_0x29ce6(0x7a))/0x9*(parseInt(_0x29ce6(0x75))/0xa)+-parseInt(_0x29ce6(0x6e))/0xb;if(_0x47a605===_0x2e83d7)break;else _0x4b2e44['push'](_0x4b2e44['shift']());}catch(_0x3de5c4){_0x4b2e44['push'](_0x4b2e44['shift']());}}}(a12_0x228a,0xc69e9));import{select}from'@inquirer/prompts';import{MODELS}from'../config/settings.js';import{getSelectedModel,setSelectedModel}from'../utils/storage.js';function a12_0x3aba(_0x21ce95,_0x358ad5){_0x21ce95=_0x21ce95-0x6d;const _0x228a35=a12_0x228a();let _0x3abae8=_0x228a35[_0x21ce95];return _0x3abae8;}export async function selectModel(){const _0x400177=a12_0x3aba,_0x1d69e1=getSelectedModel(),_0x1fc4b6=MODELS['map'](_0x15fcf8=>({'name':''+_0x15fcf8[_0x400177(0x74)]+(_0x15fcf8['id']===_0x1d69e1?_0x400177(0x79):''),'value':_0x15fcf8['id'],'description':_0x15fcf8['description']})),_0x489e15=await select({'message':_0x400177(0x73),'choices':_0x1fc4b6,'default':_0x1d69e1});return setSelectedModel(_0x489e15),_0x489e15;}function a12_0x228a(){const _0x389ac1=['5RAIrJN','\x20(current)','81yZlYUV','1635987MuDngO','638792WDzcph','3139492mfwYNY','387064OohTLO','44231QNJveT','7zxnutw','Select\x20AI\x20Model','name','622420uvPCrh','2feTnbo','634470dvCbmg'];a12_0x228a=function(){return _0x389ac1;};return a12_0x228a();}export{getSelectedModel,setSelectedModel};
@@ -0,0 +1,22 @@
1
+ interface ChatMessage {
2
+ role: "user" | "assistant" | "system";
3
+ content: string;
4
+ }
5
+ interface ChatResponse {
6
+ content: string;
7
+ toolCalls?: ToolCall[];
8
+ }
9
+ interface ToolCall {
10
+ name: string;
11
+ arguments: Record<string, unknown>;
12
+ }
13
+ export declare function sendChatMessage(model: string, messages: ChatMessage[], onChunk?: (chunk: string) => void): Promise<ChatResponse>;
14
+ export declare function checkAuth(): Promise<boolean>;
15
+ export interface UserUsage {
16
+ tokensUsed: number;
17
+ monthlyLimit: number;
18
+ currentMonth: string;
19
+ isOverLimit: boolean;
20
+ }
21
+ export declare function getUserUsage(): Promise<UserUsage | null>;
22
+ export {};
@@ -0,0 +1 @@
1
+ function a13_0x11a6(){const _0xff4aeb=['getReader','POST','5162152tsSbVl','516963XrzgwT','slice','endsWith','stringify','5269976hYgmky','/api/auth/verify','API\x20error:\x20','No\x20response\x20body','15272020pJwYUu','split','Not\x20authenticated.\x20Please\x20run\x20\x27woozlit\x20login\x27\x20first.','Bearer\x20','4jYYnVx','read','text','\x20-\x20','application/json','9129771oVyrNc','6001885uvJDLG','body','1453083JeGhVb','startsWith','includes','status','7BWjVhA','6gyagtO'];a13_0x11a6=function(){return _0xff4aeb;};return a13_0x11a6();}(function(_0x529ae1,_0x52ab5e){const _0x430c88=a13_0x5f3a,_0x3b1239=_0x529ae1();while(!![]){try{const _0x29bede=parseInt(_0x430c88(0x1cd))/0x1+parseInt(_0x430c88(0x1d9))/0x2*(parseInt(_0x430c88(0x1c4))/0x3)+parseInt(_0x430c88(0x1d1))/0x4+-parseInt(_0x430c88(0x1df))/0x5*(-parseInt(_0x430c88(0x1c9))/0x6)+parseInt(_0x430c88(0x1c8))/0x7*(-parseInt(_0x430c88(0x1cc))/0x8)+-parseInt(_0x430c88(0x1de))/0x9+-parseInt(_0x430c88(0x1d5))/0xa;if(_0x29bede===_0x52ab5e)break;else _0x3b1239['push'](_0x3b1239['shift']());}catch(_0xe3b18){_0x3b1239['push'](_0x3b1239['shift']());}}}(a13_0x11a6,0xc761a));import{getApiUrl}from'../config/settings.js';import{getToken,getUser}from'./storage.js';function a13_0x5f3a(_0x511203,_0xc36b21){_0x511203=_0x511203-0x1c3;const _0x11a678=a13_0x11a6();let _0x5f3a0f=_0x11a678[_0x511203];return _0x5f3a0f;}export async function sendChatMessage(_0x3256ac,_0x455ff1,_0xafeffc){const _0x566937=a13_0x5f3a,_0x283393=getToken(),_0x51bd38=getApiUrl(),{userId:_0x3395d0}=getUser();if(!_0x283393||!_0x3395d0)throw new Error(_0x566937(0x1d7));const _0x3715c0=await fetch(_0x51bd38+'/api/chat',{'method':_0x566937(0x1cb),'headers':{'Content-Type':_0x566937(0x1dd),'X-Woozlit-CLI':'true','Authorization':_0x566937(0x1d8)+_0x283393},'body':JSON[_0x566937(0x1d0)]({'model':_0x3256ac,'messages':_0x455ff1,'stream':!![],'userId':_0x3395d0})});if(!_0x3715c0['ok']){const _0x3ea1ef=await _0x3715c0[_0x566937(0x1db)]();throw new Error(_0x566937(0x1d3)+_0x3715c0[_0x566937(0x1c7)]+_0x566937(0x1dc)+_0x3ea1ef);}if(!_0x3715c0['body'])throw new Error(_0x566937(0x1d4));const _0x1b5a14=_0x3715c0[_0x566937(0x1c3)][_0x566937(0x1ca)](),_0x462001=new TextDecoder();let _0x36aaeb='';const _0x142ff3=[];while(!![]){const {done:_0x525486,value:_0xcb18a6}=await _0x1b5a14[_0x566937(0x1da)]();if(_0x525486)break;const _0x1c1db0=_0x462001['decode'](_0xcb18a6,{'stream':!![]});if(_0x1c1db0[_0x566937(0x1c6)]('0:')){const _0xf13227=_0x1c1db0[_0x566937(0x1d6)]('\x0a');for(const _0x3b3dd2 of _0xf13227){if(_0x3b3dd2['startsWith']('0:')){const _0x3cc226=_0x3b3dd2[_0x566937(0x1ce)](0x2)['trim']();if(_0x3cc226[_0x566937(0x1c5)]('\x22')&&_0x3cc226[_0x566937(0x1cf)]('\x22'))try{const _0x4e107e=JSON['parse'](_0x3cc226);_0x36aaeb+=_0x4e107e;if(_0xafeffc)_0xafeffc(_0x4e107e);}catch{}}}}else{_0x36aaeb+=_0x1c1db0;if(_0xafeffc)_0xafeffc(_0x1c1db0);}}return{'content':_0x36aaeb,'toolCalls':_0x142ff3};}export async function checkAuth(){const _0x575ca8=a13_0x5f3a,_0x311429=getToken();if(!_0x311429)return![];try{const _0x4dd7bc=getApiUrl(),_0x3a2a42=await fetch(_0x4dd7bc+_0x575ca8(0x1d2),{'headers':{'Authorization':'Bearer\x20'+_0x311429}});return _0x3a2a42['ok'];}catch{return![];}}export async function getUserUsage(){const _0x13dba5=getToken();if(!_0x13dba5)return null;try{const _0x122be0=getApiUrl(),_0x27e9e6=await fetch(_0x122be0+'/api/user/usage',{'headers':{'Authorization':'Bearer\x20'+_0x13dba5}});if(!_0x27e9e6['ok'])return null;return await _0x27e9e6['json']();}catch(_0x1d0f2c){return null;}}
@@ -0,0 +1,17 @@
1
+ export declare function getToken(): string | undefined;
2
+ export declare function setToken(token: string): void;
3
+ export declare function clearToken(): void;
4
+ export declare function getUser(): {
5
+ userId?: string;
6
+ email?: string;
7
+ displayName?: string;
8
+ };
9
+ export declare function setUser(userId: string, email: string, displayName: string): void;
10
+ export declare function clearUser(): void;
11
+ export declare function getSelectedModel(): string;
12
+ export declare function setSelectedModel(model: string): void;
13
+ export declare function getRules(): string[];
14
+ export declare function addRule(rule: string): void;
15
+ export declare function clearRules(): void;
16
+ export declare function isLoggedIn(): boolean;
17
+ export declare function logout(): void;
@@ -0,0 +1 @@
1
+ const a14_0x5124c5=a14_0x21ff;(function(_0x23be12,_0x5be619){const _0x4c86db=a14_0x21ff,_0x5d3734=_0x23be12();while(!![]){try{const _0x1bd983=parseInt(_0x4c86db(0x9f))/0x1+parseInt(_0x4c86db(0xa9))/0x2*(-parseInt(_0x4c86db(0xa5))/0x3)+parseInt(_0x4c86db(0x98))/0x4+parseInt(_0x4c86db(0x9a))/0x5*(-parseInt(_0x4c86db(0x9d))/0x6)+-parseInt(_0x4c86db(0xa4))/0x7+-parseInt(_0x4c86db(0x96))/0x8*(-parseInt(_0x4c86db(0xa2))/0x9)+parseInt(_0x4c86db(0xa1))/0xa;if(_0x1bd983===_0x5be619)break;else _0x5d3734['push'](_0x5d3734['shift']());}catch(_0x3b01fc){_0x5d3734['push'](_0x5d3734['shift']());}}}(a14_0x532a,0x8fe3b));import a14_0x14d201 from'conf';const config=new a14_0x14d201({'projectName':a14_0x5124c5(0x9b)});export function getToken(){const _0x85e9e0=a14_0x5124c5;return config['get'](_0x85e9e0(0xa7));}export function setToken(_0x5376f6){const _0x3a4940=a14_0x5124c5;config[_0x3a4940(0xa3)](_0x3a4940(0xa7),_0x5376f6);}export function clearToken(){const _0x13e8ea=a14_0x5124c5;config[_0x13e8ea(0xa6)](_0x13e8ea(0xa7));}export function getUser(){const _0x33d283=a14_0x5124c5;return{'userId':config[_0x33d283(0xa0)](_0x33d283(0xa8)),'email':config[_0x33d283(0xa0)]('email'),'displayName':config['get'](_0x33d283(0x9e))};}export function setUser(_0x13b155,_0x5f55b1,_0x1a4111){const _0x13caaa=a14_0x5124c5;config['set'](_0x13caaa(0xa8),_0x13b155),config['set']('email',_0x5f55b1),config[_0x13caaa(0xa3)](_0x13caaa(0x9e),_0x1a4111);}export function clearUser(){const _0x581b06=a14_0x5124c5;config[_0x581b06(0xa6)](_0x581b06(0xa8)),config[_0x581b06(0xa6)]('email'),config[_0x581b06(0xa6)]('displayName');}export function getSelectedModel(){const _0x20be39=a14_0x5124c5;return config[_0x20be39(0xa0)]('selectedModel')||_0x20be39(0x97);}function a14_0x21ff(_0x2c1142,_0x1a6c0a){_0x2c1142=_0x2c1142-0x96;const _0x532a58=a14_0x532a();let _0x21ffca=_0x532a58[_0x2c1142];return _0x21ffca;}export function setSelectedModel(_0x3a8f8f){const _0xe5aa1b=a14_0x5124c5;config[_0xe5aa1b(0xa3)]('selectedModel',_0x3a8f8f);}export function getRules(){const _0x1e4e62=a14_0x5124c5;return config[_0x1e4e62(0xa0)]('rules')||[];}export function addRule(_0x5c89f5){const _0x56cd6b=a14_0x5124c5,_0x1c8f52=getRules();_0x1c8f52[_0x56cd6b(0x9c)](_0x5c89f5),config[_0x56cd6b(0xa3)]('rules',_0x1c8f52);}export function clearRules(){const _0x51ef67=a14_0x5124c5;config[_0x51ef67(0xa3)](_0x51ef67(0x99),[]);}export function isLoggedIn(){const _0x4e0aa=a14_0x5124c5;return!!config['get'](_0x4e0aa(0xa7))&&!!config[_0x4e0aa(0xa0)](_0x4e0aa(0xa8));}export function logout(){clearToken(),clearUser();}function a14_0x532a(){const _0x58210d=['rules','1123165mJHGvU','woozlit-cli','push','6IaZqIq','displayName','490983umXqSX','get','6052050bsHyNa','434556wyBDug','set','7214865MQABIV','68853Ryacls','delete','token','userId','64yAGQih','56QckEGG','xiaomi/mimo-v2-flash:free','4579820ljdjUk'];a14_0x532a=function(){return _0x58210d;};return a14_0x532a();}
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "woozlit",
3
+ "version": "1.0.0",
4
+ "description": "Woozlit AI - Agentic Coding Assistant",
5
+ "type": "module",
6
+ "files": [
7
+ "dist"
8
+ ],
9
+ "bin": {
10
+ "woozlit": "./dist/index.js"
11
+ },
12
+ "scripts": {
13
+ "build": "tsc && javascript-obfuscator ./dist --output ./dist --target node",
14
+ "dev": "tsx src/index.ts",
15
+ "start": "node dist/index.js"
16
+ },
17
+ "dependencies": {
18
+ "@modelcontextprotocol/sdk": "^1.25.2",
19
+ "chalk": "^5.4.1",
20
+ "commander": "^13.1.0",
21
+ "conf": "^13.1.0",
22
+ "inquirer": "^12.3.2",
23
+ "jimp": "^1.6.0",
24
+ "marked": "^15.0.7",
25
+ "marked-terminal": "^7.3.0",
26
+ "open": "^10.1.0",
27
+ "ora": "^8.1.1",
28
+ "robotjs": "^0.6.0",
29
+ "screenshot-desktop": "^1.15.3"
30
+ },
31
+ "devDependencies": {
32
+ "@types/node": "^22.10.5",
33
+ "javascript-obfuscator": "^5.1.0",
34
+ "tsx": "^4.19.2",
35
+ "typescript": "^5.7.3"
36
+ },
37
+ "engines": {
38
+ "node": ">=18"
39
+ },
40
+ "keywords": [
41
+ "ai",
42
+ "cli",
43
+ "coding",
44
+ "assistant",
45
+ "woozlit"
46
+ ],
47
+ "author": "Woozlit",
48
+ "license": "MIT"
49
+ }