0pflow 0.1.0-dev.628bd97 → 0.1.0-dev.6ffb0d7

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 (234) hide show
  1. package/dist/__tests__/discover.integration.test.d.ts +2 -0
  2. package/dist/__tests__/discover.integration.test.d.ts.map +1 -0
  3. package/dist/__tests__/discover.integration.test.js +137 -0
  4. package/dist/__tests__/discover.integration.test.js.map +1 -0
  5. package/dist/__tests__/factory.test.js +7 -0
  6. package/dist/__tests__/factory.test.js.map +1 -1
  7. package/dist/__tests__/integration.e2e.test.js +2 -1
  8. package/dist/__tests__/integration.e2e.test.js.map +1 -1
  9. package/dist/__tests__/integration.test.js +87 -82
  10. package/dist/__tests__/integration.test.js.map +1 -1
  11. package/dist/agent.d.ts +7 -0
  12. package/dist/agent.d.ts.map +1 -1
  13. package/dist/agent.js +59 -9
  14. package/dist/agent.js.map +1 -1
  15. package/dist/cli/__tests__/discovery.test.js +1 -1
  16. package/dist/cli/__tests__/discovery.test.js.map +1 -1
  17. package/dist/cli/app.d.ts +6 -0
  18. package/dist/cli/app.d.ts.map +1 -1
  19. package/dist/cli/app.js +27 -0
  20. package/dist/cli/app.js.map +1 -1
  21. package/dist/cli/discovery.d.ts +10 -0
  22. package/dist/cli/discovery.d.ts.map +1 -1
  23. package/dist/cli/discovery.js +42 -0
  24. package/dist/cli/discovery.js.map +1 -1
  25. package/dist/cli/env.js +1 -1
  26. package/dist/cli/env.js.map +1 -1
  27. package/dist/cli/index.d.ts.map +1 -1
  28. package/dist/cli/index.js +124 -11
  29. package/dist/cli/index.js.map +1 -1
  30. package/dist/cli/install.d.ts.map +1 -1
  31. package/dist/cli/install.js +39 -9
  32. package/dist/cli/install.js.map +1 -1
  33. package/dist/cli/mcp/config.d.ts +0 -1
  34. package/dist/cli/mcp/config.d.ts.map +1 -1
  35. package/dist/cli/mcp/config.js +2 -4
  36. package/dist/cli/mcp/config.js.map +1 -1
  37. package/dist/cli/mcp/lib/scaffolding.d.ts +33 -0
  38. package/dist/cli/mcp/lib/scaffolding.d.ts.map +1 -0
  39. package/dist/cli/mcp/lib/scaffolding.js +219 -0
  40. package/dist/cli/mcp/lib/scaffolding.js.map +1 -0
  41. package/dist/cli/mcp/lib/templates.d.ts +1 -0
  42. package/dist/cli/mcp/lib/templates.d.ts.map +1 -1
  43. package/dist/cli/mcp/lib/templates.js.map +1 -1
  44. package/dist/cli/mcp/tools/createApp.d.ts +1 -0
  45. package/dist/cli/mcp/tools/createApp.d.ts.map +1 -1
  46. package/dist/cli/mcp/tools/createApp.js +12 -53
  47. package/dist/cli/mcp/tools/createApp.js.map +1 -1
  48. package/dist/cli/mcp/tools/createDatabase.d.ts.map +1 -1
  49. package/dist/cli/mcp/tools/createDatabase.js +2 -41
  50. package/dist/cli/mcp/tools/createDatabase.js.map +1 -1
  51. package/dist/cli/mcp/tools/getConnectionInfo.d.ts +19 -0
  52. package/dist/cli/mcp/tools/getConnectionInfo.d.ts.map +1 -0
  53. package/dist/cli/mcp/tools/getConnectionInfo.js +111 -0
  54. package/dist/cli/mcp/tools/getConnectionInfo.js.map +1 -0
  55. package/dist/cli/mcp/tools/getRun.d.ts +22 -0
  56. package/dist/cli/mcp/tools/getRun.d.ts.map +1 -0
  57. package/dist/cli/mcp/tools/getRun.js +80 -0
  58. package/dist/cli/mcp/tools/getRun.js.map +1 -0
  59. package/dist/cli/mcp/tools/getTrace.d.ts +32 -0
  60. package/dist/cli/mcp/tools/getTrace.d.ts.map +1 -0
  61. package/dist/cli/mcp/tools/getTrace.js +104 -0
  62. package/dist/cli/mcp/tools/getTrace.js.map +1 -0
  63. package/dist/cli/mcp/tools/index.d.ts +94 -1
  64. package/dist/cli/mcp/tools/index.d.ts.map +1 -1
  65. package/dist/cli/mcp/tools/index.js +16 -0
  66. package/dist/cli/mcp/tools/index.js.map +1 -1
  67. package/dist/cli/mcp/tools/listIntegrations.d.ts +14 -0
  68. package/dist/cli/mcp/tools/listIntegrations.d.ts.map +1 -0
  69. package/dist/cli/mcp/tools/listIntegrations.js +53 -0
  70. package/dist/cli/mcp/tools/listIntegrations.js.map +1 -0
  71. package/dist/cli/mcp/tools/listRuns.d.ts +21 -0
  72. package/dist/cli/mcp/tools/listRuns.d.ts.map +1 -0
  73. package/dist/cli/mcp/tools/listRuns.js +72 -0
  74. package/dist/cli/mcp/tools/listRuns.js.map +1 -0
  75. package/dist/cli/mcp/tools/listWorkflows.d.ts +15 -0
  76. package/dist/cli/mcp/tools/listWorkflows.d.ts.map +1 -0
  77. package/dist/cli/mcp/tools/listWorkflows.js +45 -0
  78. package/dist/cli/mcp/tools/listWorkflows.js.map +1 -0
  79. package/dist/cli/mcp/tools/runNode.d.ts +17 -0
  80. package/dist/cli/mcp/tools/runNode.d.ts.map +1 -0
  81. package/dist/cli/mcp/tools/runNode.js +74 -0
  82. package/dist/cli/mcp/tools/runNode.js.map +1 -0
  83. package/dist/cli/mcp/tools/runWorkflow.d.ts +16 -0
  84. package/dist/cli/mcp/tools/runWorkflow.d.ts.map +1 -0
  85. package/dist/cli/mcp/tools/runWorkflow.js +66 -0
  86. package/dist/cli/mcp/tools/runWorkflow.js.map +1 -0
  87. package/dist/cli/mcp/tools/setupAppSchema.d.ts +1 -1
  88. package/dist/cli/mcp/tools/setupAppSchema.d.ts.map +1 -1
  89. package/dist/cli/mcp/tools/setupAppSchema.js +11 -132
  90. package/dist/cli/mcp/tools/setupAppSchema.js.map +1 -1
  91. package/dist/cli/mcp/tools/utils.d.ts +7 -0
  92. package/dist/cli/mcp/tools/utils.d.ts.map +1 -0
  93. package/dist/cli/mcp/tools/utils.js +28 -0
  94. package/dist/cli/mcp/tools/utils.js.map +1 -0
  95. package/dist/cli/run.d.ts +2 -0
  96. package/dist/cli/run.d.ts.map +1 -0
  97. package/dist/cli/run.js +389 -0
  98. package/dist/cli/run.js.map +1 -0
  99. package/dist/cli/trace.d.ts +5 -0
  100. package/dist/cli/trace.d.ts.map +1 -1
  101. package/dist/cli/trace.js +1 -1
  102. package/dist/cli/trace.js.map +1 -1
  103. package/dist/connections/cloud-auth.d.ts +46 -0
  104. package/dist/connections/cloud-auth.d.ts.map +1 -0
  105. package/dist/connections/cloud-auth.js +243 -0
  106. package/dist/connections/cloud-auth.js.map +1 -0
  107. package/dist/connections/cloud-client.d.ts +25 -0
  108. package/dist/connections/cloud-client.d.ts.map +1 -0
  109. package/dist/connections/cloud-client.js +59 -0
  110. package/dist/connections/cloud-client.js.map +1 -0
  111. package/dist/connections/cloud-integration-provider.d.ts +21 -0
  112. package/dist/connections/cloud-integration-provider.d.ts.map +1 -0
  113. package/dist/connections/cloud-integration-provider.js +26 -0
  114. package/dist/connections/cloud-integration-provider.js.map +1 -0
  115. package/dist/connections/index.d.ts +11 -0
  116. package/dist/connections/index.d.ts.map +1 -0
  117. package/dist/connections/index.js +9 -0
  118. package/dist/connections/index.js.map +1 -0
  119. package/dist/connections/integration-provider.d.ts +38 -0
  120. package/dist/connections/integration-provider.d.ts.map +1 -0
  121. package/dist/connections/integration-provider.js +20 -0
  122. package/dist/connections/integration-provider.js.map +1 -0
  123. package/dist/connections/local-integration-provider.d.ts +28 -0
  124. package/dist/connections/local-integration-provider.d.ts.map +1 -0
  125. package/dist/connections/local-integration-provider.js +54 -0
  126. package/dist/connections/local-integration-provider.js.map +1 -0
  127. package/dist/connections/nango-client.d.ts +14 -0
  128. package/dist/connections/nango-client.d.ts.map +1 -0
  129. package/dist/connections/nango-client.js +50 -0
  130. package/dist/connections/nango-client.js.map +1 -0
  131. package/dist/connections/resolver.d.ts +26 -0
  132. package/dist/connections/resolver.d.ts.map +1 -0
  133. package/dist/connections/resolver.js +48 -0
  134. package/dist/connections/resolver.js.map +1 -0
  135. package/dist/connections/schema.d.ts +8 -0
  136. package/dist/connections/schema.d.ts.map +1 -0
  137. package/dist/connections/schema.js +31 -0
  138. package/dist/connections/schema.js.map +1 -0
  139. package/dist/context.d.ts.map +1 -1
  140. package/dist/context.js +4 -0
  141. package/dist/context.js.map +1 -1
  142. package/dist/dev-ui/api.d.ts +16 -0
  143. package/dist/dev-ui/api.d.ts.map +1 -0
  144. package/dist/dev-ui/api.js +237 -0
  145. package/dist/dev-ui/api.js.map +1 -0
  146. package/dist/dev-ui/dag/extractor.d.ts +19 -0
  147. package/dist/dev-ui/dag/extractor.d.ts.map +1 -0
  148. package/dist/dev-ui/dag/extractor.js +716 -0
  149. package/dist/dev-ui/dag/extractor.js.map +1 -0
  150. package/dist/dev-ui/dag/types.d.ts +42 -0
  151. package/dist/dev-ui/dag/types.d.ts.map +1 -0
  152. package/dist/dev-ui/dag/types.js +2 -0
  153. package/dist/dev-ui/dag/types.js.map +1 -0
  154. package/dist/dev-ui/dev-server.d.ts +18 -0
  155. package/dist/dev-ui/dev-server.d.ts.map +1 -0
  156. package/dist/dev-ui/dev-server.js +222 -0
  157. package/dist/dev-ui/dev-server.js.map +1 -0
  158. package/dist/dev-ui/index.d.ts +3 -0
  159. package/dist/dev-ui/index.d.ts.map +1 -0
  160. package/dist/dev-ui/index.js +2 -0
  161. package/dist/dev-ui/index.js.map +1 -0
  162. package/dist/dev-ui/pty.d.ts +16 -0
  163. package/dist/dev-ui/pty.d.ts.map +1 -0
  164. package/dist/dev-ui/pty.js +87 -0
  165. package/dist/dev-ui/pty.js.map +1 -0
  166. package/dist/dev-ui/watcher.d.ts +12 -0
  167. package/dist/dev-ui/watcher.d.ts.map +1 -0
  168. package/dist/dev-ui/watcher.js +162 -0
  169. package/dist/dev-ui/watcher.js.map +1 -0
  170. package/dist/dev-ui/ws.d.ts +52 -0
  171. package/dist/dev-ui/ws.d.ts.map +1 -0
  172. package/dist/dev-ui/ws.js +32 -0
  173. package/dist/dev-ui/ws.js.map +1 -0
  174. package/dist/dev-ui-client/assets/index-C-LxzUII.css +32 -0
  175. package/dist/dev-ui-client/assets/index-DAKTQEvj.js +1 -0
  176. package/dist/dev-ui-client/assets/index-aAIwXl4O.js +127 -0
  177. package/dist/dev-ui-client/index.html +13 -0
  178. package/dist/discover.d.ts +15 -0
  179. package/dist/discover.d.ts.map +1 -0
  180. package/dist/discover.js +29 -0
  181. package/dist/discover.js.map +1 -0
  182. package/dist/factory.d.ts.map +1 -1
  183. package/dist/factory.js +25 -12
  184. package/dist/factory.js.map +1 -1
  185. package/dist/index.d.ts +5 -1
  186. package/dist/index.d.ts.map +1 -1
  187. package/dist/index.js +4 -0
  188. package/dist/index.js.map +1 -1
  189. package/dist/node.d.ts +1 -0
  190. package/dist/node.d.ts.map +1 -1
  191. package/dist/node.js +1 -0
  192. package/dist/node.js.map +1 -1
  193. package/dist/nodes/agent/executor.d.ts +2 -0
  194. package/dist/nodes/agent/executor.d.ts.map +1 -1
  195. package/dist/nodes/agent/executor.js +11 -1
  196. package/dist/nodes/agent/executor.js.map +1 -1
  197. package/dist/types.d.ts +21 -3
  198. package/dist/types.d.ts.map +1 -1
  199. package/dist/workflow.d.ts +22 -0
  200. package/dist/workflow.d.ts.map +1 -1
  201. package/dist/workflow.js +97 -2
  202. package/dist/workflow.js.map +1 -1
  203. package/package.json +28 -6
  204. package/templates/app/.env.example +13 -0
  205. package/templates/app/README.md +29 -0
  206. package/templates/app/biome.jsonc +81 -0
  207. package/templates/app/dbos-config.yaml +6 -0
  208. package/templates/app/drizzle.config.ts +12 -0
  209. package/templates/app/next.config.js +10 -0
  210. package/templates/app/package.json +55 -0
  211. package/templates/app/postcss.config.js +5 -0
  212. package/templates/app/public/favicon.ico +0 -0
  213. package/templates/app/src/app/_components/.gitkeep +0 -0
  214. package/templates/app/src/app/api/trpc/[trpc]/route.ts +34 -0
  215. package/templates/app/src/app/api/workflow/[name]/route.ts +37 -0
  216. package/templates/app/src/app/layout.tsx +29 -0
  217. package/templates/app/src/app/page.tsx +18 -0
  218. package/templates/app/src/env.js +46 -0
  219. package/templates/app/src/instrumentation.ts +6 -0
  220. package/templates/app/src/lib/pflow.ts +29 -0
  221. package/templates/app/src/server/api/root.ts +21 -0
  222. package/templates/app/src/server/api/routers/.gitkeep +0 -0
  223. package/templates/app/src/server/api/trpc.ts +106 -0
  224. package/templates/app/src/server/db/index.ts +18 -0
  225. package/templates/app/src/server/db/schema.ts +14 -0
  226. package/templates/app/src/styles/globals.css +6 -0
  227. package/templates/app/src/styles/globals.css.orange +126 -0
  228. package/templates/app/src/trpc/query-client.ts +25 -0
  229. package/templates/app/src/trpc/react.tsx +78 -0
  230. package/templates/app/src/trpc/server.ts +30 -0
  231. package/templates/app/tsconfig.check.json +23 -0
  232. package/templates/app/tsconfig.json +42 -0
  233. package/templates/app/tsconfig.server.json +5 -0
  234. package/templates/app/tsconfig.test.json +21 -0
@@ -1,5 +1,6 @@
1
1
  export declare function getApiFactories(): Promise<readonly [import("@tigerdata/mcp-boilerplate").ApiFactory<import("../types.js").ServerContext, {
2
2
  readonly app_name: import("zod").ZodString;
3
+ readonly directory: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodString>>;
3
4
  readonly install_deps: import("zod").ZodDefault<import("zod").ZodBoolean>;
4
5
  }, {
5
6
  readonly success: import("zod").ZodBoolean;
@@ -12,7 +13,7 @@ export declare function getApiFactories(): Promise<readonly [import("@tigerdata/
12
13
  readonly service_id: import("zod").ZodOptional<import("zod").ZodString>;
13
14
  readonly error: import("zod").ZodOptional<import("zod").ZodString>;
14
15
  }>, import("@tigerdata/mcp-boilerplate").ApiFactory<import("../types.js").ServerContext, {
15
- readonly application_directory: import("zod").ZodString;
16
+ readonly directory: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodString>>;
16
17
  readonly service_id: import("zod").ZodString;
17
18
  readonly app_name: import("zod").ZodString;
18
19
  }, {
@@ -20,5 +21,97 @@ export declare function getApiFactories(): Promise<readonly [import("@tigerdata/
20
21
  readonly message: import("zod").ZodString;
21
22
  readonly schema_name: import("zod").ZodOptional<import("zod").ZodString>;
22
23
  readonly user_name: import("zod").ZodOptional<import("zod").ZodString>;
24
+ }>, import("@tigerdata/mcp-boilerplate").ApiFactory<import("../types.js").ServerContext, {}, {
25
+ readonly integrations: import("zod").ZodArray<import("zod").ZodObject<{
26
+ id: import("zod").ZodString;
27
+ provider: import("zod").ZodString;
28
+ }, import("zod/v4/core").$strip>>;
29
+ readonly error: import("zod").ZodOptional<import("zod").ZodString>;
30
+ }>, import("@tigerdata/mcp-boilerplate").ApiFactory<import("../types.js").ServerContext, {
31
+ readonly integration_id: import("zod").ZodString;
32
+ readonly workflow_name: import("zod").ZodString;
33
+ readonly node_name: import("zod").ZodString;
34
+ }, {
35
+ readonly connection_id: import("zod").ZodOptional<import("zod").ZodString>;
36
+ readonly provider: import("zod").ZodOptional<import("zod").ZodString>;
37
+ readonly connection_config: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
38
+ readonly metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
39
+ readonly access_token: import("zod").ZodOptional<import("zod").ZodString>;
40
+ readonly error: import("zod").ZodOptional<import("zod").ZodString>;
41
+ }>, import("@tigerdata/mcp-boilerplate").ApiFactory<import("../types.js").ServerContext, {}, {
42
+ readonly workflows: import("zod").ZodArray<import("zod").ZodObject<{
43
+ name: import("zod").ZodString;
44
+ version: import("zod").ZodOptional<import("zod").ZodNumber>;
45
+ description: import("zod").ZodOptional<import("zod").ZodString>;
46
+ }, import("zod/v4/core").$strip>>;
47
+ readonly error: import("zod").ZodOptional<import("zod").ZodString>;
48
+ }>, import("@tigerdata/mcp-boilerplate").ApiFactory<import("../types.js").ServerContext, {
49
+ readonly workflow_name: import("zod").ZodString;
50
+ readonly input: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>>;
51
+ }, {
52
+ readonly run_id: import("zod").ZodOptional<import("zod").ZodString>;
53
+ readonly status: import("zod").ZodString;
54
+ readonly result: import("zod").ZodOptional<import("zod").ZodUnknown>;
55
+ readonly error: import("zod").ZodOptional<import("zod").ZodString>;
56
+ }>, import("@tigerdata/mcp-boilerplate").ApiFactory<import("../types.js").ServerContext, {
57
+ readonly node_name: import("zod").ZodString;
58
+ readonly workflow_name: import("zod").ZodOptional<import("zod").ZodString>;
59
+ readonly input: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>>;
60
+ }, {
61
+ readonly run_id: import("zod").ZodOptional<import("zod").ZodString>;
62
+ readonly status: import("zod").ZodString;
63
+ readonly result: import("zod").ZodOptional<import("zod").ZodUnknown>;
64
+ readonly error: import("zod").ZodOptional<import("zod").ZodString>;
65
+ }>, import("@tigerdata/mcp-boilerplate").ApiFactory<import("../types.js").ServerContext, {
66
+ readonly limit: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNumber>>;
67
+ readonly workflow_name: import("zod").ZodOptional<import("zod").ZodString>;
68
+ }, {
69
+ readonly runs: import("zod").ZodArray<import("zod").ZodObject<{
70
+ workflow_uuid: import("zod").ZodString;
71
+ name: import("zod").ZodString;
72
+ status: import("zod").ZodString;
73
+ created_at: import("zod").ZodString;
74
+ output: import("zod").ZodOptional<import("zod").ZodUnknown>;
75
+ error: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
76
+ }, import("zod/v4/core").$strip>>;
77
+ readonly error: import("zod").ZodOptional<import("zod").ZodString>;
78
+ }>, import("@tigerdata/mcp-boilerplate").ApiFactory<import("../types.js").ServerContext, {
79
+ readonly run_id: import("zod").ZodString;
80
+ }, {
81
+ readonly run: import("zod").ZodNullable<import("zod").ZodObject<{
82
+ workflow_uuid: import("zod").ZodString;
83
+ name: import("zod").ZodString;
84
+ status: import("zod").ZodString;
85
+ created_at: import("zod").ZodString;
86
+ updated_at: import("zod").ZodString;
87
+ output: import("zod").ZodOptional<import("zod").ZodUnknown>;
88
+ error: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
89
+ }, import("zod/v4/core").$strip>>;
90
+ readonly ambiguous: import("zod").ZodOptional<import("zod").ZodBoolean>;
91
+ readonly error: import("zod").ZodOptional<import("zod").ZodString>;
92
+ }>, import("@tigerdata/mcp-boilerplate").ApiFactory<import("../types.js").ServerContext, {
93
+ readonly run_id: import("zod").ZodString;
94
+ }, {
95
+ readonly workflow: import("zod").ZodNullable<import("zod").ZodObject<{
96
+ workflow_uuid: import("zod").ZodString;
97
+ name: import("zod").ZodString;
98
+ status: import("zod").ZodString;
99
+ created_at: import("zod").ZodString;
100
+ duration_ms: import("zod").ZodNullable<import("zod").ZodNumber>;
101
+ output: import("zod").ZodOptional<import("zod").ZodUnknown>;
102
+ error: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
103
+ }, import("zod/v4/core").$strip>>;
104
+ readonly operations: import("zod").ZodArray<import("zod").ZodObject<{
105
+ workflow_uuid: import("zod").ZodString;
106
+ depth: import("zod").ZodNumber;
107
+ function_id: import("zod").ZodNumber;
108
+ function_name: import("zod").ZodString;
109
+ child_workflow_id: import("zod").ZodNullable<import("zod").ZodString>;
110
+ duration_ms: import("zod").ZodNullable<import("zod").ZodNumber>;
111
+ output_preview: import("zod").ZodNullable<import("zod").ZodString>;
112
+ error: import("zod").ZodNullable<import("zod").ZodString>;
113
+ }, import("zod/v4/core").$strip>>;
114
+ readonly ambiguous: import("zod").ZodOptional<import("zod").ZodBoolean>;
115
+ readonly error: import("zod").ZodOptional<import("zod").ZodString>;
23
116
  }>]>;
24
117
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/index.ts"],"names":[],"mappings":"AAIA,wBAAsB,eAAe;;;;;;;;;;;;;;;;;;;;;;KAMpC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/index.ts"],"names":[],"mappings":"AAaA,wBAAsB,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAepC"}
@@ -1,11 +1,27 @@
1
1
  import { createAppFactory } from "./createApp.js";
2
2
  import { createDatabaseFactory } from "./createDatabase.js";
3
3
  import { setupAppSchemaFactory } from "./setupAppSchema.js";
4
+ import { listIntegrationsFactory } from "./listIntegrations.js";
5
+ import { getConnectionInfoFactory } from "./getConnectionInfo.js";
6
+ import { listWorkflowsFactory } from "./listWorkflows.js";
7
+ import { runWorkflowFactory } from "./runWorkflow.js";
8
+ import { runNodeFactory } from "./runNode.js";
9
+ import { listRunsFactory } from "./listRuns.js";
10
+ import { getRunFactory } from "./getRun.js";
11
+ import { getTraceFactory } from "./getTrace.js";
4
12
  export async function getApiFactories() {
5
13
  return [
6
14
  createAppFactory,
7
15
  createDatabaseFactory,
8
16
  setupAppSchemaFactory,
17
+ listIntegrationsFactory,
18
+ getConnectionInfoFactory,
19
+ listWorkflowsFactory,
20
+ runWorkflowFactory,
21
+ runNodeFactory,
22
+ listRunsFactory,
23
+ getRunFactory,
24
+ getTraceFactory,
9
25
  ];
10
26
  }
11
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,OAAO;QACL,gBAAgB;QAChB,qBAAqB;QACrB,qBAAqB;KACb,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,OAAO;QACL,gBAAgB;QAChB,qBAAqB;QACrB,qBAAqB;QACrB,uBAAuB;QACvB,wBAAwB;QAExB,oBAAoB;QACpB,kBAAkB;QAClB,cAAc;QACd,eAAe;QACf,aAAa;QACb,eAAe;KACP,CAAC;AACb,CAAC"}
@@ -0,0 +1,14 @@
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 integrations: z.ZodArray<z.ZodObject<{
7
+ id: z.ZodString;
8
+ provider: z.ZodString;
9
+ }, z.core.$strip>>;
10
+ readonly error: z.ZodOptional<z.ZodString>;
11
+ };
12
+ export declare const listIntegrationsFactory: ApiFactory<ServerContext, typeof inputSchema, typeof outputSchema>;
13
+ export {};
14
+ //# sourceMappingURL=listIntegrations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listIntegrations.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/listIntegrations.ts"],"names":[],"mappings":"AAEA,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;AAGjD,QAAA,MAAM,WAAW,IAAc,CAAC;AAEhC,QAAA,MAAM,YAAY;;;;;;CAQR,CAAC;AAuBX,eAAO,MAAM,uBAAuB,EAAE,UAAU,CAC9C,aAAa,EACb,OAAO,WAAW,EAClB,OAAO,YAAY,CAwBpB,CAAC"}
@@ -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,CAiKpB,CAAC"}
1
+ {"version":3,"file":"setupAppSchema.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/setupAppSchema.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;;;;CAgBP,CAAC;AAEX,QAAA,MAAM,YAAY;;;;;CAKR,CAAC;AASX,eAAO,MAAM,qBAAqB,EAAE,UAAU,CAC5C,aAAa,EACb,OAAO,WAAW,EAClB,OAAO,YAAY,CAuBpB,CAAC"}