@xyne/workflow-sdk 1.0.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 (310) hide show
  1. package/README.md +36 -0
  2. package/dist/agents/agent-step.d.ts +152 -0
  3. package/dist/agents/agent-step.d.ts.map +1 -0
  4. package/dist/agents/agent-step.js +403 -0
  5. package/dist/agents/agent-step.js.map +1 -0
  6. package/dist/agents/base-runtime.d.ts +38 -0
  7. package/dist/agents/base-runtime.d.ts.map +1 -0
  8. package/dist/agents/base-runtime.js +21 -0
  9. package/dist/agents/base-runtime.js.map +1 -0
  10. package/dist/agents/index.d.ts +12 -0
  11. package/dist/agents/index.d.ts.map +1 -0
  12. package/dist/agents/index.js +17 -0
  13. package/dist/agents/index.js.map +1 -0
  14. package/dist/agents/interceptor.d.ts +19 -0
  15. package/dist/agents/interceptor.d.ts.map +1 -0
  16. package/dist/agents/interceptor.js +21 -0
  17. package/dist/agents/interceptor.js.map +1 -0
  18. package/dist/agents/interceptors/approval-gate.d.ts +14 -0
  19. package/dist/agents/interceptors/approval-gate.d.ts.map +1 -0
  20. package/dist/agents/interceptors/approval-gate.js +19 -0
  21. package/dist/agents/interceptors/approval-gate.js.map +1 -0
  22. package/dist/agents/interceptors/tool-logger.d.ts +15 -0
  23. package/dist/agents/interceptors/tool-logger.d.ts.map +1 -0
  24. package/dist/agents/interceptors/tool-logger.js +23 -0
  25. package/dist/agents/interceptors/tool-logger.js.map +1 -0
  26. package/dist/agents/pi-mono-runtime.d.ts +88 -0
  27. package/dist/agents/pi-mono-runtime.d.ts.map +1 -0
  28. package/dist/agents/pi-mono-runtime.js +129 -0
  29. package/dist/agents/pi-mono-runtime.js.map +1 -0
  30. package/dist/agents/tool-registry.d.ts +25 -0
  31. package/dist/agents/tool-registry.d.ts.map +1 -0
  32. package/dist/agents/tool-registry.js +47 -0
  33. package/dist/agents/tool-registry.js.map +1 -0
  34. package/dist/agents/tool-types.d.ts +25 -0
  35. package/dist/agents/tool-types.d.ts.map +1 -0
  36. package/dist/agents/tool-types.js +9 -0
  37. package/dist/agents/tool-types.js.map +1 -0
  38. package/dist/agents/types.d.ts +91 -0
  39. package/dist/agents/types.d.ts.map +1 -0
  40. package/dist/agents/types.js +12 -0
  41. package/dist/agents/types.js.map +1 -0
  42. package/dist/builder/index.d.ts +30 -0
  43. package/dist/builder/index.d.ts.map +1 -0
  44. package/dist/builder/index.js +32 -0
  45. package/dist/builder/index.js.map +1 -0
  46. package/dist/client/index.d.ts +19 -0
  47. package/dist/client/index.d.ts.map +1 -0
  48. package/dist/client/index.js +18 -0
  49. package/dist/client/index.js.map +1 -0
  50. package/dist/client/types.d.ts +128 -0
  51. package/dist/client/types.d.ts.map +1 -0
  52. package/dist/client/types.js +10 -0
  53. package/dist/client/types.js.map +1 -0
  54. package/dist/client/workflow-client.d.ts +15 -0
  55. package/dist/client/workflow-client.d.ts.map +1 -0
  56. package/dist/client/workflow-client.js +293 -0
  57. package/dist/client/workflow-client.js.map +1 -0
  58. package/dist/common/attachment.d.ts +31 -0
  59. package/dist/common/attachment.d.ts.map +1 -0
  60. package/dist/common/attachment.js +21 -0
  61. package/dist/common/attachment.js.map +1 -0
  62. package/dist/common/executable-check.d.ts +42 -0
  63. package/dist/common/executable-check.d.ts.map +1 -0
  64. package/dist/common/executable-check.js +115 -0
  65. package/dist/common/executable-check.js.map +1 -0
  66. package/dist/common/index.d.ts +21 -0
  67. package/dist/common/index.d.ts.map +1 -0
  68. package/dist/common/index.js +19 -0
  69. package/dist/common/index.js.map +1 -0
  70. package/dist/common/resume-payload.d.ts +34 -0
  71. package/dist/common/resume-payload.d.ts.map +1 -0
  72. package/dist/common/resume-payload.js +12 -0
  73. package/dist/common/resume-payload.js.map +1 -0
  74. package/dist/engine/available-context.d.ts +29 -0
  75. package/dist/engine/available-context.d.ts.map +1 -0
  76. package/dist/engine/available-context.js +66 -0
  77. package/dist/engine/available-context.js.map +1 -0
  78. package/dist/engine/condition-evaluator.d.ts +13 -0
  79. package/dist/engine/condition-evaluator.d.ts.map +1 -0
  80. package/dist/engine/condition-evaluator.js +92 -0
  81. package/dist/engine/condition-evaluator.js.map +1 -0
  82. package/dist/engine/config-validator.d.ts +25 -0
  83. package/dist/engine/config-validator.d.ts.map +1 -0
  84. package/dist/engine/config-validator.js +316 -0
  85. package/dist/engine/config-validator.js.map +1 -0
  86. package/dist/engine/pause-step.d.ts +20 -0
  87. package/dist/engine/pause-step.d.ts.map +1 -0
  88. package/dist/engine/pause-step.js +24 -0
  89. package/dist/engine/pause-step.js.map +1 -0
  90. package/dist/engine/service-registry.d.ts +49 -0
  91. package/dist/engine/service-registry.d.ts.map +1 -0
  92. package/dist/engine/service-registry.js +76 -0
  93. package/dist/engine/service-registry.js.map +1 -0
  94. package/dist/engine/variable-resolver.d.ts +29 -0
  95. package/dist/engine/variable-resolver.d.ts.map +1 -0
  96. package/dist/engine/variable-resolver.js +130 -0
  97. package/dist/engine/variable-resolver.js.map +1 -0
  98. package/dist/engine/workflow-executor.d.ts +96 -0
  99. package/dist/engine/workflow-executor.d.ts.map +1 -0
  100. package/dist/engine/workflow-executor.js +837 -0
  101. package/dist/engine/workflow-executor.js.map +1 -0
  102. package/dist/index.d.ts +57 -0
  103. package/dist/index.d.ts.map +1 -0
  104. package/dist/index.js +56 -0
  105. package/dist/index.js.map +1 -0
  106. package/dist/persistence/in-memory-adapter.d.ts +138 -0
  107. package/dist/persistence/in-memory-adapter.d.ts.map +1 -0
  108. package/dist/persistence/in-memory-adapter.js +315 -0
  109. package/dist/persistence/in-memory-adapter.js.map +1 -0
  110. package/dist/persistence/types.d.ts +214 -0
  111. package/dist/persistence/types.d.ts.map +1 -0
  112. package/dist/persistence/types.js +8 -0
  113. package/dist/persistence/types.js.map +1 -0
  114. package/dist/router/types.d.ts +57 -0
  115. package/dist/router/types.d.ts.map +1 -0
  116. package/dist/router/types.js +8 -0
  117. package/dist/router/types.js.map +1 -0
  118. package/dist/router/workflow-router.d.ts +26 -0
  119. package/dist/router/workflow-router.d.ts.map +1 -0
  120. package/dist/router/workflow-router.js +611 -0
  121. package/dist/router/workflow-router.js.map +1 -0
  122. package/dist/runtime/execution-event-bus.d.ts +38 -0
  123. package/dist/runtime/execution-event-bus.d.ts.map +1 -0
  124. package/dist/runtime/execution-event-bus.js +87 -0
  125. package/dist/runtime/execution-event-bus.js.map +1 -0
  126. package/dist/runtime/types.d.ts +129 -0
  127. package/dist/runtime/types.d.ts.map +1 -0
  128. package/dist/runtime/types.js +5 -0
  129. package/dist/runtime/types.js.map +1 -0
  130. package/dist/runtime/workflow-runtime.d.ts +256 -0
  131. package/dist/runtime/workflow-runtime.d.ts.map +1 -0
  132. package/dist/runtime/workflow-runtime.js +699 -0
  133. package/dist/runtime/workflow-runtime.js.map +1 -0
  134. package/dist/steps/base-step.d.ts +204 -0
  135. package/dist/steps/base-step.d.ts.map +1 -0
  136. package/dist/steps/base-step.js +69 -0
  137. package/dist/steps/base-step.js.map +1 -0
  138. package/dist/steps/builtin/code.step.d.ts +95 -0
  139. package/dist/steps/builtin/code.step.d.ts.map +1 -0
  140. package/dist/steps/builtin/code.step.js +122 -0
  141. package/dist/steps/builtin/code.step.js.map +1 -0
  142. package/dist/steps/builtin/conditional.step.d.ts +146 -0
  143. package/dist/steps/builtin/conditional.step.d.ts.map +1 -0
  144. package/dist/steps/builtin/conditional.step.js +71 -0
  145. package/dist/steps/builtin/conditional.step.js.map +1 -0
  146. package/dist/steps/builtin/dedup.step.d.ts +65 -0
  147. package/dist/steps/builtin/dedup.step.d.ts.map +1 -0
  148. package/dist/steps/builtin/dedup.step.js +61 -0
  149. package/dist/steps/builtin/dedup.step.js.map +1 -0
  150. package/dist/steps/builtin/http-request.step.d.ts +928 -0
  151. package/dist/steps/builtin/http-request.step.d.ts.map +1 -0
  152. package/dist/steps/builtin/http-request.step.js +570 -0
  153. package/dist/steps/builtin/http-request.step.js.map +1 -0
  154. package/dist/steps/builtin/loop.step.d.ts +100 -0
  155. package/dist/steps/builtin/loop.step.d.ts.map +1 -0
  156. package/dist/steps/builtin/loop.step.js +79 -0
  157. package/dist/steps/builtin/loop.step.js.map +1 -0
  158. package/dist/steps/builtin/parallel.step.d.ts +208 -0
  159. package/dist/steps/builtin/parallel.step.d.ts.map +1 -0
  160. package/dist/steps/builtin/parallel.step.js +249 -0
  161. package/dist/steps/builtin/parallel.step.js.map +1 -0
  162. package/dist/steps/builtin/switch.step.d.ts +200 -0
  163. package/dist/steps/builtin/switch.step.d.ts.map +1 -0
  164. package/dist/steps/builtin/switch.step.js +92 -0
  165. package/dist/steps/builtin/switch.step.js.map +1 -0
  166. package/dist/steps/builtin/transform.step.d.ts +247 -0
  167. package/dist/steps/builtin/transform.step.d.ts.map +1 -0
  168. package/dist/steps/builtin/transform.step.js +135 -0
  169. package/dist/steps/builtin/transform.step.js.map +1 -0
  170. package/dist/steps/builtin/wait.step.d.ts +921 -0
  171. package/dist/steps/builtin/wait.step.d.ts.map +1 -0
  172. package/dist/steps/builtin/wait.step.js +211 -0
  173. package/dist/steps/builtin/wait.step.js.map +1 -0
  174. package/dist/steps/step-registry.d.ts +64 -0
  175. package/dist/steps/step-registry.d.ts.map +1 -0
  176. package/dist/steps/step-registry.js +102 -0
  177. package/dist/steps/step-registry.js.map +1 -0
  178. package/dist/storage/in-memory-adapter.d.ts +25 -0
  179. package/dist/storage/in-memory-adapter.d.ts.map +1 -0
  180. package/dist/storage/in-memory-adapter.js +41 -0
  181. package/dist/storage/in-memory-adapter.js.map +1 -0
  182. package/dist/storage/types.d.ts +53 -0
  183. package/dist/storage/types.d.ts.map +1 -0
  184. package/dist/storage/types.js +13 -0
  185. package/dist/storage/types.js.map +1 -0
  186. package/dist/testing/index.d.ts +10 -0
  187. package/dist/testing/index.d.ts.map +1 -0
  188. package/dist/testing/index.js +10 -0
  189. package/dist/testing/index.js.map +1 -0
  190. package/dist/testing/mock-context.d.ts +13 -0
  191. package/dist/testing/mock-context.d.ts.map +1 -0
  192. package/dist/testing/mock-context.js +21 -0
  193. package/dist/testing/mock-context.js.map +1 -0
  194. package/dist/testing/mock-step-context.d.ts +47 -0
  195. package/dist/testing/mock-step-context.d.ts.map +1 -0
  196. package/dist/testing/mock-step-context.js +59 -0
  197. package/dist/testing/mock-step-context.js.map +1 -0
  198. package/dist/triggers/base-trigger.d.ts +58 -0
  199. package/dist/triggers/base-trigger.d.ts.map +1 -0
  200. package/dist/triggers/base-trigger.js +37 -0
  201. package/dist/triggers/base-trigger.js.map +1 -0
  202. package/dist/triggers/builtin/default-cron-trigger.d.ts +44 -0
  203. package/dist/triggers/builtin/default-cron-trigger.d.ts.map +1 -0
  204. package/dist/triggers/builtin/default-cron-trigger.js +31 -0
  205. package/dist/triggers/builtin/default-cron-trigger.js.map +1 -0
  206. package/dist/triggers/builtin/default-event-trigger.d.ts +32 -0
  207. package/dist/triggers/builtin/default-event-trigger.d.ts.map +1 -0
  208. package/dist/triggers/builtin/default-event-trigger.js +21 -0
  209. package/dist/triggers/builtin/default-event-trigger.js.map +1 -0
  210. package/dist/triggers/builtin/default-manual-trigger.d.ts +119 -0
  211. package/dist/triggers/builtin/default-manual-trigger.d.ts.map +1 -0
  212. package/dist/triggers/builtin/default-manual-trigger.js +64 -0
  213. package/dist/triggers/builtin/default-manual-trigger.js.map +1 -0
  214. package/dist/triggers/builtin/default-webhook-trigger.d.ts +72 -0
  215. package/dist/triggers/builtin/default-webhook-trigger.d.ts.map +1 -0
  216. package/dist/triggers/builtin/default-webhook-trigger.js +91 -0
  217. package/dist/triggers/builtin/default-webhook-trigger.js.map +1 -0
  218. package/dist/triggers/cron-trigger.d.ts +52 -0
  219. package/dist/triggers/cron-trigger.d.ts.map +1 -0
  220. package/dist/triggers/cron-trigger.js +15 -0
  221. package/dist/triggers/cron-trigger.js.map +1 -0
  222. package/dist/triggers/event-trigger.d.ts +14 -0
  223. package/dist/triggers/event-trigger.d.ts.map +1 -0
  224. package/dist/triggers/event-trigger.js +13 -0
  225. package/dist/triggers/event-trigger.js.map +1 -0
  226. package/dist/triggers/manual-trigger.d.ts +11 -0
  227. package/dist/triggers/manual-trigger.d.ts.map +1 -0
  228. package/dist/triggers/manual-trigger.js +10 -0
  229. package/dist/triggers/manual-trigger.js.map +1 -0
  230. package/dist/triggers/trigger-registry.d.ts +48 -0
  231. package/dist/triggers/trigger-registry.d.ts.map +1 -0
  232. package/dist/triggers/trigger-registry.js +81 -0
  233. package/dist/triggers/trigger-registry.js.map +1 -0
  234. package/dist/triggers/webhook-trigger.d.ts +54 -0
  235. package/dist/triggers/webhook-trigger.d.ts.map +1 -0
  236. package/dist/triggers/webhook-trigger.js +13 -0
  237. package/dist/triggers/webhook-trigger.js.map +1 -0
  238. package/dist/types/attachment.d.ts +23 -0
  239. package/dist/types/attachment.d.ts.map +1 -0
  240. package/dist/types/attachment.js +2 -0
  241. package/dist/types/attachment.js.map +1 -0
  242. package/dist/types/categories.d.ts +14 -0
  243. package/dist/types/categories.d.ts.map +1 -0
  244. package/dist/types/categories.js +10 -0
  245. package/dist/types/categories.js.map +1 -0
  246. package/dist/types/context.d.ts +61 -0
  247. package/dist/types/context.d.ts.map +1 -0
  248. package/dist/types/context.js +2 -0
  249. package/dist/types/context.js.map +1 -0
  250. package/dist/types/index.d.ts +18 -0
  251. package/dist/types/index.d.ts.map +1 -0
  252. package/dist/types/index.js +12 -0
  253. package/dist/types/index.js.map +1 -0
  254. package/dist/types/known-types.d.ts +34 -0
  255. package/dist/types/known-types.d.ts.map +1 -0
  256. package/dist/types/known-types.js +49 -0
  257. package/dist/types/known-types.js.map +1 -0
  258. package/dist/types/operators.d.ts +20 -0
  259. package/dist/types/operators.d.ts.map +1 -0
  260. package/dist/types/operators.js +27 -0
  261. package/dist/types/operators.js.map +1 -0
  262. package/dist/types/pause-path.d.ts +23 -0
  263. package/dist/types/pause-path.d.ts.map +1 -0
  264. package/dist/types/pause-path.js +2 -0
  265. package/dist/types/pause-path.js.map +1 -0
  266. package/dist/types/pause-state.d.ts +100 -0
  267. package/dist/types/pause-state.d.ts.map +1 -0
  268. package/dist/types/pause-state.js +15 -0
  269. package/dist/types/pause-state.js.map +1 -0
  270. package/dist/types/resume-payload.d.ts +34 -0
  271. package/dist/types/resume-payload.d.ts.map +1 -0
  272. package/dist/types/resume-payload.js +12 -0
  273. package/dist/types/resume-payload.js.map +1 -0
  274. package/dist/types/status.d.ts +27 -0
  275. package/dist/types/status.d.ts.map +1 -0
  276. package/dist/types/status.js +41 -0
  277. package/dist/types/status.js.map +1 -0
  278. package/dist/types/step-events.d.ts +22 -0
  279. package/dist/types/step-events.d.ts.map +1 -0
  280. package/dist/types/step-events.js +8 -0
  281. package/dist/types/step-events.js.map +1 -0
  282. package/dist/types/step-types.d.ts +12 -0
  283. package/dist/types/step-types.d.ts.map +1 -0
  284. package/dist/types/step-types.js +2 -0
  285. package/dist/types/step-types.js.map +1 -0
  286. package/dist/types/trigger-types.d.ts +12 -0
  287. package/dist/types/trigger-types.d.ts.map +1 -0
  288. package/dist/types/trigger-types.js +2 -0
  289. package/dist/types/trigger-types.js.map +1 -0
  290. package/dist/types/validation.d.ts +19 -0
  291. package/dist/types/validation.d.ts.map +1 -0
  292. package/dist/types/validation.js +11 -0
  293. package/dist/types/validation.js.map +1 -0
  294. package/dist/types/workflow-config.d.ts +122 -0
  295. package/dist/types/workflow-config.d.ts.map +1 -0
  296. package/dist/types/workflow-config.js +71 -0
  297. package/dist/types/workflow-config.js.map +1 -0
  298. package/dist/util/executable-check.d.ts +42 -0
  299. package/dist/util/executable-check.d.ts.map +1 -0
  300. package/dist/util/executable-check.js +115 -0
  301. package/dist/util/executable-check.js.map +1 -0
  302. package/dist/util/schema-convert.d.ts +14 -0
  303. package/dist/util/schema-convert.d.ts.map +1 -0
  304. package/dist/util/schema-convert.js +16 -0
  305. package/dist/util/schema-convert.js.map +1 -0
  306. package/dist/util/variable-ref.d.ts +52 -0
  307. package/dist/util/variable-ref.d.ts.map +1 -0
  308. package/dist/util/variable-ref.js +89 -0
  309. package/dist/util/variable-ref.js.map +1 -0
  310. package/package.json +97 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-request.step.d.ts","sourceRoot":"","sources":["../../../src/steps/builtin/http-request.step.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,570 @@
1
+ /**
2
+ * HTTP_REQUEST step — make HTTP requests to external APIs.
3
+ *
4
+ * Action step that uses the global `fetch` API (Node 20+). Always
5
+ * returns the response — never throws on HTTP error status codes.
6
+ * The consumer can branch on `ok` or `status` via a CONDITIONAL step.
7
+ *
8
+ * ## Body modes (Postman-aligned)
9
+ *
10
+ * `body` is a discriminated union by `mode`. Each mode has its own shape:
11
+ *
12
+ * - `none` — no body
13
+ * - `raw` — single text payload; pick the content-type via `contentType`
14
+ * - `urlencoded` — `application/x-www-form-urlencoded` key/value pairs
15
+ * - `formdata` — `multipart/form-data` with text fields
16
+ *
17
+ * File uploads (multipart file fields, binary bodies) are out of scope for
18
+ * the current iteration. The {@link Attachment} primitive and StorageAdapter
19
+ * are still used by triggers and resume payloads.
20
+ *
21
+ * ## Auth
22
+ *
23
+ * Two auth mechanisms, used together or independently:
24
+ *
25
+ * 1. **Config-level `auth`** — for tokens from variable refs
26
+ * `{{ steps.login.output.token }}`. Fully typed discriminated union.
27
+ *
28
+ * 2. **Credential slots** — for stored secrets from the credential vault.
29
+ * Resolved by the executor at runtime, injected via `ctx.credentials`.
30
+ * Config-level auth takes precedence when both are present.
31
+ *
32
+ * ## Response shape
33
+ *
34
+ * The step's output IS the response:
35
+ *
36
+ * { status, statusText, ok, headers, body, bodyText, size, duration }
37
+ *
38
+ * `body` is the parsed value per `responseType`. `bodyText` is the raw text
39
+ * (always present, empty for `discard`). `size` is bytes received.
40
+ *
41
+ * The author optionally declares `responseBodySchema` (a JSON Schema). When
42
+ * present the step's `resolveOutputJsonSchema(config)` types the `body`
43
+ * field for downstream variable pickers; the runtime behaviour is unchanged.
44
+ */
45
+ import { z } from 'zod';
46
+ import { BaseActionStep } from '../base-step.js';
47
+ import { BuiltinStepType } from '../../types/known-types.js';
48
+ // ─── Auth schemas ───
49
+ const HttpAuthNoneSchema = z.object({ type: z.literal('none') });
50
+ const HttpAuthBearerSchema = z.object({
51
+ type: z.literal('bearer'),
52
+ token: z.string().min(1).describe('Bearer token value'),
53
+ });
54
+ const HttpAuthBasicSchema = z.object({
55
+ type: z.literal('basic'),
56
+ username: z.string().describe('Basic auth username'),
57
+ password: z.string().describe('Basic auth password'),
58
+ });
59
+ const HttpAuthApiKeySchema = z.object({
60
+ type: z.literal('apiKey'),
61
+ key: z.string().min(1).describe('API key value'),
62
+ name: z.string().default('x-api-key').describe('Header or query parameter name'),
63
+ in: z.enum(['header', 'query']).default('header').describe('Where to send the API key'),
64
+ });
65
+ const HttpAuthCustomHeaderSchema = z.object({
66
+ type: z.literal('customHeader'),
67
+ name: z.string().min(1).describe('Custom header name'),
68
+ value: z.string().min(1).describe('Custom header value'),
69
+ });
70
+ const HttpAuthSchema = z.discriminatedUnion('type', [
71
+ HttpAuthNoneSchema,
72
+ HttpAuthBearerSchema,
73
+ HttpAuthBasicSchema,
74
+ HttpAuthApiKeySchema,
75
+ HttpAuthCustomHeaderSchema,
76
+ ]);
77
+ // ─── Body schemas (Postman-style) ───
78
+ const RAW_CONTENT_TYPES = {
79
+ json: 'application/json',
80
+ xml: 'application/xml',
81
+ html: 'text/html',
82
+ text: 'text/plain',
83
+ javascript: 'application/javascript',
84
+ };
85
+ export const HttpRawContentTypeSchema = z.enum([
86
+ 'json',
87
+ 'xml',
88
+ 'html',
89
+ 'text',
90
+ 'javascript',
91
+ 'custom',
92
+ ]);
93
+ const HttpBodyNoneSchema = z.object({ mode: z.literal('none') });
94
+ const HttpBodyRawSchema = z.object({
95
+ mode: z.literal('raw'),
96
+ raw: z.string().describe('Raw body content'),
97
+ contentType: HttpRawContentTypeSchema.default('json')
98
+ .describe('Content-Type for the raw body'),
99
+ customContentType: z.string().optional()
100
+ .describe('Used when contentType is "custom" (e.g. application/vnd.api+json)'),
101
+ });
102
+ const HttpBodyUrlencodedFieldSchema = z.object({
103
+ key: z.string().min(1),
104
+ value: z.string(),
105
+ enabled: z.boolean().default(true),
106
+ });
107
+ const HttpBodyUrlencodedSchema = z.object({
108
+ mode: z.literal('urlencoded'),
109
+ fields: z.array(HttpBodyUrlencodedFieldSchema).default([]),
110
+ });
111
+ const HttpBodyFormdataFieldSchema = z.object({
112
+ key: z.string().min(1),
113
+ value: z.string(),
114
+ enabled: z.boolean().default(true),
115
+ });
116
+ const HttpBodyFormdataSchema = z.object({
117
+ mode: z.literal('formdata'),
118
+ fields: z.array(HttpBodyFormdataFieldSchema).default([]),
119
+ });
120
+ export const HttpBodySchema = z.discriminatedUnion('mode', [
121
+ HttpBodyNoneSchema,
122
+ HttpBodyRawSchema,
123
+ HttpBodyUrlencodedSchema,
124
+ HttpBodyFormdataSchema,
125
+ ]);
126
+ // ─── Response config (discriminated by type) ───
127
+ /**
128
+ * Response handling. Discriminated so the optional `bodySchema` only lives on
129
+ * the modes where it's meaningful (`json`, `auto`); a `text`/`base64`/`discard`
130
+ * config can't accidentally carry an irrelevant schema.
131
+ */
132
+ const HttpResponseJsonSchema = z.object({
133
+ type: z.literal('json'),
134
+ bodySchema: z.record(z.unknown()).optional()
135
+ .describe('JSON Schema describing the parsed body. Drives the variable picker for downstream steps.'),
136
+ });
137
+ const HttpResponseAutoSchema = z.object({
138
+ type: z.literal('auto'),
139
+ bodySchema: z.record(z.unknown()).optional()
140
+ .describe('JSON Schema describing the body when the response is JSON. Drives the variable picker for downstream steps.'),
141
+ });
142
+ // `.strict()` so a `bodySchema` accidentally left on these variants is a
143
+ // validation error instead of being silently stripped.
144
+ const HttpResponseTextSchema = z.object({ type: z.literal('text') }).strict();
145
+ const HttpResponseBase64Schema = z.object({ type: z.literal('base64') }).strict();
146
+ const HttpResponseDiscardSchema = z.object({ type: z.literal('discard') }).strict();
147
+ export const HttpResponseSchema = z.discriminatedUnion('type', [
148
+ HttpResponseJsonSchema,
149
+ HttpResponseAutoSchema,
150
+ HttpResponseTextSchema,
151
+ HttpResponseBase64Schema,
152
+ HttpResponseDiscardSchema,
153
+ ]);
154
+ // ─── Config ───
155
+ export const HttpMethodSchema = z.enum([
156
+ 'GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS',
157
+ ]);
158
+ export const HttpRequestStepConfigSchema = z.object({
159
+ url: z.string().min(1).describe('Full URL including protocol (e.g. https://api.example.com/data)'),
160
+ method: HttpMethodSchema.default('GET').describe('HTTP method'),
161
+ auth: HttpAuthSchema.default({ type: 'none' }).describe('Authentication method applied before custom headers'),
162
+ headers: z.record(z.string(), z.string()).optional().describe('Request headers as key-value pairs'),
163
+ queryParams: z.record(z.string(), z.string()).optional().describe('Query parameters appended to URL'),
164
+ body: HttpBodySchema.default({ mode: 'none' }).describe('Request body — ignored for GET/HEAD. Postman-style modes: none/raw/urlencoded/formdata/binary'),
165
+ response: HttpResponseSchema.default({ type: 'auto' })
166
+ .describe('How to parse the response body. `bodySchema` (on json/auto) types the variable picker for downstream steps.'),
167
+ timeoutMs: z.number().int().positive().default(30_000).describe('Request timeout in milliseconds'),
168
+ followRedirects: z.boolean().default(true).describe('Whether to follow HTTP redirects'),
169
+ });
170
+ const HttpRequestStepOutputSchema = z.object({
171
+ status: z.number().int(),
172
+ statusText: z.string(),
173
+ ok: z.boolean(),
174
+ headers: z.record(z.string(), z.string()),
175
+ body: z.unknown(),
176
+ bodyText: z.string(),
177
+ size: z.number().int().nonnegative(),
178
+ duration: z.number().nonnegative(),
179
+ });
180
+ // ─── Step ───
181
+ export class HttpRequestStep extends BaseActionStep {
182
+ type = BuiltinStepType.HTTP_REQUEST;
183
+ name = 'HTTP Request';
184
+ description = 'Make HTTP requests to external APIs';
185
+ configSchema = HttpRequestStepConfigSchema;
186
+ outputSchema = HttpRequestStepOutputSchema;
187
+ category = 'integration';
188
+ icon = 'globe';
189
+ /**
190
+ * Credential slots — fallback auth when config.auth is 'none'.
191
+ * Resolved by the executor from the credential vault.
192
+ */
193
+ credentialSlots = [
194
+ { name: 'auth', types: ['bearer', 'basic', 'api_key', 'header'], required: false },
195
+ ];
196
+ /** Credential type schemas — defines what fields each credential type needs for UI forms. */
197
+ credentialTypeSchemas = [
198
+ {
199
+ type: 'bearer',
200
+ label: 'Bearer Token',
201
+ fields: [
202
+ { name: 'token', label: 'Token', type: 'password', required: true },
203
+ ],
204
+ },
205
+ {
206
+ type: 'basic',
207
+ label: 'Basic Auth',
208
+ fields: [
209
+ { name: 'username', label: 'Username', type: 'string', required: true },
210
+ { name: 'password', label: 'Password', type: 'password', required: true },
211
+ ],
212
+ },
213
+ {
214
+ type: 'api_key',
215
+ label: 'API Key',
216
+ fields: [
217
+ { name: 'key', label: 'API Key', type: 'password', required: true },
218
+ { name: 'headerName', label: 'Header Name', type: 'string', required: false, default: 'x-api-key' },
219
+ { name: 'in', label: 'Send In', type: 'select', required: false, options: ['header', 'query'], default: 'header' },
220
+ ],
221
+ },
222
+ {
223
+ type: 'header',
224
+ label: 'Custom Header',
225
+ fields: [
226
+ { name: 'name', label: 'Header Name', type: 'string', required: true },
227
+ { name: 'value', label: 'Header Value', type: 'password', required: true },
228
+ ],
229
+ },
230
+ ];
231
+ decorateConfigSchema(jsonSchema) {
232
+ // The `bodySchema` field inside the discriminated `response` union should
233
+ // render with the JSON Schema builder UI. The schema-form renderer walks
234
+ // discriminator variants, so we tag the field within each variant that
235
+ // carries it (json/auto).
236
+ const props = jsonSchema['properties'];
237
+ const response = props?.['response'];
238
+ const variants = (response?.['anyOf'] ?? response?.['oneOf']);
239
+ if (variants) {
240
+ for (const variant of variants) {
241
+ const vProps = variant['properties'];
242
+ if (vProps?.['bodySchema']) {
243
+ vProps['bodySchema'] = { ...vProps['bodySchema'], format: 'json-schema' };
244
+ }
245
+ }
246
+ }
247
+ return jsonSchema;
248
+ }
249
+ /**
250
+ * Per-instance output schema. When the author's `response` config provides
251
+ * a `bodySchema` (json/auto), we plug it into `body`. For other response
252
+ * types (`text`, `base64`, `discard`) we set the body's static type since
253
+ * no user shape is involved.
254
+ */
255
+ resolveOutputJsonSchema(config) {
256
+ const response = (config['response'] ?? { type: 'auto' });
257
+ const bodySchema = this.outputBodySchemaFor(response);
258
+ return {
259
+ type: 'object',
260
+ properties: {
261
+ status: { type: 'integer' },
262
+ statusText: { type: 'string' },
263
+ ok: { type: 'boolean' },
264
+ headers: {
265
+ type: 'object',
266
+ additionalProperties: { type: 'string' },
267
+ },
268
+ body: bodySchema,
269
+ bodyText: { type: 'string' },
270
+ size: { type: 'integer' },
271
+ duration: { type: 'integer' },
272
+ },
273
+ };
274
+ }
275
+ outputBodySchemaFor(response) {
276
+ switch (response.type) {
277
+ case 'json':
278
+ case 'auto':
279
+ return response.bodySchema && Object.keys(response.bodySchema).length > 0
280
+ ? response.bodySchema
281
+ : { type: 'object' };
282
+ case 'text':
283
+ return { type: 'string' };
284
+ case 'base64':
285
+ return { type: 'string', contentEncoding: 'base64' };
286
+ case 'discard':
287
+ return { type: 'null' };
288
+ }
289
+ }
290
+ redactInput(input) {
291
+ const redacted = { ...input };
292
+ // Never persist body — may contain sensitive data
293
+ if ('body' in redacted) {
294
+ redacted['body'] = '[REDACTED]';
295
+ }
296
+ // Redact auth tokens
297
+ if (redacted['auth'] && typeof redacted['auth'] === 'object') {
298
+ const auth = { ...redacted['auth'] };
299
+ if ('token' in auth)
300
+ auth['token'] = '[REDACTED]';
301
+ if ('password' in auth)
302
+ auth['password'] = '[REDACTED]';
303
+ if ('key' in auth)
304
+ auth['key'] = '[REDACTED]';
305
+ if ('value' in auth)
306
+ auth['value'] = '[REDACTED]';
307
+ redacted['auth'] = auth;
308
+ }
309
+ return redacted;
310
+ }
311
+ async execute(config, ctx) {
312
+ // Build URL with query params
313
+ const url = this.buildUrl(config.url, config.queryParams);
314
+ // Build headers: auth first, then custom headers override
315
+ const headers = new Headers();
316
+ this.applyAuth(headers, url, config.auth, ctx.credentials);
317
+ if (config.headers) {
318
+ for (const [k, v] of Object.entries(config.headers)) {
319
+ headers.set(k, v);
320
+ }
321
+ }
322
+ // Build request
323
+ const init = {
324
+ method: config.method,
325
+ headers,
326
+ redirect: config.followRedirects ? 'follow' : 'manual',
327
+ };
328
+ // Encode body for methods that support it.
329
+ // GET/HEAD never carry a body even if the user configured one.
330
+ if (config.body.mode !== 'none' && !['GET', 'HEAD'].includes(config.method)) {
331
+ const encoded = this.encodeBody(config.body, headers);
332
+ if (encoded !== undefined) {
333
+ init.body = encoded;
334
+ }
335
+ }
336
+ // Timeout
337
+ const controller = new AbortController();
338
+ const timer = setTimeout(() => controller.abort(), config.timeoutMs);
339
+ init.signal = controller.signal;
340
+ const t0 = Date.now();
341
+ let response;
342
+ try {
343
+ response = await fetch(url.toString(), init);
344
+ }
345
+ catch (err) {
346
+ clearTimeout(timer);
347
+ if (err instanceof DOMException && err.name === 'AbortError') {
348
+ throw new Error(`HTTP_REQUEST to ${config.url} timed out after ${String(config.timeoutMs)}ms`);
349
+ }
350
+ throw new Error(`HTTP_REQUEST to ${config.url} failed: ${err instanceof Error ? err.message : String(err)}`);
351
+ }
352
+ clearTimeout(timer);
353
+ const duration = Date.now() - t0;
354
+ // Always capture raw bytes; we then expose size, bodyText, and the
355
+ // parsed body view in one pass.
356
+ const responseHeaders = {};
357
+ response.headers.forEach((value, key) => {
358
+ responseHeaders[key] = value;
359
+ });
360
+ if (config.response.type === 'discard') {
361
+ return {
362
+ status: response.status,
363
+ statusText: response.statusText,
364
+ ok: response.ok,
365
+ headers: responseHeaders,
366
+ body: null,
367
+ bodyText: '',
368
+ size: 0,
369
+ duration,
370
+ };
371
+ }
372
+ const rawBytes = new Uint8Array(await response.arrayBuffer());
373
+ const size = rawBytes.byteLength;
374
+ const bodyText = this.decodeText(rawBytes);
375
+ const body = this.parseResponseBody(rawBytes, bodyText, responseHeaders, config.response.type);
376
+ return {
377
+ status: response.status,
378
+ statusText: response.statusText,
379
+ ok: response.ok,
380
+ headers: responseHeaders,
381
+ body,
382
+ bodyText,
383
+ size,
384
+ duration,
385
+ };
386
+ }
387
+ // ─── URL building ───
388
+ buildUrl(baseUrl, queryParams) {
389
+ const url = new URL(baseUrl);
390
+ if (queryParams) {
391
+ for (const [k, v] of Object.entries(queryParams)) {
392
+ url.searchParams.append(k, v);
393
+ }
394
+ }
395
+ return url;
396
+ }
397
+ // ─── Auth ───
398
+ applyAuth(headers, url, auth, credentials) {
399
+ // Config-level auth takes precedence
400
+ if (auth.type !== 'none') {
401
+ this.applyConfigAuth(headers, url, auth);
402
+ return;
403
+ }
404
+ // Fall back to credential slot
405
+ this.applyCredentialAuth(headers, url, credentials);
406
+ }
407
+ applyConfigAuth(headers, url, auth) {
408
+ switch (auth.type) {
409
+ case 'bearer':
410
+ headers.set('authorization', `Bearer ${auth.token}`);
411
+ break;
412
+ case 'basic': {
413
+ const encoded = btoa(`${auth.username}:${auth.password}`);
414
+ headers.set('authorization', `Basic ${encoded}`);
415
+ break;
416
+ }
417
+ case 'apiKey':
418
+ if (auth.in === 'header') {
419
+ headers.set(auth.name, auth.key);
420
+ }
421
+ else {
422
+ url.searchParams.set(auth.name, auth.key);
423
+ }
424
+ break;
425
+ case 'customHeader':
426
+ headers.set(auth.name, auth.value);
427
+ break;
428
+ }
429
+ }
430
+ applyCredentialAuth(headers, url, credentials) {
431
+ const cred = credentials['auth'];
432
+ if (!cred)
433
+ return;
434
+ switch (cred.type) {
435
+ case 'bearer': {
436
+ const token = cred.data['token'];
437
+ if (token)
438
+ headers.set('authorization', `Bearer ${token}`);
439
+ break;
440
+ }
441
+ case 'basic': {
442
+ const user = cred.data['username'] ?? '';
443
+ const pass = cred.data['password'] ?? '';
444
+ headers.set('authorization', `Basic ${btoa(`${user}:${pass}`)}`);
445
+ break;
446
+ }
447
+ case 'api_key': {
448
+ const headerName = cred.data['headerName'] ?? 'x-api-key';
449
+ const key = cred.data['key'];
450
+ const location = cred.data['in'] ?? 'header';
451
+ if (key) {
452
+ if (location === 'query') {
453
+ url.searchParams.set(headerName, key);
454
+ }
455
+ else {
456
+ headers.set(headerName, key);
457
+ }
458
+ }
459
+ break;
460
+ }
461
+ case 'header': {
462
+ const name = cred.data['name'];
463
+ const value = cred.data['value'];
464
+ if (name && value)
465
+ headers.set(name, value);
466
+ break;
467
+ }
468
+ }
469
+ }
470
+ // ─── Body encoding (Postman-style modes) ───
471
+ /**
472
+ * Encode the request body for the given mode. Mutates `headers` to set
473
+ * the appropriate Content-Type unless the user already supplied one.
474
+ *
475
+ * Returns the `BodyInit` to attach (or `undefined` for empty bodies).
476
+ */
477
+ encodeBody(body, headers) {
478
+ switch (body.mode) {
479
+ case 'none':
480
+ return undefined;
481
+ case 'raw': {
482
+ if (!headers.has('content-type')) {
483
+ const ct = body.contentType === 'custom'
484
+ ? body.customContentType ?? 'application/octet-stream'
485
+ : RAW_CONTENT_TYPES[body.contentType];
486
+ headers.set('content-type', ct);
487
+ }
488
+ return body.raw;
489
+ }
490
+ case 'urlencoded': {
491
+ if (!headers.has('content-type')) {
492
+ headers.set('content-type', 'application/x-www-form-urlencoded');
493
+ }
494
+ const params = new URLSearchParams();
495
+ for (const f of body.fields) {
496
+ if (f.enabled === false)
497
+ continue;
498
+ params.append(f.key, f.value);
499
+ }
500
+ return params.toString();
501
+ }
502
+ case 'formdata': {
503
+ // Let fetch set the multipart boundary in Content-Type automatically.
504
+ if (headers.has('content-type')) {
505
+ headers.delete('content-type');
506
+ }
507
+ const form = new FormData();
508
+ for (const f of body.fields) {
509
+ if (f.enabled === false)
510
+ continue;
511
+ form.append(f.key, f.value);
512
+ }
513
+ return form;
514
+ }
515
+ }
516
+ }
517
+ // ─── Response parsing ───
518
+ decodeText(bytes) {
519
+ try {
520
+ // strict: false → invalid utf-8 yields replacement chars instead of throwing.
521
+ return new TextDecoder('utf-8', { fatal: false }).decode(bytes);
522
+ }
523
+ catch {
524
+ return '';
525
+ }
526
+ }
527
+ parseResponseBody(bytes, bodyText, headers, responseType) {
528
+ switch (responseType) {
529
+ case 'json':
530
+ // Throws on malformed JSON — explicit opt-in to strict parsing.
531
+ return JSON.parse(bodyText);
532
+ case 'text':
533
+ return bodyText;
534
+ case 'base64':
535
+ return bytesToBase64(bytes);
536
+ case 'discard':
537
+ return null;
538
+ case 'auto':
539
+ return this.autoParseBody(bodyText, headers);
540
+ }
541
+ }
542
+ autoParseBody(bodyText, headers) {
543
+ const ct = headers['content-type'] ?? '';
544
+ if (ct.includes('application/json')) {
545
+ try {
546
+ return JSON.parse(bodyText);
547
+ }
548
+ catch {
549
+ return bodyText;
550
+ }
551
+ }
552
+ if (ct.startsWith('text/')) {
553
+ return bodyText;
554
+ }
555
+ return null;
556
+ }
557
+ }
558
+ // ─── Helpers ───
559
+ /** Encode bytes as base64. Works in browsers and Node (no Buffer dependency). */
560
+ function bytesToBase64(bytes) {
561
+ let binary = '';
562
+ const chunkSize = 0x8000;
563
+ for (let i = 0; i < bytes.length; i += chunkSize) {
564
+ const chunk = bytes.subarray(i, i + chunkSize);
565
+ binary += String.fromCharCode(...chunk);
566
+ }
567
+ // btoa is global in Node 18+ and all browsers.
568
+ return btoa(binary);
569
+ }
570
+ //# sourceMappingURL=http-request.step.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-request.step.js","sourceRoot":"","sources":["../../../src/steps/builtin/http-request.step.ts"],"names":[],"mappings":"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"}