baikai 0.3.0.0 → 0.3.1.0
raw patch · 4 files changed
+208/−36 lines, 4 filesdep ~aesondep ~base64-bytestringdep ~bytestringPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: aeson, base64-bytestring, bytestring, containers, directory, filepath, generic-lens, http-client, http-client-tls, lens, openai, scientific, time, unliftio-core, vector
API changes (from Hackage documentation)
+ Baikai.Models.Generated: anthropic_claude_sonnet_5 :: Model
+ Baikai.Models.Generated: openai_gpt_5_6 :: Model
+ Baikai.Models.Generated: openai_gpt_5_6_luna :: Model
+ Baikai.Models.Generated: openai_gpt_5_6_sol :: Model
+ Baikai.Models.Generated: openai_gpt_5_6_terra :: Model
Files
- CHANGELOG.md +52/−0
- baikai.cabal +33/−33
- fetch/FetchModelsCore.hs +6/−1
- src/Baikai/Models/Generated.hs +117/−2
CHANGELOG.md view
@@ -7,6 +7,58 @@ ## [Unreleased] +## [baikai 0.3.1.0] - 2026-07-15++### Added++- Added `claude-sonnet-5` to the Anthropic model catalog (1M context window,+ 128k max output, `tool_call` + reasoning).+- Added the `gpt-5.6` family — `gpt-5.6`, `gpt-5.6-luna`, `gpt-5.6-sol`, and+ `gpt-5.6-terra` — to the OpenAI model catalog (chat-completions with+ `tool_call` support).++### Changed++- Corrected `claude-sonnet-4-5` context window to 1M tokens and+ `claude-sonnet-4-6` max output to 128k tokens in the catalog.+- Added PVP-compliant upper bounds to all previously-unbounded library and+ executable dependencies.++## [baikai-claude 0.3.0.1] - 2026-07-15++### Changed++- Added PVP-compliant upper bounds to all previously-unbounded library and+ executable dependencies.++## [baikai-openai 0.3.0.1] - 2026-07-15++### Changed++- Added PVP-compliant upper bounds to all previously-unbounded library and+ executable dependencies.++## [baikai-trace-otel 0.3.0.1] - 2026-07-15++### Changed++- Added PVP-compliant upper bounds to all previously-unbounded library and+ executable dependencies.++## [baikai-effectful 0.3.0.1] - 2026-07-15++### Changed++- Added PVP-compliant upper bounds to all previously-unbounded library and+ executable dependencies.++## [baikai-kit 0.1.0.2] - 2026-07-15++### Changed++- Added PVP-compliant upper bounds to all previously-unbounded library and+ executable dependencies.+ ## [baikai 0.3.0.0] - 2026-07-03 ### Added
baikai.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.4 name: baikai-version: 0.3.0.0+version: 0.3.1.0 synopsis: Unified Haskell interface for multiple AI providers description: baikai provides a unified, provider-agnostic Haskell interface for working@@ -71,21 +71,21 @@ Baikai.Usage build-depends:- , aeson- , base >=4.20 && <5- , base64-bytestring- , bytestring- , containers- , generic-lens+ , aeson ^>=2.2+ , base >=4.20 && <5+ , base64-bytestring ^>=1.2+ , bytestring ^>=0.12+ , containers ^>=0.7+ , generic-lens ^>=2.3 , lens ^>=5.3- , openai- , scientific- , streamly >=0.11 && <0.13- , streamly-core >=0.3 && <0.5+ , openai ^>=2.5+ , scientific ^>=0.3+ , streamly >=0.11 && <0.13+ , streamly-core >=0.3 && <0.5 , text ^>=2.1- , time- , unliftio-core- , vector+ , time ^>=1.14+ , unliftio-core ^>=0.2+ , vector ^>=0.13 executable baikai-gen-models import: common-options@@ -93,14 +93,14 @@ main-is: GenModels.hs other-modules: GenModelsCore build-depends:- , aeson+ , aeson ^>=2.2 , baikai- , base >=4.20 && <5- , bytestring- , containers- , directory- , filepath- , scientific+ , base >=4.20 && <5+ , bytestring ^>=0.12+ , containers ^>=0.7+ , directory ^>=1.3+ , filepath ^>=1.5+ , scientific ^>=0.3 , text ^>=2.1 executable baikai-fetch-models@@ -114,20 +114,20 @@ -- @Main.hs@ without a module-name clash. ghc-options: -main-is FetchModels build-depends:- , aeson+ , aeson ^>=2.2 , baikai- , base >=4.20 && <5- , bytestring- , containers- , directory- , filepath- , generic-lens- , http-client- , http-client-tls- , lens- , scientific+ , base >=4.20 && <5+ , bytestring ^>=0.12+ , containers ^>=0.7+ , directory ^>=1.3+ , filepath ^>=1.5+ , generic-lens ^>=2.3+ , http-client ^>=0.7+ , http-client-tls ^>=0.3+ , lens ^>=5.3+ , scientific ^>=0.3 , text ^>=2.1- , vector+ , vector ^>=0.13 test-suite baikai-test import: common-options
fetch/FetchModelsCore.hs view
@@ -229,7 +229,11 @@ openaiInclude :: Set Text openaiInclude = Set.fromList- [ "gpt-5.5",+ [ "gpt-5.6",+ "gpt-5.6-luna",+ "gpt-5.6-sol",+ "gpt-5.6-terra",+ "gpt-5.5", "gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano",@@ -257,6 +261,7 @@ "claude-opus-4-7", "claude-opus-4-6", "claude-opus-4-5",+ "claude-sonnet-5", "claude-sonnet-4-6", "claude-sonnet-4-5", "claude-haiku-4-5",
src/Baikai/Models/Generated.hs view
@@ -192,7 +192,7 @@ cacheReadCost = 3 % 10, cacheWriteCost = 15 % 4 },- contextWindow = 200000,+ contextWindow = 1000000, maxOutputTokens = 64000, headers = Map.empty, compat = CompatNone@@ -216,11 +216,34 @@ cacheWriteCost = 15 % 4 }, contextWindow = 1000000,- maxOutputTokens = 64000,+ maxOutputTokens = 128000, headers = Map.empty, compat = CompatNone } +anthropic_claude_sonnet_5 :: Model+anthropic_claude_sonnet_5 =+ emptyModel+ { modelId = "claude-sonnet-5",+ name = "Claude Sonnet 5",+ api = AnthropicMessages,+ provider = "anthropic",+ baseUrl = "https://api.anthropic.com",+ reasoning = True,+ input = [InputText, InputImage],+ cost =+ ModelCost+ { inputCost = 2 % 1,+ outputCost = 10 % 1,+ cacheReadCost = 1 % 5,+ cacheWriteCost = 5 % 2+ },+ contextWindow = 1000000,+ maxOutputTokens = 128000,+ headers = Map.empty,+ compat = CompatNone+ }+ deepseek_deepseek_chat :: Model deepseek_deepseek_chat = emptyModel@@ -536,6 +559,98 @@ outputCost = 30 % 1, cacheReadCost = 1 % 2, cacheWriteCost = 0 % 1+ },+ contextWindow = 1050000,+ maxOutputTokens = 128000,+ headers = Map.empty,+ compat = CompatNone+ }++openai_gpt_5_6 :: Model+openai_gpt_5_6 =+ emptyModel+ { modelId = "gpt-5.6",+ name = "GPT-5.6",+ api = OpenAIChatCompletions,+ provider = "openai",+ baseUrl = "https://api.openai.com",+ reasoning = True,+ input = [InputText, InputImage],+ cost =+ ModelCost+ { inputCost = 5 % 1,+ outputCost = 30 % 1,+ cacheReadCost = 1 % 2,+ cacheWriteCost = 25 % 4+ },+ contextWindow = 1050000,+ maxOutputTokens = 128000,+ headers = Map.empty,+ compat = CompatNone+ }++openai_gpt_5_6_luna :: Model+openai_gpt_5_6_luna =+ emptyModel+ { modelId = "gpt-5.6-luna",+ name = "GPT-5.6 Luna",+ api = OpenAIChatCompletions,+ provider = "openai",+ baseUrl = "https://api.openai.com",+ reasoning = True,+ input = [InputText, InputImage],+ cost =+ ModelCost+ { inputCost = 1 % 1,+ outputCost = 6 % 1,+ cacheReadCost = 1 % 10,+ cacheWriteCost = 5 % 4+ },+ contextWindow = 1050000,+ maxOutputTokens = 128000,+ headers = Map.empty,+ compat = CompatNone+ }++openai_gpt_5_6_sol :: Model+openai_gpt_5_6_sol =+ emptyModel+ { modelId = "gpt-5.6-sol",+ name = "GPT-5.6 Sol",+ api = OpenAIChatCompletions,+ provider = "openai",+ baseUrl = "https://api.openai.com",+ reasoning = True,+ input = [InputText, InputImage],+ cost =+ ModelCost+ { inputCost = 5 % 1,+ outputCost = 30 % 1,+ cacheReadCost = 1 % 2,+ cacheWriteCost = 25 % 4+ },+ contextWindow = 1050000,+ maxOutputTokens = 128000,+ headers = Map.empty,+ compat = CompatNone+ }++openai_gpt_5_6_terra :: Model+openai_gpt_5_6_terra =+ emptyModel+ { modelId = "gpt-5.6-terra",+ name = "GPT-5.6 Terra",+ api = OpenAIChatCompletions,+ provider = "openai",+ baseUrl = "https://api.openai.com",+ reasoning = True,+ input = [InputText, InputImage],+ cost =+ ModelCost+ { inputCost = 5 % 2,+ outputCost = 15 % 1,+ cacheReadCost = 1 % 4,+ cacheWriteCost = 25 % 8 }, contextWindow = 1050000, maxOutputTokens = 128000,