返回 DeepSeek-Reasonix
sessionLifecycleBindings.ts
根目录 / desktop / frontend / src / lib / sessionLifecycleBindings.ts
1 import type { AppBindings } from "./bridge";
2 import type { SessionRef } from "./sessionRef";
3 import type { HistoryPage } from "./types";
4
5 export interface CanonicalProjectNodeFields {
6 session?: SessionRef;
7 canArchive?: boolean;
8 }
9
10 export interface SessionLifecycleBindings {
11 ListHistoricalSessions?(): Promise<import("../generated/desktopContract.generated").HistoricalImportStatus>;
12 GetHistoricalImportStatus?(): Promise<import("../generated/desktopContract.generated").HistoricalImportStatus>;
13 ImportHistoricalSession?(id: string): Promise<import("../generated/desktopContract.generated").SessionRestoreResult>;
14 PrepareSession?(selector: import("../generated/desktopContract.generated").SessionSelector): Promise<import("../generated/desktopContract.generated").SessionPreparationView>;
15 GetSessionPreparation?(operationId: string): Promise<import("../generated/desktopContract.generated").SessionPreparationView>;
16 CancelSessionPreparation?(operationId: string): Promise<import("../generated/desktopContract.generated").SessionPreparationView>;
17 CheckHistoricalSourceUpdate?(selector: import("../generated/desktopContract.generated").SessionSelector): Promise<import("../generated/desktopContract.generated").HistoricalSourceUpdateView>;
18 PrepareHistoricalSourceVersion?(source: import("../generated/desktopContract.generated").SessionSourceRef, version: string): Promise<import("../generated/desktopContract.generated").SessionPreparationView>;
19 StartHistoricalImport?(ids: string[]): Promise<import("../generated/desktopContract.generated").HistoricalImportStatus>;
20 ControlHistoricalImport?(action: string): Promise<import("../generated/desktopContract.generated").HistoricalImportStatus>;
21 ApplySessionLifecycle(request: import("../generated/desktopContract.generated").SessionLifecycleRequest): Promise<import("../generated/desktopContract.generated").SessionLifecycleResult>;
22 ListTrashEntries(query: string, cursor: string, limit: number): Promise<import("../generated/desktopContract.generated").TrashEntryPage>;
23 ListRecoveryEntries(query: string, cursor: string, limit: number): Promise<import("../generated/desktopContract.generated").RecoveryEntryPage>;
24 PreviewRecoveryEntry(id: string): Promise<HistoryPage>;
25 RestoreRecoveryEntry(id: string, operationId: string): Promise<import("../generated/desktopContract.generated").SessionRestoreResult>;
26 GetSessionUpgradeStatus(): Promise<import("../generated/desktopContract.generated").SessionUpgradeStatus>;
27 PurgeCanonicalSession(ref: SessionRef): Promise<void>;
28 }
29
30 export type MockSessionLifecycleBindings = SessionLifecycleBindings & Pick<AppBindings, "InspectTopicRemoval" | "RemoveTopic">;
31
32 export function makeMockSessionLifecycleBindings(...args: Parameters<typeof import("./sessionLifecycleMock").makeMockSessionLifecycleBindings>): MockSessionLifecycleBindings {
33 const bindings = import("./sessionLifecycleMock").then(module => module.makeMockSessionLifecycleBindings(...args));
34 return Object.fromEntries(["PurgeCanonicalSession","ListTrashEntries","ApplySessionLifecycle","ListRecoveryEntries","PreviewRecoveryEntry","RestoreRecoveryEntry","GetSessionUpgradeStatus","InspectTopicRemoval","RemoveTopic"].map(name => [name, async function(this: AppBindings, ...values: unknown[]) {
35 const owner = await bindings;
36 return (owner[name as keyof typeof owner] as (...params: unknown[]) => unknown).apply(this, values);
37 }])) as unknown as MockSessionLifecycleBindings;
38 }
39
39 lines TYPESCRIPT