0pflow 0.1.0-dev.d3a9dc9 → 0.1.0-dev.f5622ac

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 (189) 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/agent.d.ts +6 -0
  6. package/dist/agent.d.ts.map +1 -1
  7. package/dist/agent.js +59 -9
  8. package/dist/agent.js.map +1 -1
  9. package/dist/cli/discovery.d.ts +10 -0
  10. package/dist/cli/discovery.d.ts.map +1 -1
  11. package/dist/cli/discovery.js +42 -0
  12. package/dist/cli/discovery.js.map +1 -1
  13. package/dist/cli/env.js +1 -1
  14. package/dist/cli/env.js.map +1 -1
  15. package/dist/cli/index.d.ts.map +1 -1
  16. package/dist/cli/index.js +121 -8
  17. package/dist/cli/index.js.map +1 -1
  18. package/dist/cli/install.d.ts.map +1 -1
  19. package/dist/cli/install.js +44 -8
  20. package/dist/cli/install.js.map +1 -1
  21. package/dist/cli/mcp/lib/scaffolding.d.ts +33 -0
  22. package/dist/cli/mcp/lib/scaffolding.d.ts.map +1 -0
  23. package/dist/cli/mcp/lib/scaffolding.js +216 -0
  24. package/dist/cli/mcp/lib/scaffolding.js.map +1 -0
  25. package/dist/cli/mcp/tools/createApp.d.ts +1 -0
  26. package/dist/cli/mcp/tools/createApp.d.ts.map +1 -1
  27. package/dist/cli/mcp/tools/createApp.js +12 -56
  28. package/dist/cli/mcp/tools/createApp.js.map +1 -1
  29. package/dist/cli/mcp/tools/createDatabase.d.ts.map +1 -1
  30. package/dist/cli/mcp/tools/createDatabase.js +2 -41
  31. package/dist/cli/mcp/tools/createDatabase.js.map +1 -1
  32. package/dist/cli/mcp/tools/getConnectionInfo.d.ts +19 -0
  33. package/dist/cli/mcp/tools/getConnectionInfo.d.ts.map +1 -0
  34. package/dist/cli/mcp/tools/getConnectionInfo.js +117 -0
  35. package/dist/cli/mcp/tools/getConnectionInfo.js.map +1 -0
  36. package/dist/cli/mcp/tools/getRun.d.ts +22 -0
  37. package/dist/cli/mcp/tools/getRun.d.ts.map +1 -0
  38. package/dist/cli/mcp/tools/getRun.js +80 -0
  39. package/dist/cli/mcp/tools/getRun.js.map +1 -0
  40. package/dist/cli/mcp/tools/getTrace.d.ts +32 -0
  41. package/dist/cli/mcp/tools/getTrace.d.ts.map +1 -0
  42. package/dist/cli/mcp/tools/getTrace.js +104 -0
  43. package/dist/cli/mcp/tools/getTrace.js.map +1 -0
  44. package/dist/cli/mcp/tools/index.d.ts +94 -1
  45. package/dist/cli/mcp/tools/index.d.ts.map +1 -1
  46. package/dist/cli/mcp/tools/index.js +16 -0
  47. package/dist/cli/mcp/tools/index.js.map +1 -1
  48. package/dist/cli/mcp/tools/listIntegrations.d.ts +14 -0
  49. package/dist/cli/mcp/tools/listIntegrations.d.ts.map +1 -0
  50. package/dist/cli/mcp/tools/listIntegrations.js +53 -0
  51. package/dist/cli/mcp/tools/listIntegrations.js.map +1 -0
  52. package/dist/cli/mcp/tools/listRuns.d.ts +21 -0
  53. package/dist/cli/mcp/tools/listRuns.d.ts.map +1 -0
  54. package/dist/cli/mcp/tools/listRuns.js +72 -0
  55. package/dist/cli/mcp/tools/listRuns.js.map +1 -0
  56. package/dist/cli/mcp/tools/listWorkflows.d.ts +15 -0
  57. package/dist/cli/mcp/tools/listWorkflows.d.ts.map +1 -0
  58. package/dist/cli/mcp/tools/listWorkflows.js +45 -0
  59. package/dist/cli/mcp/tools/listWorkflows.js.map +1 -0
  60. package/dist/cli/mcp/tools/runNode.d.ts +17 -0
  61. package/dist/cli/mcp/tools/runNode.d.ts.map +1 -0
  62. package/dist/cli/mcp/tools/runNode.js +74 -0
  63. package/dist/cli/mcp/tools/runNode.js.map +1 -0
  64. package/dist/cli/mcp/tools/runWorkflow.d.ts +16 -0
  65. package/dist/cli/mcp/tools/runWorkflow.d.ts.map +1 -0
  66. package/dist/cli/mcp/tools/runWorkflow.js +66 -0
  67. package/dist/cli/mcp/tools/runWorkflow.js.map +1 -0
  68. package/dist/cli/mcp/tools/setupAppSchema.d.ts +1 -1
  69. package/dist/cli/mcp/tools/setupAppSchema.d.ts.map +1 -1
  70. package/dist/cli/mcp/tools/setupAppSchema.js +11 -132
  71. package/dist/cli/mcp/tools/setupAppSchema.js.map +1 -1
  72. package/dist/cli/mcp/tools/utils.d.ts +7 -0
  73. package/dist/cli/mcp/tools/utils.d.ts.map +1 -0
  74. package/dist/cli/mcp/tools/utils.js +28 -0
  75. package/dist/cli/mcp/tools/utils.js.map +1 -0
  76. package/dist/cli/run.d.ts +2 -0
  77. package/dist/cli/run.d.ts.map +1 -0
  78. package/dist/cli/run.js +387 -0
  79. package/dist/cli/run.js.map +1 -0
  80. package/dist/cli/trace.d.ts +5 -0
  81. package/dist/cli/trace.d.ts.map +1 -1
  82. package/dist/cli/trace.js +1 -1
  83. package/dist/cli/trace.js.map +1 -1
  84. package/dist/connections/cloud-auth.d.ts +46 -0
  85. package/dist/connections/cloud-auth.d.ts.map +1 -0
  86. package/dist/connections/cloud-auth.js +243 -0
  87. package/dist/connections/cloud-auth.js.map +1 -0
  88. package/dist/connections/cloud-client.d.ts +25 -0
  89. package/dist/connections/cloud-client.d.ts.map +1 -0
  90. package/dist/connections/cloud-client.js +59 -0
  91. package/dist/connections/cloud-client.js.map +1 -0
  92. package/dist/connections/cloud-integration-provider.d.ts +21 -0
  93. package/dist/connections/cloud-integration-provider.d.ts.map +1 -0
  94. package/dist/connections/cloud-integration-provider.js +26 -0
  95. package/dist/connections/cloud-integration-provider.js.map +1 -0
  96. package/dist/connections/index.d.ts +11 -0
  97. package/dist/connections/index.d.ts.map +1 -0
  98. package/dist/connections/index.js +9 -0
  99. package/dist/connections/index.js.map +1 -0
  100. package/dist/connections/integration-provider.d.ts +38 -0
  101. package/dist/connections/integration-provider.d.ts.map +1 -0
  102. package/dist/connections/integration-provider.js +20 -0
  103. package/dist/connections/integration-provider.js.map +1 -0
  104. package/dist/connections/local-integration-provider.d.ts +28 -0
  105. package/dist/connections/local-integration-provider.d.ts.map +1 -0
  106. package/dist/connections/local-integration-provider.js +54 -0
  107. package/dist/connections/local-integration-provider.js.map +1 -0
  108. package/dist/connections/nango-client.d.ts +14 -0
  109. package/dist/connections/nango-client.d.ts.map +1 -0
  110. package/dist/connections/nango-client.js +50 -0
  111. package/dist/connections/nango-client.js.map +1 -0
  112. package/dist/connections/resolver.d.ts +26 -0
  113. package/dist/connections/resolver.d.ts.map +1 -0
  114. package/dist/connections/resolver.js +44 -0
  115. package/dist/connections/resolver.js.map +1 -0
  116. package/dist/connections/schema.d.ts +6 -0
  117. package/dist/connections/schema.d.ts.map +1 -0
  118. package/dist/connections/schema.js +25 -0
  119. package/dist/connections/schema.js.map +1 -0
  120. package/dist/context.d.ts.map +1 -1
  121. package/dist/context.js +4 -0
  122. package/dist/context.js.map +1 -1
  123. package/dist/dev-ui/api.d.ts +13 -0
  124. package/dist/dev-ui/api.d.ts.map +1 -0
  125. package/dist/dev-ui/api.js +237 -0
  126. package/dist/dev-ui/api.js.map +1 -0
  127. package/dist/dev-ui/dag/extractor.d.ts +19 -0
  128. package/dist/dev-ui/dag/extractor.d.ts.map +1 -0
  129. package/dist/dev-ui/dag/extractor.js +728 -0
  130. package/dist/dev-ui/dag/extractor.js.map +1 -0
  131. package/dist/dev-ui/dag/types.d.ts +42 -0
  132. package/dist/dev-ui/dag/types.d.ts.map +1 -0
  133. package/dist/dev-ui/dag/types.js +2 -0
  134. package/dist/dev-ui/dag/types.js.map +1 -0
  135. package/dist/dev-ui/dev-server.d.ts +18 -0
  136. package/dist/dev-ui/dev-server.d.ts.map +1 -0
  137. package/dist/dev-ui/dev-server.js +221 -0
  138. package/dist/dev-ui/dev-server.js.map +1 -0
  139. package/dist/dev-ui/index.d.ts +3 -0
  140. package/dist/dev-ui/index.d.ts.map +1 -0
  141. package/dist/dev-ui/index.js +2 -0
  142. package/dist/dev-ui/index.js.map +1 -0
  143. package/dist/dev-ui/pty.d.ts +16 -0
  144. package/dist/dev-ui/pty.d.ts.map +1 -0
  145. package/dist/dev-ui/pty.js +87 -0
  146. package/dist/dev-ui/pty.js.map +1 -0
  147. package/dist/dev-ui/watcher.d.ts +12 -0
  148. package/dist/dev-ui/watcher.d.ts.map +1 -0
  149. package/dist/dev-ui/watcher.js +162 -0
  150. package/dist/dev-ui/watcher.js.map +1 -0
  151. package/dist/dev-ui/ws.d.ts +52 -0
  152. package/dist/dev-ui/ws.d.ts.map +1 -0
  153. package/dist/dev-ui/ws.js +32 -0
  154. package/dist/dev-ui/ws.js.map +1 -0
  155. package/dist/dev-ui-client/assets/index-C-LxzUII.css +32 -0
  156. package/dist/dev-ui-client/assets/index-DAKTQEvj.js +1 -0
  157. package/dist/dev-ui-client/assets/index-aAIwXl4O.js +127 -0
  158. package/dist/dev-ui-client/index.html +13 -0
  159. package/dist/discover.d.ts +15 -0
  160. package/dist/discover.d.ts.map +1 -0
  161. package/dist/discover.js +29 -0
  162. package/dist/discover.js.map +1 -0
  163. package/dist/factory.d.ts.map +1 -1
  164. package/dist/factory.js +25 -12
  165. package/dist/factory.js.map +1 -1
  166. package/dist/index.d.ts +5 -1
  167. package/dist/index.d.ts.map +1 -1
  168. package/dist/index.js +4 -0
  169. package/dist/index.js.map +1 -1
  170. package/dist/node.d.ts +1 -0
  171. package/dist/node.d.ts.map +1 -1
  172. package/dist/node.js +1 -0
  173. package/dist/node.js.map +1 -1
  174. package/dist/nodes/agent/executor.d.ts +2 -0
  175. package/dist/nodes/agent/executor.d.ts.map +1 -1
  176. package/dist/nodes/agent/executor.js +11 -1
  177. package/dist/nodes/agent/executor.js.map +1 -1
  178. package/dist/types.d.ts +19 -1
  179. package/dist/types.d.ts.map +1 -1
  180. package/dist/workflow.d.ts +22 -0
  181. package/dist/workflow.d.ts.map +1 -1
  182. package/dist/workflow.js +90 -2
  183. package/dist/workflow.js.map +1 -1
  184. package/package.json +24 -3
  185. package/templates/app/dbos-config.yaml +6 -0
  186. package/templates/app/package.json +3 -0
  187. package/templates/app/src/app/api/workflow/[name]/route.ts +37 -0
  188. package/templates/app/src/instrumentation.ts +6 -0
  189. package/templates/app/src/lib/pflow.ts +29 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=discover.integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover.integration.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/discover.integration.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,137 @@
1
+ // packages/core/src/__tests__/discover.integration.test.ts
2
+ // Integration tests for the discover() auto-discovery API
3
+ // Uses real project directories to test discovery behavior
4
+ import { describe, it, expect, beforeAll, afterAll } from "vitest";
5
+ import { mkdtemp, rm, mkdir, writeFile, symlink } from "node:fs/promises";
6
+ import { tmpdir } from "node:os";
7
+ import { join, resolve } from "node:path";
8
+ import { discover } from "../discover.js";
9
+ import { discoverAgents } from "../cli/discovery.js";
10
+ // Absolute path to the core package root (packages/core)
11
+ const CORE_PKG = resolve(__dirname, "..", "..");
12
+ let tempDir;
13
+ let emptyDir;
14
+ beforeAll(async () => {
15
+ tempDir = await mkdtemp(join(tmpdir(), "0pflow-discover-test-"));
16
+ emptyDir = await mkdtemp(join(tmpdir(), "0pflow-discover-empty-"));
17
+ // Create directory structure matching a 0pflow app
18
+ await mkdir(join(tempDir, "generated", "workflows"), { recursive: true });
19
+ await mkdir(join(tempDir, "src", "nodes"), { recursive: true });
20
+ await mkdir(join(tempDir, "agents"), { recursive: true });
21
+ // Symlink node_modules/0pflow → core package root (equivalent to npm link)
22
+ // This lets jiti resolve `import from "0pflow"` in the temp dir
23
+ await mkdir(join(tempDir, "node_modules"), { recursive: true });
24
+ await symlink(CORE_PKG, join(tempDir, "node_modules", "0pflow"), "dir");
25
+ // Also symlink zod so test fixtures can import it
26
+ const zodPkg = resolve(CORE_PKG, "node_modules", "zod");
27
+ await symlink(zodPkg, join(tempDir, "node_modules", "zod"), "dir");
28
+ // Write a test workflow using the 0pflow package import
29
+ await writeFile(join(tempDir, "generated", "workflows", "test-workflow.ts"), `
30
+ import { z } from "zod";
31
+ import { Workflow } from "0pflow";
32
+
33
+ export const testWorkflow = Workflow.create({
34
+ name: "test-workflow",
35
+ description: "A test workflow for discovery",
36
+ version: 1,
37
+ inputSchema: z.object({ message: z.string() }),
38
+ outputSchema: z.object({ result: z.string() }),
39
+ run: async (ctx, inputs) => {
40
+ return { result: "processed: " + inputs.message };
41
+ },
42
+ });
43
+ `);
44
+ // Write a test node using the 0pflow package import
45
+ await writeFile(join(tempDir, "src", "nodes", "test-node.ts"), `
46
+ import { z } from "zod";
47
+ import { Node } from "0pflow";
48
+
49
+ export const testNode = Node.create({
50
+ name: "test-node",
51
+ description: "A test node for discovery",
52
+ inputSchema: z.object({ value: z.string() }),
53
+ outputSchema: z.object({ transformed: z.string() }),
54
+ execute: async (_ctx, inputs) => {
55
+ return { transformed: inputs.value.toUpperCase() };
56
+ },
57
+ });
58
+ `);
59
+ });
60
+ afterAll(async () => {
61
+ await rm(tempDir, { recursive: true, force: true });
62
+ await rm(emptyDir, { recursive: true, force: true });
63
+ });
64
+ describe("discover()", () => {
65
+ it("discovers workflows from generated/workflows/", async () => {
66
+ const result = await discover(tempDir);
67
+ expect(result.workflows).toHaveProperty("test-workflow");
68
+ expect(result.workflows["test-workflow"].type).toBe("workflow");
69
+ expect(result.workflows["test-workflow"].name).toBe("test-workflow");
70
+ });
71
+ it("discovers nodes from src/nodes/", async () => {
72
+ const result = await discover(tempDir);
73
+ expect(result.nodes).toHaveProperty("test-node");
74
+ expect(result.nodes["test-node"].type).toBe("node");
75
+ expect(result.nodes["test-node"].name).toBe("test-node");
76
+ });
77
+ it("returns empty results for agents/ when no agents exist", async () => {
78
+ const result = await discover(tempDir);
79
+ expect(result.agents).toEqual({});
80
+ });
81
+ it("collects no warnings for valid files", async () => {
82
+ const result = await discover(tempDir);
83
+ expect(result.warnings).toEqual([]);
84
+ });
85
+ it("returns empty results for empty project directory", async () => {
86
+ const result = await discover(emptyDir);
87
+ expect(result.workflows).toEqual({});
88
+ expect(result.agents).toEqual({});
89
+ expect(result.nodes).toEqual({});
90
+ expect(result.warnings).toEqual([]);
91
+ });
92
+ it("returns result shape compatible with create0pflow", async () => {
93
+ const result = await discover(tempDir);
94
+ // Verify the shape has the keys create0pflow expects
95
+ expect(result).toHaveProperty("workflows");
96
+ expect(result).toHaveProperty("agents");
97
+ expect(result).toHaveProperty("nodes");
98
+ expect(typeof result.workflows).toBe("object");
99
+ expect(typeof result.agents).toBe("object");
100
+ expect(typeof result.nodes).toBe("object");
101
+ });
102
+ it("skips index files in nodes directory", async () => {
103
+ await writeFile(join(tempDir, "src", "nodes", "index.ts"), `export { testNode } from "./test-node.js";`);
104
+ const result = await discover(tempDir);
105
+ const nodeNames = Object.keys(result.nodes);
106
+ expect(nodeNames).toEqual(["test-node"]);
107
+ await rm(join(tempDir, "src", "nodes", "index.ts"));
108
+ });
109
+ it("reports warnings for files that fail to load", async () => {
110
+ await writeFile(join(tempDir, "generated", "workflows", "bad-workflow.ts"), `throw new Error("intentional load failure");`);
111
+ const result = await discover(tempDir);
112
+ expect(result.warnings.length).toBeGreaterThan(0);
113
+ expect(result.warnings.some((w) => w.includes("bad-workflow"))).toBe(true);
114
+ // Valid workflow should still be discovered
115
+ expect(result.workflows).toHaveProperty("test-workflow");
116
+ await rm(join(tempDir, "generated", "workflows", "bad-workflow.ts"));
117
+ });
118
+ });
119
+ describe("discoverAgents()", () => {
120
+ it("returns empty when agents directory does not exist", async () => {
121
+ const result = await discoverAgents(emptyDir);
122
+ expect(result.agents).toEqual({});
123
+ expect(result.warnings).toEqual([]);
124
+ });
125
+ it("returns empty when agents directory is empty", async () => {
126
+ const result = await discoverAgents(tempDir);
127
+ expect(result.agents).toEqual({});
128
+ expect(result.warnings).toEqual([]);
129
+ });
130
+ it("skips index files in agents directory", async () => {
131
+ await writeFile(join(tempDir, "agents", "index.ts"), `export {};`);
132
+ const result = await discoverAgents(tempDir);
133
+ expect(result.agents).toEqual({});
134
+ await rm(join(tempDir, "agents", "index.ts"));
135
+ });
136
+ });
137
+ //# sourceMappingURL=discover.integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover.integration.test.js","sourceRoot":"","sources":["../../src/__tests__/discover.integration.test.ts"],"names":[],"mappings":"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"}
package/dist/agent.d.ts CHANGED
@@ -3,6 +3,8 @@ import type { Executable } from "./types.js";
3
3
  import type { AgentTools } from "./nodes/agent/executor.js";
4
4
  import type { ModelConfig } from "./nodes/agent/model-config.js";
5
5
  import type { NodeRegistry } from "./nodes/registry.js";
6
+ import type { IntegrationProvider } from "./connections/integration-provider.js";
7
+ import type pg from "pg";
6
8
  export type { AgentTool, AgentTools } from "./nodes/agent/executor.js";
7
9
  /**
8
10
  * Definition for creating an agent
@@ -16,6 +18,8 @@ export interface AgentDefinition<TInput, TOutput> {
16
18
  tools?: AgentTools;
17
19
  /** Path to agent spec markdown file (for system prompt) */
18
20
  specPath: string;
21
+ /** Integrations this agent needs (e.g. ["openai"] to fetch API key from Nango) */
22
+ integrations?: string[];
19
23
  }
20
24
  /**
21
25
  * Extended executable interface for agents
@@ -31,6 +35,8 @@ export interface AgentExecutable<TInput = unknown, TOutput = unknown> extends Ex
31
35
  interface AgentRuntimeConfig {
32
36
  nodeRegistry: NodeRegistry;
33
37
  modelConfig?: ModelConfig;
38
+ pool: pg.Pool | null;
39
+ integrationProvider: IntegrationProvider | null;
34
40
  }
35
41
  /**
36
42
  * Configure the agent runtime (called by factory)
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAA6B,MAAM,YAAY,CAAC;AAGxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,MAAM,EAAE,OAAO;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,YAAY,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,mDAAmD;IACnD,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,CAClE,SAAQ,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;CAC5B;AAED;;;GAGG;AACH,UAAU,kBAAkB;IAC1B,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAID;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAEtE;AA6BD;;GAEG;AACH,eAAO,MAAM,KAAK;WACT,MAAM,EAAE,OAAO,wBACR,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3C,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC;CAoDpC,CAAC"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAoD,MAAM,YAAY,CAAC;AAG/F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,MAAM,EAAE,OAAO;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,YAAY,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,mDAAmD;IACnD,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,CAClE,SAAQ,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;CAC5B;AAED;;;GAGG;AACH,UAAU,kBAAkB;IAC1B,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,mBAAmB,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACjD;AAQD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAEtE;AAyFD;;GAEG;AACH,eAAO,MAAM,KAAK;WACT,MAAM,EAAE,OAAO,wBACR,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3C,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC;CAmEpC,CAAC"}
package/dist/agent.js CHANGED
@@ -1,25 +1,65 @@
1
1
  import { DBOS } from "@dbos-inc/dbos-sdk";
2
2
  import { parseAgentSpec } from "./nodes/agent/parser.js";
3
3
  import { executeAgent } from "./nodes/agent/executor.js";
4
- let agentRuntimeConfig = null;
4
+ import { resolveConnectionId } from "./connections/index.js";
5
+ const AGENT_CONFIG_KEY = Symbol.for("opflow.getAgentRuntimeConfig()");
6
+ function getAgentRuntimeConfig() {
7
+ return globalThis[AGENT_CONFIG_KEY] ?? null;
8
+ }
5
9
  /**
6
10
  * Configure the agent runtime (called by factory)
7
11
  * @internal
8
12
  */
9
13
  export function configureAgentRuntime(config) {
10
- agentRuntimeConfig = config;
14
+ globalThis[AGENT_CONFIG_KEY] = config;
11
15
  }
12
16
  /**
13
17
  * Create a WorkflowContext for agent execution that wraps tool calls in DBOS steps
18
+ *
19
+ * @param agentName - The agent's own name (used as workflowName for DBOS child workflow)
20
+ * @param parentWorkflowName - The parent workflow name (for connection resolution)
21
+ * @param parentNodeName - The agent's node name within the parent workflow (for connection resolution)
14
22
  */
15
- function createAgentContext() {
23
+ function createAgentContext(agentName, parentWorkflowName, parentNodeName) {
24
+ let _currentNodeName = "*";
25
+ let _currentIntegrations;
16
26
  const ctx = {
27
+ workflowName: agentName,
17
28
  run: async (executable, inputs) => {
18
29
  // Validate inputs against schema
19
30
  const validated = executable.inputSchema.parse(inputs);
31
+ // Track current node for connection resolution
32
+ _currentNodeName = executable.name;
33
+ _currentIntegrations = executable.integrations;
20
34
  // Wrap execution in DBOS step for durability
21
35
  return DBOS.runStep(async () => executable.execute(ctx, validated), { name: executable.name });
22
36
  },
37
+ getConnection: async (integrationId) => {
38
+ const runtimeConfig = getAgentRuntimeConfig();
39
+ if (!runtimeConfig?.pool || !runtimeConfig?.integrationProvider) {
40
+ throw new Error("Connection management not configured. Set NANGO_SECRET_KEY and DATABASE_URL.");
41
+ }
42
+ // Validate that the integration was declared on the current node
43
+ if (_currentIntegrations && !_currentIntegrations.includes(integrationId)) {
44
+ const declared = _currentIntegrations.map(i => `"${i}"`).join(", ");
45
+ throw new Error(`Integration "${integrationId}" is not declared on node "${_currentNodeName}". ` +
46
+ `Declared integrations: [${declared}]. ` +
47
+ `Add "${integrationId}" to the node's integrations array.`);
48
+ }
49
+ // If the agent was called from a parent workflow, use the parent's
50
+ // workflow name and the agent's node name within that workflow for
51
+ // connection resolution. This matches how connections are configured
52
+ // in the DB (workflow_name + node_name).
53
+ const resolveWorkflow = parentWorkflowName ?? agentName;
54
+ const resolveNode = parentNodeName ?? _currentNodeName;
55
+ const connectionId = await resolveConnectionId(runtimeConfig.pool, resolveWorkflow, resolveNode, integrationId);
56
+ if (!connectionId) {
57
+ throw new Error(`No connection configured for integration "${integrationId}" ` +
58
+ `(workflow="${resolveWorkflow}", node="${resolveNode}"). ` +
59
+ `Configure it in the Dev UI or set a global default.`);
60
+ }
61
+ return runtimeConfig.integrationProvider.fetchCredentials(integrationId, connectionId);
62
+ },
23
63
  log: (message, level = "info") => {
24
64
  DBOS.logger[level](message);
25
65
  },
@@ -32,12 +72,16 @@ function createAgentContext() {
32
72
  export const Agent = {
33
73
  create(definition) {
34
74
  const tools = definition.tools ?? {};
75
+ // Parent workflow context info, captured before DBOS child workflow starts
76
+ let _parentWorkflowName;
77
+ let _parentNodeName;
35
78
  // Create the DBOS-registered workflow function for this agent
36
79
  async function agentWorkflowImpl(inputs) {
37
- if (!agentRuntimeConfig) {
80
+ const runtimeConfig = getAgentRuntimeConfig();
81
+ if (!runtimeConfig) {
38
82
  throw new Error("Agent runtime not configured. Make sure to use create0pflow() before executing agents.");
39
83
  }
40
- const ctx = createAgentContext();
84
+ const ctx = createAgentContext(definition.name, _parentWorkflowName, _parentNodeName);
41
85
  // Parse the agent spec (for system prompt and model override)
42
86
  const spec = await parseAgentSpec(definition.specPath);
43
87
  // Convert inputs to a user message string
@@ -49,9 +93,10 @@ export const Agent = {
49
93
  spec,
50
94
  userMessage,
51
95
  tools,
52
- nodeRegistry: agentRuntimeConfig.nodeRegistry,
53
- modelConfig: agentRuntimeConfig.modelConfig,
96
+ nodeRegistry: runtimeConfig.nodeRegistry,
97
+ modelConfig: runtimeConfig.modelConfig,
54
98
  outputSchema: definition.outputSchema,
99
+ integrations: definition.integrations,
55
100
  });
56
101
  return result.output;
57
102
  }
@@ -67,8 +112,13 @@ export const Agent = {
67
112
  outputSchema: definition.outputSchema,
68
113
  specPath: definition.specPath,
69
114
  tools,
70
- // execute ignores the ctx param and uses DBOS context instead
71
- execute: (_ctx, inputs) => durableAgentWorkflow(inputs),
115
+ integrations: definition.integrations,
116
+ // Capture parent workflow context for connection resolution, then run as DBOS child workflow
117
+ execute: (parentCtx, inputs) => {
118
+ _parentWorkflowName = parentCtx.workflowName;
119
+ _parentNodeName = definition.name;
120
+ return durableAgentWorkflow(inputs);
121
+ },
72
122
  };
73
123
  },
74
124
  };
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAuCzD,IAAI,kBAAkB,GAA8B,IAAI,CAAC;AAEzD;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA0B;IAC9D,kBAAkB,GAAG,MAAM,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB;IACzB,MAAM,GAAG,GAAoB;QAC3B,GAAG,EAAE,KAAK,EACR,UAAuC,EACvC,MAAc,EACI,EAAE;YACpB,iCAAiC;YACjC,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAEvD,6CAA6C;YAC7C,OAAO,IAAI,CAAC,OAAO,CACjB,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,EAC9C,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAC1B,CAAC;QACJ,CAAC;QAED,GAAG,EAAE,CAAC,OAAe,EAAE,QAAkB,MAAM,EAAE,EAAE;YACjD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;KACF,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,MAAM,CACJ,UAA4C;QAE5C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;QAErC,8DAA8D;QAC9D,KAAK,UAAU,iBAAiB,CAAC,MAAc;YAC7C,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CACb,wFAAwF,CACzF,CAAC;YACJ,CAAC;YAED,MAAM,GAAG,GAAG,kBAAkB,EAAE,CAAC;YAEjC,8DAA8D;YAC9D,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAEvD,0CAA0C;YAC1C,gEAAgE;YAChE,MAAM,WAAW,GACf,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAExE,+CAA+C;YAC/C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;gBAChC,GAAG;gBACH,IAAI;gBACJ,WAAW;gBACX,KAAK;gBACL,YAAY,EAAE,kBAAkB,CAAC,YAAY;gBAC7C,WAAW,EAAE,kBAAkB,CAAC,WAAW;gBAC3C,YAAY,EAAE,UAAU,CAAC,YAAY;aACtC,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC,MAAiB,CAAC;QAClC,CAAC;QAED,mFAAmF;QACnF,MAAM,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE;YACpE,IAAI,EAAE,UAAU,CAAC,IAAI;SACtB,CAAC,CAAC;QAEH,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,KAAK;YACL,8DAA8D;YAC9D,OAAO,EAAE,CAAC,IAAqB,EAAE,MAAc,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC;SACjF,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,10 @@ export interface NodeDiscoveryResult {
8
8
  nodes: Record<string, AnyExecutable>;
9
9
  warnings: string[];
10
10
  }
11
+ export interface AgentDiscoveryResult {
12
+ agents: Record<string, AnyExecutable>;
13
+ warnings: string[];
14
+ }
11
15
  /**
12
16
  * Discover and load workflow executables from generated/workflows/ directory
13
17
  * Uses jiti to load TypeScript files directly without compilation
@@ -20,5 +24,11 @@ export declare function discoverWorkflows(projectDir: string): Promise<Discovery
20
24
  * Returns nodes indexed by name and any warnings
21
25
  */
22
26
  export declare function discoverNodes(projectDir: string): Promise<NodeDiscoveryResult>;
27
+ /**
28
+ * Discover and load agent executables from agents/ directory
29
+ * Uses jiti to load TypeScript files directly without compilation
30
+ * Returns agents indexed by name and any warnings
31
+ */
32
+ export declare function discoverAgents(projectDir: string): Promise<AgentDiscoveryResult>;
23
33
  export {};
24
34
  //# sourceMappingURL=discovery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/cli/discovery.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,KAAK,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAI1C,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACrC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAcD;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC,CA8B1B;AAcD;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,CAAC,CAgC9B"}
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/cli/discovery.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,KAAK,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAI1C,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACrC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACtC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAcD;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC,CA8B1B;AAcD;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,CAAC,CAgC9B;AAcD;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,oBAAoB,CAAC,CAgC/B"}
@@ -85,4 +85,46 @@ export async function discoverNodes(projectDir) {
85
85
  }
86
86
  return { nodes, warnings };
87
87
  }
88
+ /**
89
+ * Check if a value is an agent executable
90
+ */
91
+ function isAgent(value) {
92
+ return (value !== null &&
93
+ typeof value === "object" &&
94
+ "type" in value &&
95
+ value.type === "agent");
96
+ }
97
+ /**
98
+ * Discover and load agent executables from agents/ directory
99
+ * Uses jiti to load TypeScript files directly without compilation
100
+ * Returns agents indexed by name and any warnings
101
+ */
102
+ export async function discoverAgents(projectDir) {
103
+ const agentsDir = path.join(projectDir, "agents");
104
+ const agents = {};
105
+ const warnings = [];
106
+ if (!fs.existsSync(agentsDir)) {
107
+ return { agents, warnings };
108
+ }
109
+ const files = fs.readdirSync(agentsDir).filter(f => f.endsWith(".ts") || f.endsWith(".js"));
110
+ for (const file of files) {
111
+ // Skip index files
112
+ if (file === "index.ts" || file === "index.js")
113
+ continue;
114
+ const filePath = path.join(agentsDir, file);
115
+ try {
116
+ const module = await jiti.import(filePath);
117
+ // Find agent exports in the module
118
+ for (const value of Object.values(module)) {
119
+ if (isAgent(value)) {
120
+ agents[value.name] = value;
121
+ }
122
+ }
123
+ }
124
+ catch (err) {
125
+ warnings.push(`Failed to load agent ${file}: ${err}`);
126
+ }
127
+ }
128
+ return { agents, warnings };
129
+ }
88
130
  //# sourceMappingURL=discovery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/cli/discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/cli/discovery.ts"],"names":[],"mappings":"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"}
package/dist/cli/env.js CHANGED
@@ -28,7 +28,7 @@ export function findEnvFile(startDir) {
28
28
  * Throws if DATABASE_URL is not set (required for 0pflow)
29
29
  */
30
30
  export function loadEnv(envPath) {
31
- const result = dotenv.config({ path: envPath });
31
+ const result = dotenv.config({ path: envPath, quiet: true });
32
32
  if (result.error) {
33
33
  throw new Error(`Failed to load .env: ${result.error.message}`);
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/cli/env.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IAElC,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACvC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,2BAA2B;IAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAEhD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,sCAAsC;IACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,kCAAkC;YAClC,6CAA6C;YAC7C,6DAA6D,CAC9D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,sDAAsD;YACtD,qCAAqC;YACrC,6DAA6D,CAC9D,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/cli/env.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IAElC,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACvC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,2BAA2B;IAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7D,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,sCAAsC;IACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,kCAAkC;YAClC,6CAA6C;YAC7C,6DAA6D,CAC9D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,sDAAsD;YACtD,qCAAqC;YACrC,6DAA6D,CAC9D,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,CAAC;AACnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAmBA,eAAO,IAAI,OAAO,QAAU,CAAC;AAQ7B;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAsBA,eAAO,IAAI,OAAO,QAAU,CAAC;AAQ7B;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C"}