packages feed

shikumi-0.4.0.0: shikumi.cabal

cabal-version:   3.4
name:            shikumi
version:         0.4.0.0
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.LLM.Continuation
    Shikumi.LLM.Defaults
    Shikumi.LLM.Observation
    Shikumi.Module
    Shikumi.Multimodal
    Shikumi.Prelude
    Shikumi.Program
    Shikumi.Refine
    Shikumi.Reward
    Shikumi.Routing
    Shikumi.Schema
    Shikumi.Schema.Types
    Shikumi.Signature
    Shikumi.Stream

  other-modules:   Shikumi.Adapter.Xml
  build-depends:
    , aeson              >=2.2     && <2.3
    , baikai             >=0.7.0.0 && <0.8
    , baikai-claude      >=0.7.0.0 && <0.8
    , baikai-effectful   >=0.4.0.1 && <0.5
    , baikai-openai      >=0.7.0.0 && <0.8
    , 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
    ContinuationSpec
    EndToEndSpec
    ErrorSpec
    Fixtures
    LiveSpec
    LLMSpec
    ModuleSpec
    MultimodalAdapterSpec
    MultimodalEndToEndSpec
    MultimodalSpec
    ProgramAcceptanceSpec
    ProgramFixtures
    ProgramSpec
    RefineSpec
    RefineStub
    RequestDefaultsSpec
    ResilienceSpec
    ResponsesSpec
    RoutingSpec
    SchemaSpec
    SerializeSpec
    Shikumi.Effect.TimeSpec
    Shikumi.LLM.Mock
    SignatureSpec
    StreamSpec
    StubProvider
    TwoStepSpec
    XmlAdapterSpec

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