@kelpi/mcp 0.1.0

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 (195) hide show
  1. package/README.md +312 -0
  2. package/bin/kelpi-mcp +3 -0
  3. package/dist/__tests__/integration-api/fixtures.d.ts +382 -0
  4. package/dist/__tests__/integration-api/fixtures.d.ts.map +1 -0
  5. package/dist/__tests__/integration-api/fixtures.js +478 -0
  6. package/dist/__tests__/integration-api/fixtures.js.map +1 -0
  7. package/dist/__tests__/integration-api/index.d.ts +19 -0
  8. package/dist/__tests__/integration-api/index.d.ts.map +1 -0
  9. package/dist/__tests__/integration-api/index.js +33 -0
  10. package/dist/__tests__/integration-api/index.js.map +1 -0
  11. package/dist/__tests__/integration-api/setup.d.ts +176 -0
  12. package/dist/__tests__/integration-api/setup.d.ts.map +1 -0
  13. package/dist/__tests__/integration-api/setup.js +329 -0
  14. package/dist/__tests__/integration-api/setup.js.map +1 -0
  15. package/dist/__tests__/setup.d.ts +2 -0
  16. package/dist/__tests__/setup.d.ts.map +1 -0
  17. package/dist/__tests__/setup.js +11 -0
  18. package/dist/__tests__/setup.js.map +1 -0
  19. package/dist/__tests__/unit/test-utils.d.ts +46 -0
  20. package/dist/__tests__/unit/test-utils.d.ts.map +1 -0
  21. package/dist/__tests__/unit/test-utils.js +50 -0
  22. package/dist/__tests__/unit/test-utils.js.map +1 -0
  23. package/dist/index.d.ts +6 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +34 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/lib/api-client.d.ts +17 -0
  28. package/dist/lib/api-client.d.ts.map +1 -0
  29. package/dist/lib/api-client.js +169 -0
  30. package/dist/lib/api-client.js.map +1 -0
  31. package/dist/lib/auth-state.d.ts +54 -0
  32. package/dist/lib/auth-state.d.ts.map +1 -0
  33. package/dist/lib/auth-state.js +131 -0
  34. package/dist/lib/auth-state.js.map +1 -0
  35. package/dist/lib/config.d.ts +39 -0
  36. package/dist/lib/config.d.ts.map +1 -0
  37. package/dist/lib/config.js +170 -0
  38. package/dist/lib/config.js.map +1 -0
  39. package/dist/lib/error-formatter.d.ts +40 -0
  40. package/dist/lib/error-formatter.d.ts.map +1 -0
  41. package/dist/lib/error-formatter.js +149 -0
  42. package/dist/lib/error-formatter.js.map +1 -0
  43. package/dist/lib/errors.d.ts +44 -0
  44. package/dist/lib/errors.d.ts.map +1 -0
  45. package/dist/lib/errors.js +56 -0
  46. package/dist/lib/errors.js.map +1 -0
  47. package/dist/lib/tool-helpers.d.ts +49 -0
  48. package/dist/lib/tool-helpers.d.ts.map +1 -0
  49. package/dist/lib/tool-helpers.js +101 -0
  50. package/dist/lib/tool-helpers.js.map +1 -0
  51. package/dist/lib/tool-registry.d.ts +111 -0
  52. package/dist/lib/tool-registry.d.ts.map +1 -0
  53. package/dist/lib/tool-registry.js +112 -0
  54. package/dist/lib/tool-registry.js.map +1 -0
  55. package/dist/lib/version.d.ts +13 -0
  56. package/dist/lib/version.d.ts.map +1 -0
  57. package/dist/lib/version.js +13 -0
  58. package/dist/lib/version.js.map +1 -0
  59. package/dist/prompts/flow-generator.d.ts +45 -0
  60. package/dist/prompts/flow-generator.d.ts.map +1 -0
  61. package/dist/prompts/flow-generator.js +177 -0
  62. package/dist/prompts/flow-generator.js.map +1 -0
  63. package/dist/prompts/index.d.ts +7 -0
  64. package/dist/prompts/index.d.ts.map +1 -0
  65. package/dist/prompts/index.js +7 -0
  66. package/dist/prompts/index.js.map +1 -0
  67. package/dist/server.d.ts +66 -0
  68. package/dist/server.d.ts.map +1 -0
  69. package/dist/server.js +140 -0
  70. package/dist/server.js.map +1 -0
  71. package/dist/tools/auth/index.d.ts +18 -0
  72. package/dist/tools/auth/index.d.ts.map +1 -0
  73. package/dist/tools/auth/index.js +50 -0
  74. package/dist/tools/auth/index.js.map +1 -0
  75. package/dist/tools/auth/login.d.ts +37 -0
  76. package/dist/tools/auth/login.d.ts.map +1 -0
  77. package/dist/tools/auth/login.js +257 -0
  78. package/dist/tools/auth/login.js.map +1 -0
  79. package/dist/tools/auth/schemas.d.ts +69 -0
  80. package/dist/tools/auth/schemas.d.ts.map +1 -0
  81. package/dist/tools/auth/schemas.js +36 -0
  82. package/dist/tools/auth/schemas.js.map +1 -0
  83. package/dist/tools/auth/status.d.ts +11 -0
  84. package/dist/tools/auth/status.d.ts.map +1 -0
  85. package/dist/tools/auth/status.js +50 -0
  86. package/dist/tools/auth/status.js.map +1 -0
  87. package/dist/tools/contacts/create.d.ts +11 -0
  88. package/dist/tools/contacts/create.d.ts.map +1 -0
  89. package/dist/tools/contacts/create.js +47 -0
  90. package/dist/tools/contacts/create.js.map +1 -0
  91. package/dist/tools/contacts/index.d.ts +10 -0
  92. package/dist/tools/contacts/index.d.ts.map +1 -0
  93. package/dist/tools/contacts/index.js +40 -0
  94. package/dist/tools/contacts/index.js.map +1 -0
  95. package/dist/tools/contacts/schemas.d.ts +37 -0
  96. package/dist/tools/contacts/schemas.d.ts.map +1 -0
  97. package/dist/tools/contacts/schemas.js +15 -0
  98. package/dist/tools/contacts/schemas.js.map +1 -0
  99. package/dist/tools/events/index.d.ts +10 -0
  100. package/dist/tools/events/index.d.ts.map +1 -0
  101. package/dist/tools/events/index.js +42 -0
  102. package/dist/tools/events/index.js.map +1 -0
  103. package/dist/tools/events/schemas.d.ts +37 -0
  104. package/dist/tools/events/schemas.d.ts.map +1 -0
  105. package/dist/tools/events/schemas.js +17 -0
  106. package/dist/tools/events/schemas.js.map +1 -0
  107. package/dist/tools/events/track.d.ts +11 -0
  108. package/dist/tools/events/track.d.ts.map +1 -0
  109. package/dist/tools/events/track.js +41 -0
  110. package/dist/tools/events/track.js.map +1 -0
  111. package/dist/tools/flows/activate.d.ts +11 -0
  112. package/dist/tools/flows/activate.d.ts.map +1 -0
  113. package/dist/tools/flows/activate.js +46 -0
  114. package/dist/tools/flows/activate.js.map +1 -0
  115. package/dist/tools/flows/create.d.ts +11 -0
  116. package/dist/tools/flows/create.d.ts.map +1 -0
  117. package/dist/tools/flows/create.js +72 -0
  118. package/dist/tools/flows/create.js.map +1 -0
  119. package/dist/tools/flows/index.d.ts +24 -0
  120. package/dist/tools/flows/index.d.ts.map +1 -0
  121. package/dist/tools/flows/index.js +183 -0
  122. package/dist/tools/flows/index.js.map +1 -0
  123. package/dist/tools/flows/list.d.ts +11 -0
  124. package/dist/tools/flows/list.d.ts.map +1 -0
  125. package/dist/tools/flows/list.js +34 -0
  126. package/dist/tools/flows/list.js.map +1 -0
  127. package/dist/tools/flows/schemas.d.ts +621 -0
  128. package/dist/tools/flows/schemas.d.ts.map +1 -0
  129. package/dist/tools/flows/schemas.js +135 -0
  130. package/dist/tools/flows/schemas.js.map +1 -0
  131. package/dist/tools/flows/transform.d.ts +39 -0
  132. package/dist/tools/flows/transform.d.ts.map +1 -0
  133. package/dist/tools/flows/transform.js +139 -0
  134. package/dist/tools/flows/transform.js.map +1 -0
  135. package/dist/tools/index.d.ts +34 -0
  136. package/dist/tools/index.d.ts.map +1 -0
  137. package/dist/tools/index.js +46 -0
  138. package/dist/tools/index.js.map +1 -0
  139. package/dist/tools/sdk/index.d.ts +18 -0
  140. package/dist/tools/sdk/index.d.ts.map +1 -0
  141. package/dist/tools/sdk/index.js +69 -0
  142. package/dist/tools/sdk/index.js.map +1 -0
  143. package/dist/tools/sdk/public-key.d.ts +11 -0
  144. package/dist/tools/sdk/public-key.d.ts.map +1 -0
  145. package/dist/tools/sdk/public-key.js +24 -0
  146. package/dist/tools/sdk/public-key.js.map +1 -0
  147. package/dist/tools/sdk/schemas.d.ts +48 -0
  148. package/dist/tools/sdk/schemas.d.ts.map +1 -0
  149. package/dist/tools/sdk/schemas.js +35 -0
  150. package/dist/tools/sdk/schemas.js.map +1 -0
  151. package/dist/tools/sdk/snippet.d.ts +11 -0
  152. package/dist/tools/sdk/snippet.d.ts.map +1 -0
  153. package/dist/tools/sdk/snippet.js +50 -0
  154. package/dist/tools/sdk/snippet.js.map +1 -0
  155. package/dist/tools/sdk/templates/index.d.ts +5 -0
  156. package/dist/tools/sdk/templates/index.d.ts.map +1 -0
  157. package/dist/tools/sdk/templates/index.js +5 -0
  158. package/dist/tools/sdk/templates/index.js.map +1 -0
  159. package/dist/tools/sdk/templates/nextjs.d.ts +5 -0
  160. package/dist/tools/sdk/templates/nextjs.d.ts.map +1 -0
  161. package/dist/tools/sdk/templates/nextjs.js +71 -0
  162. package/dist/tools/sdk/templates/nextjs.js.map +1 -0
  163. package/dist/tools/sdk/templates/node.d.ts +9 -0
  164. package/dist/tools/sdk/templates/node.d.ts.map +1 -0
  165. package/dist/tools/sdk/templates/node.js +170 -0
  166. package/dist/tools/sdk/templates/node.js.map +1 -0
  167. package/dist/tools/sdk/templates/react.d.ts +5 -0
  168. package/dist/tools/sdk/templates/react.d.ts.map +1 -0
  169. package/dist/tools/sdk/templates/react.js +54 -0
  170. package/dist/tools/sdk/templates/react.js.map +1 -0
  171. package/dist/tools/sdk/templates/vanilla.d.ts +5 -0
  172. package/dist/tools/sdk/templates/vanilla.d.ts.map +1 -0
  173. package/dist/tools/sdk/templates/vanilla.js +61 -0
  174. package/dist/tools/sdk/templates/vanilla.js.map +1 -0
  175. package/dist/tools/templates/create.d.ts +11 -0
  176. package/dist/tools/templates/create.d.ts.map +1 -0
  177. package/dist/tools/templates/create.js +39 -0
  178. package/dist/tools/templates/create.js.map +1 -0
  179. package/dist/tools/templates/index.d.ts +17 -0
  180. package/dist/tools/templates/index.d.ts.map +1 -0
  181. package/dist/tools/templates/index.js +68 -0
  182. package/dist/tools/templates/index.js.map +1 -0
  183. package/dist/tools/templates/list.d.ts +11 -0
  184. package/dist/tools/templates/list.d.ts.map +1 -0
  185. package/dist/tools/templates/list.js +31 -0
  186. package/dist/tools/templates/list.js.map +1 -0
  187. package/dist/tools/templates/schemas.d.ts +90 -0
  188. package/dist/tools/templates/schemas.d.ts.map +1 -0
  189. package/dist/tools/templates/schemas.js +37 -0
  190. package/dist/tools/templates/schemas.js.map +1 -0
  191. package/dist/types.d.ts +55 -0
  192. package/dist/types.d.ts.map +1 -0
  193. package/dist/types.js +2 -0
  194. package/dist/types.js.map +1 -0
  195. package/package.json +76 -0
@@ -0,0 +1,183 @@
1
+ import { createFlowInputSchema, listFlowsInputSchema, activateFlowInputSchema, } from './schemas.js';
2
+ import { createFlowHandler } from './create.js';
3
+ import { listFlowsHandler } from './list.js';
4
+ import { activateFlowHandler } from './activate.js';
5
+ /**
6
+ * kelpi_create_flow tool definition and handler
7
+ *
8
+ * Creates a new automation flow from a JSON definition.
9
+ */
10
+ export const kelpiCreateFlow = {
11
+ definition: {
12
+ name: 'kelpi_create_flow',
13
+ description: `Create a new engagement flow with triggers, actions, and conditions.
14
+
15
+ This tool creates an automation flow that can:
16
+ - Trigger on events (e.g., "user.signed_up", "trial.started")
17
+ - Trigger based on segment membership
18
+
19
+ The flow definition should include:
20
+ - name: A descriptive name for the flow (required)
21
+ - trigger_type: "event" or "segment" (required)
22
+ - trigger_event: Required when trigger_type is "event"
23
+ - trigger_segment_id: Required when trigger_type is "segment"
24
+ - steps: Array of flow steps with required step_id and step_order
25
+
26
+ Step types:
27
+ - email: Sends an email (configure content via emails table)
28
+ - delay: Waits for delay_seconds or delay_expression
29
+ - webhook: Calls webhook_url with optional payload_template
30
+ - condition: Evaluates condition_filter as a gate (see TYPED CONDITIONS below)
31
+
32
+ === ENTRY FILTER (for flow entry) ===
33
+ Uses simple field/operator/value conditions:
34
+ {
35
+ "logic": "AND" | "OR",
36
+ "conditions": [
37
+ { "field": "plan", "operator": "equals", "value": "pro" },
38
+ { "field": "country", "operator": "in", "value": ["US", "CA"] }
39
+ ]
40
+ }
41
+
42
+ Operators for entry_filter:
43
+ - equals, not_equals (aliases: eq, neq)
44
+ - contains, not_contains, starts_with, ends_with
45
+ - greater_than, less_than, greater_than_or_equals, less_than_or_equals (aliases: gt, lt, gte, lte)
46
+ - is_set, is_not_set
47
+ - in, not_in
48
+
49
+ === TYPED CONDITIONS (for condition steps) ===
50
+ IMPORTANT: condition_filter in condition steps uses TYPED conditions, not simple field/value!
51
+
52
+ The condition_filter must have "type": "group" at the top level, and each condition
53
+ must specify its type ("event" or "property").
54
+
55
+ Event condition - check if contact performed an event:
56
+ {
57
+ "type": "group",
58
+ "logic": "AND",
59
+ "conditions": [{
60
+ "type": "event",
61
+ "event_name": "subscription.created",
62
+ "operator": "has_done", // or "has_not_done", "count_greater_than", "count_less_than"
63
+ "timeframe": { "since": "flow_start" }, // or { "days": 7 }, or "ever"
64
+ "properties": { "plan": "pro" } // optional: filter by event properties
65
+ }]
66
+ }
67
+
68
+ Property condition - check a contact property:
69
+ {
70
+ "type": "group",
71
+ "logic": "AND",
72
+ "conditions": [{
73
+ "type": "property",
74
+ "field": "cso_email",
75
+ "operator": "is_set" // or any standard operator with "value"
76
+ }]
77
+ }
78
+
79
+ Event operators:
80
+ - has_done, has_not_done: Check if event occurred
81
+ - count_greater_than, count_less_than: Check event count (requires "count" field)
82
+
83
+ Timeframe options:
84
+ - { "since": "flow_start" }: Since the contact entered this flow
85
+ - { "days": N }: Within the last N days
86
+ - "ever": Any time in history
87
+
88
+ === FULL EXAMPLE WITH CONDITION STEPS ===
89
+ {
90
+ "name": "Trial Expiration Reminder",
91
+ "trigger_type": "event",
92
+ "trigger_event": "trial.started",
93
+ "entry_filter": {
94
+ "logic": "AND",
95
+ "conditions": [
96
+ { "field": "plan", "operator": "equals", "value": "trial" }
97
+ ]
98
+ },
99
+ "steps": [
100
+ { "step_id": "welcome", "step_order": 0, "action_type": "email" },
101
+ { "step_id": "wait-3-days", "step_order": 1, "action_type": "delay", "delay_seconds": 259200 },
102
+ {
103
+ "step_id": "check-converted",
104
+ "step_order": 2,
105
+ "action_type": "condition",
106
+ "condition_filter": {
107
+ "type": "group",
108
+ "logic": "AND",
109
+ "conditions": [{
110
+ "type": "event",
111
+ "event_name": "subscription.created",
112
+ "operator": "has_done",
113
+ "timeframe": { "since": "flow_start" }
114
+ }]
115
+ }
116
+ },
117
+ { "step_id": "reminder", "step_order": 3, "action_type": "email" }
118
+ ]
119
+ }`,
120
+ inputSchema: createFlowInputSchema,
121
+ },
122
+ handler: createFlowHandler,
123
+ };
124
+ /**
125
+ * kelpi_list_flows tool definition and handler
126
+ *
127
+ * Lists all flows in the workspace with optional filtering.
128
+ */
129
+ export const kelpiListFlows = {
130
+ definition: {
131
+ name: 'kelpi_list_flows',
132
+ description: `List all flows in the workspace with optional filtering.
133
+
134
+ Returns a paginated list of flows with their:
135
+ - ID, name, and slug
136
+ - Trigger type (event or segment)
137
+ - Current status (draft, active, paused, archived)
138
+ - Step count
139
+ - Creation and update timestamps
140
+
141
+ Optional filters:
142
+ - status: "draft", "active", "paused", or "archived"
143
+ - trigger_type: "event" or "segment"
144
+ - limit: Max results (1-250, default 50)
145
+ - offset: Skip N results (for pagination)
146
+ - order_by: "created_at", "updated_at", "name", or "status"
147
+ - order_direction: "asc" or "desc"`,
148
+ inputSchema: listFlowsInputSchema,
149
+ },
150
+ handler: listFlowsHandler,
151
+ };
152
+ /**
153
+ * kelpi_activate_flow tool definition and handler
154
+ *
155
+ * Activates a draft flow so it starts processing events.
156
+ */
157
+ export const kelpiActivateFlow = {
158
+ definition: {
159
+ name: 'kelpi_activate_flow',
160
+ description: `Activate a draft flow so it starts processing events.
161
+
162
+ Once activated, the flow will:
163
+ - Listen for its configured trigger events
164
+ - Start enrolling contacts that match entry criteria
165
+ - Execute flow steps for enrolled contacts
166
+
167
+ This operation is idempotent - activating an already-active flow returns success.
168
+
169
+ Requirements:
170
+ - Flow must exist
171
+ - Flow should have at least one step (recommended)
172
+ - Flow cannot be archived`,
173
+ inputSchema: activateFlowInputSchema,
174
+ },
175
+ handler: activateFlowHandler,
176
+ };
177
+ // Re-export schemas
178
+ export * from './schemas.js';
179
+ // Re-export handler factories for testing
180
+ export { createCreateFlowHandler } from './create.js';
181
+ export { createListFlowsHandler } from './list.js';
182
+ export { createActivateFlowHandler } from './activate.js';
183
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/flows/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC9C,UAAU,EAAE;QACV,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0Gf;QACE,WAAW,EAAE,qBAAqB;KACnC;IACD,OAAO,EAAE,iBAAiB;CAC3B,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAoB;IAC7C,UAAU,EAAE;QACV,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE;;;;;;;;;;;;;;;mCAekB;QAC/B,WAAW,EAAE,oBAAoB;KAClC;IACD,OAAO,EAAE,gBAAgB;CAC1B,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAoB;IAChD,UAAU,EAAE;QACV,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE;;;;;;;;;;;;0BAYS;QACtB,WAAW,EAAE,uBAAuB;KACrC;IACD,OAAO,EAAE,mBAAmB;CAC7B,CAAC;AAEF,oBAAoB;AACpB,cAAc,cAAc,CAAC;AAE7B,0CAA0C;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { ToolHandler } from '../../lib/tool-registry.js';
2
+ /**
3
+ * Creates a list flows handler.
4
+ * This factory function allows for dependency injection in tests.
5
+ */
6
+ export declare function createListFlowsHandler(): ToolHandler;
7
+ /**
8
+ * Default list flows handler
9
+ */
10
+ export declare const listFlowsHandler: ToolHandler;
11
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/tools/flows/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,4BAA4B,CAAC;AAI1E;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,WAAW,CA2BpD;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,aAA2B,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { withAuth, successResponse, handleApiError } from '../../lib/tool-helpers.js';
2
+ /**
3
+ * Creates a list flows handler.
4
+ * This factory function allows for dependency injection in tests.
5
+ */
6
+ export function createListFlowsHandler() {
7
+ return async (input) => {
8
+ return withAuth('listing flows', async ({ client }) => {
9
+ // Build query parameters
10
+ const queryParams = {};
11
+ if (input.status && typeof input.status === 'string') {
12
+ queryParams.status = input.status;
13
+ }
14
+ if (input.limit !== undefined && typeof input.limit === 'number') {
15
+ queryParams.limit = String(input.limit);
16
+ }
17
+ if (input.offset !== undefined && typeof input.offset === 'number') {
18
+ queryParams.offset = String(input.offset);
19
+ }
20
+ try {
21
+ const response = await client.get('/api/v1/flows', Object.keys(queryParams).length > 0 ? queryParams : undefined);
22
+ return successResponse(response.data);
23
+ }
24
+ catch (err) {
25
+ return handleApiError(err, 'list flows');
26
+ }
27
+ });
28
+ };
29
+ }
30
+ /**
31
+ * Default list flows handler
32
+ */
33
+ export const listFlowsHandler = createListFlowsHandler();
34
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/tools/flows/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGtF;;;GAGG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,KAAK,EAAE,KAA8B,EAAuB,EAAE;QACnE,OAAO,QAAQ,CAAC,eAAe,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACpD,yBAAyB;YACzB,MAAM,WAAW,GAA2B,EAAE,CAAC;YAE/C,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACrD,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YACpC,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACjE,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACnE,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAC/B,eAAe,EACf,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAC9D,CAAC;gBACF,OAAO,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,cAAc,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,EAAE,CAAC"}