0pflow 0.1.0-dev.9050dad → 0.1.0-dev.a318c24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/dist/agent.d.ts +6 -0
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +59 -9
  4. package/dist/agent.js.map +1 -1
  5. package/dist/cli/env.js +1 -1
  6. package/dist/cli/env.js.map +1 -1
  7. package/dist/cli/index.d.ts.map +1 -1
  8. package/dist/cli/index.js +101 -8
  9. package/dist/cli/index.js.map +1 -1
  10. package/dist/cli/install.d.ts.map +1 -1
  11. package/dist/cli/install.js +32 -2
  12. package/dist/cli/install.js.map +1 -1
  13. package/dist/cli/mcp/tools/createApp.d.ts +1 -0
  14. package/dist/cli/mcp/tools/createApp.d.ts.map +1 -1
  15. package/dist/cli/mcp/tools/createApp.js +13 -4
  16. package/dist/cli/mcp/tools/createApp.js.map +1 -1
  17. package/dist/cli/mcp/tools/getConnectionInfo.d.ts +19 -0
  18. package/dist/cli/mcp/tools/getConnectionInfo.d.ts.map +1 -0
  19. package/dist/cli/mcp/tools/getConnectionInfo.js +117 -0
  20. package/dist/cli/mcp/tools/getConnectionInfo.js.map +1 -0
  21. package/dist/cli/mcp/tools/getRun.d.ts +22 -0
  22. package/dist/cli/mcp/tools/getRun.d.ts.map +1 -0
  23. package/dist/cli/mcp/tools/getRun.js +80 -0
  24. package/dist/cli/mcp/tools/getRun.js.map +1 -0
  25. package/dist/cli/mcp/tools/getTrace.d.ts +32 -0
  26. package/dist/cli/mcp/tools/getTrace.d.ts.map +1 -0
  27. package/dist/cli/mcp/tools/getTrace.js +104 -0
  28. package/dist/cli/mcp/tools/getTrace.js.map +1 -0
  29. package/dist/cli/mcp/tools/index.d.ts +101 -1
  30. package/dist/cli/mcp/tools/index.d.ts.map +1 -1
  31. package/dist/cli/mcp/tools/index.js +18 -0
  32. package/dist/cli/mcp/tools/index.js.map +1 -1
  33. package/dist/cli/mcp/tools/listIntegrations.d.ts +14 -0
  34. package/dist/cli/mcp/tools/listIntegrations.d.ts.map +1 -0
  35. package/dist/cli/mcp/tools/listIntegrations.js +53 -0
  36. package/dist/cli/mcp/tools/listIntegrations.js.map +1 -0
  37. package/dist/cli/mcp/tools/listRuns.d.ts +21 -0
  38. package/dist/cli/mcp/tools/listRuns.d.ts.map +1 -0
  39. package/dist/cli/mcp/tools/listRuns.js +72 -0
  40. package/dist/cli/mcp/tools/listRuns.js.map +1 -0
  41. package/dist/cli/mcp/tools/listWorkflows.d.ts +15 -0
  42. package/dist/cli/mcp/tools/listWorkflows.d.ts.map +1 -0
  43. package/dist/cli/mcp/tools/listWorkflows.js +45 -0
  44. package/dist/cli/mcp/tools/listWorkflows.js.map +1 -0
  45. package/dist/cli/mcp/tools/runNode.d.ts +17 -0
  46. package/dist/cli/mcp/tools/runNode.d.ts.map +1 -0
  47. package/dist/cli/mcp/tools/runNode.js +74 -0
  48. package/dist/cli/mcp/tools/runNode.js.map +1 -0
  49. package/dist/cli/mcp/tools/runWorkflow.d.ts +16 -0
  50. package/dist/cli/mcp/tools/runWorkflow.d.ts.map +1 -0
  51. package/dist/cli/mcp/tools/runWorkflow.js +66 -0
  52. package/dist/cli/mcp/tools/runWorkflow.js.map +1 -0
  53. package/dist/cli/mcp/tools/setupAppSchema.d.ts +1 -1
  54. package/dist/cli/mcp/tools/setupAppSchema.d.ts.map +1 -1
  55. package/dist/cli/mcp/tools/setupAppSchema.js +33 -33
  56. package/dist/cli/mcp/tools/setupAppSchema.js.map +1 -1
  57. package/dist/cli/mcp/tools/startDevUi.d.ts +15 -0
  58. package/dist/cli/mcp/tools/startDevUi.d.ts.map +1 -0
  59. package/dist/cli/mcp/tools/startDevUi.js +92 -0
  60. package/dist/cli/mcp/tools/startDevUi.js.map +1 -0
  61. package/dist/cli/mcp/tools/utils.d.ts +7 -0
  62. package/dist/cli/mcp/tools/utils.d.ts.map +1 -0
  63. package/dist/cli/mcp/tools/utils.js +28 -0
  64. package/dist/cli/mcp/tools/utils.js.map +1 -0
  65. package/dist/cli/trace.d.ts +5 -0
  66. package/dist/cli/trace.d.ts.map +1 -1
  67. package/dist/cli/trace.js +1 -1
  68. package/dist/cli/trace.js.map +1 -1
  69. package/dist/connections/cloud-auth.d.ts +46 -0
  70. package/dist/connections/cloud-auth.d.ts.map +1 -0
  71. package/dist/connections/cloud-auth.js +243 -0
  72. package/dist/connections/cloud-auth.js.map +1 -0
  73. package/dist/connections/cloud-client.d.ts +25 -0
  74. package/dist/connections/cloud-client.d.ts.map +1 -0
  75. package/dist/connections/cloud-client.js +59 -0
  76. package/dist/connections/cloud-client.js.map +1 -0
  77. package/dist/connections/cloud-integration-provider.d.ts +21 -0
  78. package/dist/connections/cloud-integration-provider.d.ts.map +1 -0
  79. package/dist/connections/cloud-integration-provider.js +26 -0
  80. package/dist/connections/cloud-integration-provider.js.map +1 -0
  81. package/dist/connections/index.d.ts +11 -0
  82. package/dist/connections/index.d.ts.map +1 -0
  83. package/dist/connections/index.js +9 -0
  84. package/dist/connections/index.js.map +1 -0
  85. package/dist/connections/integration-provider.d.ts +38 -0
  86. package/dist/connections/integration-provider.d.ts.map +1 -0
  87. package/dist/connections/integration-provider.js +20 -0
  88. package/dist/connections/integration-provider.js.map +1 -0
  89. package/dist/connections/local-integration-provider.d.ts +28 -0
  90. package/dist/connections/local-integration-provider.d.ts.map +1 -0
  91. package/dist/connections/local-integration-provider.js +54 -0
  92. package/dist/connections/local-integration-provider.js.map +1 -0
  93. package/dist/connections/nango-client.d.ts +14 -0
  94. package/dist/connections/nango-client.d.ts.map +1 -0
  95. package/dist/connections/nango-client.js +50 -0
  96. package/dist/connections/nango-client.js.map +1 -0
  97. package/dist/connections/resolver.d.ts +26 -0
  98. package/dist/connections/resolver.d.ts.map +1 -0
  99. package/dist/connections/resolver.js +44 -0
  100. package/dist/connections/resolver.js.map +1 -0
  101. package/dist/connections/schema.d.ts +6 -0
  102. package/dist/connections/schema.d.ts.map +1 -0
  103. package/dist/connections/schema.js +25 -0
  104. package/dist/connections/schema.js.map +1 -0
  105. package/dist/context.d.ts.map +1 -1
  106. package/dist/context.js +4 -0
  107. package/dist/context.js.map +1 -1
  108. package/dist/dev-ui/api.d.ts +13 -0
  109. package/dist/dev-ui/api.d.ts.map +1 -0
  110. package/dist/dev-ui/api.js +237 -0
  111. package/dist/dev-ui/api.js.map +1 -0
  112. package/dist/dev-ui/dag/extractor.d.ts +19 -0
  113. package/dist/dev-ui/dag/extractor.d.ts.map +1 -0
  114. package/dist/dev-ui/dag/extractor.js +728 -0
  115. package/dist/dev-ui/dag/extractor.js.map +1 -0
  116. package/dist/dev-ui/dag/types.d.ts +42 -0
  117. package/dist/dev-ui/dag/types.d.ts.map +1 -0
  118. package/dist/dev-ui/dag/types.js +2 -0
  119. package/dist/dev-ui/dag/types.js.map +1 -0
  120. package/dist/dev-ui/dev-server.d.ts +14 -0
  121. package/dist/dev-ui/dev-server.d.ts.map +1 -0
  122. package/dist/dev-ui/dev-server.js +158 -0
  123. package/dist/dev-ui/dev-server.js.map +1 -0
  124. package/dist/dev-ui/index.d.ts +3 -0
  125. package/dist/dev-ui/index.d.ts.map +1 -0
  126. package/dist/dev-ui/index.js +2 -0
  127. package/dist/dev-ui/index.js.map +1 -0
  128. package/dist/dev-ui/watcher.d.ts +12 -0
  129. package/dist/dev-ui/watcher.d.ts.map +1 -0
  130. package/dist/dev-ui/watcher.js +162 -0
  131. package/dist/dev-ui/watcher.js.map +1 -0
  132. package/dist/dev-ui/ws.d.ts +27 -0
  133. package/dist/dev-ui/ws.d.ts.map +1 -0
  134. package/dist/dev-ui/ws.js +19 -0
  135. package/dist/dev-ui/ws.js.map +1 -0
  136. package/dist/dev-ui-client/assets/index-B5wNJx8a.js +77 -0
  137. package/dist/dev-ui-client/assets/index-DAKTQEvj.js +1 -0
  138. package/dist/dev-ui-client/assets/index-DpOZNNnF.css +1 -0
  139. package/dist/dev-ui-client/index.html +13 -0
  140. package/dist/factory.d.ts.map +1 -1
  141. package/dist/factory.js +25 -12
  142. package/dist/factory.js.map +1 -1
  143. package/dist/index.d.ts +3 -1
  144. package/dist/index.d.ts.map +1 -1
  145. package/dist/index.js +2 -0
  146. package/dist/index.js.map +1 -1
  147. package/dist/node.d.ts +1 -0
  148. package/dist/node.d.ts.map +1 -1
  149. package/dist/node.js +1 -0
  150. package/dist/node.js.map +1 -1
  151. package/dist/nodes/agent/executor.d.ts +2 -0
  152. package/dist/nodes/agent/executor.d.ts.map +1 -1
  153. package/dist/nodes/agent/executor.js +11 -1
  154. package/dist/nodes/agent/executor.js.map +1 -1
  155. package/dist/types.d.ts +19 -1
  156. package/dist/types.d.ts.map +1 -1
  157. package/dist/workflow.d.ts +22 -0
  158. package/dist/workflow.d.ts.map +1 -1
  159. package/dist/workflow.js +90 -2
  160. package/dist/workflow.js.map +1 -1
  161. package/package.json +18 -3
  162. package/templates/app/package.json +2 -0
@@ -0,0 +1,53 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { z } from "zod";
4
+ import * as dotenv from "dotenv";
5
+ import { createIntegrationProvider } from "../../../connections/integration-provider.js";
6
+ const inputSchema = {};
7
+ const outputSchema = {
8
+ integrations: z.array(z.object({
9
+ id: z.string().describe("Integration unique key (use this in node integrations arrays)"),
10
+ provider: z.string().describe("Provider name (e.g., salesforce, slack)"),
11
+ })).describe("Available integrations"),
12
+ error: z.string().optional().describe("Error message if listing failed"),
13
+ };
14
+ /**
15
+ * Create an IntegrationProvider based on available env vars.
16
+ * NANGO_SECRET_KEY → local, otherwise → cloud (auto-auth).
17
+ */
18
+ async function createProvider() {
19
+ // Check .env file for NANGO_SECRET_KEY
20
+ const envPath = join(process.cwd(), ".env");
21
+ let nangoSecretKey;
22
+ if (existsSync(envPath)) {
23
+ const content = readFileSync(envPath, "utf-8");
24
+ const env = dotenv.parse(content);
25
+ nangoSecretKey = env.NANGO_SECRET_KEY;
26
+ }
27
+ return createIntegrationProvider(nangoSecretKey);
28
+ }
29
+ export const listIntegrationsFactory = () => {
30
+ return {
31
+ name: "list_integrations",
32
+ config: {
33
+ title: "List Integrations",
34
+ description: "List available integrations. Uses NANGO_SECRET_KEY for local mode, or 0pflow cloud (auto-authenticates via browser if needed).",
35
+ inputSchema,
36
+ outputSchema,
37
+ },
38
+ fn: async () => {
39
+ try {
40
+ const provider = await createProvider();
41
+ const integrations = await provider.listIntegrations();
42
+ return { integrations };
43
+ }
44
+ catch (err) {
45
+ return {
46
+ integrations: [],
47
+ error: `Failed to list integrations: ${err instanceof Error ? err.message : String(err)}`,
48
+ };
49
+ }
50
+ },
51
+ };
52
+ };
53
+ //# sourceMappingURL=listIntegrations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listIntegrations.js","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/listIntegrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AAEzF,MAAM,WAAW,GAAG,EAAW,CAAC;AAEhC,MAAM,YAAY,GAAG;IACnB,YAAY,EAAE,CAAC,CAAC,KAAK,CACnB,CAAC,CAAC,MAAM,CAAC;QACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;QACxF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;KACzE,CAAC,CACH,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;CAChE,CAAC;AAOX;;;GAGG;AACH,KAAK,UAAU,cAAc;IAC3B,uCAAuC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IAC5C,IAAI,cAAkC,CAAC;IACvC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClC,cAAc,GAAG,GAAG,CAAC,gBAAgB,CAAC;IACxC,CAAC;IACD,OAAO,yBAAyB,CAAC,cAAc,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAIhC,GAAG,EAAE;IACP,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,MAAM,EAAE;YACN,KAAK,EAAE,mBAAmB;YAC1B,WAAW,EACT,gIAAgI;YAClI,WAAW;YACX,YAAY;SACb;QACD,EAAE,EAAE,KAAK,IAA2B,EAAE;YACpC,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,cAAc,EAAE,CAAC;gBACxC,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,gBAAgB,EAAE,CAAC;gBACvD,OAAO,EAAE,YAAY,EAAE,CAAC;YAC1B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO;oBACL,YAAY,EAAE,EAAE;oBAChB,KAAK,EAAE,gCAAgC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;iBAC1F,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,21 @@
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 limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6
+ readonly workflow_name: z.ZodOptional<z.ZodString>;
7
+ };
8
+ declare const outputSchema: {
9
+ readonly runs: z.ZodArray<z.ZodObject<{
10
+ workflow_uuid: z.ZodString;
11
+ name: z.ZodString;
12
+ status: z.ZodString;
13
+ created_at: z.ZodString;
14
+ output: z.ZodOptional<z.ZodUnknown>;
15
+ error: z.ZodOptional<z.ZodNullable<z.ZodString>>;
16
+ }, z.core.$strip>>;
17
+ readonly error: z.ZodOptional<z.ZodString>;
18
+ };
19
+ export declare const listRunsFactory: ApiFactory<ServerContext, typeof inputSchema, typeof outputSchema>;
20
+ export {};
21
+ //# sourceMappingURL=listRuns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listRuns.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/listRuns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,QAAA,MAAM,WAAW;;;CAUP,CAAC;AAEX,QAAA,MAAM,YAAY;;;;;;;;;;CAcR,CAAC;AAgBX,eAAO,MAAM,eAAe,EAAE,UAAU,CACtC,aAAa,EACb,OAAO,WAAW,EAClB,OAAO,YAAY,CA6CpB,CAAC"}
@@ -0,0 +1,72 @@
1
+ import { z } from "zod";
2
+ import { listRuns } from "../../runs.js";
3
+ import { requireDatabaseUrl, parseOutput } from "./utils.js";
4
+ const inputSchema = {
5
+ limit: z
6
+ .number()
7
+ .optional()
8
+ .default(20)
9
+ .describe("Maximum number of runs to return (default: 20)"),
10
+ workflow_name: z
11
+ .string()
12
+ .optional()
13
+ .describe("Filter by workflow name"),
14
+ };
15
+ const outputSchema = {
16
+ runs: z
17
+ .array(z.object({
18
+ workflow_uuid: z.string(),
19
+ name: z.string(),
20
+ status: z.string(),
21
+ created_at: z.string(),
22
+ output: z.unknown().optional(),
23
+ error: z.string().nullable().optional(),
24
+ }))
25
+ .describe("List of workflow runs, most recent first"),
26
+ error: z.string().optional().describe("Error message if query failed"),
27
+ };
28
+ export const listRunsFactory = () => {
29
+ return {
30
+ name: "list_runs",
31
+ config: {
32
+ title: "List Runs",
33
+ description: "List recent workflow executions. " +
34
+ "Returns run IDs, workflow names, statuses, and timestamps. " +
35
+ "Use get_run or get_trace with a run ID for details.",
36
+ inputSchema,
37
+ outputSchema,
38
+ },
39
+ fn: async ({ limit, workflow_name }) => {
40
+ let databaseUrl;
41
+ try {
42
+ databaseUrl = requireDatabaseUrl();
43
+ }
44
+ catch (err) {
45
+ return { runs: [], error: err instanceof Error ? err.message : String(err) };
46
+ }
47
+ try {
48
+ const runs = await listRuns(databaseUrl, {
49
+ limit,
50
+ workflowName: workflow_name,
51
+ });
52
+ return {
53
+ runs: runs.map((r) => ({
54
+ workflow_uuid: r.workflow_uuid,
55
+ name: r.name,
56
+ status: r.status,
57
+ created_at: String(r.created_at),
58
+ output: r.output ? parseOutput(r.output) : undefined,
59
+ error: r.error,
60
+ })),
61
+ };
62
+ }
63
+ catch (err) {
64
+ return {
65
+ runs: [],
66
+ error: err instanceof Error ? err.message : String(err),
67
+ };
68
+ }
69
+ },
70
+ };
71
+ };
72
+ //# sourceMappingURL=listRuns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listRuns.js","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/listRuns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
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
+ declare const outputSchema: {
6
+ readonly workflows: z.ZodArray<z.ZodObject<{
7
+ name: z.ZodString;
8
+ version: z.ZodOptional<z.ZodNumber>;
9
+ description: z.ZodOptional<z.ZodString>;
10
+ }, z.core.$strip>>;
11
+ readonly error: z.ZodOptional<z.ZodString>;
12
+ };
13
+ export declare const listWorkflowsFactory: ApiFactory<ServerContext, typeof inputSchema, typeof outputSchema>;
14
+ export {};
15
+ //# sourceMappingURL=listWorkflows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listWorkflows.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/listWorkflows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,QAAA,MAAM,WAAW,IAAc,CAAC;AAEhC,QAAA,MAAM,YAAY;;;;;;;CAWR,CAAC;AAOX,eAAO,MAAM,oBAAoB,EAAE,UAAU,CAC3C,aAAa,EACb,OAAO,WAAW,EAClB,OAAO,YAAY,CAgCpB,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { z } from "zod";
2
+ import { discoverWorkflows } from "../../discovery.js";
3
+ const inputSchema = {};
4
+ const outputSchema = {
5
+ workflows: z
6
+ .array(z.object({
7
+ name: z.string(),
8
+ version: z.number().optional(),
9
+ description: z.string().optional(),
10
+ }))
11
+ .describe("List of available workflows"),
12
+ error: z.string().optional().describe("Error message if discovery failed"),
13
+ };
14
+ export const listWorkflowsFactory = () => {
15
+ return {
16
+ name: "list_workflows",
17
+ config: {
18
+ title: "List Workflows",
19
+ description: "List all available compiled workflows in the project. " +
20
+ "Returns workflow names, versions, and descriptions.",
21
+ inputSchema,
22
+ outputSchema,
23
+ },
24
+ fn: async () => {
25
+ try {
26
+ const { workflows, warnings } = await discoverWorkflows(process.cwd());
27
+ return {
28
+ workflows: workflows.map((w) => ({
29
+ name: w.name,
30
+ version: "version" in w ? w.version : undefined,
31
+ description: w.description || undefined,
32
+ })),
33
+ ...(warnings.length > 0 ? { error: warnings.join("; ") } : {}),
34
+ };
35
+ }
36
+ catch (err) {
37
+ return {
38
+ workflows: [],
39
+ error: err instanceof Error ? err.message : String(err),
40
+ };
41
+ }
42
+ },
43
+ };
44
+ };
45
+ //# sourceMappingURL=listWorkflows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listWorkflows.js","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/listWorkflows.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,WAAW,GAAG,EAAW,CAAC;AAEhC,MAAM,YAAY,GAAG;IACnB,SAAS,EAAE,CAAC;SACT,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACnC,CAAC,CACH;SACA,QAAQ,CAAC,6BAA6B,CAAC;IAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CAClE,CAAC;AAOX,MAAM,CAAC,MAAM,oBAAoB,GAI7B,GAAG,EAAE;IACP,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE;YACN,KAAK,EAAE,gBAAgB;YACvB,WAAW,EACT,wDAAwD;gBACxD,qDAAqD;YACvD,WAAW;YACX,YAAY;SACb;QACD,EAAE,EAAE,KAAK,IAA2B,EAAE;YACpC,IAAI,CAAC;gBACH,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBAEvE,OAAO;oBACL,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC/B,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,OAAO,EAAE,SAAS,IAAI,CAAC,CAAC,CAAC,CAAE,CAA0B,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;wBACzE,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,SAAS;qBACxC,CAAC,CAAC;oBACH,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC/D,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO;oBACL,SAAS,EAAE,EAAE;oBACb,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACxD,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,17 @@
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 node_name: z.ZodString;
6
+ readonly workflow_name: z.ZodOptional<z.ZodString>;
7
+ readonly input: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
8
+ };
9
+ declare const outputSchema: {
10
+ readonly run_id: z.ZodOptional<z.ZodString>;
11
+ readonly status: z.ZodString;
12
+ readonly result: z.ZodOptional<z.ZodUnknown>;
13
+ readonly error: z.ZodOptional<z.ZodString>;
14
+ };
15
+ export declare const runNodeFactory: ApiFactory<ServerContext, typeof inputSchema, typeof outputSchema>;
16
+ export {};
17
+ //# sourceMappingURL=runNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runNode.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/runNode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAYjD,QAAA,MAAM,WAAW;;;;CAWP,CAAC;AAEX,QAAA,MAAM,YAAY;;;;;CAKR,CAAC;AASX,eAAO,MAAM,cAAc,EAAE,UAAU,CACrC,aAAa,EACb,OAAO,WAAW,EAClB,OAAO,YAAY,CA6CpB,CAAC"}
@@ -0,0 +1,74 @@
1
+ import { execFile } from "node:child_process";
2
+ import { promisify } from "node:util";
3
+ import { z } from "zod";
4
+ const execFileAsync = promisify(execFile);
5
+ // We shell out to the CLI instead of running nodes in-process because
6
+ // DBOS doesn't allow re-registering workflows after launch. A subprocess
7
+ // loads fresh code every time, so users can edit node code and re-run
8
+ // through MCP without restarting the server.
9
+ // process.argv gives us the same runtime+script the MCP server was started
10
+ // with (e.g. tsx + .ts in dev, node + .js in prod). process.execArgv
11
+ // forwards loader flags (--import tsx/esm) so .ts files resolve correctly.
12
+ const inputSchema = {
13
+ node_name: z.string().describe("Name of the node to run"),
14
+ workflow_name: z
15
+ .string()
16
+ .optional()
17
+ .describe("Workflow name for connection resolution (uses the workflow's configured connections)"),
18
+ input: z
19
+ .record(z.string(), z.unknown())
20
+ .optional()
21
+ .default({})
22
+ .describe("JSON input for the node (default: {})"),
23
+ };
24
+ const outputSchema = {
25
+ run_id: z.string().optional().describe("Wrapper workflow run UUID (use with get_trace to inspect execution)"),
26
+ status: z.string().describe("Execution status: SUCCESS or ERROR"),
27
+ result: z.unknown().optional().describe("Node return value"),
28
+ error: z.string().optional().describe("Error message if execution failed"),
29
+ };
30
+ export const runNodeFactory = () => {
31
+ return {
32
+ name: "run_node",
33
+ config: {
34
+ title: "Run Node",
35
+ description: "Execute a node by name with JSON input. " +
36
+ "The node is wrapped in a workflow for durability. " +
37
+ "Returns the result and a run_id that can be used with get_trace.",
38
+ inputSchema,
39
+ outputSchema,
40
+ },
41
+ fn: async ({ node_name, workflow_name, input }) => {
42
+ const [runtime, script] = process.argv;
43
+ try {
44
+ const args = [
45
+ ...process.execArgv,
46
+ script,
47
+ "node", "run", node_name,
48
+ "--json",
49
+ "-i", JSON.stringify(input),
50
+ ];
51
+ if (workflow_name) {
52
+ args.push("-w", workflow_name);
53
+ }
54
+ const { stdout } = await execFileAsync(runtime, args, { cwd: process.cwd() });
55
+ return JSON.parse(stdout);
56
+ }
57
+ catch (err) {
58
+ // execFile rejects on non-zero exit — try to parse JSON from stdout
59
+ const execErr = err;
60
+ if (execErr.stdout) {
61
+ try {
62
+ return JSON.parse(execErr.stdout);
63
+ }
64
+ catch { /* fall through */ }
65
+ }
66
+ return {
67
+ status: "ERROR",
68
+ error: execErr.stderr?.trim() || execErr.message || String(err),
69
+ };
70
+ }
71
+ },
72
+ };
73
+ };
74
+ //# sourceMappingURL=runNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runNode.js","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/runNode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
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 workflow_name: z.ZodString;
6
+ readonly input: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
7
+ };
8
+ declare const outputSchema: {
9
+ readonly run_id: z.ZodOptional<z.ZodString>;
10
+ readonly status: z.ZodString;
11
+ readonly result: z.ZodOptional<z.ZodUnknown>;
12
+ readonly error: z.ZodOptional<z.ZodString>;
13
+ };
14
+ export declare const runWorkflowFactory: ApiFactory<ServerContext, typeof inputSchema, typeof outputSchema>;
15
+ export {};
16
+ //# sourceMappingURL=runWorkflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runWorkflow.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/runWorkflow.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAYjD,QAAA,MAAM,WAAW;;;CAOP,CAAC;AAEX,QAAA,MAAM,YAAY;;;;;CAKR,CAAC;AASX,eAAO,MAAM,kBAAkB,EAAE,UAAU,CACzC,aAAa,EACb,OAAO,WAAW,EAClB,OAAO,YAAY,CAyCpB,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { execFile } from "node:child_process";
2
+ import { promisify } from "node:util";
3
+ import { z } from "zod";
4
+ const execFileAsync = promisify(execFile);
5
+ // We shell out to the CLI instead of running workflows in-process because
6
+ // DBOS doesn't allow re-registering workflows after launch. A subprocess
7
+ // loads fresh code every time, so users can edit workflow code and re-run
8
+ // through MCP without restarting the server.
9
+ // process.argv gives us the same runtime+script the MCP server was started
10
+ // with (e.g. tsx + .ts in dev, node + .js in prod). process.execArgv
11
+ // forwards loader flags (--import tsx/esm) so .ts files resolve correctly.
12
+ const inputSchema = {
13
+ workflow_name: z.string().describe("Name of the workflow to run"),
14
+ input: z
15
+ .record(z.string(), z.unknown())
16
+ .optional()
17
+ .default({})
18
+ .describe("JSON input for the workflow (default: {})"),
19
+ };
20
+ const outputSchema = {
21
+ run_id: z.string().optional().describe("Workflow run UUID (use with get_trace to inspect execution)"),
22
+ status: z.string().describe("Execution status: SUCCESS or ERROR"),
23
+ result: z.unknown().optional().describe("Workflow return value"),
24
+ error: z.string().optional().describe("Error message if execution failed"),
25
+ };
26
+ export const runWorkflowFactory = () => {
27
+ return {
28
+ name: "run_workflow",
29
+ config: {
30
+ title: "Run Workflow",
31
+ description: "Execute a compiled workflow by name with JSON input. " +
32
+ "Returns the result and a run_id that can be used with get_trace to inspect execution details. " +
33
+ "Use list_workflows first to see available workflows.",
34
+ inputSchema,
35
+ outputSchema,
36
+ },
37
+ fn: async ({ workflow_name, input }) => {
38
+ const [runtime, script] = process.argv;
39
+ try {
40
+ const { stdout } = await execFileAsync(runtime, [
41
+ ...process.execArgv,
42
+ script,
43
+ "workflow", "run", workflow_name,
44
+ "--json",
45
+ "-i", JSON.stringify(input),
46
+ ], { cwd: process.cwd() });
47
+ return JSON.parse(stdout);
48
+ }
49
+ catch (err) {
50
+ // execFile rejects on non-zero exit — try to parse JSON from stdout
51
+ const execErr = err;
52
+ if (execErr.stdout) {
53
+ try {
54
+ return JSON.parse(execErr.stdout);
55
+ }
56
+ catch { /* fall through */ }
57
+ }
58
+ return {
59
+ status: "ERROR",
60
+ error: execErr.stderr?.trim() || execErr.message || String(err),
61
+ };
62
+ }
63
+ },
64
+ };
65
+ };
66
+ //# sourceMappingURL=runWorkflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runWorkflow.js","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/runWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,0EAA0E;AAC1E,yEAAyE;AACzE,0EAA0E;AAC1E,6CAA6C;AAC7C,2EAA2E;AAC3E,qEAAqE;AACrE,2EAA2E;AAE3E,MAAM,WAAW,GAAG;IAClB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IACjE,KAAK,EAAE,CAAC;SACL,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;SAC/B,QAAQ,EAAE;SACV,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,2CAA2C,CAAC;CAChD,CAAC;AAEX,MAAM,YAAY,GAAG;IACnB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;IACrG,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IACjE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAChE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CAClE,CAAC;AASX,MAAM,CAAC,MAAM,kBAAkB,GAI3B,GAAG,EAAE;IACP,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE;YACN,KAAK,EAAE,cAAc;YACrB,WAAW,EACT,uDAAuD;gBACvD,gGAAgG;gBAChG,sDAAsD;YACxD,WAAW;YACX,YAAY;SACb;QACD,EAAE,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,EAAyB,EAAE;YAC5D,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YAEvC,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE;oBAC9C,GAAG,OAAO,CAAC,QAAQ;oBACnB,MAAM;oBACN,UAAU,EAAE,KAAK,EAAE,aAAa;oBAChC,QAAQ;oBACR,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;iBAC5B,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAE3B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAiB,CAAC;YAC5C,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,oEAAoE;gBACpE,MAAM,OAAO,GAAG,GAA6D,CAAC;gBAC9E,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;oBACnB,IAAI,CAAC;wBACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAiB,CAAC;oBACpD,CAAC;oBAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;gBAChC,CAAC;gBACD,OAAO;oBACL,MAAM,EAAE,OAAO;oBACf,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC;iBAChE,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -2,7 +2,7 @@ import type { ApiFactory } from "@tigerdata/mcp-boilerplate";
2
2
  import { z } from "zod";
3
3
  import type { ServerContext } from "../types.js";
4
4
  declare const inputSchema: {
5
- readonly application_directory: z.ZodString;
5
+ readonly directory: z.ZodDefault<z.ZodOptional<z.ZodString>>;
6
6
  readonly service_id: z.ZodString;
7
7
  readonly app_name: z.ZodString;
8
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"setupAppSchema.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/setupAppSchema.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAG7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,QAAA,MAAM,WAAW;;;;CAcP,CAAC;AAEX,QAAA,MAAM,YAAY;;;;;CAKR,CAAC;AAiCX,eAAO,MAAM,qBAAqB,EAAE,UAAU,CAC5C,aAAa,EACb,OAAO,WAAW,EAClB,OAAO,YAAY,CAoLpB,CAAC"}
1
+ {"version":3,"file":"setupAppSchema.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/setupAppSchema.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAG7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,QAAA,MAAM,WAAW;;;;CAgBP,CAAC;AAEX,QAAA,MAAM,YAAY;;;;;CAKR,CAAC;AAiCX,eAAO,MAAM,qBAAqB,EAAE,UAAU,CAC5C,aAAa,EACb,OAAO,WAAW,EAClB,OAAO,YAAY,CAuLpB,CAAC"}
@@ -4,13 +4,15 @@ import { readFile, writeFile } from "node:fs/promises";
4
4
  import { join, resolve } from "node:path";
5
5
  import { promisify } from "node:util";
6
6
  import * as dotenv from "dotenv";
7
- import postgres from "postgres";
7
+ import pg from "pg";
8
8
  import { z } from "zod";
9
9
  const execAsync = promisify(exec);
10
10
  const inputSchema = {
11
- application_directory: z
11
+ directory: z
12
12
  .string()
13
- .describe("Path to the application directory"),
13
+ .optional()
14
+ .default(".")
15
+ .describe("Directory of the application, relative to cwd (default: current working directory)"),
14
16
  service_id: z.string().describe("Tiger Cloud service ID for the database"),
15
17
  app_name: z
16
18
  .string()
@@ -49,8 +51,8 @@ export const setupAppSchemaFactory = () => {
49
51
  inputSchema,
50
52
  outputSchema,
51
53
  },
52
- fn: async ({ application_directory, service_id, app_name, }) => {
53
- const appDir = resolve(process.cwd(), application_directory);
54
+ fn: async ({ directory, service_id, app_name, }) => {
55
+ const appDir = resolve(process.cwd(), directory);
54
56
  const envPath = join(appDir, ".env");
55
57
  // Check if we've already run this tool (DATABASE_SCHEMA is only set by us)
56
58
  if (existsSync(envPath)) {
@@ -76,7 +78,11 @@ export const setupAppSchemaFactory = () => {
76
78
  message: "connection_string not found in service details",
77
79
  };
78
80
  }
79
- adminConnectionString = serviceDetails.connection_string;
81
+ const parsed = new URL(serviceDetails.connection_string);
82
+ if (!parsed.searchParams.has("uselibpqcompat")) {
83
+ parsed.searchParams.set("uselibpqcompat", "true");
84
+ }
85
+ adminConnectionString = parsed.toString();
80
86
  }
81
87
  catch (err) {
82
88
  const error = err;
@@ -85,15 +91,12 @@ export const setupAppSchemaFactory = () => {
85
91
  message: `Failed to get service details: ${error.message}`,
86
92
  };
87
93
  }
88
- // Connect using postgres.js as admin
89
- const sql = postgres(adminConnectionString);
94
+ // Connect using pg as admin
95
+ const pool = new pg.Pool({ connectionString: adminConnectionString, max: 1 });
90
96
  try {
91
97
  // 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();
98
+ const existingUser = await pool.query(`SELECT 1 FROM pg_catalog.pg_roles WHERE rolname = $1`, [app_name]);
99
+ if (existingUser.rows.length > 0) {
97
100
  return {
98
101
  success: false,
99
102
  message: `User '${app_name}' already exists. Choose a different app name or delete the existing user.`,
@@ -101,37 +104,32 @@ export const setupAppSchemaFactory = () => {
101
104
  }
102
105
  // Create new user
103
106
  const appPassword = generatePassword();
104
- await sql.unsafe(`CREATE ROLE ${app_name} WITH LOGIN PASSWORD '${appPassword}'`);
107
+ await pool.query(`CREATE ROLE ${app_name} WITH LOGIN PASSWORD '${appPassword}'`);
105
108
  // Grant app role to tsdbadmin so admin can access app objects
106
- await sql.unsafe(`GRANT ${app_name} TO tsdbadmin WITH INHERIT TRUE`);
109
+ await pool.query(`GRANT ${app_name} TO tsdbadmin WITH INHERIT TRUE`);
107
110
  // Create app schema owned by the app user
108
- await sql.unsafe(`CREATE SCHEMA IF NOT EXISTS ${app_name} AUTHORIZATION ${app_name}`);
109
- await sql.unsafe(`CREATE SCHEMA IF NOT EXISTS ${app_name}_dbos AUTHORIZATION ${app_name}`);
111
+ await pool.query(`CREATE SCHEMA IF NOT EXISTS ${app_name} AUTHORIZATION ${app_name}`);
112
+ await pool.query(`CREATE SCHEMA IF NOT EXISTS ${app_name}_dbos AUTHORIZATION ${app_name}`);
110
113
  //annoyingly, dbos seems to need this. TODO: find a better way to do this.
111
- await sql.unsafe(`GRANT CREATE ON DATABASE tsdb TO ${app_name}`);
114
+ await pool.query(`GRANT CREATE ON DATABASE tsdb TO ${app_name}`);
112
115
  // Allow using extensions in public schema, but not creating objects there
113
- await sql.unsafe(`REVOKE CREATE ON SCHEMA public FROM ${app_name}`);
114
- await sql.unsafe(`GRANT USAGE ON SCHEMA public TO ${app_name}`);
116
+ await pool.query(`REVOKE CREATE ON SCHEMA public FROM ${app_name}`);
117
+ await pool.query(`GRANT USAGE ON SCHEMA public TO ${app_name}`);
115
118
  // Set search_path for app user (app schema first, then public for extensions)
116
- await sql.unsafe(`ALTER ROLE ${app_name} SET search_path TO ${app_name}, ${app_name}_dbos, public`);
119
+ await pool.query(`ALTER ROLE ${app_name} SET search_path TO ${app_name}, ${app_name}_dbos, public`);
117
120
  // Append app schema to tsdbadmin's search_path
118
- const currentPath = await sql `
119
- SELECT setting FROM pg_settings WHERE name = 'search_path'
120
- `;
121
- const existingPath = currentPath[0]?.setting ?? "public";
121
+ const currentPath = await pool.query(`SELECT setting FROM pg_settings WHERE name = 'search_path'`);
122
+ const existingPath = currentPath.rows[0]?.setting ?? "public";
122
123
  if (!existingPath.includes(app_name)) {
123
- await sql.unsafe(`ALTER ROLE tsdbadmin SET search_path TO ${existingPath}, ${app_name}, ${app_name}_dbos`);
124
+ await pool.query(`ALTER ROLE tsdbadmin SET search_path TO ${existingPath}, ${app_name}, ${app_name}_dbos`);
124
125
  }
125
126
  // Create dbosadmin role for DBOS Cloud BYOD (Bring Your Own Database)
126
- const existingAdmin = await sql `
127
- SELECT 1 FROM pg_catalog.pg_roles WHERE rolname = 'dbosadmin'
128
- `;
127
+ const existingAdmin = await pool.query(`SELECT 1 FROM pg_catalog.pg_roles WHERE rolname = 'dbosadmin'`);
129
128
  let dbosAdminPassword;
130
- if (existingAdmin.length === 0) {
129
+ if (existingAdmin.rows.length === 0) {
131
130
  dbosAdminPassword = generatePassword();
132
- await sql.unsafe(`CREATE ROLE dbosadmin WITH LOGIN CREATEDB PASSWORD '${dbosAdminPassword}'`);
131
+ await pool.query(`CREATE ROLE dbosadmin WITH LOGIN CREATEDB PASSWORD '${dbosAdminPassword}'`);
133
132
  }
134
- await sql.end();
135
133
  // Build app connection string
136
134
  const appDatabaseUrl = buildConnectionString(adminConnectionString, app_name, appPassword);
137
135
  // Write or update .env file
@@ -153,13 +151,15 @@ export const setupAppSchemaFactory = () => {
153
151
  await writeFile(envPath, `${newEnvContent}\n`);
154
152
  }
155
153
  catch (err) {
156
- await sql.end();
157
154
  const error = err;
158
155
  return {
159
156
  success: false,
160
157
  message: `Failed to set up app schema: ${error.message}`,
161
158
  };
162
159
  }
160
+ finally {
161
+ await pool.end();
162
+ }
163
163
  return {
164
164
  success: true,
165
165
  message: `Created schema '${app_name}' and user '${app_name}'. DATABASE_URL and DATABASE_SCHEMA written to .env.`,
@@ -1 +1 @@
1
- {"version":3,"file":"setupAppSchema.js","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/setupAppSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setupAppSchema.js","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/setupAppSchema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
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 port: z.ZodOptional<z.ZodNumber>;
6
+ };
7
+ declare const outputSchema: {
8
+ readonly url: z.ZodOptional<z.ZodString>;
9
+ readonly port: z.ZodOptional<z.ZodNumber>;
10
+ readonly already_running: z.ZodOptional<z.ZodBoolean>;
11
+ readonly error: z.ZodOptional<z.ZodString>;
12
+ };
13
+ export declare const startDevUiFactory: ApiFactory<ServerContext, typeof inputSchema, typeof outputSchema>;
14
+ export {};
15
+ //# sourceMappingURL=startDevUi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startDevUi.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/startDevUi.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,QAAA,MAAM,WAAW;;CAOP,CAAC;AAEX,QAAA,MAAM,YAAY;;;;;CAQR,CAAC;AAgBX,eAAO,MAAM,iBAAiB,EAAE,UAAU,CACxC,aAAa,EACb,OAAO,WAAW,EAClB,OAAO,YAAY,CA6EpB,CAAC"}