0pflow 0.1.0-dev.00aaa03 → 0.1.0-dev.303bb09
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.
- package/dist/__tests__/discover.integration.test.d.ts +2 -0
- package/dist/__tests__/discover.integration.test.d.ts.map +1 -0
- package/dist/__tests__/discover.integration.test.js +137 -0
- package/dist/__tests__/discover.integration.test.js.map +1 -0
- package/dist/agent.d.ts +6 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +59 -9
- package/dist/agent.js.map +1 -1
- package/dist/cli/__tests__/discovery.test.js +1 -1
- package/dist/cli/__tests__/discovery.test.js.map +1 -1
- package/dist/cli/discovery.d.ts +10 -0
- package/dist/cli/discovery.d.ts.map +1 -1
- package/dist/cli/discovery.js +42 -0
- package/dist/cli/discovery.js.map +1 -1
- package/dist/cli/env.js +1 -1
- package/dist/cli/env.js.map +1 -1
- package/dist/cli/index.d.ts +5 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +134 -11
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts +2 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +390 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/install.d.ts +13 -4
- package/dist/cli/install.d.ts.map +1 -1
- package/dist/cli/install.js +130 -72
- package/dist/cli/install.js.map +1 -1
- package/dist/cli/mcp/config.d.ts +0 -1
- package/dist/cli/mcp/config.d.ts.map +1 -1
- package/dist/cli/mcp/config.js +2 -4
- package/dist/cli/mcp/config.js.map +1 -1
- package/dist/cli/mcp/lib/scaffolding.d.ts +33 -0
- package/dist/cli/mcp/lib/scaffolding.d.ts.map +1 -0
- package/dist/cli/mcp/lib/scaffolding.js +216 -0
- package/dist/cli/mcp/lib/scaffolding.js.map +1 -0
- package/dist/cli/mcp/lib/templates.d.ts +1 -0
- package/dist/cli/mcp/lib/templates.d.ts.map +1 -1
- package/dist/cli/mcp/lib/templates.js.map +1 -1
- package/dist/cli/mcp/tools/createApp.d.ts +1 -0
- package/dist/cli/mcp/tools/createApp.d.ts.map +1 -1
- package/dist/cli/mcp/tools/createApp.js +12 -55
- package/dist/cli/mcp/tools/createApp.js.map +1 -1
- package/dist/cli/mcp/tools/createDatabase.d.ts.map +1 -1
- package/dist/cli/mcp/tools/createDatabase.js +2 -41
- package/dist/cli/mcp/tools/createDatabase.js.map +1 -1
- package/dist/cli/mcp/tools/getConnectionInfo.d.ts +19 -0
- package/dist/cli/mcp/tools/getConnectionInfo.d.ts.map +1 -0
- package/dist/cli/mcp/tools/getConnectionInfo.js +117 -0
- package/dist/cli/mcp/tools/getConnectionInfo.js.map +1 -0
- package/dist/cli/mcp/tools/getRun.d.ts +22 -0
- package/dist/cli/mcp/tools/getRun.d.ts.map +1 -0
- package/dist/cli/mcp/tools/getRun.js +80 -0
- package/dist/cli/mcp/tools/getRun.js.map +1 -0
- package/dist/cli/mcp/tools/getTrace.d.ts +32 -0
- package/dist/cli/mcp/tools/getTrace.d.ts.map +1 -0
- package/dist/cli/mcp/tools/getTrace.js +104 -0
- package/dist/cli/mcp/tools/getTrace.js.map +1 -0
- package/dist/cli/mcp/tools/index.d.ts +101 -1
- package/dist/cli/mcp/tools/index.d.ts.map +1 -1
- package/dist/cli/mcp/tools/index.js +18 -0
- package/dist/cli/mcp/tools/index.js.map +1 -1
- package/dist/cli/mcp/tools/listIntegrations.d.ts +14 -0
- package/dist/cli/mcp/tools/listIntegrations.d.ts.map +1 -0
- package/dist/cli/mcp/tools/listIntegrations.js +53 -0
- package/dist/cli/mcp/tools/listIntegrations.js.map +1 -0
- package/dist/cli/mcp/tools/listRuns.d.ts +21 -0
- package/dist/cli/mcp/tools/listRuns.d.ts.map +1 -0
- package/dist/cli/mcp/tools/listRuns.js +72 -0
- package/dist/cli/mcp/tools/listRuns.js.map +1 -0
- package/dist/cli/mcp/tools/listWorkflows.d.ts +15 -0
- package/dist/cli/mcp/tools/listWorkflows.d.ts.map +1 -0
- package/dist/cli/mcp/tools/listWorkflows.js +45 -0
- package/dist/cli/mcp/tools/listWorkflows.js.map +1 -0
- package/dist/cli/mcp/tools/runNode.d.ts +17 -0
- package/dist/cli/mcp/tools/runNode.d.ts.map +1 -0
- package/dist/cli/mcp/tools/runNode.js +74 -0
- package/dist/cli/mcp/tools/runNode.js.map +1 -0
- package/dist/cli/mcp/tools/runWorkflow.d.ts +16 -0
- package/dist/cli/mcp/tools/runWorkflow.d.ts.map +1 -0
- package/dist/cli/mcp/tools/runWorkflow.js +66 -0
- package/dist/cli/mcp/tools/runWorkflow.js.map +1 -0
- package/dist/cli/mcp/tools/setupAppSchema.d.ts +1 -1
- package/dist/cli/mcp/tools/setupAppSchema.d.ts.map +1 -1
- package/dist/cli/mcp/tools/setupAppSchema.js +11 -129
- package/dist/cli/mcp/tools/setupAppSchema.js.map +1 -1
- package/dist/cli/mcp/tools/startDevUi.d.ts +15 -0
- package/dist/cli/mcp/tools/startDevUi.d.ts.map +1 -0
- package/dist/cli/mcp/tools/startDevUi.js +92 -0
- package/dist/cli/mcp/tools/startDevUi.js.map +1 -0
- package/dist/cli/mcp/tools/utils.d.ts +7 -0
- package/dist/cli/mcp/tools/utils.d.ts.map +1 -0
- package/dist/cli/mcp/tools/utils.js +28 -0
- package/dist/cli/mcp/tools/utils.js.map +1 -0
- package/dist/cli/trace.d.ts +5 -0
- package/dist/cli/trace.d.ts.map +1 -1
- package/dist/cli/trace.js +1 -1
- package/dist/cli/trace.js.map +1 -1
- package/dist/connections/cloud-auth.d.ts +46 -0
- package/dist/connections/cloud-auth.d.ts.map +1 -0
- package/dist/connections/cloud-auth.js +243 -0
- package/dist/connections/cloud-auth.js.map +1 -0
- package/dist/connections/cloud-client.d.ts +25 -0
- package/dist/connections/cloud-client.d.ts.map +1 -0
- package/dist/connections/cloud-client.js +59 -0
- package/dist/connections/cloud-client.js.map +1 -0
- package/dist/connections/cloud-integration-provider.d.ts +21 -0
- package/dist/connections/cloud-integration-provider.d.ts.map +1 -0
- package/dist/connections/cloud-integration-provider.js +26 -0
- package/dist/connections/cloud-integration-provider.js.map +1 -0
- package/dist/connections/index.d.ts +11 -0
- package/dist/connections/index.d.ts.map +1 -0
- package/dist/connections/index.js +9 -0
- package/dist/connections/index.js.map +1 -0
- package/dist/connections/integration-provider.d.ts +38 -0
- package/dist/connections/integration-provider.d.ts.map +1 -0
- package/dist/connections/integration-provider.js +20 -0
- package/dist/connections/integration-provider.js.map +1 -0
- package/dist/connections/local-integration-provider.d.ts +28 -0
- package/dist/connections/local-integration-provider.d.ts.map +1 -0
- package/dist/connections/local-integration-provider.js +54 -0
- package/dist/connections/local-integration-provider.js.map +1 -0
- package/dist/connections/nango-client.d.ts +14 -0
- package/dist/connections/nango-client.d.ts.map +1 -0
- package/dist/connections/nango-client.js +50 -0
- package/dist/connections/nango-client.js.map +1 -0
- package/dist/connections/resolver.d.ts +26 -0
- package/dist/connections/resolver.d.ts.map +1 -0
- package/dist/connections/resolver.js +44 -0
- package/dist/connections/resolver.js.map +1 -0
- package/dist/connections/schema.d.ts +6 -0
- package/dist/connections/schema.d.ts.map +1 -0
- package/dist/connections/schema.js +25 -0
- package/dist/connections/schema.js.map +1 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +4 -0
- package/dist/context.js.map +1 -1
- package/dist/dev-ui/api.d.ts +13 -0
- package/dist/dev-ui/api.d.ts.map +1 -0
- package/dist/dev-ui/api.js +237 -0
- package/dist/dev-ui/api.js.map +1 -0
- package/dist/dev-ui/dag/extractor.d.ts +19 -0
- package/dist/dev-ui/dag/extractor.d.ts.map +1 -0
- package/dist/dev-ui/dag/extractor.js +728 -0
- package/dist/dev-ui/dag/extractor.js.map +1 -0
- package/dist/dev-ui/dag/types.d.ts +42 -0
- package/dist/dev-ui/dag/types.d.ts.map +1 -0
- package/dist/dev-ui/dag/types.js +2 -0
- package/dist/dev-ui/dag/types.js.map +1 -0
- package/dist/dev-ui/dev-server.d.ts +14 -0
- package/dist/dev-ui/dev-server.d.ts.map +1 -0
- package/dist/dev-ui/dev-server.js +158 -0
- package/dist/dev-ui/dev-server.js.map +1 -0
- package/dist/dev-ui/index.d.ts +3 -0
- package/dist/dev-ui/index.d.ts.map +1 -0
- package/dist/dev-ui/index.js +2 -0
- package/dist/dev-ui/index.js.map +1 -0
- package/dist/dev-ui/watcher.d.ts +12 -0
- package/dist/dev-ui/watcher.d.ts.map +1 -0
- package/dist/dev-ui/watcher.js +162 -0
- package/dist/dev-ui/watcher.js.map +1 -0
- package/dist/dev-ui/ws.d.ts +27 -0
- package/dist/dev-ui/ws.d.ts.map +1 -0
- package/dist/dev-ui/ws.js +19 -0
- package/dist/dev-ui/ws.js.map +1 -0
- package/dist/dev-ui-client/assets/index-B5wNJx8a.js +77 -0
- package/dist/dev-ui-client/assets/index-DAKTQEvj.js +1 -0
- package/dist/dev-ui-client/assets/index-DpOZNNnF.css +1 -0
- package/dist/dev-ui-client/index.html +13 -0
- package/dist/discover.d.ts +15 -0
- package/dist/discover.d.ts.map +1 -0
- package/dist/discover.js +29 -0
- package/dist/discover.js.map +1 -0
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +25 -12
- package/dist/factory.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +1 -0
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +1 -0
- package/dist/node.js.map +1 -1
- package/dist/nodes/agent/executor.d.ts +2 -0
- package/dist/nodes/agent/executor.d.ts.map +1 -1
- package/dist/nodes/agent/executor.js +11 -1
- package/dist/nodes/agent/executor.js.map +1 -1
- package/dist/types.d.ts +19 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/workflow.d.ts +22 -0
- package/dist/workflow.d.ts.map +1 -1
- package/dist/workflow.js +90 -2
- package/dist/workflow.js.map +1 -1
- package/package.json +24 -6
- package/templates/app/.env.example +13 -0
- package/templates/app/README.md +29 -0
- package/templates/app/biome.jsonc +81 -0
- package/templates/app/dbos-config.yaml +6 -0
- package/templates/app/drizzle.config.ts +12 -0
- package/templates/app/next.config.js +10 -0
- package/templates/app/package.json +55 -0
- package/templates/app/postcss.config.js +5 -0
- package/templates/app/public/favicon.ico +0 -0
- package/templates/app/src/app/_components/.gitkeep +0 -0
- package/templates/app/src/app/api/trpc/[trpc]/route.ts +34 -0
- package/templates/app/src/app/api/workflow/[name]/route.ts +37 -0
- package/templates/app/src/app/layout.tsx +29 -0
- package/templates/app/src/app/page.tsx +18 -0
- package/templates/app/src/env.js +46 -0
- package/templates/app/src/instrumentation.ts +6 -0
- package/templates/app/src/lib/pflow.ts +29 -0
- package/templates/app/src/server/api/root.ts +21 -0
- package/templates/app/src/server/api/routers/.gitkeep +0 -0
- package/templates/app/src/server/api/trpc.ts +106 -0
- package/templates/app/src/server/db/index.ts +18 -0
- package/templates/app/src/server/db/schema.ts +14 -0
- package/templates/app/src/styles/globals.css +6 -0
- package/templates/app/src/styles/globals.css.orange +126 -0
- package/templates/app/src/trpc/query-client.ts +25 -0
- package/templates/app/src/trpc/react.tsx +78 -0
- package/templates/app/src/trpc/server.ts +30 -0
- package/templates/app/tsconfig.check.json +23 -0
- package/templates/app/tsconfig.json +42 -0
- package/templates/app/tsconfig.server.json +5 -0
- package/templates/app/tsconfig.test.json +21 -0
package/dist/cli/init.js
ADDED
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
import { execSync, spawn } from "node:child_process";
|
|
2
|
+
import { existsSync, readFileSync, readdirSync } from "node:fs";
|
|
3
|
+
import { basename, join, resolve } from "node:path";
|
|
4
|
+
import * as p from "@clack/prompts";
|
|
5
|
+
import pc from "picocolors";
|
|
6
|
+
import { scaffoldApp, createDatabase, setupAppSchema, } from "./mcp/lib/scaffolding.js";
|
|
7
|
+
import { packageRoot } from "./mcp/config.js";
|
|
8
|
+
// Monorepo root (only valid in dev mode)
|
|
9
|
+
const monorepoRoot = join(packageRoot, "..", "..");
|
|
10
|
+
function isDevMode() {
|
|
11
|
+
const corePath = join(monorepoRoot, "packages", "core");
|
|
12
|
+
return existsSync(corePath);
|
|
13
|
+
}
|
|
14
|
+
function isCwdEmpty() {
|
|
15
|
+
try {
|
|
16
|
+
const entries = readdirSync(process.cwd());
|
|
17
|
+
// Ignore dotfiles like .git
|
|
18
|
+
return entries.filter((e) => !e.startsWith(".")).length === 0;
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function isClaudeAvailable() {
|
|
25
|
+
try {
|
|
26
|
+
execSync("claude --version", { stdio: "ignore" });
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Poll Tiger Cloud until the service is ready (status != "creating").
|
|
35
|
+
* Returns true if ready, false on timeout.
|
|
36
|
+
*/
|
|
37
|
+
async function waitForDatabase(serviceId, timeoutMs = 5 * 60 * 1000, intervalMs = 5000) {
|
|
38
|
+
const start = Date.now();
|
|
39
|
+
const { execSync } = await import("node:child_process");
|
|
40
|
+
while (Date.now() - start < timeoutMs) {
|
|
41
|
+
try {
|
|
42
|
+
const stdout = execSync(`tiger service get ${serviceId} -o json`, {
|
|
43
|
+
encoding: "utf-8",
|
|
44
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
45
|
+
});
|
|
46
|
+
const info = JSON.parse(stdout);
|
|
47
|
+
if (info.status && info.status !== "creating") {
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
// tiger CLI not available or service not found — keep trying
|
|
53
|
+
}
|
|
54
|
+
await new Promise((r) => setTimeout(r, intervalMs));
|
|
55
|
+
}
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
function isExisting0pflow() {
|
|
59
|
+
try {
|
|
60
|
+
const pkgPath = join(process.cwd(), "package.json");
|
|
61
|
+
if (!existsSync(pkgPath))
|
|
62
|
+
return false;
|
|
63
|
+
const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
|
|
64
|
+
const deps = { ...pkg.dependencies, ...pkg.devDependencies };
|
|
65
|
+
return "0pflow" in deps;
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function launchClaude(cwd, { yolo = false } = {}) {
|
|
72
|
+
const prompt = "Welcome to your 0pflow project! What workflow would you like to create? Here are some ideas:\n\n" +
|
|
73
|
+
'- "Enrich leads from a CSV file with company data"\n' +
|
|
74
|
+
'- "Monitor website uptime and send Slack alerts"\n' +
|
|
75
|
+
'- "Sync Salesforce contacts to our database nightly"\n' +
|
|
76
|
+
'- "Score and route inbound leads based on firmographics"\n\n' +
|
|
77
|
+
"Describe what you'd like to automate and I'll help you build it with /create-workflow.";
|
|
78
|
+
const claudeArgs = [];
|
|
79
|
+
if (isDevMode())
|
|
80
|
+
claudeArgs.push("--plugin-dir", monorepoRoot);
|
|
81
|
+
if (yolo)
|
|
82
|
+
claudeArgs.push("--dangerously-skip-permissions");
|
|
83
|
+
claudeArgs.push(prompt);
|
|
84
|
+
const child = spawn("claude", claudeArgs, {
|
|
85
|
+
cwd,
|
|
86
|
+
stdio: "inherit",
|
|
87
|
+
});
|
|
88
|
+
child.on("exit", (code) => process.exit(code ?? 0));
|
|
89
|
+
}
|
|
90
|
+
export async function runInit() {
|
|
91
|
+
p.intro(pc.red("0pflow") + pc.dim(" — create a new project"));
|
|
92
|
+
// ── Existing project check ──────────────────────────────────────────
|
|
93
|
+
if (isExisting0pflow()) {
|
|
94
|
+
const action = await p.select({
|
|
95
|
+
message: "This directory is already an 0pflow project.",
|
|
96
|
+
options: [
|
|
97
|
+
{ value: "claude", label: "Launch Claude Code" },
|
|
98
|
+
{ value: "claude-yolo", label: "Launch Claude Code with --dangerously-skip-permissions" },
|
|
99
|
+
{ value: "new", label: "Create a new project in a subdirectory" },
|
|
100
|
+
],
|
|
101
|
+
});
|
|
102
|
+
if (p.isCancel(action)) {
|
|
103
|
+
p.cancel("Cancelled.");
|
|
104
|
+
process.exit(0);
|
|
105
|
+
}
|
|
106
|
+
if (action === "claude" || action === "claude-yolo") {
|
|
107
|
+
if (!isClaudeAvailable()) {
|
|
108
|
+
p.log.error("Claude Code CLI not found. Install it from https://claude.ai/code");
|
|
109
|
+
process.exit(1);
|
|
110
|
+
}
|
|
111
|
+
p.outro(pc.green("Launching Claude Code..."));
|
|
112
|
+
launchClaude(process.cwd(), { yolo: action === "claude-yolo" });
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
// fall through to normal wizard (cwdEmpty will be false, so directory defaults to ./<name>)
|
|
116
|
+
}
|
|
117
|
+
const cwdEmpty = isCwdEmpty();
|
|
118
|
+
// ── Project name ────────────────────────────────────────────────────
|
|
119
|
+
// Default to current directory name if it looks like a valid project name
|
|
120
|
+
const dirName = basename(process.cwd()).toLowerCase().replace(/[^a-z0-9-]/g, "-");
|
|
121
|
+
const defaultName = cwdEmpty && /^[a-z][a-z0-9-]*$/.test(dirName) ? dirName : undefined;
|
|
122
|
+
const projectName = await p.text({
|
|
123
|
+
message: "Project name",
|
|
124
|
+
...(defaultName ? { initialValue: defaultName } : { placeholder: "my-app" }),
|
|
125
|
+
validate(value) {
|
|
126
|
+
if (!value)
|
|
127
|
+
return "Project name is required";
|
|
128
|
+
if (!/^[a-z][a-z0-9-]*$/.test(value)) {
|
|
129
|
+
return "Must be lowercase letters, numbers, and hyphens (start with a letter)";
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
});
|
|
133
|
+
if (p.isCancel(projectName)) {
|
|
134
|
+
p.cancel("Cancelled.");
|
|
135
|
+
process.exit(0);
|
|
136
|
+
}
|
|
137
|
+
// ── Directory ───────────────────────────────────────────────────────
|
|
138
|
+
const cwd = process.cwd();
|
|
139
|
+
const defaultDir = cwdEmpty ? "." : `./${projectName}`;
|
|
140
|
+
const defaultLabel = cwdEmpty
|
|
141
|
+
? `${cwd} (current directory)`
|
|
142
|
+
: `./${projectName}`;
|
|
143
|
+
const useDirectory = await p.select({
|
|
144
|
+
message: "Where should we create it?",
|
|
145
|
+
options: cwdEmpty
|
|
146
|
+
? [
|
|
147
|
+
{ value: "default", label: `Here — ${cwd}` },
|
|
148
|
+
{ value: "custom", label: "Other directory" },
|
|
149
|
+
]
|
|
150
|
+
: [
|
|
151
|
+
{ value: "default", label: `./${projectName}` },
|
|
152
|
+
{ value: "custom", label: "Other directory" },
|
|
153
|
+
],
|
|
154
|
+
});
|
|
155
|
+
if (p.isCancel(useDirectory)) {
|
|
156
|
+
p.cancel("Cancelled.");
|
|
157
|
+
process.exit(0);
|
|
158
|
+
}
|
|
159
|
+
let directory;
|
|
160
|
+
if (useDirectory === "custom") {
|
|
161
|
+
const customDir = await p.text({
|
|
162
|
+
message: "Directory path",
|
|
163
|
+
placeholder: `./${projectName}`,
|
|
164
|
+
validate(value) {
|
|
165
|
+
if (!value)
|
|
166
|
+
return "Directory is required";
|
|
167
|
+
},
|
|
168
|
+
});
|
|
169
|
+
if (p.isCancel(customDir)) {
|
|
170
|
+
p.cancel("Cancelled.");
|
|
171
|
+
process.exit(0);
|
|
172
|
+
}
|
|
173
|
+
directory = customDir;
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
directory = defaultDir;
|
|
177
|
+
}
|
|
178
|
+
if (p.isCancel(directory)) {
|
|
179
|
+
p.cancel("Cancelled.");
|
|
180
|
+
process.exit(0);
|
|
181
|
+
}
|
|
182
|
+
// ── Database ────────────────────────────────────────────────────────
|
|
183
|
+
const dbChoice = await p.select({
|
|
184
|
+
message: "Database setup",
|
|
185
|
+
options: [
|
|
186
|
+
{
|
|
187
|
+
value: "new",
|
|
188
|
+
label: "Create new Tiger Cloud database (free)",
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
value: "existing",
|
|
192
|
+
label: "Use existing Tiger Cloud database",
|
|
193
|
+
},
|
|
194
|
+
],
|
|
195
|
+
});
|
|
196
|
+
if (p.isCancel(dbChoice)) {
|
|
197
|
+
p.cancel("Cancelled.");
|
|
198
|
+
process.exit(0);
|
|
199
|
+
}
|
|
200
|
+
let serviceId;
|
|
201
|
+
if (dbChoice === "existing") {
|
|
202
|
+
// Fetch available databases from Tiger Cloud
|
|
203
|
+
let services = [];
|
|
204
|
+
try {
|
|
205
|
+
const stdout = execSync("tiger service list -o json", {
|
|
206
|
+
encoding: "utf-8",
|
|
207
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
208
|
+
});
|
|
209
|
+
services = JSON.parse(stdout);
|
|
210
|
+
}
|
|
211
|
+
catch {
|
|
212
|
+
// tiger CLI not available or not logged in
|
|
213
|
+
}
|
|
214
|
+
if (services.length > 0) {
|
|
215
|
+
const selected = await p.select({
|
|
216
|
+
message: "Select a database",
|
|
217
|
+
options: [
|
|
218
|
+
...services.map((s) => ({
|
|
219
|
+
value: s.service_id,
|
|
220
|
+
label: `${s.name} (${s.service_id})`,
|
|
221
|
+
hint: s.status,
|
|
222
|
+
})),
|
|
223
|
+
{ value: "__manual__", label: "Enter service ID manually" },
|
|
224
|
+
],
|
|
225
|
+
});
|
|
226
|
+
if (p.isCancel(selected)) {
|
|
227
|
+
p.cancel("Cancelled.");
|
|
228
|
+
process.exit(0);
|
|
229
|
+
}
|
|
230
|
+
if (selected === "__manual__") {
|
|
231
|
+
const sid = await p.text({
|
|
232
|
+
message: "Tiger Cloud service ID",
|
|
233
|
+
placeholder: "abc123def4",
|
|
234
|
+
validate(value) {
|
|
235
|
+
if (!value)
|
|
236
|
+
return "Service ID is required";
|
|
237
|
+
},
|
|
238
|
+
});
|
|
239
|
+
if (p.isCancel(sid)) {
|
|
240
|
+
p.cancel("Cancelled.");
|
|
241
|
+
process.exit(0);
|
|
242
|
+
}
|
|
243
|
+
serviceId = sid;
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
serviceId = selected;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
p.log.warn("Could not fetch databases. Enter the service ID manually.");
|
|
251
|
+
const sid = await p.text({
|
|
252
|
+
message: "Tiger Cloud service ID",
|
|
253
|
+
placeholder: "abc123def4",
|
|
254
|
+
validate(value) {
|
|
255
|
+
if (!value)
|
|
256
|
+
return "Service ID is required";
|
|
257
|
+
},
|
|
258
|
+
});
|
|
259
|
+
if (p.isCancel(sid)) {
|
|
260
|
+
p.cancel("Cancelled.");
|
|
261
|
+
process.exit(0);
|
|
262
|
+
}
|
|
263
|
+
serviceId = sid;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
// ── Execute ─────────────────────────────────────────────────────────
|
|
267
|
+
const s = p.spinner();
|
|
268
|
+
// Start database creation first (async) if creating new
|
|
269
|
+
let dbPromise;
|
|
270
|
+
if (dbChoice === "new") {
|
|
271
|
+
s.start("Creating Tiger Cloud database...");
|
|
272
|
+
dbPromise = createDatabase({ name: projectName }).then((result) => {
|
|
273
|
+
if (!result.success) {
|
|
274
|
+
throw new Error(result.error || "Failed to create database");
|
|
275
|
+
}
|
|
276
|
+
return result;
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
// Scaffold app (parallel with db provisioning)
|
|
280
|
+
if (!dbPromise) {
|
|
281
|
+
s.start("Scaffolding project...");
|
|
282
|
+
}
|
|
283
|
+
const scaffoldResult = await scaffoldApp({
|
|
284
|
+
appName: projectName,
|
|
285
|
+
directory,
|
|
286
|
+
installDeps: false,
|
|
287
|
+
});
|
|
288
|
+
if (!scaffoldResult.success) {
|
|
289
|
+
s.stop(pc.red("Failed to scaffold project"));
|
|
290
|
+
p.log.error(scaffoldResult.message);
|
|
291
|
+
process.exit(1);
|
|
292
|
+
}
|
|
293
|
+
s.stop(pc.green("Scaffolded project"));
|
|
294
|
+
// Install dependencies
|
|
295
|
+
const appPath = scaffoldResult.path;
|
|
296
|
+
s.start("Installing dependencies...");
|
|
297
|
+
try {
|
|
298
|
+
execSync("npm install", { cwd: appPath, stdio: "pipe" });
|
|
299
|
+
s.stop(pc.green("Installed dependencies"));
|
|
300
|
+
}
|
|
301
|
+
catch (err) {
|
|
302
|
+
s.stop(pc.yellow("npm install failed (you can retry manually)"));
|
|
303
|
+
}
|
|
304
|
+
// Wait for database and setup schema
|
|
305
|
+
if (dbChoice === "new" && dbPromise) {
|
|
306
|
+
s.start("Waiting for database to be ready...");
|
|
307
|
+
try {
|
|
308
|
+
const dbResult = await dbPromise;
|
|
309
|
+
serviceId = dbResult.service_id;
|
|
310
|
+
s.stop(pc.green(`Database created (${serviceId})`));
|
|
311
|
+
}
|
|
312
|
+
catch (err) {
|
|
313
|
+
s.stop(pc.yellow("Database creation failed"));
|
|
314
|
+
p.log.warn(`You can create one later with: tiger service create --name ${projectName}`);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
if (serviceId) {
|
|
318
|
+
s.start("Configuring database schema...");
|
|
319
|
+
const schemaName = projectName.replace(/-/g, "_");
|
|
320
|
+
const schemaResult = await setupAppSchema({
|
|
321
|
+
directory: appPath,
|
|
322
|
+
serviceId,
|
|
323
|
+
appName: schemaName,
|
|
324
|
+
});
|
|
325
|
+
if (schemaResult.success) {
|
|
326
|
+
s.stop(pc.green("Database schema configured"));
|
|
327
|
+
}
|
|
328
|
+
else {
|
|
329
|
+
// Database might still be provisioning — try waiting
|
|
330
|
+
if (dbChoice === "new") {
|
|
331
|
+
s.message("Database still provisioning, waiting...");
|
|
332
|
+
const ready = await waitForDatabase(serviceId);
|
|
333
|
+
if (ready) {
|
|
334
|
+
const retry = await setupAppSchema({
|
|
335
|
+
directory: appPath,
|
|
336
|
+
serviceId,
|
|
337
|
+
appName: schemaName,
|
|
338
|
+
});
|
|
339
|
+
if (retry.success) {
|
|
340
|
+
s.stop(pc.green("Database schema configured"));
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
s.stop(pc.yellow("Schema setup failed"));
|
|
344
|
+
p.log.warn(retry.message);
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
else {
|
|
348
|
+
s.stop(pc.yellow("Database not ready yet"));
|
|
349
|
+
p.log.warn(`Run later: 0pflow init won't retry. Use the MCP tools or set up manually.`);
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
s.stop(pc.yellow("Schema setup failed"));
|
|
354
|
+
p.log.warn(schemaResult.message);
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
// ── Launch Claude? ──────────────────────────────────────────────────
|
|
359
|
+
const hasClaude = isClaudeAvailable();
|
|
360
|
+
if (hasClaude) {
|
|
361
|
+
const launchChoice = await p.select({
|
|
362
|
+
message: "Launch Claude Code to design your first workflow?",
|
|
363
|
+
options: [
|
|
364
|
+
{ value: "claude", label: "Yes" },
|
|
365
|
+
{ value: "claude-yolo", label: "Yes, with --dangerously-skip-permissions" },
|
|
366
|
+
{ value: "no", label: "No, I'll do it later" },
|
|
367
|
+
],
|
|
368
|
+
});
|
|
369
|
+
if (!p.isCancel(launchChoice) && launchChoice !== "no") {
|
|
370
|
+
p.outro(pc.green("Launching Claude Code..."));
|
|
371
|
+
launchClaude(resolve(appPath), { yolo: launchChoice === "claude-yolo" });
|
|
372
|
+
return;
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
// ── Done ────────────────────────────────────────────────────────────
|
|
376
|
+
const cdCmd = directory === "." ? "" : `cd ${directory} && `;
|
|
377
|
+
const pluginFlag = isDevMode() ? ` --plugin-dir ${monorepoRoot}` : "";
|
|
378
|
+
const claudeCmd = `${cdCmd}claude${pluginFlag}`;
|
|
379
|
+
p.outro(pc.green("Project created!"));
|
|
380
|
+
console.log();
|
|
381
|
+
console.log(pc.bold(" To launch Claude Code later:"));
|
|
382
|
+
console.log(pc.cyan(` ${claudeCmd}`));
|
|
383
|
+
console.log();
|
|
384
|
+
console.log(pc.bold(" Example prompts to get started:"));
|
|
385
|
+
console.log(pc.dim(' "Create a workflow that enriches leads from a CSV file"'));
|
|
386
|
+
console.log(pc.dim(' "Build a workflow that monitors website uptime and sends Slack alerts"'));
|
|
387
|
+
console.log(pc.dim(' "Create a data pipeline that syncs Salesforce contacts to our database"'));
|
|
388
|
+
console.log();
|
|
389
|
+
}
|
|
390
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/install.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
export interface McpCommandResult {
|
|
2
|
+
command: string[];
|
|
3
|
+
isLocal: boolean;
|
|
4
|
+
packageRoot?: string;
|
|
5
|
+
}
|
|
1
6
|
export interface InstallSettings {
|
|
2
7
|
mcpCommand: string[];
|
|
3
8
|
installedAt: string;
|
|
@@ -5,7 +10,7 @@ export interface InstallSettings {
|
|
|
5
10
|
/**
|
|
6
11
|
* Build the MCP command by taking the current invocation and replacing "install" with "mcp start"
|
|
7
12
|
*/
|
|
8
|
-
export declare function buildMcpCommand():
|
|
13
|
+
export declare function buildMcpCommand(): McpCommandResult;
|
|
9
14
|
/**
|
|
10
15
|
* Get the settings directory path
|
|
11
16
|
*/
|
|
@@ -29,26 +34,30 @@ export declare function isClaudeCliAvailable(): boolean;
|
|
|
29
34
|
/**
|
|
30
35
|
* Add the 0pflow marketplace to Claude Code
|
|
31
36
|
*/
|
|
32
|
-
export declare function addMarketplace(): {
|
|
37
|
+
export declare function addMarketplace(mcpResult: McpCommandResult, stdio?: "inherit" | "ignore"): {
|
|
33
38
|
success: boolean;
|
|
34
39
|
error?: string;
|
|
35
40
|
};
|
|
36
41
|
/**
|
|
37
42
|
* Install the 0pflow plugin to Claude Code
|
|
38
43
|
*/
|
|
39
|
-
export declare function installPlugin(): {
|
|
44
|
+
export declare function installPlugin(stdio?: "inherit" | "ignore"): {
|
|
40
45
|
success: boolean;
|
|
41
46
|
error?: string;
|
|
42
47
|
};
|
|
43
48
|
export interface InstallOptions {
|
|
44
49
|
force?: boolean;
|
|
50
|
+
verbose?: boolean;
|
|
45
51
|
}
|
|
46
52
|
/**
|
|
47
53
|
* Run the install command
|
|
48
54
|
*/
|
|
49
55
|
export declare function runInstall(options?: InstallOptions): Promise<void>;
|
|
56
|
+
export interface UninstallOptions {
|
|
57
|
+
verbose?: boolean;
|
|
58
|
+
}
|
|
50
59
|
/**
|
|
51
60
|
* Run the uninstall command
|
|
52
61
|
*/
|
|
53
|
-
export declare function runUninstall(): Promise<void>;
|
|
62
|
+
export declare function runUninstall(options?: UninstallOptions): Promise<void>;
|
|
54
63
|
//# sourceMappingURL=install.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/cli/install.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/cli/install.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,gBAAgB,CAiElD;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,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,GAAE,SAAS,GAAG,QAAoB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAazI;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,GAAE,SAAS,GAAG,QAAoB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAU3G;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+E5E;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgChF"}
|