@shalwin04/x404r-sdk 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 (58) hide show
  1. package/README.md +391 -0
  2. package/dist/ai/index.d.ts +21 -0
  3. package/dist/ai/index.d.ts.map +1 -0
  4. package/dist/ai/index.js +344 -0
  5. package/dist/ai/index.js.map +1 -0
  6. package/dist/backend/cloud.d.ts +91 -0
  7. package/dist/backend/cloud.d.ts.map +1 -0
  8. package/dist/backend/cloud.js +257 -0
  9. package/dist/backend/cloud.js.map +1 -0
  10. package/dist/backend/embedded.d.ts +79 -0
  11. package/dist/backend/embedded.d.ts.map +1 -0
  12. package/dist/backend/embedded.js +307 -0
  13. package/dist/backend/embedded.js.map +1 -0
  14. package/dist/backend/index.d.ts +11 -0
  15. package/dist/backend/index.d.ts.map +1 -0
  16. package/dist/backend/index.js +8 -0
  17. package/dist/backend/index.js.map +1 -0
  18. package/dist/backend/interface.d.ts +88 -0
  19. package/dist/backend/interface.d.ts.map +1 -0
  20. package/dist/backend/interface.js +11 -0
  21. package/dist/backend/interface.js.map +1 -0
  22. package/dist/chaos.d.ts +117 -0
  23. package/dist/chaos.d.ts.map +1 -0
  24. package/dist/chaos.js +215 -0
  25. package/dist/chaos.js.map +1 -0
  26. package/dist/client.d.ts +242 -0
  27. package/dist/client.d.ts.map +1 -0
  28. package/dist/client.js +401 -0
  29. package/dist/client.js.map +1 -0
  30. package/dist/context.d.ts +18 -0
  31. package/dist/context.d.ts.map +1 -0
  32. package/dist/context.js +65 -0
  33. package/dist/context.js.map +1 -0
  34. package/dist/durable.d.ts +90 -0
  35. package/dist/durable.d.ts.map +1 -0
  36. package/dist/durable.js +143 -0
  37. package/dist/durable.js.map +1 -0
  38. package/dist/index.d.ts +74 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +76 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/metrics.d.ts +279 -0
  43. package/dist/metrics.d.ts.map +1 -0
  44. package/dist/metrics.js +693 -0
  45. package/dist/metrics.js.map +1 -0
  46. package/dist/types.d.ts +240 -0
  47. package/dist/types.d.ts.map +1 -0
  48. package/dist/types.js +16 -0
  49. package/dist/types.js.map +1 -0
  50. package/dist/worker.d.ts +74 -0
  51. package/dist/worker.d.ts.map +1 -0
  52. package/dist/worker.js +269 -0
  53. package/dist/worker.js.map +1 -0
  54. package/dist/workflow.d.ts +48 -0
  55. package/dist/workflow.d.ts.map +1 -0
  56. package/dist/workflow.js +190 -0
  57. package/dist/workflow.js.map +1 -0
  58. package/package.json +93 -0
@@ -0,0 +1,242 @@
1
+ /**
2
+ * x404r Client
3
+ * Main entry point for the SDK - supports both embedded and cloud modes
4
+ */
5
+ import type { Backend } from './backend/index.js';
6
+ import { WorkflowBuilder } from './workflow.js';
7
+ import { Worker } from './worker.js';
8
+ import type { X404rConfig, AIProvider, WorkflowDefinition, WorkerConfig, Workflow, Task, EventHandler, WorkflowEvent } from './types.js';
9
+ /**
10
+ * x404r Client
11
+ *
12
+ * Supports two modes:
13
+ *
14
+ * **Embedded Mode** - Direct DB connection, run workers locally
15
+ * ```typescript
16
+ * const runtime = new x404r({
17
+ * mode: 'embedded', // optional, default
18
+ * connectionString: process.env.DATABASE_URL,
19
+ * ai: { provider: 'gemini', apiKey: '...' }
20
+ * });
21
+ * runtime.worker().start(); // Run workers locally
22
+ * ```
23
+ *
24
+ * **Cloud Mode** - Connect to hosted API, workers run on Lambda
25
+ * ```typescript
26
+ * const runtime = new x404r({
27
+ * mode: 'cloud',
28
+ * apiKey: 'x404r_live_...'
29
+ * });
30
+ * // No workers needed - Lambda handles execution
31
+ * const result = await runtime.submit('my-workflow', { input });
32
+ * ```
33
+ */
34
+ export declare class AgentDB {
35
+ private backend;
36
+ private aiProvider;
37
+ private mode;
38
+ private debug;
39
+ private eventHandlers;
40
+ private workflows;
41
+ private initPromise;
42
+ private tenantId;
43
+ constructor(config: X404rConfig);
44
+ /**
45
+ * Wait for client to be ready
46
+ */
47
+ ready(): Promise<this>;
48
+ /**
49
+ * Get current mode
50
+ */
51
+ get currentMode(): 'embedded' | 'cloud';
52
+ /**
53
+ * Check if running in embedded mode
54
+ */
55
+ get isEmbedded(): boolean;
56
+ /**
57
+ * Check if running in cloud mode
58
+ */
59
+ get isCloud(): boolean;
60
+ /**
61
+ * Define a new workflow
62
+ *
63
+ * In embedded mode, the workflow definition includes step handlers.
64
+ * In cloud mode, workflows must be pre-registered on the platform.
65
+ */
66
+ workflow<TInput = unknown, TOutput = unknown>(name: string, definition: Omit<WorkflowDefinition<TInput, TOutput>, 'name'>): WorkflowBuilder<TInput, TOutput>;
67
+ /**
68
+ * Get a registered workflow builder by name
69
+ */
70
+ getWorkflowBuilder(name: string): WorkflowBuilder<any, any> | undefined;
71
+ /**
72
+ * Create a worker to process tasks
73
+ *
74
+ * @throws Error if called in cloud mode
75
+ */
76
+ worker(config?: WorkerConfig): Worker;
77
+ /**
78
+ * Submit a workflow for execution (cloud mode)
79
+ *
80
+ * In cloud mode, this submits to the API and Lambda workers execute it.
81
+ * In embedded mode, this creates the workflow and you need to run workers.
82
+ */
83
+ submit(workflowName: string, input: Record<string, unknown>, options?: {
84
+ priority?: number;
85
+ wait?: boolean;
86
+ timeout?: number;
87
+ }): Promise<{
88
+ workflowId: string;
89
+ status: string;
90
+ output?: unknown;
91
+ }>;
92
+ /**
93
+ * Get workflow status
94
+ */
95
+ status(workflowId: string): Promise<Workflow | null>;
96
+ /**
97
+ * List workflows
98
+ */
99
+ list(options?: {
100
+ status?: 'pending' | 'running' | 'completed' | 'failed';
101
+ limit?: number;
102
+ offset?: number;
103
+ }): Promise<Workflow[]>;
104
+ /**
105
+ * Wait for workflow completion
106
+ */
107
+ wait(workflowId: string, options?: {
108
+ timeout?: number;
109
+ pollInterval?: number;
110
+ }): Promise<Workflow>;
111
+ /**
112
+ * Replay a workflow from a checkpoint
113
+ */
114
+ replay(workflowId: string, checkpointId: string, newInput?: Record<string, unknown>): Promise<Workflow>;
115
+ /**
116
+ * Get checkpoints for a workflow
117
+ */
118
+ checkpoints(workflowId: string): Promise<{
119
+ taskId: string;
120
+ taskName: string;
121
+ stepIndex: number;
122
+ state: Record<string, unknown>;
123
+ createdAt: Date;
124
+ }[]>;
125
+ /**
126
+ * Get cost summary for a workflow
127
+ */
128
+ cost(workflowId: string): Promise<{
129
+ totalTokens: number;
130
+ estimatedCostUsd: number;
131
+ savedByRecoveryUsd: number;
132
+ }>;
133
+ /**
134
+ * Register an event handler
135
+ */
136
+ on(handler: EventHandler): () => void;
137
+ /**
138
+ * Emit an event to all handlers
139
+ */
140
+ emit(event: WorkflowEvent): Promise<void>;
141
+ /**
142
+ * Get the backend instance
143
+ */
144
+ getBackend(): Backend;
145
+ /**
146
+ * Get the database pool (embedded mode only)
147
+ */
148
+ get db(): import("pg").Pool;
149
+ /**
150
+ * Get the AI provider
151
+ */
152
+ get ai(): AIProvider;
153
+ /**
154
+ * Get the tenant ID
155
+ */
156
+ get tenant(): string;
157
+ /**
158
+ * Log a debug message
159
+ */
160
+ log(message: string, data?: Record<string, unknown>): void;
161
+ /**
162
+ * Create a workflow record
163
+ */
164
+ createWorkflow(name: string, version: string, input: Record<string, unknown>, priority?: number): Promise<Workflow>;
165
+ /**
166
+ * Get a workflow from database by ID
167
+ */
168
+ getWorkflow(id: string): Promise<Workflow | null>;
169
+ /**
170
+ * Update workflow status
171
+ */
172
+ updateWorkflowStatus(id: string, status: string, output?: Record<string, unknown>, error?: string): Promise<void>;
173
+ /**
174
+ * Create tasks for a workflow
175
+ */
176
+ createTasks(workflowId: string, tasks: Array<{
177
+ name: string;
178
+ type: string;
179
+ input: Record<string, unknown>;
180
+ dependsOn: string[];
181
+ maxAttempts?: number;
182
+ }>): Promise<Task[]>;
183
+ /**
184
+ * Claim a task atomically (embedded mode only)
185
+ */
186
+ claimTask(workerId: string, taskTypes?: string[]): Promise<Task | null>;
187
+ /**
188
+ * Update task heartbeat (embedded mode only)
189
+ */
190
+ heartbeat(taskId: string): Promise<void>;
191
+ /**
192
+ * Complete a task
193
+ */
194
+ completeTask(taskId: string, output: Record<string, unknown>): Promise<void>;
195
+ /**
196
+ * Fail a task
197
+ */
198
+ failTask(taskId: string, error: string): Promise<void>;
199
+ /**
200
+ * Get tasks for a workflow
201
+ */
202
+ getWorkflowTasks(workflowId: string): Promise<Task[]>;
203
+ /**
204
+ * Create a checkpoint
205
+ */
206
+ createCheckpoint(taskId: string, stepIndex: number, state: Record<string, unknown>): Promise<void>;
207
+ /**
208
+ * Get latest checkpoint for a task
209
+ */
210
+ getCheckpoint(taskId: string): Promise<{
211
+ stepIndex: number;
212
+ state: Record<string, unknown>;
213
+ } | null>;
214
+ /**
215
+ * Store memory for learning
216
+ */
217
+ storeMemory(taskId: string, eventType: string, summary: string, embedding: number[], taskType?: string, errorCategory?: string, resolution?: string): Promise<void>;
218
+ /**
219
+ * Query similar memories
220
+ */
221
+ queryMemories(embedding: number[], taskType?: string, limit?: number): Promise<Array<{
222
+ summary: string;
223
+ eventType: string;
224
+ resolution?: string;
225
+ similarity: number;
226
+ }>>;
227
+ /**
228
+ * Check if workflow is complete
229
+ */
230
+ isWorkflowComplete(workflowId: string): Promise<{
231
+ complete: boolean;
232
+ failed: number;
233
+ done: number;
234
+ pending: number;
235
+ }>;
236
+ /**
237
+ * Close the client
238
+ */
239
+ close(): Promise<void>;
240
+ }
241
+ export { AgentDB as x404r };
242
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js ADDED
@@ -0,0 +1,401 @@
1
+ /**
2
+ * x404r Client
3
+ * Main entry point for the SDK - supports both embedded and cloud modes
4
+ */
5
+ import { createAIProvider, MockAIProvider } from './ai/index.js';
6
+ import { EmbeddedBackend, CloudBackend, isEmbeddedBackend } from './backend/index.js';
7
+ import { WorkflowBuilder } from './workflow.js';
8
+ import { Worker } from './worker.js';
9
+ /**
10
+ * Default tenant ID for single-tenant mode
11
+ */
12
+ const DEFAULT_TENANT_ID = '00000000-0000-0000-0000-000000000000';
13
+ /**
14
+ * x404r Client
15
+ *
16
+ * Supports two modes:
17
+ *
18
+ * **Embedded Mode** - Direct DB connection, run workers locally
19
+ * ```typescript
20
+ * const runtime = new x404r({
21
+ * mode: 'embedded', // optional, default
22
+ * connectionString: process.env.DATABASE_URL,
23
+ * ai: { provider: 'gemini', apiKey: '...' }
24
+ * });
25
+ * runtime.worker().start(); // Run workers locally
26
+ * ```
27
+ *
28
+ * **Cloud Mode** - Connect to hosted API, workers run on Lambda
29
+ * ```typescript
30
+ * const runtime = new x404r({
31
+ * mode: 'cloud',
32
+ * apiKey: 'x404r_live_...'
33
+ * });
34
+ * // No workers needed - Lambda handles execution
35
+ * const result = await runtime.submit('my-workflow', { input });
36
+ * ```
37
+ */
38
+ export class AgentDB {
39
+ backend;
40
+ aiProvider;
41
+ mode;
42
+ debug;
43
+ eventHandlers = [];
44
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
45
+ workflows = new Map();
46
+ initPromise;
47
+ tenantId;
48
+ constructor(config) {
49
+ this.debug = config.debug || false;
50
+ this.mode = config.mode === 'cloud' ? 'cloud' : 'embedded';
51
+ if (this.mode === 'cloud') {
52
+ // Cloud mode - HTTP API client
53
+ const cloudConfig = config;
54
+ this.backend = new CloudBackend({
55
+ apiKey: cloudConfig.apiKey,
56
+ baseUrl: cloudConfig.baseUrl,
57
+ });
58
+ this.tenantId = ''; // Managed by API
59
+ this.aiProvider = new MockAIProvider(); // AI calls handled by Lambda
60
+ // Don't call ready() automatically - let user call .ready() explicitly
61
+ this.initPromise = Promise.resolve();
62
+ }
63
+ else {
64
+ // Embedded mode - direct DB connection
65
+ const embeddedConfig = config;
66
+ this.tenantId = embeddedConfig.tenantId || DEFAULT_TENANT_ID;
67
+ this.backend = new EmbeddedBackend({
68
+ connectionString: embeddedConfig.connectionString,
69
+ tenantId: this.tenantId,
70
+ });
71
+ // Initialize AI provider asynchronously
72
+ if (embeddedConfig.ai) {
73
+ this.initPromise = Promise.all([
74
+ this.backend.ready(),
75
+ createAIProvider(embeddedConfig.ai).then((provider) => {
76
+ this.aiProvider = provider;
77
+ }),
78
+ ]).then(() => { });
79
+ }
80
+ else {
81
+ this.aiProvider = new MockAIProvider();
82
+ this.initPromise = this.backend.ready();
83
+ }
84
+ }
85
+ }
86
+ /**
87
+ * Wait for client to be ready
88
+ */
89
+ async ready() {
90
+ await this.initPromise;
91
+ return this;
92
+ }
93
+ /**
94
+ * Get current mode
95
+ */
96
+ get currentMode() {
97
+ return this.mode;
98
+ }
99
+ /**
100
+ * Check if running in embedded mode
101
+ */
102
+ get isEmbedded() {
103
+ return this.mode === 'embedded';
104
+ }
105
+ /**
106
+ * Check if running in cloud mode
107
+ */
108
+ get isCloud() {
109
+ return this.mode === 'cloud';
110
+ }
111
+ // ============ Workflow Definition ============
112
+ /**
113
+ * Define a new workflow
114
+ *
115
+ * In embedded mode, the workflow definition includes step handlers.
116
+ * In cloud mode, workflows must be pre-registered on the platform.
117
+ */
118
+ workflow(name, definition) {
119
+ if (this.mode === 'cloud') {
120
+ this.log('Warning: Workflow definitions in cloud mode are for reference only. ' +
121
+ 'Actual workflow logic runs on Lambda workers.');
122
+ }
123
+ const fullDefinition = {
124
+ name,
125
+ ...definition,
126
+ };
127
+ const builder = new WorkflowBuilder(this, fullDefinition, this.tenantId);
128
+ this.workflows.set(name, builder);
129
+ return builder;
130
+ }
131
+ /**
132
+ * Get a registered workflow builder by name
133
+ */
134
+ getWorkflowBuilder(name) {
135
+ return this.workflows.get(name);
136
+ }
137
+ // ============ Worker (Embedded Mode Only) ============
138
+ /**
139
+ * Create a worker to process tasks
140
+ *
141
+ * @throws Error if called in cloud mode
142
+ */
143
+ worker(config = {}) {
144
+ if (this.mode === 'cloud') {
145
+ throw new Error('Workers are not available in cloud mode. ' +
146
+ 'Tasks are executed by Lambda workers automatically.');
147
+ }
148
+ return new Worker(this, config);
149
+ }
150
+ // ============ Cloud Mode: Submit & Status ============
151
+ /**
152
+ * Submit a workflow for execution (cloud mode)
153
+ *
154
+ * In cloud mode, this submits to the API and Lambda workers execute it.
155
+ * In embedded mode, this creates the workflow and you need to run workers.
156
+ */
157
+ async submit(workflowName, input, options = {}) {
158
+ if (this.mode === 'cloud') {
159
+ const cloudBackend = this.backend;
160
+ const result = await cloudBackend.submit(workflowName, input, options);
161
+ if (options.wait) {
162
+ const workflow = await cloudBackend.waitForCompletion(result.workflowId, {
163
+ timeout: options.timeout,
164
+ });
165
+ return {
166
+ workflowId: workflow.id,
167
+ status: workflow.status,
168
+ output: workflow.output,
169
+ };
170
+ }
171
+ return result;
172
+ }
173
+ else {
174
+ // Embedded mode - create workflow directly
175
+ const workflow = await this.backend.createWorkflow(workflowName, '1.0.0', input, options.priority);
176
+ return {
177
+ workflowId: workflow.id,
178
+ status: workflow.status,
179
+ };
180
+ }
181
+ }
182
+ /**
183
+ * Get workflow status
184
+ */
185
+ async status(workflowId) {
186
+ return this.backend.getWorkflow(workflowId);
187
+ }
188
+ /**
189
+ * List workflows
190
+ */
191
+ async list(options) {
192
+ return this.backend.listWorkflows(options);
193
+ }
194
+ /**
195
+ * Wait for workflow completion
196
+ */
197
+ async wait(workflowId, options = {}) {
198
+ if (this.mode === 'cloud') {
199
+ return this.backend.waitForCompletion(workflowId, options);
200
+ }
201
+ // Embedded mode - poll for completion
202
+ const { timeout = 300000, pollInterval = 1000 } = options;
203
+ const startTime = Date.now();
204
+ while (Date.now() - startTime < timeout) {
205
+ const workflow = await this.backend.getWorkflow(workflowId);
206
+ if (!workflow) {
207
+ throw new Error(`Workflow ${workflowId} not found`);
208
+ }
209
+ if (workflow.status === 'completed' || workflow.status === 'failed') {
210
+ return workflow;
211
+ }
212
+ await new Promise((resolve) => setTimeout(resolve, pollInterval));
213
+ }
214
+ throw new Error(`Workflow ${workflowId} timed out after ${timeout}ms`);
215
+ }
216
+ // ============ Time Travel ============
217
+ /**
218
+ * Replay a workflow from a checkpoint
219
+ */
220
+ async replay(workflowId, checkpointId, newInput) {
221
+ if (!this.backend.replayFromCheckpoint) {
222
+ throw new Error('Replay not supported in this mode');
223
+ }
224
+ return this.backend.replayFromCheckpoint(workflowId, checkpointId, newInput);
225
+ }
226
+ /**
227
+ * Get checkpoints for a workflow
228
+ */
229
+ async checkpoints(workflowId) {
230
+ return this.backend.getWorkflowCheckpoints(workflowId);
231
+ }
232
+ // ============ Cost Tracking ============
233
+ /**
234
+ * Get cost summary for a workflow
235
+ */
236
+ async cost(workflowId) {
237
+ if (!this.backend.getWorkflowCost) {
238
+ return { totalTokens: 0, estimatedCostUsd: 0, savedByRecoveryUsd: 0 };
239
+ }
240
+ return this.backend.getWorkflowCost(workflowId);
241
+ }
242
+ // ============ Events ============
243
+ /**
244
+ * Register an event handler
245
+ */
246
+ on(handler) {
247
+ this.eventHandlers.push(handler);
248
+ return () => {
249
+ const index = this.eventHandlers.indexOf(handler);
250
+ if (index > -1)
251
+ this.eventHandlers.splice(index, 1);
252
+ };
253
+ }
254
+ /**
255
+ * Emit an event to all handlers
256
+ */
257
+ async emit(event) {
258
+ if (this.debug) {
259
+ console.log(`[x404-r] Event: ${event.type}`, event);
260
+ }
261
+ for (const handler of this.eventHandlers) {
262
+ await handler(event);
263
+ }
264
+ }
265
+ // ============ Accessors ============
266
+ /**
267
+ * Get the backend instance
268
+ */
269
+ getBackend() {
270
+ return this.backend;
271
+ }
272
+ /**
273
+ * Get the database pool (embedded mode only)
274
+ */
275
+ get db() {
276
+ if (this.mode === 'cloud') {
277
+ throw new Error('Direct database access not available in cloud mode');
278
+ }
279
+ return this.backend.db;
280
+ }
281
+ /**
282
+ * Get the AI provider
283
+ */
284
+ get ai() {
285
+ return this.aiProvider;
286
+ }
287
+ /**
288
+ * Get the tenant ID
289
+ */
290
+ get tenant() {
291
+ return this.tenantId;
292
+ }
293
+ /**
294
+ * Log a debug message
295
+ */
296
+ log(message, data) {
297
+ if (this.debug) {
298
+ console.log(`[x404-r] ${message}`, data || '');
299
+ }
300
+ }
301
+ // ============ Database Operations (for WorkflowBuilder compatibility) ============
302
+ /**
303
+ * Create a workflow record
304
+ */
305
+ async createWorkflow(name, version, input, priority = 0) {
306
+ return this.backend.createWorkflow(name, version, input, priority);
307
+ }
308
+ /**
309
+ * Get a workflow from database by ID
310
+ */
311
+ async getWorkflow(id) {
312
+ return this.backend.getWorkflow(id);
313
+ }
314
+ /**
315
+ * Update workflow status
316
+ */
317
+ async updateWorkflowStatus(id, status, output, error) {
318
+ return this.backend.updateWorkflowStatus(id, status, output, error);
319
+ }
320
+ /**
321
+ * Create tasks for a workflow
322
+ */
323
+ async createTasks(workflowId, tasks) {
324
+ return this.backend.createTasks(workflowId, tasks);
325
+ }
326
+ /**
327
+ * Claim a task atomically (embedded mode only)
328
+ */
329
+ async claimTask(workerId, taskTypes) {
330
+ if (!isEmbeddedBackend(this.backend)) {
331
+ throw new Error('Task claiming not available in cloud mode');
332
+ }
333
+ return this.backend.claimTask(workerId, taskTypes);
334
+ }
335
+ /**
336
+ * Update task heartbeat (embedded mode only)
337
+ */
338
+ async heartbeat(taskId) {
339
+ if (!isEmbeddedBackend(this.backend)) {
340
+ throw new Error('Heartbeat not available in cloud mode');
341
+ }
342
+ return this.backend.heartbeat(taskId);
343
+ }
344
+ /**
345
+ * Complete a task
346
+ */
347
+ async completeTask(taskId, output) {
348
+ return this.backend.completeTask(taskId, output);
349
+ }
350
+ /**
351
+ * Fail a task
352
+ */
353
+ async failTask(taskId, error) {
354
+ return this.backend.failTask(taskId, error);
355
+ }
356
+ /**
357
+ * Get tasks for a workflow
358
+ */
359
+ async getWorkflowTasks(workflowId) {
360
+ return this.backend.getWorkflowTasks(workflowId);
361
+ }
362
+ /**
363
+ * Create a checkpoint
364
+ */
365
+ async createCheckpoint(taskId, stepIndex, state) {
366
+ return this.backend.createCheckpoint(taskId, stepIndex, state);
367
+ }
368
+ /**
369
+ * Get latest checkpoint for a task
370
+ */
371
+ async getCheckpoint(taskId) {
372
+ return this.backend.getCheckpoint(taskId);
373
+ }
374
+ /**
375
+ * Store memory for learning
376
+ */
377
+ async storeMemory(taskId, eventType, summary, embedding, taskType, errorCategory, resolution) {
378
+ return this.backend.storeMemory(taskId, eventType, summary, embedding, taskType, errorCategory, resolution);
379
+ }
380
+ /**
381
+ * Query similar memories
382
+ */
383
+ async queryMemories(embedding, taskType, limit = 5) {
384
+ return this.backend.queryMemories(embedding, taskType, limit);
385
+ }
386
+ /**
387
+ * Check if workflow is complete
388
+ */
389
+ async isWorkflowComplete(workflowId) {
390
+ return this.backend.isWorkflowComplete(workflowId);
391
+ }
392
+ /**
393
+ * Close the client
394
+ */
395
+ async close() {
396
+ await this.backend.close();
397
+ }
398
+ }
399
+ // Export as both AgentDB and x404r for flexibility
400
+ export { AgentDB as x404r };
401
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Step Execution Context
3
+ * Provides checkpoint, logging, and AI access to step handlers
4
+ */
5
+ import type { AgentDB } from './client.js';
6
+ import type { Task, Workflow, StepContext } from './types.js';
7
+ /**
8
+ * Create a step context for task execution
9
+ */
10
+ export declare function createStepContext<TInput = unknown>(client: AgentDB, workflow: Workflow, task: Task, initialState?: Record<string, unknown>): StepContext<TInput>;
11
+ /**
12
+ * Restore context from checkpoint
13
+ */
14
+ export declare function restoreFromCheckpoint<TInput = unknown>(client: AgentDB, workflow: Workflow, task: Task): Promise<{
15
+ context: StepContext<TInput>;
16
+ resumeFromStep: number;
17
+ } | null>;
18
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAc,MAAM,YAAY,CAAC;AAE1E;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,GAAG,OAAO,EAChD,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACzC,WAAW,CAAC,MAAM,CAAC,CA8CrB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,GAAG,OAAO,EAC1D,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,GACT,OAAO,CAAC;IAAE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAsB1E"}