mirror of
https://github.com/geoffsee/open-gsio.git
synced 2025-09-08 22:56:46 +00:00
**Refactor imports and improve type annotations**
- Adjusted import statements across the codebase to align with consistent use of `type`. - Unified usage of `EventSource` initialization. - Introduced `RootDeps` type for shared dependencies. - Commented out unused VitePWA configuration. - Updated proxy target URLs in Vite configuration.
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
// Function to generate a Markdown representation of the current conversation
|
// Function to generate a Markdown representation of the current conversation
|
||||||
import { type IMessage } from "../../../stores/ClientChatStore";
|
import { type IMessage } from "../../../stores/ClientChatStore";
|
||||||
import { Instance } from "mobx-state-tree";
|
import { type Instance } from "mobx-state-tree";
|
||||||
|
|
||||||
export function formatConversationMarkdown(
|
export function formatConversationMarkdown(
|
||||||
messages: Instance<typeof IMessage>[],
|
messages: Instance<typeof IMessage>[],
|
||||||
|
@@ -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 { Box, Flex, IconButton, Textarea } from "@chakra-ui/react";
|
||||||
import { Check, X } from "lucide-react";
|
import { Check, X } from "lucide-react";
|
||||||
import { observer } from "mobx-react-lite";
|
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 Message from "../../../models/Message";
|
||||||
import messageEditorStore from "../../../stores/MessageEditorStore";
|
import messageEditorStore from "../../../stores/MessageEditorStore";
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
import React, { useState, useEffect, useCallback, useMemo } from "react";
|
import React, { useState, useEffect, useCallback } from "react";
|
||||||
import { buildCodeHighlighter } from "./CodeHighlighter";
|
import { buildCodeHighlighter } from "./CodeHighlighter";
|
||||||
|
|
||||||
interface CodeBlockProps {
|
interface CodeBlockProps {
|
||||||
|
@@ -8,11 +8,9 @@ import { getModelFamily } from "../../components/chat/lib/SupportedModels";
|
|||||||
export default function IndexPage() {
|
export default function IndexPage() {
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
try {
|
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 (_) {
|
} catch (_) {
|
||||||
console.log("using default model");
|
console.log("using default model");
|
||||||
}
|
}
|
||||||
|
@@ -1,17 +1,17 @@
|
|||||||
import React, { useContext } from "react";
|
import { useContext, createContext, type ReactNode } from "react";
|
||||||
import type { PageContext } from "vike/types";
|
import type { PageContext } from "vike/types";
|
||||||
|
|
||||||
export { PageContextProvider };
|
export { PageContextProvider };
|
||||||
export { usePageContext };
|
export { usePageContext };
|
||||||
|
|
||||||
const Context = React.createContext<PageContext>(undefined as any);
|
const Context = createContext<PageContext>(undefined as any);
|
||||||
|
|
||||||
function PageContextProvider({
|
function PageContextProvider({
|
||||||
pageContext,
|
pageContext,
|
||||||
children,
|
children,
|
||||||
}: {
|
}: {
|
||||||
pageContext: PageContext;
|
pageContext: PageContext;
|
||||||
children: React.ReactNode;
|
children: ReactNode;
|
||||||
}) {
|
}) {
|
||||||
return <Context.Provider value={pageContext}>{children}</Context.Provider>;
|
return <Context.Provider value={pageContext}>{children}</Context.Provider>;
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
import {types, Instance} from "mobx-state-tree";
|
import {types, type Instance} from "mobx-state-tree";
|
||||||
import clientChatStore from "./ClientChatStore";
|
import clientChatStore from "./ClientChatStore";
|
||||||
import UserOptionsStore from "./UserOptionsStore";
|
import UserOptionsStore from "./UserOptionsStore";
|
||||||
import Message from "../models/Message";
|
import Message from "../models/Message";
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
// ---------------------------
|
// ---------------------------
|
||||||
// stores/MessagesStore.ts
|
// stores/MessagesStore.ts
|
||||||
// ---------------------------
|
// ---------------------------
|
||||||
import { Instance, types } from "mobx-state-tree";
|
import { type Instance, types } from "mobx-state-tree";
|
||||||
import Message from "../models/Message";
|
import Message from "../models/Message";
|
||||||
|
|
||||||
export const MessagesStore = types
|
export const MessagesStore = types
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
// ---------------------------
|
// ---------------------------
|
||||||
// stores/ModelStore.ts
|
// stores/ModelStore.ts
|
||||||
// ---------------------------
|
// ---------------------------
|
||||||
import { Instance, types } from "mobx-state-tree";
|
import { type Instance, types } from "mobx-state-tree";
|
||||||
|
|
||||||
export const ModelStore = types
|
export const ModelStore = types
|
||||||
.model("ModelStore", {
|
.model("ModelStore", {
|
||||||
|
5
packages/client/src/stores/RootDeps.ts
Normal file
5
packages/client/src/stores/RootDeps.ts
Normal file
@@ -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;
|
@@ -1,24 +1,14 @@
|
|||||||
import {
|
import {flow, getParent, type Instance, types} from "mobx-state-tree";
|
||||||
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 UserOptionsStore from "./UserOptionsStore";
|
import UserOptionsStore from "./UserOptionsStore";
|
||||||
import Message from "../models/Message";
|
import Message from "../models/Message";
|
||||||
|
import type {RootDeps} from "./RootDeps.ts";
|
||||||
interface RootDeps extends IMessagesStore, IUIStore, IModelStore {}
|
|
||||||
|
|
||||||
export const StreamStore = types
|
export const StreamStore = types
|
||||||
.model("StreamStore", {
|
.model("StreamStore", {
|
||||||
streamId: types.optional(types.string, ""),
|
streamId: types.optional(types.string, ""),
|
||||||
})
|
})
|
||||||
.volatile(() => ({
|
.volatile(() => ({
|
||||||
eventSource: null as EventSource | null,
|
eventSource: undefined as unknown as EventSource,
|
||||||
}))
|
}))
|
||||||
.actions((self: any) => { // ← annotate `self` so it isn’t implicitly `any`
|
.actions((self: any) => { // ← annotate `self` so it isn’t implicitly `any`
|
||||||
let root: RootDeps;
|
let root: RootDeps;
|
||||||
@@ -83,6 +73,7 @@ export const StreamStore = types
|
|||||||
}
|
}
|
||||||
|
|
||||||
const { streamUrl } = (yield response.json()) as { streamUrl: string };
|
const { streamUrl } = (yield response.json()) as { streamUrl: string };
|
||||||
|
|
||||||
setEventSource(new EventSource(streamUrl));
|
setEventSource(new EventSource(streamUrl));
|
||||||
|
|
||||||
const handleMessage = (event: MessageEvent) => {
|
const handleMessage = (event: MessageEvent) => {
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
// ---------------------------
|
// ---------------------------
|
||||||
// stores/UIStore.ts
|
// stores/UIStore.ts
|
||||||
// ---------------------------
|
// ---------------------------
|
||||||
import { Instance, types } from "mobx-state-tree";
|
import { type Instance, types } from "mobx-state-tree";
|
||||||
|
|
||||||
export const UIStore = types
|
export const UIStore = types
|
||||||
.model("UIStore", {
|
.model("UIStore", {
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
import { flow, types } from "mobx-state-tree";
|
import { types } from "mobx-state-tree";
|
||||||
import ClientChatStore from "./ClientChatStore";
|
import ClientChatStore from "./ClientChatStore";
|
||||||
import { runInAction } from "mobx";
|
import { runInAction } from "mobx";
|
||||||
import Cookies from "js-cookie";
|
import Cookies from "js-cookie";
|
||||||
|
@@ -39,31 +39,31 @@ export default defineConfig(({command}) => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
*/
|
*/
|
||||||
VitePWA({
|
// VitePWA({
|
||||||
registerType: 'autoUpdate',
|
// registerType: 'autoUpdate',
|
||||||
devOptions: {
|
// devOptions: {
|
||||||
enabled: false,
|
// enabled: false,
|
||||||
},
|
// },
|
||||||
manifest: {
|
// manifest: {
|
||||||
name: "open-gsio",
|
// name: "open-gsio",
|
||||||
short_name: "open-gsio",
|
// short_name: "open-gsio",
|
||||||
description: "Assistant"
|
// description: "Assistant"
|
||||||
},
|
// },
|
||||||
workbox: {
|
// workbox: {
|
||||||
globPatterns: ['**/*.{js,css,html,ico,png,svg}'],
|
// globPatterns: ['**/*.{js,css,html,ico,png,svg}'],
|
||||||
navigateFallbackDenylist: [/^\/api\//],
|
// navigateFallbackDenylist: [/^\/api\//],
|
||||||
}
|
// }
|
||||||
})
|
// })
|
||||||
],
|
],
|
||||||
server: {
|
server: {
|
||||||
port: 3000,
|
port: 3000,
|
||||||
proxy: {
|
proxy: {
|
||||||
// proxies requests to worker backend
|
// proxies requests to worker backend
|
||||||
"/api": {
|
"/api": {
|
||||||
target: "http://localhost:3001",
|
target: "http://localhost:3003",
|
||||||
},
|
},
|
||||||
"/fonts": {
|
"/fonts": {
|
||||||
target: "http://localhost:3001/fonts",
|
target: "http://localhost:3003/fonts",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
// Base Message
|
// Base Message
|
||||||
import { Instance, types } from "mobx-state-tree";
|
import { type Instance, types } from "mobx-state-tree";
|
||||||
|
|
||||||
export default types
|
export default types
|
||||||
.model("Message", {
|
.model("Message", {
|
||||||
|
@@ -1,17 +1,17 @@
|
|||||||
import {flow, getSnapshot, types} from 'mobx-state-tree';
|
import {flow, getSnapshot, types} from 'mobx-state-tree';
|
||||||
import OpenAI from 'openai';
|
import OpenAI from 'openai';
|
||||||
import ChatSdk from '../lib/chat-sdk.ts';
|
import ChatSdk from '../lib/chat-sdk';
|
||||||
import Message from "../models/Message.ts";
|
import Message from "../models/Message";
|
||||||
import O1Message from "../models/O1Message.ts";
|
import O1Message from "../models/O1Message";
|
||||||
import {OpenAiChatSdk} from "../providers/openai.ts";
|
import {OpenAiChatSdk} from "../providers/openai";
|
||||||
import {GroqChatSdk} from "../providers/groq.ts";
|
import {GroqChatSdk} from "../providers/groq";
|
||||||
import {ClaudeChatSdk} from "../providers/claude.ts";
|
import {ClaudeChatSdk} from "../providers/claude";
|
||||||
import {FireworksAiChatSdk} from "../providers/fireworks.ts";
|
import {FireworksAiChatSdk} from "../providers/fireworks";
|
||||||
import handleStreamData from "../lib/handleStreamData.ts";
|
import handleStreamData from "../lib/handleStreamData";
|
||||||
import {GoogleChatSdk} from "../providers/google.ts";
|
import {GoogleChatSdk} from "../providers/google";
|
||||||
import {XaiChatSdk} from "../providers/xai.ts";
|
import {XaiChatSdk} from "../providers/xai";
|
||||||
import {CerebrasSdk} from "../providers/cerebras.ts";
|
import {CerebrasSdk} from "../providers/cerebras";
|
||||||
import {CloudflareAISdk} from "../providers/cloudflareAi.ts";
|
import {CloudflareAISdk} from "../providers/cloudflareAi";
|
||||||
import {OllamaChatSdk} from "../providers/ollama";
|
import {OllamaChatSdk} from "../providers/ollama";
|
||||||
import {MlxOmniChatSdk} from "../providers/mlx-omni";
|
import {MlxOmniChatSdk} from "../providers/mlx-omni";
|
||||||
import {ProviderRepository} from "../providers/_ProviderRepository";
|
import {ProviderRepository} from "../providers/_ProviderRepository";
|
||||||
|
Reference in New Issue
Block a user