0pflow 0.1.0-dev.b8b505d → 0.1.0-dev.b9c1f60
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__/factory.test.js +6 -0
- package/dist/__tests__/factory.test.js.map +1 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +16 -1
- package/dist/agent.js.map +1 -1
- package/dist/cli/app.d.ts.map +1 -1
- package/dist/cli/app.js +4 -0
- package/dist/cli/app.js.map +1 -1
- package/dist/cli/cloud-dev.d.ts +7 -0
- package/dist/cli/cloud-dev.d.ts.map +1 -0
- package/dist/cli/cloud-dev.js +569 -0
- package/dist/cli/cloud-dev.js.map +1 -0
- package/dist/cli/deploy.d.ts +27 -0
- package/dist/cli/deploy.d.ts.map +1 -0
- package/dist/cli/deploy.js +332 -0
- package/dist/cli/deploy.js.map +1 -0
- package/dist/cli/env.d.ts +3 -1
- package/dist/cli/env.d.ts.map +1 -1
- package/dist/cli/env.js +8 -3
- package/dist/cli/env.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +101 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/install.d.ts +67 -0
- package/dist/cli/install.d.ts.map +1 -0
- package/dist/cli/install.js +270 -0
- package/dist/cli/install.js.map +1 -0
- package/dist/cli/mcp/lib/scaffolding.d.ts.map +1 -1
- package/dist/cli/mcp/lib/scaffolding.js +36 -56
- package/dist/cli/mcp/lib/scaffolding.js.map +1 -1
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +270 -101
- package/dist/cli/run.js.map +1 -1
- package/dist/connections/cloud-auth.d.ts.map +1 -1
- package/dist/connections/cloud-auth.js +5 -1
- package/dist/connections/cloud-auth.js.map +1 -1
- package/dist/connections/cloud-client.d.ts.map +1 -1
- package/dist/connections/cloud-client.js +10 -3
- package/dist/connections/cloud-client.js.map +1 -1
- package/dist/connections/cloud-integration-provider.d.ts +2 -1
- package/dist/connections/cloud-integration-provider.d.ts.map +1 -1
- package/dist/connections/cloud-integration-provider.js +18 -2
- package/dist/connections/cloud-integration-provider.js.map +1 -1
- package/dist/connections/connection-labels.d.ts +14 -0
- package/dist/connections/connection-labels.d.ts.map +1 -0
- package/dist/connections/connection-labels.js +46 -0
- package/dist/connections/connection-labels.js.map +1 -0
- package/dist/connections/index.d.ts +1 -0
- package/dist/connections/index.d.ts.map +1 -1
- package/dist/connections/index.js +1 -0
- package/dist/connections/index.js.map +1 -1
- package/dist/connections/integration-provider.d.ts +1 -0
- package/dist/connections/integration-provider.d.ts.map +1 -1
- package/dist/connections/local-integration-provider.d.ts +2 -1
- package/dist/connections/local-integration-provider.d.ts.map +1 -1
- package/dist/connections/local-integration-provider.js +20 -3
- package/dist/connections/local-integration-provider.js.map +1 -1
- package/dist/connections/nango-client.d.ts +1 -1
- package/dist/connections/nango-client.d.ts.map +1 -1
- package/dist/connections/nango-client.js +3 -2
- package/dist/connections/nango-client.js.map +1 -1
- package/dist/dev-ui/api.d.ts +2 -0
- package/dist/dev-ui/api.d.ts.map +1 -1
- package/dist/dev-ui/api.js +36 -0
- package/dist/dev-ui/api.js.map +1 -1
- package/dist/dev-ui/deploy-api.d.ts +14 -0
- package/dist/dev-ui/deploy-api.d.ts.map +1 -0
- package/dist/dev-ui/deploy-api.js +112 -0
- package/dist/dev-ui/deploy-api.js.map +1 -0
- package/dist/dev-ui/dev-server.d.ts.map +1 -1
- package/dist/dev-ui/dev-server.js +55 -2
- package/dist/dev-ui/dev-server.js.map +1 -1
- package/dist/dev-ui/watcher.d.ts.map +1 -1
- package/dist/dev-ui/watcher.js +6 -2
- package/dist/dev-ui/watcher.js.map +1 -1
- package/dist/dev-ui/ws.d.ts +1 -1
- package/dist/dev-ui-client/assets/index-CKl0_jfo.js +176 -0
- package/dist/dev-ui-client/assets/index-D9wFwfPp.css +32 -0
- package/dist/dev-ui-client/index.html +2 -2
- package/dist/discover.d.ts.map +1 -1
- package/dist/discover.js +5 -2
- package/dist/discover.js.map +1 -1
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +12 -1
- package/dist/factory.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/registry-gen.d.ts +6 -0
- package/dist/registry-gen.d.ts.map +1 -0
- package/dist/registry-gen.js +146 -0
- package/dist/registry-gen.js.map +1 -0
- package/dist/types.d.ts +12 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +18 -1
- package/dist/types.js.map +1 -1
- package/dist/workflow.d.ts.map +1 -1
- package/dist/workflow.js +16 -1
- package/dist/workflow.js.map +1 -1
- package/package.json +4 -2
- package/templates/app/.dockerignore +6 -0
- package/templates/app/Dockerfile +34 -0
- package/templates/app/generated/registry.ts +8 -0
- package/templates/app/next.config.js +4 -1
- package/templates/app/package.json +2 -0
- package/templates/app/src/lib/pflow.ts +5 -6
- package/dist/dev-ui-client/assets/index-C-LxzUII.css +0 -32
- package/dist/dev-ui-client/assets/index-aAIwXl4O.js +0 -127
- package/dist/version.d.ts +0 -6
- package/dist/version.d.ts.map +0 -1
- package/dist/version.js +0 -7
- 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":"
|
|
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
|
-
|
|
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:
|
|
162
|
-
user_name:
|
|
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`, [
|
|
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 '${
|
|
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 ${
|
|
201
|
-
await pool.query(`GRANT ${
|
|
202
|
-
await pool.query(`CREATE SCHEMA IF NOT EXISTS ${
|
|
203
|
-
await pool.query(`CREATE SCHEMA IF NOT EXISTS ${
|
|
204
|
-
await pool.query(`GRANT CREATE ON DATABASE tsdb TO ${
|
|
205
|
-
await pool.query(`REVOKE CREATE ON SCHEMA public FROM ${
|
|
206
|
-
await pool.query(`GRANT USAGE ON SCHEMA public TO ${
|
|
207
|
-
await pool.query(`ALTER ROLE ${
|
|
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(
|
|
211
|
-
await pool.query(`ALTER ROLE tsdbadmin SET search_path TO ${existingPath}, ${
|
|
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,
|
|
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 =
|
|
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,
|
|
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 '${
|
|
250
|
-
schema_name:
|
|
251
|
-
user_name:
|
|
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":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAExE,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,GAAY,EAAE,EAAE,CAC9C,IAAI,OAAO,CAAqC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAClE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QAC3C,IAAI,KAAK;YAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;;YAC/C,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,yEAAyE;AACzE,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAEnD,SAAS,SAAS;IAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACxD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAM,GAAG,EAAE;IACnC,MAAM,KAAK,GACT,gEAAgE,CAAC;IACnE,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,qBAAqB,CAC5B,WAAmB,EACnB,IAAY,EACZ,QAAgB;IAEhB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IACpC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC/C,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC3B,CAAC;
|
|
1
|
+
{"version":3,"file":"scaffolding.js","sourceRoot":"","sources":["../../../../src/cli/mcp/lib/scaffolding.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AA0SA,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAwT5C"}
|