👷 Add CI to check types (#161)
Browse files- .eslintrc.cjs +2 -0
- .github/workflows/lint-and-test.yml +27 -0
- package-lock.json +59 -68
- package.json +4 -4
- src/lib/actions/snapScrollToBottom.ts +1 -1
- src/lib/buildPrompt.ts +1 -1
- src/lib/components/CopyToClipBoardBtn.svelte +1 -1
- src/lib/components/EthicsModal.svelte +1 -1
- src/lib/components/ScrollToBottomBtn.svelte +1 -1
- src/lib/components/StopGeneratingBtn.svelte +1 -1
- src/lib/components/chat/ChatMessage.svelte +3 -3
- src/lib/components/chat/ChatWindow.svelte +3 -3
- src/lib/components/icons/IconChevron.svelte +1 -1
- src/lib/components/icons/IconLoading.svelte +1 -1
- src/lib/components/icons/Logo.svelte +1 -1
- src/routes/+layout.svelte +1 -1
- src/routes/conversation/[id]/+page.svelte +8 -8
- src/routes/conversation/[id]/+server.ts +5 -1
    	
        .eslintrc.cjs
    CHANGED
    
    | @@ -14,6 +14,8 @@ module.exports = { | |
| 14 | 
             
            	},
         | 
| 15 | 
             
            	rules: {
         | 
| 16 | 
             
            		"no-shadow": ["error"],
         | 
|  | |
|  | |
| 17 | 
             
            	},
         | 
| 18 | 
             
            	env: {
         | 
| 19 | 
             
            		browser: true,
         | 
|  | |
| 14 | 
             
            	},
         | 
| 15 | 
             
            	rules: {
         | 
| 16 | 
             
            		"no-shadow": ["error"],
         | 
| 17 | 
            +
            		"@typescript-eslint/no-explicit-any": "error",
         | 
| 18 | 
            +
            		"@typescript-eslint/no-non-null-assertion": "error",
         | 
| 19 | 
             
            	},
         | 
| 20 | 
             
            	env: {
         | 
| 21 | 
             
            		browser: true,
         | 
    	
        .github/workflows/lint-and-test.yml
    ADDED
    
    | @@ -0,0 +1,27 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
            name: Lint and test
         | 
| 2 | 
            +
            on:
         | 
| 3 | 
            +
              pull_request:
         | 
| 4 | 
            +
              push:
         | 
| 5 | 
            +
                branches:
         | 
| 6 | 
            +
                  - main
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            jobs:
         | 
| 9 | 
            +
              lint:
         | 
| 10 | 
            +
                runs-on: ubuntu-latest
         | 
| 11 | 
            +
                timeout-minutes: 10
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                steps:
         | 
| 14 | 
            +
                  - uses: actions/checkout@v3
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                  - uses: actions/setup-node@v3
         | 
| 17 | 
            +
                    with:
         | 
| 18 | 
            +
                      node-version: "18"
         | 
| 19 | 
            +
                      cache: "npm"
         | 
| 20 | 
            +
                  - run: |
         | 
| 21 | 
            +
                      npm install ci
         | 
| 22 | 
            +
                  - name: "Checking lint/format errors"
         | 
| 23 | 
            +
                    run: |
         | 
| 24 | 
            +
                      npm run lint
         | 
| 25 | 
            +
                  - name: "Checking type errors"
         | 
| 26 | 
            +
                    run: |
         | 
| 27 | 
            +
                      npm run check
         | 
    	
        package-lock.json
    CHANGED
    
    | @@ -1,12 +1,12 @@ | |
| 1 | 
             
            {
         | 
| 2 | 
             
            	"name": "chat-ui",
         | 
| 3 | 
            -
            	"version": "0.0 | 
| 4 | 
             
            	"lockfileVersion": 3,
         | 
| 5 | 
             
            	"requires": true,
         | 
| 6 | 
             
            	"packages": {
         | 
| 7 | 
             
            		"": {
         | 
| 8 | 
             
            			"name": "chat-ui",
         | 
| 9 | 
            -
            			"version": "0.0 | 
| 10 | 
             
            			"dependencies": {
         | 
| 11 | 
             
            				"@huggingface/inference": "^2.2.0",
         | 
| 12 | 
             
            				"autoprefixer": "^10.4.14",
         | 
| @@ -23,8 +23,8 @@ | |
| 23 | 
             
            			},
         | 
| 24 | 
             
            			"devDependencies": {
         | 
| 25 | 
             
            				"@iconify-json/carbon": "^1.1.16",
         | 
| 26 | 
            -
            				"@sveltejs/adapter-node": "^1.2. | 
| 27 | 
            -
            				"@sveltejs/kit": "^1. | 
| 28 | 
             
            				"@tailwindcss/typography": "^0.5.9",
         | 
| 29 | 
             
            				"@types/marked": "^4.0.8",
         | 
| 30 | 
             
            				"@typescript-eslint/eslint-plugin": "^5.45.0",
         | 
| @@ -35,8 +35,8 @@ | |
| 35 | 
             
            				"prettier": "^2.8.0",
         | 
| 36 | 
             
            				"prettier-plugin-svelte": "^2.8.1",
         | 
| 37 | 
             
            				"prettier-plugin-tailwindcss": "^0.2.7",
         | 
| 38 | 
            -
            				"svelte": "^3. | 
| 39 | 
            -
            				"svelte-check": "^3.0 | 
| 40 | 
             
            				"tslib": "^2.4.1",
         | 
| 41 | 
             
            				"typescript": "^4.9.3",
         | 
| 42 | 
             
            				"unplugin-icons": "^0.16.1",
         | 
| @@ -769,9 +769,9 @@ | |
| 769 | 
             
            			}
         | 
| 770 | 
             
            		},
         | 
| 771 | 
             
            		"node_modules/@sveltejs/adapter-node": {
         | 
| 772 | 
            -
            			"version": "1.2. | 
| 773 | 
            -
            			"resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-1.2. | 
| 774 | 
            -
            			"integrity": "sha512- | 
| 775 | 
             
            			"dev": true,
         | 
| 776 | 
             
            			"dependencies": {
         | 
| 777 | 
             
            				"@rollup/plugin-commonjs": "^24.0.0",
         | 
| @@ -784,13 +784,13 @@ | |
| 784 | 
             
            			}
         | 
| 785 | 
             
            		},
         | 
| 786 | 
             
            		"node_modules/@sveltejs/kit": {
         | 
| 787 | 
            -
            			"version": "1.15. | 
| 788 | 
            -
            			"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.15. | 
| 789 | 
            -
            			"integrity": "sha512- | 
| 790 | 
             
            			"dev": true,
         | 
| 791 | 
             
            			"hasInstallScript": true,
         | 
| 792 | 
             
            			"dependencies": {
         | 
| 793 | 
            -
            				"@sveltejs/vite-plugin-svelte": "^2. | 
| 794 | 
             
            				"@types/cookie": "^0.5.1",
         | 
| 795 | 
             
            				"cookie": "^0.5.0",
         | 
| 796 | 
             
            				"devalue": "^4.3.0",
         | 
| @@ -799,10 +799,10 @@ | |
| 799 | 
             
            				"magic-string": "^0.30.0",
         | 
| 800 | 
             
            				"mime": "^3.0.0",
         | 
| 801 | 
             
            				"sade": "^1.8.1",
         | 
| 802 | 
            -
            				"set-cookie-parser": "^2. | 
| 803 | 
             
            				"sirv": "^2.0.2",
         | 
| 804 | 
             
            				"tiny-glob": "^0.2.9",
         | 
| 805 | 
            -
            				"undici": "5. | 
| 806 | 
             
            			},
         | 
| 807 | 
             
            			"bin": {
         | 
| 808 | 
             
            				"svelte-kit": "svelte-kit.js"
         | 
| @@ -816,17 +816,17 @@ | |
| 816 | 
             
            			}
         | 
| 817 | 
             
            		},
         | 
| 818 | 
             
            		"node_modules/@sveltejs/vite-plugin-svelte": {
         | 
| 819 | 
            -
            			"version": "2. | 
| 820 | 
            -
            			"resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2. | 
| 821 | 
            -
            			"integrity": "sha512- | 
| 822 | 
             
            			"dev": true,
         | 
| 823 | 
             
            			"dependencies": {
         | 
| 824 | 
             
            				"debug": "^4.3.4",
         | 
| 825 | 
            -
            				"deepmerge": "^4. | 
| 826 | 
             
            				"kleur": "^4.1.5",
         | 
| 827 | 
            -
            				"magic-string": "^0. | 
| 828 | 
             
            				"svelte-hmr": "^0.15.1",
         | 
| 829 | 
            -
            				"vitefu": "^0.2. | 
| 830 | 
             
            			},
         | 
| 831 | 
             
            			"engines": {
         | 
| 832 | 
             
            				"node": "^14.18.0 || >= 16"
         | 
| @@ -836,18 +836,6 @@ | |
| 836 | 
             
            				"vite": "^4.0.0"
         | 
| 837 | 
             
            			}
         | 
| 838 | 
             
            		},
         | 
| 839 | 
            -
            		"node_modules/@sveltejs/vite-plugin-svelte/node_modules/magic-string": {
         | 
| 840 | 
            -
            			"version": "0.27.0",
         | 
| 841 | 
            -
            			"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz",
         | 
| 842 | 
            -
            			"integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==",
         | 
| 843 | 
            -
            			"dev": true,
         | 
| 844 | 
            -
            			"dependencies": {
         | 
| 845 | 
            -
            				"@jridgewell/sourcemap-codec": "^1.4.13"
         | 
| 846 | 
            -
            			},
         | 
| 847 | 
            -
            			"engines": {
         | 
| 848 | 
            -
            				"node": ">=12"
         | 
| 849 | 
            -
            			}
         | 
| 850 | 
            -
            		},
         | 
| 851 | 
             
            		"node_modules/@tailwindcss/typography": {
         | 
| 852 | 
             
            			"version": "0.5.9",
         | 
| 853 | 
             
            			"resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.9.tgz",
         | 
| @@ -917,15 +905,6 @@ | |
| 917 | 
             
            			"integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==",
         | 
| 918 | 
             
            			"dev": true
         | 
| 919 | 
             
            		},
         | 
| 920 | 
            -
            		"node_modules/@types/sass": {
         | 
| 921 | 
            -
            			"version": "1.43.1",
         | 
| 922 | 
            -
            			"resolved": "https://registry.npmjs.org/@types/sass/-/sass-1.43.1.tgz",
         | 
| 923 | 
            -
            			"integrity": "sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==",
         | 
| 924 | 
            -
            			"dev": true,
         | 
| 925 | 
            -
            			"dependencies": {
         | 
| 926 | 
            -
            				"@types/node": "*"
         | 
| 927 | 
            -
            			}
         | 
| 928 | 
            -
            		},
         | 
| 929 | 
             
            		"node_modules/@types/semver": {
         | 
| 930 | 
             
            			"version": "7.3.13",
         | 
| 931 | 
             
            			"resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz",
         | 
| @@ -1560,9 +1539,9 @@ | |
| 1560 | 
             
            			"dev": true
         | 
| 1561 | 
             
            		},
         | 
| 1562 | 
             
            		"node_modules/deepmerge": {
         | 
| 1563 | 
            -
            			"version": "4.3. | 
| 1564 | 
            -
            			"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3. | 
| 1565 | 
            -
            			"integrity": "sha512- | 
| 1566 | 
             
            			"dev": true,
         | 
| 1567 | 
             
            			"engines": {
         | 
| 1568 | 
             
            				"node": ">=0.10.0"
         | 
| @@ -2194,9 +2173,9 @@ | |
| 2194 | 
             
            			"dev": true
         | 
| 2195 | 
             
            		},
         | 
| 2196 | 
             
            		"node_modules/graceful-fs": {
         | 
| 2197 | 
            -
            			"version": "4.2. | 
| 2198 | 
            -
            			"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2. | 
| 2199 | 
            -
            			"integrity": "sha512- | 
| 2200 | 
             
            			"dev": true
         | 
| 2201 | 
             
            		},
         | 
| 2202 | 
             
            		"node_modules/grapheme-splitter": {
         | 
| @@ -3430,9 +3409,9 @@ | |
| 3430 | 
             
            			}
         | 
| 3431 | 
             
            		},
         | 
| 3432 | 
             
            		"node_modules/set-cookie-parser": {
         | 
| 3433 | 
            -
            			"version": "2. | 
| 3434 | 
            -
            			"resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2. | 
| 3435 | 
            -
            			"integrity": "sha512- | 
| 3436 | 
             
            			"dev": true
         | 
| 3437 | 
             
            		},
         | 
| 3438 | 
             
            		"node_modules/shebang-command": {
         | 
| @@ -3657,18 +3636,18 @@ | |
| 3657 | 
             
            			}
         | 
| 3658 | 
             
            		},
         | 
| 3659 | 
             
            		"node_modules/svelte": {
         | 
| 3660 | 
            -
            			"version": "3. | 
| 3661 | 
            -
            			"resolved": "https://registry.npmjs.org/svelte/-/svelte-3. | 
| 3662 | 
            -
            			"integrity": "sha512- | 
| 3663 | 
             
            			"dev": true,
         | 
| 3664 | 
             
            			"engines": {
         | 
| 3665 | 
             
            				"node": ">= 8"
         | 
| 3666 | 
             
            			}
         | 
| 3667 | 
             
            		},
         | 
| 3668 | 
             
            		"node_modules/svelte-check": {
         | 
| 3669 | 
            -
            			"version": "3.0 | 
| 3670 | 
            -
            			"resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.0. | 
| 3671 | 
            -
            			"integrity": "sha512- | 
| 3672 | 
             
            			"dev": true,
         | 
| 3673 | 
             
            			"dependencies": {
         | 
| 3674 | 
             
            				"@jridgewell/trace-mapping": "^0.3.17",
         | 
| @@ -3677,8 +3656,8 @@ | |
| 3677 | 
             
            				"import-fresh": "^3.2.1",
         | 
| 3678 | 
             
            				"picocolors": "^1.0.0",
         | 
| 3679 | 
             
            				"sade": "^1.7.4",
         | 
| 3680 | 
            -
            				"svelte-preprocess": "^5.0. | 
| 3681 | 
            -
            				"typescript": "^ | 
| 3682 | 
             
            			},
         | 
| 3683 | 
             
            			"bin": {
         | 
| 3684 | 
             
            				"svelte-check": "bin/svelte-check"
         | 
| @@ -3687,6 +3666,19 @@ | |
| 3687 | 
             
            				"svelte": "^3.55.0"
         | 
| 3688 | 
             
            			}
         | 
| 3689 | 
             
            		},
         | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 3690 | 
             
            		"node_modules/svelte-hmr": {
         | 
| 3691 | 
             
            			"version": "0.15.1",
         | 
| 3692 | 
             
            			"resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.1.tgz",
         | 
| @@ -3700,14 +3692,13 @@ | |
| 3700 | 
             
            			}
         | 
| 3701 | 
             
            		},
         | 
| 3702 | 
             
            		"node_modules/svelte-preprocess": {
         | 
| 3703 | 
            -
            			"version": "5.0. | 
| 3704 | 
            -
            			"resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.0. | 
| 3705 | 
            -
            			"integrity": "sha512- | 
| 3706 | 
             
            			"dev": true,
         | 
| 3707 | 
             
            			"hasInstallScript": true,
         | 
| 3708 | 
             
            			"dependencies": {
         | 
| 3709 | 
             
            				"@types/pug": "^2.0.6",
         | 
| 3710 | 
            -
            				"@types/sass": "^1.43.1",
         | 
| 3711 | 
             
            				"detect-indent": "^6.1.0",
         | 
| 3712 | 
             
            				"magic-string": "^0.27.0",
         | 
| 3713 | 
             
            				"sorcery": "^0.11.0",
         | 
| @@ -3727,7 +3718,7 @@ | |
| 3727 | 
             
            				"stylus": "^0.55.0",
         | 
| 3728 | 
             
            				"sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0",
         | 
| 3729 | 
             
            				"svelte": "^3.23.0",
         | 
| 3730 | 
            -
            				"typescript": " | 
| 3731 | 
             
            			},
         | 
| 3732 | 
             
            			"peerDependenciesMeta": {
         | 
| 3733 | 
             
            				"@babel/core": {
         | 
| @@ -3962,15 +3953,15 @@ | |
| 3962 | 
             
            			}
         | 
| 3963 | 
             
            		},
         | 
| 3964 | 
             
            		"node_modules/undici": {
         | 
| 3965 | 
            -
            			"version": "5. | 
| 3966 | 
            -
            			"resolved": "https://registry.npmjs.org/undici/-/undici-5. | 
| 3967 | 
            -
            			"integrity": "sha512- | 
| 3968 | 
             
            			"dev": true,
         | 
| 3969 | 
             
            			"dependencies": {
         | 
| 3970 | 
             
            				"busboy": "^1.6.0"
         | 
| 3971 | 
             
            			},
         | 
| 3972 | 
             
            			"engines": {
         | 
| 3973 | 
            -
            				"node": ">= | 
| 3974 | 
             
            			}
         | 
| 3975 | 
             
            		},
         | 
| 3976 | 
             
            		"node_modules/unplugin": {
         | 
|  | |
| 1 | 
             
            {
         | 
| 2 | 
             
            	"name": "chat-ui",
         | 
| 3 | 
            +
            	"version": "0.1.0",
         | 
| 4 | 
             
            	"lockfileVersion": 3,
         | 
| 5 | 
             
            	"requires": true,
         | 
| 6 | 
             
            	"packages": {
         | 
| 7 | 
             
            		"": {
         | 
| 8 | 
             
            			"name": "chat-ui",
         | 
| 9 | 
            +
            			"version": "0.1.0",
         | 
| 10 | 
             
            			"dependencies": {
         | 
| 11 | 
             
            				"@huggingface/inference": "^2.2.0",
         | 
| 12 | 
             
            				"autoprefixer": "^10.4.14",
         | 
|  | |
| 23 | 
             
            			},
         | 
| 24 | 
             
            			"devDependencies": {
         | 
| 25 | 
             
            				"@iconify-json/carbon": "^1.1.16",
         | 
| 26 | 
            +
            				"@sveltejs/adapter-node": "^1.2.4",
         | 
| 27 | 
            +
            				"@sveltejs/kit": "^1.15.10",
         | 
| 28 | 
             
            				"@tailwindcss/typography": "^0.5.9",
         | 
| 29 | 
             
            				"@types/marked": "^4.0.8",
         | 
| 30 | 
             
            				"@typescript-eslint/eslint-plugin": "^5.45.0",
         | 
|  | |
| 35 | 
             
            				"prettier": "^2.8.0",
         | 
| 36 | 
             
            				"prettier-plugin-svelte": "^2.8.1",
         | 
| 37 | 
             
            				"prettier-plugin-tailwindcss": "^0.2.7",
         | 
| 38 | 
            +
            				"svelte": "^3.58.0",
         | 
| 39 | 
            +
            				"svelte-check": "^3.2.0",
         | 
| 40 | 
             
            				"tslib": "^2.4.1",
         | 
| 41 | 
             
            				"typescript": "^4.9.3",
         | 
| 42 | 
             
            				"unplugin-icons": "^0.16.1",
         | 
|  | |
| 769 | 
             
            			}
         | 
| 770 | 
             
            		},
         | 
| 771 | 
             
            		"node_modules/@sveltejs/adapter-node": {
         | 
| 772 | 
            +
            			"version": "1.2.4",
         | 
| 773 | 
            +
            			"resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-1.2.4.tgz",
         | 
| 774 | 
            +
            			"integrity": "sha512-TNnhS+OKRZ9RKnC+ho5mlE2FJquI61i0v7yOXxBUSU3LAoYH2kwVVL8P8ecjefmZ8BOfM1V54pBnDODBU5CEaA==",
         | 
| 775 | 
             
            			"dev": true,
         | 
| 776 | 
             
            			"dependencies": {
         | 
| 777 | 
             
            				"@rollup/plugin-commonjs": "^24.0.0",
         | 
|  | |
| 784 | 
             
            			}
         | 
| 785 | 
             
            		},
         | 
| 786 | 
             
            		"node_modules/@sveltejs/kit": {
         | 
| 787 | 
            +
            			"version": "1.15.10",
         | 
| 788 | 
            +
            			"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.15.10.tgz",
         | 
| 789 | 
            +
            			"integrity": "sha512-qRZxODfsixjgY+7OOxhAQB8viVaxjyDUz2lM6cE22kObzF5mNke81FIxB2wdaOX42LyfVwIYULZQSr7duxLZ7w==",
         | 
| 790 | 
             
            			"dev": true,
         | 
| 791 | 
             
            			"hasInstallScript": true,
         | 
| 792 | 
             
            			"dependencies": {
         | 
| 793 | 
            +
            				"@sveltejs/vite-plugin-svelte": "^2.1.1",
         | 
| 794 | 
             
            				"@types/cookie": "^0.5.1",
         | 
| 795 | 
             
            				"cookie": "^0.5.0",
         | 
| 796 | 
             
            				"devalue": "^4.3.0",
         | 
|  | |
| 799 | 
             
            				"magic-string": "^0.30.0",
         | 
| 800 | 
             
            				"mime": "^3.0.0",
         | 
| 801 | 
             
            				"sade": "^1.8.1",
         | 
| 802 | 
            +
            				"set-cookie-parser": "^2.6.0",
         | 
| 803 | 
             
            				"sirv": "^2.0.2",
         | 
| 804 | 
             
            				"tiny-glob": "^0.2.9",
         | 
| 805 | 
            +
            				"undici": "~5.22.0"
         | 
| 806 | 
             
            			},
         | 
| 807 | 
             
            			"bin": {
         | 
| 808 | 
             
            				"svelte-kit": "svelte-kit.js"
         | 
|  | |
| 816 | 
             
            			}
         | 
| 817 | 
             
            		},
         | 
| 818 | 
             
            		"node_modules/@sveltejs/vite-plugin-svelte": {
         | 
| 819 | 
            +
            			"version": "2.1.1",
         | 
| 820 | 
            +
            			"resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.1.1.tgz",
         | 
| 821 | 
            +
            			"integrity": "sha512-7YeBDt4us0FiIMNsVXxyaP4Hwyn2/v9x3oqStkHU3ZdIc5O22pGwUwH33wUqYo+7Itdmo8zxJ45Qvfm3H7UUjQ==",
         | 
| 822 | 
             
            			"dev": true,
         | 
| 823 | 
             
            			"dependencies": {
         | 
| 824 | 
             
            				"debug": "^4.3.4",
         | 
| 825 | 
            +
            				"deepmerge": "^4.3.1",
         | 
| 826 | 
             
            				"kleur": "^4.1.5",
         | 
| 827 | 
            +
            				"magic-string": "^0.30.0",
         | 
| 828 | 
             
            				"svelte-hmr": "^0.15.1",
         | 
| 829 | 
            +
            				"vitefu": "^0.2.4"
         | 
| 830 | 
             
            			},
         | 
| 831 | 
             
            			"engines": {
         | 
| 832 | 
             
            				"node": "^14.18.0 || >= 16"
         | 
|  | |
| 836 | 
             
            				"vite": "^4.0.0"
         | 
| 837 | 
             
            			}
         | 
| 838 | 
             
            		},
         | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 839 | 
             
            		"node_modules/@tailwindcss/typography": {
         | 
| 840 | 
             
            			"version": "0.5.9",
         | 
| 841 | 
             
            			"resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.9.tgz",
         | 
|  | |
| 905 | 
             
            			"integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==",
         | 
| 906 | 
             
            			"dev": true
         | 
| 907 | 
             
            		},
         | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 908 | 
             
            		"node_modules/@types/semver": {
         | 
| 909 | 
             
            			"version": "7.3.13",
         | 
| 910 | 
             
            			"resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz",
         | 
|  | |
| 1539 | 
             
            			"dev": true
         | 
| 1540 | 
             
            		},
         | 
| 1541 | 
             
            		"node_modules/deepmerge": {
         | 
| 1542 | 
            +
            			"version": "4.3.1",
         | 
| 1543 | 
            +
            			"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
         | 
| 1544 | 
            +
            			"integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
         | 
| 1545 | 
             
            			"dev": true,
         | 
| 1546 | 
             
            			"engines": {
         | 
| 1547 | 
             
            				"node": ">=0.10.0"
         | 
|  | |
| 2173 | 
             
            			"dev": true
         | 
| 2174 | 
             
            		},
         | 
| 2175 | 
             
            		"node_modules/graceful-fs": {
         | 
| 2176 | 
            +
            			"version": "4.2.11",
         | 
| 2177 | 
            +
            			"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
         | 
| 2178 | 
            +
            			"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
         | 
| 2179 | 
             
            			"dev": true
         | 
| 2180 | 
             
            		},
         | 
| 2181 | 
             
            		"node_modules/grapheme-splitter": {
         | 
|  | |
| 3409 | 
             
            			}
         | 
| 3410 | 
             
            		},
         | 
| 3411 | 
             
            		"node_modules/set-cookie-parser": {
         | 
| 3412 | 
            +
            			"version": "2.6.0",
         | 
| 3413 | 
            +
            			"resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz",
         | 
| 3414 | 
            +
            			"integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==",
         | 
| 3415 | 
             
            			"dev": true
         | 
| 3416 | 
             
            		},
         | 
| 3417 | 
             
            		"node_modules/shebang-command": {
         | 
|  | |
| 3636 | 
             
            			}
         | 
| 3637 | 
             
            		},
         | 
| 3638 | 
             
            		"node_modules/svelte": {
         | 
| 3639 | 
            +
            			"version": "3.58.0",
         | 
| 3640 | 
            +
            			"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.58.0.tgz",
         | 
| 3641 | 
            +
            			"integrity": "sha512-brIBNNB76mXFmU/Kerm4wFnkskBbluBDCjx/8TcpYRb298Yh2dztS2kQ6bhtjMcvUhd5ynClfwpz5h2gnzdQ1A==",
         | 
| 3642 | 
             
            			"dev": true,
         | 
| 3643 | 
             
            			"engines": {
         | 
| 3644 | 
             
            				"node": ">= 8"
         | 
| 3645 | 
             
            			}
         | 
| 3646 | 
             
            		},
         | 
| 3647 | 
             
            		"node_modules/svelte-check": {
         | 
| 3648 | 
            +
            			"version": "3.2.0",
         | 
| 3649 | 
            +
            			"resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.2.0.tgz",
         | 
| 3650 | 
            +
            			"integrity": "sha512-6ZnscN8dHEN5Eq5LgIzjj07W9nc9myyBH+diXsUAuiY/3rt0l65/LCIQYlIuoFEjp2F1NhXqZiJwV9omPj9tMw==",
         | 
| 3651 | 
             
            			"dev": true,
         | 
| 3652 | 
             
            			"dependencies": {
         | 
| 3653 | 
             
            				"@jridgewell/trace-mapping": "^0.3.17",
         | 
|  | |
| 3656 | 
             
            				"import-fresh": "^3.2.1",
         | 
| 3657 | 
             
            				"picocolors": "^1.0.0",
         | 
| 3658 | 
             
            				"sade": "^1.7.4",
         | 
| 3659 | 
            +
            				"svelte-preprocess": "^5.0.3",
         | 
| 3660 | 
            +
            				"typescript": "^5.0.3"
         | 
| 3661 | 
             
            			},
         | 
| 3662 | 
             
            			"bin": {
         | 
| 3663 | 
             
            				"svelte-check": "bin/svelte-check"
         | 
|  | |
| 3666 | 
             
            				"svelte": "^3.55.0"
         | 
| 3667 | 
             
            			}
         | 
| 3668 | 
             
            		},
         | 
| 3669 | 
            +
            		"node_modules/svelte-check/node_modules/typescript": {
         | 
| 3670 | 
            +
            			"version": "5.0.4",
         | 
| 3671 | 
            +
            			"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
         | 
| 3672 | 
            +
            			"integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
         | 
| 3673 | 
            +
            			"dev": true,
         | 
| 3674 | 
            +
            			"bin": {
         | 
| 3675 | 
            +
            				"tsc": "bin/tsc",
         | 
| 3676 | 
            +
            				"tsserver": "bin/tsserver"
         | 
| 3677 | 
            +
            			},
         | 
| 3678 | 
            +
            			"engines": {
         | 
| 3679 | 
            +
            				"node": ">=12.20"
         | 
| 3680 | 
            +
            			}
         | 
| 3681 | 
            +
            		},
         | 
| 3682 | 
             
            		"node_modules/svelte-hmr": {
         | 
| 3683 | 
             
            			"version": "0.15.1",
         | 
| 3684 | 
             
            			"resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.1.tgz",
         | 
|  | |
| 3692 | 
             
            			}
         | 
| 3693 | 
             
            		},
         | 
| 3694 | 
             
            		"node_modules/svelte-preprocess": {
         | 
| 3695 | 
            +
            			"version": "5.0.3",
         | 
| 3696 | 
            +
            			"resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.0.3.tgz",
         | 
| 3697 | 
            +
            			"integrity": "sha512-GrHF1rusdJVbOZOwgPWtpqmaexkydznKzy5qIC2FabgpFyKN57bjMUUUqPRfbBXK5igiEWn1uO/DXsa2vJ5VHA==",
         | 
| 3698 | 
             
            			"dev": true,
         | 
| 3699 | 
             
            			"hasInstallScript": true,
         | 
| 3700 | 
             
            			"dependencies": {
         | 
| 3701 | 
             
            				"@types/pug": "^2.0.6",
         | 
|  | |
| 3702 | 
             
            				"detect-indent": "^6.1.0",
         | 
| 3703 | 
             
            				"magic-string": "^0.27.0",
         | 
| 3704 | 
             
            				"sorcery": "^0.11.0",
         | 
|  | |
| 3718 | 
             
            				"stylus": "^0.55.0",
         | 
| 3719 | 
             
            				"sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0",
         | 
| 3720 | 
             
            				"svelte": "^3.23.0",
         | 
| 3721 | 
            +
            				"typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0"
         | 
| 3722 | 
             
            			},
         | 
| 3723 | 
             
            			"peerDependenciesMeta": {
         | 
| 3724 | 
             
            				"@babel/core": {
         | 
|  | |
| 3953 | 
             
            			}
         | 
| 3954 | 
             
            		},
         | 
| 3955 | 
             
            		"node_modules/undici": {
         | 
| 3956 | 
            +
            			"version": "5.22.0",
         | 
| 3957 | 
            +
            			"resolved": "https://registry.npmjs.org/undici/-/undici-5.22.0.tgz",
         | 
| 3958 | 
            +
            			"integrity": "sha512-fR9RXCc+6Dxav4P9VV/sp5w3eFiSdOjJYsbtWfd4s5L5C4ogyuVpdKIVHeW0vV1MloM65/f7W45nR9ZxwVdyiA==",
         | 
| 3959 | 
             
            			"dev": true,
         | 
| 3960 | 
             
            			"dependencies": {
         | 
| 3961 | 
             
            				"busboy": "^1.6.0"
         | 
| 3962 | 
             
            			},
         | 
| 3963 | 
             
            			"engines": {
         | 
| 3964 | 
            +
            				"node": ">=14.0"
         | 
| 3965 | 
             
            			}
         | 
| 3966 | 
             
            		},
         | 
| 3967 | 
             
            		"node_modules/unplugin": {
         | 
    	
        package.json
    CHANGED
    
    | @@ -13,8 +13,8 @@ | |
| 13 | 
             
            	},
         | 
| 14 | 
             
            	"devDependencies": {
         | 
| 15 | 
             
            		"@iconify-json/carbon": "^1.1.16",
         | 
| 16 | 
            -
            		"@sveltejs/adapter-node": "^1.2. | 
| 17 | 
            -
            		"@sveltejs/kit": "^1. | 
| 18 | 
             
            		"@tailwindcss/typography": "^0.5.9",
         | 
| 19 | 
             
            		"@types/marked": "^4.0.8",
         | 
| 20 | 
             
            		"@typescript-eslint/eslint-plugin": "^5.45.0",
         | 
| @@ -25,8 +25,8 @@ | |
| 25 | 
             
            		"prettier": "^2.8.0",
         | 
| 26 | 
             
            		"prettier-plugin-svelte": "^2.8.1",
         | 
| 27 | 
             
            		"prettier-plugin-tailwindcss": "^0.2.7",
         | 
| 28 | 
            -
            		"svelte": "^3. | 
| 29 | 
            -
            		"svelte-check": "^3.0 | 
| 30 | 
             
            		"tslib": "^2.4.1",
         | 
| 31 | 
             
            		"typescript": "^4.9.3",
         | 
| 32 | 
             
            		"unplugin-icons": "^0.16.1",
         | 
|  | |
| 13 | 
             
            	},
         | 
| 14 | 
             
            	"devDependencies": {
         | 
| 15 | 
             
            		"@iconify-json/carbon": "^1.1.16",
         | 
| 16 | 
            +
            		"@sveltejs/adapter-node": "^1.2.4",
         | 
| 17 | 
            +
            		"@sveltejs/kit": "^1.15.10",
         | 
| 18 | 
             
            		"@tailwindcss/typography": "^0.5.9",
         | 
| 19 | 
             
            		"@types/marked": "^4.0.8",
         | 
| 20 | 
             
            		"@typescript-eslint/eslint-plugin": "^5.45.0",
         | 
|  | |
| 25 | 
             
            		"prettier": "^2.8.0",
         | 
| 26 | 
             
            		"prettier-plugin-svelte": "^2.8.1",
         | 
| 27 | 
             
            		"prettier-plugin-tailwindcss": "^0.2.7",
         | 
| 28 | 
            +
            		"svelte": "^3.58.0",
         | 
| 29 | 
            +
            		"svelte-check": "^3.2.0",
         | 
| 30 | 
             
            		"tslib": "^2.4.1",
         | 
| 31 | 
             
            		"typescript": "^4.9.3",
         | 
| 32 | 
             
            		"unplugin-icons": "^0.16.1",
         | 
    	
        src/lib/actions/snapScrollToBottom.ts
    CHANGED
    
    | @@ -8,7 +8,7 @@ const detachedOffset = 10; | |
| 8 | 
             
             * @param node element to snap scroll to bottom
         | 
| 9 | 
             
             * @param dependency pass in a dependency to update scroll on changes.
         | 
| 10 | 
             
             */
         | 
| 11 | 
            -
            export const snapScrollToBottom = (node: HTMLElement, dependency:  | 
| 12 | 
             
            	let prevScrollValue = node.scrollTop;
         | 
| 13 | 
             
            	let isDetached = false;
         | 
| 14 |  | 
|  | |
| 8 | 
             
             * @param node element to snap scroll to bottom
         | 
| 9 | 
             
             * @param dependency pass in a dependency to update scroll on changes.
         | 
| 10 | 
             
             */
         | 
| 11 | 
            +
            export const snapScrollToBottom = (node: HTMLElement, dependency: unknown) => {
         | 
| 12 | 
             
            	let prevScrollValue = node.scrollTop;
         | 
| 13 | 
             
            	let isDetached = false;
         | 
| 14 |  | 
    	
        src/lib/buildPrompt.ts
    CHANGED
    
    | @@ -12,7 +12,7 @@ import type { Message } from "./types/Message"; | |
| 12 | 
             
             *
         | 
| 13 | 
             
             * <|assistant|>hi<|endoftext|><|prompter|>hello<|endoftext|><|assistant|>
         | 
| 14 | 
             
             */
         | 
| 15 | 
            -
            export function buildPrompt(messages: Message[]): string {
         | 
| 16 | 
             
            	const prompt =
         | 
| 17 | 
             
            		messages
         | 
| 18 | 
             
            			.map(
         | 
|  | |
| 12 | 
             
             *
         | 
| 13 | 
             
             * <|assistant|>hi<|endoftext|><|prompter|>hello<|endoftext|><|assistant|>
         | 
| 14 | 
             
             */
         | 
| 15 | 
            +
            export function buildPrompt(messages: Pick<Message, "from" | "content">[]): string {
         | 
| 16 | 
             
            	const prompt =
         | 
| 17 | 
             
            		messages
         | 
| 18 | 
             
            			.map(
         | 
    	
        src/lib/components/CopyToClipBoardBtn.svelte
    CHANGED
    
    | @@ -8,7 +8,7 @@ | |
| 8 | 
             
            	export let value: string;
         | 
| 9 |  | 
| 10 | 
             
            	let isSuccess = false;
         | 
| 11 | 
            -
            	let timeout:  | 
| 12 |  | 
| 13 | 
             
            	const handleClick = async () => {
         | 
| 14 | 
             
            		// writeText() can be unavailable or fail in some cases (iframe, etc) so we try/catch
         | 
|  | |
| 8 | 
             
            	export let value: string;
         | 
| 9 |  | 
| 10 | 
             
            	let isSuccess = false;
         | 
| 11 | 
            +
            	let timeout: ReturnType<typeof setTimeout>;
         | 
| 12 |  | 
| 13 | 
             
            	const handleClick = async () => {
         | 
| 14 | 
             
            		// writeText() can be unavailable or fail in some cases (iframe, etc) so we try/catch
         | 
    	
        src/lib/components/EthicsModal.svelte
    CHANGED
    
    | @@ -5,7 +5,7 @@ | |
| 5 | 
             
            	import type { Settings } from "$lib/types/Settings";
         | 
| 6 | 
             
            	import { updateSettings } from "$lib/updateSettings";
         | 
| 7 |  | 
| 8 | 
            -
            	export let settings: Omit<Settings, "sessionId">;
         | 
| 9 | 
             
            </script>
         | 
| 10 |  | 
| 11 | 
             
            <Modal>
         | 
|  | |
| 5 | 
             
            	import type { Settings } from "$lib/types/Settings";
         | 
| 6 | 
             
            	import { updateSettings } from "$lib/updateSettings";
         | 
| 7 |  | 
| 8 | 
            +
            	export let settings: Omit<Settings, "sessionId" | "createdAt" | "updatedAt">;
         | 
| 9 | 
             
            </script>
         | 
| 10 |  | 
| 11 | 
             
            <Modal>
         | 
    	
        src/lib/components/ScrollToBottomBtn.svelte
    CHANGED
    
    | @@ -6,7 +6,7 @@ | |
| 6 | 
             
            	export let scrollNode: HTMLElement;
         | 
| 7 | 
             
            	export { className as class };
         | 
| 8 |  | 
| 9 | 
            -
            	let visible | 
| 10 | 
             
            	let className = "";
         | 
| 11 | 
             
            	let observer: ResizeObserver | null = null;
         | 
| 12 |  | 
|  | |
| 6 | 
             
            	export let scrollNode: HTMLElement;
         | 
| 7 | 
             
            	export { className as class };
         | 
| 8 |  | 
| 9 | 
            +
            	let visible = false;
         | 
| 10 | 
             
            	let className = "";
         | 
| 11 | 
             
            	let observer: ResizeObserver | null = null;
         | 
| 12 |  | 
    	
        src/lib/components/StopGeneratingBtn.svelte
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 | 
             
            <script lang="ts">
         | 
| 2 | 
             
            	import CarbonPause from "~icons/carbon/pause-filled";
         | 
| 3 |  | 
| 4 | 
            -
            	export let visible | 
| 5 | 
             
            	export let className = "";
         | 
| 6 | 
             
            </script>
         | 
| 7 |  | 
|  | |
| 1 | 
             
            <script lang="ts">
         | 
| 2 | 
             
            	import CarbonPause from "~icons/carbon/pause-filled";
         | 
| 3 |  | 
| 4 | 
            +
            	export let visible = false;
         | 
| 5 | 
             
            	export let className = "";
         | 
| 6 | 
             
            </script>
         | 
| 7 |  | 
    	
        src/lib/components/chat/ChatMessage.svelte
    CHANGED
    
    | @@ -25,13 +25,13 @@ | |
| 25 | 
             
            	}
         | 
| 26 |  | 
| 27 | 
             
            	export let message: Message;
         | 
| 28 | 
            -
            	export let loading | 
| 29 |  | 
| 30 | 
             
            	const dispatch = createEventDispatcher<{ retry: void }>();
         | 
| 31 |  | 
| 32 | 
             
            	let contentEl: HTMLElement;
         | 
| 33 | 
            -
            	let loadingEl:  | 
| 34 | 
            -
            	let pendingTimeout:  | 
| 35 |  | 
| 36 | 
             
            	const renderer = new marked.Renderer();
         | 
| 37 |  | 
|  | |
| 25 | 
             
            	}
         | 
| 26 |  | 
| 27 | 
             
            	export let message: Message;
         | 
| 28 | 
            +
            	export let loading = false;
         | 
| 29 |  | 
| 30 | 
             
            	const dispatch = createEventDispatcher<{ retry: void }>();
         | 
| 31 |  | 
| 32 | 
             
            	let contentEl: HTMLElement;
         | 
| 33 | 
            +
            	let loadingEl: IconLoading;
         | 
| 34 | 
            +
            	let pendingTimeout: ReturnType<typeof setTimeout>;
         | 
| 35 |  | 
| 36 | 
             
            	const renderer = new marked.Renderer();
         | 
| 37 |  | 
    	
        src/lib/components/chat/ChatWindow.svelte
    CHANGED
    
    | @@ -11,9 +11,9 @@ | |
| 11 | 
             
            	import { PUBLIC_MODEL_ID, PUBLIC_MODEL_NAME } from "$env/static/public";
         | 
| 12 |  | 
| 13 | 
             
            	export let messages: Message[] = [];
         | 
| 14 | 
            -
            	export let disabled | 
| 15 | 
            -
            	export let loading | 
| 16 | 
            -
            	export let pending | 
| 17 |  | 
| 18 | 
             
            	let message: string;
         | 
| 19 |  | 
|  | |
| 11 | 
             
            	import { PUBLIC_MODEL_ID, PUBLIC_MODEL_NAME } from "$env/static/public";
         | 
| 12 |  | 
| 13 | 
             
            	export let messages: Message[] = [];
         | 
| 14 | 
            +
            	export let disabled = false;
         | 
| 15 | 
            +
            	export let loading = false;
         | 
| 16 | 
            +
            	export let pending = false;
         | 
| 17 |  | 
| 18 | 
             
            	let message: string;
         | 
| 19 |  | 
    	
        src/lib/components/icons/IconChevron.svelte
    CHANGED
    
    | @@ -1,5 +1,5 @@ | |
| 1 | 
             
            <script lang="ts">
         | 
| 2 | 
            -
            	export let classNames | 
| 3 | 
             
            </script>
         | 
| 4 |  | 
| 5 | 
             
            <svg
         | 
|  | |
| 1 | 
             
            <script lang="ts">
         | 
| 2 | 
            +
            	export let classNames = "";
         | 
| 3 | 
             
            </script>
         | 
| 4 |  | 
| 5 | 
             
            <svg
         | 
    	
        src/lib/components/icons/IconLoading.svelte
    CHANGED
    
    | @@ -1,5 +1,5 @@ | |
| 1 | 
             
            <script lang="ts">
         | 
| 2 | 
            -
            	export let classNames | 
| 3 | 
             
            </script>
         | 
| 4 |  | 
| 5 | 
             
            <svg
         | 
|  | |
| 1 | 
             
            <script lang="ts">
         | 
| 2 | 
            +
            	export let classNames = "";
         | 
| 3 | 
             
            </script>
         | 
| 4 |  | 
| 5 | 
             
            <svg
         | 
    	
        src/lib/components/icons/Logo.svelte
    CHANGED
    
    | @@ -1,5 +1,5 @@ | |
| 1 | 
             
            <script lang="ts">
         | 
| 2 | 
            -
            	export let classNames | 
| 3 | 
             
            </script>
         | 
| 4 |  | 
| 5 | 
             
            <svg
         | 
|  | |
| 1 | 
             
            <script lang="ts">
         | 
| 2 | 
            +
            	export let classNames = "";
         | 
| 3 | 
             
            </script>
         | 
| 4 |  | 
| 5 | 
             
            <svg
         | 
    	
        src/routes/+layout.svelte
    CHANGED
    
    | @@ -20,7 +20,7 @@ | |
| 20 |  | 
| 21 | 
             
            	let isNavOpen = false;
         | 
| 22 | 
             
            	let isSettingsOpen = false;
         | 
| 23 | 
            -
            	let errorToastTimeout:  | 
| 24 | 
             
            	let currentError: string | null;
         | 
| 25 |  | 
| 26 | 
             
            	async function onError() {
         | 
|  | |
| 20 |  | 
| 21 | 
             
            	let isNavOpen = false;
         | 
| 22 | 
             
            	let isSettingsOpen = false;
         | 
| 23 | 
            +
            	let errorToastTimeout: ReturnType<typeof setTimeout>;
         | 
| 24 | 
             
            	let currentError: string | null;
         | 
| 25 |  | 
| 26 | 
             
            	async function onError() {
         | 
    	
        src/routes/conversation/[id]/+page.svelte
    CHANGED
    
    | @@ -41,8 +41,8 @@ | |
| 41 | 
             
            					top_p: 0.95,
         | 
| 42 | 
             
            					repetition_penalty: 1.2,
         | 
| 43 | 
             
            					top_k: 50,
         | 
| 44 | 
            -
            					// @ts-ignore
         | 
| 45 | 
             
            					truncate: parseInt(PUBLIC_MAX_INPUT_TOKENS),
         | 
|  | |
| 46 | 
             
            					watermark: false,
         | 
| 47 | 
             
            					max_new_tokens: 1024,
         | 
| 48 | 
             
            					stop: [PUBLIC_SEP_TOKEN],
         | 
| @@ -56,10 +56,10 @@ | |
| 56 | 
             
            			}
         | 
| 57 | 
             
            		);
         | 
| 58 |  | 
| 59 | 
            -
            		for await (const  | 
| 60 | 
             
            			pending = false;
         | 
| 61 |  | 
| 62 | 
            -
            			if (! | 
| 63 | 
             
            				break;
         | 
| 64 | 
             
            			}
         | 
| 65 |  | 
| @@ -79,17 +79,17 @@ | |
| 79 | 
             
            			}
         | 
| 80 |  | 
| 81 | 
             
            			// final message
         | 
| 82 | 
            -
            			if ( | 
| 83 | 
             
            				const lastMessage = messages[messages.length - 1];
         | 
| 84 |  | 
| 85 | 
             
            				if (lastMessage) {
         | 
| 86 | 
            -
            					lastMessage.content =  | 
| 87 | 
             
            					messages = [...messages];
         | 
| 88 | 
             
            				}
         | 
| 89 | 
             
            				break;
         | 
| 90 | 
             
            			}
         | 
| 91 |  | 
| 92 | 
            -
            			if (! | 
| 93 | 
             
            				const lastMessage = messages[messages.length - 1];
         | 
| 94 |  | 
| 95 | 
             
            				if (lastMessage?.from !== "assistant") {
         | 
| @@ -97,10 +97,10 @@ | |
| 97 | 
             
            					messages = [
         | 
| 98 | 
             
            						...messages,
         | 
| 99 | 
             
            						// id doesn't match the backend id but it's not important for assistant messages
         | 
| 100 | 
            -
            						{ from: "assistant", content:  | 
| 101 | 
             
            					];
         | 
| 102 | 
             
            				} else {
         | 
| 103 | 
            -
            					lastMessage.content +=  | 
| 104 | 
             
            					messages = [...messages];
         | 
| 105 | 
             
            				}
         | 
| 106 | 
             
            			}
         | 
|  | |
| 41 | 
             
            					top_p: 0.95,
         | 
| 42 | 
             
            					repetition_penalty: 1.2,
         | 
| 43 | 
             
            					top_k: 50,
         | 
|  | |
| 44 | 
             
            					truncate: parseInt(PUBLIC_MAX_INPUT_TOKENS),
         | 
| 45 | 
            +
            					// @ts-expect-error this param is not available in @huggingface/inference
         | 
| 46 | 
             
            					watermark: false,
         | 
| 47 | 
             
            					max_new_tokens: 1024,
         | 
| 48 | 
             
            					stop: [PUBLIC_SEP_TOKEN],
         | 
|  | |
| 56 | 
             
            			}
         | 
| 57 | 
             
            		);
         | 
| 58 |  | 
| 59 | 
            +
            		for await (const output of response) {
         | 
| 60 | 
             
            			pending = false;
         | 
| 61 |  | 
| 62 | 
            +
            			if (!output) {
         | 
| 63 | 
             
            				break;
         | 
| 64 | 
             
            			}
         | 
| 65 |  | 
|  | |
| 79 | 
             
            			}
         | 
| 80 |  | 
| 81 | 
             
            			// final message
         | 
| 82 | 
            +
            			if (output.generated_text) {
         | 
| 83 | 
             
            				const lastMessage = messages[messages.length - 1];
         | 
| 84 |  | 
| 85 | 
             
            				if (lastMessage) {
         | 
| 86 | 
            +
            					lastMessage.content = output.generated_text;
         | 
| 87 | 
             
            					messages = [...messages];
         | 
| 88 | 
             
            				}
         | 
| 89 | 
             
            				break;
         | 
| 90 | 
             
            			}
         | 
| 91 |  | 
| 92 | 
            +
            			if (!output.token.special) {
         | 
| 93 | 
             
            				const lastMessage = messages[messages.length - 1];
         | 
| 94 |  | 
| 95 | 
             
            				if (lastMessage?.from !== "assistant") {
         | 
|  | |
| 97 | 
             
            					messages = [
         | 
| 98 | 
             
            						...messages,
         | 
| 99 | 
             
            						// id doesn't match the backend id but it's not important for assistant messages
         | 
| 100 | 
            +
            						{ from: "assistant", content: output.token.text.trimStart(), id: randomUUID() },
         | 
| 101 | 
             
            					];
         | 
| 102 | 
             
            				} else {
         | 
| 103 | 
            +
            					lastMessage.content += output.token.text;
         | 
| 104 | 
             
            					messages = [...messages];
         | 
| 105 | 
             
            				}
         | 
| 106 | 
             
            			}
         | 
    	
        src/routes/conversation/[id]/+server.ts
    CHANGED
    
    | @@ -83,7 +83,11 @@ export async function POST({ request, fetch, locals, params }) { | |
| 83 | 
             
            		signal: abortController.signal,
         | 
| 84 | 
             
            	});
         | 
| 85 |  | 
| 86 | 
            -
            	 | 
|  | |
|  | |
|  | |
|  | |
| 87 |  | 
| 88 | 
             
            	async function saveMessage() {
         | 
| 89 | 
             
            		let generated_text = await parseGeneratedText(stream2, convId, date, abortController);
         | 
|  | |
| 83 | 
             
            		signal: abortController.signal,
         | 
| 84 | 
             
            	});
         | 
| 85 |  | 
| 86 | 
            +
            	if (!resp.body) {
         | 
| 87 | 
            +
            		throw new Error("Response body is empty");
         | 
| 88 | 
            +
            	}
         | 
| 89 | 
            +
             | 
| 90 | 
            +
            	const [stream1, stream2] = resp.body.tee();
         | 
| 91 |  | 
| 92 | 
             
            	async function saveMessage() {
         | 
| 93 | 
             
            		let generated_text = await parseGeneratedText(stream2, convId, date, abortController);
         | 
 
			
