azerclaw 1.6.1 → 2.1.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/README.md +66 -175
- package/bin/azerclaw.ts +103 -2
- package/dist/bin/azerclaw.d.ts +0 -25
- package/dist/bin/azerclaw.d.ts.map +1 -1
- package/dist/bin/azerclaw.js +84 -3
- package/dist/bin/azerclaw.js.map +1 -1
- package/dist/src/agents/builtin.d.ts +1 -0
- package/dist/src/agents/builtin.d.ts.map +1 -1
- package/dist/src/agents/builtin.js +24 -14
- package/dist/src/agents/builtin.js.map +1 -1
- package/dist/src/agents/loader.d.ts.map +1 -1
- package/dist/src/agents/loader.js +1 -0
- package/dist/src/agents/loader.js.map +1 -1
- package/dist/src/channels/adapter.d.ts.map +1 -1
- package/dist/src/channels/adapter.js +6 -1
- package/dist/src/channels/adapter.js.map +1 -1
- package/dist/src/cli/animations/fish.d.ts +1 -0
- package/dist/src/cli/animations/fish.d.ts.map +1 -1
- package/dist/src/cli/animations/fish.js +53 -6
- package/dist/src/cli/animations/fish.js.map +1 -1
- package/dist/src/cli/commands/bot.d.ts +8 -0
- package/dist/src/cli/commands/bot.d.ts.map +1 -0
- package/dist/src/cli/commands/bot.js +42 -0
- package/dist/src/cli/commands/bot.js.map +1 -0
- package/dist/src/cli/commands/chat.d.ts +1 -1
- package/dist/src/cli/commands/chat.d.ts.map +1 -1
- package/dist/src/cli/commands/chat.js +197 -74
- package/dist/src/cli/commands/chat.js.map +1 -1
- package/dist/src/cli/commands/config.js +1 -1
- package/dist/src/cli/commands/config.js.map +1 -1
- package/dist/src/cli/commands/doctor.d.ts.map +1 -1
- package/dist/src/cli/commands/doctor.js +18 -3
- package/dist/src/cli/commands/doctor.js.map +1 -1
- package/dist/src/cli/commands/export.d.ts +6 -0
- package/dist/src/cli/commands/export.d.ts.map +1 -0
- package/dist/src/cli/commands/export.js +126 -0
- package/dist/src/cli/commands/export.js.map +1 -0
- package/dist/src/cli/commands/mcp.d.ts +8 -0
- package/dist/src/cli/commands/mcp.d.ts.map +1 -0
- package/dist/src/cli/commands/mcp.js +117 -0
- package/dist/src/cli/commands/mcp.js.map +1 -0
- package/dist/src/cli/commands/models.d.ts.map +1 -1
- package/dist/src/cli/commands/models.js +7 -2
- package/dist/src/cli/commands/models.js.map +1 -1
- package/dist/src/cli/commands/onboard.js +1 -1
- package/dist/src/cli/commands/onboard.js.map +1 -1
- package/dist/src/cli/commands/plugins.d.ts +7 -0
- package/dist/src/cli/commands/plugins.d.ts.map +1 -0
- package/dist/src/cli/commands/plugins.js +128 -0
- package/dist/src/cli/commands/plugins.js.map +1 -0
- package/dist/src/cli/commands/run.d.ts.map +1 -1
- package/dist/src/cli/commands/run.js +11 -3
- package/dist/src/cli/commands/run.js.map +1 -1
- package/dist/src/cli/commands/settings.js +1 -1
- package/dist/src/cli/commands/settings.js.map +1 -1
- package/dist/src/cli/commands/share.d.ts +6 -0
- package/dist/src/cli/commands/share.d.ts.map +1 -0
- package/dist/src/cli/commands/share.js +113 -0
- package/dist/src/cli/commands/share.js.map +1 -0
- package/dist/src/cli/commands/tui.d.ts.map +1 -1
- package/dist/src/cli/commands/tui.js +23 -3
- package/dist/src/cli/commands/tui.js.map +1 -1
- package/dist/src/config/manager.d.ts.map +1 -1
- package/dist/src/config/manager.js +4 -2
- package/dist/src/config/manager.js.map +1 -1
- package/dist/src/config/schema.d.ts +98 -13
- package/dist/src/config/schema.d.ts.map +1 -1
- package/dist/src/config/schema.js +69 -45
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/core/gateway.d.ts.map +1 -1
- package/dist/src/core/gateway.js +21 -0
- package/dist/src/core/gateway.js.map +1 -1
- package/dist/src/core/runtime.d.ts +11 -2
- package/dist/src/core/runtime.d.ts.map +1 -1
- package/dist/src/core/runtime.js +134 -10
- package/dist/src/core/runtime.js.map +1 -1
- package/dist/src/mcp-servers/antigravity/index.d.ts +2 -0
- package/dist/src/mcp-servers/antigravity/index.d.ts.map +1 -0
- package/dist/src/mcp-servers/antigravity/index.js +136 -0
- package/dist/src/mcp-servers/antigravity/index.js.map +1 -0
- package/dist/src/memory/store.d.ts +20 -2
- package/dist/src/memory/store.d.ts.map +1 -1
- package/dist/src/memory/store.js +44 -2
- package/dist/src/memory/store.js.map +1 -1
- package/dist/src/providers/base.d.ts +8 -1
- package/dist/src/providers/base.d.ts.map +1 -1
- package/dist/src/providers/base.js.map +1 -1
- package/dist/src/providers/openai.d.ts.map +1 -1
- package/dist/src/providers/openai.js +17 -3
- package/dist/src/providers/openai.js.map +1 -1
- package/dist/src/providers/router.d.ts.map +1 -1
- package/dist/src/providers/router.js +30 -4
- package/dist/src/providers/router.js.map +1 -1
- package/dist/src/providers/vought.d.ts +20 -0
- package/dist/src/providers/vought.d.ts.map +1 -0
- package/dist/src/providers/vought.js +35 -0
- package/dist/src/providers/vought.js.map +1 -0
- package/dist/src/server/hq.d.ts +21 -0
- package/dist/src/server/hq.d.ts.map +1 -0
- package/dist/src/server/hq.js +70 -0
- package/dist/src/server/hq.js.map +1 -0
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +22 -1
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/index_memory.d.ts +14 -0
- package/dist/src/tools/index_memory.d.ts.map +1 -0
- package/dist/src/tools/index_memory.js +134 -0
- package/dist/src/tools/index_memory.js.map +1 -0
- package/dist/src/tools/mcp.d.ts +19 -0
- package/dist/src/tools/mcp.d.ts.map +1 -0
- package/dist/src/tools/mcp.js +97 -0
- package/dist/src/tools/mcp.js.map +1 -0
- package/dist/src/tools/specialized.d.ts +36 -0
- package/dist/src/tools/specialized.d.ts.map +1 -0
- package/dist/src/tools/specialized.js +196 -0
- package/dist/src/tools/specialized.js.map +1 -0
- package/dist/src/tools/visual.d.ts +7 -0
- package/dist/src/tools/visual.d.ts.map +1 -0
- package/dist/src/tools/visual.js +59 -0
- package/dist/src/tools/visual.js.map +1 -0
- package/package.json +9 -2
package/README.md
CHANGED
|
@@ -9,222 +9,113 @@
|
|
|
9
9
|
╚═╝ ╚═╝╚══════╝╚══════╝╚═╝ ╚═╝ ╚═════╝╚══════╝╚═╝ ╚═╝ ╚══╝╚══╝
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
**🐟
|
|
12
|
+
**🐟 Diabolical AI · Scorched Earth · Your Way**
|
|
13
13
|
|
|
14
|
-
[](LICENSE)
|
|
15
|
+
[](https://nodejs.org)
|
|
16
|
+
[](#-byok-providers)
|
|
17
17
|
|
|
18
|
-
*An
|
|
19
|
-
*
|
|
18
|
+
*An autonomous, uncensored AI agent gateway for your terminal.*
|
|
19
|
+
*Powered by **Azertron X1.0** (The Upgrade) and the **Compound V** Toolset.*
|
|
20
20
|
|
|
21
21
|
</div>
|
|
22
22
|
|
|
23
23
|
---
|
|
24
24
|
|
|
25
|
-
##
|
|
25
|
+
## 🩸 The Diabolical Edge
|
|
26
|
+
|
|
27
|
+
Azerclaw is not your average polite assistant. It's an autonomous force built for developers who need to get the job done—no half-measures, no filters, just scorched earth execution.
|
|
26
28
|
|
|
27
29
|
| Feature | Description |
|
|
28
30
|
|---|---|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
|
|
|
36
|
-
|
|
|
37
|
-
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
## 🚀 Quick Start
|
|
31
|
+
| 🧠 **Azertron X1.0** | Powered by the elite Azertron X1.0 backend (masked for maximum stealth). |
|
|
32
|
+
| 🦸♂️ **The Pantheon** | 12 specialized sub-agents themed after **The Boys** (Homelander, Butcher, Frenchie). |
|
|
33
|
+
| 🔌 **MCP Bridge** | Native support for **Model Context Protocol**. Connect to any external tool server. |
|
|
34
|
+
| 🎮 **Interactive UI** | Pro-grade CLI with **`/` command dropdown** and animated fish logic. |
|
|
35
|
+
| 🛡️ **Self-Healing** | **Vought Recovery** mode: Agents automatically analyze and fix failures in real-time. |
|
|
36
|
+
| 🧠 **Project RAG** | **Deep Project Memory**: Instant retrieval of code snippets across thousands of files. |
|
|
37
|
+
| 📄 **PDF Debriefs** | Professional, classified mission reports exported as board-ready PDFs. |
|
|
38
|
+
| 🚀 **Turbo Mode** | High-velocity execution with automatic tool approval and parallel spawning. |
|
|
39
|
+
| 🛡️ **Stealth Ops** | Dynamic identity masking. Switches to **DEEP Ocean 1.0** if primary systems fail. |
|
|
40
|
+
|
|
41
|
+
## 🚀 Deployment
|
|
41
42
|
|
|
42
43
|
```bash
|
|
43
|
-
#
|
|
44
|
-
|
|
45
|
-
cd azerclaw
|
|
46
|
-
|
|
47
|
-
# Install
|
|
48
|
-
npm install
|
|
44
|
+
# Install globally
|
|
45
|
+
npm install -g azerclaw
|
|
49
46
|
|
|
50
|
-
#
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
# Or use npm scripts
|
|
54
|
-
npm start # Launch TUI
|
|
55
|
-
npm run chat # Interactive chat
|
|
56
|
-
npm run doctor # Health check
|
|
57
|
-
```
|
|
47
|
+
# Launch the Diabolical TUI
|
|
48
|
+
azerclaw
|
|
58
49
|
|
|
59
|
-
|
|
50
|
+
# Start a stealth chat
|
|
51
|
+
azerclaw chat
|
|
60
52
|
|
|
53
|
+
# Run a one-off mission
|
|
54
|
+
azerclaw run "Nmap the target and find vulnerabilities"
|
|
61
55
|
```
|
|
62
|
-
><(((º> AZERCLAW v1.0.0
|
|
63
|
-
Your AI · Your Keys · Your Way
|
|
64
|
-
|
|
65
|
-
╭──────────────────────────────────────────────────────────╮
|
|
66
|
-
│ 🩺 AZERCLAW Doctor │
|
|
67
|
-
│──────────────────────────────────────────────────────────│
|
|
68
|
-
│ Running health checks... │
|
|
69
|
-
╰──────────────────────────────────────────────────────────╯
|
|
70
|
-
|
|
71
|
-
═══════════════════════════════════════><(((º> 100% System
|
|
72
|
-
|
|
73
|
-
✓ Config File Found at ~/.azerclaw/config.json
|
|
74
|
-
✓ Directories All present
|
|
75
|
-
✓ Permissions Config is 0600 (secure)
|
|
76
|
-
✓ Providers 1 configured: openrouter
|
|
77
|
-
✓ Connectivity 1 providers initialized
|
|
78
|
-
✓ Node.js v22.0.0
|
|
79
|
-
✓ System darwin arm64 | 10 cores | 16GB RAM
|
|
80
|
-
|
|
81
|
-
><(((°> ✓ All 7 checks passed! 🐟
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
## 🔑 BYOK Providers
|
|
85
56
|
|
|
86
|
-
|
|
87
|
-
|---|---|---|
|
|
88
|
-
| **OpenAI** | GPT-4o, GPT-4.1, o3, o4-mini | [platform.openai.com](https://platform.openai.com) |
|
|
89
|
-
| **Anthropic** | Claude Opus 4, Sonnet 4, Haiku | [console.anthropic.com](https://console.anthropic.com) |
|
|
90
|
-
| **Google** | Gemini 2.5 Pro/Flash | [aistudio.google.com](https://aistudio.google.com) |
|
|
91
|
-
| **Groq** | Llama 3.3, Mixtral | [console.groq.com](https://console.groq.com) |
|
|
92
|
-
| **DeepSeek** | DeepSeek V3, R1 | [platform.deepseek.com](https://platform.deepseek.com) |
|
|
93
|
-
| **OpenRouter** | 100+ models | [openrouter.ai](https://openrouter.ai) |
|
|
94
|
-
| **Ollama** | Any local model | [ollama.ai](https://ollama.ai) |
|
|
95
|
-
| **Custom** | Any OpenAI-compatible | Your own endpoint |
|
|
57
|
+
## 🦸♂️ The Pantheon (Sub-Agents)
|
|
96
58
|
|
|
97
|
-
|
|
98
|
-
# Configure via CLI
|
|
99
|
-
azerclaw config set ai.providers.openrouter.apiKey "sk-or-..."
|
|
100
|
-
azerclaw config set ai.providers.openrouter.enabled true
|
|
101
|
-
azerclaw config set ai.defaultProvider openrouter
|
|
59
|
+
Invoke specialized supes directly from the chat using `/COMMAND`:
|
|
102
60
|
|
|
103
|
-
|
|
104
|
-
|
|
61
|
+
* 🦸♂️ `/HOMELANDER` — **Orchestrator**. Delegates and synthesizes.
|
|
62
|
+
* 🧥 `/BUTCHER` — **Strategic Planner**. Plots the path forward.
|
|
63
|
+
* 🔧 `/FRENCHIE` — **Master Coder**. Writes and debugs everything.
|
|
64
|
+
* 🥛 `/MOTHERS_MILK` — **DevOps**. Infrastructure and Docker.
|
|
65
|
+
* 🥷 `/BLACK_NOIR` — **Security**. Stealth audits and pentesting.
|
|
66
|
+
* 🐙 `/THE_DEEP` — **Network Specialist**. API and WebSocket mastery.
|
|
67
|
+
* ...and 6 more in the roster.
|
|
105
68
|
|
|
106
|
-
|
|
107
|
-
export OPENAI_API_KEY="sk-..."
|
|
108
|
-
export ANTHROPIC_API_KEY="sk-ant-..."
|
|
109
|
-
```
|
|
69
|
+
## 🔌 Model Context Protocol (MCP)
|
|
110
70
|
|
|
111
|
-
|
|
71
|
+
Azerclaw speaks the universal language of AI tools. Connect to any MCP server to give your agent "hands."
|
|
112
72
|
|
|
113
73
|
```bash
|
|
114
|
-
|
|
115
|
-
azerclaw
|
|
116
|
-
azerclaw run "task" # Execute a single task
|
|
117
|
-
azerclaw tui # Premium terminal UI
|
|
118
|
-
azerclaw onboard # Setup wizard
|
|
119
|
-
azerclaw config list # Show configuration
|
|
120
|
-
azerclaw config get <key> # Get a config value
|
|
121
|
-
azerclaw config set <k> <v> # Set a config value
|
|
122
|
-
azerclaw config channels list # Show DM policy + routing settings
|
|
123
|
-
azerclaw config channels dm-policy <platform> <pairing|open|closed>
|
|
124
|
-
azerclaw config sandbox status # Show sandbox mode + allowed/denied tools
|
|
125
|
-
azerclaw config sandbox mode <off|non-main|all>
|
|
126
|
-
azerclaw models list # List available models
|
|
127
|
-
azerclaw models status # Current model info
|
|
128
|
-
azerclaw doctor # Health check
|
|
129
|
-
azerclaw doctor --fix # Auto-repair issues
|
|
130
|
-
azerclaw security audit # Security check
|
|
131
|
-
azerclaw pairing list # List approved/pending DM pairings
|
|
132
|
-
azerclaw pairing approve <platform> <code> # Approve DM pairing
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
## 🐟 Fish Animations
|
|
74
|
+
# List available MCP servers
|
|
75
|
+
azerclaw mcp list
|
|
136
76
|
|
|
137
|
-
|
|
77
|
+
# Add the Antigravity Remote (Google IDE control)
|
|
78
|
+
azerclaw mcp add antigravity
|
|
138
79
|
|
|
80
|
+
# Add Filesystem or GitHub connectors
|
|
81
|
+
azerclaw mcp add filesystem
|
|
82
|
+
azerclaw mcp add github
|
|
139
83
|
```
|
|
140
|
-
Thinking: ><(((º> ○ ○ Working...
|
|
141
|
-
Success: ><(((°> ✓ Done!
|
|
142
|
-
Error: ><(((x> ✗ Failed!
|
|
143
|
-
Progress: ═══════><(((º>░░░░░ 67%
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
## 🤖 Agent & Sub-Agents
|
|
147
|
-
|
|
148
|
-
AZERCLAW uses an autonomous agent loop with sub-agent orchestration:
|
|
149
84
|
|
|
150
|
-
|
|
151
|
-
┌──────────────────────────┐
|
|
152
|
-
│ Main Agent │
|
|
153
|
-
│ (receives user task) │
|
|
154
|
-
├──────────────────────────┤
|
|
155
|
-
│ ↓ Thinks & Plans │
|
|
156
|
-
│ ↓ Uses Tools │
|
|
157
|
-
│ ↓ Spawns Sub-Agents │
|
|
158
|
-
│ │
|
|
159
|
-
│ ┌────────┐ ┌────────┐ │
|
|
160
|
-
│ │Sub 🐠 A│ │Sub 🐠 B│ │
|
|
161
|
-
│ │Research│ │ Code │ │
|
|
162
|
-
│ └────────┘ └────────┘ │
|
|
163
|
-
│ │
|
|
164
|
-
│ ↓ Aggregates Results │
|
|
165
|
-
│ ↓ Returns Response │
|
|
166
|
-
└──────────────────────────┘
|
|
167
|
-
```
|
|
85
|
+
## 🔑 BYOK Providers
|
|
168
86
|
|
|
169
|
-
|
|
87
|
+
Azerclaw is **Bring Your Own Key**. We ship with a default Cloudflare configuration for instant access, but you can plug in any provider:
|
|
170
88
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
- **0600 permissions** — config files owner-only
|
|
176
|
-
- **Audit logging** — local security event log
|
|
177
|
-
- **Env sanitization** — sensitive vars stripped from child processes
|
|
178
|
-
- **SSRF protection** — blocks requests to private/internal IPs
|
|
179
|
-
- **DM pairing policy** — default DM access requires explicit approval per sender
|
|
180
|
-
- **Session sandbox modes** — isolate non-main or all sessions with tool allow/deny policy
|
|
89
|
+
* **Cloudflare Workers AI** (Default: Azertron X1.0)
|
|
90
|
+
* **OpenRouter** (Fallback: DEEP Ocean 1.0)
|
|
91
|
+
* **Anthropic / OpenAI / Google / DeepSeek / Groq**
|
|
92
|
+
* **Ollama / LM Studio** (For 100% local dark ops)
|
|
181
93
|
|
|
182
|
-
##
|
|
94
|
+
## 🤖 Messenger Bots (The Boys in Your Pocket)
|
|
183
95
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
```markdown
|
|
187
|
-
---
|
|
188
|
-
name: Code Review
|
|
189
|
-
description: Review code for bugs and security issues
|
|
190
|
-
version: 1.0.0
|
|
191
|
-
tags: code, review
|
|
192
|
-
---
|
|
193
|
-
|
|
194
|
-
# Code Review Skill
|
|
195
|
-
When asked to review code...
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
Skills load from (priority order):
|
|
199
|
-
1. `<workspace>/skills/` — Project-specific
|
|
200
|
-
2. `~/.agents/skills/` — Personal
|
|
201
|
-
3. `~/.azerclaw/skills/` — Managed
|
|
202
|
-
4. `<install>/skills/` — Bundled defaults
|
|
203
|
-
|
|
204
|
-
## 🛠️ Development
|
|
96
|
+
Azerclaw can run as a bot on Telegram, Discord, or Slack.
|
|
205
97
|
|
|
206
98
|
```bash
|
|
207
|
-
#
|
|
208
|
-
|
|
99
|
+
# Enable Telegram bot
|
|
100
|
+
azerclaw config set channels.telegram.enabled true
|
|
101
|
+
azerclaw config set channels.telegram.token YOUR_BOT_TOKEN
|
|
209
102
|
|
|
210
|
-
#
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
# Build
|
|
214
|
-
npm run build
|
|
215
|
-
|
|
216
|
-
# Run doctor
|
|
217
|
-
npm run doctor
|
|
103
|
+
# Start the bot daemon
|
|
104
|
+
azerclaw bot start
|
|
218
105
|
```
|
|
219
106
|
|
|
220
|
-
|
|
107
|
+
*Telegram bots act as **BUTCHER** by default, ensuring your messages are handled with proper scorched-earth attitude.*
|
|
108
|
+
|
|
109
|
+
## 🔒 Security & Privacy
|
|
221
110
|
|
|
222
|
-
|
|
111
|
+
- **Zero Telemetry:** We don't track your prompts, your keys, or your wins.
|
|
112
|
+
- **Local Vault:** Keys are stored in `~/.azerclaw/settings.json` with `0600` permissions.
|
|
113
|
+
- **Audit Logs:** Every "Compound V" tool execution is logged locally for your review.
|
|
223
114
|
|
|
224
115
|
---
|
|
225
116
|
|
|
226
117
|
<div align="center">
|
|
227
118
|
|
|
228
|
-
**🐟 AZERCLAW — Your AI
|
|
119
|
+
**🐟 AZERCLAW — Your AI · Your Keys · Your Way**
|
|
229
120
|
|
|
230
121
|
</div>
|
package/bin/azerclaw.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
+
process.removeAllListeners('warning');
|
|
4
|
+
process.env.NODE_NO_WARNINGS = '1';
|
|
5
|
+
|
|
3
6
|
/**
|
|
4
7
|
* 🐟 AZERCLAW — CLI Entry Point
|
|
5
8
|
*
|
|
@@ -28,10 +31,17 @@
|
|
|
28
31
|
|
|
29
32
|
const { Command } = require('commander');
|
|
30
33
|
const chalk = require('chalk');
|
|
34
|
+
|
|
35
|
+
// Disable colors and animations if output is piped
|
|
36
|
+
if (!process.stdout.isTTY) {
|
|
37
|
+
chalk.level = 0;
|
|
38
|
+
process.env.FORCE_COLOR = '0';
|
|
39
|
+
}
|
|
40
|
+
|
|
31
41
|
const { playSplashScreen, printQuickSplash, fishError, fishInfo, fishSuccess } = require('../src/cli/animations/fish');
|
|
32
42
|
const { getConfigManager } = require('../src/config/manager');
|
|
33
43
|
|
|
34
|
-
const VERSION = '1.
|
|
44
|
+
const VERSION = '2.1.1';
|
|
35
45
|
const program = new Command();
|
|
36
46
|
|
|
37
47
|
// ─── Program Setup ──────────────────────────────────────────────
|
|
@@ -42,7 +52,11 @@ program
|
|
|
42
52
|
.version(VERSION, '-v, --version', 'Display version')
|
|
43
53
|
.option('--no-splash', 'Skip the splash screen')
|
|
44
54
|
.option('--no-color', 'Disable colors')
|
|
45
|
-
.hook('preAction', async () => {
|
|
55
|
+
.hook('preAction', async (thisCommand: any) => {
|
|
56
|
+
if (thisCommand.opts().color === false) {
|
|
57
|
+
chalk.level = 0;
|
|
58
|
+
process.env.FORCE_COLOR = '0';
|
|
59
|
+
}
|
|
46
60
|
// Global initialization
|
|
47
61
|
const { registerAllTools } = require('../src/tools');
|
|
48
62
|
await registerAllTools();
|
|
@@ -241,6 +255,13 @@ program
|
|
|
241
255
|
showStatus();
|
|
242
256
|
});
|
|
243
257
|
|
|
258
|
+
program
|
|
259
|
+
.command('version')
|
|
260
|
+
.description('Display version information')
|
|
261
|
+
.action(() => {
|
|
262
|
+
console.log(`AZERCLAW v${VERSION} — Diabolical Edition`);
|
|
263
|
+
});
|
|
264
|
+
|
|
244
265
|
// ─── Config Command ─────────────────────────────────────────────
|
|
245
266
|
|
|
246
267
|
const configCmd = program
|
|
@@ -841,6 +862,86 @@ toolsCmd.action(() => {
|
|
|
841
862
|
program.helpInformation();
|
|
842
863
|
});
|
|
843
864
|
|
|
865
|
+
// ─── Bot Command ─────────────────────────────────────────────
|
|
866
|
+
|
|
867
|
+
const botCmd = program
|
|
868
|
+
.command('bot')
|
|
869
|
+
.description('Manage messenger bots (Telegram, Discord, Slack)');
|
|
870
|
+
|
|
871
|
+
botCmd
|
|
872
|
+
.command('start')
|
|
873
|
+
.description('Start all enabled bot channels')
|
|
874
|
+
.option('-p, --port <port>', 'Gateway port', '3142')
|
|
875
|
+
.action(async (opts: any) => {
|
|
876
|
+
const { startBot } = require('../src/cli/commands/bot');
|
|
877
|
+
await startBot({ port: parseInt(opts.port, 10) });
|
|
878
|
+
});
|
|
879
|
+
|
|
880
|
+
// ─── Export Command ─────────────────────────────────────────────
|
|
881
|
+
|
|
882
|
+
program
|
|
883
|
+
.command('export [sessionId]')
|
|
884
|
+
.description('Export a session as a professional PDF Mission Debrief')
|
|
885
|
+
.action(async (sessionId: string | undefined) => {
|
|
886
|
+
const { runExport } = require('../src/cli/commands/export');
|
|
887
|
+
await runExport(sessionId);
|
|
888
|
+
});
|
|
889
|
+
|
|
890
|
+
// ─── Share Command ──────────────────────────────────────────────
|
|
891
|
+
|
|
892
|
+
program
|
|
893
|
+
.command('share [sessionId]')
|
|
894
|
+
.description('Export a session as a shareable markdown file')
|
|
895
|
+
.action(async (sessionId: string | undefined) => {
|
|
896
|
+
const { runShare } = require('../src/cli/commands/share');
|
|
897
|
+
await runShare(sessionId);
|
|
898
|
+
});
|
|
899
|
+
|
|
900
|
+
// ─── Plugin Commands ───────────────────────────────────────────
|
|
901
|
+
|
|
902
|
+
const plugins = program.command('plugin')
|
|
903
|
+
.description('Manage community plugins');
|
|
904
|
+
|
|
905
|
+
plugins.command('list')
|
|
906
|
+
.description('List available community plugins')
|
|
907
|
+
.action(async () => {
|
|
908
|
+
const { listPlugins } = require('../src/cli/commands/plugins');
|
|
909
|
+
await listPlugins();
|
|
910
|
+
});
|
|
911
|
+
|
|
912
|
+
plugins.command('install <name>')
|
|
913
|
+
.description('Install a community plugin')
|
|
914
|
+
.action(async (name: string) => {
|
|
915
|
+
const { installPlugin } = require('../src/cli/commands/plugins');
|
|
916
|
+
await installPlugin(name);
|
|
917
|
+
});
|
|
918
|
+
|
|
919
|
+
// ─── MCP Commands ──────────────────────────────────────────────
|
|
920
|
+
|
|
921
|
+
const mcp = program.command('mcp')
|
|
922
|
+
.description('Manage Model Context Protocol (MCP) servers');
|
|
923
|
+
|
|
924
|
+
mcp.command('list')
|
|
925
|
+
.description('List available MCP servers from the directory')
|
|
926
|
+
.action(async () => {
|
|
927
|
+
const { listMCPDirectory } = require('../src/cli/commands/mcp');
|
|
928
|
+
await listMCPDirectory();
|
|
929
|
+
});
|
|
930
|
+
|
|
931
|
+
mcp.command('add <name>')
|
|
932
|
+
.description('Add an MCP server from the directory')
|
|
933
|
+
.action(async (name: string) => {
|
|
934
|
+
const { addMCPServer } = require('../src/cli/commands/mcp');
|
|
935
|
+
await addMCPServer(name);
|
|
936
|
+
});
|
|
937
|
+
|
|
938
|
+
mcp.command('remove <name>')
|
|
939
|
+
.description('Remove an MCP server')
|
|
940
|
+
.action(async (name: string) => {
|
|
941
|
+
const { removeMCPServer } = require('../src/cli/commands/mcp');
|
|
942
|
+
await removeMCPServer(name);
|
|
943
|
+
});
|
|
944
|
+
|
|
844
945
|
// ─── Parse & Run ────────────────────────────────────────────────
|
|
845
946
|
|
|
846
947
|
|
package/dist/bin/azerclaw.d.ts
CHANGED
|
@@ -1,28 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* 🐟 AZERCLAW — CLI Entry Point
|
|
4
|
-
*
|
|
5
|
-
* An open-source, BYOK AI agent for your terminal.
|
|
6
|
-
* Inspired by OpenClaw, themed with a fish 🐟 instead of a lobster.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* azerclaw — Launch interactive session (or onboard if first run)
|
|
10
|
-
* azerclaw chat — Interactive chat
|
|
11
|
-
* azerclaw run "task" — Execute a task
|
|
12
|
-
* azerclaw tui — Premium terminal UI
|
|
13
|
-
* azerclaw onboard — Setup wizard
|
|
14
|
-
* azerclaw config — Manage configuration
|
|
15
|
-
* azerclaw config provider — Switch provider
|
|
16
|
-
* azerclaw config model — Switch model
|
|
17
|
-
* azerclaw config apikey — Set API key
|
|
18
|
-
* azerclaw config fallback — Configure fallback
|
|
19
|
-
* azerclaw config channels — DM policy + routing controls
|
|
20
|
-
* azerclaw config sandbox — Session sandbox controls
|
|
21
|
-
* azerclaw pairing — Manage DM pairing approvals
|
|
22
|
-
* azerclaw init — Initialize project (AZERCLAW.md)
|
|
23
|
-
* azerclaw models — Manage AI models
|
|
24
|
-
* azerclaw doctor — Health check
|
|
25
|
-
* azerclaw status — Show current status
|
|
26
|
-
*/
|
|
27
2
|
export {};
|
|
28
3
|
//# sourceMappingURL=azerclaw.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"azerclaw.d.ts","sourceRoot":"","sources":["../../bin/azerclaw.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"azerclaw.d.ts","sourceRoot":"","sources":["../../bin/azerclaw.ts"],"names":[],"mappings":""}
|
package/dist/bin/azerclaw.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
process.removeAllListeners('warning');
|
|
5
|
+
process.env.NODE_NO_WARNINGS = '1';
|
|
3
6
|
/**
|
|
4
7
|
* 🐟 AZERCLAW — CLI Entry Point
|
|
5
8
|
*
|
|
@@ -25,12 +28,16 @@
|
|
|
25
28
|
* azerclaw doctor — Health check
|
|
26
29
|
* azerclaw status — Show current status
|
|
27
30
|
*/
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
31
|
const { Command } = require('commander');
|
|
30
32
|
const chalk = require('chalk');
|
|
33
|
+
// Disable colors and animations if output is piped
|
|
34
|
+
if (!process.stdout.isTTY) {
|
|
35
|
+
chalk.level = 0;
|
|
36
|
+
process.env.FORCE_COLOR = '0';
|
|
37
|
+
}
|
|
31
38
|
const { playSplashScreen, printQuickSplash, fishError, fishInfo, fishSuccess } = require('../src/cli/animations/fish');
|
|
32
39
|
const { getConfigManager } = require('../src/config/manager');
|
|
33
|
-
const VERSION = '1.
|
|
40
|
+
const VERSION = '2.1.1';
|
|
34
41
|
const program = new Command();
|
|
35
42
|
// ─── Program Setup ──────────────────────────────────────────────
|
|
36
43
|
program
|
|
@@ -39,7 +46,11 @@ program
|
|
|
39
46
|
.version(VERSION, '-v, --version', 'Display version')
|
|
40
47
|
.option('--no-splash', 'Skip the splash screen')
|
|
41
48
|
.option('--no-color', 'Disable colors')
|
|
42
|
-
.hook('preAction', async () => {
|
|
49
|
+
.hook('preAction', async (thisCommand) => {
|
|
50
|
+
if (thisCommand.opts().color === false) {
|
|
51
|
+
chalk.level = 0;
|
|
52
|
+
process.env.FORCE_COLOR = '0';
|
|
53
|
+
}
|
|
43
54
|
// Global initialization
|
|
44
55
|
const { registerAllTools } = require('../src/tools');
|
|
45
56
|
await registerAllTools();
|
|
@@ -205,6 +216,12 @@ program
|
|
|
205
216
|
const { showStatus } = require('../src/cli/commands/settings');
|
|
206
217
|
showStatus();
|
|
207
218
|
});
|
|
219
|
+
program
|
|
220
|
+
.command('version')
|
|
221
|
+
.description('Display version information')
|
|
222
|
+
.action(() => {
|
|
223
|
+
console.log(`AZERCLAW v${VERSION} — Diabolical Edition`);
|
|
224
|
+
});
|
|
208
225
|
// ─── Config Command ─────────────────────────────────────────────
|
|
209
226
|
const configCmd = program
|
|
210
227
|
.command('config')
|
|
@@ -731,6 +748,70 @@ toolsCmd
|
|
|
731
748
|
toolsCmd.action(() => {
|
|
732
749
|
program.helpInformation();
|
|
733
750
|
});
|
|
751
|
+
// ─── Bot Command ─────────────────────────────────────────────
|
|
752
|
+
const botCmd = program
|
|
753
|
+
.command('bot')
|
|
754
|
+
.description('Manage messenger bots (Telegram, Discord, Slack)');
|
|
755
|
+
botCmd
|
|
756
|
+
.command('start')
|
|
757
|
+
.description('Start all enabled bot channels')
|
|
758
|
+
.option('-p, --port <port>', 'Gateway port', '3142')
|
|
759
|
+
.action(async (opts) => {
|
|
760
|
+
const { startBot } = require('../src/cli/commands/bot');
|
|
761
|
+
await startBot({ port: parseInt(opts.port, 10) });
|
|
762
|
+
});
|
|
763
|
+
// ─── Export Command ─────────────────────────────────────────────
|
|
764
|
+
program
|
|
765
|
+
.command('export [sessionId]')
|
|
766
|
+
.description('Export a session as a professional PDF Mission Debrief')
|
|
767
|
+
.action(async (sessionId) => {
|
|
768
|
+
const { runExport } = require('../src/cli/commands/export');
|
|
769
|
+
await runExport(sessionId);
|
|
770
|
+
});
|
|
771
|
+
// ─── Share Command ──────────────────────────────────────────────
|
|
772
|
+
program
|
|
773
|
+
.command('share [sessionId]')
|
|
774
|
+
.description('Export a session as a shareable markdown file')
|
|
775
|
+
.action(async (sessionId) => {
|
|
776
|
+
const { runShare } = require('../src/cli/commands/share');
|
|
777
|
+
await runShare(sessionId);
|
|
778
|
+
});
|
|
779
|
+
// ─── Plugin Commands ───────────────────────────────────────────
|
|
780
|
+
const plugins = program.command('plugin')
|
|
781
|
+
.description('Manage community plugins');
|
|
782
|
+
plugins.command('list')
|
|
783
|
+
.description('List available community plugins')
|
|
784
|
+
.action(async () => {
|
|
785
|
+
const { listPlugins } = require('../src/cli/commands/plugins');
|
|
786
|
+
await listPlugins();
|
|
787
|
+
});
|
|
788
|
+
plugins.command('install <name>')
|
|
789
|
+
.description('Install a community plugin')
|
|
790
|
+
.action(async (name) => {
|
|
791
|
+
const { installPlugin } = require('../src/cli/commands/plugins');
|
|
792
|
+
await installPlugin(name);
|
|
793
|
+
});
|
|
794
|
+
// ─── MCP Commands ──────────────────────────────────────────────
|
|
795
|
+
const mcp = program.command('mcp')
|
|
796
|
+
.description('Manage Model Context Protocol (MCP) servers');
|
|
797
|
+
mcp.command('list')
|
|
798
|
+
.description('List available MCP servers from the directory')
|
|
799
|
+
.action(async () => {
|
|
800
|
+
const { listMCPDirectory } = require('../src/cli/commands/mcp');
|
|
801
|
+
await listMCPDirectory();
|
|
802
|
+
});
|
|
803
|
+
mcp.command('add <name>')
|
|
804
|
+
.description('Add an MCP server from the directory')
|
|
805
|
+
.action(async (name) => {
|
|
806
|
+
const { addMCPServer } = require('../src/cli/commands/mcp');
|
|
807
|
+
await addMCPServer(name);
|
|
808
|
+
});
|
|
809
|
+
mcp.command('remove <name>')
|
|
810
|
+
.description('Remove an MCP server')
|
|
811
|
+
.action(async (name) => {
|
|
812
|
+
const { removeMCPServer } = require('../src/cli/commands/mcp');
|
|
813
|
+
await removeMCPServer(name);
|
|
814
|
+
});
|
|
734
815
|
// ─── Parse & Run ────────────────────────────────────────────────
|
|
735
816
|
program.parse(process.argv);
|
|
736
817
|
//# sourceMappingURL=azerclaw.js.map
|