diff --git a/bun.lockb b/bun.lockb deleted file mode 100755 index 2ce88bc..0000000 Binary files a/bun.lockb and /dev/null differ diff --git a/packages/client/src/components/chat/lib/exportConversationAsMarkdown.ts b/packages/client/src/components/chat/lib/exportConversationAsMarkdown.ts index c897e82..9859149 100644 --- a/packages/client/src/components/chat/lib/exportConversationAsMarkdown.ts +++ b/packages/client/src/components/chat/lib/exportConversationAsMarkdown.ts @@ -1,6 +1,6 @@ // Function to generate a Markdown representation of the current conversation import { type IMessage } from "../../../stores/ClientChatStore"; -import { Instance } from "mobx-state-tree"; +import { type Instance } from "mobx-state-tree"; export function formatConversationMarkdown( messages: Instance[], diff --git a/packages/client/src/components/chat/messages/MessageEditorComponent.tsx b/packages/client/src/components/chat/messages/MessageEditorComponent.tsx index 5893331..0686093 100644 --- a/packages/client/src/components/chat/messages/MessageEditorComponent.tsx +++ b/packages/client/src/components/chat/messages/MessageEditorComponent.tsx @@ -1,8 +1,8 @@ -import React, { KeyboardEvent, useEffect } from "react"; +import React, {type KeyboardEvent, useEffect } from "react"; import { Box, Flex, IconButton, Textarea } from "@chakra-ui/react"; import { Check, X } from "lucide-react"; import { observer } from "mobx-react-lite"; -import { Instance } from "mobx-state-tree"; +import { type Instance } from "mobx-state-tree"; import Message from "../../../models/Message"; import messageEditorStore from "../../../stores/MessageEditorStore"; diff --git a/packages/client/src/components/code/CodeBlock.tsx b/packages/client/src/components/code/CodeBlock.tsx index 718143e..a9507d4 100644 --- a/packages/client/src/components/code/CodeBlock.tsx +++ b/packages/client/src/components/code/CodeBlock.tsx @@ -1,4 +1,4 @@ -import React, { useState, useEffect, useCallback, useMemo } from "react"; +import React, { useState, useEffect, useCallback } from "react"; import { buildCodeHighlighter } from "./CodeHighlighter"; interface CodeBlockProps { diff --git a/packages/client/src/pages/index/+Page.tsx b/packages/client/src/pages/index/+Page.tsx index d862374..07fb121 100644 --- a/packages/client/src/pages/index/+Page.tsx +++ b/packages/client/src/pages/index/+Page.tsx @@ -8,11 +8,9 @@ import { getModelFamily } from "../../components/chat/lib/SupportedModels"; export default function IndexPage() { useEffect(() => { try { - let model = localStorage.getItem("recentModel"); + const model = localStorage.getItem("recentModel"); - if (getModelFamily(model as string)) { - clientChatStore.setModel(model as string); - } + clientChatStore.setModel(model as string); } catch (_) { console.log("using default model"); } diff --git a/packages/client/src/renderer/usePageContext.tsx b/packages/client/src/renderer/usePageContext.tsx index 01319cb..affecbd 100644 --- a/packages/client/src/renderer/usePageContext.tsx +++ b/packages/client/src/renderer/usePageContext.tsx @@ -1,17 +1,17 @@ -import React, { useContext } from "react"; +import { useContext, createContext, type ReactNode } from "react"; import type { PageContext } from "vike/types"; export { PageContextProvider }; export { usePageContext }; -const Context = React.createContext(undefined as any); +const Context = createContext(undefined as any); function PageContextProvider({ pageContext, children, }: { pageContext: PageContext; - children: React.ReactNode; + children: ReactNode; }) { return {children}; } diff --git a/packages/client/src/stores/MessageEditorStore.ts b/packages/client/src/stores/MessageEditorStore.ts index c0e6f8a..8605d37 100644 --- a/packages/client/src/stores/MessageEditorStore.ts +++ b/packages/client/src/stores/MessageEditorStore.ts @@ -1,4 +1,4 @@ -import {types, Instance} from "mobx-state-tree"; +import {types, type Instance} from "mobx-state-tree"; import clientChatStore from "./ClientChatStore"; import UserOptionsStore from "./UserOptionsStore"; import Message from "../models/Message"; diff --git a/packages/client/src/stores/MessagesStore.ts b/packages/client/src/stores/MessagesStore.ts index 7bde03f..19502f0 100644 --- a/packages/client/src/stores/MessagesStore.ts +++ b/packages/client/src/stores/MessagesStore.ts @@ -1,7 +1,7 @@ // --------------------------- // stores/MessagesStore.ts // --------------------------- -import { Instance, types } from "mobx-state-tree"; +import { type Instance, types } from "mobx-state-tree"; import Message from "../models/Message"; export const MessagesStore = types diff --git a/packages/client/src/stores/ModelStore.ts b/packages/client/src/stores/ModelStore.ts index 07bf79c..79aeb8d 100644 --- a/packages/client/src/stores/ModelStore.ts +++ b/packages/client/src/stores/ModelStore.ts @@ -2,7 +2,7 @@ // --------------------------- // stores/ModelStore.ts // --------------------------- -import { Instance, types } from "mobx-state-tree"; +import { type Instance, types } from "mobx-state-tree"; export const ModelStore = types .model("ModelStore", { diff --git a/packages/client/src/stores/RootDeps.ts b/packages/client/src/stores/RootDeps.ts new file mode 100644 index 0000000..8288c50 --- /dev/null +++ b/packages/client/src/stores/RootDeps.ts @@ -0,0 +1,5 @@ +import type {IMessagesStore} from "./MessagesStore.ts"; +import type {IUIStore} from "./UIStore.ts"; +import type {IModelStore} from "./ModelStore.ts"; + +export type RootDeps = IMessagesStore & IUIStore & IModelStore; \ No newline at end of file diff --git a/packages/client/src/stores/StreamStore.ts b/packages/client/src/stores/StreamStore.ts index d03112b..69831d9 100644 --- a/packages/client/src/stores/StreamStore.ts +++ b/packages/client/src/stores/StreamStore.ts @@ -1,24 +1,14 @@ -import { - getParent, - Instance, - flow, - types, - applyAction, -} from "mobx-state-tree"; -import type { IMessagesStore } from "./MessagesStore"; -import type { IUIStore } from "./UIStore"; -import type { IModelStore } from "./ModelStore"; +import {flow, getParent, type Instance, types} from "mobx-state-tree"; import UserOptionsStore from "./UserOptionsStore"; import Message from "../models/Message"; - -interface RootDeps extends IMessagesStore, IUIStore, IModelStore {} +import type {RootDeps} from "./RootDeps.ts"; export const StreamStore = types .model("StreamStore", { streamId: types.optional(types.string, ""), }) .volatile(() => ({ - eventSource: null as EventSource | null, + eventSource: undefined as unknown as EventSource, })) .actions((self: any) => { // ← annotate `self` so it isn’t implicitly `any` let root: RootDeps; @@ -83,6 +73,7 @@ export const StreamStore = types } const { streamUrl } = (yield response.json()) as { streamUrl: string }; + setEventSource(new EventSource(streamUrl)); const handleMessage = (event: MessageEvent) => { diff --git a/packages/client/src/stores/UIStore.ts b/packages/client/src/stores/UIStore.ts index e9fc064..29ed45e 100644 --- a/packages/client/src/stores/UIStore.ts +++ b/packages/client/src/stores/UIStore.ts @@ -2,7 +2,7 @@ // --------------------------- // stores/UIStore.ts // --------------------------- -import { Instance, types } from "mobx-state-tree"; +import { type Instance, types } from "mobx-state-tree"; export const UIStore = types .model("UIStore", { diff --git a/packages/client/src/stores/UserOptionsStore.ts b/packages/client/src/stores/UserOptionsStore.ts index 92ca80f..756db03 100644 --- a/packages/client/src/stores/UserOptionsStore.ts +++ b/packages/client/src/stores/UserOptionsStore.ts @@ -1,4 +1,4 @@ -import { flow, types } from "mobx-state-tree"; +import { types } from "mobx-state-tree"; import ClientChatStore from "./ClientChatStore"; import { runInAction } from "mobx"; import Cookies from "js-cookie"; diff --git a/packages/client/vite.config.ts b/packages/client/vite.config.ts index 2ce9252..58bc1c1 100644 --- a/packages/client/vite.config.ts +++ b/packages/client/vite.config.ts @@ -39,31 +39,31 @@ export default defineConfig(({command}) => { }) }) */ - VitePWA({ - registerType: 'autoUpdate', - devOptions: { - enabled: false, - }, - manifest: { - name: "open-gsio", - short_name: "open-gsio", - description: "Assistant" - }, - workbox: { - globPatterns: ['**/*.{js,css,html,ico,png,svg}'], - navigateFallbackDenylist: [/^\/api\//], - } - }) + // VitePWA({ + // registerType: 'autoUpdate', + // devOptions: { + // enabled: false, + // }, + // manifest: { + // name: "open-gsio", + // short_name: "open-gsio", + // description: "Assistant" + // }, + // workbox: { + // globPatterns: ['**/*.{js,css,html,ico,png,svg}'], + // navigateFallbackDenylist: [/^\/api\//], + // } + // }) ], server: { port: 3000, proxy: { // proxies requests to worker backend "/api": { - target: "http://localhost:3001", + target: "http://localhost:3003", }, "/fonts": { - target: "http://localhost:3001/fonts", + target: "http://localhost:3003/fonts", }, }, }, diff --git a/packages/server/models/Message.ts b/packages/server/models/Message.ts index e241eea..3365321 100644 --- a/packages/server/models/Message.ts +++ b/packages/server/models/Message.ts @@ -1,5 +1,5 @@ // Base Message -import { Instance, types } from "mobx-state-tree"; +import { type Instance, types } from "mobx-state-tree"; export default types .model("Message", { diff --git a/packages/server/services/ChatService.ts b/packages/server/services/ChatService.ts index 9c0221c..422670e 100644 --- a/packages/server/services/ChatService.ts +++ b/packages/server/services/ChatService.ts @@ -1,17 +1,17 @@ import {flow, getSnapshot, types} from 'mobx-state-tree'; import OpenAI from 'openai'; -import ChatSdk from '../lib/chat-sdk.ts'; -import Message from "../models/Message.ts"; -import O1Message from "../models/O1Message.ts"; -import {OpenAiChatSdk} from "../providers/openai.ts"; -import {GroqChatSdk} from "../providers/groq.ts"; -import {ClaudeChatSdk} from "../providers/claude.ts"; -import {FireworksAiChatSdk} from "../providers/fireworks.ts"; -import handleStreamData from "../lib/handleStreamData.ts"; -import {GoogleChatSdk} from "../providers/google.ts"; -import {XaiChatSdk} from "../providers/xai.ts"; -import {CerebrasSdk} from "../providers/cerebras.ts"; -import {CloudflareAISdk} from "../providers/cloudflareAi.ts"; +import ChatSdk from '../lib/chat-sdk'; +import Message from "../models/Message"; +import O1Message from "../models/O1Message"; +import {OpenAiChatSdk} from "../providers/openai"; +import {GroqChatSdk} from "../providers/groq"; +import {ClaudeChatSdk} from "../providers/claude"; +import {FireworksAiChatSdk} from "../providers/fireworks"; +import handleStreamData from "../lib/handleStreamData"; +import {GoogleChatSdk} from "../providers/google"; +import {XaiChatSdk} from "../providers/xai"; +import {CerebrasSdk} from "../providers/cerebras"; +import {CloudflareAISdk} from "../providers/cloudflareAi"; import {OllamaChatSdk} from "../providers/ollama"; import {MlxOmniChatSdk} from "../providers/mlx-omni"; import {ProviderRepository} from "../providers/_ProviderRepository";