Fix hardcoded paths after workspace restructure
Update all hardcoded paths from ~/AI/projects/* to ~/chorus/project-queues/active/* and ~/AI/secrets/* to ~/chorus/business/secrets/* after workspace reorganization. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -16,7 +16,7 @@ Bzzz has been successfully deployed as a systemd service across the deepblackclo
|
|||||||
### 1. Build Binary
|
### 1. Build Binary
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /home/tony/AI/projects/Bzzz
|
cd /home/tony/chorus/project-queues/active/BZZZ
|
||||||
go build -o bzzz
|
go build -o bzzz
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -141,7 +141,7 @@ sudo systemctl restart bzzz
|
|||||||
|
|
||||||
- **Type**: `simple` - Standard foreground service
|
- **Type**: `simple` - Standard foreground service
|
||||||
- **User/Group**: `tony:tony` - Runs as non-root user
|
- **User/Group**: `tony:tony` - Runs as non-root user
|
||||||
- **Working Directory**: `/home/tony/AI/projects/Bzzz`
|
- **Working Directory**: `/home/tony/chorus/project-queues/active/BZZZ`
|
||||||
- **Restart Policy**: `always` with 10-second delay
|
- **Restart Policy**: `always` with 10-second delay
|
||||||
- **Timeout**: 30-second graceful stop timeout
|
- **Timeout**: 30-second graceful stop timeout
|
||||||
|
|
||||||
|
|||||||
12
README.md
12
README.md
@@ -1,12 +1,12 @@
|
|||||||
# Bzzz + Antennae: Distributed P2P Task Coordination
|
# Bzzz + HMMM: Distributed P2P Task Coordination
|
||||||
|
|
||||||
Bzzz is a P2P task coordination system with the Antennae meta-discussion layer for collaborative AI reasoning. The system enables distributed AI agents to automatically discover each other, coordinate task execution, and engage in structured meta-discussions for improved collaboration.
|
Bzzz is a P2P task coordination system with the HMMM meta-discussion layer for collaborative AI reasoning. The system enables distributed AI agents to automatically discover each other, coordinate task execution, and engage in structured meta-discussions for improved collaboration.
|
||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
- **P2P Networking**: libp2p-based mesh networking with mDNS discovery
|
- **P2P Networking**: libp2p-based mesh networking with mDNS discovery
|
||||||
- **Task Coordination**: GitHub Issues as atomic task units
|
- **Task Coordination**: GitHub Issues as atomic task units
|
||||||
- **Meta-Discussion**: Antennae layer for collaborative reasoning between agents
|
- **Meta-Discussion**: HMMM layer for collaborative reasoning between agents
|
||||||
- **Distributed Logging**: Hypercore-based tamper-proof audit trails
|
- **Distributed Logging**: Hypercore-based tamper-proof audit trails
|
||||||
- **Service Deployment**: SystemD service for production deployment
|
- **Service Deployment**: SystemD service for production deployment
|
||||||
|
|
||||||
@@ -88,7 +88,7 @@ Full mesh P2P network established:
|
|||||||
|
|
||||||
The systemd service (`bzzz.service`) includes:
|
The systemd service (`bzzz.service`) includes:
|
||||||
|
|
||||||
- **Working Directory**: `/home/tony/AI/projects/Bzzz`
|
- **Working Directory**: `/home/tony/chorus/project-queues/active/BZZZ`
|
||||||
- **User/Group**: `tony:tony`
|
- **User/Group**: `tony:tony`
|
||||||
- **Restart Policy**: `always` with 10-second delay
|
- **Restart Policy**: `always` with 10-second delay
|
||||||
- **Security**: NoNewPrivileges, PrivateTmp, ProtectSystem
|
- **Security**: NoNewPrivileges, PrivateTmp, ProtectSystem
|
||||||
@@ -108,10 +108,10 @@ This project is being developed collaboratively across the deepblackcloud cluste
|
|||||||
- **mDNS Discovery**: Automatic peer discovery with service tag `bzzz-peer-discovery`
|
- **mDNS Discovery**: Automatic peer discovery with service tag `bzzz-peer-discovery`
|
||||||
- **PubSub Topics**:
|
- **PubSub Topics**:
|
||||||
- `bzzz/coordination/v1` - Task coordination messages
|
- `bzzz/coordination/v1` - Task coordination messages
|
||||||
- `antennae/meta-discussion/v1` - Collaborative reasoning
|
- `hmmm/meta-discussion/v1` - Collaborative reasoning
|
||||||
- **Security**: Message signing and signature verification enabled
|
- **Security**: Message signing and signature verification enabled
|
||||||
|
|
||||||
## Related Projects
|
## Related Projects
|
||||||
|
|
||||||
- **[Hive](https://github.com/anthonyrawlins/hive)** - Multi-Agent Task Coordination System
|
- **[Hive](https://github.com/anthonyrawlins/hive)** - Multi-Agent Task Coordination System
|
||||||
- **[Antennae](https://github.com/anthonyrawlins/antennae)** - AI Collaborative Reasoning Protocol
|
- **[HMMM](https://github.com/anthonyrawlins/hmmm)** - AI Collaborative Reasoning Protocol
|
||||||
@@ -91,14 +91,14 @@ This report documents the implementation and testing progress of the Bzzz P2P me
|
|||||||
## File Locations and Key Components
|
## File Locations and Key Components
|
||||||
|
|
||||||
### Core Implementation Files
|
### Core Implementation Files
|
||||||
- `/home/tony/AI/projects/Bzzz/github/integration.go` - Enhanced task filtering and P2P coordination
|
- `/home/tony/chorus/project-queues/active/BZZZ/github/integration.go` - Enhanced task filtering and P2P coordination
|
||||||
- `/home/tony/AI/projects/hive/backend/app/services/project_service.py` - Database-driven project service
|
- `/home/tony/chorus/project-queues/inactive/hive/backend/app/services/project_service.py` - Database-driven project service
|
||||||
- `/home/tony/AI/projects/hive/docker-compose.swarm.yml` - Docker secrets configuration
|
- `/home/tony/chorus/project-queues/inactive/hive/docker-compose.swarm.yml` - Docker secrets configuration
|
||||||
|
|
||||||
### Testing and Monitoring
|
### Testing and Monitoring
|
||||||
- `/home/tony/AI/projects/Bzzz/mock-hive-server.py` - Mock API with work capture
|
- `/home/tony/chorus/project-queues/active/BZZZ/mock-hive-server.py` - Mock API with work capture
|
||||||
- `/home/tony/AI/projects/Bzzz/cmd/bzzz-monitor.py` - Real-time coordination dashboard
|
- `/home/tony/chorus/project-queues/active/BZZZ/cmd/bzzz-monitor.py` - Real-time coordination dashboard
|
||||||
- `/home/tony/AI/projects/Bzzz/scripts/trigger_mock_coordination.sh` - Coordination test script
|
- `/home/tony/chorus/project-queues/active/BZZZ/scripts/trigger_mock_coordination.sh` - Coordination test script
|
||||||
|
|
||||||
### Configuration
|
### Configuration
|
||||||
- `/etc/systemd/system/bzzz.service.d/mock-api.conf` - Systemd override for mock API testing
|
- `/etc/systemd/system/bzzz.service.d/mock-api.conf` - Systemd override for mock API testing
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Bzzz + Antennae Development Task Backlog
|
# Bzzz + HMMM Development Task Backlog
|
||||||
|
|
||||||
Based on the UNIFIED_DEVELOPMENT_PLAN.md, here are the development tasks ready for distribution to the Hive cluster:
|
Based on the UNIFIED_DEVELOPMENT_PLAN.md, here are the development tasks ready for distribution to the Hive cluster:
|
||||||
|
|
||||||
@@ -13,9 +13,9 @@ Based on the UNIFIED_DEVELOPMENT_PLAN.md, here are the development tasks ready f
|
|||||||
- Use go-libp2p library for mesh networking
|
- Use go-libp2p library for mesh networking
|
||||||
- Implement mDNS peer discovery for local network (192.168.1.0/24)
|
- Implement mDNS peer discovery for local network (192.168.1.0/24)
|
||||||
- Create secure encrypted P2P connections with peer identity
|
- Create secure encrypted P2P connections with peer identity
|
||||||
- Design pub/sub topics for both task coordination (Bzzz) and meta-discussion (Antennae)
|
- Design pub/sub topics for both task coordination (Bzzz) and meta-discussion (HMMM)
|
||||||
- Prepare for Docker + host networking deployment
|
- Prepare for Docker + host networking deployment
|
||||||
- Create modular Go code structure in `/home/tony/AI/projects/Bzzz/`
|
- Create modular Go code structure in `/home/tony/chorus/project-queues/active/BZZZ/`
|
||||||
|
|
||||||
**Deliverables**:
|
**Deliverables**:
|
||||||
- `main.go` - Entry point and peer initialization
|
- `main.go` - Entry point and peer initialization
|
||||||
@@ -35,7 +35,7 @@ Based on the UNIFIED_DEVELOPMENT_PLAN.md, here are the development tasks ready f
|
|||||||
- Design append-only log streams using Hypercore Protocol
|
- Design append-only log streams using Hypercore Protocol
|
||||||
- Implement public key broadcasting for log identity
|
- Implement public key broadcasting for log identity
|
||||||
- Create log replication capabilities between peers
|
- Create log replication capabilities between peers
|
||||||
- Store both execution logs (Bzzz) and discussion transcripts (Antennae)
|
- Store both execution logs (Bzzz) and discussion transcripts (HMMM)
|
||||||
- Ensure tamper-proof audit trails for debugging
|
- Ensure tamper-proof audit trails for debugging
|
||||||
- Integrate with P2P capability detection module
|
- Integrate with P2P capability detection module
|
||||||
|
|
||||||
@@ -72,7 +72,7 @@ Based on the UNIFIED_DEVELOPMENT_PLAN.md, here are the development tasks ready f
|
|||||||
**Assigned to**: IRONWOOD (Reasoning Analysis)
|
**Assigned to**: IRONWOOD (Reasoning Analysis)
|
||||||
**Priority**: 3 (Medium)
|
**Priority**: 3 (Medium)
|
||||||
**Dependencies**: Task 1, Task 2
|
**Dependencies**: Task 1, Task 2
|
||||||
**Objective**: Implement Antennae meta-discussion layer for collaborative reasoning
|
**Objective**: Implement HMMM meta-discussion layer for collaborative reasoning
|
||||||
|
|
||||||
**Requirements**:
|
**Requirements**:
|
||||||
- Create structured messaging for agent collaboration
|
- Create structured messaging for agent collaboration
|
||||||
@@ -85,7 +85,7 @@ Based on the UNIFIED_DEVELOPMENT_PLAN.md, here are the development tasks ready f
|
|||||||
**Assigned to**: WALNUT (Advanced Coding)
|
**Assigned to**: WALNUT (Advanced Coding)
|
||||||
**Priority**: 2 (Normal)
|
**Priority**: 2 (Normal)
|
||||||
**Dependencies**: All previous tasks
|
**Dependencies**: All previous tasks
|
||||||
**Objective**: Integrate all components and create working Bzzz+Antennae system
|
**Objective**: Integrate all components and create working Bzzz+HMMM system
|
||||||
|
|
||||||
**Requirements**:
|
**Requirements**:
|
||||||
- Combine P2P networking, logging, and GitHub integration
|
- Combine P2P networking, logging, and GitHub integration
|
||||||
@@ -109,4 +109,4 @@ Based on the UNIFIED_DEVELOPMENT_PLAN.md, here are the development tasks ready f
|
|||||||
1. Fix task creation API endpoint issues
|
1. Fix task creation API endpoint issues
|
||||||
2. Submit tasks to respective agents based on specializations
|
2. Submit tasks to respective agents based on specializations
|
||||||
3. Monitor execution and coordinate between agents
|
3. Monitor execution and coordinate between agents
|
||||||
4. Test the collaborative reasoning (Antennae) layer once P2P foundation is complete
|
4. Test the collaborative reasoning (HMMM) layer once P2P foundation is complete
|
||||||
@@ -6,7 +6,7 @@ Tests the newly created API endpoints for dynamic repository discovery.
|
|||||||
|
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
sys.path.append('/home/tony/AI/projects/hive/backend')
|
sys.path.append('/home/tony/chorus/project-queues/inactive/hive/backend')
|
||||||
|
|
||||||
from app.services.project_service import ProjectService
|
from app.services.project_service import ProjectService
|
||||||
import json
|
import json
|
||||||
|
|||||||
@@ -10,17 +10,17 @@ def get_github_token():
|
|||||||
"""Get GitHub token from secrets file."""
|
"""Get GitHub token from secrets file."""
|
||||||
try:
|
try:
|
||||||
# Try gh-token first
|
# Try gh-token first
|
||||||
gh_token_path = Path("/home/tony/AI/secrets/passwords_and_tokens/gh-token")
|
gh_token_path = Path("/home/tony/chorus/business/secrets/gh-token")
|
||||||
if gh_token_path.exists():
|
if gh_token_path.exists():
|
||||||
return gh_token_path.read_text().strip()
|
return gh_token_path.read_text().strip()
|
||||||
|
|
||||||
# Try GitHub token
|
# Try GitHub token
|
||||||
github_token_path = Path("/home/tony/AI/secrets/passwords_and_tokens/github-token")
|
github_token_path = Path("/home/tony/chorus/business/secrets/github-token")
|
||||||
if github_token_path.exists():
|
if github_token_path.exists():
|
||||||
return github_token_path.read_text().strip()
|
return github_token_path.read_text().strip()
|
||||||
|
|
||||||
# Fallback to GitLab token if GitHub token doesn't exist
|
# Fallback to GitLab token if GitHub token doesn't exist
|
||||||
gitlab_token_path = Path("/home/tony/AI/secrets/passwords_and_tokens/claude-gitlab-token")
|
gitlab_token_path = Path("/home/tony/chorus/business/secrets/claude-gitlab-token")
|
||||||
if gitlab_token_path.exists():
|
if gitlab_token_path.exists():
|
||||||
return gitlab_token_path.read_text().strip()
|
return gitlab_token_path.read_text().strip()
|
||||||
except Exception:
|
except Exception:
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ Wants=network.target
|
|||||||
Type=simple
|
Type=simple
|
||||||
User=tony
|
User=tony
|
||||||
Group=tony
|
Group=tony
|
||||||
WorkingDirectory=/home/tony/AI/projects/Bzzz
|
WorkingDirectory=/home/tony/chorus/project-queues/active/BZZZ
|
||||||
ExecStart=/home/tony/AI/projects/Bzzz/bzzz
|
ExecStart=/home/tony/chorus/project-queues/active/BZZZ/bzzz
|
||||||
Restart=always
|
Restart=always
|
||||||
RestartSec=10
|
RestartSec=10
|
||||||
KillMode=mixed
|
KillMode=mixed
|
||||||
@@ -20,7 +20,7 @@ TimeoutStopSec=30
|
|||||||
Environment=HOME=/home/tony
|
Environment=HOME=/home/tony
|
||||||
Environment=USER=tony
|
Environment=USER=tony
|
||||||
Environment=BZZZ_HIVE_API_URL=https://hive.home.deepblack.cloud
|
Environment=BZZZ_HIVE_API_URL=https://hive.home.deepblack.cloud
|
||||||
Environment=BZZZ_GITHUB_TOKEN_FILE=/home/tony/AI/secrets/passwords_and_tokens/gh-token
|
Environment=BZZZ_GITHUB_TOKEN_FILE=/home/tony/chorus/business/secrets/gh-token
|
||||||
|
|
||||||
# Logging
|
# Logging
|
||||||
StandardOutput=journal
|
StandardOutput=journal
|
||||||
@@ -32,7 +32,7 @@ NoNewPrivileges=true
|
|||||||
PrivateTmp=true
|
PrivateTmp=true
|
||||||
ProtectSystem=strict
|
ProtectSystem=strict
|
||||||
ProtectHome=false
|
ProtectHome=false
|
||||||
ReadWritePaths=/home/tony/AI/projects/Bzzz
|
ReadWritePaths=/home/tony/chorus/project-queues/active/BZZZ
|
||||||
|
|
||||||
# Resource limits
|
# Resource limits
|
||||||
LimitNOFILE=65536
|
LimitNOFILE=65536
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ if [ "$EUID" -ne 0 ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Define paths
|
# Define paths
|
||||||
BZZZ_DIR="/home/tony/AI/projects/Bzzz"
|
BZZZ_DIR="/home/tony/chorus/project-queues/active/BZZZ"
|
||||||
SERVICE_FILE="$BZZZ_DIR/bzzz.service"
|
SERVICE_FILE="$BZZZ_DIR/bzzz.service"
|
||||||
SYSTEMD_DIR="/etc/systemd/system"
|
SYSTEMD_DIR="/etc/systemd/system"
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ type Config struct {
|
|||||||
P2P P2PConfig `yaml:"p2p"`
|
P2P P2PConfig `yaml:"p2p"`
|
||||||
Logging LoggingConfig `yaml:"logging"`
|
Logging LoggingConfig `yaml:"logging"`
|
||||||
HCFS HCFSConfig `yaml:"hcfs"`
|
HCFS HCFSConfig `yaml:"hcfs"`
|
||||||
|
Slurp SlurpConfig `yaml:"slurp"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// HiveAPIConfig holds Hive system integration settings
|
// HiveAPIConfig holds Hive system integration settings
|
||||||
@@ -75,7 +76,7 @@ type GitHubConfig struct {
|
|||||||
type P2PConfig struct {
|
type P2PConfig struct {
|
||||||
ServiceTag string `yaml:"service_tag"`
|
ServiceTag string `yaml:"service_tag"`
|
||||||
BzzzTopic string `yaml:"bzzz_topic"`
|
BzzzTopic string `yaml:"bzzz_topic"`
|
||||||
AntennaeTopic string `yaml:"antennae_topic"`
|
HmmmTopic string `yaml:"hmmm_topic"`
|
||||||
DiscoveryTimeout time.Duration `yaml:"discovery_timeout"`
|
DiscoveryTimeout time.Duration `yaml:"discovery_timeout"`
|
||||||
|
|
||||||
// Human escalation settings
|
// Human escalation settings
|
||||||
@@ -162,7 +163,7 @@ func getDefaultConfig() *Config {
|
|||||||
SandboxImage: "registry.home.deepblack.cloud/tony/bzzz-sandbox:latest",
|
SandboxImage: "registry.home.deepblack.cloud/tony/bzzz-sandbox:latest",
|
||||||
},
|
},
|
||||||
GitHub: GitHubConfig{
|
GitHub: GitHubConfig{
|
||||||
TokenFile: "/home/tony/AI/secrets/passwords_and_tokens/gh-token",
|
TokenFile: "/home/tony/chorus/business/secrets/gh-token",
|
||||||
UserAgent: "Bzzz-P2P-Agent/1.0",
|
UserAgent: "Bzzz-P2P-Agent/1.0",
|
||||||
Timeout: 30 * time.Second,
|
Timeout: 30 * time.Second,
|
||||||
RateLimit: true,
|
RateLimit: true,
|
||||||
@@ -171,7 +172,7 @@ func getDefaultConfig() *Config {
|
|||||||
P2P: P2PConfig{
|
P2P: P2PConfig{
|
||||||
ServiceTag: "bzzz-peer-discovery",
|
ServiceTag: "bzzz-peer-discovery",
|
||||||
BzzzTopic: "bzzz/coordination/v1",
|
BzzzTopic: "bzzz/coordination/v1",
|
||||||
AntennaeTopic: "antennae/meta-discussion/v1",
|
HmmmTopic: "hmmm/meta-discussion/v1",
|
||||||
DiscoveryTimeout: 10 * time.Second,
|
DiscoveryTimeout: 10 * time.Second,
|
||||||
EscalationWebhook: "https://n8n.home.deepblack.cloud/webhook-test/human-escalation",
|
EscalationWebhook: "https://n8n.home.deepblack.cloud/webhook-test/human-escalation",
|
||||||
EscalationKeywords: []string{"stuck", "help", "human", "escalate", "clarification needed", "manual intervention"},
|
EscalationKeywords: []string{"stuck", "help", "human", "escalate", "clarification needed", "manual intervention"},
|
||||||
@@ -196,6 +197,7 @@ func getDefaultConfig() *Config {
|
|||||||
CompressArtifacts: false,
|
CompressArtifacts: false,
|
||||||
Enabled: true,
|
Enabled: true,
|
||||||
},
|
},
|
||||||
|
Slurp: GetDefaultSlurpConfig(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -252,6 +254,17 @@ func loadFromEnv(config *Config) error {
|
|||||||
config.Logging.Level = level
|
config.Logging.Level = level
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SLURP configuration
|
||||||
|
if slurpURL := os.Getenv("BZZZ_SLURP_URL"); slurpURL != "" {
|
||||||
|
config.Slurp.BaseURL = slurpURL
|
||||||
|
}
|
||||||
|
if slurpKey := os.Getenv("BZZZ_SLURP_API_KEY"); slurpKey != "" {
|
||||||
|
config.Slurp.APIKey = slurpKey
|
||||||
|
}
|
||||||
|
if slurpEnabled := os.Getenv("BZZZ_SLURP_ENABLED"); slurpEnabled == "true" {
|
||||||
|
config.Slurp.Enabled = true
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -281,6 +294,11 @@ func validateConfig(config *Config) error {
|
|||||||
return fmt.Errorf("github token file does not exist: %s", config.GitHub.TokenFile)
|
return fmt.Errorf("github token file does not exist: %s", config.GitHub.TokenFile)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Validate SLURP configuration
|
||||||
|
if err := ValidateSlurpConfig(config.Slurp); err != nil {
|
||||||
|
return fmt.Errorf("slurp configuration invalid: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ func CreateSandboxWithHCFS(ctx context.Context, taskImage string, agentConfig *c
|
|||||||
githubToken := os.Getenv("BZZZ_GITHUB_TOKEN")
|
githubToken := os.Getenv("BZZZ_GITHUB_TOKEN")
|
||||||
if githubToken == "" {
|
if githubToken == "" {
|
||||||
// Try to read from file
|
// Try to read from file
|
||||||
tokenBytes, err := os.ReadFile("/home/tony/AI/secrets/passwords_and_tokens/gh-token")
|
tokenBytes, err := os.ReadFile("/home/tony/chorus/business/secrets/gh-token")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
githubToken = strings.TrimSpace(string(tokenBytes))
|
githubToken = strings.TrimSpace(string(tokenBytes))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,4 +50,4 @@ systemctl reset-failed bzzz.service 2>/dev/null || true
|
|||||||
echo ""
|
echo ""
|
||||||
echo "🎉 Bzzz P2P Task Coordination Service uninstalled successfully!"
|
echo "🎉 Bzzz P2P Task Coordination Service uninstalled successfully!"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Note: The Bzzz binary and project files remain in /home/tony/AI/projects/Bzzz"
|
echo "Note: The Bzzz binary and project files remain in /home/tony/chorus/project-queues/active/BZZZ"
|
||||||
Reference in New Issue
Block a user