@sebasoft/neuron-js 0.3.0 → 0.5.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 (178) hide show
  1. package/README.md +84 -45
  2. package/dist/commonjs/Synapse.d.ts +18 -0
  3. package/dist/commonjs/Synapse.d.ts.map +1 -1
  4. package/dist/commonjs/Synapse.js +18 -0
  5. package/dist/commonjs/Synapse.js.map +1 -1
  6. package/dist/commonjs/abstracts/AbstractAction.d.ts +15 -0
  7. package/dist/commonjs/abstracts/AbstractAction.d.ts.map +1 -0
  8. package/dist/commonjs/abstracts/AbstractAction.js +25 -0
  9. package/dist/commonjs/abstracts/AbstractAction.js.map +1 -0
  10. package/dist/commonjs/abstracts/AbstractCondition.d.ts +15 -0
  11. package/dist/commonjs/abstracts/AbstractCondition.d.ts.map +1 -0
  12. package/dist/commonjs/abstracts/AbstractCondition.js +25 -0
  13. package/dist/commonjs/abstracts/AbstractCondition.js.map +1 -0
  14. package/dist/commonjs/contracts/explain.d.ts +9 -0
  15. package/dist/commonjs/contracts/explain.d.ts.map +1 -0
  16. package/dist/commonjs/contracts/explain.js +51 -0
  17. package/dist/commonjs/contracts/explain.js.map +1 -0
  18. package/dist/commonjs/contracts/validation.d.ts +40 -0
  19. package/dist/commonjs/contracts/validation.d.ts.map +1 -0
  20. package/dist/commonjs/contracts/validation.js +263 -0
  21. package/dist/commonjs/contracts/validation.js.map +1 -0
  22. package/dist/commonjs/index.d.ts +64 -0
  23. package/dist/commonjs/index.d.ts.map +1 -1
  24. package/dist/commonjs/index.js +74 -1
  25. package/dist/commonjs/index.js.map +1 -1
  26. package/dist/commonjs/interfaces/Action.d.ts +14 -0
  27. package/dist/commonjs/interfaces/Action.d.ts.map +1 -1
  28. package/dist/commonjs/interfaces/Condition.d.ts +21 -0
  29. package/dist/commonjs/interfaces/Condition.d.ts.map +1 -1
  30. package/dist/commonjs/interfaces/Element.d.ts +16 -0
  31. package/dist/commonjs/interfaces/Element.d.ts.map +1 -1
  32. package/dist/commonjs/interfaces/HookEvents.d.ts +16 -0
  33. package/dist/commonjs/interfaces/HookEvents.d.ts.map +1 -1
  34. package/dist/commonjs/interfaces/HookEvents.js +16 -0
  35. package/dist/commonjs/interfaces/HookEvents.js.map +1 -1
  36. package/dist/commonjs/interfaces/Parameter.d.ts +16 -0
  37. package/dist/commonjs/interfaces/Parameter.d.ts.map +1 -1
  38. package/dist/commonjs/interfaces/Rule.d.ts +23 -0
  39. package/dist/commonjs/interfaces/Rule.d.ts.map +1 -1
  40. package/dist/commonjs/interfaces/Script.d.ts +10 -0
  41. package/dist/commonjs/interfaces/Script.d.ts.map +1 -1
  42. package/dist/commonjs/runtime/ActionRuntime.js +1 -1
  43. package/dist/commonjs/runtime/ActionRuntime.js.map +1 -1
  44. package/dist/commonjs/runtime/ConditionRuntime.js +3 -3
  45. package/dist/commonjs/runtime/ConditionRuntime.js.map +1 -1
  46. package/dist/commonjs/runtime/RuleRuntime.js +1 -1
  47. package/dist/commonjs/runtime/RuleRuntime.js.map +1 -1
  48. package/dist/commonjs/types/ExecutionContext.d.ts +13 -0
  49. package/dist/commonjs/types/ExecutionContext.d.ts.map +1 -1
  50. package/dist/commonjs/types/ExecutionContext.js +3 -0
  51. package/dist/commonjs/types/ExecutionContext.js.map +1 -1
  52. package/dist/commonjs/types/ExecutionResult.d.ts +14 -0
  53. package/dist/commonjs/types/ExecutionResult.d.ts.map +1 -1
  54. package/dist/commonjs/types/ExecutionResult.js +14 -0
  55. package/dist/commonjs/types/ExecutionResult.js.map +1 -1
  56. package/dist/commonjs/types/HookEmitter.d.ts +8 -1
  57. package/dist/commonjs/types/HookEmitter.d.ts.map +1 -1
  58. package/dist/esm/Synapse.d.ts +18 -0
  59. package/dist/esm/Synapse.d.ts.map +1 -1
  60. package/dist/esm/Synapse.js +18 -0
  61. package/dist/esm/Synapse.js.map +1 -1
  62. package/dist/esm/abstracts/AbstractAction.d.ts +15 -0
  63. package/dist/esm/abstracts/AbstractAction.d.ts.map +1 -0
  64. package/dist/esm/abstracts/AbstractAction.js +21 -0
  65. package/dist/esm/abstracts/AbstractAction.js.map +1 -0
  66. package/dist/esm/abstracts/AbstractCondition.d.ts +15 -0
  67. package/dist/esm/abstracts/AbstractCondition.d.ts.map +1 -0
  68. package/dist/esm/abstracts/AbstractCondition.js +21 -0
  69. package/dist/esm/abstracts/AbstractCondition.js.map +1 -0
  70. package/dist/esm/contracts/explain.d.ts +9 -0
  71. package/dist/esm/contracts/explain.d.ts.map +1 -0
  72. package/dist/esm/contracts/explain.js +48 -0
  73. package/dist/esm/contracts/explain.js.map +1 -0
  74. package/dist/esm/contracts/validation.d.ts +40 -0
  75. package/dist/esm/contracts/validation.d.ts.map +1 -0
  76. package/dist/esm/contracts/validation.js +255 -0
  77. package/dist/esm/contracts/validation.js.map +1 -0
  78. package/dist/esm/index.d.ts +64 -0
  79. package/dist/esm/index.d.ts.map +1 -1
  80. package/dist/esm/index.js +50 -0
  81. package/dist/esm/index.js.map +1 -1
  82. package/dist/esm/interfaces/Action.d.ts +14 -0
  83. package/dist/esm/interfaces/Action.d.ts.map +1 -1
  84. package/dist/esm/interfaces/Condition.d.ts +21 -0
  85. package/dist/esm/interfaces/Condition.d.ts.map +1 -1
  86. package/dist/esm/interfaces/Element.d.ts +16 -0
  87. package/dist/esm/interfaces/Element.d.ts.map +1 -1
  88. package/dist/esm/interfaces/HookEvents.d.ts +16 -0
  89. package/dist/esm/interfaces/HookEvents.d.ts.map +1 -1
  90. package/dist/esm/interfaces/HookEvents.js +16 -0
  91. package/dist/esm/interfaces/HookEvents.js.map +1 -1
  92. package/dist/esm/interfaces/Parameter.d.ts +16 -0
  93. package/dist/esm/interfaces/Parameter.d.ts.map +1 -1
  94. package/dist/esm/interfaces/Rule.d.ts +23 -0
  95. package/dist/esm/interfaces/Rule.d.ts.map +1 -1
  96. package/dist/esm/interfaces/Script.d.ts +10 -0
  97. package/dist/esm/interfaces/Script.d.ts.map +1 -1
  98. package/dist/esm/runtime/ActionRuntime.js +1 -1
  99. package/dist/esm/runtime/ActionRuntime.js.map +1 -1
  100. package/dist/esm/runtime/ConditionRuntime.js +3 -3
  101. package/dist/esm/runtime/ConditionRuntime.js.map +1 -1
  102. package/dist/esm/runtime/RuleRuntime.js +1 -1
  103. package/dist/esm/runtime/RuleRuntime.js.map +1 -1
  104. package/dist/esm/types/ExecutionContext.d.ts +13 -0
  105. package/dist/esm/types/ExecutionContext.d.ts.map +1 -1
  106. package/dist/esm/types/ExecutionContext.js +3 -0
  107. package/dist/esm/types/ExecutionContext.js.map +1 -1
  108. package/dist/esm/types/ExecutionResult.d.ts +14 -0
  109. package/dist/esm/types/ExecutionResult.d.ts.map +1 -1
  110. package/dist/esm/types/ExecutionResult.js +14 -0
  111. package/dist/esm/types/ExecutionResult.js.map +1 -1
  112. package/dist/esm/types/HookEmitter.d.ts +8 -1
  113. package/dist/esm/types/HookEmitter.d.ts.map +1 -1
  114. package/examples/README.md +24 -0
  115. package/examples/eligibility-check/README.md +31 -0
  116. package/examples/eligibility-check/expected-output.json +7 -0
  117. package/examples/eligibility-check/input.json +6 -0
  118. package/examples/eligibility-check/rules.json +32 -0
  119. package/examples/eligibility-check/run.ts +128 -0
  120. package/examples/pricing-rules/README.md +31 -0
  121. package/examples/pricing-rules/expected-output.json +7 -0
  122. package/examples/pricing-rules/input.json +7 -0
  123. package/examples/pricing-rules/rules.json +32 -0
  124. package/examples/pricing-rules/run.ts +136 -0
  125. package/examples/workflow-routing/README.md +31 -0
  126. package/examples/workflow-routing/expected-output.json +7 -0
  127. package/examples/workflow-routing/input.json +6 -0
  128. package/examples/workflow-routing/rules.json +33 -0
  129. package/examples/workflow-routing/run.ts +130 -0
  130. package/package.json +31 -4
  131. package/schemas/execution-context.schema.json +23 -0
  132. package/schemas/execution-output.schema.json +16 -0
  133. package/schemas/explanation-trace.schema.json +32 -0
  134. package/schemas/script.schema.json +90 -0
  135. package/schemas/validation-error.schema.json +13 -0
  136. package/src/Synapse.ts +18 -0
  137. package/src/abstracts/AbstractAction.ts +34 -0
  138. package/src/abstracts/AbstractCondition.ts +34 -0
  139. package/src/contracts/explain.ts +66 -0
  140. package/src/contracts/validation.ts +348 -0
  141. package/src/index.ts +116 -0
  142. package/src/interfaces/Action.ts +14 -0
  143. package/src/interfaces/Condition.ts +23 -0
  144. package/src/interfaces/Element.ts +18 -0
  145. package/src/interfaces/HookEvents.ts +16 -0
  146. package/src/interfaces/Parameter.ts +18 -0
  147. package/src/interfaces/Rule.ts +24 -0
  148. package/src/interfaces/Script.ts +11 -0
  149. package/src/runtime/ActionRuntime.ts +1 -1
  150. package/src/runtime/ConditionRuntime.ts +3 -3
  151. package/src/runtime/RuleRuntime.ts +1 -1
  152. package/src/types/ExecutionContext.ts +13 -0
  153. package/src/types/ExecutionResult.ts +14 -0
  154. package/src/types/HookEmitter.ts +5 -0
  155. package/dist/commonjs/Synapse.test.d.ts +0 -2
  156. package/dist/commonjs/Synapse.test.d.ts.map +0 -1
  157. package/dist/commonjs/Synapse.test.js +0 -15
  158. package/dist/commonjs/Synapse.test.js.map +0 -1
  159. package/dist/commonjs/index.test.d.ts +0 -2
  160. package/dist/commonjs/index.test.d.ts.map +0 -1
  161. package/dist/commonjs/index.test.js +0 -132
  162. package/dist/commonjs/index.test.js.map +0 -1
  163. package/dist/commonjs/runtime/ConditionRuntime.test.d.ts +0 -2
  164. package/dist/commonjs/runtime/ConditionRuntime.test.d.ts.map +0 -1
  165. package/dist/commonjs/runtime/ConditionRuntime.test.js +0 -70
  166. package/dist/commonjs/runtime/ConditionRuntime.test.js.map +0 -1
  167. package/dist/esm/Synapse.test.d.ts +0 -2
  168. package/dist/esm/Synapse.test.d.ts.map +0 -1
  169. package/dist/esm/Synapse.test.js +0 -13
  170. package/dist/esm/Synapse.test.js.map +0 -1
  171. package/dist/esm/index.test.d.ts +0 -2
  172. package/dist/esm/index.test.d.ts.map +0 -1
  173. package/dist/esm/index.test.js +0 -130
  174. package/dist/esm/index.test.js.map +0 -1
  175. package/dist/esm/runtime/ConditionRuntime.test.d.ts +0 -2
  176. package/dist/esm/runtime/ConditionRuntime.test.d.ts.map +0 -1
  177. package/dist/esm/runtime/ConditionRuntime.test.js +0 -68
  178. package/dist/esm/runtime/ConditionRuntime.test.js.map +0 -1
@@ -1,132 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const index_js_1 = require("./index.js");
5
- const HookEvents_js_1 = require("./interfaces/HookEvents.js");
6
- const Synapse_js_1 = require("./Synapse.js");
7
- (0, vitest_1.test)("Neuron can be instantiated with default plugins", () => {
8
- const neuron = new index_js_1.Neuron();
9
- (0, vitest_1.expect)(neuron.getAction("add_two_numbers")).toBeDefined();
10
- (0, vitest_1.expect)(neuron.getCondition("compare_two_numbers")).toBeDefined();
11
- (0, vitest_1.expect)(neuron.getRule("simple_rule")).toBeDefined();
12
- (0, vitest_1.expect)(neuron.getParameter("simple_select")).toBeDefined();
13
- });
14
- (0, vitest_1.test)("E2E: Synapse can execute a script with conditions and actions", () => {
15
- const neuron = new index_js_1.Neuron();
16
- const synapse = new Synapse_js_1.Synapse(neuron);
17
- const script = {
18
- id: "test-script",
19
- rules: [
20
- {
21
- id: "rule-1",
22
- type: "simple_rule",
23
- options: {},
24
- conditions: [
25
- {
26
- id: "cond-1",
27
- type: "compare_two_numbers",
28
- options: {},
29
- params: [
30
- {
31
- id: "p1",
32
- name: "op1",
33
- type: "simple_number",
34
- value: "10",
35
- options: {},
36
- },
37
- {
38
- id: "p2",
39
- name: "comp",
40
- type: "comparator",
41
- value: ">",
42
- options: {},
43
- },
44
- {
45
- id: "p3",
46
- name: "op2",
47
- type: "simple_number",
48
- value: "5",
49
- options: {},
50
- },
51
- ],
52
- },
53
- ],
54
- actions: [
55
- {
56
- id: "act-1",
57
- type: "add_two_numbers",
58
- options: {},
59
- params: [
60
- {
61
- id: "p4",
62
- name: "op1",
63
- type: "simple_number",
64
- value: "1",
65
- options: {},
66
- },
67
- {
68
- id: "p5",
69
- name: "op2",
70
- type: "simple_number",
71
- value: "2",
72
- options: {},
73
- },
74
- ],
75
- },
76
- ],
77
- },
78
- ],
79
- };
80
- const context = { messages: [], state: {} };
81
- const result = synapse.execute(script, context);
82
- (0, vitest_1.expect)(result.isSuccessful()).toBe(true);
83
- (0, vitest_1.expect)(result.value).toBe(1); // 1 rule executed
84
- (0, vitest_1.expect)(result.context.messages.some((m) => m.text.includes("Sum result: 3"))).toBe(true);
85
- });
86
- (0, vitest_1.test)("E2E: Synapse emits hooks during execution", () => {
87
- const neuron = new index_js_1.Neuron();
88
- const hookEmitter = vitest_1.vi.fn();
89
- const synapse = new Synapse_js_1.Synapse(neuron, hookEmitter);
90
- const script = {
91
- id: "hook-test",
92
- rules: [
93
- {
94
- id: "rule-1",
95
- type: "simple_rule",
96
- options: {},
97
- conditions: [],
98
- actions: [
99
- {
100
- id: "act-1",
101
- type: "add_two_numbers",
102
- options: {},
103
- params: [
104
- {
105
- id: "p1",
106
- name: "op1",
107
- type: "simple_number",
108
- value: "1",
109
- options: {},
110
- },
111
- {
112
- id: "p2",
113
- name: "op2",
114
- type: "simple_number",
115
- value: "1",
116
- options: {},
117
- },
118
- ],
119
- },
120
- ],
121
- },
122
- ],
123
- };
124
- synapse.execute(script, { messages: [], state: {} });
125
- (0, vitest_1.expect)(hookEmitter).toHaveBeenCalledWith(HookEvents_js_1.HookEvents.ON_SCRIPT_START, vitest_1.expect.anything());
126
- (0, vitest_1.expect)(hookEmitter).toHaveBeenCalledWith(HookEvents_js_1.HookEvents.ON_RULE_START, vitest_1.expect.anything());
127
- (0, vitest_1.expect)(hookEmitter).toHaveBeenCalledWith(HookEvents_js_1.HookEvents.ON_ACTION_START, vitest_1.expect.anything());
128
- (0, vitest_1.expect)(hookEmitter).toHaveBeenCalledWith(HookEvents_js_1.HookEvents.ON_ACTION_END, vitest_1.expect.anything());
129
- (0, vitest_1.expect)(hookEmitter).toHaveBeenCalledWith(HookEvents_js_1.HookEvents.ON_RULE_END, vitest_1.expect.anything());
130
- (0, vitest_1.expect)(hookEmitter).toHaveBeenCalledWith(HookEvents_js_1.HookEvents.ON_SCRIPT_END, vitest_1.expect.anything());
131
- });
132
- //# sourceMappingURL=index.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/index.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ConditionRuntime.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConditionRuntime.test.d.ts","sourceRoot":"","sources":["../../../src/runtime/ConditionRuntime.test.ts"],"names":[],"mappings":""}
@@ -1,70 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const index_js_1 = require("../index.js");
5
- const ConditionRuntime_js_1 = require("./ConditionRuntime.js");
6
- (0, vitest_1.test)("ConditionRuntime evaluates AND logic", () => {
7
- const neuron = new index_js_1.Neuron();
8
- class TrueCondition {
9
- execute() {
10
- return {
11
- success: true,
12
- value: true,
13
- messages: [],
14
- isSuccessful() {
15
- return true;
16
- },
17
- };
18
- }
19
- }
20
- neuron.registerCondition("true_cond", TrueCondition);
21
- const conditions = [
22
- { id: "1", type: "true_cond", params: [], options: {} },
23
- { id: "2", type: "true_cond", params: [], options: {} },
24
- ];
25
- const runtime = new ConditionRuntime_js_1.ConditionRuntime(conditions, neuron);
26
- const result = runtime.execute({ messages: [], state: {} });
27
- (0, vitest_1.expect)(result.value).toBe(true);
28
- });
29
- (0, vitest_1.test)("ConditionRuntime evaluates OR logic", () => {
30
- const neuron = new index_js_1.Neuron();
31
- class TrueCondition {
32
- execute() {
33
- return {
34
- success: true,
35
- value: true,
36
- messages: [],
37
- isSuccessful() {
38
- return true;
39
- },
40
- };
41
- }
42
- }
43
- class FalseCondition {
44
- execute() {
45
- return {
46
- success: true,
47
- value: false,
48
- messages: [],
49
- isSuccessful() {
50
- return true;
51
- },
52
- };
53
- }
54
- }
55
- neuron.registerCondition("true_cond", TrueCondition);
56
- neuron.registerCondition("false_cond", FalseCondition);
57
- const conditions = [
58
- { id: "1", type: "false_cond", params: [], options: {} },
59
- {
60
- id: "2",
61
- type: "true_cond",
62
- params: [],
63
- options: { orCondition: true },
64
- },
65
- ];
66
- const runtime = new ConditionRuntime_js_1.ConditionRuntime(conditions, neuron);
67
- const result = runtime.execute({ messages: [], state: {} });
68
- (0, vitest_1.expect)(result.value).toBe(true);
69
- });
70
- //# sourceMappingURL=ConditionRuntime.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConditionRuntime.test.js","sourceRoot":"","sources":["../../../src/runtime/ConditionRuntime.test.ts"],"names":[],"mappings":";;AAAA,mCAAsC;AACtC,0CAAqC;AACrC,+DAAyD;AAEzD,IAAA,aAAI,EAAC,sCAAsC,EAAE,GAAG,EAAE;IAChD,MAAM,MAAM,GAAG,IAAI,iBAAM,EAAE,CAAC;IAC5B,MAAM,aAAa;QACjB,OAAO;YACL,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,EAAE;gBACZ,YAAY;oBACV,OAAO,IAAI,CAAC;gBACd,CAAC;aACF,CAAC;QACJ,CAAC;KACF;IACD,MAAM,CAAC,iBAAiB,CAAC,WAAW,EAAE,aAAoB,CAAC,CAAC;IAE5D,MAAM,UAAU,GAAG;QACjB,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACvD,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;KACxD,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,sCAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5D,IAAA,eAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,qCAAqC,EAAE,GAAG,EAAE;IAC/C,MAAM,MAAM,GAAG,IAAI,iBAAM,EAAE,CAAC;IAC5B,MAAM,aAAa;QACjB,OAAO;YACL,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,EAAE;gBACZ,YAAY;oBACV,OAAO,IAAI,CAAC;gBACd,CAAC;aACF,CAAC;QACJ,CAAC;KACF;IACD,MAAM,cAAc;QAClB,OAAO;YACL,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,EAAE;gBACZ,YAAY;oBACV,OAAO,IAAI,CAAC;gBACd,CAAC;aACF,CAAC;QACJ,CAAC;KACF;IACD,MAAM,CAAC,iBAAiB,CAAC,WAAW,EAAE,aAAoB,CAAC,CAAC;IAC5D,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,cAAqB,CAAC,CAAC;IAE9D,MAAM,UAAU,GAAG;QACjB,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACxD;YACE,EAAE,EAAE,GAAG;YACP,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;SAC/B;KACF,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,sCAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5D,IAAA,eAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Synapse.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Synapse.test.d.ts","sourceRoot":"","sources":["../../src/Synapse.test.ts"],"names":[],"mappings":""}
@@ -1,13 +0,0 @@
1
- import { expect, test } from "vitest";
2
- import { Neuron } from "./index.js";
3
- import { Synapse } from "./Synapse.js";
4
- test("Synapse can execute an empty script", () => {
5
- const neuron = new Neuron();
6
- const synapse = new Synapse(neuron);
7
- const context = { messages: [], state: {} };
8
- const script = { id: "test", rules: [] };
9
- const result = synapse.execute(script, context);
10
- expect(result.isSuccessful()).toBe(true);
11
- expect(result.value).toBe(0);
12
- });
13
- //# sourceMappingURL=Synapse.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Synapse.test.js","sourceRoot":"","sources":["../../src/Synapse.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;IAC/C,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAEzC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/index.test.ts"],"names":[],"mappings":""}
@@ -1,130 +0,0 @@
1
- import { expect, test, vi } from "vitest";
2
- import { Neuron } from "./index.js";
3
- import { HookEvents } from "./interfaces/HookEvents.js";
4
- import { Synapse } from "./Synapse.js";
5
- test("Neuron can be instantiated with default plugins", () => {
6
- const neuron = new Neuron();
7
- expect(neuron.getAction("add_two_numbers")).toBeDefined();
8
- expect(neuron.getCondition("compare_two_numbers")).toBeDefined();
9
- expect(neuron.getRule("simple_rule")).toBeDefined();
10
- expect(neuron.getParameter("simple_select")).toBeDefined();
11
- });
12
- test("E2E: Synapse can execute a script with conditions and actions", () => {
13
- const neuron = new Neuron();
14
- const synapse = new Synapse(neuron);
15
- const script = {
16
- id: "test-script",
17
- rules: [
18
- {
19
- id: "rule-1",
20
- type: "simple_rule",
21
- options: {},
22
- conditions: [
23
- {
24
- id: "cond-1",
25
- type: "compare_two_numbers",
26
- options: {},
27
- params: [
28
- {
29
- id: "p1",
30
- name: "op1",
31
- type: "simple_number",
32
- value: "10",
33
- options: {},
34
- },
35
- {
36
- id: "p2",
37
- name: "comp",
38
- type: "comparator",
39
- value: ">",
40
- options: {},
41
- },
42
- {
43
- id: "p3",
44
- name: "op2",
45
- type: "simple_number",
46
- value: "5",
47
- options: {},
48
- },
49
- ],
50
- },
51
- ],
52
- actions: [
53
- {
54
- id: "act-1",
55
- type: "add_two_numbers",
56
- options: {},
57
- params: [
58
- {
59
- id: "p4",
60
- name: "op1",
61
- type: "simple_number",
62
- value: "1",
63
- options: {},
64
- },
65
- {
66
- id: "p5",
67
- name: "op2",
68
- type: "simple_number",
69
- value: "2",
70
- options: {},
71
- },
72
- ],
73
- },
74
- ],
75
- },
76
- ],
77
- };
78
- const context = { messages: [], state: {} };
79
- const result = synapse.execute(script, context);
80
- expect(result.isSuccessful()).toBe(true);
81
- expect(result.value).toBe(1); // 1 rule executed
82
- expect(result.context.messages.some((m) => m.text.includes("Sum result: 3"))).toBe(true);
83
- });
84
- test("E2E: Synapse emits hooks during execution", () => {
85
- const neuron = new Neuron();
86
- const hookEmitter = vi.fn();
87
- const synapse = new Synapse(neuron, hookEmitter);
88
- const script = {
89
- id: "hook-test",
90
- rules: [
91
- {
92
- id: "rule-1",
93
- type: "simple_rule",
94
- options: {},
95
- conditions: [],
96
- actions: [
97
- {
98
- id: "act-1",
99
- type: "add_two_numbers",
100
- options: {},
101
- params: [
102
- {
103
- id: "p1",
104
- name: "op1",
105
- type: "simple_number",
106
- value: "1",
107
- options: {},
108
- },
109
- {
110
- id: "p2",
111
- name: "op2",
112
- type: "simple_number",
113
- value: "1",
114
- options: {},
115
- },
116
- ],
117
- },
118
- ],
119
- },
120
- ],
121
- };
122
- synapse.execute(script, { messages: [], state: {} });
123
- expect(hookEmitter).toHaveBeenCalledWith(HookEvents.ON_SCRIPT_START, expect.anything());
124
- expect(hookEmitter).toHaveBeenCalledWith(HookEvents.ON_RULE_START, expect.anything());
125
- expect(hookEmitter).toHaveBeenCalledWith(HookEvents.ON_ACTION_START, expect.anything());
126
- expect(hookEmitter).toHaveBeenCalledWith(HookEvents.ON_ACTION_END, expect.anything());
127
- expect(hookEmitter).toHaveBeenCalledWith(HookEvents.ON_RULE_END, expect.anything());
128
- expect(hookEmitter).toHaveBeenCalledWith(HookEvents.ON_SCRIPT_END, expect.anything());
129
- });
130
- //# sourceMappingURL=index.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/index.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ConditionRuntime.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConditionRuntime.test.d.ts","sourceRoot":"","sources":["../../../src/runtime/ConditionRuntime.test.ts"],"names":[],"mappings":""}
@@ -1,68 +0,0 @@
1
- import { expect, test } from "vitest";
2
- import { Neuron } from "../index.js";
3
- import { ConditionRuntime } from "./ConditionRuntime.js";
4
- test("ConditionRuntime evaluates AND logic", () => {
5
- const neuron = new Neuron();
6
- class TrueCondition {
7
- execute() {
8
- return {
9
- success: true,
10
- value: true,
11
- messages: [],
12
- isSuccessful() {
13
- return true;
14
- },
15
- };
16
- }
17
- }
18
- neuron.registerCondition("true_cond", TrueCondition);
19
- const conditions = [
20
- { id: "1", type: "true_cond", params: [], options: {} },
21
- { id: "2", type: "true_cond", params: [], options: {} },
22
- ];
23
- const runtime = new ConditionRuntime(conditions, neuron);
24
- const result = runtime.execute({ messages: [], state: {} });
25
- expect(result.value).toBe(true);
26
- });
27
- test("ConditionRuntime evaluates OR logic", () => {
28
- const neuron = new Neuron();
29
- class TrueCondition {
30
- execute() {
31
- return {
32
- success: true,
33
- value: true,
34
- messages: [],
35
- isSuccessful() {
36
- return true;
37
- },
38
- };
39
- }
40
- }
41
- class FalseCondition {
42
- execute() {
43
- return {
44
- success: true,
45
- value: false,
46
- messages: [],
47
- isSuccessful() {
48
- return true;
49
- },
50
- };
51
- }
52
- }
53
- neuron.registerCondition("true_cond", TrueCondition);
54
- neuron.registerCondition("false_cond", FalseCondition);
55
- const conditions = [
56
- { id: "1", type: "false_cond", params: [], options: {} },
57
- {
58
- id: "2",
59
- type: "true_cond",
60
- params: [],
61
- options: { orCondition: true },
62
- },
63
- ];
64
- const runtime = new ConditionRuntime(conditions, neuron);
65
- const result = runtime.execute({ messages: [], state: {} });
66
- expect(result.value).toBe(true);
67
- });
68
- //# sourceMappingURL=ConditionRuntime.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConditionRuntime.test.js","sourceRoot":"","sources":["../../../src/runtime/ConditionRuntime.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;IAChD,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;IAC5B,MAAM,aAAa;QACjB,OAAO;YACL,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,EAAE;gBACZ,YAAY;oBACV,OAAO,IAAI,CAAC;gBACd,CAAC;aACF,CAAC;QACJ,CAAC;KACF;IACD,MAAM,CAAC,iBAAiB,CAAC,WAAW,EAAE,aAAoB,CAAC,CAAC;IAE5D,MAAM,UAAU,GAAG;QACjB,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACvD,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;KACxD,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;IAC/C,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;IAC5B,MAAM,aAAa;QACjB,OAAO;YACL,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,EAAE;gBACZ,YAAY;oBACV,OAAO,IAAI,CAAC;gBACd,CAAC;aACF,CAAC;QACJ,CAAC;KACF;IACD,MAAM,cAAc;QAClB,OAAO;YACL,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,EAAE;gBACZ,YAAY;oBACV,OAAO,IAAI,CAAC;gBACd,CAAC;aACF,CAAC;QACJ,CAAC;KACF;IACD,MAAM,CAAC,iBAAiB,CAAC,WAAW,EAAE,aAAoB,CAAC,CAAC;IAC5D,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,cAAqB,CAAC,CAAC;IAE9D,MAAM,UAAU,GAAG;QACjB,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACxD;YACE,EAAE,EAAE,GAAG;YACP,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;SAC/B;KACF,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC"}