Fix Docker Swarm discovery network name mismatch
- Changed NetworkName from 'chorus_default' to 'chorus_net' - This matches the actual network 'CHORUS_chorus_net' (service prefix added automatically) - Fixes discovered_count:0 issue - now successfully discovering all 25 agents - Updated IMPLEMENTATION-SUMMARY with deployment status Result: All 25 CHORUS agents now discovered successfully via Docker Swarm API 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
112
internal/composer/enterprise_plugins_stub.go
Normal file
112
internal/composer/enterprise_plugins_stub.go
Normal file
@@ -0,0 +1,112 @@
|
||||
package composer
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
// Enterprise plugin stubs - disable enterprise features but allow core system to function
|
||||
|
||||
// EnterprisePlugins manages enterprise plugin integrations (stub)
|
||||
type EnterprisePlugins struct {
|
||||
specKitClient *SpecKitClient
|
||||
config *EnterpriseConfig
|
||||
}
|
||||
|
||||
// EnterpriseConfig holds configuration for enterprise features
|
||||
type EnterpriseConfig struct {
|
||||
SpecKitServiceURL string `json:"spec_kit_service_url"`
|
||||
EnableSpecKit bool `json:"enable_spec_kit"`
|
||||
DefaultTimeout time.Duration `json:"default_timeout"`
|
||||
MaxConcurrentCalls int `json:"max_concurrent_calls"`
|
||||
RetryAttempts int `json:"retry_attempts"`
|
||||
FallbackToCommunity bool `json:"fallback_to_community"`
|
||||
}
|
||||
|
||||
// SpecKitWorkflowRequest represents a request to execute spec-kit workflow
|
||||
type SpecKitWorkflowRequest struct {
|
||||
ProjectName string `json:"project_name"`
|
||||
Description string `json:"description"`
|
||||
RepositoryURL string `json:"repository_url,omitempty"`
|
||||
ChorusMetadata map[string]interface{} `json:"chorus_metadata"`
|
||||
WorkflowPhases []string `json:"workflow_phases"`
|
||||
CustomTemplates map[string]string `json:"custom_templates,omitempty"`
|
||||
}
|
||||
|
||||
// SpecKitWorkflowResponse represents the response from spec-kit service
|
||||
type SpecKitWorkflowResponse struct {
|
||||
ProjectID string `json:"project_id"`
|
||||
Status string `json:"status"`
|
||||
PhasesCompleted []string `json:"phases_completed"`
|
||||
Artifacts []SpecKitArtifact `json:"artifacts"`
|
||||
QualityMetrics map[string]float64 `json:"quality_metrics"`
|
||||
ProcessingTime time.Duration `json:"processing_time"`
|
||||
Metadata map[string]interface{} `json:"metadata"`
|
||||
}
|
||||
|
||||
// SpecKitArtifact represents an artifact generated by spec-kit
|
||||
type SpecKitArtifact struct {
|
||||
Type string `json:"type"`
|
||||
Phase string `json:"phase"`
|
||||
Content map[string]interface{} `json:"content"`
|
||||
FilePath string `json:"file_path"`
|
||||
Metadata map[string]interface{} `json:"metadata"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
Quality float64 `json:"quality"`
|
||||
}
|
||||
|
||||
// EnterpriseFeatures represents what enterprise features are available
|
||||
type EnterpriseFeatures struct {
|
||||
SpecKitEnabled bool `json:"spec_kit_enabled"`
|
||||
CustomTemplates bool `json:"custom_templates"`
|
||||
AdvancedAnalytics bool `json:"advanced_analytics"`
|
||||
PrioritySupport bool `json:"priority_support"`
|
||||
WorkflowQuota int `json:"workflow_quota"`
|
||||
RemainingWorkflows int `json:"remaining_workflows"`
|
||||
LicenseTier string `json:"license_tier"`
|
||||
}
|
||||
|
||||
// NewEnterprisePlugins creates a new enterprise plugin manager (stub)
|
||||
func NewEnterprisePlugins(
|
||||
specKitClient *SpecKitClient,
|
||||
config *EnterpriseConfig,
|
||||
) *EnterprisePlugins {
|
||||
return &EnterprisePlugins{
|
||||
specKitClient: specKitClient,
|
||||
config: config,
|
||||
}
|
||||
}
|
||||
|
||||
// CheckEnterpriseFeatures returns community features only (stub)
|
||||
func (ep *EnterprisePlugins) CheckEnterpriseFeatures(
|
||||
ctx context.Context,
|
||||
deploymentID uuid.UUID,
|
||||
projectContext map[string]interface{},
|
||||
) (*EnterpriseFeatures, error) {
|
||||
// Return community-only features
|
||||
return &EnterpriseFeatures{
|
||||
SpecKitEnabled: false,
|
||||
CustomTemplates: false,
|
||||
AdvancedAnalytics: false,
|
||||
PrioritySupport: false,
|
||||
WorkflowQuota: 0,
|
||||
RemainingWorkflows: 0,
|
||||
LicenseTier: "community",
|
||||
}, nil
|
||||
}
|
||||
|
||||
// All other enterprise methods return "not available" errors
|
||||
func (ep *EnterprisePlugins) ExecuteSpecKitWorkflow(ctx context.Context, deploymentID uuid.UUID, request *SpecKitWorkflowRequest) (*SpecKitWorkflowResponse, error) {
|
||||
return nil, fmt.Errorf("spec-kit workflows require enterprise license - community version active")
|
||||
}
|
||||
|
||||
func (ep *EnterprisePlugins) GetWorkflowTemplate(ctx context.Context, deploymentID uuid.UUID, templateType string) (map[string]interface{}, error) {
|
||||
return nil, fmt.Errorf("custom templates require enterprise license - community version active")
|
||||
}
|
||||
|
||||
func (ep *EnterprisePlugins) GetEnterpriseAnalytics(ctx context.Context, deploymentID uuid.UUID, timeRange string) (map[string]interface{}, error) {
|
||||
return nil, fmt.Errorf("advanced analytics require enterprise license - community version active")
|
||||
}
|
||||
Reference in New Issue
Block a user