diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6cca734..9c0eae4 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -23,7 +23,7 @@ importers:
         version: 9.1.0(eslint@9.6.0)
       openai:
         specifier: ^4.29.2
-        version: 4.47.3
+        version: 4.52.2
       prettier:
         specifier: ^3.1.0
         version: 3.3.2
@@ -38,10 +38,10 @@ importers:
         version: 7.15.0(eslint@9.6.0)(typescript@5.5.3)
       vite:
         specifier: ^5.2.6
-        version: 5.3.2(@types/node@18.19.33)
+        version: 5.3.2(@types/node@18.19.39)
       vitest:
         specifier: ^1.4.0
-        version: 1.6.0(@types/node@18.19.33)
+        version: 1.6.0(@types/node@18.19.39)
 
 packages:
 
@@ -325,8 +325,8 @@ packages:
   '@types/node-fetch@2.6.11':
     resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==}
 
-  '@types/node@18.19.33':
-    resolution: {integrity: sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A==}
+  '@types/node@18.19.39':
+    resolution: {integrity: sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==}
 
   '@typescript-eslint/eslint-plugin@7.15.0':
     resolution: {integrity: sha512-uiNHpyjZtFrLwLDpHnzaDlP3Tt6sGMqTCiqmxaN4n4RP0EfYZDODJyddiFDF44Hjwxr5xAcaYxVKm9QKQFJFLA==}
@@ -859,8 +859,8 @@ packages:
     resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
     engines: {node: '>=12'}
 
-  openai@4.47.3:
-    resolution: {integrity: sha512-470d4ibH5kizXflCzgur22GpM4nOjrg7WQ9jTOa3dNKEn248oBy4+pjOyfcFR4V4YUn/YlDNjp6h83PbviCCKQ==}
+  openai@4.52.2:
+    resolution: {integrity: sha512-mMc0XgFuVSkcm0lRIi8zaw++otC82ZlfkCur1qguXYWPETr/+ZwL9A/vvp3YahX+shpaT6j03dwsmUyLAfmEfg==}
     hasBin: true
 
   optionator@0.9.4:
@@ -1363,10 +1363,10 @@ snapshots:
 
   '@types/node-fetch@2.6.11':
     dependencies:
-      '@types/node': 18.19.33
+      '@types/node': 18.19.39
       form-data: 4.0.0
 
-  '@types/node@18.19.33':
+  '@types/node@18.19.39':
     dependencies:
       undici-types: 5.26.5
 
@@ -1937,9 +1937,9 @@ snapshots:
     dependencies:
       mimic-fn: 4.0.0
 
-  openai@4.47.3:
+  openai@4.52.2:
     dependencies:
-      '@types/node': 18.19.33
+      '@types/node': 18.19.39
       '@types/node-fetch': 2.6.11
       abort-controller: 3.0.0
       agentkeepalive: 4.5.0
@@ -2147,13 +2147,13 @@ snapshots:
     dependencies:
       punycode: 2.3.1
 
-  vite-node@1.6.0(@types/node@18.19.33):
+  vite-node@1.6.0(@types/node@18.19.39):
     dependencies:
       cac: 6.7.14
       debug: 4.3.5
       pathe: 1.1.2
       picocolors: 1.0.1
-      vite: 5.3.2(@types/node@18.19.33)
+      vite: 5.3.2(@types/node@18.19.39)
     transitivePeerDependencies:
       - '@types/node'
       - less
@@ -2164,16 +2164,16 @@ snapshots:
       - supports-color
       - terser
 
-  vite@5.3.2(@types/node@18.19.33):
+  vite@5.3.2(@types/node@18.19.39):
     dependencies:
       esbuild: 0.21.5
       postcss: 8.4.39
       rollup: 4.18.0
     optionalDependencies:
-      '@types/node': 18.19.33
+      '@types/node': 18.19.39
       fsevents: 2.3.3
 
-  vitest@1.6.0(@types/node@18.19.33):
+  vitest@1.6.0(@types/node@18.19.39):
     dependencies:
       '@vitest/expect': 1.6.0
       '@vitest/runner': 1.6.0
@@ -2192,11 +2192,11 @@ snapshots:
       strip-literal: 2.1.0
       tinybench: 2.8.0
       tinypool: 0.8.4
-      vite: 5.3.2(@types/node@18.19.33)
-      vite-node: 1.6.0(@types/node@18.19.33)
+      vite: 5.3.2(@types/node@18.19.39)
+      vite-node: 1.6.0(@types/node@18.19.39)
       why-is-node-running: 2.2.2
     optionalDependencies:
-      '@types/node': 18.19.33
+      '@types/node': 18.19.39
     transitivePeerDependencies:
       - less
       - lightningcss