// Prussian Bot — settings drawer: connection, model, MCP, system prompt, params. const { useState: useStateS } = React; function Toggle({ on, onChange, disabled }) { return
{ if (!disabled) onChange(!on); }}>
; } function Slider({ label, value, min, max, step, onChange, fmt, disabled }) { return (
{fmt ? fmt(value) : value}
onChange(parseFloat(e.target.value))} />
); } function Segmented({ options, value, onChange, disabled }) { return (
{options.map((o) => ( ))}
); } const MODEL_SUGGESTIONS = [ 'meta-llama/llama-3.3-70b-instruct:free', 'deepseek/deepseek-r1:free', 'qwen/qwen-2.5-72b-instruct:free', 'google/gemini-2.0-flash-exp:free', 'mistralai/mistral-small-3.2-24b-instruct:free', ]; function SettingsDrawer({ cfg, setCfg, onClose, mcp, resources }) { // mcp: { status, tools, error, connect } function set(k, v) { setCfg((c) => ({ ...c, [k]: v })); } const st = mcp.status; const statusCls = st === 'ok' ? 'ok' : st === 'connecting' ? 'busy' : st === 'error' ? 'err' : ''; function statusTxt() { if (st === 'ok') { var n = mcp.tools.length; return n + ' ' + t(n === 1 ? 'conn.toolConnected' : 'conn.toolsConnected'); } if (st === 'connecting') return t('mcp.connecting'); if (st === 'error') return mcp.error || t('mcp.failed'); return t('mcp.notConnected'); } return ( <>

{t('settings.title')}

{/* ---- Verbindung ---- */}

{t('settings.model')}

set('model', e.target.value)} /> {MODEL_SUGGESTIONS.map((m) =>
{/* ---- MCP ---- */}

{t('settings.mcp')}

set('mcpUrl', e.target.value)} />
{statusTxt()}
{mcp.tools.length > 0 && (
{mcp.tools.map((t) => (
{t.name}
{t.description &&
{t.description}
}
))}
)}
{/* ---- Grammatiken ---- */}

{t('settings.grammars')}

{(resources || []).length === 0 ? (
{t('grammars.empty')}
) : (
{resources.map((r) => { const sel = cfg.selectedGrammars || []; const on = sel.includes(r.uri); return (
{ const next = on ? sel.filter((u) => u !== r.uri) : sel.concat([r.uri]); set('selectedGrammars', next); }}> {on ? '☑' : '☐'}
{r.name} {r.description && {r.description}}
); })}
)}
{/* ---- Systemprompt ---- */}

{t('settings.systemPrompt')}

{ set('promptLang', v); set('systemPrompt', null); }} />