experimental: codex / ai integration

This commit is contained in:
2026-07-28 20:48:00 +02:00
parent e89c524438
commit 949935a2aa
14 changed files with 2987 additions and 7 deletions

25
main.go
View File

@@ -149,6 +149,29 @@ func main() {
}
statePath := filepath.Join(filepath.Dir(*configFile), "state.json")
draftPath := filepath.Join(filepath.Dir(*configFile), "drafts.json")
var aiController *AIController
var aiStore *AIStore
if config.AI.Enabled {
aiDir := config.AI.StoreDirectory
if aiDir == "" {
aiDir = filepath.Join(filepath.Dir(*configFile), "ai")
}
aiStore = NewAIStore(aiDir)
diffService, ok := service.(AIDiffService)
if !ok {
exitf("configuration: GitHub service cannot provide authenticated PR diffs")
}
workingDirectory, cwdErr := os.Getwd()
if cwdErr != nil {
exitf("configuration: determine working directory: %v", cwdErr)
}
aiController = &AIController{
config: config.AI,
provider: NewCodexCLIProvider(config.AI, workingDirectory),
diffs: diffService,
store: aiStore,
}
}
app := NewAppWithSettings(
service, owner, name, config.ShowAll, config.Limit, config.RefreshInterval.Duration,
AppSettings{
@@ -164,6 +187,8 @@ func main() {
ThreadWithinStatus: config.Threads.WithinStatus,
EditorMode: config.Editing.Mode,
KeyBindings: config.KeyBindings,
AI: aiController,
AIStore: aiStore,
},
)
cursorOutput := newTerminalCursorOutput(os.Stdout)