groundswell 0.0.3 → 1.0.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 (292) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +26 -9
  3. package/dist/cache/cache-key.d.ts +20 -0
  4. package/dist/cache/cache-key.d.ts.map +1 -1
  5. package/dist/cache/cache-key.js +9 -0
  6. package/dist/cache/cache-key.js.map +1 -1
  7. package/dist/core/agent.d.ts +120 -29
  8. package/dist/core/agent.d.ts.map +1 -1
  9. package/dist/core/agent.js +584 -177
  10. package/dist/core/agent.js.map +1 -1
  11. package/dist/core/mcp-handler.d.ts +63 -5
  12. package/dist/core/mcp-handler.d.ts.map +1 -1
  13. package/dist/core/mcp-handler.js +184 -4
  14. package/dist/core/mcp-handler.js.map +1 -1
  15. package/dist/core/workflow-context.d.ts +6 -2
  16. package/dist/core/workflow-context.d.ts.map +1 -1
  17. package/dist/core/workflow-context.js +99 -4
  18. package/dist/core/workflow-context.js.map +1 -1
  19. package/dist/core/workflow.d.ts +315 -13
  20. package/dist/core/workflow.d.ts.map +1 -1
  21. package/dist/core/workflow.js +552 -30
  22. package/dist/core/workflow.js.map +1 -1
  23. package/dist/debugger/event-replayer.d.ts +422 -0
  24. package/dist/debugger/event-replayer.d.ts.map +1 -0
  25. package/dist/debugger/event-replayer.js +639 -0
  26. package/dist/debugger/event-replayer.js.map +1 -0
  27. package/dist/debugger/tree-debugger.d.ts +170 -1
  28. package/dist/debugger/tree-debugger.d.ts.map +1 -1
  29. package/dist/debugger/tree-debugger.js +423 -1
  30. package/dist/debugger/tree-debugger.js.map +1 -1
  31. package/dist/decorators/step.d.ts.map +1 -1
  32. package/dist/decorators/step.js +129 -47
  33. package/dist/decorators/step.js.map +1 -1
  34. package/dist/harnesses/claude-code-harness.d.ts +391 -0
  35. package/dist/harnesses/claude-code-harness.d.ts.map +1 -0
  36. package/dist/harnesses/claude-code-harness.js +1076 -0
  37. package/dist/harnesses/claude-code-harness.js.map +1 -0
  38. package/dist/harnesses/harness-registry.d.ts +440 -0
  39. package/dist/harnesses/harness-registry.d.ts.map +1 -0
  40. package/dist/harnesses/harness-registry.js +543 -0
  41. package/dist/harnesses/harness-registry.js.map +1 -0
  42. package/dist/harnesses/index.d.ts +12 -0
  43. package/dist/harnesses/index.d.ts.map +1 -0
  44. package/dist/harnesses/index.js +11 -0
  45. package/dist/harnesses/index.js.map +1 -0
  46. package/dist/harnesses/pi-harness.d.ts +219 -0
  47. package/dist/harnesses/pi-harness.d.ts.map +1 -0
  48. package/dist/harnesses/pi-harness.js +676 -0
  49. package/dist/harnesses/pi-harness.js.map +1 -0
  50. package/dist/harnesses/pi-schema-converter.d.ts +24 -0
  51. package/dist/harnesses/pi-schema-converter.d.ts.map +1 -0
  52. package/dist/harnesses/pi-schema-converter.js +81 -0
  53. package/dist/harnesses/pi-schema-converter.js.map +1 -0
  54. package/dist/harnesses/register-defaults.d.ts +24 -0
  55. package/dist/harnesses/register-defaults.d.ts.map +1 -0
  56. package/dist/harnesses/register-defaults.js +40 -0
  57. package/dist/harnesses/register-defaults.js.map +1 -0
  58. package/dist/harnesses/session-store.d.ts +201 -0
  59. package/dist/harnesses/session-store.d.ts.map +1 -0
  60. package/dist/harnesses/session-store.js +254 -0
  61. package/dist/harnesses/session-store.js.map +1 -0
  62. package/dist/index.d.ts +12 -2
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +17 -0
  65. package/dist/index.js.map +1 -1
  66. package/dist/reflection/reflection.d.ts.map +1 -1
  67. package/dist/reflection/reflection.js +19 -4
  68. package/dist/reflection/reflection.js.map +1 -1
  69. package/dist/types/agent.d.ts +1253 -2
  70. package/dist/types/agent.d.ts.map +1 -1
  71. package/dist/types/agent.js +418 -1
  72. package/dist/types/agent.js.map +1 -1
  73. package/dist/types/decorators.d.ts +10 -1
  74. package/dist/types/decorators.d.ts.map +1 -1
  75. package/dist/types/events.d.ts +26 -0
  76. package/dist/types/events.d.ts.map +1 -1
  77. package/dist/types/harnesses.d.ts +474 -0
  78. package/dist/types/harnesses.d.ts.map +1 -0
  79. package/dist/types/harnesses.js +2 -0
  80. package/dist/types/harnesses.js.map +1 -0
  81. package/dist/types/index.d.ts +9 -1
  82. package/dist/types/index.d.ts.map +1 -1
  83. package/dist/types/index.js +6 -0
  84. package/dist/types/index.js.map +1 -1
  85. package/dist/types/providers.d.ts +691 -0
  86. package/dist/types/providers.d.ts.map +1 -0
  87. package/dist/types/providers.js +14 -0
  88. package/dist/types/providers.js.map +1 -0
  89. package/dist/types/restart.d.ts +132 -0
  90. package/dist/types/restart.d.ts.map +1 -0
  91. package/dist/types/restart.js +2 -0
  92. package/dist/types/restart.js.map +1 -0
  93. package/dist/types/streaming.d.ts +194 -0
  94. package/dist/types/streaming.d.ts.map +1 -0
  95. package/dist/types/streaming.js +67 -0
  96. package/dist/types/streaming.js.map +1 -0
  97. package/dist/types/workflow-context.d.ts +137 -1
  98. package/dist/types/workflow-context.d.ts.map +1 -1
  99. package/dist/utils/agent-validation.d.ts +88 -0
  100. package/dist/utils/agent-validation.d.ts.map +1 -0
  101. package/dist/utils/agent-validation.js +87 -0
  102. package/dist/utils/agent-validation.js.map +1 -0
  103. package/dist/utils/delay.d.ts +7 -0
  104. package/dist/utils/delay.d.ts.map +1 -0
  105. package/dist/utils/delay.js +9 -0
  106. package/dist/utils/delay.js.map +1 -0
  107. package/dist/utils/harness-config.d.ts +180 -0
  108. package/dist/utils/harness-config.d.ts.map +1 -0
  109. package/dist/utils/harness-config.js +311 -0
  110. package/dist/utils/harness-config.js.map +1 -0
  111. package/dist/utils/index.d.ts +9 -1
  112. package/dist/utils/index.d.ts.map +1 -1
  113. package/dist/utils/index.js +8 -1
  114. package/dist/utils/index.js.map +1 -1
  115. package/dist/utils/model-spec.d.ts +110 -0
  116. package/dist/utils/model-spec.d.ts.map +1 -0
  117. package/dist/utils/model-spec.js +149 -0
  118. package/dist/utils/model-spec.js.map +1 -0
  119. package/dist/utils/provider-config.d.ts +10 -0
  120. package/dist/utils/provider-config.d.ts.map +1 -0
  121. package/dist/utils/provider-config.js +10 -0
  122. package/dist/utils/provider-config.js.map +1 -0
  123. package/dist/utils/restart-analysis.d.ts +202 -0
  124. package/dist/utils/restart-analysis.d.ts.map +1 -0
  125. package/dist/utils/restart-analysis.js +426 -0
  126. package/dist/utils/restart-analysis.js.map +1 -0
  127. package/dist/utils/session-serialization.d.ts +118 -0
  128. package/dist/utils/session-serialization.d.ts.map +1 -0
  129. package/dist/utils/session-serialization.js +217 -0
  130. package/dist/utils/session-serialization.js.map +1 -0
  131. package/package.json +31 -5
  132. package/CHANGELOG.md +0 -188
  133. package/dist/__tests__/adversarial/attachChild-performance.test.d.ts +0 -16
  134. package/dist/__tests__/adversarial/attachChild-performance.test.d.ts.map +0 -1
  135. package/dist/__tests__/adversarial/attachChild-performance.test.js +0 -187
  136. package/dist/__tests__/adversarial/attachChild-performance.test.js.map +0 -1
  137. package/dist/__tests__/adversarial/circular-reference.test.d.ts +0 -13
  138. package/dist/__tests__/adversarial/circular-reference.test.d.ts.map +0 -1
  139. package/dist/__tests__/adversarial/circular-reference.test.js +0 -92
  140. package/dist/__tests__/adversarial/circular-reference.test.js.map +0 -1
  141. package/dist/__tests__/adversarial/complex-circular-reference.test.d.ts +0 -16
  142. package/dist/__tests__/adversarial/complex-circular-reference.test.d.ts.map +0 -1
  143. package/dist/__tests__/adversarial/complex-circular-reference.test.js +0 -127
  144. package/dist/__tests__/adversarial/complex-circular-reference.test.js.map +0 -1
  145. package/dist/__tests__/adversarial/concurrent-task-failures.test.d.ts +0 -21
  146. package/dist/__tests__/adversarial/concurrent-task-failures.test.d.ts.map +0 -1
  147. package/dist/__tests__/adversarial/concurrent-task-failures.test.js +0 -667
  148. package/dist/__tests__/adversarial/concurrent-task-failures.test.js.map +0 -1
  149. package/dist/__tests__/adversarial/deep-analysis.test.d.ts +0 -6
  150. package/dist/__tests__/adversarial/deep-analysis.test.d.ts.map +0 -1
  151. package/dist/__tests__/adversarial/deep-analysis.test.js +0 -877
  152. package/dist/__tests__/adversarial/deep-analysis.test.js.map +0 -1
  153. package/dist/__tests__/adversarial/deep-hierarchy-stress.test.d.ts +0 -13
  154. package/dist/__tests__/adversarial/deep-hierarchy-stress.test.d.ts.map +0 -1
  155. package/dist/__tests__/adversarial/deep-hierarchy-stress.test.js +0 -186
  156. package/dist/__tests__/adversarial/deep-hierarchy-stress.test.js.map +0 -1
  157. package/dist/__tests__/adversarial/e2e-prd-validation.test.d.ts +0 -6
  158. package/dist/__tests__/adversarial/e2e-prd-validation.test.d.ts.map +0 -1
  159. package/dist/__tests__/adversarial/e2e-prd-validation.test.js +0 -626
  160. package/dist/__tests__/adversarial/e2e-prd-validation.test.js.map +0 -1
  161. package/dist/__tests__/adversarial/edge-case.test.d.ts +0 -6
  162. package/dist/__tests__/adversarial/edge-case.test.d.ts.map +0 -1
  163. package/dist/__tests__/adversarial/edge-case.test.js +0 -857
  164. package/dist/__tests__/adversarial/edge-case.test.js.map +0 -1
  165. package/dist/__tests__/adversarial/error-merge-strategy.test.d.ts +0 -20
  166. package/dist/__tests__/adversarial/error-merge-strategy.test.d.ts.map +0 -1
  167. package/dist/__tests__/adversarial/error-merge-strategy.test.js +0 -907
  168. package/dist/__tests__/adversarial/error-merge-strategy.test.js.map +0 -1
  169. package/dist/__tests__/adversarial/incremental-performance.test.d.ts +0 -2
  170. package/dist/__tests__/adversarial/incremental-performance.test.d.ts.map +0 -1
  171. package/dist/__tests__/adversarial/incremental-performance.test.js +0 -113
  172. package/dist/__tests__/adversarial/incremental-performance.test.js.map +0 -1
  173. package/dist/__tests__/adversarial/node-map-update-benchmarks.test.d.ts +0 -22
  174. package/dist/__tests__/adversarial/node-map-update-benchmarks.test.d.ts.map +0 -1
  175. package/dist/__tests__/adversarial/node-map-update-benchmarks.test.js +0 -383
  176. package/dist/__tests__/adversarial/node-map-update-benchmarks.test.js.map +0 -1
  177. package/dist/__tests__/adversarial/observer-propagation.test.d.ts +0 -21
  178. package/dist/__tests__/adversarial/observer-propagation.test.d.ts.map +0 -1
  179. package/dist/__tests__/adversarial/observer-propagation.test.js +0 -404
  180. package/dist/__tests__/adversarial/observer-propagation.test.js.map +0 -1
  181. package/dist/__tests__/adversarial/parent-validation.test.d.ts +0 -13
  182. package/dist/__tests__/adversarial/parent-validation.test.d.ts.map +0 -1
  183. package/dist/__tests__/adversarial/parent-validation.test.js +0 -128
  184. package/dist/__tests__/adversarial/parent-validation.test.js.map +0 -1
  185. package/dist/__tests__/adversarial/prd-12-2-compliance.test.d.ts +0 -20
  186. package/dist/__tests__/adversarial/prd-12-2-compliance.test.d.ts.map +0 -1
  187. package/dist/__tests__/adversarial/prd-12-2-compliance.test.js +0 -482
  188. package/dist/__tests__/adversarial/prd-12-2-compliance.test.js.map +0 -1
  189. package/dist/__tests__/adversarial/prd-compliance.test.d.ts +0 -6
  190. package/dist/__tests__/adversarial/prd-compliance.test.d.ts.map +0 -1
  191. package/dist/__tests__/adversarial/prd-compliance.test.js +0 -886
  192. package/dist/__tests__/adversarial/prd-compliance.test.js.map +0 -1
  193. package/dist/__tests__/compatibility/backward-compatibility.test.d.ts +0 -22
  194. package/dist/__tests__/compatibility/backward-compatibility.test.d.ts.map +0 -1
  195. package/dist/__tests__/compatibility/backward-compatibility.test.js +0 -1843
  196. package/dist/__tests__/compatibility/backward-compatibility.test.js.map +0 -1
  197. package/dist/__tests__/helpers/index.d.ts +0 -10
  198. package/dist/__tests__/helpers/index.d.ts.map +0 -1
  199. package/dist/__tests__/helpers/index.js +0 -10
  200. package/dist/__tests__/helpers/index.js.map +0 -1
  201. package/dist/__tests__/helpers/tree-verification.d.ts +0 -90
  202. package/dist/__tests__/helpers/tree-verification.d.ts.map +0 -1
  203. package/dist/__tests__/helpers/tree-verification.js +0 -202
  204. package/dist/__tests__/helpers/tree-verification.js.map +0 -1
  205. package/dist/__tests__/integration/agent-workflow.test.d.ts +0 -2
  206. package/dist/__tests__/integration/agent-workflow.test.d.ts.map +0 -1
  207. package/dist/__tests__/integration/agent-workflow.test.js +0 -256
  208. package/dist/__tests__/integration/agent-workflow.test.js.map +0 -1
  209. package/dist/__tests__/integration/bidirectional-consistency.test.d.ts +0 -14
  210. package/dist/__tests__/integration/bidirectional-consistency.test.d.ts.map +0 -1
  211. package/dist/__tests__/integration/bidirectional-consistency.test.js +0 -668
  212. package/dist/__tests__/integration/bidirectional-consistency.test.js.map +0 -1
  213. package/dist/__tests__/integration/observer-logging.test.d.ts +0 -2
  214. package/dist/__tests__/integration/observer-logging.test.d.ts.map +0 -1
  215. package/dist/__tests__/integration/observer-logging.test.js +0 -517
  216. package/dist/__tests__/integration/observer-logging.test.js.map +0 -1
  217. package/dist/__tests__/integration/tree-mirroring.test.d.ts +0 -2
  218. package/dist/__tests__/integration/tree-mirroring.test.d.ts.map +0 -1
  219. package/dist/__tests__/integration/tree-mirroring.test.js +0 -117
  220. package/dist/__tests__/integration/tree-mirroring.test.js.map +0 -1
  221. package/dist/__tests__/integration/workflow-reparenting.test.d.ts +0 -12
  222. package/dist/__tests__/integration/workflow-reparenting.test.d.ts.map +0 -1
  223. package/dist/__tests__/integration/workflow-reparenting.test.js +0 -239
  224. package/dist/__tests__/integration/workflow-reparenting.test.js.map +0 -1
  225. package/dist/__tests__/unit/agent.test.d.ts +0 -2
  226. package/dist/__tests__/unit/agent.test.d.ts.map +0 -1
  227. package/dist/__tests__/unit/agent.test.js +0 -143
  228. package/dist/__tests__/unit/agent.test.js.map +0 -1
  229. package/dist/__tests__/unit/cache-key.test.d.ts +0 -5
  230. package/dist/__tests__/unit/cache-key.test.d.ts.map +0 -1
  231. package/dist/__tests__/unit/cache-key.test.js +0 -145
  232. package/dist/__tests__/unit/cache-key.test.js.map +0 -1
  233. package/dist/__tests__/unit/cache.test.d.ts +0 -5
  234. package/dist/__tests__/unit/cache.test.d.ts.map +0 -1
  235. package/dist/__tests__/unit/cache.test.js +0 -132
  236. package/dist/__tests__/unit/cache.test.js.map +0 -1
  237. package/dist/__tests__/unit/context.test.d.ts +0 -2
  238. package/dist/__tests__/unit/context.test.d.ts.map +0 -1
  239. package/dist/__tests__/unit/context.test.js +0 -220
  240. package/dist/__tests__/unit/context.test.js.map +0 -1
  241. package/dist/__tests__/unit/decorators.test.d.ts +0 -2
  242. package/dist/__tests__/unit/decorators.test.d.ts.map +0 -1
  243. package/dist/__tests__/unit/decorators.test.js +0 -162
  244. package/dist/__tests__/unit/decorators.test.js.map +0 -1
  245. package/dist/__tests__/unit/introspection-tools.test.d.ts +0 -5
  246. package/dist/__tests__/unit/introspection-tools.test.d.ts.map +0 -1
  247. package/dist/__tests__/unit/introspection-tools.test.js +0 -191
  248. package/dist/__tests__/unit/introspection-tools.test.js.map +0 -1
  249. package/dist/__tests__/unit/logger.test.d.ts +0 -2
  250. package/dist/__tests__/unit/logger.test.d.ts.map +0 -1
  251. package/dist/__tests__/unit/logger.test.js +0 -241
  252. package/dist/__tests__/unit/logger.test.js.map +0 -1
  253. package/dist/__tests__/unit/observable.test.d.ts +0 -2
  254. package/dist/__tests__/unit/observable.test.d.ts.map +0 -1
  255. package/dist/__tests__/unit/observable.test.js +0 -251
  256. package/dist/__tests__/unit/observable.test.js.map +0 -1
  257. package/dist/__tests__/unit/prompt.test.d.ts +0 -2
  258. package/dist/__tests__/unit/prompt.test.d.ts.map +0 -1
  259. package/dist/__tests__/unit/prompt.test.js +0 -113
  260. package/dist/__tests__/unit/prompt.test.js.map +0 -1
  261. package/dist/__tests__/unit/reflection.test.d.ts +0 -5
  262. package/dist/__tests__/unit/reflection.test.d.ts.map +0 -1
  263. package/dist/__tests__/unit/reflection.test.js +0 -160
  264. package/dist/__tests__/unit/reflection.test.js.map +0 -1
  265. package/dist/__tests__/unit/tree-debugger-incremental.test.d.ts +0 -2
  266. package/dist/__tests__/unit/tree-debugger-incremental.test.d.ts.map +0 -1
  267. package/dist/__tests__/unit/tree-debugger-incremental.test.js +0 -136
  268. package/dist/__tests__/unit/tree-debugger-incremental.test.js.map +0 -1
  269. package/dist/__tests__/unit/tree-debugger.test.d.ts +0 -2
  270. package/dist/__tests__/unit/tree-debugger.test.d.ts.map +0 -1
  271. package/dist/__tests__/unit/tree-debugger.test.js +0 -69
  272. package/dist/__tests__/unit/tree-debugger.test.js.map +0 -1
  273. package/dist/__tests__/unit/utils/workflow-error-utils.test.d.ts +0 -2
  274. package/dist/__tests__/unit/utils/workflow-error-utils.test.d.ts.map +0 -1
  275. package/dist/__tests__/unit/utils/workflow-error-utils.test.js +0 -154
  276. package/dist/__tests__/unit/utils/workflow-error-utils.test.js.map +0 -1
  277. package/dist/__tests__/unit/workflow-detachChild.test.d.ts +0 -2
  278. package/dist/__tests__/unit/workflow-detachChild.test.d.ts.map +0 -1
  279. package/dist/__tests__/unit/workflow-detachChild.test.js +0 -76
  280. package/dist/__tests__/unit/workflow-detachChild.test.js.map +0 -1
  281. package/dist/__tests__/unit/workflow-emitEvent-childDetached.test.d.ts +0 -2
  282. package/dist/__tests__/unit/workflow-emitEvent-childDetached.test.d.ts.map +0 -1
  283. package/dist/__tests__/unit/workflow-emitEvent-childDetached.test.js +0 -122
  284. package/dist/__tests__/unit/workflow-emitEvent-childDetached.test.js.map +0 -1
  285. package/dist/__tests__/unit/workflow-isDescendantOf.test.d.ts +0 -2
  286. package/dist/__tests__/unit/workflow-isDescendantOf.test.d.ts.map +0 -1
  287. package/dist/__tests__/unit/workflow-isDescendantOf.test.js +0 -140
  288. package/dist/__tests__/unit/workflow-isDescendantOf.test.js.map +0 -1
  289. package/dist/__tests__/unit/workflow.test.d.ts +0 -2
  290. package/dist/__tests__/unit/workflow.test.d.ts.map +0 -1
  291. package/dist/__tests__/unit/workflow.test.js +0 -330
  292. package/dist/__tests__/unit/workflow.test.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"bidirectional-consistency.test.js","sourceRoot":"","sources":["../../../src/__tests__/integration/bidirectional-consistency.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=observer-logging.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"observer-logging.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/integration/observer-logging.test.ts"],"names":[],"mappings":""}
@@ -1,517 +0,0 @@
1
- import { describe, it, expect, vi } from 'vitest';
2
- import { Workflow } from '../../core/workflow';
3
- describe('Observer Error Logging Integration Tests', () => {
4
- describe('WorkflowLogger observer onLog error', () => {
5
- it('should log observer onLog errors to workflow.node.logs', async () => {
6
- const onLogError = new Error('Observer onLog failed');
7
- const throwingObserver = {
8
- onLog: () => {
9
- throw onLogError;
10
- },
11
- onEvent: () => { },
12
- onStateUpdated: () => { },
13
- onTreeChanged: () => { },
14
- };
15
- class TestWorkflow extends Workflow {
16
- async run() {
17
- this.logger.info('Test message');
18
- }
19
- }
20
- const workflow = new TestWorkflow();
21
- workflow.addObserver(throwingObserver);
22
- await workflow.run();
23
- // Should have 2 logs: the original "Test message" and the observer error
24
- expect(workflow.node.logs.length).toBe(2);
25
- // First log is the original message
26
- expect(workflow.node.logs[0].message).toBe('Test message');
27
- expect(workflow.node.logs[0].level).toBe('info');
28
- // Second log is the observer error
29
- expect(workflow.node.logs[1].message).toBe('Observer onLog error');
30
- expect(workflow.node.logs[1].level).toBe('error');
31
- expect(workflow.node.logs[1].data).toEqual({ error: onLogError });
32
- });
33
- it('should avoid infinite recursion when observer onLog throws', async () => {
34
- let callCount = 0;
35
- const maxCalls = 10; // Safety limit to prevent actual infinite loop
36
- const throwingObserver = {
37
- onLog: () => {
38
- callCount++;
39
- if (callCount < maxCalls) {
40
- throw new Error('Recursive error');
41
- }
42
- },
43
- onEvent: () => { },
44
- onStateUpdated: () => { },
45
- onTreeChanged: () => { },
46
- };
47
- class TestWorkflow extends Workflow {
48
- async run() {
49
- this.logger.info('Test message');
50
- }
51
- }
52
- const workflow = new TestWorkflow();
53
- workflow.addObserver(throwingObserver);
54
- await workflow.run();
55
- // Should only call onLog once (original) + one error log, then stop
56
- // The error log should NOT trigger another observer notification
57
- expect(callCount).toBe(1);
58
- // Should have 2 logs: original + error
59
- expect(workflow.node.logs.length).toBe(2);
60
- });
61
- });
62
- describe('Workflow observer onEvent error', () => {
63
- it('should log observer onEvent errors via this.logger.error', () => {
64
- const onEventError = new Error('Observer onEvent failed');
65
- const throwingObserver = {
66
- onLog: () => { },
67
- onEvent: () => {
68
- throw onEventError;
69
- },
70
- onStateUpdated: () => { },
71
- onTreeChanged: () => { },
72
- };
73
- class TestWorkflow extends Workflow {
74
- async run() {
75
- this.emitEvent({ type: 'testEvent' });
76
- }
77
- }
78
- const workflow = new TestWorkflow();
79
- workflow.addObserver(throwingObserver);
80
- workflow.run();
81
- // Should have error log entry
82
- const errorLog = workflow.node.logs.find((log) => log.message === 'Observer onEvent error');
83
- expect(errorLog).toBeDefined();
84
- expect(errorLog?.level).toBe('error');
85
- expect(errorLog?.data).toEqual({
86
- error: onEventError,
87
- eventType: 'testEvent',
88
- });
89
- });
90
- it('should include event type in error data', () => {
91
- const throwingObserver = {
92
- onLog: () => { },
93
- onEvent: () => {
94
- throw new Error('Event error');
95
- },
96
- onStateUpdated: () => { },
97
- onTreeChanged: () => { },
98
- };
99
- class TestWorkflow extends Workflow {
100
- async run() {
101
- this.emitEvent({ type: 'treeUpdated', root: this.node });
102
- }
103
- }
104
- const workflow = new TestWorkflow();
105
- workflow.addObserver(throwingObserver);
106
- workflow.run();
107
- const errorLog = workflow.node.logs.find((log) => log.message === 'Observer onEvent error');
108
- expect(errorLog?.data).toHaveProperty('eventType', 'treeUpdated');
109
- });
110
- });
111
- describe('Workflow observer onStateUpdated error', () => {
112
- it('should log observer onStateUpdated errors via this.logger.error', async () => {
113
- const onStateUpdatedError = new Error('Observer onStateUpdated failed');
114
- const throwingObserver = {
115
- onLog: () => { },
116
- onEvent: () => { },
117
- onStateUpdated: () => {
118
- throw onStateUpdatedError;
119
- },
120
- onTreeChanged: () => { },
121
- };
122
- class TestWorkflow extends Workflow {
123
- async run() {
124
- this.snapshotState();
125
- }
126
- }
127
- const workflow = new TestWorkflow();
128
- workflow.addObserver(throwingObserver);
129
- await workflow.run();
130
- // Should have error log entry
131
- const errorLog = workflow.node.logs.find((log) => log.message === 'Observer onStateUpdated error');
132
- expect(errorLog).toBeDefined();
133
- expect(errorLog?.level).toBe('error');
134
- expect(errorLog?.data).toEqual({
135
- error: onStateUpdatedError,
136
- nodeId: workflow.node.id,
137
- });
138
- });
139
- it('should include node ID in error data', async () => {
140
- const throwingObserver = {
141
- onLog: () => { },
142
- onEvent: () => { },
143
- onStateUpdated: () => {
144
- throw new Error('State update error');
145
- },
146
- onTreeChanged: () => { },
147
- };
148
- class TestWorkflow extends Workflow {
149
- async run() {
150
- this.snapshotState();
151
- }
152
- }
153
- const workflow = new TestWorkflow();
154
- workflow.addObserver(throwingObserver);
155
- await workflow.run();
156
- const errorLog = workflow.node.logs.find((log) => log.message === 'Observer onStateUpdated error');
157
- expect(errorLog?.data).toHaveProperty('nodeId', workflow.node.id);
158
- });
159
- });
160
- describe('Validation errors still use console.error', () => {
161
- it('should use console.error for child already has parent validation', () => {
162
- const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
163
- const parent = new Workflow('ParentWorkflow');
164
- const child1 = new Workflow('Child1', parent);
165
- const child2 = new Workflow('Child2');
166
- // Try to attach child1 to child2 (should fail - already has parent)
167
- expect(() => {
168
- child2.attachChild(child1);
169
- }).toThrow();
170
- // Should have called console.error for validation
171
- expect(consoleErrorSpy).toHaveBeenCalled();
172
- const errorMessage = consoleErrorSpy.mock.calls[0][0];
173
- expect(errorMessage).toContain('already has a parent');
174
- consoleErrorSpy.mockRestore();
175
- });
176
- it('should use console.error for circular reference detection', () => {
177
- const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
178
- const grandparent = new Workflow('Grandparent');
179
- const parent = new Workflow('Parent', grandparent);
180
- const child = new Workflow('Child', parent);
181
- // Try to attach grandparent as child of child (circular reference)
182
- expect(() => {
183
- child.attachChild(grandparent);
184
- }).toThrow();
185
- // Should have called console.error for validation
186
- expect(consoleErrorSpy).toHaveBeenCalled();
187
- const errorMessage = consoleErrorSpy.mock.calls[0][0];
188
- expect(errorMessage).toContain('circular reference');
189
- consoleErrorSpy.mockRestore();
190
- });
191
- });
192
- describe('Error isolation', () => {
193
- it('should not crash workflow when observer onLog throws', async () => {
194
- const throwingObserver = {
195
- onLog: () => {
196
- throw new Error('Observer onLog error');
197
- },
198
- onEvent: () => { },
199
- onStateUpdated: () => { },
200
- onTreeChanged: () => { },
201
- };
202
- class TestWorkflow extends Workflow {
203
- async run() {
204
- this.logger.info('Message 1');
205
- this.logger.info('Message 2');
206
- this.logger.info('Message 3');
207
- }
208
- }
209
- const workflow = new TestWorkflow();
210
- workflow.addObserver(throwingObserver);
211
- // Should complete without throwing
212
- await expect(workflow.run()).resolves.toBeUndefined();
213
- // All messages should be logged
214
- expect(workflow.node.logs.length).toBe(6); // 3 messages + 3 error logs
215
- });
216
- it('should not crash workflow when observer onEvent throws', () => {
217
- const throwingObserver = {
218
- onLog: () => { },
219
- onEvent: () => {
220
- throw new Error('Observer onEvent error');
221
- },
222
- onStateUpdated: () => { },
223
- onTreeChanged: () => { },
224
- };
225
- class TestWorkflow extends Workflow {
226
- async run() {
227
- this.emitEvent({ type: 'event1' });
228
- this.emitEvent({ type: 'event2' });
229
- this.emitEvent({ type: 'event3' });
230
- }
231
- }
232
- const workflow = new TestWorkflow();
233
- workflow.addObserver(throwingObserver);
234
- // Should complete without throwing
235
- expect(() => {
236
- workflow.run();
237
- }).not.toThrow();
238
- // All events should be emitted
239
- expect(workflow.node.events.length).toBe(3);
240
- });
241
- it('should not crash workflow when observer onStateUpdated throws', async () => {
242
- const throwingObserver = {
243
- onLog: () => { },
244
- onEvent: () => { },
245
- onStateUpdated: () => {
246
- throw new Error('Observer onStateUpdated error');
247
- },
248
- onTreeChanged: () => { },
249
- };
250
- class TestWorkflow extends Workflow {
251
- async run() {
252
- this.snapshotState();
253
- this.snapshotState();
254
- this.snapshotState();
255
- }
256
- }
257
- const workflow = new TestWorkflow();
258
- workflow.addObserver(throwingObserver);
259
- // Should complete without throwing
260
- await expect(workflow.run()).resolves.toBeUndefined();
261
- });
262
- });
263
- describe('Observer onTreeChanged error', () => {
264
- it('should log observer onTreeChanged errors (caught as onEvent error)', () => {
265
- const onTreeChangedError = new Error('Observer onTreeChanged failed');
266
- const throwingObserver = {
267
- onLog: () => { },
268
- onEvent: () => { },
269
- onStateUpdated: () => { },
270
- onTreeChanged: () => {
271
- throw onTreeChangedError;
272
- },
273
- };
274
- class TestWorkflow extends Workflow {
275
- async run() {
276
- // Trigger treeUpdated event which calls onTreeChanged
277
- this.emitEvent({ type: 'treeUpdated', root: this.node });
278
- }
279
- }
280
- const workflow = new TestWorkflow();
281
- workflow.addObserver(throwingObserver);
282
- workflow.run();
283
- // Should have error log entry (logged as "Observer onEvent error" since onTreeChanged is in onEvent try-catch)
284
- const errorLog = workflow.node.logs.find((log) => log.message === 'Observer onEvent error');
285
- expect(errorLog).toBeDefined();
286
- expect(errorLog?.level).toBe('error');
287
- expect(errorLog?.data).toEqual({
288
- error: onTreeChangedError,
289
- eventType: 'treeUpdated',
290
- });
291
- });
292
- it('should log observer onTreeChanged errors for childAttached events', () => {
293
- const onTreeChangedError = new Error('Tree changed on attach');
294
- const throwingObserver = {
295
- onLog: () => { },
296
- onEvent: () => { },
297
- onStateUpdated: () => { },
298
- onTreeChanged: () => {
299
- throw onTreeChangedError;
300
- },
301
- };
302
- const parent = new Workflow('ParentWorkflow');
303
- const child = new Workflow('ChildWorkflow');
304
- parent.addObserver(throwingObserver);
305
- // Trigger childAttached event which calls onTreeChanged
306
- parent.attachChild(child);
307
- // Should have error log entry (logged as "Observer onEvent error")
308
- const errorLog = parent.node.logs.find((log) => log.message === 'Observer onEvent error');
309
- expect(errorLog).toBeDefined();
310
- expect(errorLog?.data).toEqual({
311
- error: onTreeChangedError,
312
- eventType: 'childAttached',
313
- });
314
- });
315
- it('should log observer onTreeChanged errors for childDetached events', () => {
316
- const onTreeChangedError = new Error('Tree changed on detach');
317
- const throwingObserver = {
318
- onLog: () => { },
319
- onEvent: () => { },
320
- onStateUpdated: () => { },
321
- onTreeChanged: () => {
322
- throw onTreeChangedError;
323
- },
324
- };
325
- const parent = new Workflow('ParentWorkflow');
326
- const child = new Workflow('ChildWorkflow', parent);
327
- parent.addObserver(throwingObserver);
328
- // Clear logs from setup
329
- parent.node.logs = [];
330
- // Trigger childDetached event which calls onTreeChanged
331
- parent.detachChild(child);
332
- // Should have error log entry (logged as "Observer onEvent error")
333
- const errorLog = parent.node.logs.find((log) => log.message === 'Observer onEvent error');
334
- expect(errorLog).toBeDefined();
335
- expect(errorLog?.data).toEqual({
336
- error: onTreeChangedError,
337
- eventType: 'childDetached',
338
- });
339
- });
340
- });
341
- describe('Console.error negative verification', () => {
342
- it('should NOT call console.error for observer onLog errors', async () => {
343
- const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
344
- const throwingObserver = {
345
- onLog: () => {
346
- throw new Error('Observer onLog error');
347
- },
348
- onEvent: () => { },
349
- onStateUpdated: () => { },
350
- onTreeChanged: () => { },
351
- };
352
- class TestWorkflow extends Workflow {
353
- async run() {
354
- this.logger.info('Test message');
355
- }
356
- }
357
- const workflow = new TestWorkflow();
358
- workflow.addObserver(throwingObserver);
359
- await workflow.run();
360
- // Verify console.error was NOT called for observer error
361
- expect(consoleErrorSpy).not.toHaveBeenCalled();
362
- // Verify error was logged to workflow.node.logs instead
363
- const errorLog = workflow.node.logs.find((log) => log.message === 'Observer onLog error');
364
- expect(errorLog).toBeDefined();
365
- consoleErrorSpy.mockRestore();
366
- });
367
- it('should NOT call console.error for observer onEvent errors', () => {
368
- const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
369
- const throwingObserver = {
370
- onLog: () => { },
371
- onEvent: () => {
372
- throw new Error('Observer onEvent error');
373
- },
374
- onStateUpdated: () => { },
375
- onTreeChanged: () => { },
376
- };
377
- class TestWorkflow extends Workflow {
378
- async run() {
379
- this.emitEvent({ type: 'testEvent' });
380
- }
381
- }
382
- const workflow = new TestWorkflow();
383
- workflow.addObserver(throwingObserver);
384
- workflow.run();
385
- // Verify console.error was NOT called for observer error
386
- expect(consoleErrorSpy).not.toHaveBeenCalled();
387
- // Verify error was logged to workflow.node.logs instead
388
- const errorLog = workflow.node.logs.find((log) => log.message === 'Observer onEvent error');
389
- expect(errorLog).toBeDefined();
390
- consoleErrorSpy.mockRestore();
391
- });
392
- it('should NOT call console.error for observer onStateUpdated errors', async () => {
393
- const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
394
- const throwingObserver = {
395
- onLog: () => { },
396
- onEvent: () => { },
397
- onStateUpdated: () => {
398
- throw new Error('Observer onStateUpdated error');
399
- },
400
- onTreeChanged: () => { },
401
- };
402
- class TestWorkflow extends Workflow {
403
- async run() {
404
- this.snapshotState();
405
- }
406
- }
407
- const workflow = new TestWorkflow();
408
- workflow.addObserver(throwingObserver);
409
- await workflow.run();
410
- // Verify console.error was NOT called for observer error
411
- expect(consoleErrorSpy).not.toHaveBeenCalled();
412
- // Verify error was logged to workflow.node.logs instead
413
- const errorLog = workflow.node.logs.find((log) => log.message === 'Observer onStateUpdated error');
414
- expect(errorLog).toBeDefined();
415
- consoleErrorSpy.mockRestore();
416
- });
417
- it('should NOT call console.error for observer onTreeChanged errors', () => {
418
- const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
419
- const throwingObserver = {
420
- onLog: () => { },
421
- onEvent: () => { },
422
- onStateUpdated: () => { },
423
- onTreeChanged: () => {
424
- throw new Error('Observer onTreeChanged error');
425
- },
426
- };
427
- const parent = new Workflow('ParentWorkflow');
428
- const child = new Workflow('ChildWorkflow');
429
- parent.addObserver(throwingObserver);
430
- // Trigger childAttached which calls onTreeChanged
431
- parent.attachChild(child);
432
- // Verify console.error was NOT called for observer error
433
- expect(consoleErrorSpy).not.toHaveBeenCalled();
434
- // Verify error was logged to workflow.node.logs instead (as onEvent error)
435
- const errorLog = parent.node.logs.find((log) => log.message === 'Observer onEvent error');
436
- expect(errorLog).toBeDefined();
437
- consoleErrorSpy.mockRestore();
438
- });
439
- });
440
- describe('Multiple observers', () => {
441
- it('should continue notifying other observers after one throws', async () => {
442
- let observer2Called = false;
443
- let observer3Called = false;
444
- const throwingObserver = {
445
- onLog: () => {
446
- throw new Error('Observer 1 failed');
447
- },
448
- onEvent: () => { },
449
- onStateUpdated: () => { },
450
- onTreeChanged: () => { },
451
- };
452
- const workingObserver2 = {
453
- onLog: () => {
454
- observer2Called = true;
455
- },
456
- onEvent: () => { },
457
- onStateUpdated: () => { },
458
- onTreeChanged: () => { },
459
- };
460
- const workingObserver3 = {
461
- onLog: () => {
462
- observer3Called = true;
463
- },
464
- onEvent: () => { },
465
- onStateUpdated: () => { },
466
- onTreeChanged: () => { },
467
- };
468
- class TestWorkflow extends Workflow {
469
- async run() {
470
- this.logger.info('Test message');
471
- }
472
- }
473
- const workflow = new TestWorkflow();
474
- workflow.addObserver(throwingObserver);
475
- workflow.addObserver(workingObserver2);
476
- workflow.addObserver(workingObserver3);
477
- await workflow.run();
478
- // Both working observers should have been called
479
- expect(observer2Called).toBe(true);
480
- expect(observer3Called).toBe(true);
481
- // Should have error log for throwing observer
482
- const errorLog = workflow.node.logs.find((log) => log.message === 'Observer onLog error');
483
- expect(errorLog).toBeDefined();
484
- });
485
- it('should log errors for multiple throwing observers', async () => {
486
- const throwingObserver1 = {
487
- onLog: () => {
488
- throw new Error('Observer 1 error');
489
- },
490
- onEvent: () => { },
491
- onStateUpdated: () => { },
492
- onTreeChanged: () => { },
493
- };
494
- const throwingObserver2 = {
495
- onLog: () => {
496
- throw new Error('Observer 2 error');
497
- },
498
- onEvent: () => { },
499
- onStateUpdated: () => { },
500
- onTreeChanged: () => { },
501
- };
502
- class TestWorkflow extends Workflow {
503
- async run() {
504
- this.logger.info('Test message');
505
- }
506
- }
507
- const workflow = new TestWorkflow();
508
- workflow.addObserver(throwingObserver1);
509
- workflow.addObserver(throwingObserver2);
510
- await workflow.run();
511
- // Should have error logs for both throwing observers
512
- const errorLogs = workflow.node.logs.filter((log) => log.message === 'Observer onLog error');
513
- expect(errorLogs.length).toBe(2);
514
- });
515
- });
516
- });
517
- //# sourceMappingURL=observer-logging.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"observer-logging.test.js","sourceRoot":"","sources":["../../../src/__tests__/integration/observer-logging.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=tree-mirroring.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tree-mirroring.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/integration/tree-mirroring.test.ts"],"names":[],"mappings":""}