@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedded.js","sourceRoot":"","sources":["../../src/backend/embedded.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backend Module
|
|
3
|
+
* Provides abstraction for embedded (direct DB) and cloud (HTTP API) modes
|
|
4
|
+
*/
|
|
5
|
+
export type { Backend } from './interface.js';
|
|
6
|
+
export { isEmbeddedBackend } from './interface.js';
|
|
7
|
+
export { EmbeddedBackend } from './embedded.js';
|
|
8
|
+
export type { EmbeddedBackendConfig } from './embedded.js';
|
|
9
|
+
export { CloudBackend } from './cloud.js';
|
|
10
|
+
export type { CloudBackendConfig } from './cloud.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/backend/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backend Module
|
|
3
|
+
* Provides abstraction for embedded (direct DB) and cloud (HTTP API) modes
|
|
4
|
+
*/
|
|
5
|
+
export { isEmbeddedBackend } from './interface.js';
|
|
6
|
+
export { EmbeddedBackend } from './embedded.js';
|
|
7
|
+
export { CloudBackend } from './cloud.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/backend/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backend Interface
|
|
3
|
+
* Abstracts database operations for embedded vs cloud mode
|
|
4
|
+
*/
|
|
5
|
+
import type { Workflow, Task, WorkflowStatus } from '../types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Backend interface that both embedded (direct DB) and cloud (HTTP API) implement
|
|
8
|
+
*/
|
|
9
|
+
export interface Backend {
|
|
10
|
+
/** Initialize the backend */
|
|
11
|
+
ready(): Promise<void>;
|
|
12
|
+
/** Close connections */
|
|
13
|
+
close(): Promise<void>;
|
|
14
|
+
/** Create a new workflow/job */
|
|
15
|
+
createWorkflow(name: string, version: string, input: Record<string, unknown>, priority?: number): Promise<Workflow>;
|
|
16
|
+
/** Get workflow by ID */
|
|
17
|
+
getWorkflow(id: string): Promise<Workflow | null>;
|
|
18
|
+
/** Update workflow status */
|
|
19
|
+
updateWorkflowStatus(id: string, status: WorkflowStatus, output?: Record<string, unknown>, error?: string): Promise<void>;
|
|
20
|
+
/** List workflows */
|
|
21
|
+
listWorkflows(options?: {
|
|
22
|
+
status?: WorkflowStatus;
|
|
23
|
+
limit?: number;
|
|
24
|
+
offset?: number;
|
|
25
|
+
}): Promise<Workflow[]>;
|
|
26
|
+
/** Create tasks for a workflow */
|
|
27
|
+
createTasks(workflowId: string, tasks: Array<{
|
|
28
|
+
name: string;
|
|
29
|
+
type: string;
|
|
30
|
+
input: Record<string, unknown>;
|
|
31
|
+
dependsOn: string[];
|
|
32
|
+
maxAttempts?: number;
|
|
33
|
+
}>): Promise<Task[]>;
|
|
34
|
+
/** Get tasks for a workflow */
|
|
35
|
+
getWorkflowTasks(workflowId: string): Promise<Task[]>;
|
|
36
|
+
/** Claim a task atomically (embedded mode only) */
|
|
37
|
+
claimTask?(workerId: string, taskTypes?: string[]): Promise<Task | null>;
|
|
38
|
+
/** Update task heartbeat (embedded mode only) */
|
|
39
|
+
heartbeat?(taskId: string): Promise<void>;
|
|
40
|
+
/** Complete a task */
|
|
41
|
+
completeTask(taskId: string, output: Record<string, unknown>): Promise<void>;
|
|
42
|
+
/** Fail a task */
|
|
43
|
+
failTask(taskId: string, error: string): Promise<void>;
|
|
44
|
+
/** Create a checkpoint */
|
|
45
|
+
createCheckpoint(taskId: string, stepIndex: number, state: Record<string, unknown>): Promise<void>;
|
|
46
|
+
/** Get latest checkpoint for a task */
|
|
47
|
+
getCheckpoint(taskId: string): Promise<{
|
|
48
|
+
stepIndex: number;
|
|
49
|
+
state: Record<string, unknown>;
|
|
50
|
+
} | null>;
|
|
51
|
+
/** Get all checkpoints for a workflow (for time travel) */
|
|
52
|
+
getWorkflowCheckpoints(workflowId: string): Promise<Array<{
|
|
53
|
+
taskId: string;
|
|
54
|
+
taskName: string;
|
|
55
|
+
stepIndex: number;
|
|
56
|
+
state: Record<string, unknown>;
|
|
57
|
+
createdAt: Date;
|
|
58
|
+
}>>;
|
|
59
|
+
/** Store memory for learning */
|
|
60
|
+
storeMemory(taskId: string, eventType: string, summary: string, embedding: number[], taskType?: string, errorCategory?: string, resolution?: string): Promise<void>;
|
|
61
|
+
/** Query similar memories */
|
|
62
|
+
queryMemories(embedding: number[], taskType?: string, limit?: number): Promise<Array<{
|
|
63
|
+
summary: string;
|
|
64
|
+
eventType: string;
|
|
65
|
+
resolution?: string;
|
|
66
|
+
similarity: number;
|
|
67
|
+
}>>;
|
|
68
|
+
/** Check if workflow is complete */
|
|
69
|
+
isWorkflowComplete(workflowId: string): Promise<{
|
|
70
|
+
complete: boolean;
|
|
71
|
+
failed: number;
|
|
72
|
+
done: number;
|
|
73
|
+
pending: number;
|
|
74
|
+
}>;
|
|
75
|
+
/** Replay workflow from checkpoint */
|
|
76
|
+
replayFromCheckpoint?(workflowId: string, checkpointId: string, newInput?: Record<string, unknown>): Promise<Workflow>;
|
|
77
|
+
/** Get cost summary for a workflow */
|
|
78
|
+
getWorkflowCost?(workflowId: string): Promise<{
|
|
79
|
+
totalTokens: number;
|
|
80
|
+
estimatedCostUsd: number;
|
|
81
|
+
savedByRecoveryUsd: number;
|
|
82
|
+
}>;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Type guard for embedded backend (has worker-related methods)
|
|
86
|
+
*/
|
|
87
|
+
export declare function isEmbeddedBackend(backend: Backend): backend is Backend & Required<Pick<Backend, 'claimTask' | 'heartbeat'>>;
|
|
88
|
+
//# sourceMappingURL=interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/backend/interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backend Interface
|
|
3
|
+
* Abstracts database operations for embedded vs cloud mode
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Type guard for embedded backend (has worker-related methods)
|
|
7
|
+
*/
|
|
8
|
+
export function isEmbeddedBackend(backend) {
|
|
9
|
+
return 'claimTask' in backend && typeof backend.claimTask === 'function';
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/backend/interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwJH;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAgB;IAEhB,OAAO,WAAW,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,UAAU,CAAC;AAC3E,CAAC"}
|
package/dist/chaos.d.ts
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chaos Engineering Module
|
|
3
|
+
*
|
|
4
|
+
* Built-in failure injection for testing crash recovery.
|
|
5
|
+
* Enables chaos testing without external tools.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const workflow = runtime.workflow('test', {
|
|
10
|
+
* chaos: {
|
|
11
|
+
* enabled: process.env.CHAOS_MODE === 'true',
|
|
12
|
+
* failureRate: 0.3, // 30% of tasks fail randomly
|
|
13
|
+
* failAtCheckpoints: ['step-2'], // Always fail at these checkpoints
|
|
14
|
+
* latencyMs: { min: 100, max: 2000 }, // Random latency injection
|
|
15
|
+
* },
|
|
16
|
+
* steps: [...]
|
|
17
|
+
* });
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export interface ChaosConfig {
|
|
21
|
+
/** Enable chaos mode */
|
|
22
|
+
enabled: boolean;
|
|
23
|
+
/** Random failure rate (0-1) */
|
|
24
|
+
failureRate?: number;
|
|
25
|
+
/** Always fail at these checkpoint names */
|
|
26
|
+
failAtCheckpoints?: string[];
|
|
27
|
+
/** Inject random latency */
|
|
28
|
+
latencyMs?: {
|
|
29
|
+
min: number;
|
|
30
|
+
max: number;
|
|
31
|
+
};
|
|
32
|
+
/** Fail after N successful executions (for testing recovery) */
|
|
33
|
+
failAfterSuccesses?: number;
|
|
34
|
+
/** Specific task types to target */
|
|
35
|
+
targetTaskTypes?: string[];
|
|
36
|
+
/** Failure types to inject */
|
|
37
|
+
failureTypes?: ChaosFailureType[];
|
|
38
|
+
}
|
|
39
|
+
export type ChaosFailureType = 'crash' | 'timeout' | 'network' | 'oom' | 'rate_limit' | 'partial';
|
|
40
|
+
interface ChaosState {
|
|
41
|
+
successCount: number;
|
|
42
|
+
failureCount: number;
|
|
43
|
+
lastFailureType?: ChaosFailureType;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Chaos Engine - handles failure injection
|
|
47
|
+
*/
|
|
48
|
+
export declare class ChaosEngine {
|
|
49
|
+
private config;
|
|
50
|
+
private workflowId;
|
|
51
|
+
constructor(workflowId: string, config: ChaosConfig);
|
|
52
|
+
/**
|
|
53
|
+
* Check if chaos should trigger at this point
|
|
54
|
+
*/
|
|
55
|
+
shouldFail(context: {
|
|
56
|
+
checkpointName?: string;
|
|
57
|
+
taskType?: string;
|
|
58
|
+
}): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Get the type of failure to inject
|
|
61
|
+
*/
|
|
62
|
+
getFailureType(): ChaosFailureType;
|
|
63
|
+
/**
|
|
64
|
+
* Get random latency to inject
|
|
65
|
+
*/
|
|
66
|
+
getLatency(): number;
|
|
67
|
+
/**
|
|
68
|
+
* Inject failure based on type
|
|
69
|
+
*/
|
|
70
|
+
injectFailure(type: ChaosFailureType): Promise<never>;
|
|
71
|
+
/**
|
|
72
|
+
* Inject latency if configured
|
|
73
|
+
*/
|
|
74
|
+
injectLatency(): Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* Record successful execution
|
|
77
|
+
*/
|
|
78
|
+
recordSuccess(): void;
|
|
79
|
+
/**
|
|
80
|
+
* Get current chaos state
|
|
81
|
+
*/
|
|
82
|
+
getState(): ChaosState;
|
|
83
|
+
/**
|
|
84
|
+
* Reset chaos state
|
|
85
|
+
*/
|
|
86
|
+
reset(): void;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Custom error for chaos-induced failures
|
|
90
|
+
*/
|
|
91
|
+
export declare class ChaosError extends Error {
|
|
92
|
+
readonly isChaos = true;
|
|
93
|
+
readonly failureType: ChaosFailureType;
|
|
94
|
+
constructor(message: string, failureType: ChaosFailureType);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Create a chaos-wrapped checkpoint function
|
|
98
|
+
*/
|
|
99
|
+
export declare function createChaosCheckpoint(originalCheckpoint: (state?: Record<string, unknown>) => Promise<void>, engine: ChaosEngine): (name: string, state?: Record<string, unknown>) => Promise<void>;
|
|
100
|
+
/**
|
|
101
|
+
* Chaos middleware for step handlers
|
|
102
|
+
*/
|
|
103
|
+
export declare function withChaos<T>(handler: () => Promise<T>, engine: ChaosEngine, taskType?: string): () => Promise<T>;
|
|
104
|
+
/**
|
|
105
|
+
* Utility to enable chaos mode via environment variable
|
|
106
|
+
*/
|
|
107
|
+
export declare function isChaosEnabled(): boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Default chaos config for testing
|
|
110
|
+
*/
|
|
111
|
+
export declare const DEFAULT_CHAOS_CONFIG: ChaosConfig;
|
|
112
|
+
/**
|
|
113
|
+
* Aggressive chaos config for stress testing
|
|
114
|
+
*/
|
|
115
|
+
export declare const STRESS_CHAOS_CONFIG: ChaosConfig;
|
|
116
|
+
export {};
|
|
117
|
+
//# sourceMappingURL=chaos.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chaos.d.ts","sourceRoot":"","sources":["../src/chaos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,OAAO,EAAE,OAAO,CAAC;IAEjB,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,4CAA4C;IAC5C,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE7B,4BAA4B;IAC5B,SAAS,CAAC,EAAE;QACV,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IAEF,gEAAgE;IAChE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,oCAAoC;IACpC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B,8BAA8B;IAC9B,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACnC;AAED,MAAM,MAAM,gBAAgB,GACxB,OAAO,GACP,SAAS,GACT,SAAS,GACT,KAAK,GACL,YAAY,GACZ,SAAS,CAAC;AAEd,UAAU,UAAU;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,gBAAgB,CAAC;CACpC;AAKD;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,UAAU,CAAS;gBAEf,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW;IAYnD;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO;IA+BX;;OAEG;IACH,cAAc,IAAI,gBAAgB;IAKlC;;OAEG;IACH,UAAU,IAAI,MAAM;IAMpB;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC;IA8B3D;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IASpC;;OAEG;IACH,aAAa,IAAI,IAAI;IAKrB;;OAEG;IACH,QAAQ,IAAI,UAAU;IAItB;;OAEG;IACH,KAAK,IAAI,IAAI;CAMd;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK;IACnC,QAAQ,CAAC,OAAO,QAAQ;IACxB,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;gBAE3B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB;CAK3D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,kBAAkB,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,EACtE,MAAM,EAAE,WAAW,GAClB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAclE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,EACzB,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,MAAM,EAAE,WAAW,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,OAAO,CAAC,CAAC,CAAC,CAsBlB;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAKlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAKjC,CAAC"}
|
package/dist/chaos.js
ADDED
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chaos Engineering Module
|
|
3
|
+
*
|
|
4
|
+
* Built-in failure injection for testing crash recovery.
|
|
5
|
+
* Enables chaos testing without external tools.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const workflow = runtime.workflow('test', {
|
|
10
|
+
* chaos: {
|
|
11
|
+
* enabled: process.env.CHAOS_MODE === 'true',
|
|
12
|
+
* failureRate: 0.3, // 30% of tasks fail randomly
|
|
13
|
+
* failAtCheckpoints: ['step-2'], // Always fail at these checkpoints
|
|
14
|
+
* latencyMs: { min: 100, max: 2000 }, // Random latency injection
|
|
15
|
+
* },
|
|
16
|
+
* steps: [...]
|
|
17
|
+
* });
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
// Global state for tracking across executions
|
|
21
|
+
const chaosStates = new Map();
|
|
22
|
+
/**
|
|
23
|
+
* Chaos Engine - handles failure injection
|
|
24
|
+
*/
|
|
25
|
+
export class ChaosEngine {
|
|
26
|
+
config;
|
|
27
|
+
workflowId;
|
|
28
|
+
constructor(workflowId, config) {
|
|
29
|
+
this.workflowId = workflowId;
|
|
30
|
+
this.config = config;
|
|
31
|
+
if (!chaosStates.has(workflowId)) {
|
|
32
|
+
chaosStates.set(workflowId, {
|
|
33
|
+
successCount: 0,
|
|
34
|
+
failureCount: 0,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Check if chaos should trigger at this point
|
|
40
|
+
*/
|
|
41
|
+
shouldFail(context) {
|
|
42
|
+
if (!this.config.enabled)
|
|
43
|
+
return false;
|
|
44
|
+
// Check if targeting specific task types
|
|
45
|
+
if (this.config.targetTaskTypes?.length) {
|
|
46
|
+
if (!context.taskType || !this.config.targetTaskTypes.includes(context.taskType)) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// Check fail at specific checkpoints
|
|
51
|
+
if (context.checkpointName && this.config.failAtCheckpoints?.includes(context.checkpointName)) {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
// Check fail after N successes
|
|
55
|
+
const state = chaosStates.get(this.workflowId);
|
|
56
|
+
if (this.config.failAfterSuccesses !== undefined) {
|
|
57
|
+
if (state.successCount >= this.config.failAfterSuccesses) {
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// Random failure rate
|
|
62
|
+
if (this.config.failureRate !== undefined) {
|
|
63
|
+
return Math.random() < this.config.failureRate;
|
|
64
|
+
}
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Get the type of failure to inject
|
|
69
|
+
*/
|
|
70
|
+
getFailureType() {
|
|
71
|
+
const types = this.config.failureTypes || ['crash'];
|
|
72
|
+
return types[Math.floor(Math.random() * types.length)];
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Get random latency to inject
|
|
76
|
+
*/
|
|
77
|
+
getLatency() {
|
|
78
|
+
if (!this.config.latencyMs)
|
|
79
|
+
return 0;
|
|
80
|
+
const { min, max } = this.config.latencyMs;
|
|
81
|
+
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Inject failure based on type
|
|
85
|
+
*/
|
|
86
|
+
async injectFailure(type) {
|
|
87
|
+
const state = chaosStates.get(this.workflowId);
|
|
88
|
+
state.failureCount++;
|
|
89
|
+
state.lastFailureType = type;
|
|
90
|
+
switch (type) {
|
|
91
|
+
case 'crash':
|
|
92
|
+
throw new ChaosError('CHAOS: Simulated process crash', type);
|
|
93
|
+
case 'timeout':
|
|
94
|
+
await new Promise(resolve => setTimeout(resolve, 30000));
|
|
95
|
+
throw new ChaosError('CHAOS: Simulated timeout', type);
|
|
96
|
+
case 'network':
|
|
97
|
+
throw new ChaosError('CHAOS: Simulated network error - ECONNREFUSED', type);
|
|
98
|
+
case 'oom':
|
|
99
|
+
throw new ChaosError('CHAOS: Simulated out of memory - JavaScript heap out of memory', type);
|
|
100
|
+
case 'rate_limit':
|
|
101
|
+
throw new ChaosError('CHAOS: Simulated rate limit - 429 Too Many Requests', type);
|
|
102
|
+
case 'partial':
|
|
103
|
+
throw new ChaosError('CHAOS: Simulated partial completion - task interrupted', type);
|
|
104
|
+
default:
|
|
105
|
+
throw new ChaosError('CHAOS: Unknown failure type', 'crash');
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Inject latency if configured
|
|
110
|
+
*/
|
|
111
|
+
async injectLatency() {
|
|
112
|
+
if (!this.config.enabled)
|
|
113
|
+
return;
|
|
114
|
+
const latency = this.getLatency();
|
|
115
|
+
if (latency > 0) {
|
|
116
|
+
await new Promise(resolve => setTimeout(resolve, latency));
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Record successful execution
|
|
121
|
+
*/
|
|
122
|
+
recordSuccess() {
|
|
123
|
+
const state = chaosStates.get(this.workflowId);
|
|
124
|
+
state.successCount++;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Get current chaos state
|
|
128
|
+
*/
|
|
129
|
+
getState() {
|
|
130
|
+
return { ...chaosStates.get(this.workflowId) };
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Reset chaos state
|
|
134
|
+
*/
|
|
135
|
+
reset() {
|
|
136
|
+
chaosStates.set(this.workflowId, {
|
|
137
|
+
successCount: 0,
|
|
138
|
+
failureCount: 0,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Custom error for chaos-induced failures
|
|
144
|
+
*/
|
|
145
|
+
export class ChaosError extends Error {
|
|
146
|
+
isChaos = true;
|
|
147
|
+
failureType;
|
|
148
|
+
constructor(message, failureType) {
|
|
149
|
+
super(message);
|
|
150
|
+
this.name = 'ChaosError';
|
|
151
|
+
this.failureType = failureType;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Create a chaos-wrapped checkpoint function
|
|
156
|
+
*/
|
|
157
|
+
export function createChaosCheckpoint(originalCheckpoint, engine) {
|
|
158
|
+
return async (name, state) => {
|
|
159
|
+
// Inject latency before checkpoint
|
|
160
|
+
await engine.injectLatency();
|
|
161
|
+
// Check if we should fail at this checkpoint
|
|
162
|
+
if (engine.shouldFail({ checkpointName: name })) {
|
|
163
|
+
const failureType = engine.getFailureType();
|
|
164
|
+
await engine.injectFailure(failureType);
|
|
165
|
+
}
|
|
166
|
+
// Execute original checkpoint
|
|
167
|
+
await originalCheckpoint(state);
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Chaos middleware for step handlers
|
|
172
|
+
*/
|
|
173
|
+
export function withChaos(handler, engine, taskType) {
|
|
174
|
+
return async () => {
|
|
175
|
+
// Inject pre-execution latency
|
|
176
|
+
await engine.injectLatency();
|
|
177
|
+
// Check for pre-execution failure
|
|
178
|
+
if (engine.shouldFail({ taskType })) {
|
|
179
|
+
const failureType = engine.getFailureType();
|
|
180
|
+
await engine.injectFailure(failureType);
|
|
181
|
+
}
|
|
182
|
+
// Execute handler
|
|
183
|
+
const result = await handler();
|
|
184
|
+
// Record success
|
|
185
|
+
engine.recordSuccess();
|
|
186
|
+
// Post-execution latency
|
|
187
|
+
await engine.injectLatency();
|
|
188
|
+
return result;
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Utility to enable chaos mode via environment variable
|
|
193
|
+
*/
|
|
194
|
+
export function isChaosEnabled() {
|
|
195
|
+
return process.env.CHAOS_MODE === 'true' || process.env.X404R_CHAOS === 'true';
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Default chaos config for testing
|
|
199
|
+
*/
|
|
200
|
+
export const DEFAULT_CHAOS_CONFIG = {
|
|
201
|
+
enabled: isChaosEnabled(),
|
|
202
|
+
failureRate: 0.1,
|
|
203
|
+
latencyMs: { min: 50, max: 500 },
|
|
204
|
+
failureTypes: ['crash', 'network', 'timeout'],
|
|
205
|
+
};
|
|
206
|
+
/**
|
|
207
|
+
* Aggressive chaos config for stress testing
|
|
208
|
+
*/
|
|
209
|
+
export const STRESS_CHAOS_CONFIG = {
|
|
210
|
+
enabled: true,
|
|
211
|
+
failureRate: 0.5,
|
|
212
|
+
latencyMs: { min: 100, max: 2000 },
|
|
213
|
+
failureTypes: ['crash', 'network', 'timeout', 'oom', 'rate_limit'],
|
|
214
|
+
};
|
|
215
|
+
//# sourceMappingURL=chaos.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chaos.js","sourceRoot":"","sources":["../src/chaos.ts"],"names":[],"mappings":"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"}
|