n8n-nodes-claude-code-cli 1.0.5 → 1.0.7
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 +102 -307
- package/dist/credentials/ClaudeCodeDockerApi.credentials.d.ts.map +1 -1
- package/dist/credentials/ClaudeCodeDockerApi.credentials.js +1 -1
- package/dist/credentials/ClaudeCodeDockerApi.credentials.js.map +1 -1
- package/dist/credentials/ClaudeCodeLocalApi.credentials.d.ts.map +1 -1
- package/dist/credentials/ClaudeCodeLocalApi.credentials.js +1 -1
- package/dist/credentials/ClaudeCodeLocalApi.credentials.js.map +1 -1
- package/dist/credentials/ClaudeCodeSshApi.credentials.d.ts.map +1 -1
- package/dist/credentials/ClaudeCodeSshApi.credentials.js +1 -1
- package/dist/credentials/ClaudeCodeSshApi.credentials.js.map +1 -1
- package/dist/nodes/ClaudeCode/utils/sshKeyUtils.d.ts +3 -0
- package/dist/nodes/ClaudeCode/utils/sshKeyUtils.d.ts.map +1 -1
- package/dist/nodes/ClaudeCode/utils/sshKeyUtils.js +47 -1
- package/dist/nodes/ClaudeCode/utils/sshKeyUtils.js.map +1 -1
- package/package.json +1 -2
package/README.md
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
[Getting Started](#-quick-start) •
|
|
26
26
|
[Use Cases](#-use-cases) •
|
|
27
|
-
[Documentation](
|
|
27
|
+
[Documentation](#%EF%B8%8F-node-operations)
|
|
28
28
|
|
|
29
29
|
</div>
|
|
30
30
|
|
|
@@ -32,261 +32,102 @@
|
|
|
32
32
|
|
|
33
33
|
## ✨ Features
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
Execute Claude Code locally, via SSH, or inside Docker containers
|
|
41
|
-
|
|
42
|
-
### 🔄 Session Management
|
|
43
|
-
Maintain multi-turn conversations across workflow executions
|
|
44
|
-
|
|
45
|
-
### 🎯 Tool Permissions
|
|
46
|
-
Fine-grained control over which tools Claude Code can use
|
|
47
|
-
|
|
48
|
-
</td>
|
|
49
|
-
<td width="50%">
|
|
50
|
-
|
|
51
|
-
### 📁 Context File Support
|
|
52
|
-
Include files and directories as context for code analysis
|
|
53
|
-
|
|
54
|
-
### 🧠 Multiple Models
|
|
55
|
-
Support for Opus, Sonnet, Haiku and specific versions
|
|
56
|
-
|
|
57
|
-
### 📊 Rich Output
|
|
58
|
-
Detailed metadata including costs, tokens, and session IDs
|
|
59
|
-
|
|
60
|
-
</td>
|
|
61
|
-
</tr>
|
|
62
|
-
</table>
|
|
35
|
+
| | |
|
|
36
|
+
|---|---|
|
|
37
|
+
| **🐳 Docker Execution** - Run Claude Code in isolated containers | **🔄 Session Management** - Multi-turn conversations across executions |
|
|
38
|
+
| **🎯 Tool Permissions** - Fine-grained control over allowed tools | **📁 Context Files** - Include files and directories for analysis |
|
|
39
|
+
| **🧠 Multiple Models** - Opus, Sonnet, Haiku support | **📊 Rich Output** - Costs, tokens, and session IDs |
|
|
63
40
|
|
|
64
41
|
---
|
|
65
42
|
|
|
66
43
|
## ⚡ Quick Start
|
|
67
44
|
|
|
68
|
-
|
|
69
|
-
1️⃣ Install → 2️⃣ Setup Claude Code → 3️⃣ Authenticate → 4️⃣ Create Workflow → 5️⃣ Run!
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
<details>
|
|
73
|
-
<summary><b>📋 Step-by-step guide</b></summary>
|
|
74
|
-
|
|
75
|
-
### 1️⃣ Install the node
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
#### **Install the node in n8n community nodes**
|
|
45
|
+
### 1. Install the n8n node
|
|
79
46
|
|
|
80
|
-
|
|
81
|
-
Then install the node.
|
|
47
|
+
In n8n: **Settings > Community Nodes > Install > `n8n-nodes-claude-code-cli`**
|
|
82
48
|
|
|
83
|
-
|
|
84
|
-
#### **Install the node locally with git:**
|
|
85
|
-
|
|
86
|
-
I recommend using git to install the node locally.
|
|
87
|
-
*If there is a supply chain attack, you will not be affected by the automatic updates of the community nodes of n8n. And therefore your service will not be corrupted. Supply chain attacks are very dangerous, more and more frequent and can compromise your service. It is therefore recommended to use git to install the node locally.*
|
|
49
|
+
### 2. Deploy Claude Code Runner
|
|
88
50
|
|
|
89
51
|
```bash
|
|
90
|
-
|
|
91
|
-
cd n8n-nodes-claude-code-cli
|
|
92
|
-
npm install
|
|
93
|
-
npm run build
|
|
52
|
+
mkdir -p claude-code-runner && cd claude-code-runner && curl -fsSL https://raw.githubusercontent.com/ThomasTartrau/n8n-nodes-claude-code-cli/main/docker/production/docker-compose.yml -o docker-compose.yml && curl -fsSL https://raw.githubusercontent.com/ThomasTartrau/n8n-nodes-claude-code-cli/main/docker/production/Dockerfile -o Dockerfile && docker compose up -d --build
|
|
94
53
|
```
|
|
95
54
|
|
|
55
|
+
This sets up a production-ready container with:
|
|
56
|
+
- `restart: unless-stopped` for automatic recovery
|
|
57
|
+
- Persistent volumes for workspace, Claude config, and MCP servers
|
|
58
|
+
- Healthcheck for container monitoring
|
|
96
59
|
|
|
97
|
-
|
|
60
|
+
### 3. Authenticate
|
|
98
61
|
|
|
99
62
|
```bash
|
|
100
|
-
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
**For local installation you need to add the environment variable `- N8N_CUSTOM_EXTENSIONS=/home/node/.n8n/custom` in your n8n configuration file.**
|
|
104
|
-
|
|
105
|
-
### 2️⃣ Set up Claude Code
|
|
106
|
-
|
|
107
|
-
Choose your deployment method (see [Installation](#-installation--deployment))
|
|
108
|
-
|
|
109
|
-
### 3️⃣ Authenticate with Claude
|
|
110
|
-
|
|
111
|
-
```bash
|
|
112
|
-
# For Docker
|
|
113
|
-
docker exec -it your-container-name claude login
|
|
114
|
-
|
|
115
|
-
# For SSH or Local
|
|
116
|
-
claude login
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
### 4️⃣ Create credentials in n8n
|
|
120
|
-
|
|
121
|
-
Go to **Settings → Credentials → Add Credential** and select your connection type
|
|
122
|
-
|
|
123
|
-
### 5️⃣ Add the node and run!
|
|
124
|
-
|
|
125
|
-
Search for "Claude Code" in the node panel, configure, and execute
|
|
126
|
-
|
|
127
|
-
</details>
|
|
128
|
-
|
|
129
|
-
### 🐳 Docker (Recommended)
|
|
130
|
-
|
|
131
|
-
> **Why Docker?** Isolation, easy setup, portability, and security.
|
|
132
|
-
|
|
133
|
-
<details>
|
|
134
|
-
<summary><b>Option 1: Node.js Container (Lightweight)</b></summary>
|
|
135
|
-
|
|
136
|
-
Best for code analysis without system tools:
|
|
137
|
-
|
|
138
|
-
```dockerfile
|
|
139
|
-
FROM node:24-slim
|
|
140
|
-
|
|
141
|
-
# Install Claude Code CLI
|
|
142
|
-
RUN npm install -g @anthropic-ai/claude-code
|
|
143
|
-
|
|
144
|
-
# Set up workspace
|
|
145
|
-
WORKDIR /workspace
|
|
146
|
-
|
|
147
|
-
# Keep container running
|
|
148
|
-
CMD ["tail", "-f", "/dev/null"]
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
```yaml
|
|
152
|
-
# docker-compose.yml
|
|
153
|
-
services:
|
|
154
|
-
claude-code-runner:
|
|
155
|
-
build: .
|
|
156
|
-
volumes:
|
|
157
|
-
- ./workspace:/workspace
|
|
63
|
+
docker exec -it claude-code-runner claude login
|
|
158
64
|
```
|
|
159
65
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
<details>
|
|
163
|
-
<summary><b>Option 2: Debian Container (Full Tooling)</b></summary>
|
|
164
|
-
|
|
165
|
-
Best when Claude Code needs system tools (git, build tools, etc.):
|
|
166
|
-
|
|
167
|
-
```dockerfile
|
|
168
|
-
FROM debian:bookworm-slim
|
|
169
|
-
|
|
170
|
-
# Install Node.js and common tools
|
|
171
|
-
RUN apt-get update && apt-get install -y \
|
|
172
|
-
curl git build-essential \
|
|
173
|
-
&& curl -fsSL https://deb.nodesource.com/setup_24.x | bash - \
|
|
174
|
-
&& apt-get install -y nodejs \
|
|
175
|
-
&& rm -rf /var/lib/apt/lists/*
|
|
176
|
-
|
|
177
|
-
# Install Claude Code CLI
|
|
178
|
-
RUN npm install -g @anthropic-ai/claude-code
|
|
66
|
+
Follow the browser prompts to complete authentication.
|
|
179
67
|
|
|
180
|
-
|
|
181
|
-
CMD ["tail", "-f", "/dev/null"]
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
</details>
|
|
68
|
+
### 4. Configure n8n credentials
|
|
185
69
|
|
|
186
|
-
**🔑 Authenticate:**
|
|
187
|
-
```bash
|
|
188
|
-
docker exec -it claude-code-runner claude login
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
**⚙️ n8n Credentials:**
|
|
192
70
|
| Parameter | Value |
|
|
193
71
|
|-----------|-------|
|
|
72
|
+
| Connection Type | Docker |
|
|
194
73
|
| Container Name | `claude-code-runner` |
|
|
195
74
|
| Working Directory | `/workspace` |
|
|
196
75
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
### 🔐 SSH (Alternative)
|
|
200
|
-
|
|
201
|
-
> **Why SSH?** Full system access and dedicated resource isolation.
|
|
202
|
-
|
|
203
|
-
<details>
|
|
204
|
-
<summary><b>Setup Instructions</b></summary>
|
|
205
|
-
|
|
206
|
-
1. **Set up a VM** (AWS EC2, GCP, DigitalOcean, etc.)
|
|
207
|
-
|
|
208
|
-
2. **Install Claude Code:**
|
|
209
|
-
```bash
|
|
210
|
-
# Install Node.js
|
|
211
|
-
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
|
|
212
|
-
sudo apt-get install -y nodejs
|
|
213
|
-
|
|
214
|
-
# Install Claude Code
|
|
215
|
-
npm install -g @anthropic-ai/claude-code
|
|
216
|
-
|
|
217
|
-
# Authenticate
|
|
218
|
-
claude login
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
3. **Configure SSH** with key-based authentication
|
|
222
|
-
|
|
223
|
-
</details>
|
|
224
|
-
|
|
225
|
-
**⚙️ n8n Credentials:**
|
|
226
|
-
| Parameter | Value |
|
|
227
|
-
|-----------|-------|
|
|
228
|
-
| Host | Your VM IP/hostname |
|
|
229
|
-
| Port | `22` |
|
|
230
|
-
| Auth Method | `privateKey` |
|
|
231
|
-
|
|
232
|
-
---
|
|
233
|
-
|
|
234
|
-
### 💻 Local (Not Recommended)
|
|
235
|
-
|
|
236
|
-
> ⚠️ **Security concerns** - Claude Code runs in the same context as n8n
|
|
237
|
-
|
|
238
|
-
<details>
|
|
239
|
-
<summary><b>Why not recommended?</b></summary>
|
|
240
|
-
|
|
241
|
-
- Security risks (shared execution context)
|
|
242
|
-
- Resource contention
|
|
243
|
-
- Harder to manage and update
|
|
76
|
+
### 5. Start automating 🚀
|
|
244
77
|
|
|
245
|
-
|
|
246
|
-
1. Install Claude Code inside your n8n container
|
|
247
|
-
2. Run `claude login`
|
|
248
|
-
3. Use "Local" connection mode
|
|
249
|
-
|
|
250
|
-
</details>
|
|
78
|
+
Search "Claude Code" in n8n node panel and create your first workflow.
|
|
251
79
|
|
|
252
80
|
---
|
|
253
81
|
|
|
254
|
-
##
|
|
82
|
+
## 🐳 Configuration
|
|
255
83
|
|
|
256
|
-
###
|
|
84
|
+
### Workspace Setup
|
|
257
85
|
|
|
258
|
-
|
|
86
|
+
You have two options to work with your code:
|
|
259
87
|
|
|
88
|
+
**Option 1: Clone repos inside container** (recommended for isolation)
|
|
260
89
|
```bash
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
# SSH (on remote server)
|
|
265
|
-
claude login
|
|
90
|
+
docker exec -it claude-code-runner git clone <repo-url>
|
|
91
|
+
# Or use git worktree for multiple branches
|
|
92
|
+
```
|
|
266
93
|
|
|
267
|
-
|
|
268
|
-
|
|
94
|
+
**Option 2: Mount existing projects**
|
|
95
|
+
```yaml
|
|
96
|
+
volumes:
|
|
97
|
+
- /path/to/your/project:/workspace/project-name
|
|
269
98
|
```
|
|
270
99
|
|
|
271
|
-
|
|
100
|
+
### MCP Servers
|
|
101
|
+
|
|
102
|
+
Mount your MCP configuration to enable additional tools:
|
|
272
103
|
|
|
273
|
-
|
|
104
|
+
```yaml
|
|
105
|
+
volumes:
|
|
106
|
+
# MCP servers directory
|
|
107
|
+
- ./mcp-servers:/root/.mcp
|
|
108
|
+
# Or mount your local .mcp.json (avoids versioning credentials)
|
|
109
|
+
- ~/.mcp.json:/root/.mcp.json:ro
|
|
110
|
+
```
|
|
274
111
|
|
|
275
112
|
<details>
|
|
276
|
-
<summary><b
|
|
113
|
+
<summary><b>🔐 Alternative: SSH deployment</b></summary>
|
|
277
114
|
|
|
278
|
-
|
|
115
|
+
For dedicated VM deployments (AWS EC2, GCP, etc.):
|
|
279
116
|
|
|
280
|
-
Set via environment variable:
|
|
281
117
|
```bash
|
|
282
|
-
|
|
118
|
+
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
|
|
119
|
+
sudo apt-get install -y nodejs git
|
|
120
|
+
npm install -g @anthropic-ai/claude-code
|
|
121
|
+
claude login
|
|
283
122
|
```
|
|
284
123
|
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
124
|
+
**n8n Credentials:**
|
|
125
|
+
| Parameter | Value |
|
|
126
|
+
|-----------|-------|
|
|
127
|
+
| Connection Type | SSH |
|
|
128
|
+
| Host | Your VM IP |
|
|
129
|
+
| Port | `22` |
|
|
130
|
+
| Auth Method | `privateKey` |
|
|
290
131
|
|
|
291
132
|
</details>
|
|
292
133
|
|
|
@@ -418,77 +259,25 @@ environment:
|
|
|
418
259
|
|
|
419
260
|
### 🤖 Cloud Coding Bots
|
|
420
261
|
|
|
421
|
-
Build AI coding assistants on
|
|
422
|
-
|
|
423
|
-
<table>
|
|
424
|
-
<tr>
|
|
425
|
-
<td align="center" width="25%">
|
|
426
|
-
|
|
427
|
-
**📱 Telegram**
|
|
428
|
-
|
|
429
|
-
```
|
|
430
|
-
User ──▶ Bot ──▶ Claude
|
|
431
|
-
──▶ Reply
|
|
432
|
-
```
|
|
433
|
-
|
|
434
|
-
</td>
|
|
435
|
-
<td align="center" width="25%">
|
|
436
|
-
|
|
437
|
-
**💬 Slack**
|
|
438
|
-
|
|
439
|
-
```
|
|
440
|
-
@bot ──▶ Fetch ──▶ Claude
|
|
441
|
-
──▶ Thread
|
|
442
|
-
```
|
|
443
|
-
|
|
444
|
-
</td>
|
|
445
|
-
<td align="center" width="25%">
|
|
446
|
-
|
|
447
|
-
**🎮 Discord**
|
|
448
|
-
|
|
449
|
-
```
|
|
450
|
-
!help ──▶ Parse ──▶ Claude
|
|
451
|
-
──▶ Embed
|
|
452
|
-
```
|
|
453
|
-
|
|
454
|
-
</td>
|
|
455
|
-
<td align="center" width="25%">
|
|
456
|
-
|
|
457
|
-
**🦊 GitLab/GitHub**
|
|
458
|
-
|
|
459
|
-
```
|
|
460
|
-
Comment ──▶ API ──▶ Claude
|
|
461
|
-
──▶ Reply
|
|
462
|
-
```
|
|
463
|
-
|
|
464
|
-
</td>
|
|
465
|
-
</tr>
|
|
466
|
-
</table>
|
|
467
|
-
|
|
468
|
-
<details>
|
|
469
|
-
<summary><b>Example: Telegram Bot</b></summary>
|
|
470
|
-
|
|
471
|
-
1. **Trigger**: Telegram trigger on new message
|
|
472
|
-
2. **Process**: Claude Code handles coding question
|
|
473
|
-
3. **Reply**: Send response via Telegram node
|
|
474
|
-
|
|
475
|
-
</details>
|
|
262
|
+
Build AI coding assistants on Telegram, Slack, Discord, or GitLab/GitHub.
|
|
476
263
|
|
|
477
264
|
<details>
|
|
478
|
-
<summary><b>
|
|
265
|
+
<summary><b>Examples</b></summary>
|
|
479
266
|
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
267
|
+
**📱 Telegram Bot**
|
|
268
|
+
1. Trigger: Telegram trigger on new message
|
|
269
|
+
2. Process: Claude Code handles coding question
|
|
270
|
+
3. Reply: Send response via Telegram node
|
|
483
271
|
|
|
484
|
-
|
|
272
|
+
**💬 Slack Bot**
|
|
273
|
+
1. Trigger: Slack mention or slash command
|
|
274
|
+
2. Context: Fetch relevant code from repos (optional)
|
|
275
|
+
3. Respond: Post response to channel
|
|
485
276
|
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
2. **Analyze**: Fetch issue context and code
|
|
491
|
-
3. **Comment**: Post Claude's analysis
|
|
277
|
+
**🦊 GitLab/GitHub Bot**
|
|
278
|
+
1. Trigger: Issue comment with keyword (e.g., `/claude`)
|
|
279
|
+
2. Analyze: Fetch issue context and code
|
|
280
|
+
3. Comment: Post Claude's analysis
|
|
492
281
|
|
|
493
282
|
</details>
|
|
494
283
|
|
|
@@ -524,10 +313,6 @@ Comment ──▶ API ──▶ Claude
|
|
|
524
313
|
|
|
525
314
|
## 🔒 Security
|
|
526
315
|
|
|
527
|
-
<table>
|
|
528
|
-
<tr>
|
|
529
|
-
<td width="50%">
|
|
530
|
-
|
|
531
316
|
### 🛡️ Tool Permissions
|
|
532
317
|
|
|
533
318
|
Control what Claude Code can do:
|
|
@@ -537,18 +322,11 @@ Control what Claude Code can do:
|
|
|
537
322
|
❌ Blocked: Bash(rm:*), Write(.env)
|
|
538
323
|
```
|
|
539
324
|
|
|
540
|
-
|
|
541
|
-
<td width="50%">
|
|
325
|
+
### 🐳 Isolation Best Practices
|
|
542
326
|
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
-
|
|
546
|
-
- Mount only needed directories
|
|
547
|
-
- Read-only mounts when possible
|
|
548
|
-
|
|
549
|
-
</td>
|
|
550
|
-
</tr>
|
|
551
|
-
</table>
|
|
327
|
+
- Always set specific working directory
|
|
328
|
+
- Avoid `/` or home directories
|
|
329
|
+
- Create dedicated workspace per project
|
|
552
330
|
|
|
553
331
|
<details>
|
|
554
332
|
<summary><b>🔐 Recommended Security Settings</b></summary>
|
|
@@ -559,28 +337,45 @@ Control what Claude Code can do:
|
|
|
559
337
|
- `Write(.env)` - Protect secrets
|
|
560
338
|
- `Bash(curl:*)` - Block network (if not needed)
|
|
561
339
|
|
|
562
|
-
**Isolation best practices:**
|
|
563
|
-
- Always set specific working directory
|
|
564
|
-
- Avoid `/` or home directories
|
|
565
|
-
- Create dedicated workspace per project
|
|
566
|
-
|
|
567
340
|
</details>
|
|
568
341
|
|
|
569
342
|
---
|
|
570
343
|
|
|
571
344
|
## 🤝 Contributing
|
|
572
345
|
|
|
573
|
-
|
|
346
|
+
### Development Setup
|
|
574
347
|
|
|
575
348
|
```bash
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
349
|
+
git clone https://github.com/ThomasTartrau/n8n-nodes-claude-code-cli.git
|
|
350
|
+
cd n8n-nodes-claude-code-cli
|
|
351
|
+
npm install && npm run build
|
|
579
352
|
|
|
580
|
-
#
|
|
581
|
-
|
|
353
|
+
# Start n8n + claude-code-runner for testing
|
|
354
|
+
docker compose -f docker/development/docker-compose.yml up -d --build
|
|
582
355
|
|
|
583
|
-
#
|
|
356
|
+
# Authenticate claude-code-runner
|
|
357
|
+
docker exec -it claude-code-runner claude login
|
|
358
|
+
|
|
359
|
+
# Access n8n at http://localhost:5678
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
### Docker Files Structure
|
|
363
|
+
|
|
364
|
+
```
|
|
365
|
+
docker/
|
|
366
|
+
├── development/
|
|
367
|
+
│ ├── Dockerfile # n8n with docker CLI
|
|
368
|
+
│ └── docker-compose.yml # n8n + claude-code-runner
|
|
369
|
+
└── production/
|
|
370
|
+
├── Dockerfile # Standalone claude-code-runner
|
|
371
|
+
└── docker-compose.yml # For end users
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
### Submit Changes
|
|
375
|
+
|
|
376
|
+
```bash
|
|
377
|
+
git checkout -b feature/amazing-feature
|
|
378
|
+
git commit -m 'feat: add amazing feature'
|
|
584
379
|
git push origin feature/amazing-feature
|
|
585
380
|
```
|
|
586
381
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClaudeCodeDockerApi.credentials.d.ts","sourceRoot":"","sources":["../../credentials/ClaudeCodeDockerApi.credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAE3E,qBAAa,mBAAoB,YAAW,eAAe;IAC1D,IAAI,SAAyB;IAC7B,WAAW,SAAwB;IACnC,IAAI,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"ClaudeCodeDockerApi.credentials.d.ts","sourceRoot":"","sources":["../../credentials/ClaudeCodeDockerApi.credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAE3E,qBAAa,mBAAoB,YAAW,eAAe;IAC1D,IAAI,SAAyB;IAC7B,WAAW,SAAwB;IACnC,IAAI,EAAE,IAAI,CAAkC;IAC5C,gBAAgB,SAC8C;IAE9D,UAAU,EAAE,eAAe,EAAE,CAuE3B;CACF"}
|
|
@@ -4,7 +4,7 @@ exports.ClaudeCodeDockerApi = void 0;
|
|
|
4
4
|
class ClaudeCodeDockerApi {
|
|
5
5
|
name = "claudeCodeDockerApi";
|
|
6
6
|
displayName = "Claude Code Docker";
|
|
7
|
-
icon =
|
|
7
|
+
icon = "file:../icons/claudecode.svg";
|
|
8
8
|
documentationUrl = "https://github.com/ThomasTartrau/n8n-nodes-claude-code-cli";
|
|
9
9
|
properties = [
|
|
10
10
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClaudeCodeDockerApi.credentials.js","sourceRoot":"","sources":["../../credentials/ClaudeCodeDockerApi.credentials.ts"],"names":[],"mappings":";;;AAEA,MAAa,mBAAmB;IAC/B,IAAI,GAAG,qBAAqB,CAAC;IAC7B,WAAW,GAAG,oBAAoB,CAAC;IACnC,IAAI,GAAS,
|
|
1
|
+
{"version":3,"file":"ClaudeCodeDockerApi.credentials.js","sourceRoot":"","sources":["../../credentials/ClaudeCodeDockerApi.credentials.ts"],"names":[],"mappings":";;;AAEA,MAAa,mBAAmB;IAC/B,IAAI,GAAG,qBAAqB,CAAC;IAC7B,WAAW,GAAG,oBAAoB,CAAC;IACnC,IAAI,GAAS,8BAA8B,CAAC;IAC5C,gBAAgB,GACf,4DAA4D,CAAC;IAE9D,UAAU,GAAsB;QAC/B;YACC,WAAW,EAAE,2BAA2B;YACxC,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,SAAS;YACf,OAAO,EAAE;gBACR,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE;gBACzC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE;aACrC;YACD,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,sCAAsC;SACnD;QACD;YACC,WAAW,EAAE,gBAAgB;YAC7B,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,IAAI;YACd,cAAc,EAAE;gBACf,IAAI,EAAE;oBACL,mBAAmB,EAAE,CAAC,MAAM,CAAC;iBAC7B;aACD;YACD,WAAW,EAAE,uBAAuB;YACpC,WAAW,EAAE,kDAAkD;SAC/D;QACD;YACC,WAAW,EAAE,cAAc;YAC3B,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,IAAI;YACd,cAAc,EAAE;gBACf,IAAI,EAAE;oBACL,mBAAmB,EAAE,CAAC,IAAI,CAAC;iBAC3B;aACD;YACD,WAAW,EAAE,cAAc;YAC3B,WAAW,EAAE,gDAAgD;SAC7D;QACD;YACC,WAAW,EAAE,aAAa;YAC1B,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,qDAAqD;YAClE,WAAW,EAAE,uDAAuD;SACpE;QACD;YACC,WAAW,EAAE,MAAM;YACnB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,cAAc;YAC3B,WAAW,EACV,6EAA6E;SAC9E;QACD;YACC,WAAW,EAAE,kBAAkB;YAC/B,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,QAAQ;YACjB,WAAW,EAAE,0CAA0C;SACvD;QACD;YACC,WAAW,EAAE,2BAA2B;YACxC,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,YAAY;YACrB,WAAW,EAAE,gDAAgD;SAC7D;KACD,CAAC;CACF;AA/ED,kDA+EC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClaudeCodeLocalApi.credentials.d.ts","sourceRoot":"","sources":["../../credentials/ClaudeCodeLocalApi.credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAE3E,qBAAa,kBAAmB,YAAW,eAAe;IACzD,IAAI,SAAwB;IAC5B,WAAW,SAAuB;IAClC,IAAI,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"ClaudeCodeLocalApi.credentials.d.ts","sourceRoot":"","sources":["../../credentials/ClaudeCodeLocalApi.credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAE3E,qBAAa,kBAAmB,YAAW,eAAe;IACzD,IAAI,SAAwB;IAC5B,WAAW,SAAuB;IAClC,IAAI,EAAE,IAAI,CAAkC;IAC5C,gBAAgB,SAC8C;IAE9D,UAAU,EAAE,eAAe,EAAE,CA0B3B;CACF"}
|
|
@@ -4,7 +4,7 @@ exports.ClaudeCodeLocalApi = void 0;
|
|
|
4
4
|
class ClaudeCodeLocalApi {
|
|
5
5
|
name = "claudeCodeLocalApi";
|
|
6
6
|
displayName = "Claude Code Local";
|
|
7
|
-
icon =
|
|
7
|
+
icon = "file:../icons/claudecode.svg";
|
|
8
8
|
documentationUrl = "https://github.com/ThomasTartrau/n8n-nodes-claude-code-cli";
|
|
9
9
|
properties = [
|
|
10
10
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClaudeCodeLocalApi.credentials.js","sourceRoot":"","sources":["../../credentials/ClaudeCodeLocalApi.credentials.ts"],"names":[],"mappings":";;;AAEA,MAAa,kBAAkB;IAC9B,IAAI,GAAG,oBAAoB,CAAC;IAC5B,WAAW,GAAG,mBAAmB,CAAC;IAClC,IAAI,GAAS,
|
|
1
|
+
{"version":3,"file":"ClaudeCodeLocalApi.credentials.js","sourceRoot":"","sources":["../../credentials/ClaudeCodeLocalApi.credentials.ts"],"names":[],"mappings":";;;AAEA,MAAa,kBAAkB;IAC9B,IAAI,GAAG,oBAAoB,CAAC;IAC5B,WAAW,GAAG,mBAAmB,CAAC;IAClC,IAAI,GAAS,8BAA8B,CAAC;IAC5C,gBAAgB,GACf,4DAA4D,CAAC;IAE9D,UAAU,GAAsB;QAC/B;YACC,WAAW,EAAE,kBAAkB;YAC/B,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,QAAQ;YACjB,WAAW,EACV,8EAA8E;SAC/E;QACD;YACC,WAAW,EAAE,2BAA2B;YACxC,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,kBAAkB;YAC/B,WAAW,EACV,wFAAwF;SACzF;QACD;YACC,WAAW,EAAE,uBAAuB;YACpC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,IAAI;YACb,WAAW,EACV,yFAAyF;SAC1F;KACD,CAAC;CACF;AAlCD,gDAkCC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClaudeCodeSshApi.credentials.d.ts","sourceRoot":"","sources":["../../credentials/ClaudeCodeSshApi.credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAE3E,qBAAa,gBAAiB,YAAW,eAAe;IACvD,IAAI,SAAsB;IAC1B,WAAW,SAAqB;IAChC,IAAI,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"ClaudeCodeSshApi.credentials.d.ts","sourceRoot":"","sources":["../../credentials/ClaudeCodeSshApi.credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAE3E,qBAAa,gBAAiB,YAAW,eAAe;IACvD,IAAI,SAAsB;IAC1B,WAAW,SAAqB;IAChC,IAAI,EAAE,IAAI,CAAkC;IAC5C,gBAAgB,SAC8C;IAE9D,UAAU,EAAE,eAAe,EAAE,CA8G3B;CACF"}
|
|
@@ -4,7 +4,7 @@ exports.ClaudeCodeSshApi = void 0;
|
|
|
4
4
|
class ClaudeCodeSshApi {
|
|
5
5
|
name = "claudeCodeSshApi";
|
|
6
6
|
displayName = "Claude Code SSH";
|
|
7
|
-
icon =
|
|
7
|
+
icon = "file:../icons/claudecode.svg";
|
|
8
8
|
documentationUrl = "https://github.com/ThomasTartrau/n8n-nodes-claude-code-cli";
|
|
9
9
|
properties = [
|
|
10
10
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClaudeCodeSshApi.credentials.js","sourceRoot":"","sources":["../../credentials/ClaudeCodeSshApi.credentials.ts"],"names":[],"mappings":";;;AAEA,MAAa,gBAAgB;IAC5B,IAAI,GAAG,kBAAkB,CAAC;IAC1B,WAAW,GAAG,iBAAiB,CAAC;IAChC,IAAI,GAAS,
|
|
1
|
+
{"version":3,"file":"ClaudeCodeSshApi.credentials.js","sourceRoot":"","sources":["../../credentials/ClaudeCodeSshApi.credentials.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Normalize SSH private key content
|
|
3
3
|
* Fixes common issues from copy/paste operations:
|
|
4
|
+
* - Literal backslash-n sequences (\\n) that should be newlines
|
|
4
5
|
* - Windows line endings (\r\n)
|
|
5
6
|
* - Old Mac line endings (\r)
|
|
6
7
|
* - Leading/trailing whitespace
|
|
8
|
+
* - Spaces that replaced newlines when pasting
|
|
9
|
+
* - Improper line wrapping in base64 content
|
|
7
10
|
*/
|
|
8
11
|
export declare function normalizePrivateKey(key: string): string;
|
|
9
12
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sshKeyUtils.d.ts","sourceRoot":"","sources":["../../../../nodes/ClaudeCode/utils/sshKeyUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sshKeyUtils.d.ts","sourceRoot":"","sources":["../../../../nodes/ClaudeCode/utils/sshKeyUtils.ts"],"names":[],"mappings":"AAgBA;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA6CvD;AAaD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG;IAChD,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAwCA"}
|
|
@@ -12,15 +12,61 @@ const SUPPORTED_KEY_HEADERS = [
|
|
|
12
12
|
"-----BEGIN EC PRIVATE KEY-----",
|
|
13
13
|
"-----BEGIN DSA PRIVATE KEY-----",
|
|
14
14
|
];
|
|
15
|
+
/**
|
|
16
|
+
* PEM line length for base64 content
|
|
17
|
+
*/
|
|
18
|
+
const PEM_LINE_LENGTH = 64;
|
|
15
19
|
/**
|
|
16
20
|
* Normalize SSH private key content
|
|
17
21
|
* Fixes common issues from copy/paste operations:
|
|
22
|
+
* - Literal backslash-n sequences (\\n) that should be newlines
|
|
18
23
|
* - Windows line endings (\r\n)
|
|
19
24
|
* - Old Mac line endings (\r)
|
|
20
25
|
* - Leading/trailing whitespace
|
|
26
|
+
* - Spaces that replaced newlines when pasting
|
|
27
|
+
* - Improper line wrapping in base64 content
|
|
21
28
|
*/
|
|
22
29
|
function normalizePrivateKey(key) {
|
|
23
|
-
|
|
30
|
+
// Step 1: Convert literal \n sequences to actual newlines
|
|
31
|
+
// This handles cases where JSON/env vars contain literal "\\n"
|
|
32
|
+
let normalized = key.replace(/\\n/g, "\n");
|
|
33
|
+
// Step 2: Normalize Windows and old Mac line endings
|
|
34
|
+
normalized = normalized.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
|
|
35
|
+
// Step 3: Trim overall whitespace
|
|
36
|
+
normalized = normalized.trim();
|
|
37
|
+
// Step 4: Extract header and footer
|
|
38
|
+
const headerMatch = normalized.match(/(-----BEGIN [A-Z0-9 ]+ KEY-----)/);
|
|
39
|
+
const footerMatch = normalized.match(/(-----END [A-Z0-9 ]+ KEY-----)/);
|
|
40
|
+
if (!headerMatch || !footerMatch) {
|
|
41
|
+
// Can't properly parse, return as-is with basic normalization
|
|
42
|
+
return normalized;
|
|
43
|
+
}
|
|
44
|
+
const header = headerMatch[1];
|
|
45
|
+
const footer = footerMatch[1];
|
|
46
|
+
// Step 5: Extract the base64 content between header and footer
|
|
47
|
+
const headerIndex = normalized.indexOf(header);
|
|
48
|
+
const footerIndex = normalized.indexOf(footer);
|
|
49
|
+
if (headerIndex === -1 || footerIndex === -1 || footerIndex <= headerIndex) {
|
|
50
|
+
return normalized;
|
|
51
|
+
}
|
|
52
|
+
let base64Content = normalized.slice(headerIndex + header.length, footerIndex);
|
|
53
|
+
// Step 6: Clean up the base64 content
|
|
54
|
+
// Remove all whitespace (spaces, newlines, tabs) from the base64 content
|
|
55
|
+
base64Content = base64Content.replace(/\s+/g, "");
|
|
56
|
+
// Step 7: Rewrap base64 content at 64 characters per line (PEM standard)
|
|
57
|
+
const wrappedContent = wrapBase64(base64Content, PEM_LINE_LENGTH);
|
|
58
|
+
// Step 8: Reconstruct the key with proper formatting
|
|
59
|
+
return `${header}\n${wrappedContent}\n${footer}`;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Wrap a base64 string at specified line length
|
|
63
|
+
*/
|
|
64
|
+
function wrapBase64(base64, lineLength) {
|
|
65
|
+
const lines = [];
|
|
66
|
+
for (let i = 0; i < base64.length; i += lineLength) {
|
|
67
|
+
lines.push(base64.slice(i, i + lineLength));
|
|
68
|
+
}
|
|
69
|
+
return lines.join("\n");
|
|
24
70
|
}
|
|
25
71
|
/**
|
|
26
72
|
* Validate SSH private key format
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sshKeyUtils.js","sourceRoot":"","sources":["../../../../nodes/ClaudeCode/utils/sshKeyUtils.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"sshKeyUtils.js","sourceRoot":"","sources":["../../../../nodes/ClaudeCode/utils/sshKeyUtils.ts"],"names":[],"mappings":";;AA0BA,kDA6CC;AAiBD,gDA2CC;AAnID;;GAEG;AACH,MAAM,qBAAqB,GAAG;IAC7B,iCAAiC;IACjC,qCAAqC;IACrC,6BAA6B;IAC7B,gCAAgC;IAChC,iCAAiC;CACjC,CAAC;AAEF;;GAEG;AACH,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B;;;;;;;;;GASG;AACH,SAAgB,mBAAmB,CAAC,GAAW;IAC9C,0DAA0D;IAC1D,+DAA+D;IAC/D,IAAI,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE3C,qDAAqD;IACrD,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAEpE,kCAAkC;IAClC,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IAE/B,oCAAoC;IACpC,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAEvE,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC;QAClC,8DAA8D;QAC9D,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAE9B,+DAA+D;IAC/D,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/C,IAAI,WAAW,KAAK,CAAC,CAAC,IAAI,WAAW,KAAK,CAAC,CAAC,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;QAC5E,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,IAAI,aAAa,GAAG,UAAU,CAAC,KAAK,CACnC,WAAW,GAAG,MAAM,CAAC,MAAM,EAC3B,WAAW,CACX,CAAC;IAEF,sCAAsC;IACtC,yEAAyE;IACzE,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAElD,yEAAyE;IACzE,MAAM,cAAc,GAAG,UAAU,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAElE,qDAAqD;IACrD,OAAO,GAAG,MAAM,KAAK,cAAc,KAAK,MAAM,EAAE,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,MAAc,EAAE,UAAkB;IACrD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,GAAW;IAI7C,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC/B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;IACxD,CAAC;IAED,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE5C,MAAM,cAAc,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAC5D,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAC7B,CAAC;IAEF,IAAI,CAAC,cAAc,EAAE,CAAC;QACrB,IAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACvC,OAAO;gBACN,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,gEAAgE;aACvE,CAAC;QACH,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1C,OAAO;gBACN,KAAK,EAAE,KAAK;gBACZ,KAAK,EACJ,yEAAyE;aAC1E,CAAC;QACH,CAAC;QACD,OAAO;YACN,KAAK,EAAE,KAAK;YACZ,KAAK,EACJ,0EAA0E;SAC3E,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACtC,OAAO;YACN,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,kEAAkE;SACzE,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-claude-code-cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.7",
|
|
4
4
|
"description": "n8n community node for Claude Code CLI integration - execute AI-assisted coding tasks",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"n8n-community-node-package",
|
|
@@ -56,7 +56,6 @@
|
|
|
56
56
|
"@types/ssh2": "^1.15.5",
|
|
57
57
|
"@vitest/coverage-v8": "^4.0.16",
|
|
58
58
|
"semantic-release": "^25.0.2",
|
|
59
|
-
"semantic-release-replace-plugin": "^1.2.7",
|
|
60
59
|
"testcontainers": "^11.11.0",
|
|
61
60
|
"typescript": "^5.9.3",
|
|
62
61
|
"vitest": "^4.0.16"
|