@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.
- package/README.md +106 -0
- package/dist/__tests__/fixtures/index.d.ts +9 -0
- package/dist/__tests__/fixtures/index.d.ts.map +1 -0
- package/dist/__tests__/fixtures/index.js +12 -0
- package/dist/__tests__/fixtures/index.js.map +1 -0
- package/dist/__tests__/fixtures/kladoi/index.d.ts +165 -0
- package/dist/__tests__/fixtures/kladoi/index.d.ts.map +1 -0
- package/dist/__tests__/fixtures/kladoi/index.js +270 -0
- package/dist/__tests__/fixtures/kladoi/index.js.map +1 -0
- package/dist/__tests__/fixtures/logs/index.d.ts +19 -0
- package/dist/__tests__/fixtures/logs/index.d.ts.map +1 -0
- package/dist/__tests__/fixtures/logs/index.js +545 -0
- package/dist/__tests__/fixtures/logs/index.js.map +1 -0
- package/dist/__tests__/fixtures/mock-client.d.ts +127 -0
- package/dist/__tests__/fixtures/mock-client.d.ts.map +1 -0
- package/dist/__tests__/fixtures/mock-client.js +415 -0
- package/dist/__tests__/fixtures/mock-client.js.map +1 -0
- package/dist/__tests__/fixtures/rhizai/index.d.ts +54 -0
- package/dist/__tests__/fixtures/rhizai/index.d.ts.map +1 -0
- package/dist/__tests__/fixtures/rhizai/index.js +283 -0
- package/dist/__tests__/fixtures/rhizai/index.js.map +1 -0
- package/dist/__tests__/unit/fixtures.test.d.ts +10 -0
- package/dist/__tests__/unit/fixtures.test.d.ts.map +1 -0
- package/dist/__tests__/unit/fixtures.test.js +275 -0
- package/dist/__tests__/unit/fixtures.test.js.map +1 -0
- package/dist/__tests__/unit/handoff/gather.test.d.ts +8 -0
- package/dist/__tests__/unit/handoff/gather.test.d.ts.map +1 -0
- package/dist/__tests__/unit/handoff/gather.test.js +176 -0
- package/dist/__tests__/unit/handoff/gather.test.js.map +1 -0
- package/dist/__tests__/unit/handoff/interpret.test.d.ts +9 -0
- package/dist/__tests__/unit/handoff/interpret.test.d.ts.map +1 -0
- package/dist/__tests__/unit/handoff/interpret.test.js +370 -0
- package/dist/__tests__/unit/handoff/interpret.test.js.map +1 -0
- package/dist/__tests__/unit/handoff/route.test.d.ts +8 -0
- package/dist/__tests__/unit/handoff/route.test.d.ts.map +1 -0
- package/dist/__tests__/unit/handoff/route.test.js +271 -0
- package/dist/__tests__/unit/handoff/route.test.js.map +1 -0
- package/dist/__tests__/unit/handoff/scatter.test.d.ts +7 -0
- package/dist/__tests__/unit/handoff/scatter.test.d.ts.map +1 -0
- package/dist/__tests__/unit/handoff/scatter.test.js +54 -0
- package/dist/__tests__/unit/handoff/scatter.test.js.map +1 -0
- package/dist/__tests__/unit/resume.test.d.ts +8 -0
- package/dist/__tests__/unit/resume.test.d.ts.map +1 -0
- package/dist/__tests__/unit/resume.test.js +134 -0
- package/dist/__tests__/unit/resume.test.js.map +1 -0
- package/dist/__tests__/unit/status.test.d.ts +8 -0
- package/dist/__tests__/unit/status.test.d.ts.map +1 -0
- package/dist/__tests__/unit/status.test.js +164 -0
- package/dist/__tests__/unit/status.test.js.map +1 -0
- package/dist/__tests__/unit/target.test.d.ts +8 -0
- package/dist/__tests__/unit/target.test.d.ts.map +1 -0
- package/dist/__tests__/unit/target.test.js +116 -0
- package/dist/__tests__/unit/target.test.js.map +1 -0
- package/dist/__tests__/unit/traverse.test.d.ts +8 -0
- package/dist/__tests__/unit/traverse.test.d.ts.map +1 -0
- package/dist/__tests__/unit/traverse.test.js +143 -0
- package/dist/__tests__/unit/traverse.test.js.map +1 -0
- package/dist/__tests__/unit/validation/klados.test.d.ts +16 -0
- package/dist/__tests__/unit/validation/klados.test.d.ts.map +1 -0
- package/dist/__tests__/unit/validation/klados.test.js +275 -0
- package/dist/__tests__/unit/validation/klados.test.js.map +1 -0
- package/dist/__tests__/unit/validation/rhiza.test.d.ts +16 -0
- package/dist/__tests__/unit/validation/rhiza.test.d.ts.map +1 -0
- package/dist/__tests__/unit/validation/rhiza.test.js +612 -0
- package/dist/__tests__/unit/validation/rhiza.test.js.map +1 -0
- package/dist/__tests__/unit/validation/runtime.test.d.ts +11 -0
- package/dist/__tests__/unit/validation/runtime.test.d.ts.map +1 -0
- package/dist/__tests__/unit/validation/runtime.test.js +553 -0
- package/dist/__tests__/unit/validation/runtime.test.js.map +1 -0
- package/dist/__tests__/unit/worker/errors.test.d.ts +2 -0
- package/dist/__tests__/unit/worker/errors.test.d.ts.map +1 -0
- package/dist/__tests__/unit/worker/errors.test.js +226 -0
- package/dist/__tests__/unit/worker/errors.test.js.map +1 -0
- package/dist/__tests__/unit/worker/job.test.d.ts +2 -0
- package/dist/__tests__/unit/worker/job.test.d.ts.map +1 -0
- package/dist/__tests__/unit/worker/job.test.js +233 -0
- package/dist/__tests__/unit/worker/job.test.js.map +1 -0
- package/dist/client/index.d.ts +10 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +8 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/interface.d.ts +142 -0
- package/dist/client/interface.d.ts.map +1 -0
- package/dist/client/interface.js +8 -0
- package/dist/client/interface.js.map +1 -0
- package/dist/client/mock.d.ts +95 -0
- package/dist/client/mock.d.ts.map +1 -0
- package/dist/client/mock.js +795 -0
- package/dist/client/mock.js.map +1 -0
- package/dist/client/types.d.ts +344 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +8 -0
- package/dist/client/types.js.map +1 -0
- package/dist/handoff/gather-api.d.ts +60 -0
- package/dist/handoff/gather-api.d.ts.map +1 -0
- package/dist/handoff/gather-api.js +130 -0
- package/dist/handoff/gather-api.js.map +1 -0
- package/dist/handoff/gather.d.ts +59 -0
- package/dist/handoff/gather.d.ts.map +1 -0
- package/dist/handoff/gather.js +134 -0
- package/dist/handoff/gather.js.map +1 -0
- package/dist/handoff/index.d.ts +19 -0
- package/dist/handoff/index.d.ts.map +1 -0
- package/dist/handoff/index.js +25 -0
- package/dist/handoff/index.js.map +1 -0
- package/dist/handoff/interpret.d.ts +79 -0
- package/dist/handoff/interpret.d.ts.map +1 -0
- package/dist/handoff/interpret.js +197 -0
- package/dist/handoff/interpret.js.map +1 -0
- package/dist/handoff/invoke.d.ts +82 -0
- package/dist/handoff/invoke.d.ts.map +1 -0
- package/dist/handoff/invoke.js +196 -0
- package/dist/handoff/invoke.js.map +1 -0
- package/dist/handoff/route.d.ts +25 -0
- package/dist/handoff/route.d.ts.map +1 -0
- package/dist/handoff/route.js +65 -0
- package/dist/handoff/route.js.map +1 -0
- package/dist/handoff/scatter-api.d.ts +62 -0
- package/dist/handoff/scatter-api.d.ts.map +1 -0
- package/dist/handoff/scatter-api.js +81 -0
- package/dist/handoff/scatter-api.js.map +1 -0
- package/dist/handoff/scatter.d.ts +19 -0
- package/dist/handoff/scatter.d.ts.map +1 -0
- package/dist/handoff/scatter.js +27 -0
- package/dist/handoff/scatter.js.map +1 -0
- package/dist/handoff/target.d.ts +16 -0
- package/dist/handoff/target.d.ts.map +1 -0
- package/dist/handoff/target.js +51 -0
- package/dist/handoff/target.js.map +1 -0
- package/dist/index.d.ts +42 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +52 -0
- package/dist/index.js.map +1 -0
- package/dist/logging/index.d.ts +4 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +3 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/logging/logger.d.ts +52 -0
- package/dist/logging/logger.d.ts.map +1 -0
- package/dist/logging/logger.js +70 -0
- package/dist/logging/logger.js.map +1 -0
- package/dist/logging/writer.d.ts +63 -0
- package/dist/logging/writer.d.ts.map +1 -0
- package/dist/logging/writer.js +160 -0
- package/dist/logging/writer.js.map +1 -0
- package/dist/resume/index.d.ts +77 -0
- package/dist/resume/index.d.ts.map +1 -0
- package/dist/resume/index.js +110 -0
- package/dist/resume/index.js.map +1 -0
- package/dist/status/index.d.ts +54 -0
- package/dist/status/index.d.ts.map +1 -0
- package/dist/status/index.js +107 -0
- package/dist/status/index.js.map +1 -0
- package/dist/traverse/index.d.ts +53 -0
- package/dist/traverse/index.d.ts.map +1 -0
- package/dist/traverse/index.js +142 -0
- package/dist/traverse/index.js.map +1 -0
- package/dist/types/batch.d.ts +53 -0
- package/dist/types/batch.d.ts.map +1 -0
- package/dist/types/batch.js +2 -0
- package/dist/types/batch.js.map +1 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/klados.d.ts +63 -0
- package/dist/types/klados.d.ts.map +1 -0
- package/dist/types/klados.js +2 -0
- package/dist/types/klados.js.map +1 -0
- package/dist/types/log.d.ts +107 -0
- package/dist/types/log.d.ts.map +1 -0
- package/dist/types/log.js +2 -0
- package/dist/types/log.js.map +1 -0
- package/dist/types/refs.d.ts +58 -0
- package/dist/types/refs.d.ts.map +1 -0
- package/dist/types/refs.js +43 -0
- package/dist/types/refs.js.map +1 -0
- package/dist/types/request.d.ts +69 -0
- package/dist/types/request.d.ts.map +1 -0
- package/dist/types/request.js +2 -0
- package/dist/types/request.js.map +1 -0
- package/dist/types/response.d.ts +31 -0
- package/dist/types/response.d.ts.map +1 -0
- package/dist/types/response.js +2 -0
- package/dist/types/response.js.map +1 -0
- package/dist/types/rhiza.d.ts +100 -0
- package/dist/types/rhiza.d.ts.map +1 -0
- package/dist/types/rhiza.js +2 -0
- package/dist/types/rhiza.js.map +1 -0
- package/dist/types/status.d.ts +84 -0
- package/dist/types/status.d.ts.map +1 -0
- package/dist/types/status.js +2 -0
- package/dist/types/status.js.map +1 -0
- package/dist/utils/id.d.ts +15 -0
- package/dist/utils/id.d.ts.map +1 -0
- package/dist/utils/id.js +25 -0
- package/dist/utils/id.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/validation/index.d.ts +9 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +9 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/validate-klados.d.ts +38 -0
- package/dist/validation/validate-klados.d.ts.map +1 -0
- package/dist/validation/validate-klados.js +139 -0
- package/dist/validation/validate-klados.js.map +1 -0
- package/dist/validation/validate-rhiza.d.ts +29 -0
- package/dist/validation/validate-rhiza.d.ts.map +1 -0
- package/dist/validation/validate-rhiza.js +382 -0
- package/dist/validation/validate-rhiza.js.map +1 -0
- package/dist/validation/validate-runtime.d.ts +28 -0
- package/dist/validation/validate-runtime.d.ts.map +1 -0
- package/dist/validation/validate-runtime.js +212 -0
- package/dist/validation/validate-runtime.js.map +1 -0
- package/dist/worker/errors.d.ts +77 -0
- package/dist/worker/errors.d.ts.map +1 -0
- package/dist/worker/errors.js +143 -0
- package/dist/worker/errors.js.map +1 -0
- package/dist/worker/index.d.ts +8 -0
- package/dist/worker/index.d.ts.map +1 -0
- package/dist/worker/index.js +8 -0
- package/dist/worker/index.js.map +1 -0
- package/dist/worker/job.d.ts +150 -0
- package/dist/worker/job.d.ts.map +1 -0
- package/dist/worker/job.js +280 -0
- package/dist/worker/job.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mock Rhiza Fixtures
|
|
3
|
+
*
|
|
4
|
+
* Pre-configured rhiza workflows for testing:
|
|
5
|
+
* - linear: Simple A → B → C chain
|
|
6
|
+
* - scatterGather: Fan-out/fan-in pattern
|
|
7
|
+
* - conditional: Routing based on entity properties
|
|
8
|
+
* - subWorkflow: Nested rhiza invocation
|
|
9
|
+
* - invalid: Various invalid configurations
|
|
10
|
+
*/
|
|
11
|
+
import { ref } from '../../../types';
|
|
12
|
+
// ============================================================================
|
|
13
|
+
// Linear Workflow
|
|
14
|
+
// ============================================================================
|
|
15
|
+
export const linearFlow = {
|
|
16
|
+
'II01klados_a': { then: { pass: ref('II01klados_b', { type: 'klados' }) } },
|
|
17
|
+
'II01klados_b': { then: { pass: ref('II01klados_c', { type: 'klados' }) } },
|
|
18
|
+
'II01klados_c': { then: { done: true } },
|
|
19
|
+
};
|
|
20
|
+
export const linearRhizaProperties = {
|
|
21
|
+
label: 'Linear Workflow',
|
|
22
|
+
description: 'Simple A → B → C chain for testing basic flow',
|
|
23
|
+
version: '1.0.0',
|
|
24
|
+
entry: ref('II01klados_a', { type: 'klados' }),
|
|
25
|
+
flow: linearFlow,
|
|
26
|
+
status: 'active',
|
|
27
|
+
created_at: '2025-01-01T00:00:00Z',
|
|
28
|
+
updated_at: '2025-01-01T00:00:00Z',
|
|
29
|
+
};
|
|
30
|
+
export const linearRhiza = {
|
|
31
|
+
properties: linearRhizaProperties,
|
|
32
|
+
cid: 'cid_linear_rhiza_v1',
|
|
33
|
+
};
|
|
34
|
+
// ============================================================================
|
|
35
|
+
// Scatter-Gather Workflow
|
|
36
|
+
// ============================================================================
|
|
37
|
+
export const scatterGatherFlow = {
|
|
38
|
+
'II01klados_producer': { then: { scatter: ref('II01klados_worker', { type: 'klados' }) } },
|
|
39
|
+
'II01klados_worker': { then: { gather: ref('II01klados_aggregator', { type: 'klados' }) } },
|
|
40
|
+
'II01klados_aggregator': { then: { done: true } },
|
|
41
|
+
};
|
|
42
|
+
export const scatterGatherRhizaProperties = {
|
|
43
|
+
label: 'Scatter-Gather Workflow',
|
|
44
|
+
description: 'Fan-out to workers, fan-in to aggregator',
|
|
45
|
+
version: '1.0.0',
|
|
46
|
+
entry: ref('II01klados_producer', { type: 'klados' }),
|
|
47
|
+
flow: scatterGatherFlow,
|
|
48
|
+
status: 'active',
|
|
49
|
+
created_at: '2025-01-01T00:00:00Z',
|
|
50
|
+
updated_at: '2025-01-01T00:00:00Z',
|
|
51
|
+
};
|
|
52
|
+
export const scatterGatherRhiza = {
|
|
53
|
+
properties: scatterGatherRhizaProperties,
|
|
54
|
+
cid: 'cid_scatter_gather_rhiza_v1',
|
|
55
|
+
};
|
|
56
|
+
// ============================================================================
|
|
57
|
+
// Conditional Routing Workflow
|
|
58
|
+
// ============================================================================
|
|
59
|
+
export const conditionalFlow = {
|
|
60
|
+
'II01klados_classifier': {
|
|
61
|
+
then: {
|
|
62
|
+
pass: ref('II01klados_default_handler', { type: 'klados' }),
|
|
63
|
+
route: [
|
|
64
|
+
{
|
|
65
|
+
where: { property: 'content_type', equals: 'file/pdf' },
|
|
66
|
+
target: ref('II01klados_pdf_handler', { type: 'klados' }),
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
where: {
|
|
70
|
+
or: [
|
|
71
|
+
{ property: 'content_type', equals: 'file/jpeg' },
|
|
72
|
+
{ property: 'content_type', equals: 'file/png' },
|
|
73
|
+
],
|
|
74
|
+
},
|
|
75
|
+
target: ref('II01klados_image_handler', { type: 'klados' }),
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
'II01klados_pdf_handler': { then: { done: true } },
|
|
81
|
+
'II01klados_image_handler': { then: { done: true } },
|
|
82
|
+
'II01klados_default_handler': { then: { done: true } },
|
|
83
|
+
};
|
|
84
|
+
export const conditionalRhizaProperties = {
|
|
85
|
+
label: 'Conditional Workflow',
|
|
86
|
+
description: 'Routes to different handlers based on content type',
|
|
87
|
+
version: '1.0.0',
|
|
88
|
+
entry: ref('II01klados_classifier', { type: 'klados' }),
|
|
89
|
+
flow: conditionalFlow,
|
|
90
|
+
status: 'active',
|
|
91
|
+
created_at: '2025-01-01T00:00:00Z',
|
|
92
|
+
updated_at: '2025-01-01T00:00:00Z',
|
|
93
|
+
};
|
|
94
|
+
export const conditionalRhiza = {
|
|
95
|
+
properties: conditionalRhizaProperties,
|
|
96
|
+
cid: 'cid_conditional_rhiza_v1',
|
|
97
|
+
};
|
|
98
|
+
// ============================================================================
|
|
99
|
+
// Complex Routing (AND/OR nested)
|
|
100
|
+
// ============================================================================
|
|
101
|
+
export const complexRoutingFlow = {
|
|
102
|
+
'II01klados_classifier': {
|
|
103
|
+
then: {
|
|
104
|
+
pass: ref('II01klados_default_handler', { type: 'klados' }),
|
|
105
|
+
route: [
|
|
106
|
+
{
|
|
107
|
+
// AND condition: must be File type AND large size
|
|
108
|
+
where: {
|
|
109
|
+
and: [
|
|
110
|
+
{ property: 'type', equals: 'File' },
|
|
111
|
+
{ property: 'size_category', equals: 'large' },
|
|
112
|
+
],
|
|
113
|
+
},
|
|
114
|
+
target: ref('II01klados_large_file_handler', { type: 'klados' }),
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
// OR condition nested in AND
|
|
118
|
+
where: {
|
|
119
|
+
and: [
|
|
120
|
+
{ property: 'type', equals: 'File' },
|
|
121
|
+
{
|
|
122
|
+
or: [
|
|
123
|
+
{ property: 'priority', equals: 'high' },
|
|
124
|
+
{ property: 'priority', equals: 'critical' },
|
|
125
|
+
],
|
|
126
|
+
},
|
|
127
|
+
],
|
|
128
|
+
},
|
|
129
|
+
target: ref('II01klados_priority_handler', { type: 'klados' }),
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
'II01klados_large_file_handler': { then: { done: true } },
|
|
135
|
+
'II01klados_priority_handler': { then: { done: true } },
|
|
136
|
+
'II01klados_default_handler': { then: { done: true } },
|
|
137
|
+
};
|
|
138
|
+
export const complexRoutingRhizaProperties = {
|
|
139
|
+
label: 'Complex Routing Workflow',
|
|
140
|
+
description: 'Tests nested AND/OR routing conditions',
|
|
141
|
+
version: '1.0.0',
|
|
142
|
+
entry: ref('II01klados_classifier', { type: 'klados' }),
|
|
143
|
+
flow: complexRoutingFlow,
|
|
144
|
+
status: 'active',
|
|
145
|
+
};
|
|
146
|
+
// ============================================================================
|
|
147
|
+
// Invalid Rhiza Configurations
|
|
148
|
+
// ============================================================================
|
|
149
|
+
export const invalidRhizaProperties = {
|
|
150
|
+
/** Missing entry */
|
|
151
|
+
missingEntry: {
|
|
152
|
+
label: 'Missing Entry',
|
|
153
|
+
version: '1.0.0',
|
|
154
|
+
flow: {
|
|
155
|
+
'II01klados_a': { then: { done: true } },
|
|
156
|
+
},
|
|
157
|
+
status: 'active',
|
|
158
|
+
},
|
|
159
|
+
/** Entry not in flow */
|
|
160
|
+
entryNotInFlow: {
|
|
161
|
+
label: 'Entry Not In Flow',
|
|
162
|
+
version: '1.0.0',
|
|
163
|
+
entry: ref('II01klados_nonexistent', { type: 'klados' }),
|
|
164
|
+
flow: {
|
|
165
|
+
'II01klados_a': { then: { done: true } },
|
|
166
|
+
},
|
|
167
|
+
status: 'active',
|
|
168
|
+
},
|
|
169
|
+
/** Target not in flow */
|
|
170
|
+
targetNotInFlow: {
|
|
171
|
+
label: 'Target Not In Flow',
|
|
172
|
+
version: '1.0.0',
|
|
173
|
+
entry: ref('II01klados_a', { type: 'klados' }),
|
|
174
|
+
flow: {
|
|
175
|
+
'II01klados_a': { then: { pass: ref('II01klados_nonexistent', { type: 'klados' }) } },
|
|
176
|
+
},
|
|
177
|
+
status: 'active',
|
|
178
|
+
},
|
|
179
|
+
/** Cycle detected */
|
|
180
|
+
cycleDetected: {
|
|
181
|
+
label: 'Cycle Detected',
|
|
182
|
+
version: '1.0.0',
|
|
183
|
+
entry: ref('II01klados_a', { type: 'klados' }),
|
|
184
|
+
flow: {
|
|
185
|
+
'II01klados_a': { then: { pass: ref('II01klados_b', { type: 'klados' }) } },
|
|
186
|
+
'II01klados_b': { then: { pass: ref('II01klados_c', { type: 'klados' }) } },
|
|
187
|
+
'II01klados_c': { then: { pass: ref('II01klados_a', { type: 'klados' }) } }, // Cycle!
|
|
188
|
+
},
|
|
189
|
+
status: 'active',
|
|
190
|
+
},
|
|
191
|
+
/** No terminal (unterminated path) */
|
|
192
|
+
noTerminal: {
|
|
193
|
+
label: 'No Terminal',
|
|
194
|
+
version: '1.0.0',
|
|
195
|
+
entry: ref('II01klados_a', { type: 'klados' }),
|
|
196
|
+
flow: {
|
|
197
|
+
'II01klados_a': { then: { pass: ref('II01klados_b', { type: 'klados' }) } },
|
|
198
|
+
'II01klados_b': { then: { pass: ref('II01klados_a', { type: 'klados' }) } },
|
|
199
|
+
},
|
|
200
|
+
status: 'active',
|
|
201
|
+
},
|
|
202
|
+
/** Unreachable klados */
|
|
203
|
+
unreachableKlados: {
|
|
204
|
+
label: 'Unreachable Klados',
|
|
205
|
+
version: '1.0.0',
|
|
206
|
+
entry: ref('II01klados_a', { type: 'klados' }),
|
|
207
|
+
flow: {
|
|
208
|
+
'II01klados_a': { then: { done: true } },
|
|
209
|
+
'II01klados_orphan': { then: { done: true } }, // Never reached
|
|
210
|
+
},
|
|
211
|
+
status: 'active',
|
|
212
|
+
},
|
|
213
|
+
/** Missing then spec */
|
|
214
|
+
missingThen: {
|
|
215
|
+
label: 'Missing Then',
|
|
216
|
+
version: '1.0.0',
|
|
217
|
+
entry: ref('II01klados_a', { type: 'klados' }),
|
|
218
|
+
flow: {
|
|
219
|
+
'II01klados_a': {}, // Missing then
|
|
220
|
+
},
|
|
221
|
+
status: 'active',
|
|
222
|
+
},
|
|
223
|
+
/** Invalid handoff type */
|
|
224
|
+
invalidHandoff: {
|
|
225
|
+
label: 'Invalid Handoff',
|
|
226
|
+
version: '1.0.0',
|
|
227
|
+
entry: ref('II01klados_a', { type: 'klados' }),
|
|
228
|
+
flow: {
|
|
229
|
+
'II01klados_a': { then: { invalid: 'something' } },
|
|
230
|
+
},
|
|
231
|
+
status: 'active',
|
|
232
|
+
},
|
|
233
|
+
/** Route rule missing where */
|
|
234
|
+
routeMissingWhere: {
|
|
235
|
+
label: 'Route Missing Where',
|
|
236
|
+
version: '1.0.0',
|
|
237
|
+
entry: ref('II01klados_a', { type: 'klados' }),
|
|
238
|
+
flow: {
|
|
239
|
+
'II01klados_a': {
|
|
240
|
+
then: {
|
|
241
|
+
pass: ref('II01klados_b', { type: 'klados' }),
|
|
242
|
+
route: [{ target: ref('II01klados_c', { type: 'klados' }) }],
|
|
243
|
+
},
|
|
244
|
+
},
|
|
245
|
+
'II01klados_b': { then: { done: true } },
|
|
246
|
+
'II01klados_c': { then: { done: true } },
|
|
247
|
+
},
|
|
248
|
+
status: 'active',
|
|
249
|
+
},
|
|
250
|
+
/** Route rule missing target */
|
|
251
|
+
routeMissingTarget: {
|
|
252
|
+
label: 'Route Missing Target',
|
|
253
|
+
version: '1.0.0',
|
|
254
|
+
entry: ref('II01klados_a', { type: 'klados' }),
|
|
255
|
+
flow: {
|
|
256
|
+
'II01klados_a': {
|
|
257
|
+
then: {
|
|
258
|
+
pass: ref('II01klados_b', { type: 'klados' }),
|
|
259
|
+
route: [{ where: { property: 'type', equals: 'test' } }],
|
|
260
|
+
},
|
|
261
|
+
},
|
|
262
|
+
'II01klados_b': { then: { done: true } },
|
|
263
|
+
},
|
|
264
|
+
status: 'active',
|
|
265
|
+
},
|
|
266
|
+
/** Empty flow */
|
|
267
|
+
emptyFlow: {
|
|
268
|
+
label: 'Empty Flow',
|
|
269
|
+
version: '1.0.0',
|
|
270
|
+
entry: ref('II01klados_a', { type: 'klados' }),
|
|
271
|
+
flow: {},
|
|
272
|
+
status: 'active',
|
|
273
|
+
},
|
|
274
|
+
};
|
|
275
|
+
// ============================================================================
|
|
276
|
+
// Pre-configured Maps
|
|
277
|
+
// ============================================================================
|
|
278
|
+
export const allMockRhizai = {
|
|
279
|
+
'II01rhiza_linear': linearRhiza,
|
|
280
|
+
'II01rhiza_scatter_gather': scatterGatherRhiza,
|
|
281
|
+
'II01rhiza_conditional': conditionalRhiza,
|
|
282
|
+
};
|
|
283
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/__tests__/fixtures/rhizai/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test Infrastructure Verification
|
|
3
|
+
*
|
|
4
|
+
* These tests verify that the test infrastructure is working correctly:
|
|
5
|
+
* - Mock client creates, reads, updates entities
|
|
6
|
+
* - Fixtures are properly typed and accessible
|
|
7
|
+
* - Error simulation works
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=fixtures.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixtures.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/unit/fixtures.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test Infrastructure Verification
|
|
3
|
+
*
|
|
4
|
+
* These tests verify that the test infrastructure is working correctly:
|
|
5
|
+
* - Mock client creates, reads, updates entities
|
|
6
|
+
* - Fixtures are properly typed and accessible
|
|
7
|
+
* - Error simulation works
|
|
8
|
+
*/
|
|
9
|
+
import { describe, it, expect, beforeEach } from 'vitest';
|
|
10
|
+
import { createMockClient, producerKlados, workerKlados, aggregatorKlados, scatterGatherKladoi, linearRhiza, scatterGatherRhiza, validKladosProperties, invalidKladosProperties, invalidRhizaProperties, successfulLinearLogs, partialErrorLogs, } from '../fixtures';
|
|
11
|
+
describe('Mock Client', () => {
|
|
12
|
+
let client;
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
client = createMockClient({
|
|
15
|
+
kladoi: scatterGatherKladoi,
|
|
16
|
+
rhizai: {
|
|
17
|
+
'II01rhiza_linear': linearRhiza,
|
|
18
|
+
'II01rhiza_scatter_gather': scatterGatherRhiza,
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
describe('GET operations', () => {
|
|
23
|
+
it('returns klados by ID', async () => {
|
|
24
|
+
const result = await client.api.GET('/kladoi/{id}', {
|
|
25
|
+
params: { path: { id: 'II01klados_producer' } },
|
|
26
|
+
});
|
|
27
|
+
expect(result.error).toBeUndefined();
|
|
28
|
+
expect(result.data).toBeDefined();
|
|
29
|
+
expect(result.data).toMatchObject({
|
|
30
|
+
id: 'II01klados_producer',
|
|
31
|
+
type: 'klados',
|
|
32
|
+
properties: producerKlados.properties,
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
it('returns rhiza by ID', async () => {
|
|
36
|
+
const result = await client.api.GET('/rhizai/{id}', {
|
|
37
|
+
params: { path: { id: 'II01rhiza_scatter_gather' } },
|
|
38
|
+
});
|
|
39
|
+
expect(result.error).toBeUndefined();
|
|
40
|
+
expect(result.data).toBeDefined();
|
|
41
|
+
expect(result.data).toMatchObject({
|
|
42
|
+
id: 'II01rhiza_scatter_gather',
|
|
43
|
+
type: 'rhiza',
|
|
44
|
+
properties: scatterGatherRhiza.properties,
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
it('returns 404 for unknown klados', async () => {
|
|
48
|
+
const result = await client.api.GET('/kladoi/{id}', {
|
|
49
|
+
params: { path: { id: 'nonexistent' } },
|
|
50
|
+
});
|
|
51
|
+
expect(result.error).toBeDefined();
|
|
52
|
+
expect(result.error?.code).toBe('404');
|
|
53
|
+
});
|
|
54
|
+
it('returns entity by ID (klados)', async () => {
|
|
55
|
+
const result = await client.api.GET('/entities/{id}', {
|
|
56
|
+
params: { path: { id: 'II01klados_worker' } },
|
|
57
|
+
});
|
|
58
|
+
expect(result.error).toBeUndefined();
|
|
59
|
+
expect(result.data).toBeDefined();
|
|
60
|
+
expect(result.data.type).toBe('klados');
|
|
61
|
+
});
|
|
62
|
+
it('returns tip for entity', async () => {
|
|
63
|
+
const result = await client.api.GET('/entities/{id}/tip', {
|
|
64
|
+
params: { path: { id: 'II01klados_producer' } },
|
|
65
|
+
});
|
|
66
|
+
expect(result.error).toBeUndefined();
|
|
67
|
+
expect(result.data).toBeDefined();
|
|
68
|
+
expect(result.data.cid).toBeDefined();
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
describe('POST operations', () => {
|
|
72
|
+
it('invokes klados and tracks invocation', async () => {
|
|
73
|
+
const result = await client.api.POST('/kladoi/{id}/invoke', {
|
|
74
|
+
params: { path: { id: 'II01klados_worker' } },
|
|
75
|
+
body: {
|
|
76
|
+
target: 'entity_123',
|
|
77
|
+
job_collection: 'job_col_1',
|
|
78
|
+
confirm: true,
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
expect(result.error).toBeUndefined();
|
|
82
|
+
expect(result.data).toMatchObject({
|
|
83
|
+
accepted: true,
|
|
84
|
+
status: 'started',
|
|
85
|
+
});
|
|
86
|
+
const invocations = client.getInvokedKladoi();
|
|
87
|
+
expect(invocations).toHaveLength(1);
|
|
88
|
+
expect(invocations[0].kladosId).toBe('II01klados_worker');
|
|
89
|
+
expect(invocations[0].request).toMatchObject({
|
|
90
|
+
target: 'entity_123',
|
|
91
|
+
confirm: true,
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
it('creates entity and tracks creation', async () => {
|
|
95
|
+
const result = await client.api.POST('/entities', {
|
|
96
|
+
body: {
|
|
97
|
+
type: 'batch',
|
|
98
|
+
collection: 'job_col_1',
|
|
99
|
+
properties: { total: 3, completed: 0 },
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
expect(result.error).toBeUndefined();
|
|
103
|
+
expect(result.data).toBeDefined();
|
|
104
|
+
expect(result.data.id).toBeDefined();
|
|
105
|
+
const created = client.getCreated();
|
|
106
|
+
expect(created).toHaveLength(1);
|
|
107
|
+
expect(created[0].type).toBe('batch');
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
describe('PUT operations', () => {
|
|
111
|
+
it('updates entity and tracks update', async () => {
|
|
112
|
+
// First create an entity
|
|
113
|
+
const createResult = await client.api.POST('/entities', {
|
|
114
|
+
body: { type: 'test', properties: { value: 1 } },
|
|
115
|
+
});
|
|
116
|
+
const entityId = createResult.data.id;
|
|
117
|
+
// Then update it
|
|
118
|
+
const result = await client.api.PUT('/entities/{id}', {
|
|
119
|
+
params: { path: { id: entityId } },
|
|
120
|
+
body: {
|
|
121
|
+
properties: { value: 2 },
|
|
122
|
+
expect_tip: 'some_cid',
|
|
123
|
+
},
|
|
124
|
+
});
|
|
125
|
+
expect(result.error).toBeUndefined();
|
|
126
|
+
const updated = client.getUpdated();
|
|
127
|
+
expect(updated).toHaveLength(1);
|
|
128
|
+
expect(updated[0].id).toBe(entityId);
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
describe('error simulation', () => {
|
|
132
|
+
it('returns 404 for configured not found entities', async () => {
|
|
133
|
+
const errorClient = createMockClient({
|
|
134
|
+
kladoi: scatterGatherKladoi,
|
|
135
|
+
errors: {
|
|
136
|
+
notFound: ['II01klados_producer'],
|
|
137
|
+
},
|
|
138
|
+
});
|
|
139
|
+
const result = await errorClient.api.GET('/kladoi/{id}', {
|
|
140
|
+
params: { path: { id: 'II01klados_producer' } },
|
|
141
|
+
});
|
|
142
|
+
expect(result.error).toBeDefined();
|
|
143
|
+
expect(result.error?.code).toBe('404');
|
|
144
|
+
});
|
|
145
|
+
it('simulates CAS conflicts on update', async () => {
|
|
146
|
+
const errorClient = createMockClient({
|
|
147
|
+
kladoi: scatterGatherKladoi,
|
|
148
|
+
errors: {
|
|
149
|
+
onUpdate: 2, // Fail first 2 updates
|
|
150
|
+
},
|
|
151
|
+
});
|
|
152
|
+
// First update should fail
|
|
153
|
+
const result1 = await errorClient.api.PUT('/entities/{id}', {
|
|
154
|
+
params: { path: { id: 'II01klados_producer' } },
|
|
155
|
+
body: { properties: { value: 1 } },
|
|
156
|
+
});
|
|
157
|
+
expect(result1.error).toBeDefined();
|
|
158
|
+
expect(result1.error?.code).toBe('409');
|
|
159
|
+
// Second update should also fail
|
|
160
|
+
const result2 = await errorClient.api.PUT('/entities/{id}', {
|
|
161
|
+
params: { path: { id: 'II01klados_producer' } },
|
|
162
|
+
body: { properties: { value: 2 } },
|
|
163
|
+
});
|
|
164
|
+
expect(result2.error).toBeDefined();
|
|
165
|
+
// Third update should succeed
|
|
166
|
+
const result3 = await errorClient.api.PUT('/entities/{id}', {
|
|
167
|
+
params: { path: { id: 'II01klados_producer' } },
|
|
168
|
+
body: { properties: { value: 3 } },
|
|
169
|
+
});
|
|
170
|
+
expect(result3.error).toBeUndefined();
|
|
171
|
+
});
|
|
172
|
+
it('simulates invoke errors', async () => {
|
|
173
|
+
const errorClient = createMockClient({
|
|
174
|
+
kladoi: scatterGatherKladoi,
|
|
175
|
+
errors: {
|
|
176
|
+
onInvoke: {
|
|
177
|
+
'II01klados_worker': 'Service unavailable',
|
|
178
|
+
},
|
|
179
|
+
},
|
|
180
|
+
});
|
|
181
|
+
const result = await errorClient.api.POST('/kladoi/{id}/invoke', {
|
|
182
|
+
params: { path: { id: 'II01klados_worker' } },
|
|
183
|
+
body: { target: 'entity_123' },
|
|
184
|
+
});
|
|
185
|
+
expect(result.error).toBeDefined();
|
|
186
|
+
expect(result.error?.message).toBe('Service unavailable');
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
describe('reset', () => {
|
|
190
|
+
it('clears tracked mutations', async () => {
|
|
191
|
+
await client.api.POST('/kladoi/{id}/invoke', {
|
|
192
|
+
params: { path: { id: 'II01klados_worker' } },
|
|
193
|
+
body: { target: 'entity_123' },
|
|
194
|
+
});
|
|
195
|
+
expect(client.getInvokedKladoi()).toHaveLength(1);
|
|
196
|
+
client.reset();
|
|
197
|
+
expect(client.getInvokedKladoi()).toHaveLength(0);
|
|
198
|
+
expect(client.getCreated()).toHaveLength(0);
|
|
199
|
+
expect(client.getUpdated()).toHaveLength(0);
|
|
200
|
+
});
|
|
201
|
+
});
|
|
202
|
+
});
|
|
203
|
+
describe('Klados Fixtures', () => {
|
|
204
|
+
it('producer has correct cardinality for scatter', () => {
|
|
205
|
+
expect(producerKlados.properties.produces.cardinality).toBe('many');
|
|
206
|
+
expect(producerKlados.properties.accepts.cardinality).toBe('one');
|
|
207
|
+
});
|
|
208
|
+
it('worker has correct cardinality for scatter target', () => {
|
|
209
|
+
expect(workerKlados.properties.accepts.cardinality).toBe('one');
|
|
210
|
+
expect(workerKlados.properties.produces.cardinality).toBe('one');
|
|
211
|
+
});
|
|
212
|
+
it('aggregator has correct cardinality for gather', () => {
|
|
213
|
+
expect(aggregatorKlados.properties.accepts.cardinality).toBe('many');
|
|
214
|
+
expect(aggregatorKlados.properties.produces.cardinality).toBe('one');
|
|
215
|
+
});
|
|
216
|
+
it('valid klados properties pass basic checks', () => {
|
|
217
|
+
expect(validKladosProperties.endpoint).toMatch(/^https?:\/\//);
|
|
218
|
+
expect(validKladosProperties.actions_required.length).toBeGreaterThan(0);
|
|
219
|
+
expect(validKladosProperties.accepts.types.length).toBeGreaterThan(0);
|
|
220
|
+
expect(validKladosProperties.produces.types.length).toBeGreaterThan(0);
|
|
221
|
+
});
|
|
222
|
+
it('invalid klados properties have expected issues', () => {
|
|
223
|
+
expect(invalidKladosProperties.missingEndpoint).not.toHaveProperty('endpoint');
|
|
224
|
+
expect(invalidKladosProperties.invalidEndpoint.endpoint).not.toMatch(/^https?:\/\//);
|
|
225
|
+
expect(invalidKladosProperties.emptyAcceptsTypes.accepts.types).toHaveLength(0);
|
|
226
|
+
expect(invalidKladosProperties.emptyProducesTypes.produces.types).toHaveLength(0);
|
|
227
|
+
expect(invalidKladosProperties.emptyActionsRequired.actions_required).toHaveLength(0);
|
|
228
|
+
});
|
|
229
|
+
});
|
|
230
|
+
describe('Rhiza Fixtures', () => {
|
|
231
|
+
it('linear rhiza has correct entry', () => {
|
|
232
|
+
expect(linearRhiza.properties.entry).toBe('II01klados_a');
|
|
233
|
+
expect(linearRhiza.properties.flow['II01klados_a']).toBeDefined();
|
|
234
|
+
});
|
|
235
|
+
it('scatter-gather rhiza has correct flow structure', () => {
|
|
236
|
+
const flow = scatterGatherRhiza.properties.flow;
|
|
237
|
+
// Producer scatters to worker
|
|
238
|
+
expect(flow['II01klados_producer'].then).toHaveProperty('scatter');
|
|
239
|
+
expect(flow['II01klados_producer'].then.scatter).toBe('II01klados_worker');
|
|
240
|
+
// Worker gathers to aggregator
|
|
241
|
+
expect(flow['II01klados_worker'].then).toHaveProperty('gather');
|
|
242
|
+
expect(flow['II01klados_worker'].then.gather).toBe('II01klados_aggregator');
|
|
243
|
+
// Aggregator is terminal
|
|
244
|
+
expect(flow['II01klados_aggregator'].then).toHaveProperty('done');
|
|
245
|
+
});
|
|
246
|
+
it('invalid rhiza properties have expected issues', () => {
|
|
247
|
+
expect(invalidRhizaProperties.missingEntry).not.toHaveProperty('entry');
|
|
248
|
+
expect(invalidRhizaProperties.entryNotInFlow.entry).toBe('II01klados_nonexistent');
|
|
249
|
+
expect(invalidRhizaProperties.emptyFlow.flow).toEqual({});
|
|
250
|
+
});
|
|
251
|
+
});
|
|
252
|
+
describe('Log Fixtures', () => {
|
|
253
|
+
it('successful linear logs form a chain', () => {
|
|
254
|
+
const logs = successfulLinearLogs;
|
|
255
|
+
// Root has no from_logs
|
|
256
|
+
expect(logs[0].received.from_logs).toBeUndefined();
|
|
257
|
+
// Second log points to first
|
|
258
|
+
expect(logs[1].received.from_logs).toContain(logs[0].id);
|
|
259
|
+
// Third log points to second
|
|
260
|
+
expect(logs[2].received.from_logs).toContain(logs[1].id);
|
|
261
|
+
});
|
|
262
|
+
it('partial error logs contain one error', () => {
|
|
263
|
+
const errorLogs = partialErrorLogs.filter((l) => l.status === 'error');
|
|
264
|
+
expect(errorLogs).toHaveLength(1);
|
|
265
|
+
const errorLog = errorLogs[0];
|
|
266
|
+
expect(errorLog.error).toBeDefined();
|
|
267
|
+
expect(errorLog.error?.retryable).toBe(true);
|
|
268
|
+
});
|
|
269
|
+
it('error logs have invocation for resume', () => {
|
|
270
|
+
const errorLog = partialErrorLogs.find((l) => l.status === 'error');
|
|
271
|
+
expect(errorLog?.received.invocation).toBeDefined();
|
|
272
|
+
expect(errorLog?.received.invocation?.request).toBeDefined();
|
|
273
|
+
});
|
|
274
|
+
});
|
|
275
|
+
//# sourceMappingURL=fixtures.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixtures.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/fixtures.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gather.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/unit/handoff/gather.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|