Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions libs/hexagent_demo/frontend/src/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export async function getConversation(id: string): Promise<Conversation> {
return res.json();
}

// 鈹€鈹€ Warm session (pre-conversation) 鈹€鈹€
// ── Warm session (pre-conversation) ──

export interface WarmSessionResponse {
session_id: string;
Expand Down Expand Up @@ -264,7 +264,7 @@ export function subscribeToStream(
return controller;
}

// 鈹€鈹€ File upload 鈹€鈹€
// ── File upload ──

export interface UploadResult {
filename: string;
Expand Down Expand Up @@ -295,7 +295,7 @@ export async function deleteChatFile(conversationId: string, filename: string):
}
}

// 鈹€鈹€ Folder picker 鈹€鈹€
// ── Folder picker ──

export async function browseFolder(): Promise<string | null> {
const res = await fetch(`${API_BASE}/api/browse-folder`, { method: "POST" });
Expand All @@ -304,7 +304,7 @@ export async function browseFolder(): Promise<string | null> {
return data.path || null;
}

// 鈹€鈹€ Server config 鈹€鈹€
// ── Server config ──

export interface ModelConfig {
id: string;
Expand Down Expand Up @@ -389,7 +389,7 @@ export async function testMcpConnection(server: McpServerEntry): Promise<{ ok: b
return res.json();
}

// 鈹€鈹€ Skills 鈹€鈹€
// ── Skills ──

export interface SkillsList {
public: string[];
Expand Down Expand Up @@ -447,7 +447,7 @@ export async function toggleSkill(name: string, enabled: boolean): Promise<void>
if (!res.ok) throw new Error(`Failed to toggle skill: ${res.statusText}`);
}

// 鈹€鈹€ Setup / VM backend 鈹€鈹€
// ── Setup / VM backend ──

export interface VMStatus {
supported: boolean;
Expand Down Expand Up @@ -482,7 +482,7 @@ export function installVMBackend(
});
}

// 鈹€鈹€ VM Build 鈹€鈹€
// ── VM Build ──

export interface VMBuildStatus {
status: "idle" | "running" | "done" | "error";
Expand Down Expand Up @@ -563,7 +563,7 @@ export function buildVM(
});
}

// 鈹€鈹€ VM Provision 鈹€鈹€
// ── VM Provision ──

export interface ProvisionStepDef {
id: string;
Expand Down
30 changes: 15 additions & 15 deletions libs/hexagent_demo/frontend/src/components/OnboardingWizard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ export default function OnboardingWizard({ open, onComplete, settings, onSetting
const [error, setError] = useState("");
const [config, setConfig] = useState<ServerConfig | null>(null);

// 鈹€鈹€ Step 1: Model 鈹€鈹€
// ── Step 1: Model ──
const [selectedProvider, setSelectedProvider] = useState<ProviderOption | null>(null);
const [apiKey, setApiKey] = useState("");
const [modelId, setModelId] = useState("");
Expand All @@ -141,7 +141,7 @@ export default function OnboardingWizard({ open, onComplete, settings, onSetting
const [showKey, setShowKey] = useState(false);
const [showAdvanced, setShowAdvanced] = useState(false);

// 鈹€鈹€ Step 2: Summarizer 鈹€鈹€
// ── Step 2: Summarizer ──
const [sumProvider, setSumProvider] = useState<ProviderOption | null>(null);
const [sumApiKey, setSumApiKey] = useState("");
const [sumModelId, setSumModelId] = useState("");
Expand All @@ -151,17 +151,17 @@ export default function OnboardingWizard({ open, onComplete, settings, onSetting
const [sumSameAsMain, setSumSameAsMain] = useState(true);
const [sumShowAdvanced, setSumShowAdvanced] = useState(false);

// 鈹€鈹€ Step 3: Web Tools 鈹€鈹€
// ── Step 3: Web Tools ──
const [searchProvider, setSearchProvider] = useState("");
const [searchKey, setSearchKey] = useState("");
const [fetchProvider, setFetchProvider] = useState("");
const [fetchKey, setFetchKey] = useState("");
const [showSearchKey, setShowSearchKey] = useState(false);
const [showFetchKey, setShowFetchKey] = useState(false);

// 鈹€鈹€ Step 4: Compute 鈹€鈹€
// ── Step 4: Compute ──

// VM setup 鈥?shared with Settings via VMSetupProvider (single source of truth)
// VM setup shared with Settings via VMSetupProvider (single source of truth)
const vm = useVMSetup();
const vmAutoBootstrapping = vm.autoBootstrapping;
const [vmSkipped, setVmSkipped] = useState(false);
Expand Down Expand Up @@ -244,7 +244,7 @@ export default function OnboardingWizard({ open, onComplete, settings, onSetting

if (!open) return null;

// 鈹€鈹€ Navigation 鈹€鈹€
// ── Navigation ──
const goNext = () => {
const idx = stepIndex(step);
if (idx < STEPS.length - 1) {
Expand All @@ -260,7 +260,7 @@ export default function OnboardingWizard({ open, onComplete, settings, onSetting
}
};

// 鈹€鈹€ Save all config at the end 鈹€鈹€
// ── Save all config at the end ──
const handleFinish = async () => {
if (!config) return;
if (!selectedProvider || !apiKey.trim() || !modelId.trim()) {
Expand Down Expand Up @@ -329,7 +329,7 @@ export default function OnboardingWizard({ open, onComplete, settings, onSetting
}
};

// 鈹€鈹€ Validation for model step 鈹€鈹€
// ── Validation for model step ──
const isCustomProvider = selectedProvider?.id === "custom";
const canProceedFromModel =
selectedProvider &&
Expand All @@ -341,7 +341,7 @@ export default function OnboardingWizard({ open, onComplete, settings, onSetting
<div className="setup-overlay">
<div className="setup-modal">

{/* 鈹€鈹€ Step 0: Welcome 鈥?Name & Theme 鈹€鈹€ */}
{/* ── Step 0: Welcome Name & Theme ── */}
{step === "welcome" && (
<div className="setup-step setup-welcome">
<div className="setup-welcome-brand">
Expand Down Expand Up @@ -390,7 +390,7 @@ export default function OnboardingWizard({ open, onComplete, settings, onSetting
</div>
)}

{/* 鈹€鈹€ Step 1: Provider selection 鈹€鈹€ */}
{/* ── Step 1: Provider selection ── */}
{step === "provider" && (
<div className="setup-step">
<div className="setup-step-header">
Expand Down Expand Up @@ -430,7 +430,7 @@ export default function OnboardingWizard({ open, onComplete, settings, onSetting
</div>
)}

{/* 鈹€鈹€ Step 2: Model credentials 鈹€鈹€ */}
{/* ── Step 2: Model credentials ── */}
{step === "model" && selectedProvider && (
<div className="setup-step">
<div className="setup-step-header">
Expand Down Expand Up @@ -555,7 +555,7 @@ export default function OnboardingWizard({ open, onComplete, settings, onSetting
</div>
)}

{/* 鈹€鈹€ Step 2: Summarizer 鈹€鈹€ */}
{/* ── Step 2: Summarizer ── */}
{step === "summarizer" && (
<div className="setup-step">
<div className="setup-step-header">
Expand Down Expand Up @@ -722,7 +722,7 @@ export default function OnboardingWizard({ open, onComplete, settings, onSetting
</div>
)}

{/* 鈹€鈹€ Step 3: Web Tools 鈹€鈹€ */}
{/* ── Step 3: Web Tools ── */}
{step === "tools" && (
<div className="setup-step">
<div className="setup-step-header">
Expand Down Expand Up @@ -838,7 +838,7 @@ export default function OnboardingWizard({ open, onComplete, settings, onSetting
</div>
)}

{/* 鈹€鈹€ Step 4: Compute 鈹€鈹€ */}
{/* ── Step 4: Compute ── */}
{step === "compute" && (
<div className="setup-step">
<div className="setup-step-header">
Expand Down Expand Up @@ -1079,7 +1079,7 @@ export default function OnboardingWizard({ open, onComplete, settings, onSetting
</div>
)}

{/* 鈹€鈹€ Step 5: Done 鈹€鈹€ */}
{/* ── Step 5: Done ── */}
{step === "done" && (
<div className="setup-step">
<div className="setup-done-icon">
Expand Down
Loading
Loading