@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
@@ -1,4 +1,5 @@
1
1
  import { CaiError, EMAIL_VERIFICATION_REQUIRED_CODE, EMAIL_VERIFICATION_REQUIRED_MESSAGE, EXIT, SCRUBBED_HINT, authError, exitCodeForStatus, isScrubbed, networkError, userError, } from '../errors.js';
2
+ import { emitJsonEvent, isJsonMode } from '../output.js';
2
3
  const isRestEnvelope = (value) => typeof value === 'object' &&
3
4
  value !== null &&
4
5
  'statusCode' in value &&
@@ -10,6 +11,13 @@ const bareRestError = (value) => {
10
11
  return typeof value.error === 'string' ? value.error : '';
11
12
  };
12
13
  const DEFAULT_TIMEOUT = 120_000;
14
+ export const APPROVAL_POLL_TIMEOUT_MS = 9 * 60_000;
15
+ const APPROVAL_POLL_INITIAL_DELAY_MS = 750;
16
+ const APPROVAL_POLL_MAX_DELAY_MS = 5_000;
17
+ const APPROVAL_REQUEST_TIMEOUT_MS = 30_000;
18
+ export const MAX_ACTIVE_WORKFLOWS_CODE = 'MAX_NUMBER_OF_ACTIVE_WORKFLOWS_REACHED';
19
+ export const MAX_ACTIVE_WORKFLOWS_MESSAGE = 'This workspace has reached its active workflow limit. Stop and tell the user that another ' +
20
+ 'workflow must be archived or the plan limit raised before continuing; do not retry this command.';
13
21
  const CREDENTIAL_RESPONSE_ROUTES = [
14
22
  /^\/cli-auth\/signup$/,
15
23
  /^\/cli-auth\/device\/token$/,
@@ -62,11 +70,17 @@ export const authHeaders = (token) => {
62
70
  export class ApiClient {
63
71
  apiUrl;
64
72
  token;
73
+ sleep;
74
+ now;
75
+ approvalPollTimeoutMs;
65
76
  /** Every MCP tool call made this process, for `--debug`. */
66
77
  trace = [];
67
- constructor(config) {
78
+ constructor(config, runtime = {}) {
68
79
  this.apiUrl = assertSafeApiUrl(config.apiUrl);
69
80
  this.token = config.token;
81
+ this.sleep = runtime.sleep ?? (ms => new Promise(resolve => setTimeout(resolve, ms)));
82
+ this.now = runtime.now ?? Date.now;
83
+ this.approvalPollTimeoutMs = runtime.approvalPollTimeoutMs ?? APPROVAL_POLL_TIMEOUT_MS;
70
84
  }
71
85
  get hasToken() {
72
86
  return Boolean(this.token);
@@ -264,19 +278,111 @@ export class ApiClient {
264
278
  if (parsed.error) {
265
279
  throw toolError(parsed.error.message, name, parsed.error.data);
266
280
  }
267
- const content = parsed.result?.content ?? [];
268
- const payload = content.map(c => c.text ?? '').join('');
269
- if (parsed.result?.isError) {
270
- throw toolError(payload || 'Tool reported an error', name);
281
+ const decoded = decodeCallToolResult(parsed.result, name);
282
+ if (isApprovalRequiredCandidate(decoded)) {
283
+ const approval = parseApprovalRequiredPayload(decoded, name);
284
+ return (await this.pollBuilderApproval(name, approval.approvalId));
271
285
  }
272
- if (!payload)
273
- return undefined;
274
- try {
275
- return JSON.parse(payload);
286
+ return decoded;
287
+ }
288
+ /** Resume polling an already-created intent without dispatching the gated tool again. */
289
+ async resumeApproval(approvalId) {
290
+ if (!validApprovalId(approvalId)) {
291
+ throw userError('Approval ID must be a positive integer or safe opaque identifier.', 'BAD_APPROVAL_ID');
276
292
  }
277
- catch {
278
- // Some tools return prose rather than JSON; pass it through as-is.
279
- return payload;
293
+ return this.pollBuilderApproval('approval resume', approvalId);
294
+ }
295
+ reportApproval(approvalId, status, message) {
296
+ emitJsonEvent({
297
+ event: 'builder_approval',
298
+ approvalId,
299
+ status,
300
+ message,
301
+ });
302
+ if (!isJsonMode())
303
+ process.stderr.write(`${message}\n`);
304
+ }
305
+ async pollBuilderApproval(tool, approvalId) {
306
+ const deadline = this.now() + this.approvalPollTimeoutMs;
307
+ let delayMs = APPROVAL_POLL_INITIAL_DELAY_MS;
308
+ let reportedStatus = 'pending';
309
+ let reportedTransientFailure = false;
310
+ this.reportApproval(approvalId, 'pending', `Waiting for browser approval (approval ID ${approvalId}).`);
311
+ for (;;) {
312
+ let intent;
313
+ try {
314
+ const response = await this.rest(`/builder-approvals/${encodeURIComponent(String(approvalId))}`, { timeoutMs: APPROVAL_REQUEST_TIMEOUT_MS });
315
+ intent = parseBuilderApprovalIntent(response, approvalId, tool);
316
+ }
317
+ catch (error) {
318
+ if (!(error instanceof CaiError))
319
+ throw error;
320
+ if (error.code === 'BAD_APPROVAL_RESPONSE')
321
+ throw error;
322
+ if (isTransientApprovalPollError(error)) {
323
+ const remainingMs = deadline - this.now();
324
+ if (remainingMs <= 0) {
325
+ throw approvalResumeError(approvalId, reportedStatus, tool, 'BUILDER_APPROVAL_POLL_TIMEOUT', `Approval polling is still unavailable: ${error.message}`);
326
+ }
327
+ if (!reportedTransientFailure) {
328
+ reportedTransientFailure = true;
329
+ this.reportApproval(approvalId, reportedStatus, `Approval polling temporarily failed for ID ${approvalId}; continuing safely ` +
330
+ 'without redispatching the operation.');
331
+ }
332
+ await this.sleep(Math.min(delayMs, remainingMs));
333
+ delayMs = Math.min(delayMs * 2, APPROVAL_POLL_MAX_DELAY_MS);
334
+ continue;
335
+ }
336
+ throw approvalResumeError(approvalId, reportedStatus, tool, 'BUILDER_APPROVAL_POLL_INTERRUPTED', `Approval polling stopped: ${error.message}`, error);
337
+ }
338
+ if (intent.status === 'pending' || intent.status === 'executing') {
339
+ if (intent.status !== reportedStatus) {
340
+ reportedStatus = intent.status;
341
+ this.reportApproval(approvalId, intent.status, `Browser approval ${approvalId} was accepted; the operation is running.`);
342
+ }
343
+ const remainingMs = deadline - this.now();
344
+ if (remainingMs <= 0) {
345
+ throw approvalResumeError(approvalId, intent.status, tool, 'BUILDER_APPROVAL_POLL_TIMEOUT', `Approval ID ${approvalId} is still ${intent.status}.`);
346
+ }
347
+ await this.sleep(Math.min(delayMs, remainingMs));
348
+ delayMs = Math.min(delayMs * 2, APPROVAL_POLL_MAX_DELAY_MS);
349
+ continue;
350
+ }
351
+ if (intent.status === 'succeeded') {
352
+ this.reportApproval(approvalId, 'succeeded', `Browser-approved operation ${approvalId} completed.`);
353
+ return decodeCallToolResult(intent.result, tool);
354
+ }
355
+ const backendError = approvalErrorParts(intent.error);
356
+ if (backendError.code === MAX_ACTIVE_WORKFLOWS_CODE ||
357
+ backendError.message?.includes(MAX_ACTIVE_WORKFLOWS_CODE)) {
358
+ throw maxActiveWorkflowsError(tool, approvalId);
359
+ }
360
+ if (intent.status === 'denied') {
361
+ throw new CaiError(`Browser approval ${approvalId} was denied. Review the operation with the user before ` +
362
+ 'trying again.', {
363
+ exitCode: EXIT.user,
364
+ code: 'BUILDER_APPROVAL_DENIED',
365
+ detail: { approvalId, status: intent.status, tool },
366
+ });
367
+ }
368
+ if (intent.status === 'expired') {
369
+ throw new CaiError(`Browser approval ${approvalId} expired before completion. Ask the user to retry the ` +
370
+ 'command when they are ready to approve it.', {
371
+ exitCode: EXIT.user,
372
+ code: 'BUILDER_APPROVAL_EXPIRED',
373
+ detail: { approvalId, status: intent.status, tool },
374
+ });
375
+ }
376
+ throw new CaiError(`Browser-approved operation ${approvalId} failed: ${backendError.message || 'Unknown error'}`, {
377
+ exitCode: EXIT.user,
378
+ code: 'BUILDER_APPROVAL_FAILED',
379
+ detail: {
380
+ approvalId,
381
+ status: intent.status,
382
+ tool,
383
+ ...(backendError.code ? { backendCode: backendError.code } : {}),
384
+ },
385
+ });
280
386
  }
281
387
  }
282
388
  /**
@@ -286,7 +392,7 @@ export class ApiClient {
286
392
  * Current backends serialize `latestStateId` with a structured conflict, so
287
393
  * that exact head is reused. Older backends are supported by re-fetching it.
288
394
  */
289
- async mutate(workflowId, run) {
395
+ async mutate(workflowId, run, options) {
290
396
  let head = await this.head(workflowId).catch(() => null);
291
397
  try {
292
398
  return await run(head);
@@ -294,6 +400,15 @@ export class ApiClient {
294
400
  catch (error) {
295
401
  if (!(error instanceof CaiError) || error.exitCode !== EXIT.conflict)
296
402
  throw error;
403
+ if (options?.retryOnConflict === false) {
404
+ // Tools that deploy external resources (e.g. a provider trigger
405
+ // source) are not safe to blind-retry: the deployment may have
406
+ // happened before the state conflict, and a retry would create a
407
+ // duplicate. Fail loudly and let the caller re-read and decide.
408
+ throw new CaiError(`${error.message}\nNot retried automatically: this command provisions external ` +
409
+ 'resources, so a blind retry could duplicate them. Re-read the workflow state ' +
410
+ '(`cai trigger list`) before running it again.', { exitCode: EXIT.conflict, code: 'STATE_CONFLICT' });
411
+ }
297
412
  const latestStateId = conflictLatestStateId(error);
298
413
  head =
299
414
  latestStateId !== undefined ? latestStateId : await this.head(workflowId).catch(() => null);
@@ -323,6 +438,114 @@ const safeJson = (text) => {
323
438
  return null;
324
439
  }
325
440
  };
441
+ const isObject = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
442
+ const validApprovalId = (value) => (typeof value === 'string' &&
443
+ /^[A-Za-z0-9._:-]{1,128}$/.test(value) &&
444
+ (!/^\d+$/.test(value) || Number(value) > 0)) ||
445
+ (typeof value === 'number' && Number.isSafeInteger(value) && value > 0);
446
+ /** Decode the canonical MCP CallToolResult used by both immediate and approved execution. */
447
+ const decodeCallToolResult = (value, tool) => {
448
+ if (value === undefined)
449
+ return undefined;
450
+ if (!isObject(value)) {
451
+ throw new CaiError(`Malformed tool result for ${tool}.`, {
452
+ exitCode: EXIT.network,
453
+ code: 'BAD_RESPONSE',
454
+ detail: { tool },
455
+ });
456
+ }
457
+ const content = value.content === undefined ? [] : value.content;
458
+ if (!Array.isArray(content) || content.some(item => !isObject(item))) {
459
+ throw new CaiError(`Malformed tool result content for ${tool}.`, {
460
+ exitCode: EXIT.network,
461
+ code: 'BAD_RESPONSE',
462
+ detail: { tool },
463
+ });
464
+ }
465
+ const payload = content
466
+ .map(item => (typeof item.text === 'string' ? item.text : ''))
467
+ .join('');
468
+ if (value.isError === true) {
469
+ throw toolError(payload || 'Tool reported an error', tool);
470
+ }
471
+ if (!payload)
472
+ return undefined;
473
+ const decoded = safeJson(payload);
474
+ // Some legacy tools return prose rather than JSON; preserve that established behavior.
475
+ return decoded === null && payload !== 'null' ? payload : decoded;
476
+ };
477
+ const approvalResumeCommand = (approvalId) => `cai approval resume ${String(approvalId)}`;
478
+ const isTransientApprovalPollError = (error) => error.exitCode === EXIT.network ||
479
+ error.httpStatus === 408 ||
480
+ error.httpStatus === 425 ||
481
+ error.httpStatus === 429 ||
482
+ (error.httpStatus !== undefined && error.httpStatus >= 500);
483
+ const approvalResumeError = (approvalId, status, tool, code, reason, cause) => new CaiError(`${reason} Do not rerun the original gated command. Resume this existing operation with ` +
484
+ `\`${approvalResumeCommand(approvalId)}\`.`, {
485
+ exitCode: cause?.exitCode ?? EXIT.network,
486
+ code,
487
+ httpStatus: cause?.httpStatus,
488
+ scrubbed: cause?.scrubbed,
489
+ detail: { approvalId, status, tool, resumeCommand: approvalResumeCommand(approvalId) },
490
+ });
491
+ const badApprovalResponse = (message, tool, approvalId) => new CaiError(message, {
492
+ exitCode: EXIT.network,
493
+ code: 'BAD_APPROVAL_RESPONSE',
494
+ detail: {
495
+ tool,
496
+ ...(validApprovalId(approvalId) ? { approvalId } : {}),
497
+ },
498
+ });
499
+ const isApprovalRequiredCandidate = (value) => isObject(value) && Object.prototype.hasOwnProperty.call(value, 'approvalRequired') &&
500
+ value.approvalRequired === true;
501
+ const parseApprovalRequiredPayload = (value, tool) => {
502
+ if (!isObject(value)) {
503
+ throw badApprovalResponse(`Malformed approval response for ${tool}.`, tool);
504
+ }
505
+ if (!validApprovalId(value.approvalId) || value.status !== 'pending') {
506
+ throw badApprovalResponse(`Malformed approval response for ${tool}: expected approvalId and pending status.`, tool, value.approvalId);
507
+ }
508
+ return {
509
+ approvalRequired: true,
510
+ approvalId: value.approvalId,
511
+ status: 'pending',
512
+ };
513
+ };
514
+ const BUILDER_APPROVAL_STATUSES = new Set([
515
+ 'pending',
516
+ 'executing',
517
+ 'succeeded',
518
+ 'failed',
519
+ 'denied',
520
+ 'expired',
521
+ ]);
522
+ const parseBuilderApprovalIntent = (value, approvalId, tool) => {
523
+ if (!isObject(value) ||
524
+ !validApprovalId(value.id) ||
525
+ String(value.id) !== String(approvalId) ||
526
+ typeof value.status !== 'string' ||
527
+ !BUILDER_APPROVAL_STATUSES.has(value.status)) {
528
+ throw badApprovalResponse(`Malformed approval poll response for approval ID ${approvalId}.`, tool, approvalId);
529
+ }
530
+ if (value.error !== undefined &&
531
+ typeof value.error !== 'string' &&
532
+ (!isObject(value.error) ||
533
+ (value.error.code !== undefined && typeof value.error.code !== 'string') ||
534
+ (value.error.message !== undefined && typeof value.error.message !== 'string'))) {
535
+ throw badApprovalResponse(`Malformed approval error for approval ID ${approvalId}.`, tool, approvalId);
536
+ }
537
+ return value;
538
+ };
539
+ const approvalErrorParts = (error) => {
540
+ if (typeof error === 'string')
541
+ return { message: error };
542
+ return error ?? {};
543
+ };
544
+ const maxActiveWorkflowsError = (tool, approvalId) => new CaiError(MAX_ACTIVE_WORKFLOWS_MESSAGE, {
545
+ exitCode: EXIT.user,
546
+ code: MAX_ACTIVE_WORKFLOWS_CODE,
547
+ detail: { tool, ...(approvalId !== undefined ? { approvalId } : {}) },
548
+ });
326
549
  const conflictLatestStateId = (error) => {
327
550
  if (!error.detail || typeof error.detail !== 'object')
328
551
  return undefined;
@@ -339,6 +562,9 @@ const conflictLatestStateId = (error) => {
339
562
  export const toolError = (message, tool, data) => {
340
563
  const text = (message ?? '').trim();
341
564
  const errorData = data && typeof data === 'object' ? data : undefined;
565
+ if (errorData?.code === MAX_ACTIVE_WORKFLOWS_CODE || text.includes(MAX_ACTIVE_WORKFLOWS_CODE)) {
566
+ return maxActiveWorkflowsError(tool);
567
+ }
342
568
  if (errorData?.code === EMAIL_VERIFICATION_REQUIRED_CODE ||
343
569
  text === EMAIL_VERIFICATION_REQUIRED_CODE ||
344
570
  text === EMAIL_VERIFICATION_REQUIRED_MESSAGE ||
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
@@ -113,6 +113,32 @@ const instructionText = (opts) => {
113
113
  return opts.instructions;
114
114
  };
115
115
  const getAgent = (api, id) => api.rest(`/agents/${id}`);
116
+ /** Calendar day of an ISO timestamp; unparseable values are echoed unchanged. */
117
+ const publishDay = (value) => {
118
+ const parsed = new Date(value);
119
+ return Number.isNaN(parsed.getTime()) ? value : parsed.toISOString().slice(0, 10);
120
+ };
121
+ /**
122
+ * Publish and Slack state only render when the server actually reported them.
123
+ * Older backends omit the keys entirely, and an invented "no"/"-" there would
124
+ * read as fact rather than as a missing field.
125
+ */
126
+ const hasField = (row, field) => typeof row === 'object' && row !== null && Object.prototype.hasOwnProperty.call(row, field);
127
+ const slackPairs = (slack) => {
128
+ const allowlist = slack.channelAllowlist;
129
+ const channels = !Array.isArray(allowlist)
130
+ ? '-'
131
+ : allowlist.length === 0
132
+ ? '(none)'
133
+ : allowlist.join(', ');
134
+ return [
135
+ ['slack enabled', slack.enabled ? 'yes' : 'no'],
136
+ ['slack slug', slack.slug ?? '-'],
137
+ ['slack display name', slack.displayName ?? '-'],
138
+ ['slack channels', channels],
139
+ ['slack connection', slack.connectionId ?? '-'],
140
+ ];
141
+ };
116
142
  const updateDraft = async (api, agentId, patch) => {
117
143
  for (let attempt = 0; attempt < 2; attempt += 1) {
118
144
  const current = await getAgent(api, agentId);
@@ -158,30 +184,82 @@ const assertConversationRail = (conversation, draft) => {
158
184
  const contentText = (content) => typeof content === 'string' ? content : JSON.stringify(content ?? null);
159
185
  /**
160
186
  * Distill a conversation transcript to what a caller actually asks after a
161
- * test or timeout: the final assistant text (assembled from content blocks),
162
- * which tools ran, and whether the turn really finished. Raw block JSON took a
163
- * first-time agent five parsing attempts — this is the one-call answer.
187
+ * test or timeout: the last turn's assistant text, which tools ran with which
188
+ * inputs, and whether the turn really finished. Raw block JSON took a first-time
189
+ * agent five parsing attempts — this is the one-call answer.
164
190
  */
165
191
  export const lastReplySummary = (history) => {
166
- const reply = [...(history.messages ?? [])].reverse().find(message => message.role === 'assistant') ?? null;
167
- const blocks = Array.isArray(reply?.content)
168
- ? reply?.content
192
+ const messages = history.messages ?? [];
193
+ let lastUserIndex = -1;
194
+ for (let index = messages.length - 1; index >= 0; index -= 1) {
195
+ if (messages[index]?.role === 'user') {
196
+ lastUserIndex = index;
197
+ break;
198
+ }
199
+ }
200
+ const replies = messages
201
+ .slice(lastUserIndex + 1)
202
+ .filter(message => message.role === 'assistant');
203
+ const contentBlocks = (content) => Array.isArray(content)
204
+ ? content.filter((block) => Boolean(block) && typeof block === 'object' && !Array.isArray(block))
169
205
  : [];
170
- const replyText = typeof reply?.content === 'string'
171
- ? reply.content
172
- : blocks
206
+ const blocks = replies.flatMap(reply => contentBlocks(reply.content));
207
+ const replyText = replies
208
+ .flatMap(reply => typeof reply.content === 'string'
209
+ ? [reply.content]
210
+ : contentBlocks(reply.content)
173
211
  .filter(block => block.type === 'text' && typeof block.text === 'string')
174
- .map(block => block.text)
175
- .join('\n')
176
- .trim() || null;
212
+ .map(block => block.text ?? ''))
213
+ .join('\n')
214
+ .trim() || null;
215
+ const replyWithCost = [...replies]
216
+ .reverse()
217
+ .find(reply => reply.totalCostUsd !== undefined && reply.totalCostUsd !== null);
218
+ const events = history.events ?? [];
219
+ const notificationStartsTurn = (event) => {
220
+ if (event.eventType !== 'system_notification')
221
+ return false;
222
+ const rawData = event.rawData !== null &&
223
+ typeof event.rawData === 'object' &&
224
+ !Array.isArray(event.rawData)
225
+ ? event.rawData
226
+ : null;
227
+ return rawData?.source !== 'files_changed';
228
+ };
229
+ let lastTurnBoundaryIndex = -1;
230
+ for (let index = events.length - 1; index >= 0; index -= 1) {
231
+ const event = events[index];
232
+ if (event?.eventType === 'agent_user_message_sent' ||
233
+ (event !== undefined && notificationStartsTurn(event))) {
234
+ lastTurnBoundaryIndex = index;
235
+ break;
236
+ }
237
+ }
238
+ const newestUserMessage = lastUserIndex >= 0 ? messages[lastUserIndex] : undefined;
239
+ const newestUserCreatedAt = newestUserMessage?.createdAt
240
+ ? Date.parse(newestUserMessage.createdAt)
241
+ : Number.NaN;
177
242
  return {
178
243
  status: history.conversation?.status ?? 'unknown',
179
- turnComplete: (history.events ?? []).some(event => event.eventType === 'sdk_message' && event.sdkType === 'result'),
244
+ turnComplete: events.some((event, index) => {
245
+ if (index <= lastTurnBoundaryIndex ||
246
+ event.eventType !== 'sdk_message' ||
247
+ event.sdkType !== 'result') {
248
+ return false;
249
+ }
250
+ if (!Number.isFinite(newestUserCreatedAt))
251
+ return true;
252
+ const resultCreatedAt = event.createdAt ? Date.parse(event.createdAt) : Number.NaN;
253
+ return Number.isFinite(resultCreatedAt) && resultCreatedAt > newestUserCreatedAt;
254
+ }),
180
255
  replyText,
181
256
  toolCalls: blocks
182
257
  .filter(block => block.type === 'tool_use')
183
- .map(block => block.name ?? 'tool'),
184
- costUsd: reply?.totalCostUsd ?? null,
258
+ .map(block => ({
259
+ name: block.tool?.name ?? block.name ?? 'tool',
260
+ input: block.tool?.parsedInput ?? block.tool?.input ?? block.input ?? null,
261
+ })),
262
+ costUsd: replyWithCost?.totalCostUsd ?? null,
185
263
  };
186
264
  };
187
265
  export const assistantReplyAfter = (history, afterMessageId) => [...(history.messages ?? [])]
@@ -292,12 +370,13 @@ export const registerAgent = (program) => {
292
370
  if (opts.ownership)
293
371
  query.set('ownership', opts.ownership);
294
372
  const rows = await api.rest(`/agents?${query.toString()}`);
295
- emit({ agents: rows ?? [] }, () => printTable(['id', 'name', 'enabled', 'visibility', 'live version id'], (rows ?? []).map(row => [
373
+ emit({ agents: rows ?? [] }, () => printTable(['id', 'name', 'enabled', 'visibility', 'live version id', 'published'], (rows ?? []).map(row => [
296
374
  row.id,
297
375
  row.displayName,
298
376
  row.enabled ? 'yes' : 'no',
299
377
  row.visibility,
300
378
  row.liveAgentVersionId ?? '-',
379
+ row.publishedAt ? publishDay(row.publishedAt) : '-',
301
380
  ])));
302
381
  });
303
382
  agent
@@ -315,15 +394,26 @@ export const registerAgent = (program) => {
315
394
  integrationAction: 'cai integration search <capability>',
316
395
  workflowTool: `cai agent add-workflow ${row.id} --workflow-id <id> --flow <flowId>`,
317
396
  },
318
- }, () => printKeyValues([
319
- ['id', row.id],
320
- ['name', row.displayName],
321
- ['enabled', row.enabled ? 'yes' : 'no'],
322
- ['visibility', row.visibility],
323
- ['live version', row.liveVersion?.versionNumber ?? '(never published)'],
324
- ['unpublished changes', row.hasUnpublishedChanges ? 'yes' : 'no'],
325
- ['instructions', truncate(row.systemPrompt, 120)],
326
- ]));
397
+ }, () => {
398
+ const pairs = [
399
+ ['id', row.id],
400
+ ['name', row.displayName],
401
+ ['enabled', row.enabled ? 'yes' : 'no'],
402
+ ['visibility', row.visibility],
403
+ ['live version', row.liveVersion?.versionNumber ?? '(never published)'],
404
+ ['unpublished changes', row.hasUnpublishedChanges ? 'yes' : 'no'],
405
+ ];
406
+ if (hasField(row, 'publishedAt')) {
407
+ pairs.push([
408
+ 'published',
409
+ row.publishedAt ? `yes — ${publishDay(row.publishedAt)}` : 'no — never published',
410
+ ]);
411
+ }
412
+ if (row.slack)
413
+ pairs.push(...slackPairs(row.slack));
414
+ pairs.push(['instructions', truncate(row.systemPrompt, 120)]);
415
+ printKeyValues(pairs);
416
+ });
327
417
  });
328
418
  agent
329
419
  .command('create')
@@ -869,6 +959,42 @@ export const registerAgent = (program) => {
869
959
  printKeyValues(pairs);
870
960
  });
871
961
  });
962
+ agent
963
+ .command('present')
964
+ .argument('<agentId>')
965
+ .option('--description <text>', 'one-line user-facing summary shown on the card')
966
+ .option('--updated', 'this re-presents an agent changed by a follow-up request', false)
967
+ .description('Show the finished agent to the user as a rich card in the build chat. Read-only; ' +
968
+ 'call it as the final step after the agent is ready (or again with --updated after changes).')
969
+ .action(async (rawId, opts, command) => {
970
+ const { api, config } = buildClient(command);
971
+ const agentId = parsePositiveId(rawId, 'agentId');
972
+ const result = await api.rest(`/agents/${agentId}/present`, {
973
+ method: 'POST',
974
+ body: {
975
+ ...(opts.description ? { description: opts.description } : {}),
976
+ ...(opts.updated ? { updated: true } : {}),
977
+ },
978
+ });
979
+ const appUrl = agentUrl(config, agentId);
980
+ emit({ agentId, ...result, ...(appUrl ? { appUrl } : {}) }, () => {
981
+ printKeyValues([
982
+ ['agentId', agentId],
983
+ ['agent', result.displayName],
984
+ ['workflows', result.workflowsCount],
985
+ ['triggers', result.triggersCount],
986
+ ['published', result.isPublished ? 'yes' : 'draft'],
987
+ [
988
+ 'card',
989
+ result.presentedInChat
990
+ ? 'shown to the user in this build chat'
991
+ : result.cardDeliveryFailed
992
+ ? 'delivery FAILED — a build chat exists but the card did not persist; retry once'
993
+ : 'not shown (no build chat in scope)',
994
+ ],
995
+ ]);
996
+ });
997
+ });
872
998
  agent
873
999
  .command('versions')
874
1000
  .argument('<agentId>')
@@ -946,7 +1072,7 @@ export const registerAgent = (program) => {
946
1072
  conversation
947
1073
  .command('history')
948
1074
  .argument('<conversationId>')
949
- .option('--last', 'just the final assistant reply: status, text, tool-call summary, cost')
1075
+ .option('--last', 'aggregates the assistant turn: status, text, tool-call summary, cost')
950
1076
  .description('Read persisted messages, events, and pending permission requests')
951
1077
  .action(async (rawId, opts, command) => {
952
1078
  const { api } = buildClient(command);
@@ -958,7 +1084,16 @@ export const registerAgent = (program) => {
958
1084
  ['conversation', conversationId],
959
1085
  ['status', summary.status],
960
1086
  ['turn complete', summary.turnComplete ? 'yes' : 'no'],
961
- ['tool calls', summary.toolCalls.length ? summary.toolCalls.join(', ') : '-'],
1087
+ [
1088
+ 'tool calls',
1089
+ summary.toolCalls.length
1090
+ ? summary.toolCalls
1091
+ .map(call => call.input === null
1092
+ ? call.name
1093
+ : `${call.name} ${JSON.stringify(call.input)}`)
1094
+ .join(', ')
1095
+ : '-',
1096
+ ],
962
1097
  ['cost USD', summary.costUsd ?? '-'],
963
1098
  ['reply', summary.replyText ?? '(no assistant text yet)'],
964
1099
  ]));