kimi-code / packages /agent-core-v2 /src /app /sessionIndex /sessionIndexModel.ts
SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
68d7816 verified
Raw History Blame Contribute Delete
1.09 kB
import type { SessionSummary } from './sessionIndex';
export const SESSION_INDEX_MANIFEST = 'sessionIndex';
export const SESSION_INDEX_SCHEMA_VERSION = 2;
export const PARENT_INDEX_NAME = 'byParent';
export interface SessionWorkspaceCounts {
readonly active: number;
readonly archived: number;
}
export function sessionCollection(generation: number): string {
return `session:g${generation}`;
}
export function sessionCountersCollection(generation: number): string {
return `sessionCounters:g${generation}`;
}
export function recencyColumn(generation: number): string {
return `g${generation}:updatedAt`;
}
export function withRecencyField(generation: number, summary: SessionSummary): SessionSummary {
return { ...summary, [recencyColumn(generation)]: summary.updatedAt };
}
export function stripRecencyField(generation: number, record: SessionSummary): SessionSummary {
const key = recencyColumn(generation);
if (!(key in record)) return record;
const rest: Record<string, unknown> = { ...record };
delete rest[key];
return rest as unknown as SessionSummary;
}