0pflow 0.1.0-dev.b8b505d → 0.1.0-dev.bfe08b3

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 (104) hide show
  1. package/dist/__tests__/factory.test.js +6 -0
  2. package/dist/__tests__/factory.test.js.map +1 -1
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +16 -1
  5. package/dist/agent.js.map +1 -1
  6. package/dist/cli/app.d.ts.map +1 -1
  7. package/dist/cli/app.js +4 -0
  8. package/dist/cli/app.js.map +1 -1
  9. package/dist/cli/cloud-dev.d.ts +7 -0
  10. package/dist/cli/cloud-dev.d.ts.map +1 -0
  11. package/dist/cli/cloud-dev.js +569 -0
  12. package/dist/cli/cloud-dev.js.map +1 -0
  13. package/dist/cli/deploy.d.ts +27 -0
  14. package/dist/cli/deploy.d.ts.map +1 -0
  15. package/dist/cli/deploy.js +332 -0
  16. package/dist/cli/deploy.js.map +1 -0
  17. package/dist/cli/env.d.ts +3 -1
  18. package/dist/cli/env.d.ts.map +1 -1
  19. package/dist/cli/env.js +8 -3
  20. package/dist/cli/env.js.map +1 -1
  21. package/dist/cli/index.d.ts.map +1 -1
  22. package/dist/cli/index.js +101 -0
  23. package/dist/cli/index.js.map +1 -1
  24. package/dist/cli/install.d.ts +67 -0
  25. package/dist/cli/install.d.ts.map +1 -0
  26. package/dist/cli/install.js +270 -0
  27. package/dist/cli/install.js.map +1 -0
  28. package/dist/cli/mcp/lib/scaffolding.d.ts.map +1 -1
  29. package/dist/cli/mcp/lib/scaffolding.js +36 -56
  30. package/dist/cli/mcp/lib/scaffolding.js.map +1 -1
  31. package/dist/cli/run.d.ts.map +1 -1
  32. package/dist/cli/run.js +270 -101
  33. package/dist/cli/run.js.map +1 -1
  34. package/dist/connections/cloud-auth.d.ts.map +1 -1
  35. package/dist/connections/cloud-auth.js +5 -1
  36. package/dist/connections/cloud-auth.js.map +1 -1
  37. package/dist/connections/cloud-client.d.ts.map +1 -1
  38. package/dist/connections/cloud-client.js +10 -3
  39. package/dist/connections/cloud-client.js.map +1 -1
  40. package/dist/connections/cloud-integration-provider.d.ts +1 -0
  41. package/dist/connections/cloud-integration-provider.d.ts.map +1 -1
  42. package/dist/connections/cloud-integration-provider.js +16 -1
  43. package/dist/connections/cloud-integration-provider.js.map +1 -1
  44. package/dist/connections/connection-labels.d.ts +14 -0
  45. package/dist/connections/connection-labels.d.ts.map +1 -0
  46. package/dist/connections/connection-labels.js +46 -0
  47. package/dist/connections/connection-labels.js.map +1 -0
  48. package/dist/connections/index.d.ts +1 -0
  49. package/dist/connections/index.d.ts.map +1 -1
  50. package/dist/connections/index.js +1 -0
  51. package/dist/connections/index.js.map +1 -1
  52. package/dist/connections/integration-provider.d.ts +1 -0
  53. package/dist/connections/integration-provider.d.ts.map +1 -1
  54. package/dist/connections/local-integration-provider.d.ts +1 -0
  55. package/dist/connections/local-integration-provider.d.ts.map +1 -1
  56. package/dist/connections/local-integration-provider.js +17 -1
  57. package/dist/connections/local-integration-provider.js.map +1 -1
  58. package/dist/dev-ui/api.d.ts +2 -0
  59. package/dist/dev-ui/api.d.ts.map +1 -1
  60. package/dist/dev-ui/api.js +36 -0
  61. package/dist/dev-ui/api.js.map +1 -1
  62. package/dist/dev-ui/deploy-api.d.ts +14 -0
  63. package/dist/dev-ui/deploy-api.d.ts.map +1 -0
  64. package/dist/dev-ui/deploy-api.js +112 -0
  65. package/dist/dev-ui/deploy-api.js.map +1 -0
  66. package/dist/dev-ui/dev-server.d.ts.map +1 -1
  67. package/dist/dev-ui/dev-server.js +55 -2
  68. package/dist/dev-ui/dev-server.js.map +1 -1
  69. package/dist/dev-ui/watcher.d.ts.map +1 -1
  70. package/dist/dev-ui/watcher.js +6 -2
  71. package/dist/dev-ui/watcher.js.map +1 -1
  72. package/dist/dev-ui-client/assets/index-CKl0_jfo.js +176 -0
  73. package/dist/dev-ui-client/assets/index-D9wFwfPp.css +32 -0
  74. package/dist/dev-ui-client/index.html +2 -2
  75. package/dist/discover.d.ts.map +1 -1
  76. package/dist/discover.js +5 -2
  77. package/dist/discover.js.map +1 -1
  78. package/dist/factory.d.ts.map +1 -1
  79. package/dist/factory.js +12 -1
  80. package/dist/factory.js.map +1 -1
  81. package/dist/index.d.ts +1 -0
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +3 -1
  84. package/dist/index.js.map +1 -1
  85. package/dist/registry-gen.d.ts +6 -0
  86. package/dist/registry-gen.d.ts.map +1 -0
  87. package/dist/registry-gen.js +146 -0
  88. package/dist/registry-gen.js.map +1 -0
  89. package/dist/workflow.d.ts.map +1 -1
  90. package/dist/workflow.js +16 -1
  91. package/dist/workflow.js.map +1 -1
  92. package/package.json +4 -2
  93. package/templates/app/.dockerignore +6 -0
  94. package/templates/app/Dockerfile +34 -0
  95. package/templates/app/generated/registry.ts +8 -0
  96. package/templates/app/next.config.js +4 -1
  97. package/templates/app/package.json +2 -0
  98. package/templates/app/src/lib/pflow.ts +5 -6
  99. package/dist/dev-ui-client/assets/index-C-LxzUII.css +0 -32
  100. package/dist/dev-ui-client/assets/index-aAIwXl4O.js +0 -127
  101. package/dist/version.d.ts +0 -6
  102. package/dist/version.d.ts.map +0 -1
  103. package/dist/version.js +0 -7
  104. package/dist/version.js.map +0 -1
@@ -0,0 +1,67 @@
1
+ export interface McpCommandResult {
2
+ command: string[];
3
+ isLocal: boolean;
4
+ packageRoot?: string;
5
+ }
6
+ export interface InstallSettings {
7
+ mcpCommand: string[];
8
+ installedAt: string;
9
+ }
10
+ /**
11
+ * Build the MCP command by taking the current invocation and replacing "install" with "mcp start"
12
+ */
13
+ export declare function buildMcpCommand(): McpCommandResult;
14
+ /**
15
+ * Get the settings directory path
16
+ */
17
+ export declare function getSettingsDir(): string;
18
+ /**
19
+ * Get the settings file path
20
+ */
21
+ export declare function getSettingsPath(): string;
22
+ /**
23
+ * Read current settings
24
+ */
25
+ export declare function readSettings(): InstallSettings | null;
26
+ /**
27
+ * Write settings to disk
28
+ */
29
+ export declare function writeSettings(settings: InstallSettings): void;
30
+ /**
31
+ * Check if Claude Code CLI is available
32
+ */
33
+ export declare function isClaudeCliAvailable(): boolean;
34
+ /**
35
+ * Add the 0pflow marketplace to Claude Code
36
+ */
37
+ export declare function addMarketplace(mcpResult: McpCommandResult, stdio?: "inherit" | "ignore"): {
38
+ success: boolean;
39
+ error?: string;
40
+ };
41
+ /**
42
+ * Uninstall the 0pflow plugin and marketplace from Claude Code (if present).
43
+ */
44
+ export declare function uninstallPlugin(stdio?: "inherit" | "ignore"): void;
45
+ /**
46
+ * Install the 0pflow plugin to Claude Code
47
+ */
48
+ export declare function installPlugin(stdio?: "inherit" | "ignore"): {
49
+ success: boolean;
50
+ error?: string;
51
+ };
52
+ export interface InstallOptions {
53
+ force?: boolean;
54
+ verbose?: boolean;
55
+ }
56
+ /**
57
+ * Run the install command
58
+ */
59
+ export declare function runInstall(options?: InstallOptions): Promise<void>;
60
+ export interface UninstallOptions {
61
+ verbose?: boolean;
62
+ }
63
+ /**
64
+ * Run the uninstall command
65
+ */
66
+ export declare function runUninstall(options?: UninstallOptions): Promise<void>;
67
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
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,CAgElD;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,eAAe,CAAC,KAAK,GAAE,SAAS,GAAG,QAAoB,GAAG,IAAI,CAW7E;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,CAyE5E;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,CAqBhF"}
@@ -0,0 +1,270 @@
1
+ import { execSync } from "node:child_process";
2
+ import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "node:fs";
3
+ import { dirname, join, resolve } from "node:path";
4
+ import pc from "picocolors";
5
+ import { getNpmVersionForMcp } from "./index.js";
6
+ function printBanner() {
7
+ console.log();
8
+ console.log(pc.red(" ___ __ _"));
9
+ console.log(pc.red(" / _ \\ _ __ / _| | _____ __"));
10
+ console.log(pc.red(" | | | | '_ \\ |_| |/ _ \\ \\ /\\ / /"));
11
+ console.log(pc.red(" | |_| | |_) | _| | (_) \\ V V /"));
12
+ console.log(pc.red(" \\___/| .__/|_| |_|\\___/ \\_/\\_/"));
13
+ console.log(pc.red(" |_|"));
14
+ console.log();
15
+ }
16
+ /**
17
+ * Build the MCP command by taking the current invocation and replacing "install" with "mcp start"
18
+ */
19
+ export function buildMcpCommand() {
20
+ const args = [...process.argv];
21
+ // Strip the CLI subcommand (install, run, etc.) to get just [node, script]
22
+ const subcommandIndex = args.findIndex(arg => arg === "install" || arg === "run");
23
+ const baseArgs = subcommandIndex !== -1
24
+ ? args.slice(0, subcommandIndex)
25
+ : args;
26
+ const scriptPath = baseArgs[1] || "";
27
+ // If we're running a .ts file, tsx hides itself from argv
28
+ // so we see "node file.ts" but need tsx to actually run it.
29
+ // We resolve the full path to tsx because npx spawns via sh which
30
+ // may not have nvm/fnm PATH entries (causes "sh: tsx: command not found").
31
+ if (scriptPath.endsWith(".ts")) {
32
+ // Script is at packages/core/src/cli/index.ts, repo root is 4 levels up
33
+ const packageRoot = resolve(dirname(scriptPath), "../../../..");
34
+ // Try to find tsx: check npx cache, then fall back to npx -y tsx
35
+ let tsxPath = "tsx";
36
+ try {
37
+ const resolved = execSync("npx -y tsx --which 2>/dev/null || which tsx 2>/dev/null", {
38
+ encoding: "utf-8",
39
+ timeout: 10000,
40
+ }).trim();
41
+ if (resolved)
42
+ tsxPath = resolved;
43
+ }
44
+ catch {
45
+ // If we can't resolve tsx, try the npx cache directly
46
+ const home = process.env.HOME || "~";
47
+ try {
48
+ const npxCacheDir = join(home, ".npm", "_npx");
49
+ for (const entry of readdirSync(npxCacheDir)) {
50
+ const candidate = join(npxCacheDir, entry, "node_modules", ".bin", "tsx");
51
+ if (existsSync(candidate)) {
52
+ tsxPath = candidate;
53
+ break;
54
+ }
55
+ }
56
+ }
57
+ catch {
58
+ // Fall through with bare "tsx"
59
+ }
60
+ }
61
+ return {
62
+ command: [tsxPath, scriptPath, "mcp", "start"],
63
+ isLocal: true,
64
+ packageRoot,
65
+ };
66
+ }
67
+ // If running from npx cache or node_modules, use npx 0pflow@version
68
+ if (scriptPath.includes(".npm/_npx") || scriptPath.includes("node_modules/0pflow")) {
69
+ const ver = getNpmVersionForMcp();
70
+ return {
71
+ command: ["npx", "-y", `0pflow@${ver}`, "mcp", "start"],
72
+ isLocal: false,
73
+ };
74
+ }
75
+ return {
76
+ command: [...baseArgs, "mcp", "start"],
77
+ isLocal: false,
78
+ };
79
+ }
80
+ /**
81
+ * Get the settings directory path
82
+ */
83
+ export function getSettingsDir() {
84
+ const home = process.env.HOME || process.env.USERPROFILE || "~";
85
+ return join(home, ".config", "0pflow");
86
+ }
87
+ /**
88
+ * Get the settings file path
89
+ */
90
+ export function getSettingsPath() {
91
+ return join(getSettingsDir(), "settings.json");
92
+ }
93
+ /**
94
+ * Read current settings
95
+ */
96
+ export function readSettings() {
97
+ const settingsPath = getSettingsPath();
98
+ if (!existsSync(settingsPath)) {
99
+ return null;
100
+ }
101
+ try {
102
+ return JSON.parse(readFileSync(settingsPath, "utf-8"));
103
+ }
104
+ catch {
105
+ return null;
106
+ }
107
+ }
108
+ /**
109
+ * Write settings to disk
110
+ */
111
+ export function writeSettings(settings) {
112
+ const settingsDir = getSettingsDir();
113
+ if (!existsSync(settingsDir)) {
114
+ mkdirSync(settingsDir, { recursive: true });
115
+ }
116
+ writeFileSync(getSettingsPath(), JSON.stringify(settings, null, 2) + "\n");
117
+ }
118
+ /**
119
+ * Check if Claude Code CLI is available
120
+ */
121
+ export function isClaudeCliAvailable() {
122
+ try {
123
+ execSync("claude --version", { stdio: "ignore" });
124
+ return true;
125
+ }
126
+ catch {
127
+ return false;
128
+ }
129
+ }
130
+ /**
131
+ * Add the 0pflow marketplace to Claude Code
132
+ */
133
+ export function addMarketplace(mcpResult, stdio = "inherit") {
134
+ try {
135
+ const marketplaceSource = mcpResult.isLocal && mcpResult.packageRoot
136
+ ? mcpResult.packageRoot
137
+ : "timescale/0pflow";
138
+ execSync(`claude plugin marketplace add ${marketplaceSource}`, { stdio });
139
+ return { success: true };
140
+ }
141
+ catch (err) {
142
+ return {
143
+ success: false,
144
+ error: err instanceof Error ? err.message : String(err)
145
+ };
146
+ }
147
+ }
148
+ /**
149
+ * Uninstall the 0pflow plugin and marketplace from Claude Code (if present).
150
+ */
151
+ export function uninstallPlugin(stdio = "inherit") {
152
+ try {
153
+ execSync("claude plugin uninstall 0pflow", { stdio });
154
+ }
155
+ catch {
156
+ // Plugin may not be installed — ignore
157
+ }
158
+ try {
159
+ execSync("claude plugin marketplace remove 0pflow", { stdio });
160
+ }
161
+ catch {
162
+ // Marketplace may not be registered — ignore
163
+ }
164
+ }
165
+ /**
166
+ * Install the 0pflow plugin to Claude Code
167
+ */
168
+ export function installPlugin(stdio = "inherit") {
169
+ try {
170
+ execSync("claude plugin install 0pflow", { stdio });
171
+ return { success: true };
172
+ }
173
+ catch (err) {
174
+ return {
175
+ success: false,
176
+ error: err instanceof Error ? err.message : String(err)
177
+ };
178
+ }
179
+ }
180
+ /**
181
+ * Run the install command
182
+ */
183
+ export async function runInstall(options = {}) {
184
+ const { verbose = false } = options;
185
+ // Check if Claude CLI is available
186
+ if (!isClaudeCliAvailable()) {
187
+ console.log(pc.red("Error: Claude Code CLI not found."));
188
+ console.log(pc.dim("Install Claude Code first: https://claude.ai/code"));
189
+ process.exit(1);
190
+ }
191
+ // Build MCP command from current invocation
192
+ const mcpResult = buildMcpCommand();
193
+ if (verbose) {
194
+ console.log(pc.dim("MCP command:"), mcpResult.command.join(" "));
195
+ }
196
+ // Check for existing installation
197
+ const existingSettings = readSettings();
198
+ if (existingSettings && !options.force) {
199
+ console.log(pc.yellow("Already installed."), pc.dim("Use --force to reinstall."));
200
+ return;
201
+ }
202
+ if (existingSettings) {
203
+ console.log(pc.dim("Existing installation found, reinstalling (--force)..."));
204
+ await runUninstall({ verbose });
205
+ }
206
+ // Write settings
207
+ const settings = {
208
+ mcpCommand: mcpResult.command,
209
+ installedAt: new Date().toISOString(),
210
+ };
211
+ writeSettings(settings);
212
+ // Development mode: just show the command to use
213
+ if (mcpResult.isLocal) {
214
+ // Build the run command from the MCP command (same tsx + script, different subcommand)
215
+ const initCmd = mcpResult.command.slice(0, -2).concat("run").join(" ");
216
+ printBanner();
217
+ console.log(pc.yellow("Development mode detected"));
218
+ console.log();
219
+ console.log(pc.bold("Next step:"));
220
+ console.log(pc.cyan(` ${initCmd}`));
221
+ console.log();
222
+ return;
223
+ }
224
+ // Add marketplace (suppress claude CLI output in non-verbose mode)
225
+ const stdio = verbose ? "inherit" : "ignore";
226
+ const marketplaceResult = addMarketplace(mcpResult, stdio);
227
+ const pluginResult = installPlugin(stdio);
228
+ if (verbose) {
229
+ console.log(marketplaceResult.success ? pc.green("✓ Marketplace added") : pc.yellow("⚠ Marketplace may already exist"));
230
+ console.log(pluginResult.success ? pc.green("✓ Plugin installed") : pc.red("✗ Plugin install failed"));
231
+ }
232
+ if (pluginResult.success) {
233
+ const initCmd = `npx -y 0pflow@${getNpmVersionForMcp()} run`;
234
+ printBanner();
235
+ console.log(pc.green("✓"), "Installed successfully");
236
+ console.log();
237
+ console.log(pc.bold("Next step:"));
238
+ console.log(pc.cyan(` ${initCmd}`));
239
+ console.log();
240
+ }
241
+ else {
242
+ console.log(pc.red("✗"), "Installation failed");
243
+ process.exit(1);
244
+ }
245
+ }
246
+ /**
247
+ * Run the uninstall command
248
+ */
249
+ export async function runUninstall(options = {}) {
250
+ const { verbose = false } = options;
251
+ const stdio = verbose ? "inherit" : "ignore";
252
+ // Uninstall plugin and marketplace from Claude
253
+ if (isClaudeCliAvailable()) {
254
+ uninstallPlugin(stdio);
255
+ if (verbose)
256
+ console.log(pc.green("✓"), "Plugin uninstalled");
257
+ }
258
+ // Remove settings file
259
+ const settingsPath = getSettingsPath();
260
+ if (existsSync(settingsPath)) {
261
+ const { unlinkSync } = await import("node:fs");
262
+ unlinkSync(settingsPath);
263
+ if (verbose)
264
+ console.log(pc.green("✓"), "Settings file removed");
265
+ }
266
+ if (verbose) {
267
+ console.log(pc.green("Uninstalled."));
268
+ }
269
+ }
270
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/cli/install.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scaffolding.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/lib/scaffolding.ts"],"names":[],"mappings":"AA6FA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,WAAW,CAAC,EAChC,OAAO,EACP,SAAS,EACT,WAAkB,GACnB,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA2C9C;AAID,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,cAAc,CAAC,EACnC,IAAI,GACL,GAAE,kBAAuB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA0CzD;AAID,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,cAAc,CAAC,EACnC,SAAS,EACT,SAAS,EACT,OAAO,GACR,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA2JpD"}
1
+ {"version":3,"file":"scaffolding.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/lib/scaffolding.ts"],"names":[],"mappings":"AAqDA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,WAAW,CAAC,EAChC,OAAO,EACP,SAAS,EACT,WAAkB,GACnB,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAkD9C;AAID,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,cAAc,CAAC,EACnC,IAAI,GACL,GAAE,kBAAuB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA0CzD;AAID,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,cAAc,CAAC,EACnC,SAAS,EACT,SAAS,EACT,OAAO,GACR,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA+JpD"}
@@ -38,37 +38,6 @@ function buildConnectionString(originalUrl, user, password) {
38
38
  }
39
39
  return parsed.toString();
40
40
  }
41
- function isProductionMode() {
42
- const scriptPath = process.argv[1];
43
- // Production: running from npx cache or node_modules
44
- return scriptPath?.includes('.npm/_npx') || scriptPath?.includes('node_modules/0pflow') || false;
45
- }
46
- async function writeClaudeSettings(appPath) {
47
- const claudeDir = join(appPath, '.claude');
48
- mkdirSync(claudeDir, { recursive: true });
49
- // Get git commit SHA from auto-generated version.ts
50
- // This pins the marketplace to the exact same commit as the MCP server
51
- const { BUILD_INFO } = await import('../../../version.js');
52
- const source = {
53
- source: "github",
54
- repo: "timescale/0pflow"
55
- };
56
- // Only add sha field if commit is available
57
- if (BUILD_INFO.commit) {
58
- source.sha = BUILD_INFO.commit;
59
- }
60
- await writeFile(join(claudeDir, 'settings.json'), JSON.stringify({
61
- "$schema": "https://json.schemastore.org/claude-code-settings.json",
62
- "extraKnownMarketplaces": {
63
- "0pflow": {
64
- source
65
- }
66
- },
67
- "enabledPlugins": {
68
- "0pflow@0pflow": true
69
- }
70
- }, null, 2) + '\n');
71
- }
72
41
  export async function scaffoldApp({ appName, directory, installDeps = true, }) {
73
42
  const appPath = resolve(process.cwd(), directory);
74
43
  if (!existsSync(appPath)) {
@@ -77,13 +46,12 @@ export async function scaffoldApp({ appName, directory, installDeps = true, }) {
77
46
  try {
78
47
  await writeAppTemplates(appPath, {
79
48
  app_name: appName,
80
- opflow_version: version,
49
+ // - Dev mode (monorepo via npm link): "dev" dist-tag
50
+ // - Installed from 0pflow@dev (e.g. 0.1.0-dev.c6251ba): "dev" dist-tag
51
+ // - Installed from 0pflow@latest (e.g. 0.1.0): exact version
52
+ opflow_version: isDevMode() || version.includes("-dev.") ? "dev" : version,
81
53
  });
82
54
  await create0pflowDirectories(appPath);
83
- // Only create .claude/settings.json in production mode
84
- if (isProductionMode()) {
85
- await writeClaudeSettings(appPath);
86
- }
87
55
  // In dev mode, link local 0pflow packages
88
56
  if (isDevMode()) {
89
57
  const corePath = join(monorepoRoot, "packages", "core");
@@ -93,6 +61,15 @@ export async function scaffoldApp({ appName, directory, installDeps = true, }) {
93
61
  if (installDeps) {
94
62
  await execAsync("npm install", appPath);
95
63
  }
64
+ // Initialize git repo with initial commit
65
+ try {
66
+ await execAsync("git init", appPath);
67
+ await execAsync("git add -A", appPath);
68
+ await execAsync('git commit -m "Initial commit"', appPath);
69
+ }
70
+ catch {
71
+ // git not available — continue without repo
72
+ }
96
73
  return {
97
74
  success: true,
98
75
  message: `Created 0pflow app '${appName}' in ${appPath}`,
@@ -150,6 +127,9 @@ export async function createDatabase({ name, } = {}) {
150
127
  export async function setupAppSchema({ directory, serviceId, appName, }) {
151
128
  const appDir = resolve(process.cwd(), directory);
152
129
  const envPath = join(appDir, ".env");
130
+ // Sanitize app name into a valid PostgreSQL identifier
131
+ // (replace hyphens/dots with underscores, strip anything else non-alphanumeric)
132
+ const pgName = appName.replace(/[-. ]/g, "_").replace(/[^a-zA-Z0-9_]/g, "");
153
133
  // Check if already run
154
134
  if (existsSync(envPath)) {
155
135
  const envContent = await readFile(envPath, "utf-8");
@@ -158,8 +138,8 @@ export async function setupAppSchema({ directory, serviceId, appName, }) {
158
138
  return {
159
139
  success: true,
160
140
  message: "DATABASE_SCHEMA already set in .env. Delete it and re-run if you need to regenerate.",
161
- schema_name: appName,
162
- user_name: appName,
141
+ schema_name: pgName,
142
+ user_name: pgName,
163
143
  };
164
144
  }
165
145
  }
@@ -189,26 +169,26 @@ export async function setupAppSchema({ directory, serviceId, appName, }) {
189
169
  }
190
170
  const pool = new pg.Pool({ connectionString: adminConnectionString, max: 1 });
191
171
  try {
192
- const existingUser = await pool.query(`SELECT 1 FROM pg_catalog.pg_roles WHERE rolname = $1`, [appName]);
172
+ const existingUser = await pool.query(`SELECT 1 FROM pg_catalog.pg_roles WHERE rolname = $1`, [pgName]);
193
173
  if (existingUser.rows.length > 0) {
194
174
  return {
195
175
  success: false,
196
- message: `User '${appName}' already exists. Choose a different app name or delete the existing user.`,
176
+ message: `User '${pgName}' already exists. Choose a different app name or delete the existing user.`,
197
177
  };
198
178
  }
199
179
  const appPassword = generatePassword();
200
- await pool.query(`CREATE ROLE ${appName} WITH LOGIN PASSWORD '${appPassword}'`);
201
- await pool.query(`GRANT ${appName} TO tsdbadmin WITH INHERIT TRUE`);
202
- await pool.query(`CREATE SCHEMA IF NOT EXISTS ${appName} AUTHORIZATION ${appName}`);
203
- await pool.query(`CREATE SCHEMA IF NOT EXISTS ${appName}_dbos AUTHORIZATION ${appName}`);
204
- await pool.query(`GRANT CREATE ON DATABASE tsdb TO ${appName}`);
205
- await pool.query(`REVOKE CREATE ON SCHEMA public FROM ${appName}`);
206
- await pool.query(`GRANT USAGE ON SCHEMA public TO ${appName}`);
207
- await pool.query(`ALTER ROLE ${appName} SET search_path TO ${appName}, ${appName}_dbos, public`);
180
+ await pool.query(`CREATE ROLE ${pgName} WITH LOGIN PASSWORD '${appPassword}'`);
181
+ await pool.query(`GRANT ${pgName} TO tsdbadmin WITH INHERIT TRUE`);
182
+ await pool.query(`CREATE SCHEMA IF NOT EXISTS ${pgName} AUTHORIZATION ${pgName}`);
183
+ await pool.query(`CREATE SCHEMA IF NOT EXISTS ${pgName}_dbos AUTHORIZATION ${pgName}`);
184
+ await pool.query(`GRANT CREATE ON DATABASE tsdb TO ${pgName}`);
185
+ await pool.query(`REVOKE CREATE ON SCHEMA public FROM ${pgName}`);
186
+ await pool.query(`GRANT USAGE ON SCHEMA public TO ${pgName}`);
187
+ await pool.query(`ALTER ROLE ${pgName} SET search_path TO ${pgName}, ${pgName}_dbos, public`);
208
188
  const currentPath = await pool.query(`SELECT setting FROM pg_settings WHERE name = 'search_path'`);
209
189
  const existingPath = currentPath.rows[0]?.setting ?? "public";
210
- if (!existingPath.includes(appName)) {
211
- await pool.query(`ALTER ROLE tsdbadmin SET search_path TO ${existingPath}, ${appName}, ${appName}_dbos`);
190
+ if (!existingPath.includes(pgName)) {
191
+ await pool.query(`ALTER ROLE tsdbadmin SET search_path TO ${existingPath}, ${pgName}, ${pgName}_dbos`);
212
192
  }
213
193
  const existingAdmin = await pool.query(`SELECT 1 FROM pg_catalog.pg_roles WHERE rolname = 'dbosadmin'`);
214
194
  let dbosAdminPassword;
@@ -216,14 +196,14 @@ export async function setupAppSchema({ directory, serviceId, appName, }) {
216
196
  dbosAdminPassword = generatePassword();
217
197
  await pool.query(`CREATE ROLE dbosadmin WITH LOGIN CREATEDB PASSWORD '${dbosAdminPassword}'`);
218
198
  }
219
- const appDatabaseUrl = buildConnectionString(adminConnectionString, appName, appPassword);
199
+ const appDatabaseUrl = buildConnectionString(adminConnectionString, pgName, appPassword);
220
200
  let envContent = "";
221
201
  if (existsSync(envPath)) {
222
202
  envContent = await readFile(envPath, "utf-8");
223
203
  }
224
204
  const env = dotenv.parse(envContent);
225
205
  env.DATABASE_URL = appDatabaseUrl;
226
- env.DATABASE_SCHEMA = appName;
206
+ env.DATABASE_SCHEMA = pgName;
227
207
  if (dbosAdminPassword) {
228
208
  env.DBOS_ADMIN_URL = buildConnectionString(adminConnectionString, "dbosadmin", dbosAdminPassword);
229
209
  }
@@ -232,7 +212,7 @@ export async function setupAppSchema({ directory, serviceId, appName, }) {
232
212
  .join("\n");
233
213
  await writeFile(envPath, `${newEnvContent}\n`);
234
214
  // Create the opflow_connections table so it's ready before the dev UI launches
235
- await ensureConnectionsTable(appDatabaseUrl, appName);
215
+ await ensureConnectionsTable(appDatabaseUrl, pgName);
236
216
  }
237
217
  catch (err) {
238
218
  const error = err;
@@ -246,9 +226,9 @@ export async function setupAppSchema({ directory, serviceId, appName, }) {
246
226
  }
247
227
  return {
248
228
  success: true,
249
- message: `Created schema '${appName}' and user '${appName}'. DATABASE_URL and DATABASE_SCHEMA written to .env.`,
250
- schema_name: appName,
251
- user_name: appName,
229
+ message: `Created schema '${pgName}' and user '${pgName}'. DATABASE_URL and DATABASE_SCHEMA written to .env.`,
230
+ schema_name: pgName,
231
+ user_name: pgName,
252
232
  };
253
233
  }
254
234
  //# sourceMappingURL=scaffolding.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scaffolding.js","sourceRoot":"","sources":["../../../../src/cli/mcp/lib/scaffolding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scaffolding.js","sourceRoot":"","sources":["../../../../src/cli/mcp/lib/scaffolding.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAmHA,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAsT5C"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AA0SA,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAwT5C"}