experimental: codex / ai integration
This commit is contained in:
25
main.go
25
main.go
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user