@defai.digital/ax-cli 3.8.21 → 3.8.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/README.md +275 -1287
  2. package/dist/agent/core/index.d.ts +8 -0
  3. package/dist/agent/core/index.js +9 -0
  4. package/dist/agent/core/index.js.map +1 -0
  5. package/dist/agent/core/types.d.ts +92 -0
  6. package/dist/agent/core/types.js +11 -0
  7. package/dist/agent/core/types.js.map +1 -0
  8. package/dist/agent/execution/index.d.ts +9 -0
  9. package/dist/agent/execution/index.js +9 -0
  10. package/dist/agent/execution/index.js.map +1 -0
  11. package/dist/agent/execution/tool-executor.d.ts +79 -0
  12. package/dist/agent/execution/tool-executor.js +281 -0
  13. package/dist/agent/execution/tool-executor.js.map +1 -0
  14. package/dist/agent/llm-agent.d.ts +22 -98
  15. package/dist/agent/llm-agent.js +169 -712
  16. package/dist/agent/llm-agent.js.map +1 -1
  17. package/dist/agent/planning/index.d.ts +9 -0
  18. package/dist/agent/planning/index.js +9 -0
  19. package/dist/agent/planning/index.js.map +1 -0
  20. package/dist/agent/planning/plan-executor.d.ts +84 -0
  21. package/dist/agent/planning/plan-executor.js +223 -0
  22. package/dist/agent/planning/plan-executor.js.map +1 -0
  23. package/dist/agent/streaming/index.d.ts +9 -0
  24. package/dist/agent/streaming/index.js +9 -0
  25. package/dist/agent/streaming/index.js.map +1 -0
  26. package/dist/agent/streaming/stream-handler.d.ts +62 -0
  27. package/dist/agent/streaming/stream-handler.js +193 -0
  28. package/dist/agent/streaming/stream-handler.js.map +1 -0
  29. package/dist/agent/subagent-orchestrator.d.ts +3 -3
  30. package/dist/agent/subagent-orchestrator.js +1 -0
  31. package/dist/agent/subagent-orchestrator.js.map +1 -1
  32. package/dist/agent/subagent-types.d.ts +10 -22
  33. package/dist/agent/subagent-types.js +19 -0
  34. package/dist/agent/subagent-types.js.map +1 -1
  35. package/dist/index.js +9 -7
  36. package/dist/index.js.map +1 -1
  37. package/dist/llm/client.d.ts +33 -1
  38. package/dist/llm/client.js +15 -11
  39. package/dist/llm/client.js.map +1 -1
  40. package/dist/llm/types.d.ts +7 -1
  41. package/dist/llm/types.js +5 -4
  42. package/dist/llm/types.js.map +1 -1
  43. package/dist/mcp/index.d.ts +31 -0
  44. package/dist/mcp/index.js +36 -0
  45. package/dist/mcp/index.js.map +1 -0
  46. package/dist/planner/types.d.ts +8 -8
  47. package/dist/schemas/index.d.ts +4 -4
  48. package/dist/schemas/tool-schemas.d.ts +12 -12
  49. package/dist/tools/bash.js +1 -1
  50. package/dist/tools/bash.js.map +1 -1
  51. package/dist/tools/text-editor.js +57 -63
  52. package/dist/tools/text-editor.js.map +1 -1
  53. package/dist/ui/hooks/use-enhanced-input.js +66 -81
  54. package/dist/ui/hooks/use-enhanced-input.js.map +1 -1
  55. package/dist/utils/background-task-manager.js +10 -2
  56. package/dist/utils/background-task-manager.js.map +1 -1
  57. package/dist/utils/confirmation-service.js +8 -5
  58. package/dist/utils/confirmation-service.js.map +1 -1
  59. package/dist/utils/index.d.ts +85 -6
  60. package/dist/utils/index.js +103 -15
  61. package/dist/utils/index.js.map +1 -1
  62. package/dist/utils/retry-helper.d.ts +7 -6
  63. package/dist/utils/retry-helper.js +8 -6
  64. package/dist/utils/retry-helper.js.map +1 -1
  65. package/dist/utils/settings-manager.d.ts +6 -0
  66. package/dist/utils/settings-manager.js +51 -64
  67. package/dist/utils/settings-manager.js.map +1 -1
  68. package/node_modules/@ax-cli/schemas/dist/index.d.ts +1 -0
  69. package/node_modules/@ax-cli/schemas/dist/index.d.ts.map +1 -1
  70. package/node_modules/@ax-cli/schemas/dist/index.js.map +1 -1
  71. package/node_modules/@ax-cli/schemas/dist/public/agent/chat-types.d.ts +164 -0
  72. package/node_modules/@ax-cli/schemas/dist/public/agent/chat-types.d.ts.map +1 -0
  73. package/node_modules/@ax-cli/schemas/dist/public/agent/chat-types.js +10 -0
  74. package/node_modules/@ax-cli/schemas/dist/public/agent/chat-types.js.map +1 -0
  75. package/node_modules/@ax-cli/schemas/dist/public/agent/index.d.ts +9 -0
  76. package/node_modules/@ax-cli/schemas/dist/public/agent/index.d.ts.map +1 -0
  77. package/node_modules/@ax-cli/schemas/dist/public/agent/index.js +9 -0
  78. package/node_modules/@ax-cli/schemas/dist/public/agent/index.js.map +1 -0
  79. package/package.json +1 -1
  80. package/packages/schemas/dist/index.d.ts +1 -0
  81. package/packages/schemas/dist/index.d.ts.map +1 -1
  82. package/packages/schemas/dist/index.js.map +1 -1
  83. package/packages/schemas/dist/public/agent/chat-types.d.ts +164 -0
  84. package/packages/schemas/dist/public/agent/chat-types.d.ts.map +1 -0
  85. package/packages/schemas/dist/public/agent/chat-types.js +10 -0
  86. package/packages/schemas/dist/public/agent/chat-types.js.map +1 -0
  87. package/packages/schemas/dist/public/agent/index.d.ts +9 -0
  88. package/packages/schemas/dist/public/agent/index.d.ts.map +1 -0
  89. package/packages/schemas/dist/public/agent/index.js +9 -0
  90. package/packages/schemas/dist/public/agent/index.js.map +1 -0
  91. package/dist/mcp/config-detector-v2.d.ts +0 -83
  92. package/dist/mcp/config-detector-v2.js +0 -328
  93. package/dist/mcp/config-detector-v2.js.map +0 -1
  94. package/dist/mcp/config-migrator-v2.d.ts +0 -89
  95. package/dist/mcp/config-migrator-v2.js +0 -288
  96. package/dist/mcp/config-migrator-v2.js.map +0 -1
  97. package/dist/mcp/config-v2.d.ts +0 -111
  98. package/dist/mcp/config-v2.js +0 -443
  99. package/dist/mcp/config-v2.js.map +0 -1
  100. package/dist/mcp/transports-v2.d.ts +0 -152
  101. package/dist/mcp/transports-v2.js +0 -481
  102. package/dist/mcp/transports-v2.js.map +0 -1
  103. package/dist/utils/error-sanitizer.d.ts +0 -119
  104. package/dist/utils/error-sanitizer.js +0 -253
  105. package/dist/utils/error-sanitizer.js.map +0 -1
  106. package/dist/utils/errors.d.ts +0 -74
  107. package/dist/utils/errors.js +0 -139
  108. package/dist/utils/errors.js.map +0 -1
  109. package/dist/utils/incremental-analyzer.d.ts +0 -134
  110. package/dist/utils/incremental-analyzer.js +0 -377
  111. package/dist/utils/incremental-analyzer.js.map +0 -1
  112. package/dist/utils/settings.d.ts +0 -1
  113. package/dist/utils/settings.js +0 -4
  114. package/dist/utils/settings.js.map +0 -1
  115. package/dist/utils/streaming-analyzer.d.ts +0 -160
  116. package/dist/utils/streaming-analyzer.js +0 -214
  117. package/dist/utils/streaming-analyzer.js.map +0 -1
package/README.md CHANGED
@@ -1,842 +1,159 @@
1
- # AX CLI - Enterprise-Class CLI for GenAI coding
1
+ # AX CLI - Enterprise-Class CLI for GenAI Coding
2
2
 
3
3
  [![npm](https://img.shields.io/npm/dt/@defai.digital/ax-cli?style=flat-square&logo=npm&label=downloads)](https://npm-stat.com/charts.html?package=%40defai.digital%2Fax-cli)
4
- [![Tests](https://img.shields.io/badge/tests-1517%20passing-brightgreen?style=flat-square)](https://github.com/defai-digital/ax-cli/actions/workflows/test.yml)
4
+ [![Tests](https://img.shields.io/badge/tests-2083%20passing-brightgreen?style=flat-square)](https://github.com/defai-digital/ax-cli/actions/workflows/test.yml)
5
5
  [![Coverage](https://img.shields.io/badge/coverage-98%2B%25-brightgreen?style=flat-square)](https://github.com/defai-digital/ax-cli)
6
6
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.9%2B-blue?style=flat-square&logo=typescript)](https://www.typescriptlang.org/)
7
- [![Node.js Version](https://img.shields.io/badge/node-%3E%3D24.0.0-blue?style=flat-square)](https://nodejs.org/)
7
+ [![Node.js](https://img.shields.io/badge/node-%3E%3D24.0.0-blue?style=flat-square&logo=node.js)](https://nodejs.org/)
8
8
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)
9
- [![macOS](https://img.shields.io/badge/macOS-26-blue?style=flat-square&logo=apple)](https://www.apple.com/macos/)
10
- [![Windows](https://img.shields.io/badge/Windows-11-blue?style=flat-square&logo=windows)](https://www.microsoft.com/windows/)
11
- [![Ubuntu](https://img.shields.io/badge/Ubuntu-24.04-blue?style=flat-square&logo=ubuntu)](https://ubuntu.com/)
12
9
 
13
- ![AX CLI Screenshot](.github/assets/screenshot1.png)
10
+ <p align="center">
11
+ <img src=".github/assets/screenshot1.png" alt="AX CLI Screenshot" width="800"/>
12
+ </p>
14
13
 
15
14
  <p align="center">
16
15
  <strong>GLM-Optimized CLI • Enterprise Architecture • 98%+ Test Coverage • TypeScript & Zod</strong>
17
16
  </p>
18
17
 
19
- ## 📋 Table of Contents
20
-
21
- - [🚀 Quick Start](#-quick-start)
22
- - [✨ Features](#-features)
23
- - [🎉 What's New](#-whats-new-in-v3821)
24
- - [📦 Installation](#-installation)
25
- - [⚙️ Configuration](#️-configuration)
26
- - [🔒 Security](#-security--api-key-handling)
27
- - [🎯 Usage Examples](#-usage-examples)
28
- - [🔌 MCP Integration](#-mcp-model-context-protocol)
29
- - [🧠 Project Memory](#-project-memory)
30
- - [🎯 Multi-Phase Planner](#-multi-phase-task-planner-v300)
31
- - [🏗️ Architecture](#️-architecture)
32
- - [📚 Documentation](#-documentation)
33
- - [📋 Changelog](#-changelog)
34
-
35
18
  ---
36
19
 
37
- ## 🚀 Quick Start
38
-
39
- Get up and running in under 2 minutes:
20
+ ## Quick Start
40
21
 
41
22
  ```bash
42
- # 1️⃣ Install globally
23
+ # Install globally
43
24
  npm install -g @defai.digital/ax-cli
44
25
 
45
- # 2️⃣ Configure (secure API key setup)
26
+ # Configure (secure API key setup)
46
27
  ax-cli setup
47
28
 
48
- # 3️⃣ Initialize your project
29
+ # Initialize your project
49
30
  ax-cli init
50
31
 
51
- # 4️⃣ Start coding!
32
+ # Start coding!
52
33
  ax-cli
53
34
  ```
54
35
 
55
- **That's it!** 🎉 AX CLI is now ready to help you build, debug, and ship code faster.
56
-
57
- **Need help?** Run `ax-cli --help` or check the [Usage Guide](#-usage-examples).
58
-
59
- ## ✨ Features
60
-
61
- - **🤖 GLM-Focused AI CLI**: Optimized for Z.AI's GLM-4.6 (default, configurable)
62
- - **Note**: For xAI Grok models, use [grok-cli](https://github.com/superagent-ai/grok-cli)
63
- - **Note**: For Anthropic Claude models, use [claude-code](https://claude.ai/code)
64
- - **🧠 GLM 4.6 Optimized**: Primary support for General Language Model with advanced reasoning
65
- - **32K max tokens** (industry-standard, matches Claude Code CLI)
66
- - 200K context window, 128K max output capability
67
- - 30% more token efficient than GLM 4.5
68
- - Optimized for complex code generation and refactoring
69
- - **🎯 Multi-Phase Task Planner**: Intelligent task decomposition for complex requests
70
- - Automatic complexity detection (57 keyword patterns)
71
- - LLM-based plan generation with phases and dependencies
72
- - Phase-by-phase execution with progress tracking
73
- - File modification tracking and context pruning between phases
74
- - Plan management commands: `/plans`, `/plan`, `/phases`, `/pause`, `/resume`, `/skip`, `/abandon`
75
- - **🔄 Session Continuity**: Directory-specific conversation history with `--continue` flag
76
- - Preserve context across sessions for multi-day development
77
- - Each project maintains its own independent history
78
- - Seamlessly resume conversations where you left off
79
- - **🔌 Enhanced MCP Integration**: Model Context Protocol with production-ready templates
80
- - **One-command setup**: `ax-cli mcp add figma --template`
81
- - **12+ pre-configured templates**: Figma, GitHub, Vercel, Puppeteer, Storybook, Sentry, and more
82
- - **Tool discovery**: `ax-cli mcp tools <server>` to preview capabilities
83
- - **Template browser**: `ax-cli mcp browse` for quick navigation
84
- - **Front-end focused**: Design-to-code workflows with Figma integration
85
- - **[Complete Guide](docs/mcp-frontend-guide.md)**: Front-end developer workflows
86
- - **✅ Production-Ready**: 98%+ test coverage, TypeScript strict mode, Zod validation
87
- - **🎯 Interactive & Headless**: Chat interface or one-shot commands
88
- - **📝 Smart Project Init**: Automatic project analysis and custom instructions
89
- - **🧠 Project Memory**: Intelligent context caching for z.ai GLM-4.6
90
- - Automatic project scanning and context generation
91
- - z.ai implicit caching support (50% token savings on repeated context)
92
- - Cache statistics tracking and efficiency monitoring
93
- - **🏥 Health Check**: Comprehensive diagnostics with `ax-cli doctor`
94
- - Verify configuration, API connectivity, and dependencies
95
- - Detailed error messages with actionable suggestions
96
- - **🎨 Smart Verbosity Control**: Multi-level output for optimal UX
97
- - **Quiet mode** (default): Groups tool operations → 85% less noise
98
- - **Concise mode**: One line per tool execution
99
- - **Verbose mode**: Full details for debugging
100
- - Press `Ctrl+O` to cycle between levels
101
- - Auto-expands errors with full details
102
- - **🔄 Auto-Update**: Built-in update checker and installer
103
- - **🔒 Enterprise-Grade Security**: **FREE & Open Source**
104
- - **Command Injection Protection**: CVSS 9.8 CRITICAL fix - Safe command execution with whitelisting
105
- - **Path Traversal Hardening**: CVSS 8.6 HIGH fix - Prevent unauthorized file system access
106
- - **SSRF Attack Prevention**: CVSS 7.5 HIGH fix - Validate MCP transport URLs and block private IPs
107
- - **Input Sanitization**: CVSS 7.0 HIGH fix - Comprehensive input validation and sanitization
108
- - **Error Sanitization**: CVSS 6.5 MEDIUM fix - Prevent sensitive data leakage in error messages
109
- - **API Key Encryption**: AES-256-GCM encryption at rest with automatic migration
110
- - **Memory Leak Fixes**: Process pool management for long-running operations
111
- - **Security Audit Logging**: Basic JSON logging with 30-day retention
112
- - **Rate Limiting**: Token bucket algorithm to prevent API abuse (100 req/min)
113
- - **1517+ tests passing** with **98.29% coverage** - Production-ready security
114
- - **User-friendly defaults**: Full functionality with enterprise-grade security for everyone
115
- - **🏢 Enterprise Features**: Advanced capabilities for teams and compliance
116
- - **Compliance Report Generation**: SOC2, HIPAA, PCI-DSS automated reporting
117
- - **Advanced Audit Logging**: Tamper-proof encrypted logs with hash chains and extended retention (1+ years)
118
- - **Real-time Security Dashboards**: Monitor security events, anomalies, and compliance status
119
- - **Advanced Rate Limiting**: Custom quotas per user/team/project with cost analytics and budget alerts
120
- - **Team Collaboration**: Shared chat history with full-text search and multi-format export
121
- - **Policy Enforcement**: Tool execution policies, approval workflows, and usage analytics
122
- - **SSO/SAML Integration**: Enterprise identity provider support
123
- - **Priority Support**: 24-hour SLA email support
124
- - 📧 **Contact sales@defai.digital** for enterprise licensing and pricing
125
- - **📊 Advanced Code Analysis**: Professional-grade static analysis tools
126
- - **Dependency Analyzer**: Detect circular dependencies, calculate coupling metrics, identify orphan and hub files
127
- - **Code Smell Detector**: Find 10+ anti-patterns (long methods, large classes, duplicates, dead code, etc.)
128
- - **Hotspot Analyzer**: Identify frequently changing, complex code using git history analysis
129
- - **Metrics Calculator**: Cyclomatic complexity, Halstead metrics, Maintainability Index (MI)
130
- - **Security Scanner**: Detect SQL injection, XSS, path traversal, hardcoded secrets, and more
131
- - **[Complete Guide](docs/analysis-tools.md)** and **[API Documentation](docs/api/analyzers.md)**
132
-
133
- ### Max Tokens Configuration
134
-
135
- AX CLI uses **industry-standard max tokens** based on research of leading AI coding tools:
136
-
137
- | Tool | Max Tokens | Notes |
138
- |------|-----------|-------|
139
- | **Claude Code CLI** | 16k - 32k | Industry standard |
140
- | **GitHub Copilot** | 64k | GPT-4o default |
141
- | **Cursor AI** | 200k | With intelligent pruning |
142
- | **AX CLI (GLM 4.6)** | **32k** ✅ | Matches Claude Code upper default |
143
- | **AX CLI (Others)** | 8k | Appropriate for each model |
144
-
145
- **Why 32k for GLM 4.6?**
146
- - Competitive with industry leaders (Claude Code, GitHub Copilot)
147
- - GLM 4.6 supports up to 128k max output (our 32k is conservative at 25%)
148
- - Better for complex code generation, large file modifications, and multi-file context
149
- - Based on official Z.AI documentation and industry benchmarking
150
-
151
- [View all features →](docs/features.md)
152
-
153
- ## 🎉 What's New in v3.8.21
154
-
155
- **Bug Fixes & Configurable Timeouts** - Adds configurable confirmation timeout.
156
-
157
- ### 🐛 Bug Fixes
158
-
159
- - **Configurable confirmation timeout** - File operation confirmation timeout is now configurable via `TIMEOUT_CONFIG.CONFIRMATION_TIMEOUT` (default: 60 seconds)
160
- - **Dynamic timeout message** - Confirmation timeout message now displays the actual timeout value instead of hardcoded "60 seconds"
161
-
162
- ### 📝 Configuration
163
-
164
- Added new timeout constant in `config-defaults/settings.yaml`:
165
-
166
- ```yaml
167
- timeouts:
168
- # ... existing timeouts ...
169
- confirmation_timeout: 60000 # 60 seconds for file operation confirmation
170
- ```
171
-
172
- ### ✅ Quality
173
-
174
- - All 2083 tests passing
175
- - 0 lint errors (570 warnings)
176
- - TypeScript strict mode passes
177
- - Build succeeds
178
- - Zero breaking changes
179
-
180
- ---
181
-
182
- ## 🎉 What's New in v3.8.20
183
-
184
- **Centralized Paths & Unified Timeouts** - Uses centralized constants for paths and timeouts.
185
-
186
- ### 🔧 Improvements
187
-
188
- - **Centralized path constants** - Updated files to use `CONFIG_PATHS`:
189
- - `memory.ts`: Uses `CONFIG_PATHS.CUSTOM_MD` and `CONFIG_PATHS.INDEX_JSON` (replaces 5 duplicated path constructions)
190
- - `mcp-migrate.ts`: Uses `CONFIG_PATHS.PROJECT_SETTINGS`
191
- - `path-helpers.ts`: Uses `CONFIG_PATHS.PROJECT_DIR`
192
- - **Unified timeout usage** - Updated files to use `TIMEOUT_CONFIG` and `MCP_CONFIG`:
193
- - `permission-manager.ts`: Uses `TIMEOUT_CONFIG.TOOL_APPROVAL`
194
- - `mcp.ts`: Uses `MCP_CONFIG.HEALTH_CHECK_INTERVAL` for health monitoring
195
-
196
- ### 📝 Benefits
197
-
198
- - **Less Duplication**: Path constructions like `path.join(process.cwd(), CONFIG_DIR_NAME, FILE_NAMES.CUSTOM_MD)` replaced with `CONFIG_PATHS.CUSTOM_MD`
199
- - **Single Source of Truth**: All timeout and path values centralized in constants
200
- - **Better Maintainability**: Changes to paths only need to be made in one place
201
-
202
- ### ✅ Quality
203
-
204
- - All 2083 tests passing
205
- - 0 lint errors (570 warnings)
206
- - TypeScript strict mode passes
207
- - Build succeeds
208
- - Zero breaking changes
209
-
210
- ---
211
-
212
- ## 🎉 What's New in v3.8.19
213
-
214
- **Deduplicated Code, Performance & Stability** - Reduces code duplication and improves stability.
215
-
216
- ### 🔧 Improvements
217
-
218
- - **Exported reusable utilities** - Added `sleep()` and `calculateExponentialBackoff()` from retry-helper:
219
- - `sleep(ms)`: Promise-based delay utility
220
- - `calculateExponentialBackoff(attempt, initialDelay, maxDelay, addJitter)`: Calculates backoff with overflow protection
221
- - **Reduced duplicated code** - Updated files to use centralized utilities:
222
- - `task-planner.ts`: Uses `sleep()` and `calculateExponentialBackoff()` instead of inline implementations
223
- - `process-pool.ts`: Uses `sleep()` instead of `new Promise(resolve => setTimeout(...))`
224
- - `llm-agent.ts`: Uses `TIMEOUT_CONFIG.TOOL_APPROVAL` instead of hardcoded `5 * 60 * 1000`
225
- - **Extended timeout configuration** - Added new timeout constants:
226
- - `tool_approval`: 5 minutes for tool approval timeout
227
- - `context_cleanup_interval`: 5 minutes for context manager cleanup
228
- - **Updated cleanup intervals** - Centralized cleanup timing:
229
- - `context-manager.ts`: Uses `TIMEOUT_CONFIG.CONTEXT_CLEANUP_INTERVAL`
230
- - `rate-limiter.ts`: Uses `TIMEOUT_CONFIG.CONTEXT_CLEANUP_INTERVAL`
231
-
232
- ### 📝 Configuration
233
-
234
- Extended `timeouts` section in `config-defaults/settings.yaml`:
235
- ```yaml
236
- timeouts:
237
- # ... existing timeouts ...
238
- tool_approval: 300000
239
- context_cleanup_interval: 300000
240
- ```
241
-
242
- ### ✅ Quality
243
-
244
- - All 2083 tests passing
245
- - 0 lint errors (570 warnings)
246
- - TypeScript strict mode passes
247
- - Build succeeds
248
- - Zero breaking changes
249
-
250
- ---
251
-
252
- ## 🎉 What's New in v3.8.18
253
-
254
- **Extended Timeout Configuration** - Adds network/API and UI timeout constants.
255
-
256
- ### 🔧 Improvements
257
-
258
- - **Extended timeout configuration** - Added new timeout constants:
259
- - `settings_cache_ttl`: 5 seconds for settings manager cache
260
- - `api_health_check`: 5 seconds for API health checks
261
- - `command_check`: 3 seconds for command availability checks
262
- - `mcp_init`: 5 seconds for MCP initialization
263
- - `shutdown`: 10 seconds for graceful shutdown
264
- - `notification_display`: 3 seconds for notification display
265
- - **Updated files to use centralized constants**:
266
- - `bash-output.ts`: Uses `TIMEOUT_CONFIG.BASH_DEFAULT`
267
- - `task-planner.ts`: Uses `TIMEOUT_CONFIG.MS_PER_SECOND` and `MCP_CONFIG.RECONNECT_MAX_DELAY`
268
- - `use-input-handler.ts`: Uses `TIMEOUT_CONFIG.BASH_DEFAULT`
269
- - `settings-manager.ts`: Uses `TIMEOUT_CONFIG.SETTINGS_CACHE_TTL`
270
- - `llm/tools.ts`: Uses `TIMEOUT_CONFIG.MCP_INIT`
271
-
272
- ### 📝 Configuration
273
-
274
- Extended `timeouts` section in `config-defaults/settings.yaml`:
275
- ```yaml
276
- timeouts:
277
- # ... existing timeouts ...
278
- settings_cache_ttl: 5000
279
- api_health_check: 5000
280
- command_check: 3000
281
- mcp_init: 5000
282
- shutdown: 10000
283
- notification_display: 3000
284
- ```
285
-
286
- ### ✅ Quality
287
-
288
- - All 2083 tests passing
289
- - TypeScript strict mode passes
290
- - Build succeeds
291
- - Zero breaking changes
292
-
293
- ---
294
-
295
- ## 🎉 What's New in v3.8.17
296
-
297
- **Code Quality & Configuration Centralization** - Removes hardcoded values and unifies configuration.
298
-
299
- ### 🔧 Improvements
300
-
301
- - **Centralized timeout configuration** - All timeout values now configurable via `config-defaults/settings.yaml`
302
- - `TIMEOUT_CONFIG` exported from `constants.ts` for consistent access
303
- - Bash, search, hook, streaming, and process pool timeouts centralized
304
- - **Unified MCP configuration** - Health check interval and reconnect delay now in `MCP_CONFIG`
305
- - **Extended `SettingsYaml` interface** - Added `timeouts` section for configurable timeout values
306
- - **Removed hardcoded values** - Replaced magic numbers with named constants
307
-
308
- ### 📝 Configuration
309
-
310
- New `timeouts` section in `config-defaults/settings.yaml`:
311
- ```yaml
312
- timeouts:
313
- bash_default: 30000
314
- search_default: 30000
315
- hook_default: 30000
316
- streaming_first_chunk: 90000
317
- streaming_idle: 120000
318
- process_execution: 30000
319
- process_idle: 60000
320
- ```
321
-
322
- ### ✅ Quality
323
-
324
- - All 2083 tests passing
325
- - TypeScript strict mode passes
326
- - Build succeeds
327
- - Zero breaking changes
328
-
329
- ---
330
-
331
- ## 🎉 What's New in v3.8.16
332
-
333
- **MCP Timeout Configuration** - Fixes [#13](https://github.com/defai-digital/ax-cli/issues/13): AutomatosX agent timeout errors.
334
-
335
- ### ✨ New Features
336
-
337
- - **Per-server MCP timeout configuration** - Configure custom timeouts for long-running MCP tools
338
- - Add `timeout` field to MCP server config (in milliseconds)
339
- - Supports AutomatosX agents with 45+ minute execution times
340
- - Default: 60 seconds (MCP SDK default)
341
-
342
- ### 📝 Configuration Example
343
-
344
- ```json
345
- {
346
- "mcpServers": {
347
- "automatosx": {
348
- "name": "automatosx",
349
- "transport": { "type": "stdio", "command": "ax", "args": ["mcp"] },
350
- "timeout": 2700000
351
- }
352
- }
353
- }
354
- ```
355
-
356
- ### 🐛 Bug Fixes
357
-
358
- - **Fixed MCP error -32001 "Request timed out"** - Long-running tools no longer fail prematurely
359
- - **Per-tool timeout propagation** - Timeout now correctly passed to MCP SDK `callTool()`
360
-
361
- ### ✅ Quality
362
-
363
- - All tests passing
364
- - TypeScript strict mode passes
365
- - Build succeeds
366
- - Zero breaking changes
367
-
368
- ---
369
-
370
- ## 🎉 What's New in v3.8.15
371
-
372
- **Stability & Robustness Release** - Fixes streaming timeouts, search tool errors, and bash command validation:
373
-
374
- ### 🔧 Improvements
375
-
376
- - **Increased streaming timeouts** - First chunk timeout increased from 30s to 90s, idle timeout from 60s to 120s to handle complex operations with large context
377
- - **Better file type handling in search** - Fixed ripgrep `tsx` file type error by using glob patterns for non-builtin types (tsx, jsx, vue, svelte, etc.)
378
- - **Improved cd command validation** - Compound commands like `cd /path && grep` now show helpful error messages instead of failing silently
379
-
380
- ### 🐛 Bug Fixes
381
-
382
- - **Fixed "Streaming first chunk timeout" errors** - Complex operations no longer timeout prematurely
383
- - **Fixed "unrecognized file type: tsx" in search** - Search tool now handles modern file extensions correctly
384
- - **Fixed cd command with compound operators** - Clear error message explaining how to run commands in different directories
385
-
386
- ### ✅ Quality
387
-
388
- - All tests passing
389
- - TypeScript strict mode passes
390
- - Build succeeds
391
- - Zero breaking changes
392
-
393
- ---
394
-
395
- ## 🎉 What's New in v3.8.14
396
-
397
- **MCP Stability & Validation Release** - Prevents MCP server timeouts from misconfigured servers:
398
-
399
- ### 🔧 Improvements
400
-
401
- - **Proactive REPL command detection** - MCP config loader now detects commands that would start a REPL and hang forever (`node`, `python`, `python3`, `deno`, `bun`, `ruby`, `irb` without arguments)
402
- - **Automatic server skipping** - Problematic MCP servers are automatically skipped with a clear warning instead of causing 60-second timeouts
403
- - **Better error messages** - Clear guidance on how to fix misconfigured MCP servers
404
-
405
- ### 🐛 Bug Fixes
406
-
407
- - **Fixed MCP server timeout on REPL commands** - Servers configured with `node` (no args) no longer hang indefinitely
408
- - **Improved config validation** - Both legacy and modern MCP config formats now validated for REPL commands
409
-
410
- ### ✅ Quality
411
-
412
- - All tests passing
413
- - TypeScript strict mode passes
414
- - Build succeeds
415
- - Zero breaking changes
416
-
417
- ---
418
-
419
- ## 🎉 What's New in v3.8.13
420
-
421
- **Code Quality & Refactoring Release** - Centralized configuration and unified patterns:
422
-
423
- ### 🔧 Improvements
424
-
425
- - **Centralized hardcoded values** - Replaced hardcoded `400` max tool rounds in `src/index.ts` with `AGENT_CONFIG.MAX_TOOL_ROUNDS`
426
- - **New STREAMING_CONFIG constant** - Created centralized streaming configuration in `src/llm/client.ts` for timeout values
427
- - **Unified cache eviction strategy** - Standardized 80% target capacity eviction across `subagent.ts`, `llm-agent.ts`, and `progress-tracker.ts`
428
- - **New BASH_OUTPUT_CACHE_MAX_SIZE constant** - Added to `CACHE_CONFIG` for bash output hash cache
429
- - **Improved Map iteration safety** - Cache eviction now creates key array before deletion to avoid iterator invalidation
430
-
431
- ### 🐛 Bug Fixes
432
-
433
- - **Cleaned up orphaned test files** - Removed temporary `test-file-*.ts` files causing ESLint parsing errors
434
-
435
- ### ✅ Quality
436
-
437
- - All 2083 tests passing
438
- - TypeScript strict mode passes
439
- - Build succeeds
440
- - Zero breaking changes
441
-
442
- ---
443
-
444
- ## 🎉 What's New in v3.8.12
445
-
446
- **Security & Code Quality Release** - ReDoS vulnerability fixes and code cleanup:
447
-
448
- ### 🔒 Security Fixes
449
-
450
- - **Fixed ReDoS vulnerability in permission manager** - Glob pattern matching now uses `[^/]*` instead of `.*` to prevent catastrophic backtracking attacks
451
- - **Fixed ReDoS vulnerability in incremental analyzer** - Same fix applied to prevent exponential time complexity on malicious patterns
452
-
453
- ### 🐛 Bug Fixes
454
-
455
- - **Fixed 5 unused error variables in catch blocks** - Removed `_error` variables that ESLint warned about in:
456
- - `churn-calculator.ts`
457
- - `hotspot-detector.ts` (2 instances)
458
- - `metrics-analyzer.ts`
459
- - `security-analyzer.ts`
460
- - **Fixed 2 parseInt calls missing radix parameter** - Added explicit radix `10` to `parseInt()` calls in `status.ts` to ensure correct decimal parsing
461
-
462
- ### ✅ Quality
463
-
464
- - All 2083 tests passing
465
- - TypeScript strict mode passes
466
- - Zero breaking changes
467
- - Improved security posture against ReDoS attacks
468
-
469
- ---
470
-
471
- ## 🎉 What's New in v3.8.11
472
-
473
- **Critical npm Install Fix** - Fixes the `ERR_MODULE_NOT_FOUND` error when running ax-cli after npm install:
474
-
475
- ### 🐛 Bug Fixes
476
-
477
- - **Fixed @ax-cli/schemas module not found** - Resolved the error where Node.js couldn't find the bundled `@ax-cli/schemas` package
478
- - Added `prepublishOnly` script that properly copies workspace package to `node_modules/` before publishing
479
- - Added `postpublish` script to restore workspace symlink for local development
480
- - `bundleDependencies` now correctly includes the package files in the npm tarball
481
-
482
- ### 🔧 Technical Details
483
-
484
- The issue was that npm's `bundleDependencies` doesn't follow workspace symlinks. The fix:
485
- 1. Before publish: Replace symlink with real directory copy
486
- 2. npm pack/publish: Bundles the actual files into tarball
487
- 3. After publish: Restore symlink for local development
488
-
489
- ### ✅ Quality
490
-
491
- - Verified: Package extracts and runs correctly after npm install
492
- - All tests passing
493
- - Zero breaking changes
494
-
495
- ---
496
-
497
- ## 🎉 What's New in v3.8.10
498
-
499
- **npm Publish Fix & Code Quality** - Critical fix for npm installation and continued refactoring:
500
-
501
- ### 🐛 Bug Fixes
502
-
503
- - **Fixed npm install failure** - Resolved `EUNSUPPORTEDPROTOCOL` error when installing from npm
504
- - Changed `workspace:*` (pnpm-specific) to `*` (npm-compatible) for `@ax-cli/schemas` dependency
505
- - Added `bundleDependencies` to properly bundle the workspace package in npm tarball
506
- - Users can now install with `npm install -g @defai.digital/ax-cli` without errors
507
-
508
- ### 🔧 Improvements
509
-
510
- - **Centralized tool constants** - Added `TOOL_DEFAULTS` constant object in `src/llm/tools.ts`
511
- - **Unified naming conventions** - Renamed `GROK_TOOLS` to `LLM_TOOLS` with backwards-compatible aliases
512
- - **Enhanced text editor** - Added `EDITOR_CONFIG` and `ERROR_MESSAGES` constants for maintainability
513
- - **Atomic file writes** - Extracted `atomicWriteFile()` helper to eliminate code duplication
514
-
515
- ### ✅ Quality
516
-
517
- - All 2083 tests passing
518
- - TypeScript strict mode passes
519
- - Build succeeds
520
- - Zero breaking changes
521
-
522
- ---
523
-
524
- ## 🎉 What's New in v3.8.9
525
-
526
- **Refactoring & Configuration Improvements** - Further centralization and code quality enhancements:
527
-
528
- ### 🔧 Improvements
529
-
530
- - **Centralized file name constants** - Added `FILE_NAMES` constant object to eliminate hard-coded file names across the codebase
531
- - **Extended CONFIG_PATHS** - Added new path constants for CUSTOM_MD, INDEX_JSON, MEMORY_JSON, and user directories
532
- - **Unified path handling** - Replaced 15+ hard-coded `.ax-cli` path references with centralized constants
533
- - **Improved text editor tool** - Enhanced functionality and reliability
534
- - **Subagent types refinement** - Streamlined specialized agent type definitions
535
- - **Prompt improvements** - Enhanced default prompts configuration
536
-
537
- ### ✅ Quality
538
-
539
- - TypeScript strict mode passes
540
- - Build succeeds
541
- - 76/77 test files pass
542
- - Zero breaking changes
543
-
544
- ---
545
-
546
- ## 🎉 What's New in v3.8.8
547
-
548
- **Code Quality & Maintainability Release** - Major refactoring for improved code consistency:
549
-
550
- ### 🔧 Improvements
551
-
552
- - **Centralized configuration constants** - Added `CONFIG_DIR_NAME` constant to eliminate hard-coded `.ax-cli` strings across 15+ files
553
- - **Unified error handling** - Replaced inline `error instanceof Error ? error.message : String(error)` patterns with `extractErrorMessage()` utility across 20+ files
554
- - **Improved ES module consistency** - Converted inline `require()` calls to proper ES module imports
555
- - **Better home directory handling** - Replaced `process.env.HOME || process.env.USERPROFILE` patterns with Node.js `homedir()` function
556
- - **Removed examples folder** - Cleaned up unused example files
557
-
558
- ### ✅ Quality
559
-
560
- - All tests passing
561
- - 98%+ test coverage maintained
562
- - Zero breaking changes
563
- - Improved code maintainability
564
-
565
- ---
566
-
567
- ## 🎉 What's New in v3.8.7
568
-
569
- **Critical Bug Fixes & Resilience Improvements** - Stability and reliability enhancements.
570
-
571
- ---
572
-
573
- ## 🎉 What's New in v3.8.6
574
-
575
- **Patch Release** - Bug fixes and stability improvements:
576
-
577
- ### 🐛 Bug Fixes
578
-
579
- - **Performance optimizations** - Improved response times for tool operations
580
- - **Stability improvements** - Enhanced error handling in edge cases
581
-
582
- ### ✅ Quality
583
-
584
- - All 2029 tests passing
585
- - 98%+ test coverage maintained
586
- - Zero breaking changes
587
-
588
- ---
589
-
590
- ## 🎉 What's New in v3.8.5
591
-
592
- **Maintenance Release** - Dependency updates and minor improvements:
593
-
594
- ### 🔧 Improvements
595
-
596
- - **Updated dependencies** - Latest package versions for improved security and performance
597
- - **Documentation refinements** - Minor improvements to clarity and accuracy
598
-
599
- ### ✅ Quality
600
-
601
- - All 2029 tests passing
602
- - 98%+ test coverage maintained
603
- - Zero breaking changes
604
-
605
- ---
606
-
607
- ## 🎉 What's New in v3.8.4
608
-
609
- **Security & Stability Fixes** - Improved error handling and audit logging robustness:
610
-
611
- ### 🐛 Bug Fixes
612
-
613
- - **Fixed audit logger crash on permission errors** - Gracefully handle EPERM/EACCES/EROFS errors instead of crashing
614
- - **Fixed search validation errors being lost** - Validation errors now returned even when audit logging fails
615
- - **Fixed auto-accept logger always enabled** - Now defaults to disabled to prevent unexpected disk writes
616
- - **Fixed encryption error logging** - No longer leaks crypto implementation details (requires DEBUG env var)
617
- - **Improved quiet mode error display** - Shows actual error messages instead of generic "encountered errors"
618
-
619
- ### 🔒 Security
620
-
621
- - Audit logging failures no longer mask security validation errors (ReDoS protection preserved)
622
- - Encryption errors only logged when DEBUG or AX_DEBUG environment variable is set
623
- - Auto-accept audit logging requires explicit configuration to enable
624
-
625
- ### ✅ Quality
626
-
627
- - All 2029 tests passing
628
- - 98%+ test coverage maintained
629
- - Zero breaking changes
36
+ **That's it!** AX CLI is now ready to help you build, debug, and ship code faster.
630
37
 
631
38
  ---
632
39
 
633
- ## 🎉 What's New in v3.8.3
634
-
635
- **MCP Protocol Fix** - Critical fix for MCP server connectivity:
636
-
637
- ### 🐛 Bug Fixes
638
-
639
- - **Fixed MCP server timeout issue** - Resolved 60-second timeout when connecting to AutomatosX MCP server
640
- - **Added Content-Length framing transport** - New `ContentLengthStdioTransport` class for LSP-style protocol compatibility
641
- - **Protocol mismatch fix** - MCP SDK uses NDJSON but AutomatosX uses Content-Length framing; now supports both
642
- - **Updated MCP SDK to v1.22.0** - Latest SDK with improved capabilities
643
- - **Fixed SDK v1.22 compatibility** - Updated client capabilities structure for new SDK version
40
+ ## Table of Contents
644
41
 
645
- ### ✨ Improvements
646
-
647
- - **Faster MCP connections** - Connection time reduced from 60s timeout to ~200ms
648
- - **Better transport abstraction** - Configurable framing protocol (NDJSON or Content-Length)
649
- - **19 AutomatosX tools** - Full tool suite now available: `run_agent`, `list_agents`, `search_memory`, and more
650
-
651
- ### Quality
652
-
653
- - All tests passing
654
- - 98%+ test coverage maintained
655
- - Zero breaking changes
656
- - Improved MCP server stability
42
+ - [Features](#features)
43
+ - [Installation](#installation)
44
+ - [Configuration](#configuration)
45
+ - [Usage](#usage)
46
+ - [MCP Integration](#mcp-integration)
47
+ - [Project Memory](#project-memory)
48
+ - [Multi-Phase Planner](#multi-phase-task-planner)
49
+ - [Security](#security)
50
+ - [Architecture](#architecture)
51
+ - [Changelog](#changelog)
52
+ - [Documentation](#documentation)
657
53
 
658
54
  ---
659
55
 
660
- ## 🎉 What's New in v3.8.2
56
+ ## Features
661
57
 
662
- **Deep Bug Fixes** - Comprehensive stability improvements for enhanced input handling:
58
+ ### Core Capabilities
663
59
 
664
- ### 🐛 Bug Fixes
60
+ | Feature | Description |
61
+ |---------|-------------|
62
+ | **GLM-Optimized** | Primary support for Z.AI's GLM-4.6 with 200K context window |
63
+ | **Multi-Phase Planner** | Intelligent task decomposition for complex requests |
64
+ | **Session Continuity** | Directory-specific conversation history with `--continue` |
65
+ | **MCP Integration** | Model Context Protocol with 12+ production-ready templates |
66
+ | **Project Memory** | Intelligent context caching with 50% token savings |
67
+ | **Smart Verbosity** | Three-level output control (Quiet → Concise → Verbose) |
665
68
 
666
- - **Fixed external editor paste buffer race condition** - External editor callback now properly clears pending paste accumulation to prevent content overwrite
667
- - **Fixed `pastedBlocks` stale closure in submit** - Added `pastedBlocksRef` to ensure `expandPlaceholdersForSubmit` always has current paste block data during rapid paste + submit sequences
668
- - **Synchronized paste block refs** - All `setPastedBlocks` calls now sync `pastedBlocksRef` immediately to prevent race conditions
669
- - **Fixed async iterator cleanup** - Proper cleanup for async iterators in LLM agent
670
- - **Fixed cache eviction improvements** - Better memory management for token counter cache
671
- - **Fixed state validation and race conditions** - Improved state handling in MCP reconnection logic
672
- - **Fixed event listener error handling** - Better error boundaries for edge cases
69
+ ### AI Provider Support
673
70
 
674
- ### Quality
71
+ - **Z.AI GLM-4.6** (default) - 32K max tokens, optimized for complex code generation
72
+ - **OpenAI** - GPT-4, GPT-3.5
73
+ - **Anthropic** - Claude models
74
+ - **Ollama** - Local models
75
+ - **Custom endpoints** - Any OpenAI-compatible API
675
76
 
676
- - All tests passing
677
- - 98%+ test coverage maintained
678
- - Zero breaking changes
679
- - Improved stability for paste operations
680
-
681
- ---
77
+ > **Note**: For xAI Grok, use [grok-cli](https://github.com/superagent-ai/grok-cli). For Anthropic Claude, use [claude-code](https://claude.ai/code).
682
78
 
683
- ## 🎉 What's New in v3.8.0
79
+ ### Security (Enterprise-Grade, FREE)
684
80
 
685
- **UI/UX Refinements & Bug Fixes** - Polish and stability improvements:
81
+ | Protection | Severity | Description |
82
+ |------------|----------|-------------|
83
+ | API Key Encryption | - | AES-256-GCM encryption at rest |
84
+ | Command Injection | CVSS 9.8 | Safe command execution with whitelisting |
85
+ | Path Traversal | CVSS 8.6 | Prevent unauthorized file system access |
86
+ | SSRF Prevention | CVSS 7.5 | Validate MCP transport URLs |
87
+ | Input Sanitization | CVSS 7.0 | Comprehensive input validation |
88
+ | Rate Limiting | - | Token bucket algorithm (100 req/min) |
686
89
 
687
- ### Improvements
90
+ ### Code Analysis Tools
688
91
 
689
- - **🎨 Unified Terminology**: Consistent "Auto-Edit" naming across entire UI
690
- - Changed "Auto-apply" to "Auto-Edit" throughout all components
691
- - Unified color scheme: Yellow for active, gray for inactive
692
- - Consistent display in status bar, keyboard help, welcome panel, and toast messages
693
-
694
- - **🎨 Color Consistency**: Fixed UI color inconsistencies
695
- - Auto-edit mode now consistently shows yellow when enabled (was mixed green/yellow)
696
- - Verbosity mode properly shows yellow when active (Concise/Verbose), gray when Quiet
697
- - All keyboard shortcuts and status indicators use matching colors
698
-
699
- ### 🐛 Bug Fixes
700
-
701
- - **Fixed ModePill component** - Empty string values now display correctly
702
- - **Fixed ContextBar crashes** - Added bounds checking for invalid percentage values (NaN, Infinity, negative)
703
- - **Fixed formatTokenCount** - Handles invalid token counts gracefully (NaN, Infinity, negative)
704
- - **Fixed Verbosity display** - Pills now correctly highlight yellow when not in Quiet mode
705
- - **Fixed keyboard help colors** - Auto-edit status matches status bar coloring
706
-
707
- ### ✅ Quality
708
-
709
- - All 1,517 tests passing (9 skipped)
710
- - 98.29% test coverage maintained
711
- - Zero breaking changes
712
- - Improved UI/UX consistency
92
+ - **Dependency Analyzer** - Circular dependencies, coupling metrics
93
+ - **Code Smell Detector** - 10+ anti-patterns detection
94
+ - **Hotspot Analyzer** - Git history-based complexity analysis
95
+ - **Security Scanner** - SQL injection, XSS, hardcoded secrets
713
96
 
714
97
  ---
715
- - **Type Safety**: Full TypeScript support with proper type exports
716
98
 
717
- ### 📦 Breaking Changes
718
-
719
- **None!** All changes are backward compatible.
720
-
721
- ---
722
-
723
- ## 📦 Installation
99
+ ## Installation
724
100
 
725
101
  ### Supported Platforms
726
102
 
727
- AX CLI officially supports the following platforms:
728
-
729
103
  | Platform | Versions | Architecture |
730
104
  |----------|----------|--------------|
731
- | 🍎 **macOS** | 26+ | x64, ARM64 (Apple Silicon) |
732
- | 🪟 **Windows** | 11+ | x64, ARM64 |
733
- | 🐧 **Ubuntu** | 24.04+ | x64, ARM64 |
734
-
735
- **Note:** AX CLI may work on other platforms and older versions, but the above platforms are officially tested and supported.
105
+ | **macOS** | 26+ | x64, ARM64 (Apple Silicon) |
106
+ | **Windows** | 11+ | x64, ARM64 |
107
+ | **Ubuntu** | 24.04+ | x64, ARM64 |
736
108
 
737
109
  ### Prerequisites
738
110
 
739
111
  - Node.js 24.0.0 or higher
740
112
  - npm package manager
741
113
 
742
- ### Global Installation (Recommended)
114
+ ### Install
743
115
 
744
116
  ```bash
745
117
  npm install -g @defai.digital/ax-cli
746
118
  ```
747
119
 
748
- [Installation Guide →](docs/installation.md)
749
-
750
- ## ⚙️ Configuration
120
+ ---
751
121
 
752
- ### Quick Setup
122
+ ## Configuration
753
123
 
754
- The recommended way to configure AX CLI is using the interactive setup wizard:
124
+ ### Quick Setup (Recommended)
755
125
 
756
126
  ```bash
757
- # Run the setup wizard (recommended)
758
127
  ax-cli setup
759
-
760
- # This will:
761
- # 1. Guide you through provider selection (Z.AI, OpenAI, Anthropic, Ollama, etc.)
762
- # 2. Securely encrypt and store your API key (AES-256-GCM encryption)
763
- # 3. Configure default model and settings
764
- # 4. Validate your configuration
765
128
  ```
766
129
 
767
- **Alternative: Environment Variable Override**
130
+ This interactive wizard will:
131
+ 1. Guide you through provider selection
132
+ 2. Securely encrypt and store your API key (AES-256-GCM)
133
+ 3. Configure default model and settings
134
+ 4. Validate your configuration
135
+
136
+ ### Environment Variable Override
768
137
 
769
- For CI/CD pipelines or temporary overrides, you can set an environment variable:
138
+ For CI/CD pipelines:
770
139
 
771
140
  ```bash
772
- # Override API key temporarily (not recommended for daily use)
773
141
  export YOUR_API_KEY=your_api_key_here
774
142
  ax-cli
775
143
  ```
776
144
 
777
- **⚠️ Security Note**: API keys are automatically encrypted in config files using AES-256-GCM encryption. **Do not manually edit `~/.ax-cli/config.json`** - always use `ax-cli setup` to update your API key securely.
778
-
779
145
  ### Configuration Files
780
146
 
781
- - **User Settings**: `~/.ax-cli/config.json` (API keys are encrypted)
782
- - **Project Settings**: `.ax-cli/settings.json` (project-specific overrides)
783
- - **Custom Instructions**: `.ax-cli/CUSTOM.md` (AI behavior customization)
784
- - **Project Memory**: `.ax-cli/memory.json` (auto-generated context cache)
785
-
786
- [Configuration Guide →](docs/configuration.md)
147
+ | File | Purpose |
148
+ |------|---------|
149
+ | `~/.ax-cli/config.json` | User settings (API keys encrypted) |
150
+ | `.ax-cli/settings.json` | Project-specific overrides |
151
+ | `.ax-cli/CUSTOM.md` | AI behavior customization |
152
+ | `.ax-cli/memory.json` | Auto-generated context cache |
787
153
 
788
154
  ---
789
155
 
790
- ## 🔒 Security & API Key Handling
791
-
792
- 🛡️ **Enterprise-Grade Security** - Your API keys and data are protected with multiple layers of security:
793
-
794
- ### 🔐 API Key Encryption
795
-
796
- - **AES-256-GCM Encryption**: Military-grade authenticated encryption at rest
797
- - **PBKDF2 Key Derivation**: 600,000 iterations (OWASP 2024 standard)
798
- - **Secure File Permissions**: Config files automatically set to `0600` (owner-only)
799
- - **Auto-Migration**: Existing plain-text keys are automatically encrypted
800
-
801
- ### 🎯 What's Protected
802
-
803
- ✅ **Casual file browsing** - Prevents accidental exposure in editors
804
- ✅ **Config backups** - Keys unreadable in plain-text backups
805
- ✅ **Accidental commits** - Encrypted keys are useless without machine context
806
- ✅ **Data at rest** - Never stored in plain-text on disk
807
-
808
- ### ⚠️ Limitations (Transparent)
809
-
810
- ❌ **Determined attackers** with machine access can derive encryption keys
811
- ❌ **Open-source analysis** - Implementation is publicly visible
812
-
813
- > **Trade-off**: Like AWS CLI, kubectl, and GitHub CLI, we balance security with usability and portability.
814
-
815
- ### 🛡️ Security Best Practices
816
-
817
- 1. **CI/CD**: Use environment variables (`export API_KEY=...`)
818
- 2. **File Permissions**: Verify `ls -la ~/.ax-cli/config.json` shows `-rw-------`
819
- 3. **Git Safety**: Add `.ax-cli/` to `.gitignore`
820
- 4. **Key Rotation**: Update regularly via `ax-cli setup`
821
- 5. **Scoped Keys**: Use minimal permissions and spending limits
822
- 6. **Monitoring**: Check provider dashboards for unusual activity
823
-
824
- ### 📊 Privacy & Logging
825
-
826
- - ✅ **API keys**: NEVER logged
827
- - ✅ **Prompts**: Stored locally (encrypted if keys present)
828
- - ✅ **Errors**: Sanitized to remove sensitive data
829
- - ✅ **Telemetry**: NONE collected
830
-
831
- ### 🚨 Report Security Issues
832
-
833
- Email: **security@defai.digital** (private, not public issues)
834
-
835
- Include: vulnerability description, reproduction steps, impact, and suggested fix. Response within 48 hours.
836
-
837
- ---
838
-
839
- ## 🎯 Usage Examples
156
+ ## Usage
840
157
 
841
158
  ### Interactive Mode
842
159
 
@@ -844,75 +161,35 @@ Include: vulnerability description, reproduction steps, impact, and suggested fi
844
161
  # Start interactive chat
845
162
  ax-cli
846
163
 
847
- # Continue the most recent conversation in this directory
164
+ # Continue previous conversation
848
165
  ax-cli --continue
849
- # or
850
166
  ax-cli -c
851
-
852
- # Available slash commands:
853
- /help # Show help
854
- /continue # Continue incomplete response
855
- /init # Initialize project
856
- /clear # Clear chat history
857
- /models # Switch AI model
858
- /usage # Show API usage statistics
859
- /doctor # Run health check diagnostics
860
- /tasks # List background tasks
861
- /task <id> # View background task output
862
- /kill <id> # Kill a background task
863
- /version # Show AX CLI version
864
- /commit-and-push # AI-powered git commit
865
- /exit # Exit application
866
-
867
- # Multi-Phase Planner commands:
868
- /plans # List all execution plans
869
- /plan # Show current plan details
870
- /phases # Show phase progress
871
- /pause # Pause current plan execution
872
- /resume # Resume paused plan
873
- /skip # Skip current phase
874
- /abandon # Abandon current plan
875
167
  ```
876
168
 
877
- ### ⌨️ Keyboard Shortcuts (Claude Code-style)
878
-
879
- AX CLI supports powerful keyboard shortcuts for enhanced productivity:
880
-
881
- | Shortcut | Action | Description |
882
- |----------|--------|-------------|
883
- | **Ctrl+O** | Cycle verbosity | Quiet (grouped) → Concise (per-tool) → Verbose (full details) → Quiet |
884
- | **Ctrl+B** | Background mode | Move running command to background, or toggle "always background" mode |
885
- | **Ctrl+K** | Quick actions | Open quick actions menu |
886
- | **Shift+Tab** | Auto-edit mode | Toggle automatic approval for all operations |
887
- | **Ctrl+C** | Clear/Exit | Clear input (press twice to exit) |
888
- | **↑/↓** | History | Navigate command history |
889
- | **Ctrl+A/E** | Cursor | Move to line start/end |
890
- | **Ctrl+W** | Delete word | Delete word before cursor |
891
-
892
- **Verbosity Levels** (Ctrl+O to cycle):
893
- - **Quiet** (default): Groups operations → `⏺ Working on app.ts (3 edits, 5 reads) ✓ 2.3s`
894
- - **Concise**: One line per tool → `⏺ Read (app.ts) ✓ 22 lines`
895
- - **Verbose**: Full detailsShows args, outputs, diffs, timings
896
-
897
- ### 🔄 Background Tasks
898
-
899
- Run long-running commands in the background (like Claude Code's Ctrl+B):
900
-
901
- ```bash
902
- # Method 1: Append ' &' to any command
903
- > npm run dev &
904
- 🔄 Background task started
905
- Task ID: bg_abc123
906
-
907
- # Method 2: Press Ctrl+B during execution to move to background
908
-
909
- # Method 3: Toggle "always background" mode with Ctrl+B when idle
910
-
911
- # Manage background tasks:
912
- /tasks # List all background tasks
913
- /task bg_abc123 # View task output
914
- /kill bg_abc123 # Kill a running task
915
- ```
169
+ ### Slash Commands
170
+
171
+ | Command | Description |
172
+ |---------|-------------|
173
+ | `/help` | Show help |
174
+ | `/continue` | Continue incomplete response |
175
+ | `/init` | Initialize project |
176
+ | `/clear` | Clear chat history |
177
+ | `/models` | Switch AI model |
178
+ | `/usage` | Show API usage statistics |
179
+ | `/doctor` | Run health check diagnostics |
180
+ | `/tasks` | List background tasks |
181
+ | `/exit` | Exit application |
182
+
183
+ ### Keyboard Shortcuts
184
+
185
+ | Shortcut | Action |
186
+ |----------|--------|
187
+ | **Ctrl+O** | Cycle verbosity (Quiet Concise Verbose) |
188
+ | **Ctrl+B** | Move command to background |
189
+ | **Ctrl+K** | Quick actions menu |
190
+ | **Shift+Tab** | Toggle auto-edit mode |
191
+ | **Ctrl+C** | Clear input (press twice to exit) |
192
+ | **↑/↓** | Navigate command history |
916
193
 
917
194
  ### Headless Mode
918
195
 
@@ -920,558 +197,269 @@ Task ID: bg_abc123
920
197
  # One-shot commands
921
198
  ax-cli -p "analyze this codebase"
922
199
  ax-cli -p "fix TypeScript errors" -d /path/to/project
923
- ax-cli -p "write tests for utils/" --max-tool-rounds 50
200
+ ax-cli -p "write tests" --max-tool-rounds 50
924
201
 
925
202
  # With specific model
926
203
  ax-cli -p "refactor" --model glm-4.6
927
204
  ```
928
205
 
929
- ### 🔌 VSCode Integration
930
-
931
- AX CLI integrates seamlessly with Visual Studio Code via tasks and keyboard shortcuts:
206
+ ### Background Tasks
932
207
 
933
208
  ```bash
934
- # Analyze current file
935
- ax-cli --prompt "Analyze this file" --file src/index.ts --json --vscode
936
-
937
- # Explain selected code
938
- ax-cli --prompt "Explain this code" --selection "function foo() {...}" --json --vscode
209
+ # Append '&' to run in background
210
+ > npm run dev &
939
211
 
940
- # Review git changes
941
- ax-cli --prompt "Review my changes" --git-diff --json --vscode
212
+ # Or press Ctrl+B during execution
942
213
 
943
- # Analyze specific line range
944
- ax-cli --prompt "Optimize this section" --file app.ts --line-range 50-100 --json
214
+ # Manage tasks
215
+ /tasks # List all
216
+ /task bg_abc123 # View output
217
+ /kill bg_abc123 # Kill task
945
218
  ```
946
219
 
947
- **Quick Setup:**
948
- ```bash
949
- # Copy VSCode templates to your project
950
- cd your-project
951
- mkdir -p .vscode
952
- cp node_modules/@defai.digital/ax-cli/templates/vscode/*.json .vscode/
220
+ ### Health Check
953
221
 
954
- # Start using with Cmd+Shift+P → "Tasks: Run Task" → Select AX task
222
+ ```bash
223
+ ax-cli doctor # Run diagnostics
224
+ ax-cli doctor --verbose # Detailed output
225
+ ax-cli doctor --json # JSON format
955
226
  ```
956
227
 
957
- **Pre-configured Tasks:**
958
- - 🔍 Analyze Current File
959
- - 📝 Explain Selection
960
- - 🔄 Review Git Changes
961
- - 🧪 Generate Tests
962
- - 📚 Document Code
963
- - ♻️ Refactor Selection
964
- - 🐛 Find Bugs
965
- - ⚡ Optimize Performance
966
-
967
- [VSCode Integration Guide →](docs/vscode-integration-guide.md)
228
+ ---
968
229
 
969
- ### 🔄 Session Continuity (`--continue`)
230
+ ## MCP Integration
970
231
 
971
- Resume conversations seamlessly with directory-specific session history:
232
+ Extend AX CLI with Model Context Protocol servers:
972
233
 
973
234
  ```bash
974
- # Start a conversation in your project
975
- cd /path/to/your/project
976
- ax-cli
977
- # > Work on some features, then exit
235
+ # Add from template (one command!)
236
+ ax-cli mcp add figma --template
978
237
 
979
- # Later, continue where you left off
980
- cd /path/to/your/project
981
- ax-cli --continue
982
- # All previous context is restored!
238
+ # Add custom server
239
+ ax-cli mcp add linear --transport sse --url https://mcp.linear.app/sse
983
240
 
984
- # Each project maintains its own independent history
985
- cd /path/to/another/project
986
- ax-cli --continue
987
- # Fresh context for this project
988
- ```
241
+ # List servers
242
+ ax-cli mcp list
989
243
 
990
- **How It Works:**
991
- - Each project directory gets its own conversation session
992
- - History includes all messages, tool calls, and results
993
- - Integrated with `.ax-cli/CUSTOM.md` for project-specific context
994
- - Sessions stored in `~/.ax-cli/sessions/` by project hash
995
- - Up to 50 most recent messages preserved per session
244
+ # Preview tools
245
+ ax-cli mcp tools <server>
996
246
 
997
- **Use Cases:**
998
- - Multi-day feature development with accumulated knowledge
999
- - Resume after interruptions without losing context
1000
- - Maintain separate conversations per project
1001
- - Natural workflow continuity across sessions
247
+ # Browse templates
248
+ ax-cli mcp browse
249
+ ```
1002
250
 
1003
- ### Project Initialization
251
+ ### Available Templates
1004
252
 
1005
- ```bash
1006
- # Analyze and initialize project
1007
- ax-cli init
253
+ Figma, GitHub, Vercel, Puppeteer, Storybook, Sentry, and 6+ more.
1008
254
 
1009
- # Force regeneration
1010
- ax-cli init --force
255
+ ### Per-Server Timeout
1011
256
 
1012
- # Verbose output
1013
- ax-cli init --verbose
1014
- ```
257
+ For long-running tools (e.g., AutomatosX):
1015
258
 
1016
- ### Usage Tracking
259
+ ```json
260
+ {
261
+ "mcpServers": {
262
+ "automatosx": {
263
+ "transport": { "type": "stdio", "command": "ax", "args": ["mcp"] },
264
+ "timeout": 2700000
265
+ }
266
+ }
267
+ }
268
+ ```
1017
269
 
1018
- Track your API usage across the current session:
270
+ ---
1019
271
 
1020
- ```bash
1021
- # Show current session usage statistics
1022
- ax-cli usage show
272
+ ## Project Memory
1023
273
 
1024
- # Show detailed breakdown by model
1025
- ax-cli usage show --detailed
274
+ Intelligent context caching for reduced token costs:
1026
275
 
1027
- # Export as JSON
1028
- ax-cli usage show --json
276
+ ```bash
277
+ # Initialize (scans codebase)
278
+ ax-cli memory warmup
1029
279
 
1030
- # Reset session statistics
1031
- ax-cli usage reset
280
+ # Output:
281
+ # Project memory generated (3,305 tokens)
282
+ # 📊 Token Distribution:
283
+ # Structure: 1,252 tokens (38%)
284
+ # README: 1,111 tokens (34%)
285
+ # Config: 835 tokens (25%)
286
+ # Patterns: 99 tokens (3%)
1032
287
  ```
1033
288
 
1034
- **Phase 1**: Z.AI provider with session-based tracking
1035
- - Tracks prompt tokens, completion tokens, and reasoning tokens
1036
- - Per-model breakdown available
1037
- - Historical data available via Z.AI dashboard: https://z.ai/manage-apikey/billing
289
+ ### Commands
1038
290
 
1039
- **Phase 2** (Coming Soon): Support for additional providers (OpenAI, Anthropic, etc.)
291
+ | Command | Description |
292
+ |---------|-------------|
293
+ | `memory warmup` | Create project memory |
294
+ | `memory refresh` | Update after changes |
295
+ | `memory status` | Show status & token distribution |
296
+ | `memory clear` | Remove project memory |
297
+ | `memory cache-stats` | Show cache efficiency |
1040
298
 
1041
- [CLI Reference →](docs/cli-reference.md) | [Usage Guide →](docs/usage.md)
299
+ ### Options
1042
300
 
1043
- ## 📋 Working with Large Content
1044
-
1045
- AX CLI has **intelligent paste handling** that automatically manages large text inputs for better readability.
301
+ ```bash
302
+ ax-cli memory warmup -d 5 # Custom scan depth (1-10)
303
+ ax-cli memory warmup -m 12000 # Custom max tokens
304
+ ax-cli memory warmup --dry-run # Preview without saving
305
+ ```
1046
306
 
1047
- ### 📝 Smart Paste Auto-Collapse
307
+ ---
1048
308
 
1049
- When you paste **20+ lines** of text, AX CLI automatically collapses it:
309
+ ## Multi-Phase Task Planner
1050
310
 
1051
- - ✅ **Automatic Detection**: Pastes with 20+ lines are auto-collapsed
1052
- - ✅ **Clean Display**: Shows `[Pasted text #1 +89 lines]` instead of cluttering the UI
1053
- - ✅ **Full Submission**: Complete text is still sent to the AI (not just the placeholder)
1054
- - ✅ **Review Anytime**: Press **Ctrl+P** on a collapsed block to expand/collapse
311
+ Automatic decomposition for complex requests:
1055
312
 
1056
- **Example:**
1057
313
  ```bash
1058
- # Paste a 100-line error log
1059
- # → Shows: [Pasted text #1 +100 lines]
1060
- # → AI receives: Full 100 lines
314
+ > "Refactor auth, add tests, update docs"
1061
315
 
1062
- # Position cursor on placeholder and press Ctrl+P to review
1063
- # Expands to show all 100 lines
316
+ 📋 Plan Generated: 4 phases
317
+ ├── Phase 1: Analysis (low risk)
318
+ ├── Phase 2: Implementation (medium risk)
319
+ ├── Phase 3: Testing (low risk)
320
+ └── Phase 4: Documentation (low risk)
1064
321
  ```
1065
322
 
1066
- **Configure in `~/.ax-cli/config.json`:**
1067
- ```json
1068
- {
1069
- "paste": {
1070
- "autoCollapse": true, // Enable/disable (default: true)
1071
- "collapseThreshold": 20 // Min lines to collapse (default: 20)
1072
- }
1073
- }
1074
- ```
323
+ ### Plan Commands
1075
324
 
1076
- ### ⚠️ Character Counter Warning
325
+ | Command | Description |
326
+ |---------|-------------|
327
+ | `/plans` | List all execution plans |
328
+ | `/plan` | Show current plan details |
329
+ | `/phases` | Show phase progress |
330
+ | `/pause` | Pause current plan |
331
+ | `/resume` | Resume paused plan |
332
+ | `/skip` | Skip current phase |
333
+ | `/abandon` | Abandon current plan |
1077
334
 
1078
- The character counter shows visual warnings for very large single inputs:
1079
- - Gray (0-999) → Cyan (1000-1599) → Yellow (1600-1999) → **Red (2000+)**
335
+ ### Complexity Triggers
1080
336
 
1081
- ### Alternative Approaches for Extremely Large Content
337
+ - Refactoring, migration, restructuring
338
+ - Multi-file changes
339
+ - Testing and documentation requests
340
+ - Multi-step instructions
1082
341
 
1083
- **Option 1: File Reference (Interactive Mode)**
1084
- ```bash
1085
- # Save your content to a file first
1086
- cat > context.txt
1087
- # (paste content, then Ctrl+D)
342
+ ---
1088
343
 
1089
- # Then use memory commands
1090
- ax-cli
1091
- > /memory add context.txt
1092
- > analyze the content I just added
1093
- ```
344
+ ## Security
1094
345
 
1095
- **Option 2: Headless Mode with File Input**
1096
- ```bash
1097
- # Direct file processing
1098
- ax-cli --prompt "analyze this: $(cat large-file.txt)"
346
+ ### API Key Protection
1099
347
 
1100
- # Or use the --file flag
1101
- ax-cli --file path/to/code.ts --prompt "review this code"
1102
- ```
348
+ - **AES-256-GCM** encryption at rest
349
+ - **PBKDF2** key derivation (600,000 iterations)
350
+ - **Secure permissions** (0600 owner-only)
351
+ - **Auto-migration** from plain-text
1103
352
 
1104
- **Option 3: Use `/memory` Commands**
1105
- ```bash
1106
- # In interactive mode
1107
- > /memory add src/
1108
- > /memory add logs/error.log
1109
- > analyze the errors in the log file
1110
- ```
353
+ ### Best Practices
1111
354
 
1112
- ### Character Count Guide
355
+ 1. **CI/CD**: Use environment variables
356
+ 2. **Permissions**: Verify `ls -la ~/.ax-cli/config.json` shows `-rw-------`
357
+ 3. **Git**: Add `.ax-cli/` to `.gitignore`
358
+ 4. **Rotation**: Update regularly via `ax-cli setup`
1113
359
 
1114
- The interactive terminal shows a character counter `[count/2000]` with color-coded warnings:
360
+ ### Privacy
1115
361
 
1116
- | Color | Range | Recommendation |
1117
- |-------|-------|----------------|
1118
- | **Gray** | 0-999 | Optimal length |
1119
- | **Cyan** | 1000-1599 | ⚠️ Getting long |
1120
- | **Yellow** | 1600-1999 | ⚠️ Consider using files |
1121
- | **Red** | 2000+ | ❌ Use file-based workflow |
362
+ - API keys: **Never logged**
363
+ - Telemetry: **None collected**
364
+ - Errors: Sanitized to remove sensitive data
1122
365
 
1123
- ## 🏥 Health Check & Diagnostics
366
+ ### Report Issues
1124
367
 
1125
- Run comprehensive diagnostics to verify your AX CLI configuration:
368
+ Email: **security@defai.digital** (private disclosure)
1126
369
 
1127
- ```bash
1128
- # Run full diagnostic check
1129
- ax-cli doctor
370
+ ---
1130
371
 
1131
- # Get detailed diagnostic information
1132
- ax-cli doctor --verbose
372
+ ## Architecture
1133
373
 
1134
- # Output results as JSON
1135
- ax-cli doctor --json
1136
- ```
374
+ - **SSOT Type System** via `@ax-cli/schemas`
375
+ - **TypeScript strict mode** with Zod validation
376
+ - **98%+ test coverage** (2083 tests)
377
+ - **Modular design** with clean separation
378
+ - **Enterprise security** with AES-256-GCM encryption
1137
379
 
1138
- The `doctor` command checks:
1139
- - ✓ Node.js version (24+)
1140
- - ✓ Configuration files (user and project)
1141
- - ✓ API key and base URL
1142
- - ✓ API connectivity and authentication
1143
- - ✓ Model configuration
1144
- - ✓ MCP server configuration
1145
- - ✓ Dependencies (ripgrep, git)
380
+ ---
1146
381
 
1147
- ## 🔌 MCP (Model Context Protocol)
382
+ ## Changelog
1148
383
 
1149
- Extend AX CLI with MCP servers for additional capabilities:
384
+ ### v3.8.23 (Latest)
1150
385
 
1151
- ```bash
1152
- # Add MCP server
1153
- ax-cli mcp add linear --transport sse --url https://mcp.linear.app/sse
386
+ - **Bug fix: Background task status** - Killed tasks now correctly show 'killed' instead of 'failed'
387
+ - **Bug fix: Project settings corruption** - Now throws error instead of silent data loss
388
+ - **Bug fix: Destructive operation confirmation** - `alwaysConfirm` flag now properly forces confirmation
1154
389
 
1155
- # List servers
1156
- ax-cli mcp list
390
+ ### v3.8.21
1157
391
 
1158
- # Remove server
1159
- ax-cli mcp remove linear
1160
- ```
392
+ - **Configurable confirmation timeout** - Now uses `TIMEOUT_CONFIG.CONFIRMATION_TIMEOUT`
393
+ - **Dynamic timeout message** - Displays actual configured value
1161
394
 
1162
- [MCP Integration Guide →](docs/mcp.md)
395
+ ### v3.8.20
1163
396
 
1164
- ## 🧠 Project Memory
397
+ - **Centralized path constants** - `CONFIG_PATHS` for unified path handling
398
+ - **Unified timeout usage** - `TIMEOUT_CONFIG` and `MCP_CONFIG`
1165
399
 
1166
- Project Memory enables intelligent context caching for z.ai GLM-4.6, reducing token costs and improving response consistency:
400
+ ### v3.8.19
1167
401
 
1168
- ```bash
1169
- # Initialize project memory (scans codebase)
1170
- ax-cli memory warmup
402
+ - **Exported utilities** - `sleep()` and `calculateExponentialBackoff()`
403
+ - **Reduced code duplication** - Centralized backoff logic
1171
404
 
1172
- # Output:
1173
- # ✓ Project memory generated (3,305 tokens)
1174
- #
1175
- # 📊 Context breakdown:
1176
- # Structure: 1,252 tokens (38%)
1177
- # README: 1,111 tokens (34%)
1178
- # Config: 835 tokens (25%)
1179
- # Patterns: 99 tokens (3%)
1180
- ```
405
+ ### v3.8.18
1181
406
 
1182
- ### How It Works
407
+ - **Extended timeout configuration** - Network/API and UI timeouts
1183
408
 
1184
- 1. **Warmup**: Scans your project structure, README, configs, and detects architecture patterns
1185
- 2. **Auto-Injection**: Memory context is automatically prepended to system prompts
1186
- 3. **z.ai Caching**: Identical prompt prefixes are automatically cached by z.ai (50% token savings)
1187
- 4. **Statistics**: Track cache efficiency with `ax-cli memory cache-stats`
409
+ ### v3.8.17
1188
410
 
1189
- ### Memory Commands
411
+ - **Centralized configuration** - All timeouts configurable via YAML
1190
412
 
1191
- ```bash
1192
- ax-cli memory warmup # Create project memory
1193
- ax-cli memory refresh # Update after changes
1194
- ax-cli memory status # Show memory status & token distribution
1195
- ax-cli memory clear # Remove project memory
1196
- ax-cli memory cache-stats # Show cache efficiency statistics
413
+ ### v3.8.16
1197
414
 
1198
- # Options
1199
- ax-cli memory warmup -d 5 # Custom scan depth (1-10)
1200
- ax-cli memory warmup -m 12000 # Custom max tokens
1201
- ax-cli memory warmup --dry-run # Preview without saving
1202
- ax-cli memory status --verbose # Show full context
1203
- ax-cli memory status --json # JSON output
1204
- ```
415
+ - **Per-server MCP timeout** - Fixes AutomatosX timeout errors
1205
416
 
1206
- ### Token Distribution Visualization
417
+ ### v3.8.15
1207
418
 
1208
- ```
1209
- 📊 Token Distribution:
1210
- ████████░░░░░░░░░░░░ Structure (38%)
1211
- ███████░░░░░░░░░░░░░ README (34%)
1212
- █████░░░░░░░░░░░░░░░ Config (25%)
1213
- █░░░░░░░░░░░░░░░░░░░ Patterns (3%)
1214
- ```
419
+ - **Increased streaming timeouts** - 90s first chunk, 120s idle
420
+ - **Better file type handling** - Glob patterns for tsx, jsx, vue
1215
421
 
1216
- ### Recommended Workflow
422
+ ### v3.8.14
1217
423
 
1218
- ```bash
1219
- # 1. Initialize project (if not done)
1220
- ax-cli init
424
+ - **REPL command detection** - Prevents MCP server hangs
1221
425
 
1222
- # 2. Create project memory
1223
- ax-cli memory warmup
426
+ [View full changelog →](https://github.com/defai-digital/ax-cli/releases)
1224
427
 
1225
- # 3. Use ax-cli normally - memory is auto-injected
1226
- ax-cli -p "refactor authentication module"
428
+ ---
1227
429
 
1228
- # 4. After major changes, refresh memory
1229
- ax-cli memory refresh
1230
- ```
430
+ ## Documentation
1231
431
 
1232
- ## 🎯 Multi-Phase Task Planner (v3.0.0)
432
+ | Guide | Description |
433
+ |-------|-------------|
434
+ | [Features](docs/features.md) | Complete feature list |
435
+ | [Installation](docs/installation.md) | Detailed installation guide |
436
+ | [Configuration](docs/configuration.md) | Configuration options |
437
+ | [Usage](docs/usage.md) | Comprehensive usage guide |
438
+ | [CLI Reference](docs/cli-reference.md) | Command-line reference |
439
+ | [MCP Integration](docs/mcp.md) | Model Context Protocol guide |
440
+ | [Architecture](docs/architecture.md) | Technical architecture |
441
+ | [Troubleshooting](docs/troubleshooting.md) | Common issues |
1233
442
 
1234
- AX CLI now includes an intelligent multi-phase task planner that automatically decomposes complex requests:
443
+ ---
1235
444
 
1236
- ```bash
1237
- # Complex requests are automatically detected and planned
1238
- > "Refactor the authentication system, add tests, and update documentation"
445
+ ## Enterprise Features
1239
446
 
1240
- 📋 Plan Generated: 4 phases
1241
- ├── Phase 1: Analysis (low risk)
1242
- ├── Phase 2: Implementation (medium risk)
1243
- ├── Phase 3: Testing (low risk)
1244
- └── Phase 4: Documentation (low risk)
447
+ For teams requiring advanced capabilities:
1245
448
 
1246
- Executing Phase 1/4: Analysis...
1247
- ```
449
+ - **Compliance Reports** - SOC2, HIPAA, PCI-DSS
450
+ - **Advanced Audit Logging** - Tamper-proof with 1+ year retention
451
+ - **Team Collaboration** - Shared history with full-text search
452
+ - **Policy Enforcement** - Approval workflows
453
+ - **SSO/SAML** - Enterprise identity provider support
454
+ - **Priority Support** - 24-hour SLA
1248
455
 
1249
- **Features:**
1250
- - **Automatic Complexity Detection**: 57 keyword patterns detect when planning is needed
1251
- - **LLM-Based Decomposition**: Intelligent breakdown into logical phases
1252
- - **Dependency Management**: Phases execute in proper order
1253
- - **Progress Tracking**: Real-time updates on phase completion
1254
- - **File Tracking**: Monitors which files are modified per phase
1255
- - **Context Pruning**: Automatically manages token limits between phases
1256
-
1257
- **Complexity Triggers:**
1258
- - Refactoring, migration, or restructuring tasks
1259
- - Multi-file changes or feature implementations
1260
- - Testing and documentation requests
1261
- - Architecture or design tasks
1262
- - Multi-step instructions (first...then...finally)
456
+ Contact: **sales@defai.digital**
457
+
458
+ ---
459
+
460
+ ## License
1263
461
 
1264
- ## 🤖 Advanced Multi-Agent Orchestration
1265
-
1266
- **AX CLI** is designed as a focused, single-agent CLI tool for direct AI-powered development tasks. For advanced multi-agent orchestration, collaborative AI workflows, and complex task automation, we recommend **[AutomatosX](https://automatosx.com)**.
1267
-
1268
- ### When to Use AutomatosX Instead
1269
-
1270
- - **Multi-Agent Collaboration**: Coordinate multiple AI agents working together on complex projects
1271
- - **Specialized Agent Teams**: Use domain-specific agents (QA, architecture, security, etc.)
1272
- - **Advanced Workflows**: Build sophisticated automation pipelines with agent orchestration
1273
- - **Enterprise Scale**: Large-scale projects requiring parallel agent execution and coordination
1274
-
1275
- AX CLI focuses on being a reliable, single-agent development assistant, while AutomatosX provides the full multi-agent orchestration platform for advanced use cases.
1276
-
1277
- ## 🏗️ Architecture
1278
-
1279
- AX CLI implements enterprise-grade architecture with:
1280
-
1281
- - **Single Source of Truth (SSOT)** type system via `@ax-cli/schemas`
1282
- - **TypeScript strict mode** with Zod runtime validation
1283
- - **98%+ test coverage** (1517 tests passing)
1284
- - **Modular design** with clean separation of concerns
1285
- - **Enterprise security** with AES-256-GCM encryption for sensitive data
1286
-
1287
- [Architecture Documentation →](docs/architecture.md)
1288
-
1289
- ## 📚 Documentation
1290
-
1291
- - [Features](docs/features.md) - Complete feature list and capabilities
1292
- - [Installation](docs/installation.md) - Detailed installation guide
1293
- - [Configuration](docs/configuration.md) - Configuration options and settings
1294
- - [Security & API Key Handling](#-security--api-key-handling) - Security model, encryption details, and best practices
1295
- - [Usage](docs/usage.md) - Comprehensive usage guide
1296
- - [CLI Reference](docs/cli-reference.md) - Command-line interface reference
1297
- - [MCP Integration](docs/mcp.md) - Model Context Protocol guide
1298
- - [Project Memory](automatosx/prd/project-memory-prd.md) - Project memory feature specification
1299
- - [Architecture](docs/architecture.md) - Technical architecture details
1300
- - [Development](docs/development.md) - Development and contribution guide
1301
- - [Troubleshooting](docs/troubleshooting.md) - Common issues and solutions
1302
-
1303
- ## 📋 Changelog
1304
-
1305
- ### v3.8.0 (2025-11-23)
1306
-
1307
- **🎨 UI/UX Refinements & Bug Fixes:**
1308
-
1309
- **✨ Improvements:**
1310
- - Unified "Auto-Edit" terminology throughout entire UI (was inconsistently "Auto-apply")
1311
- - Consistent yellow color scheme for Auto-Edit mode when enabled
1312
- - Fixed Verbosity mode color display (yellow when active, gray when Quiet)
1313
- - Improved visual consistency across status bar, keyboard help, and welcome panel
1314
-
1315
- **🐛 Bug Fixes:**
1316
- - Fixed ModePill component handling of empty string values
1317
- - Fixed ContextBar crashes with invalid percentage values (NaN, Infinity, negative)
1318
- - Fixed formatTokenCount handling of invalid inputs
1319
- - Fixed Verbosity pill not highlighting when not in Quiet mode
1320
- - Fixed keyboard help color inconsistencies
1321
-
1322
- **✅ Quality:**
1323
- - All 1,517 tests passing (9 skipped)
1324
- - 98.29% test coverage maintained
1325
- - Zero breaking changes
1326
-
1327
- ### v3.7.2 (2025-11-23)
1328
-
1329
- **🐛 Bug Fixes - Test Stability:**
1330
- - Fixed flaky process-pool tests failing in CI/CD environments
1331
- - Added proper async cleanup waiting with `setImmediate()`
1332
- - Fixed race condition where `activeProcesses` count was checked before cleanup completed
1333
- - Tests: "should handle errors without leaking resources" and "should remove all event listeners after execution"
1334
- - Follows Node.js best practices for testing async cleanup operations
1335
-
1336
- **✅ Test Results:**
1337
- - All 1,517 tests passing (9 skipped)
1338
- - 98.29% test coverage maintained
1339
- - Zero breaking changes
1340
- - Improved CI/CD reliability
1341
-
1342
- ### v3.6.1 (2025-11-22)
1343
-
1344
- **🔧 Improvements:**
1345
- - **Smart Paste Auto-Collapse**: Intelligent handling of large text inputs
1346
- - Automatic collapse of 20+ line pastes for better readability
1347
- - Press Ctrl+P to expand/collapse pasted content
1348
- - Configurable threshold in `~/.ax-cli/config.json`
1349
- - Full content still sent to AI (not just the placeholder)
1350
-
1351
- **✅ Quality:**
1352
- - All 1,381 tests passing with 98.29% coverage
1353
- - Zero breaking changes
1354
- - Cleaner codebase with reduced complexity
1355
-
1356
- ### v3.6.0 (2025-11-22)
1357
-
1358
- **🔒 Enterprise-Grade Security (FREE & Open Source):**
1359
- - **API Key Encryption**: AES-256-GCM encryption for API keys at rest
1360
- - **Command Injection Protection**: CVSS 9.8 CRITICAL fix with command whitelisting
1361
- - **Path Traversal Hardening**: CVSS 8.6 HIGH fix preventing unauthorized file access
1362
- - **SSRF Attack Prevention**: CVSS 7.5 HIGH fix for MCP transport URL validation
1363
- - **Input Sanitization**: CVSS 7.0 HIGH fix for comprehensive input validation
1364
- - **Error Sanitization**: CVSS 6.5 MEDIUM fix preventing credential leakage
1365
- - **Security Audit Logging**: Basic JSON logging with 30-day retention
1366
- - **Rate Limiting**: Token bucket algorithm to prevent API abuse
1367
- - **Memory Leak Fixes**: Process pool management for long-running operations
1368
-
1369
- **✅ Test Quality:**
1370
- - **1517+ tests passing** with 98.29% coverage
1371
- - All security modules fully tested and validated
1372
- - Production-ready security implementation
1373
-
1374
- **🏢 Enterprise Features (Available):**
1375
- - Advanced audit logging with compliance reports (SOC2, HIPAA, PCI-DSS)
1376
- - Team collaboration with shared chat history
1377
- - Policy enforcement and approval workflows
1378
- - Extended audit log retention (1+ years)
1379
- - SSO/SAML integration support
1380
- - Priority 24-hour SLA support
1381
- - Contact sales@defai.digital for enterprise licensing
1382
-
1383
- **🔧 Configuration Improvements:**
1384
- - New `ax-cli setup` wizard for secure API key configuration
1385
- - Automatic migration of plain-text API keys to encrypted format
1386
- - Environment variable override support for CI/CD workflows
1387
-
1388
- ### v3.5.3 (2025-11-22)
1389
-
1390
- **Bug Fixes - Test Quality & Reliability:**
1391
- - Fixed unhandled promise rejection in subagent tests that caused Node.js warnings
1392
- - Replaced meaningless test assertions (`expect(true).toBe(true)`) with real validation
1393
- - Properly skipped untestable tests with clear TODO documentation
1394
- - Fixed flaky performance test by adjusting timing threshold (0.9x instead of 0.7x)
1395
-
1396
- **Test Suite Improvements:**
1397
- - Improved test isolation and error handling patterns
1398
- - Enhanced performance test reliability for CI/CD environments
1399
- - Better documentation of test limitations
1400
- - All 1,038 tests passing (1,036 passed + 2 properly skipped)
1401
-
1402
- **Code Quality:**
1403
- - Comprehensive test quality analysis across all test files
1404
- - Eliminated false confidence from placeholder tests
1405
- - Maintained 98%+ test coverage with genuine validation
1406
-
1407
- ### v3.7.1 (2025-11-22)
1408
-
1409
- **Bug Fixes - Critical Stability Improvements:**
1410
- - Fixed crash on malformed LLM responses: Added try-catch to `parseToolArgumentsCached` in LLMAgent
1411
- - Prevents agent crash when LLM sends invalid JSON in tool arguments
1412
- - Returns empty object instead of throwing, allowing session to continue
1413
- - Affects ~1 in 1000 tool calls based on observed LLM behavior
1414
- - Fixed memory leak in BashTool: Added dispose() method
1415
- - Properly terminates running bash processes on cleanup
1416
- - Removes all event listeners to prevent accumulation
1417
- - Fixes resource leak from orphaned process handles
1418
- - Fixed agent disposal: Added tool cleanup cascade
1419
- - Agent now calls bash.dispose() during cleanup
1420
- - Ensures all tool resources are properly released
1421
-
1422
- **Bug Fixes - Performance & Memory:**
1423
- - Fixed unbounded cache growth in `toolCallArgsCache`
1424
- - Limited to 500 entries with LRU eviction (oldest 100)
1425
- - Prevents 5+ MB memory leak per 10,000 tool calls
1426
- - Applied to both LLMAgent and Subagent classes
1427
- - Fixed resource leak in bash abort handler
1428
- - Cleanup listener now called even when moveToBackground() fails
1429
- - Prevents event listener memory leaks
1430
- - Updated MCPManager to use singleton TokenCounter
1431
- - Saves 100-200ms initialization time
1432
- - Shares tiktoken encoder instance across MCP operations
1433
-
1434
- **Test Results:**
1435
- - All 1,497 tests passing (9 skipped)
1436
- - 98.29% test coverage maintained
1437
- - Zero breaking changes
1438
-
1439
- **Combined Performance Gains:**
1440
- - Startup: 245-495ms faster (30-50% improvement)
1441
- - Runtime: 70-150ms faster per session
1442
- - Memory: Bounded, predictable usage with no leaks
1443
-
1444
- ### v3.5.2 (2025-11-22)
1445
-
1446
- **Bug Fixes - Resource Leak Prevention:**
1447
- - Fixed uncleaned nested timeout in bash tool that held process references after exit
1448
- - Fixed uncleaned timeout in MCP URL validation causing 3-second memory leaks
1449
- - Added `.unref()` to background cleanup timers to prevent GC blocking
1450
- - Added try-finally blocks for guaranteed timeout cleanup in error scenarios
1451
-
1452
- **Bug Fixes - Platform Compatibility:**
1453
- - Fixed Windows home directory bug in command history (used `os.homedir()` instead of `"~"` fallback)
1454
-
1455
- **Code Quality:**
1456
- - Comprehensive resource leak analysis across 78+ potential issues
1457
- - Improved timeout cleanup patterns following Node.js best practices
1458
- - Enhanced memory management for better garbage collection
1459
-
1460
- ### v3.5.0
1461
-
1462
- **Features:**
1463
- - Multi-phase task planner with automatic complexity detection
1464
- - Enhanced MCP integration with production-ready templates
1465
- - Project memory system with intelligent context caching
1466
- - Advanced code analysis tools (dependency, security, metrics)
1467
-
1468
- ## 📄 License
1469
-
1470
- MIT License - see [LICENSE](LICENSE) for details
1471
-
1472
- ## 🙏 Acknowledgments
1473
-
1474
- Built with **AutomatosX** multi-agent orchestration to achieve enterprise-class standards.
462
+ MIT License - see [LICENSE](LICENSE) for details.
1475
463
 
1476
464
  ---
1477
465