@arke-institute/rhiza 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/README.md +106 -0
  2. package/dist/__tests__/fixtures/index.d.ts +9 -0
  3. package/dist/__tests__/fixtures/index.d.ts.map +1 -0
  4. package/dist/__tests__/fixtures/index.js +12 -0
  5. package/dist/__tests__/fixtures/index.js.map +1 -0
  6. package/dist/__tests__/fixtures/kladoi/index.d.ts +165 -0
  7. package/dist/__tests__/fixtures/kladoi/index.d.ts.map +1 -0
  8. package/dist/__tests__/fixtures/kladoi/index.js +270 -0
  9. package/dist/__tests__/fixtures/kladoi/index.js.map +1 -0
  10. package/dist/__tests__/fixtures/logs/index.d.ts +19 -0
  11. package/dist/__tests__/fixtures/logs/index.d.ts.map +1 -0
  12. package/dist/__tests__/fixtures/logs/index.js +545 -0
  13. package/dist/__tests__/fixtures/logs/index.js.map +1 -0
  14. package/dist/__tests__/fixtures/mock-client.d.ts +127 -0
  15. package/dist/__tests__/fixtures/mock-client.d.ts.map +1 -0
  16. package/dist/__tests__/fixtures/mock-client.js +415 -0
  17. package/dist/__tests__/fixtures/mock-client.js.map +1 -0
  18. package/dist/__tests__/fixtures/rhizai/index.d.ts +54 -0
  19. package/dist/__tests__/fixtures/rhizai/index.d.ts.map +1 -0
  20. package/dist/__tests__/fixtures/rhizai/index.js +283 -0
  21. package/dist/__tests__/fixtures/rhizai/index.js.map +1 -0
  22. package/dist/__tests__/unit/fixtures.test.d.ts +10 -0
  23. package/dist/__tests__/unit/fixtures.test.d.ts.map +1 -0
  24. package/dist/__tests__/unit/fixtures.test.js +275 -0
  25. package/dist/__tests__/unit/fixtures.test.js.map +1 -0
  26. package/dist/__tests__/unit/handoff/gather.test.d.ts +8 -0
  27. package/dist/__tests__/unit/handoff/gather.test.d.ts.map +1 -0
  28. package/dist/__tests__/unit/handoff/gather.test.js +176 -0
  29. package/dist/__tests__/unit/handoff/gather.test.js.map +1 -0
  30. package/dist/__tests__/unit/handoff/interpret.test.d.ts +9 -0
  31. package/dist/__tests__/unit/handoff/interpret.test.d.ts.map +1 -0
  32. package/dist/__tests__/unit/handoff/interpret.test.js +370 -0
  33. package/dist/__tests__/unit/handoff/interpret.test.js.map +1 -0
  34. package/dist/__tests__/unit/handoff/route.test.d.ts +8 -0
  35. package/dist/__tests__/unit/handoff/route.test.d.ts.map +1 -0
  36. package/dist/__tests__/unit/handoff/route.test.js +271 -0
  37. package/dist/__tests__/unit/handoff/route.test.js.map +1 -0
  38. package/dist/__tests__/unit/handoff/scatter.test.d.ts +7 -0
  39. package/dist/__tests__/unit/handoff/scatter.test.d.ts.map +1 -0
  40. package/dist/__tests__/unit/handoff/scatter.test.js +54 -0
  41. package/dist/__tests__/unit/handoff/scatter.test.js.map +1 -0
  42. package/dist/__tests__/unit/resume.test.d.ts +8 -0
  43. package/dist/__tests__/unit/resume.test.d.ts.map +1 -0
  44. package/dist/__tests__/unit/resume.test.js +134 -0
  45. package/dist/__tests__/unit/resume.test.js.map +1 -0
  46. package/dist/__tests__/unit/status.test.d.ts +8 -0
  47. package/dist/__tests__/unit/status.test.d.ts.map +1 -0
  48. package/dist/__tests__/unit/status.test.js +164 -0
  49. package/dist/__tests__/unit/status.test.js.map +1 -0
  50. package/dist/__tests__/unit/target.test.d.ts +8 -0
  51. package/dist/__tests__/unit/target.test.d.ts.map +1 -0
  52. package/dist/__tests__/unit/target.test.js +116 -0
  53. package/dist/__tests__/unit/target.test.js.map +1 -0
  54. package/dist/__tests__/unit/traverse.test.d.ts +8 -0
  55. package/dist/__tests__/unit/traverse.test.d.ts.map +1 -0
  56. package/dist/__tests__/unit/traverse.test.js +143 -0
  57. package/dist/__tests__/unit/traverse.test.js.map +1 -0
  58. package/dist/__tests__/unit/validation/klados.test.d.ts +16 -0
  59. package/dist/__tests__/unit/validation/klados.test.d.ts.map +1 -0
  60. package/dist/__tests__/unit/validation/klados.test.js +275 -0
  61. package/dist/__tests__/unit/validation/klados.test.js.map +1 -0
  62. package/dist/__tests__/unit/validation/rhiza.test.d.ts +16 -0
  63. package/dist/__tests__/unit/validation/rhiza.test.d.ts.map +1 -0
  64. package/dist/__tests__/unit/validation/rhiza.test.js +612 -0
  65. package/dist/__tests__/unit/validation/rhiza.test.js.map +1 -0
  66. package/dist/__tests__/unit/validation/runtime.test.d.ts +11 -0
  67. package/dist/__tests__/unit/validation/runtime.test.d.ts.map +1 -0
  68. package/dist/__tests__/unit/validation/runtime.test.js +553 -0
  69. package/dist/__tests__/unit/validation/runtime.test.js.map +1 -0
  70. package/dist/__tests__/unit/worker/errors.test.d.ts +2 -0
  71. package/dist/__tests__/unit/worker/errors.test.d.ts.map +1 -0
  72. package/dist/__tests__/unit/worker/errors.test.js +226 -0
  73. package/dist/__tests__/unit/worker/errors.test.js.map +1 -0
  74. package/dist/__tests__/unit/worker/job.test.d.ts +2 -0
  75. package/dist/__tests__/unit/worker/job.test.d.ts.map +1 -0
  76. package/dist/__tests__/unit/worker/job.test.js +233 -0
  77. package/dist/__tests__/unit/worker/job.test.js.map +1 -0
  78. package/dist/client/index.d.ts +10 -0
  79. package/dist/client/index.d.ts.map +1 -0
  80. package/dist/client/index.js +8 -0
  81. package/dist/client/index.js.map +1 -0
  82. package/dist/client/interface.d.ts +142 -0
  83. package/dist/client/interface.d.ts.map +1 -0
  84. package/dist/client/interface.js +8 -0
  85. package/dist/client/interface.js.map +1 -0
  86. package/dist/client/mock.d.ts +95 -0
  87. package/dist/client/mock.d.ts.map +1 -0
  88. package/dist/client/mock.js +795 -0
  89. package/dist/client/mock.js.map +1 -0
  90. package/dist/client/types.d.ts +344 -0
  91. package/dist/client/types.d.ts.map +1 -0
  92. package/dist/client/types.js +8 -0
  93. package/dist/client/types.js.map +1 -0
  94. package/dist/handoff/gather-api.d.ts +60 -0
  95. package/dist/handoff/gather-api.d.ts.map +1 -0
  96. package/dist/handoff/gather-api.js +130 -0
  97. package/dist/handoff/gather-api.js.map +1 -0
  98. package/dist/handoff/gather.d.ts +59 -0
  99. package/dist/handoff/gather.d.ts.map +1 -0
  100. package/dist/handoff/gather.js +134 -0
  101. package/dist/handoff/gather.js.map +1 -0
  102. package/dist/handoff/index.d.ts +19 -0
  103. package/dist/handoff/index.d.ts.map +1 -0
  104. package/dist/handoff/index.js +25 -0
  105. package/dist/handoff/index.js.map +1 -0
  106. package/dist/handoff/interpret.d.ts +79 -0
  107. package/dist/handoff/interpret.d.ts.map +1 -0
  108. package/dist/handoff/interpret.js +197 -0
  109. package/dist/handoff/interpret.js.map +1 -0
  110. package/dist/handoff/invoke.d.ts +82 -0
  111. package/dist/handoff/invoke.d.ts.map +1 -0
  112. package/dist/handoff/invoke.js +196 -0
  113. package/dist/handoff/invoke.js.map +1 -0
  114. package/dist/handoff/route.d.ts +25 -0
  115. package/dist/handoff/route.d.ts.map +1 -0
  116. package/dist/handoff/route.js +65 -0
  117. package/dist/handoff/route.js.map +1 -0
  118. package/dist/handoff/scatter-api.d.ts +62 -0
  119. package/dist/handoff/scatter-api.d.ts.map +1 -0
  120. package/dist/handoff/scatter-api.js +81 -0
  121. package/dist/handoff/scatter-api.js.map +1 -0
  122. package/dist/handoff/scatter.d.ts +19 -0
  123. package/dist/handoff/scatter.d.ts.map +1 -0
  124. package/dist/handoff/scatter.js +27 -0
  125. package/dist/handoff/scatter.js.map +1 -0
  126. package/dist/handoff/target.d.ts +16 -0
  127. package/dist/handoff/target.d.ts.map +1 -0
  128. package/dist/handoff/target.js +51 -0
  129. package/dist/handoff/target.js.map +1 -0
  130. package/dist/index.d.ts +42 -0
  131. package/dist/index.d.ts.map +1 -0
  132. package/dist/index.js +52 -0
  133. package/dist/index.js.map +1 -0
  134. package/dist/logging/index.d.ts +4 -0
  135. package/dist/logging/index.d.ts.map +1 -0
  136. package/dist/logging/index.js +3 -0
  137. package/dist/logging/index.js.map +1 -0
  138. package/dist/logging/logger.d.ts +52 -0
  139. package/dist/logging/logger.d.ts.map +1 -0
  140. package/dist/logging/logger.js +70 -0
  141. package/dist/logging/logger.js.map +1 -0
  142. package/dist/logging/writer.d.ts +63 -0
  143. package/dist/logging/writer.d.ts.map +1 -0
  144. package/dist/logging/writer.js +160 -0
  145. package/dist/logging/writer.js.map +1 -0
  146. package/dist/resume/index.d.ts +77 -0
  147. package/dist/resume/index.d.ts.map +1 -0
  148. package/dist/resume/index.js +110 -0
  149. package/dist/resume/index.js.map +1 -0
  150. package/dist/status/index.d.ts +54 -0
  151. package/dist/status/index.d.ts.map +1 -0
  152. package/dist/status/index.js +107 -0
  153. package/dist/status/index.js.map +1 -0
  154. package/dist/traverse/index.d.ts +53 -0
  155. package/dist/traverse/index.d.ts.map +1 -0
  156. package/dist/traverse/index.js +142 -0
  157. package/dist/traverse/index.js.map +1 -0
  158. package/dist/types/batch.d.ts +53 -0
  159. package/dist/types/batch.d.ts.map +1 -0
  160. package/dist/types/batch.js +2 -0
  161. package/dist/types/batch.js.map +1 -0
  162. package/dist/types/index.d.ts +10 -0
  163. package/dist/types/index.d.ts.map +1 -0
  164. package/dist/types/index.js +2 -0
  165. package/dist/types/index.js.map +1 -0
  166. package/dist/types/klados.d.ts +63 -0
  167. package/dist/types/klados.d.ts.map +1 -0
  168. package/dist/types/klados.js +2 -0
  169. package/dist/types/klados.js.map +1 -0
  170. package/dist/types/log.d.ts +107 -0
  171. package/dist/types/log.d.ts.map +1 -0
  172. package/dist/types/log.js +2 -0
  173. package/dist/types/log.js.map +1 -0
  174. package/dist/types/refs.d.ts +58 -0
  175. package/dist/types/refs.d.ts.map +1 -0
  176. package/dist/types/refs.js +43 -0
  177. package/dist/types/refs.js.map +1 -0
  178. package/dist/types/request.d.ts +69 -0
  179. package/dist/types/request.d.ts.map +1 -0
  180. package/dist/types/request.js +2 -0
  181. package/dist/types/request.js.map +1 -0
  182. package/dist/types/response.d.ts +31 -0
  183. package/dist/types/response.d.ts.map +1 -0
  184. package/dist/types/response.js +2 -0
  185. package/dist/types/response.js.map +1 -0
  186. package/dist/types/rhiza.d.ts +100 -0
  187. package/dist/types/rhiza.d.ts.map +1 -0
  188. package/dist/types/rhiza.js +2 -0
  189. package/dist/types/rhiza.js.map +1 -0
  190. package/dist/types/status.d.ts +84 -0
  191. package/dist/types/status.d.ts.map +1 -0
  192. package/dist/types/status.js +2 -0
  193. package/dist/types/status.js.map +1 -0
  194. package/dist/utils/id.d.ts +15 -0
  195. package/dist/utils/id.d.ts.map +1 -0
  196. package/dist/utils/id.js +25 -0
  197. package/dist/utils/id.js.map +1 -0
  198. package/dist/utils/index.d.ts +2 -0
  199. package/dist/utils/index.d.ts.map +1 -0
  200. package/dist/utils/index.js +2 -0
  201. package/dist/utils/index.js.map +1 -0
  202. package/dist/validation/index.d.ts +9 -0
  203. package/dist/validation/index.d.ts.map +1 -0
  204. package/dist/validation/index.js +9 -0
  205. package/dist/validation/index.js.map +1 -0
  206. package/dist/validation/validate-klados.d.ts +38 -0
  207. package/dist/validation/validate-klados.d.ts.map +1 -0
  208. package/dist/validation/validate-klados.js +139 -0
  209. package/dist/validation/validate-klados.js.map +1 -0
  210. package/dist/validation/validate-rhiza.d.ts +29 -0
  211. package/dist/validation/validate-rhiza.d.ts.map +1 -0
  212. package/dist/validation/validate-rhiza.js +382 -0
  213. package/dist/validation/validate-rhiza.js.map +1 -0
  214. package/dist/validation/validate-runtime.d.ts +28 -0
  215. package/dist/validation/validate-runtime.d.ts.map +1 -0
  216. package/dist/validation/validate-runtime.js +212 -0
  217. package/dist/validation/validate-runtime.js.map +1 -0
  218. package/dist/worker/errors.d.ts +77 -0
  219. package/dist/worker/errors.d.ts.map +1 -0
  220. package/dist/worker/errors.js +143 -0
  221. package/dist/worker/errors.js.map +1 -0
  222. package/dist/worker/index.d.ts +8 -0
  223. package/dist/worker/index.d.ts.map +1 -0
  224. package/dist/worker/index.js +8 -0
  225. package/dist/worker/index.js.map +1 -0
  226. package/dist/worker/job.d.ts +150 -0
  227. package/dist/worker/job.d.ts.map +1 -0
  228. package/dist/worker/job.js +280 -0
  229. package/dist/worker/job.js.map +1 -0
  230. package/package.json +48 -0
@@ -0,0 +1,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,8 @@
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
+ export {};
8
+ //# sourceMappingURL=interface.js.map
@@ -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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"}