diff --git a/src/app.d.ts b/src/app.d.ts deleted file mode 100644 index a4ea1d124d243ac63c82b2ab2f33774fef7db7ff..0000000000000000000000000000000000000000 --- a/src/app.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -/// -/// - -import type { ObjectId } from "mongodb"; - -// See https://kit.svelte.dev/docs/types#app -// for information about these interfaces -declare global { - namespace App { - // interface Error {} - interface Locals { - sessionId: string; - userId?: ObjectId; - } - // interface PageData {} - // interface Platform {} - } -} - -export {}; diff --git a/src/app.html b/src/app.html deleted file mode 100644 index 5972be35a6aad2a293a111f7aba5e40d8ed87ab9..0000000000000000000000000000000000000000 --- a/src/app.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - Macie - - %sveltekit.head% - - -
%sveltekit.body%
- - - - - - - - diff --git a/src/hooks.server.ts b/src/hooks.server.ts deleted file mode 100644 index 665f69fa99528ec1b36037e28bff5bec9bbbbb5a..0000000000000000000000000000000000000000 --- a/src/hooks.server.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { dev } from "$app/environment"; -import { COOKIE_NAME } from "$env/static/private"; -import type { Handle } from "@sveltejs/kit"; -import { - PUBLIC_GOOGLE_ANALYTICS_ID, - PUBLIC_DEPRECATED_GOOGLE_ANALYTICS_ID, -} from "$env/static/public"; -import { addYears } from "date-fns"; -import { collections } from "$lib/server/database"; -import { base } from "$app/paths"; -import { requiresUser } from "$lib/server/auth"; - -export const handle: Handle = async ({ event, resolve }) => { - const token = event.cookies.get(COOKIE_NAME); - - event.locals.sessionId = token || crypto.randomUUID(); - - const user = await collections.users.findOne({ sessionId: event.locals.sessionId }); - - if (user) { - event.locals.userId = user._id; - } - - if ( - !event.url.pathname.startsWith(`${base}/admin`) && - !["GET", "OPTIONS", "HEAD"].includes(event.request.method) - ) { - const sendJson = - event.request.headers.get("accept")?.includes("application/json") || - event.request.headers.get("content-type")?.includes("application/json"); - - if (!user && requiresUser) { - return new Response( - sendJson - ? JSON.stringify({ error: "You need to be logged in first" }) - : "You need to be logged in first", - { - status: 401, - headers: { - "content-type": sendJson ? "application/json" : "text/plain", - }, - } - ); - } - - if (!event.url.pathname.startsWith(`${base}/settings`)) { - const hasAcceptedEthicsModal = await collections.settings.countDocuments({ - sessionId: event.locals.sessionId, - ethicsModalAcceptedAt: { $exists: true }, - }); - - if (!hasAcceptedEthicsModal) { - return new Response( - sendJson - ? JSON.stringify({ error: "You need to accept the welcome modal first" }) - : "You need to accept the welcome modal first", - { - status: 405, - headers: { - "content-type": sendJson ? "application/json" : "text/plain", - }, - } - ); - } - } - } - - // Refresh cookie expiration date - event.cookies.set(COOKIE_NAME, event.locals.sessionId, { - path: "/", - // So that it works inside the space's iframe - sameSite: dev ? "lax" : "none", - secure: !dev, - httpOnly: true, - expires: addYears(new Date(), 1), - }); - - let replaced = false; - - const response = await resolve(event, { - transformPageChunk: (chunk) => { - // For some reason, Sveltekit doesn't let us load env variables from .env in the app.html template - if (replaced || !chunk.html.includes("%gaId%") || !chunk.html.includes("%gaIdDeprecated%")) { - return chunk.html; - } - replaced = true; - - return chunk.html - .replace("%gaId%", PUBLIC_GOOGLE_ANALYTICS_ID) - .replace("%gaIdDeprecated%", PUBLIC_DEPRECATED_GOOGLE_ANALYTICS_ID); - }, - }); - - return response; -}; diff --git a/src/lib/actions/snapScrollToBottom.ts b/src/lib/actions/snapScrollToBottom.ts deleted file mode 100644 index b22a0648221f6b58853a910fb6286f79574a0246..0000000000000000000000000000000000000000 --- a/src/lib/actions/snapScrollToBottom.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { navigating } from "$app/stores"; -import { tick } from "svelte"; -import { get } from "svelte/store"; - -const detachedOffset = 10; - -/** - * @param node element to snap scroll to bottom - * @param dependency pass in a dependency to update scroll on changes. - */ -export const snapScrollToBottom = (node: HTMLElement, dependency: unknown) => { - let prevScrollValue = node.scrollTop; - let isDetached = false; - - const handleScroll = () => { - // if user scrolled up, we detach - if (node.scrollTop < prevScrollValue) { - isDetached = true; - } - - // if user scrolled back to within 10px of bottom, we reattach - if (node.scrollTop - (node.scrollHeight - node.clientHeight) >= -detachedOffset) { - isDetached = false; - } - - prevScrollValue = node.scrollTop; - }; - - const updateScroll = async (_options: { force?: boolean } = {}) => { - const defaultOptions = { force: false }; - const options = { ...defaultOptions, ..._options }; - const { force } = options; - - if (!force && isDetached && !get(navigating)) return; - - // wait for next tick to ensure that the DOM is updated - await tick(); - - node.scrollTo({ top: node.scrollHeight }); - }; - - node.addEventListener("scroll", handleScroll); - - if (dependency) { - updateScroll({ force: true }); - } - - return { - update: updateScroll, - destroy: () => { - node.removeEventListener("scroll", handleScroll); - }, - }; -}; diff --git a/src/lib/buildPrompt.ts b/src/lib/buildPrompt.ts deleted file mode 100644 index 6ddff81ab66ccfee60378bf604603fd202c9fe3a..0000000000000000000000000000000000000000 --- a/src/lib/buildPrompt.ts +++ /dev/null @@ -1,36 +0,0 @@ -import type { BackendModel } from "./server/models"; -import type { Message } from "./types/Message"; - -/** - * Convert [{user: "assistant", content: "hi"}, {user: "user", content: "hello"}] to: - * - * <|assistant|>hi<|endoftext|><|prompter|>hello<|endoftext|><|assistant|> - */ -export function buildPrompt( - messages: Pick[], - model: BackendModel -): string { - const prompt = - messages - .map( - (m) => - (m.from === "user" - ? model.userMessageToken + m.content - : model.assistantMessageToken + m.content) + - (model.messageEndToken - ? m.content.endsWith(model.messageEndToken) - ? "" - : model.messageEndToken - : "") - ) - .join("") + model.assistantMessageToken; - - // Not super precise, but it's truncated in the model's backend anyway - return ( - model.preprompt + - prompt - .split(" ") - .slice(-(model.parameters?.truncate ?? 0)) - .join(" ") - ); -} diff --git a/src/lib/components/AnnouncementBanner.svelte b/src/lib/components/AnnouncementBanner.svelte deleted file mode 100644 index c1cc2600abfa6af9df059c1039d360a34c44c143..0000000000000000000000000000000000000000 --- a/src/lib/components/AnnouncementBanner.svelte +++ /dev/null @@ -1,15 +0,0 @@ - - -
- New - {title} -
- -
-
diff --git a/src/lib/components/CodeBlock.svelte b/src/lib/components/CodeBlock.svelte deleted file mode 100644 index dc7cbc500d9eb55e709ef2767ad25a91692fe129..0000000000000000000000000000000000000000 --- a/src/lib/components/CodeBlock.svelte +++ /dev/null @@ -1,28 +0,0 @@ - - -
- -
{@html highlightedCode || code.replaceAll("<", "<")}
- -
diff --git a/src/lib/components/CopyToClipBoardBtn.svelte b/src/lib/components/CopyToClipBoardBtn.svelte deleted file mode 100644 index bf5a8e31aab6939dadcd43a17885762ffe768b1a..0000000000000000000000000000000000000000 --- a/src/lib/components/CopyToClipBoardBtn.svelte +++ /dev/null @@ -1,50 +0,0 @@ - - - diff --git a/src/lib/components/EthicsModal.svelte b/src/lib/components/EthicsModal.svelte deleted file mode 100644 index e3d299543d3864915478d908ff47c1bfe5faf704..0000000000000000000000000000000000000000 --- a/src/lib/components/EthicsModal.svelte +++ /dev/null @@ -1,47 +0,0 @@ - - - -
-

- HuggingChat -
- v{PUBLIC_VERSION} -
-

-

- This application is for demonstration purposes only. -

-

- AI is an area of active research with known problems such as biased generation and - misinformation. Do not use this application for high-stakes decisions or advice. -

-

- Your conversations will be shared with model authors unless you disable it from your settings. -

-
- - {#each Object.entries(settings) as [key, val]} - - {/each} - -
-
-
diff --git a/src/lib/components/MobileNav.svelte b/src/lib/components/MobileNav.svelte deleted file mode 100644 index cb9c2ec1fbd1c7bacd7dcc0b5a7ae5d08f84ccf0..0000000000000000000000000000000000000000 --- a/src/lib/components/MobileNav.svelte +++ /dev/null @@ -1,62 +0,0 @@ - - - - diff --git a/src/lib/components/Modal.svelte b/src/lib/components/Modal.svelte deleted file mode 100644 index 90559b5eae0fd28e2a384acde0eb954972fd1f1e..0000000000000000000000000000000000000000 --- a/src/lib/components/Modal.svelte +++ /dev/null @@ -1,59 +0,0 @@ - - - - - diff --git a/src/lib/components/ModelCardMetadata.svelte b/src/lib/components/ModelCardMetadata.svelte deleted file mode 100644 index 2576a95f59649ee9817b262eea62b0e20da1a802..0000000000000000000000000000000000000000 --- a/src/lib/components/ModelCardMetadata.svelte +++ /dev/null @@ -1,48 +0,0 @@ - - -
- - Model -
 page
- {#if model.datasetName} - - Dataset -
 page
- {/if} - {#if model.websiteUrl} - - - Website - - {/if} -
diff --git a/src/lib/components/ModelsModal.svelte b/src/lib/components/ModelsModal.svelte deleted file mode 100644 index 36882e3a92ea6fe4e4b82e31c9267f7cba57bfea..0000000000000000000000000000000000000000 --- a/src/lib/components/ModelsModal.svelte +++ /dev/null @@ -1,80 +0,0 @@ - - - -
{ - dispatch("close"); - }} - class="flex w-full flex-col gap-5 p-6" - > - {#each Object.entries(settings).filter(([k]) => k !== "activeModel") as [key, val]} - - {/each} -
-

Models

- -
- -
- {#each models as model} -
- - -
- {/each} -
- -
-
diff --git a/src/lib/components/NavMenu.svelte b/src/lib/components/NavMenu.svelte deleted file mode 100644 index 1d1748d9857d453621a8f5d93dab6b03e75424ef..0000000000000000000000000000000000000000 --- a/src/lib/components/NavMenu.svelte +++ /dev/null @@ -1,109 +0,0 @@ - - - - -
- - - - Feedback - - - About & Privacy - -
diff --git a/src/lib/components/Portal.svelte b/src/lib/components/Portal.svelte deleted file mode 100644 index dad285ed6bd7317f94c4e6152bf6c076ecbc52b5..0000000000000000000000000000000000000000 --- a/src/lib/components/Portal.svelte +++ /dev/null @@ -1,19 +0,0 @@ - - - diff --git a/src/lib/components/ScrollToBottomBtn.svelte b/src/lib/components/ScrollToBottomBtn.svelte deleted file mode 100644 index 07e1d985def7d9e1fa2e4edd93c104c47b23b178..0000000000000000000000000000000000000000 --- a/src/lib/components/ScrollToBottomBtn.svelte +++ /dev/null @@ -1,46 +0,0 @@ - - -{#if visible} - -{/if} diff --git a/src/lib/components/SettingsModal.svelte b/src/lib/components/SettingsModal.svelte deleted file mode 100644 index 914ee15151c1eccd0a87f2d60c8de38530054611..0000000000000000000000000000000000000000 --- a/src/lib/components/SettingsModal.svelte +++ /dev/null @@ -1,65 +0,0 @@ - - - -
{ - dispatch("close"); - }} - method="post" - action="{base}/settings" - > -
-

Settings

- -
- - - -

- Sharing your data will help improve the training data and make open models better over time. -

-

- You can change this setting at any time, it applies to all your conversations. -

-

- Read more about this model's authors, - Open Assistant. -

- -
-
diff --git a/src/lib/components/StopGeneratingBtn.svelte b/src/lib/components/StopGeneratingBtn.svelte deleted file mode 100644 index 32bd1db67422f264bb111edc1cf5c9d1653f20d4..0000000000000000000000000000000000000000 --- a/src/lib/components/StopGeneratingBtn.svelte +++ /dev/null @@ -1,17 +0,0 @@ - - - diff --git a/src/lib/components/Switch.svelte b/src/lib/components/Switch.svelte deleted file mode 100644 index bdae385bbe1d596178391d25416b2f46e6475178..0000000000000000000000000000000000000000 --- a/src/lib/components/Switch.svelte +++ /dev/null @@ -1,11 +0,0 @@ - - - -
-
-
diff --git a/src/lib/components/Toast.svelte b/src/lib/components/Toast.svelte deleted file mode 100644 index 2470d358ae52406fbedeb43cbf8e1dacd09c5aec..0000000000000000000000000000000000000000 --- a/src/lib/components/Toast.svelte +++ /dev/null @@ -1,19 +0,0 @@ - - -
-
- -

{message}

-
-
diff --git a/src/lib/components/Tooltip.svelte b/src/lib/components/Tooltip.svelte deleted file mode 100644 index 0caf14d5edb956e14c686c68b588c1e984ee42a6..0000000000000000000000000000000000000000 --- a/src/lib/components/Tooltip.svelte +++ /dev/null @@ -1,22 +0,0 @@ - - -
- diff --git a/src/lib/components/chat/ChatInput.svelte b/src/lib/components/chat/ChatInput.svelte deleted file mode 100644 index a7e97b2f2e3109c946f786d2384fadb4637cb0b1..0000000000000000000000000000000000000000 --- a/src/lib/components/chat/ChatInput.svelte +++ /dev/null @@ -1,64 +0,0 @@ - - - - -
- - -