@controllerai/cli 0.2.25 → 0.2.27
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/dist/commands/connection.js +12 -5
- package/dist/commands/connection.js.map +1 -1
- package/dist/commands/skills.js +0 -1
- package/dist/commands/skills.js.map +1 -1
- package/package.json +1 -1
- package/skills/controllerai-integration-actions/SKILL.md +2 -2
- package/skills/controllerai-node-config/SKILL.md +1 -1
- package/skills/controllerai-workflows/references/command-map.md +0 -1
- package/skills/manifest.json +40 -57
- package/skills-mcp/controllerai-data/SKILL.md +1 -1
- package/skills-mcp/controllerai-expressions/SKILL.md +1 -1
- package/skills-mcp/controllerai-integration-actions/SKILL.md +3 -3
- package/skills-mcp/controllerai-node-config/SKILL.md +2 -2
- package/skills-mcp/controllerai-node-config/references/prop-and-readiness.md +2 -2
- package/skills-mcp/controllerai-runs/SKILL.md +2 -2
- package/skills-mcp/controllerai-start/SKILL.md +2 -3
- package/skills-mcp/controllerai-triggers/SKILL.md +3 -3
- package/skills-mcp/controllerai-workflows/SKILL.md +0 -1
- package/skills-mcp/manifest.json +37 -60
- package/skills/controllerai-template-setup/SKILL.md +0 -132
- package/skills/controllerai-template-setup/agents/openai.yaml +0 -4
- package/skills-mcp/controllerai-start/references/mcp-tool-map.md +0 -178
- package/skills-mcp/controllerai-template-setup/SKILL.md +0 -10
- package/skills-mcp/controllerai-workflows/references/command-map.md +0 -1
package/skills-mcp/manifest.json
CHANGED
|
@@ -1,23 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"skillSetVersion": "2026.
|
|
3
|
+
"skillSetVersion": "2026.10.15.1",
|
|
4
4
|
"minCliVersion": "0.2.0",
|
|
5
|
-
"latestCliVersion": "0.2.
|
|
5
|
+
"latestCliVersion": "0.2.27",
|
|
6
6
|
"skills": [
|
|
7
7
|
{
|
|
8
8
|
"name": "controllerai-start",
|
|
9
9
|
"files": [
|
|
10
10
|
{
|
|
11
11
|
"path": "controllerai-start/SKILL.md",
|
|
12
|
-
"url": "https://getcontroller.ai/skills-mcp/2026.
|
|
13
|
-
"sha256": "
|
|
14
|
-
"size":
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
"path": "controllerai-start/references/mcp-tool-map.md",
|
|
18
|
-
"url": "https://getcontroller.ai/skills-mcp/2026.09.19.1/controllerai-start/references/mcp-tool-map.md",
|
|
19
|
-
"sha256": "29797a84536d335304262b003b4a197ad18a4919780e2cfc9f7137d9a477407d",
|
|
20
|
-
"size": 27234
|
|
12
|
+
"url": "https://getcontroller.ai/skills-mcp/2026.10.15.1/controllerai-start/SKILL.md",
|
|
13
|
+
"sha256": "b68d413619879e2553e625d1569ad6fed13e90b1f00cb5eaff2963bb48476ad7",
|
|
14
|
+
"size": 10858
|
|
21
15
|
}
|
|
22
16
|
]
|
|
23
17
|
},
|
|
@@ -26,15 +20,9 @@
|
|
|
26
20
|
"files": [
|
|
27
21
|
{
|
|
28
22
|
"path": "controllerai-workflows/SKILL.md",
|
|
29
|
-
"url": "https://getcontroller.ai/skills-mcp/2026.
|
|
30
|
-
"sha256": "
|
|
31
|
-
"size":
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"path": "controllerai-workflows/references/command-map.md",
|
|
35
|
-
"url": "https://getcontroller.ai/skills-mcp/2026.09.19.1/controllerai-workflows/references/command-map.md",
|
|
36
|
-
"sha256": "3a1fe464d00c2ae734dab11db3b338436d91a9c32dd8a1b3f1843ac4200a739c",
|
|
37
|
-
"size": 89
|
|
23
|
+
"url": "https://getcontroller.ai/skills-mcp/2026.10.15.1/controllerai-workflows/SKILL.md",
|
|
24
|
+
"sha256": "ef78a776417d6f17cd60da27db385088875ddd1db6483428232d4e6e8c6f69df",
|
|
25
|
+
"size": 9408
|
|
38
26
|
}
|
|
39
27
|
]
|
|
40
28
|
},
|
|
@@ -43,15 +31,15 @@
|
|
|
43
31
|
"files": [
|
|
44
32
|
{
|
|
45
33
|
"path": "controllerai-node-config/SKILL.md",
|
|
46
|
-
"url": "https://getcontroller.ai/skills-mcp/2026.
|
|
47
|
-
"sha256": "
|
|
48
|
-
"size":
|
|
34
|
+
"url": "https://getcontroller.ai/skills-mcp/2026.10.15.1/controllerai-node-config/SKILL.md",
|
|
35
|
+
"sha256": "601fd973979b28e92ce33ceecc4ef86f2e79d8e23ca947e8620c1ca1bf5c0e7d",
|
|
36
|
+
"size": 11934
|
|
49
37
|
},
|
|
50
38
|
{
|
|
51
39
|
"path": "controllerai-node-config/references/prop-and-readiness.md",
|
|
52
|
-
"url": "https://getcontroller.ai/skills-mcp/2026.
|
|
53
|
-
"sha256": "
|
|
54
|
-
"size":
|
|
40
|
+
"url": "https://getcontroller.ai/skills-mcp/2026.10.15.1/controllerai-node-config/references/prop-and-readiness.md",
|
|
41
|
+
"sha256": "443e454844dc87d9dec06e5aa78d61e3bed4a201060bda277601befaca7eb6e5",
|
|
42
|
+
"size": 5331
|
|
55
43
|
}
|
|
56
44
|
]
|
|
57
45
|
},
|
|
@@ -60,13 +48,13 @@
|
|
|
60
48
|
"files": [
|
|
61
49
|
{
|
|
62
50
|
"path": "controllerai-expressions/SKILL.md",
|
|
63
|
-
"url": "https://getcontroller.ai/skills-mcp/2026.
|
|
64
|
-
"sha256": "
|
|
51
|
+
"url": "https://getcontroller.ai/skills-mcp/2026.10.15.1/controllerai-expressions/SKILL.md",
|
|
52
|
+
"sha256": "8e10c12e8e2c9650d8bd0918f7d318fb24e910fbf2e9d90ae9ee18835a7324fb",
|
|
65
53
|
"size": 10495
|
|
66
54
|
},
|
|
67
55
|
{
|
|
68
56
|
"path": "controllerai-expressions/references/dsl-and-recipes.md",
|
|
69
|
-
"url": "https://getcontroller.ai/skills-mcp/2026.
|
|
57
|
+
"url": "https://getcontroller.ai/skills-mcp/2026.10.15.1/controllerai-expressions/references/dsl-and-recipes.md",
|
|
70
58
|
"sha256": "741b03033cb655dde95be99dcf6e00295b1b2d4f385ad42bbf4bb3c4001c9973",
|
|
71
59
|
"size": 4915
|
|
72
60
|
}
|
|
@@ -77,13 +65,13 @@
|
|
|
77
65
|
"files": [
|
|
78
66
|
{
|
|
79
67
|
"path": "controllerai-flow-control/SKILL.md",
|
|
80
|
-
"url": "https://getcontroller.ai/skills-mcp/2026.
|
|
68
|
+
"url": "https://getcontroller.ai/skills-mcp/2026.10.15.1/controllerai-flow-control/SKILL.md",
|
|
81
69
|
"sha256": "4bacfc3b7501565e0e5984b19d9223da1b5bf770875db804b5e6827d33efa967",
|
|
82
70
|
"size": 12367
|
|
83
71
|
},
|
|
84
72
|
{
|
|
85
73
|
"path": "controllerai-flow-control/references/patterns.md",
|
|
86
|
-
"url": "https://getcontroller.ai/skills-mcp/2026.
|
|
74
|
+
"url": "https://getcontroller.ai/skills-mcp/2026.10.15.1/controllerai-flow-control/references/patterns.md",
|
|
87
75
|
"sha256": "a849179afb512e8fc0c3c833a1a2c737c5108e8ab8941c9fa261767671eceb01",
|
|
88
76
|
"size": 4704
|
|
89
77
|
}
|
|
@@ -94,13 +82,13 @@
|
|
|
94
82
|
"files": [
|
|
95
83
|
{
|
|
96
84
|
"path": "controllerai-runs/SKILL.md",
|
|
97
|
-
"url": "https://getcontroller.ai/skills-mcp/2026.
|
|
98
|
-
"sha256": "
|
|
85
|
+
"url": "https://getcontroller.ai/skills-mcp/2026.10.15.1/controllerai-runs/SKILL.md",
|
|
86
|
+
"sha256": "a11349238a4b07e0c701fcbe049c510ea43fc3480c3b94ae299023b4a10bf475",
|
|
99
87
|
"size": 9312
|
|
100
88
|
},
|
|
101
89
|
{
|
|
102
90
|
"path": "controllerai-runs/references/debugging.md",
|
|
103
|
-
"url": "https://getcontroller.ai/skills-mcp/2026.
|
|
91
|
+
"url": "https://getcontroller.ai/skills-mcp/2026.10.15.1/controllerai-runs/references/debugging.md",
|
|
104
92
|
"sha256": "616d13ea43785e4d11bdb50b9e4098126fbc470ee2568b250e1af5f15cab3edf",
|
|
105
93
|
"size": 3162
|
|
106
94
|
}
|
|
@@ -111,13 +99,13 @@
|
|
|
111
99
|
"files": [
|
|
112
100
|
{
|
|
113
101
|
"path": "controllerai-triggers/SKILL.md",
|
|
114
|
-
"url": "https://getcontroller.ai/skills-mcp/2026.
|
|
115
|
-
"sha256": "
|
|
116
|
-
"size":
|
|
102
|
+
"url": "https://getcontroller.ai/skills-mcp/2026.10.15.1/controllerai-triggers/SKILL.md",
|
|
103
|
+
"sha256": "c45cc45e4a8b6ff7eae6ec8cfcae36f63fbcdc6a78de704af3e14385885acafb",
|
|
104
|
+
"size": 12412
|
|
117
105
|
},
|
|
118
106
|
{
|
|
119
107
|
"path": "controllerai-triggers/references/lifecycle.md",
|
|
120
|
-
"url": "https://getcontroller.ai/skills-mcp/2026.
|
|
108
|
+
"url": "https://getcontroller.ai/skills-mcp/2026.10.15.1/controllerai-triggers/references/lifecycle.md",
|
|
121
109
|
"sha256": "519d9f858ee2ec8ab5f1c988e547f5a8c5478f4da3d454236354ade9800ed044",
|
|
122
110
|
"size": 3438
|
|
123
111
|
}
|
|
@@ -128,13 +116,13 @@
|
|
|
128
116
|
"files": [
|
|
129
117
|
{
|
|
130
118
|
"path": "controllerai-data/SKILL.md",
|
|
131
|
-
"url": "https://getcontroller.ai/skills-mcp/2026.
|
|
132
|
-
"sha256": "
|
|
133
|
-
"size":
|
|
119
|
+
"url": "https://getcontroller.ai/skills-mcp/2026.10.15.1/controllerai-data/SKILL.md",
|
|
120
|
+
"sha256": "0d811acf8f3564cc07bdbf80d247199408c9f3120f3ab709141e7f416621e216",
|
|
121
|
+
"size": 12505
|
|
134
122
|
},
|
|
135
123
|
{
|
|
136
124
|
"path": "controllerai-data/references/data-rails.md",
|
|
137
|
-
"url": "https://getcontroller.ai/skills-mcp/2026.
|
|
125
|
+
"url": "https://getcontroller.ai/skills-mcp/2026.10.15.1/controllerai-data/references/data-rails.md",
|
|
138
126
|
"sha256": "6d22c72b3b2da83cfaf078683ef41ec2b6f3b9b249789ab2bd23d01d6710c261",
|
|
139
127
|
"size": 2843
|
|
140
128
|
}
|
|
@@ -145,13 +133,13 @@
|
|
|
145
133
|
"files": [
|
|
146
134
|
{
|
|
147
135
|
"path": "controllerai-ai-nodes/SKILL.md",
|
|
148
|
-
"url": "https://getcontroller.ai/skills-mcp/2026.
|
|
136
|
+
"url": "https://getcontroller.ai/skills-mcp/2026.10.15.1/controllerai-ai-nodes/SKILL.md",
|
|
149
137
|
"sha256": "a5ff387776661a193b75c9a0a8e4973b87904e9da5d10d48a2f10bdcf758693d",
|
|
150
138
|
"size": 9522
|
|
151
139
|
},
|
|
152
140
|
{
|
|
153
141
|
"path": "controllerai-ai-nodes/references/selection-and-testing.md",
|
|
154
|
-
"url": "https://getcontroller.ai/skills-mcp/2026.
|
|
142
|
+
"url": "https://getcontroller.ai/skills-mcp/2026.10.15.1/controllerai-ai-nodes/references/selection-and-testing.md",
|
|
155
143
|
"sha256": "66b235b9e81645ab877b31443505c7b07ea3f2e5a357053f266c121415f8cf5c",
|
|
156
144
|
"size": 3111
|
|
157
145
|
}
|
|
@@ -162,9 +150,9 @@
|
|
|
162
150
|
"files": [
|
|
163
151
|
{
|
|
164
152
|
"path": "controllerai-integration-actions/SKILL.md",
|
|
165
|
-
"url": "https://getcontroller.ai/skills-mcp/2026.
|
|
166
|
-
"sha256": "
|
|
167
|
-
"size":
|
|
153
|
+
"url": "https://getcontroller.ai/skills-mcp/2026.10.15.1/controllerai-integration-actions/SKILL.md",
|
|
154
|
+
"sha256": "5cdf3ca6a0031fe97a76081ceaabdf53ae6cdc25ebf285725c8ecd5f05bd9904",
|
|
155
|
+
"size": 10142
|
|
168
156
|
}
|
|
169
157
|
]
|
|
170
158
|
},
|
|
@@ -173,28 +161,17 @@
|
|
|
173
161
|
"files": [
|
|
174
162
|
{
|
|
175
163
|
"path": "controllerai-agents/SKILL.md",
|
|
176
|
-
"url": "https://getcontroller.ai/skills-mcp/2026.
|
|
164
|
+
"url": "https://getcontroller.ai/skills-mcp/2026.10.15.1/controllerai-agents/SKILL.md",
|
|
177
165
|
"sha256": "f93bbe8dee0c0686352531a60249f9a5da696107dc49d8f1e2bf9ff6639e141a",
|
|
178
166
|
"size": 13060
|
|
179
167
|
},
|
|
180
168
|
{
|
|
181
169
|
"path": "controllerai-agents/references/instructions-and-versioning.md",
|
|
182
|
-
"url": "https://getcontroller.ai/skills-mcp/2026.
|
|
170
|
+
"url": "https://getcontroller.ai/skills-mcp/2026.10.15.1/controllerai-agents/references/instructions-and-versioning.md",
|
|
183
171
|
"sha256": "88b059e74aef03ccb12a53815d1090e5449090ff6dfd863b6cef5a12b434cb65",
|
|
184
172
|
"size": 5644
|
|
185
173
|
}
|
|
186
174
|
]
|
|
187
|
-
},
|
|
188
|
-
{
|
|
189
|
-
"name": "controllerai-template-setup",
|
|
190
|
-
"files": [
|
|
191
|
-
{
|
|
192
|
-
"path": "controllerai-template-setup/SKILL.md",
|
|
193
|
-
"url": "https://getcontroller.ai/skills-mcp/2026.09.19.1/controllerai-template-setup/SKILL.md",
|
|
194
|
-
"sha256": "a530a694257ccf7622c4f16579cad91bf96ac06dfc7cbd82a919914abe387e52",
|
|
195
|
-
"size": 609
|
|
196
|
-
}
|
|
197
|
-
]
|
|
198
175
|
}
|
|
199
176
|
]
|
|
200
177
|
}
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: controllerai-template-setup
|
|
3
|
-
description: Complete an assisted Controller AI agent-template setup from the injected setup brief. Use when the system prompt contains a `## Template Setup` section with copied workflows, required connections, expected workflow tools, and a brief.
|
|
4
|
-
---
|
|
5
|
-
<!-- generated from .claude/skills by cli/scripts/render-skills.mjs; edit the source -->
|
|
6
|
-
|
|
7
|
-
# Assisted template setup
|
|
8
|
-
|
|
9
|
-
## Use this when
|
|
10
|
-
|
|
11
|
-
Use this skill first whenever the system prompt contains `## Template Setup`. That block is the authoritative inventory for one copied agent and its workflows; the brief decides which customer-specific values to collect, while the completion check decides whether every workflow is live and every expected workflow tool is attached.
|
|
12
|
-
|
|
13
|
-
Load `controllerai-node-config` for props, options, connections and node readiness, `controllerai-runs` for development checks, `controllerai-workflows` for validation and publication, and `controllerai-agents` for workflow-tool attachment. The setup procedure below owns their order.
|
|
14
|
-
|
|
15
|
-
## How it works
|
|
16
|
-
|
|
17
|
-
Read the entire injected block before acting. Its exact sections are `## Template Setup`, `### Copied Workflows`, `### Required Connections`, `### Expected Workflow Tools`, `### Brief`, and `### Completion Rule`; the opening fields are `Template`, `Template description`, and `Agent`. Keep every agent ID, copied workflow ID, source workflow-template ID, node ID, `nodeSlug`, `flow ID`, tool description, and `requiresConfirmation` value paired with its displayed name. Never rediscover one of these targets by a similar name.
|
|
18
|
-
|
|
19
|
-
The copied workflows are development drafts. Setup is complete only after every workflow under `### Copied Workflows` has been configured, checked, and published, and every binding under `### Expected Workflow Tools` is attached to the copied agent. Publishing the workflows does not publish the agent.
|
|
20
|
-
|
|
21
|
-
## Rules
|
|
22
|
-
|
|
23
|
-
1. **Explain before asking.** Before any connection handoff or brief question, explain what the template will do in exactly two plain-language sentences, using the template description and brief without exposing IDs, slugs, props, or commands. The kickoff already approves the template's shape, so do not insert the generic new-build planning round.
|
|
24
|
-
2. **Connections come first and are never optional.** Do not ask a brief decision while a connection required by the current graph is missing. A brief may offer an optional branch, but not an optional connection: if the user declines that branch, remove or disable the branch as the brief directs so the declined integration is no longer required.
|
|
25
|
-
3. **Ask one brief decision at a time.** Read the target's current props and any option list before framing that decision, ask in user-facing labels, end the turn, and wait. Do not bundle the next decision into the same message.
|
|
26
|
-
4. **Configure only what the brief asks for.** Do not infer channels, sheets, calendars, schedules, recipients, filters, defaults, or optional behavior from names or sample data. Preserve copied configuration that the brief does not direct you to change.
|
|
27
|
-
5. **Never publish a placeholder.** Values such as `TODO`, example IDs, angle-bracket placeholders, setup notes, unset required props, and a declined branch that still needs its connection are blockers. Fix or remove the affected path before publication.
|
|
28
|
-
6. **Use development evidence.** Check the smallest relevant node or flow after configuration, then the containing flow when an isolated node cannot prove wiring or expressions. A successful status without the intended output is not evidence.
|
|
29
|
-
7. **Treat completion failure as the repair list.** A failed completion returns `Agent template setup is incomplete:` followed by one bullet per problem. Fix exactly those bullets and nothing else. Do not redesign the template, add speculative tools, or mark success around a failed completion command.
|
|
30
|
-
|
|
31
|
-
## Procedure
|
|
32
|
-
|
|
33
|
-
### Establish the setup
|
|
34
|
-
|
|
35
|
-
Run `cai template-setup status --json` when starting or resuming. Continue only for the active setup bound to this thread; a missing, failed, or abandoned state is a stop condition, and a completed state should be reported without repeating setup. Read the block inventory, then give the required two-sentence explanation before asking the user to do or choose anything.
|
|
36
|
-
|
|
37
|
-
### Resolve every connection
|
|
38
|
-
|
|
39
|
-
For each unique `nodeSlug` in `### Required Connections`, inspect active accounts:
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
cai connection list --integration <nodeSlug> --json
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
If none exists, request the connection:
|
|
46
|
-
|
|
47
|
-
```bash
|
|
48
|
-
cai connection request <nodeSlug> --json
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
Tell the user in one plain sentence which service to connect and why, then stop and wait. If several accounts exist and the brief does not identify one, ask which displayed account to use and wait. After the user responds, verify with a fresh list; a connect card or a promise to connect is not authorization evidence.
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
cai connection list --integration <nodeSlug> --json
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
Bind the selected active connection to every matching node, using its copied workflow ID explicitly, and read readiness back:
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
cai node set-connection <nodeId> --connection <connectionId> --workflow <workflowId> --json
|
|
61
|
-
cai node status <nodeId> --workflow <workflowId> --json
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
Do not move to brief decisions until all connections still required by the graph are bound. When the user declines an optional branch, make the brief-directed removal or disablement first, then confirm the remaining nodes no longer require that integration.
|
|
65
|
-
|
|
66
|
-
### Resolve brief decisions
|
|
67
|
-
|
|
68
|
-
Take the decisions in brief order. Before each question, inspect the exact target:
|
|
69
|
-
|
|
70
|
-
```bash
|
|
71
|
-
cai node props <nodeId> --workflow <workflowId> --json
|
|
72
|
-
cai node options <nodeId> --prop <exactName> --workflow <workflowId> --json
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
Fetch option lists only after the connection and upstream selectors they depend on exist. If a selector reveals later props, set it, read props again, and only then prepare the next question. Present the returned labels, retain their exact values, and after the user's answer make one write and read it back:
|
|
76
|
-
|
|
77
|
-
```bash
|
|
78
|
-
cai node set <nodeId> --prop <exactName> --value '<returned-value>' --label '<returned-label>' --workflow <workflowId> --json
|
|
79
|
-
cai node props <nodeId> --workflow <workflowId> --json
|
|
80
|
-
cai node status <nodeId> --workflow <workflowId> --json
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
For a free-form value, respect the prop's type and ask for it in normal assistant text. If the brief does not call for a decision, do not create one.
|
|
84
|
-
|
|
85
|
-
### Check and publish every workflow
|
|
86
|
-
|
|
87
|
-
Use safe representative inputs on development and inspect the actual output:
|
|
88
|
-
|
|
89
|
-
```bash
|
|
90
|
-
cai run node <nodeId> --inputs '<json>' --workflow <workflowId> --json
|
|
91
|
-
cai run flow <flowId> --inputs '<json>' --workflow <workflowId> --json
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
Choose the node or flow that proves the configured decision; run the containing flow where wiring matters. Resolve every placeholder and readiness blocker, then publish each copied workflow listed in the block, including one with no expected tool:
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
cai workflow publish --workflow <workflowId> --json
|
|
98
|
-
cai workflow status --workflow <workflowId> --json
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
### Attach the expected tools and complete
|
|
102
|
-
|
|
103
|
-
For every line under `### Expected Workflow Tools`, attach that exact `(workflow ID, flow ID)` pair to the block's agent ID. Preserve the supplied description; omit `--description` only when it is `(none)`. Include `--require-confirmation` exactly when `requiresConfirmation` is `true`, and omit it when false.
|
|
104
|
-
|
|
105
|
-
```bash
|
|
106
|
-
cai agent add-workflow <agentId> --workflow-id <workflowId> --flow <flowId> --description '<description>' --require-confirmation --json
|
|
107
|
-
cai agent tools <agentId> --json
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
Do not attach an extra flow and do not publish the agent. Once every expected pair reads back, run:
|
|
111
|
-
|
|
112
|
-
```bash
|
|
113
|
-
cai template-setup complete --json
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
Success requires the returned setup status to be `completed`. If it fails, the error lists every remaining problem as a bullet. Each bullet maps to one repair:
|
|
117
|
-
|
|
118
|
-
- `<workflow> has unpublished changes`: the development state differs from the live release; publish that workflow again.
|
|
119
|
-
- `<node> in <workflow> has no connected account`: bind an active connection to that node, then publish again.
|
|
120
|
-
- `<workflow / flowId> is not present in the published workflow`: the expected flow is missing from the live release; restore it and publish.
|
|
121
|
-
- `<workflow / flowId> is missing its workflow tool binding`: attach that exact pair to the agent.
|
|
122
|
-
- `<workflow / flowId> must require confirmation`: update the tool so confirmation is required.
|
|
123
|
-
|
|
124
|
-
Verify each repair with the same read-back commands, then run completion again.
|
|
125
|
-
|
|
126
|
-
## Verify
|
|
127
|
-
|
|
128
|
-
Every connection still required by the final graph is active and bound; every brief decision reads back with the user's value; development evidence proves the configured path; each copied workflow has a live release; the agent tool list contains every expected workflow/flow pair with the supplied description and confirmation policy; and `cai template-setup complete` returns `completed`.
|
|
129
|
-
|
|
130
|
-
## Report
|
|
131
|
-
|
|
132
|
-
Tell the user what the configured template now does, the choices applied, what the development checks proved, and that its workflows are live and its tools attached. Name any untested external effect or remaining blocker plainly; never call a setup complete unless the completion command did.
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
interface:
|
|
2
|
-
display_name: "Controller AI Template Setup"
|
|
3
|
-
short_description: "Finish guided agent-template setup"
|
|
4
|
-
default_prompt: "Use $controllerai-template-setup to finish the assisted template setup in this builder thread, following its brief one decision at a time."
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
<!-- generated from .claude/skills by cli/scripts/render-skills.mjs; edit the source -->
|
|
2
|
-
<!-- Generated by cli/scripts/generate-mcp-tool-map.mjs; do not edit by hand. -->
|
|
3
|
-
|
|
4
|
-
# CLI to typed MCP tool map
|
|
5
|
-
|
|
6
|
-
This registry-derived map covers 168 CLI commands and 150 typed MCP tools. CLI examples remain the canonical grammar; typed MCP calls use the tool and camelCase parameters shown here. Global `--json` and `--api-url` flags are host-controlled and omitted.
|
|
7
|
-
|
|
8
|
-
| `cai` command | MCP tool | Parameter mapping | Notes |
|
|
9
|
-
| --- | --- | --- | --- |
|
|
10
|
-
| `agent_tool_action_add` | `agent_tool_action_add` | `<agentId>` → `agentId`; `--action` → `action`; `--connection` → `connectionId`; `--description` → `description`; `--integration` → `integration`; `--require-confirmation` → `requireConfirmation`; `slackRoute` (MCP-only) → `slackRoute` | — |
|
|
11
|
-
| `agent_knowledge_file_add` / `agent_workspace_file_add` | `agent_knowledge_file_add`<br>`agent_workspace_file_add` | `agent_knowledge_file_add`: `<agentId>` → `agentId`; `--file` → `content` (inline content); `--name` → `name`; `--replace` → `replace`; `--type` → `type`<br>`agent_workspace_file_add`: `<agentId>` → `agentId`; `--file` → `content` (inline content); `--name` → `name`; `--replace` → `replace`; `--space` → `space`; `--type` → `type` | split across typed tools |
|
|
12
|
-
| `agent_tool_workflow_add` | `agent_tool_workflow_add` | `<agentId>` → `agentId`; `--description` → `description`; `--flow` → `flow`; `--require-confirmation` → `requireConfirmation`; `--workflow-id` → `workflowId`; `slackRoute` (MCP-only) → `slackRoute` | — |
|
|
13
|
-
| `agent_conversation_approve` | `agent_conversation_approve` | `<conversationId>` → `conversationId`; `--request` → `requestId` | — |
|
|
14
|
-
| `agent_conversation_create` | `agent_conversation_create` | `<agentId>` → `agentId`; `--model` → `model`; `--title` → `title`; `--draft` → `rail=draft`; `--live` → `rail=live` | — |
|
|
15
|
-
| `agent_conversation_deny` | `agent_conversation_deny` | `<conversationId>` → `conversationId`; `--message` → `message`; `--request` → `requestId` | — |
|
|
16
|
-
| `agent_conversation_history` | `agent_conversation_history` | `<conversationId>` → `conversationId`; `--last` → `last` | — |
|
|
17
|
-
| `agent_conversation_list` | `agent_conversation_list` | `<agentId>` → `agentId`; `--mode` → `mode` | — |
|
|
18
|
-
| `agent_conversation_send` | `agent_conversation_send` | `<conversationId>` → `conversationId`; `--message` → `message`; `--timeout` → `waitSeconds` | `waitSeconds` default 60, max 120 |
|
|
19
|
-
| `agent_conversation_status` | `agent_conversation_status` | `<conversationId>` → `conversationId` | — |
|
|
20
|
-
| `agent_create` | `agent_create` | `--disabled` → `disabled`; `--instructions` / `--instructions-file` → `instructions` (inline content); `--name` → `name` | — |
|
|
21
|
-
| `agent_delete` | `agent_delete` | `<agentId>` → `agentId` | — |
|
|
22
|
-
| `agent_file_list` | `agent_file_list` | `<agentId>` → `agentId`; `--cursor` → `cursor`; `--environment` → `environment`; `--folder-prefix` → `folderPrefix`; `--limit` → `limit`; `--live` → `live`; `--search` → `search`; `--space` → `space` | — |
|
|
23
|
-
| `agent_get` | `agent_get` | `<agentId>` → `agentId` | — |
|
|
24
|
-
| `agent_list` | `agent_list` | `--ownership` → `ownership`; `--search` → `search` | — |
|
|
25
|
-
| `agent_present` | `agent_present` | `<agentId>` → `agentId`; `note` (MCP-only) → `note` | hosted: Returns a hosted agent summary and app link for the MCP host to present. |
|
|
26
|
-
| `agent_publish` | `agent_publish` | `<agentId>` → `agentId`; `--name` → `name` | — |
|
|
27
|
-
| `agent_publish_preflight` | `agent_publish_preflight` | `<agentId>` → `agentId` | — |
|
|
28
|
-
| `agent_file_remove` | `agent_file_remove` | `<agentId>` → `agentId`; `--environment` → `environment`; `--file-id` → `fileId`; `--path` → `path`; `--space` → `space` | — |
|
|
29
|
-
| `agent_tool_remove` | `agent_tool_remove` | `<agentId>` → `agentId`; `--tool` → `toolId` | — |
|
|
30
|
-
| `agent setup` (CLI only) | — | — | dropped: Configures local coding assistants on the user machine; nothing to do on a hosted server. |
|
|
31
|
-
| `agent_test` | `agent_test` | `<agentId>` → `agentId`; `--message` → `message`; `--model` → `model`; `--timeout` → `waitSeconds`; `--title` → `title`; `--draft` → `rail=draft`; `--live` → `rail=live` | `waitSeconds` default 60, max 120 |
|
|
32
|
-
| `agent_tool_list` | `agent_tool_list` | `<agentId>` → `agentId` | — |
|
|
33
|
-
| `agent_update` / `agent_set_enabled` | `agent_set_enabled`<br>`agent_update` | `agent_set_enabled`: `<agentId>` → `agentId`; `--enabled` / `--disabled` → `enabled`<br>`agent_update`: `<agentId>` → `agentId`; `--instructions` / `--instructions-file` → `instructions` (inline content); `--name` → `name` | split across typed tools |
|
|
34
|
-
| `agent_tool_update` | `agent_tool_update` | `<agentId>` → `agentId`; `--connection` → `connectionId`; `--description` → `description`; `--require-confirmation` / `--no-confirmation` → `requireConfirmation`; `--tool` → `toolId`; `slackRoute` (MCP-only) → `slackRoute` | — |
|
|
35
|
-
| `agent_version_list` | `agent_version_list` | `<agentId>` → `agentId` | — |
|
|
36
|
-
| `agent_visibility_set` | `agent_visibility_set` | `<agentId>` → `agentId`; `--value` → `value` | — |
|
|
37
|
-
| `approval_resume` | `approval_resume` | `<id>` → `approvalId`; `waitSeconds` (MCP-only) → `waitSeconds` | `waitSeconds` default 60, max 120 |
|
|
38
|
-
| `auth key` (CLI only) | — | — | dropped: Mints a long-lived local credential and is not an MCP account operation. |
|
|
39
|
-
| `auth login` (CLI only) | — | — | dropped: Starts a local device-code login even though the MCP request is already OAuth-authorized. |
|
|
40
|
-
| `auth logout` (CLI only) | — | — | dropped: Deletes local CLI credentials; it is not integration connection revocation. |
|
|
41
|
-
| `auth password` (CLI only) | — | — | dropped: Accepts a development email/password credential on the local machine. |
|
|
42
|
-
| `account_status` | `account_status` | — | hosted: The host reports the authenticated grant and combines it with server health facts. |
|
|
43
|
-
| `auth token` (CLI only) | — | — | dropped: Writes a bearer token into local CLI configuration. |
|
|
44
|
-
| `branch_add` | `branch_add` | `<nodeId>` → `nodeId`; `--allow-duplicate` → `allowDuplicate`; `--condition-json` → `conditionJson`; `--js` / `--js-file` → `js` (inline content); `--name` → `name`; `--workflow` → `workflowId` | — |
|
|
45
|
-
| `branch_connect` | `branch_connect` | `<nodeId>` → `nodeId`; `--flow` → `flow`; `--route` → `branchId`; `--to` → `to`; `--workflow` → `workflowId` | — |
|
|
46
|
-
| `branch_delete` | `branch_delete` | `<nodeId>` → `nodeId`; `--route` → `branchId`; `--workflow` → `workflowId` | — |
|
|
47
|
-
| `branch_list` | `branch_list` | `<nodeId>` → `nodeId`; `--workflow` → `workflowId` | — |
|
|
48
|
-
| `branch_reorder` | `branch_reorder` | `<nodeId>` → `nodeId`; `--order` → `order`; `--workflow` → `workflowId` | — |
|
|
49
|
-
| `branch_update` | `branch_update` | `<nodeId>` → `nodeId`; `--condition-json` → `conditionJson`; `--js` / `--js-file` → `js` (inline content); `--name` → `name`; `--route` → `branchId`; `--workflow` → `workflowId` | — |
|
|
50
|
-
| `config reset` (CLI only) | — | — | dropped: Clears a local workflow pin; typed MCP calls are stateless. |
|
|
51
|
-
| `connect` (CLI only) | — | — | dropped: Installs local skills, opens a browser, and verifies a local project. |
|
|
52
|
-
| `connection_connect_url` | `connection_connect_url` | `<nodeSlug>` → `nodeSlug` | — |
|
|
53
|
-
| `connection_delete` | `connection_delete` | `<connectionId>` → `connectionId` | — |
|
|
54
|
-
| `connection_list` | `connection_list` | `--integration` → `integration` | — |
|
|
55
|
-
| `connection request` (CLI only) | — | — | dropped: Posts a connect card into build chat; connection_connect_url supplies the hosted outcome. |
|
|
56
|
-
| `connection_update` | `connection_update` | `<connectionId>` → `connectionId`; `--name` → `displayName`; `--default` / `--no-default` → `isDefault` | — |
|
|
57
|
-
| `schema_type_create` | `schema_type_create` | `<dataType>` → `name`; `--display` → `display`; `--field` → `field`; `--from-json` → `fromJson` (inline content); `--workflow` → `workflowId` | merged: The CLI command is sugar over schema create; no separate collection-create route exists. |
|
|
58
|
-
| `data_collection_list` | `data_collection_list` | `--env` → `env`; `--workflow` → `workflowId` | — |
|
|
59
|
-
| `data_copy_to_live` | `data_copy_to_live` | `--type` → `type`; `--workflow` → `workflowId`; `env` (MCP-only) → `env` | `env` required |
|
|
60
|
-
| `data_record_create` | `data_record_create` | `--env` → `env`; `--fields` → `fields`; `--type` → `type`; `--workflow` → `workflowId` | `env` required |
|
|
61
|
-
| `data_record_delete` | `data_record_delete` | `<recordId>` → `recordId`; `--env` → `env`; `--type` → `type`; `--workflow` → `workflowId` | `env` required |
|
|
62
|
-
| `data_record_delete_many` | `data_record_delete_many` | `--all` → `all`; `--env` → `env`; `--records` → `recordIds`; `--type` → `type`; `--workflow` → `workflowId` | `env` required |
|
|
63
|
-
| `data_field_list` | `data_field_list` | `--type` → `type`; `--workflow` → `workflowId` | — |
|
|
64
|
-
| `data_record_get` | `data_record_get` | `<recordId>` → `recordId`; `--env` → `env`; `--type` → `type`; `--workflow` → `workflowId` | — |
|
|
65
|
-
| `data_record_import_commit` / `data_record_import_validate` | `data_record_import_commit`<br>`data_record_import_validate` | `data_record_import_commit`: `--env` → `env`; `--file` → `content` (inline content); `--type` → `type`; `--workflow` → `workflowId`<br>`data_record_import_validate`: `--env` → `env`; `--file` → `content` (inline content); `--type` → `type`; `--workflow` → `workflowId` | split across typed tools; `env` required |
|
|
66
|
-
| `data_record_query` | `data_record_query` | `--env` → `env`; `--limit` → `limit`; `--offset` → `offset`; `--query` → `query`; `--type` → `type`; `--workflow` → `workflowId` | — |
|
|
67
|
-
| `data_record_update` | `data_record_update` | `<recordId>` → `recordId`; `--env` → `env`; `--fields` → `fields`; `--type` → `type`; `--workflow` → `workflowId` | `env` required |
|
|
68
|
-
| `dependency_map` | `dependency_map` | `--workflow` → `workflowId` | — |
|
|
69
|
-
| `docs` (CLI only) | — | — | dropped: Fetches documentation into a local terminal; hosted clients read guide_get or the docs site. |
|
|
70
|
-
| `account_status` | `account_status` | — | hosted: Local runtime checks do not apply; useful account and version facts are in account_status. |
|
|
71
|
-
| `event_list` | `event_list` | `--cursor` → `cursor`; `--limit` → `limit`; `--since` → `since`; `--type` → `type`; `--for-workflow` / `--workflow` → `workflowId` | — |
|
|
72
|
-
| `execution_flow_get` | `execution_flow_get` | `<flowExecutionId>` → `flowExecutionId`; `--workflow` → `workflowId` | — |
|
|
73
|
-
| `execution_get` | `execution_get` | `<workflowExecutionId>` → `workflowExecutionId`; `--workflow` → `workflowId` | — |
|
|
74
|
-
| `execution_list` | `execution_list` | `--limit` → `limit`; `--workflow` → `workflowId` | — |
|
|
75
|
-
| `execution_node_get` | `execution_node_get` | `<nodeExecutionId>` → `nodeExecutionId`; `--full` → `full`; `--workflow` → `workflowId` | — |
|
|
76
|
-
| `execution_tree` | `execution_tree` | `<workflowExecutionId>` → `workflowExecutionId`; `--cursor` → `cursor`; `--flow` → `flowId`; `--limit` → `limit`; `--status` → `status`; `--workflow` → `workflowId` | — |
|
|
77
|
-
| `expr_context` | `expr_context` | `<nodeId>` → `nodeId`; `--methods` → `methods`; `--prop` → `prop`; `--workflow` → `workflowId` | — |
|
|
78
|
-
| `expr_decompile` | `expr_decompile` | `<nodeId>` → `nodeId`; `--prop` → `prop`; `--workflow` → `workflowId` | — |
|
|
79
|
-
| `expr_operation_list` | `expr_operation_list` | `--type` → `type`; `--workflow` → `workflowId` | — |
|
|
80
|
-
| `node_prop_set` | `node_prop_set` | `<nodeId>` → `nodeId`; `--js` / `--js-file` → `js` (inline content); `label` (MCP-only) → `label`; `--prop` → `prop`; `rawExpressionJson` (MCP-only) → `rawExpressionJson`; `value` (MCP-only) → `value`; `--workflow` → `workflowId`; `valueJson` (MCP-only) → `valueJson` | merged: node_prop_set exposes the same expression write alongside literal and raw-expression forms. |
|
|
81
|
-
| `expr_validate` | `expr_validate` | `<nodeId>` → `nodeId`; `--js` / `--js-file` → `js` (inline content); `--mode` → `mode`; `--prop` → `prop`; `--workflow` → `workflowId` | — |
|
|
82
|
-
| `file_share` | `file_share` | `--name` → `name`; `content` (MCP-only) → `content`; `encoding` (MCP-only) → `encoding`; `mimeType` (MCP-only) → `mimeType` | hosted: Stores inline bytes as a private artifact and returns its browser-openable link. |
|
|
83
|
-
| `flow_create` | `flow_create` | `--name` → `name`; `--workflow` → `workflowId` | — |
|
|
84
|
-
| `flow_delete` | `flow_delete` | `<flowId>` → `flowId`; `--workflow` → `workflowId` | — |
|
|
85
|
-
| `flow_duplicate` | `flow_duplicate` | `<flowId>` → `flowId`; `--workflow` → `workflowId` | — |
|
|
86
|
-
| `flow_for_each_scaffold` | `flow_for_each_scaffold` | `--continue-on-error` → `continueOnError`; `--flow` → `flow`; `--from` → `from`; `--item-field` → `itemField`; `--item-name` → `itemName`; `--item-type` → `itemType`; `--list-field` → `listField`; `--list-js` / `--js-file` → `listJs` (inline content); `--max-items` → `maxItems`; `--name` → `name`; `--source-output` → `sourceOutput`; `--workflow` → `workflowId` | — |
|
|
87
|
-
| `flow_get` | `flow_get` | `<flowId>` → `flowId`; `--workflow` → `workflowId` | — |
|
|
88
|
-
| `flow_input_add` | `flow_input_add` | `<flowId>` → `flowId`; `--description` → `description`; `--display` → `display`; `--list` → `list`; `--optional` → `optional`; `--type` → `type`; `--workflow` → `workflowId` | — |
|
|
89
|
-
| `flow_input_delete` | `flow_input_delete` | `<flowId>` → `flowId`; `--input` → `input`; `--workflow` → `workflowId` | — |
|
|
90
|
-
| `flow_input_update` | `flow_input_update` | `<flowId>` → `flowId`; `--default-value` → `defaultValue`; `--description` → `description`; `--display` → `display`; `--input` → `input`; `--name` → `name`; `--optional` / `--required` → `optional`; `--type` → `type`; `--workflow` → `workflowId` | — |
|
|
91
|
-
| `flow_layout` | `flow_layout` | `<flowId>` → `flowId`; `--workflow` → `workflowId` | — |
|
|
92
|
-
| `flow_list` | `flow_list` | `--workflow` → `workflowId` | — |
|
|
93
|
-
| `flow_output_add` | `flow_output_add` | `<flowId>` → `flowId`; `--description` → `description`; `--display` → `display`; `--name` → `name`; `--type` → `type`; `--workflow` → `workflowId` | — |
|
|
94
|
-
| `flow_output_delete` | `flow_output_delete` | `<flowId>` → `flowId`; `--output` → `output`; `--workflow` → `workflowId` | — |
|
|
95
|
-
| `flow_output_update` | `flow_output_update` | `<flowId>` → `flowId`; `--description` → `description`; `--display` → `display`; `--name` → `name`; `--output` → `output`; `--type` → `type`; `--workflow` → `workflowId` | — |
|
|
96
|
-
| `flow_output_list` | `flow_output_list` | `<flowId>` → `flowId`; `--workflow` → `workflowId` | — |
|
|
97
|
-
| `flow_rename` | `flow_rename` | `<flowId>` → `flowId`; `--name` → `name`; `--workflow` → `workflowId` | — |
|
|
98
|
-
| `flow_reorder` | `flow_reorder` | `--order` → `order`; `--workflow` → `workflowId` | — |
|
|
99
|
-
| `integration_action_get` | `integration_action_get` | `--integration` → `integration`; `--key` → `key` | — |
|
|
100
|
-
| `integration_action_list` | `integration_action_list` | `<query>` → `query`; `--agent-attachable` → `agentAttachable`; `--integration` → `integration`; `--limit` → `limit` | — |
|
|
101
|
-
| `integration_search` | `integration_search` | `<query>` → `query`; `--agent-attachable` → `agentAttachable`; `--limit` → `limit`; `--actions` → `kind=actions`; `--events` → `kind=events`; `` → `kind=all` | — |
|
|
102
|
-
| `label_list` | `label_list` | — | — |
|
|
103
|
-
| `label_set` | `label_set` | `--agent` → `agentId`; `--labels` / `--label` / `--none` → `labels`; `--workflow` → `workflowId` | — |
|
|
104
|
-
| `node_add` | `node_add` | `--after` → `after`; `--connection` → `connection`; `--enable-prop` → `enableProp`; `--flow` → `flow`; `--key` → `key`; `--name` → `name`; `--node` → `node`; `--output` → `output`; `--props` → `props`; `--workflow` → `workflowId` | — |
|
|
105
|
-
| `node_connect` | `node_connect` | `--flow` → `flow`; `--from` → `from`; `--output` → `output`; `--to` → `to`; `--workflow` → `workflowId` | — |
|
|
106
|
-
| `node_continue_on_error_set` | `node_continue_on_error_set` | `<nodeId>` → `nodeId`; `--enable` / `--disable` → `enabled`; `--workflow` → `workflowId` | — |
|
|
107
|
-
| `node_output_type_declare` | `node_output_type_declare` | `<nodeId>` → `nodeId`; `--sample-file` → `sample` (inline content); `--workflow` → `workflowId` | — |
|
|
108
|
-
| `node_delete` | `node_delete` | `<nodeId>` → `nodeId`; `--workflow` → `workflowId` | — |
|
|
109
|
-
| `node_optional_prop_set` | `node_optional_prop_set` | `<nodeId>` → `nodeId`; `--prop` → `prop`; `--workflow` → `workflowId`; `enabled` (MCP-only) → `enabled` | merged: The explicit enabled boolean replaces the separate disabling command. |
|
|
110
|
-
| `node_disconnect` | `node_disconnect` | `--edge` → `edge`; `--workflow` → `workflowId` | — |
|
|
111
|
-
| `node_duplicate` | `node_duplicate` | `<nodeId>` → `nodeId`; `--workflow` → `workflowId` | — |
|
|
112
|
-
| `node_optional_prop_set` | `node_optional_prop_set` | `<nodeId>` → `nodeId`; `--prop` → `prop`; `--workflow` → `workflowId`; `enabled` (MCP-only) → `enabled` | merged: The explicit enabled boolean replaces the separate enabling command. |
|
|
113
|
-
| `node_get` | `node_get` | `<nodeId>` → `nodeId`; `--workflow` → `workflowId` | — |
|
|
114
|
-
| `node_only_when_set` | `node_only_when_set` | `<nodeId>` → `nodeId`; `--clear` → `clear`; `--groups-json` → `groups`; `--js` / `--js-file` → `js` (inline content); `--workflow` → `workflowId` | — |
|
|
115
|
-
| `node_optional_prop_list` | `node_optional_prop_list` | `<nodeId>` → `nodeId`; `--workflow` → `workflowId` | — |
|
|
116
|
-
| `node_prop_options` | `node_prop_options` | `<nodeId>` → `nodeId`; `--for` → `for`; `--page` → `page`; `--prev-context` → `prevContext`; `--prop` → `prop`; `--query` → `query`; `--workflow` → `workflowId` | — |
|
|
117
|
-
| `node_prop_list` | `node_prop_list` | `<nodeId>` → `nodeId`; `--workflow` → `workflowId` | — |
|
|
118
|
-
| `node_prop_reload` | `node_prop_reload` | `<nodeId>` → `nodeId`; `--workflow` → `workflowId` | — |
|
|
119
|
-
| `node_rename` | `node_rename` | `<nodeId>` → `nodeId`; `--name` → `name`; `--workflow` → `workflowId` | — |
|
|
120
|
-
| `node_prop_set` | `node_prop_set` | `<nodeId>` → `nodeId`; `--js` / `--js-file` → `js` (inline content); `--label` → `label`; `--prop` → `prop`; `--raw-expression-json` → `rawExpressionJson` (inline content); `--value` → `value`; `--workflow` → `workflowId`; `--value` → `valueJson` | — |
|
|
121
|
-
| `node_connection_set` | `node_connection_set` | `<nodeId>` → `nodeId`; `--connection` → `connection`; `--workflow` → `workflowId` | — |
|
|
122
|
-
| `node_subflow_set` | `node_subflow_set` | `<nodeId>` → `nodeId`; `--flow` → `flow`; `--workflow` → `workflowId` | — |
|
|
123
|
-
| `node_status` | `node_status` | `<nodeId>` → `nodeId`; `--workflow` → `workflowId` | — |
|
|
124
|
-
| `run_discover` | `run_discover` | `--connection` → `connection`; `--enable` → `enable`; `--key` → `key`; `--node` → `node`; `--props` → `props`; `--workflow` → `workflowId` | — |
|
|
125
|
-
| `run_flow` | `run_flow` | `<flowId>` → `flowId`; `--confirm-live` → `confirmLive`; `--inputs` → `inputs`; `--target` → `target`; `--timeout` → `waitSeconds`; `--workflow` → `workflowId` | `waitSeconds` default 60, max 120 |
|
|
126
|
-
| `run_inputs` | `run_inputs` | `<nodeIdOrFlowId>` → `nodeIdOrFlowId`; `--flow` → `flow`; `--workflow` → `workflowId` | — |
|
|
127
|
-
| `run_node` | `run_node` | `<nodeId>` → `nodeId`; `--inputs` → `inputs`; `--timeout` → `waitSeconds`; `--workflow` → `workflowId` | `waitSeconds` default 60, max 120 |
|
|
128
|
-
| `run workflow` (CLI only) | — | — | dropped: Excluded dead stub whose handler always throws NOT_IMPLEMENTED. |
|
|
129
|
-
| `schema_type_create` | `schema_type_create` | `<name>` → `name`; `--display` → `display`; `--field` → `field`; `--from-json` → `fromJson` (inline content); `--workflow` → `workflowId` | — |
|
|
130
|
-
| `schema_type_delete` | `schema_type_delete` | `<name>` → `name`; `--workflow` → `workflowId` | — |
|
|
131
|
-
| `schema_type_get` | `schema_type_get` | `<name>` → `name`; `--workflow` → `workflowId` | — |
|
|
132
|
-
| `schema_type_list` | `schema_type_list` | `--all` → `all`; `--workflow` → `workflowId` | — |
|
|
133
|
-
| `schema_type_resolve` | `schema_type_resolve` | `<typeId>` → `typeId`; `--workflow` → `workflowId` | — |
|
|
134
|
-
| `schema_type_update` | `schema_type_update` | `<name>` → `name`; `--display` → `display`; `--field` → `field`; `--from-json` → `fromJson` (inline content); `--workflow` → `workflowId` | — |
|
|
135
|
-
| `signup` (CLI only) | — | — | dropped: The OAuth-authorized caller already has a provisioned account; root signup is local bootstrap. |
|
|
136
|
-
| `account_claim_start` | `account_claim_start` | `<address>` → `email` | hosted: Uses the OAuth grant durable email-claim adapter instead of local CLI credential replacement. |
|
|
137
|
-
| `account_claim_verify` | `account_claim_verify` | `<code>` → `code` | hosted: Uses the OAuth grant durable email verification adapter. |
|
|
138
|
-
| `skills install` (CLI only) | — | — | dropped: Writes guidance into a caller local project, which the hosted server cannot access. |
|
|
139
|
-
| `guide_get` / `guide_list` | `guide_get`<br>`guide_list` | `guide_get`: `name` (MCP-only) → `name`<br>`guide_list`: — | hosted: guide_list and guide_get serve the bundled server guidance without inspecting a local project. |
|
|
140
|
-
| `skills update` (CLI only) | — | — | dropped: Updates guidance files in a caller local project. |
|
|
141
|
-
| `template-setup complete` (CLI only) | — | — | dropped: Assisted template setup runs inside the builder sandbox from its injected brief, not through the hosted MCP. |
|
|
142
|
-
| `template-setup status` (CLI only) | — | — | dropped: Assisted template setup runs inside the builder sandbox from its injected brief, not through the hosted MCP. |
|
|
143
|
-
| `trigger_audit` | `trigger_audit` | `--workflow` → `workflowId` | — |
|
|
144
|
-
| `trigger_create` | `trigger_create` | `--connection` → `connection`; `--dynamic-props-id` → `dynamicPropsId`; `--event` → `event`; `--flow` → `flow`; `--node` → `node`; `--props` → `props`; `--source-basis` → `sourceBasis`; `--workflow` → `workflowId` | — |
|
|
145
|
-
| `trigger_delete` | `trigger_delete` | `<triggerId>` → `triggerId`; `--workflow` → `workflowId` | — |
|
|
146
|
-
| `trigger_event_get` | `trigger_event_get` | `<eventId>` → `eventId`; `--workflow` → `workflowId` | — |
|
|
147
|
-
| `trigger_event_list` | `trigger_event_list` | `--limit` → `limit`; `--trigger` → `triggerId`; `--workflow` → `workflowId` | — |
|
|
148
|
-
| `trigger_get` | `trigger_get` | `<triggerId>` → `triggerId`; `--workflow` → `workflowId` | — |
|
|
149
|
-
| `trigger_list` | `trigger_list` | `--workflow` → `workflowId` | — |
|
|
150
|
-
| `trigger_prop_options` | `trigger_prop_options` | `--configured` → `configured`; `--connection` → `connection`; `--dynamic-props-id` → `dynamicPropsId`; `--event` → `event`; `--node` → `node`; `--page` → `page`; `--prev-context` → `prevContext`; `--prop` → `prop`; `--query` → `query`; `--workflow` → `workflowId` | — |
|
|
151
|
-
| `trigger_component_props` | `trigger_component_props` | `--configured` → `configured`; `--connection` → `connection`; `--dynamic-props-id` → `dynamicPropsId`; `--event` → `event`; `--node` → `node`; `--workflow` → `workflowId` | — |
|
|
152
|
-
| `trigger_rename` | `trigger_rename` | `<triggerId>` → `triggerId`; `--name` → `name`; `--workflow` → `workflowId` | — |
|
|
153
|
-
| `trigger_replay` | `trigger_replay` | `--confirm-live` → `confirmLive`; `--event` → `eventId`; `--payload` → `payload`; `--target` → `target`; `--trigger` → `triggerId`; `--workflow` → `workflowId` | — |
|
|
154
|
-
| `trigger_search` | `trigger_search` | `<query>` → `query`; `--events-per-node` → `eventsPerNode`; `--limit` → `limit`; `--node` → `node`; `--workflow` → `workflowId` | — |
|
|
155
|
-
| `trigger_event_select` | `trigger_event_select` | `--event` → `eventId`; `--node` → `triggerNodeId`; `--workflow` → `workflowId` | — |
|
|
156
|
-
| `trigger_set_enabled` | `trigger_set_enabled` | `<triggerId>` → `triggerId`; `--enable` / `--disable` → `enabled`; `--workflow` → `workflowId` | merged: The explicit enabled boolean combines the mutually exclusive enable and disable flags. |
|
|
157
|
-
| `trigger_test_events_set` | `trigger_test_events_set` | `<triggerId>` → `triggerId`; `--acknowledge-dual-run` → `acknowledgeDualRun`; `--allow` / `--disallow` → `allowed`; `--workflow` → `workflowId` | — |
|
|
158
|
-
| `upgrade` (CLI only) | — | — | dropped: Prints the local CLI upgrade command and updates local skills; nothing to do on a hosted server. |
|
|
159
|
-
| `use` (CLI only) | — | — | dropped: Persists a local workflow pin; every typed workflow call carries an explicit id. |
|
|
160
|
-
| `workflow_create` | `workflow_create` | `--name` → `name` | — |
|
|
161
|
-
| `workflow_delete` | `workflow_delete` | `<workflowId>` → `workflowId` | CLI requires positional `<workflowId>`; `--workflow` does not replace it |
|
|
162
|
-
| `workflow_document_get` | `workflow_document_get` | `--state` → `stateId`; `--workflow` → `workflowId` | — |
|
|
163
|
-
| `workflow_duplicate` | `workflow_duplicate` | `<workflowId>` / `--workflow` → `workflowId` | — |
|
|
164
|
-
| `workflow_get` | `workflow_get` | `<workflowId>` / `--workflow` → `workflowId` | — |
|
|
165
|
-
| `workflow_history` | `workflow_history` | `--group` → `group`; `--version` → `version`; `--workflow` → `workflowId` | — |
|
|
166
|
-
| `workflow_list` | `workflow_list` | `--limit` → `limit` | — |
|
|
167
|
-
| `workflow_outline` | `workflow_outline` | `<workflowId>` / `--workflow` → `workflowId` | — |
|
|
168
|
-
| `workflow_publish` | `workflow_publish` | `--acknowledge-dual-dispatch` → `acknowledgeDualDispatch`; `--acknowledge-validation-errors` → `acknowledgeValidationErrors`; `--name` → `name`; `--workflow` → `workflowId` | — |
|
|
169
|
-
| `workflow_release_list` | `workflow_release_list` | `<workflowId>` / `--workflow` → `workflowId` | — |
|
|
170
|
-
| `workflow_rename` | `workflow_rename` | `--name` → `name`; `<workflowId>` / `--workflow` → `workflowId` | — |
|
|
171
|
-
| `workflow_state_restore` | `workflow_state_restore` | `--state` → `stateId`; `--version` → `version`; `--workflow` → `workflowId` | — |
|
|
172
|
-
| `workflow_state_save` | `workflow_state_save` | `--name` → `name`; `--workflow` → `workflowId` | — |
|
|
173
|
-
| `workflow_description_set` | `workflow_description_set` | `--description` → `description`; `<workflowId>` / `--workflow` → `workflowId` | — |
|
|
174
|
-
| `workflow_state_get` | `workflow_state_get` | `--flow` → `flowId`; `--state` → `stateId`; `--workflow` → `workflowId` | — |
|
|
175
|
-
| `workflow_status` | `workflow_status` | `--workflow` → `workflowId` | — |
|
|
176
|
-
| `workflow_validate` | `workflow_validate` | `--workflow` → `workflowId` | — |
|
|
177
|
-
| `workflow_version_list` | `workflow_version_list` | `<workflowId>` / `--workflow` → `workflowId` | — |
|
|
178
|
-
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: controllerai-template-setup
|
|
3
|
-
description: Complete an assisted Controller AI agent-template setup from the injected setup brief. Use when the system prompt contains a `## Template Setup` section with copied workflows, required connections, expected workflow tools, and a brief.
|
|
4
|
-
---
|
|
5
|
-
<!-- generated from .claude/skills by cli/scripts/render-skills.mjs; edit the source -->
|
|
6
|
-
|
|
7
|
-
# Assisted template setup
|
|
8
|
-
|
|
9
|
-
This procedure requires the managed builder credential for the current setup thread and has no public MCP equivalent. Stop if a `## Template Setup` block appears outside that managed builder session.
|
|
10
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<!-- generated from .claude/skills by cli/scripts/render-skills.mjs; edit the source -->
|