0pflow 0.1.0-dev.b4bf1ab → 0.1.0-dev.c6251ba
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/__tests__/factory.test.js +7 -0
- package/dist/__tests__/factory.test.js.map +1 -1
- package/dist/__tests__/integration.e2e.test.js +2 -1
- package/dist/__tests__/integration.e2e.test.js.map +1 -1
- package/dist/__tests__/integration.test.js +87 -82
- package/dist/__tests__/integration.test.js.map +1 -1
- package/dist/agent.d.ts +7 -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/app.d.ts +6 -0
- package/dist/cli/app.d.ts.map +1 -1
- package/dist/cli/app.js +27 -0
- package/dist/cli/app.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.map +1 -1
- package/dist/cli/index.js +124 -11
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/install.d.ts.map +1 -1
- package/dist/cli/install.js +39 -9
- 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 +219 -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 +111 -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 +94 -1
- package/dist/cli/mcp/tools/index.d.ts.map +1 -1
- package/dist/cli/mcp/tools/index.js +16 -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/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/run.d.ts +2 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +485 -0
- package/dist/cli/run.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 +48 -0
- package/dist/connections/resolver.js.map +1 -0
- package/dist/connections/schema.d.ts +8 -0
- package/dist/connections/schema.d.ts.map +1 -0
- package/dist/connections/schema.js +31 -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 +16 -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 +716 -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 +18 -0
- package/dist/dev-ui/dev-server.d.ts.map +1 -0
- package/dist/dev-ui/dev-server.js +222 -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/pty.d.ts +16 -0
- package/dist/dev-ui/pty.d.ts.map +1 -0
- package/dist/dev-ui/pty.js +87 -0
- package/dist/dev-ui/pty.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 +52 -0
- package/dist/dev-ui/ws.d.ts.map +1 -0
- package/dist/dev-ui/ws.js +32 -0
- package/dist/dev-ui/ws.js.map +1 -0
- package/dist/dev-ui-client/assets/index-C-LxzUII.css +32 -0
- package/dist/dev-ui-client/assets/index-DAKTQEvj.js +1 -0
- package/dist/dev-ui-client/assets/index-aAIwXl4O.js +127 -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 +21 -3
- 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 +97 -2
- package/dist/workflow.js.map +1 -1
- package/package.json +28 -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
|
@@ -1,16 +1,11 @@
|
|
|
1
|
-
import { exec } from "node:child_process";
|
|
2
|
-
import { existsSync } from "node:fs";
|
|
3
|
-
import { readFile, writeFile } from "node:fs/promises";
|
|
4
|
-
import { join, resolve } from "node:path";
|
|
5
|
-
import { promisify } from "node:util";
|
|
6
|
-
import * as dotenv from "dotenv";
|
|
7
|
-
import postgres from "postgres";
|
|
8
1
|
import { z } from "zod";
|
|
9
|
-
|
|
2
|
+
import { setupAppSchema } from "../lib/scaffolding.js";
|
|
10
3
|
const inputSchema = {
|
|
11
|
-
|
|
4
|
+
directory: z
|
|
12
5
|
.string()
|
|
13
|
-
.
|
|
6
|
+
.optional()
|
|
7
|
+
.default(".")
|
|
8
|
+
.describe("Directory of the application, relative to cwd (default: current working directory)"),
|
|
14
9
|
service_id: z.string().describe("Tiger Cloud service ID for the database"),
|
|
15
10
|
app_name: z
|
|
16
11
|
.string()
|
|
@@ -23,23 +18,6 @@ const outputSchema = {
|
|
|
23
18
|
schema_name: z.string().optional().describe("Name of the created schema"),
|
|
24
19
|
user_name: z.string().optional().describe("Name of the created user"),
|
|
25
20
|
};
|
|
26
|
-
function generatePassword(length = 24) {
|
|
27
|
-
const chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
|
28
|
-
let password = "";
|
|
29
|
-
for (let i = 0; i < length; i++) {
|
|
30
|
-
password += chars.charAt(Math.floor(Math.random() * chars.length));
|
|
31
|
-
}
|
|
32
|
-
return password;
|
|
33
|
-
}
|
|
34
|
-
function buildConnectionString(originalUrl, user, password) {
|
|
35
|
-
const parsed = new URL(originalUrl);
|
|
36
|
-
parsed.username = user;
|
|
37
|
-
parsed.password = encodeURIComponent(password);
|
|
38
|
-
if (!parsed.searchParams.has("uselibpqcompat")) {
|
|
39
|
-
parsed.searchParams.set("uselibpqcompat", "true");
|
|
40
|
-
}
|
|
41
|
-
return parsed.toString();
|
|
42
|
-
}
|
|
43
21
|
export const setupAppSchemaFactory = () => {
|
|
44
22
|
return {
|
|
45
23
|
name: "setup_app_schema",
|
|
@@ -49,108 +27,12 @@ export const setupAppSchemaFactory = () => {
|
|
|
49
27
|
inputSchema,
|
|
50
28
|
outputSchema,
|
|
51
29
|
},
|
|
52
|
-
fn: async ({
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const env = dotenv.parse(envContent);
|
|
59
|
-
if (env.DATABASE_SCHEMA) {
|
|
60
|
-
return {
|
|
61
|
-
success: true,
|
|
62
|
-
message: "DATABASE_SCHEMA already set in .env. Delete it and re-run if you need to regenerate.",
|
|
63
|
-
schema_name: app_name,
|
|
64
|
-
user_name: app_name,
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
// Get database connection string from Tiger
|
|
69
|
-
let adminConnectionString;
|
|
70
|
-
try {
|
|
71
|
-
const { stdout: serviceJson } = await execAsync(`tiger service get ${service_id} --with-password -o json`);
|
|
72
|
-
const serviceDetails = JSON.parse(serviceJson);
|
|
73
|
-
if (!serviceDetails.connection_string) {
|
|
74
|
-
return {
|
|
75
|
-
success: false,
|
|
76
|
-
message: "connection_string not found in service details",
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
adminConnectionString = serviceDetails.connection_string;
|
|
80
|
-
}
|
|
81
|
-
catch (err) {
|
|
82
|
-
const error = err;
|
|
83
|
-
return {
|
|
84
|
-
success: false,
|
|
85
|
-
message: `Failed to get service details: ${error.message}`,
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
// Connect using postgres.js as admin
|
|
89
|
-
const sql = postgres(adminConnectionString);
|
|
90
|
-
try {
|
|
91
|
-
// Check if user already exists
|
|
92
|
-
const existingUser = await sql `
|
|
93
|
-
SELECT 1 FROM pg_catalog.pg_roles WHERE rolname = ${app_name}
|
|
94
|
-
`;
|
|
95
|
-
if (existingUser.length > 0) {
|
|
96
|
-
await sql.end();
|
|
97
|
-
return {
|
|
98
|
-
success: false,
|
|
99
|
-
message: `User '${app_name}' already exists. Choose a different app name or delete the existing user.`,
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
// Create new user
|
|
103
|
-
const appPassword = generatePassword();
|
|
104
|
-
await sql.unsafe(`CREATE ROLE ${app_name} WITH LOGIN PASSWORD '${appPassword}'`);
|
|
105
|
-
// Grant app role to tsdbadmin so admin can access app objects
|
|
106
|
-
await sql.unsafe(`GRANT ${app_name} TO tsdbadmin WITH INHERIT TRUE`);
|
|
107
|
-
// Create app schema owned by the app user
|
|
108
|
-
await sql.unsafe(`CREATE SCHEMA IF NOT EXISTS ${app_name} AUTHORIZATION ${app_name}`);
|
|
109
|
-
// Allow using extensions in public schema, but not creating objects there
|
|
110
|
-
await sql.unsafe(`REVOKE CREATE ON SCHEMA public FROM ${app_name}`);
|
|
111
|
-
await sql.unsafe(`GRANT USAGE ON SCHEMA public TO ${app_name}`);
|
|
112
|
-
// Set search_path for app user (app schema first, then public for extensions)
|
|
113
|
-
await sql.unsafe(`ALTER ROLE ${app_name} SET search_path TO ${app_name}, public`);
|
|
114
|
-
// Append app schema to tsdbadmin's search_path
|
|
115
|
-
const currentPath = await sql `
|
|
116
|
-
SELECT setting FROM pg_settings WHERE name = 'search_path'
|
|
117
|
-
`;
|
|
118
|
-
const existingPath = currentPath[0]?.setting ?? "public";
|
|
119
|
-
if (!existingPath.includes(app_name)) {
|
|
120
|
-
await sql.unsafe(`ALTER ROLE tsdbadmin SET search_path TO ${existingPath}, ${app_name}`);
|
|
121
|
-
}
|
|
122
|
-
await sql.end();
|
|
123
|
-
// Build app connection string
|
|
124
|
-
const appDatabaseUrl = buildConnectionString(adminConnectionString, app_name, appPassword);
|
|
125
|
-
// Write or update .env file
|
|
126
|
-
let envContent = "";
|
|
127
|
-
if (existsSync(envPath)) {
|
|
128
|
-
envContent = await readFile(envPath, "utf-8");
|
|
129
|
-
}
|
|
130
|
-
// Update or add DATABASE_URL and DATABASE_SCHEMA
|
|
131
|
-
const env = dotenv.parse(envContent);
|
|
132
|
-
env.DATABASE_URL = appDatabaseUrl;
|
|
133
|
-
env.DATABASE_SCHEMA = app_name;
|
|
134
|
-
// Rebuild .env content
|
|
135
|
-
const newEnvContent = Object.entries(env)
|
|
136
|
-
.map(([key, value]) => `${key}="${value}"`)
|
|
137
|
-
.join("\n");
|
|
138
|
-
await writeFile(envPath, `${newEnvContent}\n`);
|
|
139
|
-
}
|
|
140
|
-
catch (err) {
|
|
141
|
-
await sql.end();
|
|
142
|
-
const error = err;
|
|
143
|
-
return {
|
|
144
|
-
success: false,
|
|
145
|
-
message: `Failed to set up app schema: ${error.message}`,
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
return {
|
|
149
|
-
success: true,
|
|
150
|
-
message: `Created schema '${app_name}' and user '${app_name}'. DATABASE_URL and DATABASE_SCHEMA written to .env.`,
|
|
151
|
-
schema_name: app_name,
|
|
152
|
-
user_name: app_name,
|
|
153
|
-
};
|
|
30
|
+
fn: async ({ directory, service_id, app_name, }) => {
|
|
31
|
+
return setupAppSchema({
|
|
32
|
+
directory,
|
|
33
|
+
serviceId: service_id,
|
|
34
|
+
appName: app_name,
|
|
35
|
+
});
|
|
154
36
|
},
|
|
155
37
|
};
|
|
156
38
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupAppSchema.js","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/setupAppSchema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setupAppSchema.js","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/setupAppSchema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,MAAM,WAAW,GAAG;IAClB,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,GAAG,CAAC;SACZ,QAAQ,CAAC,oFAAoF,CAAC;IACjG,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;IAC1E,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,KAAK,CACJ,mBAAmB,EACnB,kFAAkF,CACnF;SACA,QAAQ,CACP,sFAAsF,CACvF;CACK,CAAC;AAEX,MAAM,YAAY,GAAG;IACnB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IACnE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAC9C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACzE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;CAC7D,CAAC;AASX,MAAM,CAAC,MAAM,qBAAqB,GAI9B,GAAG,EAAE;IACP,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE;YACN,KAAK,EAAE,kBAAkB;YACzB,WAAW,EACT,+KAA+K;YACjL,WAAW;YACX,YAAY;SACb;QACD,EAAE,EAAE,KAAK,EAAE,EACT,SAAS,EACT,UAAU,EACV,QAAQ,GACT,EAAyB,EAAE;YAC1B,OAAO,cAAc,CAAC;gBACpB,SAAS;gBACT,SAAS,EAAE,UAAU;gBACrB,OAAO,EAAE,QAAQ;aAClB,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/utils.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAK3C;AAGD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import dotenv from "dotenv";
|
|
4
|
+
/**
|
|
5
|
+
* Load .env directly from cwd — NOT via resolveEnv() which walks up
|
|
6
|
+
* the directory tree and may find a parent .env instead of the app's.
|
|
7
|
+
* Uses override: true so the app's values always win.
|
|
8
|
+
*/
|
|
9
|
+
function loadProjectEnv() {
|
|
10
|
+
const envPath = join(process.cwd(), ".env");
|
|
11
|
+
if (existsSync(envPath)) {
|
|
12
|
+
dotenv.config({ path: envPath, override: true, quiet: true });
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Load .env from cwd and return DATABASE_URL.
|
|
17
|
+
* Throws with a helpful message if not found.
|
|
18
|
+
*/
|
|
19
|
+
export function requireDatabaseUrl() {
|
|
20
|
+
loadProjectEnv();
|
|
21
|
+
const url = process.env.DATABASE_URL;
|
|
22
|
+
if (!url)
|
|
23
|
+
throw new Error("DATABASE_URL not set in .env");
|
|
24
|
+
return url;
|
|
25
|
+
}
|
|
26
|
+
// Re-export parseOutput for MCP tools to unwrap superjson DB rows
|
|
27
|
+
export { parseOutput } from "../../trace.js";
|
|
28
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B;;;;GAIG;AACH,SAAS,cAAc;IACrB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IAC5C,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,cAAc,EAAE,CAAC;IACjB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACrC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC1D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,kEAAkE;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAsLA,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAsV5C"}
|