diff --git a/codeagent-wrapper/agent_config.go b/codeagent-wrapper/agent_config.go index b5d8cfb..b60b79a 100644 --- a/codeagent-wrapper/agent_config.go +++ b/codeagent-wrapper/agent_config.go @@ -26,7 +26,6 @@ var defaultModelsConfig = ModelsConfig{ DefaultBackend: "opencode", DefaultModel: "opencode/grok-code", Agents: map[string]AgentModelConfig{ - "sisyphus": {Backend: "claude", Model: "claude-sonnet-4-20250514", PromptFile: "~/.claude/skills/omo/references/sisyphus.md", Description: "Primary orchestrator"}, "oracle": {Backend: "claude", Model: "claude-sonnet-4-20250514", PromptFile: "~/.claude/skills/omo/references/oracle.md", Description: "Technical advisor"}, "librarian": {Backend: "claude", Model: "claude-sonnet-4-5-20250514", PromptFile: "~/.claude/skills/omo/references/librarian.md", Description: "Researcher"}, "explore": {Backend: "opencode", Model: "opencode/grok-code", PromptFile: "~/.claude/skills/omo/references/explore.md", Description: "Code search"}, diff --git a/codeagent-wrapper/agent_config_test.go b/codeagent-wrapper/agent_config_test.go index 0060571..106566b 100644 --- a/codeagent-wrapper/agent_config_test.go +++ b/codeagent-wrapper/agent_config_test.go @@ -19,7 +19,6 @@ func TestResolveAgentConfig_Defaults(t *testing.T) { wantModel string wantPromptFile string }{ - {"sisyphus", "claude", "claude-sonnet-4-20250514", "~/.claude/skills/omo/references/sisyphus.md"}, {"oracle", "claude", "claude-sonnet-4-20250514", "~/.claude/skills/omo/references/oracle.md"}, {"librarian", "claude", "claude-sonnet-4-5-20250514", "~/.claude/skills/omo/references/librarian.md"}, {"explore", "opencode", "opencode/grok-code", "~/.claude/skills/omo/references/explore.md"}, @@ -69,8 +68,8 @@ func TestLoadModelsConfig_NoFile(t *testing.T) { if cfg.DefaultBackend != "opencode" { t.Errorf("DefaultBackend = %q, want %q", cfg.DefaultBackend, "opencode") } - if len(cfg.Agents) != 7 { - t.Errorf("len(Agents) = %d, want 7", len(cfg.Agents)) + if len(cfg.Agents) != 6 { + t.Errorf("len(Agents) = %d, want 6", len(cfg.Agents)) } } @@ -123,8 +122,8 @@ func TestLoadModelsConfig_WithFile(t *testing.T) { } // Check that defaults are merged - if _, ok := cfg.Agents["sisyphus"]; !ok { - t.Error("default agent sisyphus should be merged") + if _, ok := cfg.Agents["oracle"]; !ok { + t.Error("default agent oracle should be merged") } } diff --git a/codeagent-wrapper/agent_validation_test.go b/codeagent-wrapper/agent_validation_test.go index bb68941..5459fd8 100644 --- a/codeagent-wrapper/agent_validation_test.go +++ b/codeagent-wrapper/agent_validation_test.go @@ -14,7 +14,7 @@ func TestValidateAgentName(t *testing.T) { input string wantErr bool }{ - {name: "simple", input: "sisyphus", wantErr: false}, + {name: "simple", input: "develop", wantErr: false}, {name: "upper", input: "ABC", wantErr: false}, {name: "digits", input: "a1", wantErr: false}, {name: "dash underscore", input: "a-b_c", wantErr: false}, diff --git a/codeagent-wrapper/main.go b/codeagent-wrapper/main.go index 7926f2d..58c0638 100644 --- a/codeagent-wrapper/main.go +++ b/codeagent-wrapper/main.go @@ -1,7 +1,6 @@ package main import ( - "encoding/json" "fmt" "io" "os" @@ -32,8 +31,6 @@ const ( stdoutDrainTimeout = 100 * time.Millisecond ) -var useASCIIMode = os.Getenv("CODEAGENT_ASCII_MODE") == "true" - // Test hooks for dependency injection var ( stdinReader io.Reader = os.Stdin @@ -45,7 +42,6 @@ var ( buildCodexArgsFn = buildCodexArgs selectBackendFn = selectBackend commandContext = exec.CommandContext - jsonMarshal = json.Marshal cleanupLogsFn = cleanupOldLogs signalNotifyFn = signal.Notify signalStopFn = signal.Stop diff --git a/codeagent-wrapper/main_integration_test.go b/codeagent-wrapper/main_integration_test.go index 3db46cd..294cf6e 100644 --- a/codeagent-wrapper/main_integration_test.go +++ b/codeagent-wrapper/main_integration_test.go @@ -169,32 +169,6 @@ func parseIntegrationOutput(t *testing.T, out string) integrationOutput { return payload } -func extractTaskBlock(t *testing.T, output, taskID string) string { - t.Helper() - header := fmt.Sprintf("--- Task: %s ---", taskID) - lines := strings.Split(output, "\n") - var block []string - collecting := false - for _, raw := range lines { - trimmed := strings.TrimSpace(raw) - if !collecting { - if trimmed == header { - collecting = true - block = append(block, trimmed) - } - continue - } - if strings.HasPrefix(trimmed, "--- Task: ") && trimmed != header { - break - } - block = append(block, trimmed) - } - if len(block) == 0 { - t.Fatalf("task block %s not found in output:\n%s", taskID, output) - } - return strings.Join(block, "\n") -} - func findResultByID(t *testing.T, payload integrationOutput, id string) TaskResult { t.Helper() for _, res := range payload.Results { diff --git a/codeagent-wrapper/main_test.go b/codeagent-wrapper/main_test.go index f7c3595..0c66408 100644 --- a/codeagent-wrapper/main_test.go +++ b/codeagent-wrapper/main_test.go @@ -36,7 +36,6 @@ func resetTestHooks() { newCommandRunner = func(ctx context.Context, name string, args ...string) commandRunner { return &realCmd{cmd: commandContext(ctx, name, args...)} } - jsonMarshal = json.Marshal forceKillDelay.Store(5) closeLogger() executablePathFn = os.Executable @@ -1410,7 +1409,7 @@ func TestBackendParseArgs_PromptFileFlag(t *testing.T) { func TestBackendParseArgs_PromptFileOverridesAgent(t *testing.T) { defer resetTestHooks() - os.Args = []string{"codeagent-wrapper", "--prompt-file", "/tmp/custom.md", "--agent", "sisyphus", "task"} + os.Args = []string{"codeagent-wrapper", "--prompt-file", "/tmp/custom.md", "--agent", "develop", "task"} cfg, err := parseArgs() if err != nil { t.Fatalf("parseArgs() unexpected error: %v", err) @@ -1419,7 +1418,7 @@ func TestBackendParseArgs_PromptFileOverridesAgent(t *testing.T) { t.Fatalf("PromptFile = %q, want %q", cfg.PromptFile, "/tmp/custom.md") } - os.Args = []string{"codeagent-wrapper", "--agent", "sisyphus", "--prompt-file", "/tmp/custom.md", "task"} + os.Args = []string{"codeagent-wrapper", "--agent", "develop", "--prompt-file", "/tmp/custom.md", "task"} cfg, err = parseArgs() if err != nil { t.Fatalf("parseArgs() unexpected error: %v", err) diff --git a/codeagent-wrapper/parser.go b/codeagent-wrapper/parser.go index 7db6c4c..ceaa18d 100644 --- a/codeagent-wrapper/parser.go +++ b/codeagent-wrapper/parser.go @@ -59,14 +59,6 @@ const ( jsonLinePreviewBytes = 256 ) -type codexHeader struct { - Type string `json:"type"` - ThreadID string `json:"thread_id,omitempty"` - Item *struct { - Type string `json:"type"` - } `json:"item,omitempty"` -} - // UnifiedEvent combines all backend event formats into a single structure // to avoid multiple JSON unmarshal operations per event type UnifiedEvent struct { diff --git a/codeagent-wrapper/utils.go b/codeagent-wrapper/utils.go index 79dcec1..fdcc97c 100644 --- a/codeagent-wrapper/utils.go +++ b/codeagent-wrapper/utils.go @@ -273,30 +273,6 @@ func farewell(name string) string { return "goodbye " + name } -// extractMessageSummary extracts a brief summary from task output -// Returns first meaningful line or truncated content up to maxLen chars -func extractMessageSummary(message string, maxLen int) string { - if message == "" || maxLen <= 0 { - return "" - } - - // Try to find a meaningful summary line - lines := strings.Split(message, "\n") - for _, line := range lines { - line = strings.TrimSpace(line) - // Skip empty lines and common noise - if line == "" || strings.HasPrefix(line, "```") || strings.HasPrefix(line, "---") { - continue - } - // Found a meaningful line - return safeTruncate(line, maxLen) - } - - // Fallback: truncate entire message - clean := strings.TrimSpace(message) - return safeTruncate(clean, maxLen) -} - // extractCoverageFromLines extracts coverage from pre-split lines. func extractCoverageFromLines(lines []string) string { if len(lines) == 0 { @@ -592,15 +568,6 @@ func extractKeyOutputFromLines(lines []string, maxLen int) string { return safeTruncate(clean, maxLen) } -// extractKeyOutput extracts a brief summary of what the task accomplished -// Looks for summary lines, first meaningful sentence, or truncates message -func extractKeyOutput(message string, maxLen int) string { - if message == "" || maxLen <= 0 { - return "" - } - return extractKeyOutputFromLines(strings.Split(message, "\n"), maxLen) -} - // extractCoverageGap extracts what's missing from coverage reports // Looks for uncovered lines, branches, or functions func extractCoverageGap(message string) string {