Skip to content

Commit 2f8984f

Browse files
Codex mini (anomalyco#34)
1 parent c84918c commit 2f8984f

File tree

9 files changed

+743
-316
lines changed

9 files changed

+743
-316
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ require (
2626
github.com/muesli/reflow v0.3.0
2727
github.com/muesli/termenv v0.16.0
2828
github.com/ncruces/go-sqlite3 v0.25.0
29-
github.com/openai/openai-go v0.1.0-beta.2
29+
github.com/openai/openai-go v0.1.0-beta.10
3030
github.com/pressly/goose/v3 v3.24.2
3131
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3
3232
github.com/spf13/cobra v1.9.1

go.sum

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,6 @@ github.com/bmatcuk/doublestar/v4 v4.8.1 h1:54Bopc5c2cAvhLRAzqOGCYHYyhcDHsFF4wWIR
6868
github.com/bmatcuk/doublestar/v4 v4.8.1/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc=
6969
github.com/catppuccin/go v0.3.0 h1:d+0/YicIq+hSTo5oPuRi5kOpqkVA5tAsU6dNhvRu+aY=
7070
github.com/catppuccin/go v0.3.0/go.mod h1:8IHJuMGaUUjQM82qBrGNBv7LFq6JI3NnQCF6MOlZjpc=
71-
github.com/charmbracelet/bubbles v0.20.0 h1:jSZu6qD8cRQ6k9OMfR1WlM+ruM8fkPWkHvQWD9LIutE=
72-
github.com/charmbracelet/bubbles v0.20.0/go.mod h1:39slydyswPy+uVOHZ5x/GjwVAFkCsV8IIVy+4MhzwwU=
7371
github.com/charmbracelet/bubbles v0.21.0 h1:9TdC97SdRVg/1aaXNVWfFH3nnLAwOXr8Fn6u6mfQdFs=
7472
github.com/charmbracelet/bubbles v0.21.0/go.mod h1:HF+v6QUR4HkEpz62dx7ym2xc71/KBHg+zKwJtMw+qtg=
7573
github.com/charmbracelet/bubbletea v1.3.4 h1:kCg7B+jSCFPLYRA52SDZjr51kG/fMUEoPoZrkaDHyoI=
@@ -86,9 +84,8 @@ github.com/charmbracelet/x/ansi v0.8.0 h1:9GTq3xq9caJW8ZrBTe0LIe2fvfLR/bYXKTx2ll
8684
github.com/charmbracelet/x/ansi v0.8.0/go.mod h1:wdYl/ONOLHLIVmQaxbIYEC/cRKOQyjTkowiI4blgS9Q=
8785
github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd h1:vy0GVL4jeHEwG5YOXDmi86oYw2yuYUGqz6a8sLwg0X8=
8886
github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs=
89-
github.com/charmbracelet/x/exp/golden v0.0.0-20240815200342-61de596daa2b h1:MnAMdlwSltxJyULnrYbkZpp4k58Co7Tah3ciKhSNo0Q=
90-
github.com/charmbracelet/x/exp/golden v0.0.0-20240815200342-61de596daa2b/go.mod h1:wDlXFlCrmJ8J+swcL/MnGUuYnqgQdW9rhSD61oNMb6U=
9187
github.com/charmbracelet/x/exp/golden v0.0.0-20241011142426-46044092ad91 h1:payRxjMjKgx2PaCWLZ4p3ro9y97+TVLZNaRZgJwSVDQ=
88+
github.com/charmbracelet/x/exp/golden v0.0.0-20241011142426-46044092ad91/go.mod h1:wDlXFlCrmJ8J+swcL/MnGUuYnqgQdW9rhSD61oNMb6U=
9289
github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ=
9390
github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg=
9491
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
@@ -182,8 +179,8 @@ github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdh
182179
github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
183180
github.com/ncruces/julianday v1.0.0 h1:fH0OKwa7NWvniGQtxdJRxAgkBMolni2BjDHaWTxqt7M=
184181
github.com/ncruces/julianday v1.0.0/go.mod h1:Dusn2KvZrrovOMJuOt0TNXL6tB7U2E8kvza5fFc9G7g=
185-
github.com/openai/openai-go v0.1.0-beta.2 h1:Ra5nCFkbEl9w+UJwAciC4kqnIBUCcJazhmMA0/YN894=
186-
github.com/openai/openai-go v0.1.0-beta.2/go.mod h1:g461MYGXEXBVdV5SaR/5tNzNbSfwTBBefwc+LlDCK0Y=
182+
github.com/openai/openai-go v0.1.0-beta.10 h1:CknhGXe8aXQMRuqg255PFnWzgRY9nEryMxoNIBBM9tU=
183+
github.com/openai/openai-go v0.1.0-beta.10/go.mod h1:g461MYGXEXBVdV5SaR/5tNzNbSfwTBBefwc+LlDCK0Y=
187184
github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M=
188185
github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc=
189186
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ=

internal/llm/agent/agent.go

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@ import (
44
"context"
55
"errors"
66
"fmt"
7+
"log/slog"
78
"strings"
89
"sync"
910
"time"
1011

11-
"log/slog"
12-
1312
"github.com/sst/opencode/internal/config"
1413
"github.com/sst/opencode/internal/llm/models"
1514
"github.com/sst/opencode/internal/llm/prompt"
@@ -522,15 +521,6 @@ func (a *agent) processEvent(ctx context.Context, sessionID string, assistantMsg
522521
assistantMsg.AddToolCall(*event.ToolCall)
523522
_, err := a.messages.Update(ctx, *assistantMsg)
524523
return err
525-
// TODO: see how to handle this
526-
// case provider.EventToolUseDelta:
527-
// tm := time.Unix(assistantMsg.UpdatedAt, 0)
528-
// assistantMsg.AppendToolCallInput(event.ToolCall.ID, event.ToolCall.Input)
529-
// if time.Since(tm) > 1000*time.Millisecond {
530-
// err := a.messages.Update(ctx, *assistantMsg)
531-
// assistantMsg.UpdatedAt = time.Now().Unix()
532-
// return err
533-
// }
534524
case provider.EventToolUseStop:
535525
assistantMsg.FinishToolCall(event.ToolCall.ID)
536526
_, err := a.messages.Update(ctx, *assistantMsg)

internal/llm/models/groq.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ var GroqModels = map[ModelID]Model{
4141
CostPer1MInCached: 0,
4242
CostPer1MOutCached: 0,
4343
CostPer1MOut: 0.34,
44+
DefaultMaxTokens: 8192,
4445
ContextWindow: 128_000, // 10M when?
4546
SupportsAttachments: true,
4647
},
@@ -54,6 +55,7 @@ var GroqModels = map[ModelID]Model{
5455
CostPer1MInCached: 0,
5556
CostPer1MOutCached: 0,
5657
CostPer1MOut: 0.20,
58+
DefaultMaxTokens: 8192,
5759
ContextWindow: 128_000,
5860
SupportsAttachments: true,
5961
},

internal/llm/models/openai.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package models
33
const (
44
ProviderOpenAI ModelProvider = "openai"
55

6+
CodexMini ModelID = "codex-mini"
67
GPT41 ModelID = "gpt-4.1"
78
GPT41Mini ModelID = "gpt-4.1-mini"
89
GPT41Nano ModelID = "gpt-4.1-nano"
@@ -18,6 +19,20 @@ const (
1819
)
1920

2021
var OpenAIModels = map[ModelID]Model{
22+
CodexMini: {
23+
ID: CodexMini,
24+
Name: "Codex Mini",
25+
Provider: ProviderOpenAI,
26+
APIModel: "codex-mini-latest",
27+
CostPer1MIn: 1.50,
28+
CostPer1MInCached: 0.375,
29+
CostPer1MOutCached: 0.0,
30+
CostPer1MOut: 6.00,
31+
ContextWindow: 200_000,
32+
DefaultMaxTokens: 100_000,
33+
CanReason: true,
34+
SupportsAttachments: true,
35+
},
2136
GPT41: {
2237
ID: GPT41,
2338
Name: "GPT 4.1",

0 commit comments

Comments
 (0)