packages feed

baikai-trace-otel-0.2.0.0: baikai-trace-otel.cabal

cabal-version: 3.4
name:          baikai-trace-otel
version:       0.2.0.0
synopsis:      OpenTelemetry TraceSink for baikai.
description:
  Provides an opt-in OpenTelemetry adapter for the baikai 'TraceSink'
  interface. Wiring 'otelSink' into 'Baikai.Trace.withTrace' produces
  one OTel span per provider call, with GenAI semantic-convention
  attributes plus baikai-specific cost and latency.

category:      AI, Monitoring
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

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

library
  import:          common-options
  hs-source-dirs:  src
  exposed-modules: Baikai.Trace.Sink.OpenTelemetry
  build-depends:
    , baikai                                 ^>=0.2.0
    , base                                   >=4.20   && <5
    , containers
    , hs-opentelemetry-api                   >=1.0    && <1.1
    , hs-opentelemetry-semantic-conventions  >=1.40   && <2
    , scientific
    , streamly-core                          ^>=0.3
    , text                                   ^>=2.1
    , time
    , unordered-containers

test-suite baikai-trace-otel-test
  import:         common-options
  type:           exitcode-stdio-1.0
  hs-source-dirs: test
  main-is:        Main.hs
  ghc-options:    -threaded -with-rtsopts=-N
  build-depends:
    , baikai                               ^>=0.2.0
    , baikai-trace-otel
    , base
    , generic-lens
    , hs-opentelemetry-api                 >=1.0    && <1.1
    , hs-opentelemetry-exporter-in-memory  >=1.0    && <1.1
    , hs-opentelemetry-sdk                 >=1.0    && <1.1
    , lens                                 ^>=5.3
    , tasty
    , tasty-hunit
    , text
    , time
    , unordered-containers
    , vector