0pflow 0.1.0-dev.b4bf1ab → 0.1.0-dev.bdfaa95
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +13 -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 +75 -10
- 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/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/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 +142 -11
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/install.d.ts +4 -0
- package/dist/cli/install.d.ts.map +1 -1
- package/dist/cli/install.js +63 -32
- 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 +231 -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 +560 -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 +247 -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 +22 -0
- package/dist/connections/cloud-integration-provider.d.ts.map +1 -0
- package/dist/connections/cloud-integration-provider.js +41 -0
- package/dist/connections/cloud-integration-provider.js.map +1 -0
- 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 +12 -0
- package/dist/connections/index.d.ts.map +1 -0
- package/dist/connections/index.js +10 -0
- package/dist/connections/index.js.map +1 -0
- package/dist/connections/integration-provider.d.ts +39 -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 +29 -0
- package/dist/connections/local-integration-provider.d.ts.map +1 -0
- package/dist/connections/local-integration-provider.js +70 -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 +18 -0
- package/dist/dev-ui/api.d.ts.map +1 -0
- package/dist/dev-ui/api.js +273 -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/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 +18 -0
- package/dist/dev-ui/dev-server.d.ts.map +1 -0
- package/dist/dev-ui/dev-server.js +273 -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 +166 -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-CFhxfKAk.js +176 -0
- package/dist/dev-ui-client/assets/index-D9wFwfPp.css +32 -0
- package/dist/dev-ui-client/assets/index-DAKTQEvj.js +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 +32 -0
- package/dist/discover.js.map +1 -0
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +37 -13
- package/dist/factory.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -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/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 +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 +113 -3
- package/dist/workflow.js.map +1 -1
- package/package.json +30 -6
- package/templates/app/.dockerignore +6 -0
- package/templates/app/.env.example +13 -0
- package/templates/app/Dockerfile +34 -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/generated/registry.ts +8 -0
- package/templates/app/next.config.js +13 -0
- package/templates/app/package.json +57 -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 +28 -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/mcp/config.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/config.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,WAAW,QAAoC,CAAC;AAG7D,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/config.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,WAAW,QAAoC,CAAC;AAG7D,eAAO,MAAM,YAAY,QAAiC,CAAC;AAM3D,eAAO,MAAM,OAAO,EAAE,MAAoB,CAAC"}
|
package/dist/cli/mcp/config.js
CHANGED
|
@@ -4,10 +4,8 @@ import { fileURLToPath } from "node:url";
|
|
|
4
4
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
5
5
|
// Package root directory (relative to dist/cli/mcp/)
|
|
6
6
|
export const packageRoot = join(__dirname, "..", "..", "..");
|
|
7
|
-
//
|
|
8
|
-
export const
|
|
9
|
-
// Templates directory at monorepo root level
|
|
10
|
-
export const templatesDir = join(monorepoRoot, "templates");
|
|
7
|
+
// Templates directory (bundled with the package)
|
|
8
|
+
export const templatesDir = join(packageRoot, "templates");
|
|
11
9
|
// Read version from package.json
|
|
12
10
|
const pkg = JSON.parse(readFileSync(join(packageRoot, "package.json"), "utf-8"));
|
|
13
11
|
export const version = pkg.version;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/mcp/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,qDAAqD;AACrD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAE7D,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/mcp/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,qDAAqD;AACrD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAE7D,iDAAiD;AACjD,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAE3D,iCAAiC;AACjC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CACzD,CAAC;AACF,MAAM,CAAC,MAAM,OAAO,GAAW,GAAG,CAAC,OAAO,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export interface ScaffoldAppOpts {
|
|
2
|
+
appName: string;
|
|
3
|
+
directory: string;
|
|
4
|
+
installDeps?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface ScaffoldAppResult {
|
|
7
|
+
success: boolean;
|
|
8
|
+
message: string;
|
|
9
|
+
path?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function scaffoldApp({ appName, directory, installDeps, }: ScaffoldAppOpts): Promise<ScaffoldAppResult>;
|
|
12
|
+
export interface CreateDatabaseOpts {
|
|
13
|
+
name?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface CreateDatabaseResult {
|
|
16
|
+
success: boolean;
|
|
17
|
+
service_id?: string;
|
|
18
|
+
error?: string;
|
|
19
|
+
}
|
|
20
|
+
export declare function createDatabase({ name, }?: CreateDatabaseOpts): Promise<CreateDatabaseResult>;
|
|
21
|
+
export interface SetupAppSchemaOpts {
|
|
22
|
+
directory: string;
|
|
23
|
+
serviceId: string;
|
|
24
|
+
appName: string;
|
|
25
|
+
}
|
|
26
|
+
export interface SetupAppSchemaResult {
|
|
27
|
+
success: boolean;
|
|
28
|
+
message: string;
|
|
29
|
+
schema_name?: string;
|
|
30
|
+
user_name?: string;
|
|
31
|
+
}
|
|
32
|
+
export declare function setupAppSchema({ directory, serviceId, appName, }: SetupAppSchemaOpts): Promise<SetupAppSchemaResult>;
|
|
33
|
+
//# sourceMappingURL=scaffolding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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,CA2JpD"}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { exec } from "node:child_process";
|
|
2
|
+
import { existsSync, mkdirSync } from "node:fs";
|
|
3
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
4
|
+
import { join, resolve } from "node:path";
|
|
5
|
+
import * as dotenv from "dotenv";
|
|
6
|
+
import pg from "pg";
|
|
7
|
+
import { packageRoot, version } from "../config.js";
|
|
8
|
+
import { writeAppTemplates, create0pflowDirectories } from "../lib/templates.js";
|
|
9
|
+
import { ensureConnectionsTable } from "../../../connections/schema.js";
|
|
10
|
+
const execAsync = (cmd, cwd) => new Promise((resolve, reject) => {
|
|
11
|
+
exec(cmd, { cwd }, (error, stdout, stderr) => {
|
|
12
|
+
if (error)
|
|
13
|
+
reject(Object.assign(error, { stderr }));
|
|
14
|
+
else
|
|
15
|
+
resolve({ stdout, stderr });
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
// Monorepo root (only valid in dev mode when running from packages/core)
|
|
19
|
+
const monorepoRoot = join(packageRoot, "..", "..");
|
|
20
|
+
function isDevMode() {
|
|
21
|
+
const corePath = join(monorepoRoot, "packages", "core");
|
|
22
|
+
return existsSync(corePath);
|
|
23
|
+
}
|
|
24
|
+
function generatePassword(length = 24) {
|
|
25
|
+
const chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
|
26
|
+
let password = "";
|
|
27
|
+
for (let i = 0; i < length; i++) {
|
|
28
|
+
password += chars.charAt(Math.floor(Math.random() * chars.length));
|
|
29
|
+
}
|
|
30
|
+
return password;
|
|
31
|
+
}
|
|
32
|
+
function buildConnectionString(originalUrl, user, password) {
|
|
33
|
+
const parsed = new URL(originalUrl);
|
|
34
|
+
parsed.username = user;
|
|
35
|
+
parsed.password = encodeURIComponent(password);
|
|
36
|
+
if (!parsed.searchParams.has("uselibpqcompat")) {
|
|
37
|
+
parsed.searchParams.set("uselibpqcompat", "true");
|
|
38
|
+
}
|
|
39
|
+
return parsed.toString();
|
|
40
|
+
}
|
|
41
|
+
export async function scaffoldApp({ appName, directory, installDeps = true, }) {
|
|
42
|
+
const appPath = resolve(process.cwd(), directory);
|
|
43
|
+
if (!existsSync(appPath)) {
|
|
44
|
+
mkdirSync(appPath, { recursive: true });
|
|
45
|
+
}
|
|
46
|
+
try {
|
|
47
|
+
await writeAppTemplates(appPath, {
|
|
48
|
+
app_name: appName,
|
|
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,
|
|
53
|
+
});
|
|
54
|
+
await create0pflowDirectories(appPath);
|
|
55
|
+
// In dev mode, link local 0pflow packages
|
|
56
|
+
if (isDevMode()) {
|
|
57
|
+
const corePath = join(monorepoRoot, "packages", "core");
|
|
58
|
+
await execAsync("npm link", corePath);
|
|
59
|
+
await execAsync("npm link 0pflow", appPath);
|
|
60
|
+
}
|
|
61
|
+
if (installDeps) {
|
|
62
|
+
await execAsync("npm install", appPath);
|
|
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
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
success: true,
|
|
75
|
+
message: `Created 0pflow app '${appName}' in ${appPath}`,
|
|
76
|
+
path: appPath,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
catch (err) {
|
|
80
|
+
const error = err;
|
|
81
|
+
return {
|
|
82
|
+
success: false,
|
|
83
|
+
message: `Failed to create app: ${error.message}\n${error.stderr || ""}`,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
export async function createDatabase({ name, } = {}) {
|
|
88
|
+
const dbName = name || "app-db";
|
|
89
|
+
const cmdArgs = [
|
|
90
|
+
"tiger",
|
|
91
|
+
"service",
|
|
92
|
+
"create",
|
|
93
|
+
"--name",
|
|
94
|
+
dbName,
|
|
95
|
+
"--cpu",
|
|
96
|
+
"shared",
|
|
97
|
+
"--memory",
|
|
98
|
+
"shared",
|
|
99
|
+
"--addons",
|
|
100
|
+
"time-series,ai",
|
|
101
|
+
"--no-wait",
|
|
102
|
+
"-o",
|
|
103
|
+
"json",
|
|
104
|
+
];
|
|
105
|
+
try {
|
|
106
|
+
const { stdout, stderr } = await execAsync(cmdArgs.join(" "));
|
|
107
|
+
const result = JSON.parse(stdout);
|
|
108
|
+
if (!result.service_id) {
|
|
109
|
+
return {
|
|
110
|
+
success: false,
|
|
111
|
+
error: `No service_id in response: ${stdout}${stderr}`,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
success: true,
|
|
116
|
+
service_id: result.service_id,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
catch (err) {
|
|
120
|
+
const error = err;
|
|
121
|
+
return {
|
|
122
|
+
success: false,
|
|
123
|
+
error: `Failed to create database: ${error.message}\n${error.stdout || ""}${error.stderr || ""}`,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
export async function setupAppSchema({ directory, serviceId, appName, }) {
|
|
128
|
+
const appDir = resolve(process.cwd(), directory);
|
|
129
|
+
const envPath = join(appDir, ".env");
|
|
130
|
+
// Check if already run
|
|
131
|
+
if (existsSync(envPath)) {
|
|
132
|
+
const envContent = await readFile(envPath, "utf-8");
|
|
133
|
+
const env = dotenv.parse(envContent);
|
|
134
|
+
if (env.DATABASE_SCHEMA) {
|
|
135
|
+
return {
|
|
136
|
+
success: true,
|
|
137
|
+
message: "DATABASE_SCHEMA already set in .env. Delete it and re-run if you need to regenerate.",
|
|
138
|
+
schema_name: appName,
|
|
139
|
+
user_name: appName,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// Get database connection string from Tiger
|
|
144
|
+
let adminConnectionString;
|
|
145
|
+
try {
|
|
146
|
+
const { stdout: serviceJson } = await execAsync(`tiger service get ${serviceId} --with-password -o json`);
|
|
147
|
+
const serviceDetails = JSON.parse(serviceJson);
|
|
148
|
+
if (!serviceDetails.connection_string) {
|
|
149
|
+
return {
|
|
150
|
+
success: false,
|
|
151
|
+
message: "connection_string not found in service details",
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
const parsed = new URL(serviceDetails.connection_string);
|
|
155
|
+
if (!parsed.searchParams.has("uselibpqcompat")) {
|
|
156
|
+
parsed.searchParams.set("uselibpqcompat", "true");
|
|
157
|
+
}
|
|
158
|
+
adminConnectionString = parsed.toString();
|
|
159
|
+
}
|
|
160
|
+
catch (err) {
|
|
161
|
+
const error = err;
|
|
162
|
+
return {
|
|
163
|
+
success: false,
|
|
164
|
+
message: `Failed to get service details: ${error.message}`,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
const pool = new pg.Pool({ connectionString: adminConnectionString, max: 1 });
|
|
168
|
+
try {
|
|
169
|
+
const existingUser = await pool.query(`SELECT 1 FROM pg_catalog.pg_roles WHERE rolname = $1`, [appName]);
|
|
170
|
+
if (existingUser.rows.length > 0) {
|
|
171
|
+
return {
|
|
172
|
+
success: false,
|
|
173
|
+
message: `User '${appName}' already exists. Choose a different app name or delete the existing user.`,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
const appPassword = generatePassword();
|
|
177
|
+
await pool.query(`CREATE ROLE ${appName} WITH LOGIN PASSWORD '${appPassword}'`);
|
|
178
|
+
await pool.query(`GRANT ${appName} TO tsdbadmin WITH INHERIT TRUE`);
|
|
179
|
+
await pool.query(`CREATE SCHEMA IF NOT EXISTS ${appName} AUTHORIZATION ${appName}`);
|
|
180
|
+
await pool.query(`CREATE SCHEMA IF NOT EXISTS ${appName}_dbos AUTHORIZATION ${appName}`);
|
|
181
|
+
await pool.query(`GRANT CREATE ON DATABASE tsdb TO ${appName}`);
|
|
182
|
+
await pool.query(`REVOKE CREATE ON SCHEMA public FROM ${appName}`);
|
|
183
|
+
await pool.query(`GRANT USAGE ON SCHEMA public TO ${appName}`);
|
|
184
|
+
await pool.query(`ALTER ROLE ${appName} SET search_path TO ${appName}, ${appName}_dbos, public`);
|
|
185
|
+
const currentPath = await pool.query(`SELECT setting FROM pg_settings WHERE name = 'search_path'`);
|
|
186
|
+
const existingPath = currentPath.rows[0]?.setting ?? "public";
|
|
187
|
+
if (!existingPath.includes(appName)) {
|
|
188
|
+
await pool.query(`ALTER ROLE tsdbadmin SET search_path TO ${existingPath}, ${appName}, ${appName}_dbos`);
|
|
189
|
+
}
|
|
190
|
+
const existingAdmin = await pool.query(`SELECT 1 FROM pg_catalog.pg_roles WHERE rolname = 'dbosadmin'`);
|
|
191
|
+
let dbosAdminPassword;
|
|
192
|
+
if (existingAdmin.rows.length === 0) {
|
|
193
|
+
dbosAdminPassword = generatePassword();
|
|
194
|
+
await pool.query(`CREATE ROLE dbosadmin WITH LOGIN CREATEDB PASSWORD '${dbosAdminPassword}'`);
|
|
195
|
+
}
|
|
196
|
+
const appDatabaseUrl = buildConnectionString(adminConnectionString, appName, appPassword);
|
|
197
|
+
let envContent = "";
|
|
198
|
+
if (existsSync(envPath)) {
|
|
199
|
+
envContent = await readFile(envPath, "utf-8");
|
|
200
|
+
}
|
|
201
|
+
const env = dotenv.parse(envContent);
|
|
202
|
+
env.DATABASE_URL = appDatabaseUrl;
|
|
203
|
+
env.DATABASE_SCHEMA = appName;
|
|
204
|
+
if (dbosAdminPassword) {
|
|
205
|
+
env.DBOS_ADMIN_URL = buildConnectionString(adminConnectionString, "dbosadmin", dbosAdminPassword);
|
|
206
|
+
}
|
|
207
|
+
const newEnvContent = Object.entries(env)
|
|
208
|
+
.map(([key, value]) => `${key}="${value}"`)
|
|
209
|
+
.join("\n");
|
|
210
|
+
await writeFile(envPath, `${newEnvContent}\n`);
|
|
211
|
+
// Create the opflow_connections table so it's ready before the dev UI launches
|
|
212
|
+
await ensureConnectionsTable(appDatabaseUrl, appName);
|
|
213
|
+
}
|
|
214
|
+
catch (err) {
|
|
215
|
+
const error = err;
|
|
216
|
+
return {
|
|
217
|
+
success: false,
|
|
218
|
+
message: `Failed to set up app schema: ${error.message}`,
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
finally {
|
|
222
|
+
await pool.end();
|
|
223
|
+
}
|
|
224
|
+
return {
|
|
225
|
+
success: true,
|
|
226
|
+
message: `Created schema '${appName}' and user '${appName}'. DATABASE_URL and DATABASE_SCHEMA written to .env.`,
|
|
227
|
+
schema_name: appName,
|
|
228
|
+
user_name: appName,
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
//# sourceMappingURL=scaffolding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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":"templates.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/lib/templates.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/lib/templates.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CACxB;AA4DD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAa5E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../../src/cli/mcp/lib/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,KAAK,EACL,OAAO,EACP,QAAQ,EACR,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../../src/cli/mcp/lib/templates.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { z } from "zod";
|
|
|
3
3
|
import type { ServerContext } from "../types.js";
|
|
4
4
|
declare const inputSchema: {
|
|
5
5
|
readonly app_name: z.ZodString;
|
|
6
|
+
readonly directory: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
6
7
|
readonly install_deps: z.ZodDefault<z.ZodBoolean>;
|
|
7
8
|
};
|
|
8
9
|
declare const outputSchema: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createApp.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/createApp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createApp.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/createApp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,QAAA,MAAM,WAAW;;;;CAWP,CAAC;AAEX,QAAA,MAAM,YAAY;;;;CAIR,CAAC;AAQX,eAAO,MAAM,gBAAgB,EAAE,UAAU,CACvC,aAAa,EACb,OAAO,WAAW,EAClB,OAAO,YAAY,CAuBpB,CAAC"}
|
|
@@ -1,24 +1,12 @@
|
|
|
1
|
-
import { exec } from "node:child_process";
|
|
2
|
-
import { existsSync } from "node:fs";
|
|
3
|
-
import { join } from "node:path";
|
|
4
1
|
import { z } from "zod";
|
|
5
|
-
import {
|
|
6
|
-
import { writeAppTemplates, create0pflowDirectories } from "../lib/templates.js";
|
|
7
|
-
// Check if running in development mode (monorepo with packages/core exists)
|
|
8
|
-
function isDevMode() {
|
|
9
|
-
const corePath = join(monorepoRoot, "packages", "core");
|
|
10
|
-
return existsSync(corePath);
|
|
11
|
-
}
|
|
12
|
-
const execAsync = (cmd, cwd) => new Promise((resolve, reject) => {
|
|
13
|
-
exec(cmd, { cwd }, (error, stdout, stderr) => {
|
|
14
|
-
if (error)
|
|
15
|
-
reject(Object.assign(error, { stderr }));
|
|
16
|
-
else
|
|
17
|
-
resolve({ stdout, stderr });
|
|
18
|
-
});
|
|
19
|
-
});
|
|
2
|
+
import { scaffoldApp } from "../lib/scaffolding.js";
|
|
20
3
|
const inputSchema = {
|
|
21
4
|
app_name: z.string().describe("Application name (lowercase with hyphens, e.g., 'lead-scoring-app')"),
|
|
5
|
+
directory: z
|
|
6
|
+
.string()
|
|
7
|
+
.optional()
|
|
8
|
+
.default(".")
|
|
9
|
+
.describe("Directory to create the app in, relative to cwd (default: current directory). Created if it doesn't exist."),
|
|
22
10
|
install_deps: z
|
|
23
11
|
.boolean()
|
|
24
12
|
.default(true)
|
|
@@ -38,43 +26,12 @@ export const createAppFactory = () => {
|
|
|
38
26
|
inputSchema,
|
|
39
27
|
outputSchema,
|
|
40
28
|
},
|
|
41
|
-
fn: async ({ app_name, install_deps, }) => {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
app_name: appName,
|
|
48
|
-
});
|
|
49
|
-
// Create 0pflow-specific directories
|
|
50
|
-
await create0pflowDirectories(appPath);
|
|
51
|
-
// In dev mode, link local 0pflow packages (before npm install)
|
|
52
|
-
if (isDevMode()) {
|
|
53
|
-
const corePath = join(monorepoRoot, "packages", "core");
|
|
54
|
-
const cliPath = join(monorepoRoot, "packages", "cli");
|
|
55
|
-
// Register packages globally first
|
|
56
|
-
await execAsync("npm link", corePath);
|
|
57
|
-
await execAsync("npm link", cliPath);
|
|
58
|
-
// Then link them in the app
|
|
59
|
-
await execAsync("npm link 0pflow @0pflow/cli", appPath);
|
|
60
|
-
}
|
|
61
|
-
// Install dependencies if requested
|
|
62
|
-
if (install_deps) {
|
|
63
|
-
await execAsync("npm install", appPath);
|
|
64
|
-
}
|
|
65
|
-
return {
|
|
66
|
-
success: true,
|
|
67
|
-
message: `Created 0pflow app '${appName}' in ${appPath}`,
|
|
68
|
-
path: appPath,
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
catch (err) {
|
|
72
|
-
const error = err;
|
|
73
|
-
return {
|
|
74
|
-
success: false,
|
|
75
|
-
message: `Failed to create app: ${error.message}\n${error.stderr || ""}`,
|
|
76
|
-
};
|
|
77
|
-
}
|
|
29
|
+
fn: async ({ app_name, directory, install_deps, }) => {
|
|
30
|
+
return scaffoldApp({
|
|
31
|
+
appName: app_name,
|
|
32
|
+
directory,
|
|
33
|
+
installDeps: install_deps,
|
|
34
|
+
});
|
|
78
35
|
},
|
|
79
36
|
};
|
|
80
37
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createApp.js","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/createApp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createApp.js","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/createApp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,WAAW,GAAG;IAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;IACpG,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,GAAG,CAAC;SACZ,QAAQ,CAAC,4GAA4G,CAAC;IACzH,YAAY,EAAE,CAAC;SACZ,OAAO,EAAE;SACT,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,wCAAwC,CAAC;CAC7C,CAAC;AAEX,MAAM,YAAY,GAAG;IACnB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IACzE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;CAC5D,CAAC;AAQX,MAAM,CAAC,MAAM,gBAAgB,GAIzB,GAAG,EAAE;IACP,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE;YACN,KAAK,EAAE,mBAAmB;YAC1B,WAAW,EACT,uJAAuJ;YACzJ,WAAW;YACX,YAAY;SACb;QACD,EAAE,EAAE,KAAK,EAAE,EACT,QAAQ,EACR,SAAS,EACT,YAAY,GACb,EAAyB,EAAE;YAC1B,OAAO,WAAW,CAAC;gBACjB,OAAO,EAAE,QAAQ;gBACjB,SAAS;gBACT,WAAW,EAAE,YAAY;aAC1B,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createDatabase.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/createDatabase.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createDatabase.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/createDatabase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,QAAA,MAAM,WAAW;;CAEP,CAAC;AAEX,QAAA,MAAM,YAAY;;;;CAMR,CAAC;AAQX,eAAO,MAAM,qBAAqB,EAAE,UAAU,CAC5C,aAAa,EACb,OAAO,WAAW,EAClB,OAAO,YAAY,CAepB,CAAC"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { exec } from "node:child_process";
|
|
2
|
-
import { promisify } from "node:util";
|
|
3
1
|
import { z } from "zod";
|
|
4
|
-
|
|
2
|
+
import { createDatabase } from "../lib/scaffolding.js";
|
|
5
3
|
const inputSchema = {
|
|
6
4
|
name: z.string().optional().describe("Database name (default: app-db)"),
|
|
7
5
|
};
|
|
@@ -22,44 +20,7 @@ export const createDatabaseFactory = () => {
|
|
|
22
20
|
outputSchema,
|
|
23
21
|
},
|
|
24
22
|
fn: async ({ name }) => {
|
|
25
|
-
|
|
26
|
-
const cmdArgs = [
|
|
27
|
-
"tiger",
|
|
28
|
-
"service",
|
|
29
|
-
"create",
|
|
30
|
-
"--name",
|
|
31
|
-
dbName,
|
|
32
|
-
"--cpu",
|
|
33
|
-
"shared",
|
|
34
|
-
"--memory",
|
|
35
|
-
"shared",
|
|
36
|
-
"--addons",
|
|
37
|
-
"time-series,ai",
|
|
38
|
-
"--no-wait",
|
|
39
|
-
"-o",
|
|
40
|
-
"json",
|
|
41
|
-
];
|
|
42
|
-
try {
|
|
43
|
-
const { stdout, stderr } = await execAsync(cmdArgs.join(" "));
|
|
44
|
-
const result = JSON.parse(stdout);
|
|
45
|
-
if (!result.service_id) {
|
|
46
|
-
return {
|
|
47
|
-
success: false,
|
|
48
|
-
error: `No service_id in response: ${stdout}${stderr}`,
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
return {
|
|
52
|
-
success: true,
|
|
53
|
-
service_id: result.service_id,
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
catch (err) {
|
|
57
|
-
const error = err;
|
|
58
|
-
return {
|
|
59
|
-
success: false,
|
|
60
|
-
error: `Failed to create database: ${error.message}\n${error.stdout || ""}${error.stderr || ""}`,
|
|
61
|
-
};
|
|
62
|
-
}
|
|
23
|
+
return createDatabase({ name });
|
|
63
24
|
},
|
|
64
25
|
};
|
|
65
26
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createDatabase.js","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/createDatabase.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createDatabase.js","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/createDatabase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;CAC/D,CAAC;AAEX,MAAM,YAAY,GAAG;IACnB,OAAO,EAAE,CAAC;SACP,OAAO,EAAE;SACT,QAAQ,CAAC,+CAA+C,CAAC;IAC5D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACxE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;CACjE,CAAC;AAQX,MAAM,CAAC,MAAM,qBAAqB,GAI9B,GAAG,EAAE;IACP,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE;YACN,KAAK,EAAE,iBAAiB;YACxB,WAAW,EACT,8GAA8G;YAChH,WAAW;YACX,YAAY;SACb;QACD,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAyB,EAAE;YAC5C,OAAO,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ApiFactory } from "@tigerdata/mcp-boilerplate";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import type { ServerContext } from "../types.js";
|
|
4
|
+
declare const inputSchema: {
|
|
5
|
+
readonly integration_id: z.ZodString;
|
|
6
|
+
readonly workflow_name: z.ZodString;
|
|
7
|
+
readonly node_name: z.ZodString;
|
|
8
|
+
};
|
|
9
|
+
declare const outputSchema: {
|
|
10
|
+
readonly connection_id: z.ZodOptional<z.ZodString>;
|
|
11
|
+
readonly provider: z.ZodOptional<z.ZodString>;
|
|
12
|
+
readonly connection_config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
13
|
+
readonly metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
14
|
+
readonly access_token: z.ZodOptional<z.ZodString>;
|
|
15
|
+
readonly error: z.ZodOptional<z.ZodString>;
|
|
16
|
+
};
|
|
17
|
+
export declare const getConnectionInfoFactory: ApiFactory<ServerContext, typeof inputSchema, typeof outputSchema>;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=getConnectionInfo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getConnectionInfo.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/getConnectionInfo.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKjD,QAAA,MAAM,WAAW;;;;CAaP,CAAC;AAEX,QAAA,MAAM,YAAY;;;;;;;CAgBR,CAAC;AA8BX,eAAO,MAAM,wBAAwB,EAAE,UAAU,CAC/C,aAAa,EACb,OAAO,WAAW,EAClB,OAAO,YAAY,CA+DpB,CAAC"}
|