lorehub
Version:
Capture and surface the collective wisdom of your codebase
54 lines • 1.49 kB
TypeScript
import type { Workspace } from '../core/types.js';
import { Database } from '../db/database.js';
export interface SyncManifest {
version: '1.0.0';
workspaceId: string;
workspaceName: string;
created: Date;
lastSync: Date;
deviceId: string;
syncProtocol: 'git-v1';
}
export interface ChangeEvent {
id: string;
timestamp: Date;
deviceId: string;
operation: 'create' | 'update' | 'delete' | 'archive';
entity: 'lore' | 'realm' | 'relation';
entityId: string;
data?: any;
metadata?: {
realmId?: string;
workspaceId?: string;
};
}
export interface SyncResult {
pulled: number;
pushed: number;
conflicts: number;
errors: string[];
}
export declare class GitSyncAdapter {
private git;
private syncPath;
private workspace;
private deviceId;
private db;
constructor(workspace: Workspace, db: Database);
initialize(): Promise<void>;
recordChange(change: Omit<ChangeEvent, 'id' | 'timestamp' | 'deviceId'>): Promise<void>;
push(): Promise<SyncResult>;
pull(): Promise<SyncResult>;
sync(): Promise<SyncResult>;
exportWorkspaceData(): Promise<void>;
private combineExportChunks;
private getChangesSince;
private applyChange;
private applyLoreChange;
private applyRealmChange;
private applyRelationChange;
private getOrCreateDeviceId;
private readJsonFile;
private writeJsonFile;
}
//# sourceMappingURL=git-sync-adapter.d.ts.map