diff --git a/examples/server/public/index.html.gz b/examples/server/public/index.html.gz
index 53d33feb344cd..01dd41811d083 100644
Binary files a/examples/server/public/index.html.gz and b/examples/server/public/index.html.gz differ
diff --git a/examples/server/webui/package-lock.json b/examples/server/webui/package-lock.json
index 1d0ab023602a9..bbebccbf20c64 100644
--- a/examples/server/webui/package-lock.json
+++ b/examples/server/webui/package-lock.json
@@ -8,6 +8,7 @@
"name": "webui",
"version": "0.0.0",
"dependencies": {
+ "@sec-ant/readable-stream": "^0.6.0",
"@vscode/markdown-it-katex": "^1.1.1",
"autoprefixer": "^10.4.20",
"daisyui": "^4.12.14",
@@ -617,6 +618,12 @@
"win32"
]
},
+ "node_modules/@sec-ant/readable-stream": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.6.0.tgz",
+ "integrity": "sha512-uiBh8DrB5FN35gP6/o8JEhEQ7/ci1jUsOZO/VMUjyvTpjtV54VstOXVj1TvTj/wsT23pfX6butxxh3qufsW3+g==",
+ "license": "MIT"
+ },
"node_modules/@vscode/markdown-it-katex": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@vscode/markdown-it-katex/-/markdown-it-katex-1.1.1.tgz",
diff --git a/examples/server/webui/package.json b/examples/server/webui/package.json
index 48090c6dea534..2836cce00d41d 100644
--- a/examples/server/webui/package.json
+++ b/examples/server/webui/package.json
@@ -14,6 +14,7 @@
"vite": "^5.4.10"
},
"dependencies": {
+ "@sec-ant/readable-stream": "^0.6.0",
"@vscode/markdown-it-katex": "^1.1.1",
"autoprefixer": "^10.4.20",
"daisyui": "^4.12.14",
diff --git a/examples/server/webui/src/main.js b/examples/server/webui/src/main.js
index 441fd73519a6b..2a3021ce98773 100644
--- a/examples/server/webui/src/main.js
+++ b/examples/server/webui/src/main.js
@@ -5,13 +5,16 @@ import TextLineStream from 'textlinestream';
// math formula rendering
import 'katex/dist/katex.min.css';
-import markdownItKatexGpt, { renderLatexHTML } from './katex-gpt';
+import markdownItKatexGpt from './katex-gpt';
import markdownItKatexNormal from '@vscode/markdown-it-katex';
// code highlighting
import hljs from './highlight-config';
import daisyuiThemes from 'daisyui/src/theming/themes';
+// ponyfill for missing ReadableStream asyncIterator on Safari
+import { asyncIterator } from "@sec-ant/readable-stream/ponyfill/asyncIterator";
+
const isDev = import.meta.env.MODE === 'development';
// utility functions
@@ -283,7 +286,7 @@ async function* sendSSEPostRequest(url, fetchOptions) {
const lines = res.body
.pipeThrough(new TextDecoderStream())
.pipeThrough(new TextLineStream());
- for await (const line of lines) {
+ for await (const line of asyncIterator(lines)) {
if (isDev) console.log({line});
if (line.startsWith('data:') && !line.endsWith('[DONE]')) {
const data = JSON.parse(line.slice(5));