bps-kit 1.2.2 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.bps-kit.json +4 -4
- package/README.md +3 -0
- package/implementation_plan.md.resolved +37 -0
- package/package.json +2 -2
- package/templates/agents-template/ARCHITECTURE.md +21 -9
- package/templates/agents-template/agents/automation-specialist.md +157 -0
- package/templates/agents-template/rules/GEMINI.md +2 -10
- package/templates/agents-template/workflows/automate.md +153 -0
- package/templates/skills_normal/n8n-code-javascript/BUILTIN_FUNCTIONS.md +764 -0
- package/templates/skills_normal/n8n-code-javascript/COMMON_PATTERNS.md +1110 -0
- package/templates/skills_normal/n8n-code-javascript/DATA_ACCESS.md +782 -0
- package/templates/skills_normal/n8n-code-javascript/ERROR_PATTERNS.md +763 -0
- package/templates/skills_normal/n8n-code-javascript/README.md +350 -0
- package/templates/skills_normal/n8n-code-javascript/SKILL.md +699 -0
- package/templates/skills_normal/n8n-code-python/COMMON_PATTERNS.md +794 -0
- package/templates/skills_normal/n8n-code-python/DATA_ACCESS.md +702 -0
- package/templates/skills_normal/n8n-code-python/ERROR_PATTERNS.md +601 -0
- package/templates/skills_normal/n8n-code-python/README.md +386 -0
- package/templates/skills_normal/n8n-code-python/SKILL.md +748 -0
- package/templates/skills_normal/n8n-code-python/STANDARD_LIBRARY.md +974 -0
- package/templates/skills_normal/n8n-expression-syntax/COMMON_MISTAKES.md +393 -0
- package/templates/skills_normal/n8n-expression-syntax/EXAMPLES.md +483 -0
- package/templates/skills_normal/n8n-expression-syntax/README.md +93 -0
- package/templates/skills_normal/n8n-expression-syntax/SKILL.md +516 -0
- package/templates/skills_normal/n8n-mcp-tools-expert/README.md +99 -0
- package/templates/skills_normal/n8n-mcp-tools-expert/SEARCH_GUIDE.md +374 -0
- package/templates/skills_normal/n8n-mcp-tools-expert/SKILL.md +642 -0
- package/templates/skills_normal/n8n-mcp-tools-expert/VALIDATION_GUIDE.md +442 -0
- package/templates/skills_normal/n8n-mcp-tools-expert/WORKFLOW_GUIDE.md +618 -0
- package/templates/skills_normal/n8n-node-configuration/DEPENDENCIES.md +789 -0
- package/templates/skills_normal/n8n-node-configuration/OPERATION_PATTERNS.md +913 -0
- package/templates/skills_normal/n8n-node-configuration/README.md +364 -0
- package/templates/skills_normal/n8n-node-configuration/SKILL.md +785 -0
- package/templates/skills_normal/n8n-validation-expert/ERROR_CATALOG.md +943 -0
- package/templates/skills_normal/n8n-validation-expert/FALSE_POSITIVES.md +720 -0
- package/templates/skills_normal/n8n-validation-expert/README.md +290 -0
- package/templates/skills_normal/n8n-validation-expert/SKILL.md +689 -0
- package/templates/skills_normal/n8n-workflow-patterns/README.md +251 -0
- package/templates/skills_normal/n8n-workflow-patterns/SKILL.md +411 -0
- package/templates/skills_normal/n8n-workflow-patterns/ai_agent_workflow.md +784 -0
- package/templates/skills_normal/n8n-workflow-patterns/database_operations.md +785 -0
- package/templates/skills_normal/n8n-workflow-patterns/http_api_integration.md +734 -0
- package/templates/skills_normal/n8n-workflow-patterns/scheduled_tasks.md +773 -0
- package/templates/skills_normal/n8n-workflow-patterns/webhook_processing.md +545 -0
- package/templates/vault/n8n-code-javascript/SKILL.md +10 -10
- package/templates/vault/n8n-code-python/SKILL.md +11 -11
- package/templates/vault/n8n-expression-syntax/SKILL.md +4 -4
- package/templates/vault/n8n-mcp-tools-expert/SKILL.md +9 -9
- package/templates/vault/n8n-node-configuration/SKILL.md +2 -2
- package/templates/vault/n8n-validation-expert/SKILL.md +3 -3
- package/templates/vault/n8n-workflow-patterns/SKILL.md +11 -11
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
# Node Discovery Tools Guide
|
|
2
|
+
|
|
3
|
+
Complete guide for finding and understanding n8n nodes.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## search_nodes (START HERE!)
|
|
8
|
+
|
|
9
|
+
**Speed**: <20ms
|
|
10
|
+
|
|
11
|
+
**Use when**: You know what you're looking for (keyword, service, use case)
|
|
12
|
+
|
|
13
|
+
**Syntax**:
|
|
14
|
+
```javascript
|
|
15
|
+
search_nodes({
|
|
16
|
+
query: "slack", // Required: search keywords
|
|
17
|
+
mode: "OR", // Optional: OR (default), AND, FUZZY
|
|
18
|
+
limit: 20, // Optional: max results (default 20)
|
|
19
|
+
source: "all", // Optional: all, core, community, verified
|
|
20
|
+
includeExamples: false // Optional: include template configs
|
|
21
|
+
})
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**Returns**:
|
|
25
|
+
```javascript
|
|
26
|
+
{
|
|
27
|
+
"query": "slack",
|
|
28
|
+
"results": [
|
|
29
|
+
{
|
|
30
|
+
"nodeType": "nodes-base.slack", // For search/validate tools
|
|
31
|
+
"workflowNodeType": "n8n-nodes-base.slack", // For workflow tools
|
|
32
|
+
"displayName": "Slack",
|
|
33
|
+
"description": "Consume Slack API",
|
|
34
|
+
"category": "output",
|
|
35
|
+
"relevance": "high"
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Tips**:
|
|
42
|
+
- Common searches: webhook, http, database, email, slack, google, ai
|
|
43
|
+
- `OR` mode (default): matches any word
|
|
44
|
+
- `AND` mode: requires all words
|
|
45
|
+
- `FUZZY` mode: typo-tolerant (finds "slak" → Slack)
|
|
46
|
+
- Use `source: "core"` for only built-in nodes
|
|
47
|
+
- Use `includeExamples: true` for real-world configs
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## get_node (UNIFIED NODE INFORMATION)
|
|
52
|
+
|
|
53
|
+
The `get_node` tool provides all node information with different detail levels and modes.
|
|
54
|
+
|
|
55
|
+
### Detail Levels (mode="info")
|
|
56
|
+
|
|
57
|
+
| Detail | Tokens | Use When |
|
|
58
|
+
|--------|--------|----------|
|
|
59
|
+
| `minimal` | ~200 | Quick metadata check |
|
|
60
|
+
| `standard` | ~1-2K | **Most use cases (DEFAULT)** |
|
|
61
|
+
| `full` | ~3-8K | Complex debugging only |
|
|
62
|
+
|
|
63
|
+
### Standard Detail (RECOMMENDED)
|
|
64
|
+
|
|
65
|
+
**Speed**: <10ms | **Size**: ~1-2K tokens
|
|
66
|
+
|
|
67
|
+
**Use when**: You've found the node and need configuration details
|
|
68
|
+
|
|
69
|
+
```javascript
|
|
70
|
+
get_node({
|
|
71
|
+
nodeType: "nodes-base.slack", // Required: SHORT prefix format
|
|
72
|
+
includeExamples: true // Optional: get real template configs
|
|
73
|
+
})
|
|
74
|
+
// detail="standard" is the default
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**Returns**:
|
|
78
|
+
- Available operations and resources
|
|
79
|
+
- Essential properties (10-20 most common)
|
|
80
|
+
- Metadata (isAITool, isTrigger, hasCredentials)
|
|
81
|
+
- Real examples from templates (if includeExamples: true)
|
|
82
|
+
|
|
83
|
+
### Minimal Detail
|
|
84
|
+
|
|
85
|
+
**Speed**: <5ms | **Size**: ~200 tokens
|
|
86
|
+
|
|
87
|
+
**Use when**: Just need basic metadata
|
|
88
|
+
|
|
89
|
+
```javascript
|
|
90
|
+
get_node({
|
|
91
|
+
nodeType: "nodes-base.slack",
|
|
92
|
+
detail: "minimal"
|
|
93
|
+
})
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Returns**: nodeType, displayName, description, category
|
|
97
|
+
|
|
98
|
+
### Full Detail (USE SPARINGLY)
|
|
99
|
+
|
|
100
|
+
**Speed**: <100ms | **Size**: ~3-8K tokens
|
|
101
|
+
|
|
102
|
+
**Use when**: Debugging complex configuration, need complete schema
|
|
103
|
+
|
|
104
|
+
```javascript
|
|
105
|
+
get_node({
|
|
106
|
+
nodeType: "nodes-base.httpRequest",
|
|
107
|
+
detail: "full"
|
|
108
|
+
})
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**Warning**: Large payload! Use `standard` for most cases.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## get_node Modes
|
|
116
|
+
|
|
117
|
+
### mode="docs" (READABLE DOCUMENTATION)
|
|
118
|
+
|
|
119
|
+
**Use when**: Need human-readable documentation with examples
|
|
120
|
+
|
|
121
|
+
```javascript
|
|
122
|
+
get_node({
|
|
123
|
+
nodeType: "nodes-base.slack",
|
|
124
|
+
mode: "docs"
|
|
125
|
+
})
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**Returns**: Formatted markdown with:
|
|
129
|
+
- Usage examples
|
|
130
|
+
- Authentication guide
|
|
131
|
+
- Common patterns
|
|
132
|
+
- Best practices
|
|
133
|
+
|
|
134
|
+
**Better than raw schema for learning!**
|
|
135
|
+
|
|
136
|
+
### mode="search_properties" (FIND SPECIFIC FIELDS)
|
|
137
|
+
|
|
138
|
+
**Use when**: Looking for specific property in a node
|
|
139
|
+
|
|
140
|
+
```javascript
|
|
141
|
+
get_node({
|
|
142
|
+
nodeType: "nodes-base.httpRequest",
|
|
143
|
+
mode: "search_properties",
|
|
144
|
+
propertyQuery: "auth", // Required for this mode
|
|
145
|
+
maxPropertyResults: 20 // Optional: default 20
|
|
146
|
+
})
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
**Returns**: Property paths and descriptions matching query
|
|
150
|
+
|
|
151
|
+
**Common searches**: auth, header, body, json, url, method, credential
|
|
152
|
+
|
|
153
|
+
### mode="versions" (VERSION HISTORY)
|
|
154
|
+
|
|
155
|
+
**Use when**: Need to check node version history
|
|
156
|
+
|
|
157
|
+
```javascript
|
|
158
|
+
get_node({
|
|
159
|
+
nodeType: "nodes-base.executeWorkflow",
|
|
160
|
+
mode: "versions"
|
|
161
|
+
})
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
**Returns**: Version history with breaking changes flags
|
|
165
|
+
|
|
166
|
+
### mode="compare" (COMPARE VERSIONS)
|
|
167
|
+
|
|
168
|
+
**Use when**: Need to see differences between versions
|
|
169
|
+
|
|
170
|
+
```javascript
|
|
171
|
+
get_node({
|
|
172
|
+
nodeType: "nodes-base.httpRequest",
|
|
173
|
+
mode: "compare",
|
|
174
|
+
fromVersion: "3.0",
|
|
175
|
+
toVersion: "4.1" // Optional: defaults to latest
|
|
176
|
+
})
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
**Returns**: Property-level changes between versions
|
|
180
|
+
|
|
181
|
+
### mode="breaking" (BREAKING CHANGES ONLY)
|
|
182
|
+
|
|
183
|
+
**Use when**: Checking for breaking changes before upgrades
|
|
184
|
+
|
|
185
|
+
```javascript
|
|
186
|
+
get_node({
|
|
187
|
+
nodeType: "nodes-base.httpRequest",
|
|
188
|
+
mode: "breaking",
|
|
189
|
+
fromVersion: "3.0"
|
|
190
|
+
})
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
**Returns**: Only breaking changes (not all changes)
|
|
194
|
+
|
|
195
|
+
### mode="migrations" (AUTO-MIGRATABLE)
|
|
196
|
+
|
|
197
|
+
**Use when**: Checking what can be auto-migrated
|
|
198
|
+
|
|
199
|
+
```javascript
|
|
200
|
+
get_node({
|
|
201
|
+
nodeType: "nodes-base.httpRequest",
|
|
202
|
+
mode: "migrations",
|
|
203
|
+
fromVersion: "3.0"
|
|
204
|
+
})
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
**Returns**: Changes that can be automatically migrated
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## Additional Parameters
|
|
212
|
+
|
|
213
|
+
### includeTypeInfo
|
|
214
|
+
|
|
215
|
+
Add type structure metadata (validation rules, JS types)
|
|
216
|
+
|
|
217
|
+
```javascript
|
|
218
|
+
get_node({
|
|
219
|
+
nodeType: "nodes-base.if",
|
|
220
|
+
includeTypeInfo: true // Adds ~80-120 tokens per property
|
|
221
|
+
})
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Use for complex nodes like filter, resourceMapper
|
|
225
|
+
|
|
226
|
+
### includeExamples
|
|
227
|
+
|
|
228
|
+
Include real-world configuration examples from templates
|
|
229
|
+
|
|
230
|
+
```javascript
|
|
231
|
+
get_node({
|
|
232
|
+
nodeType: "nodes-base.slack",
|
|
233
|
+
includeExamples: true // Adds ~200-400 tokens per example
|
|
234
|
+
})
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Only works with `mode: "info"` and `detail: "standard"`
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Common Workflow: Finding & Configuring
|
|
242
|
+
|
|
243
|
+
```
|
|
244
|
+
Step 1: Search
|
|
245
|
+
search_nodes({query: "slack"})
|
|
246
|
+
→ Returns: nodes-base.slack
|
|
247
|
+
|
|
248
|
+
Step 2: Get Operations (18s avg thinking time)
|
|
249
|
+
get_node({
|
|
250
|
+
nodeType: "nodes-base.slack",
|
|
251
|
+
includeExamples: true
|
|
252
|
+
})
|
|
253
|
+
→ Returns: operations list + example configs
|
|
254
|
+
|
|
255
|
+
Step 3: Validate Config
|
|
256
|
+
validate_node({
|
|
257
|
+
nodeType: "nodes-base.slack",
|
|
258
|
+
config: {resource: "channel", operation: "create"},
|
|
259
|
+
profile: "runtime"
|
|
260
|
+
})
|
|
261
|
+
→ Returns: validation result
|
|
262
|
+
|
|
263
|
+
Step 4: Use in Workflow
|
|
264
|
+
(Configuration ready!)
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
**Most common pattern**: search → get_node (18s average)
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## Quick Comparison
|
|
272
|
+
|
|
273
|
+
| Tool/Mode | When to Use | Speed | Size |
|
|
274
|
+
|-----------|-------------|-------|------|
|
|
275
|
+
| `search_nodes` | Find by keyword | <20ms | Small |
|
|
276
|
+
| `get_node (standard)` | **Get config (DEFAULT)** | <10ms | 1-2K |
|
|
277
|
+
| `get_node (minimal)` | Quick metadata | <5ms | 200 |
|
|
278
|
+
| `get_node (full)` | Complex debugging | <100ms | 3-8K |
|
|
279
|
+
| `get_node (docs)` | Learn usage | Fast | Medium |
|
|
280
|
+
| `get_node (search_properties)` | Find specific field | Fast | Small |
|
|
281
|
+
| `get_node (versions)` | Check versions | Fast | Small |
|
|
282
|
+
|
|
283
|
+
**Best Practice**: search → get_node(standard) → validate
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## nodeType Format (CRITICAL!)
|
|
288
|
+
|
|
289
|
+
**Search/Validate Tools** (SHORT prefix):
|
|
290
|
+
```javascript
|
|
291
|
+
"nodes-base.slack"
|
|
292
|
+
"nodes-base.httpRequest"
|
|
293
|
+
"nodes-langchain.agent"
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
**Workflow Tools** (FULL prefix):
|
|
297
|
+
```javascript
|
|
298
|
+
"n8n-nodes-base.slack"
|
|
299
|
+
"n8n-nodes-base.httpRequest"
|
|
300
|
+
"@n8n/n8n-nodes-langchain.agent"
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
**Conversion**: search_nodes returns BOTH formats:
|
|
304
|
+
```javascript
|
|
305
|
+
{
|
|
306
|
+
"nodeType": "nodes-base.slack", // Use with get_node, validate_node
|
|
307
|
+
"workflowNodeType": "n8n-nodes-base.slack" // Use with n8n_create_workflow
|
|
308
|
+
}
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
## Examples
|
|
314
|
+
|
|
315
|
+
### Find and Configure HTTP Request
|
|
316
|
+
|
|
317
|
+
```javascript
|
|
318
|
+
// Step 1: Search
|
|
319
|
+
search_nodes({query: "http request"})
|
|
320
|
+
|
|
321
|
+
// Step 2: Get standard info
|
|
322
|
+
get_node({nodeType: "nodes-base.httpRequest"})
|
|
323
|
+
|
|
324
|
+
// Step 3: Find auth options
|
|
325
|
+
get_node({
|
|
326
|
+
nodeType: "nodes-base.httpRequest",
|
|
327
|
+
mode: "search_properties",
|
|
328
|
+
propertyQuery: "authentication"
|
|
329
|
+
})
|
|
330
|
+
|
|
331
|
+
// Step 4: Validate config
|
|
332
|
+
validate_node({
|
|
333
|
+
nodeType: "nodes-base.httpRequest",
|
|
334
|
+
config: {method: "POST", url: "https://api.example.com"},
|
|
335
|
+
profile: "runtime"
|
|
336
|
+
})
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
### Explore AI Nodes
|
|
340
|
+
|
|
341
|
+
```javascript
|
|
342
|
+
// Find all AI-related nodes
|
|
343
|
+
search_nodes({query: "ai agent", source: "all"})
|
|
344
|
+
|
|
345
|
+
// Get AI Agent documentation
|
|
346
|
+
get_node({nodeType: "nodes-langchain.agent", mode: "docs"})
|
|
347
|
+
|
|
348
|
+
// Get configuration details with examples
|
|
349
|
+
get_node({
|
|
350
|
+
nodeType: "nodes-langchain.agent",
|
|
351
|
+
includeExamples: true
|
|
352
|
+
})
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
### Check Version Compatibility
|
|
356
|
+
|
|
357
|
+
```javascript
|
|
358
|
+
// See all versions
|
|
359
|
+
get_node({nodeType: "nodes-base.executeWorkflow", mode: "versions"})
|
|
360
|
+
|
|
361
|
+
// Check breaking changes from v1 to v2
|
|
362
|
+
get_node({
|
|
363
|
+
nodeType: "nodes-base.executeWorkflow",
|
|
364
|
+
mode: "breaking",
|
|
365
|
+
fromVersion: "1.0"
|
|
366
|
+
})
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
## Related
|
|
372
|
+
|
|
373
|
+
- [VALIDATION_GUIDE.md](VALIDATION_GUIDE.md) - Validate node configs
|
|
374
|
+
- [WORKFLOW_GUIDE.md](WORKFLOW_GUIDE.md) - Use nodes in workflows
|