UNPKG

@posthog/agent

Version:

TypeScript agent framework wrapping Claude Agent SDK with Git-based task execution for PostHog

53 lines 1.97 kB
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