0pflow 0.1.0-dev.00aaa03

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 (197) hide show
  1. package/dist/__tests__/agent-parser.test.d.ts +2 -0
  2. package/dist/__tests__/agent-parser.test.d.ts.map +1 -0
  3. package/dist/__tests__/agent-parser.test.js +64 -0
  4. package/dist/__tests__/agent-parser.test.js.map +1 -0
  5. package/dist/__tests__/agent.e2e.test.d.ts +2 -0
  6. package/dist/__tests__/agent.e2e.test.d.ts.map +1 -0
  7. package/dist/__tests__/agent.e2e.test.js +90 -0
  8. package/dist/__tests__/agent.e2e.test.js.map +1 -0
  9. package/dist/__tests__/agent.test.d.ts +2 -0
  10. package/dist/__tests__/agent.test.d.ts.map +1 -0
  11. package/dist/__tests__/agent.test.js +30 -0
  12. package/dist/__tests__/agent.test.js.map +1 -0
  13. package/dist/__tests__/context.test.d.ts +2 -0
  14. package/dist/__tests__/context.test.d.ts.map +1 -0
  15. package/dist/__tests__/context.test.js +53 -0
  16. package/dist/__tests__/context.test.js.map +1 -0
  17. package/dist/__tests__/dbos.test.d.ts +2 -0
  18. package/dist/__tests__/dbos.test.d.ts.map +1 -0
  19. package/dist/__tests__/dbos.test.js +35 -0
  20. package/dist/__tests__/dbos.test.js.map +1 -0
  21. package/dist/__tests__/factory.test.d.ts +2 -0
  22. package/dist/__tests__/factory.test.d.ts.map +1 -0
  23. package/dist/__tests__/factory.test.js +126 -0
  24. package/dist/__tests__/factory.test.js.map +1 -0
  25. package/dist/__tests__/integration.e2e.test.d.ts +2 -0
  26. package/dist/__tests__/integration.e2e.test.d.ts.map +1 -0
  27. package/dist/__tests__/integration.e2e.test.js +127 -0
  28. package/dist/__tests__/integration.e2e.test.js.map +1 -0
  29. package/dist/__tests__/integration.test.d.ts +2 -0
  30. package/dist/__tests__/integration.test.d.ts.map +1 -0
  31. package/dist/__tests__/integration.test.js +103 -0
  32. package/dist/__tests__/integration.test.js.map +1 -0
  33. package/dist/__tests__/model-config.test.d.ts +2 -0
  34. package/dist/__tests__/model-config.test.d.ts.map +1 -0
  35. package/dist/__tests__/model-config.test.js +48 -0
  36. package/dist/__tests__/model-config.test.js.map +1 -0
  37. package/dist/__tests__/node-registry.test.d.ts +2 -0
  38. package/dist/__tests__/node-registry.test.d.ts.map +1 -0
  39. package/dist/__tests__/node-registry.test.js +63 -0
  40. package/dist/__tests__/node-registry.test.js.map +1 -0
  41. package/dist/__tests__/node.test.d.ts +2 -0
  42. package/dist/__tests__/node.test.d.ts.map +1 -0
  43. package/dist/__tests__/node.test.js +48 -0
  44. package/dist/__tests__/node.test.js.map +1 -0
  45. package/dist/__tests__/registry.test.d.ts +2 -0
  46. package/dist/__tests__/registry.test.d.ts.map +1 -0
  47. package/dist/__tests__/registry.test.js +62 -0
  48. package/dist/__tests__/registry.test.js.map +1 -0
  49. package/dist/__tests__/web-tool.test.d.ts +2 -0
  50. package/dist/__tests__/web-tool.test.d.ts.map +1 -0
  51. package/dist/__tests__/web-tool.test.js +99 -0
  52. package/dist/__tests__/web-tool.test.js.map +1 -0
  53. package/dist/__tests__/workflow.test.d.ts +2 -0
  54. package/dist/__tests__/workflow.test.d.ts.map +1 -0
  55. package/dist/__tests__/workflow.test.js +49 -0
  56. package/dist/__tests__/workflow.test.js.map +1 -0
  57. package/dist/agent.d.ts +46 -0
  58. package/dist/agent.d.ts.map +1 -0
  59. package/dist/agent.js +75 -0
  60. package/dist/agent.js.map +1 -0
  61. package/dist/cli/__tests__/discovery.test.d.ts +2 -0
  62. package/dist/cli/__tests__/discovery.test.d.ts.map +1 -0
  63. package/dist/cli/__tests__/discovery.test.js +26 -0
  64. package/dist/cli/__tests__/discovery.test.js.map +1 -0
  65. package/dist/cli/__tests__/env.test.d.ts +2 -0
  66. package/dist/cli/__tests__/env.test.d.ts.map +1 -0
  67. package/dist/cli/__tests__/env.test.js +32 -0
  68. package/dist/cli/__tests__/env.test.js.map +1 -0
  69. package/dist/cli/__tests__/runs.test.d.ts +2 -0
  70. package/dist/cli/__tests__/runs.test.d.ts.map +1 -0
  71. package/dist/cli/__tests__/runs.test.js +46 -0
  72. package/dist/cli/__tests__/runs.test.js.map +1 -0
  73. package/dist/cli/app.d.ts +6 -0
  74. package/dist/cli/app.d.ts.map +1 -0
  75. package/dist/cli/app.js +21 -0
  76. package/dist/cli/app.js.map +1 -0
  77. package/dist/cli/discovery.d.ts +24 -0
  78. package/dist/cli/discovery.d.ts.map +1 -0
  79. package/dist/cli/discovery.js +88 -0
  80. package/dist/cli/discovery.js.map +1 -0
  81. package/dist/cli/env.d.ts +15 -0
  82. package/dist/cli/env.d.ts.map +1 -0
  83. package/dist/cli/env.js +54 -0
  84. package/dist/cli/env.js.map +1 -0
  85. package/dist/cli/index.d.ts +3 -0
  86. package/dist/cli/index.d.ts.map +1 -0
  87. package/dist/cli/index.js +423 -0
  88. package/dist/cli/index.js.map +1 -0
  89. package/dist/cli/install.d.ts +54 -0
  90. package/dist/cli/install.d.ts.map +1 -0
  91. package/dist/cli/install.js +217 -0
  92. package/dist/cli/install.js.map +1 -0
  93. package/dist/cli/mcp/config.d.ts +5 -0
  94. package/dist/cli/mcp/config.d.ts.map +1 -0
  95. package/dist/cli/mcp/config.js +14 -0
  96. package/dist/cli/mcp/config.js.map +1 -0
  97. package/dist/cli/mcp/lib/templates.d.ts +12 -0
  98. package/dist/cli/mcp/lib/templates.d.ts.map +1 -0
  99. package/dist/cli/mcp/lib/templates.js +77 -0
  100. package/dist/cli/mcp/lib/templates.js.map +1 -0
  101. package/dist/cli/mcp/server.d.ts +5 -0
  102. package/dist/cli/mcp/server.d.ts.map +1 -0
  103. package/dist/cli/mcp/server.js +15 -0
  104. package/dist/cli/mcp/server.js.map +1 -0
  105. package/dist/cli/mcp/serverInfo.d.ts +7 -0
  106. package/dist/cli/mcp/serverInfo.d.ts.map +1 -0
  107. package/dist/cli/mcp/serverInfo.js +7 -0
  108. package/dist/cli/mcp/serverInfo.js.map +1 -0
  109. package/dist/cli/mcp/tools/createApp.d.ts +15 -0
  110. package/dist/cli/mcp/tools/createApp.d.ts.map +1 -0
  111. package/dist/cli/mcp/tools/createApp.js +81 -0
  112. package/dist/cli/mcp/tools/createApp.js.map +1 -0
  113. package/dist/cli/mcp/tools/createDatabase.d.ts +14 -0
  114. package/dist/cli/mcp/tools/createDatabase.d.ts.map +1 -0
  115. package/dist/cli/mcp/tools/createDatabase.js +66 -0
  116. package/dist/cli/mcp/tools/createDatabase.js.map +1 -0
  117. package/dist/cli/mcp/tools/index.d.ts +24 -0
  118. package/dist/cli/mcp/tools/index.d.ts.map +1 -0
  119. package/dist/cli/mcp/tools/index.js +11 -0
  120. package/dist/cli/mcp/tools/index.js.map +1 -0
  121. package/dist/cli/mcp/tools/setupAppSchema.d.ts +17 -0
  122. package/dist/cli/mcp/tools/setupAppSchema.d.ts.map +1 -0
  123. package/dist/cli/mcp/tools/setupAppSchema.js +157 -0
  124. package/dist/cli/mcp/tools/setupAppSchema.js.map +1 -0
  125. package/dist/cli/mcp/types.d.ts +3 -0
  126. package/dist/cli/mcp/types.d.ts.map +1 -0
  127. package/dist/cli/mcp/types.js +2 -0
  128. package/dist/cli/mcp/types.js.map +1 -0
  129. package/dist/cli/runs.d.ts +28 -0
  130. package/dist/cli/runs.d.ts.map +1 -0
  131. package/dist/cli/runs.js +70 -0
  132. package/dist/cli/runs.js.map +1 -0
  133. package/dist/cli/trace.d.ts +31 -0
  134. package/dist/cli/trace.d.ts.map +1 -0
  135. package/dist/cli/trace.js +264 -0
  136. package/dist/cli/trace.js.map +1 -0
  137. package/dist/context.d.ts +13 -0
  138. package/dist/context.d.ts.map +1 -0
  139. package/dist/context.js +25 -0
  140. package/dist/context.js.map +1 -0
  141. package/dist/dbos.d.ts +15 -0
  142. package/dist/dbos.d.ts.map +1 -0
  143. package/dist/dbos.js +27 -0
  144. package/dist/dbos.js.map +1 -0
  145. package/dist/factory.d.ts +6 -0
  146. package/dist/factory.d.ts.map +1 -0
  147. package/dist/factory.js +78 -0
  148. package/dist/factory.js.map +1 -0
  149. package/dist/index.d.ts +20 -0
  150. package/dist/index.d.ts.map +1 -0
  151. package/dist/index.js +18 -0
  152. package/dist/index.js.map +1 -0
  153. package/dist/node.d.ts +19 -0
  154. package/dist/node.d.ts.map +1 -0
  155. package/dist/node.js +16 -0
  156. package/dist/node.js.map +1 -0
  157. package/dist/nodes/agent/executor.d.ts +70 -0
  158. package/dist/nodes/agent/executor.d.ts.map +1 -0
  159. package/dist/nodes/agent/executor.js +230 -0
  160. package/dist/nodes/agent/executor.js.map +1 -0
  161. package/dist/nodes/agent/index.d.ts +7 -0
  162. package/dist/nodes/agent/index.d.ts.map +1 -0
  163. package/dist/nodes/agent/index.js +5 -0
  164. package/dist/nodes/agent/index.js.map +1 -0
  165. package/dist/nodes/agent/model-config.d.ts +42 -0
  166. package/dist/nodes/agent/model-config.d.ts.map +1 -0
  167. package/dist/nodes/agent/model-config.js +58 -0
  168. package/dist/nodes/agent/model-config.js.map +1 -0
  169. package/dist/nodes/agent/parser.d.ts +22 -0
  170. package/dist/nodes/agent/parser.d.ts.map +1 -0
  171. package/dist/nodes/agent/parser.js +42 -0
  172. package/dist/nodes/agent/parser.js.map +1 -0
  173. package/dist/nodes/builtin/index.d.ts +9 -0
  174. package/dist/nodes/builtin/index.d.ts.map +1 -0
  175. package/dist/nodes/builtin/index.js +10 -0
  176. package/dist/nodes/builtin/index.js.map +1 -0
  177. package/dist/nodes/builtin/web.d.ts +25 -0
  178. package/dist/nodes/builtin/web.d.ts.map +1 -0
  179. package/dist/nodes/builtin/web.js +86 -0
  180. package/dist/nodes/builtin/web.js.map +1 -0
  181. package/dist/nodes/registry.d.ts +32 -0
  182. package/dist/nodes/registry.d.ts.map +1 -0
  183. package/dist/nodes/registry.js +58 -0
  184. package/dist/nodes/registry.js.map +1 -0
  185. package/dist/registry.d.ts +31 -0
  186. package/dist/registry.d.ts.map +1 -0
  187. package/dist/registry.js +44 -0
  188. package/dist/registry.js.map +1 -0
  189. package/dist/types.d.ts +63 -0
  190. package/dist/types.d.ts.map +1 -0
  191. package/dist/types.js +2 -0
  192. package/dist/types.js.map +1 -0
  193. package/dist/workflow.d.ts +26 -0
  194. package/dist/workflow.d.ts.map +1 -0
  195. package/dist/workflow.js +50 -0
  196. package/dist/workflow.js.map +1 -0
  197. package/package.json +52 -0
@@ -0,0 +1,423 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from "commander";
3
+ import pc from "picocolors";
4
+ import Table from "cli-table3";
5
+ import { create0pflow } from "../index.js";
6
+ import { discoverWorkflows, discoverNodes } from "./discovery.js";
7
+ import { resolveEnv } from "./env.js";
8
+ import { listRuns, getRun } from "./runs.js";
9
+ import { getTrace, printTrace } from "./trace.js";
10
+ import { getAppName } from "./app.js";
11
+ import { startMcpServer } from "./mcp/server.js";
12
+ import { runInstall, runUninstall } from "./install.js";
13
+ function formatStatus(status) {
14
+ switch (status) {
15
+ case "SUCCESS":
16
+ return pc.green(status);
17
+ case "ERROR":
18
+ return pc.red(status);
19
+ case "PENDING":
20
+ return pc.yellow(status);
21
+ default:
22
+ return status;
23
+ }
24
+ }
25
+ function formatDate(timestamp) {
26
+ // DBOS stores timestamps as bigint strings in milliseconds
27
+ const ms = typeof timestamp === "string" ? parseInt(timestamp, 10) :
28
+ typeof timestamp === "number" ? timestamp :
29
+ timestamp.getTime();
30
+ return new Date(ms).toLocaleString();
31
+ }
32
+ function formatOutput(output) {
33
+ // DBOS stores output as serialized JSON with superjson wrapper
34
+ // e.g. '{"json":{...},"__dbos_serializer":"superjson"}'
35
+ try {
36
+ const parsed = typeof output === "string" ? JSON.parse(output) : output;
37
+ if (parsed && typeof parsed === "object" && "__dbos_serializer" in parsed && "json" in parsed) {
38
+ return JSON.stringify(parsed.json, null, 2);
39
+ }
40
+ return JSON.stringify(parsed, null, 2);
41
+ }
42
+ catch {
43
+ return String(output);
44
+ }
45
+ }
46
+ const program = new Command();
47
+ program
48
+ .name("0pflow")
49
+ .description("CLI for 0pflow workflow engine")
50
+ .version("0.1.0");
51
+ // ============ Workflow commands ============
52
+ const workflow = program.command("workflow").description("Workflow commands");
53
+ workflow
54
+ .command("list")
55
+ .description("List all available workflows")
56
+ .option("--json", "Output as JSON")
57
+ .action(async (options) => {
58
+ try {
59
+ const { workflows, warnings } = await discoverWorkflows(process.cwd());
60
+ // Always show warnings on stderr (doesn't pollute stdout for JSON parsing)
61
+ for (const warning of warnings) {
62
+ console.error(pc.yellow(`Warning: ${warning}`));
63
+ }
64
+ if (workflows.length === 0) {
65
+ if (options.json) {
66
+ console.log("[]");
67
+ }
68
+ else {
69
+ console.log(pc.yellow("No workflows found in generated/workflows/"));
70
+ }
71
+ return;
72
+ }
73
+ if (options.json) {
74
+ const output = workflows.map(w => ({
75
+ name: w.name,
76
+ version: w.version,
77
+ }));
78
+ console.log(JSON.stringify(output, null, 2));
79
+ }
80
+ else {
81
+ console.log(pc.bold("\nAvailable workflows:\n"));
82
+ for (const w of workflows) {
83
+ const version = w.version ? ` (v${w.version})` : "";
84
+ console.log(` ${pc.cyan(w.name)}${pc.dim(version)}`);
85
+ }
86
+ console.log();
87
+ }
88
+ }
89
+ catch (err) {
90
+ console.error(pc.red(`Error: ${err instanceof Error ? err.message : err}`));
91
+ process.exit(1);
92
+ }
93
+ });
94
+ workflow
95
+ .command("run <name>")
96
+ .description("Run a workflow")
97
+ .option("-i, --input <json>", "JSON input for the workflow", "{}")
98
+ .option("--json", "Output result as JSON")
99
+ .action(async (workflowName, options) => {
100
+ try {
101
+ // Load environment (all .env vars into process.env)
102
+ resolveEnv();
103
+ // Discover workflows
104
+ const { workflows, warnings } = await discoverWorkflows(process.cwd());
105
+ // Always show warnings on stderr
106
+ for (const warning of warnings) {
107
+ console.error(pc.yellow(`Warning: ${warning}`));
108
+ }
109
+ const wf = workflows.find(w => w.name === workflowName);
110
+ if (!wf) {
111
+ console.error(pc.red(`Workflow "${workflowName}" not found`));
112
+ console.log(pc.dim(`Available: ${workflows.map(w => w.name).join(", ")}`));
113
+ process.exit(1);
114
+ }
115
+ // Parse input JSON
116
+ let rawInput;
117
+ try {
118
+ rawInput = JSON.parse(options.input);
119
+ }
120
+ catch {
121
+ console.error(pc.red("Invalid JSON input"));
122
+ process.exit(1);
123
+ }
124
+ // Validate input against workflow schema
125
+ const validation = wf.inputSchema.safeParse(rawInput);
126
+ if (!validation.success) {
127
+ console.error(pc.red("Invalid workflow input:"));
128
+ for (const issue of validation.error.issues) {
129
+ const path = issue.path.length > 0 ? issue.path.join(".") : "(root)";
130
+ console.error(pc.red(` ${path}: ${issue.message}`));
131
+ }
132
+ process.exit(1);
133
+ }
134
+ const inputs = validation.data;
135
+ // Discover user-defined nodes
136
+ const { nodes, warnings: nodeWarnings } = await discoverNodes(process.cwd());
137
+ // Show node warnings on stderr
138
+ for (const warning of nodeWarnings) {
139
+ console.error(pc.yellow(`Warning: ${warning}`));
140
+ }
141
+ // Build workflow registry from all discovered workflows
142
+ const workflowRegistry = Object.fromEntries(workflows.map(w => [w.name, w]));
143
+ // Create 0pflow instance and run
144
+ if (!options.json) {
145
+ console.log(pc.dim(`Running ${workflowName}...`));
146
+ }
147
+ const pflow = await create0pflow({
148
+ databaseUrl: process.env.DATABASE_URL,
149
+ appName: getAppName(),
150
+ workflows: workflowRegistry,
151
+ nodes,
152
+ });
153
+ try {
154
+ const result = await pflow.triggerWorkflow(wf.name, inputs);
155
+ if (options.json) {
156
+ console.log(JSON.stringify(result, null, 2));
157
+ }
158
+ else {
159
+ console.log(pc.green("\nResult:"));
160
+ console.log(JSON.stringify(result, null, 2));
161
+ }
162
+ }
163
+ finally {
164
+ await pflow.shutdown();
165
+ }
166
+ }
167
+ catch (err) {
168
+ console.error(pc.red(`Error: ${err instanceof Error ? err.message : err}`));
169
+ process.exit(1);
170
+ }
171
+ });
172
+ // ============ Node commands ============
173
+ const node = program.command("node").description("Node commands");
174
+ node
175
+ .command("list")
176
+ .description("List all available nodes")
177
+ .option("--json", "Output as JSON")
178
+ .action(async (options) => {
179
+ try {
180
+ const { nodes, warnings } = await discoverNodes(process.cwd());
181
+ // Always show warnings on stderr
182
+ for (const warning of warnings) {
183
+ console.error(pc.yellow(`Warning: ${warning}`));
184
+ }
185
+ const nodeNames = Object.keys(nodes);
186
+ if (nodeNames.length === 0) {
187
+ if (options.json) {
188
+ console.log("[]");
189
+ }
190
+ else {
191
+ console.log(pc.yellow("No nodes found in src/nodes/"));
192
+ }
193
+ return;
194
+ }
195
+ if (options.json) {
196
+ const output = nodeNames.map(name => ({
197
+ name,
198
+ description: nodes[name].description,
199
+ }));
200
+ console.log(JSON.stringify(output, null, 2));
201
+ }
202
+ else {
203
+ console.log(pc.bold("\nAvailable nodes:\n"));
204
+ for (const name of nodeNames) {
205
+ const desc = nodes[name].description;
206
+ console.log(` ${pc.cyan(name)}${desc ? pc.dim(` - ${desc}`) : ""}`);
207
+ }
208
+ console.log();
209
+ }
210
+ }
211
+ catch (err) {
212
+ console.error(pc.red(`Error: ${err instanceof Error ? err.message : err}`));
213
+ process.exit(1);
214
+ }
215
+ });
216
+ node
217
+ .command("run <name>")
218
+ .description("Run a node (wrapped in workflow for durability)")
219
+ .option("-i, --input <json>", "JSON input for the node", "{}")
220
+ .option("--json", "Output result as JSON")
221
+ .action(async (nodeName, options) => {
222
+ try {
223
+ // Load environment
224
+ resolveEnv();
225
+ // Discover nodes
226
+ const { nodes, warnings } = await discoverNodes(process.cwd());
227
+ // Always show warnings on stderr
228
+ for (const warning of warnings) {
229
+ console.error(pc.yellow(`Warning: ${warning}`));
230
+ }
231
+ const nodeExecutable = nodes[nodeName];
232
+ if (!nodeExecutable) {
233
+ console.error(pc.red(`Node "${nodeName}" not found`));
234
+ const availableNodes = Object.keys(nodes);
235
+ if (availableNodes.length > 0) {
236
+ console.log(pc.dim(`Available: ${availableNodes.join(", ")}`));
237
+ }
238
+ process.exit(1);
239
+ }
240
+ // Parse input JSON
241
+ let rawInput;
242
+ try {
243
+ rawInput = JSON.parse(options.input);
244
+ }
245
+ catch {
246
+ console.error(pc.red("Invalid JSON input"));
247
+ process.exit(1);
248
+ }
249
+ // Validate input against node schema
250
+ const validation = nodeExecutable.inputSchema.safeParse(rawInput);
251
+ if (!validation.success) {
252
+ console.error(pc.red("Invalid node input:"));
253
+ for (const issue of validation.error.issues) {
254
+ const path = issue.path.length > 0 ? issue.path.join(".") : "(root)";
255
+ console.error(pc.red(` ${path}: ${issue.message}`));
256
+ }
257
+ process.exit(1);
258
+ }
259
+ const inputs = validation.data;
260
+ // Create 0pflow instance
261
+ if (!options.json) {
262
+ console.log(pc.dim(`Running node ${nodeName}...`));
263
+ }
264
+ const pflow = await create0pflow({
265
+ databaseUrl: process.env.DATABASE_URL,
266
+ appName: getAppName(),
267
+ nodes,
268
+ });
269
+ try {
270
+ const result = await pflow.triggerNode(nodeName, inputs);
271
+ if (options.json) {
272
+ console.log(JSON.stringify(result, null, 2));
273
+ }
274
+ else {
275
+ console.log(pc.green("\nResult:"));
276
+ console.log(JSON.stringify(result, null, 2));
277
+ }
278
+ }
279
+ finally {
280
+ await pflow.shutdown();
281
+ }
282
+ }
283
+ catch (err) {
284
+ console.error(pc.red(`Error: ${err instanceof Error ? err.message : err}`));
285
+ process.exit(1);
286
+ }
287
+ });
288
+ // ============ History command (unchanged) ============
289
+ program
290
+ .command("history [run-id]")
291
+ .description("List past workflow executions or get details of a specific run")
292
+ .option("-n, --limit <number>", "Number of runs to show", "20")
293
+ .option("-w, --workflow <name>", "Filter by workflow name")
294
+ .option("--json", "Output as JSON")
295
+ .action(async (runId, options) => {
296
+ try {
297
+ resolveEnv();
298
+ const databaseUrl = process.env.DATABASE_URL;
299
+ if (runId) {
300
+ // Get specific run (supports full ID or prefix like git short hashes)
301
+ const { run, ambiguous } = await getRun(databaseUrl, runId);
302
+ if (ambiguous) {
303
+ console.error(pc.red(`Ambiguous run ID prefix "${runId}" - matches multiple runs`));
304
+ console.error(pc.dim("Use a longer prefix or the full ID"));
305
+ process.exit(1);
306
+ }
307
+ if (!run) {
308
+ console.error(pc.red(`Run "${runId}" not found`));
309
+ process.exit(1);
310
+ }
311
+ if (options.json) {
312
+ console.log(JSON.stringify(run, null, 2));
313
+ }
314
+ else {
315
+ const table = new Table();
316
+ table.push({ [pc.dim("ID")]: run.workflow_uuid }, { [pc.dim("Workflow")]: pc.cyan(run.name) }, { [pc.dim("Status")]: formatStatus(run.status) }, { [pc.dim("Created")]: formatDate(run.created_at) }, { [pc.dim("Updated")]: formatDate(run.updated_at) });
317
+ if (run.output) {
318
+ table.push({ [pc.dim("Output")]: formatOutput(run.output) });
319
+ }
320
+ if (run.error) {
321
+ table.push({ [pc.dim("Error")]: pc.red(run.error) });
322
+ }
323
+ console.log();
324
+ console.log(table.toString());
325
+ console.log();
326
+ }
327
+ }
328
+ else {
329
+ // List runs
330
+ const runs = await listRuns(databaseUrl, {
331
+ limit: parseInt(options.limit, 10),
332
+ workflowName: options.workflow,
333
+ });
334
+ if (runs.length === 0) {
335
+ if (options.json) {
336
+ console.log("[]");
337
+ }
338
+ else {
339
+ console.log(pc.yellow("No workflow runs found"));
340
+ }
341
+ return;
342
+ }
343
+ if (options.json) {
344
+ console.log(JSON.stringify(runs, null, 2));
345
+ }
346
+ else {
347
+ const table = new Table({
348
+ head: [pc.dim("ID"), pc.dim("Workflow"), pc.dim("Status"), pc.dim("Created")],
349
+ });
350
+ for (const run of runs) {
351
+ table.push([
352
+ run.workflow_uuid.slice(0, 8),
353
+ pc.cyan(run.name),
354
+ formatStatus(run.status),
355
+ formatDate(run.created_at),
356
+ ]);
357
+ }
358
+ console.log();
359
+ console.log(table.toString());
360
+ console.log();
361
+ }
362
+ }
363
+ }
364
+ catch (err) {
365
+ console.error(pc.red(`Error: ${err instanceof Error ? err.message : err}`));
366
+ process.exit(1);
367
+ }
368
+ });
369
+ // ============ Trace command (unchanged) ============
370
+ program
371
+ .command("trace <run-id>")
372
+ .description("Show execution trace for a workflow run")
373
+ .option("--json", "Output as JSON")
374
+ .action(async (runId, options) => {
375
+ try {
376
+ resolveEnv();
377
+ const databaseUrl = process.env.DATABASE_URL;
378
+ const trace = await getTrace(databaseUrl, runId);
379
+ if (trace.ambiguous) {
380
+ console.error(pc.red(`Ambiguous run ID prefix "${runId}" - matches multiple runs`));
381
+ console.error(pc.dim("Use a longer prefix or the full ID"));
382
+ process.exit(1);
383
+ }
384
+ if (!trace.workflow) {
385
+ console.error(pc.red(`Run "${runId}" not found`));
386
+ process.exit(1);
387
+ }
388
+ if (options.json) {
389
+ console.log(JSON.stringify(trace, null, 2));
390
+ }
391
+ else {
392
+ printTrace(trace);
393
+ }
394
+ }
395
+ catch (err) {
396
+ console.error(pc.red(`Error: ${err instanceof Error ? err.message : err}`));
397
+ process.exit(1);
398
+ }
399
+ });
400
+ // ============ MCP commands ============
401
+ const mcp = program.command("mcp").description("MCP server commands");
402
+ mcp
403
+ .command("start")
404
+ .description("Start the MCP server for Claude Code")
405
+ .action(async () => {
406
+ await startMcpServer();
407
+ });
408
+ // ============ Install/Uninstall commands ============
409
+ program
410
+ .command("install")
411
+ .description("Install 0pflow plugin to Claude Code")
412
+ .option("-f, --force", "Force reinstall even if already installed")
413
+ .action(async (options) => {
414
+ await runInstall({ force: options.force });
415
+ });
416
+ program
417
+ .command("uninstall")
418
+ .description("Uninstall 0pflow plugin from Claude Code")
419
+ .action(async () => {
420
+ await runUninstall();
421
+ });
422
+ program.parse();
423
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ export interface InstallSettings {
2
+ mcpCommand: string[];
3
+ installedAt: string;
4
+ }
5
+ /**
6
+ * Build the MCP command by taking the current invocation and replacing "install" with "mcp start"
7
+ */
8
+ export declare function buildMcpCommand(): string[];
9
+ /**
10
+ * Get the settings directory path
11
+ */
12
+ export declare function getSettingsDir(): string;
13
+ /**
14
+ * Get the settings file path
15
+ */
16
+ export declare function getSettingsPath(): string;
17
+ /**
18
+ * Read current settings
19
+ */
20
+ export declare function readSettings(): InstallSettings | null;
21
+ /**
22
+ * Write settings to disk
23
+ */
24
+ export declare function writeSettings(settings: InstallSettings): void;
25
+ /**
26
+ * Check if Claude Code CLI is available
27
+ */
28
+ export declare function isClaudeCliAvailable(): boolean;
29
+ /**
30
+ * Add the 0pflow marketplace to Claude Code
31
+ */
32
+ export declare function addMarketplace(): {
33
+ success: boolean;
34
+ error?: string;
35
+ };
36
+ /**
37
+ * Install the 0pflow plugin to Claude Code
38
+ */
39
+ export declare function installPlugin(): {
40
+ success: boolean;
41
+ error?: string;
42
+ };
43
+ export interface InstallOptions {
44
+ force?: boolean;
45
+ }
46
+ /**
47
+ * Run the install command
48
+ */
49
+ export declare function runInstall(options?: InstallOptions): Promise<void>;
50
+ /**
51
+ * Run the uninstall command
52
+ */
53
+ export declare function runUninstall(): Promise<void>;
54
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/cli/install.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,EAAE,CA6B1C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAGvC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,eAAe,GAAG,IAAI,CAUrD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAM7D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAO9C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAUrE;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAUpE;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsE5E;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAmClD"}