diff --git a/apps/docs/package.json b/apps/docs/package.json
index bdf9e28d1554481e60f14fe0dbbb40f647d035c5..0f888034e9bf49fcb1dc7815bb2235034af716df 100644
--- a/apps/docs/package.json
+++ b/apps/docs/package.json
@@ -32,7 +32,7 @@
     "@docusaurus/theme-classic": "^3.2.1",
     "@docusaurus/types": "^3.2.1",
     "@tsconfig/docusaurus": "^2.0.3",
-    "@types/node": "^18.19.31",
+    "@types/node": "^20.12.7",
     "docusaurus-plugin-typedoc": "^0.22.0",
     "typedoc": "^0.25.13",
     "typedoc-plugin-markdown": "^3.17.1",
diff --git a/examples/package.json b/examples/package.json
index e0e3e907b7adfc4a1bf615eebf938e0687d09659..f192d96647a755beb898b4646158b9ae0fbaed55 100644
--- a/examples/package.json
+++ b/examples/package.json
@@ -17,7 +17,7 @@
     "pathe": "^1.1.2"
   },
   "devDependencies": {
-    "@types/node": "^18.19.31",
+    "@types/node": "^20.12.7",
     "ts-node": "^10.9.2",
     "tsx": "^4.7.2",
     "typescript": "^5.4.5"
diff --git a/examples/readers/package.json b/examples/readers/package.json
index 9dc6daff694871ff4470ef6925efd40f03739ad1..fd5e7aee79f583cfee5bf6ed06c7366a9c796f7a 100644
--- a/examples/readers/package.json
+++ b/examples/readers/package.json
@@ -15,7 +15,7 @@
     "llamaindex": "latest"
   },
   "devDependencies": {
-    "@types/node": "^20.11.14",
+    "@types/node": "^20.12.7",
     "ts-node": "^10.9.2",
     "typescript": "^5.4.3"
   }
diff --git a/packages/core/e2e/fixtures/llm/open_ai.ts b/packages/core/e2e/fixtures/llm/open_ai.ts
index 24dfaee2faf64bdcd01389be2d25c55c583ec13c..bef6a4b40528f545b72376404aa90a3d30ea4745 100644
--- a/packages/core/e2e/fixtures/llm/open_ai.ts
+++ b/packages/core/e2e/fixtures/llm/open_ai.ts
@@ -56,8 +56,16 @@ export class OpenAI implements LLM {
         if (params.stream) {
           return {
             [Symbol.asyncIterator]: async function* () {
-              while (llmCompleteMockStorage.llmEventStream.at(-1)?.id === id) {
-                yield llmCompleteMockStorage.llmEventStream.shift()!["chunk"];
+              while (true) {
+                const idx = llmCompleteMockStorage.llmEventStream.findIndex(
+                  (e) => e.id === id,
+                );
+                if (idx === -1) {
+                  break;
+                }
+                const chunk = llmCompleteMockStorage.llmEventStream[idx].chunk;
+                llmCompleteMockStorage.llmEventStream.splice(idx, 1);
+                yield chunk;
               }
             },
           };
diff --git a/packages/core/e2e/node/openai.e2e.ts b/packages/core/e2e/node/openai.e2e.ts
index 452d27be6e1c4d07f1f06bc4ad5496b5864cb72d..2b4aa051539e7fae8e63f2e30518e60e99da4a9a 100644
--- a/packages/core/e2e/node/openai.e2e.ts
+++ b/packages/core/e2e/node/openai.e2e.ts
@@ -22,6 +22,14 @@ beforeEach(async () => {
   llm = Settings.llm;
 });
 
+function sumNumbers({ a, b }: { a: number; b: number }) {
+  return `${a + b}`;
+}
+
+function divideNumbers({ a, b }: { a: number; b: number }) {
+  return `${a / b}`;
+}
+
 await test("llm", async (t) => {
   await mockLLMEvent(t, "llm");
   await t.test("llm.chat", async () => {
@@ -158,9 +166,6 @@ await test("agent", async (t) => {
   });
 
   await t.test("sum numbers", async () => {
-    function sumNumbers({ a, b }: { a: number; b: number }): string {
-      return `${a + b}`;
-    }
     const sumFunctionTool = new FunctionTool(sumNumbers, {
       name: "sumNumbers",
       description: "Use this function to sum two numbers",
@@ -192,6 +197,70 @@ await test("agent", async (t) => {
   });
 });
 
+await test("agent stream", async (t) => {
+  await mockLLMEvent(t, "agent_stream");
+  await t.test("sum numbers stream", async () => {
+    const sumJSON = {
+      type: "object",
+      properties: {
+        a: {
+          type: "number",
+          description: "The first number",
+        },
+        b: {
+          type: "number",
+          description: "The second number",
+        },
+      },
+      required: ["a", "b"],
+    } as const;
+
+    const divideJSON = {
+      type: "object",
+      properties: {
+        a: {
+          type: "number",
+          description: "The dividend",
+        },
+        b: {
+          type: "number",
+          description: "The divisor",
+        },
+      },
+      required: ["a", "b"],
+    } as const;
+
+    const functionTool = FunctionTool.from(sumNumbers, {
+      name: "sumNumbers",
+      description: "Use this function to sum two numbers",
+      parameters: sumJSON,
+    });
+
+    const functionTool2 = FunctionTool.from(divideNumbers, {
+      name: "divideNumbers",
+      description: "Use this function to divide two numbers",
+      parameters: divideJSON,
+    });
+
+    const agent = new OpenAIAgent({
+      tools: [functionTool, functionTool2],
+    });
+
+    const { response } = await agent.chat({
+      message: "Divide 16 by 2 then add 20",
+      stream: true,
+    });
+
+    let message = "";
+
+    for await (const chunk of response) {
+      message += chunk.response;
+    }
+
+    ok(message.includes("28"));
+  });
+});
+
 await test("queryEngine", async (t) => {
   await mockLLMEvent(t, "queryEngine_subquestion");
   await t.test("subquestion", async () => {
diff --git a/packages/core/e2e/node/snapshot/agent.snap b/packages/core/e2e/node/snapshot/agent.snap
index 7ef3898f043090025ab04be9f4f79a3b893b4dc1..c283affff0b45185be6d21894ce442fb712e3568 100644
--- a/packages/core/e2e/node/snapshot/agent.snap
+++ b/packages/core/e2e/node/snapshot/agent.snap
@@ -1,7 +1,7 @@
 {
   "llmEventStart": [
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_0",
       "messages": [
         {
           "content": "What is the weather in San Francisco?",
@@ -10,7 +10,7 @@
       ]
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_1",
       "messages": [
         {
           "content": "What is the weather in San Francisco?",
@@ -43,7 +43,7 @@
       ]
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_2",
       "messages": [
         {
           "content": "My name is Alex Yang. What is my unique id?",
@@ -52,7 +52,7 @@
       ]
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_3",
       "messages": [
         {
           "content": "My name is Alex Yang. What is my unique id?",
@@ -85,7 +85,7 @@
       ]
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_4",
       "messages": [
         {
           "content": "how much is 1 + 1?",
@@ -94,7 +94,7 @@
       ]
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_5",
       "messages": [
         {
           "content": "how much is 1 + 1?",
@@ -129,7 +129,7 @@
   ],
   "llmEventEnd": [
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_0",
       "response": {
         "raw": {
           "id": "HIDDEN",
@@ -183,7 +183,7 @@
       }
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_1",
       "response": {
         "raw": {
           "id": "HIDDEN",
@@ -216,7 +216,7 @@
       }
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_2",
       "response": {
         "raw": {
           "id": "HIDDEN",
@@ -270,7 +270,7 @@
       }
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_3",
       "response": {
         "raw": {
           "id": "HIDDEN",
@@ -303,7 +303,7 @@
       }
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_4",
       "response": {
         "raw": {
           "id": "HIDDEN",
@@ -357,7 +357,7 @@
       }
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_5",
       "response": {
         "raw": {
           "id": "HIDDEN",
@@ -369,7 +369,7 @@
               "index": 0,
               "message": {
                 "role": "assistant",
-                "content": "1 + 1 is equal to 2."
+                "content": "The sum of 1 + 1 is 2."
               },
               "logprobs": null,
               "finish_reason": "stop"
@@ -377,13 +377,13 @@
           ],
           "usage": {
             "prompt_tokens": 97,
-            "completion_tokens": 11,
-            "total_tokens": 108
+            "completion_tokens": 13,
+            "total_tokens": 110
           },
           "system_fingerprint": "HIDDEN"
         },
         "message": {
-          "content": "1 + 1 is equal to 2.",
+          "content": "The sum of 1 + 1 is 2.",
           "role": "assistant",
           "options": {}
         }
diff --git a/packages/core/e2e/node/snapshot/agent_stream.snap b/packages/core/e2e/node/snapshot/agent_stream.snap
new file mode 100644
index 0000000000000000000000000000000000000000..ecd85f162825e35b498f3abdb0718f5ea27ab3c1
--- /dev/null
+++ b/packages/core/e2e/node/snapshot/agent_stream.snap
@@ -0,0 +1,2351 @@
+{
+  "llmEventStart": [
+    {
+      "id": "PRESERVE_0",
+      "messages": [
+        {
+          "content": "Divide 16 by 2 then add 20",
+          "role": "user"
+        }
+      ]
+    },
+    {
+      "id": "PRESERVE_1",
+      "messages": [
+        {
+          "content": "Divide 16 by 2 then add 20",
+          "role": "user"
+        },
+        {
+          "content": "",
+          "role": "assistant",
+          "options": {
+            "toolCalls": [
+              {
+                "function": {
+                  "name": "divideNumbers",
+                  "arguments": "{\"a\": 16, \"b\": 2}"
+                },
+                "id": "HIDDEN",
+                "type": "function"
+              },
+              {
+                "function": {
+                  "name": "sumNumbers",
+                  "arguments": "{\"a\": 8, \"b\": 20}"
+                },
+                "id": "HIDDEN",
+                "type": "function"
+              }
+            ]
+          }
+        },
+        {
+          "content": "8",
+          "role": "tool",
+          "options": {
+            "name": "divideNumbers",
+            "tool_call_id": "HIDDEN"
+          }
+        },
+        {
+          "content": "28",
+          "role": "tool",
+          "options": {
+            "name": "sumNumbers",
+            "tool_call_id": "HIDDEN"
+          }
+        }
+      ]
+    }
+  ],
+  "llmEventEnd": [
+    {
+      "id": "PRESERVE_0",
+      "response": {
+        "raw": [
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "tool_calls": [
+                      {
+                        "index": 0,
+                        "id": "HIDDEN",
+                        "type": "function",
+                        "function": {
+                          "name": "divideNumbers",
+                          "arguments": ""
+                        }
+                      }
+                    ]
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {
+              "toolCalls": [
+                {
+                  "function": {
+                    "name": "divideNumbers",
+                    "arguments": "{\"a\": 16, \"b\": 2}"
+                  },
+                  "id": "HIDDEN",
+                  "type": "function"
+                },
+                {
+                  "function": {
+                    "name": "sumNumbers",
+                    "arguments": "{\"a\": 8, \"b\": 20}"
+                  },
+                  "id": "HIDDEN",
+                  "type": "function"
+                }
+              ]
+            },
+            "delta": ""
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "tool_calls": [
+                      {
+                        "index": 0,
+                        "function": {
+                          "arguments": "{\"a\""
+                        }
+                      }
+                    ]
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {
+              "toolCalls": [
+                {
+                  "function": {
+                    "name": "divideNumbers",
+                    "arguments": "{\"a\": 16, \"b\": 2}"
+                  },
+                  "id": "HIDDEN",
+                  "type": "function"
+                },
+                {
+                  "function": {
+                    "name": "sumNumbers",
+                    "arguments": "{\"a\": 8, \"b\": 20}"
+                  },
+                  "id": "HIDDEN",
+                  "type": "function"
+                }
+              ]
+            },
+            "delta": ""
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "tool_calls": [
+                      {
+                        "index": 0,
+                        "function": {
+                          "arguments": ": 16,"
+                        }
+                      }
+                    ]
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {
+              "toolCalls": [
+                {
+                  "function": {
+                    "name": "divideNumbers",
+                    "arguments": "{\"a\": 16, \"b\": 2}"
+                  },
+                  "id": "HIDDEN",
+                  "type": "function"
+                },
+                {
+                  "function": {
+                    "name": "sumNumbers",
+                    "arguments": "{\"a\": 8, \"b\": 20}"
+                  },
+                  "id": "HIDDEN",
+                  "type": "function"
+                }
+              ]
+            },
+            "delta": ""
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "tool_calls": [
+                      {
+                        "index": 0,
+                        "function": {
+                          "arguments": " \"b\": "
+                        }
+                      }
+                    ]
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {
+              "toolCalls": [
+                {
+                  "function": {
+                    "name": "divideNumbers",
+                    "arguments": "{\"a\": 16, \"b\": 2}"
+                  },
+                  "id": "HIDDEN",
+                  "type": "function"
+                },
+                {
+                  "function": {
+                    "name": "sumNumbers",
+                    "arguments": "{\"a\": 8, \"b\": 20}"
+                  },
+                  "id": "HIDDEN",
+                  "type": "function"
+                }
+              ]
+            },
+            "delta": ""
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "tool_calls": [
+                      {
+                        "index": 0,
+                        "function": {
+                          "arguments": "2}"
+                        }
+                      }
+                    ]
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {
+              "toolCalls": [
+                {
+                  "function": {
+                    "name": "divideNumbers",
+                    "arguments": "{\"a\": 16, \"b\": 2}"
+                  },
+                  "id": "HIDDEN",
+                  "type": "function"
+                },
+                {
+                  "function": {
+                    "name": "sumNumbers",
+                    "arguments": "{\"a\": 8, \"b\": 20}"
+                  },
+                  "id": "HIDDEN",
+                  "type": "function"
+                }
+              ]
+            },
+            "delta": ""
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "tool_calls": [
+                      {
+                        "index": 1,
+                        "id": "HIDDEN",
+                        "type": "function",
+                        "function": {
+                          "name": "sumNumbers",
+                          "arguments": ""
+                        }
+                      }
+                    ]
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {
+              "toolCalls": [
+                {
+                  "function": {
+                    "name": "divideNumbers",
+                    "arguments": "{\"a\": 16, \"b\": 2}"
+                  },
+                  "id": "HIDDEN",
+                  "type": "function"
+                },
+                {
+                  "function": {
+                    "name": "sumNumbers",
+                    "arguments": "{\"a\": 8, \"b\": 20}"
+                  },
+                  "id": "HIDDEN",
+                  "type": "function"
+                }
+              ]
+            },
+            "delta": ""
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "tool_calls": [
+                      {
+                        "index": 1,
+                        "function": {
+                          "arguments": "{\"a\""
+                        }
+                      }
+                    ]
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {
+              "toolCalls": [
+                {
+                  "function": {
+                    "name": "divideNumbers",
+                    "arguments": "{\"a\": 16, \"b\": 2}"
+                  },
+                  "id": "HIDDEN",
+                  "type": "function"
+                },
+                {
+                  "function": {
+                    "name": "sumNumbers",
+                    "arguments": "{\"a\": 8, \"b\": 20}"
+                  },
+                  "id": "HIDDEN",
+                  "type": "function"
+                }
+              ]
+            },
+            "delta": ""
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "tool_calls": [
+                      {
+                        "index": 1,
+                        "function": {
+                          "arguments": ": 8, "
+                        }
+                      }
+                    ]
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {
+              "toolCalls": [
+                {
+                  "function": {
+                    "name": "divideNumbers",
+                    "arguments": "{\"a\": 16, \"b\": 2}"
+                  },
+                  "id": "HIDDEN",
+                  "type": "function"
+                },
+                {
+                  "function": {
+                    "name": "sumNumbers",
+                    "arguments": "{\"a\": 8, \"b\": 20}"
+                  },
+                  "id": "HIDDEN",
+                  "type": "function"
+                }
+              ]
+            },
+            "delta": ""
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "tool_calls": [
+                      {
+                        "index": 1,
+                        "function": {
+                          "arguments": "\"b\": 2"
+                        }
+                      }
+                    ]
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {
+              "toolCalls": [
+                {
+                  "function": {
+                    "name": "divideNumbers",
+                    "arguments": "{\"a\": 16, \"b\": 2}"
+                  },
+                  "id": "HIDDEN",
+                  "type": "function"
+                },
+                {
+                  "function": {
+                    "name": "sumNumbers",
+                    "arguments": "{\"a\": 8, \"b\": 20}"
+                  },
+                  "id": "HIDDEN",
+                  "type": "function"
+                }
+              ]
+            },
+            "delta": ""
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "tool_calls": [
+                      {
+                        "index": 1,
+                        "function": {
+                          "arguments": "0}"
+                        }
+                      }
+                    ]
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {
+              "toolCalls": [
+                {
+                  "function": {
+                    "name": "divideNumbers",
+                    "arguments": "{\"a\": 16, \"b\": 2}"
+                  },
+                  "id": "HIDDEN",
+                  "type": "function"
+                },
+                {
+                  "function": {
+                    "name": "sumNumbers",
+                    "arguments": "{\"a\": 8, \"b\": 20}"
+                  },
+                  "id": "HIDDEN",
+                  "type": "function"
+                }
+              ]
+            },
+            "delta": ""
+          }
+        ],
+        "message": {
+          "content": "",
+          "role": "assistant",
+          "options": {
+            "toolCalls": [
+              {
+                "function": {
+                  "name": "divideNumbers",
+                  "arguments": "{\"a\": 16, \"b\": 2}"
+                },
+                "id": "HIDDEN",
+                "type": "function"
+              },
+              {
+                "function": {
+                  "name": "sumNumbers",
+                  "arguments": "{\"a\": 8, \"b\": 20}"
+                },
+                "id": "HIDDEN",
+                "type": "function"
+              }
+            ]
+          }
+        }
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "response": {
+        "raw": [
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": "The"
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": "The"
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": " result"
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": " result"
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": " of"
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": " of"
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": " dividing"
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": " dividing"
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": " "
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": " "
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": "16"
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": "16"
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": " by"
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": " by"
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": " "
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": " "
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": "2"
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": "2"
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": " is"
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": " is"
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": " "
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": " "
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": "8"
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": "8"
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": ","
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": ","
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": " and"
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": " and"
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": " when"
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": " when"
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": " you"
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": " you"
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": " add"
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": " add"
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": " "
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": " "
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": "20"
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": "20"
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": " to"
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": " to"
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": " "
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": " "
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": "8"
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": "8"
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": ","
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": ","
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": " you"
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": " you"
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": " get"
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": " get"
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": " "
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": " "
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": "28"
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": "28"
+          },
+          {
+            "raw": {
+              "id": "HIDDEN",
+              "object": "chat.completion.chunk",
+              "created": 114514,
+              "model": "gpt-3.5-turbo-0125",
+              "system_fingerprint": "HIDDEN",
+              "choices": [
+                {
+                  "index": 0,
+                  "delta": {
+                    "content": "."
+                  },
+                  "logprobs": null,
+                  "finish_reason": null
+                }
+              ]
+            },
+            "options": {},
+            "delta": "."
+          }
+        ],
+        "message": {
+          "content": "The result of dividing 16 by 2 is 8, and when you add 20 to 8, you get 28.",
+          "role": "assistant",
+          "options": {}
+        }
+      }
+    }
+  ],
+  "llmEventStream": [
+    {
+      "id": "PRESERVE_0",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "tool_calls": [
+                  {
+                    "index": 0,
+                    "id": "HIDDEN",
+                    "type": "function",
+                    "function": {
+                      "name": "divideNumbers",
+                      "arguments": ""
+                    }
+                  }
+                ]
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {
+          "toolCalls": [
+            {
+              "function": {
+                "name": "divideNumbers",
+                "arguments": "{\"a\": 16, \"b\": 2}"
+              },
+              "id": "HIDDEN",
+              "type": "function"
+            },
+            {
+              "function": {
+                "name": "sumNumbers",
+                "arguments": "{\"a\": 8, \"b\": 20}"
+              },
+              "id": "HIDDEN",
+              "type": "function"
+            }
+          ]
+        },
+        "delta": ""
+      }
+    },
+    {
+      "id": "PRESERVE_0",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "tool_calls": [
+                  {
+                    "index": 0,
+                    "function": {
+                      "arguments": "{\"a\""
+                    }
+                  }
+                ]
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {
+          "toolCalls": [
+            {
+              "function": {
+                "name": "divideNumbers",
+                "arguments": "{\"a\": 16, \"b\": 2}"
+              },
+              "id": "HIDDEN",
+              "type": "function"
+            },
+            {
+              "function": {
+                "name": "sumNumbers",
+                "arguments": "{\"a\": 8, \"b\": 20}"
+              },
+              "id": "HIDDEN",
+              "type": "function"
+            }
+          ]
+        },
+        "delta": ""
+      }
+    },
+    {
+      "id": "PRESERVE_0",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "tool_calls": [
+                  {
+                    "index": 0,
+                    "function": {
+                      "arguments": ": 16,"
+                    }
+                  }
+                ]
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {
+          "toolCalls": [
+            {
+              "function": {
+                "name": "divideNumbers",
+                "arguments": "{\"a\": 16, \"b\": 2}"
+              },
+              "id": "HIDDEN",
+              "type": "function"
+            },
+            {
+              "function": {
+                "name": "sumNumbers",
+                "arguments": "{\"a\": 8, \"b\": 20}"
+              },
+              "id": "HIDDEN",
+              "type": "function"
+            }
+          ]
+        },
+        "delta": ""
+      }
+    },
+    {
+      "id": "PRESERVE_0",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "tool_calls": [
+                  {
+                    "index": 0,
+                    "function": {
+                      "arguments": " \"b\": "
+                    }
+                  }
+                ]
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {
+          "toolCalls": [
+            {
+              "function": {
+                "name": "divideNumbers",
+                "arguments": "{\"a\": 16, \"b\": 2}"
+              },
+              "id": "HIDDEN",
+              "type": "function"
+            },
+            {
+              "function": {
+                "name": "sumNumbers",
+                "arguments": "{\"a\": 8, \"b\": 20}"
+              },
+              "id": "HIDDEN",
+              "type": "function"
+            }
+          ]
+        },
+        "delta": ""
+      }
+    },
+    {
+      "id": "PRESERVE_0",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "tool_calls": [
+                  {
+                    "index": 0,
+                    "function": {
+                      "arguments": "2}"
+                    }
+                  }
+                ]
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {
+          "toolCalls": [
+            {
+              "function": {
+                "name": "divideNumbers",
+                "arguments": "{\"a\": 16, \"b\": 2}"
+              },
+              "id": "HIDDEN",
+              "type": "function"
+            },
+            {
+              "function": {
+                "name": "sumNumbers",
+                "arguments": "{\"a\": 8, \"b\": 20}"
+              },
+              "id": "HIDDEN",
+              "type": "function"
+            }
+          ]
+        },
+        "delta": ""
+      }
+    },
+    {
+      "id": "PRESERVE_0",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "tool_calls": [
+                  {
+                    "index": 1,
+                    "id": "HIDDEN",
+                    "type": "function",
+                    "function": {
+                      "name": "sumNumbers",
+                      "arguments": ""
+                    }
+                  }
+                ]
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {
+          "toolCalls": [
+            {
+              "function": {
+                "name": "divideNumbers",
+                "arguments": "{\"a\": 16, \"b\": 2}"
+              },
+              "id": "HIDDEN",
+              "type": "function"
+            },
+            {
+              "function": {
+                "name": "sumNumbers",
+                "arguments": "{\"a\": 8, \"b\": 20}"
+              },
+              "id": "HIDDEN",
+              "type": "function"
+            }
+          ]
+        },
+        "delta": ""
+      }
+    },
+    {
+      "id": "PRESERVE_0",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "tool_calls": [
+                  {
+                    "index": 1,
+                    "function": {
+                      "arguments": "{\"a\""
+                    }
+                  }
+                ]
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {
+          "toolCalls": [
+            {
+              "function": {
+                "name": "divideNumbers",
+                "arguments": "{\"a\": 16, \"b\": 2}"
+              },
+              "id": "HIDDEN",
+              "type": "function"
+            },
+            {
+              "function": {
+                "name": "sumNumbers",
+                "arguments": "{\"a\": 8, \"b\": 20}"
+              },
+              "id": "HIDDEN",
+              "type": "function"
+            }
+          ]
+        },
+        "delta": ""
+      }
+    },
+    {
+      "id": "PRESERVE_0",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "tool_calls": [
+                  {
+                    "index": 1,
+                    "function": {
+                      "arguments": ": 8, "
+                    }
+                  }
+                ]
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {
+          "toolCalls": [
+            {
+              "function": {
+                "name": "divideNumbers",
+                "arguments": "{\"a\": 16, \"b\": 2}"
+              },
+              "id": "HIDDEN",
+              "type": "function"
+            },
+            {
+              "function": {
+                "name": "sumNumbers",
+                "arguments": "{\"a\": 8, \"b\": 20}"
+              },
+              "id": "HIDDEN",
+              "type": "function"
+            }
+          ]
+        },
+        "delta": ""
+      }
+    },
+    {
+      "id": "PRESERVE_0",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "tool_calls": [
+                  {
+                    "index": 1,
+                    "function": {
+                      "arguments": "\"b\": 2"
+                    }
+                  }
+                ]
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {
+          "toolCalls": [
+            {
+              "function": {
+                "name": "divideNumbers",
+                "arguments": "{\"a\": 16, \"b\": 2}"
+              },
+              "id": "HIDDEN",
+              "type": "function"
+            },
+            {
+              "function": {
+                "name": "sumNumbers",
+                "arguments": "{\"a\": 8, \"b\": 20}"
+              },
+              "id": "HIDDEN",
+              "type": "function"
+            }
+          ]
+        },
+        "delta": ""
+      }
+    },
+    {
+      "id": "PRESERVE_0",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "tool_calls": [
+                  {
+                    "index": 1,
+                    "function": {
+                      "arguments": "0}"
+                    }
+                  }
+                ]
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {
+          "toolCalls": [
+            {
+              "function": {
+                "name": "divideNumbers",
+                "arguments": "{\"a\": 16, \"b\": 2}"
+              },
+              "id": "HIDDEN",
+              "type": "function"
+            },
+            {
+              "function": {
+                "name": "sumNumbers",
+                "arguments": "{\"a\": 8, \"b\": 20}"
+              },
+              "id": "HIDDEN",
+              "type": "function"
+            }
+          ]
+        },
+        "delta": ""
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": "The"
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": "The"
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": " result"
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": " result"
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": " of"
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": " of"
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": " dividing"
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": " dividing"
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": " "
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": " "
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": "16"
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": "16"
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": " by"
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": " by"
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": " "
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": " "
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": "2"
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": "2"
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": " is"
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": " is"
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": " "
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": " "
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": "8"
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": "8"
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": ","
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": ","
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": " and"
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": " and"
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": " when"
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": " when"
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": " you"
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": " you"
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": " add"
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": " add"
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": " "
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": " "
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": "20"
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": "20"
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": " to"
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": " to"
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": " "
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": " "
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": "8"
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": "8"
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": ","
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": ","
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": " you"
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": " you"
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": " get"
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": " get"
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": " "
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": " "
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": "28"
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": "28"
+      }
+    },
+    {
+      "id": "PRESERVE_1",
+      "chunk": {
+        "raw": {
+          "id": "HIDDEN",
+          "object": "chat.completion.chunk",
+          "created": 114514,
+          "model": "gpt-3.5-turbo-0125",
+          "system_fingerprint": "HIDDEN",
+          "choices": [
+            {
+              "index": 0,
+              "delta": {
+                "content": "."
+              },
+              "logprobs": null,
+              "finish_reason": null
+            }
+          ]
+        },
+        "options": {},
+        "delta": "."
+      }
+    }
+  ]
+}
\ No newline at end of file
diff --git a/packages/core/e2e/node/snapshot/gpt-4-turbo.snap b/packages/core/e2e/node/snapshot/gpt-4-turbo.snap
index 5a33bd8d1d191884a02cdf17b0502b29a0080b2c..de400bac63ccbd17308f615b0d2ced8309d9c84b 100644
--- a/packages/core/e2e/node/snapshot/gpt-4-turbo.snap
+++ b/packages/core/e2e/node/snapshot/gpt-4-turbo.snap
@@ -1,7 +1,7 @@
 {
   "llmEventStart": [
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_0",
       "messages": [
         {
           "content": "What is the weather in San Jose?",
@@ -10,7 +10,7 @@
       ]
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_1",
       "messages": [
         {
           "content": "What is the weather in San Jose?",
@@ -45,7 +45,7 @@
   ],
   "llmEventEnd": [
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_0",
       "response": {
         "raw": {
           "id": "HIDDEN",
@@ -99,7 +99,7 @@
       }
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_1",
       "response": {
         "raw": {
           "id": "HIDDEN",
@@ -111,7 +111,7 @@
               "index": 0,
               "message": {
                 "role": "assistant",
-                "content": "The weather in San Jose is 45 degrees and sunny."
+                "content": "The weather in San Jose is currently 45 degrees and sunny."
               },
               "logprobs": null,
               "finish_reason": "stop"
@@ -119,13 +119,13 @@
           ],
           "usage": {
             "prompt_tokens": 78,
-            "completion_tokens": 13,
-            "total_tokens": 91
+            "completion_tokens": 14,
+            "total_tokens": 92
           },
           "system_fingerprint": "HIDDEN"
         },
         "message": {
-          "content": "The weather in San Jose is 45 degrees and sunny.",
+          "content": "The weather in San Jose is currently 45 degrees and sunny.",
           "role": "assistant",
           "options": {}
         }
diff --git a/packages/core/e2e/node/snapshot/llm.snap b/packages/core/e2e/node/snapshot/llm.snap
index 4fb4a33ba4898ecb9dca2f305c29bd262f339384..0f3854035dc3190173a30cada46717c3901ba18e 100644
--- a/packages/core/e2e/node/snapshot/llm.snap
+++ b/packages/core/e2e/node/snapshot/llm.snap
@@ -1,7 +1,7 @@
 {
   "llmEventStart": [
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_0",
       "messages": [
         {
           "content": "Hello",
@@ -10,7 +10,7 @@
       ]
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_1",
       "messages": [
         {
           "content": "hello",
@@ -21,7 +21,7 @@
   ],
   "llmEventEnd": [
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_0",
       "response": {
         "raw": {
           "id": "HIDDEN",
@@ -54,7 +54,7 @@
       }
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_1",
       "response": {
         "raw": [
           {
@@ -257,7 +257,7 @@
   ],
   "llmEventStream": [
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_1",
       "chunk": {
         "raw": {
           "id": "HIDDEN",
@@ -281,7 +281,7 @@
       }
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_1",
       "chunk": {
         "raw": {
           "id": "HIDDEN",
@@ -305,7 +305,7 @@
       }
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_1",
       "chunk": {
         "raw": {
           "id": "HIDDEN",
@@ -329,7 +329,7 @@
       }
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_1",
       "chunk": {
         "raw": {
           "id": "HIDDEN",
@@ -353,7 +353,7 @@
       }
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_1",
       "chunk": {
         "raw": {
           "id": "HIDDEN",
@@ -377,7 +377,7 @@
       }
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_1",
       "chunk": {
         "raw": {
           "id": "HIDDEN",
@@ -401,7 +401,7 @@
       }
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_1",
       "chunk": {
         "raw": {
           "id": "HIDDEN",
@@ -425,7 +425,7 @@
       }
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_1",
       "chunk": {
         "raw": {
           "id": "HIDDEN",
@@ -449,7 +449,7 @@
       }
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_1",
       "chunk": {
         "raw": {
           "id": "HIDDEN",
diff --git a/packages/core/e2e/node/snapshot/queryEngine_subquestion.snap b/packages/core/e2e/node/snapshot/queryEngine_subquestion.snap
index 4b86f5604a8df4f052f1498202a8af76d0807b3a..b63a4d2e8427ab35fe3f7c5a2734c1eeeace81c4 100644
--- a/packages/core/e2e/node/snapshot/queryEngine_subquestion.snap
+++ b/packages/core/e2e/node/snapshot/queryEngine_subquestion.snap
@@ -1,7 +1,7 @@
 {
   "llmEventStart": [
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_0",
       "messages": [
         {
           "content": "Given a user question, and a list of tools, output a list of relevant sub-questions that when composed can help answer the full user question:\n\n# Example 1\n<Tools>\n```json\n{\n    \"uber_10k\": \"Provides information about Uber financials for year 2021\",\n    \"lyft_10k\": \"Provides information about Lyft financials for year 2021\"\n}\n```\n\n<User Question>\nCompare and contrast the revenue growth and EBITDA of Uber and Lyft for year 2021\n\n<Output>\n```json\n[\n    {\n        \"subQuestion\": \"What is the revenue growth of Uber\",\n        \"toolName\": \"uber_10k\"\n    },\n    {\n        \"subQuestion\": \"What is the EBITDA of Uber\",\n        \"toolName\": \"uber_10k\"\n    },\n    {\n        \"subQuestion\": \"What is the revenue growth of Lyft\",\n        \"toolName\": \"lyft_10k\"\n    },\n    {\n        \"subQuestion\": \"What is the EBITDA of Lyft\",\n        \"toolName\": \"lyft_10k\"\n    }\n]\n```\n\n# Example 2\n<Tools>\n```json\n{\n    \"bill_gates_idea\": \"Get what Bill Gates idea from.\"\n}\n```\n\n<User Question>\nWhat did Bill Gates steal from?\n\n<Output>\n",
@@ -10,7 +10,7 @@
       ]
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_1",
       "messages": [
         {
           "content": "Context information is below.\n---------------------\nBill Gates stole from Apple. Steve Jobs stole from Xerox.\n---------------------\nGiven the context information and not prior knowledge, answer the query.\nQuery: What is Bill Gates' idea\nAnswer:",
@@ -19,7 +19,7 @@
       ]
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_2",
       "messages": [
         {
           "content": "Context information is below.\n---------------------\nSub question: What is Bill Gates' idea\nResponse: Bill Gates' idea was to steal from Apple.\n---------------------\nGiven the context information and not prior knowledge, answer the query.\nQuery: What did Bill Gates steal from?\nAnswer:",
@@ -30,7 +30,7 @@
   ],
   "llmEventEnd": [
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_0",
       "response": {
         "raw": {
           "id": "HIDDEN",
@@ -63,7 +63,7 @@
       }
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_1",
       "response": {
         "raw": {
           "id": "HIDDEN",
@@ -96,7 +96,7 @@
       }
     },
     {
-      "id": "HIDDEN",
+      "id": "PRESERVE_2",
       "response": {
         "raw": {
           "id": "HIDDEN",
diff --git a/packages/core/e2e/node/utils.ts b/packages/core/e2e/node/utils.ts
index 352b8bdd619da7390ccac65cf2b6df3831506c14..c0ca76fbf004178c78c7099b8576c9ad2491f9d2 100644
--- a/packages/core/e2e/node/utils.ts
+++ b/packages/core/e2e/node/utils.ts
@@ -27,6 +27,8 @@ export async function mockLLMEvent(
   t: Parameters<NonNullable<Parameters<typeof test>[0]>>[0],
   snapshotName: string,
 ) {
+  const idMap = new Map<string, string>();
+  let counter = 0;
   const newLLMCompleteMockStorage: MockStorage = {
     llmEventStart: [],
     llmEventEnd: [],
@@ -34,15 +36,28 @@ export async function mockLLMEvent(
   };
 
   function captureLLMStart(event: LLMStartEvent) {
-    newLLMCompleteMockStorage.llmEventStart.push(event.detail.payload);
+    idMap.set(event.detail.payload.id, `PRESERVE_${counter++}`);
+    newLLMCompleteMockStorage.llmEventStart.push({
+      ...event.detail.payload,
+      // @ts-expect-error id is not UUID, but it is fine for testing
+      id: idMap.get(event.detail.payload.id)!,
+    });
   }
 
   function captureLLMEnd(event: LLMEndEvent) {
-    newLLMCompleteMockStorage.llmEventEnd.push(event.detail.payload);
+    newLLMCompleteMockStorage.llmEventEnd.push({
+      ...event.detail.payload,
+      // @ts-expect-error id is not UUID, but it is fine for testing
+      id: idMap.get(event.detail.payload.id)!,
+    });
   }
 
   function captureLLMStream(event: LLMStreamEvent) {
-    newLLMCompleteMockStorage.llmEventStream.push(event.detail.payload);
+    newLLMCompleteMockStorage.llmEventStream.push({
+      ...event.detail.payload,
+      // @ts-expect-error id is not UUID, but it is fine for testing
+      id: idMap.get(event.detail.payload.id)!,
+    });
   }
 
   await readFile(join(testRootDir, "snapshot", `${snapshotName}.snap`), {
@@ -77,7 +92,7 @@ export async function mockLLMEvent(
     // eslint-disable-next-line turbo/no-undeclared-env-vars
     if (process.env.UPDATE_SNAPSHOT === "1") {
       const data = JSON.stringify(newLLMCompleteMockStorage, null, 2)
-        .replace(/"id": ".*"/g, `"id": "HIDDEN"`)
+        .replace(/"id": "(?!PRESERVE_).*"/g, '"id": "HIDDEN"')
         .replace(/"created": \d+/g, `"created": 114514`)
         .replace(
           /"system_fingerprint": ".*"/g,
diff --git a/packages/core/e2e/package.json b/packages/core/e2e/package.json
index 7b8b456b2d706893967336c413c17cea138f2272..aeb858f525ddea8167570154dd666357a20c04c6 100644
--- a/packages/core/e2e/package.json
+++ b/packages/core/e2e/package.json
@@ -5,7 +5,8 @@
   "type": "module",
   "scripts": {
     "e2e": "node --import tsx --import ./mock-register.js --test ./node/*.e2e.ts",
-    "e2e:nomock": "node --import tsx --test ./node/*.e2e.ts"
+    "e2e:nomock": "node --import tsx --test ./node/*.e2e.ts",
+    "e2e:updatesnap": "UPDATE_SNAPSHOT=1 node --import tsx --test ./node/*.e2e.ts"
   },
   "devDependencies": {
     "@faker-js/faker": "^8.4.1",
diff --git a/packages/core/package.json b/packages/core/package.json
index dc28eb1bc625af7ecec0adef5937f470c62f8d8c..ec63b3fc71532ffd5a55d5cd45bdb275d69a64fe 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -16,7 +16,7 @@
     "@pinecone-database/pinecone": "^2.2.0",
     "@qdrant/js-client-rest": "^1.8.2",
     "@types/lodash": "^4.17.0",
-    "@types/node": "^18.19.31",
+    "@types/node": "^20.12.7",
     "@types/papaparse": "^5.3.14",
     "@types/pg": "^8.11.5",
     "@xenova/transformers": "^2.16.1",
diff --git a/packages/edge/package.json b/packages/edge/package.json
index ad7e60487b24d2f0cdfe649e5e576bf0536d05e4..ad93a8e3e67eed8e625727717362dcc509aa0951 100644
--- a/packages/edge/package.json
+++ b/packages/edge/package.json
@@ -15,7 +15,7 @@
     "@pinecone-database/pinecone": "^2.2.0",
     "@qdrant/js-client-rest": "^1.8.2",
     "@types/lodash": "^4.17.0",
-    "@types/node": "^18.19.31",
+    "@types/node": "^20.12.7",
     "@types/papaparse": "^5.3.14",
     "@types/pg": "^8.11.5",
     "@xenova/transformers": "^2.16.1",
diff --git a/packages/env/package.json b/packages/env/package.json
index adc8a7b848f267557f727e12ed4b4743628687b8..36ac6937eecd0f1a9ff6828d1f46773c6dbc22de 100644
--- a/packages/env/package.json
+++ b/packages/env/package.json
@@ -62,7 +62,7 @@
   },
   "dependencies": {
     "@types/lodash": "^4.14.202",
-    "@types/node": "^20.11.20",
+    "@types/node": "^20.12.7",
     "lodash": "^4.17.21"
   },
   "peerDependencies": {
diff --git a/packages/experimental/examples/package.json b/packages/experimental/examples/package.json
index f5bc563ae8a2aeccf0e00bb88e123576b2ab0900..669f41f9bdf51f94e25222ca8bbebb208f4fe725 100644
--- a/packages/experimental/examples/package.json
+++ b/packages/experimental/examples/package.json
@@ -7,7 +7,7 @@
     "llamaindex": "workspace:*"
   },
   "devDependencies": {
-    "@types/node": "^18.19.10",
+    "@types/node": "^20.12.7",
     "ts-node": "^10.9.2",
     "typescript": "^5.4.3"
   },
diff --git a/packages/experimental/package.json b/packages/experimental/package.json
index 19acd0a9d53f9c6b01f0dd44849fe442f398e9de..b875f319b0c0d433edd2e436c1b7bf83d45420a2 100644
--- a/packages/experimental/package.json
+++ b/packages/experimental/package.json
@@ -63,7 +63,7 @@
   },
   "dependencies": {
     "@types/lodash": "^4.14.202",
-    "@types/node": "^20.11.20",
+    "@types/node": "^20.12.7",
     "jsonpath": "^1.1.1",
     "llamaindex": "workspace:*",
     "lodash": "^4.17.21"
diff --git a/packages/wasm-tools/package.json b/packages/wasm-tools/package.json
index e867230c67ccd4e9666305f3e91ab4e435ad95d3..fb427794abe5586d901602b7e5262ee1b0f81dde 100644
--- a/packages/wasm-tools/package.json
+++ b/packages/wasm-tools/package.json
@@ -4,7 +4,7 @@
   "license": "MIT",
   "type": "module",
   "dependencies": {
-    "@types/node": "^18.19.14",
+    "@types/node": "^20.12.7",
     "@assemblyscript/loader": "^0.19.9"
   },
   "devDependencies": {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 04fbbfa39210f480818eff100c710dc81c167871..5506f3a4e8ac7fcd8a3c489ac37c5b8629796217 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -90,8 +90,8 @@ importers:
         specifier: ^2.0.3
         version: 2.0.3
       '@types/node':
-        specifier: ^18.19.31
-        version: 18.19.31
+        specifier: ^20.12.7
+        version: 20.12.7
       docusaurus-plugin-typedoc:
         specifier: ^0.22.0
         version: 0.22.0(typedoc-plugin-markdown@3.17.1)(typedoc@0.25.13)
@@ -145,11 +145,11 @@ importers:
         version: 1.1.2
     devDependencies:
       '@types/node':
-        specifier: ^18.19.31
-        version: 18.19.31
+        specifier: ^20.12.7
+        version: 20.12.7
       ts-node:
         specifier: ^10.9.2
-        version: 10.9.2(@types/node@18.19.31)(typescript@5.4.5)
+        version: 10.9.2(@types/node@20.12.7)(typescript@5.4.5)
       tsx:
         specifier: ^4.7.2
         version: 4.7.2
@@ -164,11 +164,11 @@ importers:
         version: link:../../packages/core
     devDependencies:
       '@types/node':
-        specifier: ^20.11.14
-        version: 20.11.14
+        specifier: ^20.12.7
+        version: 20.12.7
       ts-node:
         specifier: ^10.9.2
-        version: 10.9.2(@types/node@20.11.14)(typescript@5.4.3)
+        version: 10.9.2(@types/node@20.12.7)(typescript@5.4.3)
       typescript:
         specifier: ^5.4.3
         version: 5.4.3
@@ -209,8 +209,8 @@ importers:
         specifier: ^4.17.0
         version: 4.17.0
       '@types/node':
-        specifier: ^18.19.31
-        version: 18.19.31
+        specifier: ^20.12.7
+        version: 20.12.7
       '@types/papaparse':
         specifier: ^5.3.14
         version: 5.3.14
@@ -372,8 +372,8 @@ importers:
         specifier: ^4.17.0
         version: 4.17.0
       '@types/node':
-        specifier: ^18.19.31
-        version: 18.19.31
+        specifier: ^20.12.7
+        version: 20.12.7
       '@types/papaparse':
         specifier: ^5.3.14
         version: 5.3.14
@@ -490,8 +490,8 @@ importers:
         specifier: ^4.14.202
         version: 4.14.202
       '@types/node':
-        specifier: ^20.11.20
-        version: 20.11.20
+        specifier: ^20.12.7
+        version: 20.12.7
       lodash:
         specifier: ^4.17.21
         version: 4.17.21
@@ -543,8 +543,8 @@ importers:
         specifier: ^4.14.202
         version: 4.14.202
       '@types/node':
-        specifier: ^20.11.20
-        version: 20.11.20
+        specifier: ^20.12.7
+        version: 20.12.7
       jsonpath:
         specifier: ^1.1.1
         version: 1.1.1
@@ -582,8 +582,8 @@ importers:
         specifier: ^0.19.9
         version: 0.19.23
       '@types/node':
-        specifier: ^18.19.14
-        version: 18.19.14
+        specifier: ^20.12.7
+        version: 20.12.7
     devDependencies:
       '@swc/cli':
         specifier: ^0.3.9
@@ -3424,7 +3424,7 @@ packages:
     engines: {node: ^8.13.0 || >=10.10.0}
     dependencies:
       '@grpc/proto-loader': 0.7.7
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
     dev: false
 
   /@grpc/proto-loader@0.7.12:
@@ -3505,7 +3505,7 @@ packages:
       '@jest/schemas': 29.6.3
       '@types/istanbul-lib-coverage': 2.0.6
       '@types/istanbul-reports': 3.0.4
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
       '@types/yargs': 17.0.32
       chalk: 4.1.2
 
@@ -4627,19 +4627,19 @@ packages:
     resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
     dependencies:
       '@types/connect': 3.4.38
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
 
   /@types/bonjour@3.5.13:
     resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==}
     dependencies:
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
 
   /@types/cacheable-request@6.0.3:
     resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==}
     dependencies:
       '@types/http-cache-semantics': 4.0.4
       '@types/keyv': 3.1.4
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
       '@types/responselike': 1.0.3
     dev: true
 
@@ -4647,12 +4647,12 @@ packages:
     resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==}
     dependencies:
       '@types/express-serve-static-core': 4.19.0
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
 
   /@types/connect@3.4.38:
     resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
     dependencies:
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
 
   /@types/debug@4.1.12:
     resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
@@ -4682,7 +4682,7 @@ packages:
   /@types/express-serve-static-core@4.19.0:
     resolution: {integrity: sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==}
     dependencies:
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
       '@types/qs': 6.9.14
       '@types/range-parser': 1.2.7
       '@types/send': 0.17.4
@@ -4719,7 +4719,7 @@ packages:
   /@types/http-proxy@1.17.14:
     resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==}
     dependencies:
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
 
   /@types/istanbul-lib-coverage@2.0.6:
     resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
@@ -4747,7 +4747,7 @@ packages:
   /@types/keyv@3.1.4:
     resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
     dependencies:
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
     dev: true
 
   /@types/lodash-es@4.17.12:
@@ -4789,14 +4789,14 @@ packages:
   /@types/node-fetch@2.6.11:
     resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==}
     dependencies:
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
       form-data: 4.0.0
     dev: false
 
   /@types/node-forge@1.3.11:
     resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==}
     dependencies:
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
 
   /@types/node@12.20.55:
     resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
@@ -4806,25 +4806,20 @@ packages:
     resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
     dev: true
 
-  /@types/node@18.19.14:
-    resolution: {integrity: sha512-EnQ4Us2rmOS64nHDWr0XqAD8DsO6f3XR6lf9UIIrZQpUzPVdN/oPuEzfDWNHSyXLvoGgjuEm/sPwFGSSs35Wtg==}
-    dependencies:
-      undici-types: 5.26.5
-    dev: false
-
   /@types/node@18.19.31:
     resolution: {integrity: sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==}
     dependencies:
       undici-types: 5.26.5
+    dev: false
 
-  /@types/node@20.11.14:
-    resolution: {integrity: sha512-w3yWCcwULefjP9DmDDsgUskrMoOy5Z8MiwKHr1FvqGPtx7CvJzQvxD7eKpxNtklQxLruxSXWddyeRtyud0RcXQ==}
+  /@types/node@20.11.20:
+    resolution: {integrity: sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==}
     dependencies:
       undici-types: 5.26.5
     dev: true
 
-  /@types/node@20.11.20:
-    resolution: {integrity: sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==}
+  /@types/node@20.12.7:
+    resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==}
     dependencies:
       undici-types: 5.26.5
 
@@ -4835,7 +4830,7 @@ packages:
   /@types/papaparse@5.3.14:
     resolution: {integrity: sha512-LxJ4iEFcpqc6METwp9f6BV6VVc43m6MfH0VqFosHvrUgfXiFe6ww7R3itkOQ+TCK6Y+Iv/+RnnvtRZnkc5Kc9g==}
     dependencies:
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
     dev: false
 
   /@types/parse-json@4.0.2:
@@ -4844,7 +4839,7 @@ packages:
   /@types/pg@8.11.5:
     resolution: {integrity: sha512-2xMjVviMxneZHDHX5p5S6tsRRs7TpDHeeK7kTTMe/kAC/mRRNjWHjZg0rkiY+e17jXSZV3zJYDxXV8Cy72/Vuw==}
     dependencies:
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
       pg-protocol: 1.6.1
       pg-types: 4.0.2
     dev: false
@@ -4911,7 +4906,7 @@ packages:
   /@types/responselike@1.0.3:
     resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==}
     dependencies:
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
     dev: true
 
   /@types/retry@0.12.0:
@@ -4920,7 +4915,7 @@ packages:
   /@types/sax@1.2.7:
     resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==}
     dependencies:
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
     dev: true
 
   /@types/scheduler@0.16.8:
@@ -4939,7 +4934,7 @@ packages:
     resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
     dependencies:
       '@types/mime': 1.3.5
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
 
   /@types/serve-index@1.9.4:
     resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==}
@@ -4950,13 +4945,13 @@ packages:
     resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==}
     dependencies:
       '@types/http-errors': 2.0.4
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
       '@types/send': 0.17.4
 
   /@types/sockjs@0.3.36:
     resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==}
     dependencies:
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
 
   /@types/triple-beam@1.3.5:
     resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==}
@@ -4981,7 +4976,7 @@ packages:
   /@types/ws@8.5.10:
     resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==}
     dependencies:
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
 
   /@types/yargs-parser@21.0.3:
     resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
@@ -8306,7 +8301,7 @@ packages:
     resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==}
     engines: {node: '>= 0.8'}
     dependencies:
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
       require-like: 0.1.2
 
   /event-target-shim@5.0.1:
@@ -10039,7 +10034,7 @@ packages:
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     dependencies:
       '@jest/types': 29.6.3
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
       chalk: 4.1.2
       ci-info: 3.9.0
       graceful-fs: 4.2.11
@@ -10049,7 +10044,7 @@ packages:
     resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
     engines: {node: '>= 10.13.0'}
     dependencies:
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
       merge-stream: 2.0.0
       supports-color: 8.1.1
 
@@ -10057,7 +10052,7 @@ packages:
     resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     dependencies:
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
       jest-util: 29.7.0
       merge-stream: 2.0.0
       supports-color: 8.1.1
@@ -13006,7 +13001,7 @@ packages:
       '@protobufjs/path': 1.1.2
       '@protobufjs/pool': 1.1.0
       '@protobufjs/utf8': 1.1.0
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
       long: 5.2.3
     dev: false
 
@@ -14909,7 +14904,7 @@ packages:
     engines: {node: '>=14.16'}
     dev: true
 
-  /ts-node@10.9.2(@types/node@18.19.31)(typescript@5.4.5):
+  /ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3):
     resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
     hasBin: true
     peerDependencies:
@@ -14928,19 +14923,19 @@ packages:
       '@tsconfig/node12': 1.0.11
       '@tsconfig/node14': 1.0.3
       '@tsconfig/node16': 1.0.4
-      '@types/node': 18.19.31
+      '@types/node': 20.12.7
       acorn: 8.11.3
       acorn-walk: 8.3.2
       arg: 4.1.3
       create-require: 1.1.1
       diff: 4.0.2
       make-error: 1.3.6
-      typescript: 5.4.5
+      typescript: 5.4.3
       v8-compile-cache-lib: 3.0.1
       yn: 3.1.1
     dev: true
 
-  /ts-node@10.9.2(@types/node@20.11.14)(typescript@5.4.3):
+  /ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5):
     resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
     hasBin: true
     peerDependencies:
@@ -14959,14 +14954,14 @@ packages:
       '@tsconfig/node12': 1.0.11
       '@tsconfig/node14': 1.0.3
       '@tsconfig/node16': 1.0.4
-      '@types/node': 20.11.14
+      '@types/node': 20.12.7
       acorn: 8.11.3
       acorn-walk: 8.3.2
       arg: 4.1.3
       create-require: 1.1.1
       diff: 4.0.2
       make-error: 1.3.6
-      typescript: 5.4.3
+      typescript: 5.4.5
       v8-compile-cache-lib: 3.0.1
       yn: 3.1.1
     dev: true