/** * Admin-conversation JSONL purge — Task 237. * * Shared primitive that fires the claude-session-manager's * `DELETE /:sessionId` per attached JSONL. Pure JSONL-only: it does not * touch the graph. Callers (the `cascadeAdminConversationDelete` engine * and `memory-empty-trash`'s defense-in-depth `onEmpty`) own the graph * side and decide whether to proceed after the JSONL outcome lands. * * Contract: * - manager 204 (purged) or 404 (manager never knew the JSONL) both count * as "transcript no longer exists" and proceed to the next sessionId. * - manager 409 is the structural `pty-still-alive` stop check; the loop * halts and the caller surfaces the live sessionId. * - any other status or transport failure halts the loop with * `jsonl-purge-failed`, naming the failing sessionId and the ids already * purged at the failure point. * * Log lines mirror the Task 217 cascade so a single grep * (`[admin-conversation-delete]`) covers both call sites. */ export interface PurgeAdminConversationJsonlsArgs { /** Used only for log id8; not for routing. */ sessionId: string; /** Used only for log line context; the helper does not enforce isolation * (the caller has already account-scoped the candidate). */ accountId: string; /** Loopback manager base URL — `http://127.0.0.1:${CLAUDE_SESSION_MANAGER_PORT}`. */ managerBase: string; /** Pre-resolved sessionIds to purge. Caller chooses the lookup strategy * (`getConversationClaudeSessionIds` for live conversations, * elementId-based walk for trashed ones). */ claudeSessionIds: string[]; fetchImpl?: typeof fetch; logger?: (line: string) => void; } export type PurgeAdminConversationJsonlsOutcome = { ok: true; claudeSessionIdsPurged: string[]; } | { ok: false; reason: "pty-still-alive"; claudeSessionId: string; claudeSessionIdsPurged: string[]; } | { ok: false; reason: "jsonl-purge-failed"; claudeSessionId: string; claudeSessionIdsPurged: string[]; status: number; message: string; }; export declare function purgeAdminConversationJsonls(args: PurgeAdminConversationJsonlsArgs): Promise; //# sourceMappingURL=index.d.ts.map