@arke-institute/rhiza 0.1.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 (230) hide show
  1. package/README.md +106 -0
  2. package/dist/__tests__/fixtures/index.d.ts +9 -0
  3. package/dist/__tests__/fixtures/index.d.ts.map +1 -0
  4. package/dist/__tests__/fixtures/index.js +12 -0
  5. package/dist/__tests__/fixtures/index.js.map +1 -0
  6. package/dist/__tests__/fixtures/kladoi/index.d.ts +165 -0
  7. package/dist/__tests__/fixtures/kladoi/index.d.ts.map +1 -0
  8. package/dist/__tests__/fixtures/kladoi/index.js +270 -0
  9. package/dist/__tests__/fixtures/kladoi/index.js.map +1 -0
  10. package/dist/__tests__/fixtures/logs/index.d.ts +19 -0
  11. package/dist/__tests__/fixtures/logs/index.d.ts.map +1 -0
  12. package/dist/__tests__/fixtures/logs/index.js +545 -0
  13. package/dist/__tests__/fixtures/logs/index.js.map +1 -0
  14. package/dist/__tests__/fixtures/mock-client.d.ts +127 -0
  15. package/dist/__tests__/fixtures/mock-client.d.ts.map +1 -0
  16. package/dist/__tests__/fixtures/mock-client.js +415 -0
  17. package/dist/__tests__/fixtures/mock-client.js.map +1 -0
  18. package/dist/__tests__/fixtures/rhizai/index.d.ts +54 -0
  19. package/dist/__tests__/fixtures/rhizai/index.d.ts.map +1 -0
  20. package/dist/__tests__/fixtures/rhizai/index.js +283 -0
  21. package/dist/__tests__/fixtures/rhizai/index.js.map +1 -0
  22. package/dist/__tests__/unit/fixtures.test.d.ts +10 -0
  23. package/dist/__tests__/unit/fixtures.test.d.ts.map +1 -0
  24. package/dist/__tests__/unit/fixtures.test.js +275 -0
  25. package/dist/__tests__/unit/fixtures.test.js.map +1 -0
  26. package/dist/__tests__/unit/handoff/gather.test.d.ts +8 -0
  27. package/dist/__tests__/unit/handoff/gather.test.d.ts.map +1 -0
  28. package/dist/__tests__/unit/handoff/gather.test.js +176 -0
  29. package/dist/__tests__/unit/handoff/gather.test.js.map +1 -0
  30. package/dist/__tests__/unit/handoff/interpret.test.d.ts +9 -0
  31. package/dist/__tests__/unit/handoff/interpret.test.d.ts.map +1 -0
  32. package/dist/__tests__/unit/handoff/interpret.test.js +370 -0
  33. package/dist/__tests__/unit/handoff/interpret.test.js.map +1 -0
  34. package/dist/__tests__/unit/handoff/route.test.d.ts +8 -0
  35. package/dist/__tests__/unit/handoff/route.test.d.ts.map +1 -0
  36. package/dist/__tests__/unit/handoff/route.test.js +271 -0
  37. package/dist/__tests__/unit/handoff/route.test.js.map +1 -0
  38. package/dist/__tests__/unit/handoff/scatter.test.d.ts +7 -0
  39. package/dist/__tests__/unit/handoff/scatter.test.d.ts.map +1 -0
  40. package/dist/__tests__/unit/handoff/scatter.test.js +54 -0
  41. package/dist/__tests__/unit/handoff/scatter.test.js.map +1 -0
  42. package/dist/__tests__/unit/resume.test.d.ts +8 -0
  43. package/dist/__tests__/unit/resume.test.d.ts.map +1 -0
  44. package/dist/__tests__/unit/resume.test.js +134 -0
  45. package/dist/__tests__/unit/resume.test.js.map +1 -0
  46. package/dist/__tests__/unit/status.test.d.ts +8 -0
  47. package/dist/__tests__/unit/status.test.d.ts.map +1 -0
  48. package/dist/__tests__/unit/status.test.js +164 -0
  49. package/dist/__tests__/unit/status.test.js.map +1 -0
  50. package/dist/__tests__/unit/target.test.d.ts +8 -0
  51. package/dist/__tests__/unit/target.test.d.ts.map +1 -0
  52. package/dist/__tests__/unit/target.test.js +116 -0
  53. package/dist/__tests__/unit/target.test.js.map +1 -0
  54. package/dist/__tests__/unit/traverse.test.d.ts +8 -0
  55. package/dist/__tests__/unit/traverse.test.d.ts.map +1 -0
  56. package/dist/__tests__/unit/traverse.test.js +143 -0
  57. package/dist/__tests__/unit/traverse.test.js.map +1 -0
  58. package/dist/__tests__/unit/validation/klados.test.d.ts +16 -0
  59. package/dist/__tests__/unit/validation/klados.test.d.ts.map +1 -0
  60. package/dist/__tests__/unit/validation/klados.test.js +275 -0
  61. package/dist/__tests__/unit/validation/klados.test.js.map +1 -0
  62. package/dist/__tests__/unit/validation/rhiza.test.d.ts +16 -0
  63. package/dist/__tests__/unit/validation/rhiza.test.d.ts.map +1 -0
  64. package/dist/__tests__/unit/validation/rhiza.test.js +612 -0
  65. package/dist/__tests__/unit/validation/rhiza.test.js.map +1 -0
  66. package/dist/__tests__/unit/validation/runtime.test.d.ts +11 -0
  67. package/dist/__tests__/unit/validation/runtime.test.d.ts.map +1 -0
  68. package/dist/__tests__/unit/validation/runtime.test.js +553 -0
  69. package/dist/__tests__/unit/validation/runtime.test.js.map +1 -0
  70. package/dist/__tests__/unit/worker/errors.test.d.ts +2 -0
  71. package/dist/__tests__/unit/worker/errors.test.d.ts.map +1 -0
  72. package/dist/__tests__/unit/worker/errors.test.js +226 -0
  73. package/dist/__tests__/unit/worker/errors.test.js.map +1 -0
  74. package/dist/__tests__/unit/worker/job.test.d.ts +2 -0
  75. package/dist/__tests__/unit/worker/job.test.d.ts.map +1 -0
  76. package/dist/__tests__/unit/worker/job.test.js +233 -0
  77. package/dist/__tests__/unit/worker/job.test.js.map +1 -0
  78. package/dist/client/index.d.ts +10 -0
  79. package/dist/client/index.d.ts.map +1 -0
  80. package/dist/client/index.js +8 -0
  81. package/dist/client/index.js.map +1 -0
  82. package/dist/client/interface.d.ts +142 -0
  83. package/dist/client/interface.d.ts.map +1 -0
  84. package/dist/client/interface.js +8 -0
  85. package/dist/client/interface.js.map +1 -0
  86. package/dist/client/mock.d.ts +95 -0
  87. package/dist/client/mock.d.ts.map +1 -0
  88. package/dist/client/mock.js +795 -0
  89. package/dist/client/mock.js.map +1 -0
  90. package/dist/client/types.d.ts +344 -0
  91. package/dist/client/types.d.ts.map +1 -0
  92. package/dist/client/types.js +8 -0
  93. package/dist/client/types.js.map +1 -0
  94. package/dist/handoff/gather-api.d.ts +60 -0
  95. package/dist/handoff/gather-api.d.ts.map +1 -0
  96. package/dist/handoff/gather-api.js +130 -0
  97. package/dist/handoff/gather-api.js.map +1 -0
  98. package/dist/handoff/gather.d.ts +59 -0
  99. package/dist/handoff/gather.d.ts.map +1 -0
  100. package/dist/handoff/gather.js +134 -0
  101. package/dist/handoff/gather.js.map +1 -0
  102. package/dist/handoff/index.d.ts +19 -0
  103. package/dist/handoff/index.d.ts.map +1 -0
  104. package/dist/handoff/index.js +25 -0
  105. package/dist/handoff/index.js.map +1 -0
  106. package/dist/handoff/interpret.d.ts +79 -0
  107. package/dist/handoff/interpret.d.ts.map +1 -0
  108. package/dist/handoff/interpret.js +197 -0
  109. package/dist/handoff/interpret.js.map +1 -0
  110. package/dist/handoff/invoke.d.ts +82 -0
  111. package/dist/handoff/invoke.d.ts.map +1 -0
  112. package/dist/handoff/invoke.js +196 -0
  113. package/dist/handoff/invoke.js.map +1 -0
  114. package/dist/handoff/route.d.ts +25 -0
  115. package/dist/handoff/route.d.ts.map +1 -0
  116. package/dist/handoff/route.js +65 -0
  117. package/dist/handoff/route.js.map +1 -0
  118. package/dist/handoff/scatter-api.d.ts +62 -0
  119. package/dist/handoff/scatter-api.d.ts.map +1 -0
  120. package/dist/handoff/scatter-api.js +81 -0
  121. package/dist/handoff/scatter-api.js.map +1 -0
  122. package/dist/handoff/scatter.d.ts +19 -0
  123. package/dist/handoff/scatter.d.ts.map +1 -0
  124. package/dist/handoff/scatter.js +27 -0
  125. package/dist/handoff/scatter.js.map +1 -0
  126. package/dist/handoff/target.d.ts +16 -0
  127. package/dist/handoff/target.d.ts.map +1 -0
  128. package/dist/handoff/target.js +51 -0
  129. package/dist/handoff/target.js.map +1 -0
  130. package/dist/index.d.ts +42 -0
  131. package/dist/index.d.ts.map +1 -0
  132. package/dist/index.js +52 -0
  133. package/dist/index.js.map +1 -0
  134. package/dist/logging/index.d.ts +4 -0
  135. package/dist/logging/index.d.ts.map +1 -0
  136. package/dist/logging/index.js +3 -0
  137. package/dist/logging/index.js.map +1 -0
  138. package/dist/logging/logger.d.ts +52 -0
  139. package/dist/logging/logger.d.ts.map +1 -0
  140. package/dist/logging/logger.js +70 -0
  141. package/dist/logging/logger.js.map +1 -0
  142. package/dist/logging/writer.d.ts +63 -0
  143. package/dist/logging/writer.d.ts.map +1 -0
  144. package/dist/logging/writer.js +160 -0
  145. package/dist/logging/writer.js.map +1 -0
  146. package/dist/resume/index.d.ts +77 -0
  147. package/dist/resume/index.d.ts.map +1 -0
  148. package/dist/resume/index.js +110 -0
  149. package/dist/resume/index.js.map +1 -0
  150. package/dist/status/index.d.ts +54 -0
  151. package/dist/status/index.d.ts.map +1 -0
  152. package/dist/status/index.js +107 -0
  153. package/dist/status/index.js.map +1 -0
  154. package/dist/traverse/index.d.ts +53 -0
  155. package/dist/traverse/index.d.ts.map +1 -0
  156. package/dist/traverse/index.js +142 -0
  157. package/dist/traverse/index.js.map +1 -0
  158. package/dist/types/batch.d.ts +53 -0
  159. package/dist/types/batch.d.ts.map +1 -0
  160. package/dist/types/batch.js +2 -0
  161. package/dist/types/batch.js.map +1 -0
  162. package/dist/types/index.d.ts +10 -0
  163. package/dist/types/index.d.ts.map +1 -0
  164. package/dist/types/index.js +2 -0
  165. package/dist/types/index.js.map +1 -0
  166. package/dist/types/klados.d.ts +63 -0
  167. package/dist/types/klados.d.ts.map +1 -0
  168. package/dist/types/klados.js +2 -0
  169. package/dist/types/klados.js.map +1 -0
  170. package/dist/types/log.d.ts +107 -0
  171. package/dist/types/log.d.ts.map +1 -0
  172. package/dist/types/log.js +2 -0
  173. package/dist/types/log.js.map +1 -0
  174. package/dist/types/refs.d.ts +58 -0
  175. package/dist/types/refs.d.ts.map +1 -0
  176. package/dist/types/refs.js +43 -0
  177. package/dist/types/refs.js.map +1 -0
  178. package/dist/types/request.d.ts +69 -0
  179. package/dist/types/request.d.ts.map +1 -0
  180. package/dist/types/request.js +2 -0
  181. package/dist/types/request.js.map +1 -0
  182. package/dist/types/response.d.ts +31 -0
  183. package/dist/types/response.d.ts.map +1 -0
  184. package/dist/types/response.js +2 -0
  185. package/dist/types/response.js.map +1 -0
  186. package/dist/types/rhiza.d.ts +100 -0
  187. package/dist/types/rhiza.d.ts.map +1 -0
  188. package/dist/types/rhiza.js +2 -0
  189. package/dist/types/rhiza.js.map +1 -0
  190. package/dist/types/status.d.ts +84 -0
  191. package/dist/types/status.d.ts.map +1 -0
  192. package/dist/types/status.js +2 -0
  193. package/dist/types/status.js.map +1 -0
  194. package/dist/utils/id.d.ts +15 -0
  195. package/dist/utils/id.d.ts.map +1 -0
  196. package/dist/utils/id.js +25 -0
  197. package/dist/utils/id.js.map +1 -0
  198. package/dist/utils/index.d.ts +2 -0
  199. package/dist/utils/index.d.ts.map +1 -0
  200. package/dist/utils/index.js +2 -0
  201. package/dist/utils/index.js.map +1 -0
  202. package/dist/validation/index.d.ts +9 -0
  203. package/dist/validation/index.d.ts.map +1 -0
  204. package/dist/validation/index.js +9 -0
  205. package/dist/validation/index.js.map +1 -0
  206. package/dist/validation/validate-klados.d.ts +38 -0
  207. package/dist/validation/validate-klados.d.ts.map +1 -0
  208. package/dist/validation/validate-klados.js +139 -0
  209. package/dist/validation/validate-klados.js.map +1 -0
  210. package/dist/validation/validate-rhiza.d.ts +29 -0
  211. package/dist/validation/validate-rhiza.d.ts.map +1 -0
  212. package/dist/validation/validate-rhiza.js +382 -0
  213. package/dist/validation/validate-rhiza.js.map +1 -0
  214. package/dist/validation/validate-runtime.d.ts +28 -0
  215. package/dist/validation/validate-runtime.d.ts.map +1 -0
  216. package/dist/validation/validate-runtime.js +212 -0
  217. package/dist/validation/validate-runtime.js.map +1 -0
  218. package/dist/worker/errors.d.ts +77 -0
  219. package/dist/worker/errors.d.ts.map +1 -0
  220. package/dist/worker/errors.js +143 -0
  221. package/dist/worker/errors.js.map +1 -0
  222. package/dist/worker/index.d.ts +8 -0
  223. package/dist/worker/index.d.ts.map +1 -0
  224. package/dist/worker/index.js +8 -0
  225. package/dist/worker/index.js.map +1 -0
  226. package/dist/worker/job.d.ts +150 -0
  227. package/dist/worker/job.d.ts.map +1 -0
  228. package/dist/worker/job.js +280 -0
  229. package/dist/worker/job.js.map +1 -0
  230. package/package.json +48 -0
@@ -0,0 +1,545 @@
1
+ /**
2
+ * Mock Log Fixtures
3
+ *
4
+ * Pre-configured log entries for testing:
5
+ * - successfulLinear: Complete linear workflow execution
6
+ * - successfulScatterGather: Complete scatter-gather execution
7
+ * - partialError: Workflow with some failed branches
8
+ * - allErrors: Workflow where everything failed
9
+ */
10
+ // ============================================================================
11
+ // Helper to create a minimal KladosRequest
12
+ // ============================================================================
13
+ function createRequest(overrides = {}) {
14
+ return {
15
+ job_id: `job_${Date.now()}`,
16
+ target: 'entity_target',
17
+ job_collection: 'job_collection_1',
18
+ api_base: 'https://api.arke.test',
19
+ expires_at: '2025-12-31T23:59:59Z',
20
+ network: 'test',
21
+ ...overrides,
22
+ };
23
+ }
24
+ // ============================================================================
25
+ // Successful Linear Workflow
26
+ // ============================================================================
27
+ export const successfulLinearLogs = [
28
+ {
29
+ id: 'log_linear_1',
30
+ type: 'klados_log',
31
+ rhiza_id: 'II01rhiza_linear',
32
+ klados_id: 'II01klados_a',
33
+ job_id: 'job_linear_1',
34
+ status: 'done',
35
+ started_at: '2025-01-01T00:00:00Z',
36
+ completed_at: '2025-01-01T00:01:00Z',
37
+ received: { target: 'input_entity' },
38
+ produced: { entity_ids: ['output_a'] },
39
+ handoffs: [{
40
+ type: 'pass',
41
+ target: 'II01klados_b',
42
+ target_type: 'klados',
43
+ invocations: [{
44
+ request: createRequest({ job_id: 'job_linear_2', target: 'output_a' }),
45
+ }],
46
+ }],
47
+ },
48
+ {
49
+ id: 'log_linear_2',
50
+ type: 'klados_log',
51
+ rhiza_id: 'II01rhiza_linear',
52
+ klados_id: 'II01klados_b',
53
+ job_id: 'job_linear_2',
54
+ status: 'done',
55
+ started_at: '2025-01-01T00:01:00Z',
56
+ completed_at: '2025-01-01T00:02:00Z',
57
+ received: {
58
+ target: 'output_a',
59
+ from_logs: ['log_linear_1'],
60
+ invocation: { request: createRequest({ job_id: 'job_linear_2', target: 'output_a' }) },
61
+ },
62
+ produced: { entity_ids: ['output_b'] },
63
+ handoffs: [{
64
+ type: 'pass',
65
+ target: 'II01klados_c',
66
+ target_type: 'klados',
67
+ invocations: [{
68
+ request: createRequest({ job_id: 'job_linear_3', target: 'output_b' }),
69
+ }],
70
+ }],
71
+ },
72
+ {
73
+ id: 'log_linear_3',
74
+ type: 'klados_log',
75
+ rhiza_id: 'II01rhiza_linear',
76
+ klados_id: 'II01klados_c',
77
+ job_id: 'job_linear_3',
78
+ status: 'done',
79
+ started_at: '2025-01-01T00:02:00Z',
80
+ completed_at: '2025-01-01T00:03:00Z',
81
+ received: {
82
+ target: 'output_b',
83
+ from_logs: ['log_linear_2'],
84
+ invocation: { request: createRequest({ job_id: 'job_linear_3', target: 'output_b' }) },
85
+ },
86
+ produced: { entity_ids: ['final_output'] },
87
+ // No handoffs - terminal (done: true)
88
+ },
89
+ ];
90
+ // ============================================================================
91
+ // Successful Scatter-Gather Workflow
92
+ // ============================================================================
93
+ export const successfulScatterGatherLogs = [
94
+ // Producer (root)
95
+ {
96
+ id: 'log_sg_producer',
97
+ type: 'klados_log',
98
+ rhiza_id: 'II01rhiza_scatter_gather',
99
+ klados_id: 'II01klados_producer',
100
+ job_id: 'job_sg_1',
101
+ status: 'done',
102
+ started_at: '2025-01-01T00:00:00Z',
103
+ completed_at: '2025-01-01T00:01:00Z',
104
+ received: { target: 'input_doc' },
105
+ produced: { entity_ids: ['page_1', 'page_2', 'page_3'] },
106
+ handoffs: [{
107
+ type: 'scatter',
108
+ target: 'II01klados_worker',
109
+ target_type: 'klados',
110
+ batch_id: 'batch_sg_1',
111
+ invocations: [
112
+ { request: createRequest({ job_id: 'job_sg_w1', target: 'page_1' }), batch_index: 0 },
113
+ { request: createRequest({ job_id: 'job_sg_w2', target: 'page_2' }), batch_index: 1 },
114
+ { request: createRequest({ job_id: 'job_sg_w3', target: 'page_3' }), batch_index: 2 },
115
+ ],
116
+ }],
117
+ },
118
+ // Worker 0
119
+ {
120
+ id: 'log_sg_worker_0',
121
+ type: 'klados_log',
122
+ rhiza_id: 'II01rhiza_scatter_gather',
123
+ klados_id: 'II01klados_worker',
124
+ job_id: 'job_sg_w1',
125
+ status: 'done',
126
+ started_at: '2025-01-01T00:01:00Z',
127
+ completed_at: '2025-01-01T00:02:00Z',
128
+ received: {
129
+ target: 'page_1',
130
+ from_logs: ['log_sg_producer'],
131
+ batch: { id: 'batch_sg_1', index: 0, total: 3 },
132
+ invocation: { request: createRequest({ job_id: 'job_sg_w1', target: 'page_1' }), batch_index: 0 },
133
+ },
134
+ produced: { entity_ids: ['result_1'] },
135
+ // Gather handoff (not last)
136
+ handoffs: [{
137
+ type: 'gather',
138
+ target: 'II01klados_aggregator',
139
+ target_type: 'klados',
140
+ invocations: [], // Not last, so no invocation
141
+ }],
142
+ },
143
+ // Worker 1
144
+ {
145
+ id: 'log_sg_worker_1',
146
+ type: 'klados_log',
147
+ rhiza_id: 'II01rhiza_scatter_gather',
148
+ klados_id: 'II01klados_worker',
149
+ job_id: 'job_sg_w2',
150
+ status: 'done',
151
+ started_at: '2025-01-01T00:01:00Z',
152
+ completed_at: '2025-01-01T00:02:30Z',
153
+ received: {
154
+ target: 'page_2',
155
+ from_logs: ['log_sg_producer'],
156
+ batch: { id: 'batch_sg_1', index: 1, total: 3 },
157
+ invocation: { request: createRequest({ job_id: 'job_sg_w2', target: 'page_2' }), batch_index: 1 },
158
+ },
159
+ produced: { entity_ids: ['result_2'] },
160
+ handoffs: [{
161
+ type: 'gather',
162
+ target: 'II01klados_aggregator',
163
+ target_type: 'klados',
164
+ invocations: [], // Not last
165
+ }],
166
+ },
167
+ // Worker 2 (last - triggers gather)
168
+ {
169
+ id: 'log_sg_worker_2',
170
+ type: 'klados_log',
171
+ rhiza_id: 'II01rhiza_scatter_gather',
172
+ klados_id: 'II01klados_worker',
173
+ job_id: 'job_sg_w3',
174
+ status: 'done',
175
+ started_at: '2025-01-01T00:01:00Z',
176
+ completed_at: '2025-01-01T00:03:00Z',
177
+ received: {
178
+ target: 'page_3',
179
+ from_logs: ['log_sg_producer'],
180
+ batch: { id: 'batch_sg_1', index: 2, total: 3 },
181
+ invocation: { request: createRequest({ job_id: 'job_sg_w3', target: 'page_3' }), batch_index: 2 },
182
+ },
183
+ produced: { entity_ids: ['result_3'] },
184
+ handoffs: [{
185
+ type: 'gather',
186
+ target: 'II01klados_aggregator',
187
+ target_type: 'klados',
188
+ invocations: [{
189
+ // Last worker triggers the gather
190
+ request: createRequest({ job_id: 'job_sg_agg', target: 'result_1,result_2,result_3' }),
191
+ }],
192
+ }],
193
+ },
194
+ // Aggregator
195
+ {
196
+ id: 'log_sg_aggregator',
197
+ type: 'klados_log',
198
+ rhiza_id: 'II01rhiza_scatter_gather',
199
+ klados_id: 'II01klados_aggregator',
200
+ job_id: 'job_sg_agg',
201
+ status: 'done',
202
+ started_at: '2025-01-01T00:03:00Z',
203
+ completed_at: '2025-01-01T00:04:00Z',
204
+ received: {
205
+ target: ['result_1', 'result_2', 'result_3'],
206
+ from_logs: ['log_sg_worker_0', 'log_sg_worker_1', 'log_sg_worker_2'],
207
+ invocation: { request: createRequest({ job_id: 'job_sg_agg', target: 'result_1,result_2,result_3' }) },
208
+ },
209
+ produced: { entity_ids: ['final_document'] },
210
+ // No handoffs - terminal
211
+ },
212
+ ];
213
+ // ============================================================================
214
+ // Partial Error (some workers failed)
215
+ // ============================================================================
216
+ export const partialErrorLogs = [
217
+ // Producer (root) - successful
218
+ {
219
+ id: 'log_err_producer',
220
+ type: 'klados_log',
221
+ rhiza_id: 'II01rhiza_scatter_gather',
222
+ klados_id: 'II01klados_producer',
223
+ job_id: 'job_err_1',
224
+ status: 'done',
225
+ started_at: '2025-01-01T00:00:00Z',
226
+ completed_at: '2025-01-01T00:01:00Z',
227
+ received: { target: 'input_doc' },
228
+ produced: { entity_ids: ['item_1', 'item_2', 'item_3'] },
229
+ handoffs: [{
230
+ type: 'scatter',
231
+ target: 'II01klados_worker',
232
+ target_type: 'klados',
233
+ batch_id: 'batch_err_1',
234
+ invocations: [
235
+ { request: createRequest({ job_id: 'job_err_w1', target: 'item_1' }), batch_index: 0 },
236
+ { request: createRequest({ job_id: 'job_err_w2', target: 'item_2' }), batch_index: 1 },
237
+ { request: createRequest({ job_id: 'job_err_w3', target: 'item_3' }), batch_index: 2 },
238
+ ],
239
+ }],
240
+ },
241
+ // Worker 0 - success
242
+ {
243
+ id: 'log_err_worker_0',
244
+ type: 'klados_log',
245
+ rhiza_id: 'II01rhiza_scatter_gather',
246
+ klados_id: 'II01klados_worker',
247
+ job_id: 'job_err_w1',
248
+ status: 'done',
249
+ started_at: '2025-01-01T00:01:00Z',
250
+ completed_at: '2025-01-01T00:02:00Z',
251
+ received: {
252
+ target: 'item_1',
253
+ from_logs: ['log_err_producer'],
254
+ batch: { id: 'batch_err_1', index: 0, total: 3 },
255
+ invocation: { request: createRequest({ job_id: 'job_err_w1', target: 'item_1' }), batch_index: 0 },
256
+ },
257
+ produced: { entity_ids: ['result_1'] },
258
+ },
259
+ // Worker 1 - ERROR (retryable)
260
+ {
261
+ id: 'log_err_worker_1',
262
+ type: 'klados_log',
263
+ rhiza_id: 'II01rhiza_scatter_gather',
264
+ klados_id: 'II01klados_worker',
265
+ job_id: 'job_err_w2',
266
+ status: 'error',
267
+ started_at: '2025-01-01T00:01:00Z',
268
+ completed_at: '2025-01-01T00:01:30Z',
269
+ received: {
270
+ target: 'item_2',
271
+ from_logs: ['log_err_producer'],
272
+ batch: { id: 'batch_err_1', index: 1, total: 3 },
273
+ invocation: { request: createRequest({ job_id: 'job_err_w2', target: 'item_2' }), batch_index: 1 },
274
+ },
275
+ error: {
276
+ code: 'TIMEOUT',
277
+ message: 'Processing timeout after 30s',
278
+ retryable: true,
279
+ },
280
+ },
281
+ // Worker 2 - success
282
+ {
283
+ id: 'log_err_worker_2',
284
+ type: 'klados_log',
285
+ rhiza_id: 'II01rhiza_scatter_gather',
286
+ klados_id: 'II01klados_worker',
287
+ job_id: 'job_err_w3',
288
+ status: 'done',
289
+ started_at: '2025-01-01T00:01:00Z',
290
+ completed_at: '2025-01-01T00:02:00Z',
291
+ received: {
292
+ target: 'item_3',
293
+ from_logs: ['log_err_producer'],
294
+ batch: { id: 'batch_err_1', index: 2, total: 3 },
295
+ invocation: { request: createRequest({ job_id: 'job_err_w3', target: 'item_3' }), batch_index: 2 },
296
+ },
297
+ produced: { entity_ids: ['result_3'] },
298
+ },
299
+ ];
300
+ // ============================================================================
301
+ // All Errors (non-retryable)
302
+ // ============================================================================
303
+ export const allErrorsLogs = [
304
+ {
305
+ id: 'log_fail_root',
306
+ type: 'klados_log',
307
+ rhiza_id: 'II01rhiza_linear',
308
+ klados_id: 'II01klados_a',
309
+ job_id: 'job_fail_1',
310
+ status: 'error',
311
+ started_at: '2025-01-01T00:00:00Z',
312
+ completed_at: '2025-01-01T00:00:30Z',
313
+ received: { target: 'input_entity' },
314
+ error: {
315
+ code: 'VALIDATION_FAILED',
316
+ message: 'Input entity is missing required properties',
317
+ retryable: false,
318
+ },
319
+ },
320
+ ];
321
+ // All Error Logs - multiple errors for testing
322
+ export const allErrorLogs = [
323
+ // Root - success, scatters to 3 workers
324
+ {
325
+ id: 'log_allerr_root',
326
+ type: 'klados_log',
327
+ rhiza_id: 'II01rhiza_scatter_gather',
328
+ klados_id: 'II01klados_producer',
329
+ job_id: 'job_allerr_1',
330
+ status: 'done',
331
+ started_at: '2025-01-01T00:00:00Z',
332
+ completed_at: '2025-01-01T00:01:00Z',
333
+ received: { target: 'input_doc' },
334
+ produced: { entity_ids: ['item_1', 'item_2', 'item_3'] },
335
+ handoffs: [{
336
+ type: 'scatter',
337
+ target: 'II01klados_worker',
338
+ target_type: 'klados',
339
+ batch_id: 'batch_allerr_1',
340
+ invocations: [
341
+ { request: createRequest({ job_id: 'job_allerr_w1', target: 'item_1' }), batch_index: 0 },
342
+ { request: createRequest({ job_id: 'job_allerr_w2', target: 'item_2' }), batch_index: 1 },
343
+ { request: createRequest({ job_id: 'job_allerr_w3', target: 'item_3' }), batch_index: 2 },
344
+ ],
345
+ }],
346
+ },
347
+ // Worker 0 - error (retryable)
348
+ {
349
+ id: 'log_allerr_worker_0',
350
+ type: 'klados_log',
351
+ rhiza_id: 'II01rhiza_scatter_gather',
352
+ klados_id: 'II01klados_worker',
353
+ job_id: 'job_allerr_w1',
354
+ status: 'error',
355
+ started_at: '2025-01-01T00:01:00Z',
356
+ completed_at: '2025-01-01T00:01:30Z',
357
+ received: {
358
+ target: 'item_1',
359
+ from_logs: ['log_allerr_root'],
360
+ batch: { id: 'batch_allerr_1', index: 0, total: 3 },
361
+ invocation: { request: createRequest({ job_id: 'job_allerr_w1', target: 'item_1' }), batch_index: 0 },
362
+ },
363
+ error: {
364
+ code: 'TIMEOUT',
365
+ message: 'Service temporarily unavailable',
366
+ retryable: true,
367
+ },
368
+ },
369
+ // Worker 1 - error (non-retryable)
370
+ {
371
+ id: 'log_allerr_worker_1',
372
+ type: 'klados_log',
373
+ rhiza_id: 'II01rhiza_scatter_gather',
374
+ klados_id: 'II01klados_worker',
375
+ job_id: 'job_allerr_w2',
376
+ status: 'error',
377
+ started_at: '2025-01-01T00:01:00Z',
378
+ completed_at: '2025-01-01T00:01:30Z',
379
+ received: {
380
+ target: 'item_2',
381
+ from_logs: ['log_allerr_root'],
382
+ batch: { id: 'batch_allerr_1', index: 1, total: 3 },
383
+ invocation: { request: createRequest({ job_id: 'job_allerr_w2', target: 'item_2' }), batch_index: 1 },
384
+ },
385
+ error: {
386
+ code: 'INVALID_INPUT',
387
+ message: 'Input data is corrupt',
388
+ retryable: false,
389
+ },
390
+ },
391
+ // Worker 2 - error (retryable)
392
+ {
393
+ id: 'log_allerr_worker_2',
394
+ type: 'klados_log',
395
+ rhiza_id: 'II01rhiza_scatter_gather',
396
+ klados_id: 'II01klados_worker',
397
+ job_id: 'job_allerr_w3',
398
+ status: 'error',
399
+ started_at: '2025-01-01T00:01:00Z',
400
+ completed_at: '2025-01-01T00:01:30Z',
401
+ received: {
402
+ target: 'item_3',
403
+ from_logs: ['log_allerr_root'],
404
+ batch: { id: 'batch_allerr_1', index: 2, total: 3 },
405
+ invocation: { request: createRequest({ job_id: 'job_allerr_w3', target: 'item_3' }), batch_index: 2 },
406
+ },
407
+ error: {
408
+ code: 'NETWORK_ERROR',
409
+ message: 'Connection reset',
410
+ retryable: true,
411
+ },
412
+ },
413
+ ];
414
+ // ============================================================================
415
+ // Mixed Retryable/Non-retryable Errors
416
+ // ============================================================================
417
+ export const mixedErrorLogs = [
418
+ // Root - success
419
+ {
420
+ id: 'log_mix_root',
421
+ type: 'klados_log',
422
+ rhiza_id: 'II01rhiza_scatter_gather',
423
+ klados_id: 'II01klados_producer',
424
+ job_id: 'job_mix_1',
425
+ status: 'done',
426
+ started_at: '2025-01-01T00:00:00Z',
427
+ completed_at: '2025-01-01T00:01:00Z',
428
+ received: { target: 'input_doc' },
429
+ produced: { entity_ids: ['item_1', 'item_2'] },
430
+ handoffs: [{
431
+ type: 'scatter',
432
+ target: 'II01klados_worker',
433
+ target_type: 'klados',
434
+ batch_id: 'batch_mix_1',
435
+ invocations: [
436
+ { request: createRequest({ job_id: 'job_mix_w1', target: 'item_1' }), batch_index: 0 },
437
+ { request: createRequest({ job_id: 'job_mix_w2', target: 'item_2' }), batch_index: 1 },
438
+ ],
439
+ }],
440
+ },
441
+ // Worker 0 - retryable error
442
+ {
443
+ id: 'log_mix_worker_0',
444
+ type: 'klados_log',
445
+ rhiza_id: 'II01rhiza_scatter_gather',
446
+ klados_id: 'II01klados_worker',
447
+ job_id: 'job_mix_w1',
448
+ status: 'error',
449
+ started_at: '2025-01-01T00:01:00Z',
450
+ completed_at: '2025-01-01T00:01:30Z',
451
+ received: {
452
+ target: 'item_1',
453
+ from_logs: ['log_mix_root'],
454
+ batch: { id: 'batch_mix_1', index: 0, total: 2 },
455
+ invocation: { request: createRequest({ job_id: 'job_mix_w1', target: 'item_1' }), batch_index: 0 },
456
+ },
457
+ error: {
458
+ code: 'TIMEOUT',
459
+ message: 'Service temporarily unavailable',
460
+ retryable: true,
461
+ },
462
+ },
463
+ // Worker 1 - non-retryable error
464
+ {
465
+ id: 'log_mix_worker_1',
466
+ type: 'klados_log',
467
+ rhiza_id: 'II01rhiza_scatter_gather',
468
+ klados_id: 'II01klados_worker',
469
+ job_id: 'job_mix_w2',
470
+ status: 'error',
471
+ started_at: '2025-01-01T00:01:00Z',
472
+ completed_at: '2025-01-01T00:01:30Z',
473
+ received: {
474
+ target: 'item_2',
475
+ from_logs: ['log_mix_root'],
476
+ batch: { id: 'batch_mix_1', index: 1, total: 2 },
477
+ invocation: { request: createRequest({ job_id: 'job_mix_w2', target: 'item_2' }), batch_index: 1 },
478
+ },
479
+ error: {
480
+ code: 'INVALID_INPUT',
481
+ message: 'Input data is corrupt and cannot be processed',
482
+ retryable: false,
483
+ },
484
+ },
485
+ ];
486
+ // ============================================================================
487
+ // Running Workflow (in progress)
488
+ // ============================================================================
489
+ export const runningWorkflowLogs = [
490
+ // Root - done
491
+ {
492
+ id: 'log_run_root',
493
+ type: 'klados_log',
494
+ rhiza_id: 'II01rhiza_linear',
495
+ klados_id: 'II01klados_a',
496
+ job_id: 'job_run_1',
497
+ status: 'done',
498
+ started_at: '2025-01-01T00:00:00Z',
499
+ completed_at: '2025-01-01T00:01:00Z',
500
+ received: { target: 'input_entity' },
501
+ produced: { entity_ids: ['output_a'] },
502
+ handoffs: [{
503
+ type: 'pass',
504
+ target: 'II01klados_b',
505
+ target_type: 'klados',
506
+ invocations: [{
507
+ request: createRequest({ job_id: 'job_run_2', target: 'output_a' }),
508
+ }],
509
+ }],
510
+ },
511
+ // Child - still running
512
+ {
513
+ id: 'log_run_child',
514
+ type: 'klados_log',
515
+ rhiza_id: 'II01rhiza_linear',
516
+ klados_id: 'II01klados_b',
517
+ job_id: 'job_run_2',
518
+ status: 'running',
519
+ started_at: '2025-01-01T00:01:00Z',
520
+ received: {
521
+ target: 'output_a',
522
+ from_logs: ['log_run_root'],
523
+ invocation: { request: createRequest({ job_id: 'job_run_2', target: 'output_a' }) },
524
+ },
525
+ },
526
+ ];
527
+ // ============================================================================
528
+ // Single Node (root is also leaf)
529
+ // ============================================================================
530
+ export const singleNodeLogs = [
531
+ {
532
+ id: 'log_single',
533
+ type: 'klados_log',
534
+ rhiza_id: 'II01rhiza_single',
535
+ klados_id: 'II01klados_only',
536
+ job_id: 'job_single_1',
537
+ status: 'done',
538
+ started_at: '2025-01-01T00:00:00Z',
539
+ completed_at: '2025-01-01T00:01:00Z',
540
+ received: { target: 'input_entity' },
541
+ produced: { entity_ids: ['output_entity'] },
542
+ // No handoffs - single klados workflow with done: true
543
+ },
544
+ ];
545
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/__tests__/fixtures/logs/index.ts"],"names":[],"mappings":"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"}