Skip to content

Commit 7a64a2f

Browse files
support model vendor
1 parent 13ba8b0 commit 7a64a2f

File tree

5 files changed

+19
-0
lines changed

5 files changed

+19
-0
lines changed

cli/cmd/engine-cli/main.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ var (
3838
selectedModel string
3939
defaultModel string
4040
availableModels []string
41+
modelVendor string
4142
)
4243

4344
func main() {
@@ -98,6 +99,7 @@ func init() {
9899
runCmd.Flags().StringVar(&selectedModel, "selected-model", "", "Selected model for this job")
99100
runCmd.Flags().StringVar(&defaultModel, "default-model", "", "Default model for this engine")
100101
runCmd.Flags().StringSliceVar(&availableModels, "available-model", nil, "Available model for this engine (repeatable)")
102+
runCmd.Flags().StringVar(&modelVendor, "model-vendor", "", "Model vendor for filtering (e.g. Anthropic, OpenAI)")
101103

102104
_ = runCmd.MarkFlagRequired("repo")
103105
}
@@ -164,6 +166,7 @@ func runEngine(cmd *cobra.Command, args []string) error {
164166
SelectedModel: selectedModel,
165167
DefaultModel: defaultModel,
166168
AvailableModels: availableModels,
169+
ModelVendor: modelVendor,
167170
}
168171

169172
prNumber := setup.PRNumber
@@ -287,6 +290,7 @@ func runEngine(cmd *cobra.Command, args []string) error {
287290
env.SelectedModel = selectedModel
288291
env.DefaultModel = defaultModel
289292
env.AvailableModels = availableModels
293+
env.ModelVendor = modelVendor
290294
}
291295

292296
result := runner.Run(ctx, command, env, runner.Options{WorkingDir: workingDir}, runnerCallbacks)

cli/internal/runner/runner.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ type Environment struct {
2727
SelectedModel string
2828
DefaultModel string
2929
AvailableModels []string
30+
ModelVendor string
3031
}
3132

3233
// Callbacks contains optional callbacks for runner events.
@@ -160,6 +161,10 @@ func buildEnv(env Environment, extra map[string]string) []string {
160161
}
161162
}
162163

164+
if env.ModelVendor != "" {
165+
platformVars["GITHUB_MODEL_VENDOR"] = env.ModelVendor
166+
}
167+
163168
for k, v := range platformVars {
164169
result = append(result, fmt.Sprintf("%s=%s", k, v))
165170
}

cli/internal/server/server.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ type JobConfig struct {
3636
SelectedModel string
3737
DefaultModel string
3838
AvailableModels []string
39+
ModelVendor string
3940
}
4041

4142
// ProgressEvent represents a progress event received from an engine.
@@ -231,6 +232,10 @@ func (s *MockPlatformServer) handleGetJob(w http.ResponseWriter, r *http.Request
231232
if len(s.jobConfig.AvailableModels) > 0 {
232233
response["available_models"] = s.jobConfig.AvailableModels
233234
}
235+
236+
if s.jobConfig.ModelVendor != "" {
237+
response["model_vendor"] = s.jobConfig.ModelVendor
238+
}
234239
}
235240

236241
if s.callbacks.OnJobFetched != nil {

docs/integration-guide.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ The platform injects these environment variables into the engine process at runt
9898
| `GITHUB_SELECTED_MODEL` | No | Model selected by the platform for this run. Only set when model selection is enabled. |
9999
| `GITHUB_DEFAULT_MODEL` | No | Default model for the selected engine. Only set when model selection is enabled. |
100100
| `GITHUB_AVAILABLE_MODELS` | No | JSON array of models the engine can choose from (e.g. `["claude-sonnet-4.5","claude-opus-4.1"]`). Only set when model selection is enabled. |
101+
| `GITHUB_MODEL_VENDOR` | No | Model vendor for filtering (e.g. `Anthropic`, `OpenAI`). Only set when model selection is enabled. |
101102

102103
## Step 2: Fetch Job Details
103104

@@ -154,6 +155,7 @@ Headers:
154155
"selected_model": "claude-sonnet-4.5",
155156
"default_model": "claude-sonnet-4.5",
156157
"available_models": ["claude-sonnet-4.5", "claude-opus-4.1"],
158+
"model_vendor": "Anthropic",
157159
"mcp_proxy_url": "http://127.0.0.1:2301"
158160
}
159161
```
@@ -173,6 +175,7 @@ Headers:
173175
| `selected_model` | Model selected by the platform for this run. Present when `features.model_selection` is `true`. |
174176
| `default_model` | Default model for the selected engine. Present when `features.model_selection` is `true`. |
175177
| `available_models` | List of models the engine can choose from. Present when `features.model_selection` is `true`. |
178+
| `model_vendor` | Model vendor for filtering (e.g. `Anthropic`, `OpenAI`). Present when `features.model_selection` is `true`. |
176179
| `mcp_proxy_url` | Optional URL of the MCP proxy server. When present, use it to discover user-provided MCP servers. See [User-Provided MCP Servers](#user-provided-mcp-servers). |
177180

178181
Use `GITHUB_INFERENCE_TOKEN` for model calls and `GITHUB_GIT_TOKEN` for git operations; those are bootstrap action inputs, not job response fields.

src/client.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -493,6 +493,8 @@ export interface JobDetails {
493493
default_model?: string;
494494
/** Models the engine can choose from. Present when model selection is enabled. */
495495
available_models?: string[];
496+
/** Model vendor for filtering (e.g. "Anthropic", "OpenAI"). Present when model selection is enabled. */
497+
model_vendor?: string;
496498
/** Feature flags enabled for this job. */
497499
features?: {
498500
/** Whether the platform has enabled model selection for this job. */

0 commit comments

Comments
 (0)