/* eslint-disable @typescript-eslint/naming-convention */ import { useEffect, useState } from 'react' import { Button, Switch, Tooltip, TooltipArrow, TooltipContent, TooltipPortal, TooltipTrigger, Select, SelectContent, SelectItem, Input, SelectTrigger, SelectValue, } from '@janhq/uikit' // import hljs from 'highlight.js' import { useAtom, useAtomValue } from 'jotai' import { Paintbrush, CodeIcon } from 'lucide-react' import { ExternalLinkIcon, InfoIcon } from 'lucide-react' // import { Marked, Renderer } from 'marked' // import { markedHighlight } from 'marked-highlight' import { twMerge } from 'tailwind-merge' import CardSidebar from '@/containers/CardSidebar' import DropdownListSidebar from '@/containers/DropdownListSidebar' import { useServerLog } from '@/hooks/useServerLog' import { getConfigurationsData } from '@/utils/componentSettings' import { toRuntimeParams, toSettingParams } from '@/utils/modelParam' import EngineSetting from '../Chat/EngineSetting' import ModelSetting from '../Chat/ModelSetting' import settingComponentBuilder from '../Chat/ModelSetting/settingComponentBuilder' import { showRightSideBarAtom } from '../Chat/Sidebar' import { serverEnabledAtom } from '@/helpers/atoms/LocalServer.atom' import { getActiveThreadModelParamsAtom } from '@/helpers/atoms/Thread.atom' const LocalServerScreen = () => { const [serverEnabled, setServerEnabled] = useAtom(serverEnabledAtom) const showing = useAtomValue(showRightSideBarAtom) const activeModelParams = useAtomValue(getActiveThreadModelParamsAtom) const modelEngineParams = toSettingParams(activeModelParams) const modelRuntimeParams = toRuntimeParams(activeModelParams) const componentDataEngineSetting = getConfigurationsData(modelEngineParams) const componentDataRuntimeSetting = getConfigurationsData(modelRuntimeParams) const { getServerLog, openServerLog, clearServerLog } = useServerLog() const [logs, setLogs] = useState([]) useEffect(() => { getServerLog().then((log) => { // setLogs(log) // console.log(log) setLogs(log.split(/\r?\n|\r|\n/g)) // setLogs(JSON.stringify(log, null, 2)) }) }, []) // const marked: Marked = new Marked( // markedHighlight({ // langPrefix: 'hljs', // highlight(code) { // return hljs.highlightAuto(code).value // }, // }), // { // renderer: { // link: (href, title, text) => { // return Renderer.prototype.link // ?.apply(this, [href, title, text]) // .replace(' {/* Left SideBar */}

Server Options

Start an OpenAI-compatible local HTTP server.

{/* Middle Bar */}

Server Logs

{/*
*/} {logs.map((log, i) => { return (

{log}

) })}
{/* Right bar */}
{componentDataRuntimeSetting.length !== 0 && (
)} {componentDataEngineSetting.filter( (x) => x.name === 'prompt_template' ).length !== 0 && (
{settingComponentBuilder(componentDataEngineSetting, true)}
)} {componentDataEngineSetting.length !== 0 && (
)}
) } export default LocalServerScreen