Files
Agent-System/internal/coordinator/engine_run_test.go
T
WeiCHENandCursor 9cb129d3e8 feat(intent): Phase 4 run control, subtypes, and limited IntentPlan
Add RUN_STATUS_QUERY/RUN_RESUME/RUN_RESTART with matcher and coordinator
handlers; write QUERY_PROGRESS/SUPPLEMENT_INFO subtypes to V2 frame; support
safe query+query multi-intent plans via IntentPlan dual-write.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 02:50:21 +00:00

60 lines
1.6 KiB
Go

package coordinator_test
import (
"context"
"strings"
"testing"
"chat-agent-system/internal/coordinator"
"chat-agent-system/internal/intent"
)
func TestEngine_RunStatusQuery_WithWorkDir(t *testing.T) {
rec := intent.NewRecognizer()
engine := coordinator.NewCoordinatorEngine(nil)
recRes, err := rec.Recognize(context.Background(), "这次任务运行状态怎么样了?", nil)
if err != nil {
t.Fatalf("recognize: %v", err)
}
userCtx := &coordinator.UserProjectContext{
User: coordinator.UserInfo{ID: "1", Name: "用户"},
Project: coordinator.ProjectInfo{Name: "项目"},
WorkDir: "/data/dev/ws-123",
BlackboardFacts: map[string]string{},
}
res, err := engine.ProcessIntent(context.Background(), recRes, userCtx)
if err != nil {
t.Fatalf("ProcessIntent: %v", err)
}
if !strings.Contains(res.NaturalReply, "ws-123") {
t.Errorf("expected workdir in reply: %s", res.NaturalReply)
}
}
func TestEngine_RunResume_MissingWorkDirClarify(t *testing.T) {
rec := intent.NewRecognizer()
engine := coordinator.NewCoordinatorEngine(nil)
recRes, err := rec.Recognize(context.Background(), "继续上次失败的任务", nil)
if err != nil {
t.Fatalf("recognize: %v", err)
}
userCtx := &coordinator.UserProjectContext{
User: coordinator.UserInfo{ID: "1", Name: "用户"},
Project: coordinator.ProjectInfo{Name: "项目"},
BlackboardFacts: map[string]string{},
}
res, err := engine.ProcessIntent(context.Background(), recRes, userCtx)
if err != nil {
t.Fatalf("ProcessIntent: %v", err)
}
if res.Status != coordinator.StatusClarificationRequired {
t.Fatalf("expected CLARIFICATION_REQUIRED, got %s", res.Status)
}
}