Skip to content

effect

BirdDog could not complete one owned store or transport operation.

  • Error

new BirdDogError(message, options?): BirdDogError

string

ErrorOptions

BirdDogError

Error.constructor

readonly _tag: "BirdDogError"

Stable discriminator for BirdDog-owned effect failures.

EffectBirdDogOptions = Readonly<{ outbox: Readonly<{ put: (key, value) => Effect.Effect<void, BirdDogError>>; read: (key) => Effect.Effect<string | undefined, BirdDogError>>; list: (limit, afterKey?) => Effect.Effect<readonly Readonly<{ key: string; value: string; }>[], BirdDogError>>; delete: (key) => Effect.Effect<void, BirdDogError>>; }>; post: (mail) => Effect.Effect<boolean, BirdDogError>>; scheduleWake: (at) => Effect.Effect<void, BirdDogError>>; now: () => number; }>

Effect host ports for the durable mail room.


BirdDogEffect = Readonly<{ fanOut: (settlement) => Effect.Effect<void, BirdDogError>>; drainOutbox: () => Effect.Effect<void, BirdDogError>>; }>

Effect-native durable reply delivery.

const BirdDogAgentReferenceSchema: Struct<{ kind: Literal<"agent">>; agentId: String; sessionId: String; }>

Parser for an ordinary agent Session address.


const BirdDogMailSchema: Struct<{ key: String; to: Struct<{ kind: Literal<"agent">>; agentId: String; sessionId: String; }>; from: Struct<{ kind: Literal<"agent">>; agentId: String; sessionId: String; }>; replyTo: $Array<Struct<{ kind: Literal<"agent">>; agentId: String; sessionId: String; }>>; content: String; createdAt: Number; }>

Parser for addressed agent correspondence.


const BirdDogAgentWorkSchema: Struct<{ jobId: String; sessionId: String; commandFactId: String; recovery: optional<Struct<{ maxRecoveries: Int; }>>; }>

Parser for accepted Session work.


const BirdDogAgentJobPayloadSchema: Struct<{ work: Struct<{ sessionId: String; commandFactId: String; }>; mail: optional<Struct<{ key: String; to: Struct<{ kind: Literal<"agent">>; agentId: String; sessionId: String; }>; from: Struct<{ kind: Literal<"agent">>; agentId: String; sessionId: String; }>; replyTo: $Array<Struct<{ kind: Literal<"agent">>; agentId: String; sessionId: String; }>>; content: String; createdAt: Number; }>>; }>

Parser for the payload that Watchdog stores without interpretation.


const BirdDogAgentJobInputSchema: Struct<{ work: Struct<{ jobId: String; sessionId: String; commandFactId: String; recovery: optional<Struct<{ maxRecoveries: Int; }>>; }>; mail: optional<Struct<{ key: String; to: Struct<{ kind: Literal<"agent">>; agentId: String; sessionId: String; }>; from: Struct<{ kind: Literal<"agent">>; agentId: String; sessionId: String; }>; replyTo: $Array<Struct<{ kind: Literal<"agent">>; agentId: String; sessionId: String; }>>; content: String; createdAt: Number; }>>; }>

Parser for accepted work entering BirdDog’s transactional projection.

agentJobFromInput(input): object

Validate and translate agent work into Watchdog’s opaque job grammar.

BirdDogAgentJobInput

object

readonly state: "queued"

readonly jobId: string

readonly queue: string

readonly lane: string

readonly priority: number

readonly payload: unknown

readonly optional recovery?: object

readonly maxRecoveries: number


decodeAgentJob(job): BirdDogAgentJobPayload

Decode the opaque payload at BirdDog’s side of the Watchdog seam.

{ state: "queued"; jobId: string; queue: string; lane: string; priority: number; payload: unknown; recovery?: { maxRecoveries: number; }; } | { state: "running"; jobId: string; queue: string; lane: string; priority: number; payload: unknown; recovery?: { maxRecoveries: number; }; } | { state: "settled"; outcome: "failed" | "completed" | "interrupted" | "cancelled" | "outcome_unknown"; failureReason?: string; jobId: string; queue: string; lane: string; priority: number; payload: unknown; recovery?: { maxRecoveries: number; }; }

{ state: "settled"; outcome: "failed" | "completed" | "interrupted" | "cancelled" | "outcome_unknown"; failureReason?: string; jobId: string; queue: string; lane: string; priority: number; payload: unknown; recovery?: { maxRecoveries: number; }; }

"settled"

"failed" | "completed" | "interrupted" | "cancelled" | "outcome_unknown"

string

Why a job failed or exhausted disappearance recovery, when known.

string

string

string

number

unknown

{ maxRecoveries: number; }

number

BirdDogAgentJobPayload


make(options): Effect<Readonly<{ fanOut: (settlement) => Effect<void, BirdDogError>>; drainOutbox: () => Effect<void, BirdDogError>>; }>>

Construct BirdDog’s Effect-native mail room over Post’s shared outbox.

EffectBirdDogOptions

Effect<Readonly<{ fanOut: (settlement) => Effect<void, BirdDogError>; drainOutbox: () => Effect<void, BirdDogError>; }>>