Files
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

92 lines
3.2 KiB
Go

package agentruntime
import (
"testing"
"github.com/tutti-os/tutti/packages/agent/store-sqlite/canonical"
)
func capabilitySnapshotValues(snapshot *canonical.CapabilitySnapshot) []string {
if snapshot == nil {
return nil
}
return snapshot.Values
}
func TestCodexAppServerCapabilitiesUseSharedVocabulary(t *testing.T) {
t.Parallel()
capabilities := codexAppServerCapabilities(false)
for _, want := range []string{
CapabilityImageInput,
CapabilitySkills,
CapabilityCompact,
CapabilityTokenUsage,
CapabilityRateLimits,
CapabilityInterrupt,
CapabilityActiveTurnGuidance,
} {
if !containsString(capabilities, want) {
t.Fatalf("codex capabilities = %v, missing %q", capabilities, want)
}
}
if containsString(capabilities, CapabilityPlanMode) {
t.Fatalf("codex must not advertise planMode without negotiated collaboration modes")
}
if !containsString(codexAppServerCapabilities(true), CapabilityPlanMode) {
t.Fatalf("codex must advertise planMode when collaboration modes are negotiated")
}
}
func TestStandardACPCapabilitiesByProvider(t *testing.T) {
t.Parallel()
opencode := standardACPCapabilities(ProviderOpenCode, true, acpLiveStateSnapshot{})
for _, want := range []string{
CapabilityImageInput, CapabilityPlanMode, CapabilityInterrupt,
} {
if !containsString(opencode, want) {
t.Fatalf("opencode capabilities = %v, missing %q", opencode, want)
}
}
if containsString(opencode, CapabilityCompact) || containsString(opencode, "review") {
t.Fatalf("opencode capabilities = %v, must not advertise command capabilities without provider commands", opencode)
}
if containsString(opencode, CapabilityActiveTurnGuidance) {
t.Fatalf("opencode capabilities = %v, must use cancel-then-send instead of native guidance", opencode)
}
opencodeWithReview := standardACPCapabilities(ProviderOpenCode, false, acpLiveStateSnapshot{
availableCommands: []AgentSessionCommand{{Name: "compact"}, {Name: "review"}},
})
if !containsString(opencodeWithReview, CapabilityCompact) || !containsString(opencodeWithReview, "review") {
t.Fatalf("opencode capabilities = %v, want compact+review from provider commands", opencodeWithReview)
}
cursor := standardACPCapabilities(ProviderCursor, true, acpLiveStateSnapshot{})
if !containsString(cursor, CapabilityImageInput) || !containsString(cursor, CapabilityInterrupt) {
t.Fatalf("cursor capabilities = %v, want imageInput+interrupt", cursor)
}
if !containsString(cursor, CapabilityPlanMode) {
t.Fatalf("cursor capabilities missing planMode: %v", cursor)
}
if containsString(cursor, CapabilitySkills) {
t.Fatalf("cursor capabilities too permissive: %v", cursor)
}
if containsString(cursor, CapabilityActiveTurnGuidance) {
t.Fatalf("cursor capabilities = %v, must use cancel-then-send instead of native guidance", cursor)
}
}
func TestOpenStandardACPCapabilitiesAcceptSignedPlanWorkflowEvidence(t *testing.T) {
t.Parallel()
capabilities := standardACPCapabilitiesWithDeclared(
"acp:example",
false,
acpLiveStateSnapshot{},
[]string{CapabilityPlanMode},
true,
)
if !containsString(capabilities, CapabilityPlanMode) {
t.Fatalf("capabilities = %#v, want signed Plan workflow capability", capabilities)
}
}