@mondaydotcomorg/atp-compiler 0.18.2 → 0.18.4-rc.1
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/__tests__/unit/default-compiler.test.ts +259 -0
- package/__tests__/unit/plugin-system.test.ts +401 -0
- package/dist/atp-compiler/src/index.d.ts +8 -0
- package/dist/atp-compiler/src/index.d.ts.map +1 -1
- package/dist/atp-compiler/src/index.js +9 -0
- package/dist/atp-compiler/src/index.js.map +1 -1
- package/dist/atp-compiler/src/plugin-system/create-default-compiler.d.ts +40 -0
- package/dist/atp-compiler/src/plugin-system/create-default-compiler.d.ts.map +1 -0
- package/dist/atp-compiler/src/plugin-system/create-default-compiler.js +40 -0
- package/dist/atp-compiler/src/plugin-system/create-default-compiler.js.map +1 -0
- package/dist/atp-compiler/src/plugin-system/default-plugins/array-transformer-plugin.d.ts +18 -0
- package/dist/atp-compiler/src/plugin-system/default-plugins/array-transformer-plugin.d.ts.map +1 -0
- package/dist/atp-compiler/src/plugin-system/default-plugins/array-transformer-plugin.js +45 -0
- package/dist/atp-compiler/src/plugin-system/default-plugins/array-transformer-plugin.js.map +1 -0
- package/dist/atp-compiler/src/plugin-system/default-plugins/detection-plugin.d.ts +17 -0
- package/dist/atp-compiler/src/plugin-system/default-plugins/detection-plugin.d.ts.map +1 -0
- package/dist/atp-compiler/src/plugin-system/default-plugins/detection-plugin.js +33 -0
- package/dist/atp-compiler/src/plugin-system/default-plugins/detection-plugin.js.map +1 -0
- package/dist/atp-compiler/src/plugin-system/default-plugins/index.d.ts +11 -0
- package/dist/atp-compiler/src/plugin-system/default-plugins/index.d.ts.map +1 -0
- package/dist/atp-compiler/src/plugin-system/default-plugins/index.js +11 -0
- package/dist/atp-compiler/src/plugin-system/default-plugins/index.js.map +1 -0
- package/dist/atp-compiler/src/plugin-system/default-plugins/loop-transformer-plugin.d.ts +17 -0
- package/dist/atp-compiler/src/plugin-system/default-plugins/loop-transformer-plugin.d.ts.map +1 -0
- package/dist/atp-compiler/src/plugin-system/default-plugins/loop-transformer-plugin.js +36 -0
- package/dist/atp-compiler/src/plugin-system/default-plugins/loop-transformer-plugin.js.map +1 -0
- package/dist/atp-compiler/src/plugin-system/default-plugins/promise-transformer-plugin.d.ts +19 -0
- package/dist/atp-compiler/src/plugin-system/default-plugins/promise-transformer-plugin.d.ts.map +1 -0
- package/dist/atp-compiler/src/plugin-system/default-plugins/promise-transformer-plugin.js +49 -0
- package/dist/atp-compiler/src/plugin-system/default-plugins/promise-transformer-plugin.js.map +1 -0
- package/dist/atp-compiler/src/plugin-system/examples/loop-transformer-plugin.d.ts +31 -0
- package/dist/atp-compiler/src/plugin-system/examples/loop-transformer-plugin.d.ts.map +1 -0
- package/dist/atp-compiler/src/plugin-system/examples/loop-transformer-plugin.js +60 -0
- package/dist/atp-compiler/src/plugin-system/examples/loop-transformer-plugin.js.map +1 -0
- package/dist/atp-compiler/src/plugin-system/examples/security-validator-plugin.d.ts +48 -0
- package/dist/atp-compiler/src/plugin-system/examples/security-validator-plugin.d.ts.map +1 -0
- package/dist/atp-compiler/src/plugin-system/examples/security-validator-plugin.js +108 -0
- package/dist/atp-compiler/src/plugin-system/examples/security-validator-plugin.js.map +1 -0
- package/dist/atp-compiler/src/plugin-system/examples/timeout-plugin.d.ts +53 -0
- package/dist/atp-compiler/src/plugin-system/examples/timeout-plugin.d.ts.map +1 -0
- package/dist/atp-compiler/src/plugin-system/examples/timeout-plugin.js +106 -0
- package/dist/atp-compiler/src/plugin-system/examples/timeout-plugin.js.map +1 -0
- package/dist/atp-compiler/src/plugin-system/index.d.ts +14 -0
- package/dist/atp-compiler/src/plugin-system/index.d.ts.map +1 -0
- package/dist/atp-compiler/src/plugin-system/index.js +16 -0
- package/dist/atp-compiler/src/plugin-system/index.js.map +1 -0
- package/dist/atp-compiler/src/plugin-system/pluggable-compiler.d.ts +102 -0
- package/dist/atp-compiler/src/plugin-system/pluggable-compiler.d.ts.map +1 -0
- package/dist/atp-compiler/src/plugin-system/pluggable-compiler.js +280 -0
- package/dist/atp-compiler/src/plugin-system/pluggable-compiler.js.map +1 -0
- package/dist/atp-compiler/src/plugin-system/plugin-api.d.ts +165 -0
- package/dist/atp-compiler/src/plugin-system/plugin-api.d.ts.map +1 -0
- package/dist/atp-compiler/src/plugin-system/plugin-api.js +180 -0
- package/dist/atp-compiler/src/plugin-system/plugin-api.js.map +1 -0
- package/dist/atp-compiler/src/transformer/index.d.ts +15 -1
- package/dist/atp-compiler/src/transformer/index.d.ts.map +1 -1
- package/dist/atp-compiler/src/transformer/index.js +17 -0
- package/dist/atp-compiler/src/transformer/index.js.map +1 -1
- package/dist/atp-compiler/src/types/compiler-interface.d.ts +61 -0
- package/dist/atp-compiler/src/types/compiler-interface.d.ts.map +1 -0
- package/dist/atp-compiler/src/types/compiler-interface.js +18 -0
- package/dist/atp-compiler/src/types/compiler-interface.js.map +1 -0
- package/dist/runtime/src/approval/index.js +2 -1
- package/dist/runtime/src/approval/index.js.map +1 -1
- package/dist/runtime/src/index.d.ts +1 -1
- package/dist/runtime/src/index.d.ts.map +1 -1
- package/dist/runtime/src/index.js +1 -1
- package/dist/runtime/src/index.js.map +1 -1
- package/dist/runtime/src/llm/index.d.ts +1 -1
- package/dist/runtime/src/llm/index.d.ts.map +1 -1
- package/dist/runtime/src/llm/index.js +1 -1
- package/dist/runtime/src/llm/index.js.map +1 -1
- package/dist/runtime/src/llm/replay.d.ts +75 -0
- package/dist/runtime/src/llm/replay.d.ts.map +1 -1
- package/dist/runtime/src/llm/replay.js +187 -5
- package/dist/runtime/src/llm/replay.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +13 -5
- package/src/index.ts +26 -0
- package/src/plugin-system/create-default-compiler.ts +57 -0
- package/src/plugin-system/default-plugins/array-transformer-plugin.ts +57 -0
- package/src/plugin-system/default-plugins/detection-plugin.ts +41 -0
- package/src/plugin-system/default-plugins/index.ts +12 -0
- package/src/plugin-system/default-plugins/loop-transformer-plugin.ts +47 -0
- package/src/plugin-system/default-plugins/promise-transformer-plugin.ts +63 -0
- package/src/plugin-system/examples/loop-transformer-plugin.ts +76 -0
- package/src/plugin-system/examples/security-validator-plugin.ts +168 -0
- package/src/plugin-system/examples/timeout-plugin.ts +158 -0
- package/src/plugin-system/index.ts +19 -0
- package/src/plugin-system/pluggable-compiler.ts +318 -0
- package/src/plugin-system/plugin-api.ts +330 -0
- package/src/transformer/index.ts +21 -1
- package/src/types/compiler-interface.ts +79 -0
|
@@ -11,6 +11,10 @@ import { PromiseTransformer } from './promise-transformer.js';
|
|
|
11
11
|
import { DEFAULT_COMPILER_CONFIG } from '../types.js';
|
|
12
12
|
import { TransformationError } from '../runtime/errors.js';
|
|
13
13
|
import { resetIdCounter } from '../runtime/context.js';
|
|
14
|
+
/**
|
|
15
|
+
* ATP Compiler - Standard compiler for transforming code to support resumability
|
|
16
|
+
* Implements ICompiler interface for consistency and dependency injection support
|
|
17
|
+
*/
|
|
14
18
|
export class ATPCompiler {
|
|
15
19
|
config;
|
|
16
20
|
detector;
|
|
@@ -121,6 +125,19 @@ export class ATPCompiler {
|
|
|
121
125
|
t.isIdentifier(callee.object, { name: 'Promise' }) &&
|
|
122
126
|
t.isIdentifier(callee.property, { name: 'allSettled' }));
|
|
123
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* Get the compiler type identifier (ICompiler interface requirement)
|
|
130
|
+
*/
|
|
131
|
+
getType() {
|
|
132
|
+
return 'ATPCompiler';
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Get cache statistics (ICompiler interface requirement)
|
|
136
|
+
* ATPCompiler doesn't cache ASTs, so returns null
|
|
137
|
+
*/
|
|
138
|
+
getCacheStats() {
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
124
141
|
}
|
|
125
142
|
export * from './detector.js';
|
|
126
143
|
export * from './batch-detector.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/transformer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,SAAS,MAAM,iBAAiB,CAAC;AACxC,MAAM,QAAQ,GAAI,SAAiB,CAAC,OAAO,IAAI,SAAS,CAAC;AACzD,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,MAAM,QAAQ,GAAI,SAAiB,CAAC,OAAO,IAAI,SAAS,CAAC;AACzD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/transformer/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core compiler interface for ATP
|
|
3
|
+
* All ATP compilers must implement this interface to ensure consistency
|
|
4
|
+
*/
|
|
5
|
+
import type { DetectionResult, TransformResult } from '../types.js';
|
|
6
|
+
/**
|
|
7
|
+
* ICompiler - The core interface that all ATP compilers must implement
|
|
8
|
+
*
|
|
9
|
+
* This interface defines the contract for any compiler in the ATP system,
|
|
10
|
+
* enabling dependency injection and easy extensibility.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* class MyCustomCompiler implements ICompiler {
|
|
15
|
+
* detect(code: string): DetectionResult {
|
|
16
|
+
* // Detection logic
|
|
17
|
+
* }
|
|
18
|
+
*
|
|
19
|
+
* transform(code: string): TransformResult {
|
|
20
|
+
* // Transformation logic
|
|
21
|
+
* }
|
|
22
|
+
*
|
|
23
|
+
* getType(): string {
|
|
24
|
+
* return 'MyCustomCompiler';
|
|
25
|
+
* }
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export interface ICompiler {
|
|
30
|
+
/**
|
|
31
|
+
* Detect if code needs transformation and what patterns it contains
|
|
32
|
+
* Can be synchronous or asynchronous
|
|
33
|
+
*/
|
|
34
|
+
detect(code: string): DetectionResult | Promise<DetectionResult>;
|
|
35
|
+
/**
|
|
36
|
+
* Transform the code based on detected patterns
|
|
37
|
+
* Can be synchronous or asynchronous
|
|
38
|
+
*/
|
|
39
|
+
transform(code: string): TransformResult | Promise<TransformResult>;
|
|
40
|
+
/**
|
|
41
|
+
* Get the compiler type identifier
|
|
42
|
+
*/
|
|
43
|
+
getType(): string;
|
|
44
|
+
/**
|
|
45
|
+
* Get cache statistics (optional)
|
|
46
|
+
* Useful for performance monitoring and debugging
|
|
47
|
+
*/
|
|
48
|
+
getCacheStats?(): CacheStats | null;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Cache statistics structure
|
|
52
|
+
*/
|
|
53
|
+
export interface CacheStats {
|
|
54
|
+
size: number;
|
|
55
|
+
enabled: boolean;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Type guard to check if an object implements ICompiler
|
|
59
|
+
*/
|
|
60
|
+
export declare function isCompiler(obj: unknown): obj is ICompiler;
|
|
61
|
+
//# sourceMappingURL=compiler-interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiler-interface.d.ts","sourceRoot":"","sources":["../../../../src/types/compiler-interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,SAAS;IACzB;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAEjE;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAEpE;;OAEG;IACH,OAAO,IAAI,MAAM,CAAC;IAElB;;;OAGG;IACH,aAAa,CAAC,IAAI,UAAU,GAAG,IAAI,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,SAAS,CAWzD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core compiler interface for ATP
|
|
3
|
+
* All ATP compilers must implement this interface to ensure consistency
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Type guard to check if an object implements ICompiler
|
|
7
|
+
*/
|
|
8
|
+
export function isCompiler(obj) {
|
|
9
|
+
return (typeof obj === 'object' &&
|
|
10
|
+
obj !== null &&
|
|
11
|
+
'detect' in obj &&
|
|
12
|
+
'transform' in obj &&
|
|
13
|
+
'getType' in obj &&
|
|
14
|
+
typeof obj.detect === 'function' &&
|
|
15
|
+
typeof obj.transform === 'function' &&
|
|
16
|
+
typeof obj.getType === 'function');
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=compiler-interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiler-interface.js","sourceRoot":"","sources":["../../../../src/types/compiler-interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA4DH;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,GAAY;IACtC,OAAO,CACN,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,QAAQ,IAAI,GAAG;QACf,WAAW,IAAI,GAAG;QAClB,SAAS,IAAI,GAAG;QAChB,OAAQ,GAAW,CAAC,MAAM,KAAK,UAAU;QACzC,OAAQ,GAAW,CAAC,SAAS,KAAK,UAAU;QAC5C,OAAQ,GAAW,CAAC,OAAO,KAAK,UAAU,CAC1C,CAAC;AACH,CAAC"}
|
|
@@ -36,7 +36,8 @@ let ApprovalAPI = class ApprovalAPI {
|
|
|
36
36
|
if (cachedResult !== undefined) {
|
|
37
37
|
return cachedResult;
|
|
38
38
|
}
|
|
39
|
-
|
|
39
|
+
const shouldPause = shouldPauseForClient();
|
|
40
|
+
if (shouldPause) {
|
|
40
41
|
pauseForCallback(CallbackType.APPROVAL, ApprovalOperation.REQUEST, {
|
|
41
42
|
message,
|
|
42
43
|
context,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../runtime/src/approval/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtF,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAG7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD;;;;;GAKG;AAEH,IAAM,WAAW,GAAjB,MAAM,WAAW;IAChB;;OAEG;IAWG,AAAN,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,OAAiC;QAC/D,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;QAE7C,MAAM,YAAY,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;QACtD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,YAAgC,CAAC;QACzC,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../runtime/src/approval/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtF,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAG7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD;;;;;GAKG;AAEH,IAAM,WAAW,GAAjB,MAAM,WAAW;IAChB;;OAEG;IAWG,AAAN,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,OAAiC;QAC/D,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;QAE7C,MAAM,YAAY,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;QACtD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,YAAgC,CAAC;QACzC,CAAC;QAED,MAAM,WAAW,GAAG,oBAAoB,EAAE,CAAC;QAC3C,IAAI,WAAW,EAAE,CAAC;YACjB,gBAAgB,CAAC,YAAY,CAAC,QAAQ,EAAE,iBAAiB,CAAC,OAAO,EAAE;gBAClE,OAAO;gBACP,OAAO;gBACP,cAAc,EAAE,eAAe;aAC/B,CAAC,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACd,oFAAoF,CACpF,CAAC;QACH,CAAC;QAED,MAAM,eAAe,GAAoB;YACxC,OAAO;YACP,OAAO;YACP,OAAO,EAAE,MAAM;SACf,CAAC;QAEF,IAAI,SAAS,GAA0B,IAAI,CAAC;QAC5C,MAAM,cAAc,GAAG,IAAI,OAAO,CAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YAClE,SAAS,GAAG,UAAU,CACrB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,EACrD,eAAe,CAAC,OAAQ,CACxB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;YAEhF,IAAI,SAAS;gBAAE,YAAY,CAAC,SAAS,CAAC,CAAC;YAEvC,OAAO;gBACN,GAAG,QAAQ;gBACX,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACrB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,SAAS;gBAAE,YAAY,CAAC,SAAS,CAAC,CAAC;YACvC,MAAM,IAAI,KAAK,CACd,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACtF,CAAC;QACH,CAAC;IACF,CAAC;CACD,CAAA;AAtDM;IAVL,aAAa,CAAC,+BAA+B,EAAE;QAC/C,OAAO,EAAE;YACR,WAAW,EAAE,oCAAoC;SACjD;QACD,OAAO,EAAE;YACR,WAAW,EAAE,wDAAwD;YACrE,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,yBAAyB;SAC/B;KACD,CAAC;;;;0CAsDD;AAnEI,WAAW;IADhB,UAAU,CAAC,UAAU,EAAE,yEAAyE,CAAC;GAC5F,WAAW,CAoEhB;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC"}
|
|
@@ -9,7 +9,7 @@ export * from './metadata/index.js';
|
|
|
9
9
|
export { log, initializeLogger, shutdownLogger } from './log/index.js';
|
|
10
10
|
export type { LogLevel, LoggerConfig, Logger } from './log/index.js';
|
|
11
11
|
export { GENERATED_METADATA } from './metadata/generated.js';
|
|
12
|
-
export { setClientLLMCallback, setPauseForClient, setReplayMode, getCallSequenceNumber, } from './llm/index.js';
|
|
12
|
+
export { initializeExecutionState, setClientLLMCallback, setPauseForClient, shouldPauseForClient, setReplayMode, getCallSequenceNumber, isReplayMode, storeAPICallResult, getAPICallResults, clearAPICallResults, setAPIResultCache, getAPIResultFromCache, storeAPIResultInCache, cleanupExecutionState, cleanupOldExecutionStates, resetAllExecutionState, getExecutionStateStats, } from './llm/index.js';
|
|
13
13
|
export { initializeCache } from './cache/index.js';
|
|
14
14
|
export { initializeApproval } from './approval/index.js';
|
|
15
15
|
export { setProgressCallback } from './progress/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../runtime/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AAEpC,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACvE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAErE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EACN,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../runtime/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AAEpC,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACvE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAErE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EACN,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE/F,OAAO,EACN,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,GACb,MAAM,kBAAkB,CAAC"}
|
|
@@ -8,7 +8,7 @@ export * from './registry.js';
|
|
|
8
8
|
export * from './metadata/index.js';
|
|
9
9
|
export { log, initializeLogger, shutdownLogger } from './log/index.js';
|
|
10
10
|
export { GENERATED_METADATA } from './metadata/generated.js';
|
|
11
|
-
export { setClientLLMCallback, setPauseForClient, setReplayMode, getCallSequenceNumber, } from './llm/index.js';
|
|
11
|
+
export { initializeExecutionState, setClientLLMCallback, setPauseForClient, shouldPauseForClient, setReplayMode, getCallSequenceNumber, isReplayMode, storeAPICallResult, getAPICallResults, clearAPICallResults, setAPIResultCache, getAPIResultFromCache, storeAPIResultInCache, cleanupExecutionState, cleanupOldExecutionStates, resetAllExecutionState, getExecutionStateStats, } from './llm/index.js';
|
|
12
12
|
export { initializeCache } from './cache/index.js';
|
|
13
13
|
export { initializeApproval } from './approval/index.js';
|
|
14
14
|
export { setProgressCallback } from './progress/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../runtime/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AAEpC,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EACN,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../runtime/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AAEpC,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EACN,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE/F,OAAO,EACN,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,GACb,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { LLMCallOptions, LLMExtractOptions, LLMClassifyOptions } from './types';
|
|
2
2
|
export type { LLMCallOptions, LLMExtractOptions, LLMClassifyOptions, ClientLLMCallback, } from './types';
|
|
3
3
|
export { setClientLLMCallback, getClientLLMCallback } from './callback.js';
|
|
4
|
-
export { setPauseForClient, setReplayMode, getCallSequenceNumber, nextSequenceNumber, getCachedResult, runInExecutionContext, setCurrentExecutionId, clearCurrentExecutionId, } from './replay.js';
|
|
4
|
+
export { initializeExecutionState, setPauseForClient, shouldPauseForClient, setReplayMode, getCallSequenceNumber, nextSequenceNumber, getCachedResult, isReplayMode, runInExecutionContext, setCurrentExecutionId, clearCurrentExecutionId, storeAPICallResult, getAPICallResults, clearAPICallResults, setAPIResultCache, getAPIResultFromCache, storeAPIResultInCache, cleanupExecutionState, cleanupOldExecutionStates, resetAllExecutionState, getExecutionStateStats, } from './replay.js';
|
|
5
5
|
/**
|
|
6
6
|
* LLM Runtime API
|
|
7
7
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../runtime/src/llm/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAErF,YAAY,EACX,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GACjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EACN,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../runtime/src/llm/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAErF,YAAY,EACX,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GACjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EACN,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,GACtB,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,cAIM,MAAM;IACX;;;OAGG;IAOG,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAepD;;;OAGG;IAOG,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC;IAgBxD;;;OAGG;IAOG,QAAQ,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;CAe5D;AAED,eAAO,MAAM,GAAG,QAAe,CAAC"}
|
|
@@ -19,7 +19,7 @@ import { pauseForCallback, CallbackType, LLMOperation } from '../pause/index.js'
|
|
|
19
19
|
import { RuntimeAPI, RuntimeMethod } from '../metadata/decorators.js';
|
|
20
20
|
import { nextSequenceNumber, getCachedResult } from './replay.js';
|
|
21
21
|
export { setClientLLMCallback, getClientLLMCallback } from './callback.js';
|
|
22
|
-
export { setPauseForClient, setReplayMode, getCallSequenceNumber, nextSequenceNumber, getCachedResult, runInExecutionContext, setCurrentExecutionId, clearCurrentExecutionId, } from './replay.js';
|
|
22
|
+
export { initializeExecutionState, setPauseForClient, shouldPauseForClient, setReplayMode, getCallSequenceNumber, nextSequenceNumber, getCachedResult, isReplayMode, runInExecutionContext, setCurrentExecutionId, clearCurrentExecutionId, storeAPICallResult, getAPICallResults, clearAPICallResults, setAPIResultCache, getAPIResultFromCache, storeAPIResultInCache, cleanupExecutionState, cleanupOldExecutionStates, resetAllExecutionState, getExecutionStateStats, } from './replay.js';
|
|
23
23
|
/**
|
|
24
24
|
* LLM Runtime API
|
|
25
25
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../runtime/src/llm/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAgB,MAAM,aAAa,CAAC;AAShF,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EACN,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../runtime/src/llm/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Execution-scoped state
|
|
3
|
+
*/
|
|
4
|
+
interface APICallRecord {
|
|
5
|
+
type: string;
|
|
6
|
+
operation: string;
|
|
7
|
+
payload: unknown;
|
|
8
|
+
result: unknown;
|
|
9
|
+
timestamp: number;
|
|
10
|
+
sequenceNumber: number;
|
|
11
|
+
}
|
|
1
12
|
/**
|
|
2
13
|
* Sets the current execution ID for this call
|
|
3
14
|
* Called by executor before each runtime API invocation
|
|
@@ -8,6 +19,11 @@ export declare function setCurrentExecutionId(executionId: string): void;
|
|
|
8
19
|
* Called by executor after each runtime API invocation
|
|
9
20
|
*/
|
|
10
21
|
export declare function clearCurrentExecutionId(): void;
|
|
22
|
+
/**
|
|
23
|
+
* Initialize execution state with correct values at execution start
|
|
24
|
+
* This must be called before any state access to ensure correct pause mode
|
|
25
|
+
*/
|
|
26
|
+
export declare function initializeExecutionState(shouldPause: boolean): void;
|
|
11
27
|
/**
|
|
12
28
|
* Runs a function within an execution context
|
|
13
29
|
* @param executionId - Unique ID for this execution
|
|
@@ -44,4 +60,63 @@ export declare function getCachedResult(sequenceNumber: number): unknown | undef
|
|
|
44
60
|
* Check if we're in replay mode
|
|
45
61
|
*/
|
|
46
62
|
export declare function isReplayMode(): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Store an API call result during execution
|
|
65
|
+
* This is used to track server-side API calls so they can be cached on resume
|
|
66
|
+
*/
|
|
67
|
+
export declare function storeAPICallResult(record: {
|
|
68
|
+
type: string;
|
|
69
|
+
operation: string;
|
|
70
|
+
payload: unknown;
|
|
71
|
+
result: unknown;
|
|
72
|
+
timestamp: number;
|
|
73
|
+
sequenceNumber: number;
|
|
74
|
+
}): void;
|
|
75
|
+
/**
|
|
76
|
+
* Get all API call results tracked during this execution
|
|
77
|
+
* Used when building callback history on pause
|
|
78
|
+
*/
|
|
79
|
+
export declare function getAPICallResults(): APICallRecord[];
|
|
80
|
+
/**
|
|
81
|
+
* Clear API call results (used when execution completes or fails)
|
|
82
|
+
*/
|
|
83
|
+
export declare function clearAPICallResults(): void;
|
|
84
|
+
/**
|
|
85
|
+
* Set up API result cache for resume (operation-based, not sequence-based)
|
|
86
|
+
* This allows API calls to find their cached results even if execution order changes
|
|
87
|
+
*/
|
|
88
|
+
export declare function setAPIResultCache(cache: Map<string, unknown> | undefined): void;
|
|
89
|
+
/**
|
|
90
|
+
* Get API result from cache by operation name
|
|
91
|
+
*/
|
|
92
|
+
export declare function getAPIResultFromCache(operation: string): unknown | undefined;
|
|
93
|
+
/**
|
|
94
|
+
* Store API result in cache by operation name (for initial execution)
|
|
95
|
+
*/
|
|
96
|
+
export declare function storeAPIResultInCache(operation: string, result: unknown): void;
|
|
97
|
+
/**
|
|
98
|
+
* Cleanup a specific execution's state
|
|
99
|
+
* This should be called when an execution completes, fails, or is no longer needed
|
|
100
|
+
*/
|
|
101
|
+
export declare function cleanupExecutionState(executionId: string): void;
|
|
102
|
+
/**
|
|
103
|
+
* Cleanup old execution states to prevent memory leaks
|
|
104
|
+
* Removes states older than the specified max age (default: 1 hour)
|
|
105
|
+
*/
|
|
106
|
+
export declare function cleanupOldExecutionStates(maxAgeMs?: number): number;
|
|
107
|
+
/**
|
|
108
|
+
* Reset ALL execution state - for testing purposes only
|
|
109
|
+
* WARNING: This will clear all execution states, breaking any in-flight executions
|
|
110
|
+
*/
|
|
111
|
+
export declare function resetAllExecutionState(): void;
|
|
112
|
+
/**
|
|
113
|
+
* Get execution state statistics - for monitoring/debugging
|
|
114
|
+
*/
|
|
115
|
+
export declare function getExecutionStateStats(): {
|
|
116
|
+
totalStates: number;
|
|
117
|
+
oldestStateAge: number | null;
|
|
118
|
+
newestStateAge: number | null;
|
|
119
|
+
executionIds: string[];
|
|
120
|
+
};
|
|
121
|
+
export {};
|
|
47
122
|
//# sourceMappingURL=replay.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../../../../runtime/src/llm/replay.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../../../../runtime/src/llm/replay.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,UAAU,aAAa;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACvB;AA8BD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAE/D;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAyCD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CA+BnE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAE5E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAWtD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAG9C;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,CAsB7E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAI9C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAM3C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAU3E;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACvB,GAAG,IAAI,CAGP;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,EAAE,CAGnD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,CAG/E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAG5E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAM9E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAK/D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,GAAE,MAAgB,GAAG,MAAM,CAa5E;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAG7C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;CACvB,CAsBA"}
|
|
@@ -30,7 +30,8 @@ export function clearCurrentExecutionId() {
|
|
|
30
30
|
currentExecutionId = null;
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
|
-
* Gets the current execution state
|
|
33
|
+
* Gets the current execution state
|
|
34
|
+
* Note: State must be initialized before calling this. Use initializeExecutionState() first.
|
|
34
35
|
*/
|
|
35
36
|
function getCurrentState() {
|
|
36
37
|
let executionId = currentExecutionId;
|
|
@@ -40,17 +41,60 @@ function getCurrentState() {
|
|
|
40
41
|
if (!executionId) {
|
|
41
42
|
throw new Error('No execution context set. Executor must call setCurrentExecutionId() before runtime API calls.');
|
|
42
43
|
}
|
|
44
|
+
console.log(`[STATE] getCurrentState: executionId=${executionId}, hasState=${executionStates.has(executionId)}, totalStates=${executionStates.size}, stateKeys=${Array.from(executionStates.keys())}`);
|
|
43
45
|
let state = executionStates.get(executionId);
|
|
44
46
|
if (!state) {
|
|
47
|
+
// State should have been initialized explicitly at execution start
|
|
48
|
+
// Create it now with a safe default to prevent crashes
|
|
49
|
+
console.warn('[STATE] State not initialized, creating with default. This should not happen.', { executionId });
|
|
45
50
|
state = {
|
|
46
51
|
shouldPauseForClient: false,
|
|
47
52
|
replayResults: undefined,
|
|
48
53
|
callSequenceNumber: 0,
|
|
54
|
+
apiCallResults: [],
|
|
55
|
+
apiResultCache: undefined,
|
|
56
|
+
createdAt: Date.now(),
|
|
49
57
|
};
|
|
50
58
|
executionStates.set(executionId, state);
|
|
51
59
|
}
|
|
60
|
+
else {
|
|
61
|
+
console.log(`[STATE] Found existing state: shouldPause=${state.shouldPauseForClient}, hasReplay=${!!state.replayResults}, seqNum=${state.callSequenceNumber}`);
|
|
62
|
+
}
|
|
52
63
|
return state;
|
|
53
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Initialize execution state with correct values at execution start
|
|
67
|
+
* This must be called before any state access to ensure correct pause mode
|
|
68
|
+
*/
|
|
69
|
+
export function initializeExecutionState(shouldPause) {
|
|
70
|
+
const executionId = currentExecutionId || executionContext.getStore();
|
|
71
|
+
if (!executionId) {
|
|
72
|
+
throw new Error('No execution context set. Executor must call setCurrentExecutionId() before initializeExecutionState().');
|
|
73
|
+
}
|
|
74
|
+
console.log(`[INIT] initializeExecutionState called: executionId=${executionId}, shouldPause=${shouldPause}, existingState=${executionStates.has(executionId)}`);
|
|
75
|
+
const existingState = executionStates.get(executionId);
|
|
76
|
+
if (existingState) {
|
|
77
|
+
existingState.shouldPauseForClient = shouldPause;
|
|
78
|
+
if (!existingState.apiCallResults) {
|
|
79
|
+
existingState.apiCallResults = [];
|
|
80
|
+
}
|
|
81
|
+
if (!existingState.apiResultCache) {
|
|
82
|
+
existingState.apiResultCache = undefined;
|
|
83
|
+
}
|
|
84
|
+
console.log(`[INIT] Preserving existing state: replaySize=${existingState.replayResults?.size || 0}, counter=${existingState.callSequenceNumber}`);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const state = {
|
|
88
|
+
shouldPauseForClient: shouldPause,
|
|
89
|
+
replayResults: undefined,
|
|
90
|
+
callSequenceNumber: 0,
|
|
91
|
+
apiCallResults: [],
|
|
92
|
+
apiResultCache: undefined,
|
|
93
|
+
createdAt: Date.now(),
|
|
94
|
+
};
|
|
95
|
+
console.log(`[INIT] Creating new state: shouldPause=${shouldPause}`);
|
|
96
|
+
executionStates.set(executionId, state);
|
|
97
|
+
}
|
|
54
98
|
/**
|
|
55
99
|
* Runs a function within an execution context
|
|
56
100
|
* @param executionId - Unique ID for this execution
|
|
@@ -64,45 +108,77 @@ export function runInExecutionContext(executionId, fn) {
|
|
|
64
108
|
* @param pause - If true, throws PauseExecutionError instead of calling callback
|
|
65
109
|
*/
|
|
66
110
|
export function setPauseForClient(pause) {
|
|
67
|
-
|
|
111
|
+
const executionId = currentExecutionId || executionContext.getStore();
|
|
112
|
+
if (!executionId) {
|
|
113
|
+
throw new Error('No execution context set. Executor must call setCurrentExecutionId() before setPauseForClient().');
|
|
114
|
+
}
|
|
115
|
+
const state = executionStates.get(executionId);
|
|
116
|
+
if (!state) {
|
|
117
|
+
throw new Error('Execution state not initialized. Call initializeExecutionState() first.');
|
|
118
|
+
}
|
|
119
|
+
state.shouldPauseForClient = pause;
|
|
68
120
|
}
|
|
69
121
|
/**
|
|
70
122
|
* Checks if should pause for client
|
|
71
123
|
*/
|
|
72
124
|
export function shouldPauseForClient() {
|
|
73
|
-
|
|
125
|
+
const state = getCurrentState();
|
|
126
|
+
return state.shouldPauseForClient;
|
|
74
127
|
}
|
|
75
128
|
/**
|
|
76
129
|
* Sets up replay mode for resumption
|
|
77
130
|
* @param results - Map of sequence number to result for replaying callbacks
|
|
78
131
|
*/
|
|
79
132
|
export function setReplayMode(results) {
|
|
133
|
+
const executionId = currentExecutionId || executionContext.getStore();
|
|
134
|
+
console.log(`[REPLAY] setReplayMode called: executionId=${executionId}, replaySize=${results?.size || 0}, replayKeys=${results ? Array.from(results.keys()) : []}`);
|
|
80
135
|
const state = getCurrentState();
|
|
136
|
+
// Store replay results
|
|
137
|
+
const oldSize = state.replayResults?.size || 0;
|
|
81
138
|
state.replayResults = results;
|
|
139
|
+
// Always reset counter when setting replay mode
|
|
140
|
+
// - When entering replay mode with cached results: start from 0 to match first call
|
|
141
|
+
// - When clearing replay mode (results=undefined): reset to 0 for clean state
|
|
142
|
+
const oldCounter = state.callSequenceNumber;
|
|
82
143
|
state.callSequenceNumber = 0;
|
|
144
|
+
if (results && results.size > 0) {
|
|
145
|
+
console.log(`[REPLAY] Entering replay mode: ${oldCounter} -> 0 (have ${results.size} cached results)`);
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
console.log(`[REPLAY] Clearing replay mode: ${oldCounter} -> 0`);
|
|
149
|
+
}
|
|
150
|
+
console.log(`[REPLAY] setReplayMode completed: oldSize=${oldSize}, newSize=${state.replayResults?.size || 0}, callSequenceNumber=${state.callSequenceNumber}`);
|
|
83
151
|
}
|
|
84
152
|
/**
|
|
85
153
|
* Gets current call sequence number
|
|
86
154
|
*/
|
|
87
155
|
export function getCallSequenceNumber() {
|
|
88
|
-
|
|
156
|
+
const state = getCurrentState();
|
|
157
|
+
console.log(`[GET_SEQ] getCallSequenceNumber called: returning ${state.callSequenceNumber}, hasReplay=${!!state.replayResults}, replaySize=${state.replayResults?.size || 0}`);
|
|
158
|
+
return state.callSequenceNumber;
|
|
89
159
|
}
|
|
90
160
|
/**
|
|
91
161
|
* Increments and returns the next sequence number
|
|
92
162
|
*/
|
|
93
163
|
export function nextSequenceNumber() {
|
|
94
164
|
const state = getCurrentState();
|
|
95
|
-
|
|
165
|
+
const current = state.callSequenceNumber;
|
|
166
|
+
state.callSequenceNumber++;
|
|
167
|
+
console.log(`[SEQUENCE] nextSequenceNumber: returning ${current}, next will be ${state.callSequenceNumber}, isReplay=${state.replayResults !== undefined}, replaySize=${state.replayResults?.size || 0}`);
|
|
168
|
+
return current;
|
|
96
169
|
}
|
|
97
170
|
/**
|
|
98
171
|
* Check if we have a cached result for the current sequence
|
|
99
172
|
*/
|
|
100
173
|
export function getCachedResult(sequenceNumber) {
|
|
101
174
|
const state = getCurrentState();
|
|
175
|
+
console.log(`[CACHE] getCachedResult(${sequenceNumber}): hasReplayResults=${!!state.replayResults}, replayKeys=${state.replayResults ? Array.from(state.replayResults.keys()) : []}`);
|
|
102
176
|
if (state.replayResults && state.replayResults.has(sequenceNumber)) {
|
|
103
177
|
const result = state.replayResults.get(sequenceNumber);
|
|
178
|
+
console.log(`[CACHE] Found cached result for sequence ${sequenceNumber}:`, JSON.stringify(result));
|
|
104
179
|
return result;
|
|
105
180
|
}
|
|
181
|
+
console.log(`[CACHE] No cached result for sequence ${sequenceNumber}`);
|
|
106
182
|
return undefined;
|
|
107
183
|
}
|
|
108
184
|
/**
|
|
@@ -111,4 +187,110 @@ export function getCachedResult(sequenceNumber) {
|
|
|
111
187
|
export function isReplayMode() {
|
|
112
188
|
return getCurrentState().replayResults !== undefined;
|
|
113
189
|
}
|
|
190
|
+
/**
|
|
191
|
+
* Store an API call result during execution
|
|
192
|
+
* This is used to track server-side API calls so they can be cached on resume
|
|
193
|
+
*/
|
|
194
|
+
export function storeAPICallResult(record) {
|
|
195
|
+
const state = getCurrentState();
|
|
196
|
+
state.apiCallResults.push(record);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Get all API call results tracked during this execution
|
|
200
|
+
* Used when building callback history on pause
|
|
201
|
+
*/
|
|
202
|
+
export function getAPICallResults() {
|
|
203
|
+
const state = getCurrentState();
|
|
204
|
+
return state.apiCallResults;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Clear API call results (used when execution completes or fails)
|
|
208
|
+
*/
|
|
209
|
+
export function clearAPICallResults() {
|
|
210
|
+
const state = getCurrentState();
|
|
211
|
+
state.apiCallResults = [];
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Set up API result cache for resume (operation-based, not sequence-based)
|
|
215
|
+
* This allows API calls to find their cached results even if execution order changes
|
|
216
|
+
*/
|
|
217
|
+
export function setAPIResultCache(cache) {
|
|
218
|
+
const state = getCurrentState();
|
|
219
|
+
state.apiResultCache = cache;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Get API result from cache by operation name
|
|
223
|
+
*/
|
|
224
|
+
export function getAPIResultFromCache(operation) {
|
|
225
|
+
const state = getCurrentState();
|
|
226
|
+
return state.apiResultCache?.get(operation);
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Store API result in cache by operation name (for initial execution)
|
|
230
|
+
*/
|
|
231
|
+
export function storeAPIResultInCache(operation, result) {
|
|
232
|
+
const state = getCurrentState();
|
|
233
|
+
if (!state.apiResultCache) {
|
|
234
|
+
state.apiResultCache = new Map();
|
|
235
|
+
}
|
|
236
|
+
state.apiResultCache.set(operation, result);
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Cleanup a specific execution's state
|
|
240
|
+
* This should be called when an execution completes, fails, or is no longer needed
|
|
241
|
+
*/
|
|
242
|
+
export function cleanupExecutionState(executionId) {
|
|
243
|
+
executionStates.delete(executionId);
|
|
244
|
+
if (currentExecutionId === executionId) {
|
|
245
|
+
currentExecutionId = null;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Cleanup old execution states to prevent memory leaks
|
|
250
|
+
* Removes states older than the specified max age (default: 1 hour)
|
|
251
|
+
*/
|
|
252
|
+
export function cleanupOldExecutionStates(maxAgeMs = 3600000) {
|
|
253
|
+
const now = Date.now();
|
|
254
|
+
let cleaned = 0;
|
|
255
|
+
for (const [executionId, state] of executionStates.entries()) {
|
|
256
|
+
const age = now - state.createdAt;
|
|
257
|
+
if (age > maxAgeMs) {
|
|
258
|
+
executionStates.delete(executionId);
|
|
259
|
+
cleaned++;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
return cleaned;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Reset ALL execution state - for testing purposes only
|
|
266
|
+
* WARNING: This will clear all execution states, breaking any in-flight executions
|
|
267
|
+
*/
|
|
268
|
+
export function resetAllExecutionState() {
|
|
269
|
+
executionStates.clear();
|
|
270
|
+
currentExecutionId = null;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Get execution state statistics - for monitoring/debugging
|
|
274
|
+
*/
|
|
275
|
+
export function getExecutionStateStats() {
|
|
276
|
+
const now = Date.now();
|
|
277
|
+
const executionIds = Array.from(executionStates.keys());
|
|
278
|
+
let oldestAge = null;
|
|
279
|
+
let newestAge = null;
|
|
280
|
+
for (const state of executionStates.values()) {
|
|
281
|
+
const age = now - state.createdAt;
|
|
282
|
+
if (oldestAge === null || age > oldestAge) {
|
|
283
|
+
oldestAge = age;
|
|
284
|
+
}
|
|
285
|
+
if (newestAge === null || age < newestAge) {
|
|
286
|
+
newestAge = age;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
return {
|
|
290
|
+
totalStates: executionStates.size,
|
|
291
|
+
oldestStateAge: oldestAge,
|
|
292
|
+
newestStateAge: newestAge,
|
|
293
|
+
executionIds,
|
|
294
|
+
};
|
|
295
|
+
}
|
|
114
296
|
//# sourceMappingURL=replay.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replay.js","sourceRoot":"","sources":["../../../../../runtime/src/llm/replay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"replay.js","sourceRoot":"","sources":["../../../../../runtime/src/llm/replay.ts"],"names":[],"mappings":"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"}
|