@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.
- package/README.md +391 -0
- package/dist/ai/index.d.ts +21 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +344 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/backend/cloud.d.ts +91 -0
- package/dist/backend/cloud.d.ts.map +1 -0
- package/dist/backend/cloud.js +257 -0
- package/dist/backend/cloud.js.map +1 -0
- package/dist/backend/embedded.d.ts +79 -0
- package/dist/backend/embedded.d.ts.map +1 -0
- package/dist/backend/embedded.js +307 -0
- package/dist/backend/embedded.js.map +1 -0
- package/dist/backend/index.d.ts +11 -0
- package/dist/backend/index.d.ts.map +1 -0
- package/dist/backend/index.js +8 -0
- package/dist/backend/index.js.map +1 -0
- package/dist/backend/interface.d.ts +88 -0
- package/dist/backend/interface.d.ts.map +1 -0
- package/dist/backend/interface.js +11 -0
- package/dist/backend/interface.js.map +1 -0
- package/dist/chaos.d.ts +117 -0
- package/dist/chaos.d.ts.map +1 -0
- package/dist/chaos.js +215 -0
- package/dist/chaos.js.map +1 -0
- package/dist/client.d.ts +242 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +401 -0
- package/dist/client.js.map +1 -0
- package/dist/context.d.ts +18 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +65 -0
- package/dist/context.js.map +1 -0
- package/dist/durable.d.ts +90 -0
- package/dist/durable.d.ts.map +1 -0
- package/dist/durable.js +143 -0
- package/dist/durable.js.map +1 -0
- package/dist/index.d.ts +74 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +76 -0
- package/dist/index.js.map +1 -0
- package/dist/metrics.d.ts +279 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +693 -0
- package/dist/metrics.js.map +1 -0
- package/dist/types.d.ts +240 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +16 -0
- package/dist/types.js.map +1 -0
- package/dist/worker.d.ts +74 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +269 -0
- package/dist/worker.js.map +1 -0
- package/dist/workflow.d.ts +48 -0
- package/dist/workflow.d.ts.map +1 -0
- package/dist/workflow.js +190 -0
- package/dist/workflow.js.map +1 -0
- package/package.json +93 -0
package/dist/client.d.ts
ADDED
|
@@ -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"}
|