@controllerai/cli 0.2.14 → 0.2.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +13 -4
  2. package/dist/assistantHosts.js +234 -0
  3. package/dist/assistantHosts.js.map +1 -0
  4. package/dist/commands/agent.js +2 -0
  5. package/dist/commands/agent.js.map +1 -1
  6. package/dist/commands/agentSetup.js +627 -0
  7. package/dist/commands/agentSetup.js.map +1 -0
  8. package/dist/commands/connect.js +29 -26
  9. package/dist/commands/connect.js.map +1 -1
  10. package/dist/commands/connection.js +98 -13
  11. package/dist/commands/connection.js.map +1 -1
  12. package/dist/commands/data.js +26 -15
  13. package/dist/commands/data.js.map +1 -1
  14. package/dist/commands/docs.js +95 -0
  15. package/dist/commands/docs.js.map +1 -0
  16. package/dist/commands/doctor.js +357 -13
  17. package/dist/commands/doctor.js.map +1 -1
  18. package/dist/commands/exec.js +284 -133
  19. package/dist/commands/exec.js.map +1 -1
  20. package/dist/commands/integration.js +170 -49
  21. package/dist/commands/integration.js.map +1 -1
  22. package/dist/commands/node.js +11 -287
  23. package/dist/commands/node.js.map +1 -1
  24. package/dist/commands/organize.js +182 -219
  25. package/dist/commands/organize.js.map +1 -1
  26. package/dist/commands/run.js +1 -1
  27. package/dist/commands/run.js.map +1 -1
  28. package/dist/commands/skills.js +2 -3
  29. package/dist/commands/skills.js.map +1 -1
  30. package/dist/commands/trigger.js +14 -8
  31. package/dist/commands/trigger.js.map +1 -1
  32. package/dist/commands/upgrade.js +69 -0
  33. package/dist/commands/upgrade.js.map +1 -0
  34. package/dist/commands/workflow.js +203 -61
  35. package/dist/commands/workflow.js.map +1 -1
  36. package/dist/index.js +9 -1
  37. package/dist/index.js.map +1 -1
  38. package/dist/nodeProps.js +1 -1
  39. package/dist/nodeProps.js.map +1 -1
  40. package/package.json +2 -2
  41. package/skills/controllerai-agents/SKILL.md +26 -18
  42. package/skills/controllerai-agents/references/instructions-and-versioning.md +2 -0
  43. package/skills/controllerai-ai-nodes/SKILL.md +9 -5
  44. package/skills/controllerai-ai-nodes/references/selection-and-testing.md +2 -0
  45. package/skills/controllerai-data/SKILL.md +17 -7
  46. package/skills/controllerai-data/references/data-rails.md +4 -2
  47. package/skills/controllerai-expressions/SKILL.md +17 -5
  48. package/skills/controllerai-expressions/references/dsl-and-recipes.md +5 -1
  49. package/skills/controllerai-flow-control/SKILL.md +11 -4
  50. package/skills/controllerai-flow-control/references/patterns.md +4 -0
  51. package/skills/controllerai-integration-actions/SKILL.md +20 -12
  52. package/skills/controllerai-node-config/SKILL.md +30 -9
  53. package/skills/controllerai-node-config/references/prop-and-readiness.md +9 -3
  54. package/skills/controllerai-runs/SKILL.md +20 -10
  55. package/skills/controllerai-runs/references/debugging.md +11 -7
  56. package/skills/controllerai-start/SKILL.md +36 -8
  57. package/skills/controllerai-start/references/mcp-tool-map.md +170 -0
  58. package/skills/controllerai-triggers/SKILL.md +13 -7
  59. package/skills/controllerai-triggers/references/lifecycle.md +5 -3
  60. package/skills/controllerai-workflows/SKILL.md +16 -10
  61. package/skills/controllerai-workflows/references/command-map.md +21 -6
  62. package/skills/manifest.json +79 -73
@@ -1,234 +1,197 @@
1
- import { buildClient, requireContext } from '../context.js';
1
+ import { buildClient, globalOpt, requireContext } from '../context.js';
2
2
  import { userError } from '../errors.js';
3
- import { emit, printKeyValues, printTable, warn } from '../output.js';
4
- export const registerOrganize = (program) => {
5
- const folder = program.command('folder').description('Folders for organising workflows');
6
- folder
7
- .command('list')
8
- .description('Every folder you own')
9
- .action(async (_opts, command) => {
10
- const { api } = buildClient(command);
11
- const rows = await api.rest('/folder/get-folders');
12
- emit({ items: rows ?? [], folders: rows ?? [] }, () => printTable(['id', 'name', 'workflows'], (rows ?? []).map(f => [f.id, f.name, f.workflowCount ?? '-'])));
13
- });
14
- folder
15
- .command('create')
16
- .requiredOption('--name <name>')
17
- .description('Create a folder')
18
- .action(async (opts, command) => {
19
- const { api } = buildClient(command);
20
- const result = await api.rest('/folder/create-folder', {
21
- method: 'POST',
22
- body: { name: opts.name },
23
- });
24
- emit(result, () => printKeyValues([
25
- ['folderId', result?.id],
26
- ['name', result?.name ?? opts.name],
27
- ]));
28
- });
29
- folder
30
- .command('rename')
31
- .argument('<folderId>')
32
- .requiredOption('--name <name>')
33
- .description('Rename a folder')
34
- .action(async (folderId, opts, command) => {
35
- const { api } = buildClient(command);
36
- const result = await api.rest(`/folder/update-folder/${Number(folderId)}`, {
37
- method: 'POST',
38
- body: { name: opts.name },
39
- });
40
- emit(result, () => printKeyValues([
41
- ['folderId', folderId],
42
- ['name', opts.name],
43
- ]));
44
- });
45
- folder
46
- .command('delete')
47
- .argument('<folderId>')
48
- .description('Delete a folder (its workflows move to the root, they are not deleted)')
49
- .action(async (folderId, _opts, command) => {
50
- const { api } = buildClient(command);
51
- // Yes, a GET. The route is `folderRoutes.get('/delete-folder/:id', …)`.
52
- const result = await api.rest(`/folder/delete-folder/${Number(folderId)}`);
53
- emit({ folderId: Number(folderId), deleted: true, result }, () => printKeyValues([['deleted folder', folderId]]));
54
- });
55
- const share = program.command('share').description('Public read-only share links for a workflow');
56
- share
57
- .command('list')
58
- .description('Share links that exist for this workflow')
59
- .action(async (_opts, command) => {
60
- const { api, workflowId } = requireContext(command);
61
- const rows = await api.rest('/workflow-share/list', {
62
- method: 'POST',
63
- body: { workflowId },
64
- });
65
- emit({ workflowId, items: rows ?? [], shares: rows ?? [] }, () => printTable(['shareId', 'token', 'name', 'revoked', 'createdAt'], (rows ?? []).map(s => [
66
- s.id,
67
- s.token,
68
- s.name ?? '-',
69
- s.isActive === true ? 'no' : s.isActive === false ? 'yes' : '-',
70
- s.createdAt,
71
- ])));
72
- });
73
- share
74
- .command('create')
75
- .option('--name <name>', 'label for the share')
76
- .option('--description <text>')
77
- .option('--version <workflowVersionId>', 'defaults to the LIVE version')
78
- .description('Publish a public read-only link to the live workflow version')
79
- .action(async (opts, command) => {
80
- const { api, workflowId } = requireContext(command);
81
- // Only a LIVE version can be shared — the backend rejects a development
82
- // version id with "Only live workflow versions can be shared", so the
83
- // default has to be the live rail, not the dev head every other command
84
- // works against.
85
- let versionId = opts.version ? Number(opts.version) : undefined;
86
- if (versionId === undefined) {
87
- const versions = await api.rest(`/workflow/${workflowId}/versions`);
88
- const live = (versions ?? []).find(v => v.isLiveVersion);
89
- if (!live) {
90
- throw userError('This workflow has no live version, so there is nothing shareable. Only live ' +
91
- 'versions can be shared — run `cai workflow publish` first.', 'NO_LIVE_VERSION');
92
- }
93
- versionId = live.id;
3
+ import { emit, printKeyValues, printTable } from '../output.js';
4
+ /** The backend currently assigns no color, so CLI-created labels use one stable fallback. */
5
+ export const DEFAULT_LABEL_COLOR = '#4F46E5';
6
+ export const MAX_LABEL_NAME_LENGTH = 64;
7
+ export const MAX_LABELS_PER_TARGET = 50;
8
+ const collectLabel = (value, previous = []) => [...previous, value];
9
+ export const requestedLabelNames = (opts) => {
10
+ const repeated = opts.label ?? [];
11
+ const hasLabelsOption = opts.labels !== undefined;
12
+ if (opts.none) {
13
+ if (hasLabelsOption || repeated.length > 0) {
14
+ throw userError('--none cannot be combined with --labels or --label.', 'LABEL_SELECTION_CONFLICT');
94
15
  }
95
- const result = await api.rest('/workflow-share/create', {
96
- method: 'POST',
97
- body: {
98
- workflowId,
99
- workflowVersionId: versionId,
100
- ...(opts.name ? { name: opts.name } : {}),
101
- ...(opts.description ? { description: opts.description } : {}),
102
- },
103
- });
104
- warn('This link is PUBLIC and unauthenticated — anyone holding the token can read the whole ' +
105
- 'workflow graph, including prop values baked into it. It pins the version it was ' +
106
- 'created from and does not follow later edits. Revoke with `cai share revoke`.');
107
- emit(result, () => printKeyValues([
108
- ['shareId', result?.id ?? result?.share?.id ?? '(see `cai share list`)'],
109
- ['token', result?.token ?? result?.share?.token],
110
- ['workflowVersionId', versionId],
111
- ]));
112
- });
113
- share
114
- .command('revoke')
115
- .argument('<shareId>')
116
- .description('Revoke a share link')
117
- .action(async (shareId, _opts, command) => {
118
- const { api } = buildClient(command);
119
- const result = await api.rest('/workflow-share/revoke', {
120
- method: 'POST',
121
- body: { shareId: Number(shareId) },
122
- });
123
- emit({ shareId: Number(shareId), revoked: true, result }, () => printKeyValues([['revoked share', shareId]]));
124
- });
125
- const label = program.command('label').description('Labels applied to workflows');
16
+ return [];
17
+ }
18
+ if (!hasLabelsOption && repeated.length === 0) {
19
+ throw userError('Pass --labels <name,...>, repeat --label <name>, or pass --none.', 'LABELS_REQUIRED');
20
+ }
21
+ const raw = [...(hasLabelsOption ? opts.labels.split(',') : []), ...repeated];
22
+ const names = raw.map(name => name.trim());
23
+ if (names.some(name => name.length === 0)) {
24
+ throw userError('Label names cannot be empty.', 'EMPTY_LABEL_NAME');
25
+ }
26
+ if (names.length > MAX_LABELS_PER_TARGET) {
27
+ throw userError(`At most ${MAX_LABELS_PER_TARGET} labels can be set at once.`, 'TOO_MANY_LABELS');
28
+ }
29
+ // JSON Schema maxLength counts Unicode code points rather than UTF-16 code units.
30
+ const tooLong = names.find(name => Array.from(name).length > MAX_LABEL_NAME_LENGTH);
31
+ if (tooLong !== undefined) {
32
+ throw userError(`Label names cannot exceed ${MAX_LABEL_NAME_LENGTH} characters: ${JSON.stringify(tooLong)}`, 'LABEL_NAME_TOO_LONG');
33
+ }
34
+ const seen = new Set();
35
+ for (const name of names) {
36
+ if (seen.has(name)) {
37
+ throw userError(`Duplicate label name: ${name}`, 'DUPLICATE_LABEL_NAME');
38
+ }
39
+ seen.add(name);
40
+ }
41
+ return names;
42
+ };
43
+ const labelColor = (...rows) => {
44
+ for (const row of rows) {
45
+ if (typeof row?.color === 'string' && row.color.trim())
46
+ return row.color;
47
+ }
48
+ return DEFAULT_LABEL_COLOR;
49
+ };
50
+ const resultLabel = (row, labelsById, labelsByName) => ({
51
+ id: row.id,
52
+ name: row.name,
53
+ color: labelColor(row, labelsById.get(row.id), labelsByName.get(row.name)),
54
+ });
55
+ const parseAgentId = (raw) => {
56
+ if (!/^[1-9][0-9]*$/.test(raw)) {
57
+ throw userError('agentId must be a positive integer.', 'BAD_ID');
58
+ }
59
+ const agentId = Number(raw);
60
+ if (!Number.isSafeInteger(agentId)) {
61
+ throw userError('agentId must be a positive integer.', 'BAD_ID');
62
+ }
63
+ return agentId;
64
+ };
65
+ const labelTarget = (command, agent) => {
66
+ const workflow = globalOpt(command, 'workflow');
67
+ const hasWorkflow = workflow !== undefined;
68
+ const hasAgent = agent !== undefined;
69
+ if (hasWorkflow === hasAgent) {
70
+ throw userError('Pass exactly one target: --workflow <id> or --agent <agentId>.', 'CONFLICTING_INPUT');
71
+ }
72
+ if (hasAgent) {
73
+ const agentId = parseAgentId(agent);
74
+ return {
75
+ kind: 'agent',
76
+ id: agentId,
77
+ idField: 'agentId',
78
+ readPath: `/agents/${agentId}`,
79
+ addPath: '/label/add-to-agent',
80
+ removePath: '/label/remove-from-agent',
81
+ };
82
+ }
83
+ const { workflowId } = requireContext(command);
84
+ return {
85
+ kind: 'workflow',
86
+ id: workflowId,
87
+ idField: 'workflowId',
88
+ readPath: `/workflow/${workflowId}`,
89
+ addPath: '/label/add-to-workflow',
90
+ removePath: '/label/remove-from-workflow',
91
+ };
92
+ };
93
+ export const registerOrganize = (program) => {
94
+ const label = program
95
+ .command('label')
96
+ .description('Workflow and agent labels; rename or delete account labels in the UI')
97
+ .addHelpCommand(false)
98
+ // Do not let a trailing --help turn a retired subcommand into successful group help.
99
+ .passThroughOptions();
126
100
  label
127
101
  .command('list')
128
102
  .description('Every label you own')
103
+ .addHelpText('after', '\nAccount-wide label renaming and deletion are handled in the UI.\n')
129
104
  .action(async (_opts, command) => {
130
105
  const { api } = buildClient(command);
131
- const rows = await api.rest('/label/list');
132
- emit({ items: rows ?? [], labels: rows ?? [] }, () => printTable(['id', 'name', 'color'], (rows ?? []).map(l => [l.id, l.name, l.color ?? '-'])));
106
+ const rows = (await api.rest('/label/list')) ?? [];
107
+ const labels = rows.map(row => ({ ...row, color: labelColor(row) }));
108
+ emit({ items: labels, labels }, () => printTable(['id', 'name', 'color', 'workflows', 'agents'], labels.map(row => [
109
+ row.id,
110
+ row.name,
111
+ row.color,
112
+ row.stats?.usage?.workflow ?? 0,
113
+ row.stats?.usage?.agent ?? 0,
114
+ ])));
133
115
  });
134
116
  label
135
- .command('create')
136
- .requiredOption('--name <name>')
137
- .option('--color <color>')
138
- .description('Create a label')
117
+ .command('set')
118
+ .description('Set the exact labels on one workflow or one agent by name')
119
+ .option('--agent <agentId>', 'agent id to label')
120
+ .option('--labels <name,...>', 'comma-separated label names')
121
+ .option('--label <name>', 'one label name; repeat for more than one', collectLabel)
122
+ .option('--none', 'remove every label from the target')
123
+ .addHelpText('after', '\nExactly one target is required: --workflow <id> or --agent <agentId>.\n' +
124
+ 'Account-wide label renaming and deletion are handled in the UI.\n')
139
125
  .action(async (opts, command) => {
126
+ const target = labelTarget(command, opts.agent);
127
+ const names = requestedLabelNames(opts);
140
128
  const { api } = buildClient(command);
141
- const result = await api.rest('/label/create', {
142
- method: 'POST',
143
- body: { name: opts.name, ...(opts.color ? { color: opts.color } : {}) },
144
- });
145
- emit(result, () => printKeyValues([
146
- ['labelId', result?.id],
147
- ['name', result?.name ?? opts.name],
148
- ]));
149
- });
150
- label
151
- .command('rename')
152
- .argument('<labelId>')
153
- .requiredOption('--name <name>')
154
- .description('Rename a label')
155
- .action(async (labelId, opts, command) => {
156
- const { api } = buildClient(command);
157
- const result = await api.rest('/label/rename', {
158
- method: 'POST',
159
- body: { labelId: Number(labelId), name: opts.name },
160
- });
161
- emit(result, () => printKeyValues([
162
- ['labelId', labelId],
163
- ['name', opts.name],
164
- ]));
165
- });
166
- label
167
- .command('delete')
168
- .argument('<labelId>')
169
- .description('Delete a label everywhere it is applied')
170
- .action(async (labelId, _opts, command) => {
171
- const { api } = buildClient(command);
172
- const result = await api.rest(`/label/${Number(labelId)}`, { method: 'DELETE' });
173
- emit({ labelId: Number(labelId), deleted: true, result }, () => printKeyValues([['deleted label', labelId]]));
174
- });
175
- label
176
- .command('add')
177
- .argument('<labelId>')
178
- .option('--workflow-id <id>', 'workflow to label (defaults to the pinned one)')
179
- .description('Apply a label to a workflow')
180
- .action(async (labelId, opts, command) => {
181
- const { api, workflowId } = requireContext(command);
182
- const target = opts.workflowId ? Number(opts.workflowId) : workflowId;
183
- const result = await api.rest('/label/add-to-workflow', {
184
- method: 'POST',
185
- body: { labelId: Number(labelId), workflowId: target },
186
- });
187
- emit({ labelId: Number(labelId), workflowId: target, result }, () => printKeyValues([
188
- ['labelId', labelId],
189
- ['workflowId', target],
190
- ]));
191
- });
192
- label
193
- .command('remove')
194
- .argument('<labelId>')
195
- .option('--workflow-id <id>', 'workflow to unlabel (defaults to the pinned one)')
196
- .description('Remove a label from a workflow')
197
- .action(async (labelId, opts, command) => {
198
- const { api, workflowId } = requireContext(command);
199
- const target = opts.workflowId ? Number(opts.workflowId) : workflowId;
200
- const result = await api.rest('/label/remove-from-workflow', {
201
- method: 'POST',
202
- body: { labelId: Number(labelId), workflowId: target },
203
- });
204
- emit({ labelId: Number(labelId), workflowId: target, result }, () => printKeyValues([
205
- ['removed label', labelId],
206
- ['from workflow', target],
207
- ]));
208
- });
209
- label
210
- .command('create-and-add')
211
- .requiredOption('--name <name>')
212
- .option('--color <color>')
213
- .option('--workflow-id <id>', 'workflow to label (defaults to the pinned one)')
214
- .description('Create a label and apply it in one call')
215
- .action(async (opts, command) => {
216
- const { api, workflowId } = requireContext(command);
217
- const target = opts.workflowId ? Number(opts.workflowId) : workflowId;
218
- if (!opts.name?.trim())
219
- throw userError('--name cannot be empty.', 'EMPTY_LABEL_NAME');
220
- const result = await api.rest('/label/create-and-add-to-workflow', {
221
- method: 'POST',
222
- body: {
223
- name: opts.name,
224
- workflowId: target,
225
- ...(opts.color ? { color: opts.color } : {}),
226
- },
129
+ const [accountLabels, entity] = await Promise.all([
130
+ api.rest('/label/list'),
131
+ api.rest(target.readPath),
132
+ ]);
133
+ const labelsByName = new Map((accountLabels ?? []).map(row => [row.name, row]));
134
+ const labelsById = new Map((accountLabels ?? []).map(row => [row.id, row]));
135
+ const current = entity?.labels ?? [];
136
+ const currentNames = new Set(current.map(row => row.name));
137
+ const desiredNames = new Set(names);
138
+ const created = [];
139
+ const attached = [];
140
+ const detached = [];
141
+ for (const name of names) {
142
+ if (labelsByName.has(name))
143
+ continue;
144
+ const createdLabel = await api.rest('/label/create', {
145
+ method: 'POST',
146
+ body: { name, color: DEFAULT_LABEL_COLOR },
147
+ });
148
+ if (!Number.isInteger(createdLabel?.id) || createdLabel.id <= 0) {
149
+ throw userError(`Creating label ${JSON.stringify(name)} returned no valid id.`, 'INVALID_LABEL_RESPONSE');
150
+ }
151
+ const stableLabel = {
152
+ ...createdLabel,
153
+ name,
154
+ color: labelColor(createdLabel),
155
+ };
156
+ labelsByName.set(name, stableLabel);
157
+ labelsById.set(stableLabel.id, stableLabel);
158
+ created.push(name);
159
+ }
160
+ for (const name of names) {
161
+ if (currentNames.has(name))
162
+ continue;
163
+ const row = labelsByName.get(name);
164
+ if (!row) {
165
+ throw userError(`Label ${JSON.stringify(name)} could not be resolved.`, 'LABEL_NOT_FOUND');
166
+ }
167
+ await api.rest(target.addPath, {
168
+ method: 'POST',
169
+ body: { labelId: row.id, [target.idField]: target.id },
170
+ });
171
+ attached.push(name);
172
+ }
173
+ for (const row of current) {
174
+ if (desiredNames.has(row.name))
175
+ continue;
176
+ await api.rest(target.removePath, {
177
+ method: 'POST',
178
+ body: { labelId: row.id, [target.idField]: target.id },
179
+ });
180
+ detached.push(row.name);
181
+ }
182
+ const reread = await api.rest(target.readPath);
183
+ const labels = (reread?.labels ?? []).map(row => resultLabel(row, labelsById, labelsByName));
184
+ const targetId = { [target.idField]: target.id };
185
+ const result = { ...targetId, labels, created, attached, detached };
186
+ emit(result, () => {
187
+ printKeyValues([
188
+ [target.idField, target.id],
189
+ ['created', created.length ? created.join(', ') : '(none)'],
190
+ ['attached', attached.length ? attached.join(', ') : '(none)'],
191
+ ['detached', detached.length ? detached.join(', ') : '(none)'],
192
+ ]);
193
+ printTable(['id', 'name', 'color'], labels.map(row => [row.id, row.name, row.color]));
227
194
  });
228
- emit(result, () => printKeyValues([
229
- ['label', opts.name],
230
- ['workflowId', target],
231
- ]));
232
195
  });
233
196
  };
234
197
  //# sourceMappingURL=organize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"organize.js","sourceRoot":"","sources":["../../src/commands/organize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"organize.js","sourceRoot":"","sources":["../../src/commands/organize.ts"],"names":[],"mappings":"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"}
@@ -847,7 +847,7 @@ export const registerRun = (program) => {
847
847
  run
848
848
  .command('discover')
849
849
  .requiredOption('--node <slug>', 'integration node slug')
850
- .requiredOption('--key <componentKey>', 'component key from `cai node components`')
850
+ .requiredOption('--key <componentKey>', 'exact action key from `cai integration actions`')
851
851
  .requiredOption('--connection <id|none>', 'connection id, or "none" for a component that needs no auth')
852
852
  .option('--props <json|file|->', 'prop values, same per-prop shape as `node add`')
853
853
  .option('--enable <prop>', 'optional prop to enable first; repeatable', (value, previous = []) => [...previous, value])