@mondaydotcomorg/atp-compiler 0.17.14
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 +382 -0
- package/__tests__/integration/all-array-methods-native.test.ts +321 -0
- package/__tests__/integration/all-callback-types.test.ts +406 -0
- package/__tests__/integration/comprehensive-edge-cases.test.ts +701 -0
- package/__tests__/integration/native-behavior-verification.test.ts +340 -0
- package/__tests__/integration/semantic-correctness.test.ts +354 -0
- package/__tests__/integration/threshold-tests.test.ts +529 -0
- package/__tests__/unit/batch-optimizer.test.ts +253 -0
- package/__tests__/unit/checkpoint-manager.test.ts +145 -0
- package/__tests__/unit/detector.test.ts +346 -0
- package/dist/atp-compiler/src/index.d.ts +6 -0
- package/dist/atp-compiler/src/index.d.ts.map +1 -0
- package/dist/atp-compiler/src/index.js +6 -0
- package/dist/atp-compiler/src/index.js.map +1 -0
- package/dist/atp-compiler/src/runtime/batch-parallel.d.ts +3 -0
- package/dist/atp-compiler/src/runtime/batch-parallel.d.ts.map +1 -0
- package/dist/atp-compiler/src/runtime/batch-parallel.js +13 -0
- package/dist/atp-compiler/src/runtime/batch-parallel.js.map +1 -0
- package/dist/atp-compiler/src/runtime/checkpoint-manager.d.ts +19 -0
- package/dist/atp-compiler/src/runtime/checkpoint-manager.d.ts.map +1 -0
- package/dist/atp-compiler/src/runtime/checkpoint-manager.js +81 -0
- package/dist/atp-compiler/src/runtime/checkpoint-manager.js.map +1 -0
- package/dist/atp-compiler/src/runtime/context.d.ts +8 -0
- package/dist/atp-compiler/src/runtime/context.d.ts.map +1 -0
- package/dist/atp-compiler/src/runtime/context.js +25 -0
- package/dist/atp-compiler/src/runtime/context.js.map +1 -0
- package/dist/atp-compiler/src/runtime/errors.d.ts +38 -0
- package/dist/atp-compiler/src/runtime/errors.d.ts.map +1 -0
- package/dist/atp-compiler/src/runtime/errors.js +61 -0
- package/dist/atp-compiler/src/runtime/errors.js.map +1 -0
- package/dist/atp-compiler/src/runtime/index.d.ts +16 -0
- package/dist/atp-compiler/src/runtime/index.d.ts.map +1 -0
- package/dist/atp-compiler/src/runtime/index.js +20 -0
- package/dist/atp-compiler/src/runtime/index.js.map +1 -0
- package/dist/atp-compiler/src/runtime/resumable-arrays.d.ts +9 -0
- package/dist/atp-compiler/src/runtime/resumable-arrays.d.ts.map +1 -0
- package/dist/atp-compiler/src/runtime/resumable-arrays.js +179 -0
- package/dist/atp-compiler/src/runtime/resumable-arrays.js.map +1 -0
- package/dist/atp-compiler/src/runtime/resumable-loops.d.ts +4 -0
- package/dist/atp-compiler/src/runtime/resumable-loops.d.ts.map +1 -0
- package/dist/atp-compiler/src/runtime/resumable-loops.js +61 -0
- package/dist/atp-compiler/src/runtime/resumable-loops.js.map +1 -0
- package/dist/atp-compiler/src/runtime/resumable-parallel.d.ts +3 -0
- package/dist/atp-compiler/src/runtime/resumable-parallel.d.ts.map +1 -0
- package/dist/atp-compiler/src/runtime/resumable-parallel.js +44 -0
- package/dist/atp-compiler/src/runtime/resumable-parallel.js.map +1 -0
- package/dist/atp-compiler/src/transformer/array-transformer-batch.d.ts +13 -0
- package/dist/atp-compiler/src/transformer/array-transformer-batch.d.ts.map +1 -0
- package/dist/atp-compiler/src/transformer/array-transformer-batch.js +55 -0
- package/dist/atp-compiler/src/transformer/array-transformer-batch.js.map +1 -0
- package/dist/atp-compiler/src/transformer/array-transformer-sequential.d.ts +6 -0
- package/dist/atp-compiler/src/transformer/array-transformer-sequential.d.ts.map +1 -0
- package/dist/atp-compiler/src/transformer/array-transformer-sequential.js +23 -0
- package/dist/atp-compiler/src/transformer/array-transformer-sequential.js.map +1 -0
- package/dist/atp-compiler/src/transformer/array-transformer-utils.d.ts +18 -0
- package/dist/atp-compiler/src/transformer/array-transformer-utils.d.ts.map +1 -0
- package/dist/atp-compiler/src/transformer/array-transformer-utils.js +69 -0
- package/dist/atp-compiler/src/transformer/array-transformer-utils.js.map +1 -0
- package/dist/atp-compiler/src/transformer/array-transformer-wrappers.d.ts +26 -0
- package/dist/atp-compiler/src/transformer/array-transformer-wrappers.d.ts.map +1 -0
- package/dist/atp-compiler/src/transformer/array-transformer-wrappers.js +88 -0
- package/dist/atp-compiler/src/transformer/array-transformer-wrappers.js.map +1 -0
- package/dist/atp-compiler/src/transformer/array-transformer.d.ts +12 -0
- package/dist/atp-compiler/src/transformer/array-transformer.d.ts.map +1 -0
- package/dist/atp-compiler/src/transformer/array-transformer.js +47 -0
- package/dist/atp-compiler/src/transformer/array-transformer.js.map +1 -0
- package/dist/atp-compiler/src/transformer/batch-detector.d.ts +16 -0
- package/dist/atp-compiler/src/transformer/batch-detector.d.ts.map +1 -0
- package/dist/atp-compiler/src/transformer/batch-detector.js +131 -0
- package/dist/atp-compiler/src/transformer/batch-detector.js.map +1 -0
- package/dist/atp-compiler/src/transformer/batch-optimizer.d.ts +27 -0
- package/dist/atp-compiler/src/transformer/batch-optimizer.d.ts.map +1 -0
- package/dist/atp-compiler/src/transformer/batch-optimizer.js +244 -0
- package/dist/atp-compiler/src/transformer/batch-optimizer.js.map +1 -0
- package/dist/atp-compiler/src/transformer/detector.d.ts +9 -0
- package/dist/atp-compiler/src/transformer/detector.d.ts.map +1 -0
- package/dist/atp-compiler/src/transformer/detector.js +141 -0
- package/dist/atp-compiler/src/transformer/detector.js.map +1 -0
- package/dist/atp-compiler/src/transformer/index.d.ts +22 -0
- package/dist/atp-compiler/src/transformer/index.d.ts.map +1 -0
- package/dist/atp-compiler/src/transformer/index.js +132 -0
- package/dist/atp-compiler/src/transformer/index.js.map +1 -0
- package/dist/atp-compiler/src/transformer/loop-transformer.d.ts +25 -0
- package/dist/atp-compiler/src/transformer/loop-transformer.d.ts.map +1 -0
- package/dist/atp-compiler/src/transformer/loop-transformer.js +193 -0
- package/dist/atp-compiler/src/transformer/loop-transformer.js.map +1 -0
- package/dist/atp-compiler/src/transformer/promise-transformer.d.ts +17 -0
- package/dist/atp-compiler/src/transformer/promise-transformer.d.ts.map +1 -0
- package/dist/atp-compiler/src/transformer/promise-transformer.js +132 -0
- package/dist/atp-compiler/src/transformer/promise-transformer.js.map +1 -0
- package/dist/atp-compiler/src/transformer/utils.d.ts +15 -0
- package/dist/atp-compiler/src/transformer/utils.d.ts.map +1 -0
- package/dist/atp-compiler/src/transformer/utils.js +118 -0
- package/dist/atp-compiler/src/transformer/utils.js.map +1 -0
- package/dist/atp-compiler/src/types.d.ts +57 -0
- package/dist/atp-compiler/src/types.d.ts.map +1 -0
- package/dist/atp-compiler/src/types.js +23 -0
- package/dist/atp-compiler/src/types.js.map +1 -0
- package/dist/protocol/src/auth.d.ts +173 -0
- package/dist/protocol/src/auth.d.ts.map +1 -0
- package/dist/protocol/src/auth.js +202 -0
- package/dist/protocol/src/auth.js.map +1 -0
- package/dist/protocol/src/index.d.ts +7 -0
- package/dist/protocol/src/index.d.ts.map +1 -0
- package/dist/protocol/src/index.js +7 -0
- package/dist/protocol/src/index.js.map +1 -0
- package/dist/protocol/src/oauth.d.ts +63 -0
- package/dist/protocol/src/oauth.d.ts.map +1 -0
- package/dist/protocol/src/oauth.js +5 -0
- package/dist/protocol/src/oauth.js.map +1 -0
- package/dist/protocol/src/providers.d.ts +167 -0
- package/dist/protocol/src/providers.d.ts.map +1 -0
- package/dist/protocol/src/providers.js +33 -0
- package/dist/protocol/src/providers.js.map +1 -0
- package/dist/protocol/src/schemas.d.ts +6 -0
- package/dist/protocol/src/schemas.d.ts.map +1 -0
- package/dist/protocol/src/schemas.js +51 -0
- package/dist/protocol/src/schemas.js.map +1 -0
- package/dist/protocol/src/types.d.ts +489 -0
- package/dist/protocol/src/types.d.ts.map +1 -0
- package/dist/protocol/src/types.js +88 -0
- package/dist/protocol/src/types.js.map +1 -0
- package/dist/protocol/src/validation.d.ts +76 -0
- package/dist/protocol/src/validation.d.ts.map +1 -0
- package/dist/protocol/src/validation.js +129 -0
- package/dist/protocol/src/validation.js.map +1 -0
- package/dist/provenance/src/ast/instrumentor.d.ts +37 -0
- package/dist/provenance/src/ast/instrumentor.d.ts.map +1 -0
- package/dist/provenance/src/ast/instrumentor.js +299 -0
- package/dist/provenance/src/ast/instrumentor.js.map +1 -0
- package/dist/provenance/src/index.d.ts +7 -0
- package/dist/provenance/src/index.d.ts.map +1 -0
- package/dist/provenance/src/index.js +7 -0
- package/dist/provenance/src/index.js.map +1 -0
- package/dist/provenance/src/policies/engine.d.ts +71 -0
- package/dist/provenance/src/policies/engine.d.ts.map +1 -0
- package/dist/provenance/src/policies/engine.js +433 -0
- package/dist/provenance/src/policies/engine.js.map +1 -0
- package/dist/provenance/src/registry.d.ts +94 -0
- package/dist/provenance/src/registry.d.ts.map +1 -0
- package/dist/provenance/src/registry.js +445 -0
- package/dist/provenance/src/registry.js.map +1 -0
- package/dist/provenance/src/tokens.d.ts +49 -0
- package/dist/provenance/src/tokens.d.ts.map +1 -0
- package/dist/provenance/src/tokens.js +239 -0
- package/dist/provenance/src/tokens.js.map +1 -0
- package/dist/provenance/src/types.d.ts +150 -0
- package/dist/provenance/src/types.d.ts.map +1 -0
- package/dist/provenance/src/types.js +47 -0
- package/dist/provenance/src/types.js.map +1 -0
- package/dist/runtime/src/approval/handler.d.ts +12 -0
- package/dist/runtime/src/approval/handler.d.ts.map +1 -0
- package/dist/runtime/src/approval/handler.js +17 -0
- package/dist/runtime/src/approval/handler.js.map +1 -0
- package/dist/runtime/src/approval/index.d.ts +17 -0
- package/dist/runtime/src/approval/index.d.ts.map +1 -0
- package/dist/runtime/src/approval/index.js +94 -0
- package/dist/runtime/src/approval/index.js.map +1 -0
- package/dist/runtime/src/approval/types.d.ts +21 -0
- package/dist/runtime/src/approval/types.d.ts.map +1 -0
- package/dist/runtime/src/approval/types.js +5 -0
- package/dist/runtime/src/approval/types.js.map +1 -0
- package/dist/runtime/src/cache/backends.d.ts +39 -0
- package/dist/runtime/src/cache/backends.d.ts.map +1 -0
- package/dist/runtime/src/cache/backends.js +167 -0
- package/dist/runtime/src/cache/backends.js.map +1 -0
- package/dist/runtime/src/cache/index.d.ts +32 -0
- package/dist/runtime/src/cache/index.d.ts.map +1 -0
- package/dist/runtime/src/cache/index.js +103 -0
- package/dist/runtime/src/cache/index.js.map +1 -0
- package/dist/runtime/src/cache/types.d.ts +20 -0
- package/dist/runtime/src/cache/types.d.ts.map +1 -0
- package/dist/runtime/src/cache/types.js +2 -0
- package/dist/runtime/src/cache/types.js.map +1 -0
- package/dist/runtime/src/embedding/index.d.ts +39 -0
- package/dist/runtime/src/embedding/index.d.ts.map +1 -0
- package/dist/runtime/src/embedding/index.js +162 -0
- package/dist/runtime/src/embedding/index.js.map +1 -0
- package/dist/runtime/src/embedding/types.d.ts +28 -0
- package/dist/runtime/src/embedding/types.d.ts.map +1 -0
- package/dist/runtime/src/embedding/types.js +5 -0
- package/dist/runtime/src/embedding/types.js.map +1 -0
- package/dist/runtime/src/embedding/utils.d.ts +11 -0
- package/dist/runtime/src/embedding/utils.d.ts.map +1 -0
- package/dist/runtime/src/embedding/utils.js +30 -0
- package/dist/runtime/src/embedding/utils.js.map +1 -0
- package/dist/runtime/src/embedding/vector-store.d.ts +64 -0
- package/dist/runtime/src/embedding/vector-store.d.ts.map +1 -0
- package/dist/runtime/src/embedding/vector-store.js +142 -0
- package/dist/runtime/src/embedding/vector-store.js.map +1 -0
- package/dist/runtime/src/index.d.ts +18 -0
- package/dist/runtime/src/index.d.ts.map +1 -0
- package/dist/runtime/src/index.js +17 -0
- package/dist/runtime/src/index.js.map +1 -0
- package/dist/runtime/src/llm/callback.d.ts +13 -0
- package/dist/runtime/src/llm/callback.d.ts.map +1 -0
- package/dist/runtime/src/llm/callback.js +19 -0
- package/dist/runtime/src/llm/callback.js.map +1 -0
- package/dist/runtime/src/llm/index.d.ts +29 -0
- package/dist/runtime/src/llm/index.d.ts.map +1 -0
- package/dist/runtime/src/llm/index.js +118 -0
- package/dist/runtime/src/llm/index.js.map +1 -0
- package/dist/runtime/src/llm/replay.d.ts +47 -0
- package/dist/runtime/src/llm/replay.d.ts.map +1 -0
- package/dist/runtime/src/llm/replay.js +114 -0
- package/dist/runtime/src/llm/replay.js.map +1 -0
- package/dist/runtime/src/llm/types.d.ts +24 -0
- package/dist/runtime/src/llm/types.d.ts.map +1 -0
- package/dist/runtime/src/llm/types.js +2 -0
- package/dist/runtime/src/llm/types.js.map +1 -0
- package/dist/runtime/src/log/index.d.ts +12 -0
- package/dist/runtime/src/log/index.d.ts.map +1 -0
- package/dist/runtime/src/log/index.js +166 -0
- package/dist/runtime/src/log/index.js.map +1 -0
- package/dist/runtime/src/log/types.d.ts +19 -0
- package/dist/runtime/src/log/types.d.ts.map +1 -0
- package/dist/runtime/src/log/types.js +5 -0
- package/dist/runtime/src/log/types.js.map +1 -0
- package/dist/runtime/src/metadata/decorators.d.ts +27 -0
- package/dist/runtime/src/metadata/decorators.d.ts.map +1 -0
- package/dist/runtime/src/metadata/decorators.js +38 -0
- package/dist/runtime/src/metadata/decorators.js.map +1 -0
- package/dist/runtime/src/metadata/generated.d.ts +18 -0
- package/dist/runtime/src/metadata/generated.d.ts.map +1 -0
- package/dist/runtime/src/metadata/generated.js +290 -0
- package/dist/runtime/src/metadata/generated.js.map +1 -0
- package/dist/runtime/src/metadata/index.d.ts +11 -0
- package/dist/runtime/src/metadata/index.d.ts.map +1 -0
- package/dist/runtime/src/metadata/index.js +45 -0
- package/dist/runtime/src/metadata/index.js.map +1 -0
- package/dist/runtime/src/metadata/types.d.ts +22 -0
- package/dist/runtime/src/metadata/types.d.ts.map +1 -0
- package/dist/runtime/src/metadata/types.js +6 -0
- package/dist/runtime/src/metadata/types.js.map +1 -0
- package/dist/runtime/src/pause/index.d.ts +11 -0
- package/dist/runtime/src/pause/index.d.ts.map +1 -0
- package/dist/runtime/src/pause/index.js +15 -0
- package/dist/runtime/src/pause/index.js.map +1 -0
- package/dist/runtime/src/pause/types.d.ts +46 -0
- package/dist/runtime/src/pause/types.d.ts.map +1 -0
- package/dist/runtime/src/pause/types.js +57 -0
- package/dist/runtime/src/pause/types.js.map +1 -0
- package/dist/runtime/src/progress/index.d.ts +19 -0
- package/dist/runtime/src/progress/index.d.ts.map +1 -0
- package/dist/runtime/src/progress/index.js +61 -0
- package/dist/runtime/src/progress/index.js.map +1 -0
- package/dist/runtime/src/progress/types.d.ts +7 -0
- package/dist/runtime/src/progress/types.d.ts.map +1 -0
- package/dist/runtime/src/progress/types.js +2 -0
- package/dist/runtime/src/progress/types.js.map +1 -0
- package/dist/runtime/src/registry.d.ts +16 -0
- package/dist/runtime/src/registry.d.ts.map +1 -0
- package/dist/runtime/src/registry.js +16 -0
- package/dist/runtime/src/registry.js.map +1 -0
- package/dist/runtime/src/utils.d.ts +11 -0
- package/dist/runtime/src/utils.d.ts.map +1 -0
- package/dist/runtime/src/utils.js +31 -0
- package/dist/runtime/src/utils.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/jest.config.js +29 -0
- package/package.json +56 -0
- package/project.json +31 -0
- package/src/index.ts +6 -0
- package/src/runtime/batch-parallel.ts +22 -0
- package/src/runtime/checkpoint-manager.ts +105 -0
- package/src/runtime/context.ts +33 -0
- package/src/runtime/errors.ts +79 -0
- package/src/runtime/index.ts +35 -0
- package/src/runtime/resumable-arrays.ts +253 -0
- package/src/runtime/resumable-loops.ts +93 -0
- package/src/runtime/resumable-parallel.ts +57 -0
- package/src/transformer/array-transformer-batch.ts +86 -0
- package/src/transformer/array-transformer-sequential.ts +38 -0
- package/src/transformer/array-transformer-utils.ts +80 -0
- package/src/transformer/array-transformer-wrappers.ts +165 -0
- package/src/transformer/array-transformer.ts +76 -0
- package/src/transformer/batch-detector.ts +166 -0
- package/src/transformer/batch-optimizer.ts +320 -0
- package/src/transformer/detector.ts +171 -0
- package/src/transformer/index.ts +155 -0
- package/src/transformer/loop-transformer.ts +285 -0
- package/src/transformer/promise-transformer.ts +194 -0
- package/src/transformer/utils.ts +147 -0
- package/src/types.ts +101 -0
- package/tsconfig.json +12 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../runtime/src/progress/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../runtime/src/progress/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime API Registry
|
|
3
|
+
*
|
|
4
|
+
*/
|
|
5
|
+
import type { RuntimeAPIMetadata } from './metadata/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* Get all registered runtime APIs metadata
|
|
8
|
+
*
|
|
9
|
+
* This is generated at BUILD TIME by ts-morph, not at runtime
|
|
10
|
+
*/
|
|
11
|
+
export declare function getAllAPIs(): RuntimeAPIMetadata[];
|
|
12
|
+
/**
|
|
13
|
+
* Get metadata for a specific API by name
|
|
14
|
+
*/
|
|
15
|
+
export declare function getAPI(name: string): RuntimeAPIMetadata | undefined;
|
|
16
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../runtime/src/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9D;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,kBAAkB,EAAE,CAEjD;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAEnE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { GENERATED_METADATA } from './metadata/generated.js';
|
|
2
|
+
/**
|
|
3
|
+
* Get all registered runtime APIs metadata
|
|
4
|
+
*
|
|
5
|
+
* This is generated at BUILD TIME by ts-morph, not at runtime
|
|
6
|
+
*/
|
|
7
|
+
export function getAllAPIs() {
|
|
8
|
+
return GENERATED_METADATA;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Get metadata for a specific API by name
|
|
12
|
+
*/
|
|
13
|
+
export function getAPI(name) {
|
|
14
|
+
return GENERATED_METADATA.find((api) => api.name === name);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../runtime/src/registry.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;GAIG;AACH,MAAM,UAAU,UAAU;IACzB,OAAO,kBAAkB,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,IAAY;IAClC,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface RetryOptions {
|
|
2
|
+
maxAttempts: number;
|
|
3
|
+
delayMs: number;
|
|
4
|
+
}
|
|
5
|
+
export declare const utils: {
|
|
6
|
+
sleep(ms: number): Promise<void>;
|
|
7
|
+
retry<T>(fn: () => Promise<T>, options: RetryOptions): Promise<T>;
|
|
8
|
+
parallel<T>(tasks: Array<() => Promise<T>>): Promise<T[]>;
|
|
9
|
+
sequence<T>(tasks: Array<() => Promise<T>>): Promise<T[]>;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../runtime/src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,KAAK;cACD,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;UAI1B,CAAC,MAAM,MAAM,OAAO,CAAC,CAAC,CAAC,WAAW,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC;aAexD,CAAC,SAAS,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;aAIhD,CAAC,SAAS,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAO/D,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export const utils = {
|
|
2
|
+
async sleep(ms) {
|
|
3
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
4
|
+
},
|
|
5
|
+
async retry(fn, options) {
|
|
6
|
+
let lastError;
|
|
7
|
+
for (let attempt = 1; attempt <= options.maxAttempts; attempt++) {
|
|
8
|
+
try {
|
|
9
|
+
return await fn();
|
|
10
|
+
}
|
|
11
|
+
catch (error) {
|
|
12
|
+
lastError = error;
|
|
13
|
+
if (attempt < options.maxAttempts) {
|
|
14
|
+
await this.sleep(options.delayMs);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
throw lastError;
|
|
19
|
+
},
|
|
20
|
+
async parallel(tasks) {
|
|
21
|
+
return Promise.all(tasks.map((task) => task()));
|
|
22
|
+
},
|
|
23
|
+
async sequence(tasks) {
|
|
24
|
+
const results = [];
|
|
25
|
+
for (const task of tasks) {
|
|
26
|
+
results.push(await task());
|
|
27
|
+
}
|
|
28
|
+
return results;
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../runtime/src/utils.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,KAAK,GAAG;IACpB,KAAK,CAAC,KAAK,CAAC,EAAU;QACrB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,KAAK,CAAI,EAAoB,EAAE,OAAqB;QACzD,IAAI,SAA4B,CAAC;QACjC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;YACjE,IAAI,CAAC;gBACJ,OAAO,MAAM,EAAE,EAAE,CAAC;YACnB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,SAAS,GAAG,KAAc,CAAC;gBAC3B,IAAI,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;oBACnC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACnC,CAAC;YACF,CAAC;QACF,CAAC;QACD,MAAM,SAAS,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAI,KAA8B;QAC/C,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAI,KAA8B;QAC/C,MAAM,OAAO,GAAQ,EAAE,CAAC;QACxB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,OAAO,CAAC;IAChB,CAAC;CACD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["../src/index.ts","../src/types.ts","../src/runtime/batch-parallel.ts","../src/runtime/checkpoint-manager.ts","../src/runtime/context.ts","../src/runtime/errors.ts","../src/runtime/index.ts","../src/runtime/resumable-arrays.ts","../src/runtime/resumable-loops.ts","../src/runtime/resumable-parallel.ts","../src/transformer/array-transformer-batch.ts","../src/transformer/array-transformer-sequential.ts","../src/transformer/array-transformer-utils.ts","../src/transformer/array-transformer-wrappers.ts","../src/transformer/array-transformer.ts","../src/transformer/batch-detector.ts","../src/transformer/batch-optimizer.ts","../src/transformer/detector.ts","../src/transformer/index.ts","../src/transformer/loop-transformer.ts","../src/transformer/promise-transformer.ts","../src/transformer/utils.ts"],"version":"5.9.3"}
|
package/jest.config.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
preset: 'ts-jest',
|
|
3
|
+
testEnvironment: 'node',
|
|
4
|
+
roots: ['<rootDir>/__tests__'],
|
|
5
|
+
testMatch: ['**/*.test.ts'],
|
|
6
|
+
moduleNameMapper: {
|
|
7
|
+
'^(\\.{1,2}/.*)\\.js$': '$1',
|
|
8
|
+
'^@mondaydotcomorg/atp-runtime$': '<rootDir>/../runtime/src/index.ts',
|
|
9
|
+
'^@mondaydotcomorg/atp-protocol$': '<rootDir>/../protocol/src/index.ts',
|
|
10
|
+
},
|
|
11
|
+
extensionsToTreatAsEsm: ['.ts'],
|
|
12
|
+
transform: {
|
|
13
|
+
'^.+\\.tsx?$': [
|
|
14
|
+
'ts-jest',
|
|
15
|
+
{
|
|
16
|
+
useESM: true,
|
|
17
|
+
},
|
|
18
|
+
],
|
|
19
|
+
},
|
|
20
|
+
collectCoverageFrom: ['src/**/*.ts', '!src/**/*.d.ts', '!src/index.ts'],
|
|
21
|
+
coverageThreshold: {
|
|
22
|
+
global: {
|
|
23
|
+
branches: 95,
|
|
24
|
+
functions: 95,
|
|
25
|
+
lines: 95,
|
|
26
|
+
statements: 95,
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mondaydotcomorg/atp-compiler",
|
|
3
|
+
"version": "0.17.14",
|
|
4
|
+
"description": "Production-ready compiler for transforming async iteration patterns into resumable operations with checkpoint-based state management",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/atp-compiler/src/index.js",
|
|
7
|
+
"types": "dist/atp-compiler/src/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/atp-compiler/src/index.d.ts",
|
|
11
|
+
"import": "./dist/atp-compiler/src/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./*": {
|
|
14
|
+
"types": "./dist/atp-compiler/src/*.d.ts",
|
|
15
|
+
"import": "./dist/atp-compiler/src/*.js"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc",
|
|
20
|
+
"test": "jest",
|
|
21
|
+
"test:watch": "jest --watch",
|
|
22
|
+
"test:coverage": "jest --coverage",
|
|
23
|
+
"test:mutation": "stryker run",
|
|
24
|
+
"lint": "tsc --noEmit",
|
|
25
|
+
"clean": "rm -rf dist"
|
|
26
|
+
},
|
|
27
|
+
"keywords": [
|
|
28
|
+
"agent-tool-protocol",
|
|
29
|
+
"compiler",
|
|
30
|
+
"resumable",
|
|
31
|
+
"async",
|
|
32
|
+
"checkpoint"
|
|
33
|
+
],
|
|
34
|
+
"author": "",
|
|
35
|
+
"license": "MIT",
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@babel/generator": "^7.26.0",
|
|
38
|
+
"@babel/parser": "^7.26.0",
|
|
39
|
+
"@babel/traverse": "^7.26.0",
|
|
40
|
+
"@babel/types": "^7.26.0",
|
|
41
|
+
"nanoid": "^5.0.0"
|
|
42
|
+
},
|
|
43
|
+
"peerDependencies": {
|
|
44
|
+
"@mondaydotcomorg/atp-protocol": "0.17.14",
|
|
45
|
+
"@mondaydotcomorg/atp-runtime": "0.17.14"
|
|
46
|
+
},
|
|
47
|
+
"devDependencies": {
|
|
48
|
+
"@stryker-mutator/core": "^8.0.0",
|
|
49
|
+
"@types/babel__generator": "^7.6.0",
|
|
50
|
+
"@types/babel__traverse": "^7.20.0",
|
|
51
|
+
"@types/jest": "^29.5.0",
|
|
52
|
+
"fast-check": "^3.15.0",
|
|
53
|
+
"jest": "^29.7.0",
|
|
54
|
+
"typescript": "^5.3.0"
|
|
55
|
+
}
|
|
56
|
+
}
|
package/project.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mondaydotcomorg/atp-compiler",
|
|
3
|
+
"$schema": "../../node_modules/nx/schemas/project-schema.json",
|
|
4
|
+
"sourceRoot": "packages/atp-compiler/src",
|
|
5
|
+
"projectType": "library",
|
|
6
|
+
"targets": {
|
|
7
|
+
"build": {
|
|
8
|
+
"executor": "nx:run-commands",
|
|
9
|
+
"outputs": ["{workspaceRoot}/packages/atp-compiler/dist"],
|
|
10
|
+
"options": {
|
|
11
|
+
"command": "tsc --build packages/atp-compiler/tsconfig.json",
|
|
12
|
+
"cwd": "{workspaceRoot}"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"clean": {
|
|
16
|
+
"executor": "nx:run-commands",
|
|
17
|
+
"options": {
|
|
18
|
+
"command": "rm -rf packages/atp-compiler/dist"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"lint": {
|
|
22
|
+
"executor": "nx:run-commands",
|
|
23
|
+
"options": {
|
|
24
|
+
"command": "cd packages/atp-compiler && npm run lint"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"tags": [
|
|
29
|
+
"atp-core"
|
|
30
|
+
]
|
|
31
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BatchPauseExecutionError } from './errors.js';
|
|
2
|
+
import type { BatchCallInfo } from '../types.js';
|
|
3
|
+
import {
|
|
4
|
+
nextSequenceNumber,
|
|
5
|
+
getCachedResult,
|
|
6
|
+
getCallSequenceNumber,
|
|
7
|
+
} from '@mondaydotcomorg/atp-runtime';
|
|
8
|
+
|
|
9
|
+
export async function batchParallel<T>(
|
|
10
|
+
batchCalls: BatchCallInfo[],
|
|
11
|
+
parallelId: string
|
|
12
|
+
): Promise<T[]> {
|
|
13
|
+
const currentSequence = getCallSequenceNumber();
|
|
14
|
+
const cachedResult = getCachedResult(currentSequence);
|
|
15
|
+
if (cachedResult !== undefined) {
|
|
16
|
+
nextSequenceNumber();
|
|
17
|
+
return cachedResult as T[];
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const sequenceForPause = nextSequenceNumber();
|
|
21
|
+
throw new BatchPauseExecutionError(batchCalls, parallelId, sequenceForPause);
|
|
22
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import type { CacheProvider } from '@mondaydotcomorg/atp-protocol';
|
|
2
|
+
import type { LoopCheckpoint } from '../types.js';
|
|
3
|
+
import { CheckpointError, CheckpointOperation } from './errors.js';
|
|
4
|
+
|
|
5
|
+
const MAX_CHECKPOINT_SIZE = 10 * 1024 * 1024;
|
|
6
|
+
const CHECKPOINT_TTL = 3600;
|
|
7
|
+
|
|
8
|
+
export class CheckpointManager {
|
|
9
|
+
private cache: CacheProvider;
|
|
10
|
+
private executionId: string;
|
|
11
|
+
private prefix: string;
|
|
12
|
+
|
|
13
|
+
constructor(executionId: string, cache: CacheProvider, prefix = 'checkpoint') {
|
|
14
|
+
this.executionId = executionId;
|
|
15
|
+
this.cache = cache;
|
|
16
|
+
this.prefix = prefix;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async save(checkpoint: LoopCheckpoint): Promise<void> {
|
|
20
|
+
const key = this.getKey(checkpoint.loopId);
|
|
21
|
+
|
|
22
|
+
try {
|
|
23
|
+
const serialized = JSON.stringify(checkpoint);
|
|
24
|
+
|
|
25
|
+
if (serialized.length > MAX_CHECKPOINT_SIZE) {
|
|
26
|
+
throw new CheckpointError(
|
|
27
|
+
`Checkpoint size ${serialized.length} exceeds maximum ${MAX_CHECKPOINT_SIZE}`,
|
|
28
|
+
checkpoint.loopId,
|
|
29
|
+
CheckpointOperation.SAVE
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
await this.cache.set(key, checkpoint, CHECKPOINT_TTL);
|
|
34
|
+
} catch (error) {
|
|
35
|
+
if (error instanceof CheckpointError) {
|
|
36
|
+
throw error;
|
|
37
|
+
}
|
|
38
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
39
|
+
throw new CheckpointError(message, checkpoint.loopId, CheckpointOperation.SAVE);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
async load(loopId: string): Promise<LoopCheckpoint | null> {
|
|
44
|
+
const key = this.getKey(loopId);
|
|
45
|
+
|
|
46
|
+
try {
|
|
47
|
+
const checkpoint = await this.cache.get<LoopCheckpoint>(key);
|
|
48
|
+
|
|
49
|
+
if (!checkpoint) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
if (checkpoint.completed && checkpoint.completed instanceof Array) {
|
|
54
|
+
checkpoint.completed = new Set(checkpoint.completed);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
return checkpoint;
|
|
58
|
+
} catch (error) {
|
|
59
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
60
|
+
throw new CheckpointError(message, loopId, CheckpointOperation.LOAD);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
async clear(loopId: string): Promise<void> {
|
|
65
|
+
const key = this.getKey(loopId);
|
|
66
|
+
|
|
67
|
+
try {
|
|
68
|
+
await this.cache.delete(key);
|
|
69
|
+
} catch (error) {
|
|
70
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
71
|
+
throw new CheckpointError(message, loopId, CheckpointOperation.CLEAR);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
async clearAll(): Promise<void> {}
|
|
76
|
+
|
|
77
|
+
private getKey(loopId: string): string {
|
|
78
|
+
return `${this.prefix}:${this.executionId}:${loopId}`;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
getExecutionId(): string {
|
|
82
|
+
return this.executionId;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
let globalCheckpointManager: CheckpointManager | null = null;
|
|
87
|
+
|
|
88
|
+
export function setCheckpointManager(manager: CheckpointManager): void {
|
|
89
|
+
globalCheckpointManager = manager;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export function getCheckpointManager(): CheckpointManager {
|
|
93
|
+
if (!globalCheckpointManager) {
|
|
94
|
+
throw new Error('CheckpointManager not initialized');
|
|
95
|
+
}
|
|
96
|
+
return globalCheckpointManager;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export function clearCheckpointManager(): void {
|
|
100
|
+
globalCheckpointManager = null;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export function hasCheckpointManager(): boolean {
|
|
104
|
+
return globalCheckpointManager !== null;
|
|
105
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { RuntimeContext } from '../types.js';
|
|
2
|
+
|
|
3
|
+
const contextStack: RuntimeContext[] = [];
|
|
4
|
+
|
|
5
|
+
export function setRuntimeContext(context: RuntimeContext): void {
|
|
6
|
+
contextStack.push(context);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function getRuntimeContext(): RuntimeContext {
|
|
10
|
+
const context = contextStack[contextStack.length - 1];
|
|
11
|
+
if (!context) {
|
|
12
|
+
throw new Error('No runtime context available. Compiler runtime not properly initialized.');
|
|
13
|
+
}
|
|
14
|
+
return context;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function clearRuntimeContext(): void {
|
|
18
|
+
contextStack.pop();
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function hasRuntimeContext(): boolean {
|
|
22
|
+
return contextStack.length > 0;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
let idCounter = 0;
|
|
26
|
+
|
|
27
|
+
export function generateUniqueId(prefix: string): string {
|
|
28
|
+
return `${prefix}_${Date.now()}_${idCounter++}`;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function resetIdCounter(): void {
|
|
32
|
+
idCounter = 0;
|
|
33
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { BatchCallInfo } from '../types.js';
|
|
2
|
+
|
|
3
|
+
export enum CheckpointOperation {
|
|
4
|
+
SAVE = 'save',
|
|
5
|
+
LOAD = 'load',
|
|
6
|
+
CLEAR = 'clear',
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export class BatchPauseExecutionError extends Error {
|
|
10
|
+
public readonly calls: BatchCallInfo[];
|
|
11
|
+
public readonly batchId: string;
|
|
12
|
+
public readonly sequenceNumber: number;
|
|
13
|
+
|
|
14
|
+
constructor(calls: BatchCallInfo[], batchId: string, sequenceNumber: number) {
|
|
15
|
+
super(`Batch pause for parallel execution (${calls.length} callbacks)`);
|
|
16
|
+
this.name = 'BatchPauseExecutionError';
|
|
17
|
+
this.calls = calls;
|
|
18
|
+
this.batchId = batchId;
|
|
19
|
+
this.sequenceNumber = sequenceNumber;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export class CheckpointError extends Error {
|
|
24
|
+
public readonly checkpointId: string;
|
|
25
|
+
public readonly operation: CheckpointOperation;
|
|
26
|
+
|
|
27
|
+
constructor(message: string, checkpointId: string, operation: CheckpointOperation) {
|
|
28
|
+
super(`Checkpoint ${operation} failed for ${checkpointId}: ${message}`);
|
|
29
|
+
this.name = 'CheckpointError';
|
|
30
|
+
this.checkpointId = checkpointId;
|
|
31
|
+
this.operation = operation;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export class TransformationError extends Error {
|
|
36
|
+
public readonly code: string;
|
|
37
|
+
public readonly pattern: string;
|
|
38
|
+
public readonly location?: { line: number; column: number };
|
|
39
|
+
|
|
40
|
+
constructor(
|
|
41
|
+
message: string,
|
|
42
|
+
code: string,
|
|
43
|
+
pattern: string,
|
|
44
|
+
location?: { line: number; column: number }
|
|
45
|
+
) {
|
|
46
|
+
const loc = location ? ` at line ${location.line}:${location.column}` : '';
|
|
47
|
+
super(`Transformation failed for ${pattern}${loc}: ${message}`);
|
|
48
|
+
this.name = 'TransformationError';
|
|
49
|
+
this.code = code;
|
|
50
|
+
this.pattern = pattern;
|
|
51
|
+
this.location = location;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export class InfiniteLoopDetectionError extends Error {
|
|
56
|
+
public readonly loopId: string;
|
|
57
|
+
public readonly iterationCount: number;
|
|
58
|
+
|
|
59
|
+
constructor(loopId: string, iterationCount: number) {
|
|
60
|
+
super(
|
|
61
|
+
`Infinite loop detected: ${loopId} exceeded ${iterationCount} iterations without completing`
|
|
62
|
+
);
|
|
63
|
+
this.name = 'InfiniteLoopDetectionError';
|
|
64
|
+
this.loopId = loopId;
|
|
65
|
+
this.iterationCount = iterationCount;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export function isBatchPauseError(error: unknown): error is BatchPauseExecutionError {
|
|
70
|
+
return error instanceof BatchPauseExecutionError;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export function isCheckpointError(error: unknown): error is CheckpointError {
|
|
74
|
+
return error instanceof CheckpointError;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export function isTransformationError(error: unknown): error is TransformationError {
|
|
78
|
+
return error instanceof TransformationError;
|
|
79
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export * from './errors.js';
|
|
2
|
+
export * from './context.js';
|
|
3
|
+
export * from './checkpoint-manager.js';
|
|
4
|
+
export * from './resumable-loops.js';
|
|
5
|
+
export * from './resumable-arrays.js';
|
|
6
|
+
export * from './resumable-parallel.js';
|
|
7
|
+
export * from './batch-parallel.js';
|
|
8
|
+
|
|
9
|
+
import type { CacheProvider } from '@mondaydotcomorg/atp-protocol';
|
|
10
|
+
import { CheckpointManager, setCheckpointManager } from './checkpoint-manager.js';
|
|
11
|
+
import { setRuntimeContext } from './context.js';
|
|
12
|
+
|
|
13
|
+
export interface InitializeRuntimeOptions {
|
|
14
|
+
executionId: string;
|
|
15
|
+
cache: CacheProvider;
|
|
16
|
+
checkpointPrefix?: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function initializeRuntime(options: InitializeRuntimeOptions): void {
|
|
20
|
+
const checkpointManager = new CheckpointManager(
|
|
21
|
+
options.executionId,
|
|
22
|
+
options.cache,
|
|
23
|
+
options.checkpointPrefix
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
setCheckpointManager(checkpointManager);
|
|
27
|
+
|
|
28
|
+
setRuntimeContext({
|
|
29
|
+
executionId: options.executionId,
|
|
30
|
+
cache: options.cache,
|
|
31
|
+
checkpointPrefix: options.checkpointPrefix,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export function cleanupRuntime(): void {}
|