@foresthubai/workflow-core 0.4.3 → 0.4.5

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 (298) hide show
  1. package/LICENSE +202 -202
  2. package/NOTICE +14 -14
  3. package/README.md +63 -63
  4. package/dist/api/deployment.d.ts +74 -0
  5. package/dist/api/deployment.d.ts.map +1 -0
  6. package/dist/api/deployment.js +6 -0
  7. package/dist/api/deployment.js.map +1 -0
  8. package/dist/api/engine.d.ts +744 -0
  9. package/dist/api/engine.d.ts.map +1 -0
  10. package/dist/api/engine.js +6 -0
  11. package/dist/api/engine.js.map +1 -0
  12. package/dist/api/index.d.ts +4 -0
  13. package/dist/api/index.d.ts.map +1 -1
  14. package/dist/api/index.js +2 -0
  15. package/dist/api/index.js.map +1 -1
  16. package/dist/api/workflow.d.ts +25 -9
  17. package/dist/api/workflow.d.ts.map +1 -1
  18. package/dist/channel/Channel.d.ts +1 -1
  19. package/dist/channel/Channel.d.ts.map +1 -1
  20. package/dist/channel/Channel.js +3 -1
  21. package/dist/channel/Channel.js.map +1 -1
  22. package/dist/channel/ChannelDefinition.d.ts.map +1 -1
  23. package/dist/channel/ChannelDefinition.js +24 -0
  24. package/dist/channel/ChannelDefinition.js.map +1 -1
  25. package/dist/channel/index.d.ts.map +1 -1
  26. package/dist/channel/index.js +2 -0
  27. package/dist/channel/index.js.map +1 -1
  28. package/dist/channel/serialization.d.ts.map +1 -1
  29. package/dist/channel/serialization.js +8 -0
  30. package/dist/channel/serialization.js.map +1 -1
  31. package/dist/deploy/index.d.ts +5 -1
  32. package/dist/deploy/index.d.ts.map +1 -1
  33. package/dist/deploy/index.js +4 -1
  34. package/dist/deploy/index.js.map +1 -1
  35. package/dist/deploy/inputs.d.ts +26 -0
  36. package/dist/deploy/inputs.d.ts.map +1 -0
  37. package/dist/deploy/inputs.js +4 -0
  38. package/dist/deploy/inputs.js.map +1 -0
  39. package/dist/deploy/requirements.d.ts +24 -0
  40. package/dist/deploy/requirements.d.ts.map +1 -1
  41. package/dist/deploy/requirements.js +63 -0
  42. package/dist/deploy/requirements.js.map +1 -1
  43. package/dist/deploy/spec.d.ts +27 -0
  44. package/dist/deploy/spec.d.ts.map +1 -0
  45. package/dist/deploy/spec.js +352 -0
  46. package/dist/deploy/spec.js.map +1 -0
  47. package/dist/diagnostics/__fixtures__/diagnosticFixtures.d.ts.map +1 -1
  48. package/dist/diagnostics/__fixtures__/diagnosticFixtures.js +2 -0
  49. package/dist/diagnostics/__fixtures__/diagnosticFixtures.js.map +1 -1
  50. package/dist/diagnostics/diagnostics.d.ts.map +1 -1
  51. package/dist/diagnostics/diagnostics.js +2 -0
  52. package/dist/diagnostics/diagnostics.js.map +1 -1
  53. package/dist/diagnostics/index.d.ts.map +1 -1
  54. package/dist/diagnostics/index.js +2 -0
  55. package/dist/diagnostics/index.js.map +1 -1
  56. package/dist/edge/Edge.d.ts.map +1 -1
  57. package/dist/edge/Edge.js +2 -0
  58. package/dist/edge/Edge.js.map +1 -1
  59. package/dist/edge/EdgeDefinition.d.ts.map +1 -1
  60. package/dist/edge/EdgeDefinition.js +2 -0
  61. package/dist/edge/EdgeDefinition.js.map +1 -1
  62. package/dist/edge/EdgeType.d.ts.map +1 -1
  63. package/dist/edge/EdgeType.js +2 -0
  64. package/dist/edge/EdgeType.js.map +1 -1
  65. package/dist/edge/index.d.ts.map +1 -1
  66. package/dist/edge/index.js +2 -2
  67. package/dist/edge/index.js.map +1 -1
  68. package/dist/edge/serialization.d.ts.map +1 -1
  69. package/dist/edge/serialization.js +2 -0
  70. package/dist/edge/serialization.js.map +1 -1
  71. package/dist/expression/index.d.ts.map +1 -1
  72. package/dist/expression/index.js +2 -0
  73. package/dist/expression/index.js.map +1 -1
  74. package/dist/expression/parser.d.ts.map +1 -1
  75. package/dist/expression/parser.js +2 -0
  76. package/dist/expression/parser.js.map +1 -1
  77. package/dist/expression/types.d.ts.map +1 -1
  78. package/dist/expression/types.js +2 -0
  79. package/dist/expression/types.js.map +1 -1
  80. package/dist/function/FunctionDeclaration.d.ts.map +1 -1
  81. package/dist/function/FunctionDeclaration.js +2 -0
  82. package/dist/function/FunctionDeclaration.js.map +1 -1
  83. package/dist/function/index.d.ts.map +1 -1
  84. package/dist/function/index.js +2 -0
  85. package/dist/function/index.js.map +1 -1
  86. package/dist/function/serialization.d.ts.map +1 -1
  87. package/dist/function/serialization.js +2 -0
  88. package/dist/function/serialization.js.map +1 -1
  89. package/dist/id/index.d.ts.map +1 -1
  90. package/dist/id/index.js +2 -0
  91. package/dist/id/index.js.map +1 -1
  92. package/dist/index.d.ts.map +1 -1
  93. package/dist/index.js +2 -0
  94. package/dist/index.js.map +1 -1
  95. package/dist/memory/Memory.d.ts.map +1 -1
  96. package/dist/memory/Memory.js +2 -0
  97. package/dist/memory/Memory.js.map +1 -1
  98. package/dist/memory/MemoryDefinition.d.ts.map +1 -1
  99. package/dist/memory/MemoryDefinition.js +2 -0
  100. package/dist/memory/MemoryDefinition.js.map +1 -1
  101. package/dist/memory/MemoryFileDefinition.d.ts.map +1 -1
  102. package/dist/memory/MemoryFileDefinition.js +2 -0
  103. package/dist/memory/MemoryFileDefinition.js.map +1 -1
  104. package/dist/memory/MemoryRegistry.d.ts.map +1 -1
  105. package/dist/memory/MemoryRegistry.js +2 -0
  106. package/dist/memory/MemoryRegistry.js.map +1 -1
  107. package/dist/memory/VectorDatabaseDefinition.d.ts.map +1 -1
  108. package/dist/memory/VectorDatabaseDefinition.js +2 -0
  109. package/dist/memory/VectorDatabaseDefinition.js.map +1 -1
  110. package/dist/memory/index.d.ts.map +1 -1
  111. package/dist/memory/index.js +2 -0
  112. package/dist/memory/index.js.map +1 -1
  113. package/dist/memory/serialization.d.ts.map +1 -1
  114. package/dist/memory/serialization.js +2 -0
  115. package/dist/memory/serialization.js.map +1 -1
  116. package/dist/migration/index.d.ts.map +1 -1
  117. package/dist/migration/index.js +2 -0
  118. package/dist/migration/index.js.map +1 -1
  119. package/dist/migration/migrate.d.ts.map +1 -1
  120. package/dist/migration/migrate.js +2 -0
  121. package/dist/migration/migrate.js.map +1 -1
  122. package/dist/migration/migrations.d.ts.map +1 -1
  123. package/dist/migration/migrations.js +2 -0
  124. package/dist/migration/migrations.js.map +1 -1
  125. package/dist/migration/version.d.ts.map +1 -1
  126. package/dist/migration/version.js +2 -0
  127. package/dist/migration/version.js.map +1 -1
  128. package/dist/model/LLMModelDefinition.d.ts.map +1 -1
  129. package/dist/model/LLMModelDefinition.js +2 -0
  130. package/dist/model/LLMModelDefinition.js.map +1 -1
  131. package/dist/model/Model.d.ts.map +1 -1
  132. package/dist/model/Model.js +2 -13
  133. package/dist/model/Model.js.map +1 -1
  134. package/dist/model/ModelDefinition.d.ts.map +1 -1
  135. package/dist/model/ModelDefinition.js +2 -0
  136. package/dist/model/ModelDefinition.js.map +1 -1
  137. package/dist/model/ModelRegistry.d.ts.map +1 -1
  138. package/dist/model/ModelRegistry.js +2 -0
  139. package/dist/model/ModelRegistry.js.map +1 -1
  140. package/dist/model/index.d.ts.map +1 -1
  141. package/dist/model/index.js +2 -0
  142. package/dist/model/index.js.map +1 -1
  143. package/dist/model/serialization.d.ts.map +1 -1
  144. package/dist/model/serialization.js +2 -0
  145. package/dist/model/serialization.js.map +1 -1
  146. package/dist/node/AgentNode.d.ts.map +1 -1
  147. package/dist/node/AgentNode.js +2 -0
  148. package/dist/node/AgentNode.js.map +1 -1
  149. package/dist/node/DataNode.d.ts.map +1 -1
  150. package/dist/node/DataNode.js +2 -0
  151. package/dist/node/DataNode.js.map +1 -1
  152. package/dist/node/FunctionNode.d.ts.map +1 -1
  153. package/dist/node/FunctionNode.js +2 -0
  154. package/dist/node/FunctionNode.js.map +1 -1
  155. package/dist/node/InputNode.d.ts.map +1 -1
  156. package/dist/node/InputNode.js +2 -0
  157. package/dist/node/InputNode.js.map +1 -1
  158. package/dist/node/LogicNode.d.ts.map +1 -1
  159. package/dist/node/LogicNode.js +2 -0
  160. package/dist/node/LogicNode.js.map +1 -1
  161. package/dist/node/MqttNode.d.ts.map +1 -1
  162. package/dist/node/MqttNode.js +2 -0
  163. package/dist/node/MqttNode.js.map +1 -1
  164. package/dist/node/Node.d.ts.map +1 -1
  165. package/dist/node/Node.js +2 -7
  166. package/dist/node/Node.js.map +1 -1
  167. package/dist/node/NodeDefinition.d.ts.map +1 -1
  168. package/dist/node/NodeDefinition.js +2 -0
  169. package/dist/node/NodeDefinition.js.map +1 -1
  170. package/dist/node/NodeRegistry.d.ts.map +1 -1
  171. package/dist/node/NodeRegistry.js +2 -0
  172. package/dist/node/NodeRegistry.js.map +1 -1
  173. package/dist/node/OutputNode.d.ts.map +1 -1
  174. package/dist/node/OutputNode.js +4 -2
  175. package/dist/node/OutputNode.js.map +1 -1
  176. package/dist/node/ToolNode.d.ts.map +1 -1
  177. package/dist/node/ToolNode.js +2 -0
  178. package/dist/node/ToolNode.js.map +1 -1
  179. package/dist/node/TriggerNode.d.ts.map +1 -1
  180. package/dist/node/TriggerNode.js +2 -0
  181. package/dist/node/TriggerNode.js.map +1 -1
  182. package/dist/node/constants.d.ts.map +1 -1
  183. package/dist/node/constants.js +2 -0
  184. package/dist/node/constants.js.map +1 -1
  185. package/dist/node/index.d.ts.map +1 -1
  186. package/dist/node/index.js +2 -0
  187. package/dist/node/index.js.map +1 -1
  188. package/dist/node/methods.d.ts.map +1 -1
  189. package/dist/node/methods.js +2 -0
  190. package/dist/node/methods.js.map +1 -1
  191. package/dist/node/serialization.d.ts.map +1 -1
  192. package/dist/node/serialization.js +33 -13
  193. package/dist/node/serialization.js.map +1 -1
  194. package/dist/parameter/OutputParameter.d.ts.map +1 -1
  195. package/dist/parameter/OutputParameter.js +2 -0
  196. package/dist/parameter/OutputParameter.js.map +1 -1
  197. package/dist/parameter/Parameter.d.ts.map +1 -1
  198. package/dist/parameter/Parameter.js +2 -0
  199. package/dist/parameter/Parameter.js.map +1 -1
  200. package/dist/parameter/index.d.ts.map +1 -1
  201. package/dist/parameter/index.js +2 -0
  202. package/dist/parameter/index.js.map +1 -1
  203. package/dist/variable/Variable.d.ts.map +1 -1
  204. package/dist/variable/Variable.js +2 -0
  205. package/dist/variable/Variable.js.map +1 -1
  206. package/dist/variable/index.d.ts.map +1 -1
  207. package/dist/variable/index.js +2 -3
  208. package/dist/variable/index.js.map +1 -1
  209. package/dist/variable/operations.d.ts.map +1 -1
  210. package/dist/variable/operations.js +2 -0
  211. package/dist/variable/operations.js.map +1 -1
  212. package/dist/workflow/Workflow.d.ts.map +1 -1
  213. package/dist/workflow/Workflow.js +2 -0
  214. package/dist/workflow/Workflow.js.map +1 -1
  215. package/dist/workflow/index.d.ts.map +1 -1
  216. package/dist/workflow/index.js +2 -0
  217. package/dist/workflow/index.js.map +1 -1
  218. package/dist/workflow/serialization.d.ts.map +1 -1
  219. package/dist/workflow/serialization.js +2 -4
  220. package/dist/workflow/serialization.js.map +1 -1
  221. package/package.json +2 -2
  222. package/src/api/deployment.ts +74 -0
  223. package/src/api/engine.ts +744 -0
  224. package/src/api/index.ts +29 -11
  225. package/src/api/workflow.ts +25 -9
  226. package/src/channel/Channel.ts +14 -11
  227. package/src/channel/ChannelDefinition.ts +101 -76
  228. package/src/channel/index.ts +9 -6
  229. package/src/channel/serialization.ts +77 -68
  230. package/src/deploy/index.ts +17 -1
  231. package/src/deploy/inputs.ts +44 -0
  232. package/src/deploy/requirements.test.ts +64 -61
  233. package/src/deploy/requirements.ts +159 -41
  234. package/src/deploy/spec.test.ts +227 -0
  235. package/src/deploy/spec.ts +397 -0
  236. package/src/diagnostics/__fixtures__/diagnosticFixtures.ts +161 -158
  237. package/src/diagnostics/diagnostics.test.ts +881 -878
  238. package/src/diagnostics/diagnostics.ts +939 -936
  239. package/src/diagnostics/index.ts +14 -11
  240. package/src/edge/Edge.ts +26 -23
  241. package/src/edge/EdgeDefinition.ts +48 -45
  242. package/src/edge/EdgeType.ts +22 -19
  243. package/src/edge/index.ts +11 -8
  244. package/src/edge/serialization.ts +86 -83
  245. package/src/expression/index.ts +7 -4
  246. package/src/expression/parser.ts +365 -362
  247. package/src/expression/types.ts +33 -30
  248. package/src/function/FunctionDeclaration.ts +57 -54
  249. package/src/function/index.ts +6 -3
  250. package/src/function/serialization.ts +43 -40
  251. package/src/globals.d.ts +12 -9
  252. package/src/id/index.ts +11 -8
  253. package/src/index.ts +25 -22
  254. package/src/memory/Memory.ts +18 -15
  255. package/src/memory/MemoryDefinition.ts +19 -16
  256. package/src/memory/MemoryFileDefinition.ts +40 -37
  257. package/src/memory/MemoryRegistry.ts +38 -35
  258. package/src/memory/VectorDatabaseDefinition.ts +24 -21
  259. package/src/memory/index.ts +11 -8
  260. package/src/memory/serialization.ts +50 -47
  261. package/src/migration/index.ts +7 -4
  262. package/src/migration/migrate.test.ts +47 -44
  263. package/src/migration/migrate.ts +61 -58
  264. package/src/migration/migrations.ts +27 -24
  265. package/src/migration/version.ts +12 -9
  266. package/src/model/LLMModelDefinition.ts +15 -12
  267. package/src/model/Model.ts +42 -39
  268. package/src/model/ModelDefinition.ts +18 -15
  269. package/src/model/ModelRegistry.ts +36 -33
  270. package/src/model/index.ts +10 -7
  271. package/src/model/serialization.ts +33 -30
  272. package/src/node/AgentNode.ts +85 -82
  273. package/src/node/DataNode.ts +44 -41
  274. package/src/node/FunctionNode.ts +79 -76
  275. package/src/node/InputNode.ts +188 -185
  276. package/src/node/LogicNode.ts +36 -33
  277. package/src/node/MqttNode.ts +130 -127
  278. package/src/node/Node.ts +64 -61
  279. package/src/node/NodeDefinition.ts +40 -37
  280. package/src/node/NodeRegistry.ts +88 -85
  281. package/src/node/OutputNode.ts +90 -87
  282. package/src/node/ToolNode.ts +35 -32
  283. package/src/node/TriggerNode.ts +275 -272
  284. package/src/node/constants.ts +19 -16
  285. package/src/node/index.ts +29 -26
  286. package/src/node/methods.ts +281 -278
  287. package/src/node/serialization.test.ts +51 -0
  288. package/src/node/serialization.ts +565 -544
  289. package/src/parameter/OutputParameter.ts +71 -68
  290. package/src/parameter/Parameter.ts +246 -243
  291. package/src/parameter/index.ts +36 -33
  292. package/src/variable/Variable.ts +13 -10
  293. package/src/variable/index.ts +19 -16
  294. package/src/variable/operations.ts +109 -106
  295. package/src/workflow/Workflow.ts +44 -41
  296. package/src/workflow/index.ts +6 -3
  297. package/src/workflow/serialization.test.ts +243 -240
  298. package/src/workflow/serialization.ts +245 -242
@@ -0,0 +1,744 @@
1
+ /**
2
+ * This file was auto-generated by openapi-typescript.
3
+ * Do not make direct changes to the file.
4
+ */
5
+ export type paths = Record<string, never>;
6
+ export type webhooks = Record<string, never>;
7
+ export interface components {
8
+ schemas: {
9
+ /** @description The engine's complete boot input, loaded once at startup. */
10
+ EngineConfig: {
11
+ workflow: components["schemas"]["Workflow"];
12
+ mapping?: components["schemas"]["ResourceMapping"];
13
+ externalResources?: components["schemas"]["ExternalResources"];
14
+ manifest?: components["schemas"]["DeviceManifest"];
15
+ };
16
+ /** @description The engine's secret store: a flat map of secret id -> opaque secret value. */
17
+ EngineSecrets: {
18
+ [key: string]: string;
19
+ };
20
+ /** @description Binds a binding-free workflow's logical resource ids to concrete platform resources, keyed by workflow resource id. */
21
+ ResourceMapping: {
22
+ [key: string]: components["schemas"]["ResourceBinding"];
23
+ };
24
+ /** @description How one workflow resource binds to the environment: a shared platform resource `ref` with an optional per-channel physical sub-address `index`. */
25
+ ResourceBinding: {
26
+ /** @description Shared platform resource id this binds to. */
27
+ ref: string;
28
+ /** @description Per-channel physical sub-address within the driver (GPIO line / ADC-PWM-DAC channel). Omitted when the resource has no sub-address. */
29
+ index?: number;
30
+ };
31
+ /** @description Deploy-time configs for a workflow's non-device external resources (MQTT transports, custom-model providers, ...), keyed by platform resource id. */
32
+ ExternalResources: {
33
+ [key: string]: components["schemas"]["ExternalResourceConfig"];
34
+ };
35
+ /** @description Tagged union of deploy-time external-resource configs, discriminated by runtime kind (not by ownership — locality like on-device vs cloud lives inside an arm). New kinds extend this oneOf. */
36
+ ExternalResourceConfig: components["schemas"]["MQTTConnection"] | components["schemas"]["LLMProviderConfig"];
37
+ /** @description Resolved connection to a self-hosted/custom LLM endpoint the llmproxy doesn't ship. */
38
+ LLMProviderConfig: {
39
+ /**
40
+ * @description discriminator enum property added by openapi-typescript
41
+ * @enum {string}
42
+ */
43
+ type: "selfhosted";
44
+ /** @description Base URL of the inference endpoint (http:// or https://). */
45
+ url: string;
46
+ /** @description Upstream model name the endpoint serves; defaults to the workflow model id when empty. */
47
+ model?: string;
48
+ };
49
+ /** @description Resolved connection metadata for an MQTT broker. */
50
+ MQTTConnection: {
51
+ /**
52
+ * @description discriminator enum property added by openapi-typescript
53
+ * @enum {string}
54
+ */
55
+ type: "mqtt";
56
+ brokerUrl: string;
57
+ clientId?: string;
58
+ username?: string;
59
+ /** @description Topic prefix for workflow-level publish topics ({networkId}/{agentId}/). */
60
+ publishPrefix?: string;
61
+ /** @description Topic prefix for workflow-level subscribe filters ({networkId}/+/). */
62
+ subscribePrefix?: string;
63
+ will?: components["schemas"]["MQTTWill"];
64
+ };
65
+ MQTTWill: {
66
+ topic: string;
67
+ payload: string;
68
+ /** @description MQTT QoS (0, 1, or 2). */
69
+ qos: number;
70
+ retain: boolean;
71
+ };
72
+ /** @description Hardware resources available on the device, keyed by driver instance ID. */
73
+ DeviceManifest: {
74
+ gpios?: {
75
+ [key: string]: components["schemas"]["GPIOConfig"];
76
+ };
77
+ adcs?: {
78
+ [key: string]: components["schemas"]["ADCConfig"];
79
+ };
80
+ dacs?: {
81
+ [key: string]: components["schemas"]["DACConfig"];
82
+ };
83
+ serials?: {
84
+ [key: string]: components["schemas"]["SerialConfig"];
85
+ };
86
+ pwms?: {
87
+ [key: string]: components["schemas"]["PWMConfig"];
88
+ };
89
+ };
90
+ GPIOConfig: {
91
+ /** @description cdev chip name or path, e.g. "gpiochip0" or "/dev/gpiochip0" */
92
+ chip: string;
93
+ };
94
+ ADCConfig: {
95
+ /** @description sysfs path to the IIO device directory, e.g. "/sys/bus/iio/devices/iio:device0" */
96
+ device: string;
97
+ };
98
+ DACConfig: {
99
+ /** @description sysfs path to the IIO device directory, e.g. "/sys/bus/iio/devices/iio:device1" */
100
+ device: string;
101
+ };
102
+ SerialConfig: {
103
+ /** @description Serial device path, e.g. "/dev/ttyUSB0" or "COM3" */
104
+ device: string;
105
+ /** @description Baud rate; falls back to 115200 when zero */
106
+ baud?: number;
107
+ };
108
+ PWMConfig: {
109
+ /** @description sysfs path to the pwmchip directory, e.g. "/sys/class/pwm/pwmchip0" */
110
+ chip: string;
111
+ };
112
+ RagQueryRequest: {
113
+ /** @description Collection to query */
114
+ collectionId: string;
115
+ /** @description Search query text */
116
+ query: string;
117
+ /**
118
+ * @description Number of results to return
119
+ * @default 5
120
+ */
121
+ topK: number;
122
+ };
123
+ RagQueryResult: {
124
+ chunkId: string;
125
+ documentId: string;
126
+ content: string;
127
+ /** Format: double */
128
+ score: number;
129
+ };
130
+ NodePosition: {
131
+ x: number;
132
+ y: number;
133
+ };
134
+ /** @enum {string} */
135
+ SignalType: "digital" | "analog";
136
+ Reference: {
137
+ srcId: string;
138
+ varId: string;
139
+ };
140
+ OutputBinding: {
141
+ /** @description Discard the output if false; route it according to `mode` if true */
142
+ active: boolean;
143
+ /** @enum {string} */
144
+ mode: "emit" | "assign";
145
+ /** @description Variable name (when mode=emit) */
146
+ name?: string;
147
+ /** @description Existing variable to route to (when mode=assign) */
148
+ target?: components["schemas"]["Reference"];
149
+ };
150
+ ReadPinNode: {
151
+ id: string;
152
+ /**
153
+ * @description discriminator enum property added by openapi-typescript
154
+ * @enum {string}
155
+ */
156
+ type: "ReadPin";
157
+ label?: string;
158
+ position: components["schemas"]["NodePosition"];
159
+ arguments: {
160
+ /** @description Reference to an IO variable ID */
161
+ pinReference?: string;
162
+ signalType: components["schemas"]["SignalType"];
163
+ output: components["schemas"]["OutputBinding"];
164
+ /** @description Description used when this node is exposed as a tool; ignored in exec mode. */
165
+ toolDescription?: string;
166
+ };
167
+ };
168
+ /** @enum {string} */
169
+ DataType: "int" | "float" | "bool" | "string";
170
+ Expression: {
171
+ expression: string;
172
+ /** @description A list of referenced variable IDs used in the expression */
173
+ references: components["schemas"]["Reference"][];
174
+ dataType: components["schemas"]["DataType"];
175
+ };
176
+ WritePinNode: {
177
+ id: string;
178
+ /**
179
+ * @description discriminator enum property added by openapi-typescript
180
+ * @enum {string}
181
+ */
182
+ type: "WritePin";
183
+ label?: string;
184
+ position: components["schemas"]["NodePosition"];
185
+ arguments: {
186
+ /** @description Reference to an IO variable ID */
187
+ pinReference?: string;
188
+ signalType: components["schemas"]["SignalType"];
189
+ value: components["schemas"]["Expression"];
190
+ };
191
+ };
192
+ OutputDeclaration: {
193
+ /** @enum {string} */
194
+ mode: "emit" | "assign";
195
+ /** @description JSON property name of the declared output */
196
+ name: string;
197
+ dataType: components["schemas"]["DataType"];
198
+ /** @description New variable uid (when mode=emit) */
199
+ uid?: string;
200
+ /** @description Existing variable to route to (when mode=assign) */
201
+ target?: components["schemas"]["Reference"];
202
+ };
203
+ /** @description Reference from an LLM agent node to a declared MemoryFile with an access mode. */
204
+ MemoryRef: {
205
+ /** @description id of the referenced MemoryFile. */
206
+ id: string;
207
+ /**
208
+ * @description r = read-only; rw = read + write.
209
+ * @enum {string}
210
+ */
211
+ mode: "r" | "rw";
212
+ };
213
+ AgentNode: {
214
+ id: string;
215
+ /**
216
+ * @description discriminator enum property added by openapi-typescript
217
+ * @enum {string}
218
+ */
219
+ type: "Agent";
220
+ label?: string;
221
+ position: components["schemas"]["NodePosition"];
222
+ arguments: {
223
+ /** @description Name of the agent */
224
+ name?: string;
225
+ model?: string;
226
+ instructions?: string;
227
+ /** @description Maximum number of agent runner turns */
228
+ maxTurns?: number;
229
+ answer: components["schemas"]["OutputBinding"];
230
+ /** @description Ordered list of structured-output declarations. Names must be unique within this list */
231
+ outputDeclarations: components["schemas"]["OutputDeclaration"][];
232
+ /** @description Memory files this agent can access, each with an access mode. */
233
+ memoryRefs: components["schemas"]["MemoryRef"][];
234
+ /** @description Description used when this node is exposed as a tool; ignored in exec mode. */
235
+ toolDescription?: string;
236
+ };
237
+ };
238
+ IfNode: {
239
+ id: string;
240
+ /**
241
+ * @description discriminator enum property added by openapi-typescript
242
+ * @enum {string}
243
+ */
244
+ type: "If";
245
+ label?: string;
246
+ position: components["schemas"]["NodePosition"];
247
+ arguments: {
248
+ condition: components["schemas"]["Expression"];
249
+ };
250
+ };
251
+ SerialReadNode: {
252
+ id: string;
253
+ /**
254
+ * @description discriminator enum property added by openapi-typescript
255
+ * @enum {string}
256
+ */
257
+ type: "SerialRead";
258
+ label?: string;
259
+ position: components["schemas"]["NodePosition"];
260
+ arguments: {
261
+ /** @description Reference to an UART ID (the serial port to read from) */
262
+ portReference?: string;
263
+ prompt?: string;
264
+ output: components["schemas"]["OutputBinding"];
265
+ };
266
+ };
267
+ SerialWriteNode: {
268
+ id: string;
269
+ /**
270
+ * @description discriminator enum property added by openapi-typescript
271
+ * @enum {string}
272
+ */
273
+ type: "SerialWrite";
274
+ label?: string;
275
+ position: components["schemas"]["NodePosition"];
276
+ arguments: {
277
+ /** @description Reference to a UART channel ID (the serial port to write to) */
278
+ portReference?: string;
279
+ value: components["schemas"]["Expression"];
280
+ };
281
+ };
282
+ RetrieverNode: {
283
+ id: string;
284
+ /**
285
+ * @description discriminator enum property added by openapi-typescript
286
+ * @enum {string}
287
+ */
288
+ type: "Retriever";
289
+ label?: string;
290
+ position: components["schemas"]["NodePosition"];
291
+ arguments: {
292
+ /** @description Reference to a declared VectorDatabase memory id */
293
+ memoryReference?: string;
294
+ /** @description Number of results to return */
295
+ topK?: number;
296
+ /** @description Search query expression */
297
+ query: components["schemas"]["Expression"];
298
+ output: components["schemas"]["OutputBinding"];
299
+ /** @description Description used when this node is exposed as a tool; ignored in exec mode. */
300
+ toolDescription?: string;
301
+ };
302
+ };
303
+ WebFetchNode: {
304
+ id: string;
305
+ /**
306
+ * @description discriminator enum property added by openapi-typescript
307
+ * @enum {string}
308
+ */
309
+ type: "WebFetch";
310
+ label?: string;
311
+ position: components["schemas"]["NodePosition"];
312
+ arguments: {
313
+ /** @description URL expression to fetch (http or https) */
314
+ url: components["schemas"]["Expression"];
315
+ /** @description Maximum characters of extracted text to return. Defaults to 50000 when omitted or non-positive. */
316
+ maxChars?: number;
317
+ output: components["schemas"]["OutputBinding"];
318
+ };
319
+ };
320
+ FunctionCallNode: {
321
+ id: string;
322
+ /**
323
+ * @description discriminator enum property added by openapi-typescript
324
+ * @enum {string}
325
+ */
326
+ type: "FunctionCall";
327
+ label?: string;
328
+ position: components["schemas"]["NodePosition"];
329
+ /** @description Id of the function this node calls. The signature is resolved from the workflow's functions table. */
330
+ functionId: string;
331
+ arguments: {
332
+ inputBindings?: {
333
+ [key: string]: components["schemas"]["Expression"];
334
+ };
335
+ outputBindings?: {
336
+ [key: string]: components["schemas"]["OutputBinding"];
337
+ };
338
+ /** @description Description used when this function is exposed as a tool; ignored in exec mode. */
339
+ toolDescription?: string;
340
+ };
341
+ };
342
+ OnFunctionCallNode: {
343
+ id: string;
344
+ /**
345
+ * @description discriminator enum property added by openapi-typescript
346
+ * @enum {string}
347
+ */
348
+ type: "OnFunctionCall";
349
+ label?: string;
350
+ position: components["schemas"]["NodePosition"];
351
+ };
352
+ DelayNode: {
353
+ id: string;
354
+ /**
355
+ * @description discriminator enum property added by openapi-typescript
356
+ * @enum {string}
357
+ */
358
+ type: "Delay";
359
+ label?: string;
360
+ position: components["schemas"]["NodePosition"];
361
+ arguments: {
362
+ /** @description Time in milliseconds to pause execution */
363
+ delayMs?: number;
364
+ };
365
+ };
366
+ TickerNode: {
367
+ id: string;
368
+ /**
369
+ * @description discriminator enum property added by openapi-typescript
370
+ * @enum {string}
371
+ */
372
+ type: "Ticker";
373
+ label?: string;
374
+ position: components["schemas"]["NodePosition"];
375
+ arguments: {
376
+ /** @description How many units between ticks */
377
+ intervalValue?: number;
378
+ /**
379
+ * @description Time unit for the interval
380
+ * @enum {string}
381
+ */
382
+ intervalUnit: "milliseconds" | "seconds" | "minutes" | "hours";
383
+ };
384
+ };
385
+ AlarmNode: {
386
+ id: string;
387
+ /**
388
+ * @description discriminator enum property added by openapi-typescript
389
+ * @enum {string}
390
+ */
391
+ type: "Alarm";
392
+ label?: string;
393
+ position: components["schemas"]["NodePosition"];
394
+ arguments: {
395
+ /** @description Time of day to fire (HH:MM, 24h format) */
396
+ time?: string;
397
+ /** @description Days of the week to fire on (empty = every day) */
398
+ days: string[];
399
+ };
400
+ };
401
+ WebSearchToolNode: {
402
+ id: string;
403
+ /**
404
+ * @description discriminator enum property added by openapi-typescript
405
+ * @enum {string}
406
+ */
407
+ type: "WebSearchTool";
408
+ label?: string;
409
+ position: components["schemas"]["NodePosition"];
410
+ arguments: {
411
+ /** @description Maximum number of search results to return per call. Defaults to 5 when omitted or non-positive. Capped at 20. */
412
+ maxResults?: number;
413
+ };
414
+ };
415
+ OnStartupNode: {
416
+ id: string;
417
+ /**
418
+ * @description discriminator enum property added by openapi-typescript
419
+ * @enum {string}
420
+ */
421
+ type: "OnStartup";
422
+ label?: string;
423
+ position: components["schemas"]["NodePosition"];
424
+ };
425
+ OnPinEdgeNode: {
426
+ id: string;
427
+ /**
428
+ * @description discriminator enum property added by openapi-typescript
429
+ * @enum {string}
430
+ */
431
+ type: "OnPinEdge";
432
+ label?: string;
433
+ position: components["schemas"]["NodePosition"];
434
+ arguments: {
435
+ /** @description IO variable ID of the digital pin to watch */
436
+ pinReference?: string;
437
+ /**
438
+ * @description Edge transition that fires the trigger
439
+ * @enum {string}
440
+ */
441
+ edge: "rising" | "falling" | "both";
442
+ };
443
+ };
444
+ OnSerialReceiveNode: {
445
+ id: string;
446
+ /**
447
+ * @description discriminator enum property added by openapi-typescript
448
+ * @enum {string}
449
+ */
450
+ type: "OnSerialReceive";
451
+ label?: string;
452
+ position: components["schemas"]["NodePosition"];
453
+ arguments: {
454
+ /** @description Reference to an IO variable ID (the serial port to listen on) */
455
+ portReference?: string;
456
+ output: components["schemas"]["OutputBinding"];
457
+ };
458
+ };
459
+ OnThresholdNode: {
460
+ id: string;
461
+ /**
462
+ * @description discriminator enum property added by openapi-typescript
463
+ * @enum {string}
464
+ */
465
+ type: "OnThreshold";
466
+ label?: string;
467
+ position: components["schemas"]["NodePosition"];
468
+ arguments: {
469
+ /** @description Numeric variable to watch for threshold crossings */
470
+ variable?: components["schemas"]["Reference"];
471
+ /** @description Value the variable crosses to fire the trigger */
472
+ threshold?: number;
473
+ /**
474
+ * @description Crossing direction to fire on (default both)
475
+ * @enum {string}
476
+ */
477
+ direction: "rising" | "falling" | "both";
478
+ /** @description Hysteresis band width around threshold; 0 disables (default 0) */
479
+ deadband?: number;
480
+ /** @description Optional binding for the triggering value */
481
+ output: components["schemas"]["OutputBinding"];
482
+ };
483
+ };
484
+ SetVariableNode: {
485
+ id: string;
486
+ /**
487
+ * @description discriminator enum property added by openapi-typescript
488
+ * @enum {string}
489
+ */
490
+ type: "SetVariable";
491
+ label?: string;
492
+ position: components["schemas"]["NodePosition"];
493
+ arguments: {
494
+ variable?: components["schemas"]["Reference"];
495
+ value: components["schemas"]["Expression"];
496
+ };
497
+ };
498
+ MqttPublishNode: {
499
+ id: string;
500
+ /**
501
+ * @description discriminator enum property added by openapi-typescript
502
+ * @enum {string}
503
+ */
504
+ type: "MqttPublish";
505
+ label?: string;
506
+ position: components["schemas"]["NodePosition"];
507
+ arguments: {
508
+ /** @description Reference to an MQTT channel ID (the channel carries the topic; resolved to a broker at deploy time) */
509
+ channelReference?: string;
510
+ dataType: components["schemas"]["DataType"];
511
+ value: components["schemas"]["Expression"];
512
+ /**
513
+ * @description MQTT Quality of Service level
514
+ * @enum {integer}
515
+ */
516
+ qos: 0 | 1 | 2;
517
+ /** @description Whether the broker should retain the message */
518
+ retain: boolean;
519
+ };
520
+ };
521
+ OnMqttMessageNode: {
522
+ id: string;
523
+ /**
524
+ * @description discriminator enum property added by openapi-typescript
525
+ * @enum {string}
526
+ */
527
+ type: "OnMqttMessage";
528
+ label?: string;
529
+ position: components["schemas"]["NodePosition"];
530
+ arguments: {
531
+ /** @description Reference to an MQTT channel ID (the channel carries the topic filter; resolved to a broker at deploy time) */
532
+ channelReference?: string;
533
+ dataType: components["schemas"]["DataType"];
534
+ output: components["schemas"]["OutputBinding"];
535
+ };
536
+ };
537
+ Node: components["schemas"]["ReadPinNode"] | components["schemas"]["WritePinNode"] | components["schemas"]["AgentNode"] | components["schemas"]["IfNode"] | components["schemas"]["SerialReadNode"] | components["schemas"]["SerialWriteNode"] | components["schemas"]["RetrieverNode"] | components["schemas"]["WebFetchNode"] | components["schemas"]["FunctionCallNode"] | components["schemas"]["OnFunctionCallNode"] | components["schemas"]["DelayNode"] | components["schemas"]["TickerNode"] | components["schemas"]["AlarmNode"] | components["schemas"]["WebSearchToolNode"] | components["schemas"]["OnStartupNode"] | components["schemas"]["OnPinEdgeNode"] | components["schemas"]["OnSerialReceiveNode"] | components["schemas"]["OnThresholdNode"] | components["schemas"]["SetVariableNode"] | components["schemas"]["MqttPublishNode"] | components["schemas"]["OnMqttMessageNode"];
538
+ /** @enum {string} */
539
+ EdgeType: "control" | "tool" | "agentTask" | "agentChoice" | "agentDelegate";
540
+ Vertex: {
541
+ nodeId: string;
542
+ port: string;
543
+ };
544
+ Edge: {
545
+ id: string;
546
+ type: components["schemas"]["EdgeType"];
547
+ from: components["schemas"]["Vertex"];
548
+ to: components["schemas"]["Vertex"];
549
+ /** @description Prompt expression sent to the agent. Present on `agentTask` (required) and `agentDelegate` (optional). */
550
+ prompt?: components["schemas"]["Expression"];
551
+ /** @description LLM-readable explanation of when the edge should fire. Present on `agentChoice` and `agentDelegate`. */
552
+ description?: string;
553
+ };
554
+ /** @description A named, typed variable with a stable uid that can be referenced throughout the workflow. */
555
+ Variable: {
556
+ /** @description Stable identifier that survives renames */
557
+ uid: string;
558
+ name: string;
559
+ dataType: components["schemas"]["DataType"];
560
+ /** @description Initial value matching the dataType (number, boolean, or string). Only used by declared variables. */
561
+ initialValue?: unknown;
562
+ };
563
+ FunctionInfo: {
564
+ id: string;
565
+ /** Format: int32 */
566
+ version: number;
567
+ name: string;
568
+ arguments: components["schemas"]["Variable"][];
569
+ returns: components["schemas"]["Variable"][];
570
+ };
571
+ Function: {
572
+ functionInfo: components["schemas"]["FunctionInfo"];
573
+ /** @description Maps return variable uid to its Expression */
574
+ outputAssignments: {
575
+ [key: string]: components["schemas"]["Expression"];
576
+ };
577
+ nodes: components["schemas"]["Node"][];
578
+ edges: components["schemas"]["Edge"][];
579
+ declaredVariables: components["schemas"]["Variable"][];
580
+ };
581
+ GPIOINChannel: {
582
+ /**
583
+ * @description discriminator enum property added by openapi-typescript
584
+ * @enum {string}
585
+ */
586
+ type: "GPIOIN";
587
+ id: string;
588
+ label: string;
589
+ /**
590
+ * @description Pin bias configuration
591
+ * @enum {string}
592
+ */
593
+ bias: "none" | "pullup" | "pulldown";
594
+ /** @description Debounce window in milliseconds */
595
+ debounceMs: number;
596
+ };
597
+ GPIOOUTChannel: {
598
+ /**
599
+ * @description discriminator enum property added by openapi-typescript
600
+ * @enum {string}
601
+ */
602
+ type: "GPIOOUT";
603
+ id: string;
604
+ label: string;
605
+ };
606
+ ADCChannel: {
607
+ /**
608
+ * @description discriminator enum property added by openapi-typescript
609
+ * @enum {string}
610
+ */
611
+ type: "ADC";
612
+ id: string;
613
+ label: string;
614
+ };
615
+ PWMChannel: {
616
+ /**
617
+ * @description discriminator enum property added by openapi-typescript
618
+ * @enum {string}
619
+ */
620
+ type: "PWM";
621
+ id: string;
622
+ label: string;
623
+ /** @description PWM frequency in Hz */
624
+ frequency: number;
625
+ };
626
+ DACChannel: {
627
+ /**
628
+ * @description discriminator enum property added by openapi-typescript
629
+ * @enum {string}
630
+ */
631
+ type: "DAC";
632
+ id: string;
633
+ label: string;
634
+ };
635
+ UARTChannel: {
636
+ /**
637
+ * @description discriminator enum property added by openapi-typescript
638
+ * @enum {string}
639
+ */
640
+ type: "UART";
641
+ id: string;
642
+ label: string;
643
+ };
644
+ MQTTChannel: {
645
+ /**
646
+ * @description discriminator enum property added by openapi-typescript
647
+ * @enum {string}
648
+ */
649
+ type: "MQTT";
650
+ id: string;
651
+ label: string;
652
+ /** @description Topic this channel publishes to / subscribes on. */
653
+ topic: string;
654
+ };
655
+ LOGChannel: {
656
+ /**
657
+ * @description discriminator enum property added by openapi-typescript
658
+ * @enum {string}
659
+ */
660
+ type: "LOG";
661
+ id: string;
662
+ label: string;
663
+ /**
664
+ * @description Severity for messages written to this channel.
665
+ * @enum {string}
666
+ */
667
+ level: "debug" | "info" | "warn" | "error";
668
+ /** @description Optional category label stamped on each line written to this channel. */
669
+ tag?: string;
670
+ };
671
+ Channel: components["schemas"]["GPIOINChannel"] | components["schemas"]["GPIOOUTChannel"] | components["schemas"]["ADCChannel"] | components["schemas"]["PWMChannel"] | components["schemas"]["DACChannel"] | components["schemas"]["UARTChannel"] | components["schemas"]["MQTTChannel"] | components["schemas"]["LOGChannel"];
672
+ /** @description One .md file that agent nodes can read and write to. */
673
+ MemoryFile: {
674
+ /**
675
+ * @description discriminator enum property added by openapi-typescript
676
+ * @enum {string}
677
+ */
678
+ type: "MemoryFile";
679
+ /** @description Stable identifier that survives renames; referenced from MemoryRef. */
680
+ id: string;
681
+ /** @description Display name. Unique per agent. */
682
+ label: string;
683
+ description: string;
684
+ content: string;
685
+ /** @description Byte cap; null means unlimited. */
686
+ maxSizeBytes?: number | null;
687
+ };
688
+ /** @description A vector database for retrieval-augmented generation (RAG). */
689
+ VectorDatabase: {
690
+ /**
691
+ * @description discriminator enum property added by openapi-typescript
692
+ * @enum {string}
693
+ */
694
+ type: "VectorDatabase";
695
+ /** @description Stable identifier; referenced from Retriever nodes. */
696
+ id: string;
697
+ /** @description Display name. */
698
+ label: string;
699
+ description?: string;
700
+ };
701
+ Memory: components["schemas"]["MemoryFile"] | components["schemas"]["VectorDatabase"];
702
+ /** @enum {string} */
703
+ ModelCapability: "chat" | "embedding" | "function_call" | "vision" | "fine_tuning" | "reasoning" | "classification" | "code";
704
+ /** @description A custom or self-hosted language model that agent nodes can reference. */
705
+ LLMModel: {
706
+ /**
707
+ * @description discriminator enum property added by openapi-typescript
708
+ * @enum {string}
709
+ */
710
+ type: "LLMModel";
711
+ /** @description Stable identifier; this is the ModelID nodes reference. */
712
+ id: string;
713
+ /** @description Display name. */
714
+ label: string;
715
+ /** @description Capabilities this model supports. */
716
+ capabilities: components["schemas"]["ModelCapability"][];
717
+ };
718
+ Model: components["schemas"]["LLMModel"];
719
+ /** @description The deployment format of a workflow project. */
720
+ Workflow: {
721
+ /**
722
+ * Format: int32
723
+ * @description Monotonic version of the persisted workflow format, bumped when the serialized shape changes.
724
+ */
725
+ schemaVersion: number;
726
+ nodes: components["schemas"]["Node"][];
727
+ edges: components["schemas"]["Edge"][];
728
+ functions: components["schemas"]["Function"][];
729
+ declaredVariables: components["schemas"]["Variable"][];
730
+ channels: components["schemas"]["Channel"][];
731
+ memory: components["schemas"]["Memory"][];
732
+ /** @description Declared custom/self-hosted models; referenced from nodes by id. Static catalog models need no declaration. */
733
+ models: components["schemas"]["Model"][];
734
+ };
735
+ };
736
+ responses: never;
737
+ parameters: never;
738
+ requestBodies: never;
739
+ headers: never;
740
+ pathItems: never;
741
+ }
742
+ export type $defs = Record<string, never>;
743
+ export type operations = Record<string, never>;
744
+ //# sourceMappingURL=engine.d.ts.map