@wundr.io/langgraph-orchestrator 1.0.3

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.
Files changed (57) hide show
  1. package/README.md +842 -0
  2. package/dist/checkpointing.d.ts +265 -0
  3. package/dist/checkpointing.d.ts.map +1 -0
  4. package/dist/checkpointing.js +577 -0
  5. package/dist/checkpointing.js.map +1 -0
  6. package/dist/edges/conditional-edge.d.ts +230 -0
  7. package/dist/edges/conditional-edge.d.ts.map +1 -0
  8. package/dist/edges/conditional-edge.js +439 -0
  9. package/dist/edges/conditional-edge.js.map +1 -0
  10. package/dist/edges/loop-edge.d.ts +290 -0
  11. package/dist/edges/loop-edge.d.ts.map +1 -0
  12. package/dist/edges/loop-edge.js +503 -0
  13. package/dist/edges/loop-edge.js.map +1 -0
  14. package/dist/index.d.ts +125 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +269 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/nodes/decision-node.d.ts +276 -0
  19. package/dist/nodes/decision-node.d.ts.map +1 -0
  20. package/dist/nodes/decision-node.js +403 -0
  21. package/dist/nodes/decision-node.js.map +1 -0
  22. package/dist/nodes/human-node.d.ts +272 -0
  23. package/dist/nodes/human-node.d.ts.map +1 -0
  24. package/dist/nodes/human-node.js +394 -0
  25. package/dist/nodes/human-node.js.map +1 -0
  26. package/dist/nodes/llm-node.d.ts +173 -0
  27. package/dist/nodes/llm-node.d.ts.map +1 -0
  28. package/dist/nodes/llm-node.js +325 -0
  29. package/dist/nodes/llm-node.js.map +1 -0
  30. package/dist/nodes/tool-node.d.ts +151 -0
  31. package/dist/nodes/tool-node.d.ts.map +1 -0
  32. package/dist/nodes/tool-node.js +373 -0
  33. package/dist/nodes/tool-node.js.map +1 -0
  34. package/dist/prebuilt-graphs/plan-execute-refine.d.ts +149 -0
  35. package/dist/prebuilt-graphs/plan-execute-refine.d.ts.map +1 -0
  36. package/dist/prebuilt-graphs/plan-execute-refine.js +600 -0
  37. package/dist/prebuilt-graphs/plan-execute-refine.js.map +1 -0
  38. package/dist/state-graph.d.ts +158 -0
  39. package/dist/state-graph.d.ts.map +1 -0
  40. package/dist/state-graph.js +756 -0
  41. package/dist/state-graph.js.map +1 -0
  42. package/dist/types.d.ts +762 -0
  43. package/dist/types.d.ts.map +1 -0
  44. package/dist/types.js +73 -0
  45. package/dist/types.js.map +1 -0
  46. package/package.json +57 -0
  47. package/src/checkpointing.ts +702 -0
  48. package/src/edges/conditional-edge.ts +518 -0
  49. package/src/edges/loop-edge.ts +623 -0
  50. package/src/index.ts +416 -0
  51. package/src/nodes/decision-node.ts +538 -0
  52. package/src/nodes/human-node.ts +572 -0
  53. package/src/nodes/llm-node.ts +448 -0
  54. package/src/nodes/tool-node.ts +525 -0
  55. package/src/prebuilt-graphs/plan-execute-refine.ts +769 -0
  56. package/src/state-graph.ts +990 -0
  57. package/src/types.ts +729 -0
@@ -0,0 +1,600 @@
1
+ "use strict";
2
+ /**
3
+ * Plan-Execute-Refine Graph - Ready-to-use workflow pattern
4
+ * @module @wundr.io/langgraph-orchestrator
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.PlanSchema = void 0;
8
+ exports.createPlanExecuteRefineGraph = createPlanExecuteRefineGraph;
9
+ exports.createSimpleTaskGraph = createSimpleTaskGraph;
10
+ const uuid_1 = require("uuid");
11
+ const zod_1 = require("zod");
12
+ const decision_node_1 = require("../nodes/decision-node");
13
+ const human_node_1 = require("../nodes/human-node");
14
+ const llm_node_1 = require("../nodes/llm-node");
15
+ const tool_node_1 = require("../nodes/tool-node");
16
+ const state_graph_1 = require("../state-graph");
17
+ /**
18
+ * Schema for plan validation
19
+ */
20
+ exports.PlanSchema = zod_1.z.array(zod_1.z.object({
21
+ id: zod_1.z.string(),
22
+ description: zod_1.z.string(),
23
+ tool: zod_1.z.string().optional(),
24
+ toolArgs: zod_1.z.record(zod_1.z.unknown()).optional(),
25
+ dependsOn: zod_1.z.array(zod_1.z.string()).optional(),
26
+ expectedOutput: zod_1.z.string().optional(),
27
+ }));
28
+ /**
29
+ * Create a plan-execute-refine workflow graph
30
+ *
31
+ * @example
32
+ * ```typescript
33
+ * const graph = createPlanExecuteRefineGraph({
34
+ * llmProvider: myLLMProvider,
35
+ * tools: [searchTool, calculatorTool],
36
+ * maxRefinements: 3,
37
+ * requireApproval: true,
38
+ * humanHandler: myHumanHandler
39
+ * });
40
+ *
41
+ * const result = await graph.execute({
42
+ * initialState: {
43
+ * data: { task: 'Research and summarize the latest AI developments' }
44
+ * }
45
+ * });
46
+ * ```
47
+ *
48
+ * @param config - Graph configuration
49
+ * @returns Configured StateGraph
50
+ */
51
+ function createPlanExecuteRefineGraph(config) {
52
+ const graph = new state_graph_1.StateGraph('plan-execute-refine');
53
+ // Set up services
54
+ const toolRegistry = (0, tool_node_1.createToolRegistry)();
55
+ config.tools?.forEach(tool => toolRegistry.register(tool));
56
+ graph.setServices({
57
+ llmProvider: config.llmProvider,
58
+ toolRegistry,
59
+ });
60
+ // =========================================================================
61
+ // Node: Planner - Creates the initial plan
62
+ // =========================================================================
63
+ const plannerNode = (0, llm_node_1.createLLMNode)({
64
+ id: 'planner',
65
+ name: 'Planner',
66
+ config: {
67
+ model: config.model,
68
+ systemPrompt: config.plannerPrompt ?? DEFAULT_PLANNER_PROMPT,
69
+ promptTemplate: state => {
70
+ const task = state.data.task ?? 'No task specified';
71
+ const tools = config.tools?.map(t => `- ${t.name}: ${t.description}`).join('\n') ??
72
+ 'No tools available';
73
+ return `Task: ${task}\n\nAvailable Tools:\n${tools}\n\nCreate a detailed plan to accomplish this task.`;
74
+ },
75
+ postProcess: (response, state) => {
76
+ // Parse plan from response
77
+ const plan = extractPlanFromResponse(response.message.content);
78
+ return {
79
+ data: {
80
+ ...state.data,
81
+ plan,
82
+ currentStepIndex: 0,
83
+ stepResults: [],
84
+ executionStatus: 'planning',
85
+ },
86
+ };
87
+ },
88
+ },
89
+ });
90
+ // =========================================================================
91
+ // Node: Plan Validator - Validates the generated plan
92
+ // =========================================================================
93
+ const validatorNode = {
94
+ id: 'validator',
95
+ name: 'Plan Validator',
96
+ type: 'transform',
97
+ config: {},
98
+ execute: async (state, context) => {
99
+ const plan = state.data.plan;
100
+ if (!plan || plan.length === 0) {
101
+ context.services.logger.warn('Empty or invalid plan generated');
102
+ return {
103
+ state: {
104
+ ...state,
105
+ data: {
106
+ ...state.data,
107
+ executionStatus: 'failed',
108
+ },
109
+ error: {
110
+ code: 'INVALID_PLAN',
111
+ message: 'Failed to generate a valid plan',
112
+ recoverable: true,
113
+ },
114
+ },
115
+ next: 'refiner',
116
+ };
117
+ }
118
+ // Validate plan structure
119
+ try {
120
+ exports.PlanSchema.parse(plan);
121
+ }
122
+ catch (error) {
123
+ context.services.logger.error('Plan validation failed', { error });
124
+ return {
125
+ state: {
126
+ ...state,
127
+ data: {
128
+ ...state.data,
129
+ executionStatus: 'failed',
130
+ },
131
+ },
132
+ next: 'refiner',
133
+ };
134
+ }
135
+ // Validate tool references
136
+ for (const step of plan) {
137
+ if (step.tool && !toolRegistry.get(step.tool)) {
138
+ context.services.logger.warn(`Unknown tool referenced: ${step.tool}`);
139
+ }
140
+ }
141
+ context.services.logger.info(`Plan validated with ${plan.length} steps`);
142
+ return {
143
+ state: {
144
+ ...state,
145
+ data: {
146
+ ...state.data,
147
+ executionStatus: 'executing',
148
+ },
149
+ },
150
+ next: config.requireApproval ? 'approval' : 'executor',
151
+ };
152
+ },
153
+ };
154
+ // =========================================================================
155
+ // Node: Approval - Human approval before execution (optional)
156
+ // =========================================================================
157
+ let approvalNode;
158
+ if (config.humanHandler) {
159
+ approvalNode = (0, human_node_1.createHumanNode)({
160
+ id: 'approval',
161
+ name: 'Plan Approval',
162
+ config: {
163
+ inputHandler: config.humanHandler,
164
+ prompt: state => {
165
+ const plan = state.data['plan'] ?? [];
166
+ const planText = plan
167
+ .map((s, i) => `${i + 1}. ${s.description}`)
168
+ .join('\n');
169
+ return `Please review the following plan:\n\n${planText}\n\nDo you approve this plan?`;
170
+ },
171
+ choices: [
172
+ {
173
+ value: 'approve',
174
+ label: 'Approve',
175
+ description: 'Proceed with execution',
176
+ },
177
+ { value: 'reject', label: 'Reject', description: 'Request new plan' },
178
+ {
179
+ value: 'modify',
180
+ label: 'Modify',
181
+ description: 'Provide feedback for refinement',
182
+ },
183
+ ],
184
+ processResponse: (response, _state) => {
185
+ if (response.value === 'reject') {
186
+ return { planRejected: true };
187
+ }
188
+ if (response.value === 'modify') {
189
+ return { planFeedback: response.metadata?.feedback };
190
+ }
191
+ return { planApproved: true };
192
+ },
193
+ },
194
+ });
195
+ }
196
+ // =========================================================================
197
+ // Node: Approval Router - Routes based on approval decision
198
+ // =========================================================================
199
+ const approvalRouterNode = (0, decision_node_1.createDecisionNode)({
200
+ id: 'approval-router',
201
+ name: 'Approval Router',
202
+ config: {
203
+ branches: [
204
+ {
205
+ name: 'approved',
206
+ target: 'executor',
207
+ condition: {
208
+ type: 'equals',
209
+ field: 'data.planApproved',
210
+ value: true,
211
+ },
212
+ },
213
+ {
214
+ name: 'rejected',
215
+ target: 'planner',
216
+ condition: {
217
+ type: 'equals',
218
+ field: 'data.planRejected',
219
+ value: true,
220
+ },
221
+ },
222
+ ],
223
+ defaultBranch: 'refiner',
224
+ },
225
+ });
226
+ // =========================================================================
227
+ // Node: Executor - Executes plan steps
228
+ // =========================================================================
229
+ const executorNode = {
230
+ id: 'executor',
231
+ name: 'Step Executor',
232
+ type: 'transform',
233
+ config: {},
234
+ execute: async (state, context) => {
235
+ const plan = state.data.plan ?? [];
236
+ const currentIndex = state.data.currentStepIndex ?? 0;
237
+ const stepResults = state.data.stepResults ?? [];
238
+ if (currentIndex >= plan.length) {
239
+ context.services.logger.info('All steps executed');
240
+ return {
241
+ state: {
242
+ ...state,
243
+ data: {
244
+ ...state.data,
245
+ executionStatus: 'refining',
246
+ },
247
+ },
248
+ next: 'evaluator',
249
+ };
250
+ }
251
+ const step = plan[currentIndex];
252
+ if (!step) {
253
+ return {
254
+ state: {
255
+ ...state,
256
+ data: {
257
+ ...state.data,
258
+ currentStepIndex: currentIndex + 1,
259
+ },
260
+ },
261
+ next: 'executor', // Continue to next step
262
+ };
263
+ }
264
+ context.services.logger.info(`Executing step ${currentIndex + 1}: ${step.description}`);
265
+ let result;
266
+ try {
267
+ // Check dependencies
268
+ if (step.dependsOn?.length) {
269
+ for (const depId of step.dependsOn) {
270
+ const depResult = stepResults.find(r => r.stepId === depId);
271
+ if (!depResult?.success) {
272
+ throw new Error(`Dependency ${depId} not satisfied`);
273
+ }
274
+ }
275
+ }
276
+ // Execute tool if specified
277
+ let stepOutput;
278
+ if (step.tool) {
279
+ const tool = toolRegistry.get(step.tool);
280
+ if (!tool) {
281
+ throw new Error(`Tool ${step.tool} not found`);
282
+ }
283
+ stepOutput = await tool.execute(step.toolArgs ?? {});
284
+ }
285
+ else {
286
+ // For non-tool steps, use LLM
287
+ const llmResponse = await config.llmProvider.generate({
288
+ messages: [
289
+ ...state.messages,
290
+ {
291
+ id: (0, uuid_1.v4)(),
292
+ role: 'user',
293
+ content: `Execute step: ${step.description}`,
294
+ timestamp: new Date(),
295
+ },
296
+ ],
297
+ model: config.model,
298
+ });
299
+ stepOutput = llmResponse.message.content;
300
+ }
301
+ result = {
302
+ stepId: step.id,
303
+ success: true,
304
+ result: stepOutput,
305
+ timestamp: new Date(),
306
+ };
307
+ }
308
+ catch (error) {
309
+ const err = error instanceof Error ? error : new Error(String(error));
310
+ context.services.logger.error(`Step ${step.id} failed`, {
311
+ error: err.message,
312
+ });
313
+ result = {
314
+ stepId: step.id,
315
+ success: false,
316
+ error: err.message,
317
+ timestamp: new Date(),
318
+ };
319
+ }
320
+ return {
321
+ state: {
322
+ ...state,
323
+ data: {
324
+ ...state.data,
325
+ currentStepIndex: currentIndex + 1,
326
+ stepResults: [...stepResults, result],
327
+ },
328
+ },
329
+ next: 'executor', // Continue to next step
330
+ };
331
+ },
332
+ };
333
+ // =========================================================================
334
+ // Node: Evaluator - Evaluates execution results
335
+ // =========================================================================
336
+ const evaluatorNode = (0, llm_node_1.createLLMNode)({
337
+ id: 'evaluator',
338
+ name: 'Result Evaluator',
339
+ config: {
340
+ model: config.model,
341
+ systemPrompt: 'You are an expert at evaluating task execution results.',
342
+ promptTemplate: state => {
343
+ const task = state.data['task'] ?? 'Unknown task';
344
+ const results = state.data['stepResults'] ?? [];
345
+ const resultsText = results
346
+ .map((r) => `Step ${r.stepId}: ${r.success ? 'Success' : 'Failed'}\n${r.success ? JSON.stringify(r.result) : r.error}`)
347
+ .join('\n\n');
348
+ return `Original Task: ${task}\n\nExecution Results:\n${resultsText}\n\nEvaluate if the task was completed successfully. If not, identify what needs to be refined.`;
349
+ },
350
+ postProcess: (response, state) => {
351
+ const content = response.message.content.toLowerCase();
352
+ const isComplete = content.includes('complete') || content.includes('success');
353
+ return {
354
+ data: {
355
+ ...state.data,
356
+ executionStatus: isComplete
357
+ ? 'complete'
358
+ : 'refining',
359
+ evaluationResult: response.message.content,
360
+ },
361
+ };
362
+ },
363
+ router: (response, _state) => {
364
+ const content = response.message.content.toLowerCase();
365
+ if (content.includes('complete') || content.includes('success')) {
366
+ return 'complete';
367
+ }
368
+ return 'refiner';
369
+ },
370
+ },
371
+ });
372
+ // =========================================================================
373
+ // Node: Refiner - Refines the plan based on execution results
374
+ // =========================================================================
375
+ const refinerNode = (0, llm_node_1.createLLMNode)({
376
+ id: 'refiner',
377
+ name: 'Plan Refiner',
378
+ config: {
379
+ model: config.model,
380
+ systemPrompt: config.refinerPrompt ?? DEFAULT_REFINER_PROMPT,
381
+ promptTemplate: state => {
382
+ const task = state.data.task ?? 'Unknown task';
383
+ const plan = state.data['plan'] ?? [];
384
+ const results = state.data['stepResults'] ?? [];
385
+ const evaluation = state.data['evaluationResult'] ?? '';
386
+ const feedback = state.data['planFeedback'] ?? '';
387
+ return `Original Task: ${task}
388
+
389
+ Previous Plan:
390
+ ${plan.map((s, i) => `${i + 1}. ${s.description}`).join('\n')}
391
+
392
+ Execution Results:
393
+ ${results.map((r) => `${r.stepId}: ${r.success ? 'Success' : 'Failed - ' + r.error}`).join('\n')}
394
+
395
+ Evaluation: ${evaluation}
396
+ ${feedback ? `Human Feedback: ${feedback}` : ''}
397
+
398
+ Please refine the plan to address any issues and ensure task completion.`;
399
+ },
400
+ postProcess: (response, state) => {
401
+ const refinedPlan = extractPlanFromResponse(response.message.content);
402
+ const refinementCount = (state.data['refinementCount'] ?? 0) + 1;
403
+ return {
404
+ data: {
405
+ ...state.data,
406
+ plan: refinedPlan,
407
+ currentStepIndex: 0,
408
+ stepResults: [],
409
+ refinementCount,
410
+ executionStatus: 'planning',
411
+ },
412
+ };
413
+ },
414
+ },
415
+ });
416
+ // =========================================================================
417
+ // Node: Refinement Check - Checks if we've exceeded max refinements
418
+ // =========================================================================
419
+ const refinementCheckNode = (0, decision_node_1.createIfElseNode)({
420
+ id: 'refinement-check',
421
+ name: 'Refinement Check',
422
+ condition: {
423
+ type: 'custom',
424
+ evaluate: async (state) => {
425
+ const count = state.data.refinementCount ?? 0;
426
+ const max = state.data.maxRefinements ?? config.maxRefinements ?? 3;
427
+ return count < max;
428
+ },
429
+ },
430
+ ifTrue: 'validator',
431
+ ifFalse: 'failed',
432
+ });
433
+ // =========================================================================
434
+ // Node: Complete - Final success node
435
+ // =========================================================================
436
+ const completeNode = {
437
+ id: 'complete',
438
+ name: 'Complete',
439
+ type: 'end',
440
+ config: {},
441
+ execute: async (state, context) => {
442
+ context.services.logger.info('Workflow completed successfully');
443
+ // Compile final result from step results
444
+ const finalResult = state.data.stepResults?.map(r => r.result);
445
+ return {
446
+ state: {
447
+ ...state,
448
+ data: {
449
+ ...state.data,
450
+ executionStatus: 'complete',
451
+ finalResult,
452
+ },
453
+ },
454
+ terminate: true,
455
+ };
456
+ },
457
+ };
458
+ // =========================================================================
459
+ // Node: Failed - Final failure node
460
+ // =========================================================================
461
+ const failedNode = {
462
+ id: 'failed',
463
+ name: 'Failed',
464
+ type: 'end',
465
+ config: {},
466
+ execute: async (state, context) => {
467
+ context.services.logger.error('Workflow failed after max refinements');
468
+ return {
469
+ state: {
470
+ ...state,
471
+ data: {
472
+ ...state.data,
473
+ executionStatus: 'failed',
474
+ },
475
+ error: {
476
+ code: 'MAX_REFINEMENTS',
477
+ message: `Failed to complete task after ${state.data.refinementCount} refinement attempts`,
478
+ recoverable: false,
479
+ },
480
+ },
481
+ terminate: true,
482
+ };
483
+ },
484
+ };
485
+ // =========================================================================
486
+ // Build the graph
487
+ // =========================================================================
488
+ graph
489
+ .addNode('planner', plannerNode)
490
+ .addNode('validator', validatorNode)
491
+ .addNode('executor', executorNode)
492
+ .addNode('evaluator', evaluatorNode)
493
+ .addNode('refiner', refinerNode)
494
+ .addNode('refinement-check', refinementCheckNode)
495
+ .addNode('complete', completeNode)
496
+ .addNode('failed', failedNode);
497
+ if (approvalNode) {
498
+ graph.addNode('approval', approvalNode);
499
+ graph.addNode('approval-router', approvalRouterNode);
500
+ }
501
+ // Add edges
502
+ graph.addEdge('planner', 'validator').addEdge('refiner', 'refinement-check');
503
+ if (config.requireApproval && approvalNode) {
504
+ graph
505
+ .addEdge('validator', 'approval')
506
+ .addEdge('approval', 'approval-router');
507
+ }
508
+ // Set entry point
509
+ graph.setEntryPoint('planner');
510
+ return graph;
511
+ }
512
+ /**
513
+ * Extract plan from LLM response
514
+ */
515
+ function extractPlanFromResponse(content) {
516
+ const steps = [];
517
+ // Try to parse JSON if present
518
+ const jsonMatch = content.match(/\[[\s\S]*\]/);
519
+ if (jsonMatch) {
520
+ try {
521
+ const parsed = JSON.parse(jsonMatch[0]);
522
+ if (Array.isArray(parsed)) {
523
+ return parsed.map((item, index) => ({
524
+ id: item.id ?? `step-${index + 1}`,
525
+ description: item.description ?? item.step ?? String(item),
526
+ tool: item.tool,
527
+ toolArgs: item.toolArgs ?? item.args,
528
+ dependsOn: item.dependsOn ?? item.dependencies,
529
+ expectedOutput: item.expectedOutput ?? item.expected,
530
+ }));
531
+ }
532
+ }
533
+ catch {
534
+ // Fall through to text parsing
535
+ }
536
+ }
537
+ // Parse numbered list format
538
+ const lines = content.split('\n');
539
+ let stepIndex = 0;
540
+ for (const line of lines) {
541
+ const match = line.match(/^\d+\.\s*(.+)$/);
542
+ if (match && match[1]) {
543
+ stepIndex++;
544
+ steps.push({
545
+ id: `step-${stepIndex}`,
546
+ description: match[1].trim(),
547
+ });
548
+ }
549
+ }
550
+ return steps;
551
+ }
552
+ /**
553
+ * Default planner system prompt
554
+ */
555
+ const DEFAULT_PLANNER_PROMPT = `You are an expert planner. Given a task, create a detailed step-by-step plan to accomplish it.
556
+
557
+ Your plan should:
558
+ 1. Break down the task into clear, actionable steps
559
+ 2. Identify which tools to use for each step (if applicable)
560
+ 3. Consider dependencies between steps
561
+ 4. Be specific about expected outputs
562
+
563
+ Output your plan as a JSON array of steps, each with:
564
+ - id: unique identifier
565
+ - description: what this step does
566
+ - tool: (optional) tool name to use
567
+ - toolArgs: (optional) arguments for the tool
568
+ - dependsOn: (optional) array of step IDs this depends on
569
+ - expectedOutput: (optional) description of expected result`;
570
+ /**
571
+ * Default refiner system prompt
572
+ */
573
+ const DEFAULT_REFINER_PROMPT = `You are an expert at analyzing execution results and refining plans.
574
+
575
+ Based on the execution results and any feedback, create an improved plan that:
576
+ 1. Addresses any failed steps
577
+ 2. Incorporates lessons learned
578
+ 3. Optimizes the approach based on what worked
579
+ 4. Includes any additional steps needed for success
580
+
581
+ Output your refined plan in the same JSON format as the original.`;
582
+ /**
583
+ * Create a simple task executor graph (simplified version)
584
+ *
585
+ * @example
586
+ * ```typescript
587
+ * const graph = createSimpleTaskGraph({
588
+ * llmProvider: myProvider,
589
+ * tools: [searchTool]
590
+ * });
591
+ * ```
592
+ */
593
+ function createSimpleTaskGraph(config) {
594
+ return createPlanExecuteRefineGraph({
595
+ ...config,
596
+ requireApproval: false,
597
+ maxRefinements: config.maxRefinements ?? 2,
598
+ });
599
+ }
600
+ //# sourceMappingURL=plan-execute-refine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-execute-refine.js","sourceRoot":"","sources":["../../src/prebuilt-graphs/plan-execute-refine.ts"],"names":[],"mappings":"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"}