Commit log

d434ef2 wip

Kujtim Hoxha created

6d087c4 wip vibecoded mostly

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

4415220 fix minor issue

Kujtim Hoxha created

a3a04d8 fix gemini provider

Kujtim Hoxha created

792e2b1 fix: gemini tool calling

Lukรกลก Loukota created

5859dcd small glob fixes

Kujtim Hoxha created

3c2b0f4 [feature/ripgrep-glob] Add ripgrep-based file globbing to improve performance

Click to expand commit body
- Introduced `globWithRipgrep` function to perform file globbing using the `rg` (ripgrep) command.
- Updated `globFiles` to prioritize ripgrep-based globbing and fall back to doublestar-based globbing if ripgrep fails.
- Added logic to handle ripgrep command execution, output parsing, and filtering of hidden files.
- Ensured results are sorted by path length and limited to the specified maximum number of matches.
- Modified imports to include `os/exec` and `bytes` for ripgrep integration.

isaac-scarrott created

9738886 fix provider config

Kujtim Hoxha created

f3dccad Handle new Cursor rules format

Click to expand commit body
1. Check if a path ends with a slash (/)
2. If it does, treat it as a directory and read all files within it
3. For directories like .cursor/rules/, it will scan all files and include their content in the prompt
4. Each file from a directory will be prefixed with "# From filename" for clarity

Sam Ottenhoff created

b3a8dbd fix retry warning

Kujtim Hoxha created

d93694a feat: simpler diff implementation

Garrett Mitchell Ladley created

8a4d415 use workingDir if shellInstance is nil otherwise use cwd if shellInstance is not nil

Fuad created

f12386e use provided workingg dir

Fuad created

94aeb7b Fix nil pointer dereference in GetPersistentShell

Click to expand commit body
Added nil check in GetPersistentShell before accessing
shellInstance.isAlive
to prevent panic when newPersistentShell returns nil due to shell
startup
errors. This resolves the "invalid memory address or nil pointer
dereference"
error that was occurring in the shell tool.

Fuad created

a35466c fix acc error

Kujtim Hoxha created

170c7ad small fixes

Kujtim Hoxha created