Commit log

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)

Click to expand commit body
* 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

Click to expand commit body
* 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)

Click to expand commit body
* 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)

Click to expand commit body
* 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

Click to expand commit body
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

Click to expand commit body
Copied generate script from `charmbracelet/x`.

Andrey Nering created

67ff539 chore: make each package its own go module

Click to expand commit body
* `./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

Click to expand commit body
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