- 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>
112 lines
4.4 KiB
Go
112 lines
4.4 KiB
Go
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")
|
|
} |