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
92 lines
3.2 KiB
Go
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)
|
|
}
|
|
}
|