Commit graph

2224 commits

Author SHA1 Message Date
Kujtim Hoxha
a61b2026eb
add xai support (#135) 2025-05-01 11:08:26 -05:00
Aiden Cline
69ade34c2c
fix: tweak the logic in config to ensure that env vs file configurations merge properly (#115) 2025-05-01 11:08:17 -05:00
Garrett Ladley
fbca5441f6
feat: test for getContextFromPaths (#105)
* feat: test for getContextFromPaths

* fix: use testify
2025-05-01 11:08:06 -05:00
Kujtim Hoxha
e4680caebb
some small fixes 2025-05-01 11:07:47 -05:00
adamdottv
e760d28c5a
feat: show hunk headers 2025-05-01 09:02:14 -05:00
adamdottv
7d5f0f9d18
fix: pass input to EDITOR 2025-05-01 07:58:27 -05:00
adamdottv
515f4e8642
fix: visual tweaks 2025-05-01 07:32:04 -05:00
adamdottv
f2b36b9234
fix: remove lsp tool 2025-05-01 07:28:37 -05:00
adamdottv
f224978bbc
fix: remove manual lsp definition 2025-05-01 07:24:53 -05:00
adamdottv
8819a37a05
fix: logo 2025-05-01 06:43:59 -05:00
adamdottv
769dff00ba
fix: don't mark as init 2025-05-01 06:43:30 -05:00
adamdottv
d1be7a984e
fix: logo 2025-05-01 06:36:30 -05:00
adamdottv
3e30607a6d
fix: minor prompt fix 2025-05-01 06:35:47 -05:00
adamdottv
d08e58279d
feat: lsp discovery 2025-05-01 06:26:20 -05:00
adamdottv
7bc542abff
fix: better diagnostics visual 2025-04-30 15:23:19 -05:00
adamdottv
ed50c36789
fix: lsp issues with tmp and deleted files 2025-04-30 12:20:51 -05:00
adamdottv
98cf65b425
fix: more intuitive keybinds 2025-04-30 11:34:21 -05:00
adamdottv
5406083850
fix: minor icon tweak 2025-04-30 11:33:30 -05:00
adamdottv
91ae9b33d3
feat: custom themes 2025-04-30 11:05:59 -05:00
adamdottv
a42175c067
fix: info and hint icons 2025-04-30 07:47:14 -05:00
adamdottv
8497145db2
fix: status sizing 2025-04-30 07:47:10 -05:00
adamdottv
89544fad61
feat: tron theme 2025-04-30 07:46:35 -05:00
adamdottv
1151accf4b
feat: tokyonight theme 2025-04-30 07:46:35 -05:00
adamdottv
1ae3f1830b
feat: dracula theme 2025-04-30 07:46:35 -05:00
adamdottv
1e958b62ad
feat: opencode theme (default) 2025-04-30 07:46:35 -05:00
adamdottv
fdf5367f4f
feat: monokai pro theme 2025-04-30 07:46:34 -05:00
adamdottv
0e8842a007
feat: onedark theme 2025-04-30 07:46:34 -05:00
adamdottv
060994f393
feat: flexoki theme 2025-04-30 07:46:34 -05:00
adamdottv
61b605e724
feat: themes 2025-04-30 07:46:34 -05:00
Adam
61d9dc9511
fix: allow text selection (#127) 2025-04-30 12:52:30 +02:00
Hunter Casten
76275e533e
fix(openrouter): set api key from env (#129) 2025-04-30 12:50:57 +02:00
Isaac Scarrott
98e2910e82
feat: Add support for OpenRouter (#92)
* 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.
2025-04-29 13:56:49 +02:00
Kujtim Hoxha
2941137416 fix diagnostics for deleted files 2025-04-28 19:37:42 +02:00
Aiden Cline
b3c0285db3
feat: model selection for given provider (#57)
* 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
2025-04-28 19:25:06 +02:00
YJG
805aeff83c
feat: add azure openai models (#74) 2025-04-28 15:42:57 +02:00
Kujtim Hoxha
bce2ec5c10 fix duplicate context 2025-04-27 20:43:27 +02:00
Kujtim Hoxha
292e9d90ca remove unnecessary var 2025-04-27 20:34:20 +02:00
Kujtim Hoxha
2b4441a0d1 fix context 2025-04-27 20:31:53 +02:00
Garrett Ladley
8f3a94df92
feat: configure context paths (#86) 2025-04-27 20:11:09 +02:00
Kujtim Hoxha
4415220555 fix minor issue 2025-04-27 19:24:46 +02:00
Kujtim Hoxha
a3a04d8a54 fix gemini provider 2025-04-27 19:12:02 +02:00
Lukáš Loukota
792e2b164b fix: gemini tool calling 2025-04-27 19:12:02 +02:00
Kujtim Hoxha
5859dcdc00 small glob fixes 2025-04-27 18:01:31 +02:00
isaac-scarrott
3c2b0f4dd0 [feature/ripgrep-glob] Add ripgrep-based file globbing to improve performance
- 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.
2025-04-27 18:01:31 +02:00
Kujtim Hoxha
9738886620 fix provider config 2025-04-27 14:44:40 +02:00
Sam Ottenhoff
f3dccad54b Handle new Cursor rules format
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
2025-04-27 14:17:06 +02:00
Kujtim Hoxha
b3a8dbd0d9 fix retry warning 2025-04-27 14:08:09 +02:00
Garrett Mitchell Ladley
d93694a979 feat: simpler diff implementation 2025-04-27 13:56:57 +02:00
Fuad
8a4d4152ce use workingDir if shellInstance is nil otherwise use cwd if shellInstance is not nil 2025-04-27 13:46:59 +02:00
Fuad
f12386e558 use provided workingg dir 2025-04-27 13:46:59 +02:00