Skip to main content Link Search Menu Expand Document (external link)

AiPlan.ts overview

Since v1.0.0


Exports Grouped by Category


AiPlan

AiPlan (interface)

Signature

export interface AiPlan<in Error, in out Provides, in out Requires>
  extends Pipeable,
    AiPlan.Builder<Provides, Requires> {
  readonly [TypeId]: TypeId
  readonly [Unify.typeSymbol]?: unknown
  readonly [Unify.unifySymbol]?: AiPlanUnify<this>
  readonly [Unify.ignoreSymbol]?: AiPlanUnifyIgnore
  readonly steps: NonEmptyReadonlyArray<AiPlan.Step<Error, Provides, Requires>>
}

Source

Since v1.0.0

Plan

AiPlanUnify (interface)

Signature

export interface AiPlanUnify<A extends { [Unify.typeSymbol]?: any }> extends Effect.EffectUnify<A> {
  AiPlan?: () => Extract<A[Unify.typeSymbol], AiPlan<any, any, any>>
}

Source

Since v1.0.0

AiPlanUnifyIgnore (interface)

Signature

export interface AiPlanUnifyIgnore extends Effect.EffectUnifyIgnore {
  Effect?: true
}

Source

Since v1.0.0

combination

concatSteps

Signature

declare const concatSteps: {
  <Error2, Provides2, Requires2>(
    other: AiPlan<Error2, Provides2, Requires2>
  ): <Error, Provides, Requires>(
    self: AiPlan<Error, Provides, Requires>
  ) => AiPlan<Error & Error2, Provides & Provides2, Requires | Requires2>
  <Error, Provides, Requires, Error2, Provides2, Requires2>(
    self: AiPlan<Error, Provides, Requires>,
    other: AiPlan<Error2, Provides2, Requires2>
  ): AiPlan<Error & Error2, Provides & Provides2, Requires | Requires2>
}

Source

Since v1.0.0

constructors

fromModel

Signature

declare const fromModel: <Provides, Requires, EW, Out, ES, RW = never, RS = never>(
  model: AiModel.AiModel<Provides, Requires>,
  options?: {
    readonly attempts?: number | undefined
    readonly while?: ((error: EW) => boolean | Effect.Effect<boolean, never, RW>) | undefined
    readonly schedule?: Schedule.Schedule<Out, ES, RS> | undefined
  }
) => AiPlan<EW & ES, Provides, RW | RS | Requires>

Source

Since v1.0.0

error handling

withFallback

Signature

declare const withFallback: {
  <Provides, Provides2 extends Provides, Requires2, Out, EW, ES, RW = never, RS = never>(options: {
    readonly model: AiModel.AiModel<Provides2, Requires2>
    readonly attempts?: number | undefined
    readonly while?: ((error: EW) => boolean | Effect.Effect<boolean, never, RW>) | undefined
    readonly schedule?: Schedule.Schedule<Out, ES, RS> | undefined
  }): <E, Requires>(
    self: AiPlan<E, Provides, Requires>
  ) => AiPlan<E & EW & ES, Provides & Provides2, Requires | Requires2 | RW | RS>
  <E, Provides, Requires, Provides2 extends Provides, Requires2, Out, EW, ES, RW = never, RS = never>(
    self: AiPlan<E, Provides, Requires>,
    options: {
      readonly model: AiModel.AiModel<Provides2, Requires2>
      readonly attempts?: number | undefined
      readonly while?: ((error: EW) => boolean | Effect.Effect<boolean, never, RW>) | undefined
      readonly schedule?: Schedule.Schedule<Out, ES, RS> | undefined
    }
  ): AiPlan<E & EW & ES, Provides & Provides2, Requires | Requires2 | RW | RS>
}

Source

Since v1.0.0

type ids

TypeId

Signature

declare const TypeId: unique symbol

Source

Since v1.0.0

TypeId (type alias)

Signature

type TypeId = typeof TypeId

Source

Since v1.0.0

utils

AiPlan (namespace)

Source

Since v1.0.0

Provider (interface)

Signature

export interface Provider<Provides> {
  readonly provide: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, Provides>>
}

Source

Since v1.0.0

Step (interface)

Signature

export interface Step<Error, Provides, Requires> {
  readonly model: AiModel.AiModel<Provides, Requires>
  readonly check: Option.Option<(error: Error) => boolean | Effect.Effect<boolean>>
  readonly schedule: Option.Option<Schedule.Schedule<any, Error, Requires>>
}

Source

Since v1.0.0

Builder (type alias)

Signature

type Effect.Effect<Provider<Provides>, never, AiModels | Requires> = Effect.Effect<Provider<Provides>, never, AiModels | Requires>

Source

Since v1.0.0