bd5c163
fix(go-vcr): fix request matching for json requests with random key order
Andrey Nering created
bd5c163
fix(go-vcr): fix request matching for json requests with random key order
Andrey Nering created
43c39f2
chore: force yaml indent to 2
Andrey Nering created
f375867
chore: set custom marshal func
Andrey Nering created
2ef8fe2
chore(deps): pin latest commit from go-vcr
Andrey Nering created
5623663
test: add tests for thinking (#9)
* WIP test: add tests for thinking * chore: fix thinking test - add chrush.md - add check to google provider - make all tests use testify * chore: remove duplicate name const * test: add more specific reasoning tests * chore: remove some annoying spell checks * chore: reorganize thinking tests --------- Co-authored-by: Kujtim Hoxha <kujtimii.h@gmail.com>
Andrey Nering and Kujtim Hoxha created
9596881
lint: fix naked return warnings
Andrey Nering created
d1d1b1a
chore: add labeler script
Andrey Nering created
d3f8bd9
ci(labeler): add azure
Andrey Nering created
1f41c27
fix: adjustments after rebase
* Implement interface * Fix options cast * Make option structs public
Andrey Nering created
dff590b
feat(gemini): fixes for streaming + thinking
Andrey Nering created
997539c
test: fix gemini test to actually use pro model
Andrey Nering created
44e3901
refactor: use `cmp.Or`
Andrey Nering created
b3b3d58
ci: fix gemini tests when env is not set
Andrey Nering created
19e737f
chore(taskfile): disable cache when running tests
Andrey Nering created
d3f8722
lint: fix linting
Andrey Nering created
f47a599
feat(gemini): implement streaming
Andrey Nering created
a4fd3fa
feat: make google gemini work for basic + tool calls
Andrey Nering created
a446339
chore(go.mod): add `github.com/charmbracelet/x/exp/slice`
Andrey Nering created
5d03ea1
test: add google gemini to test matrix
Andrey Nering created
3f98c67
chore: `anthropic` -> `google`
Andrey Nering created
ff1a249
chore(go.mod): add `google.golang.org/genai`
Andrey Nering created
6c4d2f8
feat: initial google provider
Kujtim Hoxha created
e74fb3f
chore: add options parser (#12)
* chore: add options parser * chore: add options key method * refactor: rename `OptionKey` to `Name` * refactor: rename `OptionsFromMap` to `ParseOptions` * refactor: minimal code improvement --------- Co-authored-by: Andrey Nering <andreynering@users.noreply.github.com>
Kujtim Hoxha and Andrey Nering created
2058c73
chore: add json tags to provider options
kujtimiihoxha created
624cb5b
ci: add issue / pr labeler
Andrey Nering created
d1db2cb
refactor: rename go module to `fantasy` (#11)
Andrey Nering created
b3b0f39
refactor: rename `ProviderOptionsKey` into `OptionsKey`
Andrey Nering created
5097f73
refactor: separate interface into its own type
Andrey Nering created
c6534e4
chore: remove unused lib
kujtimiihoxha created
cc3c955
chore: make provider options an interface
kujtimiihoxha created
2b4cfe6
chore: change how provider options work
kujtimiihoxha created
215059b
Minor fixes (#8)
* chore: remove unused headers * feat: expose provider options * fix: use mapstruct tag * fix: thinking delta * fix: agent prompt * fix: fix reasoning metadata fix: fix reasoning content * fix: test
Kujtim Hoxha created
245142f
refactor: simplify code a little bit
Andrey Nering created
2b2da24
chore(.gitattributes): do not show diffs for cassettes
Andrey Nering created
3f72650
test: add openai gpt o4 mini to the test matrix
Andrey Nering created
2acf7f7
test: make test less intermittent
Andrey Nering created
1aab862
test: add tests for stream with and without tool calls
Andrey Nering created
e00c28f
test: add test with tool
Andrey Nering created
d3c849b
chore: disable go-vcr's internal "sleep" to make tests much faster
Andrey Nering created
3340d64
test: setup go-vcr to start recording real providers interactions
Andrey Nering created
ef0ee71
fix: anthropic finish reason
Kujtim Hoxha created
7f1366b
refactor: use json valid function from `charmbracelet/x/json`
Andrey Nering created
fb35cdf
refactor: revert o use a single go module again
I experimented with multiple Go modules, but the fact is that Go is smart enough to strip out the uneeded modules from the user's `go.mod`, so this is not in fact needed. Also, maintaining a single module is much easier.
Andrey Nering created
ba1c1fd
refactor: move `providers/{openai|anthropic}` out of the `providers/` dir (#5)
Andrey Nering created
5337bf2
ci: configure workflows to be package-by-package
Copied generate script from `charmbracelet/x`.
Andrey Nering created
67ff539
chore: make each package its own go module
* `./ai` (previously root `/`) * `./examples` * `./providers/anthropic` * `./providers/openai`
Andrey Nering created
36e9eae
refactor: move root package into a sub-package `ai`
Andrey Nering created
87c1466
refactor: move json helper to live inside the `openai` package
Andrey Nering created
7712c19
refactor: use `cmp.Or` in more places
Andrey Nering created
1a32307
refactor: change provider options structs to be private / internal
These struct types don't make sense to be part of the public API. They are only used internally to map options to the actual provider SDKs.
Andrey Nering created