@controllerai/cli 0.2.11 → 0.2.13

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 (44) hide show
  1. package/dist/api/client.js +239 -13
  2. package/dist/api/client.js.map +1 -1
  3. package/dist/commands/agent.js +162 -27
  4. package/dist/commands/agent.js.map +1 -1
  5. package/dist/commands/approval.js +34 -0
  6. package/dist/commands/approval.js.map +1 -0
  7. package/dist/commands/auth.js +5 -4
  8. package/dist/commands/auth.js.map +1 -1
  9. package/dist/commands/branch.js +32 -1
  10. package/dist/commands/branch.js.map +1 -1
  11. package/dist/commands/connection.js +41 -0
  12. package/dist/commands/connection.js.map +1 -1
  13. package/dist/commands/expr.js +36 -0
  14. package/dist/commands/expr.js.map +1 -1
  15. package/dist/commands/file.js +70 -0
  16. package/dist/commands/file.js.map +1 -0
  17. package/dist/commands/flow.js +227 -28
  18. package/dist/commands/flow.js.map +1 -1
  19. package/dist/commands/node.js +69 -9
  20. package/dist/commands/node.js.map +1 -1
  21. package/dist/commands/run.js +50 -1
  22. package/dist/commands/run.js.map +1 -1
  23. package/dist/commands/trigger.js +4 -1
  24. package/dist/commands/trigger.js.map +1 -1
  25. package/dist/commands/workflow.js +226 -61
  26. package/dist/commands/workflow.js.map +1 -1
  27. package/dist/config.js +7 -1
  28. package/dist/config.js.map +1 -1
  29. package/dist/errors.js +7 -3
  30. package/dist/errors.js.map +1 -1
  31. package/dist/index.js +4 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/nodeProps.js +17 -3
  34. package/dist/nodeProps.js.map +1 -1
  35. package/package.json +1 -1
  36. package/skills/controllerai-agents/SKILL.md +32 -30
  37. package/skills/controllerai-flow-control/SKILL.md +11 -0
  38. package/skills/controllerai-integration-actions/SKILL.md +3 -1
  39. package/skills/controllerai-node-config/SKILL.md +3 -1
  40. package/skills/controllerai-runs/SKILL.md +1 -1
  41. package/skills/controllerai-triggers/SKILL.md +8 -0
  42. package/skills/controllerai-workflows/SKILL.md +9 -7
  43. package/skills/controllerai-workflows/references/command-map.md +2 -2
  44. package/skills/manifest.json +49 -49
@@ -153,6 +153,28 @@ export const prepareWritableProp = async (api, workflowId, nodeId, propName, met
153
153
  }
154
154
  return refreshed;
155
155
  };
156
+ /**
157
+ * The server-side decompiler marks constructs it cannot render as JS with an
158
+ * inline `UNREPRESENTABLE:` comment. Recompiling the JS a caller can see would
159
+ * then drop whatever the marker stands for — silently, and with a green
160
+ * readback — so the write is refused rather than verified into a loss.
161
+ */
162
+ const UNREPRESENTABLE_MARKER = 'UNREPRESENTABLE:';
163
+ const unrepresentableStoredExpression = (prop) => {
164
+ for (const channel of ['valueJs', 'expressionValueJs']) {
165
+ const source = prop[channel];
166
+ if (typeof source !== 'string')
167
+ continue;
168
+ const at = source.indexOf(UNREPRESENTABLE_MARKER);
169
+ if (at === -1)
170
+ continue;
171
+ const rest = source.slice(at + UNREPRESENTABLE_MARKER.length);
172
+ const commentEnd = rest.indexOf('*/');
173
+ const note = (commentEnd === -1 ? rest : rest.slice(0, commentEnd)).trim().slice(0, 120);
174
+ return { channel, note };
175
+ }
176
+ return null;
177
+ };
156
178
  const looksLikeExpressionBearingTextExpression = (value) => {
157
179
  if (!value || typeof value !== 'object' || Array.isArray(value))
158
180
  return false;
@@ -378,11 +400,25 @@ export const registerExpr = (program) => {
378
400
  .requiredOption('--prop <name>', 'destination prop')
379
401
  .option('--js <src>', 'expression DSL source')
380
402
  .option('--js-file <path|->', 'read expression DSL source from a UTF-8 file or stdin')
403
+ .option('--force', 'overwrite a stored expression the JS DSL cannot fully express, losing those constructs', false)
381
404
  .description('Context-check, compile, persist to the correct channel, and verify readback')
382
405
  .action(async (nodeId, opts, command) => {
383
406
  const js = resolveJsSource(opts);
384
407
  const { api, workflowId } = requireContext(command);
385
408
  const prop = await prepareWritableProp(api, workflowId, nodeId, opts.prop, candidate => assertArrayExpressionWriteSupported(nodeId, opts.prop, candidate, undefined));
409
+ const unrepresentable = unrepresentableStoredExpression(prop);
410
+ if (unrepresentable && !opts.force) {
411
+ throw userError(`${nodeId}.${opts.prop} already stores constructs the expression DSL cannot express: ` +
412
+ `its decompiled ${unrepresentable.channel} carries an UNREPRESENTABLE marker` +
413
+ `${unrepresentable.note ? ` (${unrepresentable.note})` : ''}. Recompiling the JS you ` +
414
+ 'can see would silently destroy them — nothing was written.\n\n' +
415
+ `Author the value raw with \`cai node set ${nodeId} --prop ${opts.prop} ` +
416
+ '--raw-expression-json <path|->`, or re-run with --force to overwrite it anyway.', 'UNREPRESENTABLE_STORED_EXPRESSION');
417
+ }
418
+ if (unrepresentable) {
419
+ warn(`--force: overwriting ${nodeId}.${opts.prop}, whose stored ${unrepresentable.channel} ` +
420
+ 'contains constructs the expression DSL cannot express. They will be lost.');
421
+ }
386
422
  const context = await getExpressionContext(api, workflowId, nodeId, opts.prop);
387
423
  if (context?.targetPropError) {
388
424
  throw userError(formatExpressionContextError(String(context.targetPropError), nodeId, opts.prop), 'EXPRESSION_TARGET_UNAVAILABLE');
@@ -1 +1 @@
1
- {"version":3,"file":"expr.js","sourceRoot":"","sources":["../../src/commands/expr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expr.js","sourceRoot":"","sources":["../../src/commands/expr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import { readFileSync, statSync } from 'node:fs';
2
+ import { basename, extname } from 'node:path';
3
+ import { buildClient } from '../context.js';
4
+ import { userError } from '../errors.js';
5
+ import { emit, printKeyValues } from '../output.js';
6
+ const SHARE_MAX_BYTES = 25 * 1024 * 1024;
7
+ // formidable infers the stored mimeType from the part header; a plain Blob
8
+ // defaults to octet-stream, which downgrades every card to "other". Cover the
9
+ // common deliverable types.
10
+ const MIME_BY_EXTENSION = {
11
+ '.csv': 'text/csv',
12
+ '.html': 'text/html',
13
+ '.json': 'application/json',
14
+ '.md': 'text/markdown',
15
+ '.pdf': 'application/pdf',
16
+ '.png': 'image/png',
17
+ '.jpg': 'image/jpeg',
18
+ '.jpeg': 'image/jpeg',
19
+ '.gif': 'image/gif',
20
+ '.webp': 'image/webp',
21
+ '.txt': 'text/plain',
22
+ '.xml': 'application/xml',
23
+ '.zip': 'application/zip',
24
+ '.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
25
+ '.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
26
+ };
27
+ export const registerFile = (program) => {
28
+ const file = program
29
+ .command('file')
30
+ .description('Hand files back to the user inside the build chat');
31
+ file
32
+ .command('share')
33
+ .argument('<path>')
34
+ .option('--name <displayName>', 'name shown on the file card (defaults to the file name)')
35
+ .description('Share one file with the user as a downloadable card in this build chat. ' +
36
+ 'Use it to deliver reports, exports, or other artifacts you produced.')
37
+ .action(async (rawPath, opts, command) => {
38
+ const { api } = buildClient(command);
39
+ let stats;
40
+ try {
41
+ stats = statSync(rawPath);
42
+ }
43
+ catch {
44
+ throw userError(`No file at ${rawPath}`, 'FILE_NOT_FOUND');
45
+ }
46
+ if (!stats.isFile()) {
47
+ throw userError(`${rawPath} is not a regular file`, 'NOT_A_FILE');
48
+ }
49
+ if (stats.size > SHARE_MAX_BYTES) {
50
+ throw userError('File is larger than the 25 MB share limit', 'FILE_TOO_LARGE');
51
+ }
52
+ const displayName = (opts.name?.trim() || basename(rawPath)).trim();
53
+ const mimeType = MIME_BY_EXTENSION[extname(displayName).toLowerCase()] ?? 'application/octet-stream';
54
+ const form = new FormData();
55
+ form.set('files', new Blob([new Uint8Array(readFileSync(rawPath))], { type: mimeType }), displayName);
56
+ form.set('displayName', displayName);
57
+ const result = await api.upload('/agent/thread-files/share', form);
58
+ emit({ ...result }, () => printKeyValues([
59
+ ['file', result.attachment?.name ?? displayName],
60
+ ['size', `${result.attachment?.sizeBytes ?? stats.size} bytes`],
61
+ [
62
+ 'card',
63
+ result.sharedInChat
64
+ ? 'shown to the user in this build chat'
65
+ : 'stored, but the chat card could not be delivered',
66
+ ],
67
+ ]));
68
+ });
69
+ };
70
+ //# sourceMappingURL=file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/commands/file.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { CaiError, userError } from '../errors.js';
3
3
  import { resolveJsSource } from '../jsSource.js';
4
4
  import { nodePropsFromPayload } from '../nodeProps.js';
5
5
  import { emit, printKeyValues, printTable, warn } from '../output.js';
6
+ import { parseLiteral } from './node.js';
6
7
  import { parseFieldSpecs } from './schema.js';
7
8
  const toSnakeCase = (value) => value
8
9
  .trim()
@@ -16,6 +17,96 @@ const toCamel = (value) => value.replace(/_([a-z0-9])/g, (_, char) => char.toUpp
16
17
  const isUnknownToolError = (error, toolName) => error instanceof CaiError &&
17
18
  error.message.includes(toolName) &&
18
19
  /unknown tool|tool[^\n]*(?:not found|does not exist|unrecognized)/i.test(error.message);
20
+ const FLOW_INPUT_NAME_UNAVAILABLE_WARNING = 'input name unavailable — read scope required';
21
+ const EDGE_HANDLE_UNAVAILABLE_WARNING = 'edge sourceHandle unavailable — read scope required; branch wiring is not shown';
22
+ const EDGE_HANDLE_AMBIGUOUS_WARNING = 'Parallel edges share a source and target on this flow and carry no matching id, so ' +
23
+ 'sourceHandle was attached in document order and may be misattributed. Confirm branch ' +
24
+ 'wiring with `cai branch list <nodeId>`.';
25
+ const readPersistedFlow = async (api, workflowId, flowId) => {
26
+ const state = await api.rest(`/workflow-agent/development-version-state/${workflowId}`);
27
+ if (typeof state?.json !== 'string')
28
+ throw new Error('Missing development-state JSON.');
29
+ const document = JSON.parse(state.json);
30
+ if (!document || typeof document !== 'object' || !Array.isArray(document.flows)) {
31
+ throw new Error('Malformed development-state document.');
32
+ }
33
+ const flow = document.flows.find((candidate) => candidate?.id === flowId);
34
+ if (!flow)
35
+ throw new Error('Malformed development-state flow.');
36
+ return flow;
37
+ };
38
+ const persistedFlowInputs = async (api, workflowId, flowId) => {
39
+ try {
40
+ const flow = await readPersistedFlow(api, workflowId, flowId);
41
+ if (!Array.isArray(flow.flowInputs))
42
+ throw new Error('Malformed development-state flow.');
43
+ return flow.flowInputs;
44
+ }
45
+ catch {
46
+ // This raw-state read only fills a field omitted by today's normalized
47
+ // tools. Keep the additive enrichment from breaking the underlying read
48
+ // or from reporting a completed mutation as failed.
49
+ warn(FLOW_INPUT_NAME_UNAVAILABLE_WARNING);
50
+ return undefined;
51
+ }
52
+ };
53
+ const enrichFlowInputNames = (flow, rawInputs) => {
54
+ if (!flow || typeof flow !== 'object' || !Array.isArray(flow.flowInputs))
55
+ return flow;
56
+ const rawById = new Map((rawInputs ?? [])
57
+ .filter(input => input?.id !== null && input?.id !== undefined)
58
+ .map(input => [input.id, input]));
59
+ return {
60
+ ...flow,
61
+ flowInputs: flow.flowInputs.map((input) => {
62
+ if (input?.id === null || input?.id === undefined)
63
+ return input;
64
+ return {
65
+ ...input,
66
+ name: rawById.get(input.id)?.name ?? input.name ?? null,
67
+ };
68
+ }),
69
+ };
70
+ };
71
+ /**
72
+ * `get_flow` projects an edge as `{id, source, target}` and drops
73
+ * `sourceHandle`, which is where a Router route or If/Else branch records which
74
+ * arm the edge leaves from (`output-<routeId>`). Without it an unwired branch is
75
+ * indistinguishable from a wired one: the run stays green and simply stops.
76
+ * The development-state document keeps the full record, and both sides carry the
77
+ * same edge id, so the merge is exact. The (source,target) fallback exists only
78
+ * for an edge the document does not identify.
79
+ */
80
+ export const mergeEdgeSourceHandles = (edges, rawEdges) => {
81
+ const pairKey = (edge) => `${edge?.source}\u0000${edge?.target}`;
82
+ const byId = new Map();
83
+ const byPair = new Map();
84
+ for (const edge of rawEdges) {
85
+ if (edge?.id !== undefined && edge?.id !== null && !byId.has(edge.id))
86
+ byId.set(edge.id, edge);
87
+ byPair.set(pairKey(edge), [...(byPair.get(pairKey(edge)) ?? []), edge]);
88
+ }
89
+ const consumed = new Map();
90
+ let ambiguous = false;
91
+ const merged = edges.map((edge) => {
92
+ let match = edge?.id === undefined || edge?.id === null ? undefined : byId.get(edge.id);
93
+ if (!match) {
94
+ const key = pairKey(edge);
95
+ const candidates = byPair.get(key) ?? [];
96
+ const index = consumed.get(key) ?? 0;
97
+ consumed.set(key, index + 1);
98
+ if (candidates.length > 1)
99
+ ambiguous = true;
100
+ match = candidates[index];
101
+ }
102
+ if (!match)
103
+ return edge;
104
+ const sourceHandle = match.sourceHandle ?? null;
105
+ const branch = typeof sourceHandle === 'string' ? /^output-(.+)$/.exec(sourceHandle) : null;
106
+ return { ...edge, sourceHandle, ...(branch ? { branchId: branch[1] } : {}) };
107
+ });
108
+ return { edges: merged, ambiguous };
109
+ };
19
110
  export const resolveFlowInputDisplayName = (displayName, legacyName) => {
20
111
  const value = String(displayName ?? legacyName ?? '').trim();
21
112
  if (!value) {
@@ -91,24 +182,46 @@ export const registerFlow = (program) => {
91
182
  .action(async (flowId, _opts, command) => {
92
183
  const { api, workflowId } = requireContext(command);
93
184
  const data = await api.tool(workflowId, 'get_flow', { flowId });
94
- emit(data, () => {
185
+ const hasEnrichableInput = Array.isArray(data?.flowInputs) &&
186
+ data.flowInputs.some((input) => input?.id !== null && input?.id !== undefined);
187
+ const hasEdges = Array.isArray(data?.edges) && data.edges.length > 0;
188
+ // Both enrichments read the same raw document; read it once.
189
+ const persisted = hasEnrichableInput || hasEdges
190
+ ? await readPersistedFlow(api, workflowId, flowId).catch(() => undefined)
191
+ : undefined;
192
+ const rawInputs = Array.isArray(persisted?.flowInputs) ? persisted.flowInputs : undefined;
193
+ if (hasEnrichableInput && rawInputs === undefined)
194
+ warn(FLOW_INPUT_NAME_UNAVAILABLE_WARNING);
195
+ const rawEdges = Array.isArray(persisted?.edges) ? persisted.edges : undefined;
196
+ if (hasEdges && rawEdges === undefined)
197
+ warn(EDGE_HANDLE_UNAVAILABLE_WARNING);
198
+ const withInputNames = enrichFlowInputNames(data, rawInputs);
199
+ let result = withInputNames;
200
+ if (hasEdges && rawEdges) {
201
+ const merged = mergeEdgeSourceHandles(withInputNames.edges, rawEdges);
202
+ if (merged.ambiguous)
203
+ warn(EDGE_HANDLE_AMBIGUOUS_WARNING);
204
+ result = { ...withInputNames, edges: merged.edges };
205
+ }
206
+ emit(result, () => {
95
207
  printKeyValues([
96
- ['flow', `${data.id ?? flowId} — ${data.name ?? ''}`],
97
- ['nodes', (data.nodes ?? []).length],
98
- ['edges', (data.edges ?? []).length],
208
+ ['flow', `${result.id ?? flowId} — ${result.name ?? ''}`],
209
+ ['nodes', (result.nodes ?? []).length],
210
+ ['edges', (result.edges ?? []).length],
99
211
  ]);
100
- if (data.nodes?.length) {
212
+ if (result.nodes?.length) {
101
213
  process.stdout.write('\nnodes\n');
102
- printTable(['id', 'displayName', 'component'], data.nodes.map((n) => [
214
+ printTable(['id', 'displayName', 'component'], result.nodes.map((n) => [
103
215
  n.id,
104
216
  n.displayName ?? n.data?.displayName,
105
217
  n.nodeComponentKey ?? n.data?.nodeComponentKey ?? '-',
106
218
  ]));
107
219
  }
108
- if (data.flowInputs?.length) {
220
+ if (result.flowInputs?.length) {
109
221
  process.stdout.write('\ninputs\n');
110
- printTable(['id', 'jsBinding', 'legacyBinding', 'displayName', 'dataType'], data.flowInputs.map((i) => [
222
+ printTable(['id', 'name', 'jsBinding', 'legacyBinding', 'displayName', 'dataType'], result.flowInputs.map((i) => [
111
223
  i.id,
224
+ i.name ?? '-',
112
225
  i.jsBinding ?? i.name,
113
226
  i.legacyBinding ?? '-',
114
227
  i.displayName,
@@ -255,8 +368,8 @@ export const registerFlow = (program) => {
255
368
  .command('update')
256
369
  .argument('<flowId>')
257
370
  .requiredOption('--output <id>', 'flow output id')
258
- .option('--name <name>')
259
- .option('--display <name>')
371
+ .option('--name <name>', 'internal snake_case payload key callers read; a --display rename regenerates it unless --name is set')
372
+ .option('--display <name>', 'human label')
260
373
  .option('--type <ctype>')
261
374
  .option('--description <text>')
262
375
  .description('Update a flow output (Return response props are kept in sync)')
@@ -265,7 +378,7 @@ export const registerFlow = (program) => {
265
378
  if (!opts.name && !opts.display && !opts.type && opts.description === undefined) {
266
379
  throw userError('Pass at least one of --name, --display, --type, --description.', 'NOTHING_TO_DO');
267
380
  }
268
- const data = await api.mutate(workflowId, () => api.tool(workflowId, 'update_flow_output', {
381
+ const mutationResult = await api.mutate(workflowId, () => api.tool(workflowId, 'update_flow_output', {
269
382
  flowId,
270
383
  flowOutputId: opts.output,
271
384
  ...(opts.name ? { name: opts.name } : {}),
@@ -273,7 +386,35 @@ export const registerFlow = (program) => {
273
386
  ...(opts.type ? { dataType: opts.type } : {}),
274
387
  ...(opts.description !== undefined ? { description: opts.description } : {}),
275
388
  }));
276
- emit(data, () => printKeyValues([['updated', opts.output]]));
389
+ let persisted;
390
+ try {
391
+ const readback = await api.tool(workflowId, 'get_flow_outputs', { flowId });
392
+ persisted = Array.isArray(readback?.outputs)
393
+ ? readback.outputs.find((item) => item?.id === opts.output)
394
+ : undefined;
395
+ }
396
+ catch {
397
+ warn(`Flow output ${opts.output} was updated, but persisted readback failed; ` +
398
+ 'showing the mutation result.');
399
+ emit(mutationResult, () => printKeyValues([['updated', opts.output]]));
400
+ return;
401
+ }
402
+ if (!persisted) {
403
+ warn(`Flow output ${opts.output} was updated, but persisted readback did not include it; ` +
404
+ 'showing the mutation result.');
405
+ emit(mutationResult, () => printKeyValues([['updated', opts.output]]));
406
+ return;
407
+ }
408
+ const result = {
409
+ ...persisted,
410
+ type: persisted.dataType ?? null,
411
+ };
412
+ emit(result, () => printKeyValues([
413
+ ['flowOutputId', result.id ?? opts.output],
414
+ ['name', result.name ?? '-'],
415
+ ['displayName', result.displayName ?? '-'],
416
+ ['type', result.type ?? '-'],
417
+ ]));
277
418
  });
278
419
  output
279
420
  .command('delete')
@@ -288,10 +429,11 @@ export const registerFlow = (program) => {
288
429
  flow
289
430
  .command('for-each')
290
431
  .requiredOption('--flow <flowId>', 'parent flow holding the list-producing node')
291
- .requiredOption('--from <nodeId>', 'node whose output carries the list')
292
- .requiredOption('--source-output <outputId>', 'exact opaque outputs[].id from `cai node get <nodeId> --json`; never a label')
432
+ .option('--from <nodeId>', 'node whose output carries the list; optional with --list-js')
433
+ .option('--source-output <outputId>', 'exact opaque outputs[].id from `cai node get <nodeId> --json`; never a label')
293
434
  .requiredOption('--name <bodyFlowName>', 'name for the new per-item flow')
294
- .requiredOption('--item-type <type>', 'one item: a primitive (text|number|date|boolean) or an existing/new custom.* type')
435
+ .requiredOption('--item-type <type>', 'one item: a primitive (text|number|date|boolean), an existing/new custom.* type, ' +
436
+ 'or a dataRecord.custom.* record')
295
437
  .option('--item-field <id:type[:display]>', 'field of a NEW custom item type; repeatable. Omit to reuse an existing custom type', (value, previous = []) => [...previous, value])
296
438
  .option('--list-js <expr>', 'JS selecting the list from the wired input')
297
439
  .option('--js-file <path|->', 'read the list-selection JS from a UTF-8 file or stdin')
@@ -303,14 +445,35 @@ export const registerFlow = (program) => {
303
445
  .action(async (opts, command) => {
304
446
  let listJs = resolveJsSource({ js: opts.listJs, jsFile: opts.jsFile }, { required: false, inlineFlag: '--list-js' });
305
447
  const { api, workflowId } = requireContext(command);
306
- const isPrimitive = !opts.itemType.startsWith('custom.');
307
- if (isPrimitive && opts.itemField?.length) {
448
+ // Convenience only, keyed on the two namespaces the server treats as
449
+ // field-bearing item types. An unrecognized namespace is forwarded as-is
450
+ // so the server's own validation message is the one the caller reads.
451
+ const isCustomItemType = opts.itemType.startsWith('custom.') || opts.itemType.startsWith('dataRecord.custom.');
452
+ const isPrimitiveItemType = !isCustomItemType && !opts.itemType.includes('.');
453
+ if (opts.itemField?.length && isPrimitiveItemType) {
308
454
  throw userError(`--item-field is only for custom.* item types; "${opts.itemType}" is a primitive, ` +
309
455
  'and a list of plain values needs no wrapper type.', 'FIELDS_ON_PRIMITIVE');
310
456
  }
311
457
  if (listJs !== undefined && opts.listField) {
312
458
  throw userError('--list-field is mutually exclusive with --list-js and --js-file.', 'CONFLICTING_LIST_PATH');
313
459
  }
460
+ // The list comes either from a node output (--from + --source-output, and
461
+ // --list-field resolves its path against that node) or from an expression.
462
+ // Only the expression path can stand alone.
463
+ if (opts.listField || listJs === undefined) {
464
+ const missing = [
465
+ ...(opts.from ? [] : ['--from']),
466
+ ...(opts.sourceOutput ? [] : ['--source-output']),
467
+ ];
468
+ if (missing.length > 0) {
469
+ const subject = `${missing.join(' and ')} ${missing.length === 1 ? 'is' : 'are'} required`;
470
+ throw userError(opts.listField
471
+ ? `--list-field builds its path from the source node's output, so ${subject}. ` +
472
+ 'Use --list-js instead to select the list with a standalone expression.'
473
+ : `${subject} to take the list from a node output; pass --list-js or --js-file ` +
474
+ 'to select the list with an expression instead.', 'MISSING_LIST_SOURCE');
475
+ }
476
+ }
314
477
  if (opts.listField) {
315
478
  const source = await api.tool(workflowId, 'get_node', { nodeId: opts.from });
316
479
  const sourceOutput = selectSourceOutput(opts.from, source, opts.sourceOutput);
@@ -325,8 +488,10 @@ export const registerFlow = (program) => {
325
488
  const maxItems = parseLoopMaxItems(opts.maxItems);
326
489
  const data = await api.mutate(workflowId, () => api.tool(workflowId, 'scaffold_for_each', {
327
490
  flowId: opts.flow,
328
- sourceNodeId: opts.from,
329
- sourceOutputId: opts.sourceOutput,
491
+ // Absent on the pure --list-js path. Sending explicit undefined would
492
+ // still serialize the keys out, so omit them.
493
+ ...(opts.from ? { sourceNodeId: opts.from } : {}),
494
+ ...(opts.sourceOutput ? { sourceOutputId: opts.sourceOutput } : {}),
330
495
  bodyFlowName: opts.name,
331
496
  itemType: {
332
497
  name: opts.itemType,
@@ -410,12 +575,19 @@ export const registerFlow = (program) => {
410
575
  }));
411
576
  const flowInputId = data.flowInputId ?? data.id;
412
577
  const flowState = await api.tool(workflowId, 'get_flow', { flowId });
413
- const flowInput = (flowState?.flowInputs ?? []).find((item) => item.id === flowInputId);
578
+ const hasFlowInputId = flowInputId !== null && flowInputId !== undefined;
579
+ const flowInput = hasFlowInputId
580
+ ? (flowState?.flowInputs ?? []).find((item) => item?.id === flowInputId)
581
+ : undefined;
582
+ const persistedInput = hasFlowInputId
583
+ ? (await persistedFlowInputs(api, workflowId, flowId))?.find((item) => item?.id === flowInputId)
584
+ : undefined;
414
585
  const hasReadbackLegacyBinding = Object.prototype.hasOwnProperty.call(flowInput ?? {}, 'legacyBinding');
415
586
  const hasMutationLegacyBinding = Object.prototype.hasOwnProperty.call(data ?? {}, 'legacyBinding');
416
587
  const result = {
417
588
  ...data,
418
589
  flowInputId,
590
+ name: persistedInput?.name ?? flowInput?.name ?? data.name ?? null,
419
591
  displayName: flowInput?.displayName ?? displayName,
420
592
  jsBinding: flowInput?.jsBinding ?? data.jsBinding ?? flowInput?.name ?? null,
421
593
  ...(hasReadbackLegacyBinding
@@ -431,6 +603,7 @@ export const registerFlow = (program) => {
431
603
  emit(result, () => {
432
604
  const rows = [
433
605
  ['flowInputId', result.flowInputId ?? '-'],
606
+ ['name', result.name ?? '-'],
434
607
  ['displayName', result.displayName],
435
608
  ['jsBinding', result.jsBinding ?? '(read with expr context)'],
436
609
  ];
@@ -448,13 +621,30 @@ export const registerFlow = (program) => {
448
621
  .option('--display <name>', 'new human label; recomputes jsBinding while legacyBinding stays diagnostic')
449
622
  .option('--type <ctype>')
450
623
  .option('--description <text>')
624
+ .option('--optional', 'the input may be omitted by callers')
625
+ .option('--required', 'the input must be supplied by callers')
626
+ .option('--default-value <literal>', 'stored default metadata (JSON when it parses, else a string); an omitted optional input ' +
627
+ 'still resolves to null at run time')
451
628
  .description('Update a flow input')
452
629
  .action(async (flowId, opts, command) => {
453
630
  const { api, workflowId } = requireContext(command);
454
631
  const displayName = opts.display ?? opts.name;
455
- if (!displayName && !opts.type && !opts.description) {
456
- throw userError('Pass at least one of --display, --type, or --description. --name is a legacy alias ' +
457
- 'for --display; display changes recompute compiler-current jsBinding.', 'NO_FLOW_INPUT_UPDATE');
632
+ if (opts.optional && opts.required) {
633
+ throw userError('--optional and --required are mutually exclusive; nothing was written.', 'CONFLICTING_FLOW_INPUT_OPTIONAL');
634
+ }
635
+ // Absent must stay `undefined` so the update leaves the persisted flag
636
+ // alone; `input add` can default to false only because it creates the row.
637
+ const optional = opts.optional ? true : opts.required ? false : undefined;
638
+ const hasDefaultValue = opts.defaultValue !== undefined;
639
+ const defaultValue = hasDefaultValue ? parseLiteral(String(opts.defaultValue)) : undefined;
640
+ if (!displayName &&
641
+ !opts.type &&
642
+ !opts.description &&
643
+ optional === undefined &&
644
+ !hasDefaultValue) {
645
+ throw userError('Pass at least one of --display, --type, --description, --optional/--required, or ' +
646
+ '--default-value. --name is a legacy alias for --display; display changes recompute ' +
647
+ 'compiler-current jsBinding.', 'NO_FLOW_INPUT_UPDATE');
458
648
  }
459
649
  const data = await api.mutate(workflowId, () => api.tool(workflowId, 'update_flow_input', {
460
650
  flowId,
@@ -462,6 +652,8 @@ export const registerFlow = (program) => {
462
652
  ...(displayName ? { displayName } : {}),
463
653
  ...(opts.type ? { dataType: opts.type } : {}),
464
654
  ...(opts.description ? { description: opts.description } : {}),
655
+ ...(optional !== undefined ? { optional } : {}),
656
+ ...(hasDefaultValue ? { defaultValue } : {}),
465
657
  }));
466
658
  const flowState = await api.tool(workflowId, 'get_flow', { flowId });
467
659
  const flowInput = (flowState?.flowInputs ?? []).find((item) => item.id === opts.input);
@@ -471,11 +663,18 @@ export const registerFlow = (program) => {
471
663
  flowInput: flowInput ?? null,
472
664
  jsBinding: flowInput?.jsBinding ?? flowInput?.name ?? null,
473
665
  };
474
- emit(result, () => printKeyValues([
475
- ['updated', opts.input],
476
- ['displayName', flowInput?.displayName ?? displayName ?? '-'],
477
- ['jsBinding', result.jsBinding ?? '(read with expr context)'],
478
- ]));
666
+ emit(result, () => {
667
+ const rows = [
668
+ ['updated', opts.input],
669
+ ['displayName', flowInput?.displayName ?? displayName ?? '-'],
670
+ ['jsBinding', result.jsBinding ?? '(read with expr context)'],
671
+ ];
672
+ if (optional !== undefined)
673
+ rows.push(['optional', flowInput?.optional ?? optional]);
674
+ if (hasDefaultValue)
675
+ rows.push(['defaultValue', flowInput?.defaultValue ?? defaultValue]);
676
+ printKeyValues(rows);
677
+ });
479
678
  });
480
679
  input
481
680
  .command('delete')