baikai-openai-0.5.0.0: baikai-openai.cabal
cabal-version: 3.4
name: baikai-openai
version: 0.5.0.0
synopsis: OpenAI providers for the baikai abstraction
description:
Wraps the openai Haskell package as a Baikai Provider for OpenAI's Chat Completions API.
category: AI
license: BSD-3-Clause
license-file: LICENSE
author: Nadeem Bitar
maintainer: nadeem@gmail.com
copyright: (c) 2026 Nadeem Bitar
build-type: Simple
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
-- Exhaustiveness is an error, not a warning. A non-exhaustive match
-- is a crash the compiler already found: it fails at runtime, on
-- whichever input reaches the missing branch, usually in front of a
-- user. This is not hypothetical here — adding a constructor to
-- AgentRunFailure left `failureExitCode` non-exhaustive and shipped a
-- pattern-match failure on `baikai agent run --require-evidence`,
-- because the warning scrolled past in a build log.
--
-- Promoted individually rather than through -Werror, which would also
-- fail the build on warnings that are stylistic or that a future GHC
-- invents, and would push people toward blanket suppression.
ghc-options:
-Werror=incomplete-patterns -Werror=incomplete-uni-patterns
-Werror=incomplete-record-updates
default-language: GHC2024
default-extensions:
DeriveAnyClass
DuplicateRecordFields
OverloadedLabels
OverloadedStrings
library
import: common-options
hs-source-dirs: src
exposed-modules:
Baikai.Provider.OpenAI.Agent
Baikai.Provider.OpenAI.Api
Baikai.Provider.OpenAI.Cli
Baikai.Provider.OpenAI.Interactive
Baikai.Provider.OpenAI.Internal.ErrorClass
Baikai.Provider.OpenAI.Internal.Request
Baikai.Provider.OpenAI.Shape
Baikai.Provider.OpenAI.Sse
Baikai.Provider.OpenAI.Transport
other-modules: Paths_baikai_openai
autogen-modules: Paths_baikai_openai
build-depends:
, aeson ^>=2.2
, baikai ^>=0.5.0
, base >=4.20 && <5
, base64-bytestring ^>=1.2
, bytestring ^>=0.12
, case-insensitive ^>=1.2
, containers ^>=0.7
, generic-lens ^>=2.3
, http-client ^>=0.7
, http-client-tls ^>=0.3
, http-types ^>=0.12
, lens ^>=5.3
, openai ^>=2.5
, process ^>=1.6
, servant-client ^>=0.20
, streamly >=0.11 && <0.13
, streamly-core >=0.3 && <0.5
, text ^>=2.1
, time ^>=1.14
, vector ^>=0.13
test-suite baikai-openai-test
import: common-options
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Main.hs
other-modules:
CliEvidenceSpec
ErrorClassSpec
EvidenceSpec
ReasoningSpec
ShapeSpec
SseSpec
TransportSpec
build-depends:
, aeson
, baikai ^>=0.5.0
, baikai-openai
, base >=4.20 && <5
, bytestring
, case-insensitive
, containers
, directory
, filepath
, generic-lens
, http-client
, http-types
, lens ^>=5.3
, openai
, servant-client
, stm
, streamly-core >=0.3 && <0.5
, tasty
, tasty-hunit
, temporary
, text ^>=2.1
, time
, vector