@mondaydotcomorg/atp-compiler 0.19.23 → 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.
@@ -2,9 +2,10 @@ import * as t from '@babel/types';
2
2
  import { BatchParallelDetector } from './batch-detector.js';
3
3
  /**
4
4
  * Transform array method to batch LLM calls while preserving callback logic.
5
+ * Supports multiple LLM calls per callback.
5
6
  *
6
- * This creates a two-step transformation:
7
- * 1. Batch all LLM calls in parallel
7
+ * This creates a multi-step transformation:
8
+ * 1. Batch all LLM calls in parallel (one batch per unique type:operation)
8
9
  * 2. Reconstruct objects using the batched results
9
10
  */
10
11
  export declare function transformToBatchWithReconstruction(path: any, node: t.CallExpression, methodName: string, callback: t.Function, batchDetector: BatchParallelDetector, onTransform: () => void): boolean;
@@ -1 +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;;;;;;GAMG;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,CAoIT"}
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"}
@@ -2,12 +2,13 @@ import * as t from '@babel/types';
2
2
  import _traverse from '@babel/traverse';
3
3
  const traverse = typeof _traverse.default === 'function' ? _traverse.default : _traverse;
4
4
  import { generateUniqueId } from '../runtime/context.js';
5
- import { findLLMCallExpression } from './array-transformer-utils.js';
5
+ import { findAllLLMCallExpressions } from './array-transformer-utils.js';
6
6
  /**
7
7
  * Transform array method to batch LLM calls while preserving callback logic.
8
+ * Supports multiple LLM calls per callback.
8
9
  *
9
- * This creates a two-step transformation:
10
- * 1. Batch all LLM calls in parallel
10
+ * This creates a multi-step transformation:
11
+ * 1. Batch all LLM calls in parallel (one batch per unique type:operation)
11
12
  * 2. Reconstruct objects using the batched results
12
13
  */
13
14
  export function transformToBatchWithReconstruction(path, node, methodName, callback, batchDetector, onTransform) {
@@ -20,28 +21,37 @@ export function transformToBatchWithReconstruction(path, node, methodName, callb
20
21
  }
21
22
  const param = paramName.name;
22
23
  const array = node.callee.object;
23
- const llmCall = findLLMCallExpression(callback.body);
24
- if (!llmCall) {
25
- return false;
26
- }
27
- const callInfo = batchDetector.extractCallInfo(llmCall);
28
- if (!callInfo) {
29
- return false;
30
- }
31
- const payloadNode = batchDetector.extractPayloadNode(llmCall);
32
- if (!payloadNode) {
24
+ // Find ALL LLM calls
25
+ const llmCalls = findAllLLMCallExpressions(callback.body, batchDetector);
26
+ if (llmCalls.length === 0) {
33
27
  return false;
34
28
  }
35
29
  const methodId = generateUniqueId(`${methodName}_batch_reconstruct`);
36
- const resultsVar = `__batch_results_${methodId.replace(/[^a-zA-Z0-9]/g, '_')}`;
37
- const indexVar = '__idx';
38
- const payloadMapper = t.arrowFunctionExpression([t.identifier(param)], t.objectExpression([
39
- t.objectProperty(t.identifier('type'), t.stringLiteral(callInfo.type)),
40
- t.objectProperty(t.identifier('operation'), t.stringLiteral(callInfo.operation)),
41
- t.objectProperty(t.identifier('payload'), t.cloneNode(payloadNode, true)),
42
- ]));
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
43
54
  const clonedBody = t.cloneNode(callback.body, true);
44
- const resultAccess = t.memberExpression(t.identifier(resultsVar), t.identifier(indexVar), true);
45
55
  let traversableNode;
46
56
  if (t.isBlockStatement(clonedBody)) {
47
57
  traversableNode = t.functionDeclaration(t.identifier('__temp'), [], clonedBody);
@@ -49,23 +59,41 @@ export function transformToBatchWithReconstruction(path, node, methodName, callb
49
59
  else {
50
60
  traversableNode = t.expressionStatement(clonedBody);
51
61
  }
52
- let replaced = false;
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;
53
65
  traverse(t.file(t.program([traversableNode])), {
54
66
  AwaitExpression(awaitPath) {
55
- if (replaced)
56
- return;
57
67
  const arg = awaitPath.node.argument;
58
- if (t.isCallExpression(arg)) {
59
- const info = batchDetector.extractCallInfo(arg);
60
- if (info && info.type === callInfo.type && info.operation === callInfo.operation) {
61
- awaitPath.replaceWith(resultAccess);
62
- replaced = true;
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;
63
81
  }
64
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++;
65
93
  },
66
94
  noScope: true,
67
95
  });
68
- if (!replaced) {
96
+ if (replacementCount === 0) {
69
97
  return false;
70
98
  }
71
99
  let reconstructBody;
@@ -77,18 +105,10 @@ export function transformToBatchWithReconstruction(path, node, methodName, callb
77
105
  }
78
106
  const reconstructMapper = t.arrowFunctionExpression([t.identifier(param), t.identifier(indexVar)], reconstructBody);
79
107
  reconstructMapper.async = false;
80
- const batchCall = t.awaitExpression(t.callExpression(t.memberExpression(t.identifier('__runtime'), t.identifier('batchParallel')), [
81
- t.callExpression(t.memberExpression(t.cloneNode(array, true), t.identifier('map')), [payloadMapper]),
82
- t.stringLiteral(methodId),
83
- ]));
84
- const resultsDeclaration = t.variableDeclaration('const', [
85
- t.variableDeclarator(t.identifier(resultsVar), batchCall),
86
- ]);
87
108
  const reconstructCall = t.callExpression(t.memberExpression(t.cloneNode(array, true), t.identifier('map')), [reconstructMapper]);
88
- const iife = t.callExpression(t.arrowFunctionExpression([], t.blockStatement([
89
- resultsDeclaration,
90
- t.returnStatement(reconstructCall),
91
- ]), true), []);
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
+ ), []);
92
112
  const awaitIife = t.awaitExpression(iife);
93
113
  path.replaceWith(awaitIife);
94
114
  onTransform();
@@ -1 +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
+ {"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
- * Find LLM call expression in AST node
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;AAGlC;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,cAAc,GAAG,IAAI,CA8B3E;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
+ {"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
- * Find LLM call expression in AST node
4
+ * Collect all identifiers referenced in an expression
5
5
  */
6
- export function findLLMCallExpression(body) {
7
- let found = null;
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
- found = call;
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 found;
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;AAE3C;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IACjD,IAAI,KAAK,GAA4B,IAAI,CAAC;IAE1C,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE;QAC9B,IAAI,KAAK;YAAE,OAAO;QAElB,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC3B,IAAI,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvC,KAAK,GAAG,IAAI,CAAC;gBACb,OAAO;YACR,CAAC;QACF,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjC,MAAM,KAAK,GAAI,IAAY,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACtB,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;wBACnD,KAAK,CAAC,IAAI,CAAC,CAAC;oBACb,CAAC;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;iBAAM,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC7D,KAAK,CAAC,KAAK,CAAC,CAAC;YACd,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,KAAK,CAAC,IAAI,CAAC,CAAC;IACZ,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAsB;IACxD,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAChG,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;QACnC,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;YACjC,OAAO,MAAM,CAAC;QACf,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmB;IACvD,MAAM,OAAO,GAA2B;QACvC,GAAG,EAAE,cAAc;QACnB,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,iBAAiB;QACzB,MAAM,EAAE,iBAAiB;QACzB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,gBAAgB;QACvB,OAAO,EAAE,kBAAkB;KAC3B,CAAC;IAEF,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAkB;IACrD,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACnF,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":"AAYA,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;IA+DxC,OAAO,CAAC,uBAAuB;IAS/B,iBAAiB,IAAI,MAAM;IAI3B,mBAAmB,IAAI,IAAI;CAG3B"}
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,7 +1,7 @@
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, findLLMCallExpression, } 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
7
  import { transformToBatchWithReconstruction } from './array-transformer-batch-reconstruct.js';
@@ -28,10 +28,21 @@ export class ArrayTransformer {
28
28
  const batchResult = this.batchOptimizer.canBatchArrayMethod(callback);
29
29
  if (!batchResult.canBatch && methodName === 'map') {
30
30
  const reason = batchResult.reason || '';
31
- const hasObjectOrArrayReturn = reason.includes('object expression') || reason.includes('array expression');
32
- if (hasObjectOrArrayReturn) {
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) {
33
38
  const llmCall = findLLMCallExpression(callback.body);
34
- if (llmCall) {
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) {
35
46
  const success = transformToBatchWithReconstruction(path, node, methodName, callback, this.batchDetector, () => this.transformCount++);
36
47
  if (success) {
37
48
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"array-transformer.js","sourceRoot":"","sources":["../../src/transformer/array-transformer.ts"],"names":[],"mappings":"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"}
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,EACN,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,kCAAkC,EAAE,MAAM,0CAA0C,CAAC;AAE9F,MAAM,OAAO,gBAAgB;IACpB,cAAc,GAAG,CAAC,CAAC;IACnB,cAAc,CAAiB;IAC/B,aAAa,CAAwB;IACrC,kBAAkB,CAAS;IAEnC,YAAY,qBAA6B,EAAE;QAC1C,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACjD,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC9C,CAAC;IAED,oBAAoB,CAAC,IAAS;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAwB,CAAC;QAE3C,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC;QACd,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC;YACxC,qCAAqC;YACrC,mEAAmE;YACnE,mEAAmE;YACnE,MAAM,sBAAsB,GAC3B,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBACpC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC;gBACnC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;YAE5C,IAAI,sBAAsB,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACrD,+EAA+E;gBAC/E,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACrC,MAAM,aAAa,GAAG,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC7E,0FAA0F;gBAC1F,qGAAqG;gBACrG,MAAM,eAAe,GAAG,sBAAsB,CAC7C,QAAQ,CAAC,IAAI,EACb,IAAI,CAAC,aAAa,EAClB,aAAa,CACb,CAAC;gBACF,IAAI,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;oBACjC,MAAM,OAAO,GAAG,kCAAkC,CACjD,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,IAAI,CAAC,aAAa,EAClB,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAC3B,CAAC;oBACF,IAAI,OAAO,EAAE,CAAC;wBACb,OAAO,IAAI,CAAC;oBACb,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAED,IAAI,WAAW,CAAC,QAAQ,IAAI,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7D,MAAM,KAAK,GAAI,IAAI,CAAC,MAA6B,CAAC,MAAM,CAAC;YACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAC1D,UAAU,EACV,WAAW,EACX,KAAK,EACL,IAAI,CAAC,kBAAkB,CACvB,CAAC;YAEF,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAC1B,OAAO,wBAAwB,CAC9B,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,IAAI,CAAC,aAAa,EAClB,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,EAC3B,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CACpE,CAAC;YACH,CAAC;QACF,CAAC;QAED,OAAO,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IACvE,CAAC;IAEO,uBAAuB,CAC9B,IAAS,EACT,IAAsB,EACtB,UAAkB,EAClB,QAAoB;QAEpB,OAAO,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,iBAAiB;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC5B,CAAC;IAED,mBAAmB;QAClB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;IACzB,CAAC;CACD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mondaydotcomorg/atp-compiler",
3
- "version": "0.19.23",
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.20",
50
- "@mondaydotcomorg/atp-runtime": "0.19.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.20",
56
- "@mondaydotcomorg/atp-runtime": "0.19.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",