The four account panes now share a fixed frame, chart profiles open as list then detail, and membership lives in the homepage dialog instead of a separate page. Co-authored-by: Cursor <cursoragent@cursor.com>
61 lines
2.2 KiB
TypeScript
61 lines
2.2 KiB
TypeScript
"use client";
|
|
|
|
import type { PublicLanguageModel } from "../lib/public-models.ts";
|
|
import type { ChatMessage } from "../lib/chat-message-view.ts";
|
|
import type { RectificationCaseSnapshotPayload } from "../lib/rectification-surface-state.ts";
|
|
import { RectificationAgenticChat } from "./rectification-agentic-chat.tsx";
|
|
|
|
export type PersistedRectificationTurn = Readonly<{
|
|
id: string;
|
|
role: "user" | "assistant";
|
|
text: string | null;
|
|
status: string;
|
|
question?: unknown;
|
|
offer_result_id?: string | null;
|
|
receipt?: Readonly<{
|
|
status: string;
|
|
phases: readonly string[];
|
|
tool_activities?: readonly Readonly<{
|
|
tool: string;
|
|
status: string;
|
|
methods?: readonly string[];
|
|
started_at?: string | null;
|
|
elapsed_ms?: number | null;
|
|
detail?: Readonly<Record<string, unknown>> | null;
|
|
}>[];
|
|
tools: readonly string[];
|
|
methods?: readonly string[];
|
|
skill_name?: string;
|
|
skill_version?: string;
|
|
}> | null;
|
|
}>;
|
|
|
|
export type ConversationalBirthTimeRectificationProps = Readonly<{
|
|
caseId: string;
|
|
sessionId: string;
|
|
readonly: boolean;
|
|
shouldStartOpening: boolean;
|
|
initialTurns: readonly PersistedRectificationTurn[];
|
|
/** The Case snapshot read together with the turns before the surface mounted; null when hydration failed. */
|
|
initialSnapshot: RectificationCaseSnapshotPayload | null;
|
|
/** The declared birth minute from the profile, shown on the board before any candidate exists. */
|
|
declaredTime: string | null;
|
|
models: readonly PublicLanguageModel[];
|
|
selectedModelId: string;
|
|
onSelectModel: (modelId: string) => void;
|
|
onMessagesChange?: (messages: ChatMessage[]) => void;
|
|
onCompleted?: () => void;
|
|
onPendingChange?: (pending: boolean) => void;
|
|
onProfileIncomplete?: () => void;
|
|
onOpenBilling?: (options?: { source?: string }) => void;
|
|
onSaved?: (time: string, status: "accepted" | "confirmed") => void;
|
|
onOpeningConsumed?: () => void;
|
|
pendingConsultationQuestion?: string | null;
|
|
onRestart?: () => void;
|
|
headerSlot: HTMLElement | null;
|
|
}>;
|
|
|
|
export function ConversationalBirthTimeRectification(props: ConversationalBirthTimeRectificationProps) {
|
|
return <RectificationAgenticChat {...props} />;
|
|
}
|