Commit graph

270 commits

Author SHA1 Message Date
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
Fuad
94aeb7b7fe Fix nil pointer dereference in GetPersistentShell
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.
2025-04-27 13:46:59 +02:00
Kujtim Hoxha
a35466cdb3 fix acc error 2025-04-25 21:58:14 +02:00
Kujtim Hoxha
170c7ad67a small fixes 2025-04-25 14:42:47 +02:00
Hunter Casten
7a62ab7675 feat(groq): add support for Groq using the OpenAI provider 2025-04-25 11:11:52 +02:00