Commit log

f6386bd chore: add a taskfile and default golangci-lint config

Andrey Nering created

a83fec2 chore: add a `.editorconfig` file

Andrey Nering created

bc67c13 fix: tui: use KeyPressMsg instead of KeyMsg

Click to expand commit body
The `tea.KeyMsg` type can match both key presses and releases, which can
lead to unexpected behavior in the TUI. Use `tea.KeyPressMsg` explicitly
to ensure we match only key presses.

Ayman Bagabas created

9c4a47b fix tools calls

Kujtim Hoxha created

25e9651 add anim to the messages

Kujtim Hoxha created

abbbc05 refactor tool rendering

Kujtim Hoxha created

c891295 fix: tui: properly calculate quit dialog size

Click to expand commit body
This uses the style frame size to calculate the quit dialog width.

Ayman Bagabas created

b364394 initial chat refactor

Click to expand commit body
wip

Kujtim Hoxha created

af838d1 move to v2

Kujtim Hoxha created

05b0570 refactor: upgrade Anthropic SDK to v1.4.0 and adapt provider code

Click to expand commit body
### CHANGES

- Upgrade Anthropic Go SDK dependency to version 1.4.0.
- Adapt provider code to breaking changes in the SDK.
- Update constructors for tool use and thinking parameters.
- Use new `OfText` field for accessing message content.
- Add Claude 4 Opus and Sonnet to documentation.

Kayvan Sylvan created

18f020c fix(provider/gemini): prevent empty parts in assistant messages

Tom X Nguyen created

d4c8d05 add openrouter deepseek free

Kujtim Hoxha created

0c38c0f update readme and gemini

Kujtim Hoxha created

12a98d6 Update readme & use provided logging package

Pietjan Oostra created

a2524a1 Add local provider

Pietjan Oostra created

94d5fe0 add sonnet 4

Kujtim Hoxha created

103f1c1 feat: non-interactive mode

Radu Topala created

9e065cd docs(readme): add demo GIF (#160)

Christian Rocha created

a9fa918 feat: support VertexAI provider (#153)

Click to expand commit body
* support: vertexai

fix

fix

set default for vertexai

added comment

fix

fix

* create schema

* fix README.md

* fix order

* added pupularity

* set tools if tools is exists

restore commentout

* fix comment

* set summarizer model

mineo created

49c710b Add completion menu for file paths (#145)

Click to expand commit body
* feat(context-dialog): init

* chore(simple-list): refactor with generics

* fix(complete-module): fix fzf issues

* fix(complete-module): add fallbacks when rg or fzf is not available

* chore(complete-module): code improvements

* chore(complete-module): cleanup

* fix(complete-module): dialog keys cleanup

* fix(simple-list): add fallback message

* fix(commands-dialog): refactor to use simple-list

* fix(simple-list): add j and k keys

* fix(complete-module): cleanup and minor bug fixes

* fix(complete-module): self review

* fix(complete-module): remove old file

Adictya created

3e42475 Improve summary to keep context (#159)

Click to expand commit body
* improve summary to keep context

* improve loop

* remove debug msg

Kujtim Hoxha created

4f0c1c6 feat: add configuration persistence for model selections (#154)

Aiden Cline created

e8b4bb0 allow configuring shell (#157)

Ed Zynda created

36faca4 feat: Support named arguments in custom commands (#158)

Click to expand commit body
* Allow multiple named args

* fix: Fix styling in multi-arguments dialog

* Remove old unused modal

* Focus on only one input at a time

Ed Zynda created

1617685 update readme

Kujtim Hoxha created

16103e0 update aur

Kujtim Hoxha created

44bf462 update aur

Kujtim Hoxha created

b04faf0 update readme

Kujtim Hoxha created

90084ce Context Window Warning (#152)

Click to expand commit body
* context window warning & compact command

* auto compact

* fix permissions

* update readme

* fix 3.5 context window

* small update

* remove unused interface

* remove unused msg

Kujtim Hoxha created

9345830 Fix filepicker manual input (#146)

Click to expand commit body
* fix: allows to type i while manual inputting filepath

* fix: file selection in filepicker focus mode

* remove duplicate code

Nicholas Hamilton created

5307100 small fix

Kujtim Hoxha created

a58e607 feat: custom commands (#133)

Click to expand commit body
* Implement custom commands

* Add User: prefix

* Reuse var

* Check if the agent is busy and if so report a warning

* Update README

* fix typo

* Implement user and project scoped custom commands

* Allow for $ARGUMENTS

* UI tweaks

* Update internal/tui/components/dialog/arguments.go

Co-authored-by: Kujtim Hoxha <kujtimii.h@gmail.com>

* Also search in $HOME/.opencode/commands

---------

Co-authored-by: Kujtim Hoxha <kujtimii.h@gmail.com>

Ed Zynda and Kujtim Hoxha created

cd04c44 replace `github.com/google/generative-ai-go` with `github.com/googleapis/go-genai` (#138)

Click to expand commit body
* replace to github.com/googleapis/go-genai

* fix history logic

* small fixes

---------

Co-authored-by: Kujtim Hoxha <kujtimii.h@gmail.com>

mineo and Kujtim Hoxha created

88711db Config fix correcting loose viper string check, default model now set correctly (#147)

Joshua LaMorey-Salzmann created

9fec8df add support for images (#144)

phantomreactor created

603a3e3 add xai support (#135)

Kujtim Hoxha created

e14de7a fix: tweak the logic in config to ensure that env vs file configurations merge properly (#115)

Aiden Cline created

004cfe7 feat: test for getContextFromPaths (#105)

Click to expand commit body
* feat: test for getContextFromPaths

* fix: use testify

Garrett Ladley created

58705a1 fix: more intuitive keybinds (#121)

Adam created

82de143 feat: themes (#113)

Click to expand commit body
* feat: themes

* feat: flexoki theme

* feat: onedark theme

* feat: monokai pro theme

* feat: opencode theme (default)

* feat: dracula theme

* feat: tokyonight theme

* feat: tron theme

* some small fixes

---------

Co-authored-by: Kujtim Hoxha <kujtimii.h@gmail.com>

Adam and Kujtim Hoxha created

61d9dc9 fix: allow text selection (#127)

Adam created

76275e5 fix(openrouter): set api key from env (#129)

Hunter Casten created

98e2910 feat: Add support for OpenRouter (#92)

Click to expand commit body
* Add support for OpenRouter as a new model provider

- Introduced `ProviderOpenRouter` in the `models` package.
- Added OpenRouter-specific models, including `GPT41`, `GPT41Mini`, `GPT4o`, and others, with their configurations and costs.
- Updated `generateSchema` to include OpenRouter as a provider.
- Added OpenRouter-specific environment variable handling (`OPENROUTER_API_KEY`) in `config.go`.
- Implemented default model settings for OpenRouter agents in `setDefaultModelForAgent`.
- Updated `getProviderAPIKey` to retrieve the OpenRouter API key.
- Extended `SupportedModels` to include OpenRouter models.
- Added OpenRouter client initialization in the `provider` package.
- Modified `processGeneration` to handle `FinishReasonUnknown` in addition to `FinishReasonToolUse`.

* [feature/openrouter-provider] Add new models and provider to schema

- Added "deepseek-chat-free" and "deepseek-r1-free" to the list of supported models in `opencode-schema.json`.

* [feature/openrouter-provider] Add OpenRouter provider support and integrate new models

- Updated README.md to include OpenRouter as a supported provider and its configuration details.
- Added `OPENROUTER_API_KEY` to environment variable configuration.
- Introduced OpenRouter-specific models in `internal/llm/models/openrouter.go` with mappings to existing cost and token configurations.
- Updated `internal/config/config.go` to set default models for OpenRouter agents.
- Extended `opencode-schema.json` to include OpenRouter models in the schema definitions.
- Refactored model IDs and names to align with OpenRouter naming conventions.

* [feature/openrouter-provider] Refactor finish reason handling and tool call logic in agent and OpenAI provider

- Simplified finish reason check in `agent.go` by removing redundant variable assignment.
- Updated `openai.go` to override the finish reason to `FinishReasonToolUse` when tool calls are present.
- Ensured consistent finish reason handling in both `send` and `stream` methods of the OpenAI provider.

[feature/openrouter-provider] Refactor finish reason handling and tool call logic in agent and OpenAI provider

- Simplified finish reason check in `agent.go` by removing redundant variable assignment.
- Updated `openai.go` to override the finish reason to `FinishReasonToolUse` when tool calls are present.
- Ensured consistent finish reason handling in both `send` and `stream` methods of the OpenAI provider.

* **[feature/openrouter-provider] Add support for custom headers in OpenAI client configuration**

- Introduced a new `extraHeaders` field in the `openaiOptions` struct to allow specifying additional HTTP headers.
- Added logic in `newOpenAIClient` to apply `extraHeaders` to the OpenAI client configuration.
- Implemented a new option function `WithOpenAIExtraHeaders` to set custom headers in `openaiOptions`.
- Updated the OpenRouter provider configuration in `NewProvider` to include default headers (`HTTP-Referer` and `X-Title`) for OpenRouter API requests.

* Update OpenRouter model config and remove unsupported models

* [feature/openrouter-provider] Update OpenRouter models and default configurations

- Added new OpenRouter models: `claude-3.5-sonnet`, `claude-3-haiku`, `claude-3.7-sonnet`, `claude-3.5-haiku`, and `claude-3-opus` in `openrouter.go`.
- Updated default agent models in `config.go`:
  - `agents.coder.model` now uses `claude-3.7-sonnet`.
  - `agents.task.model` now uses `claude-3.7-sonnet`.
  - `agents.title.model` now uses `claude-3.5-haiku`.
- Updated `opencode-schema.json` to include the new models in the allowed list for schema validation.
- Adjusted logic in `setDefaultModelForAgent` to reflect the new default models.

* [feature/openrouter-provider] Remove unused ProviderEvent emission in stream function

The changes remove the emission of a `ProviderEvent` with type `EventContentStop` in the `stream` function of the `openaiClient` implementation. This event was sent upon successful stream completion but is no longer used.

Isaac Scarrott created

2941137 fix diagnostics for deleted files

Kujtim Hoxha created

b3c0285 feat: model selection for given provider (#57)

Click to expand commit body
* feat: model selection for given provider

* tweak: adjust cfg validation func, remove duplicated logic, consolidate agent updating into agent.go

* tweak: make the model dialog scrollable, adjust padding slightly for modal"

* feat: add provider selection, add hints, simplify some logic, add horizontal scrolling support, additional scroll indicators"

* remove nav help

* update docs

* increase number of visible models, make horizontal scroll "wrap"

* add provider popularity rankings

Aiden Cline created

805aeff feat: add azure openai models (#74)

YJG created

bce2ec5 fix duplicate context

Kujtim Hoxha created

292e9d9 remove unnecessary var

Kujtim Hoxha created

2b4441a fix context

Kujtim Hoxha created

8f3a94d feat: configure context paths (#86)

Garrett Ladley created