@elizaos/plugin-workflow 2.0.0-beta.1

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 (294) hide show
  1. package/README.md +71 -0
  2. package/auto-enable.ts +18 -0
  3. package/dist/actions/index.d.ts +2 -0
  4. package/dist/actions/index.d.ts.map +1 -0
  5. package/dist/actions/index.js +2 -0
  6. package/dist/actions/index.js.map +1 -0
  7. package/dist/actions/workflow.d.ts +23 -0
  8. package/dist/actions/workflow.d.ts.map +1 -0
  9. package/dist/actions/workflow.js +425 -0
  10. package/dist/actions/workflow.js.map +1 -0
  11. package/dist/data/defaultNodes.json +9887 -0
  12. package/dist/data/schemaIndex.json +1 -0
  13. package/dist/data/triggerSchemaIndex.json +1 -0
  14. package/dist/db/index.d.ts +2 -0
  15. package/dist/db/index.d.ts.map +1 -0
  16. package/dist/db/index.js +2 -0
  17. package/dist/db/index.js.map +1 -0
  18. package/dist/db/schema.d.ts +588 -0
  19. package/dist/db/schema.d.ts.map +1 -0
  20. package/dist/db/schema.js +59 -0
  21. package/dist/db/schema.js.map +1 -0
  22. package/dist/index.d.ts +34 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +126 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/lib/automations-builder.d.ts +21 -0
  27. package/dist/lib/automations-builder.d.ts.map +1 -0
  28. package/dist/lib/automations-builder.js +557 -0
  29. package/dist/lib/automations-builder.js.map +1 -0
  30. package/dist/lib/automations-types.d.ts +153 -0
  31. package/dist/lib/automations-types.d.ts.map +1 -0
  32. package/dist/lib/automations-types.js +191 -0
  33. package/dist/lib/automations-types.js.map +1 -0
  34. package/dist/lib/index.d.ts +3 -0
  35. package/dist/lib/index.d.ts.map +1 -0
  36. package/dist/lib/index.js +3 -0
  37. package/dist/lib/index.js.map +1 -0
  38. package/dist/lib/legacy-task-migration.d.ts +20 -0
  39. package/dist/lib/legacy-task-migration.d.ts.map +1 -0
  40. package/dist/lib/legacy-task-migration.js +110 -0
  41. package/dist/lib/legacy-task-migration.js.map +1 -0
  42. package/dist/lib/legacy-text-trigger-migration.d.ts +18 -0
  43. package/dist/lib/legacy-text-trigger-migration.d.ts.map +1 -0
  44. package/dist/lib/legacy-text-trigger-migration.js +131 -0
  45. package/dist/lib/legacy-text-trigger-migration.js.map +1 -0
  46. package/dist/lib/workflow-clarification.d.ts +113 -0
  47. package/dist/lib/workflow-clarification.d.ts.map +1 -0
  48. package/dist/lib/workflow-clarification.js +425 -0
  49. package/dist/lib/workflow-clarification.js.map +1 -0
  50. package/dist/plugin-routes.d.ts +9 -0
  51. package/dist/plugin-routes.d.ts.map +1 -0
  52. package/dist/plugin-routes.js +147 -0
  53. package/dist/plugin-routes.js.map +1 -0
  54. package/dist/providers/activeWorkflows.d.ts +11 -0
  55. package/dist/providers/activeWorkflows.d.ts.map +1 -0
  56. package/dist/providers/activeWorkflows.js +72 -0
  57. package/dist/providers/activeWorkflows.js.map +1 -0
  58. package/dist/providers/index.d.ts +4 -0
  59. package/dist/providers/index.d.ts.map +1 -0
  60. package/dist/providers/index.js +4 -0
  61. package/dist/providers/index.js.map +1 -0
  62. package/dist/providers/pendingDraft.d.ts +9 -0
  63. package/dist/providers/pendingDraft.d.ts.map +1 -0
  64. package/dist/providers/pendingDraft.js +48 -0
  65. package/dist/providers/pendingDraft.js.map +1 -0
  66. package/dist/providers/workflowStatus.d.ts +3 -0
  67. package/dist/providers/workflowStatus.d.ts.map +1 -0
  68. package/dist/providers/workflowStatus.js +69 -0
  69. package/dist/providers/workflowStatus.js.map +1 -0
  70. package/dist/register-routes.d.ts +2 -0
  71. package/dist/register-routes.d.ts.map +1 -0
  72. package/dist/register-routes.js +6 -0
  73. package/dist/register-routes.js.map +1 -0
  74. package/dist/routes/_helpers.d.ts +11 -0
  75. package/dist/routes/_helpers.d.ts.map +1 -0
  76. package/dist/routes/_helpers.js +22 -0
  77. package/dist/routes/_helpers.js.map +1 -0
  78. package/dist/routes/automations.d.ts +19 -0
  79. package/dist/routes/automations.d.ts.map +1 -0
  80. package/dist/routes/automations.js +32 -0
  81. package/dist/routes/automations.js.map +1 -0
  82. package/dist/routes/embedded-webhooks.d.ts +3 -0
  83. package/dist/routes/embedded-webhooks.d.ts.map +1 -0
  84. package/dist/routes/embedded-webhooks.js +47 -0
  85. package/dist/routes/embedded-webhooks.js.map +1 -0
  86. package/dist/routes/executions.d.ts +3 -0
  87. package/dist/routes/executions.d.ts.map +1 -0
  88. package/dist/routes/executions.js +58 -0
  89. package/dist/routes/executions.js.map +1 -0
  90. package/dist/routes/index.d.ts +4 -0
  91. package/dist/routes/index.d.ts.map +1 -0
  92. package/dist/routes/index.js +14 -0
  93. package/dist/routes/index.js.map +1 -0
  94. package/dist/routes/nodes.d.ts +3 -0
  95. package/dist/routes/nodes.d.ts.map +1 -0
  96. package/dist/routes/nodes.js +168 -0
  97. package/dist/routes/nodes.js.map +1 -0
  98. package/dist/routes/validation.d.ts +3 -0
  99. package/dist/routes/validation.d.ts.map +1 -0
  100. package/dist/routes/validation.js +41 -0
  101. package/dist/routes/validation.js.map +1 -0
  102. package/dist/routes/workflow-routes.d.ts +27 -0
  103. package/dist/routes/workflow-routes.d.ts.map +1 -0
  104. package/dist/routes/workflow-routes.js +326 -0
  105. package/dist/routes/workflow-routes.js.map +1 -0
  106. package/dist/routes/workflows.d.ts +3 -0
  107. package/dist/routes/workflows.d.ts.map +1 -0
  108. package/dist/routes/workflows.js +252 -0
  109. package/dist/routes/workflows.js.map +1 -0
  110. package/dist/schemas/draftIntent.d.ts +22 -0
  111. package/dist/schemas/draftIntent.d.ts.map +1 -0
  112. package/dist/schemas/draftIntent.js +22 -0
  113. package/dist/schemas/draftIntent.js.map +1 -0
  114. package/dist/schemas/feasibility.d.ts +13 -0
  115. package/dist/schemas/feasibility.d.ts.map +1 -0
  116. package/dist/schemas/feasibility.js +9 -0
  117. package/dist/schemas/feasibility.js.map +1 -0
  118. package/dist/schemas/index.d.ts +5 -0
  119. package/dist/schemas/index.d.ts.map +1 -0
  120. package/dist/schemas/index.js +5 -0
  121. package/dist/schemas/index.js.map +1 -0
  122. package/dist/schemas/keywordExtraction.d.ts +14 -0
  123. package/dist/schemas/keywordExtraction.d.ts.map +1 -0
  124. package/dist/schemas/keywordExtraction.js +12 -0
  125. package/dist/schemas/keywordExtraction.js.map +1 -0
  126. package/dist/schemas/workflowMatching.d.ts +36 -0
  127. package/dist/schemas/workflowMatching.d.ts.map +1 -0
  128. package/dist/schemas/workflowMatching.js +30 -0
  129. package/dist/schemas/workflowMatching.js.map +1 -0
  130. package/dist/services/embedded-workflow-service.d.ts +106 -0
  131. package/dist/services/embedded-workflow-service.d.ts.map +1 -0
  132. package/dist/services/embedded-workflow-service.js +1900 -0
  133. package/dist/services/embedded-workflow-service.js.map +1 -0
  134. package/dist/services/index.d.ts +5 -0
  135. package/dist/services/index.d.ts.map +1 -0
  136. package/dist/services/index.js +5 -0
  137. package/dist/services/index.js.map +1 -0
  138. package/dist/services/workflow-credential-store.d.ts +27 -0
  139. package/dist/services/workflow-credential-store.d.ts.map +1 -0
  140. package/dist/services/workflow-credential-store.js +92 -0
  141. package/dist/services/workflow-credential-store.js.map +1 -0
  142. package/dist/services/workflow-dispatch.d.ts +41 -0
  143. package/dist/services/workflow-dispatch.d.ts.map +1 -0
  144. package/dist/services/workflow-dispatch.js +86 -0
  145. package/dist/services/workflow-dispatch.js.map +1 -0
  146. package/dist/services/workflow-service.d.ts +63 -0
  147. package/dist/services/workflow-service.d.ts.map +1 -0
  148. package/dist/services/workflow-service.js +492 -0
  149. package/dist/services/workflow-service.js.map +1 -0
  150. package/dist/trigger-routes.d.ts +153 -0
  151. package/dist/trigger-routes.d.ts.map +1 -0
  152. package/dist/trigger-routes.js +424 -0
  153. package/dist/trigger-routes.js.map +1 -0
  154. package/dist/types/index.d.ts +457 -0
  155. package/dist/types/index.d.ts.map +1 -0
  156. package/dist/types/index.js +59 -0
  157. package/dist/types/index.js.map +1 -0
  158. package/dist/utils/catalog.d.ts +16 -0
  159. package/dist/utils/catalog.d.ts.map +1 -0
  160. package/dist/utils/catalog.js +211 -0
  161. package/dist/utils/catalog.js.map +1 -0
  162. package/dist/utils/clarification.d.ts +17 -0
  163. package/dist/utils/clarification.d.ts.map +1 -0
  164. package/dist/utils/clarification.js +46 -0
  165. package/dist/utils/clarification.js.map +1 -0
  166. package/dist/utils/context.d.ts +4 -0
  167. package/dist/utils/context.d.ts.map +1 -0
  168. package/dist/utils/context.js +18 -0
  169. package/dist/utils/context.js.map +1 -0
  170. package/dist/utils/credentialResolver.d.ts +22 -0
  171. package/dist/utils/credentialResolver.d.ts.map +1 -0
  172. package/dist/utils/credentialResolver.js +146 -0
  173. package/dist/utils/credentialResolver.js.map +1 -0
  174. package/dist/utils/generation.d.ts +36 -0
  175. package/dist/utils/generation.d.ts.map +1 -0
  176. package/dist/utils/generation.js +701 -0
  177. package/dist/utils/generation.js.map +1 -0
  178. package/dist/utils/host-capabilities.d.ts +27 -0
  179. package/dist/utils/host-capabilities.d.ts.map +1 -0
  180. package/dist/utils/host-capabilities.js +59 -0
  181. package/dist/utils/host-capabilities.js.map +1 -0
  182. package/dist/utils/inferSyntheticOutputSchema.d.ts +20 -0
  183. package/dist/utils/inferSyntheticOutputSchema.d.ts.map +1 -0
  184. package/dist/utils/inferSyntheticOutputSchema.js +151 -0
  185. package/dist/utils/inferSyntheticOutputSchema.js.map +1 -0
  186. package/dist/utils/outputSchema.d.ts +26 -0
  187. package/dist/utils/outputSchema.d.ts.map +1 -0
  188. package/dist/utils/outputSchema.js +297 -0
  189. package/dist/utils/outputSchema.js.map +1 -0
  190. package/dist/utils/validateAndRepair.d.ts +41 -0
  191. package/dist/utils/validateAndRepair.d.ts.map +1 -0
  192. package/dist/utils/validateAndRepair.js +483 -0
  193. package/dist/utils/validateAndRepair.js.map +1 -0
  194. package/dist/utils/workflow-prompts/actionResponse.d.ts +2 -0
  195. package/dist/utils/workflow-prompts/actionResponse.d.ts.map +1 -0
  196. package/dist/utils/workflow-prompts/actionResponse.js +17 -0
  197. package/dist/utils/workflow-prompts/actionResponse.js.map +1 -0
  198. package/dist/utils/workflow-prompts/draftIntent.d.ts +2 -0
  199. package/dist/utils/workflow-prompts/draftIntent.d.ts.map +1 -0
  200. package/dist/utils/workflow-prompts/draftIntent.js +23 -0
  201. package/dist/utils/workflow-prompts/draftIntent.js.map +1 -0
  202. package/dist/utils/workflow-prompts/feasibilityCheck.d.ts +2 -0
  203. package/dist/utils/workflow-prompts/feasibilityCheck.d.ts.map +1 -0
  204. package/dist/utils/workflow-prompts/feasibilityCheck.js +21 -0
  205. package/dist/utils/workflow-prompts/feasibilityCheck.js.map +1 -0
  206. package/dist/utils/workflow-prompts/fieldCorrection.d.ts +3 -0
  207. package/dist/utils/workflow-prompts/fieldCorrection.d.ts.map +1 -0
  208. package/dist/utils/workflow-prompts/fieldCorrection.js +20 -0
  209. package/dist/utils/workflow-prompts/fieldCorrection.js.map +1 -0
  210. package/dist/utils/workflow-prompts/index.d.ts +8 -0
  211. package/dist/utils/workflow-prompts/index.d.ts.map +1 -0
  212. package/dist/utils/workflow-prompts/index.js +8 -0
  213. package/dist/utils/workflow-prompts/index.js.map +1 -0
  214. package/dist/utils/workflow-prompts/keywordExtraction.d.ts +2 -0
  215. package/dist/utils/workflow-prompts/keywordExtraction.d.ts.map +1 -0
  216. package/dist/utils/workflow-prompts/keywordExtraction.js +21 -0
  217. package/dist/utils/workflow-prompts/keywordExtraction.js.map +1 -0
  218. package/dist/utils/workflow-prompts/parameterCorrection.d.ts +3 -0
  219. package/dist/utils/workflow-prompts/parameterCorrection.d.ts.map +1 -0
  220. package/dist/utils/workflow-prompts/parameterCorrection.js +29 -0
  221. package/dist/utils/workflow-prompts/parameterCorrection.js.map +1 -0
  222. package/dist/utils/workflow-prompts/workflowGeneration.d.ts +2 -0
  223. package/dist/utils/workflow-prompts/workflowGeneration.d.ts.map +1 -0
  224. package/dist/utils/workflow-prompts/workflowGeneration.js +529 -0
  225. package/dist/utils/workflow-prompts/workflowGeneration.js.map +1 -0
  226. package/dist/utils/workflow-prompts/workflowMatching.d.ts +2 -0
  227. package/dist/utils/workflow-prompts/workflowMatching.d.ts.map +1 -0
  228. package/dist/utils/workflow-prompts/workflowMatching.js +23 -0
  229. package/dist/utils/workflow-prompts/workflowMatching.js.map +1 -0
  230. package/dist/utils/workflow.d.ts +62 -0
  231. package/dist/utils/workflow.d.ts.map +1 -0
  232. package/dist/utils/workflow.js +712 -0
  233. package/dist/utils/workflow.js.map +1 -0
  234. package/package.json +87 -0
  235. package/src/actions/index.ts +1 -0
  236. package/src/actions/workflow.ts +494 -0
  237. package/src/data/defaultNodes.json +9887 -0
  238. package/src/data/schemaIndex.json +1 -0
  239. package/src/data/triggerSchemaIndex.json +1 -0
  240. package/src/db/index.ts +8 -0
  241. package/src/db/schema.ts +94 -0
  242. package/src/index.ts +179 -0
  243. package/src/lib/automations-builder.ts +679 -0
  244. package/src/lib/automations-types.ts +391 -0
  245. package/src/lib/index.ts +8 -0
  246. package/src/lib/legacy-task-migration.ts +143 -0
  247. package/src/lib/legacy-text-trigger-migration.ts +178 -0
  248. package/src/lib/workflow-clarification.ts +497 -0
  249. package/src/plugin-routes.ts +164 -0
  250. package/src/providers/activeWorkflows.ts +81 -0
  251. package/src/providers/index.ts +3 -0
  252. package/src/providers/pendingDraft.ts +55 -0
  253. package/src/providers/workflowStatus.ts +88 -0
  254. package/src/register-routes.ts +6 -0
  255. package/src/routes/_helpers.ts +27 -0
  256. package/src/routes/automations.ts +46 -0
  257. package/src/routes/embedded-webhooks.ts +64 -0
  258. package/src/routes/executions.ts +75 -0
  259. package/src/routes/index.ts +16 -0
  260. package/src/routes/nodes.ts +211 -0
  261. package/src/routes/validation.ts +51 -0
  262. package/src/routes/workflow-routes.ts +469 -0
  263. package/src/routes/workflows.ts +310 -0
  264. package/src/schemas/draftIntent.ts +21 -0
  265. package/src/schemas/feasibility.ts +8 -0
  266. package/src/schemas/index.ts +4 -0
  267. package/src/schemas/keywordExtraction.ts +11 -0
  268. package/src/schemas/workflowMatching.ts +29 -0
  269. package/src/services/embedded-workflow-service.ts +2224 -0
  270. package/src/services/index.ts +17 -0
  271. package/src/services/workflow-credential-store.ts +132 -0
  272. package/src/services/workflow-dispatch.ts +121 -0
  273. package/src/services/workflow-service.ts +839 -0
  274. package/src/trigger-routes.ts +714 -0
  275. package/src/types/index.ts +562 -0
  276. package/src/utils/catalog.ts +260 -0
  277. package/src/utils/clarification.ts +52 -0
  278. package/src/utils/context.ts +22 -0
  279. package/src/utils/credentialResolver.ts +234 -0
  280. package/src/utils/generation.ts +987 -0
  281. package/src/utils/host-capabilities.ts +81 -0
  282. package/src/utils/inferSyntheticOutputSchema.ts +163 -0
  283. package/src/utils/outputSchema.ts +372 -0
  284. package/src/utils/validateAndRepair.ts +610 -0
  285. package/src/utils/workflow-prompts/actionResponse.ts +16 -0
  286. package/src/utils/workflow-prompts/draftIntent.ts +22 -0
  287. package/src/utils/workflow-prompts/feasibilityCheck.ts +20 -0
  288. package/src/utils/workflow-prompts/fieldCorrection.ts +20 -0
  289. package/src/utils/workflow-prompts/index.ts +10 -0
  290. package/src/utils/workflow-prompts/keywordExtraction.ts +20 -0
  291. package/src/utils/workflow-prompts/parameterCorrection.ts +29 -0
  292. package/src/utils/workflow-prompts/workflowGeneration.ts +528 -0
  293. package/src/utils/workflow-prompts/workflowMatching.ts +22 -0
  294. package/src/utils/workflow.ts +895 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generation.js","sourceRoot":"","sources":["../../src/utils/generation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Host capability detection for the embedded workflow engine.
3
+ *
4
+ * Different host environments have different ceilings: Cloudflare Workers
5
+ * have no fs/childProcess/long-running process; iOS/Android (Capacitor) have
6
+ * no fs/childProcess and no public inbound HTTP without a tunnel; browsers
7
+ * have neither fs nor inbound. The engine uses these to refuse activation
8
+ * of workflows whose nodes need capabilities the host can't provide, with
9
+ * an actionable message suggesting the right remediation (paired Eliza
10
+ * Cloud, plugin-tunnel, or running on a server agent).
11
+ */
12
+ export interface HostCapabilities {
13
+ /** Read/write filesystem via node:fs (or equivalent). */
14
+ fs: boolean;
15
+ /** Can receive inbound HTTP from the public internet (host a webhook). */
16
+ inbound: boolean;
17
+ /** Host process stays alive across schedule firings (vs short-lived). */
18
+ longRunning: boolean;
19
+ /** Spawns child processes via node:child_process. */
20
+ childProcess: boolean;
21
+ /** Raw TCP/UDP sockets via node:net (vs only fetch). */
22
+ net: boolean;
23
+ /** Human-readable host label for error messages. */
24
+ label: string;
25
+ }
26
+ export declare function detectHostCapabilities(): HostCapabilities;
27
+ //# sourceMappingURL=host-capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-capabilities.d.ts","sourceRoot":"","sources":["../../src/utils/host-capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,EAAE,EAAE,OAAO,CAAC;IACZ,0EAA0E;IAC1E,OAAO,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,WAAW,EAAE,OAAO,CAAC;IACrB,qDAAqD;IACrD,YAAY,EAAE,OAAO,CAAC;IACtB,wDAAwD;IACxD,GAAG,EAAE,OAAO,CAAC;IACb,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;CACf;AAID,wBAAgB,sBAAsB,IAAI,gBAAgB,CAmDzD"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Host capability detection for the embedded workflow engine.
3
+ *
4
+ * Different host environments have different ceilings: Cloudflare Workers
5
+ * have no fs/childProcess/long-running process; iOS/Android (Capacitor) have
6
+ * no fs/childProcess and no public inbound HTTP without a tunnel; browsers
7
+ * have neither fs nor inbound. The engine uses these to refuse activation
8
+ * of workflows whose nodes need capabilities the host can't provide, with
9
+ * an actionable message suggesting the right remediation (paired Eliza
10
+ * Cloud, plugin-tunnel, or running on a server agent).
11
+ */
12
+ export function detectHostCapabilities() {
13
+ // Cloudflare Workers — runtime exposes navigator.userAgent === 'Cloudflare-Workers'.
14
+ if (typeof navigator !== 'undefined' &&
15
+ typeof navigator?.userAgent === 'string' &&
16
+ navigator.userAgent.includes('Cloudflare-Workers')) {
17
+ return {
18
+ fs: false,
19
+ inbound: true, // Workers handle HTTP — webhook nodes can run if scheduling is the worker cron
20
+ longRunning: false,
21
+ childProcess: false,
22
+ net: false,
23
+ label: 'Cloudflare Worker',
24
+ };
25
+ }
26
+ // Capacitor (iOS / Android). Capacitor exposes a global on the window/globalThis.
27
+ const capacitor = Reflect.get(globalThis, 'Capacitor');
28
+ if (capacitor && typeof capacitor === 'object') {
29
+ return {
30
+ fs: false,
31
+ inbound: false, // No public HTTP without plugin-tunnel
32
+ longRunning: true, // App stays alive while running; bg runner handles wake-ups
33
+ childProcess: false,
34
+ net: false,
35
+ label: 'Mobile (Capacitor)',
36
+ };
37
+ }
38
+ // Browser without Capacitor — pure web.
39
+ if (typeof window !== 'undefined' && typeof process === 'undefined') {
40
+ return {
41
+ fs: false,
42
+ inbound: false,
43
+ longRunning: true,
44
+ childProcess: false,
45
+ net: false,
46
+ label: 'Browser',
47
+ };
48
+ }
49
+ // Node — server / desktop. Full power.
50
+ return {
51
+ fs: true,
52
+ inbound: true,
53
+ longRunning: true,
54
+ childProcess: true,
55
+ net: true,
56
+ label: 'Node',
57
+ };
58
+ }
59
+ //# sourceMappingURL=host-capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-capabilities.js","sourceRoot":"","sources":["../../src/utils/host-capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAmBH,MAAM,UAAU,sBAAsB;IACpC,qFAAqF;IACrF,IACE,OAAO,SAAS,KAAK,WAAW;QAChC,OAAO,SAAS,EAAE,SAAS,KAAK,QAAQ;QACxC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAClD,CAAC;QACD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,IAAI,EAAE,+EAA+E;YAC9F,WAAW,EAAE,KAAK;YAClB,YAAY,EAAE,KAAK;YACnB,GAAG,EAAE,KAAK;YACV,KAAK,EAAE,mBAAmB;SAC3B,CAAC;IACJ,CAAC;IAED,kFAAkF;IAClF,MAAM,SAAS,GAAY,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAChE,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC/C,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,KAAK,EAAE,uCAAuC;YACvD,WAAW,EAAE,IAAI,EAAE,4DAA4D;YAC/E,YAAY,EAAE,KAAK;YACnB,GAAG,EAAE,KAAK;YACV,KAAK,EAAE,oBAAoB;SAC5B,CAAC;IACJ,CAAC;IAED,wCAAwC;IACxC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACpE,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE,KAAK;YACnB,GAAG,EAAE,KAAK;YACV,KAAK,EAAE,SAAS;SACjB,CAAC;IACJ,CAAC;IAED,uCAAuC;IACvC,OAAO;QACL,EAAE,EAAE,IAAI;QACR,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,IAAI;QAClB,GAAG,EAAE,IAAI;QACT,KAAK,EAAE,MAAM;KACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Synthetic output-schema inference for nodes whose output keys are
3
+ * deterministically derivable from their parameters (Summarize, Set, etc.).
4
+ * For nodes with arbitrary user-defined output (Code, Function), returns
5
+ * null — callers should skip downstream field validation rather than
6
+ * false-error.
7
+ *
8
+ * Returning null = "unknowable, do not validate". Returning an empty array
9
+ * also means "unknowable" but signals the caller can warn loudly. We use
10
+ * null (skip) for Code/Function and a populated array for Summarize/Set.
11
+ */
12
+ import type { WorkflowNode } from '../types/index';
13
+ /**
14
+ * Returns top-level output field names this node will emit, when derivable
15
+ * from parameters alone. Returns `null` when the schema is unknowable
16
+ * (Code, Function, AI Agent, custom) — callers should treat null as
17
+ * "skip field validation against this node's output", NOT as "no fields".
18
+ */
19
+ export declare function inferSyntheticOutputSchema(node: WorkflowNode): string[] | null;
20
+ //# sourceMappingURL=inferSyntheticOutputSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inferSyntheticOutputSchema.d.ts","sourceRoot":"","sources":["../../src/utils/inferSyntheticOutputSchema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AA4HnD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,EAAE,GAAG,IAAI,CAoB9E"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * Synthetic output-schema inference for nodes whose output keys are
3
+ * deterministically derivable from their parameters (Summarize, Set, etc.).
4
+ * For nodes with arbitrary user-defined output (Code, Function), returns
5
+ * null — callers should skip downstream field validation rather than
6
+ * false-error.
7
+ *
8
+ * Returning null = "unknowable, do not validate". Returning an empty array
9
+ * also means "unknowable" but signals the caller can warn loudly. We use
10
+ * null (skip) for Code/Function and a populated array for Summarize/Set.
11
+ */
12
+ /** workflows Summarize node aggregation → output prefix. Verified against actual
13
+ * workflows output during Session 20 dogfood (concatenate→concatenated_<field>,
14
+ * count→count_<field>). Update this map when new aggregations show up. */
15
+ const SUMMARIZE_AGG_PREFIX = {
16
+ concatenate: 'concatenated',
17
+ count: 'count',
18
+ countUnique: 'uniqueCount',
19
+ sum: 'sum',
20
+ average: 'average',
21
+ min: 'min',
22
+ max: 'max',
23
+ first: 'first',
24
+ last: 'last',
25
+ append: 'appended',
26
+ };
27
+ /** Returns top-level output field names a Summarize node will emit, derived
28
+ * from its `fieldsToSummarize.values[]` parameter. */
29
+ function inferSummarizeFields(node) {
30
+ const fields = node.parameters?.fieldsToSummarize;
31
+ if (!fields?.values || !Array.isArray(fields.values)) {
32
+ return null;
33
+ }
34
+ const out = [];
35
+ for (const entry of fields.values) {
36
+ if (typeof entry?.aggregation !== 'string' || typeof entry?.field !== 'string') {
37
+ continue;
38
+ }
39
+ const prefix = SUMMARIZE_AGG_PREFIX[entry.aggregation];
40
+ if (!prefix) {
41
+ continue;
42
+ }
43
+ out.push(`${prefix}_${entry.field}`);
44
+ }
45
+ return out.length > 0 ? out : null;
46
+ }
47
+ /** Returns field names a Set / EditFields node will emit, derived from
48
+ * `assignments.assignments[]` (modern Set node) or `values.<type>[]`
49
+ * (legacy Set node). */
50
+ function inferSetFields(node) {
51
+ const params = node.parameters;
52
+ if (!params) {
53
+ return null;
54
+ }
55
+ // Modern Set / EditFields shape: assignments.assignments[i].name
56
+ const modern = params.assignments;
57
+ if (modern?.assignments && Array.isArray(modern.assignments)) {
58
+ const names = modern.assignments
59
+ .map((a) => a?.name)
60
+ .filter((n) => typeof n === 'string' && n.length > 0);
61
+ if (names.length > 0) {
62
+ return names;
63
+ }
64
+ }
65
+ // Legacy Set shape: values.{string,number,boolean}[i].name
66
+ const legacy = params.values;
67
+ if (legacy && typeof legacy === 'object') {
68
+ const names = [];
69
+ for (const arr of Object.values(legacy)) {
70
+ if (!Array.isArray(arr)) {
71
+ continue;
72
+ }
73
+ for (const v of arr) {
74
+ if (typeof v?.name === 'string' && v.name.length > 0) {
75
+ names.push(v.name);
76
+ }
77
+ }
78
+ }
79
+ if (names.length > 0) {
80
+ return names;
81
+ }
82
+ }
83
+ return null;
84
+ }
85
+ /**
86
+ * Gmail's `simple: true` mode flattens the response with PascalCase header
87
+ * fields (`Subject`, `From`, `To`, `Date`, ...) — distinct from the static
88
+ * schema in `schemaIndex.json` which captures the non-simple shape with
89
+ * lowercase `subject` etc. Without this override, validateAndRepair sees
90
+ * the static schema, decides `field: "subject"` is valid, and fails to
91
+ * catch the LLM's lowercase pick — Summarize then aggregates 10 empty
92
+ * strings at runtime because Gmail actually emits `Subject` capitalized.
93
+ *
94
+ * Verified during Session 20 dogfood: execution result data on a real
95
+ * Gmail node with `simple: true` had `[id, threadId, snippet, payload,
96
+ * sizeEstimate, historyId, internalDate, labels, Subject, From, To]`.
97
+ */
98
+ const GMAIL_SIMPLE_MODE_FIELDS = [
99
+ 'id',
100
+ 'threadId',
101
+ 'snippet',
102
+ 'payload',
103
+ 'sizeEstimate',
104
+ 'historyId',
105
+ 'internalDate',
106
+ 'labels',
107
+ 'Subject',
108
+ 'From',
109
+ 'To',
110
+ 'Date',
111
+ 'Cc',
112
+ 'Bcc',
113
+ 'Reply-To',
114
+ ];
115
+ function inferGmailSimpleFields(node) {
116
+ const params = node.parameters;
117
+ // simple=true is the default in workflows's Gmail node. Treat both `true` and
118
+ // `undefined` as simple-mode unless explicitly disabled.
119
+ if (params?.simple === false) {
120
+ return null;
121
+ }
122
+ return GMAIL_SIMPLE_MODE_FIELDS;
123
+ }
124
+ /**
125
+ * Returns top-level output field names this node will emit, when derivable
126
+ * from parameters alone. Returns `null` when the schema is unknowable
127
+ * (Code, Function, AI Agent, custom) — callers should treat null as
128
+ * "skip field validation against this node's output", NOT as "no fields".
129
+ */
130
+ export function inferSyntheticOutputSchema(node) {
131
+ switch (node.type) {
132
+ case 'workflows-nodes-base.summarize':
133
+ return inferSummarizeFields(node);
134
+ case 'workflows-nodes-base.set':
135
+ case 'workflows-nodes-base.editFields':
136
+ return inferSetFields(node);
137
+ case 'workflows-nodes-base.gmail':
138
+ // simple-mode override — only applies when simple !== false.
139
+ // For simple=false, return null so the caller falls back to the
140
+ // static schema (which captures the non-simple lowercase shape).
141
+ return inferGmailSimpleFields(node);
142
+ // Arbitrary user output — schema unknowable without execution.
143
+ case 'workflows-nodes-base.code':
144
+ case 'workflows-nodes-base.function':
145
+ case 'workflows-nodes-base.functionItem':
146
+ return null;
147
+ default:
148
+ return null;
149
+ }
150
+ }
151
+ //# sourceMappingURL=inferSyntheticOutputSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inferSyntheticOutputSchema.js","sourceRoot":"","sources":["../../src/utils/inferSyntheticOutputSchema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Output schema utilities for validating expressions between nodes.
3
+ * Uses pre-crawled schemaIndex.json with full schema content.
4
+ */
5
+ import type { ExpressionRef, SchemaContent } from '../types/index';
6
+ export interface OutputSchemaResult {
7
+ schema: SchemaContent;
8
+ fields: string[];
9
+ }
10
+ export declare function hasOutputSchema(nodeType: string): boolean;
11
+ export declare function getAvailableResources(nodeType: string): string[];
12
+ export declare function getAvailableOperations(nodeType: string, resource: string): string[];
13
+ export declare function loadOutputSchema(nodeType: string, resource: string, operation: string): OutputSchemaResult | null;
14
+ export declare function loadTriggerOutputSchema(nodeType: string, parameters?: Record<string, unknown>): OutputSchemaResult | null;
15
+ export declare function getTopLevelFields(schema: SchemaContent): string[];
16
+ /** Returns all field paths including nested (e.g., "from.value[0].address") */
17
+ export declare function getAllFieldPaths(schema: SchemaContent, prefix?: string): string[];
18
+ /** Returns field paths with their types (e.g., "snippet: string", "payload: object"). */
19
+ export declare function getAllFieldPathsTyped(schema: SchemaContent, prefix?: string): {
20
+ path: string;
21
+ type: string;
22
+ }[];
23
+ export declare function parseExpressions(parameters: Record<string, unknown>, parentPath?: string): ExpressionRef[];
24
+ export declare function fieldExistsInSchema(path: string[], schema: SchemaContent): boolean;
25
+ export declare function formatSchemaForPrompt(schema: SchemaContent, maxDepth?: number): string;
26
+ //# sourceMappingURL=outputSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outputSchema.d.ts","sourceRoot":"","sources":["../../src/utils/outputSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAyBnE,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAMhE;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAUnF;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,kBAAkB,GAAG,IAAI,CAoB3B;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,kBAAkB,GAAG,IAAI,CAY3B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAKjE;AAED,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,SAAK,GAAG,MAAM,EAAE,CAE7E;AAED,yFAAyF;AACzF,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EACrB,MAAM,SAAK,GACV;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CA6BlC;AAED,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,UAAU,SAAK,GACd,aAAa,EAAE,CAwBjB;AAkHD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CA4ClF;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,SAAI,GAAG,MAAM,CAiCjF"}
@@ -0,0 +1,297 @@
1
+ /**
2
+ * Output schema utilities for validating expressions between nodes.
3
+ * Uses pre-crawled schemaIndex.json with full schema content.
4
+ */
5
+ import schemaIndex from '../data/schemaIndex.json';
6
+ import triggerSchemaIndex from '../data/triggerSchemaIndex.json';
7
+ const SCHEMA_INDEX = schemaIndex;
8
+ const TRIGGER_SCHEMA_INDEX = triggerSchemaIndex;
9
+ const TRIGGER_SCHEMAS = TRIGGER_SCHEMA_INDEX.triggers ?? {};
10
+ const NODE_SCHEMAS = SCHEMA_INDEX.nodeTypes ?? {};
11
+ export function hasOutputSchema(nodeType) {
12
+ return nodeType in NODE_SCHEMAS;
13
+ }
14
+ export function getAvailableResources(nodeType) {
15
+ const entry = NODE_SCHEMAS[nodeType];
16
+ if (!entry) {
17
+ return [];
18
+ }
19
+ return Object.keys(entry.schemas);
20
+ }
21
+ export function getAvailableOperations(nodeType, resource) {
22
+ const entry = NODE_SCHEMAS[nodeType];
23
+ if (!entry) {
24
+ return [];
25
+ }
26
+ const resourceSchemas = entry.schemas[resource];
27
+ if (!resourceSchemas) {
28
+ return [];
29
+ }
30
+ return Object.keys(resourceSchemas);
31
+ }
32
+ export function loadOutputSchema(nodeType, resource, operation) {
33
+ const entry = NODE_SCHEMAS[nodeType];
34
+ if (!entry) {
35
+ return null;
36
+ }
37
+ const resourceSchemas = entry.schemas[resource];
38
+ if (!resourceSchemas) {
39
+ return null;
40
+ }
41
+ const schema = resourceSchemas[operation];
42
+ if (!schema) {
43
+ return null;
44
+ }
45
+ return {
46
+ schema,
47
+ fields: getTopLevelFields(schema),
48
+ };
49
+ }
50
+ export function loadTriggerOutputSchema(nodeType, parameters) {
51
+ if (parameters?.simple === false) {
52
+ return null;
53
+ }
54
+ const entry = TRIGGER_SCHEMAS[nodeType];
55
+ if (!entry?.outputSchema?.properties || Object.keys(entry.outputSchema.properties).length === 0) {
56
+ return null;
57
+ }
58
+ return {
59
+ schema: entry.outputSchema,
60
+ fields: getTopLevelFields(entry.outputSchema),
61
+ };
62
+ }
63
+ export function getTopLevelFields(schema) {
64
+ if (!schema.properties) {
65
+ return [];
66
+ }
67
+ return Object.keys(schema.properties);
68
+ }
69
+ /** Returns all field paths including nested (e.g., "from.value[0].address") */
70
+ export function getAllFieldPaths(schema, prefix = '') {
71
+ return getAllFieldPathsTyped(schema, prefix).map((f) => f.path);
72
+ }
73
+ /** Returns field paths with their types (e.g., "snippet: string", "payload: object"). */
74
+ export function getAllFieldPathsTyped(schema, prefix = '') {
75
+ const fields = [];
76
+ const properties = schema.properties;
77
+ if (!properties) {
78
+ return fields;
79
+ }
80
+ for (const [key, value] of Object.entries(properties)) {
81
+ const currentPath = prefix ? `${prefix}.${key}` : key;
82
+ if (typeof value === 'object' && value !== null) {
83
+ const propSchema = value;
84
+ fields.push({ path: currentPath, type: propSchema.type || 'unknown' });
85
+ if (propSchema.type === 'object' && propSchema.properties) {
86
+ fields.push(...getAllFieldPathsTyped(propSchema, currentPath));
87
+ }
88
+ if (propSchema.type === 'array' && propSchema.items) {
89
+ const items = propSchema.items;
90
+ if (items.type === 'object' && items.properties) {
91
+ fields.push(...getAllFieldPathsTyped(items, `${currentPath}[0]`));
92
+ }
93
+ }
94
+ }
95
+ }
96
+ return fields;
97
+ }
98
+ export function parseExpressions(parameters, parentPath = '') {
99
+ const refs = [];
100
+ for (const [key, value] of Object.entries(parameters)) {
101
+ const currentPath = parentPath ? `${parentPath}.${key}` : key;
102
+ if (typeof value === 'string') {
103
+ refs.push(...extractExpressionsFromString(value, currentPath));
104
+ }
105
+ else if (Array.isArray(value)) {
106
+ for (let i = 0; i < value.length; i++) {
107
+ if (typeof value[i] === 'string') {
108
+ refs.push(...extractExpressionsFromString(value[i], `${currentPath}[${i}]`));
109
+ }
110
+ else if (typeof value[i] === 'object' && value[i] !== null) {
111
+ refs.push(...parseExpressions(value[i], `${currentPath}[${i}]`));
112
+ }
113
+ }
114
+ }
115
+ else if (typeof value === 'object' && value !== null) {
116
+ refs.push(...parseExpressions(value, currentPath));
117
+ }
118
+ }
119
+ return refs;
120
+ }
121
+ function extractExpressionsFromString(str, paramPath) {
122
+ const refs = [];
123
+ // Match every $json.field reference, even inside compound expressions like {{ $json.a || $json.b }}
124
+ const simplePattern = /\$json\.([a-zA-Z0-9_.[\]'"-]{1,200})/g;
125
+ // Bracket-notation variant: $json["someField"] or $json['someField'] (Session 21
126
+ // follow-up). The LLM occasionally emits this when the field name has chars
127
+ // that wouldn't survive dot notation, OR when it's just "trying to be safe".
128
+ // Without this pattern, validateAndRepair walks past references like
129
+ // {{ $json["concatenate_subject"] }} silently — the typo never gets caught.
130
+ const bracketPattern = /\$json\[\s*(['"])([^'"]{1,200})\1\s*\]/g;
131
+ const namedNodePattern = /\$\(['"]([^'"]{1,100})['"]\)\.item\.json\.([a-zA-Z0-9_.[\]'"-]{1,200})/g;
132
+ let match = simplePattern.exec(str);
133
+ while (match !== null) {
134
+ const field = match[1];
135
+ refs.push({
136
+ fullExpression: match[0],
137
+ field,
138
+ path: parseFieldPath(field),
139
+ paramPath,
140
+ });
141
+ match = simplePattern.exec(str);
142
+ }
143
+ match = bracketPattern.exec(str);
144
+ while (match !== null) {
145
+ const field = match[2];
146
+ refs.push({
147
+ fullExpression: match[0],
148
+ field,
149
+ path: parseFieldPath(field),
150
+ paramPath,
151
+ });
152
+ match = bracketPattern.exec(str);
153
+ }
154
+ match = namedNodePattern.exec(str);
155
+ while (match !== null) {
156
+ const field = match[2];
157
+ refs.push({
158
+ fullExpression: match[0],
159
+ field,
160
+ path: parseFieldPath(field),
161
+ paramPath,
162
+ sourceNodeName: match[1],
163
+ });
164
+ match = namedNodePattern.exec(str);
165
+ }
166
+ return refs;
167
+ }
168
+ /**
169
+ * Parses "from.value[0].address" or "headers['content-type']" into path segments.
170
+ */
171
+ function parseFieldPath(field) {
172
+ const path = [];
173
+ let current = '';
174
+ let i = 0;
175
+ while (i < field.length) {
176
+ const char = field[i];
177
+ if (char === '.') {
178
+ if (current) {
179
+ path.push(current);
180
+ current = '';
181
+ }
182
+ i++;
183
+ }
184
+ else if (char === '[') {
185
+ if (current) {
186
+ path.push(current);
187
+ current = '';
188
+ }
189
+ i++;
190
+ if (i >= field.length) {
191
+ break;
192
+ }
193
+ if (field[i] === "'" || field[i] === '"') {
194
+ const quote = field[i];
195
+ i++;
196
+ while (i < field.length && field[i] !== quote) {
197
+ current += field[i];
198
+ i++;
199
+ }
200
+ i++;
201
+ }
202
+ else {
203
+ while (i < field.length && field[i] !== ']') {
204
+ current += field[i];
205
+ i++;
206
+ }
207
+ }
208
+ if (current) {
209
+ path.push(current);
210
+ current = '';
211
+ }
212
+ i++;
213
+ }
214
+ else {
215
+ current += char;
216
+ i++;
217
+ }
218
+ }
219
+ if (current) {
220
+ path.push(current);
221
+ }
222
+ return path;
223
+ }
224
+ export function fieldExistsInSchema(path, schema) {
225
+ if (path.length === 0) {
226
+ return false;
227
+ }
228
+ let current = schema;
229
+ for (let i = 0; i < path.length; i++) {
230
+ const segment = path[i];
231
+ if (!current || typeof current !== 'object') {
232
+ return false;
233
+ }
234
+ const properties = current.properties;
235
+ if (!properties) {
236
+ return false;
237
+ }
238
+ const prop = properties[segment];
239
+ if (!prop) {
240
+ return false;
241
+ }
242
+ if (i === path.length - 1) {
243
+ return true;
244
+ }
245
+ if (prop.type === 'object') {
246
+ current = prop;
247
+ }
248
+ else if (prop.type === 'array' && prop.items) {
249
+ const nextSegment = path[i + 1];
250
+ if (/^\d+$/.test(nextSegment)) {
251
+ i++;
252
+ current = prop.items;
253
+ }
254
+ else {
255
+ return false;
256
+ }
257
+ }
258
+ else {
259
+ return false;
260
+ }
261
+ }
262
+ return false;
263
+ }
264
+ export function formatSchemaForPrompt(schema, maxDepth = 2) {
265
+ const lines = [];
266
+ function format(obj, depth, prefix) {
267
+ const properties = obj.properties;
268
+ if (!properties || depth > maxDepth) {
269
+ return;
270
+ }
271
+ for (const [key, value] of Object.entries(properties)) {
272
+ const prop = value;
273
+ const type = prop.type;
274
+ const path = prefix ? `${prefix}.${key}` : key;
275
+ if (type === 'object' && prop.properties) {
276
+ lines.push(`${path}: object`);
277
+ format(prop, depth + 1, path);
278
+ }
279
+ else if (type === 'array' && prop.items) {
280
+ const items = prop.items;
281
+ if (items.type === 'object' && items.properties) {
282
+ lines.push(`${path}: array of objects`);
283
+ format(items, depth + 1, `${path}[0]`);
284
+ }
285
+ else {
286
+ lines.push(`${path}: array of ${items.type || 'unknown'}`);
287
+ }
288
+ }
289
+ else {
290
+ lines.push(`${path}: ${type || 'unknown'}`);
291
+ }
292
+ }
293
+ }
294
+ format(schema, 0, '');
295
+ return lines.join('\n');
296
+ }
297
+ //# sourceMappingURL=outputSchema.js.map