* Add a postMessage handler for standalone cline app.
If there is no vscode api defined, try to use the standalone post
Message handler.
* Imports
* Update logs
* Add type checking for protobus RPC handlers.
Add type parameters to the wrapper function when generating the server-setup file.
So that the parameters of the RPC handler will be type checked against types defined in the service.
The generated code looks like this:
```
server.addService(proto.cline.CheckpointsService.service, {
checkpointDiff: wrapper<cline.Int64Request,cline.Empty>(checkpointDiff, controller),
checkpointRestore: wrapper<cline.CheckpointRestoreRequest,cline.Empty>(checkpointRestore, controller),
});
```
Add an index.ts file to the proto directory so all the proto types can be imported without having to know which proto message is defined in which file (the proto descriptor set doesn't have this information).
* Generate index.ts with protoc instead of doing it ourselves.
Turn on the option 'dontExportCommonSymbols' in protoc, so that each generated proto file is not trying to export the same utility functions.
Generate all the protos with the same protoc command.
* cleanup
* WIP host bridge
* Run formatter
* remove tmp impl & rename host grpc client
* gitignore more files
* better layout
* host handler to make other hosts easier to add
* remove adapter pattern
* get host responses correctly
* fix streaming mode for host bridge
* first wip subscription host bridge demo for watching mcp server config
* format, comment
* add cancellation for host grpc stream
* remove unneeded functions from host-grpc-handler
* add a method for canceling request rather than using the registry
* another todo
* use StringRequest for uri.proto
* debounce new file watcher
* remove test setup
* remove some todos and logs
* remove registry use todo
* Revert "remove registry use todo"
This reverts commit 84078d3469.
* fix capitalization of uri.proto
* a better pattern for a callback based bridge without using the requestRegistry directly
---------
Co-authored-by: Andrei Edell <andrei@nugbase.com>
Co-authored-by: Sarah Fortune <sarah.fortune@gmail.com>
Co-authored-by: Andrei Eternal <eternal@cline.bot>
* feat: add all qwen3 models support and add thinking mode options
* fix: qwen model reasoning logic configuration, set the qwen model maxBudget value
* fix: correct the maxTokens in qwen3 model
* vertex model
---------
Co-authored-by: xuanqi <xuanqi.cc@alibaba-inc.com>
Co-authored-by: 0xtoshii <94262432+0xToshii@users.noreply.github.com>
* migrate chatButtonClicked
* changeset
* send targeted event to the controller
* prettier
* add test mock
* continue to fix tests
* fix test mocks once and for all
* fix test mocks once and for all
* try again please lord
* try again
* temporarily disable tests
* revert other test 'fixes'
* one more
---------
Co-authored-by: Elephant Lumps <celestial_vault@Elephants-MacBook-Pro.local>
* feat(lint): Add custom ESLint rules for protobuf type checking
Add two custom ESLint rules to enforce proper usage patterns when creating protobuf objects.
Using .create() to build protobufs ensures that the protobuf is type checked when it is created. Protobufs created using
object literals are not type checked, which can lead to subtle bugs and type mismatches. The linter rules detect when protobufs are created without using .create() or .fromPartial().
- no-protobuf-object-literals: Enforces the use of `.create()` or `.fromPartial()` methods instead of object literals when creating protobuf types.
```
/Users/sjf/cline/src/shared/proto-conversions/state/chat-settings-conversion.ts
9:9 warning Use ChatSettings.create() or ChatSettings.fromPartial() instead of object literal for protobuf type
Found: return {
mode: chatSettings.mode === "plan" ? PlanActMode.PLAN : PlanActMode.ACT,
preferredLanguage: chatSettings.preferredLanguage,
openAiReasoningEffort: chatSettings.openAIReasoningEffort,
}
Suggestion: ChatSettings.create({
mode: chatSettings.mode === "plan" ? PlanActMode.PLAN : PlanActMode.ACT,
preferredLanguage: chatSettings.preferredLanguage,
openAiReasoningEffort: chatSettings.openAIReasoningEffort,
})
```
- no-grpc-client-object-literals: Enforces proper protobuf creation for gRPC service client parameters. This needs a separate rule
because the type signatures of the ServiceClients methods are too generic to be detected by the previous rule.
```
/Users/sjf/cline/webview-ui/src/components/mcp/configuration/tabs/add-server/AddRemoteServerForm.tsx
41:62 warning Use the appropriate protobuf .create() or .fromPartial() method instead of object literal for gRPC client parameters.
Found: McpServiceClient.addRemoteMcpServer({
serverName: serverName.trim(),
serverUrl: serverUrl.trim(),
})
```
These rules help maintain code quality by enforcing consistent patterns for working with protocol buffers throughout the codebase, reducing potential runtime errors from improper message construction.
* Update test
* Add custom eslint rules to new webview-ui config
* formatting
* stuff
* undo protobuf fixes
* update rule
* update rule
* protobuf fixes
* rename unused params
* formatting
* use dropdown for Ollama model list when possible
Code changes by Qwen3 30B A3B, based on OpenRouterModelPicker
* Document libasound2 and libnss3 test dependencies, sort list
* add test for OllamaModelPicker
Code by Claude Sonnet 3.7
* Add changeset
* Add globalState to the standalone vscode extension context replacement.
Add a generic key-value store that can be used by different storages, and move this into vscode-context-utils file.
Move the stubs/mocks into a separate stubs file, (they have type checking turned off).
Keep the implementations in vscode-context and turn on typechecking for this file.
* Add type parameter for the values in the JsonKeyValueStore
* Optimize imports
* Add implementations for the vscode ExtensionContext in the standalone app (#4000)
* Formatting
* add package-lock.json
* docs: add xAI Grok and Mistral AI provider configs
* docs: add Anthropic Claude model configuration guide
- Add comprehensive documentation for configuring Anthropic Claude models with Cline
- Include API key setup, supported models list, and configuration steps
- Cover advanced features like prompt caching and rate limits
- Update navigation to include new Anthropic page in custom model configs section
* docs: add DeepSeek, Ollama, OpenAI, OpenAI Compatible pages and update Plan & Act
* docs: add Extended Thinking section to Anthropic configuration guide
* docs: update vscode language model api page
* docs: update vscode language model api docs
* Add model documentation pages and update navigation structure
- Add new documentation pages for model overviews (Claude, Gemini, OpenAI, XAI)
- Add general models overview page
- Update docs.json to include new model documentation in navigation
- Update OpenAI-compatible model documentation
* Remove Notes column from model documentation tables for consistency
* Fix table formatting in Gemini models documentation
* added 5 new model configurations and updated existing ones
* Update AWS Bedrock documentation with minimal IAM permissions
* modified: docs/get-to-know-the-models/claude-models.mdx
* Renamed 'custom model configuration' to 'provider configuation' to avoid providers being confused with models
* Fix dollar sign rendering in model documentation
- Escape dollar signs in pricing tables to prevent MDX parsing issues
- Fixes disappearing dollar signs in gemini-models.mdx and other model docs
- Dollar signs now display correctly as literal currency symbols
* Add feature descriptions to OpenAI and XAI model docs
- Added 'Diverse Performance for Different Tasks Across Model Tiers' section to OpenAI models
- Added 'Real-time Information Access' section to XAI models
- Maintains consistency with existing Claude and Gemini documentation format
- Highlights valuable features for agentic AI coding workflows
* removing these files due to name change in header. they're in the new docs/provider configs folder
* added 2 new issues per model page + formatting
* Update model documentation files
* Fix: Correct paths in docs.json for provider configs
* docs: update docs.json and apply formatting
* docs: fix broken links, add OpenRouter & Requesty pages
* docs: remove 'get to know the models' section and files
* Update docs/provider-config/openai-compatible.mdx
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
---------
Co-authored-by: kevinneung <94151024+kevinneung@users.noreply.github.com>
Co-authored-by: Dennise Bartlett <bartlett.dc.1@gmail.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* changeset version bump
* Updating CHANGELOG.md format
* Update CHANGELOG.md and version for patch release 3.17.9
- Change version from 3.18.0 to 3.17.9 (patch release)
- Update CHANGELOG.md with user-friendly descriptions
- Add proper attribution for external contributors
- Focus on user-facing changes and bug fixes
- Remove internal/dev-only changes from changelog
* added claude 4 stuff
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: pashpashpash <nik@nugbase.com>
* adding modularized flag for new claude4 experimental tools, default OFF
* diff.ts
* responses.ts
* system.ts
* tests and prompt
* forgot some chars
---------
Co-authored-by: Cline Evaluation <cline@example.com>
* add open disk conversation history button
* changeset
* change icon due to lack of artistic freedom
---------
Co-authored-by: Elephant Lumps <celestial_vault@Elephants-MacBook-Pro.local>
* fix:The POST requests of MCP's SSE server support setting headers.(#2652)
* fix:The POST requests of MCP's SSE server support setting headers.(#2652)
---------
Co-authored-by: Toshii <94262432+0xToshii@users.noreply.github.com>
* add ls file tool description, parsing, and return formatting
* add json tool definition and remove extra '.'
* changeset
* use separate function for new format
* using json
* add grep tool new format
* add editTool definition
* Map MultiEdit tool to StreamingJsonReplacer with logs
* Adding support for non streamed json
* Adding logging
* moving multiedit tool into tool defs
---------
Co-authored-by: Elephant Lumps <celestial_vault@Elephants-MacBook-Pro.local>
Co-authored-by: Cline Evaluation <cline@example.com>
Co-authored-by: pashpashpash <nik@nugbase.com>
* Fix undefined type when parsing response chunk in stream
* Fix undefined type when parsing response chunk in stream
* remove Cline.ts changes
---------
Co-authored-by: 0xtoshii <94262432+0xToshii@users.noreply.github.com>
* Fix linter warnings in the webview (part 2)
Replace protobus calls using object literals to use Message.create({...})
Fix incorrect property name detected after this change in webview-ui/src/components/settings/SettingsView.tsx
Optimised imports in vscode.
* formatting
* feat(lint): Add custom ESLint rules for protobuf type checking
Add two custom ESLint rules to enforce proper usage patterns when creating protobuf objects.
Using .create() to build protobufs ensures that the protobuf is type checked when it is created. Protobufs created using
object literals are not type checked, which can lead to subtle bugs and type mismatches. The linter rules detect when protobufs are created without using .create() or .fromPartial().
- no-protobuf-object-literals: Enforces the use of `.create()` or `.fromPartial()` methods instead of object literals when creating protobuf types.
```
/Users/sjf/cline/src/shared/proto-conversions/state/chat-settings-conversion.ts
9:9 warning Use ChatSettings.create() or ChatSettings.fromPartial() instead of object literal for protobuf type
Found: return {
mode: chatSettings.mode === "plan" ? PlanActMode.PLAN : PlanActMode.ACT,
preferredLanguage: chatSettings.preferredLanguage,
openAiReasoningEffort: chatSettings.openAIReasoningEffort,
}
Suggestion: ChatSettings.create({
mode: chatSettings.mode === "plan" ? PlanActMode.PLAN : PlanActMode.ACT,
preferredLanguage: chatSettings.preferredLanguage,
openAiReasoningEffort: chatSettings.openAIReasoningEffort,
})
```
- no-grpc-client-object-literals: Enforces proper protobuf creation for gRPC service client parameters. This needs a separate rule
because the type signatures of the ServiceClients methods are too generic to be detected by the previous rule.
```
/Users/sjf/cline/webview-ui/src/components/mcp/configuration/tabs/add-server/AddRemoteServerForm.tsx
41:62 warning Use the appropriate protobuf .create() or .fromPartial() method instead of object literal for gRPC client parameters.
Found: McpServiceClient.addRemoteMcpServer({
serverName: serverName.trim(),
serverUrl: serverUrl.trim(),
})
```
These rules help maintain code quality by enforcing consistent patterns for working with protocol buffers throughout the codebase, reducing potential runtime errors from improper message construction.
* Update test
* Add custom eslint rules to new webview-ui config
* Only include webview grpc ServiceClient check
* Fix lint errors
* formatting
* Update package.json
* Make the no-grpc-client-object-literals linter rule an error for the webview-ui
Fix the last occurrence of this issue.
* formatting
* Fix linter warnings in the webview (part 2)
Replace protobus calls using object literals to use Message.create({...})
Fix incorrect property name detected after this change in webview-ui/src/components/settings/SettingsView.tsx
Optimised imports in vscode.
* formatting
* feat(lint): Add custom ESLint rules for protobuf type checking
Add two custom ESLint rules to enforce proper usage patterns when creating protobuf objects.
Using .create() to build protobufs ensures that the protobuf is type checked when it is created. Protobufs created using
object literals are not type checked, which can lead to subtle bugs and type mismatches. The linter rules detect when protobufs are created without using .create() or .fromPartial().
- no-protobuf-object-literals: Enforces the use of `.create()` or `.fromPartial()` methods instead of object literals when creating protobuf types.
```
/Users/sjf/cline/src/shared/proto-conversions/state/chat-settings-conversion.ts
9:9 warning Use ChatSettings.create() or ChatSettings.fromPartial() instead of object literal for protobuf type
Found: return {
mode: chatSettings.mode === "plan" ? PlanActMode.PLAN : PlanActMode.ACT,
preferredLanguage: chatSettings.preferredLanguage,
openAiReasoningEffort: chatSettings.openAIReasoningEffort,
}
Suggestion: ChatSettings.create({
mode: chatSettings.mode === "plan" ? PlanActMode.PLAN : PlanActMode.ACT,
preferredLanguage: chatSettings.preferredLanguage,
openAiReasoningEffort: chatSettings.openAIReasoningEffort,
})
```
- no-grpc-client-object-literals: Enforces proper protobuf creation for gRPC service client parameters. This needs a separate rule
because the type signatures of the ServiceClients methods are too generic to be detected by the previous rule.
```
/Users/sjf/cline/webview-ui/src/components/mcp/configuration/tabs/add-server/AddRemoteServerForm.tsx
41:62 warning Use the appropriate protobuf .create() or .fromPartial() method instead of object literal for gRPC client parameters.
Found: McpServiceClient.addRemoteMcpServer({
serverName: serverName.trim(),
serverUrl: serverUrl.trim(),
})
```
These rules help maintain code quality by enforcing consistent patterns for working with protocol buffers throughout the codebase, reducing potential runtime errors from improper message construction.
* Update test
* Add custom eslint rules to new webview-ui config
* Only include webview grpc ServiceClient check
* Fix lint errors
* formatting
* Update package-lock.json
* Update package.json