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,92 @@
1
+ import { existsSync } from "node:fs";
2
+ import { resolve, dirname } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ import { z } from "zod";
5
+ const inputSchema = {
6
+ port: z
7
+ .number()
8
+ .optional()
9
+ .describe("Preferred port (default 4173). Falls back to an available port if taken."),
10
+ };
11
+ const outputSchema = {
12
+ url: z.string().optional().describe("Dev UI URL (e.g. http://localhost:4173)"),
13
+ port: z.number().optional().describe("Actual port the server is running on"),
14
+ already_running: z
15
+ .boolean()
16
+ .optional()
17
+ .describe("True if the server was already running from a previous call"),
18
+ error: z.string().optional().describe("Error message if the server could not start"),
19
+ };
20
+ // Module-level singleton state
21
+ let devServer = null;
22
+ export const startDevUiFactory = () => {
23
+ return {
24
+ name: "start_dev_ui",
25
+ config: {
26
+ title: "Start Dev UI",
27
+ description: "Start the 0pflow Dev UI server for visualizing workflow DAGs. " +
28
+ "Returns the URL with the actual port. Idempotent — if already running, returns existing URL. " +
29
+ "Automatically picks an available port if the default (4173) is taken.",
30
+ inputSchema,
31
+ outputSchema,
32
+ },
33
+ fn: async ({ port }) => {
34
+ // Singleton: if already running, return existing info
35
+ if (devServer) {
36
+ return {
37
+ url: devServer.url,
38
+ port: devServer.port,
39
+ already_running: true,
40
+ };
41
+ }
42
+ // Check that the dev-ui client has been built (find package root first)
43
+ let pkgRoot = dirname(fileURLToPath(import.meta.url));
44
+ while (!existsSync(resolve(pkgRoot, "package.json"))) {
45
+ const parent = dirname(pkgRoot);
46
+ if (parent === pkgRoot)
47
+ break;
48
+ pkgRoot = parent;
49
+ }
50
+ const clientIndex = resolve(pkgRoot, "dist/dev-ui-client/index.html");
51
+ if (!existsSync(clientIndex)) {
52
+ return {
53
+ error: "Dev UI client not built. Run: pnpm --filter 0pflow build",
54
+ };
55
+ }
56
+ // Load .env for DATABASE_URL and NANGO_SECRET_KEY (best-effort)
57
+ try {
58
+ const { resolveEnv } = await import("../../env.js");
59
+ resolveEnv();
60
+ }
61
+ catch {
62
+ // Dev UI works without env — connections API just won't be available
63
+ }
64
+ const { startDevServer } = await import("../../../dev-ui/index.js");
65
+ const result = await startDevServer({
66
+ projectRoot: process.cwd(),
67
+ port: port ?? 4173,
68
+ quiet: true, // Critical: suppress stdout in MCP stdio transport
69
+ databaseUrl: process.env.DATABASE_URL,
70
+ nangoSecretKey: process.env.NANGO_SECRET_KEY,
71
+ });
72
+ devServer = {
73
+ url: result.url,
74
+ port: result.port,
75
+ cleanup: result.cleanup,
76
+ };
77
+ // Safety net: clean up if stdin closes (Claude Code exited)
78
+ process.stdin.on("end", () => {
79
+ if (devServer) {
80
+ devServer.cleanup().catch(() => { });
81
+ devServer = null;
82
+ }
83
+ });
84
+ return {
85
+ url: result.url,
86
+ port: result.port,
87
+ already_running: false,
88
+ };
89
+ },
90
+ };
91
+ };
92
+ //# sourceMappingURL=startDevUi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startDevUi.js","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/startDevUi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Load .env from cwd and return DATABASE_URL.
3
+ * Throws with a helpful message if not found.
4
+ */
5
+ export declare function requireDatabaseUrl(): string;
6
+ export { parseOutput } from "../../trace.js";
7
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/utils.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAK3C;AAGD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { existsSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import dotenv from "dotenv";
4
+ /**
5
+ * Load .env directly from cwd — NOT via resolveEnv() which walks up
6
+ * the directory tree and may find a parent .env instead of the app's.
7
+ * Uses override: true so the app's values always win.
8
+ */
9
+ function loadProjectEnv() {
10
+ const envPath = join(process.cwd(), ".env");
11
+ if (existsSync(envPath)) {
12
+ dotenv.config({ path: envPath, override: true, quiet: true });
13
+ }
14
+ }
15
+ /**
16
+ * Load .env from cwd and return DATABASE_URL.
17
+ * Throws with a helpful message if not found.
18
+ */
19
+ export function requireDatabaseUrl() {
20
+ loadProjectEnv();
21
+ const url = process.env.DATABASE_URL;
22
+ if (!url)
23
+ throw new Error("DATABASE_URL not set in .env");
24
+ return url;
25
+ }
26
+ // Re-export parseOutput for MCP tools to unwrap superjson DB rows
27
+ export { parseOutput } from "../../trace.js";
28
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B;;;;GAIG;AACH,SAAS,cAAc;IACrB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IAC5C,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,cAAc,EAAE,CAAC;IACjB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACrC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC1D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,kEAAkE;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
@@ -24,6 +24,11 @@ export interface TraceResult {
24
24
  * Get workflow trace including all operations and child workflows
25
25
  */
26
26
  export declare function getTrace(databaseUrl: string, runId: string, schemaOverride?: string): Promise<TraceResult>;
27
+ /**
28
+ * Parse and unwrap DBOS/superjson output format
29
+ * Handles: raw values, JSON strings, and {"json": ..., "__dbos_serializer": "superjson"} wrappers
30
+ */
31
+ export declare function parseOutput(output: unknown): unknown;
27
32
  /**
28
33
  * Print a workflow trace as a tree to stdout
29
34
  */
@@ -1 +1 @@
1
- {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/cli/trace.ts"],"names":[],"mappings":"AAKA,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,WAAW,CAAC,CAatB;AAkJD;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAiInD"}
1
+ {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/cli/trace.ts"],"names":[],"mappings":"AAKA,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,WAAW,CAAC,CAatB;AAkGD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAYpD;AAgCD;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAiInD"}
package/dist/cli/trace.js CHANGED
@@ -103,7 +103,7 @@ function formatDuration(ms) {
103
103
  * Parse and unwrap DBOS/superjson output format
104
104
  * Handles: raw values, JSON strings, and {"json": ..., "__dbos_serializer": "superjson"} wrappers
105
105
  */
106
- function parseOutput(output) {
106
+ export function parseOutput(output) {
107
107
  if (output === null || output === undefined)
108
108
  return null;
109
109
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/cli/trace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/cli/trace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Get the stored API token, or null if not authenticated.
3
+ */
4
+ export declare function getToken(): string | null;
5
+ /**
6
+ * Save an API token and server URL to ~/.0pflow/credentials.
7
+ */
8
+ export declare function saveToken(token: string, serverUrl?: string): void;
9
+ /**
10
+ * Check if the user is authenticated (has a stored token).
11
+ */
12
+ export declare function isAuthenticated(): boolean;
13
+ /**
14
+ * Get the server URL from stored credentials, or the default.
15
+ */
16
+ export declare function getServerUrl(): string;
17
+ /**
18
+ * Open a URL in the user's default browser.
19
+ */
20
+ export declare function openBrowser(url: string): void;
21
+ /**
22
+ * Error indicating the user needs to approve the auth session in their browser.
23
+ */
24
+ export declare class AuthRequiredError extends Error {
25
+ readonly authUrl: string;
26
+ constructor(authUrl: string);
27
+ }
28
+ /**
29
+ * Perform browser-based CLI authentication (two-phase, non-blocking).
30
+ *
31
+ * Phase 1 (no pending session):
32
+ * - Creates a session, opens browser, polls briefly (~16s)
33
+ * - If approved quickly: saves token, returns
34
+ * - If not: saves pending session, throws AuthRequiredError with URL
35
+ *
36
+ * Phase 2 (pending session exists):
37
+ * - Checks if the pending session was approved
38
+ * - If approved: saves token, clears pending, returns
39
+ * - If not: throws AuthRequiredError with URL again
40
+ */
41
+ export declare function authenticate(): Promise<void>;
42
+ /**
43
+ * Clear stored credentials (logout).
44
+ */
45
+ export declare function logout(): void;
46
+ //# sourceMappingURL=cloud-auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud-auth.d.ts","sourceRoot":"","sources":["../../src/connections/cloud-auth.ts"],"names":[],"mappings":"AA+FA;;GAEG;AACH,wBAAgB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAOxC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAOjE;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAGrC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAiB7C;AA0CD;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,SAAgB,OAAO,EAAE,MAAM,CAAC;gBAEpB,OAAO,EAAE,MAAM;CAS5B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CA8DlD;AAED;;GAEG;AACH,wBAAgB,MAAM,IAAI,IAAI,CAS7B"}
@@ -0,0 +1,243 @@
1
+ /**
2
+ * CLI authentication for the 0pflow cloud server.
3
+ *
4
+ * Adapted from the Pencil MCP auth pattern:
5
+ * /Users/cevian/Development/pencil/packages/mcp-server/src/auth.ts
6
+ *
7
+ * Flow:
8
+ * 1. MCP/CLI calls authenticate()
9
+ * 2. Creates session on server → gets {code, secret}
10
+ * 3. Opens browser to /auth/cli?cli_code=X
11
+ * 4. User signs in (GitHub OAuth) and approves
12
+ * 5. Polls server until approved → saves token to ~/.0pflow/credentials
13
+ */
14
+ import { readFileSync, writeFileSync, mkdirSync, existsSync, unlinkSync } from "node:fs";
15
+ import { join } from "node:path";
16
+ import { homedir } from "node:os";
17
+ import { exec } from "node:child_process";
18
+ const CREDENTIALS_DIR = join(homedir(), ".0pflow");
19
+ const CREDENTIALS_FILE = join(CREDENTIALS_DIR, "credentials");
20
+ const PENDING_AUTH_FILE = join(CREDENTIALS_DIR, "pending_auth");
21
+ const DEFAULT_SERVER_URL = process.env.OPFLOW_SERVER_URL ?? "https://auth-server-vert.vercel.app";
22
+ const POLL_INTERVAL_MS = 2000;
23
+ const QUICK_POLL_ATTEMPTS = 8; // ~16 seconds
24
+ function ensureDir() {
25
+ if (!existsSync(CREDENTIALS_DIR)) {
26
+ mkdirSync(CREDENTIALS_DIR, { recursive: true });
27
+ }
28
+ }
29
+ function readCredentials() {
30
+ try {
31
+ if (!existsSync(CREDENTIALS_FILE)) {
32
+ return null;
33
+ }
34
+ const raw = readFileSync(CREDENTIALS_FILE, "utf-8");
35
+ const parsed = JSON.parse(raw);
36
+ if (!parsed.token) {
37
+ return null;
38
+ }
39
+ return parsed;
40
+ }
41
+ catch {
42
+ return null;
43
+ }
44
+ }
45
+ function readPendingAuth() {
46
+ try {
47
+ if (!existsSync(PENDING_AUTH_FILE)) {
48
+ return null;
49
+ }
50
+ const raw = readFileSync(PENDING_AUTH_FILE, "utf-8");
51
+ const parsed = JSON.parse(raw);
52
+ // Expire after 5 minutes
53
+ if (Date.now() - parsed.createdAt > 5 * 60 * 1000) {
54
+ unlinkSync(PENDING_AUTH_FILE);
55
+ return null;
56
+ }
57
+ return parsed;
58
+ }
59
+ catch {
60
+ return null;
61
+ }
62
+ }
63
+ function savePendingAuth(pending) {
64
+ ensureDir();
65
+ writeFileSync(PENDING_AUTH_FILE, JSON.stringify(pending, null, 2), "utf-8");
66
+ }
67
+ function clearPendingAuth() {
68
+ try {
69
+ if (existsSync(PENDING_AUTH_FILE)) {
70
+ unlinkSync(PENDING_AUTH_FILE);
71
+ }
72
+ }
73
+ catch {
74
+ // ignore
75
+ }
76
+ }
77
+ /**
78
+ * Get the stored API token, or null if not authenticated.
79
+ */
80
+ export function getToken() {
81
+ // Environment variable takes precedence (for cloud deployments)
82
+ if (process.env.OPFLOW_TOKEN) {
83
+ return process.env.OPFLOW_TOKEN;
84
+ }
85
+ const creds = readCredentials();
86
+ return creds?.token ?? null;
87
+ }
88
+ /**
89
+ * Save an API token and server URL to ~/.0pflow/credentials.
90
+ */
91
+ export function saveToken(token, serverUrl) {
92
+ ensureDir();
93
+ const credentials = {
94
+ token,
95
+ serverUrl: serverUrl ?? DEFAULT_SERVER_URL,
96
+ };
97
+ writeFileSync(CREDENTIALS_FILE, JSON.stringify(credentials, null, 2), "utf-8");
98
+ }
99
+ /**
100
+ * Check if the user is authenticated (has a stored token).
101
+ */
102
+ export function isAuthenticated() {
103
+ return getToken() !== null;
104
+ }
105
+ /**
106
+ * Get the server URL from stored credentials, or the default.
107
+ */
108
+ export function getServerUrl() {
109
+ const creds = readCredentials();
110
+ return creds?.serverUrl ?? DEFAULT_SERVER_URL;
111
+ }
112
+ /**
113
+ * Open a URL in the user's default browser.
114
+ */
115
+ export function openBrowser(url) {
116
+ const platform = process.platform;
117
+ let command;
118
+ if (platform === "darwin") {
119
+ command = `open "${url}"`;
120
+ }
121
+ else if (platform === "win32") {
122
+ command = `start "" "${url}"`;
123
+ }
124
+ else {
125
+ command = `xdg-open "${url}"`;
126
+ }
127
+ exec(command, (error) => {
128
+ if (error) {
129
+ process.stderr.write(`Failed to open browser: ${error.message}\n`);
130
+ }
131
+ });
132
+ }
133
+ function sleep(ms) {
134
+ return new Promise((resolve) => setTimeout(resolve, ms));
135
+ }
136
+ /**
137
+ * Check a pending auth session's status.
138
+ */
139
+ async function checkPendingSession(serverUrl, code, secret) {
140
+ try {
141
+ const checkResponse = await fetch(`${serverUrl}/api/auth/cli/check?code=${encodeURIComponent(code)}&secret=${encodeURIComponent(secret)}`);
142
+ if (!checkResponse.ok)
143
+ return null;
144
+ const checkData = (await checkResponse.json());
145
+ if (checkData.data.status === "approved" && checkData.data.token) {
146
+ return { token: checkData.data.token };
147
+ }
148
+ if (checkData.data.status === "expired") {
149
+ clearPendingAuth();
150
+ }
151
+ return null;
152
+ }
153
+ catch {
154
+ return null;
155
+ }
156
+ }
157
+ /**
158
+ * Error indicating the user needs to approve the auth session in their browser.
159
+ */
160
+ export class AuthRequiredError extends Error {
161
+ authUrl;
162
+ constructor(authUrl) {
163
+ super(`Authentication required. I've opened your browser to authorize access.\n\n` +
164
+ `If the browser didn't open, visit this URL:\n${authUrl}\n\n` +
165
+ `After you approve access in the browser, retry this command.`);
166
+ this.name = "AuthRequiredError";
167
+ this.authUrl = authUrl;
168
+ }
169
+ }
170
+ /**
171
+ * Perform browser-based CLI authentication (two-phase, non-blocking).
172
+ *
173
+ * Phase 1 (no pending session):
174
+ * - Creates a session, opens browser, polls briefly (~16s)
175
+ * - If approved quickly: saves token, returns
176
+ * - If not: saves pending session, throws AuthRequiredError with URL
177
+ *
178
+ * Phase 2 (pending session exists):
179
+ * - Checks if the pending session was approved
180
+ * - If approved: saves token, clears pending, returns
181
+ * - If not: throws AuthRequiredError with URL again
182
+ */
183
+ export async function authenticate() {
184
+ const serverUrl = DEFAULT_SERVER_URL;
185
+ // Phase 2: Check if a pending session was approved
186
+ const pending = readPendingAuth();
187
+ if (pending) {
188
+ const result = await checkPendingSession(pending.serverUrl, pending.code, pending.secret);
189
+ if (result) {
190
+ saveToken(result.token, pending.serverUrl);
191
+ clearPendingAuth();
192
+ process.stderr.write("Authentication successful! Token saved.\n");
193
+ return;
194
+ }
195
+ // Still pending — tell user to approve
196
+ throw new AuthRequiredError(pending.authUrl);
197
+ }
198
+ // Phase 1: Create a new session
199
+ const createResponse = await fetch(`${serverUrl}/api/auth/cli/session`, {
200
+ method: "POST",
201
+ headers: { "Content-Type": "application/json" },
202
+ });
203
+ if (!createResponse.ok) {
204
+ const errorText = await createResponse.text();
205
+ throw new Error(`Failed to create auth session: ${errorText}`);
206
+ }
207
+ const createData = (await createResponse.json());
208
+ const { code, secret } = createData.data;
209
+ const authUrl = `${serverUrl}/auth/cli?cli_code=${code}`;
210
+ // Save pending session so Phase 2 can pick it up
211
+ savePendingAuth({ code, secret, authUrl, serverUrl, createdAt: Date.now() });
212
+ // Open browser and print URL
213
+ process.stderr.write(`\nOpen this URL to authenticate:\n ${authUrl}\n\n`);
214
+ openBrowser(authUrl);
215
+ // Quick poll: give the user ~16 seconds to approve
216
+ for (let attempt = 0; attempt < QUICK_POLL_ATTEMPTS; attempt++) {
217
+ await sleep(POLL_INTERVAL_MS);
218
+ const result = await checkPendingSession(serverUrl, code, secret);
219
+ if (result) {
220
+ saveToken(result.token, serverUrl);
221
+ clearPendingAuth();
222
+ process.stderr.write("Authentication successful! Token saved.\n");
223
+ return;
224
+ }
225
+ }
226
+ // Not approved yet — throw with helpful message
227
+ throw new AuthRequiredError(authUrl);
228
+ }
229
+ /**
230
+ * Clear stored credentials (logout).
231
+ */
232
+ export function logout() {
233
+ try {
234
+ if (existsSync(CREDENTIALS_FILE)) {
235
+ unlinkSync(CREDENTIALS_FILE);
236
+ }
237
+ }
238
+ catch {
239
+ // ignore
240
+ }
241
+ clearPendingAuth();
242
+ }
243
+ //# sourceMappingURL=cloud-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud-auth.js","sourceRoot":"","sources":["../../src/connections/cloud-auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * HTTP client for the 0pflow cloud server.
3
+ *
4
+ * Adapted from the Pencil MCP client pattern:
5
+ * /Users/cevian/Development/pencil/packages/mcp-server/src/client.ts
6
+ *
7
+ * Makes authenticated API calls using the token from cloud-auth.ts.
8
+ * Auto-triggers authenticate() when not authenticated.
9
+ */
10
+ import { AuthRequiredError } from "./cloud-auth.js";
11
+ export declare class AuthError extends Error {
12
+ constructor(message?: string);
13
+ }
14
+ export declare class ApiError extends Error {
15
+ readonly status: number;
16
+ constructor(status: number, message: string);
17
+ }
18
+ /**
19
+ * Make an authenticated HTTP call to the 0pflow cloud server.
20
+ * Returns the parsed response data (the `data` field from the response).
21
+ * Throws AuthError if not authenticated, ApiError if the request fails.
22
+ */
23
+ export declare function apiCall(method: string, path: string, body?: Record<string, unknown>): Promise<unknown>;
24
+ export { AuthRequiredError };
25
+ //# sourceMappingURL=cloud-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud-client.d.ts","sourceRoot":"","sources":["../../src/connections/cloud-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAKL,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAEzB,qBAAa,SAAU,SAAQ,KAAK;gBACtB,OAAO,CAAC,EAAE,MAAM;CAO7B;AAED,qBAAa,QAAS,SAAQ,KAAK;IACjC,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEnB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK5C;AAED;;;;GAIG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,OAAO,CAAC,CAkClB;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * HTTP client for the 0pflow cloud server.
3
+ *
4
+ * Adapted from the Pencil MCP client pattern:
5
+ * /Users/cevian/Development/pencil/packages/mcp-server/src/client.ts
6
+ *
7
+ * Makes authenticated API calls using the token from cloud-auth.ts.
8
+ * Auto-triggers authenticate() when not authenticated.
9
+ */
10
+ import { getToken, getServerUrl, isAuthenticated, authenticate, AuthRequiredError, } from "./cloud-auth.js";
11
+ export class AuthError extends Error {
12
+ constructor(message) {
13
+ super(message ??
14
+ "Not authenticated with 0pflow cloud. Run `0pflow login` or set OPFLOW_TOKEN.");
15
+ this.name = "AuthError";
16
+ }
17
+ }
18
+ export class ApiError extends Error {
19
+ status;
20
+ constructor(status, message) {
21
+ super(message);
22
+ this.name = "ApiError";
23
+ this.status = status;
24
+ }
25
+ }
26
+ /**
27
+ * Make an authenticated HTTP call to the 0pflow cloud server.
28
+ * Returns the parsed response data (the `data` field from the response).
29
+ * Throws AuthError if not authenticated, ApiError if the request fails.
30
+ */
31
+ export async function apiCall(method, path, body) {
32
+ if (!isAuthenticated()) {
33
+ // Attempt browser-based authentication (non-blocking, ~16s max)
34
+ await authenticate();
35
+ if (!isAuthenticated()) {
36
+ throw new AuthError();
37
+ }
38
+ }
39
+ const token = getToken();
40
+ const serverUrl = getServerUrl();
41
+ const headers = {
42
+ Authorization: `Bearer ${token}`,
43
+ "Content-Type": "application/json",
44
+ };
45
+ const response = await fetch(`${serverUrl}${path}`, {
46
+ method,
47
+ headers,
48
+ body: body ? JSON.stringify(body) : undefined,
49
+ });
50
+ const responseData = (await response.json());
51
+ if (!response.ok) {
52
+ const errorMessage = responseData.error ??
53
+ `HTTP ${response.status}: ${response.statusText}`;
54
+ throw new ApiError(response.status, errorMessage);
55
+ }
56
+ return responseData.data;
57
+ }
58
+ export { AuthRequiredError };
59
+ //# sourceMappingURL=cloud-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud-client.js","sourceRoot":"","sources":["../../src/connections/cloud-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,OAAO,SAAU,SAAQ,KAAK;IAClC,YAAY,OAAgB;QAC1B,KAAK,CACH,OAAO;YACL,8EAA8E,CACjF,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjB,MAAM,CAAS;IAE/B,YAAY,MAAc,EAAE,OAAe;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAc,EACd,IAAY,EACZ,IAA8B;IAE9B,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACvB,gEAAgE;QAChE,MAAM,YAAY,EAAE,CAAC;QAErB,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YACvB,MAAM,IAAI,SAAS,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,EAAG,CAAC;IAC1B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IAEjC,MAAM,OAAO,GAA2B;QACtC,aAAa,EAAE,UAAU,KAAK,EAAE;QAChC,cAAc,EAAE,kBAAkB;KACnC,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,GAAG,IAAI,EAAE,EAAE;QAClD,MAAM;QACN,OAAO;QACP,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;KAC9C,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA4B,CAAC;IAExE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,YAAY,GACf,YAAY,CAAC,KAAgB;YAC9B,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,YAAY,CAAC,IAAI,CAAC;AAC3B,CAAC;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { IntegrationProvider } from "./integration-provider.js";
2
+ import type { ConnectionCredentials } from "../types.js";
3
+ /**
4
+ * IntegrationProvider backed by the 0pflow cloud server (hosted mode).
5
+ * All Nango operations are proxied through the server — no NANGO_SECRET_KEY needed locally.
6
+ */
7
+ export declare class CloudIntegrationProvider implements IntegrationProvider {
8
+ fetchCredentials(integrationId: string, connectionId: string): Promise<ConnectionCredentials>;
9
+ listIntegrations(): Promise<Array<{
10
+ id: string;
11
+ provider: string;
12
+ }>>;
13
+ listConnections(integrationId: string): Promise<Array<{
14
+ connection_id: string;
15
+ provider_config_key: string;
16
+ }>>;
17
+ createConnectSession(integrationId: string): Promise<{
18
+ token: string;
19
+ }>;
20
+ }
21
+ //# sourceMappingURL=cloud-integration-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud-integration-provider.d.ts","sourceRoot":"","sources":["../../src/connections/cloud-integration-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGzD;;;GAGG;AACH,qBAAa,wBAAyB,YAAW,mBAAmB;IAC5D,gBAAgB,CACpB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,qBAAqB,CAAC;IAS3B,gBAAgB,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAQpE,eAAe,CACnB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,KAAK,CAAC;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAQnE,oBAAoB,CACxB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAM9B"}