@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,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rhiza Client Interface
|
|
3
|
+
*
|
|
4
|
+
* Abstract interface for Arke API operations needed by rhiza.
|
|
5
|
+
* Both the real SDK client and mock client implement this interface.
|
|
6
|
+
*/
|
|
7
|
+
import type { ApiError, CreateEntityParams, UpdateEntityParams, EntityResponse, CreateKladosParams, UpdateKladosParams, InvokeKladosParams, CreateRhizaParams, UpdateRhizaParams, InvokeRhizaParams, InvokeResponse, WorkflowStatusResponse, ResumeParams, ResumeResponse, CreateLogParams, UpdateLogParams, CreateBatchParams, UpdateBatchParams, VerifyResponse, KladosEntity, RhizaEntity, KladosLogEntry, BatchEntity } from './types';
|
|
8
|
+
/**
|
|
9
|
+
* Result type for API operations
|
|
10
|
+
*/
|
|
11
|
+
export interface ApiResult<T> {
|
|
12
|
+
data?: T;
|
|
13
|
+
error?: ApiError;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Abstract interface for Arke API operations needed by rhiza.
|
|
17
|
+
*
|
|
18
|
+
* This interface defines the consumer-driven contract that the API must implement.
|
|
19
|
+
* The mock client serves as the specification, the SDK client as the real implementation.
|
|
20
|
+
*/
|
|
21
|
+
export interface RhizaClient {
|
|
22
|
+
/**
|
|
23
|
+
* Get any entity by ID
|
|
24
|
+
*/
|
|
25
|
+
getEntity<T = unknown>(id: string): Promise<ApiResult<T>>;
|
|
26
|
+
/**
|
|
27
|
+
* Get entity tip (CID) for CAS updates
|
|
28
|
+
*/
|
|
29
|
+
getEntityTip(id: string): Promise<ApiResult<{
|
|
30
|
+
cid: string;
|
|
31
|
+
}>>;
|
|
32
|
+
/**
|
|
33
|
+
* Create an entity
|
|
34
|
+
*/
|
|
35
|
+
createEntity(params: CreateEntityParams): Promise<ApiResult<EntityResponse>>;
|
|
36
|
+
/**
|
|
37
|
+
* Update an entity
|
|
38
|
+
*/
|
|
39
|
+
updateEntity(id: string, params: UpdateEntityParams): Promise<ApiResult<EntityResponse>>;
|
|
40
|
+
/**
|
|
41
|
+
* Get klados entity with type checking
|
|
42
|
+
*/
|
|
43
|
+
getKlados(id: string): Promise<ApiResult<KladosEntity>>;
|
|
44
|
+
/**
|
|
45
|
+
* Create klados (with validation)
|
|
46
|
+
*
|
|
47
|
+
* Server validates:
|
|
48
|
+
* - endpoint is valid URL
|
|
49
|
+
* - accepts/produces contracts are valid
|
|
50
|
+
* - label is non-empty
|
|
51
|
+
*/
|
|
52
|
+
createKlados(params: CreateKladosParams): Promise<ApiResult<KladosEntity>>;
|
|
53
|
+
/**
|
|
54
|
+
* Update klados (with validation)
|
|
55
|
+
*
|
|
56
|
+
* Special behavior:
|
|
57
|
+
* - Changing endpoint clears endpoint_verified_at and resets status to 'development'
|
|
58
|
+
* - Setting status='active' requires endpoint_verified_at to be set
|
|
59
|
+
*/
|
|
60
|
+
updateKlados(id: string, params: UpdateKladosParams): Promise<ApiResult<KladosEntity>>;
|
|
61
|
+
/**
|
|
62
|
+
* Invoke klados (standalone or workflow context)
|
|
63
|
+
*
|
|
64
|
+
* In standalone mode, creates a new job collection.
|
|
65
|
+
* In workflow mode (with rhizaContext), uses existing job collection.
|
|
66
|
+
*/
|
|
67
|
+
invokeKlados(id: string, params: InvokeKladosParams): Promise<ApiResult<InvokeResponse>>;
|
|
68
|
+
/**
|
|
69
|
+
* Verify klados endpoint ownership
|
|
70
|
+
*
|
|
71
|
+
* Two-phase verification:
|
|
72
|
+
* 1. Call without confirm to get verification token
|
|
73
|
+
* 2. Call with confirm: true after endpoint returns the token
|
|
74
|
+
*/
|
|
75
|
+
verifyKlados(id: string, params?: {
|
|
76
|
+
confirm?: boolean;
|
|
77
|
+
}): Promise<ApiResult<VerifyResponse>>;
|
|
78
|
+
/**
|
|
79
|
+
* Get rhiza entity with type checking
|
|
80
|
+
*/
|
|
81
|
+
getRhiza(id: string): Promise<ApiResult<RhizaEntity>>;
|
|
82
|
+
/**
|
|
83
|
+
* Create rhiza (with static validation)
|
|
84
|
+
*
|
|
85
|
+
* Server validates:
|
|
86
|
+
* - entry is in flow
|
|
87
|
+
* - all paths terminate
|
|
88
|
+
* - no cycles
|
|
89
|
+
* - all route rules have valid targets
|
|
90
|
+
*/
|
|
91
|
+
createRhiza(params: CreateRhizaParams): Promise<ApiResult<RhizaEntity>>;
|
|
92
|
+
/**
|
|
93
|
+
* Update rhiza (with validation)
|
|
94
|
+
*/
|
|
95
|
+
updateRhiza(id: string, params: UpdateRhizaParams): Promise<ApiResult<RhizaEntity>>;
|
|
96
|
+
/**
|
|
97
|
+
* Invoke rhiza workflow
|
|
98
|
+
*
|
|
99
|
+
* Creates a job collection and starts the workflow from the entry klados.
|
|
100
|
+
* Runtime validates all kladoi are verified before starting.
|
|
101
|
+
*/
|
|
102
|
+
invokeRhiza(id: string, params: InvokeRhizaParams): Promise<ApiResult<InvokeResponse>>;
|
|
103
|
+
/**
|
|
104
|
+
* Get workflow status
|
|
105
|
+
*
|
|
106
|
+
* Returns current execution state, progress counters, and any errors.
|
|
107
|
+
*/
|
|
108
|
+
getWorkflowStatus(rhizaId: string, jobId: string): Promise<ApiResult<WorkflowStatusResponse>>;
|
|
109
|
+
/**
|
|
110
|
+
* Resume failed workflow
|
|
111
|
+
*
|
|
112
|
+
* Re-invokes failed jobs that are marked as retryable.
|
|
113
|
+
*/
|
|
114
|
+
resumeWorkflow(rhizaId: string, jobId: string, params?: ResumeParams): Promise<ApiResult<ResumeResponse>>;
|
|
115
|
+
/**
|
|
116
|
+
* Create a klados log entry
|
|
117
|
+
*
|
|
118
|
+
* Log entries track the execution of a klados invocation.
|
|
119
|
+
*/
|
|
120
|
+
createLog(params: CreateLogParams): Promise<ApiResult<KladosLogEntry>>;
|
|
121
|
+
/**
|
|
122
|
+
* Update a log entry (add handoffs, change status)
|
|
123
|
+
*/
|
|
124
|
+
updateLog(id: string, params: UpdateLogParams): Promise<ApiResult<KladosLogEntry>>;
|
|
125
|
+
/**
|
|
126
|
+
* Get logs for a job collection
|
|
127
|
+
*/
|
|
128
|
+
getJobLogs(jobCollectionId: string): Promise<ApiResult<KladosLogEntry[]>>;
|
|
129
|
+
/**
|
|
130
|
+
* Create a scatter batch entity
|
|
131
|
+
*/
|
|
132
|
+
createBatch(params: CreateBatchParams): Promise<ApiResult<BatchEntity>>;
|
|
133
|
+
/**
|
|
134
|
+
* Update batch (complete/error slots)
|
|
135
|
+
*/
|
|
136
|
+
updateBatch(id: string, params: UpdateBatchParams): Promise<ApiResult<BatchEntity>>;
|
|
137
|
+
/**
|
|
138
|
+
* Get batch entity
|
|
139
|
+
*/
|
|
140
|
+
getBatch(id: string): Promise<ApiResult<BatchEntity>>;
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/client/interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/client/interface.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mock Rhiza Client
|
|
3
|
+
*
|
|
4
|
+
* In-memory implementation of the RhizaClient interface.
|
|
5
|
+
* This serves as the API specification - it defines exactly what the
|
|
6
|
+
* real API endpoints should do.
|
|
7
|
+
*
|
|
8
|
+
* Use this for:
|
|
9
|
+
* - Unit tests
|
|
10
|
+
* - Development without network
|
|
11
|
+
* - API contract specification
|
|
12
|
+
*/
|
|
13
|
+
import type { RhizaClient, ApiResult } from './interface';
|
|
14
|
+
import type { CreateEntityParams, UpdateEntityParams, EntityResponse, CreateKladosParams, UpdateKladosParams, InvokeKladosParams, CreateRhizaParams, UpdateRhizaParams, InvokeRhizaParams, InvokeResponse, WorkflowStatusResponse, ResumeParams, ResumeResponse, CreateLogParams, UpdateLogParams, CreateBatchParams, UpdateBatchParams, VerifyResponse, KladosEntity, RhizaEntity, KladosLogEntry, BatchEntity } from './types';
|
|
15
|
+
interface StoredEntity {
|
|
16
|
+
id: string;
|
|
17
|
+
cid: string;
|
|
18
|
+
type: string;
|
|
19
|
+
properties: Record<string, unknown>;
|
|
20
|
+
collectionId: string;
|
|
21
|
+
relationships: Array<{
|
|
22
|
+
predicate: string;
|
|
23
|
+
peer: string;
|
|
24
|
+
}>;
|
|
25
|
+
createdAt: string;
|
|
26
|
+
updatedAt: string;
|
|
27
|
+
}
|
|
28
|
+
interface MockClientConfig {
|
|
29
|
+
/** Pre-seed entities (keyed by ID) */
|
|
30
|
+
entities?: Record<string, StoredEntity>;
|
|
31
|
+
/** Enable logging for debugging */
|
|
32
|
+
debug?: boolean;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* In-memory mock implementation of RhizaClient.
|
|
36
|
+
*
|
|
37
|
+
* This implementation defines the expected API behavior.
|
|
38
|
+
* The real API should match this behavior exactly.
|
|
39
|
+
*/
|
|
40
|
+
export declare class MockRhizaClient implements RhizaClient {
|
|
41
|
+
private entities;
|
|
42
|
+
private collections;
|
|
43
|
+
private pendingVerifications;
|
|
44
|
+
private debug;
|
|
45
|
+
private idCounter;
|
|
46
|
+
constructor(config?: MockClientConfig);
|
|
47
|
+
getEntity<T = unknown>(id: string): Promise<ApiResult<T>>;
|
|
48
|
+
getEntityTip(id: string): Promise<ApiResult<{
|
|
49
|
+
cid: string;
|
|
50
|
+
}>>;
|
|
51
|
+
createEntity(params: CreateEntityParams): Promise<ApiResult<EntityResponse>>;
|
|
52
|
+
updateEntity(id: string, params: UpdateEntityParams): Promise<ApiResult<EntityResponse>>;
|
|
53
|
+
getKlados(id: string): Promise<ApiResult<KladosEntity>>;
|
|
54
|
+
createKlados(params: CreateKladosParams): Promise<ApiResult<KladosEntity>>;
|
|
55
|
+
updateKlados(id: string, params: UpdateKladosParams): Promise<ApiResult<KladosEntity>>;
|
|
56
|
+
invokeKlados(id: string, params: InvokeKladosParams): Promise<ApiResult<InvokeResponse>>;
|
|
57
|
+
verifyKlados(id: string, params?: {
|
|
58
|
+
confirm?: boolean;
|
|
59
|
+
}): Promise<ApiResult<VerifyResponse>>;
|
|
60
|
+
getRhiza(id: string): Promise<ApiResult<RhizaEntity>>;
|
|
61
|
+
createRhiza(params: CreateRhizaParams): Promise<ApiResult<RhizaEntity>>;
|
|
62
|
+
updateRhiza(id: string, params: UpdateRhizaParams): Promise<ApiResult<RhizaEntity>>;
|
|
63
|
+
invokeRhiza(id: string, params: InvokeRhizaParams): Promise<ApiResult<InvokeResponse>>;
|
|
64
|
+
getWorkflowStatus(_rhizaId: string, jobId: string): Promise<ApiResult<WorkflowStatusResponse>>;
|
|
65
|
+
resumeWorkflow(_rhizaId: string, jobId: string, params?: ResumeParams): Promise<ApiResult<ResumeResponse>>;
|
|
66
|
+
createLog(params: CreateLogParams): Promise<ApiResult<KladosLogEntry>>;
|
|
67
|
+
updateLog(id: string, params: UpdateLogParams): Promise<ApiResult<KladosLogEntry>>;
|
|
68
|
+
getJobLogs(jobCollectionId: string): Promise<ApiResult<KladosLogEntry[]>>;
|
|
69
|
+
createBatch(params: CreateBatchParams): Promise<ApiResult<BatchEntity>>;
|
|
70
|
+
updateBatch(id: string, params: UpdateBatchParams): Promise<ApiResult<BatchEntity>>;
|
|
71
|
+
getBatch(id: string): Promise<ApiResult<BatchEntity>>;
|
|
72
|
+
/**
|
|
73
|
+
* Reset all state (for testing)
|
|
74
|
+
*/
|
|
75
|
+
reset(): void;
|
|
76
|
+
/**
|
|
77
|
+
* Get all entities of a type (for testing)
|
|
78
|
+
*/
|
|
79
|
+
getEntitiesByType(type: string): StoredEntity[];
|
|
80
|
+
/**
|
|
81
|
+
* Seed an entity directly (for testing)
|
|
82
|
+
*/
|
|
83
|
+
seedEntity(entity: StoredEntity): void;
|
|
84
|
+
private generateId;
|
|
85
|
+
private generateCid;
|
|
86
|
+
private addToCollection;
|
|
87
|
+
private toEntityResponse;
|
|
88
|
+
private log;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Create a mock client with optional pre-seeded data
|
|
92
|
+
*/
|
|
93
|
+
export declare function createMockRhizaClient(config?: MockClientConfig): MockRhizaClient;
|
|
94
|
+
export {};
|
|
95
|
+
//# sourceMappingURL=mock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../src/client/mock.ts"],"names":[],"mappings":"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"}
|