shikumi-cache-0.2.0.1: shikumi-cache.cabal
cabal-version: 3.4
name: shikumi-cache
version: 0.2.0.1
synopsis: Content-addressed response caching for shikumi (EP-6)
category: AI
description:
The caching subsystem for shikumi: a content-addressed cache key (a BLAKE3
digest over a canonical request serialization — the contract EP-7's replay
reproduces), a provider-neutral @Cache@ effect, an in-memory backend, and the
@cachedLLM@ memoizing interpreter that wraps EP-1's @LLM@ effect so identical
requests contact the provider once.
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
MultilineStrings
OverloadedLabels
OverloadedStrings
library
import: common-options
hs-source-dirs: src
exposed-modules:
Shikumi.Cache
Shikumi.Cache.Backend.Effort
Shikumi.Cache.Backend.Memory
Shikumi.Cache.Backend.SQLite
Shikumi.Cache.Key
Shikumi.Cache.ResponseJSON
Shikumi.Cache.Types
build-depends:
aeson >=2.2 && <2.3,
baikai >=0.7.1.0 && <0.8,
base >=4.20 && <5,
blake3 >=0.3 && <0.4,
bytestring >=0.11 && <0.13,
containers >=0.6 && <0.9,
direct-sqlite >=2.3 && <2.4,
effectful >=2.6 && <2.8,
generic-lens >=2.2 && <2.4,
lens ^>=5.3,
scientific >=0.3 && <0.4,
shikumi ^>=0.4.0.0,
stm >=2.5 && <2.6,
text ^>=2.1,
time >=1.12 && <1.17,
vector >=0.13 && <0.14,
test-suite shikumi-cache-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:
aeson,
baikai >=0.7.1.0 && <0.8,
base,
bytestring,
containers,
direct-sqlite,
directory,
effectful,
filepath,
generic-lens,
lens,
process,
shikumi ^>=0.4.0.0,
shikumi-cache ^>=0.2.0.1,
stm,
tasty,
tasty-hunit,
temporary,
text,
time,
vector,