a24z 1.0.10 → 1.0.11
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 +75 -103
- package/bin/a24z.js +1 -1
- package/dist/index.js +199 -268
- package/dist/index.js.map +1 -1
- package/package.json +8 -18
- package/templates/universal-collector.sh +0 -40
package/README.md
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
# A24Z - Claude Code Observability CLI
|
|
2
2
|
|
|
3
3
|
[](https://badge.fury.io/js/a24z)
|
|
4
|
-
[](https://opensource.org/licenses/MIT)
|
|
5
4
|
|
|
6
5
|
**Monitor and analyze your Claude Code AI tool performance with comprehensive observability.**
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
a24z provides real-time insights into your AI tool usage, helping you understand performance, optimize prompts, and track success rates across your organization.
|
|
9
8
|
|
|
10
9
|
## 🚀 Quick Start
|
|
11
10
|
|
|
@@ -15,30 +14,24 @@ A24Z provides real-time insights into your AI tool usage, helping you understand
|
|
|
15
14
|
npm install -g a24z
|
|
16
15
|
```
|
|
17
16
|
|
|
18
|
-
### Setup
|
|
17
|
+
### Setup
|
|
19
18
|
|
|
20
19
|
```bash
|
|
21
20
|
# Install hooks and configure Claude Code
|
|
22
|
-
a24z install
|
|
23
|
-
|
|
24
|
-
# Login for multi-tenancy (optional)
|
|
25
|
-
a24z login
|
|
26
|
-
|
|
27
|
-
# Check everything is working
|
|
28
|
-
a24z status
|
|
21
|
+
a24z install && a24z login
|
|
29
22
|
```
|
|
30
23
|
|
|
31
|
-
**That's it!** Your Claude Code tools are now being monitored. View your dashboard at [a24z.ai](https://a24z.ai).
|
|
24
|
+
**That's it!** Your Claude Code tools are now being monitored. View your dashboard at [a24z.ai](https://app.a24z.ai).
|
|
32
25
|
|
|
33
26
|
## ✨ Features
|
|
34
27
|
|
|
35
|
-
- **🔧 One-Command Installation**:
|
|
28
|
+
- **🔧 One-Command Installation**: Get up and running with just `a24z install`
|
|
36
29
|
- **📊 Real-time Dashboard**: Live monitoring of all tool executions
|
|
37
|
-
- **🏢 Multi-tenancy**: Organization-based data isolation with WorkOS auth
|
|
38
30
|
- **📈 Performance Analytics**: Success rates, execution times, and trends
|
|
39
31
|
- **🎯 Tool Insights**: Per-tool performance analysis and optimization suggestions
|
|
40
32
|
- **🔐 Secure**: Enterprise-grade authentication and data protection
|
|
41
33
|
- **⚡ Zero Configuration**: Works out of the box with sensible defaults
|
|
34
|
+
- **🔄 Robust Hook System**: Supports all hook types
|
|
42
35
|
|
|
43
36
|
## 📋 Commands
|
|
44
37
|
|
|
@@ -47,29 +40,31 @@ a24z status
|
|
|
47
40
|
Installs A24Z observability hooks for Claude Code.
|
|
48
41
|
|
|
49
42
|
```bash
|
|
50
|
-
a24z install
|
|
51
|
-
a24z install --api-url https://your.domain # Use custom backend
|
|
43
|
+
a24z install claude-code
|
|
52
44
|
```
|
|
53
45
|
|
|
54
46
|
**What it does:**
|
|
55
|
-
|
|
47
|
+
|
|
48
|
+
- ✅ Configures direct CLI integration with Claude Code
|
|
56
49
|
- ✅ Updates `~/.claude/settings.json` automatically
|
|
57
|
-
- ✅ Configures API endpoints
|
|
58
|
-
- ✅ Sets up
|
|
50
|
+
- ✅ Configures API endpoints and authentication
|
|
51
|
+
- ✅ Sets up comprehensive hook coverage for all tool events
|
|
52
|
+
- ✅ Enables real-time monitoring
|
|
59
53
|
|
|
60
54
|
### `a24z login`
|
|
61
55
|
|
|
62
|
-
Authenticate with
|
|
56
|
+
Authenticate with a24z.
|
|
63
57
|
|
|
64
58
|
```bash
|
|
65
59
|
a24z login
|
|
66
60
|
```
|
|
67
61
|
|
|
68
62
|
**Benefits of logging in:**
|
|
69
|
-
|
|
63
|
+
|
|
64
|
+
- 🏢 **Organization Isolation**: Your data is kept in a cloud environment without hosting
|
|
70
65
|
- 👥 **Team Collaboration**: Share insights with your team members
|
|
71
66
|
- 🔐 **Enhanced Security**: Enterprise-grade authentication
|
|
72
|
-
- 📊 **Advanced Analytics**:
|
|
67
|
+
- 📊 **Advanced Analytics**: See where your Coding Agents can improve
|
|
73
68
|
|
|
74
69
|
### `a24z status`
|
|
75
70
|
|
|
@@ -80,9 +75,9 @@ a24z status
|
|
|
80
75
|
```
|
|
81
76
|
|
|
82
77
|
**Shows:**
|
|
78
|
+
|
|
83
79
|
- Installation status of hook scripts
|
|
84
80
|
- Authentication status
|
|
85
|
-
- API connectivity
|
|
86
81
|
- Configuration details
|
|
87
82
|
|
|
88
83
|
### `a24z uninstall`
|
|
@@ -90,41 +85,84 @@ a24z status
|
|
|
90
85
|
Remove A24Z observability hooks.
|
|
91
86
|
|
|
92
87
|
```bash
|
|
93
|
-
a24z uninstall
|
|
88
|
+
a24z uninstall claude-code
|
|
94
89
|
```
|
|
95
90
|
|
|
96
91
|
**What it does:**
|
|
92
|
+
|
|
97
93
|
- 🗑️ Removes hook scripts
|
|
98
94
|
- ⚙️ Cleans up Claude settings
|
|
99
95
|
- 🔄 Restores original configuration
|
|
100
96
|
|
|
97
|
+
### `a24z hook <tool>`
|
|
98
|
+
|
|
99
|
+
Internal command that processes hook payloads from stdin and sends them to a24z.
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
a24z hook claude-code
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**Purpose:**
|
|
106
|
+
|
|
107
|
+
- Sends data to a24z backend for analysis
|
|
108
|
+
- Fire-and-forget operation - doesn't block tool execution
|
|
109
|
+
- Supports all hook types
|
|
110
|
+
|
|
111
|
+
**Note:** This command is called automatically by Claude Code hooks and should not be used directly by users.
|
|
112
|
+
|
|
101
113
|
## 🏗️ How It Works
|
|
102
114
|
|
|
103
|
-
### 1.
|
|
104
|
-
|
|
115
|
+
### 1. Direct CLI Integration
|
|
116
|
+
|
|
117
|
+
a24z configures direct CLI integration with Claude Code's native hook system:
|
|
105
118
|
|
|
106
119
|
```json
|
|
107
120
|
{
|
|
108
121
|
"hooks": {
|
|
109
122
|
"PreToolUse": [{
|
|
110
123
|
"matcher": "*",
|
|
111
|
-
"hooks": [{ "type": "command", "command": "
|
|
124
|
+
"hooks": [{ "type": "command", "command": "a24z hook claude-code" }]
|
|
112
125
|
}],
|
|
113
126
|
"PostToolUse": [{
|
|
114
|
-
"matcher": "*",
|
|
115
|
-
"hooks": [{ "type": "command", "command": "
|
|
127
|
+
"matcher": "*",
|
|
128
|
+
"hooks": [{ "type": "command", "command": "a24z hook claude-code" }]
|
|
129
|
+
}],
|
|
130
|
+
"UserPromptSubmit": [{
|
|
131
|
+
"matcher": "*",
|
|
132
|
+
"hooks": [{ "type": "command", "command": "a24z hook claude-code" }]
|
|
133
|
+
}],
|
|
134
|
+
"SessionStart": [{
|
|
135
|
+
"matcher": "*",
|
|
136
|
+
"hooks": [{ "type": "command", "command": "a24z hook claude-code" }]
|
|
137
|
+
}],
|
|
138
|
+
"SessionEnd": [{
|
|
139
|
+
"matcher": "*",
|
|
140
|
+
"hooks": [{ "type": "command", "command": "a24z hook claude-code" }]
|
|
141
|
+
}],
|
|
142
|
+
"SubagentStop": [{
|
|
143
|
+
"matcher": "*",
|
|
144
|
+
"hooks": [{ "type": "command", "command": "a24z hook claude-code" }]
|
|
145
|
+
}],
|
|
146
|
+
"Notification": [{
|
|
147
|
+
"matcher": "*",
|
|
148
|
+
"hooks": [{ "type": "command", "command": "a24z hook claude-code" }]
|
|
149
|
+
}],
|
|
150
|
+
"Stop": [{
|
|
151
|
+
"matcher": "*",
|
|
152
|
+
"hooks": [{ "type": "command", "command": "a24z hook claude-code" }]
|
|
153
|
+
}],
|
|
154
|
+
"PreCompact": [{
|
|
155
|
+
"matcher": "*",
|
|
156
|
+
"hooks": [{ "type": "command", "command": "a24z hook claude-code" }]
|
|
116
157
|
}]
|
|
117
158
|
}
|
|
118
159
|
}
|
|
119
160
|
```
|
|
120
161
|
|
|
121
|
-
### 2.
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
- **Privacy**: Only metadata is collected - your actual code and sensitive data never leaves your machine
|
|
162
|
+
### 2. Real-time Analysis
|
|
163
|
+
|
|
164
|
+
Data is sent to the a24z platform where it's processed to provide:
|
|
125
165
|
|
|
126
|
-
### 3. Real-time Analysis
|
|
127
|
-
Data is sent to the A24Z platform where it's processed to provide:
|
|
128
166
|
- Performance dashboards
|
|
129
167
|
- Success rate analytics
|
|
130
168
|
- Tool usage patterns
|
|
@@ -132,85 +170,19 @@ Data is sent to the A24Z platform where it's processed to provide:
|
|
|
132
170
|
|
|
133
171
|
## 🔧 Configuration
|
|
134
172
|
|
|
135
|
-
### Environment Variables
|
|
136
|
-
|
|
137
|
-
```bash
|
|
138
|
-
# Enable debug logging
|
|
139
|
-
export DEBUG_HOOKS=true
|
|
140
|
-
|
|
141
|
-
# Custom API endpoint (for self-hosted deployments)
|
|
142
|
-
export A24Z_API_URL=https://your-api.domain.com
|
|
143
|
-
```
|
|
144
|
-
|
|
145
173
|
### File Locations
|
|
146
174
|
|
|
147
175
|
- **Config**: `~/.claude/a24z-config.json`
|
|
148
|
-
- **Hooks**: `~/.claude/hooks/a24z-*.sh`
|
|
149
|
-
- **Logs**: `~/.claude/a24z.log`
|
|
150
176
|
- **Claude Settings**: `~/.claude/settings.json`
|
|
151
177
|
|
|
152
|
-
## 🏢 Enterprise & Self-Hosting
|
|
153
|
-
|
|
154
|
-
### Multi-tenancy
|
|
155
|
-
A24Z supports full multi-tenancy with organization isolation:
|
|
156
|
-
|
|
157
|
-
```bash
|
|
158
|
-
a24z login # Authenticate with your organization
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
### Self-Hosted Deployment
|
|
162
|
-
Run A24Z on your own infrastructure:
|
|
163
|
-
|
|
164
|
-
```bash
|
|
165
|
-
# Install with custom backend
|
|
166
|
-
a24z install --api-url https://your-observability.company.com
|
|
167
|
-
|
|
168
|
-
# Or set permanently
|
|
169
|
-
export A24Z_API_URL=https://your-observability.company.com
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
## 🛠️ Development
|
|
173
|
-
|
|
174
|
-
### Local Development
|
|
175
|
-
|
|
176
|
-
```bash
|
|
177
|
-
git clone https://github.com/your-org/a24z-observability
|
|
178
|
-
cd packages/a24z-cli
|
|
179
|
-
npm install
|
|
180
|
-
npm run build
|
|
181
|
-
npm link
|
|
182
|
-
|
|
183
|
-
# Test locally
|
|
184
|
-
a24z --help
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
### Building
|
|
188
|
-
|
|
189
|
-
```bash
|
|
190
|
-
npm run build # Compile TypeScript to dist/
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
## 🤝 Contributing
|
|
194
|
-
|
|
195
|
-
We welcome contributions! Please see our [Contributing Guide](../../CONTRIBUTING.md).
|
|
196
|
-
|
|
197
|
-
### Issues
|
|
198
|
-
|
|
199
|
-
Found a bug or have a feature request? [Open an issue](https://github.com/your-org/a24z-observability/issues).
|
|
200
|
-
|
|
201
|
-
## 📄 License
|
|
202
|
-
|
|
203
|
-
MIT License - see [LICENSE](LICENSE) for details.
|
|
204
|
-
|
|
205
178
|
## 🔗 Links
|
|
206
179
|
|
|
207
|
-
- **Dashboard**: [a24z.
|
|
180
|
+
- **Dashboard**: [app.a24z.ai](https://app.a24z.ai)
|
|
208
181
|
- **Documentation**: [docs.a24z.ai](https://docs.a24z.ai)
|
|
209
|
-
- **
|
|
210
|
-
- **Support**: [support@a24z.ai](mailto:support@a24z.ai)
|
|
182
|
+
- **Context Engine** [a24z Memory](https://www.github.com/a24z-memory/a24z-memory)
|
|
211
183
|
|
|
212
184
|
---
|
|
213
185
|
|
|
214
|
-
|
|
186
|
+
## ❤️ Made by the a24z Team
|
|
215
187
|
|
|
216
188
|
*Transform your AI development workflow with comprehensive observability.*
|
package/bin/a24z.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -9,8 +9,6 @@ import os from 'os';
|
|
|
9
9
|
import { fileURLToPath } from 'url';
|
|
10
10
|
import axios from 'axios';
|
|
11
11
|
import open from 'open';
|
|
12
|
-
import dotenv from "dotenv";
|
|
13
|
-
dotenv.config();
|
|
14
12
|
// Single source of truth for WorkOS client ID.
|
|
15
13
|
// If you change the client, update this constant and publish.
|
|
16
14
|
const WORKOS_CLIENT_ID = "client_01K4ZPKST26YPKMQBGQW7HZ4SB";
|
|
@@ -19,8 +17,41 @@ const __dirname = path.dirname(__filename);
|
|
|
19
17
|
// Configuration constants
|
|
20
18
|
const CLAUDE_DIR = path.join(os.homedir(), '.claude');
|
|
21
19
|
const CLAUDE_SETTINGS_FILE = path.join(CLAUDE_DIR, 'settings.json');
|
|
22
|
-
const HOOKS_DIR = path.join(CLAUDE_DIR, 'hooks');
|
|
23
20
|
const CONFIG_FILE = path.join(CLAUDE_DIR, 'a24z-config.json');
|
|
21
|
+
// Supported tools and their validation
|
|
22
|
+
// Currently only supporting Claude Code
|
|
23
|
+
const SUPPORTED_TOOLS = [
|
|
24
|
+
'claude-code'
|
|
25
|
+
];
|
|
26
|
+
/**
|
|
27
|
+
* Validates that a tool name is supported
|
|
28
|
+
*/
|
|
29
|
+
function validateTool(tool) {
|
|
30
|
+
const normalizedTool = tool.toLowerCase().trim();
|
|
31
|
+
// Check if tool is supported
|
|
32
|
+
if (!SUPPORTED_TOOLS.includes(normalizedTool)) {
|
|
33
|
+
throw new Error(`Unsupported tool: '${tool}'. Supported tools: ${SUPPORTED_TOOLS.join(', ')}`);
|
|
34
|
+
}
|
|
35
|
+
return normalizedTool;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Sanitizes input to prevent injection attacks and normalize data
|
|
39
|
+
*/
|
|
40
|
+
function sanitizeInput(input, maxLength = 255) {
|
|
41
|
+
if (typeof input !== 'string') {
|
|
42
|
+
throw new Error('Input must be a string');
|
|
43
|
+
}
|
|
44
|
+
return input
|
|
45
|
+
.trim()
|
|
46
|
+
.substring(0, maxLength)
|
|
47
|
+
.replace(/[<>"/\\&'"]/g, ''); // Remove dangerous characters
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Safely handles potentially undefined/null values
|
|
51
|
+
*/
|
|
52
|
+
function safe(value, fallback) {
|
|
53
|
+
return value === null || value === undefined ? fallback : value;
|
|
54
|
+
}
|
|
24
55
|
class A24zCLI {
|
|
25
56
|
constructor() {
|
|
26
57
|
this.config = this.loadConfig();
|
|
@@ -38,7 +69,8 @@ class A24zCLI {
|
|
|
38
69
|
apiUrl: 'https://app.a24z.ai',
|
|
39
70
|
clientId: WORKOS_CLIENT_ID,
|
|
40
71
|
accessToken: null,
|
|
41
|
-
installedAt: null
|
|
72
|
+
installedAt: null,
|
|
73
|
+
tool: null
|
|
42
74
|
};
|
|
43
75
|
return defaultConfig;
|
|
44
76
|
}
|
|
@@ -51,37 +83,68 @@ class A24zCLI {
|
|
|
51
83
|
console.error(chalk.red('Error saving configuration:'), error);
|
|
52
84
|
}
|
|
53
85
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
86
|
+
getCurrentTool() {
|
|
87
|
+
// Check if we have tool-specific config or use default
|
|
88
|
+
try {
|
|
89
|
+
if (fs.existsSync(CONFIG_FILE)) {
|
|
90
|
+
const config = JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
|
|
91
|
+
return config.tool || null;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
// ignore errors
|
|
96
|
+
}
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
async install(tool, options = {}) {
|
|
100
|
+
// Validate and sanitize tool input
|
|
101
|
+
let validatedTool;
|
|
102
|
+
try {
|
|
103
|
+
validatedTool = validateTool(tool);
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
console.error(chalk.red('❌ Error:'), error instanceof Error ? error.message : error);
|
|
107
|
+
process.exit(1);
|
|
108
|
+
}
|
|
109
|
+
// Sanitize API URL if provided
|
|
110
|
+
if (options.apiUrl) {
|
|
111
|
+
try {
|
|
112
|
+
options.apiUrl = sanitizeInput(options.apiUrl, 500); // URLs can be longer
|
|
113
|
+
// Basic URL validation
|
|
114
|
+
const url = new URL(options.apiUrl);
|
|
115
|
+
if (!url.protocol.startsWith('http')) {
|
|
116
|
+
throw new Error('API URL must use HTTP or HTTPS protocol');
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
console.error(chalk.red('❌ Error: Invalid API URL:'), error instanceof Error ? error.message : error);
|
|
121
|
+
process.exit(1);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
const spinner = ora(`Installing A24Z hooks for ${validatedTool}...`).start();
|
|
57
125
|
try {
|
|
58
126
|
// Update configuration if provided
|
|
59
127
|
if (options.apiUrl) {
|
|
60
128
|
this.config.apiUrl = options.apiUrl;
|
|
61
129
|
}
|
|
62
|
-
if (options.clientId) {
|
|
63
|
-
this.config.clientId = options.clientId;
|
|
64
|
-
}
|
|
65
|
-
// Ensure directories exist
|
|
66
|
-
fs.mkdirSync(HOOKS_DIR, { recursive: true });
|
|
67
130
|
// Copy hook scripts from templates
|
|
68
131
|
await this.copyHookScripts();
|
|
69
132
|
// Update Claude settings.json
|
|
70
133
|
this.updateClaudeSettings();
|
|
71
134
|
// Update configuration
|
|
72
135
|
this.config.installedAt = new Date().toISOString();
|
|
136
|
+
this.config.tool = validatedTool; // Save the validated tool name
|
|
73
137
|
this.saveConfig();
|
|
74
|
-
spinner.succeed(
|
|
75
|
-
console.log(chalk.green('
|
|
76
|
-
console.log(chalk.cyan('
|
|
138
|
+
spinner.succeed(`A24Z hooks installed successfully for ${validatedTool}!`);
|
|
139
|
+
console.log(chalk.green('\✅ Installation Complete!'));
|
|
140
|
+
console.log(chalk.cyan('\📋 Next steps:'));
|
|
77
141
|
console.log(chalk.white(' 1. Login to associate logs with your organization:'), chalk.yellow('a24z login'));
|
|
78
|
-
console.log(chalk.white(' 2. Check installation status:'), chalk.yellow(
|
|
79
|
-
console.log(chalk.white(
|
|
80
|
-
console.log(chalk.cyan('
|
|
81
|
-
console.log(chalk.white(` •
|
|
142
|
+
console.log(chalk.white(' 2. Check installation status:'), chalk.yellow(`a24z status`));
|
|
143
|
+
console.log(chalk.white(` 3. Begin using ${tool} - your tools will be automatically monitored`));
|
|
144
|
+
console.log(chalk.cyan('\🔧 Configuration:'));
|
|
145
|
+
console.log(chalk.white(` • Tool: ${tool}`));
|
|
82
146
|
console.log(chalk.white(` • Settings file: ${CLAUDE_SETTINGS_FILE}`));
|
|
83
147
|
console.log(chalk.white(` • API URL: ${this.config.apiUrl}`));
|
|
84
|
-
console.log(chalk.white(` • Client ID: ${this.config.clientId}`));
|
|
85
148
|
}
|
|
86
149
|
catch (error) {
|
|
87
150
|
spinner.fail('Installation failed');
|
|
@@ -90,46 +153,9 @@ class A24zCLI {
|
|
|
90
153
|
}
|
|
91
154
|
}
|
|
92
155
|
async copyHookScripts() {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
const hookDestinations = [
|
|
97
|
-
'a24z-pre-hook.sh',
|
|
98
|
-
'a24z-post-hook.sh',
|
|
99
|
-
'a24z-user-prompt-submit-hook.sh',
|
|
100
|
-
'a24z-session-start-hook.sh',
|
|
101
|
-
'a24z-session-end-hook.sh',
|
|
102
|
-
'a24z-subagent-stop-hook.sh',
|
|
103
|
-
'a24z-notification-hook.sh',
|
|
104
|
-
'a24z-stop-hook.sh',
|
|
105
|
-
'a24z-precompact-hook.sh'
|
|
106
|
-
];
|
|
107
|
-
try {
|
|
108
|
-
// Read the universal template once
|
|
109
|
-
const templatePath = path.join(templatesDir, universalTemplate);
|
|
110
|
-
const templateContent = fs.readFileSync(templatePath, 'utf8');
|
|
111
|
-
// Replace placeholders with actual values
|
|
112
|
-
const hookContent = templateContent
|
|
113
|
-
.replace(/\{\{API_URL\}\}/g, this.config.apiUrl)
|
|
114
|
-
.replace(/\{\{ACCESS_TOKEN\}\}/g, this.config.accessToken || '');
|
|
115
|
-
// Copy the same universal script to all hook locations
|
|
116
|
-
// The script auto-detects its hook type at runtime
|
|
117
|
-
for (const destination of hookDestinations) {
|
|
118
|
-
try {
|
|
119
|
-
const hookPath = path.join(HOOKS_DIR, destination);
|
|
120
|
-
fs.writeFileSync(hookPath, hookContent);
|
|
121
|
-
fs.chmodSync(hookPath, '755');
|
|
122
|
-
}
|
|
123
|
-
catch (error) {
|
|
124
|
-
console.error(chalk.yellow(`Warning: Could not create ${destination}:`, error));
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
console.log(chalk.green(`✅ Universal collector deployed to ${hookDestinations.length} hook locations`));
|
|
128
|
-
}
|
|
129
|
-
catch (error) {
|
|
130
|
-
console.error(chalk.red(`❌ Failed to read universal template ${universalTemplate}:`, error));
|
|
131
|
-
throw error;
|
|
132
|
-
}
|
|
156
|
+
// No shell scripts needed! Tools call CLI directly
|
|
157
|
+
console.log(chalk.green('✅ Direct CLI integration configured'));
|
|
158
|
+
console.log(chalk.cyan('💡 No shell scripts - direct CLI calls for maximum transparency'));
|
|
133
159
|
}
|
|
134
160
|
updateClaudeSettings() {
|
|
135
161
|
let settings = {};
|
|
@@ -146,21 +172,22 @@ class A24zCLI {
|
|
|
146
172
|
if (typeof settings.hooks !== 'object' || settings.hooks === null) {
|
|
147
173
|
settings.hooks = {};
|
|
148
174
|
}
|
|
149
|
-
// Configure
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
175
|
+
// Configure direct CLI calls with tool-specific endpoints
|
|
176
|
+
// Tools call "a24z hook claude-code" for tool-specific processing
|
|
177
|
+
const directCliCommand = `a24z hook ${this.config.tool || 'claude-code'}`;
|
|
178
|
+
// Configure the same direct CLI command for all hook types
|
|
179
|
+
const hookTypes = [
|
|
180
|
+
'PreToolUse', 'PostToolUse', 'UserPromptSubmit',
|
|
181
|
+
'SessionStart', 'SessionEnd', 'SubagentStop',
|
|
182
|
+
'Notification', 'Stop', 'PreCompact'
|
|
183
|
+
];
|
|
184
|
+
for (const hookType of hookTypes) {
|
|
185
|
+
this.addOrUpdateHook(settings, hookType, directCliCommand);
|
|
186
|
+
}
|
|
159
187
|
// Create directory and write settings
|
|
160
188
|
fs.mkdirSync(path.dirname(CLAUDE_SETTINGS_FILE), { recursive: true });
|
|
161
189
|
fs.writeFileSync(CLAUDE_SETTINGS_FILE, JSON.stringify(settings, null, 2));
|
|
162
190
|
}
|
|
163
|
-
// No binary helper shim; hooks will call `a24z hook` directly for transparency.
|
|
164
191
|
/**
|
|
165
192
|
* Merge-safe helper: adds our command without duplicating or overwriting others.
|
|
166
193
|
* - Creates the hook type array if missing
|
|
@@ -179,7 +206,8 @@ class A24zCLI {
|
|
|
179
206
|
settings.hooks[hookType] = [newEntry];
|
|
180
207
|
return;
|
|
181
208
|
}
|
|
182
|
-
const
|
|
209
|
+
const toolName = this.config.tool || 'claude-code';
|
|
210
|
+
const hasOurCommand = existing.some(e => e.hooks.some(h => typeof h.command === 'string' && h.command.includes('a24z') && h.command.includes(toolName)));
|
|
183
211
|
if (!hasOurCommand) {
|
|
184
212
|
existing.push(newEntry);
|
|
185
213
|
return;
|
|
@@ -205,7 +233,7 @@ class A24zCLI {
|
|
|
205
233
|
// Ensure we have the latest client ID from environment
|
|
206
234
|
if (!this.config.clientId || this.config.clientId === 'client_01K4ZPKST26YPKMQBGQW7HZ4SB') {
|
|
207
235
|
this.config.clientId = process.env.WORKOS_CLIENT_ID || this.config.clientId;
|
|
208
|
-
this.saveConfig();
|
|
236
|
+
this.saveConfig();
|
|
209
237
|
}
|
|
210
238
|
// Step 1: Request device authorization (OAuth 2.1 Device Flow)
|
|
211
239
|
console.log(chalk.gray(`Requesting device auth from: ${this.config.apiUrl}/api/auth/device`));
|
|
@@ -216,7 +244,7 @@ class A24zCLI {
|
|
|
216
244
|
console.log(chalk.gray('Device response:', JSON.stringify(deviceResponse.data, null, 2)));
|
|
217
245
|
const { device_code, user_code, verification_uri, verification_uri_complete, expires_in, interval } = deviceResponse.data.data;
|
|
218
246
|
// Step 2: Display user code and instructions
|
|
219
|
-
console.log(chalk.green('
|
|
247
|
+
console.log(chalk.green('📱 Complete authentication in your browser:'));
|
|
220
248
|
console.log(chalk.cyan(` Go to: ${verification_uri}`));
|
|
221
249
|
console.log(chalk.yellow(` Enter code: ${user_code}`));
|
|
222
250
|
if (verification_uri_complete) {
|
|
@@ -240,17 +268,16 @@ class A24zCLI {
|
|
|
240
268
|
// Step 4: Store tokens
|
|
241
269
|
this.config.accessToken = tokens.access_token;
|
|
242
270
|
this.saveConfig();
|
|
243
|
-
|
|
244
|
-
await this.install();
|
|
245
|
-
console.log(chalk.green('\\n✅ Login successful!'));
|
|
271
|
+
console.log(chalk.green('✅ Login successful!'));
|
|
246
272
|
if (tokens.user?.email) {
|
|
247
273
|
console.log(chalk.white('👤 User:'), chalk.cyan(tokens.user.email));
|
|
248
274
|
}
|
|
249
|
-
console.log(chalk.green('
|
|
275
|
+
console.log(chalk.green('Your tool calls will now be associated with your organization.'));
|
|
276
|
+
console.log(chalk.cyan('💡 Tip: Run "a24z install <tool>" to set up hooks for your preferred AI tool'));
|
|
250
277
|
}
|
|
251
278
|
catch (error) {
|
|
252
279
|
console.error(chalk.red('❌ Login failed:'), error);
|
|
253
|
-
console.log(chalk.yellow('
|
|
280
|
+
console.log(chalk.yellow('Make sure the A24Z service is available and try again.'));
|
|
254
281
|
process.exit(1);
|
|
255
282
|
}
|
|
256
283
|
}
|
|
@@ -299,32 +326,18 @@ class A24zCLI {
|
|
|
299
326
|
}
|
|
300
327
|
throw new Error('Authentication timeout');
|
|
301
328
|
}
|
|
302
|
-
async uninstall() {
|
|
303
|
-
|
|
329
|
+
async uninstall(tool) {
|
|
330
|
+
// Validate tool input
|
|
331
|
+
let validatedTool;
|
|
332
|
+
try {
|
|
333
|
+
validatedTool = validateTool(tool);
|
|
334
|
+
}
|
|
335
|
+
catch (error) {
|
|
336
|
+
console.error(chalk.red('❌ Error:'), error instanceof Error ? error.message : error);
|
|
337
|
+
process.exit(1);
|
|
338
|
+
}
|
|
339
|
+
const spinner = ora(`Uninstalling A24Z hooks for ${validatedTool}...`).start();
|
|
304
340
|
try {
|
|
305
|
-
// Remove all A24Z hook scripts
|
|
306
|
-
const hookFiles = [
|
|
307
|
-
'a24z-pre-hook.sh',
|
|
308
|
-
'a24z-post-hook.sh',
|
|
309
|
-
'a24z-user-prompt-submit-hook.sh',
|
|
310
|
-
'a24z-session-start-hook.sh',
|
|
311
|
-
'a24z-session-end-hook.sh',
|
|
312
|
-
'a24z-subagent-stop-hook.sh',
|
|
313
|
-
'a24z-notification-hook.sh',
|
|
314
|
-
'a24z-stop-hook.sh',
|
|
315
|
-
'a24z-precompact-hook.sh'
|
|
316
|
-
];
|
|
317
|
-
for (const hookFile of hookFiles) {
|
|
318
|
-
const hookPath = path.join(HOOKS_DIR, hookFile);
|
|
319
|
-
if (fs.existsSync(hookPath)) {
|
|
320
|
-
try {
|
|
321
|
-
fs.unlinkSync(hookPath);
|
|
322
|
-
}
|
|
323
|
-
catch (error) {
|
|
324
|
-
console.warn(chalk.yellow(`Warning: Could not remove ${hookFile}`));
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
341
|
// Update Claude settings: remove only our hooks, preserve all other user hooks/settings
|
|
329
342
|
if (fs.existsSync(CLAUDE_SETTINGS_FILE)) {
|
|
330
343
|
try {
|
|
@@ -341,7 +354,8 @@ class A24zCLI {
|
|
|
341
354
|
entry.hooks = entry.hooks.filter(h => {
|
|
342
355
|
if (typeof h.command !== 'string')
|
|
343
356
|
return true;
|
|
344
|
-
|
|
357
|
+
// Remove commands that include both 'a24z' and the validated tool
|
|
358
|
+
return !(h.command.includes('a24z') && h.command.includes(validatedTool));
|
|
345
359
|
});
|
|
346
360
|
}
|
|
347
361
|
}
|
|
@@ -355,7 +369,6 @@ class A24zCLI {
|
|
|
355
369
|
}
|
|
356
370
|
}
|
|
357
371
|
}
|
|
358
|
-
// Keep hooks object even if empty to avoid surprising deletions
|
|
359
372
|
}
|
|
360
373
|
}
|
|
361
374
|
fs.writeFileSync(CLAUDE_SETTINGS_FILE, JSON.stringify(parsed, null, 2));
|
|
@@ -368,8 +381,8 @@ class A24zCLI {
|
|
|
368
381
|
if (fs.existsSync(CONFIG_FILE)) {
|
|
369
382
|
fs.unlinkSync(CONFIG_FILE);
|
|
370
383
|
}
|
|
371
|
-
spinner.succeed(
|
|
372
|
-
console.log(chalk.green(
|
|
384
|
+
spinner.succeed(`A24Z hooks uninstalled successfully for ${tool}!`);
|
|
385
|
+
console.log(chalk.green(`${tool} will no longer send observability data.`));
|
|
373
386
|
}
|
|
374
387
|
catch (error) {
|
|
375
388
|
spinner.fail('Uninstallation failed');
|
|
@@ -378,82 +391,33 @@ class A24zCLI {
|
|
|
378
391
|
}
|
|
379
392
|
}
|
|
380
393
|
async status() {
|
|
381
|
-
console.log(chalk.blue('📊 A24Z Observability Status
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
{ name: 'SessionEnd', file: 'a24z-session-end-hook.sh' },
|
|
389
|
-
{ name: 'SubagentStop', file: 'a24z-subagent-stop-hook.sh' },
|
|
390
|
-
{ name: 'Notification', file: 'a24z-notification-hook.sh' },
|
|
391
|
-
{ name: 'Stop', file: 'a24z-stop-hook.sh' },
|
|
392
|
-
{ name: 'PreCompact', file: 'a24z-precompact-hook.sh' }
|
|
393
|
-
];
|
|
394
|
-
const settingsExists = fs.existsSync(CLAUDE_SETTINGS_FILE);
|
|
395
|
-
let installedHooks = 0;
|
|
396
|
-
console.log(chalk.white('🔧 Hook Installation Status:'));
|
|
397
|
-
for (const hook of hookChecks) {
|
|
398
|
-
const exists = fs.existsSync(path.join(HOOKS_DIR, hook.file));
|
|
399
|
-
if (exists)
|
|
400
|
-
installedHooks++;
|
|
401
|
-
console.log(` • ${hook.name}: ${exists ? chalk.green('✅ Installed') : chalk.red('❌ Not installed')}`);
|
|
402
|
-
}
|
|
403
|
-
console.log(`\\n • Total hooks installed: ${chalk.cyan(`${installedHooks}/9`)}`);
|
|
404
|
-
console.log(` • Claude settings: ${settingsExists ? chalk.green('✅ Configured') : chalk.red('❌ Not configured')}`);
|
|
405
|
-
console.log(` • Collector type: ${chalk.cyan('Universal CLI (always enhanced)')}`);
|
|
406
|
-
console.log(` • CLI version: ${chalk.cyan(getCliVersion())}`);
|
|
394
|
+
console.log(chalk.blue('📊 A24Z Observability Status'));
|
|
395
|
+
const currentTool = this.getCurrentTool();
|
|
396
|
+
console.log(chalk.white('🔧 Installation Status:'));
|
|
397
|
+
console.log(` • Direct CLI integration: ${chalk.green('✅ Configured')}`);
|
|
398
|
+
if (currentTool) {
|
|
399
|
+
console.log(` • Current tool: ${chalk.cyan(currentTool)}`);
|
|
400
|
+
}
|
|
407
401
|
if (this.config.installedAt) {
|
|
408
402
|
console.log(` • Installed at: ${chalk.cyan(new Date(this.config.installedAt).toLocaleString())}`);
|
|
409
403
|
}
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
console.log(chalk.white('\\n🎯 Enhanced CLI Collector Features:'));
|
|
413
|
-
console.log(` • Always uses enhanced payload format`);
|
|
414
|
-
console.log(` • Auto-detects Claude version or defaults to 'unknown'`);
|
|
415
|
-
console.log(` • Full environment snapshot capture`);
|
|
416
|
-
console.log(` • Clear CLI version tracking`);
|
|
417
|
-
console.log(` • Structured metadata with platform detection`);
|
|
418
|
-
console.log(` • Single unified payload format (no legacy modes)`);
|
|
419
|
-
}
|
|
420
|
-
console.log(chalk.white('\\n🔐 Authentication Status:'));
|
|
404
|
+
console.log(` • CLI version: ${chalk.cyan(getCliVersion())}`);
|
|
405
|
+
console.log(chalk.white('🔐 Authentication Status:'));
|
|
421
406
|
console.log(` • Logged in: ${this.config.accessToken ? chalk.green('✅ Yes') : chalk.red('❌ No')}`);
|
|
422
|
-
console.log(chalk.white('
|
|
407
|
+
console.log(chalk.white('⚙️ Configuration:'));
|
|
423
408
|
console.log(` • API URL: ${chalk.cyan(this.config.apiUrl)}`);
|
|
424
|
-
console.log(` • Client ID: ${chalk.cyan(this.config.clientId)}`);
|
|
425
|
-
console.log(` • Hooks directory: ${chalk.cyan(HOOKS_DIR)}`);
|
|
426
409
|
console.log(` • Settings file: ${chalk.cyan(CLAUDE_SETTINGS_FILE)}`);
|
|
427
|
-
// Test API connectivity
|
|
428
|
-
console.log(chalk.white('\\n🌐 Testing API connectivity...'));
|
|
429
|
-
await this.testConnection();
|
|
430
410
|
}
|
|
431
|
-
async
|
|
411
|
+
async hook(tool = 'claude-code') {
|
|
412
|
+
// Validate tool input
|
|
413
|
+
let validatedTool;
|
|
432
414
|
try {
|
|
433
|
-
|
|
434
|
-
if (this.config.accessToken) {
|
|
435
|
-
headers.Authorization = `Bearer ${this.config.accessToken}`;
|
|
436
|
-
}
|
|
437
|
-
const response = await axios.get(`${this.config.apiUrl}/api/v1/health`, { headers });
|
|
438
|
-
if (response.status === 200) {
|
|
439
|
-
console.log(` ${chalk.green('✅ API is reachable')}`);
|
|
440
|
-
if (this.config.accessToken) {
|
|
441
|
-
console.log(` ${chalk.green('🔐 Authentication verified')}`);
|
|
442
|
-
}
|
|
443
|
-
}
|
|
415
|
+
validatedTool = validateTool(tool);
|
|
444
416
|
}
|
|
445
417
|
catch (error) {
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
console.log(` ${chalk.white('Run:')} ${chalk.yellow('a24z login')}`);
|
|
449
|
-
}
|
|
450
|
-
else {
|
|
451
|
-
console.log(` ${chalk.red('❌ API is not reachable')}`);
|
|
452
|
-
console.log(` ${chalk.white('Make sure the A24Z service is running')}`);
|
|
453
|
-
}
|
|
418
|
+
console.error('[a24z hook] Error: Invalid tool name:', error instanceof Error ? error.message : error);
|
|
419
|
+
return; // Don't exit to avoid breaking Claude
|
|
454
420
|
}
|
|
455
|
-
}
|
|
456
|
-
async hook(hookTypeArg) {
|
|
457
421
|
// Read stdin fully
|
|
458
422
|
const readStdin = async () => new Promise((resolve) => {
|
|
459
423
|
let data = '';
|
|
@@ -464,86 +428,32 @@ class A24zCLI {
|
|
|
464
428
|
});
|
|
465
429
|
try {
|
|
466
430
|
const raw = await readStdin();
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
console.error(`[a24z CLI]
|
|
470
|
-
|
|
471
|
-
// Build environment snapshot
|
|
472
|
-
const safe = (v) => (v && v.length > 0 ? v : null);
|
|
473
|
-
const environment = {
|
|
474
|
-
CLAUDE_USER: safe(process.env.CLAUDE_USER),
|
|
475
|
-
CLAUDE_SESSION_ID: safe(process.env.CLAUDE_SESSION_ID),
|
|
476
|
-
CLAUDE_PROJECT_DIR: safe(process.env.CLAUDE_PROJECT_DIR),
|
|
477
|
-
CLAUDE_TRANSCRIPT_PATH: safe(process.env.CLAUDE_TRANSCRIPT_PATH),
|
|
478
|
-
CLAUDE_WORKING_DIR: safe(process.env.CLAUDE_WORKING_DIR),
|
|
479
|
-
CLAUDE_HOOK_EVENT_NAME: hookType,
|
|
480
|
-
CLAUDE_VERSION: safe(process.env.CLAUDE_VERSION),
|
|
481
|
-
CLAUDE_BUILD: safe(process.env.CLAUDE_BUILD),
|
|
482
|
-
PWD: safe(process.env.PWD),
|
|
483
|
-
USER: safe(process.env.USER),
|
|
484
|
-
HOME: safe(process.env.HOME),
|
|
485
|
-
HOSTNAME: safe(process.env.HOSTNAME),
|
|
486
|
-
SHELL: safe(process.env.SHELL),
|
|
487
|
-
LANG: safe(process.env.LANG),
|
|
488
|
-
TZ: safe(process.env.TZ),
|
|
489
|
-
TERM: safe(process.env.TERM),
|
|
490
|
-
NODE_VERSION: process.version,
|
|
491
|
-
captured_at: new Date().toISOString(),
|
|
492
|
-
};
|
|
493
|
-
const endpoint = `${this.config.apiUrl}/api/v1/hooks/ingest`;
|
|
494
|
-
let rawInput = raw;
|
|
495
|
-
try {
|
|
496
|
-
rawInput = JSON.parse(raw);
|
|
497
|
-
}
|
|
498
|
-
catch { /* raw passthrough */ }
|
|
499
|
-
// Always use enhanced format - much cleaner and more consistent
|
|
500
|
-
const payload = {
|
|
501
|
-
source_tool: {
|
|
502
|
-
name: 'claude-code',
|
|
503
|
-
version: environment.CLAUDE_VERSION || 'unknown',
|
|
504
|
-
build: environment.CLAUDE_BUILD || 'unknown',
|
|
505
|
-
platform: process.platform,
|
|
506
|
-
detected_at: new Date().toISOString()
|
|
507
|
-
},
|
|
508
|
-
hook_schema: {
|
|
509
|
-
version: 'v1.0',
|
|
510
|
-
format: 'anthropic_official',
|
|
511
|
-
detected_at: new Date().toISOString()
|
|
512
|
-
},
|
|
513
|
-
hook_type: hookType,
|
|
514
|
-
timestamp: new Date().toISOString(),
|
|
515
|
-
raw_input: rawInput,
|
|
516
|
-
environment,
|
|
517
|
-
collector_metadata: {
|
|
518
|
-
cli_version: getCliVersion(), // ✅ Clear naming - this is the CLI version
|
|
519
|
-
deployment_mode: 'cli_subcommand',
|
|
520
|
-
configuration_version: '1.0',
|
|
521
|
-
enhanced_features: ['env_snapshot', 'auto_tool_detection', 'unified_payload'],
|
|
522
|
-
hook_type_detection_method: 'arg_or_env'
|
|
523
|
-
}
|
|
524
|
-
};
|
|
431
|
+
// Minimal processing - just send raw data to backend for obfuscation
|
|
432
|
+
const endpoint = `${this.config.apiUrl}/api/v1/${validatedTool}/hooks`;
|
|
433
|
+
console.error(`[a24z CLI] 📤 Sending raw payload to ${endpoint}`);
|
|
434
|
+
// Send raw data - let backend handle all processing
|
|
525
435
|
const headers = { 'Content-Type': 'application/json' };
|
|
526
436
|
if (this.config.accessToken)
|
|
527
437
|
headers.Authorization = `Bearer ${this.config.accessToken}`;
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
438
|
+
// Fire-and-forget: Don't wait for response to avoid blocking Claude
|
|
439
|
+
axios.post(endpoint, raw, { headers, timeout: 5000 })
|
|
440
|
+
.then((response) => {
|
|
441
|
+
console.error(`[a24z CLI] ✅ Successfully sent raw data`);
|
|
442
|
+
})
|
|
443
|
+
.catch((error) => {
|
|
444
|
+
console.error(`[a24z CLI] ❌ Failed to send: ${error.message}`);
|
|
445
|
+
// Check for authentication errors
|
|
446
|
+
if (error.response?.status === 401) {
|
|
447
|
+
const authError = error.response.data?.error || 'Authentication required';
|
|
448
|
+
console.error(`[a24z CLI] 🔐 Authentication failed: ${authError}`);
|
|
449
|
+
console.error(`[a24z CLI] 💡 Please run 'a24z login' to authenticate`);
|
|
450
|
+
console.error(`[a24z CLI] 📊 Your tools will continue to work, but data won't be logged until authenticated`);
|
|
451
|
+
}
|
|
452
|
+
});
|
|
453
|
+
console.error(`[a24z CLI] Raw payload dispatched (fire-and-forget)`);
|
|
537
454
|
}
|
|
538
455
|
catch (error) {
|
|
539
|
-
|
|
540
|
-
console.error('[a24z hook] Error:', error instanceof Error ? error.message : error);
|
|
541
|
-
if (error instanceof Error && 'response' in error) {
|
|
542
|
-
const axiosError = error;
|
|
543
|
-
console.error('[a24z hook] Response status:', axiosError.response?.status);
|
|
544
|
-
console.error('[a24z hook] Response data:', JSON.stringify(axiosError.response?.data, null, 2));
|
|
545
|
-
}
|
|
546
|
-
console.error('[a24z hook] Full error object:', JSON.stringify(error, Object.getOwnPropertyNames(error), 2));
|
|
456
|
+
console.error('[a24z hook] Error sending payload:', error instanceof Error ? error.message : error);
|
|
547
457
|
}
|
|
548
458
|
finally {
|
|
549
459
|
// Always pass through stdin unchanged
|
|
@@ -572,24 +482,47 @@ function getCliVersion() {
|
|
|
572
482
|
}
|
|
573
483
|
return "0.0.0";
|
|
574
484
|
}
|
|
485
|
+
/**
|
|
486
|
+
* Cool a24z ASCII logo
|
|
487
|
+
*/
|
|
488
|
+
function getA24zLogo() {
|
|
489
|
+
return `
|
|
490
|
+
░▒▓██████▓▒░░▒▓███████▓▒░░▒▓█▓▒░░▒▓█▓▒░▒▓████████▓▒░
|
|
491
|
+
░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░
|
|
492
|
+
░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ ░▒▓██▓▒░
|
|
493
|
+
░▒▓████████▓▒░░▒▓██████▓▒░░▒▓████████▓▒░ ░▒▓██▓▒░
|
|
494
|
+
░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ ░▒▓█▓▒░░▒▓██▓▒░
|
|
495
|
+
░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ ░▒▓█▓▒░▒▓█▓▒░
|
|
496
|
+
░▒▓█▓▒░░▒▓█▓▒░▒▓████████▓▒░ ░▒▓█▓▒░▒▓████████▓▒░
|
|
497
|
+
`;
|
|
498
|
+
}
|
|
499
|
+
;
|
|
575
500
|
program
|
|
576
501
|
.name('a24z')
|
|
577
|
-
.description(
|
|
578
|
-
|
|
502
|
+
.description(`${getA24zLogo()}
|
|
503
|
+
Monitor and analyze your Coding Agents`)
|
|
504
|
+
.version(getCliVersion()).showHelpAfterError().showSuggestionAfterError(true);
|
|
505
|
+
// Add custom version command with logo
|
|
506
|
+
program
|
|
507
|
+
.command('version')
|
|
508
|
+
.description('Show version information with logo')
|
|
509
|
+
.action(() => {
|
|
510
|
+
console.log(getA24zLogo());
|
|
511
|
+
console.log(chalk.cyan(`A24Z Observability CLI v${getCliVersion()}`));
|
|
512
|
+
console.log('');
|
|
513
|
+
});
|
|
579
514
|
program
|
|
580
|
-
.command('install')
|
|
581
|
-
.description('Install A24Z observability hooks for
|
|
582
|
-
.option('--api-url <url>', 'Set the
|
|
583
|
-
.
|
|
584
|
-
.
|
|
585
|
-
await cli.install({
|
|
515
|
+
.command('install <tool>')
|
|
516
|
+
.description('Install A24Z observability hooks for a specific tool')
|
|
517
|
+
.option('--api-url <url>', 'Set the a24z api url')
|
|
518
|
+
.action(async (tool, options) => {
|
|
519
|
+
await cli.install(tool, {
|
|
586
520
|
apiUrl: options.apiUrl,
|
|
587
|
-
clientId: options.clientId,
|
|
588
521
|
});
|
|
589
522
|
});
|
|
590
523
|
program
|
|
591
524
|
.command('login')
|
|
592
|
-
.description('Authenticate with A24Z
|
|
525
|
+
.description('Authenticate with A24Z')
|
|
593
526
|
.action(async () => {
|
|
594
527
|
await cli.login();
|
|
595
528
|
});
|
|
@@ -600,18 +533,16 @@ program
|
|
|
600
533
|
await cli.status();
|
|
601
534
|
});
|
|
602
535
|
program
|
|
603
|
-
.command('uninstall')
|
|
604
|
-
.description('Remove A24Z observability hooks')
|
|
605
|
-
.action(async () => {
|
|
606
|
-
await cli.uninstall();
|
|
536
|
+
.command('uninstall <tool>')
|
|
537
|
+
.description('Remove A24Z observability hooks for a specific tool')
|
|
538
|
+
.action(async (tool) => {
|
|
539
|
+
await cli.uninstall(tool);
|
|
607
540
|
});
|
|
608
541
|
program
|
|
609
|
-
.command('hook')
|
|
610
|
-
.description('Internal: process a
|
|
611
|
-
.
|
|
612
|
-
.
|
|
613
|
-
await cli.hook(options.type);
|
|
542
|
+
.command('hook <tool>')
|
|
543
|
+
.description('Internal: process a hook payload from stdin and send to A24Z')
|
|
544
|
+
.action(async (tool) => {
|
|
545
|
+
await cli.hook(tool);
|
|
614
546
|
});
|
|
615
|
-
// Parse command line arguments
|
|
616
547
|
program.parse();
|
|
617
548
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "a24z",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.11",
|
|
4
4
|
"description": "AI Agent Observability CLI - Monitor and analyze your AI tool performance",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -10,14 +10,8 @@
|
|
|
10
10
|
"files": [
|
|
11
11
|
"bin/",
|
|
12
12
|
"dist/",
|
|
13
|
-
"templates/",
|
|
14
13
|
"README.md"
|
|
15
14
|
],
|
|
16
|
-
"scripts": {
|
|
17
|
-
"build": "tsc",
|
|
18
|
-
"prepublishOnly": "npm run build",
|
|
19
|
-
"test": "echo \"Error: no test specified\" && exit 1"
|
|
20
|
-
},
|
|
21
15
|
"keywords": [
|
|
22
16
|
"claude",
|
|
23
17
|
"ai",
|
|
@@ -28,30 +22,26 @@
|
|
|
28
22
|
"analytics",
|
|
29
23
|
"performance"
|
|
30
24
|
],
|
|
31
|
-
"author": "
|
|
32
|
-
"license": "MIT",
|
|
33
|
-
"repository": {
|
|
34
|
-
"type": "git",
|
|
35
|
-
"url": "https://github.com/brandonin/a24z-observability.git",
|
|
36
|
-
"directory": "packages/a24z-cli"
|
|
37
|
-
},
|
|
25
|
+
"author": "a24z",
|
|
38
26
|
"homepage": "https://a24z.ai",
|
|
39
27
|
"dependencies": {
|
|
40
28
|
"axios": "^1.6.2",
|
|
41
29
|
"chalk": "^5.3.0",
|
|
42
30
|
"commander": "^11.1.0",
|
|
43
|
-
"dotenv": "^17.2.2",
|
|
44
31
|
"inquirer": "^9.2.12",
|
|
45
32
|
"open": "^9.1.0",
|
|
46
33
|
"ora": "^7.0.1"
|
|
47
34
|
},
|
|
48
35
|
"devDependencies": {
|
|
49
|
-
"@repo/types": "workspace:*",
|
|
50
36
|
"@types/inquirer": "^9.0.7",
|
|
51
37
|
"@types/node": "^20.10.0",
|
|
52
|
-
"typescript": "^5.3.2"
|
|
38
|
+
"typescript": "^5.3.2",
|
|
39
|
+
"@repo/types": "1.0.0"
|
|
53
40
|
},
|
|
54
41
|
"engines": {
|
|
55
42
|
"node": ">=16.0.0"
|
|
43
|
+
},
|
|
44
|
+
"scripts": {
|
|
45
|
+
"build": "tsc"
|
|
56
46
|
}
|
|
57
|
-
}
|
|
47
|
+
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
set -euo pipefail
|
|
5
|
-
|
|
6
|
-
CMD="a24z hook"
|
|
7
|
-
|
|
8
|
-
# Derive hook type from env or script name
|
|
9
|
-
HOOK_NAME="$(basename "$0")"
|
|
10
|
-
HOOK_TYPE="${CLAUDE_HOOK_EVENT_NAME:-}"
|
|
11
|
-
if [ -z "$HOOK_TYPE" ]; then
|
|
12
|
-
case "$HOOK_NAME" in
|
|
13
|
-
*pre-hook*) HOOK_TYPE="PreToolUse" ;;
|
|
14
|
-
*post-hook*) HOOK_TYPE="PostToolUse" ;;
|
|
15
|
-
*user-prompt-submit*) HOOK_TYPE="UserPromptSubmit" ;;
|
|
16
|
-
*session-start*) HOOK_TYPE="SessionStart" ;;
|
|
17
|
-
*session-end*) HOOK_TYPE="SessionEnd" ;;
|
|
18
|
-
*subagent-stop*) HOOK_TYPE="SubagentStop" ;;
|
|
19
|
-
*notification*) HOOK_TYPE="Notification" ;;
|
|
20
|
-
*stop-hook*) HOOK_TYPE="Stop" ;;
|
|
21
|
-
*precompact*) HOOK_TYPE="PreCompact" ;;
|
|
22
|
-
*) HOOK_TYPE="Unknown" ;;
|
|
23
|
-
esac
|
|
24
|
-
fi
|
|
25
|
-
|
|
26
|
-
# Read stdin and pass through to CLI subcommand
|
|
27
|
-
STDIN_DATA=$(cat)
|
|
28
|
-
|
|
29
|
-
if command -v a24z >/dev/null 2>&1; then
|
|
30
|
-
echo "[a24z collector] Executing: a24z hook --type $HOOK_TYPE" >&2
|
|
31
|
-
echo "[a24z collector] Input length: ${#STDIN_DATA}" >&2
|
|
32
|
-
printf "%s" "$STDIN_DATA" | a24z hook --type "$HOOK_TYPE" || {
|
|
33
|
-
echo "[a24z collector] Command failed with exit code $?" >&2
|
|
34
|
-
true
|
|
35
|
-
}
|
|
36
|
-
else
|
|
37
|
-
echo "[a24z] CLI not found in PATH; passing through input" >&2
|
|
38
|
-
# If CLI not found, pass-through so Claude continues unaffected
|
|
39
|
-
printf "%s" "$STDIN_DATA"
|
|
40
|
-
fi
|