@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.
@@ -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
- * 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":"AAOA,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;IAwCxC,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,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,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,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;QAEtE,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"}
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.22",
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",