@mondaydotcomorg/atp-compiler 0.19.22 → 0.19.26
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/dist/index.cjs +247 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +247 -13
- package/dist/index.js.map +1 -1
- package/dist/transformer/array-transformer-batch-reconstruct.d.ts +12 -0
- package/dist/transformer/array-transformer-batch-reconstruct.d.ts.map +1 -0
- package/dist/transformer/array-transformer-batch-reconstruct.js +117 -0
- package/dist/transformer/array-transformer-batch-reconstruct.js.map +1 -0
- package/dist/transformer/array-transformer-utils.d.ts +29 -1
- package/dist/transformer/array-transformer-utils.d.ts.map +1 -1
- package/dist/transformer/array-transformer-utils.js +159 -8
- package/dist/transformer/array-transformer-utils.js.map +1 -1
- package/dist/transformer/array-transformer.d.ts.map +1 -1
- package/dist/transformer/array-transformer.js +26 -1
- package/dist/transformer/array-transformer.js.map +1 -1
- package/dist/transformer/index.d.ts +1 -0
- package/dist/transformer/index.d.ts.map +1 -1
- package/dist/transformer/index.js +1 -0
- package/dist/transformer/index.js.map +1 -1
- package/package.json +5 -5
- package/src/transformer/array-transformer-batch-reconstruct.ts +179 -0
- package/src/transformer/array-transformer-utils.ts +187 -7
- package/src/transformer/array-transformer.ts +44 -1
- package/src/transformer/index.ts +1 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as t from '@babel/types';
|
|
2
|
+
import { BatchParallelDetector } from './batch-detector.js';
|
|
3
|
+
/**
|
|
4
|
+
* Transform array method to batch LLM calls while preserving callback logic.
|
|
5
|
+
* Supports multiple LLM calls per callback.
|
|
6
|
+
*
|
|
7
|
+
* This creates a multi-step transformation:
|
|
8
|
+
* 1. Batch all LLM calls in parallel (one batch per unique type:operation)
|
|
9
|
+
* 2. Reconstruct objects using the batched results
|
|
10
|
+
*/
|
|
11
|
+
export declare function transformToBatchWithReconstruction(path: any, node: t.CallExpression, methodName: string, callback: t.Function, batchDetector: BatchParallelDetector, onTransform: () => void): boolean;
|
|
12
|
+
//# sourceMappingURL=array-transformer-batch-reconstruct.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array-transformer-batch-reconstruct.d.ts","sourceRoot":"","sources":["../../src/transformer/array-transformer-batch-reconstruct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAIlC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAG5D;;;;;;;GAOG;AACH,wBAAgB,kCAAkC,CACjD,IAAI,EAAE,GAAG,EACT,IAAI,EAAE,CAAC,CAAC,cAAc,EACtB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ,EACpB,aAAa,EAAE,qBAAqB,EACpC,WAAW,EAAE,MAAM,IAAI,GACrB,OAAO,CA4JT"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import * as t from '@babel/types';
|
|
2
|
+
import _traverse from '@babel/traverse';
|
|
3
|
+
const traverse = typeof _traverse.default === 'function' ? _traverse.default : _traverse;
|
|
4
|
+
import { generateUniqueId } from '../runtime/context.js';
|
|
5
|
+
import { findAllLLMCallExpressions } from './array-transformer-utils.js';
|
|
6
|
+
/**
|
|
7
|
+
* Transform array method to batch LLM calls while preserving callback logic.
|
|
8
|
+
* Supports multiple LLM calls per callback.
|
|
9
|
+
*
|
|
10
|
+
* This creates a multi-step transformation:
|
|
11
|
+
* 1. Batch all LLM calls in parallel (one batch per unique type:operation)
|
|
12
|
+
* 2. Reconstruct objects using the batched results
|
|
13
|
+
*/
|
|
14
|
+
export function transformToBatchWithReconstruction(path, node, methodName, callback, batchDetector, onTransform) {
|
|
15
|
+
if (methodName !== 'map') {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
const paramName = callback.params[0];
|
|
19
|
+
if (!t.isIdentifier(paramName)) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
const param = paramName.name;
|
|
23
|
+
const array = node.callee.object;
|
|
24
|
+
// Find ALL LLM calls
|
|
25
|
+
const llmCalls = findAllLLMCallExpressions(callback.body, batchDetector);
|
|
26
|
+
if (llmCalls.length === 0) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
const methodId = generateUniqueId(`${methodName}_batch_reconstruct`);
|
|
30
|
+
const originalIndexParam = callback.params[1];
|
|
31
|
+
const indexVar = originalIndexParam && t.isIdentifier(originalIndexParam) ? originalIndexParam.name : '__idx';
|
|
32
|
+
// Create batch declarations - one per LLM call (in order of appearance)
|
|
33
|
+
// This ensures each call gets its own result array
|
|
34
|
+
const batchDeclarations = [];
|
|
35
|
+
const resultVarByCallIndex = new Map();
|
|
36
|
+
for (let i = 0; i < llmCalls.length; i++) {
|
|
37
|
+
const call = llmCalls[i];
|
|
38
|
+
const resultsVar = `__batch_results_${i}_${methodId.replace(/[^a-zA-Z0-9]/g, '_')}`;
|
|
39
|
+
resultVarByCallIndex.set(i, resultsVar);
|
|
40
|
+
const payloadMapper = t.arrowFunctionExpression([t.identifier(param)], t.objectExpression([
|
|
41
|
+
t.objectProperty(t.identifier('type'), t.stringLiteral(call.callInfo.type)),
|
|
42
|
+
t.objectProperty(t.identifier('operation'), t.stringLiteral(call.callInfo.operation)),
|
|
43
|
+
t.objectProperty(t.identifier('payload'), t.cloneNode(call.payloadNode, true)),
|
|
44
|
+
]));
|
|
45
|
+
const batchCall = t.awaitExpression(t.callExpression(t.memberExpression(t.identifier('__runtime'), t.identifier('batchParallel')), [
|
|
46
|
+
t.callExpression(t.memberExpression(t.cloneNode(array, true), t.identifier('map')), [payloadMapper]),
|
|
47
|
+
t.stringLiteral(`${methodId}_${i}`),
|
|
48
|
+
]));
|
|
49
|
+
batchDeclarations.push(t.variableDeclaration('const', [
|
|
50
|
+
t.variableDeclarator(t.identifier(resultsVar), batchCall),
|
|
51
|
+
]));
|
|
52
|
+
}
|
|
53
|
+
// Clone the callback body for reconstruction
|
|
54
|
+
const clonedBody = t.cloneNode(callback.body, true);
|
|
55
|
+
let traversableNode;
|
|
56
|
+
if (t.isBlockStatement(clonedBody)) {
|
|
57
|
+
traversableNode = t.functionDeclaration(t.identifier('__temp'), [], clonedBody);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
traversableNode = t.expressionStatement(clonedBody);
|
|
61
|
+
}
|
|
62
|
+
// Replace each await expression with the corresponding result access
|
|
63
|
+
// We match calls by comparing their structure to the original calls
|
|
64
|
+
let replacementCount = 0;
|
|
65
|
+
traverse(t.file(t.program([traversableNode])), {
|
|
66
|
+
AwaitExpression(awaitPath) {
|
|
67
|
+
const arg = awaitPath.node.argument;
|
|
68
|
+
if (!t.isCallExpression(arg))
|
|
69
|
+
return;
|
|
70
|
+
const info = batchDetector.extractCallInfo(arg);
|
|
71
|
+
if (!info)
|
|
72
|
+
return;
|
|
73
|
+
const key = `${info.type}:${info.operation}`;
|
|
74
|
+
// Find first unused call with matching key
|
|
75
|
+
let matchedIndex = -1;
|
|
76
|
+
for (let i = 0; i < llmCalls.length; i++) {
|
|
77
|
+
const original = llmCalls[i];
|
|
78
|
+
if (original.key === key && resultVarByCallIndex.has(i)) {
|
|
79
|
+
matchedIndex = i;
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (matchedIndex === -1)
|
|
84
|
+
return;
|
|
85
|
+
const resultsVar = resultVarByCallIndex.get(matchedIndex);
|
|
86
|
+
if (!resultsVar)
|
|
87
|
+
return;
|
|
88
|
+
// Remove from map so we don't reuse it
|
|
89
|
+
resultVarByCallIndex.delete(matchedIndex);
|
|
90
|
+
const resultAccess = t.memberExpression(t.identifier(resultsVar), t.identifier(indexVar), true);
|
|
91
|
+
awaitPath.replaceWith(resultAccess);
|
|
92
|
+
replacementCount++;
|
|
93
|
+
},
|
|
94
|
+
noScope: true,
|
|
95
|
+
});
|
|
96
|
+
if (replacementCount === 0) {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
let reconstructBody;
|
|
100
|
+
if (t.isBlockStatement(clonedBody)) {
|
|
101
|
+
reconstructBody = clonedBody;
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
reconstructBody = clonedBody;
|
|
105
|
+
}
|
|
106
|
+
const reconstructMapper = t.arrowFunctionExpression([t.identifier(param), t.identifier(indexVar)], reconstructBody);
|
|
107
|
+
reconstructMapper.async = false;
|
|
108
|
+
const reconstructCall = t.callExpression(t.memberExpression(t.cloneNode(array, true), t.identifier('map')), [reconstructMapper]);
|
|
109
|
+
// Build the IIFE with all batch declarations followed by reconstruction
|
|
110
|
+
const iife = t.callExpression(t.arrowFunctionExpression([], t.blockStatement([...batchDeclarations, t.returnStatement(reconstructCall)]), true // async
|
|
111
|
+
), []);
|
|
112
|
+
const awaitIife = t.awaitExpression(iife);
|
|
113
|
+
path.replaceWith(awaitIife);
|
|
114
|
+
onTransform();
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=array-transformer-batch-reconstruct.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array-transformer-batch-reconstruct.js","sourceRoot":"","sources":["../../src/transformer/array-transformer-batch-reconstruct.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,34 @@
|
|
|
1
1
|
import * as t from '@babel/types';
|
|
2
|
+
import type { BatchParallelDetector } from './batch-detector.js';
|
|
3
|
+
import type { BatchCallInfo } from '../types.js';
|
|
4
|
+
export interface LLMCallInfo {
|
|
5
|
+
callNode: t.CallExpression;
|
|
6
|
+
callInfo: BatchCallInfo;
|
|
7
|
+
payloadNode: t.Expression;
|
|
8
|
+
key: string;
|
|
9
|
+
}
|
|
2
10
|
/**
|
|
3
|
-
*
|
|
11
|
+
* Check if LLM call payloads depend on variables that are local to the callback.
|
|
12
|
+
* This includes:
|
|
13
|
+
* - Variables computed from other expressions (const x = item.name.toUpperCase())
|
|
14
|
+
* - Results from previous LLM calls (const title = await atp.llm.call(...))
|
|
15
|
+
* - Any other locally-defined variable
|
|
16
|
+
*
|
|
17
|
+
* When batch transforming, the payload mapper only has access to the array item parameter
|
|
18
|
+
* and outer scope variables - NOT local variables defined inside the callback.
|
|
19
|
+
*
|
|
20
|
+
* @param body - The callback body
|
|
21
|
+
* @param itemParamName - The name of the array item parameter (e.g., "item")
|
|
22
|
+
* @param batchDetector - The batch detector for extracting LLM call info
|
|
23
|
+
* @returns true if there are dependencies that prevent batch transformation
|
|
24
|
+
*/
|
|
25
|
+
export declare function hasLLMCallDependencies(body: t.Node, batchDetector: BatchParallelDetector, itemParamName?: string): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Find ALL LLM call expressions in AST node with batch info
|
|
28
|
+
*/
|
|
29
|
+
export declare function findAllLLMCallExpressions(body: t.Node, batchDetector: BatchParallelDetector): LLMCallInfo[];
|
|
30
|
+
/**
|
|
31
|
+
* Find first LLM call expression in AST node
|
|
4
32
|
*/
|
|
5
33
|
export declare function findLLMCallExpression(body: t.Node): t.CallExpression | null;
|
|
6
34
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-transformer-utils.d.ts","sourceRoot":"","sources":["../../src/transformer/array-transformer-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"array-transformer-utils.d.ts","sourceRoot":"","sources":["../../src/transformer/array-transformer-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAElC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,WAAW;IAC3B,QAAQ,EAAE,CAAC,CAAC,cAAc,CAAC;IAC3B,QAAQ,EAAE,aAAa,CAAC;IACxB,WAAW,EAAE,CAAC,CAAC,UAAU,CAAC;IAE1B,GAAG,EAAE,MAAM,CAAC;CACZ;AA2FD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CACrC,IAAI,EAAE,CAAC,CAAC,IAAI,EACZ,aAAa,EAAE,qBAAqB,EACpC,aAAa,CAAC,EAAE,MAAM,GACpB,OAAO,CA2BT;AAmCD;;GAEG;AACH,wBAAgB,yBAAyB,CACxC,IAAI,EAAE,CAAC,CAAC,IAAI,EACZ,aAAa,EAAE,qBAAqB,GAClC,WAAW,EAAE,CAmBf;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,cAAc,GAAG,IAAI,CAG3E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,cAAc,GAAG,MAAM,GAAG,IAAI,CASxE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAavE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE/D"}
|
|
@@ -1,20 +1,144 @@
|
|
|
1
1
|
import * as t from '@babel/types';
|
|
2
2
|
import { isArrayMethod } from './utils.js';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Collect all identifiers referenced in an expression
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
function collectReferencedIdentifiers(node) {
|
|
7
|
+
const identifiers = new Set();
|
|
8
|
+
const visit = (n) => {
|
|
9
|
+
if (t.isIdentifier(n)) {
|
|
10
|
+
identifiers.add(n.name);
|
|
11
|
+
}
|
|
12
|
+
// Continue traversing
|
|
13
|
+
Object.keys(n).forEach((key) => {
|
|
14
|
+
// Skip 'type' and other metadata fields
|
|
15
|
+
if (key === 'type' || key === 'loc' || key === 'start' || key === 'end')
|
|
16
|
+
return;
|
|
17
|
+
const value = n[key];
|
|
18
|
+
if (Array.isArray(value)) {
|
|
19
|
+
value.forEach((item) => {
|
|
20
|
+
if (item && typeof item === 'object' && item.type) {
|
|
21
|
+
visit(item);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
else if (value && typeof value === 'object' && value.type) {
|
|
26
|
+
visit(value);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
visit(node);
|
|
31
|
+
return identifiers;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Collect all variable names declared inside a callback body.
|
|
35
|
+
* This includes: const/let/var declarations, function parameters, etc.
|
|
36
|
+
*/
|
|
37
|
+
function collectLocalVariables(body) {
|
|
38
|
+
const locals = new Set();
|
|
39
|
+
const visit = (node) => {
|
|
40
|
+
// Variable declarations: const x = ..., let y = ..., var z = ...
|
|
41
|
+
if (t.isVariableDeclaration(node)) {
|
|
42
|
+
for (const decl of node.declarations) {
|
|
43
|
+
if (t.isIdentifier(decl.id)) {
|
|
44
|
+
locals.add(decl.id.name);
|
|
45
|
+
}
|
|
46
|
+
else if (t.isObjectPattern(decl.id)) {
|
|
47
|
+
// Destructuring: const { a, b } = ...
|
|
48
|
+
for (const prop of decl.id.properties) {
|
|
49
|
+
if (t.isObjectProperty(prop) && t.isIdentifier(prop.value)) {
|
|
50
|
+
locals.add(prop.value.name);
|
|
51
|
+
}
|
|
52
|
+
else if (t.isRestElement(prop) && t.isIdentifier(prop.argument)) {
|
|
53
|
+
locals.add(prop.argument.name);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else if (t.isArrayPattern(decl.id)) {
|
|
58
|
+
// Destructuring: const [a, b] = ...
|
|
59
|
+
for (const elem of decl.id.elements) {
|
|
60
|
+
if (t.isIdentifier(elem)) {
|
|
61
|
+
locals.add(elem.name);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// Continue traversing (but don't descend into nested functions - their locals are their own scope)
|
|
68
|
+
if (t.isFunction(node)) {
|
|
69
|
+
return; // Don't traverse into nested functions
|
|
70
|
+
}
|
|
71
|
+
Object.keys(node).forEach((key) => {
|
|
72
|
+
if (key === 'type' || key === 'loc' || key === 'start' || key === 'end')
|
|
73
|
+
return;
|
|
74
|
+
const value = node[key];
|
|
75
|
+
if (Array.isArray(value)) {
|
|
76
|
+
value.forEach((item) => {
|
|
77
|
+
if (item && typeof item === 'object' && item.type) {
|
|
78
|
+
visit(item);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
else if (value && typeof value === 'object' && value.type) {
|
|
83
|
+
visit(value);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
visit(body);
|
|
88
|
+
return locals;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Check if LLM call payloads depend on variables that are local to the callback.
|
|
92
|
+
* This includes:
|
|
93
|
+
* - Variables computed from other expressions (const x = item.name.toUpperCase())
|
|
94
|
+
* - Results from previous LLM calls (const title = await atp.llm.call(...))
|
|
95
|
+
* - Any other locally-defined variable
|
|
96
|
+
*
|
|
97
|
+
* When batch transforming, the payload mapper only has access to the array item parameter
|
|
98
|
+
* and outer scope variables - NOT local variables defined inside the callback.
|
|
99
|
+
*
|
|
100
|
+
* @param body - The callback body
|
|
101
|
+
* @param itemParamName - The name of the array item parameter (e.g., "item")
|
|
102
|
+
* @param batchDetector - The batch detector for extracting LLM call info
|
|
103
|
+
* @returns true if there are dependencies that prevent batch transformation
|
|
104
|
+
*/
|
|
105
|
+
export function hasLLMCallDependencies(body, batchDetector, itemParamName) {
|
|
106
|
+
// Find all locally-defined variables in the callback body
|
|
107
|
+
const localVariables = collectLocalVariables(body);
|
|
108
|
+
// If no local variables, no dependencies possible
|
|
109
|
+
if (localVariables.size === 0) {
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
// Now check if any LLM call payload references these local variables
|
|
113
|
+
const allCalls = findAllAwaitedMemberCalls(body);
|
|
114
|
+
for (const call of allCalls) {
|
|
115
|
+
const payloadNode = batchDetector.extractPayloadNode(call);
|
|
116
|
+
if (payloadNode) {
|
|
117
|
+
const referencedIds = collectReferencedIdentifiers(payloadNode);
|
|
118
|
+
// Check if any referenced identifier is a local variable
|
|
119
|
+
// (excluding the item parameter which is passed to the payload mapper)
|
|
120
|
+
for (const id of referencedIds) {
|
|
121
|
+
if (localVariables.has(id) && id !== itemParamName) {
|
|
122
|
+
return true; // Found a dependency on a local variable
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Find all awaited member expression calls in AST node
|
|
131
|
+
*/
|
|
132
|
+
function findAllAwaitedMemberCalls(body) {
|
|
133
|
+
const calls = [];
|
|
8
134
|
const visit = (node) => {
|
|
9
|
-
if (found)
|
|
10
|
-
return;
|
|
11
135
|
if (t.isAwaitExpression(node) && t.isCallExpression(node.argument)) {
|
|
12
136
|
const call = node.argument;
|
|
13
137
|
if (t.isMemberExpression(call.callee)) {
|
|
14
|
-
|
|
15
|
-
return;
|
|
138
|
+
calls.push(call);
|
|
16
139
|
}
|
|
17
140
|
}
|
|
141
|
+
// Continue traversing
|
|
18
142
|
Object.keys(node).forEach((key) => {
|
|
19
143
|
const value = node[key];
|
|
20
144
|
if (Array.isArray(value)) {
|
|
@@ -30,7 +154,34 @@ export function findLLMCallExpression(body) {
|
|
|
30
154
|
});
|
|
31
155
|
};
|
|
32
156
|
visit(body);
|
|
33
|
-
return
|
|
157
|
+
return calls;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Find ALL LLM call expressions in AST node with batch info
|
|
161
|
+
*/
|
|
162
|
+
export function findAllLLMCallExpressions(body, batchDetector) {
|
|
163
|
+
const allCalls = findAllAwaitedMemberCalls(body);
|
|
164
|
+
const llmCalls = [];
|
|
165
|
+
for (const call of allCalls) {
|
|
166
|
+
const callInfo = batchDetector.extractCallInfo(call);
|
|
167
|
+
const payloadNode = batchDetector.extractPayloadNode(call);
|
|
168
|
+
if (callInfo && payloadNode) {
|
|
169
|
+
llmCalls.push({
|
|
170
|
+
callNode: call,
|
|
171
|
+
callInfo,
|
|
172
|
+
payloadNode,
|
|
173
|
+
key: `${callInfo.type}:${callInfo.operation}`,
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
return llmCalls;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Find first LLM call expression in AST node
|
|
181
|
+
*/
|
|
182
|
+
export function findLLMCallExpression(body) {
|
|
183
|
+
const calls = findAllAwaitedMemberCalls(body);
|
|
184
|
+
return calls[0] ?? null;
|
|
34
185
|
}
|
|
35
186
|
/**
|
|
36
187
|
* Get array method name from call expression
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-transformer-utils.js","sourceRoot":"","sources":["../../src/transformer/array-transformer-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"array-transformer-utils.js","sourceRoot":"","sources":["../../src/transformer/array-transformer-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-transformer.d.ts","sourceRoot":"","sources":["../../src/transformer/array-transformer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"array-transformer.d.ts","sourceRoot":"","sources":["../../src/transformer/array-transformer.ts"],"names":[],"mappings":"AAaA,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,kBAAkB,CAAS;gBAEvB,kBAAkB,GAAE,MAAW;IAM3C,oBAAoB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO;IA6ExC,OAAO,CAAC,uBAAuB;IAS/B,iBAAiB,IAAI,MAAM;IAI3B,mBAAmB,IAAI,IAAI;CAG3B"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as t from '@babel/types';
|
|
2
2
|
import { BatchOptimizer } from './batch-optimizer.js';
|
|
3
3
|
import { BatchParallelDetector } from './batch-detector.js';
|
|
4
|
-
import { getArrayMethodName, canUseBatchParallel } from './array-transformer-utils.js';
|
|
4
|
+
import { getArrayMethodName, canUseBatchParallel, findLLMCallExpression, hasLLMCallDependencies, } from './array-transformer-utils.js';
|
|
5
5
|
import { transformToBatchParallel } from './array-transformer-batch.js';
|
|
6
6
|
import { transformToSequential } from './array-transformer-sequential.js';
|
|
7
|
+
import { transformToBatchWithReconstruction } from './array-transformer-batch-reconstruct.js';
|
|
7
8
|
export class ArrayTransformer {
|
|
8
9
|
transformCount = 0;
|
|
9
10
|
batchOptimizer;
|
|
@@ -25,6 +26,30 @@ export class ArrayTransformer {
|
|
|
25
26
|
return false;
|
|
26
27
|
}
|
|
27
28
|
const batchResult = this.batchOptimizer.canBatchArrayMethod(callback);
|
|
29
|
+
if (!batchResult.canBatch && methodName === 'map') {
|
|
30
|
+
const reason = batchResult.reason || '';
|
|
31
|
+
// Try batch-with-reconstruction for:
|
|
32
|
+
// 1. Object/array returns (would lose structure with simple batch)
|
|
33
|
+
// 2. Multiple pausable calls (can batch each call type separately)
|
|
34
|
+
const canTryBatchReconstruct = reason.includes('object expression') ||
|
|
35
|
+
reason.includes('array expression') ||
|
|
36
|
+
reason.includes('Multiple pausable calls');
|
|
37
|
+
if (canTryBatchReconstruct) {
|
|
38
|
+
const llmCall = findLLMCallExpression(callback.body);
|
|
39
|
+
// Get the item parameter name (e.g., "item" in items.map(async (item) => ...))
|
|
40
|
+
const itemParam = callback.params[0];
|
|
41
|
+
const itemParamName = t.isIdentifier(itemParam) ? itemParam.name : undefined;
|
|
42
|
+
// Check for dependencies on local variables (e.g., computed values, previous LLM results)
|
|
43
|
+
// If dependencies exist, we can't batch because payload mapper only has access to item + outer scope
|
|
44
|
+
const hasDependencies = hasLLMCallDependencies(callback.body, this.batchDetector, itemParamName);
|
|
45
|
+
if (llmCall && !hasDependencies) {
|
|
46
|
+
const success = transformToBatchWithReconstruction(path, node, methodName, callback, this.batchDetector, () => this.transformCount++);
|
|
47
|
+
if (success) {
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
28
53
|
if (batchResult.canBatch && canUseBatchParallel(methodName)) {
|
|
29
54
|
const array = node.callee.object;
|
|
30
55
|
const decision = this.batchOptimizer.makeSmartBatchDecision(methodName, batchResult, array, this.batchSizeThreshold);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-transformer.js","sourceRoot":"","sources":["../../src/transformer/array-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,
|
|
1
|
+
{"version":3,"file":"array-transformer.js","sourceRoot":"","sources":["../../src/transformer/array-transformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,7 @@ export * from './batch-detector.js';
|
|
|
31
31
|
export * from './batch-optimizer.js';
|
|
32
32
|
export * from './loop-transformer.js';
|
|
33
33
|
export * from './array-transformer.js';
|
|
34
|
+
export * from './array-transformer-batch-reconstruct.js';
|
|
34
35
|
export * from './promise-transformer.js';
|
|
35
36
|
export * from './utils.js';
|
|
36
37
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transformer/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAqB,MAAM,aAAa,CAAC;AAItF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAEhE;;;GAGG;AACH,qBAAa,WAAY,YAAW,SAAS;IAC5C,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,kBAAkB,CAAqB;gBAEnC,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM;IAQhD,MAAM,CAAC,IAAI,EAAE,MAAM;IAInB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAgFxC,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,uBAAuB;IAS/B;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;;OAGG;IACH,aAAa;CAGb;AAED,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transformer/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAqB,MAAM,aAAa,CAAC;AAItF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAEhE;;;GAGG;AACH,qBAAa,WAAY,YAAW,SAAS;IAC5C,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,kBAAkB,CAAqB;gBAEnC,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM;IAQhD,MAAM,CAAC,IAAI,EAAE,MAAM;IAInB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAgFxC,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,uBAAuB;IAS/B;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;;OAGG;IACH,aAAa;CAGb;AAED,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0CAA0C,CAAC;AACzD,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC"}
|
|
@@ -144,6 +144,7 @@ export * from './batch-detector.js';
|
|
|
144
144
|
export * from './batch-optimizer.js';
|
|
145
145
|
export * from './loop-transformer.js';
|
|
146
146
|
export * from './array-transformer.js';
|
|
147
|
+
export * from './array-transformer-batch-reconstruct.js';
|
|
147
148
|
export * from './promise-transformer.js';
|
|
148
149
|
export * from './utils.js';
|
|
149
150
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transformer/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transformer/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mondaydotcomorg/atp-compiler",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.26",
|
|
4
4
|
"description": "Production-ready compiler for transforming async iteration patterns into resumable operations with checkpoint-based state management",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.cjs",
|
|
@@ -46,14 +46,14 @@
|
|
|
46
46
|
"@babel/parser": "^7.26.0",
|
|
47
47
|
"@babel/traverse": "^7.26.0",
|
|
48
48
|
"@babel/types": "^7.26.0",
|
|
49
|
-
"@mondaydotcomorg/atp-protocol": "0.19.
|
|
50
|
-
"@mondaydotcomorg/atp-runtime": "0.19.
|
|
49
|
+
"@mondaydotcomorg/atp-protocol": "0.19.22",
|
|
50
|
+
"@mondaydotcomorg/atp-runtime": "0.19.21",
|
|
51
51
|
"@types/babel__generator": "^7.6.0",
|
|
52
52
|
"@types/babel__traverse": "^7.20.0"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
|
-
"@mondaydotcomorg/atp-protocol": "0.19.
|
|
56
|
-
"@mondaydotcomorg/atp-runtime": "0.19.
|
|
55
|
+
"@mondaydotcomorg/atp-protocol": "0.19.22",
|
|
56
|
+
"@mondaydotcomorg/atp-runtime": "0.19.21"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@stryker-mutator/core": "^8.0.0",
|