Files
WHOOSH/internal/composer/enterprise_plugins_stub.go
Claude Code 9aeaa433fc 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>
2025-10-10 10:35:25 +11:00

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")
}