@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
package/README.md
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# @arke-institute/rhiza
|
|
2
|
+
|
|
3
|
+
Workflow protocol for Arke - a cascading handoff pattern for distributed actions.
|
|
4
|
+
|
|
5
|
+
## Naming
|
|
6
|
+
|
|
7
|
+
- **Rhiza** (Greek: ῥίζα, "root") - A workflow definition, the root structure that branches out
|
|
8
|
+
- **Klados** (Greek: κλάδος, "branch") - An individual action/branch within a workflow
|
|
9
|
+
|
|
10
|
+
From Romans 11:16: *"εἰ … ἡ ῥίζα ἁγία, καὶ οἱ κλάδοι …"* ("if the root is holy, so are the branches")
|
|
11
|
+
|
|
12
|
+
## Overview
|
|
13
|
+
|
|
14
|
+
Rhiza replaces centralized orchestrators with a **cascading handoff pattern** where actions invoke each other directly. Key features:
|
|
15
|
+
|
|
16
|
+
- **Push-based execution** - Actions invoke next actions (no polling orchestrator)
|
|
17
|
+
- **Log chain as state** - The execution log IS the state machine
|
|
18
|
+
- **Perfect resumability** - Every handoff records the exact request for replay
|
|
19
|
+
- **Runtime-agnostic** - Works with Cloudflare Workers, AWS Lambda, Node.js, etc.
|
|
20
|
+
|
|
21
|
+
## Installation
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm install @arke-institute/rhiza
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Quick Start
|
|
28
|
+
|
|
29
|
+
Build a klados worker in ~15 lines with `KladosJob`:
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
import { KladosJob, type KladosRequest } from '@arke-institute/rhiza';
|
|
33
|
+
|
|
34
|
+
export default {
|
|
35
|
+
async fetch(request: Request, env: Env, ctx: ExecutionContext) {
|
|
36
|
+
const req = await request.json<KladosRequest>();
|
|
37
|
+
|
|
38
|
+
const job = KladosJob.accept(req, {
|
|
39
|
+
agentId: env.AGENT_ID,
|
|
40
|
+
agentVersion: env.AGENT_VERSION,
|
|
41
|
+
authToken: env.ARKE_AGENT_KEY,
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
ctx.waitUntil(job.run(async () => {
|
|
45
|
+
job.log.info('Processing');
|
|
46
|
+
const target = await job.fetchTarget();
|
|
47
|
+
const outputs = await processEntity(target, job.client);
|
|
48
|
+
return outputs; // Job handles handoff + log finalization
|
|
49
|
+
}));
|
|
50
|
+
|
|
51
|
+
return Response.json(job.acceptResponse);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
`KladosJob` handles:
|
|
57
|
+
- Client setup with correct auth
|
|
58
|
+
- Initial log entry creation
|
|
59
|
+
- Workflow handoffs (`interpretThen`)
|
|
60
|
+
- Error handling (log + batch slot updates)
|
|
61
|
+
- Log finalization
|
|
62
|
+
|
|
63
|
+
See the full [Klados Worker Guide](docs/klados-worker-guide.md) for details.
|
|
64
|
+
|
|
65
|
+
## Validation
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
import { validateRhizaProperties, validateKladosProperties } from '@arke-institute/rhiza';
|
|
69
|
+
|
|
70
|
+
const result = validateRhizaProperties(rhizaEntity.properties);
|
|
71
|
+
if (!result.valid) {
|
|
72
|
+
console.error('Errors:', result.errors);
|
|
73
|
+
console.warn('Warnings:', result.warnings);
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Handoff Types
|
|
78
|
+
|
|
79
|
+
| Type | Description | Example |
|
|
80
|
+
|------|-------------|---------|
|
|
81
|
+
| `pass` | 1:1 direct handoff | `{ pass: 'next-klados' }` |
|
|
82
|
+
| `scatter` | 1:N fan-out (parallel) | `{ scatter: 'worker-klados' }` |
|
|
83
|
+
| `gather` | N:1 fan-in (collect) | `{ gather: 'aggregator-klados' }` |
|
|
84
|
+
| `route` | Conditional routing | `{ route: [{ where: {...}, then: {...} }] }` |
|
|
85
|
+
| `done` | Terminal | `{ done: true }` |
|
|
86
|
+
|
|
87
|
+
## Documentation
|
|
88
|
+
|
|
89
|
+
### Guides
|
|
90
|
+
|
|
91
|
+
- **[Klados Worker Guide](docs/klados-worker-guide.md)** - Building workers with KladosJob
|
|
92
|
+
|
|
93
|
+
### Design Documents
|
|
94
|
+
|
|
95
|
+
See the `plan/` directory for detailed design documentation:
|
|
96
|
+
|
|
97
|
+
- [01-types.md](plan/01-types.md) - Type definitions
|
|
98
|
+
- [02-validation.md](plan/02-validation.md) - Validation rules
|
|
99
|
+
- [03-handoff.md](plan/03-handoff.md) - Handoff logic
|
|
100
|
+
- [04-logging.md](plan/04-logging.md) - Logging and chain
|
|
101
|
+
- [05-resume.md](plan/05-resume.md) - Resumability
|
|
102
|
+
- [14-simplification.md](plan/14-simplification.md) - KladosJob design
|
|
103
|
+
|
|
104
|
+
## License
|
|
105
|
+
|
|
106
|
+
MIT
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test Fixtures Index
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all fixtures for easy importing in tests
|
|
5
|
+
*/
|
|
6
|
+
export { producerKlados, workerKlados, aggregatorKlados, passthroughKlados, pdfHandlerKlados, imageHandlerKlados, inactiveKlados, developmentKlados, scatterGatherKladoi, linearKladoi, conditionalKladoi, allMockKladoi, invalidKladosProperties, validKladosProperties, } from './kladoi';
|
|
7
|
+
export { linearFlow, linearRhizaProperties, linearRhiza, scatterGatherFlow, scatterGatherRhizaProperties, scatterGatherRhiza, conditionalFlow, conditionalRhizaProperties, conditionalRhiza, complexRoutingFlow, complexRoutingRhizaProperties, invalidRhizaProperties, allMockRhizai, } from './rhizai';
|
|
8
|
+
export { successfulLinearLogs, successfulScatterGatherLogs, partialErrorLogs, allErrorsLogs, mixedErrorLogs, runningWorkflowLogs, singleNodeLogs, } from './logs';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,4BAA4B,EAC5B,kBAAkB,EAClB,eAAe,EACf,0BAA0B,EAC1B,gBAAgB,EAChB,kBAAkB,EAClB,6BAA6B,EAC7B,sBAAsB,EACtB,aAAa,GACd,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,cAAc,GACf,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test Fixtures Index
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all fixtures for easy importing in tests
|
|
5
|
+
*/
|
|
6
|
+
// Klados fixtures
|
|
7
|
+
export { producerKlados, workerKlados, aggregatorKlados, passthroughKlados, pdfHandlerKlados, imageHandlerKlados, inactiveKlados, developmentKlados, scatterGatherKladoi, linearKladoi, conditionalKladoi, allMockKladoi, invalidKladosProperties, validKladosProperties, } from './kladoi';
|
|
8
|
+
// Rhiza fixtures
|
|
9
|
+
export { linearFlow, linearRhizaProperties, linearRhiza, scatterGatherFlow, scatterGatherRhizaProperties, scatterGatherRhiza, conditionalFlow, conditionalRhizaProperties, conditionalRhiza, complexRoutingFlow, complexRoutingRhizaProperties, invalidRhizaProperties, allMockRhizai, } from './rhizai';
|
|
10
|
+
// Log fixtures
|
|
11
|
+
export { successfulLinearLogs, successfulScatterGatherLogs, partialErrorLogs, allErrorsLogs, mixedErrorLogs, runningWorkflowLogs, singleNodeLogs, } from './logs';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,kBAAkB;AAClB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAElB,iBAAiB;AACjB,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,4BAA4B,EAC5B,kBAAkB,EAClB,eAAe,EACf,0BAA0B,EAC1B,gBAAgB,EAChB,kBAAkB,EAClB,6BAA6B,EAC7B,sBAAsB,EACtB,aAAa,GACd,MAAM,UAAU,CAAC;AAElB,eAAe;AACf,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,cAAc,GACf,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mock Klados Fixtures
|
|
3
|
+
*
|
|
4
|
+
* Pre-configured klados entities for testing various scenarios:
|
|
5
|
+
* - producer: outputs many items (for scatter source)
|
|
6
|
+
* - worker: processes one item, outputs one (for scatter target)
|
|
7
|
+
* - aggregator: accepts many items (for gather target)
|
|
8
|
+
* - passthrough: simple 1:1 processing
|
|
9
|
+
* - inactive: disabled klados for error testing
|
|
10
|
+
* - invalid: various invalid configurations
|
|
11
|
+
*/
|
|
12
|
+
import type { KladosProperties } from '../../../types';
|
|
13
|
+
/** Simple fixture type for tests */
|
|
14
|
+
interface MockKlados {
|
|
15
|
+
properties: KladosProperties;
|
|
16
|
+
cid: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Producer - Produces many outputs from one input
|
|
20
|
+
* Use case: PDF splitter that creates multiple page entities
|
|
21
|
+
*/
|
|
22
|
+
export declare const producerKlados: MockKlados;
|
|
23
|
+
/**
|
|
24
|
+
* Worker - Processes one item at a time
|
|
25
|
+
* Use case: OCR processor for individual pages
|
|
26
|
+
*/
|
|
27
|
+
export declare const workerKlados: MockKlados;
|
|
28
|
+
/**
|
|
29
|
+
* Aggregator - Accepts many inputs (gather target)
|
|
30
|
+
* Use case: Assembles processed pages back into document
|
|
31
|
+
*/
|
|
32
|
+
export declare const aggregatorKlados: MockKlados;
|
|
33
|
+
/**
|
|
34
|
+
* Passthrough - Simple 1:1 processor
|
|
35
|
+
* Use case: Validator, transformer, enricher
|
|
36
|
+
*/
|
|
37
|
+
export declare const passthroughKlados: MockKlados;
|
|
38
|
+
/**
|
|
39
|
+
* PDF Handler - Processes PDF files specifically
|
|
40
|
+
* Use case: Conditional routing target
|
|
41
|
+
*/
|
|
42
|
+
export declare const pdfHandlerKlados: MockKlados;
|
|
43
|
+
/**
|
|
44
|
+
* Image Handler - Processes image files
|
|
45
|
+
* Use case: Conditional routing target
|
|
46
|
+
*/
|
|
47
|
+
export declare const imageHandlerKlados: MockKlados;
|
|
48
|
+
/**
|
|
49
|
+
* Inactive - Disabled klados for testing status checks
|
|
50
|
+
*/
|
|
51
|
+
export declare const inactiveKlados: MockKlados;
|
|
52
|
+
/**
|
|
53
|
+
* Development - Klados in development status
|
|
54
|
+
*/
|
|
55
|
+
export declare const developmentKlados: MockKlados;
|
|
56
|
+
/**
|
|
57
|
+
* Standard kladoi map for scatter-gather tests
|
|
58
|
+
*/
|
|
59
|
+
export declare const scatterGatherKladoi: Record<string, MockKlados>;
|
|
60
|
+
/**
|
|
61
|
+
* Standard kladoi map for linear flow tests
|
|
62
|
+
*/
|
|
63
|
+
export declare const linearKladoi: Record<string, MockKlados>;
|
|
64
|
+
/**
|
|
65
|
+
* Standard kladoi map for conditional routing tests
|
|
66
|
+
*/
|
|
67
|
+
export declare const conditionalKladoi: Record<string, MockKlados>;
|
|
68
|
+
/**
|
|
69
|
+
* All mock kladoi combined
|
|
70
|
+
*/
|
|
71
|
+
export declare const allMockKladoi: Record<string, MockKlados>;
|
|
72
|
+
export declare const invalidKladosProperties: {
|
|
73
|
+
/** Missing endpoint */
|
|
74
|
+
missingEndpoint: {
|
|
75
|
+
label: string;
|
|
76
|
+
actions_required: string[];
|
|
77
|
+
accepts: {
|
|
78
|
+
types: string[];
|
|
79
|
+
cardinality: "one";
|
|
80
|
+
};
|
|
81
|
+
produces: {
|
|
82
|
+
types: string[];
|
|
83
|
+
cardinality: "one";
|
|
84
|
+
};
|
|
85
|
+
status: "active";
|
|
86
|
+
};
|
|
87
|
+
/** Invalid endpoint URL */
|
|
88
|
+
invalidEndpoint: {
|
|
89
|
+
label: string;
|
|
90
|
+
endpoint: string;
|
|
91
|
+
actions_required: string[];
|
|
92
|
+
accepts: {
|
|
93
|
+
types: string[];
|
|
94
|
+
cardinality: "one";
|
|
95
|
+
};
|
|
96
|
+
produces: {
|
|
97
|
+
types: string[];
|
|
98
|
+
cardinality: "one";
|
|
99
|
+
};
|
|
100
|
+
status: "active";
|
|
101
|
+
};
|
|
102
|
+
/** Empty accepts types */
|
|
103
|
+
emptyAcceptsTypes: {
|
|
104
|
+
label: string;
|
|
105
|
+
endpoint: string;
|
|
106
|
+
actions_required: string[];
|
|
107
|
+
accepts: {
|
|
108
|
+
types: never[];
|
|
109
|
+
cardinality: "one";
|
|
110
|
+
};
|
|
111
|
+
produces: {
|
|
112
|
+
types: string[];
|
|
113
|
+
cardinality: "one";
|
|
114
|
+
};
|
|
115
|
+
status: "active";
|
|
116
|
+
};
|
|
117
|
+
/** Empty produces types */
|
|
118
|
+
emptyProducesTypes: {
|
|
119
|
+
label: string;
|
|
120
|
+
endpoint: string;
|
|
121
|
+
actions_required: string[];
|
|
122
|
+
accepts: {
|
|
123
|
+
types: string[];
|
|
124
|
+
cardinality: "one";
|
|
125
|
+
};
|
|
126
|
+
produces: {
|
|
127
|
+
types: never[];
|
|
128
|
+
cardinality: "one";
|
|
129
|
+
};
|
|
130
|
+
status: "active";
|
|
131
|
+
};
|
|
132
|
+
/** Invalid cardinality */
|
|
133
|
+
invalidCardinality: {
|
|
134
|
+
label: string;
|
|
135
|
+
endpoint: string;
|
|
136
|
+
actions_required: string[];
|
|
137
|
+
accepts: {
|
|
138
|
+
types: string[];
|
|
139
|
+
cardinality: "one";
|
|
140
|
+
};
|
|
141
|
+
produces: {
|
|
142
|
+
types: string[];
|
|
143
|
+
cardinality: "one";
|
|
144
|
+
};
|
|
145
|
+
status: "active";
|
|
146
|
+
};
|
|
147
|
+
/** Empty actions required */
|
|
148
|
+
emptyActionsRequired: {
|
|
149
|
+
label: string;
|
|
150
|
+
endpoint: string;
|
|
151
|
+
actions_required: never[];
|
|
152
|
+
accepts: {
|
|
153
|
+
types: string[];
|
|
154
|
+
cardinality: "one";
|
|
155
|
+
};
|
|
156
|
+
produces: {
|
|
157
|
+
types: string[];
|
|
158
|
+
cardinality: "one";
|
|
159
|
+
};
|
|
160
|
+
status: "active";
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
export declare const validKladosProperties: KladosProperties;
|
|
164
|
+
export {};
|
|
165
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/fixtures/kladoi/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,oCAAoC;AACpC,UAAU,UAAU;IAClB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;CACb;AAMD;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,UAa5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,UAa1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,UAa9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,UAa/B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,UAa9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,UAahC,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,UAa5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,UAa/B,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAI1D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAInD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAKxD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAMpD,CAAC;AAMF,eAAO,MAAM,uBAAuB;IAClC,uBAAuB;;;;;;;;;;;;;;IASvB,2BAA2B;;;;;;;;;;;;;;;IAU3B,0BAA0B;;;;;;;;;;;;;;;IAU1B,2BAA2B;;;;;;;;;;;;;;;IAU3B,0BAA0B;;;;;;;yBAKsC,KAAK;;;;;;;;IAKrE,6BAA6B;;;;;;;;;;;;;;;CAS9B,CAAC;AAMF,eAAO,MAAM,qBAAqB,EAAE,gBAUnC,CAAC"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mock Klados Fixtures
|
|
3
|
+
*
|
|
4
|
+
* Pre-configured klados entities for testing various scenarios:
|
|
5
|
+
* - producer: outputs many items (for scatter source)
|
|
6
|
+
* - worker: processes one item, outputs one (for scatter target)
|
|
7
|
+
* - aggregator: accepts many items (for gather target)
|
|
8
|
+
* - passthrough: simple 1:1 processing
|
|
9
|
+
* - inactive: disabled klados for error testing
|
|
10
|
+
* - invalid: various invalid configurations
|
|
11
|
+
*/
|
|
12
|
+
// ============================================================================
|
|
13
|
+
// Valid Kladoi
|
|
14
|
+
// ============================================================================
|
|
15
|
+
/**
|
|
16
|
+
* Producer - Produces many outputs from one input
|
|
17
|
+
* Use case: PDF splitter that creates multiple page entities
|
|
18
|
+
*/
|
|
19
|
+
export const producerKlados = {
|
|
20
|
+
properties: {
|
|
21
|
+
label: 'Producer',
|
|
22
|
+
description: 'Produces multiple outputs from a single input',
|
|
23
|
+
endpoint: 'https://producer.test/invoke',
|
|
24
|
+
actions_required: ['file:view'],
|
|
25
|
+
accepts: { types: ['*'], cardinality: 'one' },
|
|
26
|
+
produces: { types: ['item/*'], cardinality: 'many' },
|
|
27
|
+
status: 'active',
|
|
28
|
+
created_at: '2025-01-01T00:00:00Z',
|
|
29
|
+
updated_at: '2025-01-01T00:00:00Z',
|
|
30
|
+
},
|
|
31
|
+
cid: 'cid_producer_v1',
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Worker - Processes one item at a time
|
|
35
|
+
* Use case: OCR processor for individual pages
|
|
36
|
+
*/
|
|
37
|
+
export const workerKlados = {
|
|
38
|
+
properties: {
|
|
39
|
+
label: 'Worker',
|
|
40
|
+
description: 'Processes a single item and produces a single result',
|
|
41
|
+
endpoint: 'https://worker.test/invoke',
|
|
42
|
+
actions_required: ['file:view', 'entity:update'],
|
|
43
|
+
accepts: { types: ['item/*'], cardinality: 'one' },
|
|
44
|
+
produces: { types: ['result/*'], cardinality: 'one' },
|
|
45
|
+
status: 'active',
|
|
46
|
+
created_at: '2025-01-01T00:00:00Z',
|
|
47
|
+
updated_at: '2025-01-01T00:00:00Z',
|
|
48
|
+
},
|
|
49
|
+
cid: 'cid_worker_v1',
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Aggregator - Accepts many inputs (gather target)
|
|
53
|
+
* Use case: Assembles processed pages back into document
|
|
54
|
+
*/
|
|
55
|
+
export const aggregatorKlados = {
|
|
56
|
+
properties: {
|
|
57
|
+
label: 'Aggregator',
|
|
58
|
+
description: 'Combines multiple inputs into a single output',
|
|
59
|
+
endpoint: 'https://aggregator.test/invoke',
|
|
60
|
+
actions_required: ['file:create'],
|
|
61
|
+
accepts: { types: ['result/*'], cardinality: 'many' },
|
|
62
|
+
produces: { types: ['final/*'], cardinality: 'one' },
|
|
63
|
+
status: 'active',
|
|
64
|
+
created_at: '2025-01-01T00:00:00Z',
|
|
65
|
+
updated_at: '2025-01-01T00:00:00Z',
|
|
66
|
+
},
|
|
67
|
+
cid: 'cid_aggregator_v1',
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Passthrough - Simple 1:1 processor
|
|
71
|
+
* Use case: Validator, transformer, enricher
|
|
72
|
+
*/
|
|
73
|
+
export const passthroughKlados = {
|
|
74
|
+
properties: {
|
|
75
|
+
label: 'Passthrough',
|
|
76
|
+
description: 'Simple 1:1 processing',
|
|
77
|
+
endpoint: 'https://passthrough.test/invoke',
|
|
78
|
+
actions_required: ['file:view', 'entity:update'],
|
|
79
|
+
accepts: { types: ['*'], cardinality: 'one' },
|
|
80
|
+
produces: { types: ['*'], cardinality: 'one' },
|
|
81
|
+
status: 'active',
|
|
82
|
+
created_at: '2025-01-01T00:00:00Z',
|
|
83
|
+
updated_at: '2025-01-01T00:00:00Z',
|
|
84
|
+
},
|
|
85
|
+
cid: 'cid_passthrough_v1',
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* PDF Handler - Processes PDF files specifically
|
|
89
|
+
* Use case: Conditional routing target
|
|
90
|
+
*/
|
|
91
|
+
export const pdfHandlerKlados = {
|
|
92
|
+
properties: {
|
|
93
|
+
label: 'PDF Handler',
|
|
94
|
+
description: 'Specialized handler for PDF files',
|
|
95
|
+
endpoint: 'https://pdf-handler.test/invoke',
|
|
96
|
+
actions_required: ['file:view', 'file:create'],
|
|
97
|
+
accepts: { types: ['file/pdf'], cardinality: 'one' },
|
|
98
|
+
produces: { types: ['text/extracted'], cardinality: 'one' },
|
|
99
|
+
status: 'active',
|
|
100
|
+
created_at: '2025-01-01T00:00:00Z',
|
|
101
|
+
updated_at: '2025-01-01T00:00:00Z',
|
|
102
|
+
},
|
|
103
|
+
cid: 'cid_pdf_handler_v1',
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* Image Handler - Processes image files
|
|
107
|
+
* Use case: Conditional routing target
|
|
108
|
+
*/
|
|
109
|
+
export const imageHandlerKlados = {
|
|
110
|
+
properties: {
|
|
111
|
+
label: 'Image Handler',
|
|
112
|
+
description: 'Specialized handler for image files',
|
|
113
|
+
endpoint: 'https://image-handler.test/invoke',
|
|
114
|
+
actions_required: ['file:view', 'file:create'],
|
|
115
|
+
accepts: { types: ['file/jpeg', 'file/png', 'file/webp'], cardinality: 'one' },
|
|
116
|
+
produces: { types: ['text/extracted'], cardinality: 'one' },
|
|
117
|
+
status: 'active',
|
|
118
|
+
created_at: '2025-01-01T00:00:00Z',
|
|
119
|
+
updated_at: '2025-01-01T00:00:00Z',
|
|
120
|
+
},
|
|
121
|
+
cid: 'cid_image_handler_v1',
|
|
122
|
+
};
|
|
123
|
+
// ============================================================================
|
|
124
|
+
// Error Testing Kladoi
|
|
125
|
+
// ============================================================================
|
|
126
|
+
/**
|
|
127
|
+
* Inactive - Disabled klados for testing status checks
|
|
128
|
+
*/
|
|
129
|
+
export const inactiveKlados = {
|
|
130
|
+
properties: {
|
|
131
|
+
label: 'Inactive Klados',
|
|
132
|
+
description: 'Disabled klados for testing',
|
|
133
|
+
endpoint: 'https://inactive.test/invoke',
|
|
134
|
+
actions_required: ['file:view'],
|
|
135
|
+
accepts: { types: ['*'], cardinality: 'one' },
|
|
136
|
+
produces: { types: ['*'], cardinality: 'one' },
|
|
137
|
+
status: 'disabled',
|
|
138
|
+
created_at: '2025-01-01T00:00:00Z',
|
|
139
|
+
updated_at: '2025-01-01T00:00:00Z',
|
|
140
|
+
},
|
|
141
|
+
cid: 'cid_inactive_v1',
|
|
142
|
+
};
|
|
143
|
+
/**
|
|
144
|
+
* Development - Klados in development status
|
|
145
|
+
*/
|
|
146
|
+
export const developmentKlados = {
|
|
147
|
+
properties: {
|
|
148
|
+
label: 'Development Klados',
|
|
149
|
+
description: 'Klados in development for testing',
|
|
150
|
+
endpoint: 'https://development.test/invoke',
|
|
151
|
+
actions_required: ['file:view'],
|
|
152
|
+
accepts: { types: ['*'], cardinality: 'one' },
|
|
153
|
+
produces: { types: ['*'], cardinality: 'one' },
|
|
154
|
+
status: 'development',
|
|
155
|
+
created_at: '2025-01-01T00:00:00Z',
|
|
156
|
+
updated_at: '2025-01-01T00:00:00Z',
|
|
157
|
+
},
|
|
158
|
+
cid: 'cid_development_v1',
|
|
159
|
+
};
|
|
160
|
+
// ============================================================================
|
|
161
|
+
// Pre-configured Maps
|
|
162
|
+
// ============================================================================
|
|
163
|
+
/**
|
|
164
|
+
* Standard kladoi map for scatter-gather tests
|
|
165
|
+
*/
|
|
166
|
+
export const scatterGatherKladoi = {
|
|
167
|
+
'II01klados_producer': producerKlados,
|
|
168
|
+
'II01klados_worker': workerKlados,
|
|
169
|
+
'II01klados_aggregator': aggregatorKlados,
|
|
170
|
+
};
|
|
171
|
+
/**
|
|
172
|
+
* Standard kladoi map for linear flow tests
|
|
173
|
+
*/
|
|
174
|
+
export const linearKladoi = {
|
|
175
|
+
'II01klados_a': passthroughKlados,
|
|
176
|
+
'II01klados_b': passthroughKlados,
|
|
177
|
+
'II01klados_c': passthroughKlados,
|
|
178
|
+
};
|
|
179
|
+
/**
|
|
180
|
+
* Standard kladoi map for conditional routing tests
|
|
181
|
+
*/
|
|
182
|
+
export const conditionalKladoi = {
|
|
183
|
+
'II01klados_classifier': passthroughKlados,
|
|
184
|
+
'II01klados_pdf_handler': pdfHandlerKlados,
|
|
185
|
+
'II01klados_image_handler': imageHandlerKlados,
|
|
186
|
+
'II01klados_default_handler': passthroughKlados,
|
|
187
|
+
};
|
|
188
|
+
/**
|
|
189
|
+
* All mock kladoi combined
|
|
190
|
+
*/
|
|
191
|
+
export const allMockKladoi = {
|
|
192
|
+
...scatterGatherKladoi,
|
|
193
|
+
...linearKladoi,
|
|
194
|
+
...conditionalKladoi,
|
|
195
|
+
'II01klados_inactive': inactiveKlados,
|
|
196
|
+
'II01klados_development': developmentKlados,
|
|
197
|
+
};
|
|
198
|
+
// ============================================================================
|
|
199
|
+
// Invalid Klados Properties (for validation tests)
|
|
200
|
+
// ============================================================================
|
|
201
|
+
export const invalidKladosProperties = {
|
|
202
|
+
/** Missing endpoint */
|
|
203
|
+
missingEndpoint: {
|
|
204
|
+
label: 'Missing Endpoint',
|
|
205
|
+
actions_required: ['file:view'],
|
|
206
|
+
accepts: { types: ['*'], cardinality: 'one' },
|
|
207
|
+
produces: { types: ['*'], cardinality: 'one' },
|
|
208
|
+
status: 'active',
|
|
209
|
+
},
|
|
210
|
+
/** Invalid endpoint URL */
|
|
211
|
+
invalidEndpoint: {
|
|
212
|
+
label: 'Invalid Endpoint',
|
|
213
|
+
endpoint: 'not-a-valid-url',
|
|
214
|
+
actions_required: ['file:view'],
|
|
215
|
+
accepts: { types: ['*'], cardinality: 'one' },
|
|
216
|
+
produces: { types: ['*'], cardinality: 'one' },
|
|
217
|
+
status: 'active',
|
|
218
|
+
},
|
|
219
|
+
/** Empty accepts types */
|
|
220
|
+
emptyAcceptsTypes: {
|
|
221
|
+
label: 'Empty Accepts',
|
|
222
|
+
endpoint: 'https://test.test/invoke',
|
|
223
|
+
actions_required: ['file:view'],
|
|
224
|
+
accepts: { types: [], cardinality: 'one' },
|
|
225
|
+
produces: { types: ['*'], cardinality: 'one' },
|
|
226
|
+
status: 'active',
|
|
227
|
+
},
|
|
228
|
+
/** Empty produces types */
|
|
229
|
+
emptyProducesTypes: {
|
|
230
|
+
label: 'Empty Produces',
|
|
231
|
+
endpoint: 'https://test.test/invoke',
|
|
232
|
+
actions_required: ['file:view'],
|
|
233
|
+
accepts: { types: ['*'], cardinality: 'one' },
|
|
234
|
+
produces: { types: [], cardinality: 'one' },
|
|
235
|
+
status: 'active',
|
|
236
|
+
},
|
|
237
|
+
/** Invalid cardinality */
|
|
238
|
+
invalidCardinality: {
|
|
239
|
+
label: 'Invalid Cardinality',
|
|
240
|
+
endpoint: 'https://test.test/invoke',
|
|
241
|
+
actions_required: ['file:view'],
|
|
242
|
+
accepts: { types: ['*'], cardinality: 'invalid' },
|
|
243
|
+
produces: { types: ['*'], cardinality: 'one' },
|
|
244
|
+
status: 'active',
|
|
245
|
+
},
|
|
246
|
+
/** Empty actions required */
|
|
247
|
+
emptyActionsRequired: {
|
|
248
|
+
label: 'Empty Actions',
|
|
249
|
+
endpoint: 'https://test.test/invoke',
|
|
250
|
+
actions_required: [],
|
|
251
|
+
accepts: { types: ['*'], cardinality: 'one' },
|
|
252
|
+
produces: { types: ['*'], cardinality: 'one' },
|
|
253
|
+
status: 'active',
|
|
254
|
+
},
|
|
255
|
+
};
|
|
256
|
+
// ============================================================================
|
|
257
|
+
// Valid Klados Properties (for validation tests)
|
|
258
|
+
// ============================================================================
|
|
259
|
+
export const validKladosProperties = {
|
|
260
|
+
label: 'Valid Klados',
|
|
261
|
+
description: 'A fully valid klados for testing',
|
|
262
|
+
endpoint: 'https://valid.test/invoke',
|
|
263
|
+
actions_required: ['file:view', 'entity:update'],
|
|
264
|
+
accepts: { types: ['file/pdf'], cardinality: 'one' },
|
|
265
|
+
produces: { types: ['text/extracted'], cardinality: 'one' },
|
|
266
|
+
status: 'active',
|
|
267
|
+
created_at: '2025-01-01T00:00:00Z',
|
|
268
|
+
updated_at: '2025-01-01T00:00:00Z',
|
|
269
|
+
};
|
|
270
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/__tests__/fixtures/kladoi/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
import type { KladosLogEntry } from '../../../types';
|
|
11
|
+
export declare const successfulLinearLogs: KladosLogEntry[];
|
|
12
|
+
export declare const successfulScatterGatherLogs: KladosLogEntry[];
|
|
13
|
+
export declare const partialErrorLogs: KladosLogEntry[];
|
|
14
|
+
export declare const allErrorsLogs: KladosLogEntry[];
|
|
15
|
+
export declare const allErrorLogs: KladosLogEntry[];
|
|
16
|
+
export declare const mixedErrorLogs: KladosLogEntry[];
|
|
17
|
+
export declare const runningWorkflowLogs: KladosLogEntry[];
|
|
18
|
+
export declare const singleNodeLogs: KladosLogEntry[];
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/fixtures/logs/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,gBAAgB,CAAC;AAsBpE,eAAO,MAAM,oBAAoB,EAAE,cAAc,EA8DhD,CAAC;AAMF,eAAO,MAAM,2BAA2B,EAAE,cAAc,EAuHvD,CAAC;AAMF,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAmF5C,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,cAAc,EAiBzC,CAAC;AAGF,eAAO,MAAM,YAAY,EAAE,cAAc,EA2FxC,CAAC;AAMF,eAAO,MAAM,cAAc,EAAE,cAAc,EAoE1C,CAAC;AAMF,eAAO,MAAM,mBAAmB,EAAE,cAAc,EAqC/C,CAAC;AAMF,eAAO,MAAM,cAAc,EAAE,cAAc,EAc1C,CAAC"}
|