Skip to content

effect

ShiitakeEffectHost = Readonly<{ agent: ShiitakeEffectAgent; acceptMail: (mail) => Effect.Effect<Accepted, ShiitakeError>>; }>

Effect-native host composition with addressed mail kept off Session.


ModelAcquisitionEffect = Readonly<{ model: Model<Api>>; stream?: MuleStreamFunction; retryAfterMs?: (message) => number | undefined; release: Effect.Effect<void, ShiitakeError>>; }>

Effect-native acquired Pi model and finalizer.


ModelSourceEffect = Readonly<{ acquire: (input) => Effect.Effect<ModelAcquisitionEffect, ShiitakeError>>; }>

Effect-native model acquisition owner.


InstructionSourceEffect = Readonly<{ load: (input) => Effect.Effect<InstructionSnapshot, ShiitakeError, Scope.Scope>>; }>

Effect-native instruction snapshot owner.


ToolSourceEffect = Readonly<{ execution?: ExecutionOptions; modules: readonly ModuleRegistration[]; sources: readonly CapabilitySource[]; sandbox: Sandbox; }>

Effect-native Mycelium construction inputs.


RuntimeHostEffect = Readonly<{ bind: (input) => Effect.Effect<Readonly<{ commit: <A>>(mutation) => Effect.Effect<A, ShiitakeError>>; requestWake: Effect.Effect<void, ShiitakeError>>; close: Effect.Effect<void, ShiitakeError>>; }>, ShiitakeError>>; }>

Effect-native owner for scheduling the opaque durable reconciler.


ShiitakeEffectOptions = Readonly<{ store: SqliteOwner; hostJobs?: Readonly<{ lane: string; open: (runtime) => Readonly<{ execute: (job) => Effect.Effect<WatchdogExecutionDecision, WatchdogError>>; }>; }>; model: ModelSourceEffect; instructions: InstructionSourceEffect; tools?: ToolSourceEffect; files?: FilesSurface; gateTool?: (input) => OperationGate; runtime: RuntimeHostEffect; extensions: ExtensionRosterV0; retry?: RetryPolicy; modelStreamIdleTimeoutMs?: number; }>

Validated construction bag for owned Effect composition.


ShiitakeEffectWatch = Readonly<{ snapshot: SessionSnapshot; changes: Stream.Stream<SessionFrame, ShiitakeError>>; close: Effect.Effect<void, ShiitakeError>>; }>

Effect-native race-safe watch result.


ShiitakeEffectCommandHandler = {(input): Effect<Readonly<{ status: "accepted"; commandId: string; }>, ShiitakeError>>; (input): Effect<CancelResult, ShiitakeError>>; (input): Effect<undefined, ShiitakeError>>; (input): Effect<Readonly<{ sessionId: string; }>, ShiitakeError>>; (input): Effect<CancelResult | Readonly<{ sessionId: string; }> | undefined, ShiitakeError>>; }

Effect-native addressable Session handle.

(input): Effect<Readonly<{ status: "accepted"; commandId: string; }>, ShiitakeError>>

Accept one durable prompt command.

"followUp" | "steer" = PromptDeliverySchema

string = boundedId

"prompt" = ...

string = PromptTextSchema

Effect<Readonly<{ status: "accepted"; commandId: string; }>, ShiitakeError>

(input): Effect<CancelResult, ShiitakeError>>

Cancel one accepted command, or report that it is too late.

string = boundedId

boolean = ...

"cancel" = ...

Effect<CancelResult, ShiitakeError>

(input): Effect<undefined, ShiitakeError>>

Abort the active run, select a lineage leaf, or record an operator line.

{ type: "abort"; } | { type: "branch"; entryId: string; } | { type: "operator"; requestId: string; author: "operator" | "party"; text: string; }

Effect<undefined, ShiitakeError>

(input): Effect<Readonly<{ sessionId: string; }>, ShiitakeError>>

Fork one complete entry lineage into a new Session.

"fork" = ...

string = boundedId

Effect<Readonly<{ sessionId: string; }>, ShiitakeError>

(input): Effect<CancelResult | Readonly<{ sessionId: string; }> | undefined, ShiitakeError>>

Execute an already-decoded command union.

{ delivery: "followUp" | "steer"; requestId: string; type: "prompt"; text: string; } | { type: "abort"; } | { commandId: string; onlyIfPending?: boolean; type: "cancel"; } | { type: "branch"; entryId: string; } | { type: "fork"; entryId: string; } | { type: "operator"; requestId: string; author: "operator" | "party"; text: string; }

Effect<CancelResult | Readonly<{ sessionId: string; }> | undefined, ShiitakeError>


ShiitakeEffectSendOptions = Readonly<{ delivery?: PromptDelivery; requestId?: string; }>

Delivery intent and an optional private retry key for Effect-native sending.


ShiitakeEffectSession = Readonly<{ command: ShiitakeEffectCommandHandler; abort: Effect.Effect<void, ShiitakeError>>; send: (text, options?) => Effect.Effect<Accepted, ShiitakeError>>; cancel: (input) => Effect.Effect<CancelResult, ShiitakeError>>; extension: (extensionId) => ShiitakeEffectSessionExtension; modelPreference: Readonly<{ read: Effect.Effect<ModelPreference | null, ShiitakeError>>; set: (preference) => Effect.Effect<void, ShiitakeError>>; }>; read: (input?) => Effect.Effect<SessionSnapshot, ShiitakeError>>; subscribe: (input) => Stream.Stream<SessionFrame, ShiitakeError>>; watch: (input?) => Effect.Effect<ShiitakeEffectWatch, ShiitakeError>>; }>

Effect-native addressable Session handle.


ShiitakeEffectSessionExtension = Readonly<{ call: (command, input) => Effect.Effect<Json, ShiitakeError>>; }>

Effect-native Session-scope extension commands.


ShiitakeEffectAgentExtensions = Readonly<{ list: Effect.Effect<readonly ExtensionStatusV0[], ShiitakeError>>; resume: (extensionId) => Effect.Effect<ExtensionStatusV0, ShiitakeError>>; call: (extensionId, command, input) => Effect.Effect<Json, ShiitakeError>>; }>

Effect-native Agent-scope extension controls.


ShiitakeEffectAgent = Readonly<{ createSession: (requestId) => Effect.Effect<string, ShiitakeError>>; deleteSession: (sessionId) => Effect.Effect<boolean, ShiitakeError>>; listSessions: (after?) => Effect.Effect<SessionSummaryPage, ShiitakeError>>; extensions: ShiitakeEffectAgentExtensions; session: (sessionId) => ShiitakeEffectSession; close: Effect.Effect<void, ShiitakeError>>; }>

Effect-native durable harness.


StoredSessionSummary = Readonly<{ createdAt: number; updatedAt: number; title: string; }>

Persisted conversation facts; run status belongs to the Session’s owner.


StoredSessionSummaryRow = StoredSessionSummary & Readonly<{ kind: "session"; sessionId: string; }> | Readonly<{ kind: "unavailable"; sessionId: string; }>

One persisted conversation’s stored facts, or a row that could not be read.


StoredSessionSummaryPage = Readonly<{ sessions: readonly StoredSessionSummaryRow[]; next: string | undefined; }>

One page of stored conversation facts, in stable Session identity order.

make(options): Effect<Readonly<{ createSession: (requestId) => Effect<string, ShiitakeError>>; deleteSession: (sessionId) => Effect<boolean, ShiitakeError>>; listSessions: (after?) => Effect<Readonly<{ sessions: readonly SessionSummaryRow[]; next: string | undefined; }>, ShiitakeError>>; extensions: ShiitakeEffectAgentExtensions; session: (sessionId) => ShiitakeEffectSession; close: Effect<void, ShiitakeError>>; }>, ShiitakeError>>

Construct the canonical Effect-native Shiitake scaffold.

ShiitakeEffectOptions

Effect<Readonly<{ createSession: (requestId) => Effect<string, ShiitakeError>; deleteSession: (sessionId) => Effect<boolean, ShiitakeError>; listSessions: (after?) => Effect<Readonly<{ sessions: readonly SessionSummaryRow[]; next: string | undefined; }>, ShiitakeError>; extensions: ShiitakeEffectAgentExtensions; session: (sessionId) => ShiitakeEffectSession; close: Effect<void, ShiitakeError>; }>, ShiitakeError>


openHost(options, mailRoom): Effect<Readonly<{ agent: ShiitakeEffectAgent; acceptMail: (mail) => Effect<Readonly<{ status: "accepted"; commandId: string; }>, ShiitakeError>>; }>, ShiitakeError>>

Open the Effect-native host composition with addressed mail.

ShiitakeEffectOptions

BirdDogEffect

Effect<Readonly<{ agent: ShiitakeEffectAgent; acceptMail: (mail) => Effect<Readonly<{ status: "accepted"; commandId: string; }>, ShiitakeError>; }>, ShiitakeError>


readSessionSummaries(owner, after?): Effect<Readonly<{ sessions: readonly StoredSessionSummaryRow[]; next: string | undefined; }>, ShiitakeError, never>>

Enumerate saved conversations’ stored facts in bounded pages, for readers that hold only the store. Run status is not stored; use the Agent’s listSessions for it. An unreadable Session is its own unavailable row.

SqliteOwner

string

Effect<Readonly<{ sessions: readonly StoredSessionSummaryRow[]; next: string | undefined; }>, ShiitakeError, never>


inspectWoodstockStoreProtocol(owner): "fresh" | "v0" | "unmarked"

Inspect one unopened store before the file-backed host takes custody.

SqliteOwner

"fresh" | "v0" | "unmarked"

Re-exports AbortCommand


Re-exports BranchCommand


Re-exports CancelCommand


Re-exports CancelResult


Re-exports Accepted


Re-exports ForkCommand


Re-exports ForkedSession


Re-exports PromptCommand


Re-exports PromptDelivery


Re-exports ReadOptions


Re-exports SessionCommand


Re-exports SessionCommandHandler


Re-exports SessionFrame


Re-exports SessionMessage


Re-exports SessionProgress


Re-exports SessionSnapshot


Re-exports SessionActivity


Re-exports SubscribeOptions


Re-exports TooLate


Re-exports WatchOptions


Re-exports InstructionSnapshot


Re-exports InstructionSource


Re-exports ModelAcquisition


Re-exports ModelSource


Re-exports RuntimeHost


Re-exports RuntimePendingWork


Re-exports SqliteCursor


Re-exports SqliteOwner


Re-exports SqliteValue


Re-exports SqliteRow


Re-exports ShiitakeOptions


Re-exports ToolSource


Re-exports SessionSummary


Re-exports BorrowedCompactionViewV0


Re-exports CompactionHandoffErrorV0


Re-exports CompactionHandoffResultV0


Re-exports CompactionHandoffV0


Re-exports ExtensionCapabilityV0


Re-exports ExtensionGrantV0


Re-exports ExtensionRosterV0


Re-exports ExtensionSlotV0


Re-exports ExtensionStatusV0


Re-exports RosteredExtensionV0


Re-exports ShiitakeError


Re-exports ModelPreference


Re-exports SessionSummaryPage


Re-exports SessionSummaryRow


Re-exports sqliteRowSchema