81 Commits

Author SHA1 Message Date
Kujtim Hoxha 32060fe93b add xai support (#135)
release / goreleaser (push) Has been cancelled
2025-05-01 14:17:33 +02:00
Aiden Cline 9d019907c7 fix: tweak the logic in config to ensure that env vs file configurations merge properly (#115)
release / goreleaser (push) Has been cancelled
2025-05-01 13:22:48 +02:00
Garrett Ladley 4395cf8cdf feat: test for getContextFromPaths (#105)
release / goreleaser (push) Has been cancelled
* feat: test for getContextFromPaths

* fix: use testify
2025-05-01 12:55:28 +02:00
Isaac Scarrott 6168954b93 feat: Add support for OpenRouter (#92)
release / goreleaser (push) Has been cancelled
* 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
Aiden Cline 88adff87d6 feat: model selection for given provider (#57)
release / goreleaser (push) Has been cancelled
* 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 ed1070b38f feat: add azure openai models (#74) 2025-04-28 15:42:57 +02:00
Kujtim Hoxha fc97308a59 fix duplicate context
release / goreleaser (push) Has been cancelled
2025-04-27 20:43:27 +02:00
Kujtim Hoxha ff59510f90 remove unnecessary var 2025-04-27 20:34:20 +02:00
Kujtim Hoxha 0c94b9a576 fix context
release / goreleaser (push) Has been cancelled
2025-04-27 20:31:53 +02:00
Garrett Ladley 0b9088eb28 feat: configure context paths (#86)
release / goreleaser (push) Has been cancelled
2025-04-27 20:11:09 +02:00
Kujtim Hoxha 0172dcddf5 fix minor issue
release / goreleaser (push) Has been cancelled
2025-04-27 19:24:46 +02:00
Kujtim Hoxha b387a7d30b fix gemini provider
release / goreleaser (push) Has been cancelled
2025-04-27 19:12:02 +02:00
Lukáš Loukota dacaaf7465 fix: gemini tool calling 2025-04-27 19:12:02 +02:00
Kujtim Hoxha c7c723ee7f small glob fixes 2025-04-27 18:01:31 +02:00
isaac-scarrott 63617f4345 [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
Sam Ottenhoff 0e783fbbfa 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 8cad545138 fix retry warning
release / goreleaser (push) Has been cancelled
2025-04-27 14:08:09 +02:00
Fuad f83e9980f0 use workingDir if shellInstance is nil otherwise use cwd if shellInstance is not nil 2025-04-27 13:46:59 +02:00
Fuad 869dc96ac1 use provided workingg dir 2025-04-27 13:46:59 +02:00
Fuad 024118757d 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 7710a5c8cb fix acc error
release / goreleaser (push) Has been cancelled
2025-04-25 21:58:14 +02:00
Kujtim Hoxha e0da02457b small fixes 2025-04-25 14:42:47 +02:00
Hunter Casten 8f31eb3ba0 feat(groq): add support for Groq using the OpenAI provider 2025-04-25 11:11:52 +02:00
Kujtim Hoxha 6e33817b30 change package name 2025-04-24 18:26:16 +02:00
Kujtim Hoxha 6344673f23 init command 2025-04-21 19:53:55 +02:00
Kujtim Hoxha 94271b528f config validation 2025-04-21 14:29:28 +02:00
Kujtim Hoxha 0094dd728c remove old logs 2025-04-21 13:46:32 +02:00
Kujtim Hoxha 77cf4bf688 fix anthropic 2025-04-21 13:42:29 +02:00
Kujtim Hoxha 39375ed352 add context to the prompt 2025-04-21 13:42:29 +02:00
Kujtim Hoxha baff25ad6b improve cache 2025-04-21 13:42:29 +02:00
Kujtim Hoxha 6411617f7f initial tool call stream 2025-04-21 13:42:29 +02:00
Kujtim Hoxha 304d666856 lsp improvements 2025-04-21 13:42:29 +02:00
Kujtim Hoxha 20c28668ca add bedrock model 2025-04-21 13:42:29 +02:00
Kujtim Hoxha d6ab3ab3e9 small fixes 2025-04-21 13:42:29 +02:00
Kujtim Hoxha b7e86f61cd implement patch, update ui, improve rendering 2025-04-21 13:42:27 +02:00
Kujtim Hoxha 524d2080b0 small fixes 2025-04-21 13:42:02 +02:00
Kujtim Hoxha d6035dc40c Update agent prompt, improve TUI patch UI, remove obsolete tool tests
- Replace and expand agent coder prompt for clarity and safety
- Add patch tool and TUI dialog support for patch diffs
- Sort sidebar modified files by name
- Remove Bash/Edit/Sourcegraph/Write tool tests

🤖 Generated with opencode
Co-Authored-By: opencode <noreply@opencode.ai>
2025-04-21 13:42:02 +02:00
Kujtim Hoxha 91b1a8f064 rename to opencode 2025-04-21 13:42:02 +02:00
Kujtim Hoxha e5eea7b9bf reimplement agent,provider and add file history 2025-04-21 13:42:00 +02:00
Kujtim Hoxha 49b0be8f48 minor fixes 2025-04-21 13:41:27 +02:00
Kujtim Hoxha d4f7d48594 fix diff 2025-04-21 13:41:27 +02:00
Kujtim Hoxha 555361d8da remove node dependency and implement diff format 2025-04-21 13:41:27 +02:00
Kujtim Hoxha b3fde7a583 handle errors correctly in the other tools 2025-04-21 13:41:27 +02:00
Kujtim Hoxha e17d587bdc handle errors correctly in the edit tool 2025-04-21 13:41:27 +02:00
Kujtim Hoxha 38d8e6a649 handle errros correctly in the bash tool 2025-04-21 13:41:27 +02:00
Kujtim Hoxha 8bcf9dde55 handle errors correctly in the agent tool 2025-04-21 13:41:27 +02:00
Kujtim Hoxha 312688a809 cleanup diff, cleanup agent 2025-04-21 13:41:27 +02:00
Kujtim Hoxha a8c22808dc cleanup app, config and root 2025-04-21 13:41:25 +02:00
Kujtim Hoxha 1990da9d4a add initial git support 2025-04-21 13:38:42 +02:00
Kujtim Hoxha 79deb616d7 implement nested tool calls and initial setup for result metadata 2025-04-21 13:38:42 +02:00