@foresthubai/workflow-core 0.4.2 → 0.4.4

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 (120) 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 +67 -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/workflow.d.ts +17 -1
  15. package/dist/api/workflow.d.ts.map +1 -1
  16. package/dist/channel/Channel.d.ts +1 -1
  17. package/dist/channel/Channel.d.ts.map +1 -1
  18. package/dist/channel/Channel.js +1 -1
  19. package/dist/channel/Channel.js.map +1 -1
  20. package/dist/channel/ChannelDefinition.d.ts.map +1 -1
  21. package/dist/channel/ChannelDefinition.js +22 -0
  22. package/dist/channel/ChannelDefinition.js.map +1 -1
  23. package/dist/channel/serialization.d.ts.map +1 -1
  24. package/dist/channel/serialization.js +6 -0
  25. package/dist/channel/serialization.js.map +1 -1
  26. package/dist/deploy/index.d.ts +5 -1
  27. package/dist/deploy/index.d.ts.map +1 -1
  28. package/dist/deploy/index.js +2 -1
  29. package/dist/deploy/index.js.map +1 -1
  30. package/dist/deploy/inputs.d.ts +26 -0
  31. package/dist/deploy/inputs.d.ts.map +1 -0
  32. package/dist/deploy/inputs.js +12 -0
  33. package/dist/deploy/inputs.js.map +1 -0
  34. package/dist/deploy/requirements.d.ts +24 -0
  35. package/dist/deploy/requirements.d.ts.map +1 -1
  36. package/dist/deploy/requirements.js +61 -0
  37. package/dist/deploy/requirements.js.map +1 -1
  38. package/dist/deploy/spec.d.ts +32 -0
  39. package/dist/deploy/spec.d.ts.map +1 -0
  40. package/dist/deploy/spec.js +343 -0
  41. package/dist/deploy/spec.js.map +1 -0
  42. package/dist/node/OutputNode.js +2 -2
  43. package/dist/node/OutputNode.js.map +1 -1
  44. package/package.json +2 -2
  45. package/src/api/deployment.ts +67 -0
  46. package/src/api/engine.ts +744 -0
  47. package/src/api/index.ts +26 -11
  48. package/src/api/workflow.ts +17 -1
  49. package/src/channel/Channel.ts +11 -11
  50. package/src/channel/ChannelDefinition.ts +98 -76
  51. package/src/channel/index.ts +6 -6
  52. package/src/channel/serialization.ts +74 -68
  53. package/src/deploy/index.ts +14 -1
  54. package/src/deploy/inputs.ts +41 -0
  55. package/src/deploy/requirements.test.ts +61 -61
  56. package/src/deploy/requirements.ts +156 -41
  57. package/src/deploy/spec.test.ts +226 -0
  58. package/src/deploy/spec.ts +379 -0
  59. package/src/diagnostics/__fixtures__/diagnosticFixtures.ts +158 -158
  60. package/src/diagnostics/diagnostics.test.ts +878 -878
  61. package/src/diagnostics/diagnostics.ts +936 -936
  62. package/src/diagnostics/index.ts +11 -11
  63. package/src/edge/Edge.ts +23 -23
  64. package/src/edge/EdgeDefinition.ts +45 -45
  65. package/src/edge/EdgeType.ts +19 -19
  66. package/src/edge/index.ts +8 -8
  67. package/src/edge/serialization.ts +83 -83
  68. package/src/expression/index.ts +4 -4
  69. package/src/expression/parser.ts +362 -362
  70. package/src/expression/types.ts +30 -30
  71. package/src/function/FunctionDeclaration.ts +54 -54
  72. package/src/function/index.ts +3 -3
  73. package/src/function/serialization.ts +40 -40
  74. package/src/globals.d.ts +9 -9
  75. package/src/id/index.ts +8 -8
  76. package/src/index.ts +22 -22
  77. package/src/memory/Memory.ts +15 -15
  78. package/src/memory/MemoryDefinition.ts +16 -16
  79. package/src/memory/MemoryFileDefinition.ts +37 -37
  80. package/src/memory/MemoryRegistry.ts +35 -35
  81. package/src/memory/VectorDatabaseDefinition.ts +21 -21
  82. package/src/memory/index.ts +8 -8
  83. package/src/memory/serialization.ts +47 -47
  84. package/src/migration/index.ts +4 -4
  85. package/src/migration/migrate.test.ts +44 -44
  86. package/src/migration/migrate.ts +58 -58
  87. package/src/migration/migrations.ts +24 -24
  88. package/src/migration/version.ts +9 -9
  89. package/src/model/LLMModelDefinition.ts +12 -12
  90. package/src/model/Model.ts +39 -39
  91. package/src/model/ModelDefinition.ts +15 -15
  92. package/src/model/ModelRegistry.ts +33 -33
  93. package/src/model/index.ts +7 -7
  94. package/src/model/serialization.ts +30 -30
  95. package/src/node/AgentNode.ts +82 -82
  96. package/src/node/DataNode.ts +41 -41
  97. package/src/node/FunctionNode.ts +76 -76
  98. package/src/node/InputNode.ts +185 -185
  99. package/src/node/LogicNode.ts +33 -33
  100. package/src/node/MqttNode.ts +127 -127
  101. package/src/node/Node.ts +61 -61
  102. package/src/node/NodeDefinition.ts +37 -37
  103. package/src/node/NodeRegistry.ts +85 -85
  104. package/src/node/OutputNode.ts +87 -87
  105. package/src/node/ToolNode.ts +32 -32
  106. package/src/node/TriggerNode.ts +272 -272
  107. package/src/node/constants.ts +16 -16
  108. package/src/node/index.ts +26 -26
  109. package/src/node/methods.ts +278 -278
  110. package/src/node/serialization.ts +544 -544
  111. package/src/parameter/OutputParameter.ts +68 -68
  112. package/src/parameter/Parameter.ts +243 -243
  113. package/src/parameter/index.ts +33 -33
  114. package/src/variable/Variable.ts +10 -10
  115. package/src/variable/index.ts +16 -16
  116. package/src/variable/operations.ts +106 -106
  117. package/src/workflow/Workflow.ts +41 -41
  118. package/src/workflow/index.ts +3 -3
  119. package/src/workflow/serialization.test.ts +240 -240
  120. package/src/workflow/serialization.ts +242 -242
@@ -1,87 +1,87 @@
1
- import { NodeBase } from "./Node";
2
- import type { Expression } from "../api";
3
- import { NodeCategory, NodeTag } from "./constants";
4
- import { NodeDefinition } from "./NodeDefinition";
5
-
6
- export interface WritePinNode extends NodeBase {
7
- type: "WritePin";
8
- arguments: {
9
- pinReference: string | undefined;
10
- signalType: "digital" | "analog";
11
- value: Expression;
12
- };
13
- }
14
-
15
- export interface SerialWriteNode extends NodeBase {
16
- type: "SerialWrite";
17
- arguments: {
18
- portReference: string | undefined;
19
- value: Expression; // Expression for the value to write
20
- };
21
- }
22
-
23
- export type OutputNodeType = "WritePin" | "SerialWrite";
24
- export type OutputNode = WritePinNode | SerialWriteNode;
25
-
26
- // Node Definitions
27
-
28
- export const WritePinNodeDefinition: NodeDefinition = {
29
- type: "WritePin",
30
- label: "Write Pin",
31
- category: NodeCategory.Output,
32
- tags: [NodeTag.Pin],
33
- description: "Write data to a pin",
34
- parameters: [
35
- {
36
- id: "pinReference",
37
- label: "Pin",
38
- description: "IO pin to write to",
39
- type: "channelSelect",
40
- channelType: (args) => ((args as WritePinNode["arguments"]).signalType === "digital" ? ["GPIOOUT"] : ["PWM", "DAC"]),
41
- },
42
- {
43
- id: "signalType",
44
- label: "Signal Type",
45
- description: "Type of signal",
46
- type: "selection",
47
- default: "digital",
48
- options: [
49
- { value: "digital", label: "Digital" },
50
- { value: "analog", label: "Analog" },
51
- ],
52
- },
53
- {
54
- id: "value",
55
- label: "Value",
56
- description: "What value to write to the pin",
57
- type: "expression",
58
- expressionType: (args) => ((args as WritePinNode["arguments"]).signalType === "digital" ? "bool" : "int"),
59
- default: { expression: "", references: [], dataType: "bool" },
60
- },
61
- ],
62
- };
63
-
64
- export const SerialWriteNodeDefinition: NodeDefinition = {
65
- type: "SerialWrite",
66
- label: "Serial Write",
67
- category: NodeCategory.Output,
68
- tags: [NodeTag.Serial],
69
- description: "Write string to serial port",
70
- parameters: [
71
- {
72
- id: "portReference",
73
- label: "Port",
74
- description: "Serial port to write to",
75
- type: "channelSelect",
76
- channelType: ["UART"],
77
- },
78
- {
79
- id: "value",
80
- label: "Value",
81
- description: "Expression for the value to write",
82
- type: "expression",
83
- expressionType: "string",
84
- default: { expression: "", references: [], dataType: "string" },
85
- },
86
- ],
87
- };
1
+ import { NodeBase } from "./Node";
2
+ import type { Expression } from "../api";
3
+ import { NodeCategory, NodeTag } from "./constants";
4
+ import { NodeDefinition } from "./NodeDefinition";
5
+
6
+ export interface WritePinNode extends NodeBase {
7
+ type: "WritePin";
8
+ arguments: {
9
+ pinReference: string | undefined;
10
+ signalType: "digital" | "analog";
11
+ value: Expression;
12
+ };
13
+ }
14
+
15
+ export interface SerialWriteNode extends NodeBase {
16
+ type: "SerialWrite";
17
+ arguments: {
18
+ portReference: string | undefined;
19
+ value: Expression; // Expression for the value to write
20
+ };
21
+ }
22
+
23
+ export type OutputNodeType = "WritePin" | "SerialWrite";
24
+ export type OutputNode = WritePinNode | SerialWriteNode;
25
+
26
+ // Node Definitions
27
+
28
+ export const WritePinNodeDefinition: NodeDefinition = {
29
+ type: "WritePin",
30
+ label: "Write Pin",
31
+ category: NodeCategory.Output,
32
+ tags: [NodeTag.Pin],
33
+ description: "Write data to a pin",
34
+ parameters: [
35
+ {
36
+ id: "pinReference",
37
+ label: "Pin",
38
+ description: "IO pin to write to",
39
+ type: "channelSelect",
40
+ channelType: (args) => ((args as WritePinNode["arguments"]).signalType === "digital" ? ["GPIOOUT"] : ["PWM", "DAC"]),
41
+ },
42
+ {
43
+ id: "signalType",
44
+ label: "Signal Type",
45
+ description: "Type of signal",
46
+ type: "selection",
47
+ default: "digital",
48
+ options: [
49
+ { value: "digital", label: "Digital" },
50
+ { value: "analog", label: "Analog" },
51
+ ],
52
+ },
53
+ {
54
+ id: "value",
55
+ label: "Value",
56
+ description: "What value to write to the pin",
57
+ type: "expression",
58
+ expressionType: (args) => ((args as WritePinNode["arguments"]).signalType === "digital" ? "bool" : "int"),
59
+ default: { expression: "", references: [], dataType: "bool" },
60
+ },
61
+ ],
62
+ };
63
+
64
+ export const SerialWriteNodeDefinition: NodeDefinition = {
65
+ type: "SerialWrite",
66
+ label: "Serial Write",
67
+ category: NodeCategory.Output,
68
+ tags: [NodeTag.Serial],
69
+ description: "Write string to serial port",
70
+ parameters: [
71
+ {
72
+ id: "portReference",
73
+ label: "Port",
74
+ description: "Serial port or log channel to write to",
75
+ type: "channelSelect",
76
+ channelType: ["UART", "LOG"],
77
+ },
78
+ {
79
+ id: "value",
80
+ label: "Value",
81
+ description: "Expression for the value to write",
82
+ type: "expression",
83
+ expressionType: "string",
84
+ default: { expression: "", references: [], dataType: "string" },
85
+ },
86
+ ],
87
+ };
@@ -1,32 +1,32 @@
1
- import { NodeBase } from "./Node";
2
- import { NodeCategory } from "./constants";
3
- import { NodeDefinition } from "./NodeDefinition";
4
-
5
- // Web Search Tool - provides web search capability to agents
6
- export interface WebSearchToolNode extends NodeBase {
7
- type: "WebSearchTool";
8
- arguments: {
9
- maxResults?: number;
10
- };
11
- }
12
-
13
- export type ToolNodeType = "WebSearchTool";
14
- export type ToolNode = WebSearchToolNode;
15
-
16
- // Node Definitions
17
-
18
- export const WebSearchToolNodeDefinition: NodeDefinition = {
19
- type: "WebSearchTool",
20
- label: "Web Search",
21
- category: NodeCategory.Tool,
22
- description: "Provides web search capability to connected agents",
23
- parameters: [
24
- {
25
- id: "maxResults",
26
- label: "Max Results",
27
- description: "Maximum number of search results to return per call (capped at 20)",
28
- type: "int",
29
- optional: true,
30
- },
31
- ],
32
- };
1
+ import { NodeBase } from "./Node";
2
+ import { NodeCategory } from "./constants";
3
+ import { NodeDefinition } from "./NodeDefinition";
4
+
5
+ // Web Search Tool - provides web search capability to agents
6
+ export interface WebSearchToolNode extends NodeBase {
7
+ type: "WebSearchTool";
8
+ arguments: {
9
+ maxResults?: number;
10
+ };
11
+ }
12
+
13
+ export type ToolNodeType = "WebSearchTool";
14
+ export type ToolNode = WebSearchToolNode;
15
+
16
+ // Node Definitions
17
+
18
+ export const WebSearchToolNodeDefinition: NodeDefinition = {
19
+ type: "WebSearchTool",
20
+ label: "Web Search",
21
+ category: NodeCategory.Tool,
22
+ description: "Provides web search capability to connected agents",
23
+ parameters: [
24
+ {
25
+ id: "maxResults",
26
+ label: "Max Results",
27
+ description: "Maximum number of search results to return per call (capped at 20)",
28
+ type: "int",
29
+ optional: true,
30
+ },
31
+ ],
32
+ };