Skip to content

DrainDeps

Defined in: src/drain.ts:107

optional detectBackend?: () => SandboxBackend

Defined in: src/drain.ts:156

Sandbox backend probe seam (tests inject so no real bwrap spawns); defaults to the cached real self-test in sandbox.ts. Mirrors SessionService’s seam.

SandboxBackend


optional detectEgressBackend?: () => EgressBackend

Defined in: src/drain.ts:161

Egress backend probe seam (tests inject so no real netns/dnsmasq spawns); defaults to the cached real self-test in egress.ts. Probed only for an autonomous-profile repo with an FS backend, so a drain-spawned autonomous session is refused-loud when egress is unavailable.

EgressBackend


dropPrCache: (id) => void

Defined in: src/drain.ts:144

→ prPoller.drop(id).

string

void


emitArchived: (id) => void

Defined in: src/drain.ts:142

→ events.emit(“session:archived”, {id}).

string

void


optional emitEpic?: (epic) => void

Defined in: src/drain.ts:146

→ events.emit(“epic:update”, epic). Optional — absent in tests that don’t need it.

Epic

void


optional emitEpicCompleted?: (epic) => void

Defined in: src/drain.ts:148

→ events.emit(“epic:completed”, e). Optional — absent in tests that don’t need it.

CompletedEpic

void


optional emitSessionNew?: (s) => void

Defined in: src/drain.ts:150

→ events.emit(“session:new”, s). Optional — absent in tests that don’t need it.

Session

void


emitStatus: (status) => void

Defined in: src/drain.ts:140

→ events.emit(“drain:status”, status).

DrainStatus

void


optional issuesTtlMs?: number

Defined in: src/drain.ts:153

Short cache for listIssues (default 10s).


optional now?: () => number

Defined in: src/drain.ts:151

number


prCache: object

Defined in: src/drain.ts:135

snapshot(): Record<string, GitState>

Record<string, GitState>


repos: () => string[]

Defined in: src/drain.ts:138

Candidate repo paths (e.g. listRepos output).

string[]


resolveForge: (repoPath) => GitForge | null

Defined in: src/drain.ts:134

string

GitForge | null


service: object

Defined in: src/drain.ts:130

archive(id): Promise<number>

string

Promise<number>

create(input): Promise<Session>

CreateSessionInput

Promise<Session>


store: Pick<SessionStore, "get" | "list" | "getRepoConfig" | "getReview" | "archive" | "getEpicRun" | "setEpicRun" | "getOrInitEpicIntegrationBranch" | "listEpicIntegrated" | "recordEpicIntegrated" | "listEpicIntegratedDetails" | "recordEpicCompleted" | "listEpicCompleted" | "setEpicLandingPr" | "setEpicMigrationPaths" | "recordEpicBaseMismatch" | "clearEpicBaseMismatch" | "getEpicBaseMismatch" | "listEpicBaseMismatches">

Defined in: src/drain.ts:108


usage: object

Defined in: src/drain.ts:136

limits(now): UsageLimits

number

UsageLimits