0pflow 0.1.0-dev.b4bf1ab → 0.1.0-dev.bdfaa95

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 (254) hide show
  1. package/dist/__tests__/discover.integration.test.d.ts +2 -0
  2. package/dist/__tests__/discover.integration.test.d.ts.map +1 -0
  3. package/dist/__tests__/discover.integration.test.js +137 -0
  4. package/dist/__tests__/discover.integration.test.js.map +1 -0
  5. package/dist/__tests__/factory.test.js +13 -0
  6. package/dist/__tests__/factory.test.js.map +1 -1
  7. package/dist/__tests__/integration.e2e.test.js +2 -1
  8. package/dist/__tests__/integration.e2e.test.js.map +1 -1
  9. package/dist/__tests__/integration.test.js +87 -82
  10. package/dist/__tests__/integration.test.js.map +1 -1
  11. package/dist/agent.d.ts +7 -0
  12. package/dist/agent.d.ts.map +1 -1
  13. package/dist/agent.js +75 -10
  14. package/dist/agent.js.map +1 -1
  15. package/dist/cli/__tests__/discovery.test.js +1 -1
  16. package/dist/cli/__tests__/discovery.test.js.map +1 -1
  17. package/dist/cli/app.d.ts +6 -0
  18. package/dist/cli/app.d.ts.map +1 -1
  19. package/dist/cli/app.js +27 -0
  20. package/dist/cli/app.js.map +1 -1
  21. package/dist/cli/deploy.d.ts +27 -0
  22. package/dist/cli/deploy.d.ts.map +1 -0
  23. package/dist/cli/deploy.js +332 -0
  24. package/dist/cli/deploy.js.map +1 -0
  25. package/dist/cli/discovery.d.ts +10 -0
  26. package/dist/cli/discovery.d.ts.map +1 -1
  27. package/dist/cli/discovery.js +42 -0
  28. package/dist/cli/discovery.js.map +1 -1
  29. package/dist/cli/env.js +1 -1
  30. package/dist/cli/env.js.map +1 -1
  31. package/dist/cli/index.d.ts.map +1 -1
  32. package/dist/cli/index.js +142 -11
  33. package/dist/cli/index.js.map +1 -1
  34. package/dist/cli/install.d.ts +4 -0
  35. package/dist/cli/install.d.ts.map +1 -1
  36. package/dist/cli/install.js +63 -32
  37. package/dist/cli/install.js.map +1 -1
  38. package/dist/cli/mcp/config.d.ts +0 -1
  39. package/dist/cli/mcp/config.d.ts.map +1 -1
  40. package/dist/cli/mcp/config.js +2 -4
  41. package/dist/cli/mcp/config.js.map +1 -1
  42. package/dist/cli/mcp/lib/scaffolding.d.ts +33 -0
  43. package/dist/cli/mcp/lib/scaffolding.d.ts.map +1 -0
  44. package/dist/cli/mcp/lib/scaffolding.js +231 -0
  45. package/dist/cli/mcp/lib/scaffolding.js.map +1 -0
  46. package/dist/cli/mcp/lib/templates.d.ts +1 -0
  47. package/dist/cli/mcp/lib/templates.d.ts.map +1 -1
  48. package/dist/cli/mcp/lib/templates.js.map +1 -1
  49. package/dist/cli/mcp/tools/createApp.d.ts +1 -0
  50. package/dist/cli/mcp/tools/createApp.d.ts.map +1 -1
  51. package/dist/cli/mcp/tools/createApp.js +12 -55
  52. package/dist/cli/mcp/tools/createApp.js.map +1 -1
  53. package/dist/cli/mcp/tools/createDatabase.d.ts.map +1 -1
  54. package/dist/cli/mcp/tools/createDatabase.js +2 -41
  55. package/dist/cli/mcp/tools/createDatabase.js.map +1 -1
  56. package/dist/cli/mcp/tools/getConnectionInfo.d.ts +19 -0
  57. package/dist/cli/mcp/tools/getConnectionInfo.d.ts.map +1 -0
  58. package/dist/cli/mcp/tools/getConnectionInfo.js +111 -0
  59. package/dist/cli/mcp/tools/getConnectionInfo.js.map +1 -0
  60. package/dist/cli/mcp/tools/getRun.d.ts +22 -0
  61. package/dist/cli/mcp/tools/getRun.d.ts.map +1 -0
  62. package/dist/cli/mcp/tools/getRun.js +80 -0
  63. package/dist/cli/mcp/tools/getRun.js.map +1 -0
  64. package/dist/cli/mcp/tools/getTrace.d.ts +32 -0
  65. package/dist/cli/mcp/tools/getTrace.d.ts.map +1 -0
  66. package/dist/cli/mcp/tools/getTrace.js +104 -0
  67. package/dist/cli/mcp/tools/getTrace.js.map +1 -0
  68. package/dist/cli/mcp/tools/index.d.ts +94 -1
  69. package/dist/cli/mcp/tools/index.d.ts.map +1 -1
  70. package/dist/cli/mcp/tools/index.js +16 -0
  71. package/dist/cli/mcp/tools/index.js.map +1 -1
  72. package/dist/cli/mcp/tools/listIntegrations.d.ts +14 -0
  73. package/dist/cli/mcp/tools/listIntegrations.d.ts.map +1 -0
  74. package/dist/cli/mcp/tools/listIntegrations.js +53 -0
  75. package/dist/cli/mcp/tools/listIntegrations.js.map +1 -0
  76. package/dist/cli/mcp/tools/listRuns.d.ts +21 -0
  77. package/dist/cli/mcp/tools/listRuns.d.ts.map +1 -0
  78. package/dist/cli/mcp/tools/listRuns.js +72 -0
  79. package/dist/cli/mcp/tools/listRuns.js.map +1 -0
  80. package/dist/cli/mcp/tools/listWorkflows.d.ts +15 -0
  81. package/dist/cli/mcp/tools/listWorkflows.d.ts.map +1 -0
  82. package/dist/cli/mcp/tools/listWorkflows.js +45 -0
  83. package/dist/cli/mcp/tools/listWorkflows.js.map +1 -0
  84. package/dist/cli/mcp/tools/runNode.d.ts +17 -0
  85. package/dist/cli/mcp/tools/runNode.d.ts.map +1 -0
  86. package/dist/cli/mcp/tools/runNode.js +74 -0
  87. package/dist/cli/mcp/tools/runNode.js.map +1 -0
  88. package/dist/cli/mcp/tools/runWorkflow.d.ts +16 -0
  89. package/dist/cli/mcp/tools/runWorkflow.d.ts.map +1 -0
  90. package/dist/cli/mcp/tools/runWorkflow.js +66 -0
  91. package/dist/cli/mcp/tools/runWorkflow.js.map +1 -0
  92. package/dist/cli/mcp/tools/setupAppSchema.d.ts +1 -1
  93. package/dist/cli/mcp/tools/setupAppSchema.d.ts.map +1 -1
  94. package/dist/cli/mcp/tools/setupAppSchema.js +11 -129
  95. package/dist/cli/mcp/tools/setupAppSchema.js.map +1 -1
  96. package/dist/cli/mcp/tools/utils.d.ts +7 -0
  97. package/dist/cli/mcp/tools/utils.d.ts.map +1 -0
  98. package/dist/cli/mcp/tools/utils.js +28 -0
  99. package/dist/cli/mcp/tools/utils.js.map +1 -0
  100. package/dist/cli/run.d.ts +2 -0
  101. package/dist/cli/run.d.ts.map +1 -0
  102. package/dist/cli/run.js +560 -0
  103. package/dist/cli/run.js.map +1 -0
  104. package/dist/cli/trace.d.ts +5 -0
  105. package/dist/cli/trace.d.ts.map +1 -1
  106. package/dist/cli/trace.js +1 -1
  107. package/dist/cli/trace.js.map +1 -1
  108. package/dist/connections/cloud-auth.d.ts +46 -0
  109. package/dist/connections/cloud-auth.d.ts.map +1 -0
  110. package/dist/connections/cloud-auth.js +247 -0
  111. package/dist/connections/cloud-auth.js.map +1 -0
  112. package/dist/connections/cloud-client.d.ts +25 -0
  113. package/dist/connections/cloud-client.d.ts.map +1 -0
  114. package/dist/connections/cloud-client.js +59 -0
  115. package/dist/connections/cloud-client.js.map +1 -0
  116. package/dist/connections/cloud-integration-provider.d.ts +22 -0
  117. package/dist/connections/cloud-integration-provider.d.ts.map +1 -0
  118. package/dist/connections/cloud-integration-provider.js +41 -0
  119. package/dist/connections/cloud-integration-provider.js.map +1 -0
  120. package/dist/connections/connection-labels.d.ts +14 -0
  121. package/dist/connections/connection-labels.d.ts.map +1 -0
  122. package/dist/connections/connection-labels.js +46 -0
  123. package/dist/connections/connection-labels.js.map +1 -0
  124. package/dist/connections/index.d.ts +12 -0
  125. package/dist/connections/index.d.ts.map +1 -0
  126. package/dist/connections/index.js +10 -0
  127. package/dist/connections/index.js.map +1 -0
  128. package/dist/connections/integration-provider.d.ts +39 -0
  129. package/dist/connections/integration-provider.d.ts.map +1 -0
  130. package/dist/connections/integration-provider.js +20 -0
  131. package/dist/connections/integration-provider.js.map +1 -0
  132. package/dist/connections/local-integration-provider.d.ts +29 -0
  133. package/dist/connections/local-integration-provider.d.ts.map +1 -0
  134. package/dist/connections/local-integration-provider.js +70 -0
  135. package/dist/connections/local-integration-provider.js.map +1 -0
  136. package/dist/connections/nango-client.d.ts +14 -0
  137. package/dist/connections/nango-client.d.ts.map +1 -0
  138. package/dist/connections/nango-client.js +50 -0
  139. package/dist/connections/nango-client.js.map +1 -0
  140. package/dist/connections/resolver.d.ts +26 -0
  141. package/dist/connections/resolver.d.ts.map +1 -0
  142. package/dist/connections/resolver.js +48 -0
  143. package/dist/connections/resolver.js.map +1 -0
  144. package/dist/connections/schema.d.ts +8 -0
  145. package/dist/connections/schema.d.ts.map +1 -0
  146. package/dist/connections/schema.js +31 -0
  147. package/dist/connections/schema.js.map +1 -0
  148. package/dist/context.d.ts.map +1 -1
  149. package/dist/context.js +4 -0
  150. package/dist/context.js.map +1 -1
  151. package/dist/dev-ui/api.d.ts +18 -0
  152. package/dist/dev-ui/api.d.ts.map +1 -0
  153. package/dist/dev-ui/api.js +273 -0
  154. package/dist/dev-ui/api.js.map +1 -0
  155. package/dist/dev-ui/dag/extractor.d.ts +19 -0
  156. package/dist/dev-ui/dag/extractor.d.ts.map +1 -0
  157. package/dist/dev-ui/dag/extractor.js +716 -0
  158. package/dist/dev-ui/dag/extractor.js.map +1 -0
  159. package/dist/dev-ui/dag/types.d.ts +42 -0
  160. package/dist/dev-ui/dag/types.d.ts.map +1 -0
  161. package/dist/dev-ui/dag/types.js +2 -0
  162. package/dist/dev-ui/dag/types.js.map +1 -0
  163. package/dist/dev-ui/deploy-api.d.ts +14 -0
  164. package/dist/dev-ui/deploy-api.d.ts.map +1 -0
  165. package/dist/dev-ui/deploy-api.js +112 -0
  166. package/dist/dev-ui/deploy-api.js.map +1 -0
  167. package/dist/dev-ui/dev-server.d.ts +18 -0
  168. package/dist/dev-ui/dev-server.d.ts.map +1 -0
  169. package/dist/dev-ui/dev-server.js +273 -0
  170. package/dist/dev-ui/dev-server.js.map +1 -0
  171. package/dist/dev-ui/index.d.ts +3 -0
  172. package/dist/dev-ui/index.d.ts.map +1 -0
  173. package/dist/dev-ui/index.js +2 -0
  174. package/dist/dev-ui/index.js.map +1 -0
  175. package/dist/dev-ui/pty.d.ts +16 -0
  176. package/dist/dev-ui/pty.d.ts.map +1 -0
  177. package/dist/dev-ui/pty.js +87 -0
  178. package/dist/dev-ui/pty.js.map +1 -0
  179. package/dist/dev-ui/watcher.d.ts +12 -0
  180. package/dist/dev-ui/watcher.d.ts.map +1 -0
  181. package/dist/dev-ui/watcher.js +166 -0
  182. package/dist/dev-ui/watcher.js.map +1 -0
  183. package/dist/dev-ui/ws.d.ts +52 -0
  184. package/dist/dev-ui/ws.d.ts.map +1 -0
  185. package/dist/dev-ui/ws.js +32 -0
  186. package/dist/dev-ui/ws.js.map +1 -0
  187. package/dist/dev-ui-client/assets/index-CFhxfKAk.js +176 -0
  188. package/dist/dev-ui-client/assets/index-D9wFwfPp.css +32 -0
  189. package/dist/dev-ui-client/assets/index-DAKTQEvj.js +1 -0
  190. package/dist/dev-ui-client/index.html +13 -0
  191. package/dist/discover.d.ts +15 -0
  192. package/dist/discover.d.ts.map +1 -0
  193. package/dist/discover.js +32 -0
  194. package/dist/discover.js.map +1 -0
  195. package/dist/factory.d.ts.map +1 -1
  196. package/dist/factory.js +37 -13
  197. package/dist/factory.js.map +1 -1
  198. package/dist/index.d.ts +6 -1
  199. package/dist/index.d.ts.map +1 -1
  200. package/dist/index.js +6 -0
  201. package/dist/index.js.map +1 -1
  202. package/dist/node.d.ts +1 -0
  203. package/dist/node.d.ts.map +1 -1
  204. package/dist/node.js +1 -0
  205. package/dist/node.js.map +1 -1
  206. package/dist/nodes/agent/executor.d.ts +2 -0
  207. package/dist/nodes/agent/executor.d.ts.map +1 -1
  208. package/dist/nodes/agent/executor.js +11 -1
  209. package/dist/nodes/agent/executor.js.map +1 -1
  210. package/dist/registry-gen.d.ts +6 -0
  211. package/dist/registry-gen.d.ts.map +1 -0
  212. package/dist/registry-gen.js +146 -0
  213. package/dist/registry-gen.js.map +1 -0
  214. package/dist/types.d.ts +21 -3
  215. package/dist/types.d.ts.map +1 -1
  216. package/dist/workflow.d.ts +22 -0
  217. package/dist/workflow.d.ts.map +1 -1
  218. package/dist/workflow.js +113 -3
  219. package/dist/workflow.js.map +1 -1
  220. package/package.json +30 -6
  221. package/templates/app/.dockerignore +6 -0
  222. package/templates/app/.env.example +13 -0
  223. package/templates/app/Dockerfile +34 -0
  224. package/templates/app/README.md +29 -0
  225. package/templates/app/biome.jsonc +81 -0
  226. package/templates/app/dbos-config.yaml +6 -0
  227. package/templates/app/drizzle.config.ts +12 -0
  228. package/templates/app/generated/registry.ts +8 -0
  229. package/templates/app/next.config.js +13 -0
  230. package/templates/app/package.json +57 -0
  231. package/templates/app/postcss.config.js +5 -0
  232. package/templates/app/public/favicon.ico +0 -0
  233. package/templates/app/src/app/_components/.gitkeep +0 -0
  234. package/templates/app/src/app/api/trpc/[trpc]/route.ts +34 -0
  235. package/templates/app/src/app/api/workflow/[name]/route.ts +37 -0
  236. package/templates/app/src/app/layout.tsx +29 -0
  237. package/templates/app/src/app/page.tsx +18 -0
  238. package/templates/app/src/env.js +46 -0
  239. package/templates/app/src/instrumentation.ts +6 -0
  240. package/templates/app/src/lib/pflow.ts +28 -0
  241. package/templates/app/src/server/api/root.ts +21 -0
  242. package/templates/app/src/server/api/routers/.gitkeep +0 -0
  243. package/templates/app/src/server/api/trpc.ts +106 -0
  244. package/templates/app/src/server/db/index.ts +18 -0
  245. package/templates/app/src/server/db/schema.ts +14 -0
  246. package/templates/app/src/styles/globals.css +6 -0
  247. package/templates/app/src/styles/globals.css.orange +126 -0
  248. package/templates/app/src/trpc/query-client.ts +25 -0
  249. package/templates/app/src/trpc/react.tsx +78 -0
  250. package/templates/app/src/trpc/server.ts +30 -0
  251. package/templates/app/tsconfig.check.json +23 -0
  252. package/templates/app/tsconfig.json +42 -0
  253. package/templates/app/tsconfig.server.json +5 -0
  254. package/templates/app/tsconfig.test.json +21 -0
@@ -0,0 +1,560 @@
1
+ import { exec, execSync } from "node:child_process";
2
+ import { existsSync, readFileSync, readdirSync } from "node:fs";
3
+ import { homedir } from "node:os";
4
+ import { promisify } from "node:util";
5
+ import { join, resolve } from "node:path";
6
+ import * as p from "@clack/prompts";
7
+ import pc from "picocolors";
8
+ import * as dotenv from "dotenv";
9
+ import { scaffoldApp, createDatabase, setupAppSchema, } from "./mcp/lib/scaffolding.js";
10
+ import { buildMcpCommand, writeSettings, addMarketplace, installPlugin, uninstallPlugin, } from "./install.js";
11
+ function isClaudeAvailable() {
12
+ try {
13
+ execSync("claude --version", { stdio: "ignore" });
14
+ return true;
15
+ }
16
+ catch {
17
+ return false;
18
+ }
19
+ }
20
+ /**
21
+ * Poll Tiger Cloud until the service is ready (status == "ready").
22
+ * Returns true if ready, false on timeout.
23
+ * Throws an error if the service is not found or tiger CLI is unavailable.
24
+ */
25
+ async function waitForDatabase(serviceId, timeoutMs = 5 * 60 * 1000, intervalMs = 5000) {
26
+ const start = Date.now();
27
+ const { execSync } = await import("node:child_process");
28
+ while (Date.now() - start < timeoutMs) {
29
+ try {
30
+ const stdout = execSync(`tiger service get ${serviceId} -o json`, {
31
+ encoding: "utf-8",
32
+ stdio: ["pipe", "pipe", "pipe"],
33
+ });
34
+ const info = JSON.parse(stdout);
35
+ // Only return true when database is actually ready
36
+ if (info.status?.toLowerCase() === "ready") {
37
+ return true;
38
+ }
39
+ }
40
+ catch (error) {
41
+ const err = error;
42
+ // Check if it's a "service not found" or "tiger CLI not available" error
43
+ if (err.message?.includes("not found") || err.stderr?.includes("not found")) {
44
+ throw new Error(`Service ${serviceId} not found. Please check the service ID.`);
45
+ }
46
+ if (err.message?.includes("command not found") || err.message?.includes("tiger")) {
47
+ throw new Error("Tiger CLI not available. Please install it from https://tiger.tigerdata.cloud");
48
+ }
49
+ // For other errors (network, etc.), continue retrying
50
+ }
51
+ await new Promise((r) => setTimeout(r, intervalMs));
52
+ }
53
+ return false;
54
+ }
55
+ /**
56
+ * Extract the service ID from a Tiger Cloud DATABASE_URL.
57
+ * Tiger Cloud hostnames follow the pattern: <service_id>.<region>.aws.tsdb.cloud
58
+ */
59
+ function extractServiceIdFromUrl(databaseUrl) {
60
+ try {
61
+ const url = new URL(databaseUrl);
62
+ const hostname = url.hostname;
63
+ // Match Tiger Cloud hostname patterns like: abc123def4.us-east-1.aws.tsdb.cloud
64
+ const match = hostname.match(/^([a-z0-9]{10})\./);
65
+ return match ? match[1] : null;
66
+ }
67
+ catch {
68
+ return null;
69
+ }
70
+ }
71
+ /**
72
+ * Check database status and start it if paused/stopped.
73
+ * Returns the status: "started", "already_running", "not_found", or "creating"
74
+ */
75
+ function startDatabaseIfNeeded(serviceId, noWait = false) {
76
+ try {
77
+ const stdout = execSync(`tiger service get ${serviceId} -o json`, {
78
+ encoding: "utf-8",
79
+ stdio: ["pipe", "pipe", "pipe"],
80
+ });
81
+ const info = JSON.parse(stdout);
82
+ if (!info.status) {
83
+ return "not_found";
84
+ }
85
+ const status = info.status.toLowerCase();
86
+ // If database is paused or stopped, start it
87
+ if (status === "paused" || status === "stopped") {
88
+ execSync(`tiger service start ${serviceId}${noWait ? " --no-wait" : ""}`, {
89
+ encoding: "utf-8",
90
+ stdio: ["pipe", "pipe", "pipe"],
91
+ });
92
+ return "started";
93
+ }
94
+ if (status === "creating") {
95
+ return "creating";
96
+ }
97
+ // Already running
98
+ return "already_running";
99
+ }
100
+ catch {
101
+ // tiger CLI not available or service not found
102
+ return "not_found";
103
+ }
104
+ }
105
+ /**
106
+ * Check if Tiger CLI is installed and authenticated.
107
+ * If not authenticated, triggers interactive login (opens browser).
108
+ */
109
+ function ensureTigerAuth() {
110
+ // Check if tiger CLI is available
111
+ try {
112
+ execSync("tiger version", { stdio: "ignore" });
113
+ }
114
+ catch {
115
+ p.log.error("Tiger CLI not found. Install it: curl -fsSL https://cli.tigerdata.com | sh");
116
+ process.exit(1);
117
+ }
118
+ // Check if authenticated
119
+ try {
120
+ const stdout = execSync("tiger auth status -o json", {
121
+ encoding: "utf-8",
122
+ stdio: ["pipe", "pipe", "pipe"],
123
+ });
124
+ JSON.parse(stdout); // Will throw if not valid JSON (not authenticated)
125
+ }
126
+ catch {
127
+ p.log.info("Tiger Cloud authentication required. Opening browser...");
128
+ try {
129
+ execSync("tiger auth login", { stdio: "inherit" });
130
+ }
131
+ catch {
132
+ p.log.error("Tiger Cloud login failed. Try running 'tiger auth login' manually.");
133
+ process.exit(1);
134
+ }
135
+ }
136
+ }
137
+ function isExisting0pflow() {
138
+ try {
139
+ const pkgPath = join(process.cwd(), "package.json");
140
+ if (!existsSync(pkgPath))
141
+ return false;
142
+ const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
143
+ const deps = { ...pkg.dependencies, ...pkg.devDependencies };
144
+ return "0pflow" in deps;
145
+ }
146
+ catch {
147
+ return false;
148
+ }
149
+ }
150
+ /**
151
+ * Scan ~/0pflow/ for directories that contain a package.json with 0pflow as a dependency.
152
+ */
153
+ function discoverProjects() {
154
+ const baseDir = join(homedir(), "0pflow");
155
+ if (!existsSync(baseDir))
156
+ return [];
157
+ const projects = [];
158
+ let entries;
159
+ try {
160
+ entries = readdirSync(baseDir);
161
+ }
162
+ catch {
163
+ return [];
164
+ }
165
+ for (const entry of entries) {
166
+ const projectDir = join(baseDir, entry);
167
+ const pkgPath = join(projectDir, "package.json");
168
+ try {
169
+ if (!existsSync(pkgPath))
170
+ continue;
171
+ const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
172
+ const deps = { ...pkg.dependencies, ...pkg.devDependencies };
173
+ if ("0pflow" in deps) {
174
+ projects.push({ name: entry, path: projectDir });
175
+ }
176
+ }
177
+ catch {
178
+ continue;
179
+ }
180
+ }
181
+ projects.sort((a, b) => a.name.localeCompare(b.name));
182
+ return projects;
183
+ }
184
+ const WELCOME_PROMPT = "Welcome to your 0pflow project! What workflow would you like to create? Here are some ideas:\n\n" +
185
+ '- "Enrich leads from a CSV file with company data"\n' +
186
+ '- "Monitor website uptime and send Slack alerts"\n' +
187
+ '- "Sync Salesforce contacts to our database nightly"\n' +
188
+ '- "Score and route inbound leads based on firmographics"\n\n' +
189
+ "Describe what you'd like to automate and I'll help you build it with /create-workflow.";
190
+ async function launchExistingProject(projectPath) {
191
+ // Check if database is paused and start it if needed
192
+ try {
193
+ const { findEnvFile } = await import("./env.js");
194
+ const envPath = findEnvFile(projectPath);
195
+ if (envPath) {
196
+ const envContent = readFileSync(envPath, "utf-8");
197
+ const parsed = dotenv.parse(envContent);
198
+ if (parsed.DATABASE_URL) {
199
+ const serviceId = extractServiceIdFromUrl(parsed.DATABASE_URL);
200
+ if (serviceId) {
201
+ const status = startDatabaseIfNeeded(serviceId, false);
202
+ if (status === "started") {
203
+ const s = p.spinner();
204
+ s.start("Database was paused, waiting for it to start...");
205
+ const ready = await waitForDatabase(serviceId, 3 * 60 * 1000);
206
+ if (ready) {
207
+ s.stop(pc.green("Database is ready"));
208
+ }
209
+ else {
210
+ s.stop(pc.yellow("Database is starting (taking longer than expected)"));
211
+ }
212
+ }
213
+ }
214
+ }
215
+ }
216
+ }
217
+ catch {
218
+ // Continue without database check if env loading fails
219
+ }
220
+ const mode = await p.select({
221
+ message: "Launch mode",
222
+ options: [
223
+ { value: "normal", label: "Launch" },
224
+ { value: "yolo", label: "Launch with --dangerously-skip-permissions" },
225
+ ],
226
+ });
227
+ if (p.isCancel(mode)) {
228
+ p.cancel("Cancelled.");
229
+ process.exit(0);
230
+ }
231
+ p.outro(pc.green("Launching..."));
232
+ await launchDevServer(projectPath, { yolo: mode === "yolo" });
233
+ }
234
+ async function launchDevServer(cwd, { yolo = false } = {}) {
235
+ // Load .env from the app directory (not process.cwd(), which may be a parent)
236
+ try {
237
+ const { findEnvFile, loadEnv } = await import("./env.js");
238
+ const envPath = findEnvFile(cwd);
239
+ if (envPath)
240
+ loadEnv(envPath);
241
+ }
242
+ catch {
243
+ // Dev UI can work without env
244
+ }
245
+ // Detect dev mode (running from monorepo source) for --plugin-dir
246
+ const { packageRoot } = await import("./mcp/config.js");
247
+ const monorepoRoot = resolve(packageRoot, "..", "..");
248
+ const pluginDir = existsSync(resolve(monorepoRoot, "packages", "core")) ? monorepoRoot : undefined;
249
+ const { startDevServer } = await import("../dev-ui/index.js");
250
+ const { url } = await startDevServer({
251
+ projectRoot: cwd,
252
+ databaseUrl: process.env.DATABASE_URL,
253
+ nangoSecretKey: process.env.NANGO_SECRET_KEY,
254
+ claudePluginDir: pluginDir,
255
+ claudeSkipPermissions: yolo,
256
+ claudePrompt: WELCOME_PROMPT,
257
+ });
258
+ // Open browser
259
+ try {
260
+ const cmd = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
261
+ execSync(`${cmd} ${url}`, { stdio: "ignore" });
262
+ }
263
+ catch {
264
+ // Non-fatal — user can open manually
265
+ }
266
+ }
267
+ export async function runRun() {
268
+ p.intro(pc.red("0pflow"));
269
+ if (!isClaudeAvailable()) {
270
+ p.log.error("Claude Code CLI not found. Install it from https://claude.ai/code");
271
+ process.exit(1);
272
+ }
273
+ // ── Always install/update plugin ────────────────────────────────────
274
+ {
275
+ const s = p.spinner();
276
+ s.start("Updating 0pflow plugin...");
277
+ try {
278
+ const mcpResult = buildMcpCommand();
279
+ writeSettings({
280
+ mcpCommand: mcpResult.command,
281
+ installedAt: new Date().toISOString(),
282
+ });
283
+ // In dev mode (local .ts source), skip marketplace/plugin install since
284
+ // the dev server loads the plugin via --plugin-dir instead.
285
+ if (mcpResult.isLocal) {
286
+ // Remove any previously installed marketplace plugin to avoid
287
+ // duplicates — dev server uses --plugin-dir instead.
288
+ uninstallPlugin("ignore");
289
+ s.stop(pc.green("Plugin ready (dev mode)"));
290
+ }
291
+ else {
292
+ addMarketplace(mcpResult, "ignore");
293
+ const result = installPlugin("ignore");
294
+ if (result.success) {
295
+ s.stop(pc.green("Plugin up to date"));
296
+ }
297
+ else {
298
+ s.stop(pc.yellow("Plugin update skipped (can retry with '0pflow install --force')"));
299
+ }
300
+ }
301
+ }
302
+ catch (err) {
303
+ s.stop(pc.yellow(`Plugin update failed: ${err instanceof Error ? err.message : String(err)}`));
304
+ }
305
+ }
306
+ // ── Existing project (CWD) → launch directly ───────────────────────
307
+ if (isExisting0pflow()) {
308
+ await launchExistingProject(process.cwd());
309
+ return;
310
+ }
311
+ // ── Discover existing projects in ~/0pflow/ ───────────────────────
312
+ const projects = discoverProjects();
313
+ if (projects.length > 0) {
314
+ const CREATE_NEW = "__create_new__";
315
+ const projectChoice = await p.select({
316
+ message: "Select a project",
317
+ options: [
318
+ ...projects.map((proj) => ({
319
+ value: proj.path,
320
+ label: proj.name,
321
+ hint: proj.path,
322
+ })),
323
+ {
324
+ value: CREATE_NEW,
325
+ label: pc.green("+ Create new project"),
326
+ },
327
+ ],
328
+ });
329
+ if (p.isCancel(projectChoice)) {
330
+ p.cancel("Cancelled.");
331
+ process.exit(0);
332
+ }
333
+ if (projectChoice !== CREATE_NEW) {
334
+ await launchExistingProject(projectChoice);
335
+ return;
336
+ }
337
+ }
338
+ // ── Project name ────────────────────────────────────────────────────
339
+ const projectName = await p.text({
340
+ message: "Project name",
341
+ placeholder: "my-app",
342
+ validate(value) {
343
+ if (!value)
344
+ return "Project name is required";
345
+ if (!/^[a-z][a-z0-9-]*$/.test(value)) {
346
+ return "Must be lowercase letters, numbers, and hyphens (start with a letter)";
347
+ }
348
+ },
349
+ });
350
+ if (p.isCancel(projectName)) {
351
+ p.cancel("Cancelled.");
352
+ process.exit(0);
353
+ }
354
+ // ── Directory (always ~/0pflow/<name>) ────────────────────────────
355
+ const directory = join(homedir(), "0pflow", projectName);
356
+ // ── Tiger auth ────────────────────────────────────────────────────
357
+ ensureTigerAuth();
358
+ // ── Database ────────────────────────────────────────────────────────
359
+ const dbChoice = await p.select({
360
+ message: "Database setup",
361
+ options: [
362
+ {
363
+ value: "new",
364
+ label: "Create new Tiger Cloud database (free)",
365
+ },
366
+ {
367
+ value: "existing",
368
+ label: "Use existing Tiger Cloud database",
369
+ },
370
+ ],
371
+ });
372
+ if (p.isCancel(dbChoice)) {
373
+ p.cancel("Cancelled.");
374
+ process.exit(0);
375
+ }
376
+ let serviceId;
377
+ if (dbChoice === "existing") {
378
+ // Fetch available databases from Tiger Cloud
379
+ let services = [];
380
+ try {
381
+ const stdout = execSync("tiger service list -o json", {
382
+ encoding: "utf-8",
383
+ stdio: ["pipe", "pipe", "pipe"],
384
+ });
385
+ services = JSON.parse(stdout);
386
+ }
387
+ catch {
388
+ // tiger CLI not available or not logged in
389
+ }
390
+ if (services.length > 0) {
391
+ const selected = await p.select({
392
+ message: "Select a database",
393
+ options: [
394
+ ...services.map((s) => ({
395
+ value: s.service_id,
396
+ label: `${s.name} (${s.service_id})`,
397
+ hint: s.status,
398
+ })),
399
+ { value: "__manual__", label: "Enter service ID manually" },
400
+ ],
401
+ });
402
+ if (p.isCancel(selected)) {
403
+ p.cancel("Cancelled.");
404
+ process.exit(0);
405
+ }
406
+ if (selected === "__manual__") {
407
+ const sid = await p.text({
408
+ message: "Tiger Cloud service ID",
409
+ placeholder: "abc123def4",
410
+ validate(value) {
411
+ if (!value)
412
+ return "Service ID is required";
413
+ },
414
+ });
415
+ if (p.isCancel(sid)) {
416
+ p.cancel("Cancelled.");
417
+ process.exit(0);
418
+ }
419
+ serviceId = sid;
420
+ }
421
+ else {
422
+ serviceId = selected;
423
+ }
424
+ }
425
+ else {
426
+ p.log.warn("Could not fetch databases. Enter the service ID manually.");
427
+ const sid = await p.text({
428
+ message: "Tiger Cloud service ID",
429
+ placeholder: "abc123def4",
430
+ validate(value) {
431
+ if (!value)
432
+ return "Service ID is required";
433
+ },
434
+ });
435
+ if (p.isCancel(sid)) {
436
+ p.cancel("Cancelled.");
437
+ process.exit(0);
438
+ }
439
+ serviceId = sid;
440
+ }
441
+ // Start database if paused (async, don't wait)
442
+ if (serviceId) {
443
+ const status = startDatabaseIfNeeded(serviceId, true);
444
+ if (status === "started") {
445
+ p.log.info("Database was paused, starting it in the background...");
446
+ }
447
+ }
448
+ }
449
+ // ── Execute ─────────────────────────────────────────────────────────
450
+ const s = p.spinner();
451
+ // Create database if needed (returns immediately with --no-wait)
452
+ if (dbChoice === "new") {
453
+ s.start("Creating Tiger Cloud database...");
454
+ const dbResult = await createDatabase({ name: projectName });
455
+ if (!dbResult.success) {
456
+ s.stop(pc.red("Database creation failed"));
457
+ p.log.error(dbResult.error || "Failed to create database");
458
+ process.exit(1);
459
+ }
460
+ serviceId = dbResult.service_id;
461
+ s.stop(pc.green(`Database creation initiated (${serviceId})`));
462
+ }
463
+ // Scaffold app
464
+ s.start("Scaffolding project...");
465
+ const scaffoldResult = await scaffoldApp({
466
+ appName: projectName,
467
+ directory,
468
+ installDeps: false,
469
+ });
470
+ if (!scaffoldResult.success) {
471
+ s.stop(pc.red("Failed to scaffold project"));
472
+ p.log.error(scaffoldResult.message);
473
+ process.exit(1);
474
+ }
475
+ s.stop(pc.green("Scaffolded project"));
476
+ // Install dependencies
477
+ const appPath = scaffoldResult.path;
478
+ s.start("Installing dependencies...");
479
+ try {
480
+ const execAsync = promisify(exec);
481
+ await execAsync("npm install --loglevel=error", { cwd: appPath });
482
+ s.stop(pc.green("Installed dependencies"));
483
+ }
484
+ catch (err) {
485
+ s.stop(pc.yellow("npm install failed (you can retry manually)"));
486
+ }
487
+ // Wait for database to be ready (whether new or existing that was started)
488
+ if (serviceId) {
489
+ s.start("Checking database status...");
490
+ const ready = await waitForDatabase(serviceId, 3 * 60 * 1000);
491
+ if (!ready) {
492
+ s.stop(pc.red("Database failed to start"));
493
+ p.log.error("Database did not become ready in time. Please check Tiger Cloud dashboard.");
494
+ process.exit(1);
495
+ }
496
+ s.stop(pc.green("Database is ready"));
497
+ }
498
+ if (serviceId) {
499
+ s.start("Configuring database schema...");
500
+ const schemaName = projectName.replace(/-/g, "_");
501
+ const schemaResult = await setupAppSchema({
502
+ directory: appPath,
503
+ serviceId,
504
+ appName: schemaName,
505
+ });
506
+ if (schemaResult.success) {
507
+ s.stop(pc.green("Database schema configured"));
508
+ }
509
+ else {
510
+ // Database might still be provisioning — try waiting
511
+ if (dbChoice === "new") {
512
+ s.message("Database still provisioning, waiting...");
513
+ const ready = await waitForDatabase(serviceId);
514
+ if (ready) {
515
+ const retry = await setupAppSchema({
516
+ directory: appPath,
517
+ serviceId,
518
+ appName: schemaName,
519
+ });
520
+ if (retry.success) {
521
+ s.stop(pc.green("Database schema configured"));
522
+ }
523
+ else {
524
+ s.stop(pc.yellow("Schema setup failed"));
525
+ p.log.warn(retry.message);
526
+ }
527
+ }
528
+ else {
529
+ s.stop(pc.yellow("Database not ready yet"));
530
+ p.log.warn(`Run later: 0pflow run won't retry. Use the MCP tools or set up manually.`);
531
+ }
532
+ }
533
+ else {
534
+ s.stop(pc.yellow("Schema setup failed"));
535
+ p.log.warn(schemaResult.message);
536
+ }
537
+ }
538
+ }
539
+ // ── Launch? ─────────────────────────────────────────────────────────
540
+ const launchChoice = await p.select({
541
+ message: "Launch now?",
542
+ options: [
543
+ { value: "normal", label: "Yes" },
544
+ { value: "yolo", label: "Yes, with --dangerously-skip-permissions" },
545
+ { value: "no", label: "No, I'll do it later" },
546
+ ],
547
+ });
548
+ if (!p.isCancel(launchChoice) && launchChoice !== "no") {
549
+ p.outro(pc.green("Launching..."));
550
+ await launchDevServer(resolve(appPath), { yolo: launchChoice === "yolo" });
551
+ return;
552
+ }
553
+ // ── Done ────────────────────────────────────────────────────────────
554
+ p.outro(pc.green(`Project created at ${directory}`));
555
+ console.log();
556
+ console.log(pc.bold(" To launch later:"));
557
+ console.log(pc.cyan(` cd ${directory} && 0pflow run`));
558
+ console.log();
559
+ }
560
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,11 @@ export interface TraceResult {
24
24
  * Get workflow trace including all operations and child workflows
25
25
  */
26
26
  export declare function getTrace(databaseUrl: string, runId: string, schemaOverride?: string): Promise<TraceResult>;
27
+ /**
28
+ * Parse and unwrap DBOS/superjson output format
29
+ * Handles: raw values, JSON strings, and {"json": ..., "__dbos_serializer": "superjson"} wrappers
30
+ */
31
+ export declare function parseOutput(output: unknown): unknown;
27
32
  /**
28
33
  * Print a workflow trace as a tree to stdout
29
34
  */
@@ -1 +1 @@
1
- {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/cli/trace.ts"],"names":[],"mappings":"AAKA,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,WAAW,CAAC,CAatB;AAkJD;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAiInD"}
1
+ {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/cli/trace.ts"],"names":[],"mappings":"AAKA,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,WAAW,CAAC,CAatB;AAkGD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAYpD;AAgCD;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAiInD"}
package/dist/cli/trace.js CHANGED
@@ -103,7 +103,7 @@ function formatDuration(ms) {
103
103
  * Parse and unwrap DBOS/superjson output format
104
104
  * Handles: raw values, JSON strings, and {"json": ..., "__dbos_serializer": "superjson"} wrappers
105
105
  */
106
- function parseOutput(output) {
106
+ export function parseOutput(output) {
107
107
  if (output === null || output === undefined)
108
108
  return null;
109
109
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/cli/trace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/cli/trace.ts"],"names":[],"mappings":"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"}