@sema-agent/core
Version:
Stateless, task-oriented AI agent core
24 lines (23 loc) • 1.42 kB
TypeScript
import { type Session, type SessionForkOptions, type SessionMetadata, type SessionRepo, type SessionTreeEntry } from "../harness/types.js";
export declare class InMemorySessionRepo implements SessionRepo<SessionMetadata, {
id?: string;
}> {
private sessions;
create(options?: {
id?: string;
}): Promise<Session>;
open(metadata: SessionMetadata): Promise<Session>;
list(): Promise<SessionMetadata[]>;
delete(metadata: SessionMetadata): Promise<void>;
fork(sourceMetadata: SessionMetadata, options: SessionForkOptions): Promise<Session>;
/** 2c session-sync: the FULL log for export. InMemory holds everything (no F3 floor), so
* `getEntries()` IS the full oldest-first log with `id`/`parentId` verbatim. */
exportEntries(sessionId: string): Promise<SessionTreeEntry[]>;
/** 2c session-sync: import a verbatim log into `sessionId`. The single invariant gate runs first
* ({@link validateEntriesForImport}, fail-closed); `owner` is a durable multi-tenant concept that the local
* in-memory backend has no field for, so it is accepted but unused here. design/171: the operator's
* trusted-import flag is forwarded to the gate that persists — see SessionRepo.importEntries. */
importEntries(sessionId: string, owner: string | undefined, entries: SessionTreeEntry[], options?: {
preserveActorAssertions?: boolean;
}): Promise<void>;
}