Skip to content

effect

@fungi.computer/mule


@fungi.computer/mule / effect

MulePreparedTool = object

A decoded, authorized invocation ready to execute.

readonly execute: () => Stream.Stream<MuleToolExecutionPart, MuleError>>

Run the already-decoded and authorized tool call.

Stream.Stream<MuleToolExecutionPart, MuleError>


MuleTool = object

Pi tool declaration paired with its Effect-native preparation door.

readonly descriptor: Tool

readonly optional executionMode?: "parallel" | "sequential"

readonly prepare: (call) => Effect.Effect<MulePreparedTool, MuleToolRejection>>

Decode and authorize one exact Pi tool call before it can execute.

ToolCall

Effect.Effect<MulePreparedTool, MuleToolRejection>


MuleListener = (event) => Effect.Effect<void, MuleError>>

Effect-native listener. Completion is part of run settlement.

MuleEvent

Effect.Effect<void, MuleError>


MuleRunInput = MuleRunSettings & object

Inputs for one complete Pi model/tool loop. Cancel a run by interrupting its fiber; the run then ends with a cancelled run_end.

readonly optional tools?: readonly MuleTool[]

readonly optional resolveApiKey?: (provider) => Effect.Effect<string | undefined, MuleError>>

Resolve a fresh provider credential immediately before each Pi call.

string

Effect.Effect<string | undefined, MuleError>

readonly optional getSteeringMessages?: () => Effect.Effect<readonly Message[], MuleError>>

Pull messages that should steer the active run at Pi’s safe point.

Effect.Effect<readonly Message[], MuleError>

readonly optional getFollowUpMessages?: () => Effect.Effect<readonly Message[], MuleError>>

Pull messages queued until the run would otherwise finish.

Effect.Effect<readonly Message[], MuleError>

readonly optional shouldStopAfterTurn?: (turn) => Effect.Effect<boolean, MuleError>>

Request a graceful stop after the current Pi turn has fully settled.

MuleCompletedTurn

Effect.Effect<boolean, MuleError>


MuleEffect = object

Canonical Effect-native Mule interface.

readonly run: (input, listener?) => Effect.Effect<MuleRunOutcome, MuleError>>

Run one complete Pi model/tool loop.

MuleRunInput

MuleListener

Effect.Effect<MuleRunOutcome, MuleError>

const muleEffect: MuleEffect

Canonical Effect-native Mule value.

isContextOverflow(message, contextWindow?): boolean

Apply Pi’s maintained context-overflow semantics to an exact Pi message.

AssistantMessage

number

boolean


run(input, listener?): Effect<MuleRunOutcome, MuleError>>

Run Pi’s model/tool loop inside Effect without changing Pi’s values.

MuleRunInput

MuleListener = noListener

Effect<MuleRunOutcome, MuleError>

Re-exports MuleCompletedTurn


Re-exports MuleError


Re-exports MuleEvent


Re-exports MuleIdentity


Re-exports MuleIdentityKind


Re-exports MuleRunOutcome


Re-exports MuleRunSettings


Re-exports MuleStreamFunction


Re-exports MuleToolExecutionPart


Re-exports MuleToolRejection


Re-exports MuleToolResult