opencode-windsurf-codeium 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -13,35 +13,6 @@ OpenCode plugin for Windsurf/Codeium authentication - use Windsurf models in Ope
13
13
 
14
14
  This plugin enables OpenCode users to access Windsurf/Codeium models by leveraging their existing Windsurf installation. It communicates directly with the **local Windsurf language server** via gRPC - no network traffic capture or OAuth flows required.
15
15
 
16
- ### How It Works
17
-
18
- 1. **Credential Discovery**: Extracts CSRF token and port from the running `language_server_macos` process
19
- 2. **API Key**: Reads from `~/.codeium/config.json`
20
- 3. **gRPC Communication**: Sends requests to `localhost:{port}` using HTTP/2 gRPC protocol
21
- 4. **Response Transformation**: Converts gRPC responses to OpenAI-compatible SSE format
22
-
23
- ### Supported Models (canonical names)
24
-
25
- **Claude**: `claude-3-opus`, `claude-3-sonnet`, `claude-3-haiku`, `claude-3.5-sonnet`, `claude-3.5-haiku`, `claude-3.7-sonnet`, `claude-3.7-sonnet-thinking`, `claude-4-opus`, `claude-4-opus-thinking`, `claude-4-sonnet`, `claude-4-sonnet-thinking`, `claude-4.1-opus`, `claude-4.1-opus-thinking`, `claude-4.5-sonnet`, `claude-4.5-sonnet-thinking`, `claude-4.5-opus`, `claude-4.5-opus-thinking`, `claude-code`.
26
-
27
- **OpenAI GPT**: `gpt-4`, `gpt-4-turbo`, `gpt-4o`, `gpt-4o-mini`, `gpt-4.1`, `gpt-4.1-mini`, `gpt-4.1-nano`, `gpt-5`, `gpt-5-nano`, `gpt-5-low`, `gpt-5-high`, `gpt-5-codex`, `gpt-5.1-codex-mini`, `gpt-5.1-codex`, `gpt-5.1-codex-max`, `gpt-5.2-low`, `gpt-5.2`, `gpt-5.2-high`, `gpt-5.2-xhigh`, `gpt-5.2-priority` (plus the low/high/xhigh priority variants).
28
-
29
- **OpenAI O-series**: `o3`, `o3-mini`, `o3-low`, `o3-high`, `o3-pro`, `o3-pro-low`, `o3-pro-high`, `o4-mini`, `o4-mini-low`, `o4-mini-high`.
30
-
31
- **Gemini**: `gemini-2.0-flash`, `gemini-2.5-pro`, `gemini-2.5-flash`, `gemini-2.5-flash-thinking`, `gemini-2.5-flash-lite`, `gemini-3.0-pro`, `gemini-3.0-pro-low`, `gemini-3.0-pro-high`, `gemini-3.0-flash`, `gemini-3.0-flash-high`.
32
-
33
- **DeepSeek**: `deepseek-v3`, `deepseek-v3-2`, `deepseek-r1`, `deepseek-r1-fast`, `deepseek-r1-slow`.
34
-
35
- **Llama**: `llama-3.1-8b`, `llama-3.1-70b`, `llama-3.1-405b`, `llama-3.3-70b`, `llama-3.3-70b-r1`.
36
-
37
- **Qwen**: `qwen-2.5-7b`, `qwen-2.5-32b`, `qwen-2.5-72b`, `qwen-2.5-32b-r1`, `qwen-3-235b`, `qwen-3-coder-480b`, `qwen-3-coder-480b-fast`.
38
-
39
- **Grok (xAI)**: `grok-2`, `grok-3`, `grok-3-mini`, `grok-code-fast`.
40
-
41
- **Specialty & Proprietary**: `mistral-7b`, `kimi-k2`, `kimi-k2-thinking`, `glm-4.5`, `glm-4.5-fast`, `glm-4.6`, `glm-4.6-fast`, `glm-4.7`, `glm-4.7-fast`, `minimax-m2`, `minimax-m2.1`, `swe-1.5`, `swe-1.5-thinking`, `swe-1.5-slow`.
42
-
43
- Aliases (e.g., `gpt-5.2-low-priority`) are also accepted.
44
-
45
16
  ## Prerequisites
46
17
 
47
18
  1. **Windsurf IDE installed** - Download from [windsurf.com](https://windsurf.com)
@@ -115,6 +86,35 @@ src/
115
86
  └── types.ts # Shared enums/types
116
87
  ```
117
88
 
89
+ ### How It Works
90
+
91
+ 1. **Credential Discovery**: Extracts CSRF token and port from the running `language_server_macos` process
92
+ 2. **API Key**: Reads from `~/.codeium/config.json`
93
+ 3. **gRPC Communication**: Sends requests to `localhost:{port}` using HTTP/2 gRPC protocol
94
+ 4. **Response Transformation**: Converts gRPC responses to OpenAI-compatible SSE format
95
+
96
+ ### Supported Models (canonical names)
97
+
98
+ **Claude**: `claude-3-opus`, `claude-3-sonnet`, `claude-3-haiku`, `claude-3.5-sonnet`, `claude-3.5-haiku`, `claude-3.7-sonnet`, `claude-3.7-sonnet-thinking`, `claude-4-opus`, `claude-4-opus-thinking`, `claude-4-sonnet`, `claude-4-sonnet-thinking`, `claude-4.1-opus`, `claude-4.1-opus-thinking`, `claude-4.5-sonnet`, `claude-4.5-sonnet-thinking`, `claude-4.5-opus`, `claude-4.5-opus-thinking`, `claude-code`.
99
+
100
+ **OpenAI GPT**: `gpt-4`, `gpt-4-turbo`, `gpt-4o`, `gpt-4o-mini`, `gpt-4.1`, `gpt-4.1-mini`, `gpt-4.1-nano`, `gpt-5`, `gpt-5-nano`, `gpt-5-low`, `gpt-5-high`, `gpt-5-codex`, `gpt-5.1-codex-mini`, `gpt-5.1-codex`, `gpt-5.1-codex-max`, `gpt-5.2-low`, `gpt-5.2`, `gpt-5.2-high`, `gpt-5.2-xhigh`, `gpt-5.2-priority` (plus the low/high/xhigh priority variants).
101
+
102
+ **OpenAI O-series**: `o3`, `o3-mini`, `o3-low`, `o3-high`, `o3-pro`, `o3-pro-low`, `o3-pro-high`, `o4-mini`, `o4-mini-low`, `o4-mini-high`.
103
+
104
+ **Gemini**: `gemini-2.0-flash`, `gemini-2.5-pro`, `gemini-2.5-flash`, `gemini-2.5-flash-thinking`, `gemini-2.5-flash-lite`, `gemini-3.0-pro`, `gemini-3.0-pro-low`, `gemini-3.0-pro-high`, `gemini-3.0-flash`, `gemini-3.0-flash-high`.
105
+
106
+ **DeepSeek**: `deepseek-v3`, `deepseek-v3-2`, `deepseek-r1`, `deepseek-r1-fast`, `deepseek-r1-slow`.
107
+
108
+ **Llama**: `llama-3.1-8b`, `llama-3.1-70b`, `llama-3.1-405b`, `llama-3.3-70b`, `llama-3.3-70b-r1`.
109
+
110
+ **Qwen**: `qwen-2.5-7b`, `qwen-2.5-32b`, `qwen-2.5-72b`, `qwen-2.5-32b-r1`, `qwen-3-235b`, `qwen-3-coder-480b`, `qwen-3-coder-480b-fast`.
111
+
112
+ **Grok (xAI)**: `grok-2`, `grok-3`, `grok-3-mini`, `grok-code-fast`.
113
+
114
+ **Specialty & Proprietary**: `mistral-7b`, `kimi-k2`, `kimi-k2-thinking`, `glm-4.5`, `glm-4.5-fast`, `glm-4.6`, `glm-4.6-fast`, `glm-4.7`, `glm-4.7-fast`, `minimax-m2`, `minimax-m2.1`, `swe-1.5`, `swe-1.5-thinking`, `swe-1.5-slow`.
115
+
116
+ Aliases (e.g., `gpt-5.2-low-priority`) are also accepted.
117
+
118
118
  ## Development
119
119
 
120
120
  ```bash
package/dist/index.d.ts CHANGED
@@ -27,4 +27,5 @@ export { modelNameToEnum, enumToModelName, getSupportedModels, isModelSupported,
27
27
  export { PLUGIN_ID, GRPC_SERVICES, GRPC_METHODS, } from './src/constants.js';
28
28
  export { ModelEnum, ChatMessageSource } from './src/plugin/types.js';
29
29
  export type { ModelEnumValue, ChatMessageSourceValue } from './src/plugin/types.js';
30
+ export { WindsurfPlugin as default } from './src/plugin.js';
30
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,aAAa,EACd,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,OAAO,EACP,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAGhE,OAAO,EACL,UAAU,EACV,mBAAmB,EACpB,MAAM,6BAA6B,CAAC;AAErC,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGlF,OAAO,EACL,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,SAAS,EACT,aAAa,EACb,YAAY,GACb,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,SAAS,EACT,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,cAAc,EACd,sBAAsB,EACvB,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,aAAa,EACd,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,OAAO,EACP,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAGhE,OAAO,EACL,UAAU,EACV,mBAAmB,EACpB,MAAM,6BAA6B,CAAC;AAErC,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGlF,OAAO,EACL,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,SAAS,EACT,aAAa,EACb,YAAY,GACb,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,SAAS,EACT,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,cAAc,EACd,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,cAAc,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -30,4 +30,6 @@ export { modelNameToEnum, enumToModelName, getSupportedModels, isModelSupported,
30
30
  export { PLUGIN_ID, GRPC_SERVICES, GRPC_METHODS, } from './src/constants.js';
31
31
  // Types
32
32
  export { ModelEnum, ChatMessageSource } from './src/plugin/types.js';
33
+ // Default export for OpenCode plugin loader compatibility
34
+ export { WindsurfPlugin as default } from './src/plugin.js';
33
35
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,sBAAsB;AACtB,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,aAAa,EACd,MAAM,iBAAiB,CAAC;AAEzB,4BAA4B;AAC5B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,OAAO,EACP,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAI9B,cAAc;AACd,OAAO,EACL,UAAU,EACV,mBAAmB,EACpB,MAAM,6BAA6B,CAAC;AAIrC,kBAAkB;AAClB,OAAO,EACL,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,YAAY;AACZ,OAAO,EACL,SAAS,EACT,aAAa,EACb,YAAY,GACb,MAAM,oBAAoB,CAAC;AAE5B,QAAQ;AACR,OAAO,EACL,SAAS,EACT,iBAAiB,EAClB,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,sBAAsB;AACtB,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,aAAa,EACd,MAAM,iBAAiB,CAAC;AAEzB,4BAA4B;AAC5B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,OAAO,EACP,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAI9B,cAAc;AACd,OAAO,EACL,UAAU,EACV,mBAAmB,EACpB,MAAM,6BAA6B,CAAC;AAIrC,kBAAkB;AAClB,OAAO,EACL,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,YAAY;AACZ,OAAO,EACL,SAAS,EACT,aAAa,EACb,YAAY,GACb,MAAM,oBAAoB,CAAC;AAE5B,QAAQ;AACR,OAAO,EACL,SAAS,EACT,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAO/B,0DAA0D;AAC1D,OAAO,EAAE,cAAc,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-windsurf-codeium",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "OpenCode plugin for Windsurf/Codeium authentication - use Windsurf models in OpenCode",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",