0pflow 0.1.0-dev.00aaa03

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 (197) hide show
  1. package/dist/__tests__/agent-parser.test.d.ts +2 -0
  2. package/dist/__tests__/agent-parser.test.d.ts.map +1 -0
  3. package/dist/__tests__/agent-parser.test.js +64 -0
  4. package/dist/__tests__/agent-parser.test.js.map +1 -0
  5. package/dist/__tests__/agent.e2e.test.d.ts +2 -0
  6. package/dist/__tests__/agent.e2e.test.d.ts.map +1 -0
  7. package/dist/__tests__/agent.e2e.test.js +90 -0
  8. package/dist/__tests__/agent.e2e.test.js.map +1 -0
  9. package/dist/__tests__/agent.test.d.ts +2 -0
  10. package/dist/__tests__/agent.test.d.ts.map +1 -0
  11. package/dist/__tests__/agent.test.js +30 -0
  12. package/dist/__tests__/agent.test.js.map +1 -0
  13. package/dist/__tests__/context.test.d.ts +2 -0
  14. package/dist/__tests__/context.test.d.ts.map +1 -0
  15. package/dist/__tests__/context.test.js +53 -0
  16. package/dist/__tests__/context.test.js.map +1 -0
  17. package/dist/__tests__/dbos.test.d.ts +2 -0
  18. package/dist/__tests__/dbos.test.d.ts.map +1 -0
  19. package/dist/__tests__/dbos.test.js +35 -0
  20. package/dist/__tests__/dbos.test.js.map +1 -0
  21. package/dist/__tests__/factory.test.d.ts +2 -0
  22. package/dist/__tests__/factory.test.d.ts.map +1 -0
  23. package/dist/__tests__/factory.test.js +126 -0
  24. package/dist/__tests__/factory.test.js.map +1 -0
  25. package/dist/__tests__/integration.e2e.test.d.ts +2 -0
  26. package/dist/__tests__/integration.e2e.test.d.ts.map +1 -0
  27. package/dist/__tests__/integration.e2e.test.js +127 -0
  28. package/dist/__tests__/integration.e2e.test.js.map +1 -0
  29. package/dist/__tests__/integration.test.d.ts +2 -0
  30. package/dist/__tests__/integration.test.d.ts.map +1 -0
  31. package/dist/__tests__/integration.test.js +103 -0
  32. package/dist/__tests__/integration.test.js.map +1 -0
  33. package/dist/__tests__/model-config.test.d.ts +2 -0
  34. package/dist/__tests__/model-config.test.d.ts.map +1 -0
  35. package/dist/__tests__/model-config.test.js +48 -0
  36. package/dist/__tests__/model-config.test.js.map +1 -0
  37. package/dist/__tests__/node-registry.test.d.ts +2 -0
  38. package/dist/__tests__/node-registry.test.d.ts.map +1 -0
  39. package/dist/__tests__/node-registry.test.js +63 -0
  40. package/dist/__tests__/node-registry.test.js.map +1 -0
  41. package/dist/__tests__/node.test.d.ts +2 -0
  42. package/dist/__tests__/node.test.d.ts.map +1 -0
  43. package/dist/__tests__/node.test.js +48 -0
  44. package/dist/__tests__/node.test.js.map +1 -0
  45. package/dist/__tests__/registry.test.d.ts +2 -0
  46. package/dist/__tests__/registry.test.d.ts.map +1 -0
  47. package/dist/__tests__/registry.test.js +62 -0
  48. package/dist/__tests__/registry.test.js.map +1 -0
  49. package/dist/__tests__/web-tool.test.d.ts +2 -0
  50. package/dist/__tests__/web-tool.test.d.ts.map +1 -0
  51. package/dist/__tests__/web-tool.test.js +99 -0
  52. package/dist/__tests__/web-tool.test.js.map +1 -0
  53. package/dist/__tests__/workflow.test.d.ts +2 -0
  54. package/dist/__tests__/workflow.test.d.ts.map +1 -0
  55. package/dist/__tests__/workflow.test.js +49 -0
  56. package/dist/__tests__/workflow.test.js.map +1 -0
  57. package/dist/agent.d.ts +46 -0
  58. package/dist/agent.d.ts.map +1 -0
  59. package/dist/agent.js +75 -0
  60. package/dist/agent.js.map +1 -0
  61. package/dist/cli/__tests__/discovery.test.d.ts +2 -0
  62. package/dist/cli/__tests__/discovery.test.d.ts.map +1 -0
  63. package/dist/cli/__tests__/discovery.test.js +26 -0
  64. package/dist/cli/__tests__/discovery.test.js.map +1 -0
  65. package/dist/cli/__tests__/env.test.d.ts +2 -0
  66. package/dist/cli/__tests__/env.test.d.ts.map +1 -0
  67. package/dist/cli/__tests__/env.test.js +32 -0
  68. package/dist/cli/__tests__/env.test.js.map +1 -0
  69. package/dist/cli/__tests__/runs.test.d.ts +2 -0
  70. package/dist/cli/__tests__/runs.test.d.ts.map +1 -0
  71. package/dist/cli/__tests__/runs.test.js +46 -0
  72. package/dist/cli/__tests__/runs.test.js.map +1 -0
  73. package/dist/cli/app.d.ts +6 -0
  74. package/dist/cli/app.d.ts.map +1 -0
  75. package/dist/cli/app.js +21 -0
  76. package/dist/cli/app.js.map +1 -0
  77. package/dist/cli/discovery.d.ts +24 -0
  78. package/dist/cli/discovery.d.ts.map +1 -0
  79. package/dist/cli/discovery.js +88 -0
  80. package/dist/cli/discovery.js.map +1 -0
  81. package/dist/cli/env.d.ts +15 -0
  82. package/dist/cli/env.d.ts.map +1 -0
  83. package/dist/cli/env.js +54 -0
  84. package/dist/cli/env.js.map +1 -0
  85. package/dist/cli/index.d.ts +3 -0
  86. package/dist/cli/index.d.ts.map +1 -0
  87. package/dist/cli/index.js +423 -0
  88. package/dist/cli/index.js.map +1 -0
  89. package/dist/cli/install.d.ts +54 -0
  90. package/dist/cli/install.d.ts.map +1 -0
  91. package/dist/cli/install.js +217 -0
  92. package/dist/cli/install.js.map +1 -0
  93. package/dist/cli/mcp/config.d.ts +5 -0
  94. package/dist/cli/mcp/config.d.ts.map +1 -0
  95. package/dist/cli/mcp/config.js +14 -0
  96. package/dist/cli/mcp/config.js.map +1 -0
  97. package/dist/cli/mcp/lib/templates.d.ts +12 -0
  98. package/dist/cli/mcp/lib/templates.d.ts.map +1 -0
  99. package/dist/cli/mcp/lib/templates.js +77 -0
  100. package/dist/cli/mcp/lib/templates.js.map +1 -0
  101. package/dist/cli/mcp/server.d.ts +5 -0
  102. package/dist/cli/mcp/server.d.ts.map +1 -0
  103. package/dist/cli/mcp/server.js +15 -0
  104. package/dist/cli/mcp/server.js.map +1 -0
  105. package/dist/cli/mcp/serverInfo.d.ts +7 -0
  106. package/dist/cli/mcp/serverInfo.d.ts.map +1 -0
  107. package/dist/cli/mcp/serverInfo.js +7 -0
  108. package/dist/cli/mcp/serverInfo.js.map +1 -0
  109. package/dist/cli/mcp/tools/createApp.d.ts +15 -0
  110. package/dist/cli/mcp/tools/createApp.d.ts.map +1 -0
  111. package/dist/cli/mcp/tools/createApp.js +81 -0
  112. package/dist/cli/mcp/tools/createApp.js.map +1 -0
  113. package/dist/cli/mcp/tools/createDatabase.d.ts +14 -0
  114. package/dist/cli/mcp/tools/createDatabase.d.ts.map +1 -0
  115. package/dist/cli/mcp/tools/createDatabase.js +66 -0
  116. package/dist/cli/mcp/tools/createDatabase.js.map +1 -0
  117. package/dist/cli/mcp/tools/index.d.ts +24 -0
  118. package/dist/cli/mcp/tools/index.d.ts.map +1 -0
  119. package/dist/cli/mcp/tools/index.js +11 -0
  120. package/dist/cli/mcp/tools/index.js.map +1 -0
  121. package/dist/cli/mcp/tools/setupAppSchema.d.ts +17 -0
  122. package/dist/cli/mcp/tools/setupAppSchema.d.ts.map +1 -0
  123. package/dist/cli/mcp/tools/setupAppSchema.js +157 -0
  124. package/dist/cli/mcp/tools/setupAppSchema.js.map +1 -0
  125. package/dist/cli/mcp/types.d.ts +3 -0
  126. package/dist/cli/mcp/types.d.ts.map +1 -0
  127. package/dist/cli/mcp/types.js +2 -0
  128. package/dist/cli/mcp/types.js.map +1 -0
  129. package/dist/cli/runs.d.ts +28 -0
  130. package/dist/cli/runs.d.ts.map +1 -0
  131. package/dist/cli/runs.js +70 -0
  132. package/dist/cli/runs.js.map +1 -0
  133. package/dist/cli/trace.d.ts +31 -0
  134. package/dist/cli/trace.d.ts.map +1 -0
  135. package/dist/cli/trace.js +264 -0
  136. package/dist/cli/trace.js.map +1 -0
  137. package/dist/context.d.ts +13 -0
  138. package/dist/context.d.ts.map +1 -0
  139. package/dist/context.js +25 -0
  140. package/dist/context.js.map +1 -0
  141. package/dist/dbos.d.ts +15 -0
  142. package/dist/dbos.d.ts.map +1 -0
  143. package/dist/dbos.js +27 -0
  144. package/dist/dbos.js.map +1 -0
  145. package/dist/factory.d.ts +6 -0
  146. package/dist/factory.d.ts.map +1 -0
  147. package/dist/factory.js +78 -0
  148. package/dist/factory.js.map +1 -0
  149. package/dist/index.d.ts +20 -0
  150. package/dist/index.d.ts.map +1 -0
  151. package/dist/index.js +18 -0
  152. package/dist/index.js.map +1 -0
  153. package/dist/node.d.ts +19 -0
  154. package/dist/node.d.ts.map +1 -0
  155. package/dist/node.js +16 -0
  156. package/dist/node.js.map +1 -0
  157. package/dist/nodes/agent/executor.d.ts +70 -0
  158. package/dist/nodes/agent/executor.d.ts.map +1 -0
  159. package/dist/nodes/agent/executor.js +230 -0
  160. package/dist/nodes/agent/executor.js.map +1 -0
  161. package/dist/nodes/agent/index.d.ts +7 -0
  162. package/dist/nodes/agent/index.d.ts.map +1 -0
  163. package/dist/nodes/agent/index.js +5 -0
  164. package/dist/nodes/agent/index.js.map +1 -0
  165. package/dist/nodes/agent/model-config.d.ts +42 -0
  166. package/dist/nodes/agent/model-config.d.ts.map +1 -0
  167. package/dist/nodes/agent/model-config.js +58 -0
  168. package/dist/nodes/agent/model-config.js.map +1 -0
  169. package/dist/nodes/agent/parser.d.ts +22 -0
  170. package/dist/nodes/agent/parser.d.ts.map +1 -0
  171. package/dist/nodes/agent/parser.js +42 -0
  172. package/dist/nodes/agent/parser.js.map +1 -0
  173. package/dist/nodes/builtin/index.d.ts +9 -0
  174. package/dist/nodes/builtin/index.d.ts.map +1 -0
  175. package/dist/nodes/builtin/index.js +10 -0
  176. package/dist/nodes/builtin/index.js.map +1 -0
  177. package/dist/nodes/builtin/web.d.ts +25 -0
  178. package/dist/nodes/builtin/web.d.ts.map +1 -0
  179. package/dist/nodes/builtin/web.js +86 -0
  180. package/dist/nodes/builtin/web.js.map +1 -0
  181. package/dist/nodes/registry.d.ts +32 -0
  182. package/dist/nodes/registry.d.ts.map +1 -0
  183. package/dist/nodes/registry.js +58 -0
  184. package/dist/nodes/registry.js.map +1 -0
  185. package/dist/registry.d.ts +31 -0
  186. package/dist/registry.d.ts.map +1 -0
  187. package/dist/registry.js +44 -0
  188. package/dist/registry.js.map +1 -0
  189. package/dist/types.d.ts +63 -0
  190. package/dist/types.d.ts.map +1 -0
  191. package/dist/types.js +2 -0
  192. package/dist/types.js.map +1 -0
  193. package/dist/workflow.d.ts +26 -0
  194. package/dist/workflow.d.ts.map +1 -0
  195. package/dist/workflow.js +50 -0
  196. package/dist/workflow.js.map +1 -0
  197. package/package.json +52 -0
@@ -0,0 +1,217 @@
1
+ import { execSync } from "node:child_process";
2
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
3
+ import { join } from "node:path";
4
+ import pc from "picocolors";
5
+ /**
6
+ * Build the MCP command by taking the current invocation and replacing "install" with "mcp start"
7
+ */
8
+ export function buildMcpCommand() {
9
+ const args = [...process.argv];
10
+ // Find and replace "install" with "mcp", "start"
11
+ const installIndex = args.findIndex(arg => arg === "install");
12
+ const baseArgs = installIndex !== -1
13
+ ? args.slice(0, installIndex)
14
+ : args;
15
+ const scriptPath = baseArgs[1] || "";
16
+ // If we're running a .ts file, tsx hides itself from argv
17
+ // so we see "node file.ts" but need "npx tsx file.ts" to actually run it
18
+ if (scriptPath.endsWith(".ts")) {
19
+ return ["npx", "tsx", scriptPath, "mcp", "start"];
20
+ }
21
+ // If running from npx cache or node_modules, use npx 0pflow@version
22
+ if (scriptPath.includes(".npm/_npx") || scriptPath.includes("node_modules/0pflow")) {
23
+ // Try to get version from npm_lifecycle_script (e.g., "0pflow@latest")
24
+ const npmScript = process.env.npm_lifecycle_script;
25
+ if (npmScript?.startsWith("0pflow")) {
26
+ return ["npx", "-y", npmScript, "mcp", "start"];
27
+ }
28
+ // Fallback to latest
29
+ return ["npx", "-y", "0pflow@latest", "mcp", "start"];
30
+ }
31
+ return [...baseArgs, "mcp", "start"];
32
+ }
33
+ /**
34
+ * Get the settings directory path
35
+ */
36
+ export function getSettingsDir() {
37
+ const home = process.env.HOME || process.env.USERPROFILE || "~";
38
+ return join(home, ".config", "0pflow");
39
+ }
40
+ /**
41
+ * Get the settings file path
42
+ */
43
+ export function getSettingsPath() {
44
+ return join(getSettingsDir(), "settings.json");
45
+ }
46
+ /**
47
+ * Read current settings
48
+ */
49
+ export function readSettings() {
50
+ const settingsPath = getSettingsPath();
51
+ if (!existsSync(settingsPath)) {
52
+ return null;
53
+ }
54
+ try {
55
+ return JSON.parse(readFileSync(settingsPath, "utf-8"));
56
+ }
57
+ catch {
58
+ return null;
59
+ }
60
+ }
61
+ /**
62
+ * Write settings to disk
63
+ */
64
+ export function writeSettings(settings) {
65
+ const settingsDir = getSettingsDir();
66
+ if (!existsSync(settingsDir)) {
67
+ mkdirSync(settingsDir, { recursive: true });
68
+ }
69
+ writeFileSync(getSettingsPath(), JSON.stringify(settings, null, 2) + "\n");
70
+ }
71
+ /**
72
+ * Check if Claude Code CLI is available
73
+ */
74
+ export function isClaudeCliAvailable() {
75
+ try {
76
+ execSync("claude --version", { stdio: "ignore" });
77
+ return true;
78
+ }
79
+ catch {
80
+ return false;
81
+ }
82
+ }
83
+ /**
84
+ * Add the 0pflow marketplace to Claude Code
85
+ */
86
+ export function addMarketplace() {
87
+ try {
88
+ execSync("claude plugin marketplace add timescale/0pflow", { stdio: "inherit" });
89
+ return { success: true };
90
+ }
91
+ catch (err) {
92
+ return {
93
+ success: false,
94
+ error: err instanceof Error ? err.message : String(err)
95
+ };
96
+ }
97
+ }
98
+ /**
99
+ * Install the 0pflow plugin to Claude Code
100
+ */
101
+ export function installPlugin() {
102
+ try {
103
+ execSync("claude plugin install 0pflow", { stdio: "inherit" });
104
+ return { success: true };
105
+ }
106
+ catch (err) {
107
+ return {
108
+ success: false,
109
+ error: err instanceof Error ? err.message : String(err)
110
+ };
111
+ }
112
+ }
113
+ /**
114
+ * Run the install command
115
+ */
116
+ export async function runInstall(options = {}) {
117
+ console.log();
118
+ console.log(pc.bold("0pflow Install"));
119
+ console.log();
120
+ // Check if Claude CLI is available
121
+ if (!isClaudeCliAvailable()) {
122
+ console.log(pc.red("Error: Claude Code CLI not found."));
123
+ console.log(pc.dim("Please install Claude Code first: https://claude.ai/code"));
124
+ process.exit(1);
125
+ }
126
+ // Build MCP command from current invocation
127
+ const mcpCommand = buildMcpCommand();
128
+ console.log(pc.dim("MCP command:"), mcpCommand.join(" "));
129
+ console.log();
130
+ // Check for existing installation
131
+ const existingSettings = readSettings();
132
+ if (existingSettings) {
133
+ if (!options.force) {
134
+ console.log(pc.yellow("0pflow is already installed."));
135
+ console.log(pc.dim("Current MCP command:"), existingSettings.mcpCommand.join(" "));
136
+ console.log();
137
+ console.log(pc.dim("Use --force to reinstall."));
138
+ return;
139
+ }
140
+ // Force reinstall - uninstall first
141
+ console.log(pc.dim("Uninstalling existing installation..."));
142
+ await runUninstall();
143
+ console.log();
144
+ console.log(pc.bold("Reinstalling 0pflow..."));
145
+ console.log();
146
+ }
147
+ // Write settings
148
+ const settings = {
149
+ mcpCommand,
150
+ installedAt: new Date().toISOString(),
151
+ };
152
+ console.log(pc.dim("Writing settings to:"), getSettingsPath());
153
+ writeSettings(settings);
154
+ console.log(pc.green("✓"), "Settings saved");
155
+ console.log();
156
+ // Add marketplace
157
+ console.log(pc.dim("Adding 0pflow marketplace..."));
158
+ const marketplaceResult = addMarketplace();
159
+ if (marketplaceResult.success) {
160
+ console.log(pc.green("✓"), "Marketplace added");
161
+ }
162
+ else {
163
+ console.log(pc.yellow("⚠"), "Could not add marketplace (may already exist)");
164
+ }
165
+ // Install plugin
166
+ console.log(pc.dim("Installing 0pflow plugin..."));
167
+ const pluginResult = installPlugin();
168
+ if (pluginResult.success) {
169
+ console.log(pc.green("✓"), "Plugin installed");
170
+ }
171
+ else {
172
+ console.log(pc.red("✗"), "Failed to install plugin:", pluginResult.error);
173
+ }
174
+ console.log();
175
+ console.log(pc.green(pc.bold("Installation complete!")));
176
+ console.log();
177
+ console.log("You can now use 0pflow in Claude Code.");
178
+ console.log();
179
+ }
180
+ /**
181
+ * Run the uninstall command
182
+ */
183
+ export async function runUninstall() {
184
+ console.log();
185
+ console.log(pc.bold("0pflow Uninstall"));
186
+ console.log();
187
+ // Uninstall plugin and marketplace from Claude
188
+ if (isClaudeCliAvailable()) {
189
+ console.log(pc.dim("Uninstalling plugin from Claude Code..."));
190
+ try {
191
+ execSync("claude plugin uninstall 0pflow", { stdio: "inherit" });
192
+ console.log(pc.green("✓"), "Plugin uninstalled");
193
+ }
194
+ catch {
195
+ console.log(pc.yellow("⚠"), "Could not uninstall plugin (may not exist)");
196
+ }
197
+ console.log(pc.dim("Removing marketplace..."));
198
+ try {
199
+ execSync("claude plugin marketplace remove 0pflow", { stdio: "inherit" });
200
+ console.log(pc.green("✓"), "Marketplace removed");
201
+ }
202
+ catch {
203
+ console.log(pc.yellow("⚠"), "Could not remove marketplace (may not exist)");
204
+ }
205
+ }
206
+ // Remove settings file
207
+ const settingsPath = getSettingsPath();
208
+ if (existsSync(settingsPath)) {
209
+ const { unlinkSync } = await import("node:fs");
210
+ unlinkSync(settingsPath);
211
+ console.log(pc.green("✓"), "Settings file removed");
212
+ }
213
+ console.log();
214
+ console.log(pc.green("Uninstallation complete."));
215
+ console.log();
216
+ }
217
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/cli/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,YAAY,CAAC;AAO5B;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/B,iDAAiD;IACjD,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,YAAY,KAAK,CAAC,CAAC;QAClC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC;QAC7B,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAErC,0DAA0D;IAC1D,yEAAyE;IACzE,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,oEAAoE;IACpE,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACnF,uEAAuE;QACvE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;QACnD,IAAI,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;QACD,qBAAqB;QACrB,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,CAAC,GAAG,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC;IAChE,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,eAAe,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,QAAyB;IACrD,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,aAAa,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC;QACH,QAAQ,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC;QACH,QAAQ,CAAC,gDAAgD,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACjF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACxD,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC;QACH,QAAQ,CAAC,8BAA8B,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACxD,CAAC;IACJ,CAAC;AACH,CAAC;AAMD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,UAA0B,EAAE;IAC3D,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,mCAAmC;IACnC,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC,CAAC;QAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,4CAA4C;IAC5C,MAAM,UAAU,GAAG,eAAe,EAAE,CAAC;IAErC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,kCAAkC;IAClC,MAAM,gBAAgB,GAAG,YAAY,EAAE,CAAC;IACxC,IAAI,gBAAgB,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACnF,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QACD,oCAAoC;QACpC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAC7D,MAAM,YAAY,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,iBAAiB;IACjB,MAAM,QAAQ,GAAoB;QAChC,UAAU;QACV,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;IAC/D,aAAa,CAAC,QAAQ,CAAC,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,kBAAkB;IAClB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACpD,MAAM,iBAAiB,GAAG,cAAc,EAAE,CAAC;IAC3C,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,mBAAmB,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,+CAA+C,CAAC,CAAC;IAC/E,CAAC;IAED,iBAAiB;IACjB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,aAAa,EAAE,CAAC;IACrC,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,2BAA2B,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,+CAA+C;IAC/C,IAAI,oBAAoB,EAAE,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC;YACH,QAAQ,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,oBAAoB,CAAC,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,4CAA4C,CAAC,CAAC;QAC5E,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC;YACH,QAAQ,CAAC,yCAAyC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,qBAAqB,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,8CAA8C,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/C,UAAU,CAAC,YAAY,CAAC,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,uBAAuB,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const packageRoot: string;
2
+ export declare const monorepoRoot: string;
3
+ export declare const templatesDir: string;
4
+ export declare const version: string;
5
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +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,QAAgC,CAAC;AAG1D,eAAO,MAAM,YAAY,QAAkC,CAAC;AAM5D,eAAO,MAAM,OAAO,EAAE,MAAoB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ const __dirname = dirname(fileURLToPath(import.meta.url));
5
+ // Package root directory (relative to dist/cli/mcp/)
6
+ export const packageRoot = join(__dirname, "..", "..", "..");
7
+ // Monorepo root (up from packages/core)
8
+ export const monorepoRoot = join(packageRoot, "..", "..");
9
+ // Templates directory at monorepo root level
10
+ export const templatesDir = join(monorepoRoot, "templates");
11
+ // Read version from package.json
12
+ const pkg = JSON.parse(readFileSync(join(packageRoot, "package.json"), "utf-8"));
13
+ export const version = pkg.version;
14
+ //# sourceMappingURL=config.js.map
@@ -0,0 +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,wCAAwC;AACxC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAE1D,6CAA6C;AAC7C,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AAE5D,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,12 @@
1
+ export interface AppTemplateVars {
2
+ app_name: string;
3
+ }
4
+ /**
5
+ * Write app templates with Handlebars templating
6
+ */
7
+ export declare function writeAppTemplates(destDir: string, vars: AppTemplateVars): Promise<void>;
8
+ /**
9
+ * Create 0pflow-specific directories in the app
10
+ */
11
+ export declare function create0pflowDirectories(destDir: string): Promise<void>;
12
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +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;CAClB;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"}
@@ -0,0 +1,77 @@
1
+ import { copyFile, mkdir, readdir, readFile, writeFile, } from "node:fs/promises";
2
+ import { dirname, extname, join, relative } from "node:path";
3
+ import Handlebars from "handlebars";
4
+ import { templatesDir } from "../config.js";
5
+ // Binary file extensions that should be copied without transformation
6
+ const BINARY_EXTENSIONS = new Set([
7
+ ".ico",
8
+ ".png",
9
+ ".jpg",
10
+ ".jpeg",
11
+ ".gif",
12
+ ".webp",
13
+ ".svg",
14
+ ".woff",
15
+ ".woff2",
16
+ ".ttf",
17
+ ".eot",
18
+ ".otf",
19
+ ".pdf",
20
+ ]);
21
+ /**
22
+ * Copy a template directory to destination, optionally transforming file contents
23
+ */
24
+ async function copyTemplateDir(templateName, destDir, transform) {
25
+ const srcBaseDir = join(templatesDir, templateName);
26
+ async function copyDir(srcDir) {
27
+ const entries = await readdir(srcDir, { withFileTypes: true });
28
+ for (const entry of entries) {
29
+ const srcPath = join(srcDir, entry.name);
30
+ const relPath = relative(srcBaseDir, srcPath);
31
+ const destPath = join(destDir, relPath);
32
+ if (entry.isDirectory()) {
33
+ await mkdir(destPath, { recursive: true });
34
+ await copyDir(srcPath);
35
+ }
36
+ else {
37
+ await mkdir(dirname(destPath), { recursive: true });
38
+ // Copy binary files directly without transformation
39
+ if (BINARY_EXTENSIONS.has(extname(entry.name).toLowerCase())) {
40
+ await copyFile(srcPath, destPath);
41
+ }
42
+ else {
43
+ const content = await readFile(srcPath, "utf-8");
44
+ const output = transform ? transform(content) : content;
45
+ await writeFile(destPath, output);
46
+ }
47
+ }
48
+ }
49
+ }
50
+ await copyDir(srcBaseDir);
51
+ }
52
+ /**
53
+ * Write app templates with Handlebars templating
54
+ */
55
+ export async function writeAppTemplates(destDir, vars) {
56
+ await copyTemplateDir("app", destDir, (content) => {
57
+ const template = Handlebars.compile(content);
58
+ return template(vars);
59
+ });
60
+ }
61
+ /**
62
+ * Create 0pflow-specific directories in the app
63
+ */
64
+ export async function create0pflowDirectories(destDir) {
65
+ const dirs = [
66
+ "specs/workflows",
67
+ "specs/agents",
68
+ "generated/workflows",
69
+ "nodes",
70
+ "tools",
71
+ "agents",
72
+ ];
73
+ for (const dir of dirs) {
74
+ await mkdir(join(destDir, dir), { recursive: true });
75
+ }
76
+ }
77
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../../src/cli/mcp/lib/templates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Start the MCP server in stdio mode
3
+ */
4
+ export declare function startMcpServer(): Promise<void>;
5
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/server.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAQpD"}
@@ -0,0 +1,15 @@
1
+ import { stdioServerFactory } from "@tigerdata/mcp-boilerplate";
2
+ import { context, serverInfo } from "./serverInfo.js";
3
+ import { getApiFactories } from "./tools/index.js";
4
+ /**
5
+ * Start the MCP server in stdio mode
6
+ */
7
+ export async function startMcpServer() {
8
+ const apiFactories = await getApiFactories();
9
+ await stdioServerFactory({
10
+ ...serverInfo,
11
+ context,
12
+ apiFactories,
13
+ });
14
+ }
15
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/cli/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,YAAY,GAAG,MAAM,eAAe,EAAE,CAAC;IAE7C,MAAM,kBAAkB,CAAC;QACvB,GAAG,UAAU;QACb,OAAO;QACP,YAAY;KACb,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ServerContext } from "./types.js";
2
+ export declare const serverInfo: {
3
+ readonly name: "0pflow-local-tools";
4
+ readonly version: string;
5
+ };
6
+ export declare const context: ServerContext;
7
+ //# sourceMappingURL=serverInfo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverInfo.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/serverInfo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,UAAU;;;CAGb,CAAC;AAEX,eAAO,MAAM,OAAO,EAAE,aAAkB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { version } from "./config.js";
2
+ export const serverInfo = {
3
+ name: "0pflow-local-tools",
4
+ version,
5
+ };
6
+ export const context = {};
7
+ //# sourceMappingURL=serverInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverInfo.js","sourceRoot":"","sources":["../../../src/cli/mcp/serverInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,oBAAoB;IAC1B,OAAO;CACC,CAAC;AAEX,MAAM,CAAC,MAAM,OAAO,GAAkB,EAAE,CAAC"}
@@ -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 app_name: z.ZodString;
6
+ readonly install_deps: z.ZodDefault<z.ZodBoolean>;
7
+ };
8
+ declare const outputSchema: {
9
+ readonly success: z.ZodBoolean;
10
+ readonly message: z.ZodString;
11
+ readonly path: z.ZodOptional<z.ZodString>;
12
+ };
13
+ export declare const createAppFactory: ApiFactory<ServerContext, typeof inputSchema, typeof outputSchema>;
14
+ export {};
15
+ //# sourceMappingURL=createApp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createApp.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/createApp.ts"],"names":[],"mappings":"AAGA,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;AAgBjD,QAAA,MAAM,WAAW;;;CAMP,CAAC;AAEX,QAAA,MAAM,YAAY;;;;CAIR,CAAC;AAQX,eAAO,MAAM,gBAAgB,EAAE,UAAU,CACvC,aAAa,EACb,OAAO,WAAW,EAClB,OAAO,YAAY,CAyDpB,CAAC"}
@@ -0,0 +1,81 @@
1
+ import { exec } from "node:child_process";
2
+ import { existsSync } from "node:fs";
3
+ import { join } from "node:path";
4
+ import { z } from "zod";
5
+ import { monorepoRoot } from "../config.js";
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
+ });
20
+ const inputSchema = {
21
+ app_name: z.string().describe("Application name (lowercase with hyphens, e.g., 'lead-scoring-app')"),
22
+ install_deps: z
23
+ .boolean()
24
+ .default(true)
25
+ .describe("Run npm install after creating the app"),
26
+ };
27
+ const outputSchema = {
28
+ success: z.boolean().describe("Whether the app was created successfully"),
29
+ message: z.string().describe("Status message"),
30
+ path: z.string().optional().describe("Absolute path to created app"),
31
+ };
32
+ export const createAppFactory = () => {
33
+ return {
34
+ name: "create_app",
35
+ config: {
36
+ title: "Create 0pflow App",
37
+ description: "Create a new 0pflow application with T3 Stack template (Next.js + tRPC + Drizzle) and 0pflow workflow directories. Use this to scaffold new projects.",
38
+ inputSchema,
39
+ outputSchema,
40
+ },
41
+ fn: async ({ app_name, install_deps, }) => {
42
+ const appName = app_name;
43
+ const appPath = process.cwd();
44
+ try {
45
+ // Copy app template with Handlebars substitution
46
+ await writeAppTemplates(appPath, {
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
+ }
78
+ },
79
+ };
80
+ };
81
+ //# sourceMappingURL=createApp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createApp.js","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/createApp.ts"],"names":[],"mappings":"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"}
@@ -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
+ readonly name: z.ZodOptional<z.ZodString>;
6
+ };
7
+ declare const outputSchema: {
8
+ readonly success: z.ZodBoolean;
9
+ readonly service_id: z.ZodOptional<z.ZodString>;
10
+ readonly error: z.ZodOptional<z.ZodString>;
11
+ };
12
+ export declare const createDatabaseFactory: ApiFactory<ServerContext, typeof inputSchema, typeof outputSchema>;
13
+ export {};
14
+ //# sourceMappingURL=createDatabase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDatabase.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/createDatabase.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;AAIjD,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,CAuDpB,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { exec } from "node:child_process";
2
+ import { promisify } from "node:util";
3
+ import { z } from "zod";
4
+ const execAsync = promisify(exec);
5
+ const inputSchema = {
6
+ name: z.string().optional().describe("Database name (default: app-db)"),
7
+ };
8
+ const outputSchema = {
9
+ success: z
10
+ .boolean()
11
+ .describe("Whether the database was created successfully"),
12
+ service_id: z.string().optional().describe("The Tiger Cloud service ID"),
13
+ error: z.string().optional().describe("Error message if creation failed"),
14
+ };
15
+ export const createDatabaseFactory = () => {
16
+ return {
17
+ name: "create_database",
18
+ config: {
19
+ title: "Create Database",
20
+ description: "Create a PostgreSQL database on Tiger Cloud (FREE tier). Auto-configures with TimescaleDB and AI extensions.",
21
+ inputSchema,
22
+ outputSchema,
23
+ },
24
+ fn: async ({ name }) => {
25
+ const dbName = name || "app-db";
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
+ }
63
+ },
64
+ };
65
+ };
66
+ //# sourceMappingURL=createDatabase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDatabase.js","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/createDatabase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,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,MAAM,MAAM,GAAG,IAAI,IAAI,QAAQ,CAAC;YAEhC,MAAM,OAAO,GAAG;gBACd,OAAO;gBACP,SAAS;gBACT,QAAQ;gBACR,QAAQ;gBACR,MAAM;gBACN,OAAO;gBACP,QAAQ;gBACR,UAAU;gBACV,QAAQ;gBACR,UAAU;gBACV,gBAAgB;gBAChB,WAAW;gBACX,IAAI;gBACJ,MAAM;aACP,CAAC;YAEF,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAA4B,CAAC;gBAE7D,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;oBACvB,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,8BAA8B,MAAM,GAAG,MAAM,EAAE;qBACvD,CAAC;gBACJ,CAAC;gBAED,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,MAAM,CAAC,UAAU;iBAC9B,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,KAAK,GAAG,GAAmD,CAAC;gBAClE,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,8BAA8B,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,MAAM,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE;iBACjG,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ export declare function getApiFactories(): Promise<readonly [import("@tigerdata/mcp-boilerplate").ApiFactory<import("../types.js").ServerContext, {
2
+ readonly app_name: import("zod").ZodString;
3
+ readonly install_deps: import("zod").ZodDefault<import("zod").ZodBoolean>;
4
+ }, {
5
+ readonly success: import("zod").ZodBoolean;
6
+ readonly message: import("zod").ZodString;
7
+ readonly path: import("zod").ZodOptional<import("zod").ZodString>;
8
+ }>, import("@tigerdata/mcp-boilerplate").ApiFactory<import("../types.js").ServerContext, {
9
+ readonly name: import("zod").ZodOptional<import("zod").ZodString>;
10
+ }, {
11
+ readonly success: import("zod").ZodBoolean;
12
+ readonly service_id: import("zod").ZodOptional<import("zod").ZodString>;
13
+ readonly error: import("zod").ZodOptional<import("zod").ZodString>;
14
+ }>, import("@tigerdata/mcp-boilerplate").ApiFactory<import("../types.js").ServerContext, {
15
+ readonly application_directory: import("zod").ZodString;
16
+ readonly service_id: import("zod").ZodString;
17
+ readonly app_name: import("zod").ZodString;
18
+ }, {
19
+ readonly success: import("zod").ZodBoolean;
20
+ readonly message: import("zod").ZodString;
21
+ readonly schema_name: import("zod").ZodOptional<import("zod").ZodString>;
22
+ readonly user_name: import("zod").ZodOptional<import("zod").ZodString>;
23
+ }>]>;
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/index.ts"],"names":[],"mappings":"AAIA,wBAAsB,eAAe;;;;;;;;;;;;;;;;;;;;;;KAMpC"}