@posthog/agent
Version:
TypeScript agent framework wrapping Claude Agent SDK with Git-based task execution for PostHog
53 lines • 1.97 kB
TypeScript
import type { PostHogAPIClient, TaskRunUpdate } from "./posthog-api.js";
import type { TaskRun } from "./types.js";
import { Logger } from "./utils/logger.js";
export interface SessionPersistenceConfig {
taskId: string;
runId: string;
logUrl: string;
sdkSessionId?: string;
}
export declare class SessionStore {
private posthogAPI?;
private pendingEntries;
private flushTimeouts;
private configs;
private logger;
constructor(posthogAPI?: PostHogAPIClient, logger?: Logger);
/** Register a session for persistence */
register(sessionId: string, config: SessionPersistenceConfig): void;
/** Unregister and flush pending */
unregister(sessionId: string): Promise<void>;
/** Check if a session is registered for persistence */
isRegistered(sessionId: string): boolean;
/**
* Append a raw JSON-RPC line for persistence.
* Parses and wraps as StoredNotification for the API.
*/
appendRawLine(sessionId: string, line: string): void;
/** Load raw JSON-RPC messages from S3 */
load(logUrl: string): Promise<unknown[]>;
/** Force flush pending entries */
flush(sessionId: string): Promise<void>;
private scheduleFlush;
/** Get the persistence config for a session */
getConfig(sessionId: string): SessionPersistenceConfig | undefined;
/**
* Start a session for persistence.
* Loads the task run and updates status to "in_progress".
*/
start(sessionId: string, taskId: string, runId: string): Promise<TaskRun | undefined>;
/**
* Mark a session as completed.
*/
complete(sessionId: string): Promise<void>;
/**
* Mark a session as failed.
*/
fail(sessionId: string, error: Error | string): Promise<void>;
/**
* Update the task run associated with a session.
*/
updateTaskRun(sessionId: string, update: TaskRunUpdate): Promise<TaskRun | undefined>;
}
//# sourceMappingURL=session-store.d.ts.map