@vertesia/cli 0.78.0-dev-28b447d → 0.78.0-dev.1

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 (161) hide show
  1. package/lib/agent/commands.d.ts +11 -0
  2. package/lib/agent/commands.d.ts.map +1 -0
  3. package/lib/agent/commands.js +173 -0
  4. package/lib/agent/commands.js.map +1 -0
  5. package/lib/agent/connect.d.ts +7 -0
  6. package/lib/agent/connect.d.ts.map +1 -0
  7. package/lib/agent/connect.js +68 -0
  8. package/lib/agent/connect.js.map +1 -0
  9. package/lib/agent/docker-credential.d.ts +2 -0
  10. package/lib/agent/docker-credential.d.ts.map +1 -0
  11. package/lib/agent/docker-credential.js +50 -0
  12. package/lib/agent/docker-credential.js.map +1 -0
  13. package/lib/agent/docker.d.ts +10 -0
  14. package/lib/agent/docker.d.ts.map +1 -0
  15. package/lib/agent/docker.js +93 -0
  16. package/lib/agent/docker.js.map +1 -0
  17. package/lib/agent/index.d.ts +3 -0
  18. package/lib/agent/index.d.ts.map +1 -0
  19. package/lib/agent/index.js +89 -0
  20. package/lib/agent/index.js.map +1 -0
  21. package/lib/agent/project.d.ts +58 -0
  22. package/lib/agent/project.d.ts.map +1 -0
  23. package/lib/agent/project.js +148 -0
  24. package/lib/agent/project.js.map +1 -0
  25. package/lib/agent/refresh.d.ts +6 -0
  26. package/lib/agent/refresh.d.ts.map +1 -0
  27. package/lib/agent/refresh.js +47 -0
  28. package/lib/agent/refresh.js.map +1 -0
  29. package/lib/agent/registry.d.ts +7 -0
  30. package/lib/agent/registry.d.ts.map +1 -0
  31. package/lib/agent/registry.js +47 -0
  32. package/lib/agent/registry.js.map +1 -0
  33. package/lib/agent/version.d.ts +2 -0
  34. package/lib/agent/version.d.ts.map +1 -0
  35. package/lib/agent/version.js +4 -0
  36. package/lib/agent/version.js.map +1 -0
  37. package/lib/client.d.ts +4 -0
  38. package/lib/client.d.ts.map +1 -0
  39. package/lib/client.js +22 -0
  40. package/lib/client.js.map +1 -0
  41. package/lib/codegen/CodeBuilder.d.ts +16 -0
  42. package/lib/codegen/CodeBuilder.d.ts.map +1 -0
  43. package/lib/codegen/CodeBuilder.js +115 -0
  44. package/lib/codegen/CodeBuilder.js.map +1 -0
  45. package/lib/codegen/InteractionVersion.d.ts +29 -0
  46. package/lib/codegen/InteractionVersion.d.ts.map +1 -0
  47. package/lib/codegen/InteractionVersion.js +94 -0
  48. package/lib/codegen/InteractionVersion.js.map +1 -0
  49. package/lib/codegen/index.d.ts +3 -0
  50. package/lib/codegen/index.d.ts.map +1 -0
  51. package/lib/codegen/index.js +30 -0
  52. package/lib/codegen/index.js.map +1 -0
  53. package/lib/codegen/template.d.ts +3 -0
  54. package/lib/codegen/template.d.ts.map +1 -0
  55. package/lib/codegen/template.js +28 -0
  56. package/lib/codegen/template.js.map +1 -0
  57. package/lib/codegen/utils.d.ts +2 -0
  58. package/lib/codegen/utils.d.ts.map +1 -0
  59. package/lib/codegen/utils.js +4 -0
  60. package/lib/codegen/utils.js.map +1 -0
  61. package/lib/datagen/index.d.ts +3 -0
  62. package/lib/datagen/index.d.ts.map +1 -0
  63. package/lib/datagen/index.js +80 -0
  64. package/lib/datagen/index.js.map +1 -0
  65. package/lib/envs/index.d.ts +3 -0
  66. package/lib/envs/index.d.ts.map +1 -0
  67. package/lib/envs/index.js +24 -0
  68. package/lib/envs/index.js.map +1 -0
  69. package/lib/index.d.ts +2 -0
  70. package/lib/index.d.ts.map +1 -0
  71. package/lib/index.js +177 -0
  72. package/lib/index.js.map +1 -0
  73. package/lib/interactions/index.d.ts +3 -0
  74. package/lib/interactions/index.d.ts.map +1 -0
  75. package/lib/interactions/index.js +37 -0
  76. package/lib/interactions/index.js.map +1 -0
  77. package/lib/memory/index.d.ts +3 -0
  78. package/lib/memory/index.d.ts.map +1 -0
  79. package/lib/memory/index.js +15 -0
  80. package/lib/memory/index.js.map +1 -0
  81. package/lib/objects/commands.d.ts +14 -0
  82. package/lib/objects/commands.d.ts.map +1 -0
  83. package/lib/objects/commands.js +240 -0
  84. package/lib/objects/commands.js.map +1 -0
  85. package/lib/objects/index.d.ts +3 -0
  86. package/lib/objects/index.d.ts.map +1 -0
  87. package/lib/objects/index.js +37 -0
  88. package/lib/objects/index.js.map +1 -0
  89. package/lib/package.d.ts +8 -0
  90. package/lib/package.d.ts.map +1 -0
  91. package/lib/package.js +63 -0
  92. package/lib/package.js.map +1 -0
  93. package/lib/profiles/commands.d.ts +20 -0
  94. package/lib/profiles/commands.d.ts.map +1 -0
  95. package/lib/profiles/commands.js +191 -0
  96. package/lib/profiles/commands.js.map +1 -0
  97. package/lib/profiles/index.d.ts +65 -0
  98. package/lib/profiles/index.d.ts.map +1 -0
  99. package/lib/profiles/index.js +324 -0
  100. package/lib/profiles/index.js.map +1 -0
  101. package/lib/profiles/server/cors.d.ts +3 -0
  102. package/lib/profiles/server/cors.d.ts.map +1 -0
  103. package/lib/profiles/server/cors.js +18 -0
  104. package/lib/profiles/server/cors.js.map +1 -0
  105. package/lib/profiles/server/index.d.ts +12 -0
  106. package/lib/profiles/server/index.d.ts.map +1 -0
  107. package/lib/profiles/server/index.js +134 -0
  108. package/lib/profiles/server/index.js.map +1 -0
  109. package/lib/profiles/server/server.d.ts +4 -0
  110. package/lib/profiles/server/server.d.ts.map +1 -0
  111. package/lib/profiles/server/server.js +32 -0
  112. package/lib/profiles/server/server.js.map +1 -0
  113. package/lib/projects/index.d.ts +3 -0
  114. package/lib/projects/index.d.ts.map +1 -0
  115. package/lib/projects/index.js +17 -0
  116. package/lib/projects/index.js.map +1 -0
  117. package/lib/run/executor.d.ts +22 -0
  118. package/lib/run/executor.d.ts.map +1 -0
  119. package/lib/run/executor.js +182 -0
  120. package/lib/run/executor.js.map +1 -0
  121. package/lib/run/index.d.ts +3 -0
  122. package/lib/run/index.d.ts.map +1 -0
  123. package/lib/run/index.js +192 -0
  124. package/lib/run/index.js.map +1 -0
  125. package/lib/runs/index.d.ts +3 -0
  126. package/lib/runs/index.d.ts.map +1 -0
  127. package/lib/runs/index.js +48 -0
  128. package/lib/runs/index.js.map +1 -0
  129. package/lib/utils/console.d.ts +42 -0
  130. package/lib/utils/console.d.ts.map +1 -0
  131. package/lib/utils/console.js +256 -0
  132. package/lib/utils/console.js.map +1 -0
  133. package/lib/utils/stdio.d.ts +7 -0
  134. package/lib/utils/stdio.d.ts.map +1 -0
  135. package/lib/utils/stdio.js +35 -0
  136. package/lib/utils/stdio.js.map +1 -0
  137. package/lib/workflows/commands.d.ts +14 -0
  138. package/lib/workflows/commands.d.ts.map +1 -0
  139. package/lib/workflows/commands.js +232 -0
  140. package/lib/workflows/commands.js.map +1 -0
  141. package/lib/workflows/index.d.ts +3 -0
  142. package/lib/workflows/index.d.ts.map +1 -0
  143. package/lib/workflows/index.js +117 -0
  144. package/lib/workflows/index.js.map +1 -0
  145. package/lib/workflows/json-loader.d.ts +3 -0
  146. package/lib/workflows/json-loader.d.ts.map +1 -0
  147. package/lib/workflows/json-loader.js +16 -0
  148. package/lib/workflows/json-loader.js.map +1 -0
  149. package/lib/workflows/streams.d.ts +2 -0
  150. package/lib/workflows/streams.d.ts.map +1 -0
  151. package/lib/workflows/streams.js +419 -0
  152. package/lib/workflows/streams.js.map +1 -0
  153. package/lib/workflows/ts-loader.d.ts +3 -0
  154. package/lib/workflows/ts-loader.d.ts.map +1 -0
  155. package/lib/workflows/ts-loader.js +94 -0
  156. package/lib/workflows/ts-loader.js.map +1 -0
  157. package/lib/workflows/validation.d.ts +6 -0
  158. package/lib/workflows/validation.d.ts.map +1 -0
  159. package/lib/workflows/validation.js +22 -0
  160. package/lib/workflows/validation.js.map +1 -0
  161. package/package.json +71 -71
@@ -0,0 +1,117 @@
1
+ import { createOrUpdateWorkflowDefinition, createOrUpdateWorkflowRule, createWorkflowRule, deleteWorkflowDefinition, deleteWorkflowRule, executeWorkflowByName, executeWorkflowRule, getWorkflowDefinition, getWorkflowRule, listWorkflowsDefinition, listWorkflowsRule, transpileWorkflow, } from "./commands.js";
2
+ import { streamRun } from "./streams.js";
3
+ export function registerWorkflowsCommand(program) {
4
+ const workflows = program.command("workflows");
5
+ const rules = workflows.command("rules");
6
+ rules
7
+ .command("create")
8
+ .description("Create a new workflow rule.")
9
+ .option("--name [name]", "The name of the workflow rule to create.")
10
+ .option("--on [event]", 'The event which trigger this rule. Format: "eventName[:objectType]" where objectType is optional.')
11
+ .option("--run [endpoint]", "The workflow to run.")
12
+ .action(async (options) => {
13
+ await createWorkflowRule(program, options);
14
+ });
15
+ rules
16
+ .command("get <ruleId>")
17
+ .description("Get a workflow rule by ID")
18
+ .option("-f, --file [file]", "The file to save the workflow rule to.")
19
+ .action(async (ruleId, options) => {
20
+ await getWorkflowRule(program, ruleId, options);
21
+ });
22
+ rules
23
+ .command("apply")
24
+ .description("Create or update a workflow rule using a file")
25
+ .option("-f, --file <file>", "The file containing the workflow rule to apply.")
26
+ .action(async (options) => {
27
+ await createOrUpdateWorkflowRule(program, options);
28
+ });
29
+ rules
30
+ .command("list")
31
+ .description("List all workflow rules")
32
+ .action(async (options) => {
33
+ await listWorkflowsRule(program, options);
34
+ });
35
+ rules
36
+ .command("execute <ruleId>")
37
+ .description("Execute a workflow rule")
38
+ .option("-o, --objectId [objectIds...]", "The object to execute the rule on.")
39
+ .option("--vars [vars]", "workflow vars as an inlined JSON string.")
40
+ .option("-f, --file [file]", "The file containing workflow execution payload.")
41
+ .action(async (workflowId, options) => {
42
+ await executeWorkflowRule(program, workflowId, options);
43
+ });
44
+ rules
45
+ .command("delete <ruleId>")
46
+ .description("Delete a workflow rule given its ID")
47
+ .action(async (ruleId, options) => {
48
+ await deleteWorkflowRule(program, ruleId, options);
49
+ });
50
+ workflows
51
+ .command("execute <workflowName>")
52
+ .description("Execute a workflow by name")
53
+ .option("-o, --objectId [objectIds...]", "Optional object to execute the workflow on.")
54
+ .option("-v, --vars [vars]", "The workflow vars as an inline JSON.")
55
+ .option("--queue [queue]", "The task queue name. Defaults to zeno-content", "zeno-content")
56
+ .option("-f, --file [file]", "A file containing workflow execution payload.")
57
+ .option("-s, --stream", "Stream the execution")
58
+ .option("-i, --interactive", "Enable interactive mode to send messages during workflow execution", false)
59
+ .option("--output [output]", "Output file for the workflow execution")
60
+ .action(async (workflowName, options) => {
61
+ // If interactive is true, make sure stream is also enabled
62
+ if (options.interactive) {
63
+ options.stream = true;
64
+ }
65
+ console.debug("Executing workflow", workflowName, "with options", options);
66
+ await executeWorkflowByName(program, workflowName, options);
67
+ });
68
+ const definitions = workflows.command("definitions");
69
+ workflows
70
+ .command("stream <workflowId> <runId>")
71
+ .description("Stream messages for an existing workflow run")
72
+ .option("--since <timestamp>", "Stream only messages after this timestamp")
73
+ .option("-i, --interactive", "Enable interactive mode to send messages to the workflow", false)
74
+ .action((workflowId, runId, options) => streamRun(workflowId, runId, program, options));
75
+ definitions
76
+ .command("transpile <files...>")
77
+ .description("Transpile a typescript workflow definition to JSON.")
78
+ .option("-o, --out [file]", "An output file or directory. When multiple files are specified it must be a directory. If not specified the transpiled files are printed to stdout.")
79
+ .action(async (files, options) => {
80
+ await transpileWorkflow(program, files, options);
81
+ });
82
+ definitions
83
+ .command("create")
84
+ .description("Create a new workflow definition.")
85
+ .option("-f, --file <file>", "The file containing the workflow definition.")
86
+ .action(async (options) => {
87
+ await createOrUpdateWorkflowDefinition(program, undefined, options);
88
+ });
89
+ definitions
90
+ .command("apply [workflowId]")
91
+ .description("Create or update a workflow definition using a file.")
92
+ .option("-f, --file <file>", "The file containing the workflow definition.")
93
+ .option("--skip-validation", "Skip the validation of the workflow definition.")
94
+ .action(async (workflowId, options) => {
95
+ await createOrUpdateWorkflowDefinition(program, workflowId, options);
96
+ });
97
+ definitions
98
+ .command("list")
99
+ .description("List all workflow definitions.")
100
+ .action(async (options) => {
101
+ await listWorkflowsDefinition(program, options);
102
+ });
103
+ definitions
104
+ .command("get <objectId>")
105
+ .description("Get a workflow definition given its ID.")
106
+ .option("-f, --file [file]", "The file to save the workflow definition to.")
107
+ .action(async (objectId, options) => {
108
+ await getWorkflowDefinition(program, objectId, options);
109
+ });
110
+ definitions
111
+ .command("delete <objectId>")
112
+ .description("Delete a workflow definition given its ID.")
113
+ .action(async (objectId, options) => {
114
+ await deleteWorkflowDefinition(program, objectId, options);
115
+ });
116
+ }
117
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workflows/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { DSLWorkflowSpec } from "@vertesia/common";
2
+ export declare function loadJSONWorkflowDefinition(file: string, skipValidation?: boolean): Promise<DSLWorkflowSpec>;
3
+ //# sourceMappingURL=json-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-loader.d.ts","sourceRoot":"","sources":["../../src/workflows/json-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAYnD,wBAAsB,0BAA0B,CAC5C,IAAI,EAAE,MAAM,EACZ,cAAc,GAAE,OAAe,GAChC,OAAO,CAAC,eAAe,CAAC,CAI1B"}
@@ -0,0 +1,16 @@
1
+ import { readFile } from "fs/promises";
2
+ import { ValidationError, validateWorkflow } from "./validation.js";
3
+ function parseJSON(content) {
4
+ try {
5
+ return JSON.parse(content);
6
+ }
7
+ catch (err) {
8
+ throw new ValidationError("Invalid JSON: " + err.message);
9
+ }
10
+ }
11
+ export async function loadJSONWorkflowDefinition(file, skipValidation = false) {
12
+ return readFile(file, "utf-8").then((content) => {
13
+ return skipValidation ? validateWorkflow(parseJSON(content)) : parseJSON(content);
14
+ });
15
+ }
16
+ //# sourceMappingURL=json-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-loader.js","sourceRoot":"","sources":["../../src/workflows/json-loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEpE,SAAS,SAAS,CAAC,OAAe;IAC9B,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAChB,MAAM,IAAI,eAAe,CAAC,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC5C,IAAY,EACZ,iBAA0B,KAAK;IAE/B,OAAO,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QAC5C,OAAO,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function streamRun(workflowId: string, runId: string, program: any, options?: Record<string, any>): Promise<void>;
2
+ //# sourceMappingURL=streams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../../src/workflows/streams.ts"],"names":[],"mappings":"AA6DA,wBAAsB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,iBAoSjH"}
@@ -0,0 +1,419 @@
1
+ import chalk from "chalk";
2
+ import { getClient } from "../client.js";
3
+ import boxen from "boxen";
4
+ import ora from "ora";
5
+ import gradient from "gradient-string";
6
+ import figures from "figures";
7
+ import logUpdate from "log-update";
8
+ import logSymbols from "log-symbols";
9
+ import * as readline from "readline";
10
+ // Define emoji icons for different message types
11
+ const typeIcons = {
12
+ init: figures.pointer,
13
+ system: figures.hamburger,
14
+ thought: figures.questionMarkPrefix,
15
+ plan: figures.arrowRight,
16
+ update: figures.arrowUp,
17
+ complete: figures.tick,
18
+ warning: figures.warning,
19
+ error: figures.cross,
20
+ };
21
+ // Enhanced color palette with gradients
22
+ const typeColors = {
23
+ init: gradient.pastel,
24
+ system: gradient.atlas,
25
+ thought: gradient.mind,
26
+ plan: gradient.passion,
27
+ update: gradient.cristal,
28
+ complete: gradient.summer,
29
+ warning: gradient.morning,
30
+ error: gradient.fruit,
31
+ heartbeat: chalk.gray,
32
+ };
33
+ // Define styles for boxen with proper types
34
+ const boxStyles = {
35
+ error: {
36
+ padding: 1,
37
+ margin: 1,
38
+ borderStyle: "round",
39
+ borderColor: "red",
40
+ backgroundColor: "#400",
41
+ },
42
+ warning: {
43
+ padding: 1,
44
+ margin: 1,
45
+ borderStyle: "round",
46
+ borderColor: "yellow",
47
+ backgroundColor: "#440",
48
+ },
49
+ complete: {
50
+ padding: 1,
51
+ margin: 1,
52
+ borderStyle: "round",
53
+ borderColor: "green",
54
+ backgroundColor: "#040",
55
+ },
56
+ };
57
+ export async function streamRun(workflowId, runId, program, options = {}) {
58
+ const client = getClient(program);
59
+ const since = options.since ? parseInt(options.since, 10) : undefined;
60
+ const interactive = options.interactive === true;
61
+ // Setup cleanup resources
62
+ let spinner = null;
63
+ let isTerminating = false;
64
+ let cleanupTimeouts = [];
65
+ let streamController = null;
66
+ // Signal handler function for proper cleanup - use a variable that can be redefined
67
+ let cleanupFn = () => {
68
+ isTerminating = true;
69
+ // Clean up spinner
70
+ if (spinner) {
71
+ spinner.stop();
72
+ spinner = null;
73
+ }
74
+ // Clean up any pending timeouts
75
+ for (const timeout of cleanupTimeouts) {
76
+ clearTimeout(timeout);
77
+ }
78
+ cleanupTimeouts = [];
79
+ // Clear any log update
80
+ logUpdate.clear();
81
+ // Abort any active streams
82
+ if (streamController) {
83
+ streamController.abort();
84
+ }
85
+ // If interactive mode was on, restore stdin to normal mode
86
+ if (interactive) {
87
+ process.stdin.setRawMode?.(false);
88
+ process.stdin.pause();
89
+ }
90
+ // Console message about termination
91
+ console.log(chalk.yellow("\nStream terminated by user (Ctrl+C)"));
92
+ // Ensure the process exits cleanly
93
+ process.exit(0);
94
+ };
95
+ // Set up signal handlers
96
+ const sigintHandler = () => cleanupFn();
97
+ process.on("SIGINT", sigintHandler);
98
+ process.on("SIGTERM", sigintHandler);
99
+ // Display run header
100
+ console.log("\n");
101
+ console.log(gradient.pastel.multiline("╔═════════════════════════════════════╗\n║ ║\n║ AGENT MESSAGE STREAMING ║\n║ ║\n╚═════════════════════════════════════╝"));
102
+ console.log(gradient.atlas(`Run ID: ${runId}\n`));
103
+ console.log(chalk.gray(`Voice Synthesis: Disabled\n`));
104
+ let lastHeartbeat = Date.now();
105
+ let heartbeatCount = 0;
106
+ spinner = ora("Waiting for messages...").start();
107
+ const onMessage = (message) => {
108
+ // Skip processing if we're terminating
109
+ if (isTerminating)
110
+ return;
111
+ try {
112
+ // Stop spinner when a message arrives
113
+ if (spinner)
114
+ spinner.stop();
115
+ // Check if message is completely empty or malformed (heartbeat)
116
+ if (!message || (message && !message.type && !message.message)) {
117
+ const now = Date.now();
118
+ heartbeatCount++;
119
+ // Only show heartbeat every 5 seconds or if more than 5 have accumulated
120
+ if (now - lastHeartbeat > 5000 || heartbeatCount >= 5) {
121
+ const heartbeatText = chalk.gray(`${logSymbols.info} ${new Date().toISOString()} [HEARTBEAT]: ${heartbeatCount} pings`);
122
+ logUpdate(heartbeatText);
123
+ lastHeartbeat = now;
124
+ heartbeatCount = 0;
125
+ // Reset line after brief pause
126
+ const timeout = setTimeout(() => {
127
+ if (isTerminating)
128
+ return;
129
+ logUpdate.clear();
130
+ spinner = ora("Waiting for messages...").start();
131
+ }, 1000);
132
+ cleanupTimeouts.push(timeout);
133
+ }
134
+ return;
135
+ }
136
+ // Clear any heartbeat displays
137
+ logUpdate.clear();
138
+ // Reset heartbeat count when we get a real message
139
+ heartbeatCount = 0;
140
+ // Safely format the timestamp
141
+ let timeString;
142
+ try {
143
+ timeString = message.timestamp ? new Date(message.timestamp).toISOString() : new Date().toISOString();
144
+ }
145
+ catch (err) {
146
+ console.warn(`Invalid timestamp in message: ${message.timestamp}`);
147
+ timeString = new Date().toISOString();
148
+ }
149
+ const time = chalk.gray(timeString);
150
+ // Handle undefined message type
151
+ if (!message.type) {
152
+ console.log(`${time} [HEARTBEAT]: ping`);
153
+ spinner = ora("Waiting for messages...").start();
154
+ return;
155
+ }
156
+ const messageType = message.type.toLowerCase();
157
+ const icon = typeIcons[messageType] || figures.bullet;
158
+ const colorGradient = typeColors[messageType] || gradient.rainbow;
159
+ const type = colorGradient(`${icon} ${message.type.toUpperCase()}`);
160
+ // Handle undefined message content
161
+ if (message.type && !message.message) {
162
+ console.log(`${time} [${type}]: <no content>`);
163
+ spinner = ora("Waiting for messages...").start();
164
+ return;
165
+ }
166
+ const content = formatMessageContent(message.message);
167
+ // Special message formatting based on type
168
+ if (messageType === "error" || messageType === "warning" || messageType === "complete") {
169
+ const boxStyle = boxStyles[messageType];
170
+ const formattedContent = `${time}\n[${type}]:\n\n${content}`;
171
+ console.log(boxen(formattedContent, boxStyle));
172
+ return Promise.resolve();
173
+ }
174
+ else {
175
+ console.log(`${time} [${type}]: ${content}`);
176
+ }
177
+ // Check if message details are long plan or complex data
178
+ if (message.details) {
179
+ // Special handling for plans - they can be very long
180
+ if (messageType === "plan" && typeof message.details === "object" && message.details.plan) {
181
+ console.log(gradient.passion("\n▸ Plan Summary"));
182
+ try {
183
+ const plan = Array.isArray(message.details.plan)
184
+ ? message.details.plan
185
+ : JSON.parse(message.details.plan);
186
+ plan.forEach((task, index) => {
187
+ console.log(chalk.bold.cyan(`\n${index + 1}. ${task.goal}`));
188
+ if (task.instructions && Array.isArray(task.instructions)) {
189
+ task.instructions.forEach((instruction) => {
190
+ console.log(` ${chalk.gray("•")} ${instruction}`);
191
+ });
192
+ }
193
+ });
194
+ console.log(""); // add spacing
195
+ }
196
+ catch (e) {
197
+ // If parsing fails, fall back to standard formatting
198
+ formatDetails(message.details);
199
+ }
200
+ }
201
+ else {
202
+ formatDetails(message.details);
203
+ }
204
+ }
205
+ // Restart spinner
206
+ if (!isTerminating) {
207
+ spinner = ora("Waiting for messages...").start();
208
+ }
209
+ }
210
+ catch (err) {
211
+ console.error("Error formatting message:", err);
212
+ console.log("Raw message:", JSON.stringify(message));
213
+ if (!isTerminating) {
214
+ spinner = ora("Waiting for messages...").start();
215
+ }
216
+ }
217
+ };
218
+ streamController = new AbortController();
219
+ // Setup for interactive mode if enabled
220
+ if (interactive) {
221
+ // Initialize readline interface
222
+ const rl = readline.createInterface({
223
+ input: process.stdin,
224
+ output: process.stdout,
225
+ prompt: gradient.passion("> "),
226
+ });
227
+ // Set up handler for user input
228
+ rl.on("line", async (input) => {
229
+ // Stop the spinner while processing input
230
+ if (spinner)
231
+ spinner.stop();
232
+ if (input.trim() === "") {
233
+ // Prompt again for empty input
234
+ rl.prompt();
235
+ return;
236
+ }
237
+ try {
238
+ console.log(gradient.atlas(`\nSending message to workflow...`));
239
+ // Send the user input to the workflow run
240
+ const signal = "userInput";
241
+ const payload = {
242
+ message: input,
243
+ };
244
+ await client.workflows.sendSignal(workflowId, runId, signal, payload);
245
+ console.log(gradient.mind(`Message sent successfully!\n`));
246
+ }
247
+ catch (err) {
248
+ console.error(chalk.red(`Error sending message: ${err}`));
249
+ }
250
+ // Restart spinner and prompt
251
+ if (!isTerminating) {
252
+ spinner = ora("Waiting for messages...").start();
253
+ rl.prompt();
254
+ }
255
+ });
256
+ // Add cleanup for readline interface
257
+ const origCleanup = cleanupFn;
258
+ cleanupFn = () => {
259
+ rl.close();
260
+ origCleanup(); // This includes process.exit(0), so anything after won't execute
261
+ // Never reached due to process.exit in origCleanup
262
+ process.exit(0);
263
+ };
264
+ // Show initial instructions
265
+ console.log(gradient.passion("\nInteractive mode enabled. Type messages and press Enter to send to the workflow."));
266
+ console.log(gradient.cristal("Press Ctrl+C to exit.\n"));
267
+ // Start the prompt
268
+ rl.prompt();
269
+ }
270
+ try {
271
+ // Pass abort signal to streamMessages if the API supports it
272
+ // Note: You might need to modify the client implementation to accept this parameter
273
+ await client.workflows.streamMessages(workflowId, runId, onMessage, since);
274
+ if (!isTerminating) {
275
+ if (spinner)
276
+ spinner.stop();
277
+ console.log(gradient.summer.multiline("\n╔═════════════════════════════════════╗\n║ ║\n║ STREAMING COMPLETE ║\n║ ║\n╚═════════════════════════════════════╝\n"));
278
+ // Close readline if interactive mode was on
279
+ if (interactive) {
280
+ const rl = readline.createInterface({
281
+ input: process.stdin,
282
+ output: process.stdout,
283
+ });
284
+ rl.close();
285
+ }
286
+ }
287
+ }
288
+ catch (err) {
289
+ if (!isTerminating) {
290
+ if (spinner)
291
+ spinner.stop();
292
+ console.error(boxen(gradient.fruit("ERROR STREAMING MESSAGES") + "\n\n" + err, {
293
+ padding: 1,
294
+ margin: 1,
295
+ borderStyle: "round",
296
+ borderColor: "red",
297
+ backgroundColor: "#400",
298
+ }));
299
+ }
300
+ }
301
+ finally {
302
+ // Always clean up signal handlers when done
303
+ process.off("SIGINT", sigintHandler);
304
+ process.off("SIGTERM", sigintHandler);
305
+ }
306
+ }
307
+ // Helper function to format message content
308
+ function formatMessageContent(content) {
309
+ if (typeof content === "string") {
310
+ // Replace escaped newlines with actual newlines
311
+ return content.replace(/\\n/g, "\n");
312
+ }
313
+ else {
314
+ // For objects, use pretty-printing with actual newlines
315
+ return JSON.stringify(content, null, 2);
316
+ }
317
+ }
318
+ // Helper function to format details in a cleaner way
319
+ function formatDetails(details) {
320
+ // Check if details are empty or minimal
321
+ const detailsStr = typeof details === "string" ? details : JSON.stringify(details);
322
+ if (!detailsStr || detailsStr === "{}" || detailsStr === '""') {
323
+ return;
324
+ }
325
+ console.log("");
326
+ console.log(gradient.atlas("▸ Details"));
327
+ // Create a cleaner display for object details
328
+ if (typeof details === "object" && details !== null) {
329
+ try {
330
+ // For simple objects with small values, display as simple key-value pairs
331
+ if (!Array.isArray(details) && Object.keys(details).length < 10) {
332
+ const longestKey = Math.max(...Object.keys(details).map((k) => k.length));
333
+ const padding = longestKey + 2;
334
+ Object.entries(details).forEach(([key, value]) => {
335
+ let displayValue;
336
+ let paddedKey = key.padEnd(padding);
337
+ // Format the value based on its type
338
+ if (typeof value === "object" && value !== null) {
339
+ if (JSON.stringify(value).length < 80) {
340
+ displayValue = JSON.stringify(value);
341
+ }
342
+ else {
343
+ // For longer objects, format with indentation
344
+ displayValue =
345
+ "\n" +
346
+ formatColorizedJSON(value)
347
+ .split("\n")
348
+ .map((line) => " " + line)
349
+ .join("\n");
350
+ }
351
+ }
352
+ else {
353
+ displayValue = String(value);
354
+ }
355
+ // Colorize values based on type
356
+ if (typeof value === "string") {
357
+ displayValue = chalk.green(displayValue);
358
+ }
359
+ else if (typeof value === "number") {
360
+ displayValue = chalk.yellow(displayValue);
361
+ }
362
+ else if (typeof value === "boolean") {
363
+ displayValue = chalk.magenta(displayValue);
364
+ }
365
+ else if (value === null) {
366
+ displayValue = chalk.red("null");
367
+ }
368
+ console.log(`${chalk.cyan(paddedKey)}: ${displayValue}`);
369
+ });
370
+ }
371
+ else if (Array.isArray(details)) {
372
+ // For arrays with simple values, show in a compact form
373
+ if (details.length > 0 && typeof details[0] !== "object") {
374
+ console.log(chalk.cyan("["));
375
+ details.forEach((item, i) => {
376
+ const displayValue = typeof item === "string"
377
+ ? chalk.green(`"${item}"`)
378
+ : typeof item === "number"
379
+ ? chalk.yellow(item)
380
+ : typeof item === "boolean"
381
+ ? chalk.magenta(item)
382
+ : item;
383
+ console.log(` ${displayValue}${i < details.length - 1 ? "," : ""}`);
384
+ });
385
+ console.log(chalk.cyan("]"));
386
+ }
387
+ else {
388
+ // For more complex arrays, use the colorized JSON
389
+ console.log(formatColorizedJSON(details));
390
+ }
391
+ }
392
+ else {
393
+ // For complex objects, fall back to pretty-printed JSON
394
+ console.log(formatColorizedJSON(details));
395
+ }
396
+ }
397
+ catch (err) {
398
+ // Fall back to colorized JSON if formatting fails
399
+ console.log(formatColorizedJSON(details));
400
+ }
401
+ }
402
+ else {
403
+ // For non-objects, just display the value
404
+ console.log(detailsStr);
405
+ }
406
+ console.log("");
407
+ }
408
+ // Helper function to format JSON with colors
409
+ function formatColorizedJSON(obj) {
410
+ const jsonString = JSON.stringify(obj, null, 2);
411
+ // Colorize different parts of the JSON
412
+ return jsonString
413
+ .replace(/"([^"]+)":/g, (_, key) => chalk.cyan(`"${key}":`))
414
+ .replace(/: "([^"]+)"/g, (_, value) => `: ${chalk.green(`"${value}"`)}`)
415
+ .replace(/: (\d+)/g, (_, value) => `: ${chalk.yellow(value)}`)
416
+ .replace(/: (true|false)/g, (_, value) => `: ${chalk.magenta(value)}`)
417
+ .replace(/: null/g, `: ${chalk.red("null")}`);
418
+ }
419
+ //# sourceMappingURL=streams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streams.js","sourceRoot":"","sources":["../../src/workflows/streams.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { DSLWorkflowSpec } from "@vertesia/common";
2
+ export declare function loadTsWorkflowDefinition(file: string, skipValidation?: boolean): Promise<DSLWorkflowSpec>;
3
+ //# sourceMappingURL=ts-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-loader.d.ts","sourceRoot":"","sources":["../../src/workflows/ts-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAmEnD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,GAAE,OAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CA+BhH"}