@controllerai/cli 0.2.8 → 0.2.10

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 (53) hide show
  1. package/dist/api/client.js +20 -5
  2. package/dist/api/client.js.map +1 -1
  3. package/dist/argv.js +330 -29
  4. package/dist/argv.js.map +1 -1
  5. package/dist/commands/agent.js +247 -26
  6. package/dist/commands/agent.js.map +1 -1
  7. package/dist/commands/auth.js +21 -5
  8. package/dist/commands/auth.js.map +1 -1
  9. package/dist/commands/doctor.js +63 -4
  10. package/dist/commands/doctor.js.map +1 -1
  11. package/dist/commands/exec.js +161 -49
  12. package/dist/commands/exec.js.map +1 -1
  13. package/dist/commands/expr.js +284 -53
  14. package/dist/commands/expr.js.map +1 -1
  15. package/dist/commands/flow.js +58 -14
  16. package/dist/commands/flow.js.map +1 -1
  17. package/dist/commands/node.js +746 -173
  18. package/dist/commands/node.js.map +1 -1
  19. package/dist/commands/organize.js +1 -1
  20. package/dist/commands/organize.js.map +1 -1
  21. package/dist/commands/run.js +165 -33
  22. package/dist/commands/run.js.map +1 -1
  23. package/dist/commands/schema.js +8 -7
  24. package/dist/commands/schema.js.map +1 -1
  25. package/dist/commands/workflow.js +151 -24
  26. package/dist/commands/workflow.js.map +1 -1
  27. package/dist/config.js +152 -6
  28. package/dist/config.js.map +1 -1
  29. package/dist/context.js +66 -5
  30. package/dist/context.js.map +1 -1
  31. package/dist/index.js +11 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/nodeProps.js +333 -10
  34. package/dist/nodeProps.js.map +1 -1
  35. package/dist/output.js +6 -1
  36. package/dist/output.js.map +1 -1
  37. package/dist/permissionTool.js +93 -0
  38. package/dist/permissionTool.js.map +1 -0
  39. package/package.json +1 -1
  40. package/skills/controllerai-agents/SKILL.md +27 -9
  41. package/skills/controllerai-agents/references/instructions-and-versioning.md +1 -1
  42. package/skills/controllerai-data/SKILL.md +19 -0
  43. package/skills/controllerai-data/references/data-rails.md +1 -1
  44. package/skills/controllerai-expressions/SKILL.md +8 -2
  45. package/skills/controllerai-flow-control/SKILL.md +2 -0
  46. package/skills/controllerai-node-config/SKILL.md +33 -6
  47. package/skills/controllerai-node-config/references/prop-and-readiness.md +34 -0
  48. package/skills/controllerai-runs/SKILL.md +16 -4
  49. package/skills/controllerai-runs/references/debugging.md +1 -1
  50. package/skills/controllerai-start/SKILL.md +1 -0
  51. package/skills/controllerai-workflows/SKILL.md +13 -8
  52. package/skills/controllerai-workflows/references/command-map.md +3 -2
  53. package/skills/manifest.json +58 -58
package/dist/nodeProps.js CHANGED
@@ -1,3 +1,5 @@
1
+ import { isDeepStrictEqual } from 'node:util';
2
+ import { userError } from './errors.js';
1
3
  const NODE_PROP_WRITE_KEYS = new Set([
2
4
  'value',
3
5
  'valueLabel',
@@ -31,7 +33,121 @@ export const nodePropsFromPayload = (payload) => {
31
33
  }
32
34
  return [];
33
35
  };
34
- export const hasConfiguredPropValue = (prop) => ![prop.value, prop.valueJs, prop.expressionValue, prop.expressionValueJs].every(value => value === undefined || value === null || value === '');
36
+ /** Optional metadata added by newer backends for all run-subflow node variants. */
37
+ export const subflowTargetFromPayload = (payload) => {
38
+ if (!payload || typeof payload !== 'object' || Array.isArray(payload))
39
+ return undefined;
40
+ const record = payload;
41
+ const target = record.subflowTarget;
42
+ if (!target ||
43
+ typeof target !== 'object' ||
44
+ Array.isArray(target) ||
45
+ (target.flowId !== null && typeof target.flowId !== 'string') ||
46
+ typeof target.exists !== 'boolean' ||
47
+ !Number.isSafeInteger(target.nodeCount) ||
48
+ Number(target.nodeCount) < 0 ||
49
+ (target.exists && target.flowId === null) ||
50
+ (!target.exists && target.nodeCount !== 0)) {
51
+ return undefined;
52
+ }
53
+ return {
54
+ flowId: target.flowId,
55
+ exists: target.exists,
56
+ nodeCount: Number(target.nodeCount),
57
+ };
58
+ };
59
+ const textExpressionEntryIsConfigured = (value) => {
60
+ if (value === undefined || value === null || value === '')
61
+ return false;
62
+ if (Array.isArray(value))
63
+ return value.some(textExpressionEntryIsConfigured);
64
+ if (typeof value !== 'object')
65
+ return true;
66
+ const record = value;
67
+ if (record.type === 'empty')
68
+ return false;
69
+ if (record.type !== 'TextExpression')
70
+ return true;
71
+ return Array.isArray(record.entries) && record.entries.some(textExpressionEntryIsConfigured);
72
+ };
73
+ const storedPropValueIsConfigured = (value) => {
74
+ if (value === undefined || value === null || value === '')
75
+ return false;
76
+ if (Array.isArray(value)) {
77
+ const containsTextExpression = value.some(item => Boolean(item) &&
78
+ typeof item === 'object' &&
79
+ !Array.isArray(item) &&
80
+ item.type === 'TextExpression');
81
+ return containsTextExpression ? value.some(storedPropValueIsConfigured) : true;
82
+ }
83
+ if (!value || typeof value !== 'object')
84
+ return true;
85
+ const record = value;
86
+ if (record.type === 'empty')
87
+ return false;
88
+ if (record.type !== 'TextExpression')
89
+ return true;
90
+ return Array.isArray(record.entries) && record.entries.some(textExpressionEntryIsConfigured);
91
+ };
92
+ /**
93
+ * Readiness follows the editor's active storage channel. Decompiled JS fields are
94
+ * read-only projections and cannot turn an empty stored value into configured data.
95
+ */
96
+ export const hasConfiguredPropValue = (prop) => {
97
+ const value = prop.allowsExpressionMode === true && prop.hasDynamicExpression === true
98
+ ? prop.expressionValue
99
+ : prop.value;
100
+ return !(prop.required === true &&
101
+ Array.isArray(value) &&
102
+ value.length === 0) && storedPropValueIsConfigured(value);
103
+ };
104
+ const hasConfiguredReloadSelectorValue = (prop) => {
105
+ const value = prop.allowsExpressionMode === true && prop.hasDynamicExpression === true
106
+ ? prop.expressionValue
107
+ : prop.value;
108
+ return (!Array.isArray(value) || value.length > 0) && hasConfiguredPropValue(prop);
109
+ };
110
+ /**
111
+ * Array props with expression mode store one whole-list expression in
112
+ * expressionValue. Array props without that channel write through value[]:
113
+ * SHORT_TEXT_ARRAY can replace the list with one scalar dynamic element, while
114
+ * every other array input type accepts static lists only.
115
+ */
116
+ export const assertArrayExpressionWriteSupported = (nodeId, propName, prop, inferredType, writeChannel = 'routed') => {
117
+ const inputType = String(prop.inputType ?? '');
118
+ if (!inputType.endsWith('_ARRAY'))
119
+ return;
120
+ if (writeChannel === 'routed' && prop.allowsExpressionMode)
121
+ return;
122
+ if (writeChannel === 'expressionValue' && prop.allowsExpressionMode)
123
+ return;
124
+ const missingWholeExpressionChannel = writeChannel === 'expressionValue';
125
+ if (!missingWholeExpressionChannel &&
126
+ inputType === 'SHORT_TEXT_ARRAY' &&
127
+ !String(inferredType ?? '').startsWith('list.')) {
128
+ return;
129
+ }
130
+ const staticListGuidance = `For a static list, run \`cai node set ${nodeId} --prop ${propName} --value '["a","b"]'\`.`;
131
+ if (missingWholeExpressionChannel) {
132
+ throw userError(`Prop "${propName}" (${inputType}) does not expose an expressionValue whole-list ` +
133
+ `channel; nothing was written. ${staticListGuidance}`, 'ARRAY_EXPRESSION_UNSUPPORTED');
134
+ }
135
+ if (inputType === 'SHORT_TEXT_ARRAY' && !missingWholeExpressionChannel) {
136
+ throw userError(`Prop "${propName}" (${inputType}) cannot store a list-typed expression in its value[] ` +
137
+ `element channel; nothing was written. ${staticListGuidance} A scalar expression ` +
138
+ `replaces the entire prop with one dynamic element; use \`cai expr set ${nodeId} ` +
139
+ `--prop ${propName} --js <scalar-expression>\`. For multiple dynamic elements, ` +
140
+ 'configure them individually in the builder; no indexed CLI authoring exists.', 'ARRAY_EXPRESSION_UNSUPPORTED');
141
+ }
142
+ throw userError(`Prop "${propName}" (${inputType}) does not support expression writes in its value[] ` +
143
+ `element channel; nothing was written. ${staticListGuidance}`, 'ARRAY_EXPRESSION_UNSUPPORTED');
144
+ };
145
+ export const arrayExpressionReplacementWarning = (propName, prop) => String(prop.inputType ?? '') === 'SHORT_TEXT_ARRAY' &&
146
+ !prop.allowsExpressionMode &&
147
+ Array.isArray(prop.value) &&
148
+ prop.value.length > 1
149
+ ? `Writing a scalar expression here: this replaces ${prop.value.length} existing elements with one dynamic element.`
150
+ : undefined;
35
151
  // This mirrors the backend's TEXT_FAMILY_PROP_INPUT_TYPES. Callers always send
36
152
  // valueJs; the backend chooses the stored field and get_node_props decompiles it
37
153
  // back into one of these two readback channels.
@@ -47,10 +163,127 @@ export const expressionReadbackChannel = (prop) => Boolean(prop.allowsExpression
47
163
  !EXPRESSION_STORED_IN_VALUE.has(String(prop.inputType ?? ''))
48
164
  ? 'expressionValueJs'
49
165
  : 'valueJs';
166
+ const printable = (value) => value === undefined ? '<missing>' : (JSON.stringify(value) ?? String(value));
167
+ export const expressionPersistenceMismatchMessage = (propName, verification) => {
168
+ const { expected, observed } = verification;
169
+ if (expected.rawChannel === 'value[0]') {
170
+ return (`The backend accepted the write but canonical readback for "${propName}" did not match. ` +
171
+ `Expected value.length === 1 and value[0] to equal validate_expression.expression ` +
172
+ `${printable(expected.expression)}; observed value=${printable(observed.arrayValue)} and ` +
173
+ `${expected.decompiledChannel}=${printable(observed.decompiledValue)}.`);
174
+ }
175
+ return (`The backend accepted the write but canonical readback for "${propName}" did not match. ` +
176
+ `Expected ${expected.rawChannel} to equal validate_expression.expression ` +
177
+ `${printable(expected.expression)}; observed ${expected.rawChannel}=${printable(observed.rawValue)} and ` +
178
+ `${expected.decompiledChannel}=${printable(observed.decompiledValue)}.`);
179
+ };
180
+ export const remoteOptionsCompiledLiteralNote = (prop, verification) => prop.remoteOptions &&
181
+ verification.verified &&
182
+ verification.kind === 'compiled literal' &&
183
+ ['value', 'expressionValue', 'value[0]'].includes(verification.channel)
184
+ ? `persisted and verified in ${verification.channel} as a compiled literal; no decompiled JS ` +
185
+ 'channel; provider option membership/label was NOT validated by this expression write.'
186
+ : undefined;
187
+ const hasOwn = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
188
+ /**
189
+ * Prove that a compiled prop write persisted the exact AST returned by
190
+ * `validate_expression`. Decompiled JS is an optional read view: pure literals
191
+ * intentionally have none, while raw storage is always the source of truth.
192
+ */
193
+ export const verifyExpressionPersistence = (prop, readback, expression) => {
194
+ const decompiledChannel = expressionReadbackChannel(prop);
195
+ const scalarRawChannel = decompiledChannel === 'valueJs' ? 'value' : 'expressionValue';
196
+ const isArrayProp = String(prop.inputType ?? '').endsWith('_ARRAY');
197
+ const isArrayElementWrite = isArrayProp && scalarRawChannel === 'value';
198
+ const rawChannel = isArrayElementWrite
199
+ ? 'value[0]'
200
+ : scalarRawChannel;
201
+ if (isArrayElementWrite) {
202
+ const arrayValue = readback?.value;
203
+ const rawPresent = Array.isArray(arrayValue) && arrayValue.length > 0;
204
+ const rawValue = rawPresent ? arrayValue[0] : undefined;
205
+ const valueItem = readback?.valueItems?.find(item => item.index === 0);
206
+ const decompiledPresent = typeof valueItem?.valueJs === 'string';
207
+ const decompiledValue = decompiledPresent ? valueItem.valueJs : undefined;
208
+ const expected = { decompiledChannel, rawChannel, expression };
209
+ const observed = {
210
+ propFound: readback !== undefined,
211
+ decompiledChannel,
212
+ decompiledPresent,
213
+ decompiledValue,
214
+ rawChannel,
215
+ rawPresent,
216
+ rawValue,
217
+ arrayValue,
218
+ };
219
+ if (Array.isArray(arrayValue) &&
220
+ arrayValue.length === 1 &&
221
+ expression !== undefined &&
222
+ isDeepStrictEqual(arrayValue[0], expression)) {
223
+ return {
224
+ verified: true,
225
+ channel: 'value[0]',
226
+ kind: decompiledPresent ? 'decompiled JS' : 'compiled literal',
227
+ persistedValue: arrayValue[0],
228
+ expected,
229
+ observed,
230
+ };
231
+ }
232
+ return { verified: false, expected, observed };
233
+ }
234
+ const decompiledPresent = readback !== undefined &&
235
+ hasOwn(readback, decompiledChannel) &&
236
+ readback[decompiledChannel] !== undefined;
237
+ const rawPresent = readback !== undefined &&
238
+ hasOwn(readback, scalarRawChannel) &&
239
+ readback[scalarRawChannel] !== undefined;
240
+ const rawValue = readback?.[scalarRawChannel];
241
+ const expected = { decompiledChannel, rawChannel, expression };
242
+ const observed = {
243
+ propFound: readback !== undefined,
244
+ decompiledChannel,
245
+ decompiledPresent,
246
+ decompiledValue: readback?.[decompiledChannel],
247
+ rawChannel,
248
+ rawPresent,
249
+ rawValue,
250
+ };
251
+ if (!rawPresent || !isDeepStrictEqual(rawValue, expression)) {
252
+ return { verified: false, expected, observed };
253
+ }
254
+ if (decompiledPresent) {
255
+ return {
256
+ verified: true,
257
+ channel: decompiledChannel,
258
+ kind: 'decompiled JS',
259
+ persistedValue: readback?.[decompiledChannel],
260
+ expected,
261
+ observed,
262
+ };
263
+ }
264
+ return {
265
+ verified: true,
266
+ channel: scalarRawChannel,
267
+ kind: 'compiled literal',
268
+ persistedValue: rawValue,
269
+ expected,
270
+ observed,
271
+ };
272
+ };
50
273
  const shellQuote = (value) => `'${value.replace(/'/g, "'\\''")}'`;
51
274
  const propName = (prop) => prop.name ?? prop.key;
52
275
  const propNextCommand = (nodeId, prop, fallbackName) => {
53
276
  const name = propName(prop ?? {}) ?? fallbackName;
277
+ if (prop?.optionsAvailability === 'blocked_upstream') {
278
+ const blockedBy = typeof prop.blockedBy === 'string' && prop.blockedBy.trim().length > 0
279
+ ? prop.blockedBy.trim()
280
+ : '<blockedBy>';
281
+ return `cai node set ${nodeId} --prop ${blockedBy} --value <value>`;
282
+ }
283
+ if (prop?.optionsAvailability === 'dynamic_upstream') {
284
+ return (`cai node set ${nodeId} --prop ${name} --value <exact-id>; ` +
285
+ 'options cannot be listed while an upstream prop is dynamic (or use --js for an expression)');
286
+ }
54
287
  if (prop?.remoteOptions) {
55
288
  return (`cai node options ${nodeId} --prop ${name} --query "<option label>"; then ` +
56
289
  `cai node set ${nodeId} --prop ${name} --value <exact-returned-value> ` +
@@ -88,13 +321,16 @@ const propNextCommand = (nodeId, prop, fallbackName) => {
88
321
  }
89
322
  return `cai node set ${nodeId} --prop ${name} --value <value>`;
90
323
  };
324
+ const invalidStaticOptionNextCommand = (nodeId, prop, fallbackName) => prop?.options?.some(option => option.value !== undefined || option.id !== undefined)
325
+ ? propNextCommand(nodeId, prop, fallbackName)
326
+ : `cai node props ${nodeId} --json`;
91
327
  /** Pure readiness projection used by `cai node status` and its tests. */
92
- export const buildNodeReadiness = (nodeId, record, props) => {
328
+ export const buildNodeReadiness = (nodeId, record, props, subflowTarget) => {
93
329
  const connectionId = record.connectionId ?? record.data?.connectionId ?? null;
94
330
  const requireAuth = Boolean(record.requireAuth ?? record.data?.requireAuth);
95
331
  const missingConnection = requireAuth && !connectionId;
96
332
  const pendingReloadProps = props
97
- .filter(prop => prop.reloadProps && prop.enabled !== false && !hasConfiguredPropValue(prop))
333
+ .filter(prop => prop.reloadProps && prop.enabled !== false && !hasConfiguredReloadSelectorValue(prop))
98
334
  .map(prop => prop.name ?? prop.key)
99
335
  .filter((name) => Boolean(name));
100
336
  const pendingReloadSet = new Set(pendingReloadProps);
@@ -105,6 +341,41 @@ export const buildNodeReadiness = (nodeId, record, props) => {
105
341
  !pendingReloadSet.has(prop.name ?? prop.key ?? ''))
106
342
  .map(prop => prop.name ?? prop.key)
107
343
  .filter((name) => Boolean(name));
344
+ const disabledRequiredPropDetails = props.flatMap((prop, index) => {
345
+ const name = propName(prop);
346
+ if (!name ||
347
+ prop.required !== true ||
348
+ prop.enabled !== false ||
349
+ prop.source === 'propsCatalog') {
350
+ return [];
351
+ }
352
+ const declaredBlockedBy = typeof prop.blockedBy === 'string' && prop.blockedBy.trim().length > 0
353
+ ? prop.blockedBy.trim()
354
+ : undefined;
355
+ const earlierProps = props.slice(0, index);
356
+ const explicitBlockedBy = declaredBlockedBy
357
+ ? earlierProps.find(candidate => propName(candidate) === declaredBlockedBy)
358
+ : undefined;
359
+ const positionalBlockedBy = [...earlierProps]
360
+ .reverse()
361
+ .find(candidate => candidate.reloadProps === true && Boolean(propName(candidate)));
362
+ return [
363
+ {
364
+ name,
365
+ activatingSelector: propName(explicitBlockedBy ?? {}) ?? propName(positionalBlockedBy ?? {}),
366
+ },
367
+ ];
368
+ });
369
+ const disabledRequiredProps = disabledRequiredPropDetails.map(({ name }) => name);
370
+ const actionableDisabledRequiredProp = disabledRequiredPropDetails.find(({ activatingSelector }) => activatingSelector !== undefined);
371
+ const dynamicSelectorNotes = props
372
+ .filter(prop => prop.reloadProps === true &&
373
+ prop.allowsExpressionMode === true &&
374
+ prop.hasDynamicExpression === true)
375
+ .map(prop => propName(prop))
376
+ .filter((name) => Boolean(name))
377
+ .map(name => `"${name}" holds a dynamic value; dependent props reflect the last concrete selection and were not re-resolved. ` +
378
+ `If a dependent prop is missing, set "${name}" to a concrete value once (or run: cai node reload ${nodeId}), then switch back.`);
108
379
  const propsByName = new Map(props
109
380
  .map(prop => [propName(prop), prop])
110
381
  .filter((entry) => Boolean(entry[0])));
@@ -135,34 +406,86 @@ export const buildNodeReadiness = (nodeId, record, props) => {
135
406
  : componentOutputType || outputPortTypes.length > 0
136
407
  ? 'unresolved'
137
408
  : 'none';
409
+ const invalidStaticOptionProps = props
410
+ .filter(prop => {
411
+ if (prop.remoteOptions ||
412
+ !Array.isArray(prop.options) ||
413
+ prop.options.length === 0 ||
414
+ (prop.allowsExpressionMode === true && prop.hasDynamicExpression === true) ||
415
+ !hasConfiguredPropValue(prop)) {
416
+ return false;
417
+ }
418
+ const optionValues = prop.options.map(option => option.value ?? option.id);
419
+ const effectiveValue = prop.value;
420
+ const isMultiSelect = [
421
+ 'MULTI_SELECT',
422
+ 'MULTI_SELECT_DROPDOWN',
423
+ 'STATIC_MULTI_SELECT_DROPDOWN',
424
+ ].includes(String(prop.inputType ?? ''));
425
+ const selectedValues = isMultiSelect && Array.isArray(effectiveValue) ? effectiveValue : [effectiveValue];
426
+ return selectedValues.some(selected => !optionValues.some(option => isDeepStrictEqual(option, selected)));
427
+ })
428
+ .map(prop => prop.name ?? prop.key)
429
+ .filter((name) => Boolean(name));
430
+ const subflowTargetBlockers = subflowTarget?.exists === false
431
+ ? ['subflow target flow not found']
432
+ : subflowTarget?.exists === true && subflowTarget.nodeCount === 0
433
+ ? ['subflow target flow has no nodes']
434
+ : [];
435
+ const subflowTargetNext = subflowTarget?.exists === false
436
+ ? `cai node set-flow ${nodeId} --flow <existing-flowId>`
437
+ : subflowTarget?.exists === true && subflowTarget.nodeCount === 0
438
+ ? `cai node find "<action intent>"; then cai node add --flow ${subflowTarget.flowId ? shellQuote(subflowTarget.flowId) : '<flowId>'} --key <exact-nodeKey>`
439
+ : undefined;
138
440
  const configurationBlockers = [
139
441
  ...(missingConnection ? ['connection'] : []),
140
442
  ...missingRequiredProps.map(name => `required prop: ${name}`),
443
+ ...disabledRequiredPropDetails.map(({ name, activatingSelector }) => activatingSelector
444
+ ? `required prop disabled: ${name} (blocked by ${activatingSelector})`
445
+ : `required prop disabled: ${name}`),
141
446
  ...pendingReloadProps.map(name => `reload selector: ${name}`),
447
+ ...subflowTargetBlockers,
448
+ ...invalidStaticOptionProps.map(name => `invalid option value: ${name}`),
142
449
  ];
143
450
  const blockedBy = [
144
451
  ...configurationBlockers,
145
452
  ...(outputTypeStatus === 'unresolved' ? ['output type'] : []),
146
453
  ];
147
454
  const readyForRun = configurationBlockers.length === 0;
455
+ const readinessState = disabledRequiredProps.length && !actionableDisabledRequiredProp
456
+ ? 'indeterminate'
457
+ : readyForRun
458
+ ? 'ready'
459
+ : 'blocked';
148
460
  const readyForExpressions = readyForRun;
149
461
  const readyForDownstreamExpressions = readyForRun && outputTypeStatus === 'concrete';
150
462
  const next = missingConnection
151
463
  ? `cai connection list --node ${record.nodeSlug ?? record.data?.nodeSlug ?? '<nodeSlug>'}; then cai node set-connection ${nodeId} --connection <id> (if none exist, run cai connection connect ${record.nodeSlug ?? record.data?.nodeSlug ?? '<nodeSlug>'} and list again)`
152
- : missingRequiredProps.length
153
- ? propNextCommand(nodeId, propsByName.get(missingRequiredProps[0]), missingRequiredProps[0])
154
- : pendingReloadProps.length
155
- ? propNextCommand(nodeId, propsByName.get(pendingReloadProps[0]), pendingReloadProps[0])
156
- : outputTypeStatus === 'unresolved'
157
- ? `cai run node ${nodeId} --inputs <values.json>`
158
- : `cai expr context ${nodeId} --prop <prop>`;
464
+ : subflowTargetNext
465
+ ? subflowTargetNext
466
+ : missingRequiredProps.length
467
+ ? propNextCommand(nodeId, propsByName.get(missingRequiredProps[0]), missingRequiredProps[0])
468
+ : disabledRequiredProps.length
469
+ ? actionableDisabledRequiredProp?.activatingSelector
470
+ ? `cai node set ${nodeId} --prop ${actionableDisabledRequiredProp.activatingSelector} --value <value>`
471
+ : `cai node props ${nodeId} --json`
472
+ : pendingReloadProps.length
473
+ ? propNextCommand(nodeId, propsByName.get(pendingReloadProps[0]), pendingReloadProps[0])
474
+ : invalidStaticOptionProps.length
475
+ ? invalidStaticOptionNextCommand(nodeId, propsByName.get(invalidStaticOptionProps[0]), invalidStaticOptionProps[0])
476
+ : outputTypeStatus === 'unresolved'
477
+ ? `cai run node ${nodeId} --inputs <values.json>`
478
+ : `cai expr context ${nodeId} --prop <prop>`;
159
479
  return {
160
480
  nodeId,
161
481
  requireAuth,
162
482
  connectionId,
163
483
  missingConnection,
164
484
  missingRequiredProps,
485
+ disabledRequiredProps,
165
486
  pendingReloadProps,
487
+ dynamicSelectorNotes,
488
+ readinessState,
166
489
  outputTypeStatus,
167
490
  outputTypes,
168
491
  outputPortTypes,
@@ -1 +1 @@
1
- {"version":3,"file":"nodeProps.js","sourceRoot":"","sources":["../src/nodeProps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodeProps.js","sourceRoot":"","sources":["../src/nodeProps.ts"],"names":[],"mappings":"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"}
package/dist/output.js CHANGED
@@ -2,8 +2,14 @@ import { SCRUBBED_HINT } from './errors.js';
2
2
  let jsonMode = false;
3
3
  let commandPath = 'cai';
4
4
  const warnings = [];
5
+ let jsonEventsEmitted = false;
5
6
  export const setJsonMode = (value) => {
6
7
  jsonMode = value;
8
+ // A process normally executes one command, while tests and embedders may run
9
+ // several. Output annotations belong to one command and must never leak into
10
+ // the next envelope.
11
+ warnings.length = 0;
12
+ jsonEventsEmitted = false;
7
13
  };
8
14
  export const isJsonMode = () => jsonMode;
9
15
  /**
@@ -13,7 +19,6 @@ export const isJsonMode = () => jsonMode;
13
19
  * file — the live clean-room test showed exactly that failure. Consumers parse
14
20
  * the LAST stdout line as the result; event lines always carry an `event` key.
15
21
  */
16
- let jsonEventsEmitted = false;
17
22
  export const emitJsonEvent = (event) => {
18
23
  if (!jsonMode)
19
24
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ import { userError } from './errors.js';
2
+ const CANONICAL_PERMISSION_TOOL = /^mcp__controllerai(_pd_actions)?__tool_[1-9][0-9]*$/;
3
+ const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
4
+ const eventPayloads = (event) => {
5
+ if (!isRecord(event.rawData))
6
+ return [];
7
+ const nested = isRecord(event.rawData.data) ? [event.rawData.data] : [];
8
+ return [...nested, event.rawData];
9
+ };
10
+ const permissionEventRequestId = (event) => {
11
+ if (event.eventType !== 'permission_request')
12
+ return undefined;
13
+ for (const payload of eventPayloads(event)) {
14
+ if (typeof payload.requestId === 'string')
15
+ return payload.requestId;
16
+ }
17
+ return undefined;
18
+ };
19
+ const permissionResolutionRequestId = (event) => {
20
+ if (event.eventType !== 'permission_response' && event.eventType !== 'permission_expired') {
21
+ return undefined;
22
+ }
23
+ for (const payload of eventPayloads(event)) {
24
+ if (typeof payload.requestId === 'string')
25
+ return payload.requestId;
26
+ }
27
+ return undefined;
28
+ };
29
+ export const isCanonicalPermissionToolName = (value) => CANONICAL_PERMISSION_TOOL.test(value);
30
+ export const recordedPermissionToolName = (history, requestId) => {
31
+ const events = history.events ?? [];
32
+ for (let index = events.length - 1; index >= 0; index -= 1) {
33
+ const event = events[index];
34
+ if (event.eventType !== 'permission_request')
35
+ continue;
36
+ for (const payload of eventPayloads(event)) {
37
+ if (payload.requestId === requestId && typeof payload.toolName === 'string') {
38
+ return payload.toolName;
39
+ }
40
+ }
41
+ }
42
+ return undefined;
43
+ };
44
+ export const outstandingPermissionRequestIds = (history) => {
45
+ const outstanding = new Set();
46
+ for (const event of history.events ?? []) {
47
+ const requestId = permissionEventRequestId(event);
48
+ if (requestId !== undefined) {
49
+ outstanding.add(requestId);
50
+ continue;
51
+ }
52
+ const resolvedRequestId = permissionResolutionRequestId(event);
53
+ if (resolvedRequestId !== undefined)
54
+ outstanding.delete(resolvedRequestId);
55
+ }
56
+ return [...outstanding];
57
+ };
58
+ const visibleIds = (ids) => ids.length ? ids.map(id => JSON.stringify(id)).join(', ') : '(none)';
59
+ export const resolvePermissionTool = (userTool, requestId, history = {}) => {
60
+ const normalizedRequestId = requestId.trim();
61
+ if (!normalizedRequestId) {
62
+ throw userError('--request must be a non-empty permission request id.', 'BAD_PERMISSION_ID');
63
+ }
64
+ if (userTool === undefined)
65
+ return { send: 'omitted' };
66
+ const normalizedUserTool = userTool.trim();
67
+ if (isCanonicalPermissionToolName(normalizedUserTool)) {
68
+ return { send: 'as-is', toolName: normalizedUserTool };
69
+ }
70
+ const recordedToolName = recordedPermissionToolName(history, normalizedRequestId);
71
+ if (recordedToolName !== undefined) {
72
+ return {
73
+ send: 'replaced',
74
+ toolName: recordedToolName,
75
+ warning: `Provided --tool ${JSON.stringify(normalizedUserTool)} was replaced with recorded SDK ` +
76
+ `name ${JSON.stringify(recordedToolName)} for request ${JSON.stringify(normalizedRequestId)}.`,
77
+ };
78
+ }
79
+ const rowMatch = (history.pendingHitlRequests ?? []).some(request => request.requestId === normalizedRequestId);
80
+ if (rowMatch) {
81
+ return {
82
+ send: 'omitted',
83
+ warning: `Provided --tool ${JSON.stringify(normalizedUserTool)} was ignored for request ` +
84
+ `${JSON.stringify(normalizedRequestId)}; the server will resolve the tool from its own ` +
85
+ `record.`,
86
+ };
87
+ }
88
+ const pendingRowIds = (history.pendingHitlRequests ?? []).flatMap(request => typeof request.requestId === 'string' ? [request.requestId] : []);
89
+ throw userError(`Permission request ${JSON.stringify(normalizedRequestId)} was not found. Pending row ` +
90
+ `requestIds: ${visibleIds(pendingRowIds)}. Outstanding permission event requestIds: ` +
91
+ `${visibleIds(outstandingPermissionRequestIds(history))}.`, 'UNKNOWN_PERMISSION_REQUEST');
92
+ };
93
+ //# sourceMappingURL=permissionTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissionTool.js","sourceRoot":"","sources":["../src/permissionTool.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@controllerai/cli",
3
- "version": "0.2.8",
3
+ "version": "0.2.10",
4
4
  "description": "Build and operate Controller AI workflows and agents from any AI coding agent (beta)",
5
5
  "type": "module",
6
6
  "bin": {