@vertesia/cli 1.3.0 → 1.4.0-dev.20260615.042549Z

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 (218) hide show
  1. package/lib/agent-context.d.ts +8 -2
  2. package/lib/agent-context.d.ts.map +1 -1
  3. package/lib/agent-context.js +9 -13
  4. package/lib/agent-context.js.map +1 -1
  5. package/lib/agents/index.d.ts +3 -0
  6. package/lib/agents/index.d.ts.map +1 -0
  7. package/lib/agents/index.js +555 -0
  8. package/lib/agents/index.js.map +1 -0
  9. package/lib/apps/commands.d.ts +25 -10
  10. package/lib/apps/commands.d.ts.map +1 -1
  11. package/lib/apps/commands.js +34 -26
  12. package/lib/apps/commands.js.map +1 -1
  13. package/lib/apps/index.d.ts +1 -1
  14. package/lib/apps/index.d.ts.map +1 -1
  15. package/lib/apps/index.js +40 -41
  16. package/lib/apps/index.js.map +1 -1
  17. package/lib/artifacts/commands.d.ts +13 -5
  18. package/lib/artifacts/commands.d.ts.map +1 -1
  19. package/lib/artifacts/commands.js +10 -10
  20. package/lib/artifacts/commands.js.map +1 -1
  21. package/lib/artifacts/index.d.ts +1 -1
  22. package/lib/artifacts/index.d.ts.map +1 -1
  23. package/lib/artifacts/index.js +22 -17
  24. package/lib/artifacts/index.js.map +1 -1
  25. package/lib/client.d.ts +2 -2
  26. package/lib/client.d.ts.map +1 -1
  27. package/lib/client.js +45 -21
  28. package/lib/client.js.map +1 -1
  29. package/lib/data/commands.d.ts +16 -3
  30. package/lib/data/commands.d.ts.map +1 -1
  31. package/lib/data/commands.js +36 -43
  32. package/lib/data/commands.js.map +1 -1
  33. package/lib/data/index.d.ts +1 -1
  34. package/lib/data/index.d.ts.map +1 -1
  35. package/lib/data/index.js +14 -15
  36. package/lib/data/index.js.map +1 -1
  37. package/lib/envs/index.d.ts +2 -2
  38. package/lib/envs/index.d.ts.map +1 -1
  39. package/lib/envs/index.js +12 -10
  40. package/lib/envs/index.js.map +1 -1
  41. package/lib/iam/commands.d.ts +15 -3
  42. package/lib/iam/commands.d.ts.map +1 -1
  43. package/lib/iam/commands.js +27 -9
  44. package/lib/iam/commands.js.map +1 -1
  45. package/lib/iam/index.d.ts +1 -1
  46. package/lib/iam/index.d.ts.map +1 -1
  47. package/lib/iam/index.js +2 -3
  48. package/lib/iam/index.js.map +1 -1
  49. package/lib/index.js +157 -122
  50. package/lib/index.js.map +1 -1
  51. package/lib/interactions/index.d.ts +2 -2
  52. package/lib/interactions/index.d.ts.map +1 -1
  53. package/lib/interactions/index.js +20 -14
  54. package/lib/interactions/index.js.map +1 -1
  55. package/lib/objects/commands.d.ts +49 -14
  56. package/lib/objects/commands.d.ts.map +1 -1
  57. package/lib/objects/commands.js +185 -32
  58. package/lib/objects/commands.js.map +1 -1
  59. package/lib/objects/index.d.ts +1 -1
  60. package/lib/objects/index.d.ts.map +1 -1
  61. package/lib/objects/index.js +46 -13
  62. package/lib/objects/index.js.map +1 -1
  63. package/lib/package.d.ts +7 -3
  64. package/lib/package.d.ts.map +1 -1
  65. package/lib/package.js +25 -13
  66. package/lib/package.js.map +1 -1
  67. package/lib/profiles/auth.d.ts +14 -0
  68. package/lib/profiles/auth.d.ts.map +1 -0
  69. package/lib/profiles/auth.js +65 -0
  70. package/lib/profiles/auth.js.map +1 -0
  71. package/lib/profiles/commands.d.ts +15 -4
  72. package/lib/profiles/commands.d.ts.map +1 -1
  73. package/lib/profiles/commands.js +384 -57
  74. package/lib/profiles/commands.js.map +1 -1
  75. package/lib/profiles/git.d.ts +9 -0
  76. package/lib/profiles/git.d.ts.map +1 -0
  77. package/lib/profiles/git.js +211 -0
  78. package/lib/profiles/git.js.map +1 -0
  79. package/lib/profiles/index.d.ts +17 -7
  80. package/lib/profiles/index.d.ts.map +1 -1
  81. package/lib/profiles/index.js +215 -66
  82. package/lib/profiles/index.js.map +1 -1
  83. package/lib/profiles/keyring.d.ts +23 -0
  84. package/lib/profiles/keyring.d.ts.map +1 -0
  85. package/lib/profiles/keyring.js +111 -0
  86. package/lib/profiles/keyring.js.map +1 -0
  87. package/lib/profiles/oauth.d.ts +17 -0
  88. package/lib/profiles/oauth.d.ts.map +1 -0
  89. package/lib/profiles/oauth.js +414 -0
  90. package/lib/profiles/oauth.js.map +1 -0
  91. package/lib/profiles/server/cors.d.ts +1 -1
  92. package/lib/profiles/server/cors.d.ts.map +1 -1
  93. package/lib/profiles/server/cors.js +1 -1
  94. package/lib/profiles/server/cors.js.map +1 -1
  95. package/lib/profiles/server/index.d.ts +9 -1
  96. package/lib/profiles/server/index.d.ts.map +1 -1
  97. package/lib/profiles/server/index.js +111 -47
  98. package/lib/profiles/server/index.js.map +1 -1
  99. package/lib/profiles/server/server.d.ts +1 -1
  100. package/lib/profiles/server/server.d.ts.map +1 -1
  101. package/lib/profiles/server/server.js +10 -13
  102. package/lib/profiles/server/server.js.map +1 -1
  103. package/lib/projects/index.d.ts +2 -1
  104. package/lib/projects/index.d.ts.map +1 -1
  105. package/lib/projects/index.js +53 -5
  106. package/lib/projects/index.js.map +1 -1
  107. package/lib/run/executor.d.ts +11 -7
  108. package/lib/run/executor.d.ts.map +1 -1
  109. package/lib/run/executor.js +30 -23
  110. package/lib/run/executor.js.map +1 -1
  111. package/lib/run/index.d.ts +14 -2
  112. package/lib/run/index.d.ts.map +1 -1
  113. package/lib/run/index.js +14 -12
  114. package/lib/run/index.js.map +1 -1
  115. package/lib/runs/index.d.ts +18 -2
  116. package/lib/runs/index.d.ts.map +1 -1
  117. package/lib/runs/index.js +9 -7
  118. package/lib/runs/index.js.map +1 -1
  119. package/lib/utils/console.d.ts +1 -1
  120. package/lib/utils/console.d.ts.map +1 -1
  121. package/lib/utils/console.js +24 -33
  122. package/lib/utils/console.js.map +1 -1
  123. package/lib/utils/options.d.ts +8 -0
  124. package/lib/utils/options.d.ts.map +1 -0
  125. package/lib/utils/options.js +19 -0
  126. package/lib/utils/options.js.map +1 -0
  127. package/lib/utils/stdio.js +3 -2
  128. package/lib/utils/stdio.js.map +1 -1
  129. package/lib/workflows/commands.d.ts +44 -13
  130. package/lib/workflows/commands.d.ts.map +1 -1
  131. package/lib/workflows/commands.js +69 -50
  132. package/lib/workflows/commands.js.map +1 -1
  133. package/lib/workflows/index.d.ts +1 -1
  134. package/lib/workflows/index.d.ts.map +1 -1
  135. package/lib/workflows/index.js +56 -56
  136. package/lib/workflows/index.js.map +1 -1
  137. package/lib/workflows/json-loader.d.ts +1 -1
  138. package/lib/workflows/json-loader.d.ts.map +1 -1
  139. package/lib/workflows/json-loader.js +5 -4
  140. package/lib/workflows/json-loader.js.map +1 -1
  141. package/lib/workflows/streams.d.ts +8 -1
  142. package/lib/workflows/streams.d.ts.map +1 -1
  143. package/lib/workflows/streams.js +107 -84
  144. package/lib/workflows/streams.js.map +1 -1
  145. package/lib/workflows/ts-loader.d.ts +1 -1
  146. package/lib/workflows/ts-loader.d.ts.map +1 -1
  147. package/lib/workflows/ts-loader.js +21 -20
  148. package/lib/workflows/ts-loader.js.map +1 -1
  149. package/lib/workflows/validation.d.ts +1 -1
  150. package/lib/workflows/validation.d.ts.map +1 -1
  151. package/lib/workflows/validation.js +11 -11
  152. package/lib/workflows/validation.js.map +1 -1
  153. package/package.json +21 -24
  154. package/bin/docker-credential-vertesia.js +0 -3
  155. package/lib/codegen/CodeBuilder.d.ts +0 -16
  156. package/lib/codegen/CodeBuilder.d.ts.map +0 -1
  157. package/lib/codegen/CodeBuilder.js +0 -99
  158. package/lib/codegen/CodeBuilder.js.map +0 -1
  159. package/lib/codegen/InteractionVersion.d.ts +0 -29
  160. package/lib/codegen/InteractionVersion.d.ts.map +0 -1
  161. package/lib/codegen/InteractionVersion.js +0 -80
  162. package/lib/codegen/InteractionVersion.js.map +0 -1
  163. package/lib/codegen/index.d.ts +0 -3
  164. package/lib/codegen/index.d.ts.map +0 -1
  165. package/lib/codegen/index.js +0 -30
  166. package/lib/codegen/index.js.map +0 -1
  167. package/lib/codegen/template.d.ts +0 -3
  168. package/lib/codegen/template.d.ts.map +0 -1
  169. package/lib/codegen/template.js +0 -28
  170. package/lib/codegen/template.js.map +0 -1
  171. package/lib/codegen/utils.d.ts +0 -2
  172. package/lib/codegen/utils.d.ts.map +0 -1
  173. package/lib/codegen/utils.js +0 -4
  174. package/lib/codegen/utils.js.map +0 -1
  175. package/lib/datagen/index.d.ts +0 -3
  176. package/lib/datagen/index.d.ts.map +0 -1
  177. package/lib/datagen/index.js +0 -81
  178. package/lib/datagen/index.js.map +0 -1
  179. package/lib/memory/index.d.ts +0 -3
  180. package/lib/memory/index.d.ts.map +0 -1
  181. package/lib/memory/index.js +0 -15
  182. package/lib/memory/index.js.map +0 -1
  183. package/lib/worker/commands.d.ts +0 -11
  184. package/lib/worker/commands.d.ts.map +0 -1
  185. package/lib/worker/commands.js +0 -173
  186. package/lib/worker/commands.js.map +0 -1
  187. package/lib/worker/connect.d.ts +0 -7
  188. package/lib/worker/connect.d.ts.map +0 -1
  189. package/lib/worker/connect.js +0 -68
  190. package/lib/worker/connect.js.map +0 -1
  191. package/lib/worker/docker-credential.d.ts +0 -2
  192. package/lib/worker/docker-credential.d.ts.map +0 -1
  193. package/lib/worker/docker-credential.js +0 -51
  194. package/lib/worker/docker-credential.js.map +0 -1
  195. package/lib/worker/docker.d.ts +0 -10
  196. package/lib/worker/docker.d.ts.map +0 -1
  197. package/lib/worker/docker.js +0 -93
  198. package/lib/worker/docker.js.map +0 -1
  199. package/lib/worker/index.d.ts +0 -3
  200. package/lib/worker/index.d.ts.map +0 -1
  201. package/lib/worker/index.js +0 -90
  202. package/lib/worker/index.js.map +0 -1
  203. package/lib/worker/project.d.ts +0 -58
  204. package/lib/worker/project.d.ts.map +0 -1
  205. package/lib/worker/project.js +0 -125
  206. package/lib/worker/project.js.map +0 -1
  207. package/lib/worker/refresh.d.ts +0 -6
  208. package/lib/worker/refresh.d.ts.map +0 -1
  209. package/lib/worker/refresh.js +0 -47
  210. package/lib/worker/refresh.js.map +0 -1
  211. package/lib/worker/registry.d.ts +0 -7
  212. package/lib/worker/registry.d.ts.map +0 -1
  213. package/lib/worker/registry.js +0 -47
  214. package/lib/worker/registry.js.map +0 -1
  215. package/lib/worker/version.d.ts +0 -2
  216. package/lib/worker/version.d.ts.map +0 -1
  217. package/lib/worker/version.js +0 -4
  218. package/lib/worker/version.js.map +0 -1
@@ -1,3 +1,9 @@
1
- export declare function getAgentRunId(options?: Record<string, unknown>): string;
2
- export declare function getArtifactStorageId(options?: Record<string, unknown>): string;
1
+ import { type CliOptions } from './utils/options.js';
2
+ type RunContextOptions = CliOptions<{
3
+ runId?: string;
4
+ storageId?: string;
5
+ }>;
6
+ export declare function getAgentRunId(options?: RunContextOptions): string;
7
+ export declare function getArtifactStorageId(options?: RunContextOptions): string;
8
+ export {};
3
9
  //# sourceMappingURL=agent-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-context.d.ts","sourceRoot":"","sources":["../src/agent-context.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,MAAM,CAc3E;AAED,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,MAAM,CAgBlF"}
1
+ {"version":3,"file":"agent-context.d.ts","sourceRoot":"","sources":["../src/agent-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,oBAAoB,CAAC;AAEtE,KAAK,iBAAiB,GAAG,UAAU,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC,CAAC;AAEH,wBAAgB,aAAa,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,CASrE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAc5E"}
@@ -1,26 +1,22 @@
1
+ import { getStringOption } from './utils/options.js';
1
2
  export function getAgentRunId(options = {}) {
2
- const runId = getStringOption(options.runId)
3
- || process.env.VERTESIA_AGENTRUN_ID
4
- || process.env.VERTESIA_RUN_ID;
3
+ const runId = getStringOption(options.runId) || process.env.VERTESIA_AGENTRUN_ID || process.env.VERTESIA_RUN_ID;
5
4
  if (!runId) {
6
- console.error("Error: Agent run ID not specified. Use --run-id or set VERTESIA_AGENTRUN_ID");
5
+ console.error('Error: Agent run ID not specified. Use --run-id or set VERTESIA_AGENTRUN_ID');
7
6
  process.exit(1);
8
7
  }
9
8
  return runId;
10
9
  }
11
10
  export function getArtifactStorageId(options = {}) {
12
- const storageId = getStringOption(options.runId)
13
- || getStringOption(options.storageId)
14
- || process.env.VERTESIA_ARTIFACT_STORAGE_ID
15
- || process.env.VERTESIA_AGENTRUN_ID
16
- || process.env.VERTESIA_RUN_ID;
11
+ const storageId = getStringOption(options.runId) ||
12
+ getStringOption(options.storageId) ||
13
+ process.env.VERTESIA_ARTIFACT_STORAGE_ID ||
14
+ process.env.VERTESIA_AGENTRUN_ID ||
15
+ process.env.VERTESIA_RUN_ID;
17
16
  if (!storageId) {
18
- console.error("Error: Artifact storage ID not specified. Use --run-id or set VERTESIA_ARTIFACT_STORAGE_ID");
17
+ console.error('Error: Artifact storage ID not specified. Use --run-id or set VERTESIA_ARTIFACT_STORAGE_ID');
19
18
  process.exit(1);
20
19
  }
21
20
  return storageId;
22
21
  }
23
- function getStringOption(value) {
24
- return typeof value === "string" && value.trim().length > 0 ? value.trim() : undefined;
25
- }
26
22
  //# sourceMappingURL=agent-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-context.js","sourceRoot":"","sources":["../src/agent-context.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,UAAmC,EAAE;IAC/D,MAAM,KAAK,GACP,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC;WAC3B,OAAO,CAAC,GAAG,CAAC,oBAAoB;WAChC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAEnC,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CACT,6EAA6E,CAChF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,UAAmC,EAAE;IACtE,MAAM,SAAS,GACX,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC;WAC3B,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC;WAClC,OAAO,CAAC,GAAG,CAAC,4BAA4B;WACxC,OAAO,CAAC,GAAG,CAAC,oBAAoB;WAChC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAEnC,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACT,4FAA4F,CAC/F,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3F,CAAC"}
1
+ {"version":3,"file":"agent-context.js","sourceRoot":"","sources":["../src/agent-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAOtE,MAAM,UAAU,aAAa,CAAC,UAA6B,EAAE;IACzD,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAEhH,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,6EAA6E,CAAC,CAAC;QAC7F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,UAA6B,EAAE;IAChE,MAAM,SAAS,GACX,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC;QAC9B,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,4BAA4B;QACxC,OAAO,CAAC,GAAG,CAAC,oBAAoB;QAChC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAEhC,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,4FAA4F,CAAC,CAAC;QAC5G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerAgentsCommand(program: Command): void;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwEzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,QAsGrD"}
@@ -0,0 +1,555 @@
1
+ import { setTimeout as delay } from 'node:timers/promises';
2
+ import { AgentMessageType, PROCESS_DEFINITION_FORMAT_VERSION, } from '@vertesia/common';
3
+ import chalk from 'chalk';
4
+ import * as readline from 'readline';
5
+ import { registerArtifactsCommand } from '../artifacts/index.js';
6
+ import { getClient } from '../client.js';
7
+ import { readFile, readStdin, writeFile } from '../utils/stdio.js';
8
+ export function registerAgentsCommand(program) {
9
+ const agents = program.command('agents').description('Start, stream, and inspect durable agent runs');
10
+ registerArtifactsCommand(agents);
11
+ agents
12
+ .command('start [interaction]')
13
+ .description('Start a conversation agent or process run through the Agent Runs API')
14
+ .option('-d, --data <json>', 'Inline input data as a JSON object')
15
+ .option('-i, --input [file]', 'Input data file. Reads stdin when no file is provided')
16
+ .option('-o, --output <file>', 'Write the created run JSON to a file')
17
+ .option('--process-id <id>', 'Start a stored process definition instead of a conversation agent')
18
+ .option('--process-definition <file>', 'Start an inline process definition from a JSON file')
19
+ .option('--run-type <type>', 'Process run type: programmatic or supervised', 'programmatic')
20
+ .option('-e, --env <environmentId>', 'Environment ID for conversation agents')
21
+ .option('-m, --model <model>', 'Model override')
22
+ .option('--user-message <message>', 'Process run intent passed to supervised mode')
23
+ .option('-T, --tags <tags>', 'Comma-separated tags')
24
+ .option('-C, --categories <categories>', 'Comma-separated categories')
25
+ .option('--visibility <visibility>', 'Run visibility: project or private')
26
+ .option('--tools <tools>', 'Comma-separated tool names for conversation agents')
27
+ .option('--collection <collectionId>', 'Collection ID for conversation agents')
28
+ .option('--no-stream', 'Do not stream the feed after starting')
29
+ .option('--no-inspect', 'Do not print a short run summary before streaming')
30
+ .option('--json', 'Print machine-readable JSON for non-streaming output')
31
+ .option('--interactive', 'Send UserInput signals while streaming')
32
+ .action(async (interaction, options) => {
33
+ await startAgentRun(program, interaction, options);
34
+ });
35
+ agents
36
+ .command('stream <runId>')
37
+ .description('Stream the message feed for an existing agent or process run')
38
+ .option('--since <timestamp>', 'Only stream messages after this timestamp')
39
+ .option('-i, --interactive', 'Send UserInput signals while streaming')
40
+ .action(async (runId, options) => {
41
+ await streamAgentRun(program, runId, options);
42
+ });
43
+ agents
44
+ .command('message <runId> [message]')
45
+ .alias('reply')
46
+ .description('Send a UserInput signal to a running conversation agent or supervised process run')
47
+ .option('-i, --input [file]', 'Reply text file. Reads stdin when no file is provided')
48
+ .option('--json', 'Print machine-readable JSON')
49
+ .option('-o, --output <file>', 'Write JSON output to a file')
50
+ .action(async (runId, message, options) => {
51
+ await replyToAgentRun(program, runId, message, options);
52
+ });
53
+ const tasks = agents.command('tasks').description('List durable tasks for agent and process runs');
54
+ tasks
55
+ .command('list [runId]')
56
+ .description('List tasks, optionally scoped to a run id')
57
+ .option('--run-id <id>', 'Filter by run id')
58
+ .option('--status <status>', 'Filter by status')
59
+ .option('--assignee <principal>', 'Filter by assignee principal ref')
60
+ .option('--source-type <type>', 'Filter by source type: agent or process')
61
+ .option('-l, --limit <limit>', 'Maximum tasks to return', '50')
62
+ .option('--wait <seconds>', 'Wait up to this many seconds for at least one matching task')
63
+ .option('--json', 'Print raw JSON')
64
+ .option('-o, --output <file>', 'Write JSON output to a file')
65
+ .action(async (runId, options) => {
66
+ await listAgentTasks(program, runId, options);
67
+ });
68
+ agents
69
+ .command('answer-task <taskId> [response]')
70
+ .description('Complete a task with a JSON result object or a shorthand response string')
71
+ .option('-d, --data <json>', 'Inline task result as a JSON object')
72
+ .option('-i, --input [file]', 'Task result JSON file. Reads stdin when no file is provided')
73
+ .option('--json', 'Print machine-readable JSON')
74
+ .option('-o, --output <file>', 'Write JSON output to a file')
75
+ .action(async (taskId, response, options) => {
76
+ await answerTask(program, taskId, response, options);
77
+ });
78
+ agents
79
+ .command('cancel <runId>')
80
+ .alias('terminate')
81
+ .description('Cancel a running agent or process run')
82
+ .option('-r, --reason <reason>', 'Optional cancellation reason')
83
+ .option('--json', 'Print machine-readable JSON')
84
+ .option('-o, --output <file>', 'Write JSON output to a file')
85
+ .action(async (runId, options) => {
86
+ await cancelAgentRun(program, runId, options);
87
+ });
88
+ agents
89
+ .command('inspect <runId>')
90
+ .description('Inspect a durable agent or process run')
91
+ .option('--details', 'Include workflow details')
92
+ .option('--history', 'Include process node history')
93
+ .option('--messages', 'Include stored stream messages')
94
+ .option('--tasks', 'Include tasks for the run')
95
+ .option('-l, --limit <limit>', 'Message/task limit', '50')
96
+ .option('--json', 'Print raw JSON')
97
+ .option('-o, --output <file>', 'Write JSON output to a file')
98
+ .action(async (runId, options) => {
99
+ await inspectAgentRun(program, runId, options);
100
+ });
101
+ }
102
+ async function startAgentRun(program, interaction, options) {
103
+ const client = await getClient(program);
104
+ const data = await readOptionalRecordInput(options);
105
+ const processId = readOptionalString(options.processId);
106
+ const processDefinitionPath = readOptionalString(options.processDefinition);
107
+ const stream = options.stream !== false;
108
+ let run;
109
+ if (processId || processDefinitionPath) {
110
+ const payload = buildProcessStartPayload(options, data, processId, processDefinitionPath);
111
+ run = await client.agents.start(payload);
112
+ }
113
+ else {
114
+ if (!interaction) {
115
+ throw new Error('Missing interaction. Provide an interaction name, --process-id, or --process-definition.');
116
+ }
117
+ const payload = buildAgentStartPayload(interaction, options, data);
118
+ run = await client.agents.start(payload);
119
+ }
120
+ const runJson = JSON.stringify(run, null, 2);
121
+ const outputFile = readOptionalString(options.output);
122
+ if (outputFile) {
123
+ writeFile(outputFile, runJson);
124
+ }
125
+ if (options.json || !stream) {
126
+ console.log(runJson);
127
+ }
128
+ else if (options.inspect !== false) {
129
+ printRunSummary(run);
130
+ }
131
+ if (stream) {
132
+ await streamAgentRun(program, run.id, { interactive: options.interactive });
133
+ }
134
+ }
135
+ function buildAgentStartPayload(interaction, options, data) {
136
+ return {
137
+ interaction,
138
+ data,
139
+ config: buildInteractionConfig(options),
140
+ interactive: options.interactive !== false,
141
+ tool_names: readStringList(options.tools),
142
+ collection_id: readOptionalString(options.collection),
143
+ visibility: readVisibility(options.visibility),
144
+ tags: readStringList(options.tags),
145
+ categories: readStringList(options.categories),
146
+ };
147
+ }
148
+ function buildProcessStartPayload(options, data, processId, processDefinitionPath) {
149
+ const runType = readProcessRunType(options.runType);
150
+ return {
151
+ process_id: processId,
152
+ process_definition: processDefinitionPath ? readProcessDefinition(processDefinitionPath) : undefined,
153
+ run_type: runType,
154
+ data,
155
+ config: buildProcessConfig(options),
156
+ visibility: readVisibility(options.visibility),
157
+ tags: readStringList(options.tags),
158
+ categories: readStringList(options.categories),
159
+ };
160
+ }
161
+ async function streamAgentRun(program, runId, options) {
162
+ const client = await getClient(program);
163
+ const since = readOptionalInteger(options.since);
164
+ const abortController = new AbortController();
165
+ let isStopping = false;
166
+ let rl;
167
+ const stop = () => {
168
+ if (isStopping) {
169
+ return;
170
+ }
171
+ isStopping = true;
172
+ abortController.abort();
173
+ rl?.close();
174
+ process.off('SIGINT', stop);
175
+ process.off('SIGTERM', stop);
176
+ };
177
+ process.on('SIGINT', stop);
178
+ process.on('SIGTERM', stop);
179
+ console.log(chalk.bold(`Streaming AgentRun ${runId}`));
180
+ if (options.interactive) {
181
+ rl = readline.createInterface({
182
+ input: process.stdin,
183
+ output: process.stdout,
184
+ prompt: '> ',
185
+ });
186
+ rl.on('line', (line) => {
187
+ const message = line.trim();
188
+ if (!message) {
189
+ rl?.prompt();
190
+ return;
191
+ }
192
+ const payload = { message };
193
+ client.agents
194
+ .sendSignal(runId, 'UserInput', payload)
195
+ .then(() => {
196
+ if (!isStopping) {
197
+ rl?.prompt();
198
+ }
199
+ })
200
+ .catch((error) => {
201
+ console.error(chalk.red(formatError(error)));
202
+ if (!isStopping) {
203
+ rl?.prompt();
204
+ }
205
+ });
206
+ });
207
+ rl.prompt();
208
+ }
209
+ try {
210
+ await client.agents.streamMessages(runId, (message) => printAgentMessage(message), since, abortController.signal);
211
+ }
212
+ finally {
213
+ stop();
214
+ }
215
+ }
216
+ async function replyToAgentRun(program, runId, message, options) {
217
+ const client = await getClient(program);
218
+ const payload = {
219
+ message: await readReplyMessage(message, options),
220
+ };
221
+ const response = await client.agents.sendSignal(runId, 'UserInput', payload);
222
+ printCommandResult(response, options);
223
+ }
224
+ async function answerTask(program, taskId, response, options) {
225
+ const client = await getClient(program);
226
+ const task = await client.tasks.retrieve(taskId);
227
+ const result = await readTaskResult(response, options);
228
+ const completed = task.source.type === 'process'
229
+ ? await completeProcessTask(client, task.source.run_id, taskId, result)
230
+ : await client.tasks.complete(taskId, { result });
231
+ printCommandResult(completed, options);
232
+ }
233
+ async function cancelAgentRun(program, runId, options) {
234
+ const client = await getClient(program);
235
+ const response = await client.agents.terminate(runId, readOptionalString(options.reason));
236
+ printCommandResult(response, options);
237
+ }
238
+ async function listAgentTasks(program, runId, options) {
239
+ const client = await getClient(program);
240
+ const query = {
241
+ run_id: readOptionalString(options.runId) ?? runId,
242
+ status: readOptionalTaskStatus(options.status),
243
+ assignee: readOptionalString(options.assignee),
244
+ source_type: readOptionalTaskSourceType(options.sourceType),
245
+ limit: readOptionalInteger(options.limit) ?? 50,
246
+ };
247
+ const tasks = await waitForTaskList(client, query, readOptionalSeconds(options.wait) ?? 0);
248
+ const outputFile = readOptionalString(options.output);
249
+ if (options.json || outputFile) {
250
+ const json = JSON.stringify(tasks, null, 2);
251
+ if (outputFile) {
252
+ writeFile(outputFile, json);
253
+ }
254
+ else {
255
+ console.log(json);
256
+ }
257
+ return;
258
+ }
259
+ printTasks(tasks);
260
+ }
261
+ async function waitForTaskList(client, query, waitSeconds) {
262
+ const deadline = Date.now() + waitSeconds * 1000;
263
+ let tasks = await client.tasks.list(query);
264
+ while (tasks.length === 0 && Date.now() < deadline) {
265
+ await delay(500);
266
+ tasks = await client.tasks.list(query);
267
+ }
268
+ return tasks;
269
+ }
270
+ async function inspectAgentRun(program, runId, options) {
271
+ const client = await getClient(program);
272
+ const run = await client.agents.retrieveRun(runId);
273
+ const includeMessages = options.messages === true;
274
+ const includeTasks = options.tasks === true || isProcessRun(run);
275
+ const includeHistory = options.history === true || isProcessRun(run);
276
+ const limit = readOptionalInteger(options.limit) ?? 50;
277
+ const result = { run };
278
+ if (options.details) {
279
+ result.details = await client.agents.getRunDetails(runId, { includeHistory: true });
280
+ }
281
+ if (includeHistory && isProcessRun(run)) {
282
+ result.history = await client.agents.getHistory(runId);
283
+ result.context = await client.agents.getContext(runId);
284
+ }
285
+ if (includeMessages) {
286
+ result.messages = (await client.agents.retrieveMessages(runId)).slice(-limit);
287
+ }
288
+ if (includeTasks) {
289
+ result.tasks = await client.tasks.list({ run_id: runId, limit });
290
+ }
291
+ const outputFile = readOptionalString(options.output);
292
+ if (options.json || outputFile) {
293
+ const json = JSON.stringify(result, null, 2);
294
+ if (outputFile) {
295
+ writeFile(outputFile, json);
296
+ }
297
+ else {
298
+ console.log(json);
299
+ }
300
+ return;
301
+ }
302
+ printRunSummary(run);
303
+ if (Array.isArray(result.tasks)) {
304
+ printTasks(result.tasks);
305
+ }
306
+ if (isProcessRun(run)) {
307
+ const state = run.process_state;
308
+ console.log(chalk.bold('Process'));
309
+ console.log(` current_node: ${state.current_node}`);
310
+ console.log(` sequence: ${state.sequence ?? 0}`);
311
+ console.log(` history_entries: ${state.node_history?.length ?? 0}`);
312
+ }
313
+ }
314
+ async function readOptionalRecordInput(options) {
315
+ const inline = readOptionalString(options.data);
316
+ if (inline) {
317
+ return parseJsonRecord(inline, '--data');
318
+ }
319
+ if (options.input === true) {
320
+ return parseJsonRecord(await readStdin(), 'stdin');
321
+ }
322
+ const inputFile = readOptionalString(options.input);
323
+ if (inputFile) {
324
+ return parseJsonRecord(readFile(inputFile), inputFile);
325
+ }
326
+ return undefined;
327
+ }
328
+ async function readReplyMessage(message, options) {
329
+ if (typeof message === 'string' && message.length > 0) {
330
+ return message;
331
+ }
332
+ if (options.input === true) {
333
+ return (await readStdin()).trim();
334
+ }
335
+ const inputFile = readOptionalString(options.input);
336
+ if (inputFile) {
337
+ return readFile(inputFile).trim();
338
+ }
339
+ throw new Error('Missing reply message. Provide a positional message or --input.');
340
+ }
341
+ async function readTaskResult(response, options) {
342
+ const inline = readOptionalString(options.data);
343
+ if (inline) {
344
+ return parseJsonRecord(inline, '--data');
345
+ }
346
+ if (options.input === true) {
347
+ return parseJsonRecord(await readStdin(), 'stdin');
348
+ }
349
+ const inputFile = readOptionalString(options.input);
350
+ if (inputFile) {
351
+ return parseJsonRecord(readFile(inputFile), inputFile);
352
+ }
353
+ if (typeof response === 'string' && response.length > 0) {
354
+ return { response };
355
+ }
356
+ throw new Error('Missing task result. Provide a positional response, --data, or --input.');
357
+ }
358
+ async function completeProcessTask(client, runId, taskId, result) {
359
+ await client.agents.answerTask(runId, taskId, result);
360
+ return waitForTaskUpdate(client, taskId);
361
+ }
362
+ async function waitForTaskUpdate(client, taskId) {
363
+ let latest = await client.tasks.retrieve(taskId);
364
+ if (latest.status !== 'pending' && latest.status !== 'in_progress') {
365
+ return latest;
366
+ }
367
+ for (let attempt = 0; attempt < 20; attempt += 1) {
368
+ await delay(250);
369
+ latest = await client.tasks.retrieve(taskId);
370
+ if (latest.status !== 'pending' && latest.status !== 'in_progress') {
371
+ return latest;
372
+ }
373
+ }
374
+ return latest;
375
+ }
376
+ function buildInteractionConfig(options) {
377
+ const config = {};
378
+ const environment = readOptionalString(options.env);
379
+ const model = readOptionalString(options.model);
380
+ if (environment) {
381
+ config.environment = environment;
382
+ }
383
+ if (model) {
384
+ config.model = model;
385
+ }
386
+ return Object.keys(config).length ? config : undefined;
387
+ }
388
+ function buildProcessConfig(options) {
389
+ const config = {};
390
+ const model = readOptionalString(options.model);
391
+ const userMessage = readOptionalString(options.userMessage);
392
+ if (model) {
393
+ config.model = model;
394
+ }
395
+ if (userMessage) {
396
+ config.user_message = userMessage;
397
+ }
398
+ return Object.keys(config).length ? config : undefined;
399
+ }
400
+ function readProcessDefinition(file) {
401
+ const parsed = JSON.parse(readFile(file));
402
+ if (!isProcessDefinitionBody(parsed)) {
403
+ throw new Error(`Invalid process definition in ${file}`);
404
+ }
405
+ return parsed;
406
+ }
407
+ function parseJsonRecord(input, label) {
408
+ const parsed = JSON.parse(input);
409
+ if (!isRecord(parsed)) {
410
+ throw new Error(`${label} must be a JSON object`);
411
+ }
412
+ return parsed;
413
+ }
414
+ function readOptionalString(value) {
415
+ return typeof value === 'string' && value.length > 0 ? value : undefined;
416
+ }
417
+ function readStringList(value) {
418
+ const raw = readOptionalString(value);
419
+ if (!raw) {
420
+ return undefined;
421
+ }
422
+ const items = raw
423
+ .split(',')
424
+ .map((item) => item.trim())
425
+ .filter(Boolean);
426
+ return items.length ? items : undefined;
427
+ }
428
+ function readOptionalInteger(value) {
429
+ const raw = readOptionalString(value);
430
+ if (!raw) {
431
+ return undefined;
432
+ }
433
+ const parsed = Number.parseInt(raw, 10);
434
+ return Number.isFinite(parsed) ? parsed : undefined;
435
+ }
436
+ function readOptionalSeconds(value) {
437
+ const raw = readOptionalString(value);
438
+ if (!raw) {
439
+ return undefined;
440
+ }
441
+ const parsed = Number.parseFloat(raw);
442
+ if (!Number.isFinite(parsed) || parsed < 0) {
443
+ throw new Error('wait must be a non-negative number of seconds');
444
+ }
445
+ return parsed;
446
+ }
447
+ function readVisibility(value) {
448
+ const raw = readOptionalString(value);
449
+ if (!raw) {
450
+ return undefined;
451
+ }
452
+ if (raw !== 'project' && raw !== 'private') {
453
+ throw new Error('visibility must be project or private');
454
+ }
455
+ return raw;
456
+ }
457
+ function readProcessRunType(value) {
458
+ const raw = readOptionalString(value) ?? 'programmatic';
459
+ if (raw !== 'programmatic' && raw !== 'supervised') {
460
+ throw new Error('run-type must be programmatic or supervised');
461
+ }
462
+ return raw;
463
+ }
464
+ function readOptionalTaskStatus(value) {
465
+ const raw = readOptionalString(value);
466
+ if (!raw) {
467
+ return undefined;
468
+ }
469
+ if (raw !== 'pending' && raw !== 'in_progress' && raw !== 'completed' && raw !== 'cancelled') {
470
+ throw new Error('status must be pending, in_progress, completed, or cancelled');
471
+ }
472
+ return raw;
473
+ }
474
+ function readOptionalTaskSourceType(value) {
475
+ const raw = readOptionalString(value);
476
+ if (!raw) {
477
+ return undefined;
478
+ }
479
+ if (raw !== 'agent' && raw !== 'process') {
480
+ throw new Error('source-type must be agent or process');
481
+ }
482
+ return raw;
483
+ }
484
+ function isRecord(value) {
485
+ return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
486
+ }
487
+ function isProcessDefinitionBody(value) {
488
+ return (isRecord(value) &&
489
+ value.format_version === PROCESS_DEFINITION_FORMAT_VERSION &&
490
+ typeof value.process === 'string' &&
491
+ typeof value.initial === 'string' &&
492
+ isRecord(value.context) &&
493
+ isRecord(value.nodes));
494
+ }
495
+ function isProcessRun(run) {
496
+ return run.run_kind === 'process';
497
+ }
498
+ function printRunSummary(run) {
499
+ console.log(chalk.bold('AgentRun'));
500
+ console.log(` id: ${run.id}`);
501
+ console.log(` kind: ${run.run_kind}`);
502
+ console.log(` run_type: ${run.run_type}`);
503
+ console.log(` status: ${run.status}`);
504
+ console.log(` title: ${run.title ?? 'n/a'}`);
505
+ if (run.run_kind === 'agent') {
506
+ console.log(` interaction: ${run.interaction_name ?? run.interaction}`);
507
+ }
508
+ if (isProcessRun(run)) {
509
+ console.log(` process: ${run.process_definition_snapshot.process}`);
510
+ console.log(` current_node: ${run.process_state.current_node}`);
511
+ }
512
+ }
513
+ function printAgentMessage(message) {
514
+ const timestamp = message.timestamp ? new Date(message.timestamp).toISOString() : new Date().toISOString();
515
+ const type = message.type != null ? (AgentMessageType[message.type] ?? String(message.type)) : 'MESSAGE';
516
+ const body = typeof message.message === 'string' ? message.message : JSON.stringify(message.message, null, 2);
517
+ console.log(`${chalk.gray(timestamp)} ${chalk.cyan(type)} ${body ?? ''}`);
518
+ if (message.details) {
519
+ console.log(chalk.gray(JSON.stringify(message.details, null, 2)));
520
+ }
521
+ }
522
+ function printTasks(tasks) {
523
+ if (!tasks.length) {
524
+ console.log('No tasks found');
525
+ return;
526
+ }
527
+ console.log(chalk.bold('Tasks'));
528
+ for (const task of tasks) {
529
+ const source = `${task.source.type}:${task.source.run_id}`;
530
+ const assignee = task.assignee ? ` assignee=${task.assignee}` : '';
531
+ console.log(` ${task.id} ${task.status} ${task.title} (${source})${assignee}`);
532
+ }
533
+ }
534
+ function printCommandResult(result, options) {
535
+ const json = JSON.stringify(result, null, 2);
536
+ const outputFile = readOptionalString(options.output);
537
+ if (outputFile) {
538
+ writeFile(outputFile, json);
539
+ }
540
+ if (options.json || outputFile) {
541
+ if (!outputFile) {
542
+ console.log(json);
543
+ }
544
+ return;
545
+ }
546
+ if (isRecord(result) && typeof result.message === 'string') {
547
+ console.log(result.message);
548
+ return;
549
+ }
550
+ console.log(json);
551
+ }
552
+ function formatError(error) {
553
+ return error instanceof Error ? error.message : String(error);
554
+ }
555
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"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"}