Commit log

aaea4a2 chore: gofumpt

Christian Rocha created

af77186 chore(useragent): bump version during task release

Christian Rocha created

5b6dc4d chore(useragent): propogate UA to objects helpers, normalize headers

Christian Rocha created

88b79c1 docs(useragent): copy correction

Click to expand commit body
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

Christian Rocha and Copilot created

351a3c3 chore(useragent): comment copyedit

Christian Rocha created

29f9675 chore(useragent): get version number from version.txt via go:embed

Christian Rocha created

4228d2e chore(useragent): drop model detail option

Christian Rocha created

08d368d feat(useragent): allow UA to be set on the agent level

Christian Rocha created

059b888 feat(useragent): forward UA to provider wrappers

Christian Rocha created

9e76f15 feat(useragent): configuratble provider-level user agent

Click to expand commit body
Note that the user agent defaults to Charm Fantasy/<version>, which
means we need to maintain a const.

Christian Rocha created

8d2ec4f chore(deps): bump github.com/ardanlabs/kronk in the all group (#153)

Click to expand commit body
Bumps the all group with 1 update: [github.com/ardanlabs/kronk](https://github.com/ardanlabs/kronk).


Updates `github.com/ardanlabs/kronk` from 1.20.1 to 1.20.3
- [Release notes](https://github.com/ardanlabs/kronk/releases)
- [Commits](https://github.com/ardanlabs/kronk/compare/v1.20.1...v1.20.3)

---
updated-dependencies:
- dependency-name: github.com/ardanlabs/kronk
  dependency-version: 1.20.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

dependabot[bot] and dependabot[bot] created

5442a7f v0.11.0

Andrey Nering created

8f24e95 chore(deps): bump the all group with 4 updates (#150)

Click to expand commit body
Bumps the all group with 4 updates: [github.com/ardanlabs/kronk](https://github.com/ardanlabs/kronk), [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2), [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) and [google.golang.org/genai](https://github.com/googleapis/go-genai).


Updates `github.com/ardanlabs/kronk` from 1.19.6 to 1.20.1
- [Release notes](https://github.com/ardanlabs/kronk/releases)
- [Commits](https://github.com/ardanlabs/kronk/compare/v1.19.6...v1.20.1)

Updates `github.com/aws/aws-sdk-go-v2` from 1.41.1 to 1.41.2
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.41.1...v1.41.2)

Updates `github.com/aws/aws-sdk-go-v2/config` from 1.32.9 to 1.32.10
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.9...config/v1.32.10)

Updates `google.golang.org/genai` from 1.47.0 to 1.48.0
- [Release notes](https://github.com/googleapis/go-genai/releases)
- [Changelog](https://github.com/googleapis/go-genai/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/go-genai/compare/v1.47.0...v1.48.0)

---
updated-dependencies:
- dependency-name: github.com/ardanlabs/kronk
  dependency-version: 1.20.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: github.com/aws/aws-sdk-go-v2
  dependency-version: 1.41.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-version: 1.32.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: google.golang.org/genai
  dependency-version: 1.48.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

dependabot[bot] and dependabot[bot] created

8a1457c feat: add support for anthropic thinking effort (#147)

Click to expand commit body
Co-authored-by: Andrey Nering <andreynering@users.noreply.github.com>

Kyle Carberry and Andrey Nering created

26a572c v0.10.0

Andrey Nering created

cf3151e lint: fix missing doc comment

Andrey Nering created

4e71eb6 test: unify gemini 2 and gemini 3 thinking tests

Andrey Nering created

bd6d47d feat(google): add ThinkingLevel support for Gemini 3+ models

Click to expand commit body
Gemini 3+ uses thinking_level (LOW/MEDIUM/HIGH/MINIMAL) instead of
thinking_budget. The two are mutually exclusive per Google's API.
Maps to genai.ThinkingConfig.ThinkingLevel already available in v1.45.0.

Xavier Capaldi created

54b30ae feat: detect context-too-large errors (#125)

mhpenta created

b802c67 chore: update anthropic-sdk-go from our fork (#148)

Click to expand commit body
The `fantasy` branch was updated from upstream.

See:

* https://github.com/charmbracelet/anthropic-sdk-go/pull/1
* https://github.com/charmbracelet/fantasy/pull/147

Andrey Nering created

7d7c4b3 chore(deps): bump the all group with 3 updates (#146)

Click to expand commit body
Bumps the all group with 3 updates: [github.com/ardanlabs/kronk](https://github.com/ardanlabs/kronk), [github.com/aws/smithy-go](https://github.com/aws/smithy-go) and [github.com/kaptinlin/jsonschema](https://github.com/kaptinlin/jsonschema).


Updates `github.com/ardanlabs/kronk` from 1.19.2 to 1.19.6
- [Release notes](https://github.com/ardanlabs/kronk/releases)
- [Commits](https://github.com/ardanlabs/kronk/compare/v1.19.2...v1.19.6)

Updates `github.com/aws/smithy-go` from 1.24.0 to 1.24.1
- [Release notes](https://github.com/aws/smithy-go/releases)
- [Changelog](https://github.com/aws/smithy-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/smithy-go/compare/v1.24.0...v1.24.1)

Updates `github.com/kaptinlin/jsonschema` from 0.7.2 to 0.7.3
- [Commits](https://github.com/kaptinlin/jsonschema/compare/v0.7.2...v0.7.3)

---
updated-dependencies:
- dependency-name: github.com/ardanlabs/kronk
  dependency-version: 1.19.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: github.com/aws/smithy-go
  dependency-version: 1.24.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: github.com/kaptinlin/jsonschema
  dependency-version: 0.7.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

dependabot[bot] and dependabot[bot] created

b2eb8d1 v0.9.0

Andrey Nering created

dae536f chore(deps): bump the all group with 3 updates (#144)

Click to expand commit body
Bumps the all group with 3 updates: [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2), [github.com/kaptinlin/jsonschema](https://github.com/kaptinlin/jsonschema) and [google.golang.org/genai](https://github.com/googleapis/go-genai).


Updates `github.com/aws/aws-sdk-go-v2/config` from 1.32.7 to 1.32.9
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.32.7...config/v1.32.9)

Updates `github.com/kaptinlin/jsonschema` from 0.7.1 to 0.7.2
- [Commits](https://github.com/kaptinlin/jsonschema/compare/v0.7.1...v0.7.2)

Updates `google.golang.org/genai` from 1.46.0 to 1.47.0
- [Release notes](https://github.com/googleapis/go-genai/releases)
- [Changelog](https://github.com/googleapis/go-genai/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/go-genai/compare/v1.46.0...v1.47.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-version: 1.32.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: github.com/kaptinlin/jsonschema
  dependency-version: 0.7.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: google.golang.org/genai
  dependency-version: 1.47.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

dependabot[bot] and dependabot[bot] created

385607b chore(deps): bump the all group in /examples with 2 updates (#143)

Click to expand commit body
Bumps the all group in /examples with 2 updates: [github.com/charmbracelet/lipgloss/v2](https://github.com/charmbracelet/lipgloss) and [github.com/charmbracelet/x/term](https://github.com/charmbracelet/x).


Updates `github.com/charmbracelet/lipgloss/v2` from 2.0.0-beta.3.0.20250917201909-41ff0bf215ea to 2.0.0-beta1
- [Release notes](https://github.com/charmbracelet/lipgloss/releases)
- [Commits](https://github.com/charmbracelet/lipgloss/commits)

Updates `github.com/charmbracelet/x/term` from 0.2.1 to 0.2.2
- [Commits](https://github.com/charmbracelet/x/compare/ansi/v0.2.1...ansi/v0.2.2)

---
updated-dependencies:
- dependency-name: github.com/charmbracelet/lipgloss/v2
  dependency-version: 2.0.0-beta1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: github.com/charmbracelet/x/term
  dependency-version: 0.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

dependabot[bot] and dependabot[bot] created

121d1a4 ci(dependabot): add `examples/` dir to be updated as well

Andrey Nering created

211a29e feat: add kronk provider (#142)

Click to expand commit body
Co-authored-by: William Kennedy <bill@ardanlabs.com>

Andrey Nering and William Kennedy created

720e86d chore(deps): bump the all group with 3 updates (#141)

Click to expand commit body
Bumps the all group with 3 updates: [cloud.google.com/go/auth](https://github.com/googleapis/google-cloud-go), [github.com/kaptinlin/jsonschema](https://github.com/kaptinlin/jsonschema) and [google.golang.org/genai](https://github.com/googleapis/go-genai).


Updates `cloud.google.com/go/auth` from 0.18.1 to 0.18.2
- [Release notes](https://github.com/googleapis/google-cloud-go/releases)
- [Changelog](https://github.com/googleapis/google-cloud-go/blob/main/CHANGES.md)
- [Commits](https://github.com/googleapis/google-cloud-go/compare/auth/v0.18.1...auth/v0.18.2)

Updates `github.com/kaptinlin/jsonschema` from 0.6.10 to 0.7.1
- [Commits](https://github.com/kaptinlin/jsonschema/compare/v0.6.10...v0.7.1)

Updates `google.golang.org/genai` from 1.45.0 to 1.46.0
- [Release notes](https://github.com/googleapis/go-genai/releases)
- [Changelog](https://github.com/googleapis/go-genai/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/go-genai/compare/v1.45.0...v1.46.0)

---
updated-dependencies:
- dependency-name: cloud.google.com/go/auth
  dependency-version: 0.18.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: github.com/kaptinlin/jsonschema
  dependency-version: 0.7.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: google.golang.org/genai
  dependency-version: 1.46.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

dependabot[bot] and dependabot[bot] created

ab99ce7 v0.8.1

Andrey Nering created

e1c26df fix: normalize mcp tool schemas for openai compatibility (#138)

Click to expand commit body
Convert JSON Schema type arrays to `anyOf` and ensure bare array types
have items, preventing OpenAI "array schema missing items" errors.

Assisted-by: Claude Opus 4.6 via Crush <crush@charm.land>

Andrey Nering created

070c5ec fix(goreleaser): remove unneeded `npm_key` attribute

Click to expand commit body
This was preventing releases to work trigger on new tags.

Andrey Nering created

b1ed877 v0.8.0

Andrey Nering created

29c0314 chore: fix lint

Andrey Nering created

7e79eab ci: fix lint on ci

Andrey Nering created

25abf03 refactor: use our `jsonrepair` package and remove external package

Andrey Nering created

a54e123 feat: add `jsonrepair` package

Click to expand commit body
Added `charm.land/jsonrepair` package, to repair malformed JSON output
by LLM models.

This was written by GPT 5.2 Codex based on the Python version:
https://github.com/mangiucugna/json_repair

Assisted-by: GPT 5.2 Codex via Crush <crush@charm.land>

Andrey Nering created

f240ab1 v0.7.2

Andrey Nering created

94eb286 chore: prepare for openai gpt 5.3 + codex (#136)

Andrey Nering created

52bfb10 chore: update NOTICE copyright

Christian Rocha created

81c0e00 chore(deps): bump the all group with 3 updates (#133)

Click to expand commit body
Bumps the all group with 3 updates: [github.com/kaptinlin/jsonschema](https://github.com/kaptinlin/jsonschema), [golang.org/x/oauth2](https://github.com/golang/oauth2) and [google.golang.org/genai](https://github.com/googleapis/go-genai).


Updates `github.com/kaptinlin/jsonschema` from 0.6.9 to 0.6.10
- [Commits](https://github.com/kaptinlin/jsonschema/compare/v0.6.9...v0.6.10)

Updates `golang.org/x/oauth2` from 0.34.0 to 0.35.0
- [Commits](https://github.com/golang/oauth2/compare/v0.34.0...v0.35.0)

Updates `google.golang.org/genai` from 1.44.0 to 1.45.0
- [Release notes](https://github.com/googleapis/go-genai/releases)
- [Changelog](https://github.com/googleapis/go-genai/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/go-genai/compare/v1.44.0...v1.45.0)

---
updated-dependencies:
- dependency-name: github.com/kaptinlin/jsonschema
  dependency-version: 0.6.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: golang.org/x/oauth2
  dependency-version: 0.35.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: google.golang.org/genai
  dependency-version: 1.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

dependabot[bot] and dependabot[bot] created

e60b360 chore: run `modernize`

Andrey Nering created

4dcbd58 v0.7.1

Andrey Nering created

281a714 fix(anthropic): thinking budget should not add to max tokens (#131)

Carlos Alexandro Becker created

8f4cfdb v0.7.0

Andrey Nering created

30a5f02 feat: add vercel provider (#129)

Kujtim Hoxha created

cf8bd23 chore(deps): bump the all group with 3 updates (#128)

Click to expand commit body
Bumps the all group with 3 updates: [github.com/RealAlexandreAI/json-repair](https://github.com/RealAlexandreAI/json-repair), [github.com/kaptinlin/jsonschema](https://github.com/kaptinlin/jsonschema) and [google.golang.org/genai](https://github.com/googleapis/go-genai).


Updates `github.com/RealAlexandreAI/json-repair` from 0.0.14 to 0.0.15
- [Release notes](https://github.com/RealAlexandreAI/json-repair/releases)
- [Changelog](https://github.com/RealAlexandreAI/json-repair/blob/main/CHANGELOG.md)
- [Commits](https://github.com/RealAlexandreAI/json-repair/compare/v0.0.14...v0.0.15)

Updates `github.com/kaptinlin/jsonschema` from 0.6.7 to 0.6.9
- [Commits](https://github.com/kaptinlin/jsonschema/compare/v0.6.7...v0.6.9)

Updates `google.golang.org/genai` from 1.43.0 to 1.44.0
- [Release notes](https://github.com/googleapis/go-genai/releases)
- [Changelog](https://github.com/googleapis/go-genai/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/go-genai/compare/v1.43.0...v1.44.0)

---
updated-dependencies:
- dependency-name: github.com/RealAlexandreAI/json-repair
  dependency-version: 0.0.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: github.com/kaptinlin/jsonschema
  dependency-version: 0.6.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: google.golang.org/genai
  dependency-version: 1.44.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

dependabot[bot] and dependabot[bot] created

6d9ff0c chore(deps): bump the all group with 3 updates (#124)

Click to expand commit body
Bumps the all group with 3 updates: [cloud.google.com/go/auth](https://github.com/googleapis/google-cloud-go), [github.com/kaptinlin/jsonschema](https://github.com/kaptinlin/jsonschema) and [google.golang.org/genai](https://github.com/googleapis/go-genai).


Updates `cloud.google.com/go/auth` from 0.18.0 to 0.18.1
- [Release notes](https://github.com/googleapis/google-cloud-go/releases)
- [Changelog](https://github.com/googleapis/google-cloud-go/blob/main/CHANGES.md)
- [Commits](https://github.com/googleapis/google-cloud-go/compare/v0.18.0...auth/v0.18.1)

Updates `github.com/kaptinlin/jsonschema` from 0.6.6 to 0.6.7
- [Commits](https://github.com/kaptinlin/jsonschema/compare/v0.6.6...v0.6.7)

Updates `google.golang.org/genai` from 1.42.0 to 1.43.0
- [Release notes](https://github.com/googleapis/go-genai/releases)
- [Changelog](https://github.com/googleapis/go-genai/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/go-genai/compare/v1.42.0...v1.43.0)

---
updated-dependencies:
- dependency-name: cloud.google.com/go/auth
  dependency-version: 0.18.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: github.com/kaptinlin/jsonschema
  dependency-version: 0.6.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: google.golang.org/genai
  dependency-version: 1.43.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

dependabot[bot] and dependabot[bot] created

3e8997b Handle ToolChoiceRequired for OpenAI (#119)

Click to expand commit body
* Fix OpenAI provider to handle ToolChoiceRequired

The OpenAI provider's toOpenAiTools() function was missing a case for fantasy.ToolChoiceRequired, causing it to fall through to the default case and treat "required" as a function name.

This resulted in API errors: 'Invalid value for function_call: no function named "required" was specified in the functions parameter.

OpenAI's API supports tool_choice: "required" (added April 2024), so this fix adds the missing case to properly map ToolChoiceRequired to "required" in the OpenAI API format.

* Add test for ToolChoiceRequired handling

h8mankind created

60e7ccb chore(deps): bump the all group with 2 updates (#120)

Click to expand commit body
Bumps the all group with 2 updates: [github.com/go-viper/mapstructure/v2](https://github.com/go-viper/mapstructure) and [google.golang.org/genai](https://github.com/googleapis/go-genai).


Updates `github.com/go-viper/mapstructure/v2` from 2.4.0 to 2.5.0
- [Release notes](https://github.com/go-viper/mapstructure/releases)
- [Changelog](https://github.com/go-viper/mapstructure/blob/main/CHANGELOG.md)
- [Commits](https://github.com/go-viper/mapstructure/compare/v2.4.0...v2.5.0)

Updates `google.golang.org/genai` from 1.41.0 to 1.42.0
- [Release notes](https://github.com/googleapis/go-genai/releases)
- [Changelog](https://github.com/googleapis/go-genai/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/go-genai/compare/v1.41.0...v1.42.0)

---
updated-dependencies:
- dependency-name: github.com/go-viper/mapstructure/v2
  dependency-version: 2.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: google.golang.org/genai
  dependency-version: 1.42.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

dependabot[bot] and dependabot[bot] created

d75c71e v0.6.1

Andrey Nering created

5d40603 refactor(google): couple of tiny enhancements

Andrey Nering created