ЮИ - Перенести настройки ассистента в управление автопрогонами и убрать верхний режим Ассистент
This commit is contained in:
@@ -22,14 +22,46 @@ import type {
|
||||
PromptState
|
||||
} from "../state/types";
|
||||
import { AssistantPanel } from "./AssistantPanel";
|
||||
import { ConnectionPanel } from "./ConnectionPanel";
|
||||
import { JsonView } from "./JsonView";
|
||||
import { PanelFrame } from "./PanelFrame";
|
||||
import { PromptPanel } from "./PromptPanel";
|
||||
|
||||
interface AutoRunsHistoryPanelProps {
|
||||
connection: ConnectionState;
|
||||
modelOptions: string[];
|
||||
modelsBusy: boolean;
|
||||
connectionStatus: string;
|
||||
connectionBusy: boolean;
|
||||
onConnectionChange: (next: ConnectionState) => void;
|
||||
onReloadModels: () => Promise<void> | void;
|
||||
onSaveLocalConfig: () => void;
|
||||
onTestConnection: () => Promise<void> | void;
|
||||
prompts: PromptState;
|
||||
onPromptsChange: (next: PromptState) => void;
|
||||
promptPresets: Array<{
|
||||
id: string;
|
||||
name: string;
|
||||
prompt_version: string;
|
||||
systemPrompt: string;
|
||||
developerPrompt: string;
|
||||
domainPrompt: string;
|
||||
schemaNotes?: string;
|
||||
fewShotExamples?: string;
|
||||
}>;
|
||||
selectedPresetId: string;
|
||||
onSelectPreset: (id: string) => void;
|
||||
onLoadPreset: () => void;
|
||||
onSavePreset: () => void;
|
||||
onResetDefaults: () => void;
|
||||
onDiffPrevious: () => void;
|
||||
presetName: string;
|
||||
onPresetNameChange: (name: string) => void;
|
||||
diffSummary: string;
|
||||
assistantPromptVersion: string;
|
||||
decompositionPromptVersion: string;
|
||||
showSettingsMode: boolean;
|
||||
showAutoRunsMode: boolean;
|
||||
showAssistantMode: boolean;
|
||||
showDecompositionMode: boolean;
|
||||
showProgressMode: boolean;
|
||||
@@ -470,9 +502,30 @@ function CopyOutlineIcon() {
|
||||
|
||||
export function AutoRunsHistoryPanel({
|
||||
connection,
|
||||
modelOptions,
|
||||
modelsBusy,
|
||||
connectionStatus,
|
||||
connectionBusy,
|
||||
onConnectionChange,
|
||||
onReloadModels,
|
||||
onSaveLocalConfig,
|
||||
onTestConnection,
|
||||
prompts,
|
||||
onPromptsChange,
|
||||
promptPresets,
|
||||
selectedPresetId,
|
||||
onSelectPreset,
|
||||
onLoadPreset,
|
||||
onSavePreset,
|
||||
onResetDefaults,
|
||||
onDiffPrevious,
|
||||
presetName,
|
||||
onPresetNameChange,
|
||||
diffSummary,
|
||||
assistantPromptVersion,
|
||||
decompositionPromptVersion,
|
||||
showSettingsMode,
|
||||
showAutoRunsMode,
|
||||
showAssistantMode,
|
||||
showDecompositionMode,
|
||||
showProgressMode,
|
||||
@@ -1726,9 +1779,47 @@ export function AutoRunsHistoryPanel({
|
||||
hideHeader
|
||||
>
|
||||
<div className="autoruns-columns">
|
||||
<section className="autoruns-col">
|
||||
{showSettingsMode ? (
|
||||
<section className="autoruns-col autoruns-settings-col">
|
||||
<div className="autoruns-col-header">
|
||||
<h3>Настройки</h3>
|
||||
</div>
|
||||
<div className="autoruns-settings-stack">
|
||||
<ConnectionPanel
|
||||
embedded
|
||||
value={connection}
|
||||
modelOptions={modelOptions}
|
||||
modelsBusy={modelsBusy}
|
||||
onChange={onConnectionChange}
|
||||
onReloadModels={onReloadModels}
|
||||
onSaveLocalConfig={onSaveLocalConfig}
|
||||
onTestConnection={onTestConnection}
|
||||
lastStatus={connectionStatus}
|
||||
busy={connectionBusy}
|
||||
/>
|
||||
<PromptPanel
|
||||
embedded
|
||||
value={prompts}
|
||||
onChange={onPromptsChange}
|
||||
presets={promptPresets}
|
||||
selectedPresetId={selectedPresetId}
|
||||
onSelectPreset={onSelectPreset}
|
||||
onLoadPreset={onLoadPreset}
|
||||
onSavePreset={onSavePreset}
|
||||
onResetDefaults={onResetDefaults}
|
||||
onDiffPrevious={onDiffPrevious}
|
||||
presetName={presetName}
|
||||
onPresetNameChange={onPresetNameChange}
|
||||
diffSummary={diffSummary}
|
||||
/>
|
||||
</div>
|
||||
</section>
|
||||
) : null}
|
||||
|
||||
{showAutoRunsMode ? (
|
||||
<section className="autoruns-col">
|
||||
<div className="autoruns-col-header">
|
||||
<h3>Настройки</h3>
|
||||
<h3>Автопрогоны</h3>
|
||||
</div>
|
||||
|
||||
<h4>Настройки выборки</h4>
|
||||
@@ -2086,6 +2177,7 @@ export function AutoRunsHistoryPanel({
|
||||
|
||||
{errorText ? <p className="error-text">{errorText}</p> : null}
|
||||
</section>
|
||||
) : null}
|
||||
|
||||
<section className="autoruns-col">
|
||||
<div className="autoruns-col-header">
|
||||
|
||||
@@ -63,6 +63,7 @@ interface ConnectionPanelProps {
|
||||
onSaveLocalConfig: () => void;
|
||||
lastStatus: string;
|
||||
busy: boolean;
|
||||
embedded?: boolean;
|
||||
}
|
||||
|
||||
export function ConnectionPanel({
|
||||
@@ -74,7 +75,8 @@ export function ConnectionPanel({
|
||||
onTestConnection,
|
||||
onSaveLocalConfig,
|
||||
lastStatus,
|
||||
busy
|
||||
busy,
|
||||
embedded = false
|
||||
}: ConnectionPanelProps) {
|
||||
const isLocal = value.llmProvider === "local";
|
||||
const providerPreset = deriveProviderPreset(value);
|
||||
@@ -121,12 +123,8 @@ export function ConnectionPanel({
|
||||
setMaxOutputTokensInput(String(parsed));
|
||||
};
|
||||
|
||||
return (
|
||||
<PanelFrame
|
||||
title="LLM Connection"
|
||||
subtitle="Switch between OpenAI cloud and local OpenAI-compatible server."
|
||||
actions={<span className="status-chip">{lastStatus || "Status: not checked"}</span>}
|
||||
>
|
||||
const content = (
|
||||
<>
|
||||
<div className="grid-two">
|
||||
<label>
|
||||
Provider
|
||||
@@ -269,6 +267,31 @@ export function ConnectionPanel({
|
||||
{busy ? "Checking..." : "Test connection"}
|
||||
</button>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
|
||||
if (embedded) {
|
||||
return (
|
||||
<section className="embedded-panel-section">
|
||||
<div className="embedded-panel-section-header">
|
||||
<div>
|
||||
<h4>LLM Connector</h4>
|
||||
<p>Switch between OpenAI cloud and local OpenAI-compatible server.</p>
|
||||
</div>
|
||||
<span className="status-chip">{lastStatus || "Status: not checked"}</span>
|
||||
</div>
|
||||
{content}
|
||||
</section>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<PanelFrame
|
||||
title="LLM Connector"
|
||||
subtitle="Switch between OpenAI cloud and local OpenAI-compatible server."
|
||||
actions={<span className="status-chip">{lastStatus || "Status: not checked"}</span>}
|
||||
>
|
||||
{content}
|
||||
</PanelFrame>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ interface PromptPanelProps {
|
||||
presetName: string;
|
||||
onPresetNameChange: (name: string) => void;
|
||||
diffSummary: string;
|
||||
embedded?: boolean;
|
||||
}
|
||||
|
||||
export function PromptPanel({
|
||||
@@ -39,10 +40,11 @@ export function PromptPanel({
|
||||
onDiffPrevious,
|
||||
presetName,
|
||||
onPresetNameChange,
|
||||
diffSummary
|
||||
diffSummary,
|
||||
embedded = false
|
||||
}: PromptPanelProps) {
|
||||
return (
|
||||
<PanelFrame title="Prompt Manager" subtitle="Системный, developer и domain уровни управляются отдельно.">
|
||||
const content = (
|
||||
<>
|
||||
<div className="prompt-manager-grid">
|
||||
<label>
|
||||
Системный prompt
|
||||
@@ -101,6 +103,26 @@ export function PromptPanel({
|
||||
</button>
|
||||
</div>
|
||||
{diffSummary ? <p className="diff-summary">{diffSummary}</p> : null}
|
||||
</>
|
||||
);
|
||||
|
||||
if (embedded) {
|
||||
return (
|
||||
<section className="embedded-panel-section">
|
||||
<div className="embedded-panel-section-header">
|
||||
<div>
|
||||
<h4>Prompt Manager</h4>
|
||||
<p>Системный, developer и domain уровни управляются отдельно.</p>
|
||||
</div>
|
||||
</div>
|
||||
{content}
|
||||
</section>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<PanelFrame title="Prompt Manager" subtitle="Системный, developer и domain уровни управляются отдельно.">
|
||||
{content}
|
||||
</PanelFrame>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user