Complete BZZZ functionality port to CHORUS

🎭 CHORUS now contains full BZZZ functionality adapted for containers

Core systems ported:
- P2P networking (libp2p with DHT and PubSub)
- Task coordination (COOEE protocol)
- HMMM collaborative reasoning
- SHHH encryption and security
- SLURP admin election system
- UCXL content addressing
- UCXI server integration
- Hypercore logging system
- Health monitoring and graceful shutdown
- License validation with KACHING

Container adaptations:
- Environment variable configuration (no YAML files)
- Container-optimized logging to stdout/stderr
- Auto-generated agent IDs for container deployments
- Docker-first architecture

All proven BZZZ P2P protocols, AI integration, and collaboration
features are now available in containerized form.

Next: Build and test container deployment.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
anthonyrawlins
2025-09-02 20:02:37 +10:00
parent 7c6cbd562a
commit 543ab216f9
224 changed files with 86331 additions and 186 deletions

508
pkg/ucxl/address_test.go Normal file
View File

@@ -0,0 +1,508 @@
package ucxl
import (
"reflect"
"testing"
)
func TestParseValidAddresses(t *testing.T) {
tests := []struct {
name string
address string
expected *Address
}{
{
name: "simple latest address",
address: "ucxl://agent1:developer@project1:task1/*^",
expected: &Address{
Agent: "agent1",
Role: "developer",
Project: "project1",
Task: "task1",
TemporalSegment: TemporalSegment{
Type: TemporalLatest,
},
Path: "",
Raw: "ucxl://agent1:developer@project1:task1/*^",
},
},
{
name: "address with path",
address: "ucxl://agent2:tester@project2:task2/*~/path/to/file.txt",
expected: &Address{
Agent: "agent2",
Role: "tester",
Project: "project2",
Task: "task2",
TemporalSegment: TemporalSegment{
Type: TemporalAny,
},
Path: "path/to/file.txt",
Raw: "ucxl://agent2:tester@project2:task2/*~/path/to/file.txt",
},
},
{
name: "specific version address",
address: "ucxl://any:any@project3:task3/*~5/config.json",
expected: &Address{
Agent: "any",
Role: "any",
Project: "project3",
Task: "task3",
TemporalSegment: TemporalSegment{
Type: TemporalSpecific,
Count: 5,
},
Path: "config.json",
Raw: "ucxl://any:any@project3:task3/*~5/config.json",
},
},
{
name: "backward navigation address",
address: "ucxl://bot:admin@system:backup/~~3",
expected: &Address{
Agent: "bot",
Role: "admin",
Project: "system",
Task: "backup",
TemporalSegment: TemporalSegment{
Type: TemporalRelative,
Direction: DirectionBackward,
Count: 3,
},
Path: "",
Raw: "ucxl://bot:admin@system:backup/~~3",
},
},
{
name: "forward navigation address",
address: "ucxl://ai:researcher@analysis:data/^^2/results",
expected: &Address{
Agent: "ai",
Role: "researcher",
Project: "analysis",
Task: "data",
TemporalSegment: TemporalSegment{
Type: TemporalRelative,
Direction: DirectionForward,
Count: 2,
},
Path: "results",
Raw: "ucxl://ai:researcher@analysis:data/^^2/results",
},
},
{
name: "case normalization",
address: "UCXL://AGENT1:DEVELOPER@PROJECT1:TASK1/*^",
expected: &Address{
Agent: "agent1",
Role: "developer",
Project: "project1",
Task: "task1",
TemporalSegment: TemporalSegment{
Type: TemporalLatest,
},
Path: "",
Raw: "UCXL://AGENT1:DEVELOPER@PROJECT1:TASK1/*^",
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
result, err := Parse(tt.address)
if err != nil {
t.Fatalf("Parse() error = %v, want nil", err)
}
if !reflect.DeepEqual(result, tt.expected) {
t.Errorf("Parse() = %+v, want %+v", result, tt.expected)
}
// Test that the address is valid
if !result.IsValid() {
t.Errorf("Parsed address should be valid but IsValid() returned false")
}
})
}
}
func TestParseInvalidAddresses(t *testing.T) {
tests := []struct {
name string
address string
wantErr string
}{
{
name: "empty address",
address: "",
wantErr: "address cannot be empty",
},
{
name: "wrong scheme",
address: "http://agent:role@project:task/*^",
wantErr: "scheme must be 'ucxl'",
},
{
name: "missing scheme",
address: "agent:role@project:task/*^",
wantErr: "address must start with 'ucxl://'",
},
{
name: "invalid format",
address: "ucxl://invalid-format",
wantErr: "address format must be",
},
{
name: "empty agent",
address: "ucxl://:role@project:task/*^",
wantErr: "agent cannot be empty",
},
{
name: "empty role",
address: "ucxl://agent:@project:task/*^",
wantErr: "role cannot be empty",
},
{
name: "empty project",
address: "ucxl://agent:role@:task/*^",
wantErr: "project cannot be empty",
},
{
name: "empty task",
address: "ucxl://agent:role@project:/*^",
wantErr: "task cannot be empty",
},
{
name: "invalid temporal segment",
address: "ucxl://agent:role@project:task/invalid",
wantErr: "invalid temporal segment format",
},
{
name: "negative version",
address: "ucxl://agent:role@project:task/*~-1",
wantErr: "version number cannot be negative",
},
{
name: "negative backward count",
address: "ucxl://agent:role@project:task/~~-5",
wantErr: "backward count cannot be negative",
},
{
name: "invalid characters in component",
address: "ucxl://agent!:role@project:task/*^",
wantErr: "agent can only contain alphanumeric",
},
{
name: "invalid path characters",
address: "ucxl://agent:role@project:task/*^/path with spaces",
wantErr: "path can only contain alphanumeric",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
result, err := Parse(tt.address)
if err == nil {
t.Fatalf("Parse() expected error containing '%s', got nil", tt.wantErr)
}
if result != nil {
t.Errorf("Parse() should return nil on error, got %+v", result)
}
if err.Error() == "" {
t.Errorf("Error message should not be empty")
}
// Check if error contains expected substring (case insensitive)
// This allows for more flexible error message matching
// In production tests, you might want exact matching
})
}
}
func TestAddressString(t *testing.T) {
tests := []struct {
name string
address *Address
expected string
}{
{
name: "simple address without path",
address: &Address{
Agent: "agent1",
Role: "developer",
Project: "project1",
Task: "task1",
TemporalSegment: TemporalSegment{Type: TemporalLatest},
},
expected: "ucxl://agent1:developer@project1:task1/*^",
},
{
name: "address with path",
address: &Address{
Agent: "agent2",
Role: "tester",
Project: "project2",
Task: "task2",
TemporalSegment: TemporalSegment{Type: TemporalAny},
Path: "path/to/file.txt",
},
expected: "ucxl://agent2:tester@project2:task2/*~/path/to/file.txt",
},
{
name: "specific version",
address: &Address{
Agent: "any",
Role: "any",
Project: "project3",
Task: "task3",
TemporalSegment: TemporalSegment{
Type: TemporalSpecific,
Count: 10,
},
},
expected: "ucxl://any:any@project3:task3/*~10",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
result := tt.address.String()
if result != tt.expected {
t.Errorf("String() = %s, want %s", result, tt.expected)
}
})
}
}
func TestAddressMatches(t *testing.T) {
tests := []struct {
name string
address *Address
pattern *Address
expected bool
}{
{
name: "exact match",
address: &Address{
Agent: "agent1", Role: "developer", Project: "project1", Task: "task1",
},
pattern: &Address{
Agent: "agent1", Role: "developer", Project: "project1", Task: "task1",
},
expected: true,
},
{
name: "wildcard agent match",
address: &Address{
Agent: "agent1", Role: "developer", Project: "project1", Task: "task1",
},
pattern: &Address{
Agent: "any", Role: "developer", Project: "project1", Task: "task1",
},
expected: true,
},
{
name: "wildcard all match",
address: &Address{
Agent: "agent1", Role: "developer", Project: "project1", Task: "task1",
},
pattern: &Address{
Agent: "any", Role: "any", Project: "any", Task: "any",
},
expected: true,
},
{
name: "no match different agent",
address: &Address{
Agent: "agent1", Role: "developer", Project: "project1", Task: "task1",
},
pattern: &Address{
Agent: "agent2", Role: "developer", Project: "project1", Task: "task1",
},
expected: false,
},
{
name: "path prefix match",
address: &Address{
Agent: "agent1", Role: "developer", Project: "project1", Task: "task1",
Path: "config/app.yaml",
},
pattern: &Address{
Agent: "agent1", Role: "developer", Project: "project1", Task: "task1",
Path: "config",
},
expected: true,
},
{
name: "path no match",
address: &Address{
Agent: "agent1", Role: "developer", Project: "project1", Task: "task1",
Path: "src/main.go",
},
pattern: &Address{
Agent: "agent1", Role: "developer", Project: "project1", Task: "task1",
Path: "config",
},
expected: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
result := tt.address.Matches(tt.pattern)
if result != tt.expected {
t.Errorf("Matches() = %v, want %v", result, tt.expected)
}
})
}
}
func TestAddressIsWildcard(t *testing.T) {
tests := []struct {
name string
address *Address
expected bool
}{
{
name: "no wildcards",
address: &Address{
Agent: "agent1", Role: "developer", Project: "project1", Task: "task1",
},
expected: false,
},
{
name: "agent wildcard",
address: &Address{
Agent: "any", Role: "developer", Project: "project1", Task: "task1",
},
expected: true,
},
{
name: "all wildcards",
address: &Address{
Agent: "any", Role: "any", Project: "any", Task: "any",
},
expected: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
result := tt.address.IsWildcard()
if result != tt.expected {
t.Errorf("IsWildcard() = %v, want %v", result, tt.expected)
}
})
}
}
func TestAddressClone(t *testing.T) {
original := &Address{
Agent: "agent1",
Role: "developer",
Project: "project1",
Task: "task1",
TemporalSegment: TemporalSegment{
Type: TemporalSpecific,
Count: 5,
},
Path: "src/main.go",
Raw: "ucxl://agent1:developer@project1:task1/*~5/src/main.go",
}
cloned := original.Clone()
// Test that clone is equal to original
if !reflect.DeepEqual(original, cloned) {
t.Errorf("Clone() should create identical copy")
}
// Test that modifying clone doesn't affect original
cloned.Agent = "different"
if original.Agent == cloned.Agent {
t.Errorf("Clone() should create independent copy")
}
}
func TestTemporalSegmentString(t *testing.T) {
tests := []struct {
name string
segment TemporalSegment
expected string
}{
{
name: "latest",
segment: TemporalSegment{Type: TemporalLatest},
expected: "*^",
},
{
name: "any",
segment: TemporalSegment{Type: TemporalAny},
expected: "*~",
},
{
name: "specific version",
segment: TemporalSegment{Type: TemporalSpecific, Count: 7},
expected: "*~7",
},
{
name: "backward navigation",
segment: TemporalSegment{Type: TemporalRelative, Direction: DirectionBackward, Count: 3},
expected: "~~3",
},
{
name: "forward navigation",
segment: TemporalSegment{Type: TemporalRelative, Direction: DirectionForward, Count: 2},
expected: "^^2",
},
{
name: "unknown type defaults to latest",
segment: TemporalSegment{Type: "unknown"},
expected: "*^",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
result := tt.segment.String()
if result != tt.expected {
t.Errorf("String() = %s, want %s", result, tt.expected)
}
})
}
}
// Benchmark tests
func BenchmarkParseAddress(b *testing.B) {
address := "ucxl://agent1:developer@project1:task1/*~/path/to/file.txt"
b.ResetTimer()
for i := 0; i < b.N; i++ {
_, err := Parse(address)
if err != nil {
b.Fatal(err)
}
}
}
func BenchmarkAddressString(b *testing.B) {
addr := &Address{
Agent: "agent1",
Role: "developer",
Project: "project1",
Task: "task1",
TemporalSegment: TemporalSegment{
Type: TemporalSpecific,
Count: 5,
},
Path: "src/main.go",
}
b.ResetTimer()
for i := 0; i < b.N; i++ {
_ = addr.String()
}
}