packages feed

shikumi-0.3.0.3: shikumi.cabal

cabal-version:   3.4
name:            shikumi
version:         0.3.0.3
synopsis:        Typed, structured, evaluable LM programs over baikai
category:        AI
description:
  Shikumi is a Haskell-native framework for building typed language-model programs.
  This package provides the runtime substrate: the LLM effect over baikai, the
  shikumi error type, and resilience (retries, rate limiting, budget control).

license:         BSD-3-Clause
author:          Nadeem Bitar
maintainer:      nadeem@gmail.com
build-type:      Simple
extra-doc-files: CHANGELOG.md

common common-options
  ghc-options:
    -Wall -Wcompat -Widentities -Wincomplete-uni-patterns
    -Wincomplete-record-updates -Wredundant-constraints
    -fhide-source-paths -Wmissing-export-lists -Wpartial-fields
    -Wmissing-deriving-strategies

  default-language:   GHC2024
  default-extensions:
    DeriveAnyClass
    DuplicateRecordFields
    OverloadedLabels
    OverloadedStrings

library
  import:          common-options
  hs-source-dirs:  src
  exposed-modules:
    Shikumi.Adapter
    Shikumi.Combinator
    Shikumi.Compaction
    Shikumi.Effect.Time
    Shikumi.Error
    Shikumi.LLM
    Shikumi.LLM.Budget
    Shikumi.Module
    Shikumi.Multimodal
    Shikumi.Prelude
    Shikumi.Program
    Shikumi.Refine
    Shikumi.Reward
    Shikumi.Routing
    Shikumi.Schema
    Shikumi.Schema.Types
    Shikumi.Signature
    Shikumi.Stream

  build-depends:
    , aeson              >=2.2  && <2.3
    , baikai             >=0.6  && <0.7
    , baikai-claude      >=0.6  && <0.7
    , baikai-effectful   >=0.4  && <0.5
    , baikai-openai      >=0.6  && <0.7
    , base               >=4.20 && <5
    , base64-bytestring  >=1.2  && <1.3
    , bytestring         >=0.11 && <0.13
    , containers         >=0.6  && <0.9
    , effectful          >=2.5  && <2.7
    , filepath           >=1.4  && <1.6
    , generic-lens       >=2.2  && <2.4
    , lens               ^>=5.3
    , scientific         >=0.3  && <0.4
    , stm                >=2.5  && <2.6
    , text               ^>=2.1
    , time               >=1.12 && <1.17
    , vector             >=0.13 && <0.14

test-suite shikumi-test
  import:         common-options
  type:           exitcode-stdio-1.0
  hs-source-dirs: test
  main-is:        Main.hs
  ghc-options:    -threaded -with-rtsopts=-N
  other-modules:
    AdapterSpec
    CombinatorSpec
    ConstraintSpec
    EndToEndSpec
    ErrorSpec
    Fixtures
    LiveSpec
    LLMSpec
    ModuleSpec
    MultimodalAdapterSpec
    MultimodalEndToEndSpec
    MultimodalSpec
    ProgramAcceptanceSpec
    ProgramFixtures
    ProgramSpec
    RefineSpec
    RefineStub
    ResilienceSpec
    RoutingSpec
    SchemaSpec
    SerializeSpec
    Shikumi.Effect.TimeSpec
    Shikumi.LLM.Mock
    SignatureSpec
    StreamSpec
    StubProvider
    TwoStepSpec
    XmlAdapterSpec

  build-depends:
    , aeson
    , baikai             >=0.6      && <0.7
    , baikai-claude      >=0.6      && <0.7
    , baikai-effectful   >=0.4      && <0.5
    , baikai-openai      >=0.6      && <0.7
    , base
    , base64-bytestring
    , bytestring
    , containers
    , directory
    , effectful
    , generic-lens
    , lens
    , QuickCheck
    , shikumi            ^>=0.3.0.0
    , stm
    , streamly-core
    , tasty
    , tasty-hunit
    , tasty-quickcheck
    , text
    , vector