@foresthubai/workflow-core 0.3.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 (339) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +14 -0
  3. package/README.md +63 -0
  4. package/dist/api/index.d.ts +7 -0
  5. package/dist/api/index.d.ts.map +1 -0
  6. package/dist/api/index.js +2 -0
  7. package/dist/api/index.js.map +1 -0
  8. package/dist/api/workflow.d.ts +607 -0
  9. package/dist/api/workflow.d.ts.map +1 -0
  10. package/dist/api/workflow.js +6 -0
  11. package/dist/api/workflow.js.map +1 -0
  12. package/dist/channel/Channel.d.ts +10 -0
  13. package/dist/channel/Channel.d.ts.map +1 -0
  14. package/dist/channel/Channel.js +2 -0
  15. package/dist/channel/Channel.js.map +1 -0
  16. package/dist/channel/ChannelDefinition.d.ts +27 -0
  17. package/dist/channel/ChannelDefinition.d.ts.map +1 -0
  18. package/dist/channel/ChannelDefinition.js +50 -0
  19. package/dist/channel/ChannelDefinition.js.map +1 -0
  20. package/dist/channel/index.d.ts +7 -0
  21. package/dist/channel/index.d.ts.map +1 -0
  22. package/dist/channel/index.js +4 -0
  23. package/dist/channel/index.js.map +1 -0
  24. package/dist/channel/serialization.d.ts +17 -0
  25. package/dist/channel/serialization.d.ts.map +1 -0
  26. package/dist/channel/serialization.js +63 -0
  27. package/dist/channel/serialization.js.map +1 -0
  28. package/dist/deploy/index.d.ts +2 -0
  29. package/dist/deploy/index.d.ts.map +1 -0
  30. package/dist/deploy/index.js +2 -0
  31. package/dist/deploy/index.js.map +1 -0
  32. package/dist/deploy/requirements.d.ts +17 -0
  33. package/dist/deploy/requirements.d.ts.map +1 -0
  34. package/dist/deploy/requirements.js +41 -0
  35. package/dist/deploy/requirements.js.map +1 -0
  36. package/dist/diagnostics/__fixtures__/diagnosticFixtures.d.ts +28 -0
  37. package/dist/diagnostics/__fixtures__/diagnosticFixtures.d.ts.map +1 -0
  38. package/dist/diagnostics/__fixtures__/diagnosticFixtures.js +125 -0
  39. package/dist/diagnostics/__fixtures__/diagnosticFixtures.js.map +1 -0
  40. package/dist/diagnostics/diagnostics.d.ts +128 -0
  41. package/dist/diagnostics/diagnostics.d.ts.map +1 -0
  42. package/dist/diagnostics/diagnostics.js +783 -0
  43. package/dist/diagnostics/diagnostics.js.map +1 -0
  44. package/dist/diagnostics/index.d.ts +3 -0
  45. package/dist/diagnostics/index.d.ts.map +1 -0
  46. package/dist/diagnostics/index.js +2 -0
  47. package/dist/diagnostics/index.js.map +1 -0
  48. package/dist/edge/Edge.d.ts +22 -0
  49. package/dist/edge/Edge.d.ts.map +1 -0
  50. package/dist/edge/Edge.js +2 -0
  51. package/dist/edge/Edge.js.map +1 -0
  52. package/dist/edge/EdgeDefinition.d.ts +10 -0
  53. package/dist/edge/EdgeDefinition.d.ts.map +1 -0
  54. package/dist/edge/EdgeDefinition.js +36 -0
  55. package/dist/edge/EdgeDefinition.js.map +1 -0
  56. package/dist/edge/EdgeType.d.ts +6 -0
  57. package/dist/edge/EdgeType.d.ts.map +1 -0
  58. package/dist/edge/EdgeType.js +7 -0
  59. package/dist/edge/EdgeType.js.map +1 -0
  60. package/dist/edge/index.d.ts +6 -0
  61. package/dist/edge/index.d.ts.map +1 -0
  62. package/dist/edge/index.js +6 -0
  63. package/dist/edge/index.js.map +1 -0
  64. package/dist/edge/serialization.d.ts +18 -0
  65. package/dist/edge/serialization.d.ts.map +1 -0
  66. package/dist/edge/serialization.js +76 -0
  67. package/dist/edge/serialization.js.map +1 -0
  68. package/dist/expression/index.d.ts +5 -0
  69. package/dist/expression/index.d.ts.map +1 -0
  70. package/dist/expression/index.js +3 -0
  71. package/dist/expression/index.js.map +1 -0
  72. package/dist/expression/parser.d.ts +14 -0
  73. package/dist/expression/parser.d.ts.map +1 -0
  74. package/dist/expression/parser.js +309 -0
  75. package/dist/expression/parser.js.map +1 -0
  76. package/dist/expression/types.d.ts +11 -0
  77. package/dist/expression/types.d.ts.map +1 -0
  78. package/dist/expression/types.js +20 -0
  79. package/dist/expression/types.js.map +1 -0
  80. package/dist/function/FunctionDeclaration.d.ts +43 -0
  81. package/dist/function/FunctionDeclaration.d.ts.map +1 -0
  82. package/dist/function/FunctionDeclaration.js +17 -0
  83. package/dist/function/FunctionDeclaration.js.map +1 -0
  84. package/dist/function/index.d.ts +4 -0
  85. package/dist/function/index.d.ts.map +1 -0
  86. package/dist/function/index.js +3 -0
  87. package/dist/function/index.js.map +1 -0
  88. package/dist/function/serialization.d.ts +20 -0
  89. package/dist/function/serialization.d.ts.map +1 -0
  90. package/dist/function/serialization.js +26 -0
  91. package/dist/function/serialization.js.map +1 -0
  92. package/dist/id/index.d.ts +7 -0
  93. package/dist/id/index.d.ts.map +1 -0
  94. package/dist/id/index.js +9 -0
  95. package/dist/id/index.js.map +1 -0
  96. package/dist/index.d.ts +11 -0
  97. package/dist/index.d.ts.map +1 -0
  98. package/dist/index.js +14 -0
  99. package/dist/index.js.map +1 -0
  100. package/dist/memory/Memory.d.ts +12 -0
  101. package/dist/memory/Memory.d.ts.map +1 -0
  102. package/dist/memory/Memory.js +2 -0
  103. package/dist/memory/Memory.js.map +1 -0
  104. package/dist/memory/MemoryDefinition.d.ts +16 -0
  105. package/dist/memory/MemoryDefinition.d.ts.map +1 -0
  106. package/dist/memory/MemoryDefinition.js +2 -0
  107. package/dist/memory/MemoryDefinition.js.map +1 -0
  108. package/dist/memory/MemoryFileDefinition.d.ts +8 -0
  109. package/dist/memory/MemoryFileDefinition.d.ts.map +1 -0
  110. package/dist/memory/MemoryFileDefinition.js +36 -0
  111. package/dist/memory/MemoryFileDefinition.js.map +1 -0
  112. package/dist/memory/MemoryRegistry.d.ts +17 -0
  113. package/dist/memory/MemoryRegistry.d.ts.map +1 -0
  114. package/dist/memory/MemoryRegistry.js +29 -0
  115. package/dist/memory/MemoryRegistry.js.map +1 -0
  116. package/dist/memory/VectorDatabaseDefinition.d.ts +7 -0
  117. package/dist/memory/VectorDatabaseDefinition.d.ts.map +1 -0
  118. package/dist/memory/VectorDatabaseDefinition.js +20 -0
  119. package/dist/memory/VectorDatabaseDefinition.js.map +1 -0
  120. package/dist/memory/index.d.ts +9 -0
  121. package/dist/memory/index.d.ts.map +1 -0
  122. package/dist/memory/index.js +6 -0
  123. package/dist/memory/index.js.map +1 -0
  124. package/dist/memory/serialization.d.ts +11 -0
  125. package/dist/memory/serialization.d.ts.map +1 -0
  126. package/dist/memory/serialization.js +44 -0
  127. package/dist/memory/serialization.js.map +1 -0
  128. package/dist/migration/index.d.ts +5 -0
  129. package/dist/migration/index.d.ts.map +1 -0
  130. package/dist/migration/index.js +4 -0
  131. package/dist/migration/index.js.map +1 -0
  132. package/dist/migration/migrate.d.ts +11 -0
  133. package/dist/migration/migrate.d.ts.map +1 -0
  134. package/dist/migration/migrate.js +52 -0
  135. package/dist/migration/migrate.js.map +1 -0
  136. package/dist/migration/migrations.d.ts +22 -0
  137. package/dist/migration/migrations.d.ts.map +1 -0
  138. package/dist/migration/migrations.js +10 -0
  139. package/dist/migration/migrations.js.map +1 -0
  140. package/dist/migration/version.d.ts +9 -0
  141. package/dist/migration/version.d.ts.map +1 -0
  142. package/dist/migration/version.js +9 -0
  143. package/dist/migration/version.js.map +1 -0
  144. package/dist/model/LLMModelDefinition.d.ts +7 -0
  145. package/dist/model/LLMModelDefinition.d.ts.map +1 -0
  146. package/dist/model/LLMModelDefinition.js +11 -0
  147. package/dist/model/LLMModelDefinition.js.map +1 -0
  148. package/dist/model/Model.d.ts +21 -0
  149. package/dist/model/Model.d.ts.map +1 -0
  150. package/dist/model/Model.js +15 -0
  151. package/dist/model/Model.js.map +1 -0
  152. package/dist/model/ModelDefinition.d.ts +15 -0
  153. package/dist/model/ModelDefinition.d.ts.map +1 -0
  154. package/dist/model/ModelDefinition.js +2 -0
  155. package/dist/model/ModelDefinition.js.map +1 -0
  156. package/dist/model/ModelRegistry.d.ts +17 -0
  157. package/dist/model/ModelRegistry.d.ts.map +1 -0
  158. package/dist/model/ModelRegistry.js +27 -0
  159. package/dist/model/ModelRegistry.js.map +1 -0
  160. package/dist/model/index.d.ts +8 -0
  161. package/dist/model/index.d.ts.map +1 -0
  162. package/dist/model/index.js +5 -0
  163. package/dist/model/index.js.map +1 -0
  164. package/dist/model/serialization.d.ts +8 -0
  165. package/dist/model/serialization.d.ts.map +1 -0
  166. package/dist/model/serialization.js +25 -0
  167. package/dist/model/serialization.js.map +1 -0
  168. package/dist/node/AgentNode.d.ts +21 -0
  169. package/dist/node/AgentNode.d.ts.map +1 -0
  170. package/dist/node/AgentNode.js +60 -0
  171. package/dist/node/AgentNode.js.map +1 -0
  172. package/dist/node/DataNode.d.ts +14 -0
  173. package/dist/node/DataNode.d.ts.map +1 -0
  174. package/dist/node/DataNode.js +26 -0
  175. package/dist/node/DataNode.js.map +1 -0
  176. package/dist/node/FunctionNode.d.ts +24 -0
  177. package/dist/node/FunctionNode.d.ts.map +1 -0
  178. package/dist/node/FunctionNode.js +44 -0
  179. package/dist/node/FunctionNode.js.map +1 -0
  180. package/dist/node/InputNode.d.ts +46 -0
  181. package/dist/node/InputNode.d.ts.map +1 -0
  182. package/dist/node/InputNode.js +133 -0
  183. package/dist/node/InputNode.js.map +1 -0
  184. package/dist/node/LogicNode.d.ts +13 -0
  185. package/dist/node/LogicNode.d.ts.map +1 -0
  186. package/dist/node/LogicNode.js +19 -0
  187. package/dist/node/LogicNode.js.map +1 -0
  188. package/dist/node/MqttNode.d.ts +27 -0
  189. package/dist/node/MqttNode.d.ts.map +1 -0
  190. package/dist/node/MqttNode.js +96 -0
  191. package/dist/node/MqttNode.js.map +1 -0
  192. package/dist/node/Node.d.ts +49 -0
  193. package/dist/node/Node.d.ts.map +1 -0
  194. package/dist/node/Node.js +9 -0
  195. package/dist/node/Node.js.map +1 -0
  196. package/dist/node/NodeDefinition.d.ts +30 -0
  197. package/dist/node/NodeDefinition.d.ts.map +1 -0
  198. package/dist/node/NodeDefinition.js +2 -0
  199. package/dist/node/NodeDefinition.js.map +1 -0
  200. package/dist/node/NodeRegistry.d.ts +19 -0
  201. package/dist/node/NodeRegistry.d.ts.map +1 -0
  202. package/dist/node/NodeRegistry.js +65 -0
  203. package/dist/node/NodeRegistry.js.map +1 -0
  204. package/dist/node/OutputNode.d.ts +23 -0
  205. package/dist/node/OutputNode.d.ts.map +1 -0
  206. package/dist/node/OutputNode.js +62 -0
  207. package/dist/node/OutputNode.js.map +1 -0
  208. package/dist/node/ToolNode.d.ts +12 -0
  209. package/dist/node/ToolNode.d.ts.map +1 -0
  210. package/dist/node/ToolNode.js +18 -0
  211. package/dist/node/ToolNode.js.map +1 -0
  212. package/dist/node/TriggerNode.d.ts +67 -0
  213. package/dist/node/TriggerNode.d.ts.map +1 -0
  214. package/dist/node/TriggerNode.js +172 -0
  215. package/dist/node/TriggerNode.js.map +1 -0
  216. package/dist/node/constants.d.ts +16 -0
  217. package/dist/node/constants.d.ts.map +1 -0
  218. package/dist/node/constants.js +18 -0
  219. package/dist/node/constants.js.map +1 -0
  220. package/dist/node/index.d.ts +12 -0
  221. package/dist/node/index.d.ts.map +1 -0
  222. package/dist/node/index.js +9 -0
  223. package/dist/node/index.js.map +1 -0
  224. package/dist/node/methods.d.ts +73 -0
  225. package/dist/node/methods.d.ts.map +1 -0
  226. package/dist/node/methods.js +261 -0
  227. package/dist/node/methods.js.map +1 -0
  228. package/dist/node/serialization.d.ts +25 -0
  229. package/dist/node/serialization.d.ts.map +1 -0
  230. package/dist/node/serialization.js +525 -0
  231. package/dist/node/serialization.js.map +1 -0
  232. package/dist/parameter/OutputParameter.d.ts +69 -0
  233. package/dist/parameter/OutputParameter.d.ts.map +1 -0
  234. package/dist/parameter/OutputParameter.js +6 -0
  235. package/dist/parameter/OutputParameter.js.map +1 -0
  236. package/dist/parameter/Parameter.d.ts +152 -0
  237. package/dist/parameter/Parameter.d.ts.map +1 -0
  238. package/dist/parameter/Parameter.js +86 -0
  239. package/dist/parameter/Parameter.js.map +1 -0
  240. package/dist/parameter/index.d.ts +5 -0
  241. package/dist/parameter/index.d.ts.map +1 -0
  242. package/dist/parameter/index.js +3 -0
  243. package/dist/parameter/index.js.map +1 -0
  244. package/dist/variable/Variable.d.ts +25 -0
  245. package/dist/variable/Variable.d.ts.map +1 -0
  246. package/dist/variable/Variable.js +2 -0
  247. package/dist/variable/Variable.js.map +1 -0
  248. package/dist/variable/index.d.ts +3 -0
  249. package/dist/variable/index.d.ts.map +1 -0
  250. package/dist/variable/index.js +5 -0
  251. package/dist/variable/index.js.map +1 -0
  252. package/dist/variable/operations.d.ts +37 -0
  253. package/dist/variable/operations.d.ts.map +1 -0
  254. package/dist/variable/operations.js +88 -0
  255. package/dist/variable/operations.js.map +1 -0
  256. package/dist/workflow/Workflow.d.ts +38 -0
  257. package/dist/workflow/Workflow.d.ts.map +1 -0
  258. package/dist/workflow/Workflow.js +8 -0
  259. package/dist/workflow/Workflow.js.map +1 -0
  260. package/dist/workflow/index.d.ts +4 -0
  261. package/dist/workflow/index.d.ts.map +1 -0
  262. package/dist/workflow/index.js +3 -0
  263. package/dist/workflow/index.js.map +1 -0
  264. package/dist/workflow/serialization.d.ts +43 -0
  265. package/dist/workflow/serialization.d.ts.map +1 -0
  266. package/dist/workflow/serialization.js +215 -0
  267. package/dist/workflow/serialization.js.map +1 -0
  268. package/package.json +105 -0
  269. package/src/api/index.ts +11 -0
  270. package/src/api/workflow.ts +607 -0
  271. package/src/channel/Channel.ts +11 -0
  272. package/src/channel/ChannelDefinition.ts +76 -0
  273. package/src/channel/index.ts +6 -0
  274. package/src/channel/serialization.ts +68 -0
  275. package/src/deploy/index.ts +1 -0
  276. package/src/deploy/requirements.test.ts +61 -0
  277. package/src/deploy/requirements.ts +41 -0
  278. package/src/diagnostics/__fixtures__/diagnosticFixtures.ts +158 -0
  279. package/src/diagnostics/diagnostics.test.ts +878 -0
  280. package/src/diagnostics/diagnostics.ts +936 -0
  281. package/src/diagnostics/index.ts +11 -0
  282. package/src/edge/Edge.ts +23 -0
  283. package/src/edge/EdgeDefinition.ts +45 -0
  284. package/src/edge/EdgeType.ts +19 -0
  285. package/src/edge/index.ts +8 -0
  286. package/src/edge/serialization.ts +83 -0
  287. package/src/expression/index.ts +4 -0
  288. package/src/expression/parser.ts +362 -0
  289. package/src/expression/types.ts +30 -0
  290. package/src/function/FunctionDeclaration.ts +54 -0
  291. package/src/function/index.ts +3 -0
  292. package/src/function/serialization.ts +40 -0
  293. package/src/globals.d.ts +9 -0
  294. package/src/id/index.ts +8 -0
  295. package/src/index.ts +22 -0
  296. package/src/memory/Memory.ts +15 -0
  297. package/src/memory/MemoryDefinition.ts +16 -0
  298. package/src/memory/MemoryFileDefinition.ts +37 -0
  299. package/src/memory/MemoryRegistry.ts +35 -0
  300. package/src/memory/VectorDatabaseDefinition.ts +21 -0
  301. package/src/memory/index.ts +8 -0
  302. package/src/memory/serialization.ts +47 -0
  303. package/src/migration/index.ts +4 -0
  304. package/src/migration/migrate.test.ts +44 -0
  305. package/src/migration/migrate.ts +58 -0
  306. package/src/migration/migrations.ts +24 -0
  307. package/src/migration/version.ts +9 -0
  308. package/src/model/LLMModelDefinition.ts +12 -0
  309. package/src/model/Model.ts +39 -0
  310. package/src/model/ModelDefinition.ts +15 -0
  311. package/src/model/ModelRegistry.ts +33 -0
  312. package/src/model/index.ts +7 -0
  313. package/src/model/serialization.ts +30 -0
  314. package/src/node/AgentNode.ts +82 -0
  315. package/src/node/DataNode.ts +41 -0
  316. package/src/node/FunctionNode.ts +76 -0
  317. package/src/node/InputNode.ts +185 -0
  318. package/src/node/LogicNode.ts +33 -0
  319. package/src/node/MqttNode.ts +127 -0
  320. package/src/node/Node.ts +61 -0
  321. package/src/node/NodeDefinition.ts +37 -0
  322. package/src/node/NodeRegistry.ts +85 -0
  323. package/src/node/OutputNode.ts +87 -0
  324. package/src/node/ToolNode.ts +32 -0
  325. package/src/node/TriggerNode.ts +272 -0
  326. package/src/node/constants.ts +16 -0
  327. package/src/node/index.ts +26 -0
  328. package/src/node/methods.ts +278 -0
  329. package/src/node/serialization.ts +544 -0
  330. package/src/parameter/OutputParameter.ts +68 -0
  331. package/src/parameter/Parameter.ts +243 -0
  332. package/src/parameter/index.ts +33 -0
  333. package/src/variable/Variable.ts +10 -0
  334. package/src/variable/index.ts +16 -0
  335. package/src/variable/operations.ts +106 -0
  336. package/src/workflow/Workflow.ts +41 -0
  337. package/src/workflow/index.ts +3 -0
  338. package/src/workflow/serialization.test.ts +240 -0
  339. package/src/workflow/serialization.ts +242 -0
@@ -0,0 +1,525 @@
1
+ import { pruneArguments } from "../parameter";
2
+ import { NodeRegistry } from "./NodeRegistry";
3
+ /**
4
+ * Serialize a domain Node to the strict API format (Schemas["Node"]).
5
+ * Strips hidden parameters (those whose activationRules are not met). The
6
+ * `isToolInput` flag is threaded into activation evaluation so rules like
7
+ * `isControlFlow` / `isToolInput` resolve correctly per-instance.
8
+ */
9
+ export function serialize(node, isToolInput) {
10
+ const result = serializeNodeData(node, node.position, isToolInput);
11
+ if (node.label) {
12
+ result.label = node.label;
13
+ }
14
+ // serializeNode emits gated/optional params uniformly; this pass prunes the
15
+ // ones that must not reach the api — inactive for this instance, or empty
16
+ // optionals (so the consumer's presence check sees absent, not `""`/`null`).
17
+ // FunctionCall gates its own params inline (its bindings have a different api
18
+ // shape), so it's excluded here.
19
+ if ("arguments" in result && result.arguments) {
20
+ const def = node.type !== "FunctionCall" ? NodeRegistry.getByType(node.type) : undefined;
21
+ if (def) {
22
+ pruneArguments(result.arguments, def.parameters, isToolInput);
23
+ }
24
+ }
25
+ return result;
26
+ }
27
+ function serializeNodeData(data, position, isToolInput) {
28
+ switch (data.type) {
29
+ case "ReadPin":
30
+ return {
31
+ id: data.id,
32
+ type: data.type,
33
+ position: position,
34
+ arguments: {
35
+ pinReference: data.arguments.pinReference,
36
+ signalType: data.arguments.signalType,
37
+ output: data.arguments.output,
38
+ toolDescription: data.arguments.toolDescription,
39
+ },
40
+ };
41
+ case "SerialRead":
42
+ return {
43
+ id: data.id,
44
+ type: data.type,
45
+ position: position,
46
+ arguments: {
47
+ portReference: data.arguments.portReference,
48
+ ...(data.arguments.prompt !== undefined ? { prompt: data.arguments.prompt } : {}),
49
+ output: data.arguments.output,
50
+ },
51
+ };
52
+ case "WritePin":
53
+ return {
54
+ id: data.id,
55
+ type: data.type,
56
+ position: position,
57
+ arguments: {
58
+ pinReference: data.arguments.pinReference,
59
+ signalType: data.arguments.signalType,
60
+ value: data.arguments.value,
61
+ },
62
+ };
63
+ case "SerialWrite":
64
+ return {
65
+ id: data.id,
66
+ type: data.type,
67
+ position: position,
68
+ arguments: {
69
+ portReference: data.arguments.portReference,
70
+ value: data.arguments.value,
71
+ },
72
+ };
73
+ case "Agent": {
74
+ // outputDeclarations is a list both in domain and API. Each entry's `name`
75
+ // is the JSON property the LLM is asked to produce; uniqueness is enforced
76
+ // by diagnostics, not the schema. memoryRefs is also a 1:1 list — domain
77
+ // and API share the same MemoryRef shape.
78
+ return {
79
+ id: data.id,
80
+ type: data.type,
81
+ position: position,
82
+ arguments: {
83
+ name: data.arguments.name,
84
+ model: data.arguments.model,
85
+ instructions: data.arguments.instructions,
86
+ maxTurns: data.arguments.maxTurns,
87
+ outputDeclarations: data.arguments.outputDeclarations,
88
+ memoryRefs: data.arguments.memoryRefs ?? [],
89
+ answer: data.arguments.answer,
90
+ toolDescription: data.arguments.toolDescription,
91
+ },
92
+ };
93
+ }
94
+ case "If":
95
+ return {
96
+ id: data.id,
97
+ type: data.type,
98
+ position: position,
99
+ arguments: {
100
+ condition: data.arguments.condition,
101
+ },
102
+ };
103
+ case "OnFunctionCall":
104
+ return {
105
+ id: data.id,
106
+ type: data.type,
107
+ position: position,
108
+ };
109
+ case "OnStartup":
110
+ return {
111
+ id: data.id,
112
+ type: data.type,
113
+ position: position,
114
+ };
115
+ case "OnPinEdge":
116
+ return {
117
+ id: data.id,
118
+ type: data.type,
119
+ position: position,
120
+ arguments: {
121
+ pinReference: data.arguments.pinReference,
122
+ edge: data.arguments.edge,
123
+ },
124
+ };
125
+ case "OnSerialReceive":
126
+ return {
127
+ id: data.id,
128
+ type: data.type,
129
+ position: position,
130
+ arguments: {
131
+ portReference: data.arguments.portReference,
132
+ output: data.arguments.output,
133
+ },
134
+ };
135
+ case "OnThreshold":
136
+ return {
137
+ id: data.id,
138
+ type: data.type,
139
+ position: position,
140
+ arguments: {
141
+ variable: data.arguments.variable,
142
+ threshold: data.arguments.threshold,
143
+ direction: data.arguments.direction,
144
+ deadband: data.arguments.deadband,
145
+ output: data.arguments.output,
146
+ },
147
+ };
148
+ case "Delay":
149
+ return {
150
+ id: data.id,
151
+ type: data.type,
152
+ position: position,
153
+ arguments: {
154
+ delayMs: data.arguments.delayMs,
155
+ },
156
+ };
157
+ case "Ticker":
158
+ return {
159
+ id: data.id,
160
+ type: data.type,
161
+ position: position,
162
+ arguments: {
163
+ intervalValue: data.arguments.intervalValue,
164
+ intervalUnit: data.arguments.intervalUnit,
165
+ },
166
+ };
167
+ case "Alarm":
168
+ return {
169
+ id: data.id,
170
+ type: data.type,
171
+ position: position,
172
+ arguments: {
173
+ time: data.arguments.time,
174
+ days: data.arguments.days,
175
+ },
176
+ };
177
+ case "WebSearchTool":
178
+ return {
179
+ id: data.id,
180
+ type: data.type,
181
+ position: position,
182
+ arguments: {
183
+ maxResults: data.arguments.maxResults,
184
+ },
185
+ };
186
+ case "Retriever":
187
+ return {
188
+ id: data.id,
189
+ type: data.type,
190
+ position: position,
191
+ arguments: {
192
+ memoryReference: data.arguments.memoryReference,
193
+ topK: data.arguments.topK,
194
+ query: data.arguments.query,
195
+ output: data.arguments.output,
196
+ toolDescription: data.arguments.toolDescription,
197
+ },
198
+ };
199
+ case "WebFetch":
200
+ return {
201
+ id: data.id,
202
+ type: data.type,
203
+ position: position,
204
+ arguments: {
205
+ url: data.arguments.url,
206
+ maxChars: data.arguments.maxChars,
207
+ output: data.arguments.output,
208
+ },
209
+ };
210
+ case "FunctionCall": {
211
+ // Frontend stores FunctionCall args flat (unified with every other node), but
212
+ // the API schema keeps the nested { inputBindings, outputBindings } shape.
213
+ // Translate here so the api format stays stable. `toolDescription` sits
214
+ // alongside the bindings at the api level and is only emitted when the
215
+ // node is currently wired as a tool (exec-mode calls don't need it).
216
+ const inputBindings = {};
217
+ const outputBindings = {};
218
+ const args = data.arguments;
219
+ for (const arg of data.functionInfo.arguments) {
220
+ const key = arg.uid ?? arg.name;
221
+ const v = args[key];
222
+ if (v !== undefined)
223
+ inputBindings[key] = v;
224
+ }
225
+ for (const ret of data.functionInfo.returns) {
226
+ const key = ret.uid ?? ret.name;
227
+ const v = args[key];
228
+ if (v !== undefined)
229
+ outputBindings[key] = v;
230
+ }
231
+ const toolDescription = args.toolDescription;
232
+ return {
233
+ id: data.id,
234
+ type: data.type,
235
+ functionId: data.functionInfo.id,
236
+ position: position,
237
+ arguments: {
238
+ inputBindings,
239
+ outputBindings,
240
+ ...(isToolInput && toolDescription !== undefined ? { toolDescription } : {}),
241
+ },
242
+ };
243
+ }
244
+ case "SetVariable":
245
+ return {
246
+ id: data.id,
247
+ type: data.type,
248
+ position: position,
249
+ arguments: {
250
+ variable: data.arguments.variable,
251
+ value: data.arguments.value,
252
+ },
253
+ };
254
+ case "MqttPublish":
255
+ return {
256
+ id: data.id,
257
+ type: data.type,
258
+ position: position,
259
+ arguments: {
260
+ channelReference: data.arguments.channelReference ?? "",
261
+ dataType: data.arguments.dataType,
262
+ value: data.arguments.value,
263
+ qos: Number(data.arguments.qos),
264
+ retain: data.arguments.retain,
265
+ },
266
+ };
267
+ case "OnMqttMessage":
268
+ return {
269
+ id: data.id,
270
+ type: data.type,
271
+ position: position,
272
+ arguments: {
273
+ channelReference: data.arguments.channelReference ?? "",
274
+ dataType: data.arguments.dataType,
275
+ output: data.arguments.output,
276
+ },
277
+ };
278
+ }
279
+ }
280
+ /**
281
+ * Convert a strict API Node to a domain Node (NodeData + position). `resolveFunctionInfo`
282
+ * is required only for `FunctionCall` nodes — see {@link ResolveFunctionInfo}.
283
+ */
284
+ export function deserialize(apiNode, resolveFunctionInfo) {
285
+ return { ...deserializeNodeData(apiNode, resolveFunctionInfo), position: apiNode.position };
286
+ }
287
+ /** Build the NodeData payload from an API Node (no position). */
288
+ function deserializeNodeData(apiNode, resolveFunctionInfo) {
289
+ switch (apiNode.type) {
290
+ case "ReadPin":
291
+ return {
292
+ id: apiNode.id,
293
+ type: apiNode.type,
294
+ label: apiNode.label,
295
+ arguments: {
296
+ pinReference: apiNode.arguments.pinReference ?? "",
297
+ signalType: apiNode.arguments.signalType,
298
+ output: apiNode.arguments.output,
299
+ toolDescription: apiNode.arguments.toolDescription,
300
+ },
301
+ };
302
+ case "SerialRead":
303
+ return {
304
+ id: apiNode.id,
305
+ type: apiNode.type,
306
+ label: apiNode.label,
307
+ arguments: {
308
+ portReference: apiNode.arguments.portReference ?? "",
309
+ prompt: apiNode.arguments.prompt ?? "",
310
+ output: apiNode.arguments.output,
311
+ },
312
+ };
313
+ case "Retriever":
314
+ return {
315
+ id: apiNode.id,
316
+ type: apiNode.type,
317
+ label: apiNode.label,
318
+ arguments: {
319
+ memoryReference: apiNode.arguments.memoryReference ?? "",
320
+ topK: apiNode.arguments.topK ?? 0,
321
+ query: apiNode.arguments.query,
322
+ output: apiNode.arguments.output,
323
+ toolDescription: apiNode.arguments.toolDescription,
324
+ },
325
+ };
326
+ case "WritePin":
327
+ return {
328
+ id: apiNode.id,
329
+ type: apiNode.type,
330
+ label: apiNode.label,
331
+ arguments: {
332
+ pinReference: apiNode.arguments.pinReference ?? "",
333
+ signalType: apiNode.arguments.signalType,
334
+ value: apiNode.arguments.value,
335
+ },
336
+ };
337
+ case "SerialWrite":
338
+ return {
339
+ id: apiNode.id,
340
+ type: apiNode.type,
341
+ label: apiNode.label,
342
+ arguments: {
343
+ portReference: apiNode.arguments.portReference ?? "",
344
+ value: apiNode.arguments.value,
345
+ },
346
+ };
347
+ case "Agent":
348
+ return {
349
+ id: apiNode.id,
350
+ type: apiNode.type,
351
+ label: apiNode.label,
352
+ arguments: {
353
+ name: apiNode.arguments.name ?? "",
354
+ model: apiNode.arguments.model ?? "",
355
+ instructions: apiNode.arguments.instructions ?? "",
356
+ maxTurns: apiNode.arguments.maxTurns,
357
+ outputDeclarations: apiNode.arguments.outputDeclarations,
358
+ memoryRefs: apiNode.arguments.memoryRefs ?? [],
359
+ answer: apiNode.arguments.answer,
360
+ toolDescription: apiNode.arguments.toolDescription,
361
+ },
362
+ };
363
+ case "If":
364
+ return {
365
+ id: apiNode.id,
366
+ type: apiNode.type,
367
+ label: apiNode.label,
368
+ arguments: {
369
+ condition: apiNode.arguments.condition,
370
+ },
371
+ };
372
+ case "OnFunctionCall":
373
+ return { id: apiNode.id, type: apiNode.type, label: apiNode.label, arguments: {} };
374
+ case "OnStartup":
375
+ return { id: apiNode.id, type: apiNode.type, label: apiNode.label, arguments: {} };
376
+ case "OnPinEdge":
377
+ return {
378
+ id: apiNode.id,
379
+ type: apiNode.type,
380
+ label: apiNode.label,
381
+ arguments: {
382
+ pinReference: apiNode.arguments.pinReference ?? "",
383
+ edge: apiNode.arguments.edge,
384
+ },
385
+ };
386
+ case "OnSerialReceive":
387
+ return {
388
+ id: apiNode.id,
389
+ type: apiNode.type,
390
+ label: apiNode.label,
391
+ arguments: {
392
+ portReference: apiNode.arguments.portReference ?? "",
393
+ output: apiNode.arguments.output,
394
+ },
395
+ };
396
+ case "OnThreshold":
397
+ return {
398
+ id: apiNode.id,
399
+ type: apiNode.type,
400
+ label: apiNode.label,
401
+ arguments: {
402
+ variable: apiNode.arguments.variable,
403
+ threshold: apiNode.arguments.threshold,
404
+ direction: apiNode.arguments.direction,
405
+ deadband: apiNode.arguments.deadband,
406
+ output: apiNode.arguments.output,
407
+ },
408
+ };
409
+ case "Delay":
410
+ return {
411
+ id: apiNode.id,
412
+ type: apiNode.type,
413
+ label: apiNode.label,
414
+ arguments: {
415
+ delayMs: apiNode.arguments.delayMs ?? 0,
416
+ },
417
+ };
418
+ case "Ticker":
419
+ return {
420
+ id: apiNode.id,
421
+ type: apiNode.type,
422
+ label: apiNode.label,
423
+ arguments: {
424
+ intervalValue: apiNode.arguments.intervalValue ?? 0,
425
+ intervalUnit: apiNode.arguments.intervalUnit,
426
+ },
427
+ };
428
+ case "Alarm":
429
+ return {
430
+ id: apiNode.id,
431
+ type: apiNode.type,
432
+ label: apiNode.label,
433
+ arguments: {
434
+ time: apiNode.arguments.time ?? "",
435
+ days: apiNode.arguments.days,
436
+ },
437
+ };
438
+ case "WebSearchTool":
439
+ return {
440
+ id: apiNode.id,
441
+ type: apiNode.type,
442
+ label: apiNode.label,
443
+ arguments: {
444
+ maxResults: apiNode.arguments.maxResults,
445
+ },
446
+ };
447
+ case "WebFetch":
448
+ return {
449
+ id: apiNode.id,
450
+ type: apiNode.type,
451
+ label: apiNode.label,
452
+ arguments: {
453
+ url: apiNode.arguments.url,
454
+ maxChars: apiNode.arguments.maxChars,
455
+ output: apiNode.arguments.output,
456
+ },
457
+ };
458
+ case "SetVariable":
459
+ return {
460
+ id: apiNode.id,
461
+ type: apiNode.type,
462
+ label: apiNode.label,
463
+ arguments: {
464
+ variable: apiNode.arguments.variable,
465
+ value: apiNode.arguments.value,
466
+ },
467
+ };
468
+ case "FunctionCall": {
469
+ // Lift the api's nested { inputBindings, outputBindings } into the flat
470
+ // domain arguments record. Uid collisions are impossible within a single
471
+ // function (one namespace across args + returns). `toolDescription`
472
+ // sits at the same level in the api and is folded into the flat bag
473
+ // under the reserved `toolDescription` key.
474
+ const flat = {
475
+ ...(apiNode.arguments.inputBindings ?? {}),
476
+ ...(apiNode.arguments.outputBindings ?? {}),
477
+ };
478
+ if (apiNode.arguments.toolDescription !== undefined) {
479
+ flat.toolDescription = apiNode.arguments.toolDescription;
480
+ }
481
+ // The wire carries only `functionId`; rebuild the in-memory signature snapshot
482
+ // from the workflow's function table. A missing function (deleted/hand-edited)
483
+ // gets a minimal stub so the node still loads and surfaces as deleted.
484
+ const functionInfo = resolveFunctionInfo?.(apiNode.functionId) ?? {
485
+ id: apiNode.functionId,
486
+ version: 0,
487
+ name: "",
488
+ arguments: [],
489
+ returns: [],
490
+ };
491
+ return {
492
+ id: apiNode.id,
493
+ type: apiNode.type,
494
+ label: apiNode.label,
495
+ functionInfo,
496
+ arguments: flat,
497
+ };
498
+ }
499
+ case "MqttPublish":
500
+ return {
501
+ id: apiNode.id,
502
+ type: apiNode.type,
503
+ label: apiNode.label,
504
+ arguments: {
505
+ channelReference: apiNode.arguments.channelReference ?? "",
506
+ dataType: apiNode.arguments.dataType,
507
+ value: apiNode.arguments.value,
508
+ qos: String(apiNode.arguments.qos),
509
+ retain: apiNode.arguments.retain,
510
+ },
511
+ };
512
+ case "OnMqttMessage":
513
+ return {
514
+ id: apiNode.id,
515
+ type: apiNode.type,
516
+ label: apiNode.label,
517
+ arguments: {
518
+ channelReference: apiNode.arguments.channelReference ?? "",
519
+ dataType: apiNode.arguments.dataType,
520
+ output: apiNode.arguments.output,
521
+ },
522
+ };
523
+ }
524
+ }
525
+ //# sourceMappingURL=serialization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../src/node/serialization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import type { Reference } from "../api";
2
+ import { DataType, FromArgs } from "./Parameter";
3
+ /**
4
+ * Runtime binding stored for a static output. `active=false` means the output
5
+ * is discarded — no variable is produced or assigned. mode/name/target are kept
6
+ * as draft state when inactive so the row can round-trip through an off→on
7
+ * toggle without losing the user's prior choice. The slot's dataType comes from
8
+ * the StaticOutput definition — not carried here.
9
+ */
10
+ export type OutputBinding = {
11
+ active: boolean;
12
+ mode: "emit";
13
+ name: string;
14
+ } | {
15
+ active: boolean;
16
+ mode: "assign";
17
+ target: Reference;
18
+ };
19
+ /**
20
+ * Runtime entry stored in a list output. Each entry is a user-authored
21
+ * output declaration: either a new variable (emit) with its own uid/name/dataType,
22
+ * or a routing to an existing variable (assign). `name` doubles as the JSON
23
+ * property name in the LLM's structured response and (for emit) the new
24
+ * variable's display name in canvas scope; it must be non-empty and unique
25
+ * within the OutputList parameter (validated by diagnostics).
26
+ *
27
+ * Unlike OutputBinding, the slot's dataType is carried on the declaration
28
+ * itself as a contract — staleness against the target (assign mode) is a
29
+ * diagnostic, not a silent retype. No "discard" mode: removing the entry is
30
+ * how you discard it.
31
+ */
32
+ export type OutputDeclaration = {
33
+ mode: "emit";
34
+ uid: string;
35
+ name: string;
36
+ dataType: DataType;
37
+ } | {
38
+ mode: "assign";
39
+ name: string;
40
+ dataType: DataType;
41
+ target: Reference;
42
+ };
43
+ /**
44
+ * A fixed output produced by every instance of this node type. The `id` is
45
+ * both the field name inside `node.arguments` where the OutputBinding lives
46
+ * and the default emit variable name (overridable via the binding's `name`).
47
+ * The dataType may be static or an args-derived lambda.
48
+ */
49
+ export interface StaticOutput {
50
+ id: string;
51
+ label: string;
52
+ type: "static";
53
+ dataType: FromArgs<DataType>;
54
+ }
55
+ /** Resolve a StaticOutput's dataType for the current node arguments. */
56
+ export declare function resolveStaticOutputDataType(output: StaticOutput, args: Record<string, unknown>): DataType;
57
+ /**
58
+ * A user-managed list of outputs. Entries live in `node.arguments[id]` as
59
+ * `OutputDeclaration[]` — the UI CRUDs the list directly, and each entry
60
+ * contributes one output. Used for Agent's outputDeclarations.
61
+ */
62
+ export interface OutputList {
63
+ id: string;
64
+ label: string;
65
+ type: "list";
66
+ }
67
+ /** Output parameters mirror input parameters: intersected with ParameterBase for id/label/etc. */
68
+ export type OutputParameter = StaticOutput | OutputList;
69
+ //# sourceMappingURL=OutputParameter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OutputParameter.d.ts","sourceRoot":"","sources":["../../src/parameter/OutputParameter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAkB,MAAM,aAAa,CAAC;AAMjE;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAErI;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAM5E;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;CAC9B;AAED,wEAAwE;AACxE,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ,CAEzG;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,kGAAkG;AAClG,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,UAAU,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { unwrapFromArgs } from "./Parameter";
2
+ /** Resolve a StaticOutput's dataType for the current node arguments. */
3
+ export function resolveStaticOutputDataType(output, args) {
4
+ return unwrapFromArgs(output.dataType, args);
5
+ }
6
+ //# sourceMappingURL=OutputParameter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OutputParameter.js","sourceRoot":"","sources":["../../src/parameter/OutputParameter.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,cAAc,EAAE,MAAM,aAAa,CAAC;AAiDjE,wEAAwE;AACxE,MAAM,UAAU,2BAA2B,CAAC,MAAoB,EAAE,IAA6B;IAC7F,OAAO,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC"}